zhangjie 5 年之前
父節點
當前提交
a6ca4f94cb

二進制
dist-430-2.zip


+ 1 - 1
src/constants/enumerate.js

@@ -79,7 +79,7 @@ export const MENU_ROUTER_DICT = {
   userManager: "UserManage",
   ruleManager: "RuleManage",
   exam: "exam-center",
-  todoTaskManager: "TodoTask",
+  todoTaskManager: "WaitTask",
   doneTaskManager: "DoneTask",
   examManager: "ExamManage",
   cardManager: "CardManage",

+ 1 - 0
src/main.js

@@ -51,6 +51,7 @@ Vue.config.productionTip = false;
 var load = "";
 // 同一时间有多个请求时,会形成队列。在第一个请求创建loading,在最后一个响应关闭loading
 var queue = [];
+
 // 解决js处理超过16位number时精度丢失的问题
 axios.defaults.transformResponse = [
   data => {

+ 3 - 0
src/modules/base/api.js

@@ -16,6 +16,9 @@ export const ableUser = datas => {
 export const updatePwd = datas => {
   return $post("/api/print/basic/user/updatePwd", datas);
 };
+export const courseList = datas => {
+  return $get("/api/print/basic/sys/courseList", datas);
+};
 
 // rule-manage
 export const cardRuleDetail = schoolId => {

+ 52 - 7
src/modules/base/views/UserEdit.vue

@@ -37,6 +37,25 @@
           </el-option>
         </el-select>
       </el-form-item>
+      <el-form-item
+        prop="courseId"
+        label="科目:"
+        v-if="modalForm.roleCode === 'QUESTION_TEACHER'"
+      >
+        <el-select
+          style="width:142px;"
+          v-model="modalForm.courseId"
+          placeholder="请选择科目"
+        >
+          <el-option
+            v-for="item in courses"
+            :key="item.id"
+            :label="item.courseName"
+            :value="item.id"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button
           style="width:88px;"
@@ -52,7 +71,7 @@
 </template>
 
 <script>
-import { updateUser, userDetail, roleList } from "../api";
+import { updateUser, userDetail, roleList, courseList } from "../api";
 
 export default {
   name: "user-edit",
@@ -62,7 +81,8 @@ export default {
         userId: "",
         name: "",
         loginName: "",
-        roleCode: ""
+        roleCode: "",
+        courseId: ""
       },
       rules: {
         name: [
@@ -85,9 +105,18 @@ export default {
             message: "请选择角色",
             trigger: "change"
           }
+        ],
+        courseId: [
+          {
+            required: true,
+            message: "请选择科目",
+            trigger: "change"
+          }
         ]
       },
+      user: {},
       roles: [],
+      courses: [],
       isSubmit: false
     };
   },
@@ -98,12 +127,17 @@ export default {
     async init() {
       const data = await roleList();
       this.roles = data.records;
-      const user = await userDetail(this.$route.params.userId);
-      if (!user.account) {
+      this.user = await userDetail(this.$route.params.userId);
+      if (!this.user.account) {
         this.$message.error("当前用户不存在!");
         return;
       }
-      this.modalForm = Object.assign({}, this.modalForm, user.account);
+      this.modalForm = Object.assign({}, this.modalForm, this.user.account);
+      this.getCourseList();
+    },
+    async getCourseList() {
+      const data = await courseList();
+      this.courses = data.records;
     },
     async submit(name) {
       const valid = await this.$refs[name].validate().catch(() => {});
@@ -111,11 +145,22 @@ export default {
 
       if (this.isSubmit) return;
       this.isSubmit = true;
-      const data = await updateUser(this.modalForm).catch(() => {});
+
+      const datas = { ...this.modalForm };
+      if (datas.roleCode !== "QUESTION_TEACHER") delete datas.courseId;
+      const data = await updateUser(datas).catch(() => {});
       this.isSubmit = false;
       if (!data) return;
 
-      this.gaback();
+      this.$message.success("修改成功!");
+
+      // 自己把自己的角色改了之后要刷新页面,重新获取权限
+      if (
+        this.user.roleCode !== this.modalForm.roleCode &&
+        this.$ls.get("userId") === this.user.id
+      ) {
+        window.location.reload();
+      }
     }
   }
 };

+ 1 - 1
src/modules/exam-center/views/ExamManage.vue

@@ -121,7 +121,7 @@ export default {
       visible: false,
       PRINT_STATUS,
       exams: [],
-      examPages: [{ id: "1" }]
+      examPages: []
     };
   },
   created() {

+ 3 - 1
src/modules/exam-center/views/ExamRomeDetail.vue

@@ -8,6 +8,7 @@
             style="width: 193px;"
             placeholder="请选择"
             @change="examChange"
+            @clear="examChange"
             clearable
           >
             <el-option
@@ -24,6 +25,7 @@
             style="width: 193px;"
             placeholder="请选择"
             @change="sceneChange"
+            @clear="sceneChange"
             clearable
           >
             <el-option
@@ -61,7 +63,7 @@
     <div class="part-box">
       <el-table ref="TableList" :data="examPages" border stripe>
         <el-table-column prop="sceneNumberId" label="场次ID"></el-table-column>
-        <el-table-column prop="examName" label="考试名称"></el-table-column>
+        <el-table-column prop="examSite" label="考点名称"></el-table-column>
         <el-table-column prop="examRoom" label="考场名称"></el-table-column>
         <el-table-column
           prop="courseCodeAndName"

+ 5 - 1
src/modules/exam-center/views/ExamRomeStudentDetail.vue

@@ -8,6 +8,7 @@
             style="width: 193px;"
             placeholder="请选择"
             @change="examChange"
+            @clear="examChange"
             clearable
           >
             <el-option
@@ -24,6 +25,7 @@
             style="width: 193px;"
             placeholder="请选择"
             @change="sceneChange"
+            @clear="sceneChange"
             clearable
           >
             <el-option
@@ -40,6 +42,7 @@
             style="width: 193px;"
             placeholder="请选择"
             @change="siteChange"
+            @clear="siteChange"
             clearable
           >
             <el-option
@@ -175,7 +178,6 @@ export default {
         "-"
       );
 
-      this.getList();
       // review selected
       await this.getExamSiteRoomList();
       this.filter.examId = examId;
@@ -185,6 +187,8 @@ export default {
       this.filter.examSite = examSite;
       this.siteChange();
       this.filter.examRoomId = examRoomId;
+
+      this.getList();
     },
     async getList() {
       const datas = {

+ 3 - 9
src/plugins/utils.js

@@ -226,15 +226,9 @@ function calcSum(dataList) {
  * @param {String} text json格式字符串
  */
 function jsonBigNumberToString(text) {
-  return text
-    .replace(/([0-9]{16,19})/g, '"$1"')
-    .replace(/:"",/g, ":##,")
-    .replace(/""/g, '"')
-    .replace(/:##,/g, ':"",')
-    .replace(/\\""/g, '\\"')
-    .replace(/:\\"\\",/g, ":\\#\\#,")
-    .replace(/"\\"/g, '\\"')
-    .replace(/:\\#\\#,/g, ':\\"\\",');
+  return text.replace(/:[0-9]{16,19}/g, function(match) {
+    return match[0] + '"' + match.slice(1) + '"';
+  });
 }
 
 export {

+ 1 - 0
src/views/Home.vue

@@ -157,6 +157,7 @@ export default {
             if (menu.parentId !== null && item["children"]) {
               item.children.map(el => {
                 el.fixed = true;
+                validRoutes.push(el.router);
               });
             }
             return;