Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
FLIPPED-AURORA
gin-vue-admin
提交
26066ce7
G
gin-vue-admin
项目概览
FLIPPED-AURORA
/
gin-vue-admin
11 个月 前同步成功
通知
327
Star
18154
Fork
5505
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gin-vue-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
26066ce7
编写于
12月 30, 2021
作者:
Mr.奇淼(
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
菜单管理setup改造完成
上级
13cd4eba
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
1335 addition
and
1323 deletion
+1335
-1323
web/src/view/superAdmin/authority/authority.vue
web/src/view/superAdmin/authority/authority.vue
+0
-1
web/src/view/superAdmin/authority/components/datas.vue
web/src/view/superAdmin/authority/components/datas.vue
+0
-2
web/src/view/superAdmin/menu/icon.vue
web/src/view/superAdmin/menu/icon.vue
+1137
-1141
web/src/view/superAdmin/menu/menu.vue
web/src/view/superAdmin/menu/menu.vue
+198
-179
未找到文件。
web/src/view/superAdmin/authority/authority.vue
浏览文件 @
26066ce7
...
...
@@ -179,7 +179,6 @@ const datas = ref(null)
const
autoEnter
=
(
activeName
,
oldActiveName
)
=>
{
const
paneArr
=
[
menus
,
apis
,
datas
]
if
(
oldActiveName
)
{
console
.
log
(
paneArr
[
oldActiveName
].
value
.
needConfirm
)
if
(
paneArr
[
oldActiveName
].
value
.
needConfirm
)
{
paneArr
[
oldActiveName
].
value
.
enterAndNext
()
paneArr
[
oldActiveName
].
value
.
needConfirm
=
false
...
...
web/src/view/superAdmin/authority/components/datas.vue
浏览文件 @
26066ce7
...
...
@@ -67,7 +67,6 @@ init()
// 暴露给外层使用的切换拦截统一方法
const
enterAndNext
=
()
=>
{
console
.
log
(
123
)
authDataEnter
()
}
...
...
@@ -97,7 +96,6 @@ const getChildrenId = (row, arrBox) => {
}
// 提交
const
authDataEnter
=
async
()
=>
{
console
.
log
(
123
,
props
.
row
)
const
res
=
await
setDataAuthority
(
props
.
row
)
if
(
res
.
code
===
0
)
{
ElMessage
({
type
:
'
success
'
,
message
:
'
资源设置成功
'
})
...
...
web/src/view/superAdmin/menu/icon.vue
浏览文件 @
26066ce7
此差异已折叠。
点击以展开。
web/src/view/superAdmin/menu/menu.vue
浏览文件 @
26066ce7
...
...
@@ -188,9 +188,7 @@
</div>
</template>
<
script
>
// 获取列表内容封装在mixins内部 getTableData方法 初始化已封装完成
<
script
setup
>
import
{
updateBaseMenu
,
getMenuList
,
...
...
@@ -198,207 +196,228 @@ import {
deleteBaseMenu
,
getBaseMenuById
}
from
'
@/api/menu
'
import
infoList
from
'
@/mixins/infoList
'
import
icon
from
'
@/view/superAdmin/menu/icon.vue
'
import
warningBar
from
'
@/components/warningBar/warningBar.vue
'
export
default
{
name
:
'
Menus
'
,
components
:
{
icon
,
warningBar
import
{
reactive
,
ref
}
from
'
vue
'
import
{
ElMessage
,
ElMessageBox
}
from
'
element-plus
'
const
rules
=
reactive
({
path
:
[{
required
:
true
,
message
:
'
请输入菜单name
'
,
trigger
:
'
blur
'
}],
component
:
[
{
required
:
true
,
message
:
'
请输入文件路径
'
,
trigger
:
'
blur
'
}
],
'
meta.title
'
:
[
{
required
:
true
,
message
:
'
请输入菜单展示名称
'
,
trigger
:
'
blur
'
}
]
})
const
page
=
ref
(
1
)
const
total
=
ref
(
0
)
const
pageSize
=
ref
(
999
)
const
tableData
=
ref
([])
const
searchInfo
=
ref
({})
// 查询
const
getTableData
=
async
()
=>
{
const
table
=
await
getMenuList
({
page
:
page
.
value
,
pageSize
:
pageSize
.
value
,
...
searchInfo
.
value
})
if
(
table
.
code
===
0
)
{
tableData
.
value
=
table
.
data
.
list
total
.
value
=
table
.
data
.
total
page
.
value
=
table
.
data
.
page
pageSize
.
value
=
table
.
data
.
pageSize
}
}
getTableData
()
// 新增参数
const
addParameter
=
(
form
)
=>
{
if
(
!
form
.
parameters
)
{
form
.
value
.
parameters
=
[]
}
form
.
parameters
.
push
({
type
:
'
query
'
,
key
:
''
,
value
:
''
})
}
// 删除参数
const
deleteParameter
=
(
parameters
,
index
)
=>
{
parameters
.
splice
(
index
,
1
)
}
const
form
=
ref
({
ID
:
0
,
path
:
''
,
name
:
''
,
hidden
:
''
,
parentId
:
''
,
component
:
''
,
meta
:
{
title
:
''
,
icon
:
''
,
defaultMenu
:
false
,
closeTab
:
false
,
keepAlive
:
false
},
mixins
:
[
infoList
],
data
()
{
return
{
checkFlag
:
false
,
listApi
:
getMenuList
,
dialogFormVisible
:
false
,
dialogTitle
:
'
新增菜单
'
,
menuOption
:
[
{
ID
:
'
0
'
,
title
:
'
根菜单
'
parameters
:
[]
})
const
changeName
=
()
=>
{
form
.
value
.
path
=
form
.
value
.
name
}
const
handleClose
=
(
done
)
=>
{
initForm
()
done
()
}
// 删除菜单
const
deleteMenu
=
(
ID
)
=>
{
ElMessageBox
.
confirm
(
'
此操作将永久删除所有角色下该菜单, 是否继续?
'
,
'
提示
'
,
{
confirmButtonText
:
'
确定
'
,
cancelButtonText
:
'
取消
'
,
type
:
'
warning
'
})
.
then
(
async
()
=>
{
const
res
=
await
deleteBaseMenu
({
ID
})
if
(
res
.
code
===
0
)
{
ElMessage
({
type
:
'
success
'
,
message
:
'
删除成功!
'
})
if
(
tableData
.
value
.
length
===
1
&&
page
.
value
>
1
)
{
page
.
value
--
}
],
form
:
{
ID
:
0
,
path
:
''
,
name
:
''
,
hidden
:
''
,
parentId
:
''
,
component
:
''
,
meta
:
{
title
:
''
,
icon
:
''
,
defaultMenu
:
false
,
closeTab
:
false
,
keepAlive
:
false
},
parameters
:
[]
},
rules
:
{
path
:
[{
required
:
true
,
message
:
'
请输入菜单name
'
,
trigger
:
'
blur
'
}],
component
:
[
{
required
:
true
,
message
:
'
请输入文件路径
'
,
trigger
:
'
blur
'
}
],
'
meta.title
'
:
[
{
required
:
true
,
message
:
'
请输入菜单展示名称
'
,
trigger
:
'
blur
'
}
]
},
isEdit
:
false
,
test
:
''
}
},
async
created
()
{
this
.
pageSize
=
999
await
this
.
getTableData
()
},
methods
:
{
addParameter
(
form
)
{
if
(
!
form
.
parameters
)
{
this
.
form
.
parameters
=
[]
getTableData
()
}
form
.
parameters
.
push
({
type
:
'
query
'
,
key
:
''
,
value
:
''
})
.
catch
(()
=>
{
ElMessage
({
type
:
'
info
'
,
message
:
'
已取消删除
'
})
},
deleteParameter
(
parameters
,
index
)
{
parameters
.
splice
(
index
,
1
)
},
changeName
()
{
this
.
form
.
path
=
this
.
form
.
name
},
setOptions
()
{
this
.
menuOption
=
[
{
ID
:
'
0
'
,
title
:
'
根目录
'
}
]
this
.
setMenuOptions
(
this
.
tableData
,
this
.
menuOption
,
false
)
},
setMenuOptions
(
menuData
,
optionsData
,
disabled
)
{
menuData
&&
})
}
// 初始化弹窗内表格方法
const
menuForm
=
ref
(
null
)
const
checkFlag
=
ref
(
false
)
const
initForm
=
()
=>
{
checkFlag
.
value
=
false
menuForm
.
value
.
resetFields
()
form
.
value
=
{
ID
:
0
,
path
:
''
,
name
:
''
,
hidden
:
''
,
parentId
:
''
,
component
:
''
,
meta
:
{
title
:
''
,
icon
:
''
,
defaultMenu
:
false
,
keepAlive
:
''
}
}
}
// 关闭弹窗
const
dialogFormVisible
=
ref
(
false
)
const
closeDialog
=
()
=>
{
initForm
()
dialogFormVisible
.
value
=
false
}
// 添加menu
const
enterDialog
=
async
()
=>
{
menuForm
.
value
.
validate
(
async
valid
=>
{
if
(
valid
)
{
let
res
if
(
isEdit
.
value
)
{
res
=
await
updateBaseMenu
(
form
.
value
)
}
else
{
res
=
await
addBaseMenu
(
form
.
value
)
}
if
(
res
.
code
===
0
)
{
ElMessage
({
type
:
'
success
'
,
message
:
isEdit
.
value
?
'
编辑成功
'
:
'
添加成功!
'
})
getTableData
()
}
initForm
()
dialogFormVisible
.
value
=
false
}
})
}
const
menuOption
=
ref
([
{
ID
:
'
0
'
,
title
:
'
根菜单
'
}
])
const
setOptions
=
()
=>
{
menuOption
.
value
=
[
{
ID
:
'
0
'
,
title
:
'
根目录
'
}
]
setMenuOptions
(
tableData
.
value
,
menuOption
.
value
,
false
)
}
const
setMenuOptions
=
(
menuData
,
optionsData
,
disabled
)
=>
{
menuData
&&
menuData
.
forEach
(
item
=>
{
if
(
item
.
children
&&
item
.
children
.
length
)
{
const
option
=
{
title
:
item
.
meta
.
title
,
ID
:
String
(
item
.
ID
),
disabled
:
disabled
||
item
.
ID
===
this
.
form
.
ID
,
disabled
:
disabled
||
item
.
ID
===
form
.
value
.
ID
,
children
:
[]
}
this
.
setMenuOptions
(
setMenuOptions
(
item
.
children
,
option
.
children
,
disabled
||
item
.
ID
===
this
.
form
.
ID
disabled
||
item
.
ID
===
form
.
value
.
ID
)
optionsData
.
push
(
option
)
}
else
{
const
option
=
{
title
:
item
.
meta
.
title
,
ID
:
String
(
item
.
ID
),
disabled
:
disabled
||
item
.
ID
===
this
.
form
.
ID
disabled
:
disabled
||
item
.
ID
===
form
.
value
.
ID
}
optionsData
.
push
(
option
)
}
})
},
handleClose
(
done
)
{
this
.
initForm
()
done
()
},
// 删除菜单
deleteMenu
(
ID
)
{
this
.
$confirm
(
'
此操作将永久删除所有角色下该菜单, 是否继续?
'
,
'
提示
'
,
{
confirmButtonText
:
'
确定
'
,
cancelButtonText
:
'
取消
'
,
type
:
'
warning
'
})
.
then
(
async
()
=>
{
const
res
=
await
deleteBaseMenu
({
ID
})
if
(
res
.
code
===
0
)
{
this
.
$message
({
type
:
'
success
'
,
message
:
'
删除成功!
'
})
if
(
this
.
tableData
.
length
===
1
&&
this
.
page
>
1
)
{
this
.
page
--
}
this
.
getTableData
()
}
})
.
catch
(()
=>
{
this
.
$message
({
type
:
'
info
'
,
message
:
'
已取消删除
'
})
})
},
// 初始化弹窗内表格方法
initForm
()
{
this
.
checkFlag
=
false
this
.
$refs
.
menuForm
.
resetFields
()
this
.
form
=
{
ID
:
0
,
path
:
''
,
name
:
''
,
hidden
:
''
,
parentId
:
''
,
component
:
''
,
meta
:
{
title
:
''
,
icon
:
''
,
defaultMenu
:
false
,
keepAlive
:
''
}
}
},
// 关闭弹窗
closeDialog
()
{
this
.
initForm
()
this
.
dialogFormVisible
=
false
},
// 添加menu
async
enterDialog
()
{
this
.
$refs
.
menuForm
.
validate
(
async
valid
=>
{
if
(
valid
)
{
let
res
if
(
this
.
isEdit
)
{
res
=
await
updateBaseMenu
(
this
.
form
)
}
else
{
res
=
await
addBaseMenu
(
this
.
form
)
}
if
(
res
.
code
===
0
)
{
this
.
$message
({
type
:
'
success
'
,
message
:
this
.
isEdit
?
'
编辑成功
'
:
'
添加成功!
'
})
this
.
getTableData
()
}
this
.
initForm
()
this
.
dialogFormVisible
=
false
}
})
},
// 添加菜单方法,id为 0则为添加根菜单
addMenu
(
id
)
{
this
.
dialogTitle
=
'
新增菜单
'
this
.
form
.
parentId
=
String
(
id
)
this
.
isEdit
=
false
this
.
setOptions
()
this
.
dialogFormVisible
=
true
},
// 修改菜单方法
async
editMenu
(
id
)
{
this
.
dialogTitle
=
'
编辑菜单
'
const
res
=
await
getBaseMenuById
({
id
})
this
.
form
=
res
.
data
.
menu
this
.
isEdit
=
true
this
.
setOptions
()
this
.
dialogFormVisible
=
true
}
}
// 添加菜单方法,id为 0则为添加根菜单
const
isEdit
=
ref
(
false
)
const
dialogTitle
=
ref
(
'
新增菜单
'
)
const
addMenu
=
(
id
)
=>
{
dialogTitle
.
value
=
'
新增菜单
'
form
.
value
.
parentId
=
String
(
id
)
isEdit
.
value
=
false
setOptions
()
dialogFormVisible
.
value
=
true
}
// 修改菜单方法
const
editMenu
=
async
(
id
)
=>
{
dialogTitle
.
value
=
'
编辑菜单
'
const
res
=
await
getBaseMenuById
({
id
})
form
.
value
=
res
.
data
.
menu
isEdit
.
value
=
true
setOptions
()
dialogFormVisible
.
value
=
true
}
</
script
>
<
script
>
// 获取列表内容封装在mixins内部 getTableData方法 初始化已封装完成
export
default
{
name
:
'
Menus
'
,
methods
:
{
}
}
</
script
>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录