Parcourir la source

reactor:工单受理调整;

zhangchong il y a 7 mois
Parent
commit
5d8263e81e

+ 43 - 19
src/components/ProTable/index.vue

@@ -130,15 +130,15 @@
 </template>
 
 <script setup lang="tsx" name="ProTable">
-import { ref, provide, onMounted, unref, computed, reactive, PropType, watch,h } from 'vue';
+import { ref, provide, onMounted, unref, computed, reactive, PropType, watch, h, nextTick } from 'vue';
 import { ElMessage, ElMessageBox, ElTable } from 'element-plus';
-import {Loading} from "@element-plus/icons-vue"
+import { Loading } from '@element-plus/icons-vue';
 import { useSelection } from '@/hooks/useSelection';
 import { ColumnProps, TypeProps } from '@/components/ProTable/interface';
 import ColSettingCom from './components/ColSetting.vue';
 import TableColumn from './components/TableColumn.vue';
 import { downloadFileByStream } from '@/utils/tools';
-import { useResizeObserver,useWindowSize } from '@vueuse/core';
+import { useResizeObserver, useWindowSize } from '@vueuse/core';
 
 // 接受父组件参数,配置默认值
 const props = defineProps({
@@ -230,6 +230,16 @@ const props = defineProps({
 		type: Boolean,
 		default: false,
 	},
+	isRefreshClearSelection: {
+		// 是否刷新清空选中项
+		type: Boolean,
+		default: true,
+	},
+	selectIds: {
+		// 默认选中的id
+		type: Array,
+		default: () => [],
+	},
 });
 const emit = defineEmits([
 	'dargSort',
@@ -383,7 +393,7 @@ const flatColumnsFunc = (columns: ColumnProps[], flatArr: ColumnProps[] = []) =>
 
 // 过滤需要搜索的配置项 && 排序
 const searchColumns = computed(() => {
-	return flatColumns.value?.filter((item:any) => item.search?.el || item.search?.render).sort((a, b) => a.search!.order! - b.search!.order!);
+	return flatColumns.value?.filter((item: any) => item.search?.el || item.search?.render).sort((a, b) => a.search!.order! - b.search!.order!);
 });
 
 // 设置 搜索表单默认排序 && 搜索表单项的默认值
@@ -400,7 +410,7 @@ const openColSetting = () => colRef.value.openColSetting();
 
 // 刷新事件
 const onRefresh = () => {
-	clearSelection();
+	if (props.isRefreshClearSelection) clearSelection();
 	emit('updateTable');
 };
 // 更新列设置
@@ -414,7 +424,7 @@ const updateColSetting = (test: ColumnProps[]) => {
 };
 // 递归获取isShow的列保持子父级关系
 const findItems = (tree: any, conditionFn: (item: any) => boolean) => {
-	let results:EmptyArrayType = [];
+	let results: EmptyArrayType = [];
 	for (let node of tree) {
 		// 如果当前节点满足条件,则将其添加到结果中,并保留父级关系
 		if (conditionFn(node)) {
@@ -462,7 +472,7 @@ const exportCurrent = () => {
 						emit('exportCurrent', exportNewColumns);
 						exportLoading.value = false;
 					})
-					.catch((e:any) => {
+					.catch((e: any) => {
 						console.log(`导出失败:${e}`);
 						exportLoading.value = false;
 					});
@@ -495,17 +505,17 @@ const exportAll = () => {
 				columnInfos: exportNewColumns,
 				isExportAll: true,
 			};
-			const message =  ElMessage({
+			const message = ElMessage({
 				message: (
 					<div class="flex-center-center">
 						正在导出中,请稍后
-							<Loading class="el-icon is-loading ml5"/>
+						<Loading class="el-icon is-loading ml5" />
 					</div>
 				),
 				type: 'info',
-				duration:0,
-				plain:true,
-			})
+				duration: 0,
+				plain: true,
+			});
 			if (props.isSpecialExport) {
 				const specialRequest = {
 					...props.exportParams,
@@ -520,7 +530,7 @@ const exportAll = () => {
 							exportLoading.value = false;
 							message.close();
 						})
-						.catch((e:any) => {
+						.catch((e: any) => {
 							console.log(`导出失败:${e}`);
 							exportLoading.value = false;
 							message.close();
@@ -535,7 +545,7 @@ const exportAll = () => {
 							exportLoading.value = false;
 							message.close();
 						})
-						.catch((e:any) => {
+						.catch((e: any) => {
 							console.log(`导出失败:${e}`);
 							exportLoading.value = false;
 							message.close();
@@ -554,10 +564,24 @@ watch(
 	// 监听table数据改变后重置选择
 	() => props.data,
 	() => {
-		clearSelection();
+		if (props.isRefreshClearSelection) clearSelection();
+		if (props.selectIds && props.selectIds.length > 0) {
+			// 监听已经选择的数组ID
+			nextTick(() => {
+				tableRef.value!.clearSelection();
+				for (let i of props.selectIds) {
+					for (let j of props.data) {
+						if (i === j.id) {
+							setTimeout(() => {
+								tableRef.value!.toggleRowSelection(j, true);
+							}, 0);
+						}
+					}
+				}
+			});
+		}
 	}
 );
-
 //下载逻辑
 const downloadObj = reactive<any>({
 	fileName: '',
@@ -584,7 +608,7 @@ const download = async () => {
 		},
 	};
 
-	const data:any = await props.exportMethod(params, config);
+	const data: any = await props.exportMethod(params, config);
 
 	//获取文件总大小
 	const arr = data.headers['content-range'].split('/');
@@ -603,7 +627,7 @@ const download = async () => {
 };
 
 //拿到文件总大小downloadObj.range,计算分为多少都段下载
-const chunkUpload = async (params:any, fileName:string, chunkSize:number) => {
+const chunkUpload = async (params: any, fileName: string, chunkSize: number) => {
 	//获取分段下载的数组
 	let chunkList = [];
 	function chunkPush(page = 1) {
@@ -618,7 +642,7 @@ const chunkUpload = async (params:any, fileName:string, chunkSize:number) => {
 	chunkList.push(downloadObj.range);
 	console.log(chunkList, 'chunkList');
 	//分段组合传参格式处理 0-1024 1024-2048
-	let uploadRange:EmptyArrayType = [];
+	let uploadRange: EmptyArrayType = [];
 	chunkList.forEach((item, i) => {
 		if (i == chunkList.length - 1) return;
 

+ 44 - 54
src/views/business/order/components/Order-history.vue

@@ -1,48 +1,50 @@
 <template>
 	<el-dialog v-model="state.dialogVisible" draggable title="历史工单" ref="dialogRef" width="60%" append-to-body>
-		<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
-			<el-form-item label="关键词" prop="Keyword">
-				<el-input v-model="state.queryParams.Keyword" placeholder="工单标题/工单编码" clearable @keyup.enter="handleQuery" class="keyword-input"/>
-			</el-form-item>
-			<el-form-item>
-				<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"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
-			</el-form-item>
-		</el-form>
-		<el-table :data="state.tableData" @selection-change="handleSelectionChange" max-height="500" ref="multipleTableRef" row-key="id">
-			<el-table-column type="selection" label="请选择" width="80" :reserve-selection="true" />
-			<el-table-column prop="phoneNo" label="工单标题" show-overflow-tooltip>
-				<template #default="{ row }">
-					<span class="color-primary">{{ row.title }}</span>
-				</template>
-			</el-table-column>
-			<el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip> </el-table-column>
-			<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="100" fixed="right" align="center"></el-table-column>
-		</el-table>
-		<pagination
-			@pagination="queryList"
+		<ProTable
+			ref="proTableRef"
+			:columns="columns"
+			:data="state.tableData"
+			@updateTable="queryList"
+			:loading="state.loading"
 			:total="state.total"
-			v-model:current-page="state.queryParams.PageIndex"
+			v-model:page-index="state.queryParams.PageIndex"
 			v-model:page-size="state.queryParams.PageSize"
-		/>
+			:toolButton="false"
+			:isRefreshClearSelection="false"
+			:selectIds="state.ruleForm.duplicateIds"
+			max-height="500px"
+		>
+			<template #table-search>
+				<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
+					<el-form-item label="关键词" prop="Keyword">
+						<el-input v-model="state.queryParams.Keyword" placeholder="工单标题/工单编码" clearable @keyup.enter="handleQuery" class="keyword-input"/>
+					</el-form-item>
+					<el-form-item>
+						<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"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
+					</el-form-item>
+				</el-form>
+			</template>
+			<template #title="{ row }">
+				<order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
+			</template>
+		</ProTable>
 		<template #footer>
 			<span class="dialog-footer">
 				<el-button class="default-button" @click="state.dialogVisible = false">取 消</el-button>
-				<el-button type="primary" @click="selectConfirm" :disabled="!multipleSelection.length">确 定</el-button>
+				<el-button type="primary" @click="selectConfirm" :disabled="!canChoose">确 定</el-button>
 			</span>
 		</template>
 	</el-dialog>
 </template>
 
 <script setup lang="ts" name="orderHistory">
-import { reactive, ref, defineAsyncComponent } from 'vue';
+import { reactive, ref, defineAsyncComponent, computed } from 'vue';
 import type { FormInstance } from 'element-plus';
 import { historyOrder } from '@/api/business/order';
 import { useRoute } from 'vue-router';
 
-const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
+const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
 // 引入组件
 const emit = defineEmits(['saveSelect']);
 // 定义变量内容
@@ -58,10 +60,17 @@ const state = reactive<any>({
 	loading: false, // 加载状态
 	ruleForm: {}, // 表单数据
 });
+// 表格配置项
+const columns = ref<any[]>([
+	{ type: 'selection', fixed: 'left', width: 50, align: 'center',reserveSelection:true },
+	{ prop: 'title', label: '工单标题'},
+	{ prop: 'no', label: '工单编码'},
+	{ prop: 'hotspotName', label: '热点分类' },
+	{ prop: 'currentStepName', label: '当前节点' },
+	{ prop: 'statusText', label: '工单状态', width: 100 },
+]);
 const ruleFormRef = ref<RefType>(); // 表单ref
 const route = useRoute(); // 路由
-const multipleSelection = ref<any[]>([]); // 选中的数据
-const multipleTableRef = ref<RefType>(); // 表格ref
 // 打开弹窗
 const openDialog = (row: any) => {
 	state.ruleForm = row;
@@ -96,22 +105,6 @@ const queryList = () => {
 	historyOrder(request)
 		.then((response: any) => {
 			state.tableData = response?.result.items ?? [];
-			multipleTableRef.value!.clearSelection();
-			if (state.ruleForm.duplicateIds && state.ruleForm.duplicateIds.length) {
-				for (let i of state.ruleForm.duplicateIds) {
-					for (let j of state.tableData) {
-						if (i === j.id) {
-							setTimeout(() => {
-								multipleTableRef.value!.toggleRowSelection(j, true);
-								multipleSelection.value.push(j);
-							}, 0);
-						}
-					}
-				}
-			} else {
-				multipleSelection.value = [];
-				multipleTableRef.value!.clearSelection();
-			}
 			state.total = response?.result.total;
 			state.loading = false;
 		})
@@ -119,16 +112,13 @@ const queryList = () => {
 			state.loading = false;
 		});
 };
-// 选择重复件
-const handleSelectionChange = (row: any) => {
-	if (row) {
-		multipleSelection.value = row;
-	}
-};
-
+const proTableRef = ref<RefType>();
+const canChoose = computed(() => {
+	return proTableRef.value?.selectedList.length;
+});
 // 确定选择历史工单
 const selectConfirm = () => {
-	emit('saveSelect', multipleSelection.value);
+	emit('saveSelect', proTableRef.value?.selectedList);
 };
 // 暴露变量
 defineExpose({

+ 128 - 0
src/views/business/order/components/Order-repeat-select.vue

@@ -0,0 +1,128 @@
+<template>
+	<el-dialog v-model="state.dialogVisible" draggable title="重复工单选择" ref="dialogRef" width="60%" append-to-body>
+		<ProTable
+			ref="proTableRef"
+			:columns="columns"
+			:data="state.tableData"
+			@updateTable="queryList"
+			:loading="state.loading"
+			:total="state.total"
+			v-model:page-index="state.queryParams.PageIndex"
+			v-model:page-size="state.queryParams.PageSize"
+			:toolButton="false"
+			:isRefreshClearSelection="false"
+			:selectIds="state.ruleForm.duplicateIds"
+			max-height="500px"
+		>
+			<template #table-search>
+				<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
+					<el-form-item label="关键词" prop="Keyword">
+						<el-input v-model="state.queryParams.Keyword" placeholder="工单标题/工单编码" clearable @keyup.enter="handleQuery" class="keyword-input"/>
+					</el-form-item>
+					<el-form-item>
+						<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"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
+					</el-form-item>
+				</el-form>
+			</template>
+			<template #title="{ row }">
+				<order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
+			</template>
+		</ProTable>
+		<template #footer>
+			<span class="dialog-footer">
+				<el-button class="default-button" @click="state.dialogVisible = false">取 消</el-button>
+				<el-button type="primary" @click="selectConfirm" :disabled="!canChoose">确 定</el-button>
+			</span>
+		</template>
+	</el-dialog>
+</template>
+
+<script setup lang="ts" name="orderHistory">
+import { reactive, ref, defineAsyncComponent, computed } from 'vue';
+import type { FormInstance } from 'element-plus';
+import { historyOrder } from '@/api/business/order';
+import { useRoute } from 'vue-router';
+
+const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
+// 引入组件
+const emit = defineEmits(['saveSelect']);
+// 定义变量内容
+const state = reactive<any>({
+	dialogVisible: false, // 弹窗显示隐藏
+	queryParams: {
+		PageIndex: 1, // 当前页
+		PageSize: 10, // 每页条数
+		Keyword: null, // 关键字
+	},
+	tableData: [], // 表格数据
+	total: 0, // 总条数
+	loading: false, // 加载状态
+	ruleForm: {}, // 表单数据
+});
+// 表格配置项
+const columns = ref<any[]>([
+	{ type: 'selection', fixed: 'left', width: 50, align: 'center',reserveSelection:true },
+	{ prop: 'title', label: '工单标题'},
+	{ prop: 'no', label: '工单编码'},
+	{ prop: 'hotspotName', label: '热点分类' },
+	{ prop: 'currentStepName', label: '当前节点' },
+	{ prop: 'statusText', label: '工单状态', width: 100 },
+]);
+const ruleFormRef = ref<RefType>(); // 表单ref
+const route = useRoute(); // 路由
+// 打开弹窗
+const openDialog = (row: any) => {
+	state.ruleForm = row;
+	queryList();
+	state.dialogVisible = true;
+};
+const dialogRef = ref<RefType>();
+// 关闭弹窗
+const closeDialog = () => {
+	state.dialogVisible = false;
+};
+/** 搜索按钮操作 */
+const handleQuery = () => {
+	state.queryParams.PageIndex = 1;
+	queryList();
+};
+/** 重置按钮操作 */
+const resetQuery = (formEl: FormInstance | undefined) => {
+	if (!formEl) return;
+	formEl.resetFields();
+	handleQuery();
+};
+/** 获取历史工单 */
+const queryList = () => {
+	if (!state.ruleForm.contact) return;
+	state.loading = true;
+	let request = {
+		...state.queryParams,
+		PhoneNo: state.ruleForm.contact,
+		OrderId: route.query.id ?? '', //传入id 排除重复工单选择自己
+	};
+	historyOrder(request)
+		.then((response: any) => {
+			state.tableData = response?.result.items ?? [];
+			state.total = response?.result.total;
+			state.loading = false;
+		})
+		.catch(() => {
+			state.loading = false;
+		});
+};
+const proTableRef = ref<RefType>();
+const canChoose = computed(() => {
+	return proTableRef.value?.selectedList.length;
+});
+// 确定选择历史工单
+const selectConfirm = () => {
+	emit('saveSelect', proTableRef.value?.selectedList);
+};
+// 暴露变量
+defineExpose({
+	openDialog,
+	closeDialog,
+});
+</script>

+ 26 - 20
src/views/business/order/components/Order-repeat.vue

@@ -1,30 +1,28 @@
 <template>
 	<el-dialog v-model="state.dialogVisible" draggable title="重复工单" ref="dialogRef" width="60%" append-to-body>
-		<el-table :data="state.tableData" ref="multipleTableRef">
-			<el-table-column prop="phoneNo" label="工单标题" show-overflow-tooltip>
-				<template #default="{ row }">
-					<span class="color-primary">{{ row.title }}</span>
-				</template>
-			</el-table-column>
-			<el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip> </el-table-column>
-			<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 label="工单状态" show-overflow-tooltip width="100" prop="statusText"></el-table-column>
-		</el-table>
-    <pagination
-      @pagination="queryList"
-      :total="state.total"
-      v-model:current-page="state.queryParams.PageIndex"
-      v-model:page-size="state.queryParams.PageSize"
-    />
+		<ProTable
+			ref="proTableRef"
+			:columns="columns"
+			:data="state.tableData"
+			@updateTable="queryList"
+			:loading="state.loading"
+			:total="state.total"
+			v-model:page-index="state.queryParams.PageIndex"
+			v-model:page-size="state.queryParams.PageSize"
+			:toolButton="false"
+		>
+			<template #title="{ row }">
+				<order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
+			</template>
+		</ProTable>
 	</el-dialog>
 </template>
 
-<script setup lang="ts" name="orderRepeat">
-import { reactive, ref,defineAsyncComponent } from 'vue';
+<script setup lang="tsx" name="orderRepeat">
+import { reactive, ref, defineAsyncComponent } from 'vue';
 import { duplicateOrder } from '@/api/business/order';
 
-const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
+const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
 // 定义变量内容
 const state = reactive<any>({
 	dialogVisible: false, // 弹窗显示隐藏
@@ -37,6 +35,14 @@ const state = reactive<any>({
 	loading: false, // 加载状态
 	ruleForm: {}, // 表单数据
 });
+// 表格配置项
+const columns = ref<any[]>([
+	{ prop: 'title', label: '工单标题', minWidth: 200 },
+	{ prop: 'no', label: '工单编码', minWidth: 140 },
+	{ prop: 'hotspotName', label: '热点分类' },
+	{ prop: 'currentStepName', label: '当前节点' },
+	{ prop: 'statusText', label: '重办次数', width: 100 },
+]);
 // 打开弹窗
 const openDialog = (row: any) => {
 	state.ruleForm = row;

+ 1 - 1
src/views/business/order/copy-index.vue

@@ -2,7 +2,7 @@
 	<div class="business-order-container layout-padding">
 		<div class="layout-padding-auto layout-padding-view pd20">
 			<template v-if="showTotal">
-				<<ProTable
+				<ProTable
 				ref="proTableRef"
 				:columns="columns"
 				:data="state.tableData"

+ 26 - 9
src/views/business/special/components/Special-apply-order.vue

@@ -1,8 +1,17 @@
 <template>
 	<!-- 工单详情发起特提 -->
-	<el-dialog v-model="state.dialogVisible" draggable title="特提申请" width="50%" append-to-body destroy-on-close @close="close" 	@mouseup="mouseup"
-						 :style="'transform: ' + state.transform + ';'"
-						 ref="dialogRef">
+	<el-dialog
+		v-model="state.dialogVisible"
+		draggable
+		title="特提申请"
+		width="50%"
+		append-to-body
+		destroy-on-close
+		@close="close"
+		@mouseup="mouseup"
+		:style="'transform: ' + state.transform + ';'"
+		ref="dialogRef"
+	>
 		<div class="collapse-container">
 			<el-form label-width="110px" ref="ruleFormRef" :model="state.ruleForm">
 				<el-row :gutter="35">
@@ -42,7 +51,8 @@
                 </el-row>
               </el-form-item>
             </el-col>-->
-						<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+						<!-- 自贡不需要展示办理对象 -->
+						<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" v-if="['YiBin'].includes(themeConfig.appScope)">
 							<el-form-item label="办理对象" prop="nextHandlers" :rules="[{ required: true, message: '请选择办理对象', trigger: 'change' }]">
 								<el-select-v2
 									v-model="state.ruleForm.nextHandlers"
@@ -60,13 +70,18 @@
 							</el-form-item>
 						</el-col>
 					</template>
-					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" v-if="['YiBin'].includes(themeConfig.appScope)">
 						<el-form-item label="特提原因" prop="cause" :rules="[{ required: true, message: '请选择特提原因', trigger: 'change' }]">
 							<el-select v-model="state.ruleForm.cause" placeholder="请选择特提原因" class="w100">
 								<el-option v-for="item in specialReason" :value="item.dicDataName" :key="item.dicDataName" :label="item.dicDataName" />
 							</el-select>
 						</el-form-item>
 					</el-col>
+					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" v-if="['ZiGong'].includes(themeConfig.appScope)">
+						<el-form-item label="特提次数" prop="cause">
+							{{ state.orderDetail.id }}
+						</el-form-item>
+					</el-col>
 					<!--					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 						<el-form-item label="" prop="alterTime">
 							<el-checkbox v-model="state.ruleForm.alterTime" label="无需计算期满时间" />
@@ -106,6 +121,7 @@ import { specialApplyBase, specialApply } from '@/api/business/special';
 import { orderTimeConfig } from '@/api/business/order';
 import { storeToRefs } from 'pinia';
 import { useUserInfo } from '@/stores/userInfo';
+import { useThemeConfig } from '@/stores/themeConfig';
 import { commonEnum } from '@/utils/constants';
 
 // 引入组件
@@ -123,8 +139,8 @@ const state = reactive<any>({
 		timeLimitUnit: 2, // 期满时间单位
 		alterTime: true, // 是否修改期满时间
 		nextHandlers: [], // 办理对象
-    stepType:null,
-		reason:'',
+		stepType: null,
+		reason: '',
 	},
 	orderDetail: {}, // 工单详情
 	workflowId: null, // 工作流id
@@ -181,8 +197,9 @@ const mouseup = () => {
 // 选择节点确定处理对象
 const stores = useUserInfo();
 const { userInfos } = storeToRefs(stores);
+const storesThemeConfig = useThemeConfig();
+const { themeConfig } = storeToRefs(storesThemeConfig);
 const selectTrace = (val: any, choose?: boolean) => {
-
 	const next = steps.value.find((item) => item.key === val);
 	if (choose) state.ruleForm.nextStepCode = val;
 	state.ruleForm.nextStepName = next?.value;
@@ -191,7 +208,7 @@ const selectTrace = (val: any, choose?: boolean) => {
 	state.ruleForm.handlerType = next.handlerType;
 	ruleFormRef.value?.resetFields('nextHandlers');
 	stepsItems.value = next?.items ?? [];
-  state.ruleForm.stepType = next.stepType;
+	state.ruleForm.stepType = next.stepType;
 	stepsItems.value = stepsItems.value.map((item: any) => {
 		return {
 			value: {

+ 10 - 14
src/views/todo/seats/accept/zgAccept.vue

@@ -232,17 +232,14 @@
 									</el-form-item>
 								</el-col>-->
 								<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-									<el-form-item label="推送分类" prop="pushTypeObj" :rules="[{ required: false, message: '请选择推送分类', trigger: 'change' }]">
+									<el-form-item label="推送分类" prop="orderPushTypes" :rules="[{ required: false, message: '请选择推送分类', trigger: 'change' }]">
 										<el-select
-											v-model="state.ruleForm.pushTypeObj"
+											v-model="state.ruleForm.orderPushTypes"
 											placeholder="请选择推送分类"
 											class="w100"
 											clearable
 											value-key="dicDataValue"
-											@change="(val:any) => {
-											state.ruleForm.pushType = val?.dicDataName ?? null;
-											state.ruleForm.pushTypeCode = val?.dicDataValue ?? null;
-										}"
+											@change="selectPushType"
 										>
 											<el-option v-for="item in state.pushTypeOptions" :key="item.dicDataValue" :label="item.dicDataName" :value="item" />
 										</el-select>
@@ -568,6 +565,7 @@ const state = reactive<any>({
 		isSensitiveWorkOrders: false, // 是否敏感类工单
 		isUrgent: false, // 是否紧急工单
 		company: null, // 工作单位
+		orderPushTypes:[], // 推送分类多选
 	},
 	formLoading: false, // 表单加载状态
 	hotspotExternal: [], // 热点分类外部数据
@@ -845,7 +843,7 @@ const changeFocusEvent = (val: string[]) => {
 };
 // 删除不必要的属性
 const deleteUnnecessaryProperties = (obj: any) => {
-	const propertiesToDelete = ['ageRangeObj', 'pushTypeObj', 'licenceTypeObj', 'channel', 'acceptTypeObj', 'transpondCity', 'orderTagObj'];
+	const propertiesToDelete = ['ageRangeObj', 'licenceTypeObj', 'channel', 'acceptTypeObj', 'transpondCity', 'orderTagObj'];
 	propertiesToDelete.forEach((prop) => Reflect.deleteProperty(obj, prop));
 };
 const filesFormat = ref<EmptyArrayType>([]); // 附件列表格式化
@@ -903,6 +901,11 @@ const save = throttle((formEl: FormInstance | undefined) => {
 		}
 	});
 }, 300);
+// 选择推送分类
+const selectPushType = (val: any) => {
+	// state.ruleForm.pushTypeObj = val;
+	console.log(val,'1111')
+};
 // 选择来点人身份如果是企业 推送分类自动选择助企纾困
 const selectIdentity = (val: number) => {
 	if (val === 2) {
@@ -1136,13 +1139,6 @@ const loadForm = async () => {
 					dicDataName: state.ruleForm.acceptType,
 				};
 			}
-			if (state.ruleForm.pushTypeCode) {
-				state.ruleForm.pushTypeObj = {
-					// 推送分类
-					dicDataValue: state.ruleForm.pushTypeCode,
-					dicDataName: state.ruleForm.pushType,
-				};
-			}
 			if (state.ruleForm.orderTagCode) {
 				state.ruleForm.orderTagObj = {
 					// 工单标签