<template> <div class="index-header"> <el-header class="poins-el-header"> <div style="display:flex"> <div style="display:flex"> <!-- <div class="logo" style="padding-left: 30px;"> <img style="width: 42px;height: 24px" :src="require('~/assets/icons/logo/cmn_logo-circle.svg')" alt="国际结算系统"> </div> --> <div class="topic"> <div class="self_header_label" style="margin-top: 2px;"><h2>{{$t('home.新晨国际结算系统')}}</h2> <p> version 3.1</p></div> </div> </div> <!-- <div> <span class="line">|</span> </div> --> </div> <div class="header_right"> <!-- <span class="el-dropdown">登录时间:{{header.date}}</span> --> <!-- 消息提示 --> <Notification ref="notification" /> <el-dropdown @command="changeOrgs"> <span class="el-dropdown-link"> {{header.curOrg.name}} <i class="el-icon-caret-bottom el-icon--right"> </i> </span> <el-dropdown-menu slot="dropdown"> <!--dropItem,2--> <el-dropdown-item v-for="item in header.orgList" :key="item.id" :command="item.id"> {{item.name}} </el-dropdown-item> <!--dropItem,2--> </el-dropdown-menu> </el-dropdown> <el-dropdown @command="changeRoles"> <span class="el-dropdown-link"> {{header.curRole.name}} <i class="el-icon-caret-bottom el-icon--right"> </i> </span> <el-dropdown-menu slot="dropdown"> <!--dropItem,1--> <el-dropdown-item v-for="item in header.roleList" :key="item.id" :command="item.id"> {{item.name}} </el-dropdown-item> <!--dropItem,1--> </el-dropdown-menu> </el-dropdown> <el-dropdown ref="personDropdown" @command="logoutTo"> <span class="el-dropdown-link"> <i class="el-icon-user" style="font-size: 16px;"></i> {{header.username}} <i class="el-icon-caret-bottom el-icon--right"> </i> </span> <el-dropdown-menu slot="dropdown"> <el-dropdown-item divided command="setPassWord" v-if="showModifyPass"> 修改密码 </el-dropdown-item> <!--dropItem,9--> <!--dropItem,3--> <el-dropdown-item divided class="skin-dropitem" command="changeskin"> 切换皮肤 <div class="skin-btns"> <div> <!--按钮,1--> <el-button size="mini" circle @click.native="changeSkin('purple')"> </el-button> <!--按钮,1--> <!--按钮,2--> <el-button size="mini" circle @click.native="changeSkin('purple')"> </el-button> <!--按钮,2--> </div> </div> </el-dropdown-item> <!--dropItem,3--> <!--dropItem,4--> <el-dropdown-item divided command="logout"> 退出登录 </el-dropdown-item> </el-dropdown-menu> </el-dropdown> <!--下拉菜单,1--> <!-- <el-dropdown @command="changeRoles"> <span class="el-dropdown-link"> {{header.curRole.name}} <i class="el-icon-caret-bottom el-icon--right"> </i> </span> <el-dropdown-menu slot="dropdown"> <el-dropdown-item v-for="item in header.roleList" :key="item.id" :command="item.id"> {{item.name}} </el-dropdown-item> </el-dropdown-menu> </el-dropdown> --> <!--下拉菜单,1--> <!--下拉菜单,2--> <!-- <el-dropdown @command="changeOrgs"> <span class="el-dropdown-link"> {{header.curOrg.name}} <i class="el-icon-caret-bottom el-icon--right"> </i> </span> <el-dropdown-menu slot="dropdown"> <el-dropdown-item v-for="item in header.orgList" :key="item.id" :command="item.id"> {{item.name}} </el-dropdown-item> </el-dropdown-menu> </el-dropdown> --> <!--下拉菜单,2--> <!--<div class="user_pic"> <img src="../assets/img/pic_user.jpg"> </div>--> </div> </el-header> <!--对话框,1--> <el-dialog :visible.sync="openPassWord" title="密码修改" v-dialogDrag :modal-append-to-body="true" :lock-scroll="true" :show-close="true" :close-on-click-modal="true" :close-on-press-escape="true" width="40%" @closed="closeForm"> <el-form ref="userForm" :model="user" :rules="userRules" label-width="6em"> <el-form-item label="新密码" prop="logPass"> <el-input type="password" autocomplete="off" v-model="user.logPass"></el-input> </el-form-item> <el-form-item label="确认密码" prop="confirmPass"> <el-input type="password" autocomplete="off" v-model="user.confirmPass"></el-input> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="closeForm">关闭</el-button> <el-button type="primary" @click="doSubmit">提交</el-button> </span> </el-dialog> <!--对话框,1--> <el-dialog :visible.sync="openSignInOut" title="签到/签退" v-dialogDrag :modal-append-to-body="true" :lock-scroll="true" :show-close="true" :close-on-click-modal="true" :close-on-press-escape="true" width="40%" @closed="closeFormSign"> <c-col :span="24"> <el-button @click="SignIn">签到</el-button> <el-button @click="SignOut">签退</el-button> </c-col> <span slot="footer" class="dialog-footer"> <el-button @click="closeFormSign">关闭</el-button> </span> </el-dialog> </div> </template> <script > // 消息提示 import Api from "~/service/Api"; import Notification from "./Notification"; import * as poinMessage from "@/util/isc-common/messageManage.js"; import { Header, DropdownMenu, DropdownItem, Dropdown, Button } from "element-ui"; import { mapMutations, mapActions } from "vuex"; import { setTimeout } from "timers"; import trancode from "~/page/tranCode.js"; const publicPath = require("@/config/isc-publicPath.js"); export default { props: { header: { type: Object }, user: { type: Object } // isUsrCfg:'', }, mixins: [trancode], data() { return { isUsrCfg: false, publicPath: publicPath, openPassWord: false, showModifyPass: true, openSignInOut: false, logout: { fileName: "loginverify.json", basePath: "{{basePath}}", method: "get", scheme: "{{schemes}}", host: "{{host}}", consume: "0", produce: "0", uri: "/login/logout" }, saveUserDetail: { fileName: "users.json", basePath: "{{basePath}}", method: "post", scheme: "{{schemes}}", host: "{{host}}", consume: "0", produce: "0", uri: "/users/userrest" }, changeOrg: { fileName: "loginverify.json", basePath: "{{basePath}}", method: "get", scheme: "{{schemes}}", host: "{{host}}", consume: "0", produce: "0", uri: "/login/changeOrg/{orgId}" }, changeRole: { fileName: "loginverify.json", basePath: "{{basePath}}", method: "get", scheme: "{{schemes}}", host: "{{host}}", consume: "0", produce: "0", uri: "/login/changeRole/{roleId}" }, userRules: { logPass: [{ required: true, message: "请输入密码", trigger: "blur" }], confirmPass: [ { required: true, validator: this.validatePass2, trigger: "blur" } ] } }; }, mounted() { // 初始化获取未读消息数 this.$refs.notification.getData(); // //获取柜员任务分配器配置 // this.getTskUsr(); }, components: { "el-header": Header, "el-dropdown-menu": DropdownMenu, "el-dropdown-item": DropdownItem, "el-dropdown": Dropdown, "el-button": Button, Notification }, methods: { poin_initManage(messageKey, callback, execBefore) { messageKey.vue = this; poinMessage.messageManage(messageKey, callback, execBefore); }, validatePass2(rule, value, callback) { if (value === "") { callback(new Error("请再次输入密码")); } else if (value !== this.user.logPass) { callback(new Error("两次输入密码不一致!")); } else { callback(); } }, doSubmit() { //提交密码修改 var $this = this; this.$refs.userForm.validate(valid => { if (valid) { this.poin_initManage( { id: "saveUserDetail" }, function aftersave(response, responseData) { if (response && response.ok) { $this.$message({ message: "密码修改成功!", center: true, type: "success" }); //刷新列表 $this.openPassWord = false; } else { $this.$message({ message: "修改密码失败!", center: true, type: "error" }); } }, messageObj => { messageObj.setLoading(true); //后台要接收数字类型 messageObj.setData({ details: this.user }); } ); } else { return false; } }); }, closeForm() { //关闭弹出框 this.$refs.userForm.resetFields(); this.user.logPass = ""; this.user.confirmPass = ""; this.openPassWord = false; }, closeFormSign() { this.openSignInOut = false; }, changeOrgs(param) { this.$emit("changeOrgs", param); }, changeRoles(param) { this.$emit("changeRoles", param); }, SignIn() { let param = { extkey: this.user.logName, isLogin: "N", branch: this.user.workorg }; this.$emit("SignIn", param); }, SignOut() { let param = { extkey: this.user.logName, branch: this.user.workorg }; this.$emit("SignOut", param); }, //获取任务分配器中柜员配置 getTskUsr() { setTimeout(() => { let usr = this.user; console.log("user1:", usr); console.log("user2:", usr.logName); let param = { extkey: usr.logName }; Api.post("/public/taskdist/user/queryTaskUser", param).then(ress => { if (ress.respCode == SUCCESS) { // console.log("extkey:",res.data.extkey) if (ress.data) { this.isUsrCfg = true; } console.log("isUsrCfg:", this.isUsrCfg); } }); }, 800); }, logoutTo(param) { //退出登录 if ("logout" == param) { let isColseTags = this.$store.state.rulebpmn.tagsArry.some((item) => { return this.getTransactionCode().includes(item.name) }) // let isHaveTags = this.$store.state.rulebpmn.tagsArry.some((item)=>{ // return this.getExCode().indexOf(item.name.toUpperCase()) < 0 // }) //判断是否有未关闭的页签 if(this.$store.state.rulebpmn.tagsArry.length>1 && isColseTags){ this.$alert('当前账户有未关闭的业务,请先关闭页签', '提示', { confirmButtonText: '确定' }) return } // this.poin_initManage( // { id: "logout" }, // (response, responseData, messageObj) => { // if (response && response.ok) { // // 删除session // sessionStorage.clear(); // if (JSON.parse(responseData).responseText != "iam") { // // 非IAM登陆 // // 跳转到登陆页 // this.$router.replace("/login"); // } else { // window.opener = ""; // window.open("", "_self"); // window.close(); // } // } // }, // messageObj => { // messageObj.responseType = "text/html"; // } // ); sessionStorage.clear(); this.$router.replace("/login"); } else if ("setPassWord" == param) { //修改密码 this.openPassWord = true; } // else if("signInOut" == param){ // //签到/签退 // this.openSignInOut = true; // } }, ...mapActions([ "changeSkin", "goRefreshRoute", "setMenuCollapse", "setUserName" ]) } }; </script> <style scoped lang="less"> @header-height: 60px; .header { display: flex; } .poins-el-header { display: flex; align-items: center; justify-content: space-between; padding-left: 0px; .topic { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; margin-left: 10px; border-left: 1px solid hsla(0, 0%, 100%, 0.27); padding-left: 20px; .top { font-size: 16px; height: 22px; width: 160px; color: #ffffff; line-height: 22px; font-weight: 500px; letter-spacing: 1.5px; } .meduim { width: 1px; height: 26px; border: 1px solid #ffffff; } .down { font-size: 7px; height: 9px; width: 160px; color: #ffffff; line-height: 9px; } } .header_right { display: flex; align-items: center; justify-content: space-between; .el-dropdown { margin-right: 30px; font-size: 14px; color: #ffffff; &:last-child { margin-right: 0; } &::hover { cursor: pointer; } } .user_pic { display: inline-block; overflow: hidden; width: 40px; height: 40px; border-radius: 50%; vertical-align: middle; margin-right: 20px; img { width: 100%; } } } .el-dropdown-selfdefine { cursor: pointer; } .logo img { height: @header-height - 1; vertical-align: bottom; } .self_header_label{ /* color: antiquewhite; */ color: #fff; position: relative; display: inline-table; vertical-align: top; font-family: "KaiTi"; //border-left: 1px solid antiquewhite; h2 { margin: 0; padding: 0; font-size: 18px; display: inline; } p { font-family: "Times New Roman", Times, serif; text-align: center; font-style: italic; margin: 0; padding: 0; font-size: 14px; display: inline; } } } </style>