Browse Source

conflict md

zhangjie 4 years ago
parent
commit
c4895b3b36

+ 2 - 2
src/api/examwork-examstudent.js

@@ -37,7 +37,7 @@ export function searchExamStudents({
 export function saveExamStudent({
   id = "",
   examId = "",
-  activityId = "",
+  examActivityId = "",
   roomCode = "",
   courseCode = "",
   name = "",
@@ -50,7 +50,7 @@ export function saveExamStudent({
     {
       id,
       examId,
-      activityId,
+      examActivityId,
       roomCode,
       name,
       courseCode,

+ 3 - 5
src/api/examwork-student.js

@@ -3,16 +3,14 @@ import { pickBy } from "lodash-es";
 import { object2QueryString, AESString } from "@/utils/utils";
 
 export function searchStudents({
-  orgId = "",
-  role,
-  loginName = "",
+  enable,
   name = "",
-  enable = "",
+  identity = "",
   pageNumber = 1,
   pageSize = 10,
 }) {
   const data = pickBy(
-    { orgId, role, loginName, name, enable, pageNumber, pageSize },
+    { identity, name, enable, pageNumber, pageSize },
     (v) => v !== ""
   );
   return httpApp.post("/api/admin/student/query?" + object2QueryString(data));

+ 2 - 7
src/components/TaskSelect.vue

@@ -19,6 +19,7 @@
 </template>
 
 <script>
+import { IMPORT_EXPORT_TASKS } from "@/constant/constants";
 export default {
   name: "TaskSelect",
   props: {
@@ -31,13 +32,7 @@ export default {
   },
   data() {
     return {
-      optionList: this.options || [
-        { code: "CALCULATE_EXAM_SCORE", name: "考试重新算分" },
-        { code: "IMPORT_EXAM_STUDENT", name: "导入考生" },
-        { code: "IMPORT_EXAM_PAPER", name: "导入试卷" },
-        { code: "IMPORT_INVIGILATE_USER", name: "导入监考员" },
-        { code: "EXPORT_INVIGILATE_USER", name: "导出监考员" },
-      ],
+      optionList: this.options || IMPORT_EXPORT_TASKS,
       selected: "",
     };
   },

+ 10 - 2
src/constant/constants.js

@@ -7,9 +7,9 @@ if (!localStorage.getItem("deviceId")) {
 export const DEVICE_ID = localStorage.getItem("deviceId");
 
 export const INVIGILATOR_IMPORT_TEMPLATE_DOWNLOAD_URL =
-  "/file/考场监考老师导入.xlsx";
+  "http://qmth-test.oss-cn-shenzhen.aliyuncs.com/file/考场监考老师导入.xlsx";
 export const EXAM_STUDENT_IMPORT_TEMPLATE_DOWNLOAD_URL =
-  "/file/考生导入_在线考试.xlsx";
+  "http://qmth-test.oss-cn-shenzhen.aliyuncs.com/file/考生导入_在线考试.xlsx";
 
 export const FINISH_TYPE = {
   MANUAL: "手动收卷",
@@ -39,6 +39,14 @@ export const REEXAM_REASON = {
   INVIGILATE_MISS: "监考人员误操作",
 };
 
+export const IMPORT_EXPORT_TASKS = [
+  { code: "CALCULATE_EXAM_SCORE", name: "考试重新算分" },
+  { code: "IMPORT_EXAM_STUDENT", name: "导入考生" },
+  { code: "IMPORT_EXAM_PAPER", name: "导入试卷" },
+  { code: "IMPORT_INVIGILATE_USER", name: "导入监考员" },
+  { code: "EXPORT_INVIGILATE_USER", name: "导出监考员" },
+];
+
 let domain;
 if (process.env.VUE_APP_SELF_DEFINE_DOMAIN === "true") {
   domain = window.localStorage.getItem("domain_in_url");

+ 3 - 1
src/features/examwork/ActivityManagement/ActivityManagement.vue

@@ -110,7 +110,9 @@ export default {
       selectedActivity: {},
     };
   },
-  async created() {},
+  async created() {
+    this.searchForm();
+  },
   methods: {
     async searchForm() {
       const res = await searchActivities({

+ 51 - 4
src/features/examwork/ExamManagement/ExamEdit.vue

@@ -2,9 +2,15 @@
   <div>
     <el-tabs v-model="activeName" type="card">
       <el-tab-pane label="考试规则设置" name="first">
-        <el-form :model="form" label-width="170px" inline>
+        <el-form
+          ref="form1"
+          :model="form"
+          :rules="rules"
+          label-width="170px"
+          inline
+        >
           <el-row>
-            <el-form-item label="考试模式">
+            <el-form-item label="考试模式" prop="mode">
               <ExamTypeSelect v-model="form.mode"></ExamTypeSelect>
             </el-form-item>
           </el-row>
@@ -159,7 +165,13 @@
       </el-tab-pane>
 
       <el-tab-pane label="监考设置" name="second">
-        <el-form :model="form" label-width="180px" inline>
+        <el-form
+          ref="form2"
+          :model="form"
+          :rules="rules"
+          label-width="180px"
+          inline
+        >
           <el-row class="tab-invililation">
             <h2>开考检测</h2>
             <el-form-item label="">
@@ -234,7 +246,10 @@
             </el-form-item>
           </el-row>
           <el-row v-if="form.inProcessLivenessVerify">
-            <el-form-item label="活体验证弹出时间段">
+            <el-form-item
+              label="活体验证弹出时间段"
+              prop="inProcessLivenessFixedRange"
+            >
               <MinuteInput
                 v-model.trim="form.inProcessLivenessFixedRange[0]"
                 style="width: 150px;"
@@ -345,6 +360,7 @@
 import ExamTypeSelect from "@/components/ExamTypeSelect";
 import MinuteInput from "@/components/MinuteInput";
 import { saveExam, getExamDetail } from "@/api/examwork-exam";
+import { isNumber } from "lodash-es";
 
 export default {
   name: "ExamEdit",
@@ -444,10 +460,41 @@ export default {
         monitorVideoSource: [],
         ipAllow: "",
       },
+      rules: {
+        mode: { required: true, message: "必填" },
+        inProcessLivenessFixedRange: {
+          validator: (rule, value) => {
+            return new Promise((resolve, reject) => {
+              const isNull = value === null;
+              if (
+                isNull ||
+                (value.length === 2 &&
+                  isNumber(value[0]) &&
+                  isNumber(value[1]) &&
+                  value[0] < value[1])
+              ) {
+                resolve(); // reject with error message
+              } else {
+                reject("reject");
+              }
+            });
+          },
+          message: "格式错误",
+        },
+      },
     };
   },
   methods: {
     async save() {
+      try {
+        await this.$refs.form1.validate();
+        await this.$refs.form2.validate();
+        // await this.$refs.form3.validate();
+      } catch (error) {
+        console.log(error);
+        return;
+      }
+
       await saveExam(this.form);
       this.$notify({ title: "保存成功", type: "success" });
       this.$router.back();

+ 3 - 0
src/features/examwork/ExamManagement/ExamManagement.vue

@@ -151,6 +151,9 @@ export default {
       selected: null,
     };
   },
+  created() {
+    this.searchForm();
+  },
   // activated() {
   //   console.log("im activated");
   // },

+ 6 - 4
src/features/examwork/ExamStudentManagement/ExamStudentManagementDialog.vue

@@ -33,7 +33,7 @@
         </el-form-item>
       </el-row>
       <el-row>
-        <el-form-item label="科目">
+        <el-form-item label="科目" prop="courseCode">
           <CourseSelect
             :examId="form.examId"
             v-model="form.courseCode"
@@ -96,7 +96,7 @@ export default {
       form: {
         id: "",
         examId: "",
-        activityId: "",
+        examActivityId: "",
         roomCode: "",
         courseCode: "",
         name: "",
@@ -104,7 +104,9 @@ export default {
         grade: "",
         classNo: "",
       },
-      rules: {},
+      rules: {
+        courseCode: { required: true, message: "必填" },
+      },
     };
   },
   watch: {
@@ -114,7 +116,7 @@ export default {
         tmp = {
           id: "",
           examId: "",
-          activityId: "",
+          examActivityId: "",
           roomCode: "",
           courseCode: "",
           name: "",

+ 10 - 1
src/features/examwork/ImportExportTask/ImportExportTask.vue

@@ -23,7 +23,7 @@
         <span slot-scope="scope">{{ scope.row.id }}</span>
       </el-table-column>
       <el-table-column width="150" label="任务名称">
-        <span slot-scope="scope">{{ scope.row.entityName }}</span>
+        <span slot-scope="scope">{{ scope.row.type | taskName }}</span>
       </el-table-column>
       <el-table-column width="150" label="上传文件名">
         <span slot-scope="scope">{{ scope.row.importFileName }}</span>
@@ -85,6 +85,7 @@
 import { searchTasks } from "@/api/examwork-task";
 import { downloadFileURL } from "@/utils/utils";
 import { downloadFile } from "@/api/system-info";
+import { IMPORT_EXPORT_TASKS } from "@/constant/constants";
 
 export default {
   name: "ImportExportTask",
@@ -100,6 +101,9 @@ export default {
       total: 10,
     };
   },
+  created() {
+    this.searchForm();
+  },
   methods: {
     async searchForm() {
       // try {
@@ -132,6 +136,11 @@ export default {
       downloadFileURL(url);
     },
   },
+  filters: {
+    taskName(code) {
+      return IMPORT_EXPORT_TASKS.find((v) => v.code == code).name;
+    },
+  },
 };
 </script>
 

+ 3 - 1
src/features/examwork/InvigilateManagement/InvigilateManagement.vue

@@ -113,7 +113,9 @@ export default {
       downloadUrl: INVIGILATOR_IMPORT_TEMPLATE_DOWNLOAD_URL,
     };
   },
-  async created() {},
+  async created() {
+    this.searchForm();
+  },
   methods: {
     async searchForm() {
       const res = await searchInvigilators({

+ 4 - 1
src/features/examwork/StudentManagement/StudentManagement.vue

@@ -143,11 +143,14 @@ export default {
     };
   },
   components: { StudentManagementDialog },
-  async created() {},
+  async created() {
+    this.searchForm();
+  },
   methods: {
     async searchForm() {
       const res = await searchStudents({
         enable: this.form.enable,
+        identity: this.form.identity,
         name: this.form.name,
         pageNumber: this.currentPage,
         pageSize: this.pageSize,

+ 3 - 1
src/features/system/OrgManagement/OrgManagement.vue

@@ -117,7 +117,9 @@ export default {
       selectedOrg: {},
     };
   },
-  async created() {},
+  async created() {
+    this.searchForm();
+  },
   methods: {
     async searchForm() {
       this.tableData = (

+ 3 - 1
src/features/system/UserManagement/UserManagement.vue

@@ -148,7 +148,9 @@ export default {
       selectedUser: {},
     };
   },
-  async created() {},
+  async created() {
+    this.searchForm();
+  },
   methods: {
     async searchForm() {
       const res = await searchUsers({