Jelajahi Sumber

feat:对接通话时段分析明细;

zhangchong 1 tahun lalu
induk
melakukan
52137c7b29

+ 40 - 45
src/components/ProTable/index.vue

@@ -84,14 +84,15 @@
 </template>
 
 <script setup lang="ts" name="ProTable">
-import { ref, provide, onMounted, unref, computed, reactive, PropType, watch, shallowRef } from "vue";
-import { ElTable } from 'element-plus';
+import { ref, provide, onMounted, unref, computed, reactive, PropType, watch, shallowRef } from 'vue';
+import { ElMessage, ElMessageBox, ElTable } from 'element-plus';
 import { useSelection } from '@/hooks/useSelection';
 import { ColumnProps, TypeProps } from '@/components/ProTable/interface';
 import PaginationEl from './components/Pagination.vue';
 import ColSetting from './components/ColSetting.vue';
 import TableColumn from './components/TableColumn.vue';
 import { handleProp } from '@/utils/tools';
+import { deleteCommon } from '@/api/auxiliary/advice';
 
 // 接受父组件参数,配置默认值
 const props = defineProps({
@@ -203,9 +204,7 @@ const { selectionChange, selectedList, selectedListIds, isSelected } = useSelect
 const clearSelection = () => tableRef.value!.clearSelection();
 
 // 初始化表格数据 && 拖拽排序
-onMounted(() => {
-	getSelectColumns();
-});
+onMounted(() => {});
 
 // 处理表格数据
 const processTableData = computed(() => {
@@ -260,15 +259,11 @@ const searchColumns = computed(() => {
 });
 
 // 设置 搜索表单默认排序 && 搜索表单项的默认值
-searchColumns.value?.forEach((column, index) => {
-	column.search!.order = column.search?.order ?? index + 2;
-	const key = column.search?.key ?? handleProp(column.prop!);
-	const defaultValue = column.search?.defaultValue;
-});
+searchColumns.value?.forEach((column, index) => {});
 
 // 列设置 ==> 需要过滤掉不需要设置的列
 const colRef = ref();
-const colSetting = tableColumns!.filter((item) => {
+const colSetting: any = tableColumns!.filter((item) => {
 	const { type, prop, isShow } = item;
 	return !columnTypes.includes(type!) && prop !== 'operation' && isShow;
 });
@@ -279,47 +274,50 @@ const onRefresh = () => {
 	clearSelection();
 	emit('updateTable');
 };
-const filterColumns = ref([]);
-const filterColumnsProp = ref([]);
-// 获取需要显示的列
-const getSelectColumns = () => {
-	const flatColumns = flatColumnsFunc(tableColumns);
-	filterColumns.value = flatColumns.filter((item) => item.isShow && item.prop !== 'operation' && item.prop);
-	filterColumnsProp.value = filterColumns.value.map((item) => item.prop);
-};
 // 更新列设置
-const exportNewColumns = ref([]);
-const exportNewColumnsProp = ref([]);
 const updateColSetting = (test: ColumnProps[]) => {
 	//  平铺数组后获取isShow为true的对象
-	const flatColumns = flatColumnsFunc(test);
-  exportNewColumns.value = flatColumns.filter((item) => item.isShow);
+	const flatColumnsArr = flatColumnsFunc(test);
+	const exportNewColumns = flatColumnsArr.filter((item) => item.isShow);
 	// 获取prop
-	const newColumnsProp = exportNewColumns.value.map((item) => item.prop);
-
-	emit('updateColSetting', exportNewColumns.value, newColumnsProp);
+	const newColumnsProp = exportNewColumns.map((item) => item.prop);
+	emit('updateColSetting', exportNewColumns, newColumnsProp);
 };
-watch(
-	() => exportNewColumns.value,
-	(val: any) => {
-    console.log(val,'2121')
-    if(val.length){
-      exportNewColumnsProp.value = val.map((item: any) => item.prop);
-    }else{
-      exportNewColumns.value = flatColumnsFunc(colSetting);
-      exportNewColumnsProp.value = exportNewColumns.value.map((item: any) => item.prop);
-    }
-		console.log(exportNewColumns.value, 'test');
-	},
-	{ immediate: true,deep:true }
-);
 // 导出当前页
 const exportCurrent = () => {
-	emit('exportCurrent');
+	const flatColSetting = flatColumnsFunc(colSetting);
+	const exportNewColumns = flatColSetting.filter((item: any) => item.isShow);
+	const exportNewColumnsProp = exportNewColumns.map((item: any) => item.prop);
+	ElMessageBox.confirm(`您确定要导出当前页数据,是否继续?`, '提示', {
+		confirmButtonText: '确认',
+		cancelButtonText: '取消',
+		type: 'warning',
+		draggable: true,
+		cancelButtonClass: 'default-button',
+		autofocus: false,
+	})
+		.then(() => {
+			emit('exportCurrent', exportNewColumns, exportNewColumnsProp);
+		})
+		.catch(() => {});
 };
 // 导出全部
 const exportAll = () => {
-	emit('exportAll');
+	const flatColSetting = flatColumnsFunc(colSetting);
+	const exportNewColumns = flatColSetting.filter((item: any) => item.isShow);
+	const exportNewColumnsProp = exportNewColumns.map((item: any) => item.prop);
+	ElMessageBox.confirm(`您确定要导出全部数据,是否继续?`, '提示', {
+		confirmButtonText: '确认',
+		cancelButtonText: '取消',
+		type: 'warning',
+		draggable: true,
+		cancelButtonClass: 'default-button',
+		autofocus: false,
+	})
+		.then(() => {
+			emit('exportAll', exportNewColumns, exportNewColumnsProp);
+		})
+		.catch(() => {});
 };
 watch(
 	// 监听table数据改变后重置选择
@@ -338,9 +336,6 @@ defineExpose({
 	isSelected,
 	selectedList,
 	selectedListIds,
-	filterColumns,
-	filterColumnsProp,
-  exportNewColumns:shallowRef(exportNewColumns.value)
 });
 </script>
 <style scoped lang="scss">

+ 1 - 1
src/router/route.ts

@@ -306,7 +306,7 @@ export const dynamicRoutes: Array<RouteRecordRaw> = [
 		name: 'statisticsCallDetailTalkTime',
 		component: () => import('@/views/statistics/call/detailTalkTime.vue'),
 		meta: {
-			title: '通话时段分析',
+			title: '通话时段明细表',
 			isKeepAlive: true,
 			isDynamic:true
 		},

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

@@ -284,7 +284,7 @@ const selectable = (row: any) => {
 // 表格配置项
 const columns = ref<any[]>([
 	{ type: 'selection', fixed: 'left', width: 55, selectable: selectable },
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',width: 80 },
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },
 	{ prop: 'actualHandleStepName', label: '办理节点', width: 150 },

+ 1 - 1
src/views/business/countersign/index.vue

@@ -152,7 +152,7 @@ const HotSpotSelect = defineAsyncComponent(() => import('@/components/Hotspot/in
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'order.expiredStatus', label: '超期状态', align: 'center',fixed: 'left' },
+	{ prop: 'order.expiredStatus', label: '超期状态', align: 'center',fixed: 'left',width: 80 },
 	{ prop: 'stateText', label: '会签状态', width: 120 },
 	{ prop: 'order.counterSignTypeText', label: '会签类型', width: 120 },
 	{ prop: 'order.no', label: '工单编码', width: 150 },

+ 1 - 1
src/views/business/delay/audit.vue

@@ -86,7 +86,7 @@ const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left',width: 80},
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },
 	{ prop: 'title', label: '工单标题', width: 300 },

+ 1 - 1
src/views/business/delay/index.vue

@@ -71,7 +71,7 @@ const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left'},
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left',width: 80},
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },
 	{ prop: 'title', label: '工单标题', width: 300 },

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

@@ -86,7 +86,7 @@ const ruleFormRef = ref<RefType>(); // 表单ref
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left', },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left',width: 80 },
 	{ prop: 'order.no', label: '工单编码', width: 150 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },
 	{ prop: 'title', label: '工单标题', width: 300 },

+ 1 - 1
src/views/business/end/index.vue

@@ -62,7 +62,7 @@ const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
 	{ type: 'selection', fixed: 'left', width: 55 },
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',width: 80 },
 	{ prop: 'order.no', label: '工单编码', width: 150 },
 	{ prop: 'order.sourceChannel', label: '来源方式', width: 120 },
 	{ prop: 'order.actualHandleStepName', label: '当前节点', width: 120 },

+ 1 - 1
src/views/business/observe/index.vue

@@ -62,7 +62,7 @@ const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
 	{ type: 'selection', fixed: 'left', width: 55 },
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',width: 80 },
 	{ prop: 'order.no', label: '工单编码', width: 150 },
 	{ prop: 'order.sourceChannel', label: '来源方式', width: 120 },
 	{ prop: 'order.actualHandleStepName', label: '当前节点', width: 120 },

+ 5 - 5
src/views/business/order/index.vue

@@ -482,7 +482,7 @@ const ruleFormRef = ref<RefType>(); // 表单ref
 const searchCol = ref(true); // 展开/收起
 // 展开/收起
 const closeSearch = () => {
-  searchCol.value = !searchCol.value;
+	searchCol.value = !searchCol.value;
 };
 const route = useRoute(); // 路由
 const router = useRouter(); // 路由
@@ -497,7 +497,7 @@ const selectable = (row: any) => {
 // 表格配置项
 const columns = ref<any[]>([
 	{ type: 'selection', fixed: 'left', width: 55, selectable: selectable },
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center', width: 80 },
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },
 	{ prop: 'actualHandleStepName', label: '办理节点', width: 150 },
@@ -641,13 +641,13 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 	state.queryParams.CreationTimeEnd = null;
 	state.queryParams.ExpiredTimeStart = null;
 	state.queryParams.ExpiredTimeEnd = null;
-  state.queryParams.ActualHandleTimeStart = null;
-  state.queryParams.ActualHandleTimeEnd = null;
+	state.queryParams.ActualHandleTimeStart = null;
+	state.queryParams.ActualHandleTimeEnd = null;
 	state.queryParams.IsSensitiveWord = null;
 	state.queryParams.IsProvinceOrder = null;
 	fastSearch.value = 'all';
 	checkList.value = [];
-  state.queryParams.AreaCodes = [];
+	state.queryParams.AreaCodes = [];
 	hotSpotRef.value?.reset();
 	queryList();
 };

+ 1 - 1
src/views/business/special/audit.vue

@@ -71,7 +71,7 @@ const columns = ref<any[]>([
   { prop: 'isProvince', label: '省/市工单', width: 100 },
   { prop: 'title', label: '工单标题', width: 300 },
   { prop: 'order.sourceChannel', label: '来源方式' },
-  { prop: 'order.acceptType', label: '受理类型', width: 150 },
+  { prop: 'order.acceptType', label: '受理类型' },
   { prop: 'order.hotspotName', label: '热点分类', width: 200 },
   { prop: 'employeeName', label: '受理人', width: 170 },
   { prop: 'order.orgLevelOneName', label: '一级部门', width: 170 },

+ 2 - 2
src/views/business/special/index.vue

@@ -80,7 +80,7 @@ const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left',width: 80 },
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'statusText', label: '工单状态', width: 100 },
 	{ prop: 'state', label: '审批状态', width: 100 },
@@ -97,7 +97,7 @@ const columns = ref<any[]>([
 			return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
 	},
-	{ prop: 'acceptType', label: '受理类型', width: 150 },
+	{ prop: 'acceptType', label: '受理类型'},
 	{ prop: 'hotspotName', label: '热点分类', width: 200 },
 	{ prop: 'operation', label: '操作', fixed: 'right', width: 170, align: 'center' },
 ]);

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

@@ -64,7 +64,7 @@ const ruleFormRef = ref<RefType>(); // 表单ref
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left'},
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left',width: 80},
 	{ prop: 'order.no', label: '工单编码', width: 150 },
 	{ prop: 'title', label: '工单标题', width: 300 },
 	{ prop: 'order.sourceChannel', label: '来源方式', width: 100 },

+ 1 - 1
src/views/business/urge/index.vue

@@ -62,7 +62,7 @@ const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left',width: 80 },
 	{ prop: 'order.no', label: '工单编码', width: 150 },
 	{ prop: 'order.sourceChannel', label: '来源方式' },
 	{ prop: 'order.actualHandleStepName', label: '办理节点', width: 150 },

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

@@ -59,7 +59,7 @@ const ruleFormRef = ref<RefType>(); // 表单ref
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left',width: 80 },
 	{ prop: 'order.no', label: '工单编码', width: 150 },
 	{ prop: 'title', label: '工单标题', width: 300 },
 	{ prop: 'order.sourceChannel', label: '来源方式', width: 100 },

+ 1 - 1
src/views/home/component/ToDo.vue

@@ -94,7 +94,7 @@ const columns = ref<any[]>([]);
 
 // 工单待办表头
 const todoColumns = [
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left',width: 80 },
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },
 	{ prop: 'actualHandleStepName', label: '办理节点', width: 150 },

+ 1 - 1
src/views/judicial/order/index.vue

@@ -491,7 +491,7 @@ const selectable = (row: any) => {
 // 表格配置项
 const columns = ref<any[]>([
 	{ type: 'selection', fixed: 'left', width: 55, selectable: selectable, align: 'center' },
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',width: 80 },
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'provinceNo', label: '省编号', width: 200 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },

+ 1 - 1
src/views/judicial/statistics/detailArea.vue

@@ -61,7 +61,7 @@ const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',width: 80 },
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'provinceNo', label: '省编号', width: 200 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },

+ 1 - 1
src/views/judicial/statistics/detailDepartment.vue

@@ -61,7 +61,7 @@ const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',width: 80 },
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'provinceNo', label: '省编号', width: 200 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },

+ 1 - 1
src/views/judicial/statistics/detailEventClass.vue

@@ -61,7 +61,7 @@ const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',width: 80 },
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'provinceNo', label: '省编号', width: 200 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },

+ 1 - 1
src/views/judicial/statistics/detailSatisfied.vue

@@ -53,7 +53,7 @@ const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/
 
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',width: 80 },
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'provinceNo', label: '省编号', width: 200 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },

+ 12 - 2
src/views/statistics/call/detailTalkTime.vue

@@ -107,9 +107,19 @@ const queryList = () => {
 	if (historyParams.type) {
 		state.queryParams.type = historyParams.type;
 	}
+  let beginDate = null;
+  let endDate = null;
+  if (historyParams.beginDate) {
+    state.queryParams.crTime = [historyParams.beginDate, historyParams.endDate];
+  }
+  if (state.queryParams?.crTime) {
+    beginDate = state.queryParams?.crTime[0];
+    endDate = state.queryParams?.crTime[1];
+  }
+  state.loading = true;
 	const request = {
-		beginDate: historyParams.beginDate,
-		endDate: historyParams.endDate,
+		beginDate,
+		endDate,
 		PageIndex: state.queryParams.PageIndex,
 		PageSize: state.queryParams.PageSize,
 		type: state.queryParams.type,

+ 16 - 3
src/views/statistics/call/index.vue

@@ -4,7 +4,9 @@
 		<el-card shadow="never">
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
 				<el-form-item label="来源" prop="Keyword">
-					<el-input v-model="state.queryParams.Keyword" placeholder="来源" clearable @keyup.enter="handleQuery" class="keyword-input" />
+					<el-select v-model="state.queryParams.Keyword" placeholder="请选择来源" clearable @change="handleQuery">
+						<el-option v-for="item in state.callForwardingSource" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+					</el-select>
 				</el-form-item>
 				<el-form-item label="时间段" prop="crTime">
 					<el-date-picker
@@ -72,8 +74,8 @@
 <script setup lang="tsx" name="statisticsCall">
 import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { callList } from '@/api/statistics/call';
-import { defaultDate, shortcuts } from "@/utils/constants";
+import { callList, callPeriodBase } from '@/api/statistics/call';
+import { defaultDate, shortcuts } from '@/utils/constants';
 
 const proTableRef = ref<RefType>(); // 表格ref
 const proTableRef1 = ref<RefType>(); // 表格ref
@@ -101,6 +103,7 @@ const state = reactive({
 	tableData1: [],
 	loading: false, // 加载
 	total: 0, // 总数
+	callForwardingSource: [],
 });
 /** 搜索按钮操作 */
 const handleQuery = () => {
@@ -258,7 +261,17 @@ const setOption1 = (data: any) => {
 		],
 	};
 };
+// 获取基础信息
+const getBaseInfo = async () => {
+	try {
+		const { result } = await callPeriodBase();
+		state.callForwardingSource = result.callForwardingSource ?? [];
+	} catch (e) {
+		console.log(e);
+	}
+};
 onMounted(() => {
+	getBaseInfo();
 	queryList();
 });
 </script>

+ 48 - 17
src/views/statistics/call/talkTime.vue

@@ -3,6 +3,11 @@
 		<!-- 搜索  -->
 		<el-card shadow="never">
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+				<el-form-item label="来源" prop="source">
+					<el-select v-model="state.queryParams.source" placeholder="请选择来源" clearable @change="handleQuery">
+						<el-option v-for="item in state.callForwardingSource" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+					</el-select>
+				</el-form-item>
 				<el-form-item label="时间段" prop="crTime">
 					<el-date-picker
 						v-model="state.queryParams.crTime"
@@ -36,8 +41,9 @@
 				:pagination="false"
 				border
 				show-summary
-        :toolButton="['refresh','setting','exportCurrent','exportAll']"
-        @exportCurrent="exportCurrent"
+				:toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
+				@exportCurrent="exportCurrent"
+				@exportAll="exportAll"
 			>
 			</ProTable>
 		</el-card>
@@ -46,7 +52,7 @@
 <script setup lang="tsx" name="statisticsCallTalkTime">
 import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { callPeriod } from '@/api/statistics/call';
+import { callPeriod, callPeriodBase } from '@/api/statistics/call';
 import { defaultDate, shortcuts } from '@/utils/constants';
 import { useRouter } from 'vue-router';
 import { guid } from '@/utils/tools';
@@ -136,10 +142,12 @@ const state = reactive({
 		// 查询条件
 		Keyword: null, // 关键词
 		crTime: defaultDate, //
+		source: null,
 	},
 	tableData: [], //表单
 	loading: false, // 加载
 	total: 0, // 总数
+	callForwardingSource: [],
 });
 /** 搜索按钮操作 */
 const handleQuery = () => {
@@ -159,6 +167,7 @@ const queryList = () => {
 		beginDate,
 		endDate,
 		Keyword: state.queryParams.Keyword,
+		source: state.queryParams.source,
 	};
 	callPeriod(request)
 		.then((res: any) => {
@@ -178,6 +187,12 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 // 通话时段分析
 const router = useRouter();
 const onDetail = () => {
+	let beginDate = null;
+	let endDate = null;
+	if (state.queryParams?.crTime) {
+		beginDate = state.queryParams?.crTime[0];
+		endDate = state.queryParams?.crTime[1];
+	}
 	router.push({
 		name: 'statisticsCallDetailTalkTime',
 		params: {
@@ -185,35 +200,51 @@ const onDetail = () => {
 		},
 		state: {
 			showSearch: true,
+			beginDate,
+			endDate,
 		},
 	});
 };
 // 查看详情
 const linkDetail = (scope: any) => {
 	console.log(scope);
-  let beginDate = null;
-  let endDate = null;
-  if (state.queryParams?.crTime) {
-    beginDate = state.queryParams?.crTime[0];
-    endDate = state.queryParams?.crTime[1];
-  }
+	let beginDate = null;
+	let endDate = null;
+	if (state.queryParams?.crTime) {
+		beginDate = state.queryParams?.crTime[0];
+		endDate = state.queryParams?.crTime[1];
+	}
 	router.push({
 		name: 'statisticsCallDetailTalkTime',
 		params: {
 			id: guid(),
 		},
-    state:{
-      type:scope.column.property,
-      beginDate,
-      endDate
-    }
+		state: {
+			type: scope.column.property,
+			beginDate,
+			endDate,
+		},
 	});
 };
 // 导出当前页
-const exportCurrent = () => {
-  console.log(proTableRef.value.exportNewColumns)
-}
+const exportCurrent = (val: any, props: string[]) => {
+	console.log(val, props);
+};
+//导出全部
+const exportAll = (val: any, props: string[]) => {
+	console.log(val, props);
+};
+// 获取基础信息
+const getBaseInfo = async () => {
+	try {
+		const { result } = await callPeriodBase();
+		state.callForwardingSource = result.callForwardingSource ?? [];
+	} catch (e) {
+		console.log(e);
+	}
+};
 onMounted(() => {
+	getBaseInfo();
 	queryList();
 });
 </script>

+ 1 - 1
src/views/statistics/center/detailEventFrequently.vue

@@ -323,7 +323,7 @@ const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',width: 80 },
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },
 	{ prop: 'actualHandleStepName', label: '办理节点', width: 150 },

+ 1 - 1
src/views/statistics/center/detailTelFrequently.vue

@@ -391,7 +391,7 @@ const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',width: 80 },
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },
 	{ prop: 'actualHandleStepName', label: '办理节点', width: 150 },

+ 1 - 1
src/views/statistics/department/detailHandle.vue

@@ -64,7 +64,7 @@ const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-  { prop: 'expiredStatus', label: '超期状态', align: 'center' },
+  { prop: 'expiredStatus', label: '超期状态', align: 'center',width: 80 },
   { prop: 'no', label: '工单编码', width: 150 },
   { prop: 'isProvince', label: '省/市工单', width: 100 },
   { prop: 'actualHandleStepName', label: '办理节点', width: 150 },

+ 1 - 1
src/views/statistics/order/detailAcceptType.vue

@@ -64,7 +64,7 @@ const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-  { prop: 'expiredStatus', label: '超期状态', align: 'center' },
+  { prop: 'expiredStatus', label: '超期状态', align: 'center' ,width: 80},
   { prop: 'no', label: '工单编码', width: 150 },
   { prop: 'isProvince', label: '省/市工单', width: 100 },
   { prop: 'actualHandleStepName', label: '办理节点', width: 150 },

+ 1 - 1
src/views/todo/seats/index.vue

@@ -97,7 +97,7 @@ const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left' },
+	{ prop: 'expiredStatus', label: '超期状态', align: 'center',fixed: 'left',width: 80 },
 	{ prop: 'no', label: '工单编码', width: 150 },
 	{ prop: 'isProvince', label: '省/市工单', width: 100 },
 	{ prop: 'actualHandleStepName', label: '办理节点', width: 150 },