Jelajahi Sumber

reactor:工单受理和办理弹窗调整;

zhangchong 10 bulan lalu
induk
melakukan
379028da13

+ 16 - 1
src/components/ProTable/index.vue

@@ -169,6 +169,14 @@ const props = defineProps({
 		type: Boolean,
 		default: false,
 	},
+  exportMethod: { // 导出方法
+    type: Function,
+    default: () => {},
+  },
+  exportParams: { // 导出参数
+    type: Object,
+    default: () => {},
+  }
 });
 const emit = defineEmits([
 	'dargSort',
@@ -344,7 +352,14 @@ const exportCurrent = () => {
 		autofocus: false,
 	})
 		.then(() => {
-			emit('exportCurrent', exportNewColumns, exportNewColumnsProp);
+      const request = {
+        queryDto: props.exportParams,
+        columnInfos:exportNewColumns,
+        isExportAll:false,
+      };
+      console.log(request,props.exportMethod)
+      props.exportMethod && props.exportMethod(request);
+      emit('exportCurrent', exportNewColumns, exportNewColumnsProp);
 		})
 		.catch(() => {});
 };

+ 18 - 3
src/components/ProcessAudit/index.vue

@@ -6,10 +6,12 @@
 		ref="dialogRef"
 		@mouseup="mouseup"
 		:style="'transform: ' + state.transform + ';'"
-		append-to-body
 		destroy-on-close
 		:close-on-click-modal="false"
 		@close="close"
+    :modal="false"
+    modal-class="modal_class"
+    class="dialog_class"
 	>
 		<el-steps :active="activeStep" align-center finish-status="success" class="mb20" v-if="showStepsArr.includes(state.processType)">
 			<el-step title="业务表单" />
@@ -530,7 +532,6 @@ const { AppConfigInfo } = storeToRefs(appConfigStore); // 系统配置信息
 
 const timeType = ref<EmptyArrayType>([]); // 延期申请单位
 const screenTypeOptions = ref<EmptyArrayType>([]); // 甄别类型
