Pārlūkot izejas kodu

paper list - ui cc

abpcoder 2 nedēļas atpakaļ
vecāks
revīzija
e504977f65

+ 89 - 1
back-ui/src/views/dz/papers/components/list-exact-hand.vue

@@ -1,8 +1,96 @@
 <template>
-
+    <el-form ref="queryRef" :model="queryParams" :rules="rules" label-width="68px" inline>
+        <el-form-item label="批次" prop="batchId">
+            <el-select v-model="batchId" clearable @change="handleQuery" style="width: 172px">
+                <el-option v-for="b in batchList" :label="b.name" :value="b.batchId"/>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="考生类型" prop="examType">
+            <el-select v-model="examType" clearable @change="handleQuery" style="width: 172px">
+                <el-option v-for="e in examTypes" :label="e.dictLabel" :value="e.dictValue"/>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="院校">
+            <el-select v-model="universityId" clearable @change="handleQuery" style="width: 172px">
+                <el-option v-for="u in universities" :label="u.name" :value="u.id"/>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="专业组">
+            <el-select v-model="majorGroup" clearable @change="handleQuery" style="width: 172px">
+                <el-option v-for="g in majorGroups" :label="g" :value="g"/>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="专业">
+            <el-select v-model="majorPlanId" clearable @change="handleQuery" style="width: 172px">
+                <el-option v-for="m in majors" :label="m.majorName" :value="m.id"/>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="班级" prop="classId">
+            <el-select v-model="classId" clearable @change="handleQuery" style="width: 172px">
+                <el-option v-for="c in classList" :label="c.name" :value="c.classId"/>
+            </el-select>
+        </el-form-item>
+        <el-form-item>
+            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+<!--            <el-button icon="Refresh" @click="resetQuery">重置</el-button>-->
+        </el-form-item>
+    </el-form>
+    <Table :data="list" :columns="columns" :actions="actions" @get-list="getList" @action="handleAction" />
+    <el-drawer v-model="drawer" title="班级详情" size="1000px">
+        <class-detail v-if="drawer" :state="queryParams.state" exact-mode />
+    </el-drawer>
 </template>
 
 <script setup name="ListExactHand">
+import consts from "@/utils/consts.js";
+import {useProvidePaperList} from "@/views/dz/papers/hooks/usePaperList.js";
+import {useProvidePaperExactCondition} from "@/views/dz/papers/hooks/usePaperExactCondition.js";
+import Table from "@/components/Table/index.vue";
+import ClassDetail from "@/views/dz/papers/components/plugs/class-detail.vue";
+
+const columns = [
+    {label: '组卷类型', prop: 'buildType'},
+    {label: '班级', prop: 'className'},
+    {label: '批次', prop: 'batchName'},
+    {label: '班级人数', prop: 'total'},
+    ...consts.config.exactColumns.slice(0, 3)
+]
+const actions = [
+    {label: '查看详情', key: 'detail', permission: ['']}
+]
+
+const drawer = ref(false)
+const type = consts.enums.buildType.ExactHand
+const {
+    batchList,
+    batchId,
+    examTypes,
+    examType,
+    universityId,
+    universities,
+    majorGroup,
+    majorGroups,
+    majorPlanId,
+    majors,
+    conditionArgs
+} = useProvidePaperExactCondition(type)
+const classId = ref('')
+const queryParams = computed(() => ({
+    ...conditionArgs.value,
+    classId
+}))
+const {rules, handleQuery, resetQuery, list, total, getList, classList} = useProvidePaperList(queryParams)
+
+const handleAction = function (action, row) {
+    switch (action.key) {
+        case "detail":
+            drawer.value = true
+            break;
+        default:
+            throw new Error(`Action key '${action.key}' not support.`)
+            break
+    }
+}
 </script>
 
 <style scoped>

+ 1 - 1
back-ui/src/views/dz/papers/components/list-exact-intelligent.vue

@@ -12,7 +12,7 @@
         </el-form-item>
         <el-form-item>
             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
+<!--            <el-button icon="Refresh" @click="resetQuery">重置</el-button>-->
         </el-form-item>
     </el-form>
     <Table :data="list" :columns="columns" :actions="actions" @get-list="getList" @action="handleAction" />

+ 77 - 1
back-ui/src/views/dz/papers/components/list-full-hand.vue

@@ -1,8 +1,84 @@
 <template>
