zhongxiaoyu 3 years ago
parent
commit
bc5fb8fb70

+ 26 - 16
src/App.vue

@@ -21,10 +21,10 @@
               <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>
-              <Identify @changeCode="changeCode" :identifyCode="form.CheckCode" :contentHeight="48" style="margin-left: 24px;" />
+              <Identify @changeCode="changeCode" :identifyCode="form.CheckCode" :contentHeight="48" style="margin-left: 24px" />
             </div>
             <el-form-item>
-              <el-button :loading="loading" style="line-height: normal;" type="primary" class="button-public-shadow onSubmit" @click="onSubmit('form')">
+              <el-button :loading="loading" style="line-height: normal" type="primary" class="button-public-shadow onSubmit" @click="onSubmit('form')">
                 确定
               </el-button>
             </el-form-item>
@@ -39,15 +39,16 @@
 
 <script>
 import Dialog from "@/layout/components/Dialog/index.vue";
-import Identify from './views/login/identify.vue';
+import Identify from "./views/login/identify.vue";
 import { mapGetters } from "vuex";
 import { SsoLogin } from "@/api/apiHome";
-import { GetSSOCheckCode } from '@/api/login';
+import { GetSSOCheckCode } from "@/api/login";
+import { getCodeToken } from "@/utils/auth";
 export default {
   name: "App",
   components: {
     Dialog,
-    Identify
+    Identify,
   },
   data () {
     return {
@@ -60,18 +61,25 @@ export default {
         //表单数据
         pwd: "",
         identify: "",
-        CheckCode: ""
+        CheckCode: "",
       },
       rules: {
         //表单验证
         pwd: [{ required: true, message: "请输入密码", trigger: "blur" }],
       },
       flag: false,
-      loading: false
+      loading: false,
     };
   },
   computed: {
-    ...mapGetters(["dialog", "token", "name", "systemSet", "roles", "errorNum"]),
+    ...mapGetters([
+      "dialog",
+      "token",
+      "name",
+      "systemSet",
+      "roles",
+      "errorNum",
+    ]),
   },
   watch: {
     "$store.state.user.token": {
@@ -226,7 +234,7 @@ export default {
         const obj = {
           LoginName: this.name,
           LoginPwd: this.form.pwd,
-        }
+        };
         if (Number(this.errorNum) >= 2) {
           obj.CheckCode = this.form.identify;
         }
@@ -249,12 +257,12 @@ export default {
             this.getCheckCode();
           }
           if (num >= 5) {
-            await this.$store.dispatch('user/logout')
+            await this.$store.dispatch("user/logout");
             this.$store.dispatch("app/getErrorNum", 0);
-            this.clearAll()
-            this.$store.dispatch("app/toggleDialog", false)
-            this.$router.push(`/login?redirect=${this.$route.fullPath}`)
-            location.reload()
+            this.clearAll();
+            this.$store.dispatch("app/toggleDialog", false);
+            this.$router.push(`/login?redirect=${this.$route.fullPath}`);
+            location.reload();
           }
           this.$message.error(res.message);
           this.loading = false;
@@ -266,11 +274,13 @@ export default {
     },
     //验证码重新获取
     changeCode () {
-      this.getCheckCode()
+      this.getCheckCode();
     },
     //获取动态验证码
     async getCheckCode () {
-      const res = await GetSSOCheckCode();
+      const res = await GetSSOCheckCode({
+        token: getCodeToken()
+      });
       if (res.code === 0) {
         this.form.CheckCode = res.returnData;
       } else {

+ 3 - 3
src/api/login.js

@@ -11,11 +11,11 @@ export function GetCheckCode (params) {
 }
 
 //获取动态验证码
-export function GetSSOCheckCode () {
+export function GetSSOCheckCode (params) {
     return request({
         url: '/api/fs4a/GetSSOCheckCode/v1',
-        method: 'post'
-        // data: params
+        method: 'post',
+        data: params
     })
 }
 

+ 38 - 21
src/layout/components/Dialog/index.vue

@@ -8,8 +8,25 @@
 -->
 <template>
   <div class="dialog">
-    <el-dialog :visible.sync="flag" ref="dialogTk" :top="top" :custom-class="customClass" :lock-scroll="false" :modal="modal" :show-close="false" :before-close="close" :width="width">
-      <div :style="{ height: child ? (this.$store.state.settings.dialogHeight - 96) +'px': '' }" class="dialog-content">
+    <el-dialog
+      :visible.sync="flag"
+      ref="dialogTk"
+      :top="top"
+      :custom-class="customClass"
+      :lock-scroll="false"
+      :modal="modal"
+      :show-close="false"
+      :before-close="close"
+      :width="width"
+    >
+      <div
+        :style="{
+          height: child
+            ? this.$store.state.settings.dialogHeight - 96 + 'px'
+            : '',
+        }"
+        class="dialog-content"
+      >
         <slot />
       </div>
     </el-dialog>
@@ -18,66 +35,66 @@
 
 <script>
 export default {
-  name: 'Dialog',
+  name: "Dialog",
   props: {
     // 弹框开关
     flag: {
       type: Boolean,
-      default: false
+      default: false,
     },
     // 弹框宽度
     width: {
       type: String,
-      default: '600px'
+      default: "600px",
     },
     // 弹框高度
     top: {
       type: String,
-      default: '0vh'
+      default: "0vh",
     },
     // 弹框类名
     customClass: {
       type: String,
-      default: ''
+      default: "",
     },
     // 弹框遮罩层
     modal: {
       type: Boolean,
-      default: true
+      default: true,
     },
     // 二级弹框标记
     child: {
       type: Boolean,
-      default: false
-    }
+      default: false,
+    },
   },
   // 监听弹框开关
   watch: {
     flag: {
-      handler (val) {
+      handler(val) {
         if (val) {
           this.$nextTick(() => {
             // 获取弹框高度
-            const height = this.$refs['dialogTk'].$refs.dialog.clientHeight
+            const height = this.$refs["dialogTk"].$refs.dialog.clientHeight;
             if (height) {
               // 当前弹框无二级弹框时 存入高度
               if (!this.child) {
-                this.$store.state.settings.dialogHeight = height
+                this.$store.state.settings.dialogHeight = height;
               }
             }
-          })
+          });
         }
       },
-      deep: true
-    }
+      deep: true,
+    },
   },
   methods: {
     // 弹框关闭
-    close () {
-      this.$emit('closeDialog', false)
-    }
-  }
-}
+    close() {
+      this.$emit("closeDialog", false);
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>

+ 15 - 4
src/views/authorityManagement/components/authorityAppEdit.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2021-11-29 09:18:04
- * @LastEditTime: 2022-03-25 16:38:03
+ * @LastEditTime: 2022-03-25 20:30:02
  * @LastEditors: your name
  * @Description: 新增/编辑应用
  * @FilePath: \Foshan4A2.0\src\views\authorityManagement\components\addApp.vue
@@ -310,12 +310,23 @@ export default {
           { required: true, message: '请输入应用名称', trigger: 'blur' },
           { validator: lengthValidator, max: 128, message: '长度在 1 到 128 个字符', trigger: ['change', 'blur'] }
         ],
-        url: [{ validator: lengthValidator, max: 512, message: '长度在 1 到 512 个字符', trigger: ['change', 'blur'] }],
         desc: [
           // { required: true, message: "请输入描述", trigger: "blur" },
-          { validator: lengthValidator, max: 256, message: '长度在 1到 256 个字符', trigger: ['change', 'blur'] }
+          {
+            validator: lengthValidator,
+            max: 256,
+            message: "长度在 1到 256 个字符",
+            trigger: ["change", "blur"],
+          },
+        ],
+        app: [
+          {
+            validator: lengthValidator,
+            max: 32,
+            message: "长度在 1 到 32 个字符",
+            trigger: ["change", "blur"],
+          },
         ],
-        app: [{ validator: lengthValidator, max: 32, message: '长度在 1 到 32 个字符', trigger: ['change', 'blur'] }]
       },
       // radio: 1,
       AppId: null,

+ 17 - 2
src/views/systemManagement/EditSystem/index.vue

@@ -350,6 +350,11 @@ export default {
       //     !search || data.UserName.toLowerCase().includes(search.toLowerCase())
       // );
     },
+    isValidseg(ip) {
+      let reg =
+        /^((?:(?:[01]?\d?\d|2(?:[0-4]\d|5[0-5]))\.){2}(?:[01]?\d?\d|2(?:[0-4]\d|5[0-5])))(?:(?:\.(?:[01]?\d?\d|2(?:[0-4]\d|5[0-5])))(\/(?:(?:[01]?\d?\d|2(?:[0-4]\d|5[0-5]))))?|(\/(?:(?:[01]?\d?\d|2(?:[0-4]\d|5[0-5])))\.(?:(?:[01]?\d?\d|2(?:[0-4]\d|5[0-5])))))$/;
+      return reg.test(ip);
+    },
     isValidIP: function (ip) {
       let reg =
         /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
@@ -364,13 +369,21 @@ export default {
       let isSave = true;
       if (ipArr.length >= 2) {
         ipArr.forEach((item) => {
-          if (this.isValidIP(item) == false) {
+          if (this.isValidIP(item) == true || this.isValidseg(item) == true) {
+            // this.$message.error("请输入正确IP段,并以;号隔开");
+            isSave = true;
+          } else {
             this.$message.error("请输入正确IP段,并以;号隔开");
             isSave = false;
           }
         });
       } else {
-        if (this.isValidIP(ipArr[0]) == false && ipArr.length) {
+        if (
+          this.isValidIP(ipArr[0]) == true ||
+          this.isValidseg(ipArr[0]) == true
+        ) {
+          isSave = true;
+        } else {
           this.$message.error("请输入正确IP段,并以;号隔开");
           isSave = false;
         }
@@ -399,6 +412,8 @@ export default {
                   this.$message.success("编辑成功");
                   this.$store.dispatch("tagsView/delView", this.$route);
                   that.$router.push("/LoginPolicy");
+                } else {
+                  this.$message.error(response.message);
                 }
                 resolve();
               })

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

@@ -312,11 +312,22 @@ export default {
     },
   },
   methods: {
+    nuew() {
+      let arr = "";
+      arr = this.isValidseg(this.FormData.IpList);
+      console.log(this.FormData.IpList);
+      console.log(arr, "1111111");
+    },
     isValidIP: function (ip) {
       let reg =
         /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
       return reg.test(ip);
     },
+    isValidseg(ip) {
+      let reg =
+        /^((?:(?:[01]?\d?\d|2(?:[0-4]\d|5[0-5]))\.){2}(?:[01]?\d?\d|2(?:[0-4]\d|5[0-5])))(?:(?:\.(?:[01]?\d?\d|2(?:[0-4]\d|5[0-5])))(\/(?:(?:[01]?\d?\d|2(?:[0-4]\d|5[0-5]))))?|(\/(?:(?:[01]?\d?\d|2(?:[0-4]\d|5[0-5])))\.(?:(?:[01]?\d?\d|2(?:[0-4]\d|5[0-5])))))$/;
+      return reg.test(ip);
+    },
     save() {
       let that = this;
       let ipArr = [];
@@ -326,13 +337,21 @@ export default {
       let isSave = true;
       if (ipArr.length >= 2) {
         ipArr.forEach((item) => {
-          if (this.isValidIP(item) == false) {
+          if (this.isValidIP(item) == true || this.isValidseg(item) == true) {
+            // this.$message.error("请输入正确IP段,并以;号隔开");
+            isSave = true;
+          } else {
             this.$message.error("请输入正确IP段,并以;号隔开");
             isSave = false;
           }
         });
       } else {
-        if (this.isValidIP(ipArr[0]) == false && ipArr.length) {
+        if (
+          this.isValidIP(ipArr[0]) == true ||
+          this.isValidseg(ipArr[0]) == true
+        ) {
+          isSave = true;
+        } else {
           this.$message.error("请输入正确IP段,并以;号隔开");
           isSave = false;
         }
@@ -360,6 +379,8 @@ export default {
                   this.$message.success("新增成功");
                   this.$store.dispatch("tagsView/delView", this.$route);
                   that.$router.push("/LoginPolicy");
+                } else {
+                  this.$message.error(response.message);
                 }
                 resolve();
               })

+ 100 - 43
src/views/systemManagement/index.vue

@@ -1,7 +1,13 @@
 <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>
@@ -17,8 +23,12 @@
         <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>
@@ -33,8 +43,12 @@
         <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>
@@ -42,7 +56,10 @@
           <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>
@@ -51,7 +68,10 @@
           <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>
@@ -61,7 +81,11 @@
           <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>
@@ -69,7 +93,11 @@
             <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>
@@ -78,8 +106,18 @@
         <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>
@@ -96,7 +134,10 @@
           <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>
@@ -105,7 +146,10 @@
           <span class="ListName">允许试错次数(次数)</span>
           <div class="riaStyle">
             <el-form-item prop="LoginError">
-              <el-input v-model.trim="FormData.LoginError" placeholder="请输入"></el-input>
+              <el-input
+                v-model.trim="FormData.LoginError"
+                placeholder="请输入"
+              ></el-input>
             </el-form-item>
           </div>
           <div class="lineStyle"></div>
@@ -113,8 +157,11 @@
         <div class="boxList">
           <span class="ListName">密码找回联系方式</span>
           <div class="riaStyle">
-            <el-form-item prop="PwdValidtime">
-              <el-input v-model.trim="FormData.PwdMessage" placeholder="请输入"></el-input>
+            <el-form-item prop="PwdMessage">
+              <el-input
+                v-model.trim="FormData.PwdMessage"
+                placeholder="请输入"
+              ></el-input>
             </el-form-item>
           </div>
           <div class="lineStyle"></div>
@@ -122,25 +169,34 @@
         <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'
+import { positiveIntegerValidator } from "@/utils/validate";
+import { lengthValidator } from "@/utils/validate";
 export default {
-  data () {
+  data() {
     return {
       isShow: false,
       FormData: {
@@ -169,8 +225,8 @@ export default {
           {
             validator: positiveIntegerValidator,
             max: 999999999,
-            trigger: ['change', 'blur']
-          }
+            trigger: ["change", "blur"],
+          },
         ],
         LockMins: [
           {
@@ -181,8 +237,8 @@ export default {
           {
             validator: positiveIntegerValidator,
             max: 999999999,
-            trigger: ['change', 'blur']
-          }
+            trigger: ["change", "blur"],
+          },
         ],
         PwdLengthBegin: [
           {
@@ -193,8 +249,8 @@ export default {
           {
             validator: positiveIntegerValidator,
             min: 6,
-            trigger: ['change', 'blur']
-          }
+            trigger: ["change", "blur"],
+          },
         ],
         PwdLengthEnd: [
           {
@@ -205,8 +261,8 @@ export default {
           {
             validator: positiveIntegerValidator,
             max: 22,
-            trigger: ['change', 'blur']
-          }
+            trigger: ["change", "blur"],
+          },
         ],
         PwdValidtime: [
           {
@@ -217,8 +273,8 @@ export default {
           {
             validator: positiveIntegerValidator,
             max: 999999999,
-            trigger: ['change', 'blur']
-          }
+            trigger: ["change", "blur"],
+          },
         ],
         LoginError: [
           {
@@ -229,14 +285,15 @@ export default {
           {
             validator: positiveIntegerValidator,
             max: 999999999,
-            trigger: ['change', 'blur']
-          }
+            trigger: ["change", "blur"],
+          },
         ],
         PwdMessage: [
           {
-            required: true,
-            message: "请输入密码找回联系方式",
-            trigger: "blur",
+            validator: lengthValidator,
+            max: 256,
+            message: "长度在 1 到 256 个字符",
+            trigger: ["change", "blur"],
           },
         ],
       },
@@ -252,7 +309,7 @@ export default {
   },
   watch: {
     FormData: {
-      handler (val) {
+      handler(val) {
         if (
           JSON.stringify(val) != this.oldFormData &&
           this.oldFormData != null
@@ -277,7 +334,7 @@ export default {
     //   }
     // }
   },
-  created () {
+  created() {
     this.getSystemSet();
     // let SystemSetInfo = JSON.parse(this.$store.state.app.systemSet);
     // if (SystemSetInfo) {
@@ -290,10 +347,10 @@ export default {
     // }
   },
   methods: {
-    gotoLogin () {
+    gotoLogin() {
       this.$router.push("/LoginPolicy");
     },
-    getSystemSet () {
+    getSystemSet() {
       GetSystemSet({})
         .then((response) => {
           const { returnData } = response;
@@ -307,7 +364,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]);
@@ -315,7 +372,7 @@ export default {
       }
       console.log(this.FormData);
     },
-    getPwdStruc (data) {
+    getPwdStruc(data) {
       let dataList = data.split("");
       if (dataList[0] == 1) {
         this.checkedList.push("1000");
@@ -330,7 +387,7 @@ export default {
         this.checkedList.push("0001");
       }
     },
-    save () {
+    save() {
       if (this.FormData.PwdStruc == 11) {
         this.FormData.PwdStruc = "0011";
       } else if (this.FormData.PwdStruc == 101) {