|
@@ -67,35 +67,36 @@ const search = () => {
|
|
|
});
|
|
|
};
|
|
|
const createTableData = () => {
|
|
|
- let deviceNames = Array.from(
|
|
|
- new Set(data.value.map((item: any) => item.deviceName))
|
|
|
- );
|
|
|
- let subjectNames = Array.from(
|
|
|
- new Set(data.value.map((item: any) => item.subjectName))
|
|
|
+ let subjectCodes = Array.from(
|
|
|
+ new Set(data.value.map((item: any) => item.subjectCode))
|
|
|
);
|
|
|
let arr = [];
|
|
|
- for (let i = 0; i < subjectNames.length; i++) {
|
|
|
- let sName = subjectNames[i];
|
|
|
- let obj: any = {};
|
|
|
- for (let j = 0; j < deviceNames.length; j++) {
|
|
|
- let filter: any = data.value.filter((item: any) => {
|
|
|
- return item.deviceName == deviceNames[j] && item.subjectName == sName;
|
|
|
- });
|
|
|
- obj[sName] = filter.length ? filter[0]?.answerScanCount : "";
|
|
|
- obj.subjectName = sName;
|
|
|
+ for (let i = 0; i < subjectCodes.length; i++) {
|
|
|
+ let code = subjectCodes[i];
|
|
|
+ let row: any = {};
|
|
|
+ for (let j = 0; j < data.value.length; j++) {
|
|
|
+ let item: any = data.value[j];
|
|
|
+ if (item.subjectCode == code) {
|
|
|
+ row[item.device] = item.answerScanCount;
|
|
|
+ row.subjectName = item.subjectName;
|
|
|
+ }
|
|
|
}
|
|
|
- arr.push(obj);
|
|
|
+ arr.push(row);
|
|
|
}
|
|
|
tableData.value = arr;
|
|
|
};
|
|
|
+const findDeviceName = (deviceCode: string) => {
|
|
|
+ let find: any = data.value.find((item: any) => item.device == deviceCode);
|
|
|
+ return find ? find.deviceName : "";
|
|
|
+};
|
|
|
const columns = computed(() => {
|
|
|
- let arr = data.value.map((item: any) => {
|
|
|
- return {
|
|
|
- title: item.deviceName,
|
|
|
- dataIndex: item.subjectName,
|
|
|
- };
|
|
|
- });
|
|
|
- return [{ title: "科目", dataIndex: "subjectName" }, ...arr];
|
|
|
+ let devices = Array.from(new Set(data.value.map((item: any) => item.device)));
|
|
|
+ let columns = devices.map((item) => ({
|
|
|
+ title: findDeviceName(item),
|
|
|
+ dataIndex: item,
|
|
|
+ }));
|
|
|
+ columns.unshift({ title: "科目", dataIndex: "subjectName" });
|
|
|
+ return columns;
|
|
|
});
|
|
|
onMounted(() => {
|
|
|
search();
|