Forráskód Böngészése

reactor:对接超期部门统计明细和部门延期统计明细;

zhangchong 1 éve
szülő
commit
3824ce6bfa

+ 25 - 3
src/api/statistics/department.ts

@@ -14,6 +14,17 @@ export const departmentDelay = (params: object) => {
     params,
   });
 };
+/**
+ * @description 部门延期统计明细
+ * @param {object} params
+ */
+export const departmentDelayDetail = (params: object) => {
+  return request({
+    url: `/api/v1/BiOrder/order-delay-data-detail`,
+    method: 'get',
+    params,
+  });
+};
 /**
  * @description 部门受理类型统计周期
  * @param {object} params
@@ -26,16 +37,27 @@ export const departmentAcceptType = (params: object) => {
   });
 }
 /**
- * @description 部门数据统计列表查询
+ * @description 部门超期统计
  * @param {object} params
  */
-export const departmentList = (params: object) => {
+export const departmentOverdue = (params: object) => {
   return request({
     url: `/api/v1/BiOrder/org_data_list`,
     method: 'get',
     params,
   });
-};
+}
+/**
+ * @description 部门超期统计明细
+ * @param {object} params
+ */
+export const departmentOverdueDetail = (params: object) => {
+  return request({
+    url: `/api/v1/BiOrder/org_data_list_detail`,
+    method: 'get',
+    params,
+  });
+}
 /**
  * @description 部门满意度统计
  * @param {object} params

+ 18 - 0
src/router/route.ts

@@ -310,6 +310,24 @@ export const dynamicRoutes: Array<RouteRecordRaw> = [
 			isKeepAlive: true,
 			isDynamic:true
 		},
+	},{
+		path: '/statistics/department/detailOverdue/:id/:tagsViewName?',
+		name: 'statisticsDepartmentDetailOverdue',
+		component: () => import('@/views/statistics/department/detailOverdue.vue'),
+		meta: {
+			title: '部门超期统计明细',
+			isKeepAlive: true,
+			isDynamic:true
+		},
+	},{
+		path: '/statistics/department/detailDelay/:id/:tagsViewName?',
+		name: 'statisticsDepartmentDetailDelay',
+		component: () => import('@/views/statistics/department/detailDelay.vue'),
+		meta: {
+			title: '部门延期统计明细',
+			isKeepAlive: true,
+			isDynamic:true
+		},
 	},
 ];
 

+ 0 - 47
src/utils/signalR.tsx

@@ -2,52 +2,6 @@
 import * as signalR from '@microsoft/signalr';
 import { Cookie, Local } from '@/utils/storage';
 import mittBus from '@/utils/mitt';
-import { ElButton, ElNotification } from 'element-plus';
-let notice: any = null;
-/**
- * @description 判断是否需要更新
- */
-async function judge() {
-	if (notice) notice.close();
-	// @ts-ignore'
-	const messageContent = () => {
-		return (
-			<div>
-				<p style="justify-content:flex-end">
-					<span class="mb10">检测到服务端发布了新版本,是否刷新页面?</span>
-					<div class="mt10">
-						<ElButton onClick={ignore} size="small">
-							忽略
-						</ElButton>
-						<ElButton type="primary" onClick={Refresh} size="small">
-							刷新
-						</ElButton>
-					</div>
-				</p>
-			</div>
-		);
-	};
-	notice = ElNotification({
-		title: '提示',
-		type: 'warning',
-		dangerouslyUseHTMLString: true,
-		message: messageContent(),
-		customClass: 'updateTips',
-		duration: 0,
-	});
-}
-/**
- * @description 忽略
- */
-const ignore = () => {
-	notice.close();
-};
-/**
- * @description 刷新
- */
-const Refresh = () => {
-	window.location.reload();
-};
 export default {
 	// signalR对象
 	SR: null as any,
@@ -72,7 +26,6 @@ export default {
 		connection.onreconnected(async () => {
 			console.log('业务系统signal断线重连成功');
 			// location.reload();
-			await judge();
 			/*ElNotification({
 				type: 'success',
 				title: '提示',

+ 33 - 28
src/views/business/visit/index.vue

@@ -6,28 +6,28 @@
 				<el-form-item label="关键字" prop="Keyword">
 					<el-input v-model="state.queryParams.Keyword" placeholder="工单编码/标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
 				</el-form-item>
-        <el-form-item label="归档类型" prop="FiledType">
-          <el-select v-model="state.queryParams.FiledType" placeholder="请选择归档类型" @change="handleQuery">
-            <el-option label="中心归档" value="10" />
-            <el-option label="部门归档" value="20" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="是否会签" prop="IsCountersign">
-          <el-select v-model="state.queryParams.IsCountersign" placeholder="请选择是否会签" @change="handleQuery">
-            <el-option label="是" value="true" />
-            <el-option label="否" value="false" />
-          </el-select>
-        </el-form-item>
+				<el-form-item label="归档类型" prop="FiledType">
+					<el-select v-model="state.queryParams.FiledType" placeholder="请选择归档类型" @change="handleQuery">
+						<el-option label="中心归档" value="10" />
+						<el-option label="部门归档" value="20" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="是否会签" prop="IsCountersign">
+					<el-select v-model="state.queryParams.IsCountersign" placeholder="请选择是否会签" @change="handleQuery">
+						<el-option label="是" value="true" />
+						<el-option label="否" value="false" />
+					</el-select>
+				</el-form-item>
 				<el-form-item label="回访状态" prop="VisitState">
 					<el-select v-model="state.queryParams.VisitState" placeholder="请选择回访状态" @change="handleQuery">
 						<el-option v-for="item in state.visitStateOptions" :value="item.value" :key="item.value" :label="item.label" />
 					</el-select>
 				</el-form-item>
-        <el-form-item label="回访方式" prop="VisitType">
-          <el-select v-model="state.queryParams.VisitType" placeholder="请选择回访方式" @change="handleQuery">
-            <el-option v-for="item in state.visitTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
-          </el-select>
-        </el-form-item>
+				<el-form-item label="回访方式" prop="VisitType">
+					<el-select v-model="state.queryParams.VisitType" placeholder="请选择回访方式" @change="handleQuery">
+						<el-option v-for="item in state.visitTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
+					</el-select>
+				</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)" v-waves class="default-button" :loading="state.loading">
@@ -46,6 +46,7 @@
 				:total="state.total"
 				v-model:page-index="state.queryParams.PageIndex"
 				v-model:page-size="state.queryParams.PageSize"
+				@exportCurrent="exportCurrent"
 			>
 				<template #isProvince="{ row }">
 					<span>{{ row.order?.isProvince ? '省工单' : '市工单' }}</span>
@@ -85,7 +86,7 @@ import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElButton, FormInstance } from 'element-plus';
 import { formatDate } from '@/utils/formatTime';
 import { useRouter } from 'vue-router';
-import { visitList, visitSearchBaseData } from "@/api/business/visit";
+import { visitList, visitSearchBaseData } from '@/api/business/visit';
 
 // 引入组件
 const VisitDetailCom = defineAsyncComponent(() => import('@/views/business/visit/component/Visit-detail.vue')); // 回访
@@ -161,7 +162,7 @@ const state = reactive({
 		PageSize: 10,
 		Keyword: null, // 关键字
 		VisitState: null, // 回访状态
-    VisitType: null, // 回访方式
+		VisitType: null, // 回访方式
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -176,18 +177,18 @@ const state = reactive({
 			value: '2',
 		},
 	], // 回访状态
-  visitTypeOptions:[]
+	visitTypeOptions: [],
 });
 // 获取基础数据
 const getBaseData = () => {
-  visitSearchBaseData().then((res: any) => {
-    state.visitTypeOptions = res.result?.visitType ?? [];
-  });
+	visitSearchBaseData().then((res: any) => {
+		state.visitTypeOptions = res.result?.visitType ?? [];
+	});
 };
 // 手动查询,将页码设置为1
 const handleQuery = () => {
-  state.queryParams.PageIndex = 1;
-  queryList();
+	state.queryParams.PageIndex = 1;
+	queryList();
 };
 /** 获取列表 */
 const queryList = () => {
@@ -201,14 +202,14 @@ const queryList = () => {
 		.catch(() => {
 			state.loading = false;
 		});
-}
+};
 
 /** 重置按钮操作 */
 const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
 	queryList();
-}
+};
 // 回访详情
 const visitDetailRef = ref<RefType>();
 const visitDetail = (row: any) => {
@@ -218,8 +219,12 @@ const visitDetail = (row: any) => {
 		visitDetailRef.value.openDialog(row, '回访详情');
 	}
 };
+// 导出
+const exportCurrent = (cloums, prop) => {
+	console.log(cloums, prop);
+};
 onMounted(() => {
-  getBaseData();
+	getBaseData();
 	queryList();
 });
 </script>

+ 46 - 1
src/views/statistics/department/delay.vue

@@ -49,26 +49,55 @@ import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { departmentDelay } from '@/api/statistics/department';
 import { defaultDate, shortcuts } from "@/utils/constants";
+import { useRouter } from "vue-router";
+import { guid } from "@/utils/tools";
 
 // 表格配置项
 const columns = ref<any[]>([
 	{ type: 'index', fixed: 'left', width: 55, label: '序号', align: 'center' },
 	{ prop: 'orgName', label: '部门名称', align: 'center' },
-	{ prop: 'allTotal', label: '小计', align: 'center' },
+	{ prop: 'allTotal', label: '小计', align: 'center',render: (scope) => {
+      return (
+        <el-button type="primary" link onClick={() => linkDetail(scope.row,'4')}>
+          {scope.row.allTotal}
+        </el-button>
+      );
+    }, },
 	{
 		prop: 'passTotal',
 		label: '延期已同意次数',
 		align: 'center',
+    render: (scope) => {
+      return (
+        <el-button type="primary" link onClick={() => linkDetail(scope.row,'1')}>
+          {scope.row.passTotal}
+        </el-button>
+      );
+    },
 	},
 	{
 		prop: 'noPassTotal',
 		label: '延期未同意次数',
 		align: 'center',
+    render: (scope) => {
+      return (
+        <el-button type="primary" link onClick={() => linkDetail(scope.row,'2')}>
+          {scope.row.noPassTotal}
+        </el-button>
+      );
+    },
 	},
 	{
 		prop: 'examiningTotal',
 		label: '延期审批中次数',
 		align: 'center',
+    render: (scope) => {
+      return (
+        <el-button type="primary" link onClick={() => linkDetail(scope.row,'3')}>
+          {scope.row.examiningTotal}
+        </el-button>
+      );
+    },
 	},
 ]);
 // 定义变量内容
@@ -117,6 +146,22 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 	formEl.resetFields();
 	queryList();
 };
+// 跳转详情
+const router = useRouter();
+const linkDetail = (row: any,type:string) => {
+  router.push({
+    name: 'statisticsDepartmentDetailDelay',
+    params: {
+      id: guid(),
+    },
+    state: {
+      StartTime: state.queryParams?.crTime[0],
+      EndTime: state.queryParams?.crTime[1],
+      OrgCode: row.orgCode,
+      Type: type,
+    },
+  });
+};
 onMounted(() => {
 	queryList();
 });

+ 189 - 0
src/views/statistics/department/detailDelay.vue

@@ -0,0 +1,189 @@
+<template>
+  <div class="statistics-department-detail-delay-container layout-pd">
+    <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 #expiredStatus="{ row }">
+          <span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
+        </template>
+        <template #isProvince="{ row }">
+          <span>{{ row.order?.isProvince ? '省工单' : '市工单' }}</span>
+        </template>
+        <template #title="{ row }">
+          <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+        </template>
+        <template #employeeName="{ row }">
+					<span
+          >{{ row.order?.acceptorName }} <span v-if="row.order?.acceptorStaffNo">[{{ row.order?.acceptorStaffNo }}]</span>
+					</span>
+        </template>
+        <!-- 表格操作 -->
+        <template #operation="{ row }">
+          <el-button link type="primary" @click="onDetail(row)" title="查看延期详情"> 延期详情 </el-button>
+          <order-detail :order="row.order" @updateList="queryList" />
+        </template>
+      </ProTable>
+    </el-card>
+    <!--  延期详情  -->
+    <delay-detail-com ref="delayDetailRef" @updateList="queryList" />
+    <!--  延期修改  -->
+    <delay-edit ref="delayEditRef" @updateList="queryList" />
+  </div>
+</template>
+<script setup lang="tsx" name="statisticsDepartmentDetailDelay">
+import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
+import { ElButton, FormInstance } from 'element-plus';
+import { formatDate } from '@/utils/formatTime';
+import { useRouter } from 'vue-router';
+import { delayDetail } from "@/api/business/delay";
+import { departmentDelayDetail } from "@/api/statistics/department";
+
+// 引入组件
+const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
+const DelayDetailCom = defineAsyncComponent(() => import('@/views/business/delay/components/Delay-detail.vue')); // 延期详情
+const DelayEdit = defineAsyncComponent(() => import('@/views/business/delay/components/Delay-edit.vue')); // 延期修改
+
+const proTableRef = ref<RefType>(); // 表格ref
+// 表格配置项
+const columns = ref<any[]>([
+  { prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left',width: 80},
+  { prop: 'no', label: '工单编码', width: 150 },
+  { prop: 'isProvince', label: '省/市工单', width: 100 },
+  { prop: 'title', label: '工单标题', width: 300 },
+  { prop: 'order.actualHandleStepName', label: '办理节点', width: 120 },
+  { prop: 'delayStateText', label: '延期申请状态', width: 120 },
+  {
+    prop: 'order.startTime',
+    label: '受理时间',
+    width: 170,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.order?.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  { prop: 'employeeName', label: '受理人', width: 120 },
+  { prop: 'order.hotspotName', label: '热点分类', width: 120 },
+  { prop: 'order.acceptType', label: '受理类型', width: 120 },
+  {prop: 'order.orgLevelOneName', label: '一级部门', width: 120 },
+  { prop: 'order.actualHandleOrgName', label: '接办部门', width: 120 },
+  {
+    prop: 'order.actualHandleTime',
+    label: '接办时间',
+    width: 170,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.order?.actualHandleTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  {
+    prop: 'creationTime',
+    label: '延期申请时间',
+    width: 170,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  { prop: 'creatorName', label: '延期申请人', width: 120 },
+  { prop: 'creatorOrgName', label: '延期申请部门', width: 120 },
+  { prop: 'delayNum', label: '延期申请时限', width: 120 },
+  { prop: 'delayUnitText', label: '延期申请单位', width: 120 },
+  { prop: 'delayReason', label: '申请理由', width: 120 },
+  {
+    prop: 'beforeDelay',
+    label: '申请前期满时间',
+    width: 170,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.beforeDelay, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  {
+    prop: 'afterDelay',
+    label: '通过后期满时间',
+    width: 170,
+    render: (scope) => {
+      return <span>{formatDate(scope.row.afterDelay, 'YYYY-mm-dd HH:MM:SS')}</span>;
+    },
+  },
+  { prop: 'operation', label: '操作', fixed: 'right', width: 170, align: 'center' },
+]);
+// 定义变量内容
+const ruleFormRef = ref<RefType>(); // 表单ref
+const router = useRouter(); // 路由
+const state = reactive({
+  queryParams: {
+    // 查询条件
+    PageIndex: 1,
+    PageSize: 10,
+    Keyword: null, // 关键字
+  },
+  tableData: [{}], //表单
+  loading: false, // 加载
+  total: 0, // 总数
+});
+// 手动查询,将页码设置为1
+const handleQuery = () => {
+  state.queryParams.PageIndex = 1;
+  queryList();
+};
+/** 获取列表 */
+const historyParams = history.state;
+const queryList = () => {
+  state.loading = true;
+  const request = {
+    PageIndex: state.queryParams.PageIndex,
+    PageSize: state.queryParams.PageSize,
+    StartTime: historyParams?.StartTime,
+    EndTime: historyParams?.EndTime,
+    OrgCode: historyParams?.OrgCode,
+    Type: historyParams?.Type,
+  };
+  departmentDelayDetail(request)
+    .then((res) => {
+      state.tableData = res.result?.items ?? [];
+      state.total = res.result?.total ?? 0;
+      state.loading = false;
+    })
+    .catch((err) => {
+      console.log(err);
+    })
+    .finally(() => {
+      state.loading = false;
+    });
+}
+
+/** 重置按钮操作 */
+const resetQuery = (formEl: FormInstance | undefined) => {
+  if (!formEl) return;
+  formEl.resetFields();
+  queryList();
+}
+// 延期详情
+const delayDetailRef = ref<RefType>();
+const delayEditRef = ref<RefType>();
+const onDetail = async (row: any) => {
+  try {
+    const { result } = await delayDetail(row.id);
+    if (result.handle) {
+      // 退回到了开始 需要重新打开编辑页面在发起流程
+      delayEditRef.value.openDialog(row);
+    } else {
+      delayDetailRef.value.openDialog(row);
+    }
+  } catch (e) {
+    console.log(e);
+  }
+};
+// 导出
+const onExport = () => {
+  console.log('导出');
+};
+onMounted(async () => {
+  queryList();
+});
+</script>

+ 47 - 19
src/views/statistics/department/detailOverdue.vue

@@ -1,10 +1,16 @@
 <template>
-  <div class="business-overdue-container layout-pd">
+  <div class="statistics-department-detail-overdue-container layout-pd">
     <!-- 搜索  -->
     <el-card shadow="never">
       <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-        <el-form-item label="工单标题" prop="Keyword">
-          <el-input v-model="state.queryParams.Keyword" 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="ExpiredType">
+          <el-select v-model="state.queryParams.ExpiredType" placeholder="请选择超期类型" clearable @change="handleQuery">
+            <el-option  value="1" label="系统中超期"></el-option>
+            <el-option  value="2" label="申请延期超期"></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item>
           <el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -36,16 +42,20 @@
         <template #title="{ row }">
           <order-detail :order="row" @updateList="queryList">{{ row.title }}</order-detail>
         </template>
+        <!-- 表格操作 -->
+        <template #operation="{ row }">
+          <order-detail :order="row" @updateList="queryList" />
+        </template>
       </ProTable>
     </el-card>
   </div>
 </template>
-<script setup lang="tsx" name="statisticsDepartmentOverdueDetail">
+<script setup lang="tsx" name="statisticsDepartmentDetailOverdue">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElButton, FormInstance } from 'element-plus';
 import { formatDate } from '@/utils/formatTime';
 import { useRouter } from 'vue-router';
-import { overdueList } from '@/api/query/overdue';
+import { departmentOverdueDetail } from "@/api/statistics/department";
 
 // 引入组件
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
@@ -54,6 +64,9 @@ const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
   { prop: 'no', label: '工单编码', width: 150 },
+  { prop: 'isProvince', label: '省/市工单', width: 100 },
+  { prop: 'actualHandleStepName', label: '办理节点', width: 150 },
+  { prop: 'statusText', label: '工单状态', width: 100 },
   { prop: 'title', label: '标题', width: 300 },
   {
     prop: 'startTime',
@@ -63,27 +76,30 @@ const columns = ref<any[]>([
       return <span>{formatDate(scope.row.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
     },
   },
-  { prop: 'sourceChannel', label: '来源方式' },
-  { prop: 'statusText', label: '超期部门'},
   {
-    prop: 'filedTime',
-    label: '办结时间',
+    prop: 'expiredTime',
+    label: '工单期满时间',
     width: 170,
     render: (scope) => {
-      return <span>{formatDate(scope.row.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+      return <span>{formatDate(scope.row.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
     },
   },
   {
-    prop: 'expiredTime',
-    label: '工单期满时间',
+    prop: 'filedTime',
+    label: '办结时间',
     width: 170,
     render: (scope) => {
-      return <span>{formatDate(scope.row.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+      return <span>{formatDate(scope.row.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
     },
   },
-
-  { prop: 'sourceChannel', label: '超期天数' },
-  { prop: 'statusText', label: '工单状态' }
+  { prop: 'orgLevelOneName', label: '一级部门', width: 170 },
+  { prop: 'actualHandleOrgName', label: '接办部门', width: 170 },
+  { prop: 'acceptType', label: '受理类型', width: 150 },
+  { prop: 'counterSignTypeText', label: '是否会签' },
+  { prop: 'sourceChannel', label: '来源方式' },
+  { prop: 'hotspotName', label: '热点分类', width: 100 },
+  { prop: 'acceptorName', label: '受理人', width: 170 },
+  { prop: 'operation', label: '操作', fixed: 'right', width: 100, align: 'center' },
 ]);
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
@@ -93,9 +109,10 @@ const state = reactive({
     // 查询条件
     PageIndex: 1,
     PageSize: 10,
-    Keyword: null, // 关键字
+    No: null, //
+    ExpiredType:null
   },
-  tableData: [{}], //表单
+  tableData: [], //表单
   loading: false, // 加载
   total: 0, // 总数
 });
@@ -105,9 +122,20 @@ const handleQuery = () => {
   queryList();
 };
 /** 获取列表 */
+const historyParams = history.state;
 const queryList = () => {
   state.loading = true;
-  overdueList(state.queryParams)
+  const request = {
+    PageIndex: state.queryParams.PageIndex,
+    PageSize: state.queryParams.PageSize,
+    No: state.queryParams?.No,
+    ExpiredType: state.queryParams?.ExpiredType,
+    StartTime: historyParams?.StartTime,
+    EndTime: historyParams?.EndTime,
+    OrgCode: historyParams?.OrgCode,
+    QueryType: historyParams?.QueryType,
+  };
+  departmentOverdueDetail(request)
     .then((res) => {
       state.tableData = res.result?.items ?? [];
       state.total = res.result?.total ?? 0;

+ 17 - 14
src/views/statistics/department/overdue.vue

@@ -51,9 +51,10 @@
 <script setup lang="tsx" name="statisticsDepartmentOverdue">
 import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { departmentList } from '@/api/statistics/department';
+import { departmentOverdue } from '@/api/statistics/department';
 import { defaultDate, shortcuts } from "@/utils/constants";
 import { useRouter } from 'vue-router';
+import { guid } from "@/utils/tools";
 
 // 表格配置项
 const columns = ref<any[]>([
@@ -66,7 +67,7 @@ const columns = ref<any[]>([
 		sortable: 'custom',
 		render: (scope) => {
 			return (
-				<el-button type="primary" link onClick={() => linkDetail(scope.row)}>
+				<el-button type="primary" link onClick={() => linkDetail(scope.row,'1')}>
 					{scope.row.handlerExtendedNum}
 				</el-button>
 			);
@@ -79,7 +80,7 @@ const columns = ref<any[]>([
 		sortable: 'custom',
 		render: (scope) => {
 			return (
-				<el-button type="primary" link onClick={() => linkDetail(scope.row)}>
+				<el-button type="primary" link onClick={() => linkDetail(scope.row,'2')}>
 					{scope.row.counterHandlerExtendedNum}
 				</el-button>
 			);
@@ -92,7 +93,7 @@ const columns = ref<any[]>([
 		sortable: 'custom',
 		render: (scope) => {
 			return (
-				<el-button type="primary" link onClick={() => linkDetail(scope.row)}>
+				<el-button type="primary" link onClick={() => linkDetail(scope.row,'3')}>
 					{scope.row.noHandlerExtendedNum}
 				</el-button>
 			);
@@ -105,7 +106,7 @@ const columns = ref<any[]>([
 		sortable: 'custom',
 		render: (scope) => {
 			return (
-				<el-button type="primary" link onClick={() => linkDetail(scope.row)}>
+				<el-button type="primary" link onClick={() => linkDetail(scope.row,'4')}>
 					{scope.row.counterNoHandlerExtendedNum}
 				</el-button>
 			);
@@ -113,7 +114,7 @@ const columns = ref<any[]>([
 	},
 	{ prop: 'subtotal', label: '小计', align: 'center',render: (scope) => {
       return (
-        <el-button type="primary" link onClick={() => linkDetail(scope.row)}>
+        <el-button type="primary" link onClick={() => linkDetail(scope.row,'5')}>
           {scope.row.subtotal}
         </el-button>
       );
@@ -128,6 +129,8 @@ const state = reactive({
 		PageSize: 10,
 		Keyword: null, // 关键词
 		crTime: defaultDate, // 时间默认今天开始到今天结束
+    SortField:null,
+    SortRule:null
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -150,14 +153,13 @@ const queryList = () => {
 	const request = {
 		StartTime,
 		EndTime,
-		DelayState: state.queryParams.DelayState,
 		PageIndex: state.queryParams.PageIndex,
 		PageSize: state.queryParams.PageSize,
 		Keyword: state.queryParams.Keyword,
 		SortField: state.queryParams.SortField,
 		SortRule: state.queryParams.SortRule,
 	};
-	departmentList(request)
+  departmentOverdue(request)
 		.then((res: any) => {
 			state.tableData = res.result?.items ?? [];
 			state.total = res.result?.total ?? 0;
@@ -211,18 +213,19 @@ const getSummaries = (param: any) => {
 };
 // 跳转详情
 const router = useRouter();
-const linkDetail = (row: any) => {
-	console.log('详情', row);
-	/*router.push({
-	  name: 'statisticsDepartmentOverdueDetail',
+const linkDetail = (row: any,type:string) => {
+	router.push({
+	  name: 'statisticsDepartmentDetailOverdue',
 	  params: {
-	    id: row.orgId,
+	    id: guid(),
 	  },
 	  state: {
 	    StartTime: state.queryParams?.crTime[0],
 	    EndTime: state.queryParams?.crTime[1],
+      OrgCode: row.orgId,
+      QueryType: type,
 	  },
-	});*/
+	});
 };
 onMounted(() => {
 	queryList();