zhangjie 3 years ago
parent
commit
aa17f79e3c

+ 3 - 3
src/modules/card/autoBuild/simplePaperCard.js

@@ -21,7 +21,7 @@ function parseSimpleQuestion(simpleQuestion) {
 }
 
 function parsePaperStruct(paperSimpleStruct) {
-  console.log(paperSimpleStruct);
+  // console.log(paperSimpleStruct);
   const dataList = paperSimpleStruct.split("#");
   const details = dataList.filter((item) => item.startsWith("detail"));
   let detailNames = {};
@@ -76,7 +76,7 @@ function parsePaperStruct(paperSimpleStruct) {
   });
 
   structList.sort((a, b) => a.sortNo - b.sortNo);
-  console.log(structList);
+  // console.log(structList);
   return structList;
 }
 
@@ -170,6 +170,6 @@ function parseCommonTypeQuestions(structType, dataList) {
 export function buildCardFromPaperSimpleStruct(paperSimpleStruct) {
   const structList = parsePaperStruct(paperSimpleStruct);
   const cardElements = buildCardElements(structList);
-  console.log(cardElements);
+  // console.log(cardElements);
   return cardElements;
 }

+ 1 - 1
src/modules/card/mixins/exchange.js

@@ -55,7 +55,7 @@ export default {
           column.elements.forEach((element) => {
             if (this.VALID_ELEMENTS_FOR_EXTERNAL.includes(element.type)) {
               const funcName = this.getElementHumpName(element.type);
-              console.log(funcName);
+              // console.log(funcName);
               const info = this[`get${funcName}Info`](element);
               Object.entries(info).forEach(([key, vals]) => {
                 exchange[key] = [...exchange[key], ...vals];

+ 21 - 0
src/modules/portal/views/Login.vue

@@ -81,6 +81,27 @@ export default {
             trigger: "change",
           },
         ],
+        // password: [
+        //   {
+        //     validator: (rule, value, callback) => {
+        //       if (value && /^([0-9]+|[a-z]+|[A-Z]+)$/.test(value)) {
+        //         callback(
+        //           new Error("密码只能大写字母、小写字母、数字至少两种组成")
+        //         );
+        //       } else {
+        //         callback();
+        //       }
+        //     },
+        //     trigger: "change",
+        //   },
+        //   {
+        //     required: true,
+        //     min: 8,
+        //     max: 16,
+        //     message: "密码只能8-16个字符",
+        //     trigger: "change",
+        //   },
+        // ],
         password: [
           {
             required: true,

+ 39 - 30
src/modules/portal/views/home/Home.vue

@@ -68,7 +68,6 @@
             class="form-tight"
             :model="passForm"
             :rules="passRules"
-            label-position="right"
             label-width="80px"
           >
             <el-form-item label="密码" prop="pass">
@@ -117,7 +116,6 @@
         class="form-tight"
         :model="passWeakForm"
         :rules="passWeakRules"
-        label-position="right"
         label-width="80px"
       >
         <el-row>
@@ -172,47 +170,52 @@ export default {
   components: { HomeSide, LinkTitles },
   data() {
     var validatePass = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("请输入密码"));
-      } else if (value.length < 6) {
-        callback(new Error("密码长度至少6位"));
-      } else {
-        if (this.passForm.checkPass !== "") {
-          this.$refs.passForm.validateField("checkPass");
-        }
-        callback();
+      if (this.passForm.checkPass !== "") {
+        this.$refs.passForm.validateField("checkPass");
       }
+      callback();
     };
     var validatePass2 = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("请输入确认密码"));
-      } else if (value !== this.passForm.pass) {
+      if (value !== this.passForm.pass) {
         callback(new Error("两次输入密码不一致!"));
       } else {
         callback();
       }
     };
     var validatePassWeakPass = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("请输入密码"));
-      } else if (value.length < 6) {
-        callback(new Error("密码长度至少6位"));
-      } else {
-        if (this.passWeakForm.checkPass !== "") {
-          this.$refs.passWeakForm.validateField("checkPass");
-        }
-        callback();
+      if (this.passWeakForm.checkPass !== "") {
+        this.$refs.passWeakForm.validateField("checkPass");
       }
+      callback();
     };
     var validatePassWeakPass2 = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("请输入确认密码"));
-      } else if (value !== this.passWeakForm.pass) {
+      if (value !== this.passWeakForm.pass) {
         callback(new Error("两次输入密码不一致!"));
       } else {
         callback();
       }
     };
+
+    const pwdRule = [
+      {
+        validator: (rule, value, callback) => {
+          if (value && /^([0-9]+|[a-z]+|[A-Z]+)$/.test(value)) {
+            callback(new Error("密码只能大写字母、小写字母、数字至少两种组成"));
+          } else {
+            callback();
+          }
+        },
+        trigger: "change",
+      },
+      {
+        required: true,
+        min: 8,
+        max: 16,
+        message: "密码只能8-16个字符",
+        trigger: "change",
+      },
+    ];
+
     return {
       unreadMessageCount: 0,
       userDialog: false,
@@ -221,12 +224,18 @@ export default {
       passForm: { pass: "", checkPass: "" },
       passWeakForm: { pass: "", checkPass: "" },
       passRules: {
-        pass: [{ validator: validatePass, trigger: "blur" }],
-        checkPass: [{ validator: validatePass2, trigger: "blur" }],
+        pass: [{ validator: validatePass, trigger: "blur" }, ...pwdRule],
+        checkPass: [{ validator: validatePass2, trigger: "blur" }, ...pwdRule],
       },
       passWeakRules: {
-        pass: [{ validator: validatePassWeakPass, trigger: "blur" }],
-        checkPass: [{ validator: validatePassWeakPass2, trigger: "blur" }],
+        pass: [
+          { validator: validatePassWeakPass, trigger: "blur" },
+          ...pwdRule,
+        ],
+        checkPass: [
+          { validator: validatePassWeakPass2, trigger: "blur" },
+          ...pwdRule,
+        ],
       },
     };
   },

+ 1 - 1
src/modules/questions/views/CheckDuplicateList.vue

@@ -217,7 +217,7 @@
       :ques-model="quesModel"
     ></question-preview>
 
-    <el-dialog title="提示" :visible.sync="deleteDialogVisible">
+    <el-dialog title="提示" :visible.sync="deleteDialogVisible" append-to-body>
       <span>{{ deleteInfo }}</span>
       <span slot="footer" class="dialog-footer">
         <el-button type="primary" @click="deleteDialogVisible = false"

+ 11 - 1
src/modules/questions/views/Course.vue

@@ -320,7 +320,7 @@
     </el-dialog>
 
     <!-- 导入错误信息列表 -->
-    <el-dialog title="错误提示" :visible.sync="errDialog">
+    <el-dialog title="错误提示" :visible.sync="errDialog" append-to-body>
       <div
         v-for="errMessage in errMessages"
         :key="errMessage.lineNum"
@@ -385,6 +385,11 @@ export default {
             message: "请输入课程名称",
             trigger: "blur",
           },
+          {
+            max: 30,
+            message: "课程名称最多30个字符",
+            trigger: "blur",
+          },
         ],
         code: [
           {
@@ -392,6 +397,11 @@ export default {
             message: "请输入课程代码",
             trigger: "blur",
           },
+          {
+            max: 30,
+            message: "课程代码最多30个字符",
+            trigger: "blur",
+          },
         ],
         level: [
           {

+ 2 - 1
src/modules/questions/views/CourseProperty.vue

@@ -283,7 +283,7 @@
     </el-dialog>
 
     <!-- 导入错误信息列表 -->
-    <el-dialog title="错误提示" :visible.sync="errDialog">
+    <el-dialog title="错误提示" :visible.sync="errDialog" append-to-body>
       <div
         v-for="errMessage in errMessages"
         :key="errMessage.lineNum"
@@ -673,6 +673,7 @@ export default {
     //查询所有课程
     getCourses(query) {
       query = query.trim();
+      if (!query) return;
       this.courseLoading = true;
       this.$http
         .get(QUESTION_API + "/course/query?name=" + query + "&enable=true")

+ 1 - 1
src/modules/questions/views/ImportPaperInfo.vue

@@ -109,7 +109,7 @@
         </el-form-item>
       </el-form>
 
-      <el-dialog title="错误提示" :visible.sync="errDialog">
+      <el-dialog title="错误提示" :visible.sync="errDialog" append-to-body>
         <span style="font-size: large">{{ errMessage }} !</span>
         <span slot="footer" class="dialog-footer">
           <el-button @click="errDialog = false">确定</el-button>

+ 1 - 1
src/modules/questions/views/Question.vue

@@ -202,7 +202,7 @@
       :ques-model="quesModel"
     ></question-preview>
 
-    <el-dialog title="提示" :visible.sync="deleteDialogVisible">
+    <el-dialog title="提示" :visible.sync="deleteDialogVisible" append-to-body>
       <span>{{ deleteInfo }}</span>
       <span slot="footer" class="dialog-footer">
         <el-button type="primary" @click="deleteDialogVisible = false"

+ 1 - 1
src/modules/questions/views/data_previllege.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="data-privilege">
-    <div v-loading.body="loading" class="privilege-part privilege-header">
+    <div v-loading="loading" class="privilege-part privilege-header">
       <!-- 正文信息 -->
       <div class="privilege-header-top">
         <div class="part-box-header">

+ 28 - 17
src/modules/questions/views/user.vue

@@ -283,20 +283,20 @@
     <!-- 添加用户信息弹出框 -->
     <el-dialog
       title="新增用户"
-      width="520px"
+      width="620px"
       :visible.sync="addingDialog"
       :modal="false"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
       append-to-body
       custom-class="side-dialog"
     >
       <el-form
         ref="addingForm"
-        :inline="true"
         inline-message
         class="form-tight"
         :model="userForm"
         :rules="rules"
-        label-position="right"
         label-width="80px"
       >
         <el-form-item label="姓名" prop="name">
@@ -377,9 +377,11 @@
     <!-- 修改用户信息弹出框 -->
     <el-dialog
       title="编辑用户"
-      width="520px"
+      width="620px"
       :visible.sync="updateDialog"
       :modal="false"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
       append-to-body
       custom-class="side-dialog"
     >
@@ -474,6 +476,8 @@
       width="520px"
       :visible.sync="impDialog"
       :modal="false"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
       append-to-body
       custom-class="side-dialog"
     >
@@ -553,15 +557,6 @@ import { mapState } from "vuex";
 export default {
   name: "User",
   data() {
-    var validatePassword = (rule, value, callback) => {
-      if (!value || value == "") {
-        callback(new Error("请输入密码"));
-      } else if (value.length < 6 || value.length > 15) {
-        callback(new Error("密码长度6-15"));
-      } else {
-        callback();
-      }
-    };
     var validateRootOrg = (rule, value, callback) => {
       if (0 != value && !value) {
         callback(new Error("请选择学校"));
@@ -633,22 +628,38 @@ export default {
         name: [
           {
             required: true,
-            message: "请输入姓名",
+            max: 20,
+            message: "请输入姓名,最多20字符",
             trigger: "blur",
           },
         ],
         loginName: [
           {
             required: true,
-            message: "请输入登录名",
+            max: 20,
+            message: "请输入登录名,最多20字符",
             trigger: "blur",
           },
         ],
         password: [
+          {
+            validator: (rule, value, callback) => {
+              if (value && /^([0-9]+|[a-z]+|[A-Z]+)$/.test(value)) {
+                callback(
+                  new Error("密码只能大写字母、小写字母、数字至少两种组成")
+                );
+              } else {
+                callback();
+              }
+            },
+            trigger: "change",
+          },
           {
             required: true,
-            validator: validatePassword,
-            trigger: "blur",
+            min: 8,
+            max: 16,
+            message: "密码只能8-16个字符",
+            trigger: "change",
           },
         ],
         phoneNumber: [