From 6a1679594eab95fa8827008d7af11283bcd7ea3e Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期三, 25 十二月 2024 18:33:46 +0800
Subject: [PATCH] ll
---
admin/src/components/common/CommonHeader.vue | 222 +++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 175 insertions(+), 47 deletions(-)
diff --git a/admin/src/components/common/CommonHeader.vue b/admin/src/components/common/CommonHeader.vue
index f4fe589..2a784ef 100644
--- a/admin/src/components/common/CommonHeader.vue
+++ b/admin/src/components/common/CommonHeader.vue
@@ -2,68 +2,53 @@
<div class="common-header">
<div class="header">
<div class="logo">
- <div>{{ title }}</div>
+ <div class="title">{{ title }}</div>
+ <div class="list">
+ <div class="item active">
+ <div>鏈嶅姟涓績</div>
+ <div class="linellae"></div>
+ </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 class="item" @click="handleTest">娴嬭瘯</div> -->
+ </div>
<!-- <div class="title-en">Diagnosis of Intelligent Manufacturing Integrated Service Platfrom</div> -->
</div>
<div class="user">
<el-dropdown v-if="isLogined" trigger="click">
<span class="el-dropdown-link">
<!-- <img v-if="userInfo != null" :src="userInfo.avatar == null ? `${require('@/assets/avatar/man.png')}` : userInfo.avatar" alt="">{{userInfo | displayName}}<i class="el-icon-arrow-down el-icon--right"></i> -->
- <img
- v-if="userInfo != null"
- style="width: 30px !important"
- src="@/assets/avatar/man.png"
- alt=""
- />{{ userInfo | displayName
+ <img v-if="userInfo != null" style="width: 30px !important" src="@/assets/avatar/man.png" alt="" />{{
+ userInfo | displayName
}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
- <el-dropdown-item @click.native="changePwd"
- >淇敼瀵嗙爜</el-dropdown-item
- >
+ <el-dropdown-item @click.native="changePwd">淇敼瀵嗙爜</el-dropdown-item>
<el-dropdown-item @click.native="logout">閫�鍑虹櫥褰�</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<!-- 淇敼瀵嗙爜 -->
- <GlobalAlertWindow
- title="淇敼瀵嗙爜"
- :visible.sync="visible.changePwd"
- @confirm="confirmChangePwd"
- @close="visible.changePwd = false"
- >
- <el-form
- :model="changePwdData.form"
- ref="changePwdDataForm"
- :rules="changePwdData.rules"
- >
+ <GlobalAlertWindow title="淇敼瀵嗙爜" :visible.sync="visible.changePwd"
+ :showClose="userInfo && (!userInfo.needChangePwd || userInfo.needChangePwd == '0')"
+ :showCancel="userInfo && (!userInfo.needChangePwd || userInfo.needChangePwd == '0')" @confirm="confirmChangePwd"
+ @close="visible.changePwd = false">
+ <el-form :model="changePwdData.form" ref="changePwdDataForm" :rules="changePwdData.rules">
<el-form-item label="鍘熷瀵嗙爜" prop="oldPwd" required>
- <el-input
- v-model="changePwdData.form.oldPwd"
- type="password"
- placeholder="璇疯緭鍏ュ師濮嬪瘑鐮�"
- maxlength="30"
- show-password
- ></el-input>
+ <el-input v-model="changePwdData.form.oldPwd" type="password" placeholder="璇疯緭鍏ュ師濮嬪瘑鐮�" maxlength="30"
+ show-password></el-input>
</el-form-item>
<el-form-item label="鏂板瘑鐮�" prop="newPwd" required>
- <el-input
- v-model="changePwdData.form.newPwd"
- type="password"
- placeholder="璇疯緭鍏ユ柊瀵嗙爜"
- maxlength="30"
- show-password
- ></el-input>
+ <el-input v-model="changePwdData.form.newPwd" type="password" placeholder="璇疯緭鍏ユ柊瀵嗙爜锛屽瘑鐮侀渶鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃涓殑鑷冲皯涓ょ"
+ maxlength="20" show-password></el-input>
</el-form-item>
+ <!-- <div style="font-size: 12px;color:#999999">瀵嗙爜闇�鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃涓殑鑷冲皯涓ょ</div> -->
<el-form-item label="纭鏂板瘑鐮�" prop="confirmPwd" required>
- <el-input
- v-model="changePwdData.form.confirmPwd"
- type="password"
- placeholder="璇峰啀娆¤緭鍏ユ柊瀵嗙爜"
- maxlength="30"
- show-password
- ></el-input>
+ <el-input v-model="changePwdData.form.confirmPwd" type="password" placeholder="璇峰啀娆¤緭鍏ユ柊瀵嗙爜" maxlength="20"
+ show-password></el-input>
</el-form-item>
</el-form>
</GlobalAlertWindow>
@@ -74,6 +59,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 },
@@ -86,6 +72,7 @@
data() {
return {
title: process.env.VUE_APP_TITLE,
+ headerNavData: {},
visible: {
// 淇敼瀵嗙爜
changePwd: false
@@ -107,7 +94,8 @@
{ required: true, message: '璇疯緭鍏ュ師濮嬪瘑鐮�' }
],
newPwd: [
- { required: true, message: '璇疯緭鍏ユ柊瀵嗙爜' }
+ { required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' },
+ { validator: this.validatePassword, trigger: 'blur' },
],
confirmPwd: [
{ required: true, message: '璇峰啀娆¤緭鍏ユ柊瀵嗙爜' }
@@ -122,7 +110,16 @@
// return this.$route.meta.title
// }
},
- filters: {
+ created() {
+
+ },
+ mounted() {
+ // needChangePwd 0 : 榛樿瀵嗙爜闇�瑕佷慨鏀癸紝1 涓嶉渶瑕�
+ if (this.userInfo && (!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0')) {
+ this.visible.changePwd = true
+ }
+ },
+ filters: {
// 灞曠ず鍚嶇О
displayName(userInfo) {
if (userInfo == null) {
@@ -142,6 +139,92 @@
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")
+ })
+ },
+ handleTest() {
+ const myWindow = window.open('https://10.50.250.253/portal/ui/index?componentId=dfe&componentMenuId=process_apply')
+ setTimeout(() => {
+ const params = {
+ componentId: 'dfe',
+ componentMenuId: 'process_apply',
+ callback: {
+ method: 'dealTlncMsg', argument: {
+ "msgId": "98c256b9-aaff-11ef-8347-fa163ee2c57c",
+ "moduleId": "dfeFlowTodoModuleId",
+ "msgTitle": "璇峰強鏃跺鐞�13856591439鍙戣捣鐨勮鍋囩敵璇�",
+ "msgStatus": "0",
+ "msgCreateTime": "浠婂ぉ 15:33",
+ "msgCreateTimeIso": "2024-11-25T15:33:42.000+08:00",
+ "serverTime": 1732531014591,
+ "menuCode": "process_apply",
+ "msgStatusStr": "寰呭鐞�",
+ "comId": "dfe",
+ "userId": "13856591439",
+ "extendNoShow": "{\"processInstanceId\":\"98a57fe0-aaff-11ef-8347-fa163ee2c57c\",\"processId\":\"process_dabcfdd39f1b6f46d36a9f4ff6ce1080\",\"param\":{\"sourceType\":\"todo\",\"modelCode\":\"tb_leave_dfe_for_dfe_runtime\",\"processNodeId\":\"UserTask_dde7d83377343a2d5fa1f60c23b023ef\",\"taskId\":\"98c256b9-aaff-11ef-8347-fa163ee2c57c\"},\"process.param.appId\":\"32ca8770-6f85-11ec-b5a3-991864da52a6\",\"appId\":\"32ca8770-6f85-11ec-b5a3-991864da52a6\",\"name\":\"璇峰亣鐢宠\",\"taskId\":\"98c256b9-aaff-11ef-8347-fa163ee2c57c\",\"taskNodeId\":\"UserTask_dde7d83377343a2d5fa1f60c23b023ef\",\"url\":\"/dfe-form/process/tlnc/apply\"}",
+ "targetComId": "dfe",
+ "moduleName": "娴佺▼寰呭姙",
+ "tid": "99cad778-aaff-11ef-9dbf-ff08ba71965c",
+ "msgEndTime": null,
+ "msgEndTimeIso": "",
+ "picUrl": "",
+ "extendJson": "{\"key1\":\"璇峰強鏃跺鐞嗛檲楦块鍙戣捣鐨勮鍋囩敵璇穃"}",
+ "extendParam": null,
+ "extendCascade": null,
+ "createUser": "13856591439",
+ "webCascadeUrl": null,
+ "h5CascadeUrl": null,
+ "cascadeTodoOpenType": null,
+ "cascadeSourceConfigId": null,
+ "h5Url": "/h5/pages/form-page/form-page?returnPath=-1&appId=32ca8770-6f85-11ec-b5a3-991864da52a6&taskId=98c256b9-aaff-11ef-8347-fa163ee2c57c&processNodeId=UserTask_dde7d83377343a2d5fa1f60c23b023ef&modelCode=tb_leave_dfe_for_dfe_runtime&type=flowHandle&component=form-apply&_sn=true",
+ "segmentId": "dfe-form",
+ "lastUsers": "闄堥缚椋�",
+ "currentUsers": "闄堥缚椋�",
+ "todoTypeCode": "dfe@@tlnc_placeholder_tlnc@@dfeFlowTodoModuleId",
+ "currentUserIds": "13856591439",
+ "lastUserIds": "13856591439",
+ "msgDesc": null,
+ "widgetUrl": null,
+ "detailType": null,
+ "widgetWidth": null,
+ "widgetHeight": null,
+ "userIdList": null,
+ "statusName": null,
+ "arriveTime": null,
+ "stayTime": null,
+ "todoType": null,
+ "cascadePort": null,
+ "openMode": null
+ }
+ },
+ msgType: 'tlnc'
+ }
+ let argus = JSON.stringify(params)
+ myWindow.postMessage('{"method":"goToApp","argument":' + argus + '}', '*')
+ }, 3000)
},
// 纭畾淇敼瀵嗙爜
confirmChangePwd() {
@@ -165,10 +248,11 @@
})
.then(() => {
this.$tip.apiSuccess('淇敼鎴愬姛')
+ this.$store.commit('setUserInfo', { needChangePwd: 1 })
this.visible.changePwd = false
})
.catch(e => {
- // this.$tip.apiFailed(e)
+ // this.$tip.apiFailed(e)
})
.finally(() => {
this.isWorking.changePwd = false
@@ -194,9 +278,40 @@
<style scoped lang="scss">
@import "@/assets/style/variables.scss";
+
.common-header {
background-color: #2080f7;
}
+
+.list {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ margin-left: 60px;
+
+ .item {
+ margin-right: 40px;
+ font-size: 16px;
+ font-weight: 400;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: flex-start;
+ height: 40px;
+ cursor: pointer;
+
+ .linellae {
+ width: 64px;
+ height: 2px;
+ background: #FFFFFF;
+ }
+ }
+
+ .active {
+ font-weight: 500;
+ }
+}
+
.header {
overflow: hidden;
// background: #fff;
@@ -207,7 +322,7 @@
.logo {
/* background: url("../../assets/images/top_ic_chilun@2x.png") no-repeat; */
box-sizing: border-box;
- min-width: 280px;
+ min-width: 360px;
height: 56px;
padding: 10px 30px;
// flex-shrink: 0;
@@ -215,6 +330,13 @@
font-size: 22px;
font-weight: 600;
color: #fff;
+ display: flex;
+ align-items: center;
+
+ .title {
+ width: 240px;
+ }
+
// display: inline;
.title-en {
font-size: 11px;
@@ -222,18 +344,22 @@
color: rgb(202, 214, 238);
}
}
+
.user {
- width: 712px;
+ width: 212px;
box-sizing: border-box;
height: 56px;
padding-right: 25px;
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;
}
+
img {
width: 32px;
position: relative;
@@ -242,9 +368,11 @@
}
}
}
+
// 涓嬫媺鑿滃崟妗�
.el-dropdown-menu {
width: 140px;
+
.el-dropdown-menu__item:hover {
background: #e3edfb;
color: $primary-color;
--
Gitblit v1.9.3