ソースを参照

reactor:省甄别查询;省延期查询;省退单查询;省综合查询;

zhangchong 9 ヶ月 前
コミット
26ba1a169c

+ 2 - 2
.env.development

@@ -3,11 +3,11 @@ VITE_MODE_NAME=development
 # 防止部署多套系统到同一域名不同目录时,变量共用的问题 设置不同的前缀
 VITE_STORAGE_NAME=dev
 # 基础请求地址
-VITE_API_URL=http://110.188.24.28:50300
+VITE_API_URL=http://110.188.24.28:50100
 # 数据共享平台请求地址
 VITE_DATASHARE_API_YRL=http://ds.12345lm.cn
 # socket API
-VITE_API_SOCKET_URL=http://110.188.24.28:50300/hubs/hotline
+VITE_API_SOCKET_URL=http://110.188.24.28:50100/hubs/hotline
 # 上传 API
 VITE_API_UPLOAD_URL=http://110.188.24.28:50120
 # 文件上传地址前缀

+ 0 - 38
src/api/auxiliary/province.ts

@@ -1,38 +0,0 @@
-/*
- * @Author: zc
- * @description 辅助功能-省平台对接
- */
-import request from '@/utils/request';
-/**
- * @description 查询政民互动发布列表
- * @param {object} params
- */
-export const provinceZmhdList = (params: object) => {
-	return request({
-		url: `/api/v1/OrderProvinceZmhd/getorderlist`,
-		method: 'get',
-		params,
-	});
-};
-/**
- * @description 查询政民互动发布详情
- * @param {object} params
- */
-export const provinceZmhdDetail = (params: object) => {
-	return request({
-		url: `/api/v1/OrderProvinceZmhd/getorderprovincezmhdinfo`,
-		method: 'get',
-		params,
-	});
-};
-/**
- * @description 查询政民互动发布
- * @param {object} data
- */
-export const provinceZmhdAdd = (data: object) => {
-	return request({
-		url: `/api/v1/OrderProvinceZmhd/add`,
-		method: 'post',
-		data,
-	});
-};

+ 104 - 0
src/api/province/index.ts

@@ -0,0 +1,104 @@
+/*
+ * @Author: zc
+ * @description 省平台对接
+ */
+import request from '@/utils/request';
+/**
+ * @description 查询政民互动发布列表
+ * @param {object} params
+ */
+export const provinceZmhdList = (params: object) => {
+    return request({
+        url: `/api/v1/OrderProvinceZmhd/getorderlist`,
+        method: 'get',
+        params,
+    });
+};
+/**
+ * @description 查询政民互动发布详情
+ * @param {object} params
+ */
+export const provinceZmhdDetail = (params: object) => {
+    return request({
+        url: `/api/v1/OrderProvinceZmhd/getorderprovincezmhdinfo`,
+        method: 'get',
+        params,
+    });
+};
+/**
+ * @description 查询政民互动发布
+ * @param {object} data
+ */
+export const provinceZmhdAdd = (data: object) => {
+    return request({
+        url: `/api/v1/OrderProvinceZmhd/add`,
+        method: 'post',
+        data,
+    });
+};
+/**
+ * @description 查询省延期列表
+ * @param {object} params
+ */
+export const provinceDelayList = (params: object) => {
+    return request({
+        url: `/api/v1/ProvinceStatistics/get_province_order_delay_list`,
+        method: 'get',
+        params,
+    });
+};
+/**
+ * @description 查询省延期详情
+ * @param {object} params
+ */
+export const provinceDelayDetail = (params: object) => {
+    return request({
+        url: `/api/v1/ProvinceStatistics/get_order_delay_detail`,
+        method: 'get',
+        params,
+    });
+};
+/**
+ * @description 查询省退单列表
+ * @param {object} params
+ */
+export const provinceReturnList = (params: object) => {
+    return request({
+        url: `/api/v1/ProvinceStatistics/get_province_send_back_list`,
+        method: 'get',
+        params,
+    });
+};
+/**
+ * @description 查询省退单详情
+ * @param {object} params
+ */
+export const provinceReturnDetail = (params: object) => {
+    return request({
+        url: `/api/v1/ProvinceStatistics/get_order_send_back_detail`,
+        method: 'get',
+        params,
+    });
+};
+/**
+ * @description 查询省甄别列表
+ * @param {object} params
+ */
+export const provinceIdentifyList = (params: object) => {
+    return request({
+        url: `/api/v1/ProvinceStatistics/get_province_order_screen_list`,
+        method: 'get',
+        params,
+    });
+};
+/**
+ * @description 查询省甄别详情
+ * @param {object} params
+ */
+export const provinceIdentifyDetail = (params: object) => {
+    return request({
+        url: `/api/v1/ProvinceStatistics/get_order_screen_detail`,
+        method: 'get',
+        params,
+    });
+};

+ 6 - 6
src/theme/element.scss

