fix:新增角色选中子菜单提交时没有带上根菜单id

This commit is contained in:
zy7y 2022-09-18 14:57:17 +08:00
parent e319578676
commit 80947a608e
2 changed files with 31 additions and 21 deletions

View File

@ -4,7 +4,8 @@ import { ref } from 'vue'
export const menuType = {
0: '目录',
1: '菜单',
2: '按钮'
2: '按钮',
3: '数据'
}
// 请求方法颜色映射

View File

@ -1,5 +1,5 @@
<script setup>
import { ref, reactive, onMounted, watch } from 'vue'
import { ref, reactive, onMounted } from 'vue'
import Table from '@/components/table/table.vue'
import { getRoles, queryRole, delRole, putRole, addRole } from '@/service/role'
@ -85,6 +85,15 @@ const newRoleForm = reactive({
menus: []
})
//
const checkedKeys = ref([])
//
const expandedKeys = ref([])
//
const check = (checkedKeys, e) => {
newRoleForm.menus = [...e.halfCheckedKeys, ...checkedKeys]
}
const addClick = () => {
addVisible.value = !addVisible.value
// modal
@ -102,6 +111,8 @@ const onOk = () => {
addVisible.value = !addVisible.value
// 2.
formRef.value.resetFields()
checkedKeys.value = []
expandedKeys.value = []
// 3.
getPageData()
}
@ -113,6 +124,8 @@ const onOk = () => {
const onCancel = () => {
// 2.
formRef.value.resetFields()
checkedKeys.value = []
expandedKeys.value = []
}
/**更新 */
@ -122,6 +135,13 @@ const onCancel = () => {
* @param {} record 行数据
*/
// modal
const putRoleForm = reactive({
name: '',
remark: '',
menus: []
})
// modal
const putClick = (record) => {
putVisible.value = !putVisible.value
@ -132,12 +152,12 @@ const putClick = (record) => {
const getPutModalData = (record) => {
// modal
getMenus().then((res) => (treeData.value = res.data))
//
// ,
getRoleMenu(record.id).then((res) => {
function _mids(menus) {
for (const menu of menus) {
if (menu.childer) {
_mids(menu.childer)
if (menu.children) {
_mids(menu.children)
} else {
putRoleForm.menus.push(menu.id)
}
@ -155,12 +175,7 @@ const putVisible = ref(false)
// modal
const putRoleFormRef = ref()
// modal
const putRoleForm = reactive({
name: '',
remark: '',
menus: []
})
// id 便
const putId = ref()
@ -189,18 +204,10 @@ const onCancelPut = () => {
// tree
const treeData = ref()
// menus
watch(
() => newRoleForm.menus,
(newValue, oldvalue) => {
console.log('menu', newValue, oldvalue)
}
)
</script>
<template>
<div class="user">
<div class="role">
<!-- 查询 -->
<div class="search">
<a-form ref="queryFormRef" layout="inline" :model="queryForm">
@ -246,7 +253,9 @@ watch(
checkable
:tree-data="treeData"
:fieldNames="treeFieldNames"
v-model:checkedKeys="newRoleForm.menus"
@check="check"
v-model:checkedKeys="checkedKeys"
v-model:expandedKeys="expandedKeys"
>
</a-tree>
</a-form-item>