Selaa lähdekoodia

双评轨迹版本

刘洋 2 vuotta sitten
vanhempi
commit
a9418f613d

+ 3 - 25
src/api/api.ts

@@ -1,4 +1,3 @@
-// @ts-nocheck
 import { httpApp } from "@/plugins/axiosApp";
 
 export function login() {
@@ -21,7 +20,7 @@ export function getStudents(
   pageSize: number,
   params: any
 ) {
-  const form = {
+  const form:any = {
     examId: examId,
     pageNumber: pageNumber,
     pageSize: pageSize,
@@ -36,34 +35,13 @@ export function getStudents(
   return httpApp.post("/api/exam/students", new URLSearchParams(form));
 }
 
-export function getStudentsWithSlice(
-  examId: number,
-  pageNumber: number,
-  pageSize: number,
-  params: any
-) {
-  const form = {
-    examId: examId,
-    pageNumber: pageNumber,
-    pageSize: pageSize,
-  };
-  if (params != undefined) {
-    for (const key in params) {
-      if (params[key] && params[key] != "") {
-        form[key] = params[key];
-      }
-    }
-  }
-  return httpApp.post("/api/exam/students/slice", new URLSearchParams(form));
-}
-
-export function countStudents(examId: number, params) {
+export function countStudents(examId: number, params:any) {
   params = params || {};
   params.examId = examId;
   return httpApp.post("/api/exam/students/count", new URLSearchParams(params));
 }
 
-export function getPackages(examId, upload, withUrl) {
+export function getPackages(examId:number, upload:any, withUrl:any) {
   let uri = "/api/package/count/" + examId;
   const param = [];
   if (upload != undefined) {

+ 0 - 35
src/features/Image/Image.vue

@@ -65,27 +65,6 @@
         </td>
       </tr>
       <template v-if="type === '1'">
-        <tr id="number-of-files">
-          <th>文件分批存放:</th>
-          <td>
-            <div class="input-radio">
-              <a-radio-group name="radioGroup" v-model:value="fileNumberSplit">
-                <a-radio :value="true">是</a-radio>
-                <a-radio :value="false">否</a-radio>
-              </a-radio-group>
-            </div>
-          </td>
-        </tr>
-        <tr v-if="fileNumberSplit">
-          <th></th>
-          <td style="padding-top: 0">
-            <div class="number-limit">
-              每个子文件夹存放&nbsp;
-              <a-input-number v-model:value="fileNumberLimits" :min="1" />
-              &nbsp;张图片
-            </div>
-          </td>
-        </tr>
         <tr id="watermark-select">
           <th>添加分数水印:</th>
           <td>
@@ -209,8 +188,6 @@ let template = ref("");
 let dir = ref("");
 let append = ref(false);
 let failover = ref(true);
-let fileNumberSplit = ref(false);
-let fileNumberLimits = ref(null);
 let watermark = ref(true);
 let trackMode = ref("");
 let examNumber = ref("");
@@ -225,8 +202,6 @@ if (config) {
   dir.value = config.dir;
   append.value = config.append;
   failover.value = config.failover;
-  fileNumberSplit.value = config.fileNumberSplit;
-  fileNumberLimits.value = config.fileNumberLimits;
   watermark.value = config.watermark;
   trackMode.value = config.trackMode;
   examNumber.value = config.examNumber || "";
@@ -273,10 +248,6 @@ const start = (e: MouseEvent) => {
     message.info("请填写图片转存规则");
     return false;
   }
-  if (fileNumberSplit.value && !fileNumberLimits.value) {
-    message.info("请填写每个文件夹存放的图片数量");
-    return false;
-  }
   if (type.value === "1") {
     if (!x.value) {
       message.info("请填写水印起始位置(横向)");
@@ -298,8 +269,6 @@ const start = (e: MouseEvent) => {
     dir: dir.value.trim(),
     append: append.value,
     failover: failover.value,
-    fileNumberSplit: fileNumberSplit.value,
-    fileNumberLimits: fileNumberLimits.value,
     watermark: watermark.value,
     trackMode: trackMode.value,
     examNumber: examNumber.value.trim(),
@@ -416,8 +385,4 @@ const mouseUpHandler = () => {
 .water-mark {
   position: absolute;
 }
-.number-limit {
-  display: flex;
-  align-items: center;
-}
 </style>

+ 7 - 25
src/features/ImageDownload/ImageDownload.vue

@@ -20,7 +20,7 @@ import { onMounted, onUnmounted, ref } from "vue";
 import { Modal } from "ant-design-vue";
 import { useRouter } from "vue-router";
 const router = useRouter();
-import { countStudents, getPackages, getStudentsWithSlice } from "@/api/api";
+import { countStudents, getPackages, getStudents } from "@/api/api";
 import { httpApp } from "@/plugins/axiosApp";
 import mustache from "mustache";
 const path = require("path");
@@ -97,19 +97,18 @@ onMounted(async () => {
       });
       totalCount.value = res.data;
       let totalImageDownloadTime = 0;
-      let curFileIndex = 0;
       for (
         let pageNumber = 0;
         pageNumber * 10 < totalCount.value;
         pageNumber++
       ) {
-        const resStudents = await getStudentsWithSlice(
+        const resStudents = await getStudents(
           store.env.examId,
           pageNumber + 1,
           10,
           {
             upload: true,
-            withSliceUrl: true,
+            withSheetUrl: true,
             withScoreDetail: config.watermark,
             withMarkTrack: config.watermark,
             withGroupScoreTrack: config.watermark && config.trackMode === "1",
@@ -120,16 +119,16 @@ onMounted(async () => {
         students = resStudents.data;
 
         const urls = students.reduce(
-          (accumulator, stu) => accumulator.concat(stu.sliceUrls),
+          (accumulator, stu) => accumulator.concat(stu.sheetUrls),
           []
         );
         cacheImages(urls);
 
         for (const student of students) {
-          for (const sheetUrl of student.sliceUrls) {
+          for (const sheetUrl of student.sheetUrls) {
             if (stopSignal) return;
             try {
-              const index = student.sliceUrls.indexOf(sheetUrl);
+              const index = student.sheetUrls.indexOf(sheetUrl);
               student.index = index + 1;
               student.examId = store.env.examId;
               // const filePath = window.electron.join(
@@ -147,7 +146,6 @@ onMounted(async () => {
                 // console.log(urls);
                 continue;
               }
-              // console.log("filePath3:", filePath);
               console.debug("start ", sheetUrl);
               const imageDownloadStartTime = Date.now();
               const imageRes = await httpApp.get(sheetUrl, {
@@ -164,20 +162,6 @@ onMounted(async () => {
               // console.log(imageRes.data);
               // console.log(await imageRes.data.arrayBuffer());
               // console.log(new Uint8Array(await imageRes.data.arrayBuffer()));
-              console.log("curFileIndex:", curFileIndex);
-              let folderName = "";
-              if (config.fileNumberSplit) {
-                folderName = `/${
-                  Math.floor(curFileIndex / config.fileNumberLimits) *
-                    config.fileNumberLimits +
-                  1
-                }~${
-                  Math.floor(curFileIndex / config.fileNumberLimits) *
-                    config.fileNumberLimits +
-                  config.fileNumberLimits
-                }`;
-                console.log("folderName:", folderName);
-              }
               await window.electron.addWatermark(
                 storePassedToNodeJs,
                 arrayBuffer,
@@ -188,10 +172,8 @@ onMounted(async () => {
                 index + 1,
                 config.trackMode,
                 config.x,
-                config.y,
-                folderName
+                config.y
               );
-              curFileIndex++;
             } catch (error) {
               errorCount.value += 1;
               if (config.failover) {

+ 1 - 8
src/lib/watermark.ts

@@ -17,15 +17,8 @@ export async function addWatermark(
   index: number,
   trackMode: string,
   x = 0.01,
-  y = 0.03,
-  folderName = ""
+  y = 0.03
 ): Promise<boolean> {
-  if (folderName) {
-    const lastIndex: number = filePath[1].lastIndexOf("/");
-    const preStr: any = filePath[1].slice(0, lastIndex);
-    const nextStr: any = filePath[1].slice(lastIndex);
-    filePath[1] = preStr + folderName + nextStr;
-  }
   const file = path.join(...filePath);
   if (
     index !== 1 &&

+ 0 - 2
src/types/index.ts

@@ -39,8 +39,6 @@ export interface Store {
       dir: string;
       append: boolean;
       failover: boolean;
-      fileNumberSplit: boolean;
-      fileNumberLimits: any;
       watermark: boolean;
       trackMode: string;
       examNumber?: string;