-
 // 打开弹窗
 const openDialog = async (val: any) => {
 	console.log(val);
@@ -911,7 +912,7 @@ const afterSubmit = (emitType?: 'orderProcessSuccess' | 'orderProcessFailed', sh
 	closeDialog();
 	const msg = message ?? '操作成功';
 	if (showMessage) ElMessage.success(msg);
-	if (emitType) emit(emitType);
+	if (emitType) emit(emitType,currentRouteInfo.value);
 };
 const close = () => {
 	restForm(ruleFormRef.value);
@@ -1219,3 +1220,17 @@ defineExpose({
 	closeDialog,
 });
 </script>
+<style lang="scss">
+.modal_class {
+  pointer-events: none;
+  height: 100%;
+}
+.dialog_class {
+  pointer-events: auto;
+  flex-direction: column;
+  margin: 0 !important;
+  position: absolute;
+  top: 20%;
+  left: 25%;
+}
+</style>

+ 0 - 20
src/views/business/visit/component/Smart-visit-Detail.vue

@@ -31,21 +31,6 @@
       <template #title="{ row }">
         <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
       </template>
-      <!--			<template #bmbjtd="{ row }">
-        <span v-for="item in row.orderVisit?.orderVisitDetails">
-          <span v-if="item.visitTarget === 20">{{ item.orgHandledAttitude?.value }}</span>
-        </span>
-      </template>-->
-      <template #bmsflx="{ row }">
-				<span v-for="item in row.orderVisit?.orderVisitDetails">
-					<span v-if="item.visitTarget === 20">{{ item.isContact === null ? '' : item.isContact === true ? '是' : '否' }}</span>
-				</span>
-      </template>
-      <template #cljg="{ row }">
-				<span v-for="item in row.orderVisit?.orderVisitDetails">
-					<span v-if="item.visitTarget === 20">{{ item.volved === null ? '' : item.volved === true ? '已得到解决' : '未得到解决' }}</span>
-				</span>
-      </template>
     </ProTable>
     <!-- 分页 -->
     <pagination
@@ -121,11 +106,6 @@ const columns = ref<any[]>([
     prop: 'orgProcessingResults',
     width: 170,
   },
-  /*	{
-    label: '部门办件态度',
-    prop: 'bmbjtd',
-    width: 170,
-  },*/
   {
     label: '部门是否联系',
     prop: 'isContact',

+ 5 - 1
src/views/business/visit/smart.vue

@@ -43,6 +43,8 @@
 				:toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
 				@export-current="exportTable($event)"
 				@export-all="exportTable($event, true)"
+        :exportMethod="getSmartVisitExport"
+        :exportParams="exportParams"
 			>
 				<template #tableHeader="scope">
 					<el-button type="primary" @click="onAddVisit" v-auth="'business:visit:smart:add'">
@@ -96,7 +98,7 @@
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
 import { formatDate } from '@/utils/formatTime';
-import { getSmartVisitBaseData, getSmartVisitExport, getSmartVisitList } from "@/api/smartVisit";
+import {getSmartVisitBaseData, getSmartVisitDetailExport, getSmartVisitExport, getSmartVisitList} from "@/api/smartVisit";
 import { smartCallOutTaskExport, smartCallOutTaskPause, smartCallOutTaskStart, smartCallOutTaskStop } from "@/api/auxiliary/smartCallOut";
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import Other from '@/utils/other';
@@ -147,6 +149,7 @@ const handleQuery = () => {
 	state.queryParams.PageIndex = 1;
 	queryList();
 };
+const exportParams = ref({});
 // 获取参数列表
 const queryList = () => {
 	state.loading = true;
@@ -154,6 +157,7 @@ const queryList = () => {
 	request.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
 	request.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
 	Reflect.deleteProperty(request, 'crTime');
+  exportParams.value = request;
 	getSmartVisitList(request)
 		.then((res) => {
 			state.loading = false;

+ 31 - 26
src/views/todo/seats/accept/index.vue

@@ -1016,7 +1016,7 @@ const save = throttle((formEl: FormInstance | undefined) => {
 				.then(() => {
 					buttonLoading.value = false;
 					ElMessage.success('操作成功');
-					orderProcessSuccess();
+					onCancel();
 				})
 				.catch(() => {
 					buttonLoading.value = false;
@@ -1115,14 +1115,16 @@ const chooseAdvice = (item: any) => {
 // 流程提交成功
 const orderProcessSuccess = () => {
 	mittBus.emit('clearCache', 'todoSeats');
-	// mittBus.emit('clearCache', ['order', 'todoSeats', 'todoOrder', 'todoCenter', 'callLog']);
 	mittBus.emit('clearCachePage', ['order', 'todoOrder', 'todoCenter', 'callLog']);
-	// 关闭当前 tagsView
-	mittBus.emit('onCurrentContextmenuClick', Object.assign({}, { contextMenuClickId: 1, ...route }));
+	// 关闭打开页面 tagsView
+	mittBus.emit('onCurrentContextmenuClick', { contextMenuClickId: 1, ...route });
 };
 // 取消
 const onCancel = () => {
-	orderProcessSuccess();
+	mittBus.emit('clearCache', 'todoSeats');
+	mittBus.emit('clearCachePage', ['order', 'todoOrder', 'todoCenter', 'callLog']);
+	// 关闭当前 tagsView
+	mittBus.emit('onCurrentContextmenuClick', Object.assign({}, { contextMenuClickId: 1, ...route }));
 };
 // 一建填单
 const orderOverwrite = (val: any) => {
@@ -1167,29 +1169,32 @@ const loadBaseData = async () => {
 // 如果是修改加载表单内容
 const loadForm = async () => {
 	state.formLoading = true;
-	//  route.query.createBy  createBy 代表来源  tel:来电弹单  letter:互联网来信 默认表示手动创建
-	state.createBy = route.query.createBy;
-	if (route.query.createBy === 'tel') {
-		//通话
-		state.ruleForm.sourceChannel = '电话'; //电话
-		state.ruleForm.sourceChannelCode = 'RGDH'; //电话
-		state.ruleForm.fromPhone = route.query.fromTel; // 来电号码
-		state.ruleForm.contact = route.query.fromTel; // 联系电话
-		state.ruleForm.callId = route.query.callId; // 通话id
-		state.ruleForm.transferPhone = route.query.transfer; // 转接来源
-		state.ruleForm.channel = {
-			// 来源渠道
-			dicDataValue: state.ruleForm.sourceChannelCode,
-			dicDataName: state.ruleForm.sourceChannel,
-		};
-		const isNumberIdentityType = parseInt(<string>route.query.identityType);
-		if ([1, 2].includes(isNumberIdentityType)) {
-			// 按键接收(1:市民 2:企业 3:智能应答)
-			state.ruleForm.identityType = isNumberIdentityType;
-		} else {
-			state.ruleForm.identityType = 1;
+	if (route.query.createBy) {
+		//  route.query.createBy  createBy 代表来源  tel:来电弹单  letter:互联网来信 默认表示手动创建
+		state.createBy = route.query.createBy;
+		if (route.query.createBy === 'tel') {
+			//通话
+			state.ruleForm.sourceChannel = '电话'; //电话
+			state.ruleForm.sourceChannelCode = 'RGDH'; //电话
+			state.ruleForm.fromPhone = route.query.fromTel; // 来电号码
+			state.ruleForm.contact = route.query.fromTel; // 联系电话
+			state.ruleForm.callId = route.query.callId; // 通话id
+			state.ruleForm.transferPhone = route.query.transfer; // 转接来源
+			state.ruleForm.channel = {
+				// 来源渠道
+				dicDataValue: state.ruleForm.sourceChannelCode,
+				dicDataName: state.ruleForm.sourceChannel,
+			};
+			const isNumberIdentityType = parseInt(<string>route.query.identityType);
+			if ([1, 2].includes(isNumberIdentityType)) {
+				// 按键接收(1:市民 2:企业 3:智能应答)
+				state.ruleForm.identityType = isNumberIdentityType;
+			} else {
+				state.ruleForm.identityType = 1;
+			}
 		}
 	}
+
 	if (route.query.id) {
 		// 如果 有id
 		state.orderId = route.query.id;

+ 72 - 69
src/views/todo/seats/index.vue

@@ -12,71 +12,71 @@
 							<el-input v-model="state.queryParams.Keyword" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
 						</el-form-item>
 					</el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <el-form-item label="工单编码" prop="No">
-              <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
-          </el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <el-form-item label="生成时间" prop="scTime">
-              <el-date-picker
-                v-model="state.queryParams.scTime"
-                type="datetimerange"
-                unlink-panels
-                range-separator="至"
-                start-placeholder="开始时间"
-                end-placeholder="结束时间"
-                :shortcuts="shortcuts"
-                @change="handleQuery"
-                value-format="YYYY-MM-DD[T]HH:mm:ss"
-                :default-time="defaultTimeStartEnd"
-              />
-            </el-form-item>
+						<el-form-item label="工单编码" prop="No">
+							<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+						</el-form-item>
 					</el-col>
-          <transition name="el-zoom-in-top">
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6"  v-show="!searchCol">
-						<el-form-item label="是否会签" prop="IsCounterSign">
-							<el-select v-model="state.queryParams.IsCounterSign" placeholder="请选择是否会签" @change="handleQuery" class="w100">
-								<el-option label="是" value="true" />
-								<el-option label="否" value="false" />
-							</el-select>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label="生成时间" prop="scTime">
+							<el-date-picker
+								v-model="state.queryParams.scTime"
+								type="datetimerange"
+								unlink-panels
+								range-separator="至"
+								start-placeholder="开始时间"
+								end-placeholder="结束时间"
+								:shortcuts="shortcuts"
+								@change="handleQuery"
+								value-format="YYYY-MM-DD[T]HH:mm:ss"
+								:default-time="defaultTimeStartEnd"
+							/>
 						</el-form-item>
 					</el-col>
-          </transition>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="是否紧急" prop="IsUrgent">
-                <el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable class="w100" @change="handleQuery">
-                  <el-option :value="true" label="紧急" />
-                  <el-option :value="false" label="不紧急" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6"  v-show="!searchCol">
-            <el-form-item label="是否省工单" prop="IsProvince">
-              <el-select v-model="state.queryParams.IsProvince" placeholder="请选择是否省工单" @change="handleQuery" class="w100">
-                <el-option label="是" value="true" />
-                <el-option label="否" value="false" />
-              </el-select>
-            </el-form-item>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="是否会签" prop="IsCounterSign">
+								<el-select v-model="state.queryParams.IsCounterSign" placeholder="请选择是否会签" @change="handleQuery" class="w100">
+									<el-option label="是" value="true" />
+									<el-option label="否" value="false" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top" v-show="!searchCol">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+							<el-form-item label="是否紧急" prop="IsUrgent">
+								<el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable class="w100" @change="handleQuery">
+									<el-option :value="true" label="紧急" />
+									<el-option :value="false" label="不紧急" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="是否省工单" prop="IsProvince">
+								<el-select v-model="state.queryParams.IsProvince" placeholder="请选择是否省工单" @change="handleQuery" class="w100">
+									<el-option label="是" value="true" />
+									<el-option label="否" value="false" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label="">
+							<div class="flex-end w100">
+								<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
+								<el-button @click="resetQuery(ruleFormRef)" class="default-button" :loading="state.loading">
+									<SvgIcon name="ele-Refresh" class="mr5" />重置
+								</el-button>
+								<el-button link type="primary" @click="closeSearch" :loading="state.loading">
+									{{ searchCol ? '展开' : '收起' }}
+									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+								</el-button>
+							</div>
+						</el-form-item>
 					</el-col>
-          </transition>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <el-form-item label="">
-              <div class="flex-end w100">
-                <el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-                <el-button @click="resetQuery(ruleFormRef)" class="default-button" :loading="state.loading">
-                  <SvgIcon name="ele-Refresh" class="mr5" />重置
-                </el-button>
-                <el-button link type="primary" @click="closeSearch" :loading="state.loading">
-                  {{ searchCol ? '展开' : '收起' }}
-                  <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-                </el-button>
-              </div>
-            </el-form-item>
-          </el-col>
 				</el-row>
 			</el-form>
 			<!-- 表格 -->
@@ -290,7 +290,10 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 // 新增工单
 const onAddOrder = () => {
 	router.push({
-		name: 'orderAccept'
+		name: 'orderAccept',
+    query:{
+      timeStamp: new Date().getTime()
+    }
 	});
 };
 // 编辑工单
@@ -368,12 +371,12 @@ onMounted(() => {
 </script>
 <style scoped lang="scss">
 .todo-order-container {
-  .arrow {
-    transition: transform var(--el-transition-duration);
-    cursor: pointer;
-  }
-  .arrow.is-reverse {
-    transform: rotateZ(-180deg);
-  }
+	.arrow {
+		transition: transform var(--el-transition-duration);
+		cursor: pointer;
+	}
+	.arrow.is-reverse {
+		transform: rotateZ(-180deg);
+	}
 }
-</style>
+</style>