Bläddra i källkod

reactor:呼叫中心底层方法重构;

zhangchong 10 månader sedan
förälder
incheckning
0101334cce

+ 23 - 6
src/components/ProTable/index.vue

@@ -97,7 +97,7 @@
 </template>
 
 <script setup lang="ts" name="ProTable">
-import { ref, provide, onMounted, unref, computed, reactive, PropType, watch, shallowRef } from 'vue';
+import { ref, provide, onMounted, unref, computed, reactive, PropType, watch } from 'vue';
 import { ElMessage, ElMessageBox, ElTable } from 'element-plus';
 import { useSelection } from '@/hooks/useSelection';
 import { ColumnProps, TypeProps } from '@/components/ProTable/interface';
@@ -164,7 +164,7 @@ const props = defineProps({
 		type: String,
 		default: 'total, sizes, prev, pager, next, jumper',
 	},
-  withParent:{// 导出是否带有子父级关系
+  exportWithParent:{// 导出是否带有子父级关系
     type: Boolean,
     default: false
   }
@@ -302,13 +302,29 @@ const updateColSetting = (test: ColumnProps[]) => {
 	const newColumnsProp = exportNewColumns.map((item) => item.prop);
 	emit('updateColSetting', exportNewColumns, newColumnsProp);
 };
+// 递归获取isShow的列保持子父级关系
+ const getIsShowColumns = (columns: any[]) => {
+   let exportNewColumns = [];
+   columns.forEach((item) => {
+     if (item.isShow) {
+       if (item._children) {
+         getIsShowColumns(item._children);
+       } else {
+         exportNewColumns.push(item);
+       }
+     }
+   });
+   return exportNewColumns;
+};
 // 导出当前页
 const exportCurrent = () => {
   let exportNewColumns: any = [];
   let exportNewColumnsProp = [];
   let flatColSetting = [];
-  if(props.withParent){  // 导出带子父级关系
-
+  if(props.exportWithParent){  // 导出带子父级关系
+    exportNewColumns = getIsShowColumns(colSetting);
+    console.log(exportNewColumns,colSetting,'111')
+    // 保留子父级关系 递归查询
   }else{
     flatColSetting = flatColumnsFunc(colSetting);
     exportNewColumns = flatColSetting.filter((item: any) => item.isShow);
@@ -332,8 +348,9 @@ const exportAll = () => {
   let exportNewColumns: any = [];
   let exportNewColumnsProp = [];
   let flatColSetting = [];
-  if(props.withParent){  // 导出带子父级关系
-
+  if(props.exportWithParent){  // 导出带子父级关系
+    exportNewColumns = getIsShowColumns(tableColumns);
+    console.log(exportNewColumns,tableColumns,'111')
   }else{
     flatColSetting = flatColumnsFunc(colSetting);
     exportNewColumns = flatColSetting.filter((item: any) => item.isShow);

+ 5 - 20
src/views/statistics/department/detailHandleOrg.vue

@@ -98,18 +98,12 @@ const columns = reactive<any[]>([
 				label: '办结率',
 				align: 'center',
 				minWidth: 90,
-				render: ({ row }) => {
-					return `${row.orderCompletionRate}%`;
-				},
 			},
 			{
 				prop: 'completeOnTimeRate ',
 				label: '按时办结率',
 				align: 'center',
 				minWidth: 120,
-				render: ({ row }) => {
-					return `${row.completeOnTimeRate}%`;
-				},
 			},
 		],
 	},
@@ -137,9 +131,6 @@ const columns = reactive<any[]>([
 				label: '延期率',
 				align: 'center',
 				minWidth: 90,
-				render: ({ row }) => {
-					return `${row.orderDelayRate}%`;
-				},
 			},
 		],
 	},
@@ -218,9 +209,6 @@ const columns = reactive<any[]>([
 				label: '超期率',
 				align: 'center',
 				minWidth: 90,
-				render: ({ row }) => {
-					return `${row.hqOverdueRate}%`;
-				},
 			},
 		],
 	},
@@ -400,9 +388,6 @@ const columns = reactive<any[]>([
 		label: '总满意率',
 		align: 'center',
 		minWidth: 90,
-		render: ({ row }) => {
-			return `${row.satisfactionRate}%`;
-		},
 	},
 ]);
 // 列设置获取
@@ -478,16 +463,16 @@ const getSummaries = (param: any) => {
 				sums[index] = state.totalCount?.zbOrderCountNum;
 				break;
 			case 'completeOnTimeRate': // 按时办结率
-				sums[index] = `${state.totalCount?.completeOnTimeRate}%`;
+				sums[index] = state.totalCount?.completeOnTimeRate;
 				break;
 			case 'orderCompletionRate': // 办结率
-				sums[index] = `${state.totalCount?.orderCompletionRate}%`;
+				sums[index] = state.totalCount?.orderCompletionRate;
 				break;
 			case 'orderDelayCount': // 延期次数
 				sums[index] = state.totalCount?.orderDelayCount;
 				break;
 			case 'orderDelayRate': // 延期率
-				sums[index] = `${state.totalCount?.orderDelayRate}%`;
+				sums[index] = state.totalCount?.orderDelayRate;
 				break;
 			case 'ybOverdue': // 已办超期
 				sums[index] = state.totalCount?.ybOverdue;
@@ -505,7 +490,7 @@ const getSummaries = (param: any) => {
 				sums[index] = state.totalCount?.subtotalOverdue;
 				break;
 			case 'hqOverdueRate': // 超期率
-				sums[index] = `${state.totalCount?.hqOverdueRate}%`;
+				sums[index] = state.totalCount?.hqOverdueRate;
 				break;
 			case 'delayWait': // 会签待办
 				sums[index] = state.totalCount?.delayWait;
@@ -541,7 +526,7 @@ const getSummaries = (param: any) => {
 				sums[index] = state.totalCount?.screenPass;
 				break;
 			case 'satisfactionRate': // 总满意率
-				sums[index] = `${state.totalCount?.satisfactionRate}%`;
+				sums[index] = state.totalCount?.satisfactionRate;
 				break;
 			default:
 				sums[index] = '';

+ 7 - 20
src/views/statistics/department/handle.vue

@@ -44,6 +44,7 @@
 				:summary-method="getSummaries"
         :toolButton="['refresh', 'setting', 'exportAll']"
         @export-all="exportTable($event, true)"
+        exportWithParent
 			>
 			</ProTable>
 		</el-card>
@@ -117,18 +118,12 @@ const columns = reactive<any[]>([
 				label: '办结率',
 				align: 'center',
 				minWidth: 90,
-				render: ({ row }) => {
-					return `${row.orderCompletionRate}%`;
-				},
 			},
 			{
 				prop: 'completeOnTimeRate',
 				label: '按时办结率',
 				align: 'center',
 				minWidth: 120,
-				render: ({ row }) => {
-					return `${row.completeOnTimeRate}%`;
-				},
 			},
 		],
 	},
@@ -155,9 +150,6 @@ const columns = reactive<any[]>([
 				label: '延期率',
 				align: 'center',
 				minWidth: 90,
-				render: ({ row }) => {
-					return `${row.orderDelayRate}%`;
-				},
 			},
 		],
 	},
@@ -236,9 +228,6 @@ const columns = reactive<any[]>([
 				label: '超期率',
 				align: 'center',
 				minWidth: 90,
-				render: ({ row }) => {
-					return `${row.hqOverdueRate}%`;
-				},
 			},
 		],
 	},
@@ -418,9 +407,6 @@ const columns = reactive<any[]>([
 		label: '总满意率',
 		align: 'center',
 		minWidth: 90,
-		render: ({ row }) => {
-			return `${row.satisfactionRate}%`;
-		},
 	},
 ]);
 // 列设置获取
@@ -489,16 +475,16 @@ const getSummaries = (param: any) => {
 				sums[index] = state.totalCount?.zbOrderCountNum;
 				break;
 			case 'completeOnTimeRate': // 按时办结率
-				sums[index] = `${state.totalCount?.completeOnTimeRate}%`;
+				sums[index] = state.totalCount?.completeOnTimeRate;
 				break;
 			case 'orderCompletionRate': // 办结率
-				sums[index] = `${state.totalCount?.orderCompletionRate}%`;
+				sums[index] = state.totalCount?.orderCompletionRate;
 				break;
 			case 'orderDelayCount': // 延期次数
 				sums[index] = state.totalCount?.orderDelayCount;
 				break;
 			case 'orderDelayRate': // 延期率
-				sums[index] = `${state.totalCount?.orderDelayRate}%`;
+				sums[index] = state.totalCount?.orderDelayRate;
 				break;
 			case 'ybOverdue': // 已办超期
 				sums[index] = state.totalCount?.ybOverdue;
@@ -516,7 +502,7 @@ const getSummaries = (param: any) => {
 				sums[index] = state.totalCount?.subtotalOverdue;
 				break;
 			case 'hqOverdueRate': // 超期率
-				sums[index] = `${state.totalCount?.hqOverdueRate}%`;
+				sums[index] = state.totalCount?.hqOverdueRate;
 				break;
 			case 'delayWait': // 会签待办
 				sums[index] = state.totalCount?.delayWait;
@@ -552,7 +538,7 @@ const getSummaries = (param: any) => {
 				sums[index] = state.totalCount?.screenPass;
 				break;
 			case 'satisfactionRate': // 总满意率
-				sums[index] = `${state.totalCount?.satisfactionRate}%`;
+				sums[index] = state.totalCount?.satisfactionRate;
 				break;
 			default:
 				sums[index] = '';
@@ -612,6 +598,7 @@ const exportTable = (val: any, isExportAll = false) => {
       name: item.label,
     };
   });
+  return;
   const req = {
     queryDto: request,
     columnInfos,