Bladeren bron

Merge branch 'release' into dev

zhangchong 3 maanden geleden
bovenliggende
commit
08e29b8417
43 gewijzigde bestanden met toevoegingen van 823 en 354 verwijderingen
  1. 54 20
      src/api/snapshot/centerMark.ts
  2. 98 0
      src/api/snapshot/config.ts
  3. 23 6
      src/api/snapshot/handle.ts
  4. 47 30
      src/api/snapshot/info.ts
  5. 58 24
      src/api/snapshot/inviteCode.ts
  6. 34 0
      src/api/snapshot/publish.ts
  7. 34 0
      src/api/snapshot/reAudit.ts
  8. 68 0
      src/api/snapshot/reSend.ts
  9. 43 9
      src/api/snapshot/statistics.ts
  10. 0 3
      src/components/ProcessAudit/LZProcess.vue
  11. 0 3
      src/components/ProcessAudit/YBProcess.vue
  12. 13 6
      src/components/ProcessAudit/ZGProcess.vue
  13. 12 10
      src/components/ProcessAudit/ZGSSPProcess.vue
  14. 0 3
      src/components/ProcessAudit/index.vue
  15. 9 9
      src/components/ProcessDetail/index.vue
  16. 1 0
      src/layout/navBars/breadcrumb/zgTel.vue
  17. 2 6
      src/views/business/order/index.vue
  18. 1 1
      src/views/case/retrieval/index.vue
  19. 15 16
      src/views/snapshot/centerMark/list.vue
  20. 7 2
      src/views/snapshot/centerMark/log.vue
  21. 10 3
      src/views/snapshot/config/areaUser/index.vue
  22. 29 11
      src/views/snapshot/config/clue/index.vue
  23. 21 7
      src/views/snapshot/config/industry/index.vue
  24. 12 14
      src/views/snapshot/config/modifyRecord/index.vue
  25. 10 2
      src/views/snapshot/config/sms/index.vue
  26. 10 3
      src/views/snapshot/config/volunteer/index.vue
  27. 38 30
      src/views/snapshot/config/volunteer/report.vue
  28. 7 2
      src/views/snapshot/handle/orderMark.vue
  29. 7 1
      src/views/snapshot/info/sspConfig/index.vue
  30. 28 68
      src/views/snapshot/inviteCode/list/components/Export-code.vue
  31. 22 11
      src/views/snapshot/inviteCode/statistics/components/detail.vue
  32. 8 4
      src/views/snapshot/inviteCode/statistics/index.vue
  33. 8 2
      src/views/snapshot/publish/audit.vue
  34. 7 4
      src/views/snapshot/publish/index.vue
  35. 28 11
      src/views/snapshot/reAudit/citizen/index.vue
  36. 1 1
      src/views/snapshot/reAudit/components/Re-supply.vue
  37. 10 3
      src/views/snapshot/reAudit/grid/index.vue
  38. 7 3
      src/views/snapshot/reSend/citizen/index.vue
  39. 8 4
      src/views/snapshot/reSend/grid/index.vue
  40. 8 4
      src/views/snapshot/reSend/list/index.vue
  41. 7 2
      src/views/snapshot/reSend/supplyLog.vue
  42. 11 13
      src/views/snapshot/statistics/allOrder/index.vue
  43. 7 3
      src/views/snapshot/statistics/gridReply.vue

+ 54 - 20
src/api/snapshot/centerMark.ts

@@ -8,41 +8,75 @@ import request from '@/utils/request';
  * @param {object} params
  */
 export const centerMarkList = (params?: object) => {
-  return request({
-    url: '/api/v1/SnapshotOrder/labeled',
-    method: 'get',
-    params,
-  });
+	return request({
+		url: '/api/v1/SnapshotOrder/labeled',
+		method: 'get',
+		params,
+	});
+};
+/**
+ * @description 工单标记集合导出
+ * @param {object} data
+ */
+export const centerMarkListExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/SnapshotOrder/labeled/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
 };
 /**
  * @description 获取标记详情
  * @param {string} id
  */
 export const centerMarkDetail = (id: string) => {
-  return request({
-    url: `/api/v1/SnapshotOrder/label/${id}`,
-    method: 'get',
-  });
+	return request({
+		url: `/api/v1/SnapshotOrder/label/${id}`,
+		method: 'get',
+	});
 };
 /**
  * @description 修改工单标记
  * @param {object} data
  */
 export const centerMarkUpdate = (data: object) => {
-  return request({
-    url: '/api/v1/SnapshotOrder/label',
-    method: 'put',
-    data,
-  });
+	return request({
+		url: '/api/v1/SnapshotOrder/label',
+		method: 'put',
+		data,
+	});
 };
 /**
  * @description 获取中心标注列表日志
  * @param {object} params
  */
 export const centerMarkListLog = (params?: object) => {
-  return request({
-    url: '/api/v1/SnapshotOrder/label/log',
-    method: 'get',
-    params,
-  });
-};
+	return request({
+		url: '/api/v1/SnapshotOrder/label/log',
+		method: 'get',
+		params,
+	});
+};
+/**
+ * @description 中心标注列表日志导出
+ * @param {object} data
+ */
+export const centerMarkListLogExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/SnapshotOrder/label/log/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};

+ 98 - 0
src/api/snapshot/config.ts

@@ -14,6 +14,20 @@ export const getIndustryList = (params?: object) => {
 		params
 	});
 }
+/**
+ * @description 获取行业列表导出
+ * @param {object} data
+ */
+export const getIndustryListExport = (data: object) => {
+	return request({
+		url: '/api/v1/Industry/industry/export_excel',
+		method: 'post',
+		data,
+		responseType: 'blob',
+	}, {
+		reduce_data_format: false
+	});
+}
 /**
  * @description 新增行业 修改该行业  基础信息
  * @param {object} params
@@ -79,6 +93,20 @@ export const getClueList = (params?: object) => {
 		params,
 	});
 }
+/**
+ * @description 获取线索列表导出
+ * @param {object} data
+ */
+export const getClueListExport = (data: object) => {
+	return request({
+		url: '/api/v1/Industry/case/export_excel',
+		method: 'post',
+		data,
+		responseType: 'blob',
+	}, {
+		reduce_data_format: false
+	});
+}
 /**
  * @description 获取线索新增基础信息
  * @param {object} params
@@ -133,6 +161,20 @@ export const getSmsList = (params?: object) => {
 		params,
 	});
 }
+/**
+ * @description 审批短信模板列表导出
+ * @param {object} data
+ */
+export const getSmsListExport = (data: object) => {
+	return request({
+		url: '/api/v1/Industry/sms_template/export_excel',
+		method: 'post',
+		data,
+		responseType: 'blob',
+	}, {
+		reduce_data_format: false
+	});
+}
 /**
  * @description 新增短信模板
  * @param {object} data
@@ -187,6 +229,20 @@ export const getAreaUserList = (params?: object) => {
 		params,
 	});
 }
+/**
+ * @description 获取区域从业人员列表导出
+ * @param {object} data
+ */
+export const getAreaUserListExport = (data: object) => {
+	return request({
+		url: '/api/v1/Industry/practitioner/export_excel',
+		method: 'post',
+		data,
+		responseType: 'blob',
+	}, {
+		reduce_data_format: false
+	});
+}
 /**
  * @description 新增区域从业人员 基础信息
  * @param {string} params
@@ -252,6 +308,20 @@ export const getReportList = (params?: object) => {
 		params,
 	});
 }
+/**
+ * @description 志愿者上报列表导出
+ * @param {object} data
+ */
+export const getReportListExport = (data: object) => {
+	return request({
+		url: '/api/v1/Industry/volunteer/report/export_excel',
+		method: 'post',
+		data,
+		responseType: 'blob',
+	}, {
+		reduce_data_format: false
+	});
+}
 /**
  * @description 获取志愿者列表
  * @param {object} params
@@ -263,6 +333,20 @@ export const getVolunteerList = (params?: object) => {
 		params,
 	});
 }
+/**
+ * @description 志愿者列表导出
+ * @param {object} data
+ */
+export const getVolunteerListExport = (data: object) => {
+	return request({
+		url: '/api/v1/Industry/volunteer/export_excel',
+		method: 'post',
+		data,
+		responseType: 'blob',
+	}, {
+		reduce_data_format: false
+	});
+}
 /**
  * @description 新增志愿者
  * @param {object} data
@@ -316,4 +400,18 @@ export const getIndustryEditRecord = (params?: object) => {
 		method: 'get',
 		params,
 	});
+}
+/**
+ * @description 行业修改记录导出
+ * @param {object} data
+ */
+export const getIndustryEditRecordExport = (data: object) => {
+	return request({
+		url: '/api/v1/Industry/order/industry/log/export_excel',
+		method: 'post',
+		data,
+		responseType: 'blob',
+	}, {
+		reduce_data_format: false
+	});
 }

+ 23 - 6
src/api/snapshot/handle.ts

@@ -7,21 +7,38 @@ import request from '@/utils/request';
  * @description 获取标注列表
  * @param {object} params
  */