-
+    <el-form ref="queryRef" :model="queryParams" :rules="rules" label-width="68px" inline>
+        <el-form-item label="批次" prop="batchId">
+            <el-select v-model="batchId" clearable @change="handleQuery" style="width: 172px">
+                <el-option v-for="b in batchList" :label="b.name" :value="b.batchId"/>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="考生类型" prop="examType">
+            <el-select v-model="examType" clearable @change="handleQuery" style="width: 172px">
+                <el-option v-for="e in examTypes" :label="e.dictLabel" :value="e.dictValue"/>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="科目" prop="subjectId">
+            <el-select v-model="subjectId" clearable @change="handleQuery" style="width: 172px">
+                <el-option-group v-for="g in groupedSubjects" :label="g.label">
+                    <el-option v-for="s in g.items" :label="s.subjectName" :value="s.subjectId"/>
+                </el-option-group>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="班级" prop="classId">
+            <el-select v-model="classId" clearable @change="handleQuery" style="width: 172px">
+                <el-option v-for="c in classList" :label="c.name" :value="c.classId"/>
+            </el-select>
+        </el-form-item>
+        <el-form-item>
+            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+<!--            <el-button icon="Refresh" @click="resetQuery">重置</el-button>-->
+        </el-form-item>
+    </el-form>
+    <Table :data="list" :columns="columns" :actions="actions" @get-list="getList" @action="handleAction"/>
+    <el-drawer v-model="drawer" title="班级详情" size="1000px">
+        <class-detail v-if="drawer" :state="queryParams.state" exact-mode/>
+    </el-drawer>
 </template>
 
 <script setup name="ListFullHand">
+import consts from "@/utils/consts.js";
+import {useProvidePaperFullCondition} from "@/views/dz/papers/hooks/usePaperFullCondition.js";
+import {useProvidePaperList} from "@/views/dz/papers/hooks/usePaperList.js";
+import Table from "@/components/Table/index.vue";
+import ClassDetail from "@/views/dz/papers/components/plugs/class-detail.vue";
+
+const columns = [
+    {label: '组卷类型', prop: 'buildType'},
+    {label: '班级', prop: 'className'},
+    {label: '批次', prop: 'batchName'},
+    {label: '班级人数', prop: 'total'},
+    ...consts.config.fullColumns
+]
+const actions = [
+    {label: '查看详情', key: 'detail', permission: ['']}
+]
+
+const drawer = ref(false)
+const type = consts.enums.buildType.FullHand
+const {
+    batchList,
+    batchId,
+    examTypes,
+    examType,
+    groupedSubjects,
+    subjectId,
+    conditionArgs
+} = useProvidePaperFullCondition(type)
+const classId = ref('')
+const queryParams = computed(() => ({
+    ...conditionArgs.value,
+    classId
+}))
+const {rules, handleQuery, resetQuery, list, total, getList, classList} = useProvidePaperList(queryParams)
+
+const handleAction = function (action, row) {
+    switch (action.key) {
+        case "detail":
+            drawer.value = true
+            break;
+        default:
+            throw new Error(`Action key '${action.key}' not support.`)
+            break
+    }
+}
 </script>
 
 <style scoped>

+ 12 - 12
back-ui/src/views/dz/papers/components/list-full-intelligent.vue

@@ -24,12 +24,12 @@
         </el-form-item>
         <el-form-item>
             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
+<!--            <el-button icon="Refresh" @click="resetQuery">重置</el-button>-->
         </el-form-item>
     </el-form>
-    <Table :data="list" :columns="columns" :actions="actions" @get-list="getList" @action="handleAction" />
+    <Table :data="list" :columns="columns" :actions="actions" @get-list="getList" @action="handleAction"/>
     <el-drawer v-model="drawer" title="班级详情" size="1000px">
-        <class-detail v-if="drawer" :state="queryParams.state" exact-mode />
+        <class-detail v-if="drawer" :state="queryParams.state" exact-mode/>
     </el-drawer>
 </template>
 
@@ -40,14 +40,6 @@ import {useProvidePaperFullCondition} from "@/views/dz/papers/hooks/usePaperFull
 import Table from '@/components/Table/index.vue';
 import ClassDetail from "@/views/dz/papers/components/plugs/class-detail.vue";
 
-const options = {
-    queryDefine: {
-        batchId: '',
-        examType: '',
-        subjectId: '',
-        classId: ''
-    }
-}
 const columns = [
     {label: '组卷类型', prop: 'buildType'},
     {label: '班级', prop: 'className'},
@@ -61,7 +53,15 @@ const actions = [
 
 const drawer = ref(false)
 const type = consts.enums.buildType.FullIntelligent
-const {batchList, batchId, examTypes, examType, groupedSubjects, subjectId, conditionArgs} = useProvidePaperFullCondition(type)
+const {
+    batchList,
+    batchId,
+    examTypes,
+    examType,
+    groupedSubjects,
+    subjectId,
+    conditionArgs
+} = useProvidePaperFullCondition(type)
 const classId = ref('')
 const queryParams = computed(() => ({
     ...conditionArgs.value,

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

@@ -14,7 +14,9 @@
                 </el-form-item>
                 <el-form-item label="科目">
                     <el-select v-model="subjectId" clearable style="width: 227px">
-                        <el-option v-for="s in subjectList" :label="s.subjectName" :value="s.subjectId"/>
+                        <el-option-group v-for="g in groupedSubjects" :label="g.label">
+                            <el-option v-for="s in g.items" :label="s.subjectName" :value="s.subjectId"/>
+                        </el-option-group>
                     </el-select>
                 </el-form-item>
             </el-form>
@@ -54,6 +56,7 @@ const {
     examTypes,
     subjectId,
     subjectList,
+    groupedSubjects,
     onConditionReady
 } = useProvidePaperFullCondition(type)
 const {selectedClasses, classList, loadClassStatistic} = useProvidePaperClassStatisticCondition()