Forráskód Böngészése

Merge branch 'dev_v5.0.2' of http://git.qmth.com.cn/examcloud-frontend/examcloud-admin-web into dev_v5.0.2

xiatian 1 éve
szülő
commit
faab49b054

+ 48 - 25
src/modules/basic/view/user.vue

@@ -130,15 +130,14 @@
 
         <div class="block-seperator"></div>
         <!-- 添加用户信息弹出框 -->
-        <el-dialog title="新增用户" width="450px" :visible.sync="addingDialog">
+        <el-dialog title="新增用户" width="500px" :visible.sync="addingDialog">
           <el-form
             ref="addingForm"
             :inline="true"
-            inline-message
             :model="userForm"
             :rules="rules"
             label-position="right"
-            label-width="120px"
+            label-width="80px"
           >
             <el-row>
               <el-form-item label="姓名" prop="name">
@@ -150,7 +149,7 @@
                 />
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row class="mt20">
               <el-form-item label="登录名" prop="loginName">
                 <el-input
                   v-model="userForm.loginName"
@@ -160,7 +159,7 @@
                 />
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row class="mt20">
               <el-form-item label="密码" prop="password">
                 <el-input
                   v-model="userForm.password"
@@ -170,7 +169,7 @@
                 />
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row class="mt20">
               <el-form-item label="联系方式" prop="phoneNumber">
                 <el-input
                   v-model="userForm.phoneNumber"
@@ -180,8 +179,8 @@
                 />
               </el-form-item>
             </el-row>
-            <el-row>
-              <el-form-item v-if="isSuperAdmin" label="学校" prop="rootOrgId">
+            <el-row v-if="isSuperAdmin" class="mt20">
+              <el-form-item label="学校" prop="rootOrgId">
                 <el-select
                   v-model="userForm.rootOrgId"
                   class="input_width_lg"
@@ -200,7 +199,7 @@
                 </el-select>
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row class="mt20">
               <el-form-item label="角色" prop="roleIds">
                 <el-select
                   v-model="userForm.roleIds"
@@ -219,7 +218,7 @@
                 </el-select>
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row class="mt20">
               <el-form-item label="子机构" prop="orgId">
                 <el-select
                   v-model="userForm.orgId"
@@ -242,7 +241,7 @@
                 </el-select>
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row class="mt20">
               <el-form-item label="状态">
                 <el-radio-group v-model="enableStr" class="pull_right_sm">
                   <el-radio label="true">启用</el-radio>
@@ -258,15 +257,14 @@
         </el-dialog>
 
         <!-- 修改用户信息弹出框 -->
-        <el-dialog title="编辑用户" width="450px" :visible.sync="updateDialog">
+        <el-dialog title="编辑用户" width="500px" :visible.sync="updateDialog">
           <el-form
             ref="updateForm"
             :inline="true"
-            inline-message
             :model="userForm"
             :rules="rules"
             label-position="right"
-            label-width="120px"
+            label-width="80px"
           >
             <el-row>
               <el-form-item label="ID">
@@ -277,7 +275,7 @@
                 />
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row class="mt20">
               <el-form-item label="姓名" prop="name">
                 <el-input
                   v-model="userForm.name"
@@ -287,7 +285,7 @@
                 />
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row class="mt20">
               <el-form-item label="登录名" prop="loginName">
                 <el-input
                   v-model="userForm.loginName"
@@ -297,7 +295,7 @@
                 />
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row class="mt20">
               <el-form-item label="联系方式" prop="phoneNumber">
                 <el-input
                   v-model="userForm.phoneNumber"
@@ -307,8 +305,8 @@
                 />
               </el-form-item>
             </el-row>
-            <el-row>
-              <el-form-item v-if="isSuperAdmin" label="学校" prop="rootOrgId">
+            <el-row v-if="isSuperAdmin" class="mt20">
+              <el-form-item label="学校" prop="rootOrgId">
                 <el-select
                   v-model="userForm.rootOrgId"
                   class="input_width_lg"
@@ -325,7 +323,7 @@
                 </el-select>
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row class="mt20">
               <el-form-item label="角色" prop="roleIds">
                 <el-select
                   v-model="userForm.roleIds"
@@ -346,7 +344,7 @@
                 </el-select>
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row class="mt20">
               <el-form-item label="子机构" prop="orgId">
                 <el-select
                   v-model="userForm.orgId"
@@ -369,7 +367,7 @@
                 </el-select>
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row class="mt20">
               <el-form-item label="状态">
                 <el-radio-group
                   v-model="enableStr"
