Explorar o código

reactor:随手拍对接;

zhangchong hai 4 meses
pai
achega
d79c1de17a

+ 340 - 86
src/views/snapshot/reAudit/citizenTwenty/index.vue

@@ -4,48 +4,49 @@
 			<vxe-grid v-bind="gridOptions" ref="gridRef" @checkbox-all="selectAllChangeEvent" @checkbox-change="selectChangeEvent">
 				<template #form>
 					<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent :disabled="gridOptions.loading">
-						<el-form-item label="发送状态" prop="isPass">
-							<el-radio-group v-model="state.queryParams.isPass">
-								<el-radio value="0">审批中</el-radio>
-								<el-radio value="1">审批同意</el-radio>
-								<el-radio value="2">审批拒绝</el-radio>
-								<el-radio value="3">全部</el-radio>
-							</el-radio-group>
+						<el-form-item label="审批状态" prop="Status">
+							<el-select v-model="state.queryParams.Status" class="w100" placeholder="请选择审批状态" @change="handleQuery">
+								<el-option v-for="item in statusOptions" :key="item.key" :label="item.value" :value="item.key" />
+							</el-select>
 						</el-form-item>
-						<el-form-item label="工单编码" prop="CaseName">
-							<el-input
-								v-model="state.queryParams.CaseName"
-								placeholder="请填写工单编码"
-								clearable
-								@keyup.enter="handleQuery"
-								class="keyword-input"
-							/>
+						<el-form-item label="工单编码" prop="No">
+							<el-input v-model="state.queryParams.No" placeholder="请填写工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
 						</el-form-item>
-						<el-form-item label="工单标题" prop="IndustryName">
-							<el-input
-								v-model="state.queryParams.IndustryName"
-								placeholder="请填写工单标题"
-								clearable
-								@keyup.enter="handleQuery"
-								class="keyword-input"
-							/>
+						<el-form-item label="工单标题" prop="Title">
+							<el-input v-model="state.queryParams.Title" 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-button @click="drawer = true" class="default-button"> <SvgIcon name="ele-Search" class="mr5" />更多查询</el-button>-->
+							<el-button @click="drawer = true" class="default-button"> <SvgIcon name="ele-Search" class="mr5" />更多查询</el-button>
 						</el-form-item>
 					</el-form>
 				</template>
-				<template #statusText="{ row }">
-					<el-text type="danger" tag="b" v-if="[1, 2, 3, 9, 101, 102, 103, 104, 105, 200].includes(row.status)">{{ row.statusText }}</el-text>
-					<span v-else>{{ row.statusText }}</span>
+				<template #toolbar_buttons>
+					<!--
+						v-if="state.queryParams.Status === 1"-->
+					<!--					<el-button type="primary" @click="onRemark" :disabled="isChecked" v-auth="'snapshot:reAudit:citizenTwenty:remark'">
+						<SvgIcon name="ele-Plus" class="mr5" />添加备注
+					</el-button>
+					<el-button type="primary" @click="onSupply" v-auth="'snapshot:reAudit:citizenTwenty:supply'" :disabled="isChecked" :loading="state.loading"
+						><SvgIcon name="ele-Plus" class="mr5" />补充发放
+					</el-button>-->
+				</template>
+				<template #statusTxt="{ row }">
+					<el-text type="danger" tag="b" v-if="[1, 2, 3, 9, 101, 102, 103, 104, 105, 200].includes(row.status)">{{ row.statusTxt }}</el-text>
+					<span v-else>{{ row.statusTxt }}</span>
 				</template>
 				<template #order_detail="{ row }">
-					<order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
+					<order-detail :order="{ id: row.orderId }" @updateList="queryList">{{ row.title }}</order-detail>
 				</template>
 				<template #action="{ row }">
-					<el-button link type="primary" @click="onAudit(row)"> 审批 </el-button>
+					<template v-if="state.queryParams.Status === 0">
+						<el-button link type="primary" @click="onAudit(row)" v-auth="'snapshot:reAudit:citizenTwenty:audit'"> 审批 </el-button>
+						<el-button link type="danger" @click="onReturn(row)" v-auth="'snapshot:reAudit:citizenTwenty:return'"> 退回 </el-button>
+					</template>
+					<template v-if="state.queryParams.Status === 1">
+						<el-button link type="primary" @click="onRemark(row)" v-auth="'snapshot:reAudit:citizenTwenty:remark'"> 添加备注 </el-button>
+						<el-button link type="primary" @click="onSupply(row)" v-auth="'snapshot:reAudit:citizenTwenty:supply'"> 补充发放 </el-button>
+					</template>
 				</template>
 				<template #pager>
 					<pagination
@@ -60,10 +61,38 @@
 		</div>
 		<!--	更多查询	-->
 		<el-drawer v-model="drawer" title="更多查询" size="500px">
-			<el-form :model="state.queryParams" ref="drawerRuleFormRef" @submit.native.prevent label-width="100px">
-				<el-form-item label="增加时间" prop="zjTime">
+			<el-form :model="state.queryParams" ref="drawerRuleFormRef" @submit.native.prevent label-width="110px">
+				<el-form-item label="受理时间" prop="slTime">
+					<el-date-picker
+						v-model="state.queryParams.slTime"
+						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="spTime">
+					<el-date-picker
+						v-model="state.queryParams.spTime"
+						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="bjTime">
 					<el-date-picker
-						v-model="state.queryParams.zjTime"
+						v-model="state.queryParams.bjTime"
 						type="datetimerange"
 						unlink-panels
 						range-separator="至"
@@ -75,24 +104,86 @@
 						:default-time="defaultTimeStartEnd"
 					/>
 				</el-form-item>
