|
@@ -1,5 +1,12 @@
|
|
|
<template>
|
|
|
- <el-button class="button-select" link :type="props.order?.isRed ? 'danger' : 'primary'" @click="onOrderDetail" title="点击查看工单详情" :disabled="props.disabled">
|
|
|
+ <el-button
|
|
|
+ class="button-select"
|
|
|
+ link
|
|
|
+ :type="props.order?.isRed ? 'danger' : 'primary'"
|
|
|
+ @click="onOrderDetail"
|
|
|
+ title="点击查看工单详情"
|
|
|
+ :disabled="props.disabled"
|
|
|
+ >
|
|
|
<slot>工单详情</slot>
|
|
|
</el-button>
|
|
|
<el-dialog
|
|
@@ -49,17 +56,10 @@
|
|
|
"
|
|
|
>录音文件</el-button
|
|
|
>
|
|
|
- <el-button
|
|
|
- plain
|
|
|
- title="外呼"
|
|
|
- size="small"
|
|
|
- type="primary"
|
|
|
- class="ml8"
|
|
|
- @click="callPhone(state.ruleForm.fromPhone)"
|
|
|
- v-if="ZGCenter"
|
|
|
+ <el-button plain title="外呼" size="small" type="primary" class="ml8" @click="callPhone(state.ruleForm.fromPhone)" v-if="ZGCenter"
|
|
|
>外呼</el-button
|
|
|
>
|
|
|
- <el-checkbox-group v-model="prefixOptions" :max="1" v-if="ZGCenter" class="checkbox ml5">
|
|
|
+ <el-checkbox-group v-model="prefixOptions" :max="1" v-if="ZGCenter" class="checkbox ml5">
|
|
|
<el-checkbox value="add">加0</el-checkbox>
|
|
|
<el-checkbox value="remove">减0</el-checkbox>
|
|
|
</el-checkbox-group>
|
|
@@ -78,8 +78,10 @@
|
|
|
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.contact">
|
|
|
<el-form-item label="联系电话">
|
|
|
<span> {{ state.ruleForm.contact }}</span>
|
|
|
- <el-button plain title="外呼" size="small" type="primary" class="ml8" @click="callPhone(state.ruleForm.contact)" v-if="ZGCenter">外呼</el-button>
|
|
|
- <el-checkbox-group v-model="prefixOptions" :max="1" v-if="ZGCenter" class="checkbox ml5">
|
|
|
+ <el-button plain title="外呼" size="small" type="primary" class="ml8" @click="callPhone(state.ruleForm.contact)" v-if="ZGCenter"
|
|
|
+ >外呼</el-button
|
|
|
+ >
|
|
|
+ <el-checkbox-group v-model="prefixOptions" :max="1" v-if="ZGCenter" class="checkbox ml5">
|
|
|
<el-checkbox value="add">加0</el-checkbox>
|
|
|
<el-checkbox value="remove">减0</el-checkbox>
|
|
|
</el-checkbox-group>
|
|
@@ -306,20 +308,32 @@
|
|
|
</el-row>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.isStepUrgentTxt || state.ruleForm.IsEvasiveTxt || state.ruleForm.isInactivelyTxt">
|
|
|
+ <el-col
|
|
|
+ :xs="24"
|
|
|
+ :sm="24"
|
|
|
+ :md="24"
|
|
|
+ :lg="24"
|
|
|
+ :xl="24"
|
|
|
+ v-if="state.ruleForm.isStepUrgentTxt || state.ruleForm.IsEvasiveTxt || state.ruleForm.isInactivelyTxt"
|
|
|
+ >
|
|
|
<el-form-item label="派单员勾选">
|
|
|
- <span class="color-danger" v-if="state.ruleForm.isStepUrgentTxt">{{state.ruleForm.isStepUrgentTxt}}</span>
|
|
|
- <span class="color-danger" v-if="state.ruleForm.IsEvasiveTxt">,{{state.ruleForm.IsEvasiveTxt}}</span>
|
|
|
- <span class="color-danger" v-if="state.ruleForm.isInactivelyTxt">,{{state.ruleForm.isInactivelyTxt}}</span>
|
|
|
+ <span class="color-danger" v-if="state.ruleForm.isStepUrgent">紧急</span>
|
|
|
+ <span class="color-danger" v-if="state.ruleForm.IsEvasiveTxt">,{{ state.ruleForm.IsEvasiveTxt }}</span>
|
|
|
+ <span class="color-danger" v-if="state.ruleForm.isInactivelyTxt">,{{ state.ruleForm.isInactivelyTxt }}</span>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.realCommunicationTime">
|
|
|
<el-form-item label="办件勾选">
|
|
|
<el-row class="w100 mb10">
|
|
|
- <el-col>备注信息:{{ state.ruleForm.realContactLocaleTxt }} {{ state.ruleForm.realIsContactedTxt }} </el-col>
|
|
|
+ <el-col
|
|
|
+ >{{ state.ruleForm.realContactLocaleTxt }} {{ state.ruleForm.realIsContactedTxt }} {{ state.ruleForm.isOther ? '其他' : '' }}
|
|
|
+ </el-col>
|
|
|
<el-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8">经办人姓名:{{ state.ruleForm.realHandlerName }} </el-col>
|
|
|
<el-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8">经办人电话:{{ state.ruleForm.realHandlerPhone }} </el-col>
|
|
|
- <el-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8">沟通时间:{{ formatDate(state.ruleForm.remarkTime, 'YYYY-mm-dd HH:MM:SS') }} </el-col>
|
|
|
+ <el-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8"
|
|
|
+ >沟通时间:{{ formatDate(state.ruleForm.realCommunicationTime, 'YYYY-mm-dd HH:MM:SS') }}
|
|
|
+ </el-col>
|
|
|
+ <el-col>其他原因:{{ state.ruleForm.otherRemark }}</el-col>
|
|
|
<el-col>沟通地点:{{ state.ruleForm.realCommunicationAddress }}</el-col>
|
|
|
</el-row>
|
|
|
</el-form-item>
|
|
@@ -338,7 +352,7 @@
|
|
|
<div v-for="i in state.orderComplements" :key="i" class="plug-container">
|
|
|
<el-form label-width="100px" ref="ruleFormRef">
|
|
|
<el-row :gutter="10">
|
|
|
-<!-- <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
|
|
|
+ <!-- <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
|
|
|
<el-form-item label="补充部门">
|
|
|
{{ i.creator.organization }}
|
|
|
</el-form-item>
|
|
@@ -479,20 +493,10 @@
|
|
|
<el-text v-if="['ZiGong'].includes(themeConfig.appScope) && state.ruleForm?.sendBackAuditEndTime" type="danger" tag="b" class="mr20">
|
|
|
退回截止时间:{{ formatDate(state.ruleForm?.sendBackAuditEndTime, 'YYYY-mm-dd HH:MM:SS') }}
|
|
|
</el-text>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- @click="onMarketDetail"
|
|
|
- :loading="state.loading"
|
|
|
- v-if="state.ruleForm.orderExtension?.orderType"
|
|
|
- >市场明细</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- @click="onJbExport"
|
|
|
- :loading="state.loading"
|
|
|
- v-if="state.ruleForm.id"
|
|
|
- >导出交办单</el-button
|
|
|
+ <el-button type="primary" @click="onMarketDetail" :loading="state.loading" v-if="state.ruleForm.orderExtension?.orderType"
|
|
|
+ >市场明细</el-button
|
|
|
>
|
|
|
+ <el-button type="primary" @click="onJbExport" :loading="state.loading" v-if="state.ruleForm.id">导出交办单</el-button>
|
|
|
<!-- 单会签中+未到汇总节点 canEndCountersign 为true表示当前工单正在会签中,可以结束会签-->
|
|
|
<el-button
|
|
|
type="primary"
|
|
@@ -571,7 +575,7 @@
|
|
|
>代 办</el-button
|
|
|
>
|
|
|
<!-- 流程结束之后不展示补充按钮 -->
|
|
|
-<!-- <el-button type="primary" @click="onSupply" :loading="state.loading" v-if="[0].includes(state.workflow.status)"
|
|
|
+ <!-- <el-button type="primary" @click="onSupply" :loading="state.loading" v-if="[0].includes(state.workflow.status)"
|
|
|
>补 充</el-button
|
|
|
>-->
|
|
|
<!-- 100-200 表示工单正在办理中 并且应该自己办理 -->
|
|
@@ -651,7 +655,7 @@ const SpecialHandleOrder = defineAsyncComponent(() => import('@/views/business/s
|
|
|
const PlayRecord = defineAsyncComponent(() => import('@/components/PlayRecord/index.vue')); // 播放录音
|
|
|
const CopyOrder = defineAsyncComponent(() => import('@/views/todo/seats/accept/Copy.vue')); // 副本工单
|
|
|
const ZGProcess = defineAsyncComponent(() => import('@/components/ProcessAudit/ZGProcess.vue')); // 自贡流程
|
|
|
-const MarketDetail = defineAsyncComponent(()=>import('@/views/business/order/components/Market-detail.vue')); // 市场明细
|
|
|
+const MarketDetail = defineAsyncComponent(() => import('@/views/business/order/components/Market-detail.vue')); // 市场明细
|
|
|
|
|
|
type ButtonType = '' | 'default' | 'success' | 'warning' | 'info' | 'text' | 'primary' | 'danger';
|
|
|
const props = defineProps({
|
|
@@ -670,10 +674,10 @@ const props = defineProps({
|
|
|
type: String,
|
|
|
default: '',
|
|
|
},
|
|
|
- disabled:{
|
|
|
+ disabled: {
|
|
|
type: Boolean,
|
|
|
- default: false
|
|
|
- }
|
|
|
+ default: false,
|
|
|
+ },
|
|
|
});
|
|
|
const storesUserInfo = useUserInfo();
|
|
|
const storesThemeConfig = useThemeConfig();
|
|
@@ -711,7 +715,7 @@ const state = reactive<any>({
|
|
|
value: '4',
|
|
|
},
|
|
|
],
|
|
|
- collapseArr: ['1', '2', '3','4'], //展开列表
|
|
|
+ collapseArr: ['1', '2', '3', '4'], //展开列表
|
|
|
loading: false,
|
|
|
orderComplements: [], // 补充内容
|
|
|
workflow: {}, // 工单流程内容
|
|
@@ -733,11 +737,11 @@ const showKeyWord = (val: string[], keywordArr: string[]) => {
|
|
|
return str;
|
|
|
};
|
|
|
// 自贡中心才能看 宜宾所有都可以
|
|
|
-const ZGCenter = computed(()=>{
|
|
|
- if(['ZiGong','LuZhou'].includes(themeConfig.value.appScope) && userInfos.value.isCenter){
|
|
|
+const ZGCenter = computed(() => {
|
|
|
+ if (['ZiGong', 'LuZhou'].includes(themeConfig.value.appScope) && userInfos.value.isCenter) {
|
|
|
return true;
|
|
|
- }else return themeConfig.value.appScope === 'YiBin';
|
|
|
-})
|
|
|
+ } else return themeConfig.value.appScope === 'YiBin';
|
|
|
+});
|
|
|
// 查看工单详情
|
|
|
const getOrderDetail = async (id: string) => {
|
|
|
state.loading = true;
|
|
@@ -788,7 +792,8 @@ const openDialog = (val: any) => {
|
|
|
}
|
|
|
state.dialogVisible = true;
|
|
|
state.orderId = val.id;
|
|
|
- if(['ZiGong'].includes(themeConfig.value.appScope) && !userInfos.value.isCenter){ // 自贡的部门部展示历史工单和副本工单
|
|
|
+ if (['ZiGong'].includes(themeConfig.value.appScope) && !userInfos.value.isCenter) {
|
|
|
+ // 自贡的部门部展示历史工单和副本工单
|
|
|
state.tabPaneList = [
|
|
|
{
|
|
|
label: '工单详情',
|
|
@@ -797,9 +802,9 @@ const openDialog = (val: any) => {
|
|
|
{
|
|
|
label: '回访详情',
|
|
|
value: '2',
|
|
|
- }
|
|
|
- ]
|
|
|
- }else{
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ } else {
|
|
|
state.tabPaneList = [
|
|
|
{
|
|
|
label: '工单详情',
|
|
@@ -821,7 +826,7 @@ const openDialog = (val: any) => {
|
|
|
label: '副本工单',
|
|
|
value: '4',
|
|
|
},
|
|
|
- ]
|
|
|
+ ];
|
|
|
}
|
|
|
if (val.activeName) {
|
|
|
state.activeName = val.activeName; //传入查询tab
|
|
@@ -923,13 +928,13 @@ const onSubmit = (val: string, annexName: string = '办理附件', classify: str
|
|
|
classify,
|
|
|
},
|
|
|
};
|
|
|
- if(['ZiGong'].includes(themeConfig.value.appScope)){
|
|
|
+ if (['ZiGong'].includes(themeConfig.value.appScope)) {
|
|
|
if (['工单办理', '工单代办', '工单退回'].includes(val)) {
|
|
|
zgProcessRef.value.openDialog(params);
|
|
|
} else {
|
|
|
processAuditRef.value.openDialog(params);
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
processAuditRef.value.openDialog(params);
|
|
|
}
|
|
|
};
|
|
@@ -1041,22 +1046,22 @@ const onCancelDelay = () => {
|
|
|
};
|
|
|
// 交办单导出
|
|
|
const onJbExport = () => {
|
|
|
- state.loading = true;
|
|
|
- exportJbOrder([state.ruleForm.id])
|
|
|
- .then((res: any) => {
|
|
|
- downloadZip(res);
|
|
|
- state.loading = false;
|
|
|
- ElMessage.success('导出成功');
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- state.loading = false;
|
|
|
- });
|
|
|
+ state.loading = true;
|
|
|
+ exportJbOrder([state.ruleForm.id])
|
|
|
+ .then((res: any) => {
|
|
|
+ downloadZip(res);
|
|
|
+ state.loading = false;
|
|
|
+ ElMessage.success('导出成功');
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ state.loading = false;
|
|
|
+ });
|
|
|
};
|
|
|
// 市场明细
|
|
|
const marketDetailRef = ref<RefType>();
|
|
|
-const onMarketDetail = ()=>{
|
|
|
+const onMarketDetail = () => {
|
|
|
marketDetailRef.value.openDialog(state.ruleForm);
|
|
|
-}
|
|
|
+};
|
|
|
// 工单详情
|
|
|
const onOrderDetail = () => {
|
|
|
openDialog(props.order);
|