Эх сурвалжийг харах

reactor:对接坐席月接通量;五个报表新增字段说明;

zhangchong 3 сар өмнө
parent
commit
d98a8b43f1

+ 240 - 137
src/api/statistics/call.ts

@@ -19,14 +19,17 @@ export const callList = (params: object) => {
  * @param {object} data
  */
 export const callListExport = (data: object) => {
-	return request({
-		url: `/api/v1/BiCall/calls_export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	});
+	return request(
+		{
+			url: `/api/v1/BiCall/calls_export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
 };
 /**
  * @description 话务统计明细列表查询
@@ -44,14 +47,17 @@ export const callDetailList = (params: object) => {
  * @param {object} data
  */
 export const callDetailListExport = (data: object) => {
-	return request({
-		url: `/api/v1/BiCall/query_calls_detail_export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	});
+	return request(
+		{
+			url: `/api/v1/BiCall/query_calls_detail_export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
 };
 /**
  * @description 话务统计明细日期查询
@@ -69,14 +75,17 @@ export const callDateListDate = (params: object) => {
  * @param {object} data
  */
 export const callDetailListDateExport = (data: object) => {
-	return request({
-		url: `/api/v1/BiCall/query_calls_hour_detail_list_export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	});
+	return request(
+		{
+			url: `/api/v1/BiCall/query_calls_hour_detail_list_export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
 };
 /**
  * @description 话务统计列表明细
@@ -94,14 +103,17 @@ export const callDetailListDetail = (params: object) => {
  * @param {object} data
  */
 export const callDetailListDetailExport = (data: object) => {
-	return request({
-		url: `/api/v1/BiCall/query_incall_calls_list_export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	});
+	return request(
+		{
+			url: `/api/v1/BiCall/query_incall_calls_list_export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
 };
 /**
  * @description 坐席话务统计分析
@@ -119,16 +131,18 @@ export const callAgent = (params: object) => {
  * @param {object} data
  */
 export const callAgentExport = (data: object) => {
-	return request({
-		url: `/api/v1/BiCall/seats/export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	}
-	)
-}
+	return request(
+		{
+			url: `/api/v1/BiCall/seats/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 坐席小休统计
  * @param {object} params
@@ -151,7 +165,7 @@ export const callTransfer = (params: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 通话时段统计基础信息
  * @param {object} params
@@ -162,7 +176,7 @@ export const callPeriodBase = (params?: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 通话时段统计明细
  * @param {object} params
@@ -173,7 +187,7 @@ export const callPeriodDetail = (params?: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 通话时段统计
  * @param {object} params
@@ -184,22 +198,24 @@ export const callPeriod = (params: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 通话时段统计导出
  * @param {object} data
  */
 export const callPeriodExport = (data: object) => {
-	return request({
-		url: `/api/v1/BiCall/hourcall/export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	}
-	)
-}
+	return request(
+		{
+			url: `/api/v1/BiCall/hourcall/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 热线号码统计
  * @param {object} params
@@ -210,22 +226,24 @@ export const callHotline = (params: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 热线号码统计导出
  * @param {object} data
  */
 export const callHotlineExport = (data: object) => {
-	return request({
-		url: `/api/v1/Bicall/gateway-query/export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	}
-	)
-}
+	return request(
+		{
+			url: `/api/v1/Bicall/gateway-query/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 坐席动作列表基础数据
  * @param {object} params
@@ -236,7 +254,7 @@ export const callActionBase = (params?: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 坐席动作列表
  * @param {object} params
@@ -247,7 +265,7 @@ export const callAction = (params: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 话务日期统计简单
  * @param {object} params
@@ -258,22 +276,24 @@ export const callDateSimple = (params: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 话务日期统计简单导出
  * @param {object} data
  */
 export const callDateSimpleExport = (data: object) => {
-	return request({
-		url: `/api/v1/BiCall/query_calls_statistics_export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	}
-	)
-}
+	return request(
+		{
+			url: `/api/v1/BiCall/query_calls_statistics_export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 话务日期统计简单详情
  * @param {object} params
@@ -284,22 +304,24 @@ export const callDateSimpleDetail = (params: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 话务日期统计简单详情导出
  * @param {object} data
  */
 export const callDateSimpleDetailExport = (data: object) => {
-	return request({
-		url: `/api/v1/BiCall/query_calls_statistics_detail/export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	}
-	)
-}
+	return request(
+		{
+			url: `/api/v1/BiCall/query_calls_statistics_detail/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 话务日期统计简单详情基础信息
  * @param {object} params
@@ -310,7 +332,7 @@ export const callDateSimpleDetailBase = (params?: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 话务日期统计明细列表
  * @param {object} params
@@ -321,22 +343,24 @@ export const callDateDetail = (params: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 话务日期统计明细列表导出
  * @param {object} data
  */
 export const callDateDetailExport = (data: object) => {
-	return request({
-		url: `/api/v1/BiCall/query-calldate-statistics/export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	}
-	)
-}
+	return request(
+		{
+			url: `/api/v1/BiCall/query-calldate-statistics/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 个人服务话务明细
  * @param {object} params
@@ -347,22 +371,24 @@ export const callPersonal = (params: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 个人服务话务明细导出
  * @param {object} data
  */
 export const callPersonalExport = (data: object) => {
-	return request({
-		url: `/api/v1/BiCall/query-person-calldate-statistics/export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	}
-	)
-}
+	return request(
+		{
+			url: `/api/v1/BiCall/query-person-calldate-statistics/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 企业服务话务明细
  * @param {object} params
@@ -373,22 +399,24 @@ export const callCompany = (params: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 企业服务话务明细导出
  * @param {object} data
  */
- export const callCompanyExport = (data: object) => {
-	return request({
-		url: `/api/v1/BiCall/query-enterprise-calldate-statistics/export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	}
-	)
-}
+export const callCompanyExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/BiCall/query-enterprise-calldate-statistics/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
 /**
  * @description 呼出话务统计明细
  * @param {object} params
@@ -399,19 +427,94 @@ export const callOutDetailList = (params: object) => {
 		method: 'get',
 		params,
 	});
-}
+};
 /**
  * @description 呼出话务统计明细导出
  * @param {object} data
  */
 export const callOutDetailListExport = (data: object) => {
-	return request({
-		url: `/api/v1/Bicall/query-callout-date-statistics/export`,
-		method: 'post',
-		data,
-		responseType: 'blob',
-	}, {
-		reduce_data_format: false
-	}
-	)
-}
+	return request(
+		{
+			url: `/api/v1/Bicall/query-callout-date-statistics/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
+/**
+ * @description 坐席月接通率基础数据
+ * @param {object} params
+ */
+export const callAgentMonthBase = (params?: object) => {
+	return request(
+		{
+			url: `/api/v1/BiCall/query-seat-monthcall-basedata`,
+			method: 'get',
+			params,
+		}
+	);
+};
+/**
+ * @description 坐席月接通率
+ * @param {object} params
+ */
+export const callAgentMonth = (params: object) => {
+	return request(
+		{
+			url: `/api/v1/BiCall/query-seat-monthcall`,
+			method: 'get',
+			params,
+		}
+	);
+};
+/**
+ * @description 坐席月接通率导出
+ * @param {object} data
+ */
+export const callAgentMonthExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/BiCall/query-seat-monthcall/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};
+/**
+ * @description 坐席月接通率明细
+ * @param {object} params
+ */
+export const callAgentMonthDetail = (params: object) => {
+	return request(
+		{
+			url: `/api/v1/BiCall/query-seat-monthcall-detail`,
+			method: 'get',
+			params,
+		}
+	);
+};
+/**
+ * @description 坐席月接通率明细导出
+ * @param {object} data
+ */
+export const callAgentMonthDetailExport = (data: object) => {
+	return request(
+		{
+			url: `/api/v1/BiCall/query-seat-monthcall-detail/export`,
+			method: 'post',
+			data,
+			responseType: 'blob',
+		},
+		{
+			reduce_data_format: false,
+		}
+	);
+};

+ 25 - 7
src/views/statistics/call/businessSeatsDetail.vue

@@ -5,7 +5,7 @@
 				<template #form>
 					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline :disabled="gridOptions.loading">
 						<el-form-item prop="crTime">
-							<statistical-time v-model="state.queryParams.crTime"	@change="handleQuery" ref="statisticalTimeRef" :disabled="state.loading"/>
+							<statistical-time v-model="state.queryParams.crTime" @change="handleQuery" ref="statisticalTimeRef" :disabled="state.loading" />
 						</el-form-item>
 						<el-form-item>
 							<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -15,6 +15,21 @@
 						</el-form-item>
 					</el-form>
 				</template>
+				<template #toolbar_buttons>
+					<el-popover :width="500" trigger="click">
+						<template #reference>
+							<el-button type="primary" title="口径说明"><SvgIcon name="ele-QuestionFilled" class="mr5" />口径说明</el-button>
+						</template>
+						<el-descriptions title="" :column="1" border style="max-height: 400px; overflow: auto">
+							<el-descriptions-item label="企业服务呼入总量">进入IVR以后,已按了2键的所有电话量</el-descriptions-item>
+							<el-descriptions-item label="企业服务接通量">进入企业服务通道后,话务人员接通的所有电话量</el-descriptions-item>
+							<el-descriptions-item label="企业服务挂断总量">已按了2键,但是在话务人员接通前挂断的电话量</el-descriptions-item>
+							<el-descriptions-item label="企业服务队列挂断">已进入企业服务通道,在队列中挂断的电话量</el-descriptions-item>
+							<el-descriptions-item label="企业服务等待挂断">已进入企业服务话机,等待话务人员接听过程中挂断的电话量</el-descriptions-item>
+							<el-descriptions-item label="个人服务接通率"> 企业服务接通量/企业服务呼入总量 </el-descriptions-item>
+						</el-descriptions>
+					</el-popover>
+				</template>
 			</vxe-grid>
 		</div>
 	</div>
@@ -63,6 +78,9 @@ const gridOptions = reactive<any>({
 			},
 		},
 		tools: [{ toolRender: { name: 'exportAll' } }],
+		slots: {
+			buttons: 'toolbar_buttons',
+		},
 	},
 	customConfig: {
 		storage: true,
@@ -90,7 +108,7 @@ const gridOptions = reactive<any>({
 		},
 		{
 			title: '挂断类型',
-			children:[
+			children: [
 				{
 					field: 'enterpriseQueueOffCount',
 					title: '企业服务队列挂断',
@@ -98,8 +116,8 @@ const gridOptions = reactive<any>({
 				{
 					field: 'enterpriseWaitOffCount',
 					title: '企业服务等待挂断',
-				}
-			]
+				},
+			],
 		},
 		{
 			field: 'enterpriseCallPutthorughRateText',
@@ -114,8 +132,8 @@ const gridOptions = reactive<any>({
 	sortConfig: {
 		remote: true,
 	},
-	showFooter:true,
-	footerMethod:  ({ columns, data }) => {
+	showFooter: true,
+	footerMethod: ({ columns, data }) => {
 		return [
 			columns.map((column: any, columnIndex: number) => {
 				if (columnIndex === 0) {
@@ -125,7 +143,7 @@ const gridOptions = reactive<any>({
 				return XEUtils.get(state.totalCount, column.property);
 			}),
 		];
-	}
+	},
 });
 /** 搜索按钮操作 */
 const handleQuery = () => {

+ 47 - 18
src/views/statistics/call/callOutDetail.vue

@@ -5,7 +5,7 @@
 				<template #form>
 					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline :disabled="gridOptions.loading">
 						<el-form-item prop="crTime">
-							<statistical-time v-model="state.queryParams.crTime"	@change="handleQuery" ref="statisticalTimeRef" :disabled="state.loading"/>
+							<statistical-time v-model="state.queryParams.crTime" @change="handleQuery" ref="statisticalTimeRef" :disabled="state.loading" />
 						</el-form-item>
 						<el-form-item>
 							<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -15,6 +15,32 @@
 						</el-form-item>
 					</el-form>
 				</template>
+				<template #toolbar_buttons>
+					<el-popover :width="500" trigger="click">
+						<template #reference>
+							<el-button type="primary" title="口径说明"><SvgIcon name="ele-QuestionFilled" class="mr5" />口径说明</el-button>
+						</template>
+						<el-descriptions title="" :column="1" border style="max-height: 400px; overflow: auto">
+							<el-descriptions-item label="呼出总量">人服务呼出总量+企业服务呼出总量+智能回访呼出量+智能外呼呼出总量</el-descriptions-item>
+							<el-descriptions-item label="个人服务呼出总量">话务人员自行呼出的电话量</el-descriptions-item>
+							<el-descriptions-item label="企业服务呼出总量">企业专席账号呼出的电话量</el-descriptions-item>
+							<el-descriptions-item label="智能回访呼出量">智能回访呼出的电话量</el-descriptions-item>
+							<el-descriptions-item label="智能外呼呼出量">使用智能外呼功能呼出的电话总量</el-descriptions-item>
+							<el-descriptions-item label="呼出接通总量">
+								个人服务呼出接通量+企业服务呼出接通量+智能回访呼出接通量+智能外呼呼出接通量
+							</el-descriptions-item>
+							<el-descriptions-item label="个人服务呼出接通量"> 话务人员自行呼出的电话量中接通了的电话量 </el-descriptions-item>
+							<el-descriptions-item label="企业服务呼出接通量"> 企业专席账号呼出电话量中接通了的数量 </el-descriptions-item>
+							<el-descriptions-item label="智能回访呼出接通量"> 智能回访呼出电话量中接通了的数量 </el-descriptions-item>
+							<el-descriptions-item label="智能外呼呼出接通量"> 使用智能外呼功能呼出电话中接通了的电话总量 </el-descriptions-item>
+							<el-descriptions-item label="呼出接通率"> 呼出接通总量/呼出总量 </el-descriptions-item>
+							<el-descriptions-item label="个人服务呼出接通率"> 个人服务呼出总量/个人服务呼出接通量 </el-descriptions-item>
+							<el-descriptions-item label="企业服务呼出接通率"> 企业服务呼出接通量/企业服务呼出总量 </el-descriptions-item>
+							<el-descriptions-item label="智能回访呼出接通率"> 智能回访呼出接通量/智能回访呼出量 </el-descriptions-item>
+							<el-descriptions-item label="智能外呼呼出接通率"> 智能外呼呼出接通量/智能外呼呼出量 </el-descriptions-item>
+						</el-descriptions>
+					</el-popover>
+				</template>
 			</vxe-grid>
 		</div>
 	</div>
@@ -63,6 +89,9 @@ const gridOptions = reactive<any>({
 			},
 		},
 		tools: [{ toolRender: { name: 'exportAll' } }],
+		slots: {
+			buttons: 'toolbar_buttons',
+		},
 	},
 	customConfig: {
 		storage: true,
@@ -81,33 +110,33 @@ const gridOptions = reactive<any>({
 			title: '呼出总量',
 		},
 		{
-			title:'呼入类型',
-			children:[
+			title: '呼入类型',
+			children: [
 				{
 					title: '个人服务呼出总量',
 					field: 'personCallOutCount',
 				},
 				{
 					field: 'enterpriseCallOutCount',
-					title: '企业服务呼出总量'
+					title: '企业服务呼出总量',
 				},
 				{
 					field: 'aiVisitCallOutCount',
-					title: '智能回访呼出量'
+					title: '智能回访呼出量',
 				},
 				{
 					field: 'aiCallOutCount',
-					title: '智能外呼呼出量'
+					title: '智能外呼呼出量',
 				},
-			]
+			],
 		},
 		{
 			field: 'callOutPutthroughCount',
 			title: '呼出接通总量',
 		},
 		{
-			title:'呼出接通类型',
-			children:[
+			title: '呼出接通类型',
+			children: [
 				{
 					title: '个人服务呼出接通量',
 					field: 'personCallOutPutthroughCount',
@@ -123,8 +152,8 @@ const gridOptions = reactive<any>({
 				{
 					title: '智能外呼呼出接通量',
 					field: 'aiCallOutPutthroughCount',
-				}
-			]
+				},
+			],
 		},
 		{
 			title: '呼出接通率',
@@ -132,7 +161,7 @@ const gridOptions = reactive<any>({
 		},
 		{
 			title: '各类呼出接通率',
-			children:[
+			children: [
 				{
 					title: '个人服务呼出接通率',
 					field: 'personCallOutPutthroughRateText',
@@ -148,9 +177,9 @@ const gridOptions = reactive<any>({
 				{
 					title: '智能外呼呼出接通率',
 					field: 'aiCallOutPutthroughRateText',
-				}
-			]
-		}
+				},
+			],
+		},
 	],
 	data: [],
 	params: {
@@ -160,15 +189,15 @@ const gridOptions = reactive<any>({
 	sortConfig: {
 		remote: true,
 	},
-	showFooter:true,
-	footerMethod:  ({ columns, data }) => {
+	showFooter: true,
+	footerMethod: ({ columns, data }) => {
 		return [
 			columns.map((column: any, columnIndex: number) => {
 				// 后端返回了数据集合 state.totalCount 所以不需要计算 直接进行赋值
 				return XEUtils.get(state.totalCount, column.property);
 			}),
 		];
-	}
+	},
 });
 /** 搜索按钮操作 */
 const handleQuery = () => {

+ 68 - 42
src/views/statistics/call/detailSeatsMoth.vue

@@ -2,9 +2,9 @@
 	<div class="statistics-call-seats-moth-detail-container layout-padding">
 		<div class="layout-padding-auto layout-padding-view pd20">
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="坐席" prop="Role">
+				<el-form-item label="坐席" prop="EmpId">
 					<el-select-v2
-						v-model="state.queryParams.Role"
+						v-model="state.queryParams.EmpId"
 						filterable
 						:options="state.roleOptions"
 						:props="{
@@ -16,11 +16,11 @@
 						@change="handleQuery"
 					/>
 				</el-form-item>
-				<el-form-item label="主叫号码" prop="AcceptorName">
-					<el-input v-model.trim="state.queryParams.AcceptorName" placeholder="主叫号码" clearable @keyup.enter="handleQuery" class="keyword-input" />
+				<el-form-item label="主叫号码" prop="Cpn">
+					<el-input v-model.trim="state.queryParams.Cpn" placeholder="主叫号码" clearable @keyup.enter="handleQuery" class="keyword-input" />
 				</el-form-item>
-				<el-form-item label="被叫号码" prop="AcceptorName">
-					<el-input v-model.trim="state.queryParams.AcceptorName" placeholder="被叫号码" clearable @keyup.enter="handleQuery" class="keyword-input" />
+				<el-form-item label="被叫号码" prop="Cdpn">
+					<el-input v-model.trim="state.queryParams.Cdpn" 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>
@@ -37,7 +37,7 @@
 				:refresh="{
 					queryMethod: handleQuery,
 				}"
-				:tools="[{ toolRender: { name: 'exportAll' } }]"
+				:tools="[{ toolRender: { name: 'exportCurrent' } }, { toolRender: { name: 'exportAll' } }]"
 			>
 			</vxe-toolbar>
 			<div style="overflow: hidden; width: 100%; height: 100%; flex: 1">
@@ -52,28 +52,41 @@
 					auto-resize
 					:scrollY="{ enabled: true, gt: 100 }"
 					show-overflow
-					id="statisticsOrderCenter"
+					id="statisticsCallSeatsMothDetail"
 					:custom-config="{ storage: true }"
-					show-footer
-					:footer-method="footerMethod"
-					:params="{ exportMethod: centerListExport, exportParams: requestParams }"
+					:params="{ exportMethod: callAgentMonthDetailExport, exportParams: requestParams }"
 					:sort-config="{ remote: true }"
 					@sort-change="sortChange"
 				>
-					<vxe-column field="userName" title="主叫号码"></vxe-column>
-					<vxe-column field="invalid" title="被叫号码"> </vxe-column>
-					<vxe-column field="repeat" title="振铃开始时间"></vxe-column>
-					<vxe-column field="subtotal" title="接通时间"></vxe-column>
-					<vxe-column field="subtotal" title="响应分机"></vxe-column>
-					<vxe-column field="subtotal" title="坐席"></vxe-column>
+					<vxe-column field="cpn" title="主叫号码"></vxe-column>
+					<vxe-column field="cdpn" title="被叫号码"> </vxe-column>
+					<vxe-column field="ringTimeBegin" title="振铃开始时间">
+						<template #default="scope">
+							{{ formatDate(scope.row.ringTimeBegin, 'YYYY-mm-dd HH:MM:SS') }}
+						</template>
+					</vxe-column>
+					<vxe-column field="answeredTime" title="接通时间">
+						<template #default="scope">
+							{{ formatDate(scope.row.answeredTime, 'YYYY-mm-dd HH:MM:SS') }}
+						</template>
+					</vxe-column>
+					<vxe-column field="telNo" title="响应分机"></vxe-column>
+					<vxe-column field="seatName" title="坐席"></vxe-column>
 				</vxe-table>
 			</div>
+			<pagination
+				@pagination="queryList"
+				:total="state.total"
+				v-model:current-page="state.queryParams.PageIndex"
+				v-model:page-size="state.queryParams.PageSize"
+				:disabled="state.loading"
+			/>
 		</div>
 		<!--	更多查询	-->
 		<el-drawer v-model="drawer" title="更多查询" size="500px">
 			<el-form :model="state.queryParams" ref="drawerRuleFormRef" @submit.native.prevent label-width="100px">
-				<el-form-item label="响应分机" prop="AcceptorName">
-					<el-input v-model.trim="state.queryParams.AcceptorName" placeholder="响应分机" clearable @keyup.enter="handleQuery" />
+				<el-form-item label="响应分机" prop="TelNo">
+					<el-input v-model.trim="state.queryParams.TelNo" placeholder="响应分机" clearable @keyup.enter="handleQuery" />
 				</el-form-item>
 				<el-form-item label="接通时间" prop="jtTime">
 					<el-date-picker
@@ -112,23 +125,34 @@
 	</div>
 </template>
 <script setup lang="tsx" name="statisticsCallSeatsMothDetail">
-import { onMounted, reactive, ref } from 'vue';
+import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { centerList, centerListExport } from '@/api/statistics/order';
-import { defaultDate, defaultTimeStartEnd, shortcuts } from '@/utils/constants';
+import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import Other from '@/utils/other';
-import XEUtils from 'xe-utils';
+import { callAgentMonthBase, callAgentMonthDetail, callAgentMonthDetailExport } from '@/api/statistics/call';
+import { formatDate } from '@/utils/formatTime';
+
+const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
 
 // 定义变量内容
 const state = reactive<any>({
 	queryParams: {
 		// 查询条件
-		Keyword: null, // 关键词
-		crTime: defaultDate,
 		SortField: null,
 		SortRule: null,
+		EmpId: null,
+		Cpn: null,
+		Cdpn: null,
+		TelNo: null,
 		jtTime: [],
+		AnsweredStartTime: null,
+		AnsweredEndTime: null,
 		zlTime: [],
+		RingStartTime: null,
+		RingEndTime: null,
+		// 查询参数
+		PageIndex: 1,
+		PageSize: 20,
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -145,12 +169,16 @@ const requestParams = ref<EmptyObjectType>({});
 const queryList = () => {
 	state.loading = true;
 	requestParams.value = Other.deepClone(state.queryParams);
-	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');
-	centerList(requestParams.value)
+	requestParams.value.AnsweredStartTime = state.queryParams.jtTime === null ? null : state.queryParams.jtTime[0]; // 接通时间
+	requestParams.value.AnsweredEndTime = state.queryParams.jtTime === null ? null : state.queryParams.jtTime[1];
+	Reflect.deleteProperty(requestParams.value, 'jtTime');
+	requestParams.value.RingStartTime = state.queryParams.zlTime === null ? null : state.queryParams.zlTime[0]; // 振铃时间
+	requestParams.value.RingEndTime = state.queryParams.zlTime === null ? null : state.queryParams.zlTime[1];
+	Reflect.deleteProperty(requestParams.value, 'zlTime');
+	callAgentMonthDetail(requestParams.value)
 		.then((res: any) => {
-			state.tableData = res.result;
+			state.tableData = res.result.items ?? [];
+			state.total = res.result.total ?? 0;
 			state.loading = false;
 		})
 		.catch(() => {
@@ -176,18 +204,14 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 	ruleFormRef.value?.resetFields();
 	queryList();
 };
-// 计算合计
-const footerMethod = ({ columns, data }) => {
-	return [
-		columns.map((column: any, columnIndex: number) => {
-			if (columnIndex === 0) {
-				return '合计';
-			}
-			if (['centreArchive', 'centreCareOf', 'noCentreCareOf', 'invalid', 'repeat', 'subtotal'].includes(column.property)) {
-				return XEUtils.sum(data, column.property);
-			}
-		}),
-	];
+// 基础数据
+const getBaseData = async () => {
+	try {
+		const { result } = await callAgentMonthBase();
+		console.log(result);
+	} catch (e) {
+		console.log(e);
+	}
 };
 const toolbarRef = ref<RefType>();
 const tableRef = ref<RefType>();
@@ -196,5 +220,7 @@ onMounted(() => {
 	if (tableRef.value && toolbarRef.value) {
 		tableRef.value.connect(toolbarRef.value);
 	}
+
+	getBaseData();
 });
 </script>

+ 26 - 9
src/views/statistics/call/personalSeatsDetail.vue

@@ -5,17 +5,31 @@
 				<template #form>
 					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline :disabled="gridOptions.loading">
 						<el-form-item prop="crTime">
-							<statistical-time v-model="state.queryParams.crTime"	@change="handleQuery" ref="statisticalTimeRef" :disabled="state.loading"/>
+							<statistical-time v-model="state.queryParams.crTime" @change="handleQuery" ref="statisticalTimeRef" :disabled="state.loading" />
 						</el-form-item>
 						<el-form-item>
 							<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
 							<el-button @click="resetQuery(ruleFormRef)" class="default-button" :loading="state.loading">
 								<SvgIcon name="ele-Refresh" class="mr5" />重置
 							</el-button>
-
 						</el-form-item>
 					</el-form>
 				</template>
+				<template #toolbar_buttons>
+					<el-popover :width="500" trigger="click">
+						<template #reference>
+							<el-button type="primary" title="口径说明"><SvgIcon name="ele-QuestionFilled" class="mr5" />口径说明</el-button>
+						</template>
+						<el-descriptions title="" :column="1" border style="max-height: 400px; overflow: auto">
+							<el-descriptions-item label="个人服务呼入总量">进入IVR以后,已按了1键的所有电话量</el-descriptions-item>
+							<el-descriptions-item label="个人服务接通量">通过个人服务通道后,话务人员接通的所有电话量</el-descriptions-item>
+							<el-descriptions-item label="个人服务挂断总量">已按了1键,但是在话务人员接通前挂断的电话量</el-descriptions-item>
+							<el-descriptions-item label="个人服务队列挂断">已进入个人服务通道,在队列中挂断的电话量</el-descriptions-item>
+							<el-descriptions-item label="个人服务等待挂断">已进入个人服务话机,等待话务人员接听过程中挂断的电话量</el-descriptions-item>
+							<el-descriptions-item label="个人服务接通率"> 个人服务接通量/个人服务呼入总量 </el-descriptions-item>
+						</el-descriptions>
+					</el-popover>
+				</template>
 			</vxe-grid>
 		</div>
 	</div>
@@ -25,7 +39,7 @@ import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { defaultDate } from '@/utils/constants';
 import Other from '@/utils/other';
-import {  callPersonal, callPersonalExport } from '@/api/statistics/call';
+import { callPersonal, callPersonalExport } from '@/api/statistics/call';
 import XEUtils from 'xe-utils';
 
 const StatisticalTime = defineAsyncComponent(() => import('@/components/StatisticalTime/index.vue')); // 日期类型选择组件
@@ -64,6 +78,9 @@ const gridOptions = reactive<any>({
 			},
 		},
 		tools: [{ toolRender: { name: 'exportAll' } }],
+		slots: {
+			buttons: 'toolbar_buttons',
+		},
 	},
 	customConfig: {
 		storage: true,
@@ -91,7 +108,7 @@ const gridOptions = reactive<any>({
 		},
 		{
 			title: '挂断类型',
-			children:[
+			children: [
 				{
 					field: 'personQueueOffCount',
 					title: '个人服务队列挂断',
@@ -99,8 +116,8 @@ const gridOptions = reactive<any>({
 				{
 					field: 'personWaitOffCount',
 					title: '个人服务等待挂断',
-				}
-			]
+				},
+			],
 		},
 		{
 			field: 'personCallPutthorughRateText',
@@ -115,8 +132,8 @@ const gridOptions = reactive<any>({
 	sortConfig: {
 		remote: true,
 	},
-	showFooter:true,
-	footerMethod:  ({ columns, data }) => {
+	showFooter: true,
+	footerMethod: ({ columns, data }) => {
 		return [
 			columns.map((column: any, columnIndex: number) => {
 				if (columnIndex === 0) {
@@ -126,7 +143,7 @@ const gridOptions = reactive<any>({
 				return XEUtils.get(state.totalCount, column.property);
 			}),
 		];
-	}
+	},
 });
 /** 搜索按钮操作 */
 const handleQuery = () => {

+ 38 - 33
src/views/statistics/call/seatDateDetail.vue

@@ -22,22 +22,27 @@
 						</template>
 						<el-descriptions title="" :column="1" border style="max-height: 400px; overflow: auto">
 							<el-descriptions-item label="呼入总量">个人服务呼入总量+企业服务呼入总量+智能应答呼入总量+IVR呼入总量</el-descriptions-item>
-							<el-descriptions-item label="接通总量"> 个人服务接通总量+企业服务接通总量+智能应答呼入总量(智能应答视为全部接通) </el-descriptions-item>
-							<el-descriptions-item label="挂断总量">个人服务挂断总量+企业服务挂断总量+IVR挂断</el-descriptions-item>
-							<el-descriptions-item label="总体接通率">=接通总量/呼入总量</el-descriptions-item>
-							<el-descriptions-item label="服务接通率"> (个人服务接通总量+企业服务接通总量+智能应答呼入总量)/(个人服务呼入总量+企业服务呼入总量+智能应答呼入总量) </el-descriptions-item>
-							<el-descriptions-item label="话务接通率"> (个人服务接通总量+企业服务接通总量)/(个人服务呼入总量+企业服务呼入总量) </el-descriptions-item>
 							<el-descriptions-item label="IVR呼入总量"> 进入IVR以后,群众未按键直接挂断电话的(该数据与IVR挂断数据一致) </el-descriptions-item>
-<!--
-
-							个人服务呼入总量:进入IVR以后,已按了1键的所有电话量
-							个人服务接通量:通过个人服务通道后,话务人员接通的所有电话量
-							个人服务挂断总量:已按了1键,但是在话务人员接通前挂断的电话量
-							个人服务队列挂断:已进入个人服务通道,在队列中挂断的电话量
-							个人服务等待挂断:已进入个人服务话机,等待话务人员接听过程中挂断的电话量
-							个人服务挂断总量=个人服务队列挂断+个人服务等待挂断
-							个人服务接通率=个人服务接通量/个人服务呼入总量-->
-
+							<el-descriptions-item label="个人服务呼入总量">进入IVR以后,已按了1键的所有电话量</el-descriptions-item>
+							<el-descriptions-item label="企业服务呼入总量">进入IVR以后,已按了2键的所有电话量</el-descriptions-item>
+							<el-descriptions-item label="智能应答呼入总量">进入IVR以后,已按了3键的所有电话量。(智能应答视为全部接通)</el-descriptions-item>
+							<el-descriptions-item label="接通总量">
+								个人服务接通总量+企业服务接通总量+智能应答呼入总量(智能应答视为全部接通)
+							</el-descriptions-item>
+							<el-descriptions-item label="个人服务接通量">通过个人服务通道后,话务人员接通的所有电话量</el-descriptions-item>
+							<el-descriptions-item label="企业服务接通量">进入企业服务通道后,话务人员接通的所有电话量</el-descriptions-item>
+							<!--							<el-descriptions-item label="智能应答接通量">进入企业服务通道后。</el-descriptions-item>-->
+							<el-descriptions-item label="挂断总量">人服务挂断总量+企业服务挂断总量+IVR挂断</el-descriptions-item>
+							<el-descriptions-item label="个人服务挂断总量">已按了1键,但是在话务人员接通前挂断的电话量</el-descriptions-item>
+							<el-descriptions-item label="企业服务挂断总量">已按了2键,但是在话务人员接通前挂断的电话量</el-descriptions-item>
+							<!--							<el-descriptions-item label="IVR挂断">进入IVR以后,话务人员挂断的所有电话量</el-descriptions-item>-->
+							<el-descriptions-item label="总体接通率">=接通总量/呼入总量</el-descriptions-item>
+							<el-descriptions-item label="服务接通率">
+								(个人服务接通总量+企业服务接通总量+智能应答呼入总量)/(个人服务呼入总量+企业服务呼入总量+智能应答呼入总量)
+							</el-descriptions-item>
+							<el-descriptions-item label="话务接通率">
+								(个人服务接通总量+企业服务接通总量)/(个人服务呼入总量+企业服务呼入总量)</el-descriptions-item
+							>
 						</el-descriptions>
 					</el-popover>
 				</template>
@@ -89,9 +94,9 @@ const gridOptions = reactive<any>({
 			},
 		},
 		tools: [{ toolRender: { name: 'exportAll' } }],
-	/*	slots: {
+		slots: {
 			buttons: 'toolbar_buttons',
-		},*/
+		},
 	},
 	customConfig: {
 		storage: true,
@@ -111,11 +116,11 @@ const gridOptions = reactive<any>({
 			title: '呼入总量',
 		},
 		{
-			title:'呼入类型',
-			children:[
+			title: '呼入类型',
+			children: [
 				{
-						field: 'ivrCallInTotal',
-						title:'IVR呼入总量'
+					field: 'ivrCallInTotal',
+					title: 'IVR呼入总量',
 				},
 				{
 					title: '个人服务呼入总量',
@@ -123,21 +128,21 @@ const gridOptions = reactive<any>({
 				},
 				{
 					field: 'enterpriseCallInCount',
-					title: '企业服务呼入总量'
+					title: '企业服务呼入总量',
 				},
 				{
 					field: 'aiCallInCount',
-					title: '智能应答呼入总量'
+					title: '智能应答呼入总量',
 				},
-			]
+			],
 		},
 		{
 			field: 'putthroughCount',
 			title: '接通总量',
 		},
 		{
-			title:'呼入接通类型',
-			children:[
+			title: '呼入接通类型',
+			children: [
 				{
 					title: '个人服务接通量',
 					field: 'personCallInPutthroughCount',
@@ -149,8 +154,8 @@ const gridOptions = reactive<any>({
 				{
 					title: '智能应答接通量',
 					field: 'aiCallInPutthroughCount',
-				}
-			]
+				},
+			],
 		},
 		{
 			title: '挂断总量',
@@ -158,7 +163,7 @@ const gridOptions = reactive<any>({
 		},
 		{
 			title: '挂断类型',
-			children:[
+			children: [
 				{
 					title: '个人服务挂断总量',
 					field: 'personRingOffCount',
@@ -170,8 +175,8 @@ const gridOptions = reactive<any>({
 				{
 					title: 'IVR挂断',
 					field: 'ivrRingOffCount',
-				}
-			]
+				},
+			],
 		},
 		{
 			field: 'totalPutthroughRateText',
@@ -203,7 +208,7 @@ const gridOptions = reactive<any>({
 				}
 				// 后端返回了数据集合 state.totalCount 所以不需要计算 直接进行赋值
 				return XEUtils.get(state.totalCount, column.property);
-					// return XEUtils.sum(data, column.property);
+				// return XEUtils.sum(data, column.property);
 			}),
 		];
 	},
@@ -223,7 +228,7 @@ const queryList = async () => {
 		requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
 		Reflect.deleteProperty(requestParams.value, 'crTime');
 		const { result } = await callDateDetail(requestParams.value);
-		gridOptions.data =  result.list ?? [];
+		gridOptions.data = result.list ?? [];
 		state.totalCount = result.total;
 		state.loading = false;
 		gridOptions.loading = false;

+ 34 - 20
src/views/statistics/call/seatsMoth.vue

@@ -2,9 +2,9 @@
 	<div class="statistics-call-seats-moth-container layout-padding">
 		<div class="layout-padding-auto layout-padding-view pd20">
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="坐席" prop="Role">
+				<el-form-item label="坐席" prop="EmpId">
 					<el-select-v2
-						v-model="state.queryParams.Role"
+						v-model="state.queryParams.EmpId"
 						filterable
 						:options="state.roleOptions"
 						:props="{
@@ -42,13 +42,16 @@
 							<el-button type="primary" title="口径说明"><SvgIcon name="ele-QuestionFilled" class="mr5"/>口径说明</el-button>
 						</template>
 						<el-descriptions title="" :column="1" border style="max-height: 400px; overflow: auto">
-							<el-descriptions-item label="姓名">当前登录系统坐席人员名称</el-descriptions-item>
-							<el-descriptions-item label="有效件-中心归档件">工单流转目标为部门归档</el-descriptions-item>
-							<el-descriptions-item label="有效件-转办信件">工单已办理</el-descriptions-item>
-							<el-descriptions-item label="有效件-待转办信件">工单已保存未办理</el-descriptions-item>
-							<el-descriptions-item label="无效信件">单受理类型为无效</el-descriptions-item>
-							<el-descriptions-item label="重复信件">工单选择重复信件</el-descriptions-item>
-							<el-descriptions-item label="所有信件">有效件(中心归档件+转办信件+待转办信件+无效信件+重复信件</el-descriptions-item>
+							<el-descriptions-item label="呼入总量">呼入接通量+呼入未接通总量</el-descriptions-item>
+							<el-descriptions-item label="呼入接通总量">坐席已接听的电话量</el-descriptions-item>
+							<el-descriptions-item label="有效接通量">通话时长大于15秒的电话量</el-descriptions-item>
+							<el-descriptions-item label="接通秒挂量">通话时长小于15秒的电话量</el-descriptions-item>
+							<el-descriptions-item label="超时接通量">铃时长大于15秒且接通的电话量</el-descriptions-item>
+							<el-descriptions-item label="按时接通量">振铃时长小于15秒且接通的电话量</el-descriptions-item>
+							<el-descriptions-item label="呼入未接通总量">已分配给该坐席但该坐席未接的电话量(即振铃未接电话量)</el-descriptions-item>
+							<el-descriptions-item label="未接通秒挂量">振铃时长小于15秒且未接通的电话量</el-descriptions-item>
+							<el-descriptions-item label="超时未接通量">振铃时长大于15秒且未接通的电话量</el-descriptions-item>
+							<el-descriptions-item label="接通率">呼入接通总量/呼入总量</el-descriptions-item>
 						</el-descriptions>
 					</el-popover>
 				</template>
@@ -69,13 +72,13 @@
 					:custom-config="{ storage: true }"
 					show-footer
 					:footer-method="footerMethod"
-					:params="{ exportMethod: centerListExport, exportParams: requestParams }"
+					:params="{ exportMethod: callAgentMonthExport, exportParams: requestParams }"
 					:sort-config="{ remote: true }"
 					@sort-change="sortChange"
 				>
-					<vxe-column field="userName" title="坐席"></vxe-column>
+					<vxe-column field="name" title="坐席"></vxe-column>
 					<vxe-column title="呼入总量" field="centreArchive" sortable></vxe-column>
-					<vxe-column title="呼入总量" field="centreCareOf" sortable></vxe-column>
+					<vxe-column title="呼入接通总量" field="centreCareOf" sortable></vxe-column>
 					<vxe-column title="有效接通量" field="noCentreCareOf" sortable></vxe-column>
 					<vxe-column title="接通秒挂量" field="noCentreCareOf" sortable></vxe-column>
 					<vxe-column title="超时接通量" field="noCentreCareOf" sortable></vxe-column>
@@ -83,7 +86,7 @@
 					<vxe-column title="呼入未接通总量" field="noCentreCareOf" sortable></vxe-column>
 					<vxe-column title="未接通秒挂量" field="noCentreCareOf" sortable></vxe-column>
 					<vxe-column title="超时未接通量" field="noCentreCareOf" sortable></vxe-column>
-					<vxe-column title="接通率" field="noCentreCareOf" sortable></vxe-column>
+					<vxe-column title="接通率" field="inAnsweredRateString" sortable></vxe-column>
 				</vxe-table>
 			</div>
 		</div>
@@ -92,11 +95,11 @@
 <script setup lang="tsx" name="statisticsCallSeatsMoth">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { centerList, centerListExport } from '@/api/statistics/order';
 import { defaultDate } from '@/utils/constants';
 import Other from '@/utils/other';
 import XEUtils from 'xe-utils';
 import { useRouter } from 'vue-router';
+import { callAgentMonth, callAgentMonthBase, callAgentMonthExport } from '@/api/statistics/call';
 
 const StatisticalTime = defineAsyncComponent(() => import('@/components/StatisticalTime/index.vue')); // 日期类型选择组件
 // 定义变量内容
@@ -104,7 +107,7 @@ const ruleFormRef = ref<RefType>(); // 表单ref
 const state = reactive<any>({
 	queryParams: {
 		// 查询条件
-		Keyword: null, // 关键词
+		EmpId: null, // 坐席ID
 		crTime: defaultDate,
 		SortField: null,
 		SortRule: null,
@@ -113,6 +116,7 @@ const state = reactive<any>({
 	loading: false, // 加载
 	total: 0, // 总数
 	roleOptions: [],
+	totalCount:{}
 });
 /** 搜索按钮操作 */
 const handleQuery = () => {
@@ -127,9 +131,10 @@ const queryList = () => {
 	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');
-	centerList(requestParams.value)
+	callAgentMonth(requestParams.value)
 		.then((res: any) => {
-			state.tableData = res.result;
+			state.tableData = res.result.list;
+			state.totalCount = res.result.total;
 			state.loading = false;
 		})
 		.catch(() => {
@@ -158,9 +163,8 @@ const footerMethod = ({ columns, data }) => {
 			if (columnIndex === 0) {
 				return '合计';
 			}
-			if (['centreArchive', 'centreCareOf', 'noCentreCareOf', 'invalid', 'repeat', 'subtotal'].includes(column.property)) {
-				return XEUtils.sum(data, column.property);
-			}
+			// 后端返回了数据集合 state.totalCount 所以不需要计算 直接进行赋值
+			return XEUtils.get(state.totalCount, column.property);
 		}),
 	];
 };
@@ -171,6 +175,15 @@ const onLink = () => {
 		path: '/statistics/call/detailSeatsMoth',
 	});
 };
+// 基础数据
+const getBaseData = async () => {
+		try {
+			const { result } = await callAgentMonthBase();
+			console.log(result)
+		} catch (e) {
+			console.log(e);
+		}
+};
 const toolbarRef = ref<RefType>();
 const tableRef = ref<RefType>();
 onMounted(() => {
@@ -178,5 +191,6 @@ onMounted(() => {
 	if (tableRef.value && toolbarRef.value) {
 		tableRef.value.connect(toolbarRef.value);
 	}
+	getBaseData();
 });
 </script>