ソースを参照

reactor:工单详情调整(移除甄别记录,延期记录);

zhangchong 1 年間 前
コミット
414cfd7da9

+ 1 - 1
src/views/business/citizen/components/Tags-edit.vue

@@ -50,7 +50,7 @@
 					<el-card class="w100" shadow="never">
 						<p class="citizen-title mb10">市民画像</p>
 						<div class="citizen-img-box">
-							<img v-lazy="'https://cdn.pixabay.com/photo/2016/11/18/23/38/child-1837375_1280.png'" alt="" />
+              <img v-lazy="'/src/assets/images/citizen.png'" alt="" />
 						</div>
 					</el-card>
 				</el-col>

+ 1 - 1
src/views/business/order/accept/Citizen-portrait.vue

@@ -49,7 +49,7 @@
 				<el-card class="w100" shadow="never">
 					<p class="citizen-title mb10">市民画像</p>
 					<div class="citizen-img-box">
-						<img v-lazy="'https://cdn.pixabay.com/photo/2016/11/18/23/38/child-1837375_1280.png'" alt="" />
+						<img v-lazy="'/src/assets/images/citizen.png'" alt="" />
 					</div>
 				</el-card>
 			</el-col>

+ 10 - 2
src/views/business/order/accept/History.vue

@@ -15,7 +15,7 @@
 		v-loading="state.loading"
 		row-key="id"
 		@selection-change="handleSelectionChange"
-		max-height="300"
+		:max-height="props.maxHeight"
 		ref="multipleTableRef"
 	>
 		<el-table-column type="selection" label="重复件" width="80" :reserve-selection="true" v-if="props.formData.isRepeat === 'true'" />
@@ -28,7 +28,7 @@
 		<el-table-column prop="no" label="工单编码" show-overflow-tooltip> </el-table-column>
 		<el-table-column prop="currentStepName" label="当前环节" show-overflow-tooltip></el-table-column>
 		<el-table-column prop="statusText" label="状态" width="70" fixed="right" align="center"></el-table-column>
-		<el-table-column prop="statusText" label="操作" width="170" fixed="right" align="center">
+		<el-table-column prop="statusText" label="操作" width="170" fixed="right" align="center" v-if="!props.readonly">
 			<template #default="{ row }">
 				<el-button @click="onSupply(row)" link type="primary" v-auth="'business:order:supply'"> 补充 </el-button>
 				<el-button @click="onRevoke(row)" link type="primary" v-auth="'business:order:revoke'"> 撤销 </el-button>
@@ -72,6 +72,14 @@ const props = defineProps({
 			return {};
 		},
 	},