@@ -36,15 +36,15 @@
 .el-alert {
 	border: 1px solid;
 	.el-alert__description{
-		font-size: var(--el-font-size-base);
+		font-size: var(--el-font-size-small);
 	}
 	.el-alert__icon{
-		font-size: var(--el-font-size-large);
+		font-size: var(--el-font-size-medium);
+	}
+	.el-alert__title {
+		word-break: break-all;
+		font-size: var(--el-font-size-base);
 	}
-}
-.el-alert__title {
-	word-break: break-all;
-	font-size: var(--el-font-size-medium);
 }
 
 /* Message 消息提示

+ 1 - 1
src/views/business/publish/todo.vue

@@ -133,7 +133,7 @@ const columns = ref<any[]>([
 	{ type: 'selection', selectable: selectable, fixed: 'left', minWidth: 40, align: 'center' },
 	{ prop: 'no', label: '工单编码', minWidth: 140 },
 	{ prop: 'isProvinceText', label: '省/市工单', minWidth: 90 },
-	{ prop: 'statusText', label: '发布状态', minWidth: 100 },
+	{ prop: 'statusText', label: '工单状态', minWidth: 100 },
 	{ prop: 'title', label: '工单标题', minWidth: 200 },
 	{ prop: 'sourceChannel', label: '来源渠道',minWidth:100 },
 	{ prop: 'acceptType', label: '受理类型', minWidth: 100 },

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

@@ -133,12 +133,12 @@ const openDialog = async (val: any) => {
 	state.loading = true;
 	state.dialogVisible = true;
 	try {
-		const [baseRes] = await Promise.all([specialApplyBase(val.workflowId)]);
-		baseTypeId.value = baseRes.result?.baseTypeId ?? '';
-		steps.value = baseRes.result?.step?.steps ?? [];
-		specialReason.value = baseRes.result.specialReason ?? [];
-		specialTimeType.value = baseRes.result.specialTimeType ?? [];
-		if (baseRes.result?.baseTypeId) selectTrace(baseRes.result?.baseTypeId, true);
+		const { result } = await specialApplyBase(val.workflowId);
+		baseTypeId.value = result?.baseTypeId ?? '';
+		steps.value = result?.step?.steps ?? [];
+		specialReason.value = result.specialReason ?? [];
+		specialTimeType.value = result.specialTimeType ?? [];
+		if (result?.baseTypeId) selectTrace(result?.baseTypeId, true);
 	} catch (e) {
 		console.log(e);
 	} finally {
@@ -176,7 +176,7 @@ const selectTrace = (val: any, choose?: boolean) => {
 			label: item.value,
 		};
 	});
-  if (baseTypeId.value === val) {
+	if (baseTypeId.value === val) {
 		//如果默认选中节点  判断选择的对象是否有当前用户 如果有 默认选中当前用户
 		const user = stepsItems.value.find((item: any) => item.value.key === userInfos.value?.id);
 		if (user) {

+ 30 - 30
src/views/business/special/components/Special-apply.vue

@@ -1,5 +1,5 @@
 <template>
-  <!-- 特提列表发起特提 -->
+	<!-- 特提列表发起特提 -->
 	<el-dialog v-model="state.dialogVisible" draggable title="特提申请" width="50%" append-to-body destroy-on-close @close="close">
 		<div class="collapse-container">
 			<el-form label-width="110px" ref="ruleFormRef" :model="state.ruleForm">
@@ -28,18 +28,18 @@
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" v-if="state.ruleForm.nextStepCode">
 						<el-form-item label="办理对象" prop="nextHandlers" :rules="[{ required: true, message: '请选择办理对象', trigger: 'change' }]">
-              <el-select-v2
-                  v-model="state.ruleForm.nextHandlers"
-                  :options="stepsItems"
-                  placeholder="请选择办理对象"
-                  class="w100"
-                  multiple
-                  clearable
-                  collapse-tags
-                  collapse-tags-tooltip
-                  filterable
-                  value-key="key"
-              />
+							<el-select-v2
+								v-model="state.ruleForm.nextHandlers"
+								:options="stepsItems"
+								placeholder="请选择办理对象"
+								class="w100"
+								multiple
+								clearable
+								collapse-tags
+								collapse-tags-tooltip
+								filterable
+								value-key="key"
+							/>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
@@ -56,7 +56,7 @@
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-form-item label="附件" prop="files" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
-              <annex-list name="特提附件" v-model:format="filesFormat" classify="特提申请" />
+							<annex-list name="特提附件" v-model:format="filesFormat" classify="特提申请" />
 						</el-form-item>
 					</el-col>
 				</el-row>
@@ -88,10 +88,10 @@ const state = reactive<any>({
 	dialogVisible: false, // 是否显示弹窗
 	loading: false, // 是否显示加载
 	ruleForm: {
-    nextStepCode: null, // 特提节点
+		nextStepCode: null, // 特提节点
 		cause: null, // 特提原因
 		reason: null, // 特提理由
-    nextHandlers: [], // 处理对象
+		nextHandlers: [], // 处理对象
 	},
 	orderDetail: {}, // 工单详情
 	workflowId: null, // 工作流id
@@ -112,9 +112,9 @@ const openDialog = async (val: any) => {
 	state.loading = true;
 	state.dialogVisible = true;
 	try {
-		const [baseRes] = await Promise.all([specialApplyBase(val.workflowId)]);
-		steps.value = baseRes.result?.step?.steps ?? [];
-		specialReason.value = baseRes.result.specialReason ?? [];
+		const { result } = await specialApplyBase(val.workflowId);
+		steps.value = result?.step?.steps ?? [];
+		specialReason.value = result.specialReason ?? [];
 	} catch (e) {
 		console.log(e);
 	} finally {
@@ -128,8 +128,8 @@ const closeDialog = () => {
 const close = () => {
 	ruleFormRef.value?.clearValidate();
 	ruleFormRef.value?.resetFields();
-  steps.value = [];
-  stepsItems.value = [];
+	steps.value = [];
+	stepsItems.value = [];
 };
 // 选择节点确定办理对象
 const selectTrace = (val: any) => {
@@ -137,14 +137,14 @@ const selectTrace = (val: any) => {
 	state.ruleForm.nextStepName = step?.value;
 	ruleFormRef.value?.resetFields('nextHandlers');
 	stepsItems.value = step?.items ?? [];
-  stepsItems.value = stepsItems.value.map((item: any) => {
-    return {
-      value: {
-        ...item,
-      },
-      label: item.value,
-    };
-  })
+	stepsItems.value = stepsItems.value.map((item: any) => {
+		return {
+			value: {
+				...item,
+			},
+			label: item.value,
+		};
+	});
 };
 // 提交
 const filesFormat = ref<EmptyArrayType>([]); // 附件列表
@@ -157,7 +157,7 @@ const onSubmit = (formEl: FormInstance | undefined) => {
 			...state.ruleForm,
 			workflowId: state.workflowId,
 			orderId: state.orderDetail.id,
-			files: filesFormat.value
+			files: filesFormat.value,
 		};
 		specialApply(request)
 			.then(() => {

+ 36 - 36
src/views/business/special/components/Special-audit-detail.vue

@@ -18,16 +18,16 @@
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 						<el-form-item label="申请时间"> {{ formatDate(state.detail?.creationTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
 					</el-col>
-          <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-            <el-form-item label="申请特提节点" class="mb5">
-              {{ state.detail?.stepName  }}
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-            <el-form-item label="审批通过后节点" class="mb5">
-              {{ state.detail?.nextStepName  }}
-            </el-form-item>
-          </el-col>
+					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+						<el-form-item label="申请特提节点" class="mb5">
+							{{ state.detail?.stepName }}
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+						<el-form-item label="审批通过后节点" class="mb5">
+							{{ state.detail?.nextStepName }}
+						</el-form-item>
+					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="特提原因">
 							{{ state.detail?.cause }}
@@ -40,38 +40,38 @@
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-form-item label="附件">
-              <annex-list name="特提附件" readonly classify="特提附件" v-model="state.detail.files"/>
+							<annex-list name="特提附件" readonly classify="特提附件" v-model="state.detail.files" />
 						</el-form-item>
 					</el-col>
-          <el-divider content-position="left">
-            <el-text tag="b" size="large"> 审批详情 </el-text>
-          </el-divider>
+					<el-divider content-position="left">
+						<el-text tag="b" size="large"> 审批详情 </el-text>
+					</el-divider>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="审批结果">
 							{{ state.detail?.stateText }}
 						</el-form-item>
 					</el-col>
-          <!-- 审核通过才展示字段 -->
+					<!-- 审核通过才展示字段 -->
 					<template v-if="state.detail?.state === '1'">
-            <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-              <el-form-item label="特提节点">
-                {{ state.detail?.nextStepName }}
-              </el-form-item>
-            </el-col>
-            <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-              <el-form-item label="办理对象">
-                {{ state.detail?.nextHandlers?.map(item => item.value).join(',') }}
-              </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">
+							<el-form-item label="特提节点">
+								{{ state.detail?.nextStepName }}
+							</el-form-item>
+						</el-col>
+						<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+							<el-form-item label="办理对象">
+								{{ state.detail?.nextHandlers?.map((item) => item.value).join(',') }}
+							</el-form-item>
+						</el-col>
+						<!--            <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
               <el-form-item label="办理时限"> {{ state.detail?.timeLimit }} {{ state.detail?.timeLimitUnitText }} </el-form-item>
             </el-col>-->
-            <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-              <el-form-item label="无需计算期满时间" label-width="130px">
-                {{ state.detail?.alterTime ? '是' : '否' }}
-              </el-form-item>
-            </el-col>
-          </template>
+						<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+							<el-form-item label="无需计算期满时间" label-width="130px">
+								{{ state.detail?.alterTime ? '是' : '否' }}
+							</el-form-item>
+						</el-col>
+					</template>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.detail.opinion">
 						<el-form-item label="审批意见">
 							{{ state.detail?.opinion }}
@@ -86,7 +86,7 @@
 import { defineAsyncComponent, reactive } from 'vue';
 import { formatDate } from '@/utils/formatTime';
 import { specialDetail } from '@/api/business/special';
-import {transformFile} from "@/utils/tools";
+import { transformFile } from '@/utils/tools';
 
 // 引入组件
 const AnnexList = defineAsyncComponent(() => import('@/components/AnnexList/index.vue'));
@@ -104,9 +104,9 @@ const openDialog = async (id: string) => {
 	state.loading = true;
 	state.dialogVisible = true;
 	try {
-		const [detailRes] = await Promise.all([specialDetail(id)]);
-		state.detail = detailRes.result;
-    state.detail.files = transformFile(detailRes.result.files);
+		const { result } = await specialDetail(id);
+		state.detail = result;
+		state.detail.files = transformFile(result.files);
 	} catch (e) {
 		console.log(e);
 	} finally {

+ 11 - 8
src/views/business/supervise/components/Order-supervise-detail.vue

@@ -37,9 +37,9 @@
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="被督办部门">{{ state.superviseDetail.orgName }}</el-form-item>
 					</el-col>
-          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-            <el-form-item label="督办内容">{{ state.superviseDetail.applyContent }}</el-form-item>
-          </el-col>
+					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+						<el-form-item label="督办内容">{{ state.superviseDetail.applyContent }}</el-form-item>
+					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-form-item label="附件" prop="handleResult" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
 							<annex-list name="督办申请附件" readonly classify="督办申请" v-model="state.superviseDetail.files" />
@@ -83,7 +83,6 @@ const CommonAdvice = defineAsyncComponent(() => import('@/components/CommonAdvic
 const emit = defineEmits(['updateList']);
 // 定义变量内容
 const state = reactive<any>({
-	collapseArr: ['1', '2'], // 折叠面板
 	dialogVisible: false, // 是否显示弹窗
 	loading: false, // 是否显示加载
 	ruleForm: {
@@ -97,10 +96,14 @@ const state = reactive<any>({
 });
 const ruleFormRef = ref<RefType>();
 const getDetail = async (id: string) => {
-	let res = await superviseDetail(id);
-	state.superviseDetail = res.result ?? {};
-	state.orderDetail = res.result?.order ?? {};
-	state.dialogVisible = true;
+	try {
+		const { result } = await superviseDetail(id);
+		state.superviseDetail = result ?? {};
+		state.orderDetail = result?.order ?? {};
+		state.dialogVisible = true;
+	} catch (e) {
+		console.log(e);
+	}
 };
 // 设置抽屉
 const dialogRef = ref<RefType>();

+ 42 - 31
src/views/business/supervise/components/Order-supervise-reply.vue

@@ -30,7 +30,9 @@
 						<el-form-item label="督办时间" class="mb5"> {{ formatDate(state.superviseDetail.creationTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="督办回复时限" class="mb5"> {{ formatDate(state.superviseDetail.replyLimitTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
+						<el-form-item label="督办回复时限" class="mb5">
+							{{ formatDate(state.superviseDetail.replyLimitTime, 'YYYY-mm-dd HH:MM:SS') }}
+						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="被督办部门" class="mb5">{{ state.superviseDetail.orgName }}</el-form-item>
@@ -38,14 +40,14 @@
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 						<el-form-item label="督办回复时间" class="mb5"> {{ formatDate(Date(), '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="督办内容" class="mb5">{{ state.superviseDetail.applyContent }}</el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-            <el-form-item label="附件"  class="mb5" prop="handleResult" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
-              <annex-list name="督办申请附件" readonly classify="督办申请" v-model="state.superviseDetail.files"/>
-            </el-form-item>
-          </el-col>
+					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+						<el-form-item label="督办内容" class="mb5">{{ state.superviseDetail.applyContent }}</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+						<el-form-item label="附件" class="mb5" prop="handleResult" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
+							<annex-list name="督办申请附件" readonly classify="督办申请" v-model="state.superviseDetail.files" />
+						</el-form-item>
+					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-form-item label="督办回复内容" prop="replyContent" :rules="[{ required: true, message: '请填写督办回复内容', trigger: 'blur' }]">
 							<common-advice
@@ -57,9 +59,15 @@
 							/>
 						</el-form-item>
 					</el-col>
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" >
+					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-form-item label="附件" prop="handleResult" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
-              <annex-list name="督办回复附件" v-model="state.ruleForm.files" v-model:format="filesFormat" :businessId="state.superviseDetail.id" classify="督办回复" />
+							<annex-list
+								name="督办回复附件"
+								v-model="state.ruleForm.files"
+								v-model:format="filesFormat"
+								:businessId="state.superviseDetail.id"
+								classify="督办回复"
+							/>
 						</el-form-item>
 					</el-col>
 				</el-row>
@@ -74,11 +82,11 @@
 	</el-dialog>
 </template>
 <script setup lang="ts" name="businessSuperviseReplyDialog">
-import {defineAsyncComponent, reactive, ref} from 'vue';
-import {ElMessage, FormInstance} from 'element-plus';
-import {formatDate} from '@/utils/formatTime';
-import {commonEnum} from '@/utils/constants';
-import {superviseDetail, superviseReply, superviseSign} from '@/api/business/supervise';
+import { defineAsyncComponent, reactive, ref } from 'vue';
+import { ElMessage, FormInstance } from 'element-plus';
+import { formatDate } from '@/utils/formatTime';
+import { commonEnum } from '@/utils/constants';
+import { superviseDetail, superviseReply, superviseSign } from '@/api/business/supervise';
 
 // 引入组件
 const AnnexList = defineAsyncComponent(() => import('@/components/AnnexList/index.vue'));
@@ -88,27 +96,30 @@ const CommonAdvice = defineAsyncComponent(() => import('@/components/CommonAdvic
 const emit = defineEmits(['updateList']);
 // 定义变量内容
 const state = reactive<any>({
-	collapseArr: ['1', '2'], // 折叠面板
 	dialogVisible: false, // 是否显示弹窗
 	loading: false, // 是否显示加载
 	ruleForm: {
 		acceptSms: false, // 发送督办短信
 		replyContent: '', // 督办回复内容
-    files:[]
+		files: [],
 	},
 	superviseDetail: {}, // 督办详情
 	orderDetail: {}, // 工单详情
 	transform: 'translate(0px, 0px)', // 滚动条位置
 	orgData: [], // 被督办部门
-  superviseObj: {},
+	superviseObj: {},
 });
 const ruleFormRef = ref<RefType>();
 // 查询督办详情
 const getDetail = async (id: string) => {
-	let res = await superviseDetail(id);
-	state.superviseDetail = res.result ?? {};
-	state.orderDetail = res.result?.order ?? {};
-	state.dialogVisible = true;
+	try {
+		const { result } = await superviseDetail(id);
+		state.superviseDetail = result ?? {};
+		state.orderDetail = result?.order ?? {};
+		state.dialogVisible = true;
+	} catch (e) {
+		console.log(e);
+	}
 };
 // 督办签收
 const onSign = (id: string) => {
@@ -119,7 +130,7 @@ const onSign = (id: string) => {
 };
 // 打开弹窗
 const openDialog = (val: any) => {
-  state.superviseObj = val;
+	state.superviseObj = val;
 	getDetail(val.id);
 };
 // 关闭弹窗
@@ -127,12 +138,12 @@ const closeDialog = () => {
 	state.dialogVisible = false;
 };
 const close = () => {
-  ruleFormRef.value.clearValidate();
-  ruleFormRef.value.resetFields();
-  if (!state.superviseObj.signTime) {
-    // 如果没有签收时间签收
-    onSign(state.superviseObj.id);
-  }
+	ruleFormRef.value.clearValidate();
+	ruleFormRef.value.resetFields();
+	if (!state.superviseObj.signTime) {
+		// 如果没有签收时间签收
+		onSign(state.superviseObj.id);
+	}
 };
 // 选中常用意见
 const chooseAdvice = (item: any) => {
@@ -172,4 +183,4 @@ defineExpose({
 	openDialog,
 	closeDialog,
 });
-</script>
+</script>

+ 8 - 4
src/views/business/supervise/components/Order-supervise.vue

@@ -73,7 +73,7 @@
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-form-item label="附件" prop="handleResult" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
-              <annex-list name="督办申请附件" v-model="state.ruleForm.files" v-model:format="filesFormat" businessId="" classify="督办申请" />
+							<annex-list name="督办申请附件" v-model="state.ruleForm.files" v-model:format="filesFormat" businessId="" classify="督办申请" />
 						</el-form-item>
 					</el-col>
 				</el-row>
@@ -119,8 +119,12 @@ const ruleFormRef = ref<RefType>();
 const storesUserInfo = useUserInfo();
 const { userInfos } = storeToRefs(storesUserInfo); // 用户信息
 const getOrgList = async (workflowId: string) => {
-	const res = await urgeOrgList(workflowId);
-	state.orgData = res.result ?? [];
+	try {
+		const { result } = await urgeOrgList(workflowId);
+		state.orgData = result ?? [];
+	} catch (e) {
+		console.log(e);
+	}
 };
 // 打开弹窗
 const openDialog = (val: any) => {
@@ -128,9 +132,9 @@ const openDialog = (val: any) => {
 		ElMessage.warning('该工单未开启流程');
 		return;
 	}
+	state.dialogVisible = true;
 	state.orderDetail = val;
 	getOrgList(val.workflow.id);
-	state.dialogVisible = true;
 };
 // 关闭弹窗
 const closeDialog = () => {

+ 17 - 15
src/views/business/urge/components/Order-urge-detail.vue

@@ -21,40 +21,38 @@
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="被催办部门">{{ state.urgeDetail.orgName }}</el-form-item>
 					</el-col>
-          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-            <el-form-item label="催办内容">{{ state.urgeDetail.applyContent }}</el-form-item>
-          </el-col>
+					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+						<el-form-item label="催办内容">{{ state.urgeDetail.applyContent }}</el-form-item>
+					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-form-item label="附件" prop="handleResult" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
-              <annex-list name="催办附件" readonly classify="催办附件" v-model="state.urgeDetail.files"/>
+							<annex-list name="催办附件" readonly classify="催办附件" v-model="state.urgeDetail.files" />
 						</el-form-item>
 					</el-col>
 				</el-row>
 			</el-form>
 		</div>
-    <template #footer>
+		<template #footer>
 			<span class="dialog-footer">
 				<el-button @click="closeDialog" class="default-button">关 闭</el-button>
 			</span>
-    </template>
+		</template>
 	</el-dialog>
 </template>
 <script setup lang="ts" name="businessUrgeDetailDialog">
-import { defineAsyncComponent, reactive, ref } from 'vue';
+import { defineAsyncComponent, reactive } from 'vue';
 import { formatDate } from '@/utils/formatTime';
 import { urgeDetail, urgeSign } from '@/api/business/urge';
 import { ElMessage } from 'element-plus';
-import {transformFile} from "@/utils/tools";
+import { transformFile } from '@/utils/tools';
 
 // 引入组件
 const AnnexList = defineAsyncComponent(() => import('@/components/AnnexList/index.vue'));
-const CommonAdvice = defineAsyncComponent(() => import('@/components/CommonAdvice/index.vue')); // 常用意见
 
 // 定义子组件向父组件传值/事件
 const emit = defineEmits(['updateList']);
 // 定义变量内容
 const state = reactive<any>({
-	collapseArr: ['1', '2'], // 折叠面板
 	dialogVisible: false, // 是否显示弹窗
 	loading: false, // 是否显示加载
 	ruleForm: {
@@ -67,11 +65,15 @@ const state = reactive<any>({
 	urgeObj: {},
 });
 const getDetail = async (id: string) => {
-	let res = await urgeDetail(id);
-	state.urgeDetail = res.result ?? {};
-	state.orderDetail = res.result?.order ?? {};
-  state.urgeDetail.files = transformFile(state.urgeDetail.files);
-	state.dialogVisible = true;
+	try {
+		const { result } = await urgeDetail(id);
+		state.urgeDetail = result ?? {};
+		state.orderDetail = result?.order ?? {};
+		state.urgeDetail.files = transformFile(state.urgeDetail.files);
+		state.dialogVisible = true;
+	} catch (e) {
+		console.log(e);
+	}
 };
 // 催办签收
 const onSign = (id: string) => {

+ 14 - 15
src/views/business/urge/components/Order-urge.vue

@@ -61,7 +61,7 @@
 				</el-col>
 				<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 					<el-form-item label="附件" prop="handleResult" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
-            <annex-list name="催办附件" v-model:format="filesFormat" classify="催办申请" />
+						<annex-list name="催办附件" v-model:format="filesFormat" classify="催办申请" />
 					</el-form-item>
 				</el-col>
 			</el-row>
@@ -108,21 +108,20 @@ const storesUserInfo = useUserInfo();
 const { userInfos } = storeToRefs(storesUserInfo); // 用户信息
 // 打开弹窗
 const openDialog = async (val: any) => {
-  if (!val.workflow) {
-    ElMessage.warning('该工单未开启流程');
-    return;
-  }
-  state.loading = true;
-  state.orderDetail = val;
-  try {
-    const res = await urgeOrgList(val.workflow.id);
-    state.orgData = res.result ?? [];
-    state.loading = false;
-    state.dialogVisible = true;
+	if (!val.workflow) {
+		ElMessage.warning('该工单未开启流程');
+		return;
+	}
+	state.dialogVisible = true;
+	state.loading = true;
+	state.orderDetail = val;
+	try {
+		const { result } = await urgeOrgList(val.workflow.id);
+		state.orgData = result ?? [];
+		state.loading = false;
 	} catch (error) {
-    state.loading = false;
-  }
-
+		state.loading = false;
+	}
 };
 // 关闭弹窗
 const closeDialog = () => {

+ 76 - 0
src/views/province/components/Detail-dialog.vue

@@ -0,0 +1,76 @@
+<template>
+	<el-drawer v-model="state.dialogVisible" title="明细信息" destroy-on-close>
+		<el-form label-width="110px" ref="ruleFormRef" :model="state.ruleForm" class="show-info-form" v-loading="state.loading">
+			<el-divider><el-text tag="b" style="font-size: var(--el-font-size-medium)">申请信息</el-text></el-divider>
+			<el-form-item label="申请人"> {{ state.ruleForm.applyUserName }} </el-form-item>
+			<el-form-item label="申请部门"> {{ state.ruleForm.applyOrgName }} </el-form-item>
+			<el-form-item label="申请时间"> {{ formatDate(state.ruleForm.applyTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
+			<el-form-item label="申请时限" v-if="currentType === 'delay'"> {{ state.ruleForm.applyDelayNum }} </el-form-item>
+			<el-form-item label="申请原因"> {{ state.ruleForm.applyReason }} </el-form-item>
+			<el-divider><el-text tag="b" style="font-size: var(--el-font-size-medium)">审核信息</el-text></el-divider>
+			<el-form-item label="审核人">{{ state.ruleForm.auditName }}</el-form-item>
+			<el-form-item label="审核部门">{{ state.ruleForm.auditOrgName }}</el-form-item>
+			<el-form-item label="审核时间"> {{ formatDate(state.ruleForm.auditTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
+			<el-form-item label="审核状态">{{ state.ruleForm.auditState }}</el-form-item>
+			<el-form-item label="审核原因">{{ state.ruleForm.auditContent }}</el-form-item>
+		</el-form>
+		<template #footer>
+			<span class="dialog-footer">
+				<el-button @click="closeDrawer" class="default-button">关 闭</el-button>
+			</span>
+		</template>
+	</el-drawer>
+</template>
+<script setup lang="ts" name="businessUrgeDetailDialog">
+import { reactive, ref } from 'vue';
+import { formatDate } from '@/utils/formatTime';
+import { provinceDelayDetail, provinceIdentifyDetail, provinceReturnDetail } from '@/api/province';
+
+// 定义子组件向父组件传值/事件
+// 定义变量内容
+const state = reactive<any>({
+	dialogVisible: false, // 是否显示弹窗
+	loading: false, // 是否显示加载
+	ruleForm: {},
+});
+// 打开弹窗
+const currentType = ref('');
+const openDrawer = async (id: string, type: string) => {
+	state.loading = true;
+	state.dialogVisible = true;
+	currentType.value = type;
+	try {
+		switch (type) {
+			case 'delay':
+				const { result } = await provinceDelayDetail({ id });
+				state.ruleForm = result;
+				state.loading = false;
+				break;
+			case 'return':
+				const returnRes = await provinceReturnDetail({ id });
+				state.ruleForm = returnRes.result;
+				state.loading = false;
+				break;
+			case 'screen':
+				const screenRes = await provinceIdentifyDetail({ id });
+				state.ruleForm = screenRes.result;
+				state.loading = false;
+				break;
+			default:
+				break;
+		}
+	} catch (e) {
+		console.log(e);
+		state.loading = false;
+    state.dialogVisible = false;
+	}
+};
+// 关闭弹窗
+const closeDrawer = () => {
+	state.dialogVisible = false;
+};
+defineExpose({
+	openDrawer,
+	closeDrawer,
+});
+</script>

+ 240 - 7
src/views/province/delay.vue

@@ -1,11 +1,244 @@
-<script setup lang="ts">
-
-</script>
-
 <template>
-
+	<div class="province-order-delay-container layout-pd">
+		<el-card shadow="never">
+			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+				<el-row>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label="审核状态" prop="State">
+							<el-radio-group v-model="state.queryParams.State" @change="handleQuery">
+								<el-radio-button label="0">申请中</el-radio-button>
+								<el-radio-button label="1">同意</el-radio-button>
+								<el-radio-button label="2">不同意</el-radio-button>
+							</el-radio-group>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label="工单标题" prop="Title">
+							<el-input v-model="state.queryParams.Title" 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>
+					<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="ProvinceNo">
+								<el-input v-model="state.queryParams.ProvinceNo" placeholder="省工单编码" clearable @keyup.enter="handleQuery" />
+							</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="crTime">
+								<el-date-picker
+									v-model="state.queryParams.crTime"
+									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="ApplyUserName">
+								<el-input v-model="state.queryParams.ApplyUserName" placeholder="申请人姓名" clearable @keyup.enter="handleQuery" />
+							</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>
+		</el-card>
+		<el-card shadow="never">
+			<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"
+			>
+				<template #expiredStatusText="{ row }">
+					<span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
+				</template>
+				<template #title="{ row }">
+					<order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+				</template>
+				<template #operation="{ row }">
+					<el-button type="primary" link @click="onDetail(row)" title="省工单延期明细"> 明细</el-button>
+					<order-detail :order="row.order" @updateList="queryList" />
+				</template>
+			</ProTable>
+		</el-card>
+		<detail-dialog ref="detailDialogRef" />
+	</div>
 </template>
+<script setup lang="tsx" name="provinceDelay">
+import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
+import type { FormInstance } from 'element-plus';
+import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import { useRoute, useRouter } from 'vue-router';
+import { formatDate } from '@/utils/formatTime';
+import Other from '@/utils/other';
+import { provinceDelayList } from '@/api/province';
 
-<style scoped lang="scss">
+// 引入组件
+const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
+const DetailDialog = defineAsyncComponent(() => import('@/views/province/components/Detail-dialog.vue')); // 明细
 
-</style>
+// 定义变量内容
+const state = reactive<any>({
+	queryParams: {
+		PageIndex: 1, // 当前页
+		PageSize: 10, // 每页条数
+		No: null, // 工单编码
+		Title: null, // 工单标题
+		State: '0', // 审核中
+		ApplyUserName: null, // 申请人
+		ProvinceNo: null, // 省工单编号
+		crTime: [], // 申请时间
+		ApplyStartTime: null,
+		ApplyEndTime: null,
+	},
+	tableData: [], //表单
+	loading: false, // 加载
+	total: 0, // 总数
+});
+const ruleFormRef = ref<RefType>(); // 表单ref
+const searchCol = ref(true); // 展开/收起
+// 展开/收起
+const closeSearch = () => {
+	searchCol.value = !searchCol.value;
+};
+const route = useRoute(); // 路由
+const router = useRouter(); // 路由
+const proTableRef = ref<RefType>(); // 表格ref
+// 表格配置项
+const columns = ref<any[]>([
+	{ prop: 'order.expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
+	{ prop: 'order.statusText', label: '工单状态', minWidth: 100 },
+	{ prop: 'employeeName', label: '申请人', minWidth: 120 },
+	{
+		prop: 'applyDelayTime',
+		label: '申请时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.applyDelayTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'auditName', label: '审核人', minWidth: 120 },
+	{
+		prop: 'auditTime',
+		label: '审核时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.auditTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'delayStateText', label: '审核状态', minWidth: 100 },
+	{ prop: 'order.actualHandleStepName', label: '办理节点', minWidth: 100 },
+	{
+		prop: 'order.isUrgentText',
+		label: '是否紧急',
+		render: (scope) => {
+			return <span class="color-danger font-bold">{scope.row.order?.isUrgentText}</span>;
+		},
+	},
+	{ prop: 'order.provinceNo', label: '省工单编码', minWidth: 240 },
+	{ prop: 'order.no', label: '工单编码', minWidth: 140 },
+	{
+		prop: 'order.startTime',
+		label: '受理时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.order?.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'order.title', label: '工单标题', minWidth: 200 },
+	{
+		prop: 'order.expiredTime',
+		label: '工单期满时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.order?.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'order.actualHandleOrgName', label: '接办部门', minWidth: 140 },
+	{ prop: 'order.acceptType', label: '受理类型', minWidth: 100 },
+	{ prop: 'order.hotspotName', label: '热点分类', minWidth: 150 },
+	{ prop: 'order.acceptorName', label: '受理人', minWidth: 120 },
+	{ prop: 'operation', label: '操作', fixed: 'right', width: 140, align: 'center' },
+]);
+// 手动查询,将页码设置为1
+const handleQuery = () => {
+	state.queryParams.PageIndex = 1;
+	queryList();
+};
+/** 获取列表 */
+const requestParams = ref({});
+const queryList = () => {
+	requestParams.value = Other.deepClone(state.queryParams);
+	requestParams.value.ApplyStartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0]; // 生成时间
+	requestParams.value.ApplyEndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+	Reflect.deleteProperty(requestParams.value, 'crTime'); // 删除无用的参数
+	state.loading = true;
+	provinceDelayList(requestParams.value)
+		.then((response: any) => {
+			state.tableData = response?.result.items ?? [];
+			state.total = response?.result.total;
+			state.loading = false;
+		})
+		.catch(() => {
+			state.loading = false;
+		});
+};
+/** 重置按钮操作 */
+const resetQuery = (formEl: FormInstance | undefined) => {
+	if (!formEl) return;
+	formEl.resetFields();
+	queryList();
+};
+// 查看明细
+const detailDialogRef = ref<RefType>();
+const onDetail = (row: any) => {
+	detailDialogRef.value.openDrawer(row.id, 'delay');
+};
+onMounted(() => {
+	queryList();
+});
+</script>
+<style scoped lang="scss">
+.province-order-delay-container {
+	.arrow {
+		transition: transform var(--el-transition-duration);
+		cursor: pointer;
+	}
+	.arrow.is-reverse {
+		transform: rotateZ(-180deg);
+	}
+}
+</style>

