|
@@ -139,6 +139,11 @@
|
|
|
<span v-if="state.ruleForm.isPutThrough !== null">{{ state.ruleForm.isPutThrough ? '已接通' : '未接通' }}</span>
|
|
|
</el-form-item>
|
|
|
</el-col>-->
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="['ZiGong'].includes(themeConfig.appScope)">
|
|
|
+ <el-form-item label="语音评价">
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
<el-row v-for="item in state.ruleForm.visitDetails" :key="item.id" :gutter="10">
|
|
|
<!-- 务员评价 -->
|
|
@@ -159,21 +164,23 @@
|
|
|
<el-divider content-position="left">
|
|
|
<el-text tag="b" size="large" type="primary"> {{ item.visitOrgName }} </el-text>
|
|
|
</el-divider>
|
|
|
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
- <el-form-item label="部门是否联系">
|
|
|
- {{ item.isContact === null ? '' : item.isContact === true ? '是' : '否' }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
- <el-form-item label="处理结果">
|
|
|
- {{ item.volved === null ? '' : item.volved === true ? '已得到解决' : '未得到解决' }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="item.volveConent">
|
|
|
- <el-form-item label="备注" class="formatted-text mb5">
|
|
|
- {{ item.volveConent }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
+ <template v-if="['YiBin'].includes(themeConfig.appScope)">
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
+ <el-form-item label="部门是否联系">
|
|
|
+ {{ item.isContact === null ? '' : item.isContact === true ? '是' : '否' }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
+ <el-form-item label="处理结果">
|
|
|
+ {{ item.volved === null ? '' : item.volved === true ? '已得到解决' : '未得到解决' }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="item.volveConent">
|
|
|
+ <el-form-item label="备注" class="formatted-text mb5">
|
|
|
+ {{ item.volveConent }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </template>
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
|
|
|
<el-form-item label="部门办件结果">
|
|
|
{{ item.orgProcessingResults?.dicDataName }}
|
|
@@ -214,6 +221,24 @@
|
|
|
<span>{{ state.orderVisitModel.judgeContent }}</span>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="['ZiGong'].includes(themeConfig.appScope)">
|
|
|
+ <el-form-item label="历史回访记录">
|
|
|
+ <ProTable
|
|
|
+ ref="proTableRef"
|
|
|
+ :columns="columns"
|
|
|
+ :data="state.tableData"
|
|
|
+ @updateTable="queryList"
|
|
|
+ :loading="state.loading"
|
|
|
+ :pagination="false"
|
|
|
+ border
|
|
|
+ :toolButton="false"
|
|
|
+ >
|
|
|
+ <template #empty>
|
|
|
+ 暂无数据
|
|
|
+ </template>
|
|
|
+ </ProTable>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
</template>
|
|
|
<!-- 编辑 -->
|
|
@@ -249,6 +274,17 @@
|
|
|
<el-row v-for="(item, index) in state.ruleForm.visitDetails" :key="item.id" :gutter="10">
|
|
|
<!-- 务员评价 -->
|
|
|
<template v-if="item.visitTarget === 10 && isTelSource">
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="['ZiGong'].includes(themeConfig.appScope)">
|
|
|
+ <el-form-item
|
|
|
+ label="语音评价"
|
|
|
+ :prop="`visitDetails.${index}.viceEvaluate`"
|
|
|
+ :rules="[{ required: true, message: '请选择语音评价', trigger: 'change' }]"
|
|
|
+ >
|
|
|
+ <el-radio-group v-model="item.viceEvaluate">
|
|
|
+ <el-radio v-for="items in seatEvaluate" :key="items.key" :label="items.value" :value="items.key">{{items.value}}</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
|
|
|
<el-form-item
|
|
|
label="话务员评价"
|
|
@@ -284,6 +320,7 @@
|
|
|
<el-divider content-position="left">
|
|
|
<el-text tag="b" size="large"> {{ item.visitOrgName }} </el-text>
|
|
|
</el-divider>
|
|
|
+ <template v-if="['YiBin'].includes(themeConfig.appScope)">
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
<el-form-item
|
|
|
label="部门是否联系"
|
|
@@ -326,6 +363,7 @@
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ </template>
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
|
|
|
<el-form-item
|
|
|
label="部门办件结果"
|
|
@@ -419,6 +457,24 @@
|
|
|
<el-checkbox v-model="state.ruleForm.seatJudge">扭转坐席满意度</el-checkbox>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="['ZiGong'].includes(themeConfig.appScope)">
|
|
|
+ <el-form-item label="历史回访记录">
|
|
|
+ <ProTable
|
|
|
+ ref="proTableRef"
|
|
|
+ :columns="columns"
|
|
|
+ :data="state.tableData"
|
|
|
+ @updateTable="queryList"
|
|
|
+ :loading="state.loading"
|
|
|
+ :pagination="false"
|
|
|
+ border
|
|
|
+ :toolButton="false"
|
|
|
+ >
|
|
|
+ <template #empty>
|
|
|
+ 暂无数据
|
|
|
+ </template>
|
|
|
+ </ProTable>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
</template>
|
|
|
</el-form>
|
|
@@ -433,14 +489,17 @@
|
|
|
<template #footer v-else>
|
|
|
<span class="dialog-footer">
|
|
|
<el-button @click="closeDialog" class="default-button">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="onRedo" :loading="state.loading" v-if="['ZiGong'].includes(themeConfig.appScope)">重办</el-button>
|
|
|
<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="state.loading">保存</el-button>
|
|
|
</span>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
<!-- 播放录音 -->
|
|
|
<play-record ref="playRecordRef" />
|
|
|
+ <!-- 回访重办 -->
|
|
|
+ <visit-redo ref="visitRedoRef" />
|
|
|
</template>
|
|
|
-<script setup lang="ts" name="orderFollowUpDetail">
|
|
|
+<script setup lang="tsx" name="orderFollowUpDetail">
|
|
|
import { computed, defineAsyncComponent, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue';
|
|
|
import { ElMessage, FormInstance } from 'element-plus';
|
|
|
import { commonEnum } from '@/utils/constants';
|
|
@@ -450,10 +509,12 @@ import dayjs from 'dayjs';
|
|
|
import { visitDetailBaseData, visitOrder } from '@/api/business/visit';
|
|
|
import mittBus from '@/utils/mitt';
|
|
|
import { callCenterOutbound } from '@/utils/callCenter';
|
|
|
+import { useThemeConfig } from '@/stores/themeConfig';
|
|
|
|
|
|
// 引入组件
|
|
|
const CommonAdvice = defineAsyncComponent(() => import('@/components/CommonAdvice/index.vue')); // 常用意见
|
|
|
const PlayRecord = defineAsyncComponent(() => import('@/components/PlayRecord/index.vue')); // 播放录音
|
|
|
+const VisitRedo = defineAsyncComponent(() => import('@/views/business/visit/component/Visit-redo.vue')); // 回访重办
|
|
|
// 定义子组件向父组件传值/事件
|
|
|
const emit = defineEmits(['updateList']);
|
|
|
// 定义变量内容
|
|
@@ -472,9 +533,9 @@ const state = reactive<any>({
|
|
|
orderDetail: {}, // 工单详情
|
|
|
orderVisitModel: {}, // 回访详情
|
|
|
recordingAbsolutePath: '', // 录音文件
|
|
|
+ tableData:[], //回访记录列表
|
|
|
});
|
|
|
const ruleFormRef = ref<RefType>();
|
|
|
-
|
|
|
const storesUserInfo = useUserInfo();
|
|
|
const { userInfos } = storeToRefs(storesUserInfo); // 用户信息
|
|
|
const visitCount = ref<number>(0); // 回访次数
|
|
@@ -486,6 +547,8 @@ const visitSatisfaction = ref<EmptyArrayType>(); // 部门办件结果
|
|
|
const visitId = ref<string>(''); // 回访id
|
|
|
const dialogTitle = ref<string>('回访'); // 弹窗标题
|
|
|
const aiVisitVoiceBaseUrl = ref(''); // 智能回访录音前缀
|
|
|
+const storesThemeConfig = useThemeConfig();
|
|
|
+const { themeConfig } = storeToRefs(storesThemeConfig);
|
|
|
const getBaseData = async (id: string) => {
|
|
|
state.loading = true;
|
|
|
try {
|
|
@@ -637,7 +700,32 @@ const chooseAdvice = (item: any, index: number | string) => {
|
|
|
state.ruleForm.visitDetails[index].visitContent = '';
|
|
|
}
|
|
|
state.ruleForm.visitDetails[index].visitContent += item.content;
|
|
|
-};
|
|
|
+}
|
|
|
+// 重办
|
|
|
+const visitRedoRef = ref<RefType>();
|
|
|
+const onRedo = ()=>{
|
|
|
+ visitRedoRef.value.openDialog(state.orderDetail)
|
|
|
+}
|
|
|
+const queryList = ()=>{
|
|
|
+
|
|
|
+}
|
|
|
+// 表格配置项
|
|
|
+const columns = ref<any[]>([
|
|
|
+ { prop: 'order.no', label: '语音评价' },
|
|
|
+ { prop: 'order.isProvinceText', label: '话务员评价'},
|
|
|
+ { prop: 'order.title', label: '部门名称'},
|
|
|
+ { prop: 'order.sourceChannel', label: '部门办件结果' },
|
|
|
+ { prop: 'visitStateText', label: '部门办件态度' },
|
|
|
+ { prop: 'visitTypeText', label: '部门评价内容'},
|
|
|
+ {
|
|
|
+ prop: 'visitTime',
|
|
|
+ label: '回访时间',
|
|
|
+ minWidth: 160,
|
|
|
+ render: (scope) => {
|
|
|
+ return <span>{formatDate(scope.row.visitTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
+ },
|
|
|
+ },
|
|
|
+]);
|
|
|
const callId = ref<string>('');
|
|
|
onMounted(() => {
|
|
|
mittBus.on('outboundConnect', (data) => {
|