+  maxHeight: {
+    type: [Number, String],
+    default: 300,
+  },
+  readonly: { //只读  不允许操作
+    type: Boolean,
+    default: false,
+  }
 });
 const emit = defineEmits(['handleSelectionChange']);
 const state = reactive<any>({

+ 20 - 103
src/views/business/order/components/Order-detail.vue

@@ -320,43 +320,12 @@
 				</div>
 			</el-collapse-item>
 		</el-collapse>
-		<!-- 延期记录 -->
-		<div v-show="state.activeName === '1'">
-			<el-table :data="state.ruleForm.orderDelays">
-				<el-table-column prop="creatorName" label="延期申请人" show-overflow-tooltip width="120"></el-table-column>
-				<el-table-column prop="creatorOrgName" label="延期申请部门" show-overflow-tooltip width="120"></el-table-column>
-				<el-table-column prop="delayNum" label="延期申请时限" show-overflow-tooltip width="120"></el-table-column>
-				<el-table-column prop="delayUnitText" label="延期申请单位" show-overflow-tooltip width="120"></el-table-column>
-				<el-table-column prop="delayReason" label="申请理由" show-overflow-tooltip width="120"></el-table-column>
-				<el-table-column prop="currentStepName" label="当前办理节点" show-overflow-tooltip width="150"></el-table-column>
-				<el-table-column prop="actualHandlerName" label="当前办理人" show-overflow-tooltip width="150"></el-table-column>
-				<el-table-column prop="delayStateText" label="延期状态" width="100" fixed="right" align="center"></el-table-column>
-				<el-table-column label="延期申请时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss') }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column label="申请前期满时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ dayjs(row.applyDelayTime).format('YYYY-MM-DD HH:mm:ss') }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column label="通过后期满时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ dayjs(row.afterDelay).format('YYYY-MM-DD HH:mm:ss') }}</span>
-					</template>
-				</el-table-column>
-				<template #empty>
-					<Empty />
-				</template>
-			</el-table>
-		</div>
 		<!-- 历史工单 -->
-		<div v-show="state.activeName === '2'">
-			<history-order :formData="state.ruleForm" :orderId="state.orderId" ref="historyOrderRef" />
+		<div v-show="state.activeName === '1'">
+			<history-order :formData="state.ruleForm" :orderId="state.orderId" ref="historyOrderRef" readonly :maxHeight="500"/>
 		</div>
 		<!-- 回访记录 -->
-		<div v-show="state.activeName === '3'">
+		<div v-show="state.activeName === '2'">
 			<el-table :data="state.ruleForm.orderVisits">
 				<el-table-column prop="visitStateText" label="回访状态" show-overflow-tooltip width="100"></el-table-column>
 				<el-table-column prop="visitTypeText" label="回访方式" show-overflow-tooltip width="100"></el-table-column>
@@ -417,7 +386,7 @@
 				</template>
 			</el-table>
 			<template v-if="currentVisitObj">
-				<div class="show-info-form mt20 pd20" style="border: var(--el-border);border-radius: var(--el-border-radius-base)">
+				<div class="show-info-form mt20 pd20" style="border: var(--el-border); border-radius: var(--el-border-radius-base)">
 					<el-form label-width="120px" label-position="left">
 						<el-row :gutter="10">
 							<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
@@ -483,26 +452,8 @@
 				</div>
 			</template>
 		</div>
-		<!-- 甄别记录 -->
-		<div v-show="state.activeName === '4'">
-			<el-table :data="state.ruleForm.orderScreens">
-				<el-table-column prop="statusText" label="甄别状态" show-overflow-tooltip width="150"></el-table-column>
-				<el-table-column prop="creationTime" label="甄别申请时间" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss') }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="creatorName" label="甄别申请人" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="creatorOrgName" label="甄别申请部门" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="typeDicName" label="甄别申请类型" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="content" label="甄别申请原因" show-overflow-tooltip></el-table-column>
-				<template #empty>
-					<Empty />
-				</template>
-			</el-table>
-		</div>
 		<!-- 市民画像 -->
-		<div v-show="state.activeName === '5'" class="flex-center-center">
+		<div v-show="state.activeName === '3'" class="flex-center-center">
 			<div style="max-width: 800px">
 				<citizen-portrait :orderInfo="state.ruleForm" ref="citizenPortraitRef" :editable="false" />
 			</div>
@@ -581,14 +532,14 @@
 </template>
 
 <script setup lang="ts" name="orderDetail">
-import {defineAsyncComponent, reactive, ref} from 'vue';
+import { defineAsyncComponent, reactive, ref } from 'vue';
 import dayjs from 'dayjs';
-import {useRouter} from 'vue-router';
-import {throttle} from '/@/utils/tools';
-import {commonEnum} from '/@/utils/constants';
-import {orderDetail} from '/@/api/business/order';
-import {ElMessage} from 'element-plus';
-import {ola} from '/@/utils/ola_api';
+import { useRouter } from 'vue-router';
+import { throttle } from '/@/utils/tools';
+import { commonEnum } from '/@/utils/constants';
+import { orderDetail } from '/@/api/business/order';
+import { ElMessage } from 'element-plus';
+import { ola } from '/@/utils/ola_api';
 
 // 引入组件
 const OrderExpandDetail = defineAsyncComponent(() => import('/@/views/business/order/components/Order-expand-detail.vue')); // 扩展信息
@@ -619,25 +570,17 @@ const state = reactive<any>({
 			label: '工单详情',
 			value: '0',
 		},
-		{
-			label: '延期记录',
-			value: '1',
-		},
 		{
 			label: '历史工单',
-			value: '2',
+			value: '1',
 		},
 		{
 			label: '回访记录',
-			value: '3',
-		},
-		{
-			label: '甄别记录',
-			value: '4',
+			value: '2',
 		},
 		{
 			label: '市民画像',
-			value: '5',
+			value: '3',
 		},
 	],
 	collapseArr: ['1', '2', '3'], //展开列表
@@ -677,28 +620,6 @@ const getHistoryList = async (id: string) => {
 		state.dialogVisible = false;
 	}
 };
