ll
liukangdong
2024-10-18 e6acb39a2475e211f2c1decc45a95c868239c25f
admin/src/components/common/CommonHeader.vue
@@ -8,10 +8,10 @@
            <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>
@@ -84,6 +84,7 @@
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 },
@@ -96,6 +97,7 @@
  data() {
    return {
      title: process.env.VUE_APP_TITLE,
      headerNavData: {},
      visible: {
        // 修改密码
        changePwd: false
@@ -117,7 +119,8 @@
            { required: true, message: '请输入原始密码' }
          ],
          newPwd: [
            { required: true, message: '请输入新密码' }
          { required: true, message: '请输入密码', trigger: 'blur' },
          { validator: this.validatePassword, trigger: 'blur' },
          ],
          confirmPwd: [
            { required: true, message: '请再次输入新密码' }
@@ -131,6 +134,10 @@
    // title () {
    //   return this.$route.meta.title
    // }
  },
  mounted() {
    console.log('userInfo',this.userInfo);
  },
  filters: {
    // 展示名称
@@ -151,6 +158,31 @@
      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");
      })
    },
    // 确定修改密码
@@ -270,6 +302,7 @@
    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;