浏览代码

feat: 导入学生结果

zhangjie 1 年之前
父节点
当前提交
f5d3224382
共有 2 个文件被更改,包括 55 次插入8 次删除
  1. 1 0
      src/constants/enumerate.js
  2. 54 8
      src/modules/base/views/ExamStudentManage.vue

+ 1 - 0
src/constants/enumerate.js

@@ -213,6 +213,7 @@ export const DATA_TASK_TYPE = {
   USER_IMPORT: "用户导入",
   //   STUDENT_IMPORT: "学生导入",
   BASIC_EXAM_STUDENT_IMPORT: "考生导入",
+  BASIC_EXAM_STUDENT_TEACHER_IMPORT: "任课老师导入",
   //   CLAZZ_IMPORT: "班级导入",
   QUESTION_MISSION_BATCH_CREATE: "批量新建命题任务",
   SAMPLE_EXPORT: "导出审核样本",

+ 54 - 8
src/modules/base/views/ExamStudentManage.vue

@@ -91,13 +91,39 @@
             @click="toImport"
             >导入</el-button
           >
-          <el-button
-            v-if="checkPrivilege('button', 'import')"
-            type="primary"
-            icon="el-icon-s-order"
-            @click="toDataTask"
-            >导入结果查询</el-button
+          <template
+            v-if="
+              checkPrivilege('button', 'import') ||
+              checkPrivilege('button', 'ImportTeacher')
+            "
           >
+            <el-button
+              v-if="taskTypes.length === 1"
+              type="primary"
+              icon="el-icon-s-order"
+              @click="toDataTask"
+            >
+              导入结果查询
+            </el-button>
+            <el-dropdown v-if="taskTypes.length > 1" @command="handleTaskType">
+              <el-button
+                type="primary"
+                icon="el-icon-s-order"
+                style="margin: 0 10px"
+              >
+                导入结果查询 <i class="el-icon-arrow-down el-icon--right"></i>
+              </el-button>
+              <el-dropdown-menu slot="dropdown">
+                <el-dropdown-item command="BASIC_EXAM_STUDENT_IMPORT"
+                  >考生导入</el-dropdown-item
+                >
+                <el-dropdown-item command="BASIC_EXAM_STUDENT_TEACHER_IMPORT"
+                  >任课老师导入</el-dropdown-item
+                >
+              </el-dropdown-menu>
+            </el-dropdown>
+          </template>
+
           <el-button
             v-if="checkPrivilege('button', 'add')"
             type="primary"
@@ -296,9 +322,12 @@
     ></import-file>
     <!-- data-task-dialog -->
     <data-task-dialog
-      v-if="checkPrivilege('button', 'import')"
+      v-if="
+        checkPrivilege('button', 'import') ||
+        checkPrivilege('button', 'ImportTeacher')
+      "
       ref="DataTaskDialog"
-      task-type="BASIC_EXAM_STUDENT_IMPORT"
+      :task-type="curTaskType"
     ></data-task-dialog>
   </div>
 </template>
@@ -343,6 +372,8 @@ export default {
       curRow: {},
       loading: false,
       download: false,
+      curTaskType: "BASIC_EXAM_STUDENT_IMPORT",
+      taskTypes: [],
       // import
       uploadUrl: "/api/admin/basic/exam_student/import",
       dfilename: "考生导入模板.xlsx",
@@ -351,6 +382,17 @@ export default {
       teacherDfilename: "任课老师导入模板.xlsx",
     };
   },
+  mounted() {
+    const taskTypes = [];
+    if (this.checkPrivilege("button", "import")) {
+      taskTypes.push("BASIC_EXAM_STUDENT_IMPORT");
+    }
+    if (this.checkPrivilege("button", "ImportTeacher")) {
+      taskTypes.push("BASIC_EXAM_STUDENT_TEACHER_IMPORT");
+    }
+    if (taskTypes.length === 1) this.curTaskType = taskTypes[0];
+    this.taskTypes = taskTypes;
+  },
   methods: {
     async getList() {
       if (!this.checkPrivilege("list", "list")) return;
@@ -463,6 +505,10 @@ export default {
     toDataTask() {
       this.$refs.DataTaskDialog.open();
     },
+    handleTaskType(val) {
+      this.curTaskType = val;
+      this.$refs.DataTaskDialog.open();
+    },
     validError(errorData) {
       this.$message.error(errorData.message);
     },