Przeglądaj źródła

控制自动对切题卡: enable split

Michael Wang 3 lat temu
rodzic
commit
051cd3039d

+ 2 - 1
src/features/arbitrate/Arbitrate.vue

@@ -76,7 +76,7 @@ async function updateSetting() {
     subjectCode,
     groupNumber
   );
-  const { examType, fileServer, subject, userName, splitConfig } =
+  const { examType, fileServer, subject, userName, splitConfig, enableSplit } =
     settingRes.data;
   store.initSetting({
     examType,
@@ -84,6 +84,7 @@ async function updateSetting() {
     subject,
     userName,
     splitConfig,
+    enableSplit,
   });
   store.setting.selective = settingRes.data.selective;
 

+ 2 - 1
src/features/library/inspect/LibraryInspect.vue

@@ -73,7 +73,7 @@ async function updateClearTask() {
 async function updateSetting() {
   const settingRes = await getAdminPageSetting(subjectCode);
 
-  const { examType, fileServer, subject, userName, splitConfig } =
+  const { examType, fileServer, subject, userName, splitConfig, enableSplit } =
     settingRes.data;
   store.initSetting({
     examType,
@@ -81,6 +81,7 @@ async function updateSetting() {
     subject,
     userName,
     splitConfig,
+    enableSplit,
   });
 
   if (store.setting.subject?.paperUrl && store.isMultiMedia) {

+ 2 - 1
src/features/library/libraryTrack/LibraryTrack.vue

@@ -30,7 +30,7 @@ let subjectCode = route.query.subjectCode;
 
 async function updateSetting() {
   const settingRes = await getAdminPageSetting(subjectCode as string);
-  const { examType, fileServer, subject, userName, splitConfig } =
+  const { examType, fileServer, subject, userName, splitConfig, enableSplit } =
     settingRes.data;
   store.initSetting({
     examType,
@@ -38,6 +38,7 @@ async function updateSetting() {
     subject,
     userName,
     splitConfig,
+    enableSplit,
   });
 
   if (store.setting.subject?.paperUrl && store.isMultiMedia) {

+ 2 - 1
src/features/library/quality/Quality.vue

@@ -40,7 +40,7 @@ const { subjectCode, markerId, markerScore } = route.query as {
 
 async function updateSetting() {
   const settingRes = await getAdminPageSetting(subjectCode);
-  const { examType, fileServer, subject, userName, splitConfig } =
+  const { examType, fileServer, subject, userName, splitConfig, enableSplit } =
     settingRes.data;
   store.initSetting({
     examType,
@@ -48,6 +48,7 @@ async function updateSetting() {
     subject,
     userName,
     splitConfig,
+    enableSplit,
   });
 
   if (store.setting.subject?.paperUrl && store.isMultiMedia) {

+ 4 - 0
src/features/mark/CommonMarkBody.vue

@@ -309,6 +309,10 @@ async function processSplitConfig() {
   }
 
   // 裁切块,可能是一块,两块,三块... [start, width ...] => [0, 0.3] | [0, 0.55, 0.45, 0.55] | [0, 0.35, 0.33, 0.35, 0.66, 0.35]
+  // 如果拒绝裁切,则保持整卷
+  if (!store.setting.enableSplit) {
+    store.setting.splitConfig = [0, 1];
+  }
   const splitConfigPairs = store.setting.splitConfig
     .map((v, index, ary) => (index % 2 === 0 ? [v, ary[index + 1]] : false))
     .filter((v) => v) as unknown as Array<[number, number]>;

+ 2 - 1
src/features/student/studentInspect/StudentInspect.vue

@@ -72,7 +72,7 @@ async function updateClearTask() {
 
 async function updateSetting() {
   const settingRes = await getAdminPageSetting(subjectCode);
-  const { examType, fileServer, subject, userName, splitConfig } =
+  const { examType, fileServer, subject, userName, splitConfig, enableSplit } =
     settingRes.data;
   store.initSetting({
     examType,
@@ -80,6 +80,7 @@ async function updateSetting() {
     subject,
     userName,
     splitConfig,
+    enableSplit,
   });
   if (store.setting.subject?.paperUrl && store.isMultiMedia) {
     await getPaper(store);

+ 2 - 1
src/features/student/studentTrack/StudentTrack.vue

@@ -29,7 +29,7 @@ let subjectCode = route.query.subjectCode as string;
 
 async function updateSetting() {
   const settingRes = await getAdminPageSetting(subjectCode);
-  const { examType, fileServer, subject, userName, splitConfig } =
+  const { examType, fileServer, subject, userName, splitConfig, enableSplit } =
     settingRes.data;
   store.initSetting({
     examType,
@@ -37,6 +37,7 @@ async function updateSetting() {
     subject,
     userName,
     splitConfig,
+    enableSplit,
   });
   if (store.setting.subject?.paperUrl && store.isMultiMedia) {
     await getPaper(store);

+ 1 - 0
src/store/store.ts

@@ -12,6 +12,7 @@ export const useMarkStore = defineStore("mark", {
         sheetView: false,
         sheetConfig: [],
         enableAllZero: false,
+        enableSplit: true,
         fileServer: "",
         userName: "",
         subject: <Setting["subject"]>{},

+ 3 - 0
src/types/index.ts

@@ -56,6 +56,8 @@ export interface Setting {
   sheetConfig: Array<SingleSheetConfig>;
   /** 是否开启全零分 */
   enableAllZero: boolean;
+  /** 是否允许裁切 */
+  enableSplit: boolean;
   /** 图片服务地址 */
   fileServer: string;
   /** 评卷员姓名 */
@@ -111,6 +113,7 @@ export interface AdminPageSetting {
   };
   /** 使用裁切整图时的裁切配置 [0,1]|[0,0.3,0.25,0.55], */
   splitConfig: Array<number>;
+  enableSplit: boolean;
 }
 
 export interface AdminPageSettingForImport extends AdminPageSetting {