fix:新增角色选中子菜单提交时没有带上根菜单id
This commit is contained in:
parent
e319578676
commit
80947a608e
@ -4,7 +4,8 @@ import { ref } from 'vue'
|
|||||||
export const menuType = {
|
export const menuType = {
|
||||||
0: '目录',
|
0: '目录',
|
||||||
1: '菜单',
|
1: '菜单',
|
||||||
2: '按钮'
|
2: '按钮',
|
||||||
|
3: '数据'
|
||||||
}
|
}
|
||||||
|
|
||||||
// 请求方法颜色映射
|
// 请求方法颜色映射
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref, reactive, onMounted, watch } from 'vue'
|
import { ref, reactive, onMounted } from 'vue'
|
||||||
import Table from '@/components/table/table.vue'
|
import Table from '@/components/table/table.vue'
|
||||||
|
|
||||||
import { getRoles, queryRole, delRole, putRole, addRole } from '@/service/role'
|
import { getRoles, queryRole, delRole, putRole, addRole } from '@/service/role'
|
||||||
@ -85,6 +85,15 @@ const newRoleForm = reactive({
|
|||||||
menus: []
|
menus: []
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 记录选中的子节点
|
||||||
|
const checkedKeys = ref([])
|
||||||
|
// 展开的节点
|
||||||
|
const expandedKeys = ref([])
|
||||||
|
// 选中事件
|
||||||
|
const check = (checkedKeys, e) => {
|
||||||
|
newRoleForm.menus = [...e.halfCheckedKeys, ...checkedKeys]
|
||||||
|
}
|
||||||
|
|
||||||
const addClick = () => {
|
const addClick = () => {
|
||||||
addVisible.value = !addVisible.value
|
addVisible.value = !addVisible.value
|
||||||
// 弹出modal 并获取菜单树
|
// 弹出modal 并获取菜单树
|
||||||
@ -102,6 +111,8 @@ const onOk = () => {
|
|||||||
addVisible.value = !addVisible.value
|
addVisible.value = !addVisible.value
|
||||||
// 2. 重置响应式数据
|
// 2. 重置响应式数据
|
||||||
formRef.value.resetFields()
|
formRef.value.resetFields()
|
||||||
|
checkedKeys.value = []
|
||||||
|
expandedKeys.value = []
|
||||||
// 3. 刷新页面数据
|
// 3. 刷新页面数据
|
||||||
getPageData()
|
getPageData()
|
||||||
}
|
}
|
||||||
@ -113,6 +124,8 @@ const onOk = () => {
|
|||||||
const onCancel = () => {
|
const onCancel = () => {
|
||||||
// 2. 重置响应式数据
|
// 2. 重置响应式数据
|
||||||
formRef.value.resetFields()
|
formRef.value.resetFields()
|
||||||
|
checkedKeys.value = []
|
||||||
|
expandedKeys.value = []
|
||||||
}
|
}
|
||||||
|
|
||||||
/**更新 */
|
/**更新 */
|
||||||
@ -122,6 +135,13 @@ const onCancel = () => {
|
|||||||
* @param {} record 行数据
|
* @param {} record 行数据
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// modal 里表达响应式数据
|
||||||
|
const putRoleForm = reactive({
|
||||||
|
name: '',
|
||||||
|
remark: '',
|
||||||
|
menus: []
|
||||||
|
})
|
||||||
|
|
||||||
// 点击编辑弹modal事件
|
// 点击编辑弹modal事件
|
||||||
const putClick = (record) => {
|
const putClick = (record) => {
|
||||||
putVisible.value = !putVisible.value
|
putVisible.value = !putVisible.value
|
||||||
@ -132,12 +152,12 @@ const putClick = (record) => {
|
|||||||
const getPutModalData = (record) => {
|
const getPutModalData = (record) => {
|
||||||
// 打开编辑的modal
|
// 打开编辑的modal
|
||||||
getMenus().then((res) => (treeData.value = res.data))
|
getMenus().then((res) => (treeData.value = res.data))
|
||||||
// 通过角色获取菜单
|
// 通过角色获取菜单, 已有菜单
|
||||||
getRoleMenu(record.id).then((res) => {
|
getRoleMenu(record.id).then((res) => {
|
||||||
function _mids(menus) {
|
function _mids(menus) {
|
||||||
for (const menu of menus) {
|
for (const menu of menus) {
|
||||||
if (menu.childer) {
|
if (menu.children) {
|
||||||
_mids(menu.childer)
|
_mids(menu.children)
|
||||||
} else {
|
} else {
|
||||||
putRoleForm.menus.push(menu.id)
|
putRoleForm.menus.push(menu.id)
|
||||||
}
|
}
|
||||||
@ -155,12 +175,7 @@ const putVisible = ref(false)
|
|||||||
|
|
||||||
// modal 里的 表单 对象
|
// modal 里的 表单 对象
|
||||||
const putRoleFormRef = ref()
|
const putRoleFormRef = ref()
|
||||||
// modal 里表达响应式数据
|
|
||||||
const putRoleForm = reactive({
|
|
||||||
name: '',
|
|
||||||
remark: '',
|
|
||||||
menus: []
|
|
||||||
})
|
|
||||||
// 记录 数据的 id 方便修改
|
// 记录 数据的 id 方便修改
|
||||||
const putId = ref()
|
const putId = ref()
|
||||||
|
|
||||||
@ -189,18 +204,10 @@ const onCancelPut = () => {
|
|||||||
|
|
||||||
// tree
|
// tree
|
||||||
const treeData = ref()
|
const treeData = ref()
|
||||||
|
|
||||||
// 监听menus
|
|
||||||
watch(
|
|
||||||
() => newRoleForm.menus,
|
|
||||||
(newValue, oldvalue) => {
|
|
||||||
console.log('menu', newValue, oldvalue)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="user">
|
<div class="role">
|
||||||
<!-- 查询 -->
|
<!-- 查询 -->
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<a-form ref="queryFormRef" layout="inline" :model="queryForm">
|
<a-form ref="queryFormRef" layout="inline" :model="queryForm">
|
||||||
@ -246,7 +253,9 @@ watch(
|
|||||||
checkable
|
checkable
|
||||||
:tree-data="treeData"
|
:tree-data="treeData"
|
||||||
:fieldNames="treeFieldNames"
|
:fieldNames="treeFieldNames"
|
||||||
v-model:checkedKeys="newRoleForm.menus"
|
@check="check"
|
||||||
|
v-model:checkedKeys="checkedKeys"
|
||||||
|
v-model:expandedKeys="expandedKeys"
|
||||||
>
|
>
|
||||||
</a-tree>
|
</a-tree>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
Loading…
Reference in New Issue
Block a user