Quellcode durchsuchen

reactor:499 添加“高级筛选” 、添加导出功能

zhangchong vor 5 Tagen
Ursprung
Commit
20924c8188

+ 32 - 1
src/api/statistics/call.ts

@@ -154,7 +154,22 @@ export const callRest = (params: object) => {
 		params,
 	});
 };
-
+/**
+ * @description 坐席小休统计 导出
+ * @param {object} data
+ */
+export const callRestExport = (data: object) => {
+	return request({
+		url: `/api/v1/BiCall/rests/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 坐席转接统计
  * @param {object} params
@@ -166,6 +181,22 @@ export const callTransfer = (params: object) => {
 		params,
 	});
 };
+/**
+ * @description 坐席转接统计导出
+ * @param {object} data
+ */
+export const callTransferExport = (data: object) => {
+	return request({
+		url: `/api/v1/BiCall/seatswitch/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	)
+};
 /**
  * @description 通话时段统计基础信息
  * @param {object} params

+ 50 - 0
src/api/statistics/center.ts

@@ -47,6 +47,23 @@ export const departmentHighFrequency = (params: object) => {
 		params,
 	});
 };
+/**
+ * @description 高频来电统计 导出
+ * @param {object} data
+ */
+export const departmentHighFrequencyExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/BiOrder/high_frequency_call_statistics/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 高频来电统计详情
  * @param {object} params
@@ -69,6 +86,23 @@ export const departmentHighFrequencyEvent = (params: object) => {
 		params,
 	});
 };
+/**
+ * @description 高频事件统计 导出
+ * @param {object} data
+ */
+export const departmentHighFrequencyEventExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/BiOrder/highmatter-warning/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 高频事件统计明细
  * @param {object} params
@@ -978,6 +1012,22 @@ export const centerOnlineRoute = (params: object) => {
 		params,
 	});
 };
