Selaa lähdekoodia

build paper auto cc

abpcoder 1 kuukausi sitten
vanhempi
commit
5136f24be7

+ 6 - 1
back-ui/src/utils/index.js

@@ -387,4 +387,9 @@ export function camelCase(str) {
 export function isNumberStr(str) {
   return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str)
 }
- 
+
+export function sleep(delay) {
+  return new Promise((resolve) => {
+    setTimeout(() => resolve(), delay)
+  })
+}

+ 21 - 1
back-ui/src/views/dz/papers/components/paper-question-intelligent.vue

@@ -26,6 +26,9 @@ import {useInjectPaperFullCondition} from "@/views/dz/papers/hooks/usePaperFullC
 import {useProvidePaperQuestionCondition} from "@/views/dz/papers/hooks/usePaperQuestionCondition.js";
 import {useInjectLoading} from "@/views/hooks/useLoading.js";
 import {ElMessage} from "element-plus";
+import {buildPaperAuto} from "@/api/dz/papers.js";
+import {sleep} from "@/utils/index.js";
+import router from "@/router/index.js";
 
 const props = defineProps({
     allowMultiple: Boolean,
@@ -37,12 +40,29 @@ const {knowledgeCheckNodes, removeKnowledge, paperArgs} = props.exactMode ? useI
 const {qTypes} = useProvidePaperQuestionCondition(props.exactMode, props.allowMultiple, true)
 const {loading} = useInjectLoading()
 
-const buildPaper = function () {
+const buildPaper = async function () {
     // validation
     const {batchId} = paperArgs.value
     if (!batchId) return ElMessage.error('请选择批次')
     if (!knowledgeCheckNodes.value.length) return ElMessage.error('请选择知识点')
     if (!qTypes.value.length || qTypes.value.every(t => !t.count)) return ElMessage.error('请填写题量')
+
+    // build
+    const commit = {
+        ...paperArgs.value,
+        paperDef: {
+            knowIds: knowledgeCheckNodes.value.map(k => k.id),
+            types: qTypes.value.map(t => ({
+                type: t.dictValue,
+                title: t.dictLabel,
+                count: t.count
+            }))
+        }
+    }
+    await buildPaperAuto(commit)
+    ElMessage.success('生成成功,即将打开组卷记录')
+    sleep(2000)
+    router.push('/paper/list')
 }
 </script>