| | |
| | | <div>服务中心</div> |
| | | <div class="linellae"></div> |
| | | </div> |
| | | <div class="item">安防中心</div> |
| | | <div class="item">消防中心</div> |
| | | <div class="item">能管中心</div> |
| | | <div class="item">驾驶舱</div> |
| | | <div class="item" @click="getHeaderNav('0')">安防中心</div> |
| | | <div class="item" @click="getHeaderNav('1')">消控中心</div> |
| | | <div class="item" @click="getHeaderNav('2')">能管中心</div> |
| | | <div class="item" @click="getHeaderNav('3')">驾驶舱</div> |
| | | </div> |
| | | <!-- <div class="title-en">Diagnosis of Intelligent Manufacturing Integrated Service Platfrom</div> --> |
| | | </div> |
| | |
| | | import { mapState, mapMutations } from 'vuex' |
| | | import GlobalAlertWindow from './GlobalAlertWindow' |
| | | import { logout, updatePwd } from '@/api/system/common' |
| | | import { getAppHeaderNav } from '@/api' |
| | | export default { |
| | | name: 'CommonHeader', |
| | | components: { GlobalAlertWindow }, |
| | |
| | | data() { |
| | | return { |
| | | title: process.env.VUE_APP_TITLE, |
| | | headerNavData: {}, |
| | | visible: { |
| | | // 修改密码 |
| | | changePwd: false |
| | |
| | | { required: true, message: '请输入原始密码' } |
| | | ], |
| | | newPwd: [ |
| | | { required: true, message: '请输入新密码' } |
| | | { required: true, message: '请输入密码', trigger: 'blur' }, |
| | | { validator: this.validatePassword, trigger: 'blur' }, |
| | | ], |
| | | confirmPwd: [ |
| | | { required: true, message: '请再次输入新密码' } |
| | |
| | | // title () { |
| | | // return this.$route.meta.title |
| | | // } |
| | | }, |
| | | mounted() { |
| | | console.log('userInfo',this.userInfo); |
| | | |
| | | }, |
| | | filters: { |
| | | // 展示名称 |
| | |
| | | this.visible.changePwd = true |
| | | this.$nextTick(() => { |
| | | this.$refs.changePwdDataForm.resetFields() |
| | | }) |
| | | }, |
| | | validatePassword(rule, value, callback) { |
| | | if (!value) { |
| | | callback(new Error('请输入密码')); |
| | | } else { |
| | | const lengthValid = /^.{6,20}$/.test(value); |
| | | const hasLetter = /[a-zA-Z]/.test(value); |
| | | const hasNumber = /[0-9]/.test(value); |
| | | const hasSpecial = /[!@#$%^&*(),.?":{}|<>]/.test(value); |
| | | |
| | | const typesCount = [hasLetter, hasNumber, hasSpecial].filter(Boolean).length; |
| | | |
| | | if (!lengthValid) { |
| | | callback(new Error('密码长度需为6到20个字符')); |
| | | } else if (typesCount < 2) { |
| | | callback(new Error('密码需包含字母、数字及特殊字符中的至少两种')); |
| | | } else { |
| | | callback(); // 验证通过 |
| | | } |
| | | } |
| | | }, |
| | | getHeaderNav(type){ |
| | | getAppHeaderNav(type).then(res => { |
| | | window.open(res, "_blank"); |
| | | }) |
| | | }, |
| | | // 确定修改密码 |
| | |
| | | background: url("../../assets/images/top_ic_bolang@2x.png") no-repeat; |
| | | flex-shrink: 0; |
| | | text-align: right; |
| | | cursor: pointer; |
| | | .el-dropdown { |
| | | top: 2px; |
| | | color: #fff; |