瀏覽代碼

feat: 课程导入

zhangjie 3 月之前
父節點
當前提交
dd91a39933

+ 2 - 0
src/constants/enumerate.js

@@ -265,6 +265,8 @@ export const IMPORT_TEMPLATE_TYPE = {
   subjectiveStruct: "TEMPLATE_SUBJECTIVE_STRUCT",
   // 客观题结构
   objectiveStruct: "TEMPLATE_OBJECTIVE_STRUCT",
+  // 任课老师
+  courseTeacher: "BASIC_COURSE_TEACHER_IMPORT",
 };
 // 印刷 -------------->
 // 印刷计划状态

+ 7 - 1
src/modules/base/api.js

@@ -1,4 +1,5 @@
 import { $postParam, $post } from "@/plugins/axios";
+import { isNull } from "@/plugins/utils";
 
 export const questionTeatherUserQuery = ({ courseId, param }) => {
   return $postParam("/api/admin/sys/user/user_list", { courseId, param });
@@ -279,7 +280,12 @@ export const modeCardListPage = (datas) => {
   return $postParam("/api/admin/exam/model_4/card/page", datas);
 };
 export const updateModeCard = (datas) => {
-  return $post("/api/admin/exam/model_4/card/save_generic", datas);
+  const formData = new FormData();
+  for (const key in datas) {
+    const val = datas[key];
+    if (!isNull(val)) formData.append(key, val);
+  }
+  return $post("/api/admin/exam/model_4/card/save_generic", formData);
 };
 export const deleteModeCard = (id) => {
   return $postParam("/api/admin/exam/model_4/card/delete_generic", { id });

+ 38 - 1
src/modules/base/views/CourseSimpleManage.vue

@@ -33,6 +33,13 @@
           @click="toAdd"
           >添加课程</el-button
         >
+        <el-button
+          v-if="checkPrivilege('button', 'AssginCourseUserImport')"
+          type="primary"
+          icon="el-icon-upload2"
+          @click="toImport"
+          >导入任课老师</el-button
+        >
       </div>
     </div>
 
@@ -108,6 +115,22 @@
       ref="CourseSimpleDetail"
       :course="curCourse"
     ></course-simple-detail>
+    <!-- ImportFileTeacher -->
+    <import-file
+      v-if="checkPrivilege('button', 'AssginCourseUserImport')"
+      ref="ImportFile"
+      title="导入任课老师"
+      :upload-url="uploadUrl"
+      :upload-data="{
+        semesterId: filter.semesterId,
+        examId: filter.examId,
+      }"
+      :format="['xls', 'xlsx']"
+      :download-handle="() => downloadTemplate('courseTeacher')"
+      :download-filename="dfilename"
+      :auto-upload="false"
+      @upload-success="uploadSuccess"
+    ></import-file>
   </div>
 </template>
 
@@ -115,10 +138,13 @@
 import { courseSimpleListPage, deleteCourseSimple } from "../api";
 import ModifyCourseSimple from "../components/course-simple/ModifyCourseSimple.vue";
 import CourseSimpleDetail from "../components/course-simple/CourseSimpleDetail.vue";
+import ImportFile from "@/components/ImportFile.vue";
+import templateDownload from "@/mixins/templateDownload";
 
 export default {
   name: "course-simple-manage",
-  components: { ModifyCourseSimple, CourseSimpleDetail },
+  components: { ModifyCourseSimple, CourseSimpleDetail, ImportFile },
+  mixins: [templateDownload],
   data() {
     return {
       filter: { semesterId: "", examId: "", courseName: "" },
@@ -128,6 +154,9 @@ export default {
       courses: [],
       curCourse: {},
       userId: this.$ls.get("user", { id: "" }).id,
+      // import
+      uploadUrl: "/api/admin/teach/course/import",
+      dfilename: "任课老师导入模板.xlsx",
     };
   },
   methods: {
@@ -170,6 +199,14 @@ export default {
         })
         .catch(() => {});
     },
+    toImport() {
+      this.$refs.ImportFile.open();
+    },
+    uploadSuccess(val) {
+      const msg = `${val.data.success},错误:${val.data.error}`;
+      this.$message.success(msg);
+      this.getList();
+    },
   },
 };
 </script>

+ 4 - 4
src/modules/base/views/ModeCardManage.vue

@@ -79,7 +79,7 @@
         <el-table-column
           class-name="action-column"
           label="操作"
-          width="230"
+          width="200"
           fixed="right"
         >
           <template slot-scope="scope">
@@ -118,7 +118,7 @@
               @click="toEditCard(scope.row)"
               >编辑题卡</el-button
             >
-            <el-button
+            <!-- <el-button
               v-if="
                 checkPrivilege('link', 'edit') &&
                 scope.row.type !== 'CUSTOM' &&
@@ -128,7 +128,7 @@
               type="text"
               @click="toEditInfo(scope.row)"
               >编辑信息</el-button
-            >
+            > -->
             <el-button
               v-if="checkPrivilege('link', 'Download')"
               class="btn-primary"
@@ -328,7 +328,7 @@ export default {
         return;
       }
       const res = await downloadByApi(() => {
-        return downloadBatchModeCardFile(this.multipleSelection.join(","));
+        return downloadBatchModeCardFile(this.multipleSelection);
       }, "").catch((e) => {
         this.$message.error(e || "下载失败,请重新尝试!");
       });