+ 25 - 54
src/views/province/order.vue

@@ -1,15 +1,8 @@
 <template>
-	<div class="business-order-container layout-pd">
+	<div class="province-order-container layout-pd">
 		<el-card shadow="never">
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
 				<el-row>
-					<el-col>
-						<el-form-item label="快捷查询" prop="checkList">
-							<el-checkbox-group v-model="checkList" @change="changeCheckList" class="ml15">
-								<el-checkbox label="IsSensitiveWord" border>敏感类工单</el-checkbox>
-							</el-checkbox-group>
-						</el-form-item>
-					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 						<el-form-item label="工单标题" prop="Keyword">
 							<el-input v-model="state.queryParams.Keyword" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
@@ -21,21 +14,28 @@
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-						<el-form-item label="生成时间" prop="crTime">
-							<el-date-picker
-								v-model="state.queryParams.crTime"
-								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="ProvinceNo">
+              <el-input v-model="state.queryParams.ProvinceNo" 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="crTime">
+                <el-date-picker
+                    v-model="state.queryParams.crTime"
+                    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">
 						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol && checkList.includes('IsSensitiveWord')">
 							<el-form-item label="敏感词" prop="SensitiveWord">
@@ -176,13 +176,6 @@
 							</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="ProvinceNo">
-								<el-input v-model="state.queryParams.ProvinceNo" placeholder="省工单编码" clearable @keyup.enter="handleQuery" />
-							</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="FromPhone">
@@ -340,14 +333,9 @@
 				</template>
 			</ProTable>
 		</el-card>
