| | |
| | | * 南京测控: 'njck' |
| | | * 云南昆明供电局:'ynkm' |
| | | */ |
| | | // name: '', |
| | | name: 'sxty', // 请查看alarmPopup是否开启,logo是否开启且为gjdw |
| | | name: '', |
| | | //name: 'sxty', // 请查看alarmPopup是否开启,logo是否开启且为gjdw |
| | | // name: 'tydc', |
| | | // name: 'njck', |
| | | //name: 'ynkm', |
New file |
| | |
| | | /** |
| | | * 获取密码的校验规则 |
| | | * @param type 密码的校验类型 |
| | | * @param num 密码的最小长度 |
| | | * @returns {{msg: string, pattern: string, regVal: boolean}} |
| | | */ |
| | | function getPasswordRule(type, num) { |
| | | let result = { |
| | | pattern: "", |
| | | regVal: false, |
| | | msg: "" |
| | | }; |
| | | switch (Number(type)) { |
| | | case 1: |
| | | result.pattern = new RegExp("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d!@#$%^&*()_+]{"+num+",}$"); |
| | | result.msg="最少"+num+"个字符,至少1个大写字母,1个小写字母和1个数字"; |
| | | break; |
| | | case 2: |
| | | result.pattern = new RegExp("^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+])[a-zA-Z\\d!@#$%^&*()_+]{"+num+",}$"); |
| | | result.msg="最少"+num+"个字符,至少1个大写字母,1个小写字母和1个特殊字符"; |
| | | break; |
| | | case 3: |
| | | result.pattern = new RegExp("^(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*()_+])[a-zA-Z\\d!@#$%^&*()_+]{"+num+",}$"); |
| | | result.msg="最少"+num+"个字符,至少1个大写字母,1个数字和1个特殊字符"; |
| | | break; |
| | | case 4: |
| | | result.pattern = new RegExp("^(?=.*[a-z])(?=.*\\d)(?=.*[!@#$%^&*()_+])[a-zA-Z\\d!@#$%^&*()_+]{"+num+",}$"); |
| | | result.msg = "最少"+num+"个字符,至少1个小写字母,1个数字和1个特殊字符"; |
| | | break; |
| | | default: |
| | | result.pattern = new RegExp("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*()_+])[a-zA-Z\\d!@#$%^&*()_+]{"+num+",}$"); |
| | | result.msg="最少"+num+"个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符"; |
| | | break; |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | export default getPasswordRule; |
| | |
| | | class="dialog-center" |
| | | :modal-append-to-body="false" |
| | | > |
| | | <pwd-change v-if="pwd.show" :visible.sync="pwd.show"></pwd-change> |
| | | <pwd-change v-if="pwd.show" :visible.sync="pwd.show" :name="username"></pwd-change> |
| | | </el-dialog> |
| | | <!-- 短信猫和声光告警的配置 --> |
| | | <el-dialog |
| | |
| | | import UsefulTools from "@/layout/components/UsefulTools.vue"; |
| | | import config from "@/assets/js/config"; |
| | | import HomeTy from "@/views/home/home-ty.vue"; |
| | | import { searchParam } from "@/views/pageSetting/js/api"; |
| | | export default { |
| | | bMapTools: new BMapTools(BMap), |
| | | components: { |
| | |
| | | // 用户登录状态 0-(不做动作) 2-首次登录 3-密码长时间未登录 |
| | | sessionStorage.setItem("useLoginState", "0"); |
| | | }); |
| | | }, |
| | | async searchPasswordRules() { |
| | | try { |
| | | let res = await searchParam({categoryId: 10}); |
| | | let rs = res.data; |
| | | if (rs.code === 1 && rs.data.list.length !== 0) { |
| | | let data = rs.data.list; |
| | | // 读取字符长度 |
| | | sessionStorage.setItem("passwordNum", data[0].status); |
| | | // 读取密码类型 |
| | | sessionStorage.setItem("passwordType", data[1].status); |
| | | } else { |
| | | // 读取字符长度 |
| | | sessionStorage.setItem("passwordNum", "8"); |
| | | // 读取密码类型 |
| | | sessionStorage.setItem("passwordType", "4"); |
| | | } |
| | | }catch (e){ |
| | | // 读取字符长度 |
| | | sessionStorage.setItem("passwordNum", "8"); |
| | | // 读取密码类型 |
| | | sessionStorage.setItem("passwordType", "4"); |
| | | console.log("查询密码规则错误:"+e); |
| | | } |
| | | |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | }, |
| | | }, |
| | | mounted() { |
| | | |
| | | this.searchPasswordRules(); |
| | | |
| | | this.showPasswordMessage(); |
| | | |
| | | this.getMacUks(); |
| | |
| | | <el-input type="password" v-model="params.oldPwd"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="新密码" prop="newPwd"> |
| | | <el-input type="password" v-model="params.newPwd"></el-input> |
| | | <el-input type="password" v-model="params.newPwd" show-password></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="确认密码" prop="enPwd"> |
| | | <el-input type="password" v-model="params.enPwd"></el-input> |
| | | <el-input type="password" v-model="params.enPwd" show-password></el-input> |
| | | </el-form-item> |
| | | <div class="form-footer"> |
| | | <three-btn @click="submitForm">确定</three-btn> |
| | |
| | | |
| | | <script> |
| | | import { checkUserPwd, updateUserPwd } from "@/views/login/js/api" |
| | | import getPasswordRule from "@/assets/js/tools/getPasswordRule"; |
| | | export default { |
| | | name: "PwdChange", |
| | | props: { |
| | | visible: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | name: { |
| | | type: String, |
| | | default: "" |
| | | }, |
| | | }, |
| | | data() { |
| | | let validatePass = (rule, value, callback) => { |
| | | let pwdRegex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z]).{6,30}'); |
| | | if (pwdRegex.test(value)) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('您的密码复杂度太低(密码中必须包含字母、数字、至少6位)')); |
| | | } |
| | | }; |
| | | // 根据密码类型和长度动态生成校验规则 |
| | | let type = sessionStorage.getItem("passwordType"); |
| | | let num = sessionStorage.getItem("passwordNum"); |
| | | type = type?Number(type):5; |
| | | num = num?Number(num):8; |
| | | let passwordRule = getPasswordRule(type, num); |
| | | |
| | | let validatePass = (rule, value, callback) => { |
| | | let name = this.params.userName; |
| | | let pwdRegex = passwordRule.pattern; |
| | | let nameReg = new RegExp(name); |
| | | if (pwdRegex.test(value)) { // 校验密码规则是否正确 |
| | | callback(); |
| | | } else if(nameReg.test(value)) { // 校验密码中是否存在用户名 |
| | | callback(new Error("密码中存在用户名信息")); |
| | | } else { |
| | | callback(new Error(passwordRule.msg)); |
| | | } |
| | | }; |
| | | return { |
| | | params: { |
| | | userName: "", |
| | | oldPwd: "", |
| | | newPwd: "", |
| | | enPwd: "" |
| | |
| | | close() { |
| | | this.$emit("update:visible", false); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.params.userName = this.name; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | |
| | | .form-footer .three-btn { |
| | | margin-left: 12px; |
| | | } |
| | | /deep/ .el-input__icon.el-icon-view.el-input__clear { |
| | | color: #FFFFFF; |
| | | } |
| | | </style> |
| | |
| | | this.prodList.forEach((v) => { |
| | | let flag = arr.filter((val) => val.name == v.name)[0]; |
| | | if (flag) { |
| | | v.good = flag.good; |
| | | v.alarm = flag.alarm; |
| | | v.change = flag.change; |
| | | } else { |
| | | v.good = 0; |
| | | v.alarm = 0; |
| | | v.change = 0; |
| | | } |
| | |
| | | xLabel: ["劣化", "损坏"], |
| | | sData: [Ores.alarm, Ores.change], |
| | | colorList: [ |
| | | // ["#00fefe", "#23b5f5"], |
| | | ["#f8f38d", "#23b5f5"], |
| | | ["#51eab2", "#23b5f5"], |
| | | ], |
| | |
| | | .then(res => { |
| | | this.loading = false; |
| | | this.$layer.msg("修改成功"); |
| | | // 读取字符长度 |
| | | sessionStorage.setItem("passwordNum", this.passwordNum.status); |
| | | // 读取密码类型 |
| | | sessionStorage.setItem("passwordType", this.passwordType.status); |
| | | }) |
| | | .catch(error => { |
| | | this.loading = false; |