+				<el-form-item label="来电人电话" prop="FromPhone">
+					<el-input v-model="state.queryParams.FromPhone" placeholder="请填写来电人电话" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="网格员是否办理" prop="IsDeal">
+					<el-select v-model="state.queryParams.IsDeal" class="w100" placeholder="请选择网格员是否办理" @change="handleQuery" clearable>
+						<el-option label="是" :value="true" />
+						<el-option label="否" :value="false" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="部门是否属实" prop="IsTruthDepartment">
+					<el-select v-model="state.queryParams.IsTruthDepartment" class="w100" placeholder="请选择部门是否属实" @change="handleQuery" clearable>
+						<el-option label="是" :value="true" />
+						<el-option label="否" :value="false" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="网格员是否属实" prop="IsTruth">
+					<el-select v-model="state.queryParams.IsTruth" class="w100" placeholder="请选择网格员是否属实" @change="handleQuery" clearable>
+						<el-option label="是" :value="true" />
+						<el-option label="否" :value="false" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="是否发放红包" prop="IsIssued">
+					<el-select v-model="state.queryParams.IsIssued" class="w100" placeholder="请选择是否发放红包" @change="handleQuery" clearable>
+						<el-option label="是" :value="true" />
+						<el-option label="否" :value="false" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="行业类型" prop="IndustryId">
+					<el-select v-model="state.queryParams.IndustryId" class="w100" placeholder="请选择行业类型" @change="handleQuery" clearable>
+						<el-option v-for="item in industryOptions" :key="item.id" :label="item.name" :value="item.id" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="配置金额" prop="ConfigAmount">
+					<el-select v-model="state.queryParams.ConfigAmount" class="w100" placeholder="请选择配置金额" @change="handleQuery">
+						<el-option v-for="item in configAmountOptions" :key="item" :label="item" :value="item" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="实发金额" prop="AcutalAmount">
+					<el-input v-model="state.queryParams.AcutalAmount" placeholder="请填写实发金额" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="审批(应发)金额" prop="ApprovedAmount" label-width="130px">
+					<el-input v-model="state.queryParams.ApprovedAmount" placeholder="请填写审批(应发)金额" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
+				<el-form-item label="是否安全生产" prop="IsIssued">
+					<el-select v-model="state.queryParams.IsDanger" class="w100" placeholder="请选择是否安全生产" @change="handleQuery" clearable>
+						<el-option label="是" :value="true" />
+						<el-option label="否" :value="false" />
+					</el-select>
+				</el-form-item>
 			</el-form>
 			<template #footer>
 				<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
 				<el-button @click="resetQuery(drawerRuleFormRef)" class="default-button"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
 			</template>
 		</el-drawer>
+		<!--	红包审批	-->
+		<re-audit ref="reAuditRef" @updateList="queryList" />
+		<!--	红包退回	-->
+		<re-return ref="reReturnRef" @updateList="queryList" />
+		<!--	红包补充	-->
+		<re-supply ref="reSupplyRef" @updateList="queryList" />
+		<!--	红包备注	-->
+		<re-remark ref="reRemarkRef" @updateList="queryList" />
 	</div>
 </template>
 
 <script lang="tsx" setup name="snapshotReAuditCitizenTwenty">
 import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