@@ -549,6 +547,26 @@ export default {
   name: "User",
   components: { UserCopyPrevillegeDialog },
   data() {
+    let pswReg =
+      /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{6,10}$/;
+
+    var validatePsw = (rule, value, callback) => {
+      if (value === "") {
+        callback(new Error("请输入密码"));
+      } else if (value && !value.match(pswReg)) {
+        callback(
+          new Error(
+            "至少包含大写字母、小写字母、数字、特殊符号中的三种,且长度限制在6-10位!"
+          )
+        );
+      } else {
+        if (this.userForm.password !== "") {
+          this.$refs.userForm.validateField("password");
+        }
+        callback();
+      }
+    };
+
     var validateRootOrg = (rule, value, callback) => {
       if (0 != value && !value) {
         callback(new Error("请选择学校"));
@@ -621,8 +639,9 @@ export default {
         ],
         password: [
           {
-            required: true,
-            message: "请输入密码",
+            // required: true,
+            // message: "请输入密码",
+            validator: validatePsw,
             trigger: "blur",
           },
         ],
@@ -1169,9 +1188,13 @@ export default {
 }
 
 .input_width_lg {
-  width: 180px;
+  width: 300px;
 }
 .input_width {
   width: 150px;
 }
+
+.mt20 {
+  margin-top: 20px;
+}
 </style>

+ 10 - 0
src/modules/examwork/view/examInfo.vue

@@ -31,6 +31,15 @@
               ></el-option>
             </el-select>
           </el-form-item>
+
+          <el-form-item label="状态" class="pull-left">
+            <el-select v-model="formSearch.enable" class="input">
+              <el-option label="全部" value=""></el-option>
+              <el-option label="已启用" value="true"></el-option>
+              <el-option label="已禁用" value="false"></el-option>
+            </el-select>
+          </el-form-item>
+
           <el-form-item class="d-block">
             <el-button
               v-if="rolePrivileges.search_exam"
@@ -356,6 +365,7 @@ export default {
       formSearch: {
         name: "",
         examType: "",
+        enable: "true",
       },
       loading: false,
       examTypeList: EXAM_TYPE,

+ 8 - 0
src/modules/examwork/view/onlineExam.vue

@@ -415,6 +415,13 @@
                     >
                       <template slot="append">分钟</template>
                     </el-input>
+                    <el-radio-group
+                      v-model="form.properties.FREEZE_TIME_TYPE"
+                      style="margin-left: 30px"
+                    >
+                      <el-radio label="DURATION">按实际考试时长</el-radio>
+                      <el-radio label="BEGINTIME">按考试开始时间</el-radio>
+                    </el-radio-group>
                   </el-form-item>
                 </el-row>
                 <el-row>
@@ -1435,6 +1442,7 @@ export default {
           MAX_SWITCH_SCREEN_COUNT: "",
           EXAM_RECONNECT_TIME: 30,
           FREEZE_TIME: 0,
+          FREEZE_TIME_TYPE: "DURATION",
           BEFORE_EXAM_REMARK: "",
           AFTER_EXAM_REMARK: "",
           SHOW_CHEATING_REMARK: "true",

+ 8 - 0
src/modules/examwork/view/onlineHomework.vue

@@ -365,6 +365,13 @@
                     >
                       <template slot="append">分钟</template>
                     </el-input>
+                    <el-radio-group
+                      v-model="form.properties.FREEZE_TIME_TYPE"
+                      style="margin-left: 30px"
+                    >
+                      <el-radio label="DURATION">按实际考试时长</el-radio>
+                      <el-radio label="BEGINTIME">按考试开始时间</el-radio>
+                    </el-radio-group>
                   </el-form-item>
                 </el-row>
                 <el-row>
@@ -870,6 +877,7 @@ export default {
           MAX_SWITCH_SCREEN_COUNT: "",
           EXAM_RECONNECT_TIME: 30,
           FREEZE_TIME: 0,
+          FREEZE_TIME_TYPE: "DURATION",
           BEFORE_EXAM_REMARK: "",
           AFTER_EXAM_REMARK: "",
           SHOW_CHEATING_REMARK: "true",

+ 8 - 0
src/modules/examwork/view/practiceExam.vue

@@ -295,6 +295,13 @@
                       auto-complete="off"
                       ><template slot="append">分钟</template></el-input
                     >
+                    <el-radio-group
+                      v-model="form.properties.FREEZE_TIME_TYPE"
+                      style="margin-left: 30px"
+                    >
+                      <el-radio label="DURATION">按实际考试时长</el-radio>
+                      <el-radio label="BEGINTIME">按考试开始时间</el-radio>
+                    </el-radio-group>
                   </el-form-item>
                 </el-row>
                 <el-row>
@@ -579,6 +586,7 @@ export default {
         enable: "true",
         properties: {
           FREEZE_TIME: 0,
+          FREEZE_TIME_TYPE: "DURATION",
           EXAM_RECONNECT_TIME: 30,
           BEFORE_EXAM_REMARK: "",
           AFTER_EXAM_REMARK: "",

+ 1 - 0
src/modules/oe/views/awaitingAudit.vue

@@ -869,6 +869,7 @@ export default {
     },
     examRecordDataDialogClose() {
       this.examRecordDataDialog = false;
+      this.search("clickSelectBtn");
     },
     examRecordDataDialogOpen(examRecordDataId, showAuditButton) {
       this.examRecordDataDialog = true;

+ 28 - 17
src/modules/portal/views/home/Home.vue

@@ -74,7 +74,7 @@
     <!-- 添加用户信息弹出框 -->
     <el-dialog
       title="个人信息"
-      width="410px"
+      width="500px"
       :visible.sync="userDialog"
       @close="() => $refs.passForm.clearValidate()"
     >
@@ -99,7 +99,6 @@
           <el-form
             ref="passForm"
             :inline="true"
-            inline-message
             :model="passForm"
             :rules="passRules"
             label-position="right"
@@ -110,24 +109,24 @@
                 <el-input
                   v-model="passForm.pass"
                   type="password"
-                  style="width: 150px"
+                  style="width: 300px"
                   auto-complete="off"
                   placeholder="请输入密码"
                 />
               </el-form-item>
             </el-row>
-            <el-row>
+            <el-row style="margin-top: 20px">
               <el-form-item label="确认密码" prop="checkPass">
                 <el-input
                   v-model="passForm.checkPass"
                   type="password"
-                  style="width: 150px"
+                  style="width: 300px"
                   auto-complete="off"
                   placeholder="请输入确认密码"
                 />
               </el-form-item>
             </el-row>
-            <el-row style="margin-left: 100px">
+            <el-row style="margin-top: 20px; margin-left: 100px">
               <el-button type="primary" @click="submitForm">保 存</el-button>
               <el-button @click="userDialog = false">取 消</el-button>
             </el-row>
@@ -135,9 +134,10 @@
         </el-tab-pane>
       </el-tabs>
     </el-dialog>
+
     <el-dialog
       title="修改密码"
-      width="406px"
+      width="500px"
       :lock-scroll="true"
       :close-on-click-modal="false"
       :close-on-press-escape="false"
@@ -148,7 +148,6 @@
       <el-form
         ref="passWeakForm"
         :inline="true"
-        inline-message
         :model="passWeakForm"
         :rules="passWeakRules"
         label-position="right"
@@ -159,31 +158,31 @@
             <el-input
               v-model="passWeakForm.pass"
               type="password"
-              style="width: 150px"
+              style="width: 300px"
               auto-complete="off"
               placeholder="输入新密码"
             />
           </el-form-item>
         </el-row>
-        <el-row>
+        <el-row style="margin-top: 20px">
           <el-form-item label="确认密码" prop="checkPass">
             <el-input
               v-model="passWeakForm.checkPass"
               type="password"
-              style="width: 150px"
+              style="width: 300px"
               auto-complete="off"
               placeholder="再次输入新密码"
             />
           </el-form-item>
         </el-row>
-        <el-row>
+        <el-row style="margin-top: 20px">
           <el-form-item
             ><span class="passWeakInfo"
               >*为保护您的账户安全,请重新录入新密码,以防泄露
             </span></el-form-item
           >
         </el-row>
-        <el-row style="margin-left: 80px">
+        <el-row style="margin-top: 20px; margin-left: 80px">
           <el-button type="primary" @click="submitPassWeakForm"
             >确 认</el-button
           >
@@ -205,11 +204,18 @@ export default {
   name: "Home",
   components: { HomeSide, LinkTitles, SiteMessagePopup },
   data() {
+    let pswReg =
+      /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{6,10}$/;
+
     var validatePass = (rule, value, callback) => {
       if (value === "") {
         callback(new Error("请输入密码"));
-      } else if (value.length < 6) {
-        callback(new Error("密码长度至少6位"));
+      } else if (value && !value.match(pswReg)) {
+        callback(
+          new Error(
+            "至少包含大写字母、小写字母、数字、特殊符号中的三种,且长度限制在6-10位!"
+          )
+        );
       } else {
         if (this.passForm.checkPass !== "") {
           this.$refs.passForm.validateField("checkPass");
@@ -226,11 +232,16 @@ export default {
         callback();
       }
     };
+
     var validatePassWeakPass = (rule, value, callback) => {
       if (value === "") {
         callback(new Error("请输入密码"));
-      } else if (value.length < 6) {
-        callback(new Error("密码长度至少6位"));
+      } else if (value && !value.match(pswReg)) {
+        callback(
+          new Error(
+            "至少包含大写字母、小写字母、数字、特殊符号中的三种,且长度限制在6-10位!"
+          )
+        );
       } else {
         if (this.passWeakForm.checkPass !== "") {
           this.$refs.passWeakForm.validateField("checkPass");