|
@ -202,6 +202,12 @@ const openExportList = () => { |
|
|
const openChangePassword = () => { |
|
|
const openChangePassword = () => { |
|
|
showPasswordDialog.value = true |
|
|
showPasswordDialog.value = true |
|
|
} |
|
|
} |
|
|
|
|
|
// 關閉修改密碼的清空邏輯 |
|
|
|
|
|
const changePasswordRef = ref(null) |
|
|
|
|
|
const handleClosePasswordDialog = () => { |
|
|
|
|
|
changePasswordRef.value?.resetFields() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<template> |
|
|
<template> |
|
@ -223,59 +229,47 @@ const openChangePassword = () => { |
|
|
</div> |
|
|
</div> |
|
|
<el-card style="min-height: 90%;"> |
|
|
<el-card style="min-height: 90%;"> |
|
|
|
|
|
|
|
|
<el-menu |
|
|
|
|
|
:router="true" |
|
|
|
|
|
class="el-menu-vertical-demo" |
|
|
|
|
|
:default-active="$route.path" |
|
|
|
|
|
> |
|
|
|
|
|
<!-- 递归渲染菜单层级 --> |
|
|
|
|
|
<template v-for="menu in menuList" :key="menu.id"> |
|
|
|
|
|
<!-- 有子菜单的父级菜单(menuType=2 且存在children) --> |
|
|
|
|
|
<el-sub-menu |
|
|
|
|
|
v-if="menu.children && menu.children.length > 0" |
|
|
|
|
|
:index="menu.id.toString()" |
|
|
|
|
|
> |
|
|
|
|
|
<template #title> |
|
|
|
|
|
<el-icon><Folder /></el-icon> |
|
|
|
|
|
<span>{{ menu.menuName }}</span> |
|
|
|
|
|
</template> |
|
|
|
|
|
<!-- 子菜单 --> |
|
|
|
|
|
<template v-for="child in menu.children" :key="child.id"> |
|
|
|
|
|
<!-- 子菜单为叶子节点(无children) --> |
|
|
|
|
|
<el-menu-item |
|
|
|
|
|
v-if="!child.children || child.children.length === 0" |
|
|
|
|
|
:index="getRoutePath(child)" |
|
|
|
|
|
> |
|
|
|
|
|
<span>{{ child.menuName }}</span> |
|
|
|
|
|
</el-menu-item> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 子菜单有下级 --> |
|
|
|
|
|
<el-sub-menu |
|
|
|
|
|
v-else |
|
|
|
|
|
:index="child.id.toString()" |
|
|
|
|
|
> |
|
|
|
|
|
<template #title> |
|
|
|
|
|
|
|
|
<el-menu :router="true" class="el-menu-vertical-demo" :default-active="$route.path"> |
|
|
|
|
|
<!-- 递归渲染菜单层级 --> |
|
|
|
|
|
<template v-for="menu in menuList" :key="menu.id"> |
|
|
|
|
|
<!-- 有子菜单的父级菜单(menuType=2 且存在children) --> |
|
|
|
|
|
<el-sub-menu v-if="menu.children && menu.children.length > 0" :index="menu.id.toString()"> |
|
|
|
|
|
<template #title> |
|
|
|
|
|
<el-icon> |
|
|
|
|
|
<Folder /> |
|
|
|
|
|
</el-icon> |
|
|
|
|
|
<span>{{ menu.menuName }}</span> |
|
|
|
|
|
</template> |
|
|
|
|
|
<!-- 子菜单 --> |
|
|
|
|
|
<template v-for="child in menu.children" :key="child.id"> |
|
|
|
|
|
<!-- 子菜单为叶子节点(无children) --> |
|
|
|
|
|
<el-menu-item v-if="!child.children || child.children.length === 0" :index="getRoutePath(child)"> |
|
|
<span>{{ child.menuName }}</span> |
|
|
<span>{{ child.menuName }}</span> |
|
|
</template> |
|
|
|
|
|
<!-- 嵌归 下一级--> |
|
|
|
|
|
<template v-for="grandChild in child.children" :key="grandChild.id"> |
|
|
|
|
|
<el-menu-item :index="getRoutePath(grandChild)"> |
|
|
|
|
|
<span>{{ grandChild.menuName }}</span> |
|
|
|
|
|
</el-menu-item> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-sub-menu> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-sub-menu> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 无子菜单的一级菜单 --> |
|
|
|
|
|
<el-menu-item |
|
|
|
|
|
v-else |
|
|
|
|
|
:index="getRoutePath(menu)" |
|
|
|
|
|
> |
|
|
|
|
|
<el-icon><Folder /></el-icon> |
|
|
|
|
|
<span>{{ menu.menuName }}</span> |
|
|
|
|
|
</el-menu-item> |
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
</el-menu-item> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 子菜单有下级 --> |
|
|
|
|
|
<el-sub-menu v-else :index="child.id.toString()"> |
|
|
|
|
|
<template #title> |
|
|
|
|
|
<span>{{ child.menuName }}</span> |
|
|
|
|
|
</template> |
|
|
|
|
|
<!-- 嵌归 下一级--> |
|
|
|
|
|
<template v-for="grandChild in child.children" :key="grandChild.id"> |
|
|
|
|
|
<el-menu-item :index="getRoutePath(grandChild)"> |
|
|
|
|
|
<span>{{ grandChild.menuName }}</span> |
|
|
|
|
|
</el-menu-item> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-sub-menu> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-sub-menu> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 无子菜单的一级菜单 --> |
|
|
|
|
|
<el-menu-item v-else :index="getRoutePath(menu)"> |
|
|
|
|
|
<el-icon> |
|
|
|
|
|
<Folder /> |
|
|
|
|
|
</el-icon> |
|
|
|
|
|
<span>{{ menu.menuName }}</span> |
|
|
|
|
|
</el-menu-item> |
|
|
|
|
|
</template> |
|
|
</el-menu> |
|
|
</el-menu> |
|
|
|
|
|
|
|
|
</el-card> |
|
|
</el-card> |
|
@ -337,16 +331,11 @@ const openChangePassword = () => { |
|
|
</template> |
|
|
</template> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<!-- 自定义密码修改弹窗组件 --> |
|
|
|
|
|
<el-dialog |
|
|
|
|
|
v-model="showPasswordDialog" |
|
|
|
|
|
:center="true" |
|
|
|
|
|
width="470px" |
|
|
|
|
|
> |
|
|
|
|
|
<ChangePassword @confirm="showPasswordDialog = false"/> |
|
|
|
|
|
|
|
|
<!-- 自定义密码修改弹窗组件 父組件和子組件通信--> |
|
|
|
|
|
<el-dialog v-model="showPasswordDialog" :center="true" width="470px" @close="handleClosePasswordDialog"> |
|
|
|
|
|
<ChangePassword ref="changePasswordRef" @confirm="showPasswordDialog = false" /> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|