浏览代码

系统管理修改

zhongxiaoyu 3 年之前
父节点
当前提交
fc50e6f790

+ 6 - 4
src/App.vue

@@ -17,7 +17,7 @@
             <el-form-item prop="pwd">
               <el-input show-password placeholder="请输入密码" tabindex="1" @keyup.enter.native="onSubmit('form')" v-model="form.pwd"></el-input>
             </el-form-item>
-            <div v-if="Number(errorNum) >= 3" class="flex-wrap">
+            <div v-if="Number(errorNum) >= 2" class="flex-wrap">
               <el-form-item class="flex1" prop="identify">
                 <el-input ref="identify" v-model.trim="form.identify" @keyup.enter.native="onSubmit('form')" placeholder="请输入验证码" name="identify" tabindex="1" />
               </el-form-item>
@@ -96,7 +96,7 @@ export default {
   },
   mounted () {
     const num = Number(this.errorNum);
-    if (this.dialog && num >= 3) {
+    if (this.dialog && num >= 2) {
       // this.flag = true;
       this.getCheckCode();
     }
@@ -227,7 +227,7 @@ export default {
           LoginName: this.name,
           LoginPwd: this.form.pwd,
         }
-        if (Number(this.errorNum) >= 3) {
+        if (Number(this.errorNum) >= 2) {
           obj.CheckCode = this.form.identify;
         }
         const res = await SsoLogin(obj);
@@ -245,11 +245,13 @@ export default {
         } else {
           const num = Number(res.returnData);
           this.$store.dispatch("app/getErrorNum", num);
-          if (num >= 3) {
+          if (num >= 2) {
             this.getCheckCode();
           }
           if (num >= 5) {
             await this.$store.dispatch('user/logout')
+            this.clearAll()
+            this.$store.dispatch("app/toggleDialog", false)
             this.$router.push(`/login?redirect=${this.$route.fullPath}`)
           }
           this.$message.error(res.message);

+ 25 - 1
src/utils/validate.js

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2021-12-13 09:43:22
- * @LastEditTime: 2022-03-23 10:05:02
+ * @LastEditTime: 2022-03-23 18:20:39
  * @LastEditors: your name
  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  * @FilePath: \Foshan4A2.0\src\utils\validate.js
@@ -317,6 +317,30 @@ export function lengthValidator(rule, value, callback) {
   }
 }
 
+// 表单正整数验证
+export function positiveIntegerValidator(rule, value, callback) {
+  const min = rule.min ?? 1
+  const max = rule.max ?? 2147483647
+  value = value ?? ''
+  if (value.length === 0) {
+    callback()
+  } else if (/^[1-9][0-9]*$/.test(value)) {
+    value = parseInt(value)
+    if (value < min) {
+      rule.message = `不能小于${min}`
+      callback(new Error('Size Error'))
+    } else if (value > max) {
+      rule.message = `不能大于${max}`
+      callback(new Error('Size Error'))
+    } else {
+      callback()
+    }
+  } else {
+    rule.message = '请输入正整数'
+    callback(new Error('Type Error'))
+  }
+}
+
 // 表单验证输入内容验证
 export const regular = {
   integer: /^[0-9]*$/,

+ 1 - 1
src/views/authorityManagement/components/authorityAppEdit.vue

@@ -187,7 +187,7 @@ export default {
           this.form.desc = AppDesc;
           this.form.url = AppUrl;
           this.dynamicValidateForm.domains = Inputs;
-          this.typeFlag = this.form.id;
+          this.typeFlag = this.form.id ? true : false;
         } else {
           this.$message.error(res.message);
         }

+ 14 - 2
src/views/systemManagement/addSystem/index.vue

@@ -148,7 +148,7 @@
             <el-button @click="getUserData">搜索</el-button>
           </div>
         </div>
-        <div class="center-box">
+        <div class="center-box scrollbar" v-infinite-scroll="load" :infinite-scroll-distance="20" infinite-scroll-disabled="disabled">
           <el-row class="scCont" :gutter="16">
             <el-col
               :span="6"
@@ -175,6 +175,10 @@
               </el-card>
             </el-col>
           </el-row>
+          <template v-if="total > 1">
+            <p class="center" v-if="loading">加载中...</p>
+            <p class="center" v-if="noMore">没有更多数据了~</p>
+          </template>
           <el-empty
             v-if="FormData.Unuselist.length == 0"
             description="没有内容"
@@ -705,7 +709,7 @@ export default {
   box-shadow: 0px 6px 7px 0px rgba(0, 0, 0, 0.06);
   border-radius: 16px;
   margin-left: 40px;
-  overflow: auto;
+  // overflow: auto;
   // position: relative;
   .searchBox {
     display: flex;
@@ -724,6 +728,14 @@ export default {
   .searchBox {
     display: flex;
   }
+  > .scrollbar {
+    height: calc(100% - 91px);
+    overflow-y: auto;
+    overflow-x: hidden;
+    > p {
+      margin: 12px 0 0;
+    }
+  }
 }
 ::v-deep .leftB {
   .el-input__inner {

+ 70 - 82
src/views/systemManagement/index.vue

@@ -1,13 +1,7 @@
 <template>
   <div class="Box">
     <div class="centerBox">
-      <el-form
-        :model="FormData"
-        :rules="rules"
-        ref="systemForm"
-        label-width="0"
-        class="demo-ruleForm"
-      >
+      <el-form :model="FormData" :rules="rules" ref="systemForm" label-width="0" class="demo-ruleForm">
         <div class="centerTitle">
           <span class="TitleStyle">系统基础设置</span>
           <el-button v-is="['system_btn_save']" @click="save()">保存</el-button>
@@ -23,12 +17,8 @@
         <div class="boxList">
           <span class="ListName">是否允许职员关联多账号</span>
           <div class="riaStyle">
-            <el-radio disabled v-model="FormData.UserOfficerMulti" :label="1"
-              >是</el-radio
-            >
-            <el-radio disabled v-model="FormData.UserOfficerMulti" :label="0"
-              >否</el-radio
-            >
+            <el-radio disabled v-model="FormData.UserOfficerMulti" :label="1">是</el-radio>
+            <el-radio disabled v-model="FormData.UserOfficerMulti" :label="0">否</el-radio>
           </div>
           <div class="lineStyle"></div>
         </div>
@@ -43,12 +33,8 @@
         <div class="boxList">
           <span class="ListName">是否开启严格数据权限</span>
           <div class="riaStyle">
-            <el-radio v-model="FormData.OpenAuthData" :label="1" disabled
-              >是</el-radio
-            >
-            <el-radio v-model="FormData.OpenAuthData" :label="0" disabled
-              >否</el-radio
-            >
+            <el-radio v-model="FormData.OpenAuthData" :label="1" disabled>是</el-radio>
+            <el-radio v-model="FormData.OpenAuthData" :label="0" disabled>否</el-radio>
           </div>
           <div class="lineStyle"></div>
         </div>
@@ -56,10 +42,7 @@
           <span class="ListName">账号变更为闲置状态的不登录时间(天)</span>
           <div class="riaStyle">
             <el-form-item prop="UserIdledays">
-              <el-input
-                v-model.trim="FormData.UserIdledays"
-                placeholder="请输入"
-              ></el-input>
+              <el-input v-model.trim="FormData.UserIdledays" placeholder="请输入"></el-input>
             </el-form-item>
           </div>
           <div class="lineStyle"></div>
@@ -68,10 +51,7 @@
           <span class="ListName">登录后锁定系统的不操作时间(分钟)</span>
           <div class="riaStyle">
             <el-form-item prop="LockMins">
-              <el-input
-                v-model.trim="FormData.LockMins"
-                placeholder="请输入"
-              ></el-input>
+              <el-input v-model.trim="FormData.LockMins" placeholder="请输入"></el-input>
             </el-form-item>
           </div>
           <div class="lineStyle"></div>
@@ -81,11 +61,7 @@
           <div class="riaStyle1">
             <div>
               <el-form-item prop="PwdLengthBegin">
-                <el-input
-                  class="ipt1"
-                  v-model.trim="FormData.PwdLengthBegin"
-                  placeholder="最少位数"
-                ></el-input>
+                <el-input class="ipt1" v-model.trim="FormData.PwdLengthBegin" placeholder="最少位数"></el-input>
               </el-form-item>
               <div class="lineStyle1"></div>
             </div>
@@ -93,11 +69,7 @@
             <span class="zhi">至</span>
             <div>
               <el-form-item prop="PwdLengthEnd">
-                <el-input
-                  class="ipt2"
-                  v-model.trim="FormData.PwdLengthEnd"
-                  placeholder="最多位数"
-                ></el-input>
+                <el-input class="ipt2" v-model.trim="FormData.PwdLengthEnd" placeholder="最多位数"></el-input>
               </el-form-item>
               <div class="lineStyle2"></div>
             </div>
@@ -106,18 +78,8 @@
         <div class="boxList">
           <span class="ListName">密码组成结构</span>
           <div class="riaStyle">
-            <el-checkbox-group
-              v-model="checkedList"
-              @change="PwdStrucChange"
-              :min="1"
-            >
-              <el-checkbox
-                v-for="(item, index) in PwdStrucList"
-                :label="item.id"
-                :key="index"
-                :checked="item.isChecked"
-                >{{ item.name }}</el-checkbox
-              >
+            <el-checkbox-group v-model="checkedList" @change="PwdStrucChange" :min="1">
+              <el-checkbox v-for="(item, index) in PwdStrucList" :label="item.id" :key="index" :checked="item.isChecked">{{ item.name }}</el-checkbox>
             </el-checkbox-group>
           </div>
           <div class="lineStyle"></div>
@@ -134,10 +96,7 @@
           <span class="ListName">密码有效时长(天)</span>
           <div class="riaStyle">
             <el-form-item prop="PwdValidtime">
-              <el-input
-                v-model.trim="FormData.PwdValidtime"
-                placeholder="请输入"
-              ></el-input>
+              <el-input v-model.trim="FormData.PwdValidtime" placeholder="请输入"></el-input>
             </el-form-item>
           </div>
           <div class="lineStyle"></div>
@@ -145,11 +104,8 @@
         <div class="boxList">
           <span class="ListName">允许试错次数(次数)</span>
           <div class="riaStyle">
-            <el-form-item prop="PwdValidtime">
-              <el-input
-                v-model.trim="FormData.LoginError"
-                placeholder="请输入"
-              ></el-input>
+            <el-form-item prop="LoginError">
+              <el-input v-model.trim="FormData.LoginError" placeholder="请输入"></el-input>
             </el-form-item>
           </div>
           <div class="lineStyle"></div>
@@ -158,10 +114,7 @@
           <span class="ListName">密码找回联系方式</span>
           <div class="riaStyle">
             <el-form-item prop="PwdValidtime">
-              <el-input
-                v-model.trim="FormData.PwdMessage"
-                placeholder="请输入"
-              ></el-input>
+              <el-input v-model.trim="FormData.PwdMessage" placeholder="请输入"></el-input>
             </el-form-item>
           </div>
           <div class="lineStyle"></div>
@@ -169,32 +122,25 @@
         <div class="boxList">
           <span class="ListName">是否启用简易验证码</span>
           <div class="riaStyle">
-            <el-radio v-model="FormData.SimpleValidCodeMode" :label="1"
-              >是</el-radio
-            >
-            <el-radio v-model="FormData.SimpleValidCodeMode" :label="0"
-              >否</el-radio
-            >
+            <el-radio v-model="FormData.SimpleValidCodeMode" :label="1">是</el-radio>
+            <el-radio v-model="FormData.SimpleValidCodeMode" :label="0">否</el-radio>
           </div>
           <div class="lineStyle" style="margin-bottom: 70px"></div>
         </div>
       </el-form>
     </div>
     <div class="asideBox">
-      <el-button v-is="['system_basic_page']" type="primary"
-        >系统基础设置</el-button
-      >
-      <el-button v-is="['system_logintac_page']" @click="gotoLogin"
-        >登录策略</el-button
-      >
+      <el-button v-is="['system_basic_page']" type="primary">系统基础设置</el-button>
+      <el-button v-is="['system_logintac_page']" @click="gotoLogin">登录策略</el-button>
     </div>
   </div>
 </template>
 
 <script>
 import { GetSystemSet, SaveSystemSet } from "@/api/systemConfiguration";
+import { positiveIntegerValidator } from '@/utils/validate'
 export default {
-  data() {
+  data () {
     return {
       isShow: false,
       FormData: {
@@ -220,6 +166,11 @@ export default {
             message: "请输入账号变更为闲置状态的不登录时间(天)",
             trigger: "blur",
           },
+          {
+            validator: positiveIntegerValidator,
+            max: 999999999,
+            trigger: ['change', 'blur']
+          }
         ],
         LockMins: [
           {
@@ -227,6 +178,11 @@ export default {
             message: "请输入登录后锁定系统的不操作时间(分钟)",
             trigger: "blur",
           },
+          {
+            validator: positiveIntegerValidator,
+            max: 999999999,
+            trigger: ['change', 'blur']
+          }
         ],
         PwdLengthBegin: [
           {
@@ -234,6 +190,11 @@ export default {
             message: "请输入密码长度范围最少位数",
             trigger: "blur",
           },
+          {
+            validator: positiveIntegerValidator,
+            min: 6,
+            trigger: ['change', 'blur']
+          }
         ],
         PwdLengthEnd: [
           {
@@ -241,6 +202,11 @@ export default {
             message: "请输入密码长度范围最多位数",
             trigger: "blur",
           },
+          {
+            validator: positiveIntegerValidator,
+            max: 22,
+            trigger: ['change', 'blur']
+          }
         ],
         PwdValidtime: [
           {
@@ -248,6 +214,11 @@ export default {
             message: "请输入密码有效时长(天)",
             trigger: "blur",
           },
+          {
+            validator: positiveIntegerValidator,
+            max: 999999999,
+            trigger: ['change', 'blur']
+          }
         ],
         LoginError: [
           {
@@ -255,6 +226,11 @@ export default {
             message: "请输入允许试错次数(次数)",
             trigger: "blur",
           },
+          {
+            validator: positiveIntegerValidator,
+            max: 999999999,
+            trigger: ['change', 'blur']
+          }
         ],
         PwdMessage: [
           {
@@ -276,7 +252,7 @@ export default {
   },
   watch: {
     FormData: {
-      handler(val) {
+      handler (val) {
         if (
           JSON.stringify(val) != this.oldFormData &&
           this.oldFormData != null
@@ -288,8 +264,20 @@ export default {
       },
       deep: true,
     },
+    // 'FormData.PwdLengthEnd': {
+    //   handler(val) {
+    //     this.rules.PwdLengthBegin[1].max = parseInt(val)
+    //     this.$refs["systemForm"].validateField('PwdLengthBegin')
+    //   }
+    // },
+    // 'FormData.PwdLengthBegin': {
+    //   handler(val) {
+    //     this.rules.PwdLengthEnd[1].min = parseInt(val)
+    //     this.$refs["systemForm"].validateField('PwdLengthEnd')
+    //   }
+    // }
   },
-  created() {
+  created () {
     this.getSystemSet();
     // let SystemSetInfo = JSON.parse(this.$store.state.app.systemSet);
     // if (SystemSetInfo) {
@@ -302,10 +290,10 @@ export default {
     // }
   },
   methods: {
-    gotoLogin() {
+    gotoLogin () {
       this.$router.push("/LoginPolicy");
     },
-    getSystemSet() {
+    getSystemSet () {
       GetSystemSet({})
         .then((response) => {
           const { returnData } = response;
@@ -319,7 +307,7 @@ export default {
           reject(error);
         });
     },
-    PwdStrucChange(data) {
+    PwdStrucChange (data) {
       let count = 0;
       for (let i = 0; i < data.length; i++) {
         count = count + Number(data[i]);
@@ -327,7 +315,7 @@ export default {
       }
       console.log(this.FormData);
     },
-    getPwdStruc(data) {
+    getPwdStruc (data) {
       let dataList = data.split("");
       if (dataList[0] == 1) {
         this.checkedList.push("1000");
@@ -342,7 +330,7 @@ export default {
         this.checkedList.push("0001");
       }
     },
-    save() {
+    save () {
       if (this.FormData.PwdStruc == 11) {
         this.FormData.PwdStruc = "0011";
       } else if (this.FormData.PwdStruc == 101) {