刘洋 7 tháng trước cách đây
mục cha
commit
1ab846ce5a

+ 9 - 5
src/render/views/ScanManage/ImageView.vue

@@ -195,7 +195,7 @@ function parseStudentPage(student: any) {
   });
 }
 const loading = ref(false);
-const _getStuCardDetail = () => {
+const _getStuCardDetail = (bool?: boolean) => {
   loading.value = true;
   getStuCardDetail({
     batchId: curBatch.value.value,
@@ -204,7 +204,7 @@ const _getStuCardDetail = () => {
     .then((res: any) => {
       curStuCardData.value = res || {};
       parseStudentPage(curStuCardData.value);
-      selectPage(0);
+      selectPage(bool ? dataList.value.length - 1 : 0);
     })
     .finally(() => {
       loading.value = false;
@@ -257,7 +257,7 @@ const curStu = ref({
 const curStuCardData = ref({});
 const dataList = ref<any>([]);
 
-const chooseLeft = (item: any, index: number) => {
+const chooseLeft = (item: any, index: number, bool?: boolean) => {
   if (loading.value) return;
   if (listType.value === "level1") {
     curSubject.value = { value: item.subjectCode, label: item.subjectName };
@@ -276,7 +276,7 @@ const chooseLeft = (item: any, index: number) => {
       studentId: item.studentId,
       studentName: item.studentName,
     };
-    _getStuCardDetail();
+    _getStuCardDetail(bool);
   }
 };
 const toggleListType = (type: string, num: number) => {
@@ -374,7 +374,11 @@ async function onPrevPage() {
       window.$message.error("没有上一张了");
       return;
     } else {
-      chooseLeft(leftList.value[activeIndex.value - 1], activeIndex.value - 1);
+      chooseLeft(
+        leftList.value[activeIndex.value - 1],
+        activeIndex.value - 1,
+        true
+      );
       return;
     }
   }

+ 21 - 2
src/render/views/ScanManage/WorkStatistics.vue

@@ -71,9 +71,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 +107,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(() => {