|
@@ -133,6 +133,7 @@ function getValueByKey(obj, key) {
|
|
|
return null; // 如果 key 不存在则返回 null
|
|
|
}
|
|
|
|
|
|
+const $emit = defineEmits(["update"]);
|
|
|
// 生成动态表头
|
|
|
const createColumns = () => {
|
|
|
let columns = [];
|
|
@@ -175,16 +176,20 @@ const createColumns = () => {
|
|
|
if (column.order == "asc") {
|
|
|
if (row.isAverageRow) {
|
|
|
return -9999999999;
|
|
|
+ } else {
|
|
|
+ return row.allScore;
|
|
|
}
|
|
|
} else {
|
|
|
if (row.isAverageRow) {
|
|
|
return 99999999999;
|
|
|
+ } else {
|
|
|
+ return row.allScore;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
return -9999999999;
|
|
|
}
|
|
|
- return row.allScore; // 返回正常的得分,进行排序
|
|
|
+ // return row.allScore; // 返回正常的得分,进行排序
|
|
|
}
|
|
|
}
|
|
|
];
|
|
@@ -216,16 +221,20 @@ const createColumns = () => {
|
|
|
if (column.order == "asc") {
|
|
|
if (row.isAverageRow) {
|
|
|
return -9999999999;
|
|
|
+ } else {
|
|
|
+ return row.allScore;
|
|
|
}
|
|
|
} else {
|
|
|
if (row.isAverageRow) {
|
|
|
return 99999999999;
|
|
|
+ } else {
|
|
|
+ return row.allScore;
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
return -9999999999;
|
|
|
}
|
|
|
- return row.allScore; // 返回正常的得分,进行排序
|
|
|
+ // return row.allScore; // 返回正常的得分,进行排序
|
|
|
}
|
|
|
}
|
|
|
];
|
|
@@ -259,41 +268,41 @@ const createColumns = () => {
|
|
|
// 构建多级表头
|
|
|
headerMap.forEach((dimData, dimName) => {
|
|
|
const children = dimData.quotas.map(quota => ({
|
|
|
- title: `${quota.quotaName} ${quota.quotaWeight != "null" && quota.quotaWeight != "0" ? `(${quota.quotaWeight}%)` : ""}`, // 在 title 后拼接 quotaWeight
|
|
|
+ title: `${quota.quotaName} ${quota.quotaWeight != "null" ? `(${quota.quotaWeight}%)` : ""}`, // 在 title 后拼接 quotaWeight
|
|
|
width: 120,
|
|
|
- sortable: true,
|
|
|
- field: `${dimName}_${quota.quotaName}`, // 确保字段唯一
|
|
|
- sortBy({ column, row }) {
|
|
|
- // 如果是平均行(isAverageRow为true),则返回一个很大的值,避免被排序
|
|
|
- let aa = Number(row[column.field]);
|
|
|
- if (typeof aa === "number" && !isNaN(aa)) {
|
|
|
- if (column.order == "asc") {
|
|
|
- if (row.isAverageRow) {
|
|
|
- return -9999999999;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (row.isAverageRow) {
|
|
|
- return 99999999999;
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 倒序在最后
|
|
|
- if (column.order == "asc") {
|
|
|
- if (!row.isAverageRow) {
|
|
|
- return 9999999999999;
|
|
|
- } else {
|
|
|
- return -999999999999;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (!row.isAverageRow) {
|
|
|
- return -999999999999;
|
|
|
- } else {
|
|
|
- return 999999999999;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return getValueByKey(row, column.field); // 返回正常的得分,进行排序
|
|
|
- }
|
|
|
+ // sortable: true,
|
|
|
+ field: `${dimName}_${quota.quotaName}` // 确保字段唯一
|
|
|
+ // sortBy({ column, row }) {
|
|
|
+ // // 如果是平均行(isAverageRow为true),则返回一个很大的值,避免被排序
|
|
|
+ // let aa = Number(row[column.field]);
|
|
|
+ // if (typeof aa === "number" && !isNaN(aa)) {
|
|
|
+ // if (column.order == "asc") {
|
|
|
+ // if (row.isAverageRow) {
|
|
|
+ // return -9999999999;
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // if (row.isAverageRow) {
|
|
|
+ // return 99999999999;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // // 倒序在最后
|
|
|
+ // if (column.order == "asc") {
|
|
|
+ // if (!row.isAverageRow) {
|
|
|
+ // return 9999999999999;
|
|
|
+ // } else {
|
|
|
+ // return -999999999999;
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // if (!row.isAverageRow) {
|
|
|
+ // return -999999999999;
|
|
|
+ // } else {
|
|
|
+ // return 999999999999;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // return getValueByKey(row, column.field); // 返回正常的得分,进行排序
|
|
|
+ // }
|
|
|
}));
|
|
|
|
|
|
// 添加维度名称及其对应的子列
|
|
@@ -306,39 +315,39 @@ const createColumns = () => {
|
|
|
columns.push({
|
|
|
title: `总分`, // 可根据需要调整标题
|
|
|
field: `${dimName}_totalSore`,
|
|
|
- width: 120,
|
|
|
- sortable: true,
|
|
|
- sortBy({ column, row }) {
|
|
|
- // 如果是平均行(isAverageRow为true),则返回一个很大的值,避免被排序
|
|
|
- let aa = Number(row[column.field]);
|
|
|
- if (typeof aa === "number" && !isNaN(aa)) {
|
|
|
- if (column.order == "asc") {
|
|
|
- if (row.isAverageRow) {
|
|
|
- return -9999999999;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (row.isAverageRow) {
|
|
|
- return 99999999999;
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 倒序在最后
|
|
|
- if (column.order == "asc") {
|
|
|
- if (!row.isAverageRow) {
|
|
|
- return 9999999999999;
|
|
|
- } else {
|
|
|
- return -999999999999;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (!row.isAverageRow) {
|
|
|
- return -999999999999;
|
|
|
- } else {
|
|
|
- return 999999999999;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return getValueByKey(row, column.field); // 返回正常的得分,进行排序
|
|
|
- }
|
|
|
+ width: 120
|
|
|
+ // sortable: true,
|
|
|
+ // sortBy({ column, row }) {
|
|
|
+ // // 如果是平均行(isAverageRow为true),则返回一个很大的值,避免被排序
|
|
|
+ // let aa = Number(row[column.field]);
|
|
|
+ // if (typeof aa === "number" && !isNaN(aa)) {
|
|
|
+ // if (column.order == "asc") {
|
|
|
+ // if (row.isAverageRow) {
|
|
|
+ // return -9999999999;
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // if (row.isAverageRow) {
|
|
|
+ // return 99999999999;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // // 倒序在最后
|
|
|
+ // if (column.order == "asc") {
|
|
|
+ // if (!row.isAverageRow) {
|
|
|
+ // return 9999999999999;
|
|
|
+ // } else {
|
|
|
+ // return -999999999999;
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // if (!row.isAverageRow) {
|
|
|
+ // return -999999999999;
|
|
|
+ // } else {
|
|
|
+ // return 999999999999;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // return getValueByKey(row, column.field); // 返回正常的得分,进行排序
|
|
|
+ // }
|
|
|
});
|
|
|
});
|
|
|
gridOptions.columns = columns;
|