|
@@ -63,6 +63,21 @@ const search = () => {
|
|
|
return aa.localeCompare(bb);
|
|
|
}
|
|
|
});
|
|
|
+ if (sort.value === "ASC") {
|
|
|
+ data.value.sort((a: any, b: any) => {
|
|
|
+ let aa = a.deviceName || "",
|
|
|
+ bb = b.deviceName || "";
|
|
|
+ let reg = /^[a-z]+[0-9]+$/;
|
|
|
+ if (reg.test(aa) && reg.test(bb)) {
|
|
|
+ let num1 = Number(aa.replaceAll(/[^0-9]/g, ""));
|
|
|
+ let num2 = Number(bb.replaceAll(/[^0-9]/g, ""));
|
|
|
+ return num1 - num2;
|
|
|
+ } else {
|
|
|
+ return aa.localeCompare(bb);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
createTableData();
|
|
|
});
|
|
|
};
|
|
@@ -71,9 +86,25 @@ const createTableData = () => {
|
|
|
new Set(data.value.map((item: any) => item.subjectCode))
|
|
|
);
|
|
|
let arr = [];
|
|
|
+ let devices = Array.from(new Set(data.value.map((item: any) => item.device)));
|
|
|
+ let firstRow: any = {};
|
|
|
+ for (let i = 0; i < devices.length; i++) {
|
|
|
+ let device = devices[i];
|
|
|
+ let columnTotal = data.value.reduce((total: number, item: any) => {
|
|
|
+ return total + (item.device == device ? item.answerScanCount : 0);
|
|
|
+ }, 0);
|
|
|
+ firstRow[device] = columnTotal;
|
|
|
+ }
|
|
|
+ firstRow.total = data.value.reduce((total: number, item: any) => {
|
|
|
+ return total + (item.answerScanCount | 0);
|
|
|
+ }, 0);
|
|
|
+ arr.push(firstRow);
|
|
|
for (let i = 0; i < subjectCodes.length; i++) {
|
|
|
let code = subjectCodes[i];
|
|
|
let row: any = {};
|
|
|
+ row.total = data.value.reduce((total: number, item: any) => {
|
|
|
+ return total + (item.subjectCode == code ? item.answerScanCount : 0);
|
|
|
+ }, 0);
|
|
|
for (let j = 0; j < data.value.length; j++) {
|
|
|
let item: any = data.value[j];
|
|
|
if (item.subjectCode == code) {
|
|
@@ -91,11 +122,14 @@ const findDeviceName = (deviceCode: string) => {
|
|
|
};
|
|
|
const columns = computed(() => {
|
|
|
let devices = Array.from(new Set(data.value.map((item: any) => item.device)));
|
|
|
- let columns = devices.map((item) => ({
|
|
|
+ let columns: any = devices.map((item) => ({
|
|
|
title: findDeviceName(item),
|
|
|
dataIndex: item,
|
|
|
}));
|
|
|
- columns.unshift({ title: "科目", dataIndex: "subjectName" });
|
|
|
+ columns.unshift(
|
|
|
+ { title: "科目", dataIndex: "subjectName", width: 120, fixed: "left" },
|
|
|
+ { title: "总量", dataIndex: "total", width: 60 }
|
|
|
+ );
|
|
|
return columns;
|
|
|
});
|
|
|
onMounted(() => {
|