瀏覽代碼

发布成绩修改参数

bzkf3 1 年之前
父節點
當前提交
49ee66c06a
共有 1 個文件被更改,包括 51 次插入27 次删除
  1. 51 27
      src/pages/step/[id].vue

+ 51 - 27
src/pages/step/[id].vue

@@ -405,17 +405,36 @@ function judgeStepCompleted(val: unknown) {
   return (!!val) || (typeof val === 'object' && !!(val?.value))
 }
 
-function handleCompleteTask(gid: number, pid: number, cid: number, val?: unknown): Promise<any> {
+function handleCompleteTask(gid: number, pid: number, cid: number, val?: unknown, ext?: any): Promise<any> {
   const _ykl_lc_ = JSON.parse(sessionStorage.getItem('ykl_lc')!)
   _ykl_lc_.processList[gid][pid][cid] = val || 1
+  const reqData: any = {
+    ykl_id,
+    yk: {
+      ykl_lc: JSON.stringify(_ykl_lc_),
+    },
+  }
+  // 把ext上的属性合并到reqData上,考虑嵌套的情况
+  if (ext) {
+    Object.keys(ext).forEach((key) => {
+      if (typeof ext[key] === 'object') {
+        if (reqData[key]) {
+          reqData[key] = {
+            ...reqData[key],
+            ...ext[key],
+          }
+        }
+        else { reqData[key] = ext[key] }
+      }
+      else {
+        reqData[key] = ext[key]
+      }
+    })
+  }
+
   return request({
     url: '/yzy/kmksyjlc/save',
-    data: {
-      ykl_id,
-      yk: {
-        ykl_lc: JSON.stringify(_ykl_lc_),
-      },
-    },
+    data: reqData,
   }).then((res) => {
     if (res.code === '1') {
       ElMessage({
@@ -436,7 +455,7 @@ function handleCompleteTask(gid: number, pid: number, cid: number, val?: unknown
   })
 }
 
-async function handleJumpTask(gid: number, pid: number, idy: number) {
+async function handleJumpTask(gid: number, pid: number, idy: number, ext?: object) {
   // 验证任务是否完成
   if (judgeStepCompleted(stepsReactiveMap[gid][pid][idy])) {
     return ElMessage({
@@ -446,7 +465,7 @@ async function handleJumpTask(gid: number, pid: number, idy: number) {
     })
   }
   // stepsReactiveMap[gid][pid][idy] = 1
-  const res = await handleCompleteTask(gid, pid, idy)
+  const res = await handleCompleteTask(gid, pid, idy, 1, ext)
   if (res.code === '1') {
     if (pid !== stepsReactiveMap[gid].length - 1) {
       const line = lineList[gid][pid][idy]
@@ -461,9 +480,9 @@ onBeforeRouteLeave(() => {
   lineList.forEach(lines => lines.forEach(line => line.forEach(l => l?.hide('none'))))
 })
 
-function handleCompleteTaskAuto() {
+function handleCompleteTaskAuto(ext?: object) {
   const { gid, pid, cid } = JSON.parse(sessionStorage.getItem('StepId')!)
-  return handleJumpTask(gid, pid, cid)
+  return handleJumpTask(gid, pid, cid, ext)
 }
 
 const TaskEventMap: { [key: string]: () => void } = {
@@ -498,10 +517,10 @@ const TaskEventMap: { [key: string]: () => void } = {
     window.open(`BozeduYuejuan://${user.value.token},${ykl_lc.ze_id},${window.GLOBAL_CONFIG.yzy},upload_papers`, '_blank')
     handleCompleteTaskAuto()
   },
-  '压缩包上传情况': () => {
+  '压缩包上传情况': async () => {
+    await handleCompleteTaskAuto()
     // TODO: 需调整【压缩包】上传情况
     routerPush(`/process/ysb/${ykl_lc.ykl_id}/${ykl_lc.ze_id}`)
-    handleCompleteTaskAuto()
   },
   '答题卡二次扫描': () => {
     window.open(`BozeduYuejuan://${user.value.token},${ykl_lc.ze_id},${window.GLOBAL_CONFIG.yzy},review_papers`, '_blank')
@@ -519,10 +538,10 @@ const TaskEventMap: { [key: string]: () => void } = {
   '批阅任务分配': () => {
     windowPushState(`${window.GLOBAL_CONFIG.base}/taskassignment-liankao.html`)
   },
-  '阅卷': () => {
+  '阅卷': async () => {
+    await handleCompleteTaskAuto()
     // todo: 需调整【阅卷】
-    // windowPushState(`${window.GLOBAL_CONFIG.base}/single-review-liankao.html?ze_id=${ykl_lc.ze_id}`)
-    handleCompleteTaskAuto()
+    windowPushState(`${window.GLOBAL_CONFIG.base}/single-review-liankao.html?ze_id=${ykl_lc.ze_id}`)
   },
   '成绩发布': () => {
     let loading = false
@@ -546,7 +565,7 @@ const TaskEventMap: { [key: string]: () => void } = {
             })
             if (res0.code !== '1')
               throw new Error(res0.msg)
-            const res1 = await handleCompleteTaskAuto()
+            const res1 = await handleCompleteTaskAuto({ force: 1 })
             if (res1.code !== '1')
               throw new Error(res1.msg)
             ykl_lc.ykl_stat_ready = 2
@@ -563,18 +582,23 @@ const TaskEventMap: { [key: string]: () => void } = {
           console.log('正常发布')
           instance.cancelButtonLoading = loading = true
           try {
-            const res0 = await request({
-              url: '/yzy/kmksyjlc/save',
-              data: {
-                ykl_id,
-                yk: {
-                  ykl_sffbcj: 1,
-                },
+            // const res0 = await request({
+            //   url: '/yzy/kmksyjlc/save',
+            //   data: {
+            //     ykl_id,
+            //     yk: {
+            //       ykl_sffbcj: 1,
+            //     },
+            //   },
+            // })
+            // if (res0.code !== '1')
+            //   throw new Error(res0.msg)
+            const res1 = await handleCompleteTaskAuto({
+              force: 1,
+              yk: {
+                ykl_sffbcj: 1,
               },
             })
-            if (res0.code !== '1')
-              throw new Error(res0.msg)
-            const res1 = await handleCompleteTaskAuto()
             if (res1.code !== '1')
               throw new Error(res1.msg)
             ykl_lc.ykl_stat_ready = 1