-import { FormInstance } from 'element-plus';
-import { getClueList } from '@/api/snapshot/config';
+import { ElMessage, FormInstance } from 'element-plus';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import { getCitizenRedEnvelopeApprovalBaseData, getCitizenRedEnvelopeApprovalList } from '@/api/snapshot/reAudit';
+import Other from '@/utils/other';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
+const ReAudit = defineAsyncComponent(() => import('@/views/snapshot/reAudit/components/Re-audit.vue')); // 红包审批
+const ReReturn = defineAsyncComponent(() => import('@/views/snapshot/reAudit/components/Re-return.vue')); // 红包退回
+const ReRemark = defineAsyncComponent(() => import('@/views/snapshot/reAudit/components/Re-remark.vue')); // 红包备注
+const ReSupply = defineAsyncComponent(() => import('@/views/snapshot/reAudit/components/Re-supply.vue')); // 红包补充
 
 // 定义变量内容
 const state = reactive<any>({
@@ -101,9 +192,30 @@ const state = reactive<any>({
 		// 查询参数
 		PageIndex: 1,
 		PageSize: 20,
+		Status: 0, // 审批状态 默认审批
+		No: null, // 工单编码
+		Title: null, // 工单标题
+		slTime: [], // 受理时间
+		BeginCreationTime: null,
+		EndCreationTime: null,
+		spTime: [], // 审批时间
+		BeginAuditTime: null,
+		EndAuditTime: null,
+		bjTime: [], // 办结时间
+		BeginFiledTime: null,
+		EndFiledTime: null,
+		FromPhone: null, // 来电人电话
+		IsDeal: null, // 网格员是否办理
+		IsTruth: null, // 网格员是否属实
+		IsTruthDepartment: null, // 部门是否属实
+		IsIssued: null, // 是否发放红包
+		IndustryId: null, // 行业
 		CaseName: null, // 线索名称
 		IndustryName: null, // 行业类型
-		zjTime: [],
+		AcutalAmount: null, // 实发金额
+		ApprovedAmount: null, // 审批金额
+		IsDanger: null, // 是否安全生成
+		ConfigAmount: 20, // 配置金额 默认写死
 	},
 	total: 0, // 总条数
 });
@@ -127,6 +239,9 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+		slots: {
+			buttons: 'toolbar_buttons',
+		},
 	},
 	customConfig: {
 		storage: true,
@@ -137,115 +252,198 @@ const gridOptions = reactive<any>({
 	columns: [
 		{ type: 'checkbox', width: 50, align: 'center' },
 		{
-			field: 'statusText',
+			field: 'statusTxt',
 			title: '工单状态',
+			width: 110,
 			slots: {
-				default: 'statusText',
+				default: 'statusTxt',
 			},
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'sourceChannel',
 			title: '来源渠道',
+			width: 110,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'no',
 			title: '工单编码',
+			width: 140,
 		},
 		{
-			field: 'name',
+			field: 'title',
 			title: '工单标题',
 			slots: { default: 'order_detail' },
+			minWidth: 200,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
-			title: '增加时间',
-			// formatter: 'formatDate',
+			field: 'industryName',
+			title: '行业',
+			width: 120,
 		},
 		{
-			field: 'guiderReadPackAmountTxt',
+			field: 'industryCase',
+			title: '线索分类',
+			width: 120,
+		},
+		{
+			field: 'isDanger',
+			title: '标记为安全生产',
+			width: 120,
+			slots: {
+				default: ({ row }) => {
+					return row.isDanger === null ? '' : row.isDanger ? '是' : '否';
+				},
+			},
+		},
+		{
+			field: 'fromName',
 			title: '来电人姓名',
+			width: 120,
+		},
+		{
+			field: 'fromPhone',
+			title: '来电人电话',
+			width: 140,
+		},
+		{
+			field: 'auditTime',
+			title: '审批时间',
+			formatter: 'formatDate',
+			width: 160,
 		},
 		{
-			field: 'displayOrder',
-			title: '来电人号码',
+			field: 'approvedAmount',
+			title: '审批金额',
+			width: 100,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
-			title: '网格员奖励金额',
-			// formatter: 'formatDate',
+			field: 'acutalAmount',
+			title: '实发金额',
+			width: 100,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
-			title: '网格员奖励发放结果',
+			field: 'replenishAmount',
+			title: '补充发放金额',
+			width: 120,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'isIssued',
+			title: '市民奖励发放结果',
+			width: 140,
+			slots: {
+				default: ({ row }) => {
+					return row.isIssued === null ? '' : row.isIssued ? '已发放' : '未发放';
+				},
+			},
+		},
+		{
+			field: 'citizenAward',
+			title: '市民奖励',
+			width: 100,
+		},
+		{
+			field: 'recordRemark',
+			title: '市民奖励发放备注',
+			width: 140,
+		},
+		{
+			field: 'county',
 			title: '区域',
+			width: 120,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'isRectify',
 			title: '部门是否整改完成',
+			width: 140,
+			slots: {
+				default: ({ row }) => {
+					return row.isRectify === null ? '' : row.isRectify ? '是' : '否';
+				},
+			},
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'isTruthDepartment',
 			title: '部门是否属实',
+			width: 120,
+			slots: {
+				default: ({ row }) => {
+					return row.isTruthDepartment === null ? '' : row.isRepetition ? '是' : '否';
+				},
+			},
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
-			title: '网格员是否属实',
-		},
-		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'isRepetition',
 			title: '是否重复',
+			width: 100,
+			slots: {
+				default: ({ row }) => {
+					return row.isRepetition === null ? '' : row.isRepetition ? '是' : '否';
+				},
+			},
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'isDeal',
 			title: '网格员是否办理',
+			width: 120,
+			slots: {
+				default: ({ row }) => {
+					return row.isDeal === null ? '' : row.isDeal ? '是' : '否';
+				},
+			},
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'networkENumber',
 			title: '网格E通编号',
+			width: 120,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
+			field: 'creationTime',
 			title: '受理时间',
+			formatter: 'formatDate',
+			width: 160,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
-			title: '区县审批状态',
-		},
-		{
-			field: 'citizenReadPackAmountTxt',
-			title: '区县审批人',
+			field: 'orgLevelOneName',
+			title: '一级部门',
+			width: 140,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
-			title: '区县审批部门',
+			field: 'auditStatusTxt',
+			title: '审批状态',
+			width: 100,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
-			title: '区县审批时间',
+			field: 'auditName',
+			title: '审批人',
+			width: 120,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
-			title: '网格员办理状态',
+			field: 'auditOrgName',
+			title: '审批部门',
+			width: 140,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
-			title: '区县审批意见',
+			field: 'auditRemark',
+			title: '审批意见',
+			width: 150,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
-			title: '审批状态',
+			field: 'bankCardNo',
+			title: '卡号',
+			width: 150,
 		},
 		{
-			field: 'citizenReadPackAmountTxt',
-			title: '审批时间',
+			field: 'openBank',
+			title: '开户行',
+			width: 150,
 		},
 		{
-			field: 'displayOrder',
-			title: '审批意见',
-			minWidth: 200,
+			title: '操作',
+			width: 160,
+			fixed: 'right',
+			showOverflow: false,
+			align: 'center',
+			slots: { default: 'action' },
 		},
 	],
 	data: [],
@@ -256,10 +454,21 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取参数列表
+const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
-	getClueList(state.queryParams)
+	requestParams.value = Other.deepClone(state.queryParams);
+	requestParams.value.BeginCreationTime = state.queryParams.slTime === null ? null : state.queryParams.slTime[0]; // 受理时间
+	requestParams.value.EndCreationTime = state.queryParams.slTime === null ? null : state.queryParams.slTime[1];
+	Reflect.deleteProperty(requestParams.value, 'slTime'); // 删除无用的参数
+	requestParams.value.BeginAuditTime = state.queryParams.spTime === null ? null : state.queryParams.spTime[0]; // 审批时间
+	requestParams.value.EndAuditTime = state.queryParams.spTime === null ? null : state.queryParams.spTime[1];
+	Reflect.deleteProperty(requestParams.value, 'spTime'); // 删除无用的参数
+	requestParams.value.BeginFiledTime = state.queryParams.bjTime === null ? null : state.queryParams.bjTime[0]; // 办结时间
+	requestParams.value.EndFiledTime = state.queryParams.bjTime === null ? null : state.queryParams.bjTime[1];
+	Reflect.deleteProperty(requestParams.value, 'bjTime'); // 删除无用的参数
+	getCitizenRedEnvelopeApprovalList(requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];
@@ -304,9 +513,54 @@ const isChecked = computed(() => {
 });
 
 // 审批
-const onAudit = (row: any) => {};
+const reAuditRef = ref<RefType>();
+const onAudit = (row: any) => {
+	reAuditRef.value.openDialog(row);
+};
+// 退回
+const reReturnRef = ref<RefType>();
+const onReturn = (row: any) => {
+	reReturnRef.value.openDialog(row);
+};
+// 添加备注
+const reRemarkRef = ref<RefType>();
+const onRemark = (row: any) => {
+	if (checkTable.value.length > 1) {
+		ElMessage.warning('只能选择1个添加备注。');
+		return;
+	}
+	reRemarkRef.value.openDialog(row);
+};
+// 补充
+const reSupplyRef = ref<RefType>();
+const onSupply = (row: any) => {
+	if (checkTable.value.length > 1) {
+		ElMessage.warning('只能添加1个补充发放。');
+		return;
+	}
+	reSupplyRef.value.openDialog(row);
+};
+// 获取基础信息
+const statusOptions = ref<EmptyArrayType>([]); // 状态
+const industryOptions = ref<EmptyArrayType>([]); // 行业
+const configAmountOptions = ref<EmptyArrayType>([]);
+const getBaseData = async () => {
+	try {
+		const { result } = await getCitizenRedEnvelopeApprovalBaseData();
+		statusOptions.value = result.status ?? [];
+		statusOptions.value.push({
+			key: -1,
+			value: '全部',
+		});
+		industryOptions.value = result.industry ?? [];
+		configAmountOptions.value = result.configAmount ?? [];
+	} catch (e) {
+		console.log(e);
+	}
+};
 // 页面加载时
 onMounted(() => {
 	queryList();
+	getBaseData();
 });
 </script>

+ 8 - 3
src/views/snapshot/reSend/citizen/index.vue

@@ -31,8 +31,13 @@
 					</el-form>
 				</template>
 				<template #toolbar_buttons>
-					<!--						v-if="state.queryParams.Status === 1"-->
-					<el-button type="primary" @click="onSend" v-auth="'snapshot:reSend:citizen:send'" :disabled="isChecked" :loading="state.loading"
+					<el-button
+						type="primary"
+						@click="onSend"
+						v-auth="'snapshot:reSend:citizen:send'"
+						:disabled="isChecked"
+						:loading="state.loading"
+						v-if="state.queryParams.Status === 1"
 						>批量发送红包<span v-if="checkTable.length">({{ checkTable.length }})</span>
 					</el-button>
 				</template>
@@ -249,7 +254,7 @@ const onSend = () => {
 		autofocus: false,
 	})
 		.then(() => {
-			citizenRedEnvelopeApproval({ ids }).then(() => {
+			citizenRedEnvelopeApproval(ids).then(() => {
 				ElMessage.success('批量发送成功');
 				queryList();
 			});

+ 44 - 10
src/views/todo/edit/components/Edit-order.vue

@@ -26,6 +26,21 @@
 						<span class="ml5" v-if="state.ruleForm.startTime">({{ formatDate(state.ruleForm.startTime, 'YYYY-mm-dd HH:MM:SS') }})</span>
 					</el-form-item>
 				</el-col>
+				<!-- 行业类型 来源渠道是随手拍才有这个字段 -->
+				<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" v-if="state.ruleForm.sourceChannelCode === 'ZGSSP'">
+					<el-form-item label="行业类型" prop="industryObj" :rules="[{ required: true, message: '请选择行业类型', trigger: 'change' }]">
+						<el-select
+							v-model="state.ruleForm.industryObj"
+							placeholder="请选择行业类型"
+							class="w100"
+							value-key="id"
+							clearable
+							@change="changeIndustry"
+						>
+							<el-option v-for="item in state.industryOptions" :key="item.id" :disabled="item.disabled" :label="item.name" :value="item" />
+						</el-select>
+					</el-form-item>
+				</el-col>
 				<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" v-if="state.ruleForm.sourceChannelCode === 'RGDH'">
 					<el-form-item label="来电号码" prop="fromPhone" :rules="[{ required: true, message: '请填写来电号码', trigger: 'blur' }]">
 						<el-input v-model.trim="state.ruleForm.fromPhone" placeholder="请填写来电号码" clearable> </el-input>
@@ -52,14 +67,7 @@
 				</el-col>
 				<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
 					<el-form-item label="来电人姓名" prop="fromName" :rules="[{ required: true, message: '请填写来电人姓名', trigger: 'blur' }]">
-						<el-row class="w100">
-							<el-col :xs="24" :sm="24" :md="24" :lg="18" :xl="18">
-								<el-input v-model="state.ruleForm.fromName" placeholder="请填写来电人姓名" clearable @input="inputName"> </el-input>
-							</el-col>
-							<el-col :xs="24" :sm="24" :md="24" :lg="6" :xl="6" style="text-align: center">
-								<el-checkbox v-model="state.ruleForm.isSecret" label="保密" />
-							</el-col>
-						</el-row>
+						<el-input v-model="state.ruleForm.fromName" placeholder="请填写来电人姓名" clearable @input="inputName"> </el-input>
 					</el-form-item>
 				</el-col>
 				<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
@@ -436,6 +444,7 @@ import { storeToRefs } from 'pinia';
 import { orderRepeatEvent } from '@/api/business/repeatEvent';
 import { useThemeConfig } from '@/stores/themeConfig';
 import { useUserInfo } from '@/stores/userInfo';
+import { removeDuplicate } from '@/utils/arrayOperation';
 
 const OrderRepeatSelect = defineAsyncComponent(() => import('@/views/todo/seats/accept/Order-repeat-select.vue')); // 选择重复工单
 const CommonAdvice = defineAsyncComponent(() => import('@/components/CommonAdvice/index.vue')); // 常用意见
@@ -471,6 +480,8 @@ const state = reactive<any>({
 			key: 'false',
 		},
 	],
+	industryOptions: [],
+	focusOnEvents: [],
 });
 const appConfigStore = useAppConfig();
 const { AppConfigInfo } = storeToRefs(appConfigStore); // 系统配置信息
@@ -512,6 +523,13 @@ const getOrderDetail = async (id: string) => {
 				dicDataName: state.ruleForm.sourceChannel,
 			};
 		}
+		if (state.ruleForm.industryId) {
+			state.ruleForm.industryObj = {
+				// 行业分类
+				id: state.ruleForm.industryId,
+				name: state.ruleForm.industryName,
+			};
+		}
 		if (state.ruleForm.hotspotExternal) {
 			//热点分类默认展开
 			state.hotspotExternal = state.ruleForm.hotspotExternal.split(',');
@@ -620,6 +638,11 @@ const changeAcceptType = (val: any) => {
 	state.ruleForm.acceptType = val?.dicDataName ?? null;
 	state.ruleForm.acceptTypeCode = val?.dicDataValue ?? null;
 };
+// 选择行业类型
+const changeIndustry = (val: any) => {
+	state.ruleForm.industryId = val?.id ?? null;
+	state.ruleForm.industryName = val?.name ?? null;
+};
 // 选择工单标签
 const changeOrderTag = (val: any) => {
 	state.ruleForm.orderTag = val?.dicDataName ?? null;
@@ -667,11 +690,20 @@ const changeFocusEvent = (val: string[]) => {
 	state.ruleForm.is24HoursComplete = val.includes('4'); // 24小时紧急工单
 	state.ruleForm.acceptSms = val.includes('5'); // 受理短信
 	state.ruleForm.isThreePartyConference = val.includes('6'); // 三方通话
-	state.ruleForm.focusOnEvents = val.join(',');
+	state.ruleForm.isSecret = val.includes('99'); // 是否保密
+	if (state.ruleForm.sourceChannelCode === 'ZGSSP') {
+		//如果 选择了自贡随手拍
+		if (state.ruleForm.isSecret) {
+			// 如果选择了保密 需要吧三方通话也选上
+			state.ruleForm.isThreePartyConference = true;
+			state.ruleForm.focusOnEventsArr = removeDuplicate([...state.ruleForm.focusOnEventsArr, '6']);
+		}
+	}
+	state.ruleForm.focusOnEvents = state.ruleForm.focusOnEventsArr.join(',');
 	console.log(
 		`是否紧急工单:${val.includes('0')},是否行政执法类类工单:${val.includes('2')},是否形式主义工单:${val.includes('1')},是否敏感类工单:${val.includes(
 			'3'
-		)},是否24小时紧急工单:${val.includes('4')},是否受理短信:${val.includes('5')},是否三方通话:${val.includes('6')}`
+		)},是否24小时紧急工单:${val.includes('4')},是否受理短信:${val.includes('5')},是否三方通话:${val.includes('6')},是否保密:${val.includes('99')}`
 	);
 };
 // 选择企业
@@ -838,6 +870,7 @@ const loadBaseData = async () => {
 		state.licenceTypeOptions = result?.licenceTypeOptions ?? [];
 		state.transpondCity = result?.transpondCity ?? [];
 		state.focusOnEvents = result?.focusOnEvents ?? [];
+		state.focusOnEvents.unshift({ dicDataName: '保密', dicDataValue: '99' });
 		state.orderTags = result?.orderTags ?? [];
 		state.pushTypeOptions = state.pushTypeOptions.map((item: any) => {
 			return {
@@ -846,6 +879,7 @@ const loadBaseData = async () => {
 				pushType: item.dicDataName,
 			};
 		});
+		state.industryOptions = result.industry ?? []; // 行业分类
 	} catch (error) {
 		console.log(error);
 	}

+ 2 - 1
src/views/todo/seats/accept/Order-repeat-select.vue

@@ -107,7 +107,8 @@ const queryList = () => {
 	state.loading = true;
 	let request = {
 		...state.queryParams,
-		OrderId: state.ruleForm.id ?? '', //传入id 排除重复工单选择自己
+		OrderId: state.ruleForm.id ?? null, //传入id 排除重复工单选择自己
+		IndustryId: state.ruleForm.industryId ?? null,
 	};
 	historyOrderAll(request)
 		.then((response: any) => {

+ 32 - 29
src/views/todo/seats/accept/lzAccept.vue

@@ -80,7 +80,7 @@
 								</el-col>
 								<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
 									<el-form-item label="来电人姓名" prop="fromName" :rules="[{ required: true, message: '请填写来电人姓名', trigger: 'blur' }]">
-												<el-input v-model="state.ruleForm.fromName" placeholder="请填写来电人姓名" clearable @input="inputName"> </el-input>
+										<el-input v-model="state.ruleForm.fromName" placeholder="请填写来电人姓名" clearable @input="inputName"> </el-input>
 									</el-form-item>
 								</el-col>
 								<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
@@ -104,9 +104,9 @@
 												label="联系电话"
 												prop="contact"
 												:rules="[
-											{ required: true, message: '请填写联系电话', trigger: 'blur' },
-											{ required: true, pattern: '[^ \x20]+', trigger: 'blur', message: '联系电话不能为空' },
-										]"
+													{ required: true, message: '请填写联系电话', trigger: 'blur' },
+													{ required: true, pattern: '[^ \x20]+', trigger: 'blur', message: '联系电话不能为空' },
+												]"
 											>
 												<el-input v-model.trim="state.ruleForm.contact" placeholder="请填写联系电话" @blur="searchHistory" clearable> </el-input>
 											</el-form-item>
@@ -234,7 +234,7 @@
 												<el-col :xs="24" :sm="24" :md="24" :lg="16" :xl="16">
 													<el-input v-model="state.ruleForm.street" placeholder="请填写详细地址" clearable> </el-input>
 												</el-col>
-<!--												<el-col :xs="24" :sm="24" :md="24" :lg="7" :xl="7" :offset="1">
+												<!--												<el-col :xs="24" :sm="24" :md="24" :lg="7" :xl="7" :offset="1">
 													<el-button type="primary" link @click="selectLocation"><SvgIcon name="ele-Location" size="16px" /> 地图定位</el-button>
 												</el-col>-->
 											</el-form-item>
@@ -396,7 +396,7 @@
 					<el-card shadow="never">
 						<el-tabs v-model="rightBottomActive" @tab-change="handleRightBottom" stretch>
 							<el-tab-pane label="知识库" name="knowledge">
-								<Knowledge ref="knowledgeRef" :formData="state.ruleForm"/>
+								<Knowledge ref="knowledgeRef" :formData="state.ruleForm" />
 							</el-tab-pane>
 							<el-tab-pane label="预案库" name="aa"> </el-tab-pane>
 						</el-tabs>
@@ -413,9 +413,9 @@
 		<!-- 重复工单选择 -->
 		<order-repeat-select ref="orderRepeatSelectRef" @orderRepeatSuccess="orderRepeatSuccess" />
 		<!--  自贡流程办理  -->
-		<z-g-process ref="zgProcessRef" @orderProcessSuccess="onCancel"/>
+		<z-g-process ref="zgProcessRef" @orderProcessSuccess="onCancel" />
 		<!--  泸州流程办理  -->
-		<l-z-process ref="lzProcessRef" @orderProcessSuccess="onCancel"/>
+		<l-z-process ref="lzProcessRef" @orderProcessSuccess="onCancel" />
 	</div>
 </template>
 
@@ -507,10 +507,11 @@ const state = reactive<any>({
 		orderPushTypes: [], // 推送分类多选
 		acceptType: '咨询', // 受理类型
 		acceptTypeCode: '10', // 受理类型code
-		acceptTypeObj:{ // 默认咨询
+		acceptTypeObj: {
+			// 默认咨询
 			dicDataValue: '10',
-			dicDataName:'咨询',
-		}
+			dicDataName: '咨询',
+		},
 	},
 	formLoading: false, // 表单加载状态
 	hotspotExternal: [], // 热点分类外部数据
@@ -808,9 +809,9 @@ const saveExpandForm = (val: any) => {
 	state.ruleForm.orderExtension = val;
 };
 // 受理内容失去焦点查询知识库
-const blurContent = ()=>{
+const blurContent = () => {
 	knowledgeRef.value.knowledgeRetrievalPaged();
-}
+};
 // 选择重点关注事项
 const changeFocusEvent = (val: string[]) => {
 	state.ruleForm.isUrgent = val.includes('0'); // 是否紧急工单
@@ -820,9 +821,12 @@ const changeFocusEvent = (val: string[]) => {
 	state.ruleForm.is24HoursComplete = val.includes('4'); // 24小时紧急工单
 	state.ruleForm.acceptSms = val.includes('5'); // 受理短信
 	state.ruleForm.isThreePartyConference = val.includes('6'); // 三方通话
-	state.ruleForm.isSecret =  val.includes('99'); // 是否保密
-	state.ruleForm.focusOnEvents = val.join(',');  // 获取值
-	state.ruleForm.focusOnEventsName  = state.focusOnEvents.filter((item: any) => val.includes(item.dicDataValue)).map((item: any) => item.dicDataName).join(',');
+	state.ruleForm.isSecret = val.includes('99'); // 是否保密
+	state.ruleForm.focusOnEvents = val.join(','); // 获取值
+	state.ruleForm.focusOnEventsName = state.focusOnEvents
+		.filter((item: any) => val.includes(item.dicDataValue))
+		.map((item: any) => item.dicDataName)
+		.join(',');
 	console.log(
 		`是否紧急工单:${val.includes('0')},是否行政执法类类工单:${val.includes('2')},是否形式主义工单:${val.includes('1')},是否敏感类工单:${val.includes(
 			'3'
@@ -925,7 +929,7 @@ const zgProcessRef = ref<RefType>();
 const lzProcessRef = ref<RefType>();
 const processOrder = (orderDetail: any, isAgent = false) => {
 	buttonLoading.value = false;
-	if(['ZiGong'].includes(themeConfig.value.appScope)){
+	if (['ZiGong'].includes(themeConfig.value.appScope)) {
 		if (isAgent) {
 			// 代办
 			const params = {
@@ -970,7 +974,7 @@ const processOrder = (orderDetail: any, isAgent = false) => {
 				zgProcessRef.value.openDialog(params);
 			}
 		}
-	}else if(['LuZhou'].includes(themeConfig.value.appScope)){
+	} else if (['LuZhou'].includes(themeConfig.value.appScope)) {
 		if (isAgent) {
 			// 代办
 			const params = {
@@ -1016,7 +1020,6 @@ const processOrder = (orderDetail: any, isAgent = false) => {
 			}
 		}
 	}
-
 };
 const handleForm = (orderDetail: any, isAgent = false) => {
 	if (orderDetail.orderExtension?.orderTypeCode) {
@@ -1094,7 +1097,7 @@ const loadBaseData = async () => {
 		state.licenceTypeOptions = result?.licenceTypeOptions ?? [];
 		state.transpondCity = result?.transpondCity ?? [];
 		state.focusOnEvents = result?.focusOnEvents ?? [];
-		state.focusOnEvents.unshift({dicDataName: '保密', dicDataValue: '99'})
+		state.focusOnEvents.unshift({ dicDataName: '保密', dicDataValue: '99' });
 		state.orderTags = result?.orderTags ?? [];
 		state.pushTypeOptions = state.pushTypeOptions.map((item: any) => {
 			return {
@@ -1103,6 +1106,7 @@ const loadBaseData = async () => {
 				pushType: item.dicDataName,
 			};
 		});
+		await loadAddress();
 	} catch (error) {
 		console.log(error);
 	}
@@ -1130,7 +1134,7 @@ const loadForm = async () => {
 				const isNumberIdentityType = parseInt(<string>route.query.identityType);
 				if ([1, 2].includes(isNumberIdentityType)) {
 					// 按键接收(2:市民 1:企业) 默认市民
-					if(isNumberIdentityType == 2) state.ruleForm.identityType = 1;
+					if (isNumberIdentityType == 2) state.ruleForm.identityType = 1;
 					else state.ruleForm.identityType = 2;
 				} else {
 					state.ruleForm.identityType = 1;
@@ -1228,6 +1232,7 @@ const loadAddress = async () => {
 		const area = await treeArea();
 		state.areaOptions = area.result ?? []; //省市区数据
 		addressLoading.value = false;
+		await loadExtra();
 	} catch (error) {
 		console.log(error);
 	} finally {
@@ -1248,6 +1253,7 @@ const loadExtra = async () => {
 	try {
 		const ext = await orderBaseExt(); // 扩展信息
 		extra.value = { ext: { ...ext.result, orderTypeOptions: orderTypeOptions.value, area: state.areaOptions } }; //补充信息
+		await loadForm();
 	} catch (error) {
 		console.log(error);
 	} finally {
@@ -1264,15 +1270,12 @@ const getCurrentData = (val: any) => {
 		}
 	}
 };
-//
-loadBaseData();
-loadAddress();
-loadExtra();
+
 const handleBeforeUnload = (event: Event) => {
 	event.preventDefault();
 };
 onMounted(async () => {
-	await loadForm();
+	await loadBaseData();
 	state.tagsViewList = await Session.get('tagsViewList');
 	window.addEventListener('beforeunload', handleBeforeUnload);
 });
@@ -1281,9 +1284,9 @@ onUnmounted(() => {
 });
 </script>
 <style lang="scss" scoped>
-.check-group{
-	:deep(.el-checkbox){
+.check-group {
+	:deep(.el-checkbox) {
 		margin-right: 10px;
 	}
 }
-</style>
+</style>

+ 6 - 6
src/views/todo/seats/accept/ybAccept.vue

@@ -510,7 +510,7 @@
 		<!-- 重复工单选择 -->
 		<order-repeat-select ref="orderRepeatSelectRef" @orderRepeatSuccess="orderRepeatSuccess" />
 		<!-- 工单办理 -->
-		<y-b-process ref="ybProcessRef"/>
+		<y-b-process ref="ybProcessRef" />
 	</div>
 </template>
 
@@ -1179,6 +1179,7 @@ const loadBaseData = async () => {
 				pushType: item.dicDataName,
 			};
 		});
+		await loadAddress();
 	} catch (error) {
 		console.log(error);
 	}
@@ -1303,7 +1304,6 @@ const loadForm = async () => {
 				};
 			}
 
-
 			isProvinceOrder.value = state.ruleForm.source !== 100; // 省工单需要展示人社热点
 
 			state.formLoading = false;
@@ -1326,6 +1326,7 @@ const loadAddress = async () => {
 		const area = await treeArea();
 		state.areaOptions = area.result ?? []; //省市区数据
 		addressLoading.value = false;
+		await loadExtra();
 	} catch (error) {
 		console.log(error);
 	} finally {
@@ -1346,6 +1347,7 @@ const loadExtra = async () => {
 	try {
 		const ext = await orderBaseExt(); // 扩展信息
 		extra.value = { ext: { ...ext.result, orderTypeOptions: orderTypeOptions.value, area: state.areaOptions } }; //补充信息
+		await loadForm();
 	} catch (error) {
 		console.log(error);
 	} finally {
@@ -1362,15 +1364,13 @@ const getCurrentData = (val: any) => {
 		}
 	}
 };
-loadBaseData();
-loadAddress();
-loadExtra();
+
 const handleBeforeUnload = (event: any) => {
 	event.preventDefault();
 	event.returnValue = ''; // 对于某些浏览器,设置 returnValue
 };
 onMounted(async () => {
-	await loadForm();
+	await loadBaseData();
 	state.tagsViewList = await Session.get('tagsViewList');
 	window.addEventListener('beforeunload', handleBeforeUnload);
 });

+ 48 - 7
src/views/todo/seats/accept/zgAccept.vue

@@ -51,6 +51,21 @@
 										</el-form-item>
 									</template>
 								</el-col>
+								<!-- 行业类型 来源渠道是随手拍才有这个字段 -->
+								<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" v-if="state.ruleForm.sourceChannelCode === 'ZGSSP'">
+									<el-form-item label="行业类型" prop="industryObj" :rules="[{ required: true, message: '请选择行业类型', trigger: 'change' }]">
+										<el-select
+											v-model="state.ruleForm.industryObj"
+											placeholder="请选择行业类型"
+											class="w100"
+											value-key="id"
+											clearable
+											@change="changeIndustry"
+										>
+											<el-option v-for="item in state.industryOptions" :key="item.id" :disabled="item.disabled" :label="item.name" :value="item" />
+										</el-select>
+									</el-form-item>
+								</el-col>
 								<!-- 来电号码 -->
 								<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" v-if="state.ruleForm.sourceChannelCode === 'RGDH'">
 									<!-- 手动创建 -->
@@ -437,6 +452,7 @@ import { removeDuplicate } from '@/utils/arrayOperation';
 import { Session } from '@/utils/storage';
 import { watchPausable } from '@vueuse/core';
 import { useThemeConfig } from '@/stores/themeConfig';
+import { getBaseData } from '@/api/system/user';
 
 // 引入组件
 const Knowledge = defineAsyncComponent(() => import('@/views/todo/seats/accept/Knowledge.vue')); // 知识库
@@ -512,6 +528,8 @@ const state = reactive<any>({
 			dicDataValue: '10',
 			dicDataName: '咨询',
 		},
+		industryId: null, // 行业分类
+		industryName: null, // 行业分类名称
 	},
 	formLoading: false, // 表单加载状态
 	hotspotExternal: [], // 热点分类外部数据
@@ -526,6 +544,7 @@ const state = reactive<any>({
 	areaOptions: [], //省市区
 	orderTags: [], // 工单标签
 	transpondCity: [],
+	industryOptions: [], // 行业分类
 	repeatOptions: [
 		//是否重复
 		{
@@ -577,6 +596,11 @@ const changeAcceptType = (val: any) => {
 	state.ruleForm.acceptType = val?.dicDataName ?? null;
 	state.ruleForm.acceptTypeCode = val?.dicDataValue ?? null;
 };
+// 选择行业类型
+const changeIndustry = (val: any) => {
+	state.ruleForm.industryId = val?.id ?? null;
+	state.ruleForm.industryName = val?.name ?? null;
+};
 // 选择工单标签
 const changeOrderTag = (val: any) => {
 	state.ruleForm.orderTag = val?.dicDataName ?? null;
@@ -822,11 +846,19 @@ const changeFocusEvent = (val: string[]) => {
 	state.ruleForm.acceptSms = val.includes('5'); // 受理短信
 	state.ruleForm.isThreePartyConference = val.includes('6'); // 三方通话
 	state.ruleForm.isSecret = val.includes('99'); // 是否保密
-	state.ruleForm.focusOnEvents = val.join(','); // 获取值
 	state.ruleForm.focusOnEventsName = state.focusOnEvents
 		.filter((item: any) => val.includes(item.dicDataValue))
 		.map((item: any) => item.dicDataName)
 		.join(',');
+	if (state.ruleForm.sourceChannelCode === 'ZGSSP') {
+		//如果 选择了自贡随手拍
+		if (state.ruleForm.isSecret) {
+			// 如果选择了保密 需要吧三方通话也选上
+			state.ruleForm.isThreePartyConference = true;
+			state.ruleForm.focusOnEventsArr = removeDuplicate([...state.ruleForm.focusOnEventsArr, '6']);
+		}
+	}
+	state.ruleForm.focusOnEvents = state.ruleForm.focusOnEventsArr.join(','); // 获取值
 	console.log(
 		`是否紧急工单:${val.includes('0')},是否行政执法类类工单:${val.includes('2')},是否形式主义工单:${val.includes('1')},是否敏感类工单:${val.includes(
 			'3'
@@ -835,7 +867,7 @@ const changeFocusEvent = (val: string[]) => {
 };
 // 删除不必要的属性
 const deleteUnnecessaryProperties = (obj: any) => {
-	const propertiesToDelete = ['ageRangeObj', 'licenceTypeObj', 'channel', 'acceptTypeObj', 'transpondCity', 'orderTagObj'];
+	const propertiesToDelete = ['ageRangeObj', 'licenceTypeObj', 'channel', 'acceptTypeObj', 'transpondCity', 'orderTagObj', 'industryObj'];
 	propertiesToDelete.forEach((prop) => Reflect.deleteProperty(obj, prop));
 };
 const filesFormat = ref<EmptyArrayType>([]); // 附件列表格式化
@@ -1106,6 +1138,9 @@ const loadBaseData = async () => {
 				pushType: item.dicDataName,
 			};
 		});
+		state.industryOptions = result.industry ?? []; // 行业分类
+
+		await loadAddress(); //请求地址
 	} catch (error) {
 		console.log(error);
 	}
@@ -1167,6 +1202,13 @@ const loadForm = async () => {
 					dicDataName: state.ruleForm.sourceChannel,
 				};
 			}
+			if (state.ruleForm.industryId) {
+				state.ruleForm.industryObj = {
+					// 行业分类
+					id: state.ruleForm.industryId,
+					name: state.ruleForm.industryName,
+				};
+			}
 			if (state.ruleForm.hotspotExternal) {
 				//热点分类默认展开
 				state.hotspotExternal = state.ruleForm.hotspotExternal.split(',');
@@ -1231,6 +1273,7 @@ const loadAddress = async () => {
 		const area = await treeArea();
 		state.areaOptions = area.result ?? []; //省市区数据
 		addressLoading.value = false;
+		await loadExtra();
 	} catch (error) {
 		console.log(error);
 	} finally {
@@ -1251,6 +1294,7 @@ const loadExtra = async () => {
 	try {
 		const ext = await orderBaseExt(); // 扩展信息
 		extra.value = { ext: { ...ext.result, orderTypeOptions: orderTypeOptions.value, area: state.areaOptions } }; //补充信息
+		await loadForm(); // 加在表单数据
 	} catch (error) {
 		console.log(error);
 	} finally {
@@ -1267,15 +1311,12 @@ const getCurrentData = (val: any) => {
 		}
 	}
 };
-//
-loadBaseData();
-loadAddress();
-loadExtra();
+
 const handleBeforeUnload = (event: Event) => {
 	event.preventDefault();
 };
 onMounted(async () => {
-	await loadForm();
+	await loadBaseData();
 	state.tagsViewList = await Session.get('tagsViewList');
 	window.addEventListener('beforeunload', handleBeforeUnload);
 });

+ 24 - 12
src/views/todo/seats/index.vue

@@ -11,7 +11,13 @@
 					<template #form>
 						<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline :disabled="state.loading">
 							<el-form-item label="工单标题" prop="Keyword">
-								<el-input v-model.trim="state.queryParams.Keyword" placeholder="工单标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
+								<el-input
+									v-model.trim="state.queryParams.Keyword"
+									placeholder="工单标题"
+									clearable
+									@keyup.enter="handleQuery"
+									class="keyword-input"
+								/>
 							</el-form-item>
 							<el-form-item label="工单编码" prop="No">
 								<el-input v-model.trim="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
@@ -27,7 +33,7 @@
 							<SvgIcon name="ele-Plus" class="mr5" />新建工单
 						</el-button>
 						<el-button type="primary" @click="onJbExport" :disabled="isChecked" :loading="state.loading" v-auth="'todo:seats:jbdExport'"
-						><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="checkTable.length">({{checkTable.length}})</span>
+							><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="checkTable.length">({{ checkTable.length }})</span>
 						</el-button>
 					</template>
 					<template #statusText="{ row }">
@@ -37,10 +43,8 @@
 					<template #order_detail="{ row }">
 						<order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
 					</template>
-					<template #action="{row}">
-						<el-button link type="success" @click="onOrderEdit(row)" title="编辑工单" v-if="row.canEdit" v-auth="'todo:seats:edit'">
-							修改
-						</el-button>
+					<template #action="{ row }">
+						<el-button link type="success" @click="onOrderEdit(row)" title="编辑工单" v-if="row.canEdit" v-auth="'todo:seats:edit'"> 修改 </el-button>
 						<el-button link type="primary" @click="onSign(row)" title="签收工单" v-if="row.canSign" v-auth="'todo:seats:sign'"> 签收 </el-button>
 					</template>
 					<template #pager>
@@ -111,6 +115,11 @@
 						<el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
 					</el-select>
 				</el-form-item>
+				<el-form-item prop="IndustryId" label="行业类型" v-if="['ZiGong'].includes(themeConfig.appScope)">
+					<el-select v-model="state.queryParams.IndustryId" placeholder="请选择行业类型" clearable class="w100" @change="handleQuery">
+						<el-option v-for="item in state.industryOptions" :value="item.id" :key="item.id" :label="item.name" />
+					</el-select>
+				</el-form-item>
 			</el-form>
 			<template #footer>
 				<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -120,11 +129,11 @@
 	</div>
 </template>
 <script setup lang="tsx" name="todoSeats">
-import { computed, defineAsyncComponent,onMounted, reactive, ref } from 'vue';
+import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
 import { useRouter } from 'vue-router';
 import { seatsListTodo, orderSign, orderListTodoCount } from '@/api/todo/order';
-import {  exportAssignment } from '@/utils/tools';
+import { exportAssignment } from '@/utils/tools';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import Other from '@/utils/other';
 import { treeArea } from '@/api/auxiliary/area';
@@ -156,13 +165,15 @@ const state = reactive<any>({
 		TypeCode: '0',
 		SortField: null,
 		SortRule: null,
-		AcceptorName:null, // 受理人
+		AcceptorName: null, // 受理人
+		IndustryId: null, // 行业ID
 	},
 	tableData: [], //表单
 	loading: false, // 加载
 	total: 0, // 总数
 	areaOptions: [],
 	orderStatusOptions: [], // 工单状态
+	industryOptions: [], // 行业类型
 });
 
 const gridOptions = reactive<any>({
@@ -245,7 +256,8 @@ const queryList = async () => {
 				gridRef.value.clearCheckboxRow();
 				checkTable.value = [];
 				resolve(totalCount.value);
-			}).catch(() => {
+			})
+			.catch(() => {
 				state.loading = false;
 				gridOptions.loading = false;
 				gridRef.value.clearCheckboxRow();
@@ -260,8 +272,7 @@ const getTotal = () => {
 		.then((res) => {
 			state.total = res.result ?? 0;
 		})
-		.catch(() => {
-		});
+		.catch(() => {});
 };
 /** 重置按钮操作 */
 const drawerRuleFormRef = ref();
@@ -322,6 +333,7 @@ const getBaseData = async () => {
 		const [res, res1] = await Promise.all([treeArea(), centerTodoBase()]);
 		const mappings: any = {
 			orderStatusOptions: 'orderStatus',
+			industryOptions: 'industry',
 		};
 		for (const key in mappings) {
 			state[key] = res1.result?.[mappings[key]] ?? [];