-export const getOrderMarkList = (params?: object) =>{
-	return  request({
+export const getOrderMarkList = (params?: object) => {
+	return request({
 		url: '/api/v1/SnapshotOrder/label',
 		method: 'get',
 		params,
 	});
-}
+};
+/**
+ * @description 标注列表导出
+ * @param {object} data
+ */
+export const getOrderMarkListExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/SnapshotOrder/label/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 工单批量标注是否安全生产
  * @param {object} data
  */
-export const batchSign = (data: object) =>{
-	return  request({
+export const batchSign = (data: object) => {
+	return request({
 		url: '/api/v1/Order/sign/bath',
 		method: 'put',
 		data,
 	});
-}
+};

+ 47 - 30
src/api/snapshot/info.ts

@@ -7,107 +7,124 @@ import request from '@/utils/request';
  * @description 获取随手拍公告列表基础数据
  * @param {object} params
  */
-export const getSnapshotBulletinBaseData = (params?: object) =>{
+export const getSnapshotBulletinBaseData = (params?: object) => {
 	return request({
 		url: `/api/v1/SnapshotBulletin/bulletin/listbasedata`,
 		method: 'get',
-		params
+		params,
 	});
-}
+};
 /**
  * @description 获取随手拍公告列表
  * @param {object} params
  */
-export const getSnapshotBulletinList = (params: object) =>{
+export const getSnapshotBulletinList = (params: object) => {
 	return request({
 		url: `/api/v1/SnapshotBulletin/bulletin/query`,
 		method: 'get',
-		params
+		params,
 	});
-}
+};
+/**
+ * @description 随手拍公告列表导出
+ * @param {object} data
+ */
+export const getSnapshotBulletinExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/SnapshotBulletin/bulletin/export_excel`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 新增修改公告基础信息
  * @param {object} params
  */
-export const editSnapshotBulletinBase = (params?: object) =>{
+export const editSnapshotBulletinBase = (params?: object) => {
 	return request({
 		url: `/api/v1/SnapshotBulletin/bulletin/addbasedata`,
 		method: 'get',
-		params
+		params,
 	});
-}
+};
 /**
  * @description 新增公告
  * @param {object} data
  */
-export const addSnapshotBulletin = (data: object) =>{
+export const addSnapshotBulletin = (data: object) => {
 	return request({
 		url: `/api/v1/SnapshotBulletin/bulletin/add`,
 		method: 'post',
-		data
+		data,
 	});
-}
+};
 /**
  * @description 获取公告详情
  * @param {string} id
  */
-export const getSnapshotBulletinDetail = (id: string) =>{
+export const getSnapshotBulletinDetail = (id: string) => {
 	return request({
 		url: `/api/v1/SnapshotBulletin/bulletin/entity/${id}`,
-		method: 'get'
+		method: 'get',
 	});
-}
+};
 /**
  * @description 删除公告
  * @param {string} id
  */
-export const delSnapshotBulletin = (id: string) =>{
+export const delSnapshotBulletin = (id: string) => {
 	return request({
 		url: `/api/v1/SnapshotBulletin/bulletin/del/${id}`,
-		method: 'get'
+		method: 'get',
 	});
-}
+};
 /**
  * @description 修改公告
  * @param {object} data
  */
-export const editSnapshotBulletin = (data: object) =>{
+export const editSnapshotBulletin = (data: object) => {
 	return request({
 		url: `/api/v1/SnapshotBulletin/bulletin/update`,
 		method: 'post',
-		data
+		data,
 	});
-}
+};
 /**
  * @description 提交公告
  * @param {object} params
  */
-export const submitSnapshotBulletin = (params: object) =>{
+export const submitSnapshotBulletin = (params: object) => {
 	return request({
 		url: `/api/v1/SnapshotBulletin/bulletin/commit`,
 		method: 'get',
-		params
+		params,
 	});
-}
+};
 /**
  * @description 公告审核
  * @param {object} data
  */
-export const auditSnapshotBulletin = (data: object) =>{
+export const auditSnapshotBulletin = (data: object) => {
 	return request({
 		url: `/api/v1/SnapshotBulletin/bulletin/examine`,
 		method: 'post',
-		data
+		data,
 	});
-}
+};
 /**
  * @description 上架或者下架公告
  * @param {object} data
  */
-export const shelfSnapshotBulletin = (data: object) =>{
+export const shelfSnapshotBulletin = (data: object) => {
 	return request({
 		url: `/api/v1/SnapshotBulletin/bulletin-arrive`,
 		method: 'post',
-		data
+		data,
 	});
-}
+};

+ 58 - 24
src/api/snapshot/inviteCode.ts

@@ -7,86 +7,120 @@ import request from '@/utils/request';
  * @description 获取邀请码基础数据
  * @param {object} params
  */
-export const getInviteCodeBaseData = (params?: object) =>{
+export const getInviteCodeBaseData = (params?: object) => {
 	return request({
 		url: `/api/v1/InviteCode/basedata`,
 		method: 'get',
-		params
+		params,
 	});
-}
+};
 /**
  * @description 获取邀请码列表
  * @param {object} params
  */
-export const getInviteCodeList = (params?: object) =>{
+export const getInviteCodeList = (params?: object) => {
 	return request({
 		url: `/api/v1/InviteCode`,
 		method: 'get',
-		params
+		params,
 	});
-}
+};
 /**
  * @description 添加部门邀请码
  * @param {object} data
  */
-export const addInviteCode = (data: object) =>{
+export const addInviteCode = (data: object) => {
 	return request({
 		url: `/api/v1/InviteCode`,
 		method: 'post',
-		data
+		data,
 	});
-}
+};
 /**
  * @description 获取邀请码列表
  * @param {string} id
  */
-export const getInviteCodeDetail = (id: string) =>{
+export const getInviteCodeDetail = (id: string) => {
 	return request({
 		url: `/api/v1/InviteCode/${id}`,
-		method: 'get'
+		method: 'get',
 	});
-}
+};
 /**
  * @description 修改部门邀请码
  * @param {object} data
  */
-export const updateInviteCode = (data: object) =>{
+export const updateInviteCode = (data: object) => {
 	return request({
 		url: `/api/v1/InviteCode`,
 		method: 'put',
-		data
+		data,
 	});
-}
+};
 /**
  * @description 删除部门邀请码
  * @param {object} data
  */
-export const deleteInviteCode = (data: object) =>{
+export const deleteInviteCode = (data: object) => {
 	return request({
 		url: `/api/v1/InviteCode`,
 		method: 'delete',
-		data
+		data,
 	});
-}
+};
 /**
  * @description 邀请码统计
  * @param {object} params
  */
-export const getInviteCodeStatistics = (params?: object) =>{
+export const getInviteCodeStatistics = (params?: object) => {
 	return request({
 		url: `/api/v1/InviteCode/statistic`,
 		method: 'get',
-		params
+		params,
 	});
-}
+};
+/**
+ * @description 邀请码统计导出
+ * @param {object} data
+ */
+export const getInviteCodeStatisticsExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/InviteCode/statistic/export_excel`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 邀请码统计明细
  * @param {object} params
  */
-export const getInviteCodeStatisticsDetail = (params?: object) =>{
+export const getInviteCodeStatisticsDetail = (params?: object) => {
 	return request({
 		url: `/api/v1/InviteCode/statistic/detail`,
 		method: 'get',
-		params
+		params,
 	});
-}
+};
+/**
+ * @description 邀请码统计明细导出
+ * @param {object} data
+ */
+export const getInviteCodeStatisticsDetailExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/InviteCode/statistic/detail/export_excel`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};

+ 34 - 0
src/api/snapshot/publish.ts

@@ -25,6 +25,23 @@ export const centerPublishList = (params: object) => {
 		params,
 	});
 };
+/**
+ * @description 随手拍公开列表导出
+ * @param {object} data
+ */
+export const centerPublishExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/SnapshotOrder/publish/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 获取随手拍公开详情
  * @param {string} id
@@ -68,6 +85,23 @@ export const centerPublishUserList = (params: object) => {
 		params,
 	});
 };
+/**
+ * @description 随手拍公开审批列表导出
+ * @param {object} data
+ */
+export const centerPublishUserExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/SnapshotOrder/publish/audit/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 获取随手拍公开审批详情
  * @param {string} id

+ 34 - 0
src/api/snapshot/reAudit.ts

@@ -25,6 +25,23 @@ export const getCitizenRedEnvelopeApprovalList = (params?: object) => {
 		params,
 	});
 };
+/**
+ * @description 市民红包审批列表导出
+ * @param {object} data
+ */
+export const getCitizenRedEnvelopeApprovalExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/RedPack/audit/export_excel`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 获取市民红包审批详情
  * @param {object} id
@@ -132,6 +149,23 @@ export const getGridRedEnvelopeApprovalList = (params?: object) => {
 		params,
 	});
 };
+/**
+ * @description 网格员红包审批列表导出
+ * @param {object} data
+ */
+export const getGridRedEnvelopeApprovalListExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/RedPack/audit/guider/export_excel`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 获取网格员红包审批详情
  * @param {object} id

+ 68 - 0
src/api/snapshot/reSend.ts

@@ -14,6 +14,23 @@ export const getCitizenRedEnvelopeApprovalList = (params?: object) => {
 		params,
 	});
 };
+/**
+ * @description 市民红包发放列表导出
+ * @param {object} data
+ */
+export const getCitizenRedEnvelopeApprovalListExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/RedPack/record/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 批量发送红包
  * @param {object} data
@@ -36,6 +53,23 @@ export const getGridRedEnvelopeApprovalList = (params?: object) => {
 		params,
 	});
 };
+/**
+ * @description 网格员红包发放列表导出
+ * @param {object} data
+ */
+export const getGridRedEnvelopeApprovalListExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/RedPack/record/guider/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 获取红包发放明细基础数据
  * @param {object} params
@@ -58,6 +92,23 @@ export const getRedEnvelopeApprovalDetail = (params?: object) => {
 		params,
 	});
 };
+/**
+ * @description 红包发放明细导出
+ * @param {object} data
+ */
+export const getRedEnvelopeApprovalDetailExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/RedPack/record/send/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 获取红包补充发放记录基础参数
  * @param {object} params
@@ -79,4 +130,21 @@ export const getRedEnvelopeApprovalSupplementList = (params?: object) => {
 		method: 'get',
 		params,
 	});
+};
+/**
+ * @description 红包补充发放记录导出
+ * @param {object} data
+ */
+export const getRedEnvelopeApprovalSupplementListExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/RedPack/record/supplement/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
 };

+ 43 - 9
src/api/snapshot/statistics.ts

@@ -7,32 +7,66 @@ import request from '@/utils/request';
  * @description 获取网格员回复合计
  * @param {object} params
  */
-export const getGridReplyCount = (params?: object) =>{
-	return  request({
+export const getGridReplyCount = (params?: object) => {
+	return request({
 		url: '/api/v1/SnapshotOrder/guider/reply',
 		method: 'get',
 		params,
 	});
-}
+};
+/**
+ * @description 网格员回复合计导出
+ * @param {object} data
+ */
+export const getGridReplyCountExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/SnapshotOrder/guider/reply/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 获取随手拍所有工单基础数据
  * @param {object} params
  */
-export const getSSPAllBaseData = (params?: object) =>{
-	return  request({
+export const getSSPAllBaseData = (params?: object) => {
+	return request({
 		url: '/api/v1/SnapshotOrder/order/basedata',
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 获取随手拍所有工单
  * @param {object} params
  */
-export const getSSPAllOrder = (params?: object) =>{
-	return  request({
+export const getSSPAllOrder = (params?: object) => {
+	return request({
 		url: '/api/v1/SnapshotOrder/order',
 		method: 'get',
 		params,
 	});
-}
+};
+/**
+ * @description 随手拍所有工单导出
+ * @param {object} data
+ */
+export const getSSPAllOrderExport = (data: object) => {
+	return request(
+		{
+			url: '/api/v1/SnapshotOrder/order/export_excel',
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};

+ 0 - 3
src/components/ProcessAudit/LZProcess.vue

@@ -628,9 +628,6 @@ const openDialog = async (val: any) => {
 				handleResult(nextResponse);
 				break;
 		}
-		await nextTick(() => {
-			restForm(ruleFormRef.value);
-		});
 	} finally {
 		state.loading = false;
 	}

+ 0 - 3
src/components/ProcessAudit/YBProcess.vue

@@ -506,9 +506,6 @@ const openDialog = async (val: any) => {
 				handleResult(nextResponse);
 				break;
 		}
-		await nextTick(() => {
-			restForm(ruleFormRef.value);
-		});
 	} finally {
 		state.loading = false;
 	}

+ 13 - 6
src/components/ProcessAudit/ZGProcess.vue

@@ -130,7 +130,7 @@
 								<el-radio-group v-model="state.ruleForm.orderAssignMode" @change="selectDispatchType">
 									<el-radio :value="0">逐级派单</el-radio>
 									<el-radio :value="1">跨级派单</el-radio>
-<!--									<el-radio :value="2">主协办</el-radio>-->
+									<!--									<el-radio :value="2">主协办</el-radio>-->
 								</el-radio-group>
 							</el-form-item>
 						</el-col>
@@ -423,7 +423,14 @@
 							</el-form-item>
 						</el-col>
 						<el-col :span="24">
-							<el-form-item label="其他原因" prop="otherRemark" :rules="[{ required: false, message: '请填写其他原因', trigger: 'blur' }]">
+							<el-form-item
+								label="其他原因"
+								prop="otherRemark"
+								:rules="[
+									{ required: otherReasonRequired, message: '请填写其他原因', trigger: 'blur' },
+									{ required: false, pattern: '[^ \x20]+', trigger: 'blur', message: '其他原因不能为空' },
+								]"
+							>
 								<el-input v-model="state.ruleForm.otherRemark" placeholder="请填写其他原因"> </el-input>
 							</el-form-item>
 						</el-col>
@@ -669,9 +676,6 @@ const openDialog = async (val: any) => {
 				handleResult(nextResponse);
 				break;
 		}
-		await nextTick(() => {
-			restForm(ruleFormRef.value);
-		});
 	} finally {
 		state.loading = false;
 	}
@@ -1020,7 +1024,10 @@ const getCopyHandlers = async (orgCode: string | any) => {
 		console.log(e);
 	}
 };
-
+// 检测其他原因是否必填 如果选择了其他就必填
+const otherReasonRequired = computed(() => {
+  return state.ruleForm.checkedCities && state.ruleForm.checkedCities.length && state.ruleForm.checkedCities.includes('2');
+});
 type Node = {
 	_parent?: Node;
 	[key: string]: any;

+ 12 - 10
src/components/ProcessAudit/ZGSSPProcess.vue

@@ -555,8 +555,8 @@
 								label="其他原因"
 								prop="otherRemark"
 								:rules="[
-									{ required: state.ruleForm.checkedCities.includes('2'), message: '请填写其他原因', trigger: 'blur' },
-									{ required: true, pattern: '[^ \x20]+', trigger: 'blur', message: '其他原因不能为空' },
+									{ required: otherReasonRequired, message: '请填写其他原因', trigger: 'blur' },
+									{ required: false, pattern: '[^ \x20]+', trigger: 'blur', message: '其他原因不能为空' },
 								]"
 							>
 								<el-input v-model="state.ruleForm.otherRemark" placeholder="请填写其他原因"> </el-input>
@@ -828,9 +828,6 @@ const openDialog = async (val: any) => {
 				}
 			});
 		}
-		await nextTick(() => {
-			restForm(ruleFormRef.value);
-		});
 	} finally {
 		state.loading = false;
 	}
@@ -998,20 +995,21 @@ const orgSummaryToEnd = computed(() => {
 		selectNext.value.key === 'end'
 	);
 });
-// 判断当前工单是 随手拍电气焊作业申报 并且是部门办理时 并且当前不能是汇总节点 并且选择的下一节点是汇总或者归档
+// 判断当前工单是 随手拍电气焊作业申报 并且是部门办理时 并且当前节点是普通节点 并且选择的下一节点是汇总或者归档
 const orgDQH = computed(() => {
+  console.log(currentParams.value,'1111')
 	return (
 		currentParams.value.currentStepBusinessType === 2 &&
-		currentParams.value.stepType !== 3 &&
+		currentParams.value.currentStepType === 0 &&
 		(selectNext.value.stepType === 3 || selectNext.value.key === 'end') &&
 		state.orderDetail.industryName === '电气焊作业申报'
 	);
 });
-// 判断当前工单是 安全隐患 并且是部门办理时
+// 判断当前工单是 安全隐患 并且是部门办理时 并且当前节点是普通节点 并且选择的下一节点是汇总或者归档
 const orgAQYH = computed(() => {
 	return (
 		currentParams.value.currentStepBusinessType === 2 &&
-		currentParams.value.stepType !== 3 &&
+		currentParams.value.currentStepType === 0 &&
 		(selectNext.value.stepType === 3 || selectNext.value.key === 'end') &&
 		state.orderDetail.industryName === '安全隐患'
 	);
@@ -1566,6 +1564,10 @@ const handleIsAward = (val: any) => {
 		state.ruleForm.awardOpenBank = null;
 	}
 };
+// 检测其他原因是否必填 如果选择了其他就必填
+const otherReasonRequired = computed(() => {
+	return state.ruleForm.checkedCities && state.ruleForm.checkedCities.length && state.ruleForm.checkedCities.includes('2');
+});
 // 打开文件
 const openFile = (file: any) => {
 	console.log(file);
@@ -1580,7 +1582,7 @@ const onSubmit = (formEl: FormInstance | undefined) => {
 		if (orgDQH.value) {
 			// 附件必填的情况
 			if (!handleFiles.value.length) {
-				ElMessage.error('附件必填,请先上传附件!');
+				ElMessage.warning('附件必填,请先上传附件!');
 				return;
 			}
 		}

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

@@ -811,9 +811,6 @@ const openDialog = async (val: any) => {
 				handleResult(nextResponse);
 				break;
 		}
-		await nextTick(() => {
-			restForm(ruleFormRef.value);
-		});
 	} finally {
 		state.loading = false;
 	}

+ 9 - 9
src/components/ProcessDetail/index.vue

@@ -87,12 +87,12 @@
 							{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}
 						</template>
 					</vxe-column>
-					<vxe-column field="name" title="当前节点"></vxe-column>
-					<vxe-column field="assignerName" title="交办人"></vxe-column>
-					<vxe-column field="assignOrgName" title="交办部门"></vxe-column>
-					<vxe-column field="acceptorName" title="接办人"></vxe-column>
-					<vxe-column field="acceptorOrgName" title="接办部门"></vxe-column>
-					<vxe-column field="handlerName" title="办理人"></vxe-column>
+					<vxe-column field="name" title="当前节点" width="100"></vxe-column>
+					<vxe-column field="assignerName" title="交办人" width="120"></vxe-column>
+					<vxe-column field="assignerOrgName" title="交办部门" width="140"></vxe-column>
+					<vxe-column field="acceptorName" title="接办人" width="120"></vxe-column>
+					<vxe-column field="acceptorOrgName" title="接办部门" width="140"></vxe-column>
+					<vxe-column field="handlerName" title="办理人" width="120"></vxe-column>
 					<vxe-column field="acceptTime" title="签收时间" width="160">
 						<template #default="{ row }">
 							{{ formatDate(row.acceptTime, 'YYYY-mm-dd HH:MM:SS') }}
@@ -108,8 +108,8 @@
 							{{ formatDate(row.stepExpiredTime, 'YYYY-mm-dd HH:MM:SS') }}
 						</template>
 					</vxe-column>
-					<vxe-column field="expiredStatusText" title="超期状态"></vxe-column>
-					<vxe-column field="handleModeText" title="流转状态">
+					<vxe-column field="expiredStatusText" title="超期状态" width="110"></vxe-column>
+					<vxe-column field="handleModeText" title="流转状态" width="100">
 						<template #default="{ row }">
 							<el-text :type="row.handleMode !== 0 ? 'danger' : ''">{{ row.handleModeText }}</el-text>
 						</template>
@@ -265,7 +265,7 @@ const gridOptions = reactive<any>({
 		{ field: 'creationTime', title: '建立时间', width: 160, formatter: 'formatDate' },
 		{ field: 'name', title: '当前节点', width: 110 },
 		{ field: 'assignerName', title: '交办人', width: 120 },
-		{ field: 'assignOrgName', title: '交办部门', width: 140 },
+		{ field: 'assignerOrgName', title: '交办部门', width: 140 },
 		{ field: 'acceptorName', title: '接办人', width: 120 },
 		{ field: 'acceptorOrgName', title: '接办部门', width: 140 },
 		{ field: 'handlerName', title: '办理人', width: 120 },

+ 1 - 0
src/layout/navBars/breadcrumb/zgTel.vue

@@ -743,6 +743,7 @@ const sendSignIn = () => {
 			Role: '',
 			GroupName: m_strGroup.value,
 			OrgId: m_strCompanyId.value,
+			Userdata: userInfos.value.id, // 签入时携带的参数,用于后台记录 用户ID
 		},
 	};
 	// 发送请求

+ 2 - 6
src/views/business/order/index.vue

@@ -372,11 +372,11 @@ import { defineAsyncComponent, onMounted, reactive, ref, onActivated, onBeforeUn
 import type { FormInstance } from 'element-plus';
 import { ElMessage, ElMessageBox } from 'element-plus';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { exportOrder, listBaseData, orderList, orderListCount, orderListFixed } from '@/api/business/order';
+import { exportOrder, listBaseData, orderList, orderListCount } from '@/api/business/order';
 import { addObserve } from '@/api/query/observe';
 import { addEnd } from '@/api/query/end';
 import { treeArea } from '@/api/auxiliary/area';
-import { debounce, exportAssignment, getNeedArr } from '@/utils/tools';
+import { debounce, exportAssignment } from '@/utils/tools';
 import Other from '@/utils/other';
 import mittBus from '@/utils/mitt';
 import { useThemeConfig } from '@/stores/themeConfig';
@@ -717,10 +717,6 @@ const onUrge = () => {
 	const ids = checkTable.value.map((item: any) => item.id);
 	orderUrgeRef.value.openDialog(ids);
 };
-// 打开内容检索
-const contentRetrieval = () => {
-	state.dialogVisible = !state.dialogVisible;
-};
 const ruleFormContentRef = ref<RefType>();
 // 内容检索
 const onSearch = (formEl: FormInstance | undefined) => {

+ 1 - 1
src/views/case/retrieval/index.vue

@@ -60,7 +60,7 @@
 											<span v-if="v.keywords">关键词:{{v.keywords}}</span>
 										</div>
 										<div class="flex-center-align">
-											<span class="flex-center-align"><SvgIcon name="ele-StarFilled" size="18px" class="mr3" />{{ v.score }}</span>
+<!--											<span class="flex-center-align"><SvgIcon name="ele-StarFilled" size="18px" class="mr3" />{{ v.score }}</span>-->
 											<!--											<span class="flex-center-align ml10"><SvgIcon name="ele-ChatDotSquare" size="16px" class="mr3" />{{ v.commentNum }}</span>-->
 											<span class="flex-center-align ml10"><SvgIcon name="ele-View" size="16px" class="mr3" />{{ v.pageView }}</span>
 										</div>

+ 15 - 16
src/views/snapshot/centerMark/list.vue

@@ -41,13 +41,7 @@
 		<el-drawer v-model="drawer" title="更多查询" size="500px">
 			<el-form :model="state.queryParams" ref="drawerRuleFormRef" @submit.native.prevent label-width="100px">
 				<el-form-item label="联系电话" prop="Contact">
-					<el-input
-						v-model="state.queryParams.Contact"
-						placeholder="请填写联系电话"
-						clearable
-						@keyup.enter="handleQuery"
-						class="keyword-input"
-					/>
+					<el-input v-model="state.queryParams.Contact" placeholder="请填写联系电话" clearable @keyup.enter="handleQuery" class="keyword-input" />
 				</el-form-item>
 				<el-form-item label="来电人" prop="FromName">
 					<el-input v-model="state.queryParams.FromName" placeholder="请填写来电人" clearable @keyup.enter="handleQuery" />
@@ -88,7 +82,7 @@ import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import Other from '@/utils/other';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { centerMarkList } from '@/api/snapshot/centerMark';
+import { centerMarkList, centerMarkListExport } from '@/api/snapshot/centerMark';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -103,17 +97,18 @@ const state = reactive<any>({
 		PageSize: 20,
 		No: null, // 工单编码
 		Title: null, // 工单标题
-		Contact:null,
-		FromName:null,
-		SignName:null,
-		Label:null,
-		bzTime:[],
-		BeginSignTime:null,
-		EndSignTime:null,
+		Contact: null,
+		FromName: null,
+		SignName: null,
+		Label: null,
+		bzTime: [],
+		BeginSignTime: null,
+		EndSignTime: null,
 	},
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -133,6 +128,11 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: centerMarkListExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -217,7 +217,6 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;

+ 7 - 2
src/views/snapshot/centerMark/log.vue

@@ -77,7 +77,7 @@ import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import Other from '@/utils/other';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { centerMarkListLog } from '@/api/snapshot/centerMark';
+import { centerMarkListLog, centerMarkListLogExport } from '@/api/snapshot/centerMark';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -103,6 +103,7 @@ const state = reactive<any>({
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -122,6 +123,11 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: centerMarkListLogExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -205,7 +211,6 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;

+ 10 - 3
src/views/snapshot/config/areaUser/index.vue

@@ -67,7 +67,8 @@
 <script lang="tsx" setup name="snapshotConfigAreaUser">
 import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
-import { delAreaUser, getAreaUserList } from '@/api/snapshot/config';
+import { delAreaUser, getAreaUserList, getAreaUserListExport } from '@/api/snapshot/config';
+import Other from '@/utils/other';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -88,7 +89,7 @@ const state = reactive<any>({
 	},
 	total: 0, // 总条数
 });
-
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -111,6 +112,11 @@ const gridOptions = reactive<any>({
 		slots: {
 			buttons: 'toolbar_buttons',
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getAreaUserListExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -155,7 +161,8 @@ const handleQuery = () => {
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
-	getAreaUserList(state.queryParams)
+	requestParams.value = Other.deepClone(state.queryParams);
+	getAreaUserList(requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];

+ 29 - 11
src/views/snapshot/config/clue/index.vue

@@ -5,10 +5,22 @@
 				<template #form>
 					<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent :disabled="gridOptions.loading">
 						<el-form-item label="线索分类" prop="CaseName">
-							<el-input v-model="state.queryParams.CaseName" placeholder="请填写线索分类" clearable @keyup.enter="handleQuery" class="keyword-input" />
+							<el-input
+								v-model="state.queryParams.CaseName"
+								placeholder="请填写线索分类"
+								clearable
+								@keyup.enter="handleQuery"
+								class="keyword-input"
+							/>
 						</el-form-item>
 						<el-form-item label="行业类型" prop="IndustryName">
-							<el-input v-model="state.queryParams.IndustryName" placeholder="请填写行业类型" clearable @keyup.enter="handleQuery" class="keyword-input" />
+							<el-input
+								v-model="state.queryParams.IndustryName"
+								placeholder="请填写行业类型"
+								clearable
+								@keyup.enter="handleQuery"
+								class="keyword-input"
+							/>
 						</el-form-item>
 						<el-form-item>
 							<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -17,11 +29,9 @@
 					</el-form>
 				</template>
 				<template #toolbar_buttons>
-					<el-button type="primary" @click="onAdd" v-auth="'snapshot:config:clue:add'">
-						<SvgIcon name="ele-Plus" class="mr5" />新增线索
-					</el-button>
+					<el-button type="primary" @click="onAdd" v-auth="'snapshot:config:clue:add'"> <SvgIcon name="ele-Plus" class="mr5" />新增线索 </el-button>
 				</template>
-				<template #action="{row}">
+				<template #action="{ row }">
 					<el-button link type="primary" @click="onEdit(row)" v-auth="'snapshot:config:clue:edit'" title="编辑线索"> 编辑 </el-button>
 				</template>
 				<template #pager>
@@ -45,7 +55,8 @@
 <script lang="tsx" setup name="snapshotConfigClue">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { getClueList, getIndustryList } from '@/api/snapshot/config';
+import { getClueList, getClueListExport } from '@/api/snapshot/config';
+import Other from '@/utils/other';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -64,7 +75,7 @@ const state = reactive<any>({
 	},
 	total: 0, // 总条数
 });
-
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -87,6 +98,11 @@ const gridOptions = reactive<any>({
 		slots: {
 			buttons: 'toolbar_buttons',
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getClueListExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -106,7 +122,8 @@ const gridOptions = reactive<any>({
 		{
 			field: 'citizenReadPackAmountTxt',
 			title: '市民红包',
-		},	{
+		},
+		{
 			field: 'guiderReadPackAmountTxt',
 			title: '网格员红包',
 		},
@@ -138,7 +155,8 @@ const handleQuery = () => {
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
-	getClueList(state.queryParams)
+	requestParams.value = Other.deepClone(state.queryParams);
+	getClueList(requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];
@@ -170,4 +188,4 @@ const onEdit = (row: any) => {
 onMounted(() => {
 	queryList();
 });
-</script>
+</script>

+ 21 - 7
src/views/snapshot/config/industry/index.vue

@@ -8,7 +8,13 @@
 							<el-input v-model="state.queryParams.Name" placeholder="请填写行业名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
 						</el-form-item>
 						<el-form-item label="审批部门" prop="ApproveOrgName">
-							<el-input v-model="state.queryParams.ApproveOrgName" placeholder="请填写审批部门" clearable @keyup.enter="handleQuery" class="keyword-input" />
+							<el-input
+								v-model="state.queryParams.ApproveOrgName"
+								placeholder="请填写审批部门"
+								clearable
+								@keyup.enter="handleQuery"
+								class="keyword-input"
+							/>
 						</el-form-item>
 						<el-form-item>
 							<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -21,7 +27,7 @@
 						<SvgIcon name="ele-Plus" class="mr5" />新增行业
 					</el-button>
 				</template>
-				<template #action="{row}">
+				<template #action="{ row }">
 					<el-button link type="primary" @click="editIndustry(row)" v-auth="'snapshot:config:industry:edit'" title="编辑行业"> 编辑 </el-button>
 				</template>
 				<template #pager>
@@ -45,7 +51,8 @@
 <script lang="tsx" setup name="snapshotConfigIndustry">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { getIndustryList } from '@/api/snapshot/config';
+import { getIndustryList, getIndustryListExport } from '@/api/snapshot/config';
+import Other from '@/utils/other';
 
 // 引入组件
 const IndustryAdd = defineAsyncComponent(() => import('@/views/snapshot/config/industry/components/Industry-add.vue')); // 行业新增
@@ -64,7 +71,7 @@ const state = reactive<any>({
 	},
 	total: 0, // 总条数
 });
-
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -84,10 +91,15 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
 		slots: {
 			buttons: 'toolbar_buttons',
 		},
 	},
+	params: {
+		exportMethod: getIndustryListExport,
+		exportParams: requestParams,
+	},
 	customConfig: {
 		storage: true,
 	},
@@ -106,7 +118,8 @@ const gridOptions = reactive<any>({
 		{
 			field: 'citizenReadPackAmount',
 			title: '市民红包',
-		},	{
+		},
+		{
 			field: 'guiderReadPackAmount',
 			title: '网格员红包',
 		},
@@ -158,7 +171,8 @@ const handleQuery = () => {
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
-	getIndustryList(state.queryParams)
+	requestParams.value = Other.deepClone(state.queryParams);
+	getIndustryList(requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];
@@ -190,4 +204,4 @@ const editIndustry = (row: any) => {
 onMounted(() => {
 	queryList();
 });
-</script>
+</script>

+ 12 - 14
src/views/snapshot/config/modifyRecord/index.vue

@@ -5,13 +5,7 @@
 				<template #form>
 					<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent :disabled="gridOptions.loading">
 						<el-form-item label="工单编码" prop="No">
-							<el-input
-								v-model="state.queryParams.No"
-								placeholder="请填写工单编码"
-								clearable
-								@keyup.enter="handleQuery"
-								class="keyword-input"
-							/>
+							<el-input v-model="state.queryParams.No" placeholder="请填写工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
 						</el-form-item>
 						<el-form-item label="修改人员" prop="ChangeName">
 							<el-input
@@ -29,7 +23,7 @@
 					</el-form>
 				</template>
 				<template #order_detail="{ row }">
-					<order-detail :order="{id:row.orderId}" @updateList="queryList">{{ row.title }}</order-detail>
+					<order-detail :order="{ id: row.orderId }" @updateList="queryList">{{ row.title }}</order-detail>
 				</template>
 				<template #pager>
 					<pagination
@@ -77,7 +71,7 @@
 <script lang="tsx" setup name="snapshotConfigModifyRecord">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { getIndustryEditRecord } from '@/api/snapshot/config';
+import { getIndustryEditRecord, getIndustryEditRecordExport } from '@/api/snapshot/config';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import Other from '@/utils/other';
 
@@ -92,17 +86,17 @@ const state = reactive<any>({
 		// 查询参数
 		PageIndex: 1,
 		PageSize: 20,
-		ChangeName:null, // 修改人
+		ChangeName: null, // 修改人
 		No: null, // 工单编码
 		oldIndustryName: null, // 原行业
 		IndustryName: null, // 新行业
 		xgTime: [], // 修改时间
-		BeginTime:null,
-		EndTime:null,
+		BeginTime: null,
+		EndTime: null,
 	},
 	total: 0, // 总条数
 });
-
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -122,6 +116,11 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getIndustryEditRecordExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -165,7 +164,6 @@ const handleQuery = () => {
 	state.queryParams.PageIndex = 1;
 	queryList();
 };
-const requestParams = ref<EmptyObjectType>({});
 // 获取参数列表
 const queryList = () => {
 	state.loading = true;

+ 10 - 2
src/views/snapshot/config/sms/index.vue

@@ -49,7 +49,8 @@
 <script lang="tsx" setup name="snapshotConfigSms">
 import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
-import { delSmsTemplate, delVolunteer, getSmsList } from '@/api/snapshot/config';
+import {delSmsTemplate, getSmsList, getSmsListExport, getVolunteerListExport} from '@/api/snapshot/config';
+import Other from "@/utils/other";
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -68,6 +69,7 @@ const state = reactive<any>({
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -90,7 +92,12 @@ const gridOptions = reactive<any>({
 		slots: {
 			buttons: 'toolbar_buttons',
 		},
+    tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
 	},
+  params: {
+    exportMethod: getSmsListExport,
+    exportParams: requestParams,
+  },
 	customConfig: {
 		storage: true,
 	},
@@ -149,7 +156,8 @@ const handleQuery = () => {
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
-	getSmsList(state.queryParams)
+  requestParams.value = Other.deepClone(state.queryParams);
+	getSmsList( requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];

+ 10 - 3
src/views/snapshot/config/volunteer/index.vue

@@ -46,7 +46,8 @@
 <script lang="tsx" setup name="snapshotConfigVolunteer">
 import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
-import { delVolunteer, getVolunteerList } from '@/api/snapshot/config';
+import { delVolunteer, getVolunteerList, getVolunteerListExport } from '@/api/snapshot/config';
+import Other from '@/utils/other';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -65,7 +66,7 @@ const state = reactive<any>({
 	},
 	total: 0, // 总条数
 });
-
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -88,6 +89,11 @@ const gridOptions = reactive<any>({
 		slots: {
 			buttons: 'toolbar_buttons',
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getVolunteerListExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -119,7 +125,8 @@ const handleQuery = () => {
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
-	getVolunteerList(state.queryParams)
+	requestParams.value = Other.deepClone(state.queryParams);
+	getVolunteerList(requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];

+ 38 - 30
src/views/snapshot/config/volunteer/report.vue

@@ -49,7 +49,8 @@
 <script lang="tsx" setup name="snapshotConfigVolunteerReport">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { getReportList } from '@/api/snapshot/config';
+import { getReportList, getReportListExport } from '@/api/snapshot/config';
+import Other from '@/utils/other';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -68,6 +69,7 @@ const state = reactive<any>({
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -87,6 +89,11 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getReportListExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -123,65 +130,65 @@ const gridOptions = reactive<any>({
 		{
 			field: 'isApprovalProcess',
 			title: '生产经营单位内部是否按规定办理审批手续',
-			slots:{
-				default ({row}) {
+			slots: {
+				default({ row }) {
 					return row.isApprovalProcess ? '是' : '否';
-				}
-			}
+				},
+			},
 		},
 		{
 			field: 'isProfessionalCertificate',
 			title: '电气焊作业人员是否取得职业资格证书',
-			slots:{
-				default ({row}) {
+			slots: {
+				default({ row }) {
 					return row.isProfessionalCertificate ? '是' : '否';
-				}
-			}
+				},
+			},
 		},
 		{
 			field: 'isSiteMonitoring',
 			title: '是否落实作业现场监护人员',
-			slots:{
-				default ({row}) {
+			slots: {
+				default({ row }) {
 					return row.isSiteMonitoring ? '是' : '否';
-				}
-			}
+				},
+			},
 		},
 		{
 			field: 'isFireWork',
 			title: '是否在人员密集场所营业期间动火作业',
-			slots:{
-				default ({row}) {
+			slots: {
+				default({ row }) {
 					return row.isFireWork ? '是' : '否';
-				}
-			}
+				},
+			},
 		},
 		{
 			field: 'isClearSafety',
 			title: '是否清除作业现场及周围易燃物品或落实有效安全防范措施',
-			slots:{
-				default ({row}) {
+			slots: {
+				default({ row }) {
 					return row.isClearSafety ? '是' : '否';
-				}
-			}
+				},
+			},
 		},
 		{
 			field: 'hasFireEquipment',
 			title: '作业现场是否配备能满足现场灭火应急需求消防器材',
-			slots:{
-				default ({row}) {
+			slots: {
+				default({ row }) {
 					return row.hasFireEquipment ? '是' : '否';
-				}
-			}
+				},
+			},
 		},
 		{
 			field: 'isToolSafety',
 			title: '作业现场使用的工器具是否进行安全检查',
-			slots:{
-				default ({row}) {
+			slots: {
+				default({ row }) {
 					return row.isToolSafety ? '是' : '否';
-				}
-			}
+				},
+			},
 		},
 		{ title: '操作', width: 90, fixed: 'right', align: 'center', slots: { default: 'action' } },
 	],
@@ -197,7 +204,8 @@ const handleQuery = () => {
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
-	getReportList(state.queryParams)
+	requestParams.value = Other.deepClone(state.queryParams);
+	getReportList(requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];

+ 7 - 2
src/views/snapshot/handle/orderMark.vue

@@ -50,7 +50,7 @@
 <script lang="tsx" setup name="snapshotHandleOrderMark">
 import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { getOrderMarkList } from '@/api/snapshot/handle';
+import { getOrderMarkList, getOrderMarkListExport } from '@/api/snapshot/handle';
 import Other from '@/utils/other';
 
 // 引入组件
@@ -72,6 +72,7 @@ const state = reactive<any>({
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -94,6 +95,11 @@ const gridOptions = reactive<any>({
 		slots: {
 			buttons: 'toolbar_buttons',
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getOrderMarkListExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -176,7 +182,6 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;

+ 7 - 1
src/views/snapshot/info/sspConfig/index.vue

@@ -125,6 +125,7 @@ import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
 import {
 	delSnapshotBulletin,
 	getSnapshotBulletinBaseData,
+	getSnapshotBulletinExport,
 	getSnapshotBulletinList,
 	shelfSnapshotBulletin,
 	submitSnapshotBulletin,
@@ -158,6 +159,7 @@ const state = reactive<any>({
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -180,6 +182,11 @@ const gridOptions = reactive<any>({
 		slots: {
 			buttons: 'toolbar_buttons',
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getSnapshotBulletinExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -288,7 +295,6 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取参数列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;

+ 28 - 68
src/views/snapshot/inviteCode/list/components/Export-code.vue

@@ -1,10 +1,12 @@
 <template>
 	<el-dialog v-model="state.dialogVisible" width="70%" draggable title="导出邀请码" destroy-on-close append-to-body>
-		<div ref="exportWordRef" class="export-content">
-			<div v-for="(item, index) in list" :key="index" class="export-content-item">
-				<img :src="item.url" alt="" />
-				<div class="title">{{ item.title }}</div>
-				<div class="code">{{ item.code }}</div>
+		<div ref="exportWordRef">
+			<div style="display: grid; grid-template-columns: repeat(auto-fill, 300px); grid-gap: 20px; justify-items: center; align-items: center">
+				<div v-for="(item, index) in list" :key="index" style="text-align: center; border: 1px solid #ccc; padding: 10px 0">
+					<img :src="item.url" style="width: 300px" alt="加载失败" />
+					<div style="margin-top: 10px">{{ item.title }}</div>
+					<div style="margin-top: 10px">{{ item.code }}</div>
+				</div>
 			</div>
 		</div>
 		<template #footer>
@@ -17,56 +19,20 @@
 </template>
 
 <script setup lang="ts">
-import { onMounted, reactive, ref } from 'vue';
+import { reactive, ref } from 'vue';
 import { exportAsDocx } from '@/utils/exportAsWord';
-// 定义子组件向父组件传值/事件
-const emit = defineEmits(['updateList']);
+import { getInviteCodeList } from '@/api/snapshot/inviteCode';
 
 // 定义变量内容
 const state = reactive<any>({
 	dialogVisible: false,
 });
-const list = ref<EmptyArrayType>([
-	{
-		title: '高新区管委会及下属单位',
-		code: '1200 ~ 1999',
-		url: 'http://171.94.154.9:81/UploadFiles/QRCode/11192406-5126-4a7f-97ed-514c174c8d2c.png',
-	},
-	{
-		title: '高新区管委会及下属单位',
-		code: '1200 ~ 1999',
-		url: 'http://171.94.154.9:81/UploadFiles/QRCode/11192406-5126-4a7f-97ed-514c174c8d2c.png',
-	},
-	{
-		title: '高新区管委会及下属单位',
-		code: '1200 ~ 1999',
-		url: 'http://171.94.154.9:81/UploadFiles/QRCode/11192406-5126-4a7f-97ed-514c174c8d2c.png',
-	},
-	{
-		title: '高新区管委会及下属单位',
-		code: '1200 ~ 1999',
-		url: 'http://171.94.154.9:81/UploadFiles/QRCode/11192406-5126-4a7f-97ed-514c174c8d2c.png',
-	},
-	{
-		title: '高新区管委会及下属单位',
-		code: '1200 ~ 1999',
-		url: 'http://171.94.154.9:81/UploadFiles/QRCode/11192406-5126-4a7f-97ed-514c174c8d2c.png',
-	},
-	{
-		title: '高新区管委会及下属单位',
-		code: '1200 ~ 1999',
-		url: 'http://171.94.154.9:81/UploadFiles/QRCode/11192406-5126-4a7f-97ed-514c174c8d2c.png',
-	},
-	{
-		title: '高新区管委会及下属单位',
-		code: '1200 ~ 1999',
-		url: 'http://171.94.154.9:81/UploadFiles/QRCode/11192406-5126-4a7f-97ed-514c174c8d2c.png',
-	},
-]);
+const list = ref<EmptyArrayType>([]);
 // 打开弹窗
 const openDialog = async () => {
 	try {
 		state.dialogVisible = true;
+		getList();
 	} catch (error) {
 		console.log(error);
 	}
@@ -75,6 +41,23 @@ const openDialog = async () => {
 const closeDialog = () => {
 	state.dialogVisible = false;
 };
+const getList = () => {
+	state.loading = true;
+	getInviteCodeList({ PageIndex: 1, PageSize: 999 })
+		.then((res) => {
+			list.value = res.result.items.map((item: any) => {
+				return {
+					title: item.orgName,
+					code: item.beginCode + '~' + item.endCode,
+					url: import.meta.env.VITE_API_UPLOAD_URL + item.qrCodeUrl,
+				};
+			});
+			state.loading = false;
+		})
+		.finally(() => {
+			state.loading = false;
+		});
+};
 // 导出
 const exportWordRef = ref<RefType>();
 const exportWord = () => {
@@ -86,26 +69,3 @@ defineExpose({
 	closeDialog,
 });
 </script>
-<style lang="scss" scoped>
-.export-content {
-	display: grid;
-	grid-template-columns: repeat(auto-fill, 300px);
-	grid-gap: 20px;
-	justify-items: center;
-	align-items: center;
-	&-item {
-		text-align: center;
-		border: var(--el-border);
-		padding: 10px 0;
-		img {
-			width: 300px;
-		}
-		.title {
-			margin-top: 10px;
-		}
-		.code {
-			margin-top: 10px;
-		}
-	}
-}
-</style>

+ 22 - 11
src/views/snapshot/inviteCode/statistics/components/detail.vue

@@ -26,7 +26,13 @@
 							<el-input v-model="state.queryParams.PhoneNumber" placeholder="请填写电话" clearable @keyup.enter="handleQuery" class="keyword-input" />
 						</el-form-item>
 						<el-form-item label="邀请码" prop="InviteCode">
-							<el-input v-model="state.queryParams.InviteCode" placeholder="请填写邀请码" clearable @keyup.enter="handleQuery" class="keyword-input" />
+							<el-input
+								v-model="state.queryParams.InviteCode"
+								placeholder="请填写邀请码"
+								clearable
+								@keyup.enter="handleQuery"
+								class="keyword-input"
+							/>
 						</el-form-item>
 						<el-form-item>
 							<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -55,9 +61,9 @@
 <script lang="tsx" setup name="snapshotInviteCodeStatisticsDetail">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import {  defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import Other from '@/utils/other';
-import { getInviteCodeStatisticsDetail } from '@/api/snapshot/inviteCode';
+import { getInviteCodeStatisticsDetail, getInviteCodeStatisticsDetailExport } from '@/api/snapshot/inviteCode';
 import { useRoute } from 'vue-router';
 
 // 引入组件
@@ -75,13 +81,14 @@ const state = reactive<any>({
 		crTime: [], //
 		StartTime: null,
 		EndTime: null,
-		Name:null,
-		PhoneNumber:null,
-		InviteCode:null
+		Name: null,
+		PhoneNumber: null,
+		InviteCode: null,
 	},
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -101,11 +108,16 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getInviteCodeStatisticsDetailExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
 	},
-	id: 'snapshotInviteCodeStatistics',
+	id: 'snapshotInviteCodeStatisticsDetail',
 	rowConfig: { isHover: true, height: 30, isCurrent: true, useKey: true },
 	height: 'auto',
 	columns: [
@@ -147,12 +159,11 @@ const handleQuery = () => {
 const route = useRoute();
 const routeQueryParams = route.query;
 // 获取参数列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
 	requestParams.value = Other.deepClone(state.queryParams);
-	requestParams.value.OrgId  = routeQueryParams.OrgId;
+	requestParams.value.OrgId = routeQueryParams.OrgId;
 	requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
 	requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
 	Reflect.deleteProperty(requestParams.value, 'crTime');
@@ -177,9 +188,9 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 
 // 页面加载时
 onMounted(() => {
-	queryList();
-	if(routeQueryParams.StartTime && routeQueryParams.EndTime){
+	if (routeQueryParams.StartTime && routeQueryParams.EndTime) {
 		state.queryParams.crTime = [routeQueryParams.StartTime, routeQueryParams.EndTime];
 	}
+	queryList();
 });
 </script>

+ 8 - 4
src/views/snapshot/inviteCode/statistics/index.vue

@@ -23,13 +23,12 @@
 </template>
 
 <script lang="tsx" setup name="snapshotInviteCodeStatistics">
-import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
+import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { getClueList } from '@/api/snapshot/config';
 import { defaultDate } from '@/utils/constants';
 import Other from '@/utils/other';
 import { useRouter } from 'vue-router';
-import { getInviteCodeStatistics } from '@/api/snapshot/inviteCode';
+import { getInviteCodeStatistics, getInviteCodeStatisticsExport } from '@/api/snapshot/inviteCode';
 
 // 引入组件
 const UserAdd = defineAsyncComponent(() => import('@/views/snapshot/config/areaUser/components/User-add.vue')); // 新增用户
@@ -48,6 +47,7 @@ const state = reactive<any>({
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -67,6 +67,11 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+		tools: [{ toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getInviteCodeStatisticsExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -102,7 +107,6 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取参数列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;

+ 8 - 2
src/views/snapshot/publish/audit.vue

@@ -44,7 +44,7 @@
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import Other from '@/utils/other';
-import { centerPublishUserList } from '@/api/snapshot/publish';
+import { centerPublishUserExport, centerPublishUserList } from '@/api/snapshot/publish';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -65,6 +65,7 @@ const state = reactive<any>({
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -84,6 +85,12 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: centerPublishUserExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -149,7 +156,6 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;

+ 7 - 4
src/views/snapshot/publish/index.vue

@@ -106,10 +106,9 @@
 <script lang="tsx" setup name="snapshotPublishIndex">
 import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
-import { getOrderMarkList } from '@/api/snapshot/handle';
 import Other from '@/utils/other';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { centerDataListBasicData, centerPublishList, centerPublishSetNotPublic } from '@/api/snapshot/publish';
+import { centerDataListBasicData, centerPublishExport, centerPublishList, centerPublishSetNotPublic } from '@/api/snapshot/publish';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -138,7 +137,7 @@ const state = reactive<any>({
 	},
 	total: 0, // 总条数
 });
-
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -161,6 +160,11 @@ const gridOptions = reactive<any>({
 		slots: {
 			buttons: 'toolbar_buttons',
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: centerPublishExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -235,7 +239,6 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;

+ 28 - 11
src/views/snapshot/reAudit/citizen/index.vue

@@ -22,7 +22,7 @@
 					</el-form>
 				</template>
 				<template #toolbar_buttons>
-<!--          <el-button type="primary" @click="onRemark" :disabled="isChecked" v-auth="'snapshot:reAudit:citizen:remark'" 	v-if="state.queryParams.Status === 1">
+					<!--          <el-button type="primary" @click="onRemark" :disabled="isChecked" v-auth="'snapshot:reAudit:citizen:remark'" 	v-if="state.queryParams.Status === 1">
 						<SvgIcon name="ele-Plus" class="mr5" />添加备注
 					</el-button>
 					<el-button type="primary" @click="onSupply" v-auth="'snapshot:reAudit:citizen:supply'" :disabled="isChecked" :loading="state.loading" 	v-if="state.queryParams.Status === 1"
@@ -37,10 +37,18 @@
 					<order-detail :order="{ id: row.orderId }" @updateList="queryList">{{ row.title }}</order-detail>
 				</template>
 				<template #action="{ row }">
-						<el-button link type="primary" @click="onAudit(row)" v-auth="'snapshot:reAudit:citizen:audit'" v-if="row.auditStatus === 0"> 审批 </el-button>
-						<el-button link type="danger" @click="onReturn(row)" v-auth="'snapshot:reAudit:citizen:return'"  v-if="row.auditStatus === 0"> 退回 </el-button>
-						<el-button link type="primary" @click="onRemark(row)" v-auth="'snapshot:reAudit:citizen:remark'"  v-if="row.auditStatus === 1"> 添加备注 </el-button>
-						<el-button link type="primary" @click="onSupply(row)" v-auth="'snapshot:reAudit:citizen:supply'"  v-if="row.auditStatus === 1"> 补充发放 </el-button>
+					<el-button link type="primary" @click="onAudit(row)" v-auth="'snapshot:reAudit:citizen:audit'" v-if="row.auditStatus === 0">
+						审批
+					</el-button>
+					<el-button link type="danger" @click="onReturn(row)" v-auth="'snapshot:reAudit:citizen:return'" v-if="row.auditStatus === 0">
+						退回
+					</el-button>
+					<el-button link type="primary" @click="onRemark(row)" v-auth="'snapshot:reAudit:citizen:remark'" v-if="row.auditStatus === 1">
+						添加备注
+					</el-button>
+					<el-button link type="primary" @click="onSupply(row)" v-auth="'snapshot:reAudit:citizen:supply'" v-if="row.auditStatus === 1">
+						补充发放
+					</el-button>
 				</template>
 				<template #pager>
 					<pagination
@@ -168,7 +176,11 @@
 import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessage, FormInstance } from 'element-plus';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { getCitizenRedEnvelopeApprovalBaseData, getCitizenRedEnvelopeApprovalList } from '@/api/snapshot/reAudit';
+import {
+	getCitizenRedEnvelopeApprovalBaseData,
+	getCitizenRedEnvelopeApprovalExport,
+	getCitizenRedEnvelopeApprovalList,
+} from '@/api/snapshot/reAudit';
 import Other from '@/utils/other';
 
 // 引入组件
@@ -214,6 +226,7 @@ const state = reactive<any>({
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -236,6 +249,11 @@ const gridOptions = reactive<any>({
 		slots: {
 			buttons: 'toolbar_buttons',
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getCitizenRedEnvelopeApprovalExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -448,7 +466,6 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取参数列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
@@ -468,14 +485,14 @@ const queryList = () => {
 			gridOptions.data = res.result.items ?? [];
 			state.total = res.result.total ?? 0;
 			gridOptions.loading = false;
-      gridRef.value.clearCheckboxRow();
-      checkTable.value = [];
+			gridRef.value.clearCheckboxRow();
+			checkTable.value = [];
 		})
 		.finally(() => {
 			state.loading = false;
 			gridOptions.loading = false;
-      gridRef.value.clearCheckboxRow();
-      checkTable.value = [];
+			gridRef.value.clearCheckboxRow();
+			checkTable.value = [];
 		});
 };
 // 重置表单

+ 1 - 1
src/views/snapshot/reAudit/components/Re-supply.vue

@@ -105,7 +105,7 @@ const replenishTypeOptions = ref<EmptyArrayType>([]);
 const getBaseData = async (id:string) => {
 	try {
 		const { result } = await getCitizenRedEnvelopeApprovalAdditionalBaseInfo(id);
-    state.ruleForm.amount = result.amount ?? 0;
+    state.ruleForm.replenishAmount = result.amount ?? 0;
     state.ruleForm.bankCardNo = result.bankCardNo ?? 0;
     state.ruleForm.name = result.name;
     state.ruleForm.openBank = result.openBank;

+ 10 - 3
src/views/snapshot/reAudit/grid/index.vue

@@ -53,7 +53,8 @@
 <script lang="tsx" setup name="snapshotReAuditGrid">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { getGridRedEnvelopeApprovalList } from '@/api/snapshot/reAudit';
+import { getGridRedEnvelopeApprovalList, getGridRedEnvelopeApprovalListExport } from '@/api/snapshot/reAudit';
+import Other from '@/utils/other';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -73,7 +74,7 @@ const state = reactive<any>({
 	},
 	total: 0, // 总条数
 });
-
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -93,6 +94,11 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getGridRedEnvelopeApprovalListExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -284,7 +290,8 @@ const handleQuery = () => {
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
-	getGridRedEnvelopeApprovalList(state.queryParams)
+	requestParams.value = Other.deepClone(state.queryParams);
+	getGridRedEnvelopeApprovalList(requestParams.value)
 		.then((res) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];

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

@@ -85,9 +85,8 @@
 import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { citizenRedEnvelopeApproval, getCitizenRedEnvelopeApprovalList } from '@/api/snapshot/reSend';
+import {citizenRedEnvelopeApproval, getCitizenRedEnvelopeApprovalList, getCitizenRedEnvelopeApprovalListExport} from '@/api/snapshot/reSend';
 import Other from '@/utils/other';
-import { knowledgeLexiconDelete } from '@/api/auxiliary/knowledgeLexicon';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -110,6 +109,7 @@ const state = reactive<any>({
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -132,10 +132,15 @@ const gridOptions = reactive<any>({
 		slots: {
 			buttons: 'toolbar_buttons',
 		},
+    tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
 	},
 	customConfig: {
 		storage: true,
 	},
+  params: {
+    exportMethod: getCitizenRedEnvelopeApprovalListExport,
+    exportParams: requestParams,
+  },
 	id: 'snapshotReSendCitizen',
 	rowConfig: { isHover: true, height: 30, isCurrent: true, useKey: true },
 	height: 'auto',
@@ -186,7 +191,6 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取参数列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;

+ 8 - 4
src/views/snapshot/reSend/grid/index.vue

@@ -75,7 +75,7 @@ import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import Other from '@/utils/other';
-import { getGridRedEnvelopeApprovalList } from '@/api/snapshot/reSend';
+import { getGridRedEnvelopeApprovalList, getGridRedEnvelopeApprovalListExport } from '@/api/snapshot/reSend';
 
 // 引入组件
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
@@ -98,7 +98,7 @@ const state = reactive<any>({
 	},
 	total: 0, // 总条数
 });
-
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -118,6 +118,11 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getGridRedEnvelopeApprovalListExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -175,7 +180,6 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取参数列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
@@ -184,7 +188,7 @@ const queryList = () => {
 	requestParams.value.EndCreationTime = state.queryParams.zjTime === null ? null : state.queryParams.zjTime[1];
 	Reflect.deleteProperty(requestParams.value, 'zjTime'); // 删除无用的参数
 	getGridRedEnvelopeApprovalList(requestParams.value)
-		.then((res) => {
+		.then((res: any) => {
 			state.loading = false;
 			gridOptions.data = res.result.items ?? [];
 			state.total = res.result.total ?? 0;

+ 8 - 4
src/views/snapshot/reSend/list/index.vue

@@ -96,7 +96,7 @@
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { getRedEnvelopeApprovalBaseData, getRedEnvelopeApprovalDetail } from '@/api/snapshot/reSend';
+import { getRedEnvelopeApprovalBaseData, getRedEnvelopeApprovalDetail, getRedEnvelopeApprovalDetailExport } from '@/api/snapshot/reSend';
 import Other from '@/utils/other';
 
 // 引入组件
@@ -123,7 +123,7 @@ const state = reactive<any>({
 	},
 	total: 0, // 总条数
 });
-
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -143,6 +143,11 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
+	},
+	params: {
+		exportMethod: getRedEnvelopeApprovalDetailExport,
+		exportParams: requestParams,
 	},
 	customConfig: {
 		storage: true,
@@ -218,7 +223,6 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取参数列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;
@@ -266,4 +270,4 @@ onMounted(() => {
 	queryList();
 	getBaseData();
 });
-</script>
+</script>

+ 7 - 2
src/views/snapshot/reSend/supplyLog.vue

@@ -72,7 +72,7 @@
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { getRedEnvelopeApprovalSupplementBaseData, getRedEnvelopeApprovalSupplementList } from '@/api/snapshot/reSend';
+import {getRedEnvelopeApprovalDetailExport, getRedEnvelopeApprovalSupplementBaseData, getRedEnvelopeApprovalSupplementList, getRedEnvelopeApprovalSupplementListExport} from '@/api/snapshot/reSend';
 import Other from '@/utils/other';
 
 // 引入组件
@@ -96,6 +96,7 @@ const state = reactive<any>({
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -115,7 +116,12 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+    tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
 	},
+  params: {
+    exportMethod: getRedEnvelopeApprovalSupplementListExport,
+    exportParams: requestParams,
+  },
 	customConfig: {
 		storage: true,
 	},
@@ -212,7 +218,6 @@ const handleQuery = () => {
 	queryList();
 };
 // 获取参数列表
-const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	gridOptions.loading = true;

+ 11 - 13
src/views/snapshot/statistics/allOrder/index.vue

@@ -39,7 +39,7 @@
 					<el-button type="primary" @click="onObserve" v-auth="'snapshot:allOrder:follow'" :disabled="isChecked" :loading="state.loading"
 						>添加关注<span v-if="checkTable.length">({{ checkTable.length }})</span>
 					</el-button>
-<!--					<el-button type="primary" @click="onKeynote" v-auth="'snapshot:allOrder:keynote'" :disabled="isChecked" :loading="state.loading"
+					<!--					<el-button type="primary" @click="onKeynote" v-auth="'snapshot:allOrder:keynote'" :disabled="isChecked" :loading="state.loading"
 						>设置重点<span v-if="checkTable.length">({{ checkTable.length }})</span>
 					</el-button>-->
 				</template>
@@ -190,18 +190,16 @@
 	</div>
 </template>
 <script setup lang="tsx" name="snapshotStatisticsAllOrder">
-import { defineAsyncComponent, onMounted, reactive, ref, onActivated, onBeforeUnmount, computed } from 'vue';
+import { defineAsyncComponent, onMounted, reactive, ref, computed } from 'vue';
 import type { FormInstance } from 'element-plus';
 import { ElMessage, ElMessageBox } from 'element-plus';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { exportOrder } from '@/api/business/order';
 import { addObserve } from '@/api/query/observe';
 import { exportAssignment } from '@/utils/tools';
 import Other from '@/utils/other';
-import mittBus from '@/utils/mitt';
 import { useThemeConfig } from '@/stores/themeConfig';
 import { storeToRefs } from 'pinia';
-import { getSSPAllBaseData, getSSPAllOrder } from '@/api/snapshot/statistics';
+import { getSSPAllBaseData, getSSPAllOrder, getSSPAllOrderExport } from '@/api/snapshot/statistics';
 
 // 引入组件
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
@@ -288,11 +286,15 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
-		/*	tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],*/
+		tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
 		slots: {
 			buttons: 'toolbar_buttons',
 		},
 	},
+	params: {
+		exportMethod: getSSPAllOrderExport,
+		exportParams: requestParams,
+	},
 	customConfig: {
 		storage: true,
 	},
@@ -348,7 +350,7 @@ const gridOptions = reactive<any>({
 			slots: { default: 'order_detail' },
 		},
 		{ field: 'industryName', title: '行业', width: 100 },
-/*		{ field: 'industryName', title: '重点', width: 100 },
+		/*		{ field: 'industryName', title: '重点', width: 100 },
 		{ field: 'industryName', title: '办理时长(天)', width: 120 },*/
 		{ field: 'county', title: '区域', width: 150 },
 		{ field: 'contact', title: '电话', width: 140 },
@@ -379,10 +381,6 @@ const gridOptions = reactive<any>({
 		{ field: 'fileOpinion', title: '承办意见', width: 200, visible: false },
 	],
 	data: [],
-	params: {
-		exportMethod: exportOrder,
-		exportParams: requestParams,
-	},
 	sortConfig: {
 		remote: true,
 	},
@@ -397,8 +395,8 @@ const getBaseData = async () => {
 			industryOptions: 'industry',
 			orderStatusOptions: 'orderStatus',
 			orderTagOptions: 'orderTags',
-			acceptTypeOptions:'acceptType',
-			currentStepOptions:'steps'
+			acceptTypeOptions: 'acceptType',
+			currentStepOptions: 'steps',
 		};
 		for (const key in mappings) {
 			state[key] = result?.[mappings[key]] ?? [];

+ 7 - 3
src/views/snapshot/statistics/gridReply.vue

@@ -83,9 +83,8 @@
 <script lang="tsx" setup name="snapshotStatisticsGridReply">
 import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { getClueList } from '@/api/snapshot/config';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
-import { getGridReplyCount } from '@/api/snapshot/statistics';
+import {getGridReplyCount, getGridReplyCountExport, getSSPAllOrderExport} from '@/api/snapshot/statistics';
 import Other from '@/utils/other';
 
 // 引入组件
@@ -111,6 +110,7 @@ const state = reactive<any>({
 	total: 0, // 总条数
 });
 
+const requestParams = ref<EmptyObjectType>({});
 const gridOptions = reactive<any>({
 	loading: false,
 	border: true,
@@ -130,7 +130,12 @@ const gridOptions = reactive<any>({
 				handleQuery();
 			},
 		},
+    tools: [{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }],
 	},
+  params: {
+    exportMethod: getGridReplyCountExport,
+    exportParams: requestParams,
+  },
 	customConfig: {
 		storage: true,
 	},
@@ -199,7 +204,6 @@ const handleQuery = () => {
 	state.queryParams.PageIndex = 1;
 	queryList();
 };
-const requestParams = ref<EmptyObjectType>({});
 // 获取参数列表
 const queryList = () => {
 	state.loading = true;