浏览代码

fix 裁切设置数量少于总的裁切图

Michael Wang 3 年之前
父节点
当前提交
d6c6b044bf
共有 2 个文件被更改,包括 15 次插入2 次删除
  1. 8 1
      src/features/mark/CommonMarkBody.vue
  2. 7 1
      src/utils/utils.ts

+ 8 - 1
src/features/mark/CommonMarkBody.vue

@@ -182,7 +182,14 @@ async function processSliceConfig() {
 
   const images = [];
   // 必须要先加载一遍,把“选择整图”的宽高重置后,再算总高度
-  store.currentTask.sliceConfig.length = store.currentTask.sliceUrls.length;
+  // 错误的搞法,张莹坚持要用
+  const sliceNum = store.currentTask.sliceUrls.length;
+  if (store.currentTask.sliceConfig.some((v) => v.i > sliceNum)) {
+    console.warn("裁切图设置的数量小于该学生的总图片数量");
+  }
+  store.currentTask.sliceConfig = store.currentTask.sliceConfig.filter(
+    (v) => v.i <= sliceNum
+  );
   for (const sliceConfig of store.currentTask.sliceConfig) {
     const url = store.currentTask.sliceUrls[sliceConfig.i - 1];
     const image = await loadImage(url);

+ 7 - 1
src/utils/utils.ts

@@ -178,7 +178,13 @@ export async function preDrawImage(_currentTask: Task) {
 
   if (hasSliceConfig) {
     // 必须要先加载一遍,把“选择整图”的宽高重置后,再算总高度
-    _currentTask.sliceConfig.length = _currentTask.sliceUrls.length;
+    const sliceNum = _currentTask.sliceUrls.length;
+    if (_currentTask.sliceConfig.some((v) => v.i > sliceNum)) {
+      console.warn("裁切图设置的数量小于该学生的总图片数量");
+    }
+    _currentTask.sliceConfig = _currentTask.sliceConfig.filter(
+      (v) => v.i <= sliceNum
+    );
     for (const sliceConfig of _currentTask.sliceConfig) {
       const url = _currentTask.sliceUrls[sliceConfig.i - 1];
       const image = await loadImage(url);