|
@@ -33,21 +33,38 @@
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- 用户名下拉菜单 -->
|
|
<!-- 用户名下拉菜单 -->
|
|
- <el-dropdown class="user-name" trigger="click">
|
|
|
|
- <span class="el-dropdown-link">
|
|
|
|
- {{username}}
|
|
|
|
- <el-icon color="#ffffff" :size="16"><CaretBottom/></el-icon>
|
|
|
|
- </span>
|
|
|
|
|
|
+ <el-dropdown class="user-name" trigger="click" @command="handleCommand">
|
|
|
|
+ <div>
|
|
|
|
+ <el-tooltip effect="dark" :content="app.takeSetting('usName')">
|
|
|
|
+ <div class="el-dropdown-link">
|
|
|
|
+ {{app.takeSetting("usName")}}
|
|
|
|
+ </div>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ <el-icon color="#ffffff" :size="16"><CaretBottom/></el-icon>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
<template #dropdown>
|
|
<template #dropdown>
|
|
<el-dropdown-menu>
|
|
<el-dropdown-menu>
|
|
|
|
|
|
- <el-dropdown-item>Action 1</el-dropdown-item>
|
|
|
|
- <el-dropdown-item>Action 2</el-dropdown-item>
|
|
|
|
|
|
+ <el-dropdown-item command="modifypwd">修改密码</el-dropdown-item>
|
|
|
|
+ <el-dropdown-item command="logout">退出系统</el-dropdown-item>
|
|
</el-dropdown-menu>
|
|
</el-dropdown-menu>
|
|
</template>
|
|
</template>
|
|
</el-dropdown>
|
|
</el-dropdown>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
|
|
+ <el-dialog v-model="editDialogShow" title="修改密码" :close-on-click-modal="false"
|
|
|
|
+ :destroy-on-close="true"
|
|
|
|
+ >
|
|
|
|
+ <Modifypwd ref="editWin"></Modifypwd>
|
|
|
|
+ <template #footer>
|
|
|
|
+ <span class="dialog-footer">
|
|
|
|
+ <el-button @click="DialogCloseHandle('cancel')">取消</el-button>
|
|
|
|
+ <el-button type="primary" @click="DialogCloseHandle('sure')">确定</el-button>
|
|
|
|
+ </span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script setup>
|
|
<script setup>
|
|
@@ -57,6 +74,9 @@
|
|
import { useRouter } from "vue-router"
|
|
import { useRouter } from "vue-router"
|
|
import headerAPI from "../api/header.js"
|
|
import headerAPI from "../api/header.js"
|
|
import navmenuItem from "./NavmenuItem.vue"
|
|
import navmenuItem from "./NavmenuItem.vue"
|
|
|
|
+ import app from "../utils/app.js"
|
|
|
|
+ import {ElMessageBox,ElMessage} from 'element-plus'
|
|
|
|
+ import Modifypwd from './Modifypwd.vue'
|
|
|
|
|
|
const store=useHomeStore()
|
|
const store=useHomeStore()
|
|
|
|
|
|
@@ -64,6 +84,10 @@
|
|
|
|
|
|
const menus = ref([])
|
|
const menus = ref([])
|
|
|
|
|
|
|
|
+ const editDialogShow=ref(false)
|
|
|
|
+
|
|
|
|
+ const editWin=ref(null)
|
|
|
|
+
|
|
const getData = () => {
|
|
const getData = () => {
|
|
headerAPI.fetchData().then( resp => {
|
|
headerAPI.fetchData().then( resp => {
|
|
console.log(resp)
|
|
console.log(resp)
|
|
@@ -84,28 +108,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- const username=ref('测试用户')
|
|
|
|
|
|
|
|
- const message=ref(2)
|
|
|
|
|
|
|
|
- //const store = useStore();
|
|
|
|
|
|
+ const message=ref(2)
|
|
|
|
|
|
- //const collapse = computed(() => store.state.collapse);
|
|
|
|
const { collapse } = storeToRefs(store)
|
|
const { collapse } = storeToRefs(store)
|
|
|
|
|
|
const collapseChage = () => {
|
|
const collapseChage = () => {
|
|
- //store.commit("handleCollapse", !collapse.value);
|
|
|
|
- collapse.value=!collapse.value
|
|
|
|
|
|
+ collapse.value=!collapse.value
|
|
};
|
|
};
|
|
|
|
|
|
// 用户名下拉菜单选择事件
|
|
// 用户名下拉菜单选择事件
|
|
const router = useRouter();
|
|
const router = useRouter();
|
|
const handleCommand = (command) => {
|
|
const handleCommand = (command) => {
|
|
- if (command == "loginout") {
|
|
|
|
- localStorage.removeItem("ms_username");
|
|
|
|
- router.push("/login");
|
|
|
|
- } else if (command == "user") {
|
|
|
|
- router.push("/user");
|
|
|
|
|
|
+ if (command == "logout") {
|
|
|
|
+ logout()
|
|
|
|
+ } else if (command == "modifypwd") {
|
|
|
|
+ editDialogShow.value=true
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
@@ -117,6 +136,42 @@
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ const logout=()=>{
|
|
|
|
+ ElMessageBox.confirm(
|
|
|
|
+ '确定要退出系统吗?',
|
|
|
|
+ '操作确认',
|
|
|
|
+ {
|
|
|
|
+ confirmButtonText:'确定',
|
|
|
|
+ cancelButtonText:'取消',
|
|
|
|
+ type: 'warning'
|
|
|
|
+ }
|
|
|
|
+ ).then(()=>{
|
|
|
|
+ headerAPI.logout(app.takeSetting('token'))
|
|
|
|
+ app.clearSetting()
|
|
|
|
+ router.push("/login")
|
|
|
|
+ }).catch(err=>{
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const DialogCloseHandle=async (tag)=>{
|
|
|
|
+ if(tag==='cancel'){
|
|
|
|
+ editDialogShow.value=false
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+
|
|
|
|
+ try{
|
|
|
|
+ await editWin.value.submitForm()
|
|
|
|
+ editDialogShow.value=false
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ catch(err){
|
|
|
|
+ console.log(err)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
</script>
|
|
</script>
|
|
<style scoped>
|
|
<style scoped>
|
|
.header {
|
|
.header {
|
|
@@ -148,7 +203,7 @@
|
|
|
|
|
|
|
|
|
|
line-height: 60px;
|
|
line-height: 60px;
|
|
- width:calc(100vw - 402px);
|
|
|
|
|
|
+ width:calc(100vw - 422px);
|
|
}
|
|
}
|
|
.header .nav-menu:deep(.el-menu--horizontal){
|
|
.header .nav-menu:deep(.el-menu--horizontal){
|
|
border:none;
|
|
border:none;
|
|
@@ -163,7 +218,7 @@
|
|
|
|
|
|
.header-right {
|
|
.header-right {
|
|
float: right;
|
|
float: right;
|
|
- padding-right: 20px;
|
|
|
|
|
|
+ padding-right: 5px;
|
|
|
|
|
|
}
|
|
}
|
|
.header-user-con {
|
|
.header-user-con {
|
|
@@ -200,12 +255,17 @@
|
|
}
|
|
}
|
|
.user-name {
|
|
.user-name {
|
|
margin-left: 10px;
|
|
margin-left: 10px;
|
|
- width:80px;
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
.el-dropdown-link {
|
|
.el-dropdown-link {
|
|
color: #fff;
|
|
color: #fff;
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
|
+ max-width:95px;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ text-overflow:ellipsis;
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ display: inline-block;
|
|
}
|
|
}
|
|
.el-dropdown-menu__item {
|
|
.el-dropdown-menu__item {
|
|
text-align: center;
|
|
text-align: center;
|