-
+
@@ -127,6 +147,7 @@ const state = reactive({
addType: 1, // 1-新增本级 2-新增下级
newMenuId: 0, // 新增菜单时用来指定menu_id,达到选中效果
timer: null, // 定时器
+ delDialog: false,
})
const moveIndex = computed({
@@ -150,7 +171,7 @@ watch(() => state.search,(n,o) => {
}, 500);
}) // 树形搜索值
-const getMenuTree = (type) => {
+const getMenuTree = (type,id) => {
axios
.get(`/apaas/system/v5/menu/tree`)
.then((res) => {
@@ -165,7 +186,10 @@ const getMenuTree = (type) => {
state.menuTree && state.menuTree.setCurrentKey(state.data[0].menu_id);
handleNodeClick(state.data[0]);
}
- }else { // 新建,上下移,初始化时默认选中节点
+ }else { // 上下移,初始化时默认选中节点 新建选中新增的节点
+ if (id) {
+ findData(state.data,id)
+ }
if (state.selectData) {
state.menuTree && state.menuTree.setCurrentKey(state.selectData.menu_id);
handleNodeClick(state.selectData);
@@ -182,6 +206,18 @@ const getMenuTree = (type) => {
})
} // 获取菜单树
+const findData = (arr,id) => {
+ arr.forEach(e => {
+ if (e.menu_id == id) {
+ state.selectData = e
+ }else {
+ if (e.Child && e.Child.length > 0) {
+ findData(e.Child,id)
+ }
+ }
+ })
+} // 处理数据 用于新增菜单后选中新增的菜单
+
const findIndex= (code,arr) => {
arr.forEach((e,i) => {
if (e.menu_id == code) {
@@ -274,7 +310,7 @@ const fileAction = (val,data,parent,disabled=false) => {
}
state.menuTree.insertAfter(newChild,parent? parent.Child[parent.Child.length-1] : state.data[state.data.length -1])
state.menuTree && state.menuTree.setCurrentKey(newChild.menu_id);
- handleNodeClick(newChild);
+ handleNodeClick(newChild);
state.newMenuId++
}else if (val == 2) { // 新建下级菜单
if (disabled) {
@@ -294,22 +330,16 @@ const fileAction = (val,data,parent,disabled=false) => {
}
state.menuTree.append(newChild,data)
state.menuTree && state.menuTree.setCurrentKey(newChild.menu_id);
- handleNodeClick(newChild);
+ handleNodeClick(newChild);
state.selectParentData = data
state.newMenuId++
}else if (val == 3) { // 删除菜单
- axios
- .delete(`/apaas/system/v5/menu/${data.id}`)
- .then((res) => {
- if (res.data.code == 200) {
- ElMessage.success(res.data.msg)
- state.selectData = null
- let type = parent ? 1 : 2 // 1--有父级 2--无父级
- getMenuTree(type)
- }else {
- ElMessage.error(res.data.data)
- }
- })
+ if (data.state == 1) {
+ ElMessage.error("删除内容中有启用状态的数据,不可删除!")
+ return
+ }
+ state.delDialog = true
+
}else if (val == 4) { // 菜单上移
if (disabled) {
return
@@ -360,6 +390,22 @@ const fileAction = (val,data,parent,disabled=false) => {
} // 清除表单验证
} // 各种操作按钮
+const deleteData = () => {
+ axios
+ .delete(`/apaas/system/v5/menu/${state.selectData.id}`)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage.success(res.data.msg)
+ state.selectData = null
+ let type = state.selectParentData ? 1 : 2 // 1--有父级 2--无父级
+ getMenuTree(type)
+ state.delDialog = false
+ }else {
+ ElMessage.error(res.data.data)
+ }
+ })
+}
+
const changeSort = (data,nextObj) => {
let params = [
{
@@ -427,7 +473,7 @@ const saveMenu = (el,type) => {
if (res.data.code == 200) {
ElMessage.success(res.data.msg)
state.selectData = null
- getMenuTree()
+ getMenuTree(null,res.data.data)
}else {
ElMessage.error(res.data.data)
}
@@ -457,6 +503,7 @@ const {
selectData,
menuFormData,
addType,
+ delDialog,
} = toRefs(state)
diff --git a/src/page/main/develop/menu/menu-form.vue b/src/page/main/develop/menu/menu-form.vue
index 05bc4abb2bed09c8ca530ea18ca615e40b804270..707e828a3b4ee4261117dbd571372148139108fb 100644
--- a/src/page/main/develop/menu/menu-form.vue
+++ b/src/page/main/develop/menu/menu-form.vue
@@ -40,7 +40,7 @@
/>
-
+
@@ -182,7 +182,6 @@ const searchIcon = () => {
} // 图标筛选
const setForm = (data) => {
- console.log(data)
if (data.level && data.level == 1) {
state.topLevel = true
}else {
@@ -194,7 +193,6 @@ const setForm = (data) => {
}
}
state.typeDisFlag = data.p_menu_type
- console.log(state.groupFlag)
if (data.id) { // 编辑状态
state.radioDisabled = true
}else {
diff --git a/src/page/main/system/role/index.vue b/src/page/main/system/role/index.vue
index 5f594ebb9f23caa66d16ee321dbaeb4d4ea2c314..8d5cfc6c7d026037bb0c24b2dcebd87f155396f0 100644
--- a/src/page/main/system/role/index.vue
+++ b/src/page/main/system/role/index.vue
@@ -49,7 +49,7 @@
:labels="['否','是']"
:values="[0,1]"
v-model="row.state"
- :disabled="row.role_type == 1"
+ :disabled="row.role_type == 1 || row.role_type == 2"
/>