| | |
| | | <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('7')">后勤中心</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> |
| | |
| | | <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> |
| | |
| | | { 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 |
| | | // } |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | mounted() { |
| | | // needChangePwd 0 : 默认密码需要修改,1 不需要 |
| | | if (this.userInfo && (!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0')) { |
| | | this.visible.changePwd = true |
| | | } |
| | | }, |
| | | filters: { |
| | | // 展示名称 |
| | |
| | | this.$refs.changePwdDataForm.resetFields() |
| | | }) |
| | | }, |
| | | getHeaderNav(type){ |
| | | 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"); |
| | | 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 + '}', '*') |
| | | }, 8000) |
| | | }, |
| | | // 确定修改密码 |
| | | confirmChangePwd() { |
| | |
| | | }) |
| | | .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 |
| | |
| | | |
| | | <style scoped lang="scss"> |
| | | @import "@/assets/style/variables.scss"; |
| | | |
| | | .common-header { |
| | | background-color: #2080f7; |
| | | } |
| | | .list{ |
| | | |
| | | .list { |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-left: 60px; |
| | | .item{ |
| | | |
| | | .item { |
| | | margin-right: 40px; |
| | | font-size: 16px; |
| | | font-weight: 400; |
| | |
| | | justify-content: flex-start; |
| | | height: 40px; |
| | | cursor: pointer; |
| | | .linellae{ |
| | | |
| | | .linellae { |
| | | width: 64px; |
| | | height: 2px; |
| | | background: #FFFFFF; |
| | | } |
| | | } |
| | | .active{ |
| | | |
| | | .active { |
| | | font-weight: 500; |
| | | } |
| | | } |
| | | |
| | | .header { |
| | | overflow: hidden; |
| | | // background: #fff; |
| | |
| | | color: #fff; |
| | | display: flex; |
| | | align-items: center; |
| | | .title{ |
| | | width: 200px; |
| | | |
| | | .title { |
| | | width: 240px; |
| | | } |
| | | |
| | | // display: inline; |
| | | .title-en { |
| | | font-size: 11px; |
| | |
| | | color: rgb(202, 214, 238); |
| | | } |
| | | } |
| | | |
| | | .user { |
| | | width: 212px; |
| | | box-sizing: border-box; |
| | |
| | | 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; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 下拉菜单框 |
| | | .el-dropdown-menu { |
| | | width: 140px; |
| | | |
| | | .el-dropdown-menu__item:hover { |
| | | background: #e3edfb; |
| | | color: $primary-color; |