2 Revize 9fdaeba137 ... 293b61b6f8

Autor SHA1 Zpráva Datum
  abpcoder 293b61b6f8 Merge branch 'master' of http://49.234.186.218:9000/root/ieplus před 1 dnem
  abpcoder 319fab9f3d built paper list před 1 dnem

+ 2 - 2
back-ui/src/views/dz/papers/components/paper-exact-hand.vue

@@ -42,7 +42,7 @@
             <question-hand exact-mode @submit="handleSubmit"/>
         </el-col>
     </el-row>
-    <built-paper ref="built" @send="handleSubmit" />
+    <built-paper-list ref="built" @send="handleSubmit" />
 </template>
 
 <script setup name="PaperExactHand">
@@ -57,7 +57,7 @@ import QuestionHand from "@/views/dz/papers/components/plugs/question-hand.vue";
 import {usePaperStorage} from "@/views/dz/papers/hooks/usePaperStorage.js";
 import {ElMessage} from "element-plus";
 import router from "@/router/index.js";
-import BuiltPaper from "@/views/dz/papers/components/plugs/built-paper.vue";
+import BuiltPaperList from "@/views/dz/papers/components/plugs/built-paper-list.vue";
 
 const type = consts.enums.buildType.ExactHand
 const {

+ 2 - 2
back-ui/src/views/dz/papers/components/paper-exact-intelligent.vue

@@ -17,7 +17,7 @@
     <div v-if="!hasBuiltPaper" class="text-center">
         <el-button type="primary" size="large" @click="handleSubmit">生成试卷</el-button>
     </div>
-    <built-paper ref="built" @send="handleSubmit" />
+    <built-paper-list ref="built" @send="handleSubmit" />
 </template>
 
 <script setup name="PaperExactIntelligent">
@@ -28,7 +28,7 @@ import ClassStatisticTable from "@/views/dz/papers/components/plugs/class-statis
 import {ElMessage} from "element-plus";
 import {buildPaperExactIntelligent} from "@/api/dz/papers.js";
 import {useInjectGlobalLoading} from "@/views/hooks/useGlobalLoading.js";
-import BuiltPaper from "@/views/dz/papers/components/plugs/built-paper.vue";
+import BuiltPaperList from "@/views/dz/papers/components/plugs/built-paper-list.vue";
 
 const type = consts.enums.buildType.ExactIntelligent
 const {batchId, batchList, onBatchReady} = useProvidePaperBatchCondition(type)

+ 2 - 2
back-ui/src/views/dz/papers/components/paper-full-hand.vue

@@ -34,7 +34,7 @@
             <question-hand @submit="handleSubmit"/>
         </el-col>
     </el-row>
-    <built-paper ref="built" @send="handleSubmit" />
+    <built-paper-list ref="built" @send="handleSubmit" />
 </template>
 
 <script setup name="PaperFullHand">
@@ -48,7 +48,7 @@ import {usePaperStorage} from "@/views/dz/papers/hooks/usePaperStorage.js";
 import ClassStatisticTable from "@/views/dz/papers/components/plugs/class-statistic-table.vue";
 import KnowledgeTree from "@/views/dz/papers/components/plugs/knowledge-tree.vue";
 import QuestionHand from "@/views/dz/papers/components/plugs/question-hand.vue";
-import BuiltPaper from "@/views/dz/papers/components/plugs/built-paper.vue";
+import BuiltPaperList from "@/views/dz/papers/components/plugs/built-paper-list.vue";
 
 const type = consts.enums.buildType.FullHand
 const {

+ 2 - 2
back-ui/src/views/dz/papers/components/paper-full-intelligent.vue

@@ -34,7 +34,7 @@
             <question-intelligent @submit="handleSubmit" />
         </el-col>
     </el-row>
-    <built-paper ref="built" @send="handleSubmit" />
+    <built-paper-list ref="built" @send="handleSubmit" />
 </template>
 
 <script setup name="PaperFullIntelligent">
@@ -48,7 +48,7 @@ import {useProvidePaperKnowledgeCondition} from "@/views/dz/papers/hooks/usePape
 import QuestionIntelligent from "@/views/dz/papers/components/plugs/question-intelligent.vue";
 import {ElMessage} from "element-plus";
 import {buildPaperFullIntelligent} from "@/api/dz/papers.js";
-import BuiltPaper from "@/views/dz/papers/components/plugs/built-paper.vue";
+import BuiltPaperList from "@/views/dz/papers/components/plugs/built-paper-list.vue";
 
 const type = consts.enums.buildType.FullIntelligent
 const {

+ 50 - 0
back-ui/src/views/dz/papers/components/plugs/built-paper-list.vue

@@ -0,0 +1,50 @@
+<template>
+    <div v-if="hasPaper">
+        <div class="flex justify-center items-center gap-5">
+            <el-button type="primary" size="large" @click="handleSend">发送试卷</el-button>
+            <el-button type="warning" size="large" plain @click="handleSendNew">重新生成</el-button>
+            <el-button type="danger" size="large" plain @click="handleSendForce">全部重新生成</el-button>
+        </div>
+        <el-collapse class="mt-5">
+            <built-paper v-for="p in papers" :paper="p" />
+        </el-collapse>
+    </div>
+</template>
+
+<script setup name="BuiltPaperList">
+import {ElMessage} from "element-plus";
+import {useInjectGlobalLoading} from "@/views/hooks/useGlobalLoading.js";
+import {getBuiltPaper} from "@/api/dz/papers.js";
+import BuiltPaper from "@/views/dz/papers/components/plugs/built-paper.vue";
+
+const emits = defineEmits(['send', 'send-new', 'send-force'])
+
+const {loading} = useInjectGlobalLoading()
+const papers = ref([])
+const hasPaper = computed(() => !!papers.value?.length)
+
+const loadBuiltPaper = async function (payload) {
+    const res = await getBuiltPaper(payload)
+    papers.value = [].concat(res.data)
+}
+
+const reset = function () {
+    papers.value = []
+}
+
+const handleSend = function () {
+    emits('send')
+}
+const handleSendNew = function () {
+    return ElMessage.info('开发中,敬请期待...')
+}
+const handleSendForce = function () {
+    return ElMessage.info('开发中,敬请期待...')
+}
+
+defineExpose({hasPaper, loadBuiltPaper, reset})
+</script>
+
+<style scoped>
+
+</style>

+ 26 - 60
back-ui/src/views/dz/papers/components/plugs/built-paper.vue

@@ -1,49 +1,36 @@
 <template>
-    <div v-if="hasPaper">
-        <div class="flex justify-center items-center gap-5">
-            <el-button type="primary" size="large" @click="handleSend">发送试卷</el-button>
-            <el-button type="warning" size="large" plain @click="handleSendNew">重新生成</el-button>
-            <el-button type="danger" size="large" plain @click="handleSendForce">全部重新生成</el-button>
-        </div>
-        <el-collapse class="mt-5">
-            <el-collapse-item title="1">
-                <template #title>
-                    <div slot="title" class="flex justify-between">
-                        <el-text>{{`已经存在试卷:${paper.paperName}`}}</el-text>
-                        <el-text type="primary">查看详情</el-text>
-                    </div>
-                </template>
-                <el-card v-for="(group, idx) in groupedQuestions" shadow="never" class="mb-5">
-                    <div slot="header" class="clearfix">
-                        <el-text class="font-bold">
-                            {{ numberToChinese(idx + 1) }}、{{ group.title }}(共{{ group.num }}题;共{{ group.score }}分)
-                        </el-text>
-                    </div>
-                    <div v-for="(q, i) in group.list" class="mb-5">
-                        <div>
-                            {{ i + 1 }}.
-                            <span style="color: #1890ff">题号:{{ q.id }}({{ q.score }}分)</span><span
-                            v-html="q.title"></span>
-                        </div>
-                    </div>
-                </el-card>
-            </el-collapse-item>
-        </el-collapse>
-    </div>
+    <el-collapse-item title="1">
+        <template #title>
+            <div slot="title" class="flex justify-between">
+                <el-text>{{ `已经存在试卷:${paper.paperName}` }}</el-text>
+                <el-text type="primary">查看详情</el-text>
+            </div>
+        </template>
+        <el-card v-for="(group, idx) in groupedQuestions" shadow="never" class="mb-5">
+            <div slot="header" class="clearfix">
+                <el-text class="font-bold">
+                    {{ numberToChinese(idx + 1) }}、{{ group.title }}(共{{ group.num }}题;共{{ group.score }}分)
+                </el-text>
+            </div>
+            <div v-for="(q, i) in group.list" class="mb-5">
+                <div>
+                    {{ i + 1 }}.
+                    <span style="color: #1890ff">题号:{{ q.id }}({{ q.score }}分)</span><span
+                    v-html="q.title"></span>
+                </div>
+            </div>
+        </el-card>
+    </el-collapse-item>
 </template>
 
 <script setup name="BuiltPaper">
-import {useInjectGlobalLoading} from "@/views/hooks/useGlobalLoading.js";
-import {getBuiltPaper} from "@/api/dz/papers.js";
 import {numberToChinese} from "@/utils/paper-helper.js";
-import {ElMessage} from "element-plus";
 
-const emits = defineEmits(['send', 'send-new', 'send-force'])
+const props = defineProps({
+    paper: Object
+})
 
-const {loading} = useInjectGlobalLoading()
-const paper = ref({})
-const questions = computed(() => paper.value?.questions || [])
-const hasPaper = computed(() => paper.value?.paperId || paper.value?.id)
+const questions = computed(() => props.paper?.questions || [])
 
 const groupedQuestions = computed(() => {
     const results = {}
@@ -58,27 +45,6 @@ const groupedQuestions = computed(() => {
         score: results[g].reduce((acc, current) => acc + current.score, 0)
     }))
 })
-
-const loadBuiltPaper = async function (payload) {
-    const res = await getBuiltPaper(payload)
-    paper.value = res.data
-}
-
-const reset = function () {
-    paper.value = {}
-}
-
-const handleSend = function () {
-    emits('send')
-}
-const handleSendNew = function () {
-    return ElMessage.info('开发中,敬请期待...')
-}
-const handleSendForce = function () {
-    return ElMessage.info('开发中,敬请期待...')
-}
-
-defineExpose({hasPaper, loadBuiltPaper, reset})
 </script>
 
 <style scoped>