-
-		<!-- 编辑重复性事件 -->
-		<repeat-event-edit ref="repeatEventEditRef" @updateList="queryList" />
-		<!-- 工单省退回 -->
-		<order-return ref="orderReturnRef" @updateList="queryList" />
 	</div>
 </template>
-<script setup lang="tsx" name="order">
+<script setup lang="tsx" name="provinceOrder">
 import { defineAsyncComponent, onMounted, reactive, ref, onActivated, onBeforeUnmount } from 'vue';
 import type { FormInstance } from 'element-plus';
 import { defaultDateOne, defaultTimeStartEnd, shortcuts } from '@/utils/constants';
@@ -387,7 +375,7 @@ const state = reactive<any>({
 		HotspotIds: [], // 热点
 		OrgCodes: [], // 机构
 		NameOrNo: null, // 受理坐席
-		crTime: defaultDateOne, // 生成时间
+		crTime: [], // 生成时间
 		CreationTimeStart: null, // 创建时间 开始
 		CreationTimeEnd: null, // 创建时间 结束
 		TransferPhone: null, // 转派人
@@ -401,8 +389,6 @@ const state = reactive<any>({
 		ActualHandleTimeEnd: null,
 		PushTypeCode: null, //推送类型
 		IsProvinceOrder: true, // 省市工单
-		IsSensitiveWord: null, // 是否敏感词工单
-		SensitiveWord: null, // 敏感词
 		IsUrgent: null, // 是否加急
 	},
 	tableData: [], //表单
@@ -487,22 +473,7 @@ const columns = ref<any[]>([
 	{ prop: 'counterSignTypeText', label: '是否会签', minWidth: 90 },
 	{ prop: 'sourceChannel', label: '来源渠道', minWidth: 100 },
 	{ prop: 'hotspotName', label: '热点分类', minWidth: 150 },
-	{
-		prop: 'sensitiveText',
-		label: '敏感词',
-		minWidth: 150,
-	},
 	{ prop: 'acceptorName', label: '受理人', minWidth: 120 },
-	{
-		prop: 'content',
-		label: '受理内容',
-		isShow: false,
-	},
-	{
-		prop: 'actualOpinion',
-		label: '办理结果',
-		isShow: false,
-	},
 	{ prop: 'operation', label: '操作', fixed: 'right', width: 140, align: 'center' },
 ]);
 // 选择事发地址
@@ -596,7 +567,7 @@ onBeforeUnmount(() => {
 });
 </script>
 <style scoped lang="scss">
-.business-order-container {
+.province-order-container {
 	.arrow {
 		transition: transform var(--el-transition-duration);
 		cursor: pointer;

+ 240 - 7
src/views/province/return.vue

@@ -1,11 +1,244 @@
-<script setup lang="ts">
-
-</script>
-
 <template>
-
+	<div class="business-order-return-container layout-pd">
+		<el-card shadow="never">
+			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+				<el-row>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label="审核状态" prop="State">
+							<el-radio-group v-model="state.queryParams.State" @change="handleQuery">
+                <el-radio-button label="0">申请中</el-radio-button>
+                <el-radio-button label="1">同意</el-radio-button>
+                <el-radio-button label="2">不同意</el-radio-button>
+							</el-radio-group>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label="工单标题" prop="Title">
+							<el-input v-model="state.queryParams.Title" 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>
+					<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="ProvinceNo">
+								<el-input v-model="state.queryParams.ProvinceNo" placeholder="省工单编码" clearable @keyup.enter="handleQuery" />
+							</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="crTime">
+								<el-date-picker
+									v-model="state.queryParams.crTime"
+									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="ApplyUserName">
+								<el-input v-model="state.queryParams.ApplyUserName" placeholder="申请人姓名" clearable @keyup.enter="handleQuery" />
+							</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>
+		</el-card>
+		<el-card shadow="never">
+			<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"
+			>
+				<template #expiredStatusText="{ row }">
+					<span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
+				</template>
+				<template #title="{ row }">
+					<order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+				</template>
+				<template #operation="{ row }">
+					<el-button type="primary" link @click="onDetail(row)" title="省工单退单明细"> 明细</el-button>
+					<order-detail :order="row.order" @updateList="queryList" />
+				</template>
+			</ProTable>
+		</el-card>
+    <detail-dialog ref="detailDialogRef" />
+	</div>
 </template>
+<script setup lang="tsx" name="provinceReturn">
+import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
+import type { FormInstance } from 'element-plus';
+import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import { useRoute, useRouter } from 'vue-router';
+import { formatDate } from '@/utils/formatTime';
+import Other from '@/utils/other';
+import { provinceReturnList } from '@/api/province';
 
-<style scoped lang="scss">
+// 引入组件
+const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
+const DetailDialog = defineAsyncComponent(() => import('@/views/province/components/Detail-dialog.vue')); // 明细
 
-</style>
+// 定义变量内容
+const state = reactive<any>({
+	queryParams: {
+		PageIndex: 1, // 当前页
+		PageSize: 10, // 每页条数
+		No: null, // 工单编码
+		Title: null, // 工单标题
+		State: '0', // 审核中
+		ApplyUserName: null, // 申请人
+		ProvinceNo: null, // 省工单编号
+		crTime: [], // 申请时间
+		ApplyStartTime: null,
+		ApplyEndTime: null,
+	},
+	tableData: [], //表单
+	loading: false, // 加载
+	total: 0, // 总数
+});
+const ruleFormRef = ref<RefType>(); // 表单ref
+const searchCol = ref(true); // 展开/收起
+// 展开/收起
+const closeSearch = () => {
+	searchCol.value = !searchCol.value;
+};
+const route = useRoute(); // 路由
+const router = useRouter(); // 路由
+const proTableRef = ref<RefType>(); // 表格ref
+// 表格配置项
+const columns = ref<any[]>([
+  { prop: 'order.expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
+  { prop: 'order.statusText', label: '工单状态', minWidth: 100 },
+  { prop: 'creatorName', label: '申请人', minWidth: 120 },
+  {
+    prop: 'creationTime',
+    label: '申请时间',
+    minWidth: 160,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  { prop: 'auditName', label: '审核人', minWidth: 120 },
+  {
+    prop: 'auditTime',
+    label: '审核时间',
+    minWidth: 160,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.auditTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  { prop: 'stateText', label: '审核状态', minWidth: 100 },
+  { prop: 'order.actualHandleStepName', label: '办理节点', minWidth: 100 },
+  {
+    prop: 'order.isUrgentText',
+    label: '是否紧急',
+    render: (scope) => {
+      return <span class="color-danger font-bold">{scope.row.order?.isUrgentText}</span>;
+    },
+  },
+  { prop: 'order.provinceNo', label: '省工单编码', minWidth: 240 },
+  { prop: 'order.no', label: '工单编码', minWidth: 140 },
+  {
+    prop: 'order.startTime',
+    label: '受理时间',
+    minWidth: 160,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.order?.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  { prop: 'order.title', label: '工单标题', minWidth: 200 },
+  {
+    prop: 'order.expiredTime',
+    label: '工单期满时间',
+    minWidth: 160,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.order?.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  { prop: 'order.actualHandleOrgName', label: '接办部门', minWidth: 140 },
+  { prop: 'order.acceptType', label: '受理类型', minWidth: 100 },
+  { prop: 'order.hotspotName', label: '热点分类', minWidth: 150 },
+  { prop: 'order.acceptorName', label: '受理人', minWidth: 120 },
+  { prop: 'operation', label: '操作', fixed: 'right', width: 140, align: 'center' },
+]);
+// 手动查询,将页码设置为1
+const handleQuery = () => {
+	state.queryParams.PageIndex = 1;
+	queryList();
+};
+/** 获取列表 */
+const requestParams = ref({});
+const queryList = () => {
+	requestParams.value = Other.deepClone(state.queryParams);
+	requestParams.value.ApplyStartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0]; // 生成时间
+	requestParams.value.ApplyEndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+	Reflect.deleteProperty(requestParams.value, 'crTime'); // 删除无用的参数
+	state.loading = true;
+	provinceReturnList(requestParams.value)
+		.then((response: any) => {
+			state.tableData = response?.result.items ?? [];
+			state.total = response?.result.total;
+			state.loading = false;
+		})
+		.catch(() => {
+			state.loading = false;
+		});
+};
+/** 重置按钮操作 */
+const resetQuery = (formEl: FormInstance | undefined) => {
+	if (!formEl) return;
+	formEl.resetFields();
+	queryList();
+};
+// 查看明细
+const detailDialogRef = ref<RefType>();
+const onDetail = (row: any) => {
+  detailDialogRef.value.openDrawer(row.id, 'return');
+};
+onMounted(() => {
+	queryList();
+});
+</script>
+<style scoped lang="scss">
+.business-order-return-container {
+	.arrow {
+		transition: transform var(--el-transition-duration);
+		cursor: pointer;
+	}
+	.arrow.is-reverse {
+		transform: rotateZ(-180deg);
+	}
+}
+</style>

+ 240 - 7
src/views/province/screen.vue

@@ -1,11 +1,244 @@
-<script setup lang="ts">
-
-</script>
-
 <template>
-
+  <div class="province-order-screen-container layout-pd">
+    <el-card shadow="never">
+      <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+        <el-row>
+          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+            <el-form-item label="审核状态" prop="State">
+              <el-radio-group v-model="state.queryParams.State" @change="handleQuery">
+                <el-radio-button label="0">申请中</el-radio-button>
+                <el-radio-button label="1">同意</el-radio-button>
+                <el-radio-button label="2">不同意</el-radio-button>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+            <el-form-item label="工单标题" prop="Title">
+              <el-input v-model="state.queryParams.Title" 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>
+          <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="ProvinceNo">
+                <el-input v-model="state.queryParams.ProvinceNo" placeholder="省工单编码" clearable @keyup.enter="handleQuery" />
+              </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="crTime">
+                <el-date-picker
+                    v-model="state.queryParams.crTime"
+                    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="ApplyUserName">
+                <el-input v-model="state.queryParams.ApplyUserName" placeholder="申请人姓名" clearable @keyup.enter="handleQuery" />
+              </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>
+    </el-card>
+    <el-card shadow="never">
+      <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"
+      >
+        <template #expiredStatusText="{ row }">
+          <span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
+        </template>
+        <template #title="{ row }">
+          <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+        </template>
+        <template #operation="{ row }">
+          <el-button type="primary" link @click="onDetail(row)" title="省工单甄别明细"> 明细</el-button>
+          <order-detail :order="row.order" @updateList="queryList" />
+        </template>
+      </ProTable>
+    </el-card>
+    <detail-dialog ref="detailDialogRef" />
+  </div>
 </template>
+<script setup lang="tsx" name="provinceScreen">
+import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
+import type { FormInstance } from 'element-plus';
+import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import { useRoute, useRouter } from 'vue-router';
+import { formatDate } from '@/utils/formatTime';
+import Other from '@/utils/other';
+import {provinceIdentifyList} from '@/api/province';
 
-<style scoped lang="scss">
+// 引入组件
+const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
+const DetailDialog = defineAsyncComponent(() => import('@/views/province/components/Detail-dialog.vue')); // 明细
 
-</style>
+// 定义变量内容
+const state = reactive<any>({
+  queryParams: {
+    PageIndex: 1, // 当前页
+    PageSize: 10, // 每页条数
+    No: null, // 工单编码
+    Title: null, // 工单标题
+    State: '0', // 审核中
+    ApplyUserName: null, // 申请人
+    ProvinceNo: null, // 省工单编号
+    crTime: [], // 申请时间
+    ApplyStartTime: null,
+    ApplyEndTime: null,
+  },
+  tableData: [], //表单
+  loading: false, // 加载
+  total: 0, // 总数
+});
+const ruleFormRef = ref<RefType>(); // 表单ref
+const searchCol = ref(true); // 展开/收起
+// 展开/收起
+const closeSearch = () => {
+  searchCol.value = !searchCol.value;
+};
+const route = useRoute(); // 路由
+const router = useRouter(); // 路由
+const proTableRef = ref<RefType>(); // 表格ref
+// 表格配置项
+const columns = ref<any[]>([
+  { prop: 'order.expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
+  { prop: 'order.statusText', label: '工单状态', minWidth: 100 },
+  { prop: 'creatorName', label: '申请人', minWidth: 120 },
+  {
+    prop: 'creationTime',
+    label: '申请时间',
+    minWidth: 160,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  { prop: 'auditName', label: '审核人', minWidth: 120 },
+  {
+    prop: 'auditTime',
+    label: '审核时间',
+    minWidth: 160,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.auditTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  { prop: 'statusText', label: '审核状态', minWidth: 100 },
+  { prop: 'order.actualHandleStepName', label: '办理节点', minWidth: 100 },
+  {
+    prop: 'order.isUrgentText',
+    label: '是否紧急',
+    render: (scope) => {
+      return <span class="color-danger font-bold">{scope.row.order?.isUrgentText}</span>;
+    },
+  },
+  { prop: 'order.provinceNo', label: '省工单编码', minWidth: 240 },
+  { prop: 'order.no', label: '工单编码', minWidth: 140 },
+  {
+    prop: 'order.startTime',
+    label: '受理时间',
+    minWidth: 160,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.order?.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  { prop: 'order.title', label: '工单标题', minWidth: 200 },
+  {
+    prop: 'order.expiredTime',
+    label: '工单期满时间',
+    minWidth: 160,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.order?.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  { prop: 'order.actualHandleOrgName', label: '接办部门', minWidth: 140 },
+  { prop: 'order.acceptType', label: '受理类型', minWidth: 100 },
+  { prop: 'order.hotspotName', label: '热点分类', minWidth: 150 },
+  { prop: 'order.acceptorName', label: '受理人', minWidth: 120 },
+  { prop: 'operation', label: '操作', fixed: 'right', width: 140, align: 'center' },
+]);
+// 手动查询,将页码设置为1
+const handleQuery = () => {
+  state.queryParams.PageIndex = 1;
+  queryList();
+};
+/** 获取列表 */
+const requestParams = ref({});
+const queryList = () => {
+  requestParams.value = Other.deepClone(state.queryParams);
+  requestParams.value.ApplyStartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0]; // 生成时间
+  requestParams.value.ApplyEndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+  Reflect.deleteProperty(requestParams.value, 'crTime'); // 删除无用的参数
+  state.loading = true;
+  provinceIdentifyList(requestParams.value)
+      .then((response: any) => {
+        state.tableData = response?.result.items ?? [];
+        state.total = response?.result.total;
+        state.loading = false;
+      })
+      .catch(() => {
+        state.loading = false;
+      });
+};
+/** 重置按钮操作 */
+const resetQuery = (formEl: FormInstance | undefined) => {
+  if (!formEl) return;
+  formEl.resetFields();
+  queryList();
+};
+// 查看明细
+const detailDialogRef = ref<RefType>();
+const onDetail = (row: any) => {
+  detailDialogRef.value.openDrawer(row.id, 'screen');
+};
+onMounted(() => {
+  queryList();
+});
+</script>
+<style scoped lang="scss">
+.province-order-screen-container {
+  .arrow {
+    transition: transform var(--el-transition-duration);
+    cursor: pointer;
+  }
+  .arrow.is-reverse {
+    transform: rotateZ(-180deg);
+  }
+}
+</style>

+ 6 - 1
src/views/province/zmhd/components/Public-detail.vue

@@ -10,11 +10,16 @@
 			<el-form-item label="公开时间">{{ state.ruleForm.publishDate }} </el-form-item>
 			<el-form-item label="公开意见">{{ state.ruleForm.publicOpinion }} </el-form-item>
 		</el-form>
+    <template #footer>
+			<span class="dialog-footer">
+				<el-button @click="closeDrawer" class="default-button">关 闭</el-button>
+			</span>
+    </template>
 	</el-drawer>
 </template>
 <script setup lang="ts">
 import { reactive, ref } from 'vue';
-import { provinceZmhdDetail } from '@/api/auxiliary/province';
+import { provinceZmhdDetail } from '@/api/province';
 
 // 定义变量内容
 const state = reactive<any>({

+ 2 - 2
src/views/province/zmhd/components/Public-handle.vue

@@ -16,7 +16,7 @@
 			<el-form-item label="公开意见" prop="publicOpinion" :rules="[{ required: true, message: '请填写公开意见', trigger: 'blur' }]">
 				<el-input v-model="state.ruleForm.publicOpinion" type="textarea" rows="4" maxlength="300" show-word-limit />
 			</el-form-item>
-			<el-alert title="注意" type="info" description="公开后,省平台可再次审核修改公开内容" show-icon :closable="false" />
+			<el-alert title="注意" type="warning" description="公开后,省平台可再次审核修改公开内容" show-icon :closable="false" />
 		</el-form>
 		<template #footer>
 			<span class="dialog-footer">
@@ -29,7 +29,7 @@
 <script setup lang="ts">
 import { reactive, ref } from 'vue';
 import { ElMessage, FormInstance } from 'element-plus';
-import { provinceZmhdAdd } from '@/api/auxiliary/province';
+import { provinceZmhdAdd } from '@/api/province';
 // 定义子组件向父组件传值/事件
 const emit = defineEmits(['updateList']);
 

+ 4 - 4
src/views/province/zmhd/index.vue

@@ -1,5 +1,5 @@
 <template>
-	<div class="auxiliary-province-zmhd-container layout-pd">
+	<div class="province-zmhd-container layout-pd">
 		<el-card shadow="never">
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
 				<el-row>
@@ -102,7 +102,7 @@
 				</template>
 				<!-- 表格操作 -->
 				<template #operation="{ row }">
-					<el-button link type="primary" v-if="row.isProvinceZmhd" @click="onDetail(row)">查看明细</el-button>
+					<el-button link type="primary" v-if="row.isProvinceZmhd" @click="onDetail(row)">明细</el-button>
 					<el-button link type="primary" v-else @click="onPublic(row)">公开</el-button>
 					<order-detail :order="row" @updateList="queryList" />
 				</template>
@@ -120,7 +120,7 @@ import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import { useRoute, useRouter } from 'vue-router';
 import { formatDate } from '@/utils/formatTime';
 import Other from '@/utils/other';
-import { provinceZmhdList } from '@/api/auxiliary/province';
+import { provinceZmhdList } from '@/api/province';
 
 // 引入组件
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
@@ -263,7 +263,7 @@ onMounted(() => {
 });
 </script>
 <style scoped lang="scss">
-.auxiliary-province-zmhd-container {
+.province-zmhd-container {
 	.arrow {
 		transition: transform var(--el-transition-duration);
 		cursor: pointer;