-// 查询回访记录
-const getVisitList = async (id: string) => {
-	state.loading = true;
-	try {
-		state.dialogVisible = true;
-		state.loading = false;
-	} catch (error) {
-		state.loading = false;
-		state.dialogVisible = false;
-	}
-};
-// 查询甄别记录
-const getDiscernList = async (id: string) => {
-	state.loading = true;
-	try {
-		state.dialogVisible = true;
-		state.loading = false;
-	} catch (error) {
-		state.loading = false;
-		state.dialogVisible = false;
-	}
-};
 // 查询市民画像
 const citizenPortraitRef = ref<RefType>(); // 市民画像
 const getPortraitList = async (id: string) => {
@@ -729,8 +650,8 @@ const openDialog = (val: any) => {
 };
 const close = () => {
 	state.activeName = '0';
-  currentVisitObj.value = null;
-  state.ruleForm = {};
+	currentVisitObj.value = null;
+	state.ruleForm = {};
 };
 // 切换tab 查询列表
 const handleClick = (val: string) => {
@@ -738,16 +659,12 @@ const handleClick = (val: string) => {
 		case '0': //工单详情
 			getOrderDetail(state.orderId);
 			break;
-		case '1': // 延期记录
-			break;
-		case '2': // 历史工单
+		case '1': // 历史工单
 			getHistoryList(state.orderId);
 			break;
-		case '3': // 回访记录
-			break;
-		case '4': // 甄别记录
+		case '2': // 回访记录
 			break;
-		case '5': // 市民画像
+		case '3': // 市民画像
 			getPortraitList(state.orderId);
 			break;
 		default:

+ 3 - 3
src/views/business/order/index.vue

@@ -263,7 +263,7 @@
 			/>
 		</el-card>
 		<!-- 工单详情 -->
-		<order-detail ref="OrderDetailRef" @updateList="queryList" />
+		<order-detail ref="orderDetailRef" @updateList="queryList" />
     <!-- 编辑重复性事件 -->
     <repeat-event-edit ref="repeatEventEditRef" @updateList="queryList" />
 	</div>
@@ -424,9 +424,9 @@ const onExport = () => {
 	console.log('导出');
 };
 // 查看详情
-const OrderDetailRef = ref<RefType>();
+const orderDetailRef = ref<RefType>();
 const onOrderDetail = (row: any) => {
-	OrderDetailRef.value.openDialog(row);
+  orderDetailRef.value.openDialog(row);
 };
 // 新增工单
 const onAddWorkOrder = () => {

+ 0 - 651
src/views/quality/index/components/Order-detail.vue

@@ -1,651 +0,0 @@
-<template>
-  <el-dialog v-model="state.dialogVisible" class="order-detail-dialog" draggable ref="dialogRef" width="80%" append-to-body destroy-on-close>
-    <template #header>
-      <el-tabs v-model="state.activeName" @tab-change="handleClick">
-        <el-tab-pane :name="item.value" v-for="item in state.tabPaneList" :key="item.value" :label="item.label"></el-tab-pane>
-      </el-tabs>
-    </template>
-
-    <el-collapse v-model="state.collapseArr" v-if="state.activeName === '0'" class="collapse-box" v-loading="state.loading">
-      <el-collapse-item name="1">
-        <template #title>
-          <p class="pl20">
-            <b class="font14">来电人信息</b>
-          </p>
-        </template>
-        <div class="collapse-container pb1">
-          <el-form label-width="100px" ref="ruleFormRef">
-            <el-row :gutter="10">
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.transferPhone">
-                <el-form-item label="转接来源"> {{ state.ruleForm.transferPhone }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.fromPhone">
-                <el-form-item label="来电号码">
-                  {{ state.ruleForm.fromPhone }}
-                  <el-button plain title="录音文件" size="small" type="primary" class="ml8" @click="recordFile(state.ruleForm.callId)"
-                             v-if="state.ruleForm.callId" >录音文件</el-button>
-                  <!-- <el-popover :width="480" trigger="hover">
-                        <template #reference>
-                          <el-button link type="primary" class="ml5" title="播放录音"><SvgIcon name="ele-Headset" size="16px" /></el-button>
-                        </template>
-                        <AudioPlayer ref="AudioPlayerRef" :url="state.ruleForm.url" />
-                      </el-popover> -->
-                </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.callAddress">
-                <el-form-item label="号码归属地">
-                  {{ state.ruleForm.callAddress }}
-                </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="来电人姓名">
-                  {{ state.ruleForm.fromName }} <span class="ml5"> {{ state.ruleForm.fromGenderText }}</span>
-                </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="来电人性别">
-                  {{ state.ruleForm.fromGenderText }}
-                </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.contact">
-                <el-form-item label="联系电话">
-                  <span v-if="showMaskNumber"> {{ state.ruleForm.contactMask }}</span>
-                  <span v-else>{{ state.ruleForm.contact }}</span>
-                  <el-button plain title="外呼" size="small" type="primary" class="ml8" @click="callPhone(state.ruleForm.contact)">外呼</el-button>
-                  <el-button plain title="查看号码" size="small" type="primary" class="ml8" @click="showMaskNumber = !showMaskNumber">{{
-                      showMaskNumber ? '查看号码' : '隐藏号码'
-                    }}</el-button>
-                </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="来电人身份"> {{ state.ruleForm.identityTypeText }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="受理短信"> {{ state.ruleForm.smsSendedText }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-                <el-form-item label="事发地址"> {{ state.ruleForm.address }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.company">
-                <el-form-item label="工作单位"> {{ state.ruleForm.company }} </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form>
-        </div>
-      </el-collapse-item>
-      <el-collapse-item name="2">
-        <template #title>
-          <p class="pl20">
-            <b class="font14">工单信息</b>
-          </p>
-        </template>
-        <div class="collapse-container pb1">
-          <el-form label-width="100px" ref="ruleFormRef">
-            <el-row :gutter="10">
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="来源方式"> {{ state.ruleForm.sourceChannel }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="受理类型"> {{ state.ruleForm.acceptType }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="工单编码"> {{ state.ruleForm.no }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.fromProvinceNo">
-                <el-form-item label="省工单编码"> {{ state.ruleForm.fromProvinceNo }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="工单类型">
-                  {{ state.ruleForm.orderTypeText }}
-                  <!-- 投诉或者建议并且是12315工单才有扩展信息 -->
-                  <el-button
-                      link
-                      type="primary"
-                      v-if="state.ruleForm.orderType === 1 && (state.ruleForm.acceptType === '30' || state.ruleForm.acceptType === '35')"
-                      class="ml10"
-                      @click="showExpandInfo"
-                  ><SvgIcon name="ele-Document" class="mr2" /> 拓展信息</el-button
-                  >
-                </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="是否重复">
-                  {{ state.ruleForm.duplicateIds && state.ruleForm.duplicateIds.length > 0 ? '是(' + state.ruleForm.duplicateIds.length + '次)' : '否' }}
-                  <el-button
-                      plain
-                      title="查看重复工单"
-                      size="small"
-                      type="primary"
-                      class="ml8"
-                      @click="showRepeatInfo"
-                      v-if="state.ruleForm.duplicateIds && state.ruleForm.duplicateIds.length > 0"
-                  >查看重复工单</el-button
-                  >
-                </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="紧急程度"> {{ state.ruleForm.emergencyLevelText }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="热点分类"> {{ state.ruleForm.hotspotSpliceName }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="受理人">
-                  <span>{{ state.ruleForm?.acceptorName}} <span v-if="state.ruleForm?.acceptorStaffNo">[{{state.ruleForm?.acceptorStaffNo}}]</span></span>
-                </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.incidentTime">
-                <el-form-item label="受理时间"> {{ formatDate(state.ruleForm.incidentTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.pushType">
-                <el-form-item label="推送分类"> {{ state.ruleForm.pushType }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-                <el-form-item label="工单标题">
-                  {{ state.ruleForm.title }} <el-tag class="ml10">{{ state.ruleForm.statusText }}</el-tag>
-                </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-                <el-form-item label="受理内容">
-                  {{ state.ruleForm.content }}
-                </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-auth="'file:list'">
-                <el-form-item label="附件">
-                  <annex-list name="查看附件" readonly :businessId="state.ruleForm.id"  classify="查看附件" />
-                </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form>
-        </div>
-      </el-collapse-item>
-      <el-collapse-item name="3">
-        <template #title>
-          <p class="pl20">
-            <b class="font14">结果信息</b>
-          </p>
-        </template>
-        <div class="collapse-container pb1">
-          <el-form label-width="100px" ref="ruleFormRef">
-            <el-row :gutter="10">
-              <el-col :xs="24" :sm="24" :md="8" :lg="6" :xl="6">
-                <el-form-item label="交办部门"> 热线中心 </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="交办时间"> {{ formatDate(state.ruleForm.centerToOrgTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="办理部门"> {{ state.ruleForm.actualHandleOrgName  }}</el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="办理时间"> {{ formatDate(state.ruleForm.actualHandleTime , 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="工单办理期限"> {{ state.ruleForm.timeLimit }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="工单期满时间"> {{ formatDate(state.ruleForm.expiredTime , 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-                <el-form-item label="办理结果"> {{ state.ruleForm.actualOpinion  }} </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form>
-        </div>
-      </el-collapse-item>
-      <el-collapse-item name="4" v-if="state.supplements && state.supplements.length">
-        <template #title>
-          <p class="pl20">
-            <b class="font14">补充信息</b>
-          </p>
-        </template>
-        <div class="collapse-container">
-          <div v-for="i in state.supplements" :key="i" class="plug-container">
-            <el-form label-width="100px" ref="ruleFormRef" class="pt10 pb10">
-              <el-row :gutter="10">
-                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                  <el-form-item label="补充部门">
-                    {{ i.creator.organization }}
-                  </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                  <el-form-item label="补充时间"> {{ formatDate(i.creationTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-                </el-col>
-                <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                  <el-form-item label="补充人">
-                    {{ i.creator.name }} <span v-if="i.creator.staffNo">[{{ i.creator.staffNo }} ]</span></el-form-item
-                  >
-                </el-col>
-                <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-                  <el-form-item label="补充详情">
-                    {{ i.opinion }}
-                  </el-form-item>
-                </el-col>
-              </el-row>
-            </el-form>
-          </div>
-        </div>
-      </el-collapse-item>
-      <el-collapse-item name="5" v-if="state.workflow.assignOrgs">
-        <template #title>
-          <p class="pl20">
-            <b class="font14">回访信息</b>
-          </p>
-        </template>
-        <div class="collapse-container pb1">
-          <el-form label-width="100px" ref="ruleFormRef">
-            <el-row :gutter="10">
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="语音评价"> {{ state.workflow.assignOrgs }}</el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="话务员评价"> {{ formatDate(state.workflow.assignTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="补充人"> {{ state.workflow.timeLimit }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="被回访部门"> {{ formatDate(state.workflow.expiredTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="办件结果"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="办件态度"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-                <el-form-item label="回访内容"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="被回访部门"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="办件结果"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="办件态度"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-                <el-form-item label="回访内容"> {{ state.workflow.opinion }} </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form>
-        </div>
-      </el-collapse-item>
-      <el-collapse-item name="6" v-if="state.workflow.assignOrgs">
-        <template #title>
-          <p class="pl20">
-            <b class="font14">重办信息</b>
-          </p>
-        </template>
-        <div class="collapse-container pb1">
-          <el-form label-width="100px" ref="ruleFormRef">
-            <el-row :gutter="10">
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="被重办部门"> {{ state.workflow.assignOrgs }}</el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="重办时间"> {{ formatDate(state.workflow.assignTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-                <el-form-item label="重办理由"> {{ state.workflow.timeLimit }} </el-form-item>
-              </el-col>
-              <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-                <el-form-item label="重办原因"> {{ state.workflow.opinion }} </el-form-item>
-              </el-col>
-            </el-row>
-          </el-form>
-        </div>
-      </el-collapse-item>
-    </el-collapse>
-
-    <div v-if="state.activeName === '1'" v-loading="state.loading">
-      <process-time-line :data="state.traces" defaultExpandAll />
-    </div>
-
-    <div v-if="state.activeName === '2'" v-loading="state.loading">
-      <p class="pl20">
-        <b class="font14">回访信息</b>
-      </p>
-      <div class="collapse-container pb1">
-        <el-form label-width="100px" ref="ruleFormRef">
-          <el-row :gutter="10">
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="语音评价"> {{ state.workflow.assignOrgs }}</el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="话务员评价"> {{ formatDate(state.workflow.assignTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="补充人"> {{ state.workflow.timeLimit }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="被回访部门"> {{ formatDate(state.workflow.expiredTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="办件结果"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="办件态度"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-              <el-form-item label="回访内容"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="被回访部门"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="办件结果"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="办件态度"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-              <el-form-item label="回访内容"> {{ state.workflow.opinion }} </el-form-item>
-            </el-col>
-          </el-row>
-        </el-form>
-      </div>
-    </div>
-
-    <div v-if="state.activeName === '3'" v-loading="state.loading">
-      <p class="pl20">
-        <b class="font14">发布信息</b>
-      </p>
-      <div class="collapse-container pb1">
-        <el-form label-width="100px" ref="ruleFormRef">
-          <el-row :gutter="10">
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="语音评价"> {{ state.workflow.assignOrgs }}</el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="话务员评价"> {{ formatDate(state.workflow.assignTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="补充人"> {{ state.workflow.timeLimit }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="被回访部门"> {{ formatDate(state.workflow.expiredTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="办件结果"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="办件态度"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-              <el-form-item label="回访内容"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="被回访部门"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="办件结果"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-              <el-form-item label="办件态度"> {{ formatDate(state.workflow.completeTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-              <el-form-item label="回访内容"> {{ state.workflow.opinion }} </el-form-item>
-            </el-col>
-          </el-row>
-        </el-form>
-      </div>
-    </div>
-    <template #footer>
-			<span class="dialog-footer">
-
-			</span>
-    </template>
-  </el-dialog>
-  <!-- 扩展信息 -->
-  <order-expand-detail ref="orderExpandDetailRef" />
-  <!-- 重复工单 -->
-  <order-repeat ref="orderRepeatRef" />
-</template>
-
-<script setup lang="ts" name="orderDetail">
-import { defineAsyncComponent, reactive, ref } from 'vue';
-import { useRouter } from 'vue-router';
-import { orderDetail } from '/@/api/business/order';
-import { formatDate } from '/@/utils/formatTime';
-import { ElMessage } from 'element-plus';
-import {workflowTraces} from "/@/api/system/workflow";
-import {ola} from "/@/utils/ola_api";
-
-// 引入组件
-const OrderExpandDetail = defineAsyncComponent(() => import('/@/views/business/order/components/Order-expand-detail.vue')); // 扩展信息
-const OrderRepeat = defineAsyncComponent(() => import('/@/views/business/order/components/Order-repeat.vue')); // 重复工单
-const AnnexList = defineAsyncComponent(() => import('/@/components/AnnexList/index.vue')); // 附件列表
-
-// 引入组件
-const ProcessTimeLine = defineAsyncComponent(() => import('/@/components/ProcessTimeLine/index.vue'));
-// const AudioPlayer = defineAsyncComponent(() => import('/@/components/AudioPlayer/index.vue'));
-
-// 定义子组件向父组件传值/事件
-const emit = defineEmits(['updateList', 'handle']);
-// 定义变量内容
-const state = reactive<any>({
-  dialogVisible: false, // 弹窗显示隐藏
-  ruleForm: {
-    // 表单数据
-    url: '',
-    fromGenderText: '',
-    channelText: '',
-    identityTypeText: '',
-    licenceNo: '',
-    contactMask: '',
-    company: '',
-    emergencyLevelText: '',
-    incidentTime: '',
-  } as any,
-  activeName: '0', // tab切换
-  tabPaneList: [
-    // tab列表
-    {
-      label: '工单详情',
-      value: '0',
-    },
-    {
-      label: '流程明细',
-      value: '1',
-    },
-    {
-      label: '回访详情',
-      value: '2',
-    },
-    {
-      label: '发布详情',
-      value: '3',
-    }
-  ],
-  collapseArr: ['1', '2','3'], //展开列表
-  loading: false,
-  supplements: [], // 补充内容
-  workflow: {}, // 工单流程内容
-  orderId: '', //工单id
-  traces: [],
-});
-const showMaskNumber = ref<boolean>(true); // 是否展示号码
-const ruleFormRef = ref<RefType>(); // 表单ref
-const router = useRouter(); // 路由
-// 查看工单详情
-const getOrderDetail = async (id: string) => {
-  state.loading = true;
-  try {
-    const res: any = await orderDetail(id);
-    state.ruleForm = res.result;
-    state.workflow = state.ruleForm?.workflow ?? {};
-    state.supplements = res.result?.workflow?.supplements ?? [];
-    state.loading = false;
-  } catch (error) {
-    state.loading = false;
-  }
-};
-const formatTraces = (val: any) => {
-  if (!val || !val.length) return [];
-  val.forEach((item: any) => {
-    switch (item.expiredStatus) {
-      case 0:
-        item.type = 'success';
-        break;
-      case 1:
-        item.type = 'primary';
-        break;
-      case 2:
-        item.type = 'danger';
-        break;
-
-      default:
-        break;
-    }
-    if (item.traces?.length) {
-      formatTraces(item.traces);
-    }
-  });
-  return val;
-};
-// 查看流程明细
-const getWorkflowTraces = async (id: string) => {
-  state.loading = true;
-  try {
-    // 查询审核记录
-    const res = await workflowTraces(id);
-    state.traces = res.result?.traces ?? [];
-    state.traces = formatTraces(state.traces);
-    state.loading = false;
-  } catch (error) {
-    state.loading = false;
-  }
-};
-// 回访详情
-const getVisitDetail = async (id: string) => {
-  state.loading = true;
-  try {
-
-    state.loading = false;
-  } catch (error) {
-    state.loading = false;
-  }
-};
-// 发布详情
-const getPublishDetail = async (id: string) => {
-  state.loading = true;
-  try {
-
-    state.loading = false;
-  } catch (error) {
-    state.loading = false;
-  }
-};
-// 打开弹窗
-const openDialog = (val: any) => {
-  if (!val || !val.id) {
-    ElMessage.error('工单id不能为空');
-    return;
-  }
-  state.orderId = val.id;
-  if(val.activeName) {
-    state.activeName = val.activeName;//传入查询tab
-    handleClick(val.activeName)
-  }else{
-    getOrderDetail(state.orderId);
-  }
-  state.dialogVisible = true;
-};
-// 切换tab 查询列表
-const handleClick = (val: string) => {
-  switch (val) {
-    case '0': //工单详情
-      getOrderDetail(state.orderId);
-      break;
-    case '1': // 流程明细
-      getWorkflowTraces(state.workflow.id)
-      break;
-    case '2':// 回访详情
-      getVisitDetail(state.orderId)
-      break;
-    case '3': // 发布详情
-      getPublishDetail(state.orderId)
-      break;
-    default:
-      getOrderDetail(state.orderId);
-      break;
-  }
-};
-// 关闭弹窗
-const closeDialog = () => {
-  state.dialogVisible = false;
-};
-// 查看录音文件
-const recordFile = (callId:string)=>{
-  console.log(callId)
-}
-// 电话外呼
-const callPhone = (number: number | string) => {
-  ola.dial(number)
-};
-const orderRepeatRef = ref<RefType>();
-// 展示重复工单列表
-const showRepeatInfo = () => {
-  orderRepeatRef.value.openDialog(state.ruleForm);
-};
-// 展示扩展表单
-const orderExpandDetailRef = ref<RefType>(); // 扩展信息
-const showExpandInfo = () => {
-  let form: any = {};
-  if (state.ruleForm.acceptType === '30') {
-    // 举报
-    form = state.ruleForm.orderReport;
-    form.orderTypeText = '12315市场监管局受理单';
-    form.acceptTypeText = '举报';
-  } else if (state.ruleForm.acceptType === '35') {
-    //投诉
-    form = state.ruleForm.orderComplain;
-    form.orderTypeText = '12315市场监管局受理单';
-    form.acceptTypeText = '投诉';
-  }
-  orderExpandDetailRef.value.openDialog(form);
-};
-// 暴露变量
-defineExpose({
-  openDialog,
-  closeDialog,
-});
-</script>
-<style lang="scss" scoped>
-.collapse-box {
-  :deep(.el-collapse-item__header) {
-    background-color: var(--hotline-bg-main-color);
-    height: 40px;
-    border-radius: var(--el-border-radius-base);
-  }
-  :deep(.el-collapse-item__content) {
-    padding-bottom: 10px !important;
-    .el-form-item {
-      margin-bottom: 5px;
-      .el-form-item__content {
-        line-height: 24px;
-      }
-    }
-  }
-  .collapse-container {
-    padding: 10px;
-    .plug-container {
-      border: var(--el-border);
-      border-radius: var(--el-border-radius-base);
-      margin-bottom: 15px;
-      &:last-child {
-        margin-bottom: 0;
-      }
-    }
-  }
-}
-:deep(.el-tabs__item) {
-  font-size: var(--el-font-size-base);
-}
-</style>
-<style lang="scss">
-.order-detail-dialog {
-}
-</style>

+ 4 - 4
src/views/quality/index/index.vue

@@ -149,7 +149,7 @@
       />
     </el-card>
     <!-- 工单详情 -->
-    <order-detail ref="oderDetailRef"/>
+    <order-detail ref="orderDetailRef" />
     <!-- 质检 -->
     <quality-inspection ref="qualityInspectionRef" @updateList="queryList"/>
   </div>
@@ -164,7 +164,7 @@ import {qualityBaseData, qualityList} from '/@/api/quality'
 import {shortcuts} from "/@/utils/constants";
 
 // 引入组件
-const OrderDetail = defineAsyncComponent(() => import('/@/views/quality/index/components/Order-detail.vue')); // 工单详情
+const OrderDetail = defineAsyncComponent(() => import('/@/views/business/order/components/Order-detail.vue')); // 工单详情
 const QualityInspection = defineAsyncComponent(() => import('/@/views/quality/index/components/Quality-inspection.vue')); // 质检
 // 定义变量内容
 const state = reactive<any>({
@@ -233,9 +233,9 @@ const resetQuery = (formEl: FormInstance | undefined) => {
   queryList();
 };
 // 查看工单详情
-const oderDetailRef = ref<RefType>();
+const orderDetailRef = ref<RefType>();
 const onOrderDetail = (row:any) => {
-  oderDetailRef.value.openDialog(row.order);
+  orderDetailRef.value.openDialog(row.order);
 };
 // 质检
 const qualityInspectionRef = ref<RefType>();