+/**
+ * @description 网上群众路线统计 导出
+ * @param {object} data
+ */
+export const centerOnlineRouteExport = (data: object) => {
+	return request({
+		url: `/api/v1/BiOrder/onlinemassline-report/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 延期审批统计
  * @param {object} params

+ 37 - 3
src/api/statistics/order.ts

@@ -98,6 +98,23 @@ export const departmentSpecial = (params: object) => {
 		params,
 	});
 };
+/**
+ * @description 特提统计 导出
+ * @param {object} data
+ */
+export const departmentSpecialExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/BiOrder/special_data_list/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 特提统计明细
  * @param {object} params
@@ -253,7 +270,7 @@ export const departmentVisitDetailSmart = (params: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 回访量统计导出
  * @param {object} data
@@ -701,7 +718,7 @@ export const statisticsOrderAcceptListExport = (data: object) => {
 			reduce_data_format: false,
 		}
 	);
-}
+};
 /**
  * @description 受理类型统计列表明细
  * @param {object} params
@@ -741,6 +758,23 @@ export const statisticsOrderArea = (params: object) => {
 		params,
 	});
 };
+/**
+ * @description 下级区域统计 导出
+ * @param {object} data
+ */
+export const statisticsOrderAreaExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/BiOrder/area_subordinate/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 热点区域统计
  * @param {object} params
@@ -908,4 +942,4 @@ export const statisticsOrderHotSatisfyDetailExport = (data: object) => {
 			reduce_data_format: false,
 		}
 	);
-};
+};

+ 3 - 1
src/views/statistics/call/seatsRest.vue

@@ -25,6 +25,7 @@
 				:refresh="{
 					queryMethod: handleQuery
 				}"
+				:tools="[ { toolRender: { name: 'exportAll' } }]"
 			>
 			</vxe-toolbar>
 			<div style="overflow: hidden; width: 100%; height: 100%; flex: 1">
@@ -44,6 +45,7 @@
 					showHeaderOverflow
 					show-footer
 					:footer-method="footerMethod"
+					:params="{ exportMethod: callRestExport, exportParams: requestParams }"
 				>
 					<vxe-column field="staffNo" title="工号"></vxe-column>
 					<vxe-column field="userName" title="坐席名称"></vxe-column>
@@ -58,7 +60,7 @@
 <script setup lang="tsx" name="statisticsCallSeatsRest">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { callRest } from '@/api/statistics/call';
+import { callRest, callRestExport } from '@/api/statistics/call';
 import { defaultDate } from '@/utils/constants';
 import Other from '@/utils/other';
 import XEUtils from 'xe-utils'

+ 3 - 1
src/views/statistics/call/transferOut.vue

@@ -25,6 +25,7 @@
 				:refresh="{
 					queryMethod: handleQuery
 				}"
+				:tools="[{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }]"
 			>
 			</vxe-toolbar>
 			<div style="overflow: hidden; width: 100%; height: 100%; flex: 1">
@@ -42,6 +43,7 @@
 					id="statisticsCallTransferOut"
 					:custom-config="{ storage: true }"
 					showHeaderOverflow
+					:params="{ exportMethod: callTransferExport, exportParams: requestParams }"
 				>
 					<vxe-column field="cdpn" title="外线号码"></vxe-column>
 					<vxe-column field="cpn" title="来电号码"></vxe-column>
@@ -67,7 +69,7 @@
 <script setup lang="tsx" name="statisticsCallTransferOut">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { callTransfer } from '@/api/statistics/call';
+import {  callTransfer, callTransferExport } from '@/api/statistics/call';
 import { defaultDate } from "@/utils/constants";
 import { formatDate } from '@/utils/formatTime';
 import Other from "@/utils/other";

+ 3 - 1
src/views/statistics/center/frequentlyEvent.vue

@@ -22,6 +22,7 @@
 				:refresh="{
 					queryMethod: handleQuery
 				}"
+				:tools="[{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }]"
 			>
 				<template #buttons>
 					<el-button type="primary" @click="onAnalysis" :disabled="isChecked">
@@ -46,6 +47,7 @@
 					id="statisticsCenterFrequentlyEvent"
 					:custom-config="{ storage: true }"
 					showHeaderOverflow
+					:params="{ exportMethod: departmentHighFrequencyEventExport, exportParams: requestParams }"
 				>
 					<vxe-column type="checkbox" width="50" align="center"></vxe-column>
 					<vxe-column field="areaName" title="事发地址"></vxe-column>
@@ -118,7 +120,7 @@ import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, FormInstance } from 'element-plus';
 import { defaultDate } from '@/utils/constants';
 import { treeArea } from '@/api/auxiliary/area';
-import { centerAddAnalysisReport, departmentHighFrequencyEvent } from '@/api/statistics/center';
+import { centerAddAnalysisReport, departmentHighFrequencyEvent, departmentHighFrequencyEventExport } from '@/api/statistics/center';
 import { useRouter } from 'vue-router';
 import Other from '@/utils/other';
 import { throttle } from '@/utils/tools';

+ 3 - 1
src/views/statistics/center/frequentlyTel.vue

@@ -22,6 +22,7 @@
 				:refresh="{
 					queryMethod: handleQuery
 				}"
+				:tools="[{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }]"
 			>
 			</vxe-toolbar>
 			<div style="overflow: hidden; width: 100%; height: 100%; flex: 1">
@@ -39,6 +40,7 @@
 					id="statisticsCenterFrequentlyTel"
 					:custom-config="{ storage: true }"
 					showHeaderOverflow
+					:params="{ exportMethod: departmentHighFrequencyExport, exportParams: requestParams }"
 				>
 					<vxe-column field="callnum" title="来电号码"></vxe-column>
 					<vxe-column field="orderCountNum" title="工单数" width="90">
@@ -63,7 +65,7 @@
 <script setup lang="tsx" name="statisticsCenterFrequentlyTel">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { departmentHighFrequency } from '@/api/statistics/center';
+import { departmentHighFrequency, departmentHighFrequencyExport } from '@/api/statistics/center';
 import { defaultDate } from '@/utils/constants';
 import { useRouter } from 'vue-router';
 import Other from '@/utils/other';

+ 6 - 1
src/views/statistics/center/onlineMass.vue

@@ -54,7 +54,7 @@ import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { defaultDate, defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import Other from '@/utils/other';
-import { centerOnlineRoute } from '@/api/statistics/center';
+import { centerOnlineRoute, centerOnlineRouteExport } from '@/api/statistics/center';
 
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
@@ -93,6 +93,7 @@ const gridOptions = reactive<any>({
 				queryList();
 			},
 		},
+		tools: [{ toolRender: { name: 'exportAll' } }],
 	},
 	customConfig: {
 		storage: true,
@@ -124,6 +125,10 @@ const gridOptions = reactive<any>({
 		},
 	],
 	data: [],
+	params: {
+		exportMethod: centerOnlineRouteExport,
+		exportParams: requestParams,
+	},
 });
 /** 搜索按钮操作 */
 const handleQuery = () => {

+ 3 - 1
src/views/statistics/order/specials.vue

@@ -19,6 +19,7 @@
 				:refresh="{
 					queryMethod: handleQuery,
 				}"
+				:tools="[{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }]"
 			>
 			</vxe-toolbar>
 			<div style="overflow: hidden; width: 100%; height: 100%; flex: 1">
@@ -38,6 +39,7 @@
 						storage: true,
 					}"
 					showHeaderOverflow
+					:params="{ exportMethod: departmentSpecialExport, exportParams: requestParams }"
 				>
 					<vxe-column field="cause" title="特提原因"></vxe-column>
 					<vxe-column field="orderNum" title="特提工单数">
@@ -67,7 +69,7 @@
 <script setup lang="tsx" name="statisticsOrderSpecial">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { departmentSpecial } from '@/api/statistics/order';
+import { departmentSpecial, departmentSpecialExport } from '@/api/statistics/order';
 import { defaultDate } from '@/utils/constants';
 import { formatDate } from '@/utils/formatTime';
 import { useRouter } from 'vue-router';

+ 9 - 7
src/views/statistics/order/subRegional.vue

@@ -29,8 +29,9 @@
 				:loading="state.loading"
 				custom
 				:refresh="{
-			queryMethod: handleQuery,
-			}"
+					queryMethod: handleQuery,
+				}"
+				:tools="[{ toolRender: { name: 'exportAll' } }]"
 			>
 			</vxe-toolbar>
 			<div style="overflow: hidden; width: 100%; height: 100%; flex: 1">
@@ -39,7 +40,7 @@
 					:loading="state.loading"
 					:data="state.tableData"
 					:column-config="{ resizable: true }"
-					:row-config="{ isCurrent: true, isHover: true, height: 30,useKey:true }"
+					:row-config="{ isCurrent: true, isHover: true, height: 30, useKey: true }"
 					ref="tableRef"
 					height="auto"
 					auto-resize
@@ -50,8 +51,9 @@
 					show-footer
 					:footer-method="footerMethod"
 					:tree-config="treeConfig"
+					:params="{ exportMethod: statisticsOrderAreaExport, exportParams: requestParams }"
 				>
-					<vxe-column field="areaName" title="区域名称"  tree-node></vxe-column>
+					<vxe-column field="areaName" title="区域名称" tree-node></vxe-column>
 					<vxe-column field="sumCount" title="分类统计"></vxe-column>
 				</vxe-table>
 			</div>
@@ -59,9 +61,9 @@
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsOrderSubRegional">
-import {  defineAsyncComponent, onMounted, reactive, ref } from 'vue';
+import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import {  statisticsOrderArea } from '@/api/statistics/order';
+import { statisticsOrderArea, statisticsOrderAreaExport } from '@/api/statistics/order';
 import { defaultDate } from '@/utils/constants';
 import { callPeriodBase } from '@/api/statistics/call';
 import Other from '@/utils/other';
@@ -138,7 +140,7 @@ const treeConfig = reactive({
 });
 const fetchChildListApi = (row: any) => {
 	return new Promise((resolve) => {
-		const request =  Other.deepClone(state.queryParams);
+		const request = Other.deepClone(state.queryParams);
 		request.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
 		request.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
 		Reflect.deleteProperty(requestParams.value, 'crTime');