Commit bef30a71 by chenxin

add:通话记录

parent accd6a43
import calllog from '../../views/calllog';
import index from '../../views/calllog/index';
import calllog from '../../views/calllog/calllog';
import record from '../../views/calllog/record';
export default {
path: 'calllog',
name: '通话记录',
component: calllog
component: index,
meta: {},
redirect: 'calllog/index',
children: [
{
path: 'index',
name: '通话记录',
component: calllog,
meta: {}
},
{
path: 'record',
name: '录音存储设置',
component: record,
meta: {}
}
]
};
......@@ -9,7 +9,7 @@
<el-option v-for="(v, i) in telTaskTypeOption" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
<el-input v-model="listParams.phoneNumber" class="w200" placeholder="输入号码查询" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-button type="primary" class="fr" @click="$router.push('/calllog/record')">录音设置</el-button>
<!-- <el-button type="primary" class="fr" @click="$router.push('/calllog/record')">录音设置</el-button> -->
</div>
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading">
<el-table-column align="left" width="160" prop="callBeginTime" label="呼叫时间">
......
<template>
<section class="dm-wrap">
<div class="pb22 clearfix">
<el-date-picker v-model="dateTime" :picker-options="pickerOptions" class="w250" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="getTableList"></el-date-picker>
<el-select class="dm-select" clearable="" v-model="listParams.callStatus" placeholder="选择通话状态" @change="getTableList">
<el-option v-for="(v, i) in callStatusOption" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
<el-select class="dm-select" clearable v-model="listParams.telTaskType" placeholder="选择类型" @change="getTableList">
<el-option v-for="(v, i) in telTaskTypeOption" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
<el-input v-model="listParams.phoneNumber" class="w200" placeholder="输入号码查询" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
</div>
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading">
<el-table-column align="left" width="160" prop="callBeginTime" label="呼叫时间">
<template slot-scope="scope">
{{ formatDateTimeByType(scope.row.callBeginTime, 'yyyy-MM-dd-HH-mm-ss') }}
</template>
</el-table-column>
<el-table-column align="left" min-width="150" prop="clerkName" label="主叫">
<template slot-scope="scope">
<img class="vertical-middle table__avatar--40" :src="scope.row.clerkImage || defaultAvatar" width="60" height="60" alt="" />
<div class="inline-block vertical-middle">
<p class="table-name--ellipsis">{{ scope.row.clerkName || '--' }}</p>
<p class="fz13 gray">{{ scope.row.storeGroupName || '--' }}</p>
</div>
</template>
</el-table-column>
<el-table-column align="left" min-width="150" prop="memberId" label="被叫(会员)">
<template slot-scope="scope">
<img class="vertical-middle table__avatar--40" :src="filterAvatar(scope.row.photoUrl)" width="60" height="60" alt="" />
<div class="inline-block vertical-middle">
<p class="table-name--ellipsis">{{ scope.row.name || '--' }}</p>
<p class="fz13 gray">{{ scope.row.phoneNumber || '--' }}</p>
</div>
</template>
</el-table-column>
<el-table-column align="left" width="150" prop="status" label="通话状态">
<template slot-scope="scope">
{{ scope.row.callStatus === 1 ? '未接通' : scope.row.callStatus === 2 ? '接通' : '成功' }}
</template>
</el-table-column>
<el-table-column align="left" width="150" prop="status" label="类型">
<template slot-scope="scope">
{{ scope.row.telTaskType !== 1 ? scope.row.ecmName : '不良评价回访' }}
</template>
</el-table-column>
<el-table-column align="left" width="150" prop="callTime" label="通话时长(秒)">
<template slot-scope="scope">
{{ scope.row.callTime }}
</template>
</el-table-column>
<el-table-column align="left" width="150" prop="callFee" label="录音">
<template slot-scope="scope">
<a v-if="scope.row.recordUrl && scope.row.callStatus == 2" :href="scope.row.recordUrl" target="_blank" title="通话录音">通话录音</a>
</template>
</el-table-column>
</el-table>
<el-pagination v-show="tableList.length" background class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></el-pagination>
</section>
<div>
<router-view />
</div>
</template>
<script>
import { callLogList } from '@/service/api/calllogApi.js';
import tableMethods from '@/mixins/tableMethods.js';
import { formatDateTimeByType } from '@/utils/index.js';
import filterAvatar from '@/mixins/filterAvater.js';
export default {
name: 'call-log',
mixins: [filterAvatar, tableMethods],
data() {
const that = this;
return {
formatDateTimeByType,
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
callStatusOption: [{ value: '', label: '全部' }, { value: 1, label: '未接通' }, { value: 2, label: '接通' }],
telTaskTypeOption: [{ value: '', label: '全部' }, { value: 1, label: '不良评价回访' }, { value: 2, label: 'ECM话务任务' }],
listParams: { marketingType: '', sceneSettingId: '', phoneNumber: '', currentPage: 1, pageSize: 20, callStatus: '', telTaskType: '', memberId: '', storeId: '', referId: '' },
total: 0,
loading: false,
tableList: [],
pickerOptions: {
onPick({ maxDate, minDate }) {
if (new Date(maxDate).getTime() - new Date(minDate).getTime() > 90 * 24 * 60 * 60 * 1000) {
that.$tips({ type: 'warning', message: '时间范围不能大于90天' });
that.$nextTick(_ => {
that.dateTime = ['', ''];
});
}
},
disabledDate(time) {
return time.getTime() > Date.now();
}
}
};
},
created() {
this.$store.commit('aside_handler', false);
this.$store.commit('mutations_breadcrumb', [{ name: '会员管理', path: '' }, { name: '通话记录', path: '' }]);
this.getTableList();
},
methods: {
//列表请求
async getTableList() {
if (this.dateTime) {
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.beginTime = '';
this.listParams.endTime = '';
}
this.loading = true;
try {
let res = await callLogList(this.listParams);
if (res.errorCode === 0) {
this.tableList = res.result.result || [];
this.total = res.result.totalCount;
}
} catch (err) {
this.$tips({ type: 'error', message: '请求列表出错' });
}
this.loading = false;
}
}
name: 'calllog'
// created() {}
};
</script>
......@@ -32,6 +32,7 @@
<p class="fz12 gray line-height2">2、请尽量保障账户余额大于您日常使用的额度,避免因余额不足导致业务中断</p>
<p class="fz12 gray line-height2">3、若未能及时充值或其他问题,请联系客户经理或客服人员</p>
<p class="fz12 gray line-height2">4、各项服务单价:短信验证码{{ allUnitFee.smsfee }}元/条,语音验证码{{ allUnitFee.voiceIfee }}元/条,双向呼叫{{ allUnitFee.callfee }}元/分钟</p>
<p class="fz12 gray line-height2">5、通话录音存储收费标准:「三个月0.04元/分钟」「六个月0.06元/分钟」「十二个月0.1元/分钟」,不满一分钟按一分钟收费</p>
</div>
</article>
<article v-if="step === 1">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment