Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
shop-vite-main
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
front-base-project
shop-vite-main
Commits
bf0864e6
提交
bf0864e6
authored
12月 17, 2024
作者:
郁骅焌
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
查询修改
上级
aee71cc5
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
459 行增加
和
16 行删除
+459
-16
components.d.ts
library/build/unplugin/components.d.ts
+1
-0
roleManagement.ts
src/api/roleManagement.ts
+17
-6
index.ts
src/utils/index.ts
+1
-1
request.ts
src/utils/request.ts
+9
-0
index.vue
src/views/system/menuManagement/index.vue
+17
-5
index.vue
src/views/system/postManagement/index.vue
+7
-4
index.vue
src/views/system/roleManagement/index.vue
+269
-0
RoleManagementEdit2.vue
.../roleManagement/vabAutoComponents/RoleManagementEdit2.vue
+135
-0
index.vue
src/views/system/userManagement/index.vue
+3
-0
没有找到文件。
library/build/unplugin/components.d.ts
浏览文件 @
bf0864e6
...
...
@@ -162,6 +162,7 @@ declare module 'vue' {
RankList
:
typeof
import
(
'./../../../src/views/index/vabAutoComponents/RankList.vue'
)[
'default'
]
Recommendation
:
typeof
import
(
'./../../../src/views/index/vabAutoComponents/Recommendation.vue'
)[
'default'
]
RoleManagementEdit
:
typeof
import
(
'./../../../src/views/setting/roleManagement/vabAutoComponents/RoleManagementEdit.vue'
)[
'default'
]
RoleManagementEdit2
:
typeof
import
(
'./../../../src/views/system/roleManagement/vabAutoComponents/RoleManagementEdit2.vue'
)[
'default'
]
RouterLink
:
typeof
import
(
'vue-router'
)[
'RouterLink'
]
RouterView
:
typeof
import
(
'vue-router'
)[
'RouterView'
]
SegmentedBasic
:
typeof
import
(
'./../../../src/views/vab/segmented/vabAutoComponents/SegmentedBasic.vue'
)[
'default'
]
...
...
src/api/roleManagement.ts
浏览文件 @
bf0864e6
import
request
from
'/@/utils/request'
/** 查询角色列表 */
export
function
getList
(
params
?:
any
)
{
return
request
({
url
:
'/
roleManagement/getL
ist'
,
url
:
'/
system/role/l
ist'
,
method
:
'get'
,
params
,
})
}
export
const
doEdit
=
(
data
:
any
)
=>
{
/** 新增角色 */
export
const
doAdd
=
(
data
:
any
)
=>
{
return
request
({
url
:
'/
roleManagement/doEdit
'
,
url
:
'/
system/role
'
,
method
:
'post'
,
data
,
})
}
export
const
doDelete
=
(
data
:
any
)
=>
{
/** 编辑角色 */
export
const
doEdit
=
(
data
:
any
)
=>
{
return
request
({
url
:
'/
roleManagement/doDelet
e'
,
method
:
'p
os
t'
,
url
:
'/
system/rol
e'
,
method
:
'p
u
t'
,
data
,
})
}
/** 删除角色 */
export
const
doDelete
=
(
roleId
:
any
)
=>
{
return
request
({
url
:
`/system/role/
${
roleId
}
`
,
method
:
'delete'
,
})
}
src/utils/index.ts
浏览文件 @
bf0864e6
...
...
@@ -213,7 +213,7 @@ export function moveElement(array: any, oldIndex: any, newIndex: any) {
// 添加日期范围
export
function
addDateRange
(
params
:
any
,
dateRange
:
any
,
propName
:
string
)
{
let
search
=
params
let
search
=
Object
.
assign
({},
params
)
search
.
params
=
typeof
search
.
params
===
'object'
&&
search
.
params
!==
null
&&
!
Array
.
isArray
(
search
.
params
)
?
search
.
params
:
{}
dateRange
=
Array
.
isArray
(
dateRange
)
?
dateRange
:
[]
if
(
dateRange
.
length
===
0
)
{
...
...
src/utils/request.ts
浏览文件 @
bf0864e6
...
...
@@ -5,6 +5,7 @@ import router from '/@/router'
import
{
useSettingsStore
}
from
'/@/store/modules/settings'
import
{
useUserStore
}
from
'/@/store/modules/user'
import
CODE_MESSAGE
from
'/@/utils/codeMessage'
import
{
tansParams
}
from
'/@/utils/index'
import
{
isArray
}
from
'/@/utils/validate'
import
{
addErrorLog
,
needErrorLog
}
from
'/@vab/plugins/errorLog'
import
{
gp
}
from
'/@vab/plugins/vab'
...
...
@@ -54,6 +55,14 @@ const requestConfig = (config: any): any => {
// 规范写法 不可随意自定义
if
(
token
&&
!
isToken
)
config
.
headers
[
'Authorization'
]
=
`Bearer
${
token
}
`
// get请求映射params参数
if
(
config
.
method
===
'get'
&&
config
.
params
)
{
let
url
=
`
${
config
.
url
}
?
${
tansParams
(
config
.
params
)}
`
url
=
url
.
slice
(
0
,
-
1
)
config
.
params
=
{}
config
.
url
=
url
}
if
(
config
.
data
&&
config
.
headers
[
'Content-Type'
]
===
'application/x-www-form-urlencoded;charset=UTF-8'
)
config
.
data
=
stringify
(
config
.
data
)
...
...
src/views/system/menuManagement/index.vue
浏览文件 @
bf0864e6
...
...
@@ -50,15 +50,27 @@
<el-table-column
label=
"菜单名称"
prop=
"menuName"
:show-overflow-tooltip=
"true"
width=
"160"
/>
<el-table-column
align=
"center"
label=
"图标"
prop=
"icon"
width=
"160"
/>
<el-table-column
label=
"排序"
prop=
"orderNum"
width=
"60"
/>
<el-table-column
label=
"权限标识"
prop=
"perms"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"组件路径"
prop=
"component"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"状态"
prop=
"status"
width=
"80"
>
<el-table-column
label=
"权限标识"
min-width=
"160"
prop=
"perms"
/>
<el-table-column
label=
"组件路径"
min-width=
"300"
prop=
"component"
/>
<el-table-column
label=
"类型"
prop=
"menuType"
width=
"100"
>
<template
#
default=
"scope"
>
<el-tag
v-if=
"scope.row.menuType === 'M'"
type=
"primary"
>
目录
</el-tag>
<el-tag
v-if=
"scope.row.menuType === 'C'"
type=
"success"
>
菜单
</el-tag>
<el-tag
v-if=
"scope.row.menuType === 'F'"
type=
"info"
>
按钮
</el-tag>
</
template
>
</el-table-column>
<el-table-column
label=
"显示"
prop=
"menuType"
width=
"100"
>
<
template
#
default=
"scope"
>
<dict-tag
:options=
"sys_show_hide"
:value=
"scope.row.visible"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"状态"
prop=
"status"
width=
"100"
>
<
template
#
default=
"scope"
>
<dict-tag
:options=
"sys_normal_disable"
:value=
"scope.row.status"
/>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"创建时间"
prop=
"createTime"
width=
"160"
/>
<el-table-column
align=
"center"
fixed=
"right"
label=
"操作"
min-width=
"
18
0"
>
<el-table-column
align=
"center"
fixed=
"right"
label=
"操作"
min-width=
"
24
0"
>
<
template
#
default=
"scope"
>
<el-button
icon=
"Edit"
link
type=
"primary"
@
click=
"handleUpdate(scope.row)"
>
修改
</el-button>
<el-button
icon=
"Plus"
link
type=
"primary"
@
click=
"handleAdd(scope.row)"
>
新增
</el-button>
...
...
@@ -83,7 +95,7 @@ defineOptions({
})
const
{
proxy
}
=
getCurrentInstance
()
as
any
const
{
sys_normal_disable
}
=
proxy
.
useDict
(
'sys_normal_disabl
e'
)
const
{
sys_normal_disable
,
sys_show_hide
}
=
proxy
.
useDict
(
'sys_normal_disable'
,
'sys_show_hid
e'
)
const
{
exit
,
enter
,
isFullscreen
:
_isFullscreen
}
=
useFullscreen
()
const
isFullscreen
=
ref
<
boolean
>
(
false
)
...
...
src/views/system/postManagement/index.vue
浏览文件 @
bf0864e6
<
template
>
<div
class=
"comprehensive-table-container auto-height-container"
>
<div
class=
"comprehensive-table-container auto-height-container"
:class=
"
{ 'fullscreen-container': isFullscreen }"
>
<vab-query-form>
<vab-query-form-top-panel>
<el-form
ref=
"queryRef"
inline
label-width=
"70px"
:model=
"queryForm"
@
submit
.
prevent
>
...
...
@@ -89,6 +89,9 @@
<el-button
icon=
"Delete"
link
type=
"primary"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button>
</
template
>
</el-table-column>
<
template
#
empty
>
<el-empty
class=
"vab-data-empty"
description=
"暂无数据"
/>
</
template
>
</el-table>
<vab-pagination
:current-page=
"queryForm.pageNum"
...
...
@@ -115,12 +118,12 @@ const { sys_normal_disable } = proxy.useDict('sys_normal_disable')
const
{
exit
,
enter
,
isFullscreen
:
_isFullscreen
}
=
useFullscreen
()
const
tableRef
=
ref
<
TableInstance
>
(
)
const
isFullscreen
=
ref
<
boolean
>
(
false
)
const
fold
=
ref
<
boolean
>
(
true
)
const
tableRef
=
ref
<
TableInstance
>
()
const
editRef
=
ref
<
any
>
(
null
)
const
list
=
ref
<
any
>
([])
const
listLoading
=
ref
<
boolean
>
(
true
)
const
isFullscreen
=
ref
<
boolean
>
(
false
)
const
total
=
ref
<
number
>
(
0
)
const
selectRows
=
ref
<
any
>
([])
...
...
@@ -250,7 +253,7 @@ function handleExport() {
{
...
queryForm
,
},
`
user
_
${
Date
.
now
()}
.xlsx`
`
post
_
${
Date
.
now
()}
.xlsx`
)
}
</
script
>
src/views/system/roleManagement/index.vue
0 → 100755
浏览文件 @
bf0864e6
<
template
>
<div
class=
"role-management-container auto-height-container"
:class=
"
{ 'fullscreen-container': isFullscreen }">
<vab-query-form>
<vab-query-form-top-panel>
<el-form
ref=
"queryRef"
inline
label-width=
"70px"
:model=
"queryForm"
@
submit
.
prevent
>
<el-form-item
label=
"角色名称"
prop=
"roleName"
>
<el-input
v-model=
"queryForm.roleName"
clearable
placeholder=
"请输入角色名称"
style=
"width: 240px"
@
keyup
.
enter=
"handleQuery"
/>
</el-form-item>
<el-form-item
v-if=
"!fold"
label=
"权限字符"
prop=
"roleKey"
>
<el-input
v-model=
"queryForm.roleKey"
clearable
placeholder=
"请输入权限字符"
style=
"width: 240px"
@
keyup
.
enter=
"handleQuery"
/>
</el-form-item>
<el-form-item
v-if=
"!fold"
label=
"状态"
prop=
"status"
>
<el-select
v-model=
"queryForm.status"
clearable
placeholder=
"角色状态"
style=
"width: 240px"
>
<el-option
v-for=
"dict in sys_normal_disable"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
v-if=
"!fold"
label=
"创建时间"
prop=
"dateRange"
style=
"width: 308px"
>
<el-date-picker
v-model=
"queryForm.dateRange"
end-placeholder=
"结束日期"
range-separator=
"-"
start-placeholder=
"开始日期"
type=
"daterange"
value-format=
"YYYY-MM-DD"
/>
</el-form-item>
<el-form-item>
<el-button
icon=
"Search"
:loading=
"listLoading"
native-type=
"submit"
type=
"primary"
@
click=
"handleQuery"
>
查询
</el-button>
<el-button
icon=
"Refresh"
@
click=
"resetQuery"
>
重置
</el-button>
<el-button
class=
"hidden-xs-only"
text
type=
"primary"
@
click=
"handleFold"
>
<span
v-if=
"fold"
>
展开
</span>
<span
v-else
>
合并
</span>
<vab-icon
class=
"vab-dropdown"
:class=
"
{ 'vab-dropdown-active': fold }" icon="arrow-up-s-line" />
</el-button>
</el-form-item>
</el-form>
</vab-query-form-top-panel>
<vab-query-form-left-panel>
<el-button
icon=
"Plus"
type=
"primary"
@
click=
"handleAdd"
>
添加
</el-button>
<el-button
icon=
"Delete"
type=
"danger"
@
click=
"handleDelete"
>
删除
</el-button>
<el-button
icon=
"Upload"
plain
type=
"warning"
@
click=
"handleExport"
>
导出
</el-button>
</vab-query-form-left-panel>
<vab-query-form-right-panel>
<div
class=
"custom-table-right-tools"
>
<el-button
@
click=
"handleQuery"
>
<vab-icon
icon=
"refresh-line"
/>
</el-button>
<el-button
@
click=
"clickFullScreen"
>
<vab-icon
:icon=
"isFullscreen ? 'fullscreen-exit-fill' : 'fullscreen-fill'"
/>
</el-button>
<el-popover
popper-class=
"custom-table-checkbox"
>
<template
#
reference
>
<el-button>
<vab-icon
icon=
"settings-line"
/>
</el-button>
</
template
>
<vab-draggable
v-model=
"columns"
:animation=
"600"
target=
".el-checkbox-group"
>
<el-checkbox-group
v-model=
"checkList"
>
<el-checkbox
v-for=
"item in columns"
:key=
"item.label"
:disabled=
"item.disableCheck"
:label=
"item.label"
:value=
"item.label"
>
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</vab-draggable>
</el-popover>
</div>
</vab-query-form-right-panel>
</vab-query-form>
<el-table
ref=
"tableRef"
v-loading=
"listLoading"
border
:data=
"list"
@
selection-change=
"setSelectRows"
>
<el-table-column
type=
"selection"
width=
"50"
/>
<el-table-column
v-for=
"(item, index) in finallyColumns"
:key=
"index"
align=
"center"
:fixed=
"item.fixed"
:label=
"item.label"
:min-width=
"item.minWidth || 160"
:prop=
"item.prop"
show-overflow-tooltip
:sortable=
"item.sortable"
>
<
template
#
default=
"scope"
>
<span
v-if=
"item.label === '状态'"
>
<el-switch
v-model=
"scope.row.status"
active-value=
"0"
inactive-value=
"1"
@
change=
"handleStatusChange(scope.row)"
/>
</span>
<span
v-else
>
{{
scope
.
row
[
item
.
prop
]
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
fixed=
"right"
label=
"操作"
min-width=
"160"
>
<
template
#
default=
"scope"
>
<el-button
icon=
"Edit"
link
type=
"primary"
@
click=
"handleUpdate(scope.row)"
>
修改
</el-button>
<el-button
icon=
"Delete"
link
type=
"primary"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button>
</
template
>
</el-table-column>
<
template
#
empty
>
<el-empty
class=
"vab-data-empty"
description=
"暂无数据"
/>
</
template
>
</el-table>
<vab-pagination
:current-page=
"queryForm.pageNo"
:page-size=
"queryForm.pageSize"
:total=
"total"
@
current-change=
"handleCurrentChange"
@
size-change=
"handleSizeChange"
/>
<role-management-edit2
ref=
"editRef"
@
fetch-data=
"fetchData"
/>
</div>
</template>
<
script
lang=
"ts"
setup
>
import
type
{
TableInstance
}
from
'element-plus'
import
{
doDelete
,
getList
}
from
'/@/api/roleManagement'
defineOptions
({
name
:
'RoleManagement'
,
})
const
{
proxy
}
=
getCurrentInstance
()
as
any
const
{
sys_normal_disable
}
=
proxy
.
useDict
(
'sys_normal_disable'
)
const
{
exit
,
enter
,
isFullscreen
:
_isFullscreen
}
=
useFullscreen
()
const
isFullscreen
=
ref
<
boolean
>
(
false
)
const
fold
=
ref
<
boolean
>
(
true
)
const
tableRef
=
ref
<
TableInstance
>
()
const
editRef
=
ref
<
any
>
(
null
)
const
list
=
ref
<
any
>
([])
const
listLoading
=
ref
<
boolean
>
(
true
)
const
total
=
ref
<
number
>
(
0
)
const
selectRows
=
ref
<
any
>
([])
const
checkList
=
ref
<
any
>
([])
const
queryForm
=
reactive
<
any
>
({
pageNum
:
1
,
pageSize
:
10
,
roleName
:
undefined
,
roleKey
:
undefined
,
status
:
undefined
,
dateRange
:
[],
})
const
columns
=
ref
<
any
>
([
{
label
:
'角色编号'
,
prop
:
'roleId'
,
minWidth
:
120
,
checked
:
true
},
{
label
:
'角色名称'
,
prop
:
'roleName'
,
minWidth
:
150
,
checked
:
true
},
{
label
:
'权限字符'
,
prop
:
'roleKey'
,
minWidth
:
150
,
checked
:
true
},
{
label
:
'显示顺序'
,
prop
:
'roleSort'
,
minWidth
:
100
,
checked
:
true
},
{
label
:
'状态'
,
prop
:
'status'
,
minWidth
:
120
,
checked
:
true
},
{
label
:
'创建时间'
,
prop
:
'createTime'
,
minWidth
:
160
,
checked
:
true
},
])
const
finallyColumns
=
computed
(()
=>
columns
.
value
.
filter
((
item
:
any
)
=>
checkList
.
value
.
includes
(
item
.
label
)))
watch
(
_isFullscreen
,
()
=>
{
if
(
_isFullscreen
.
value
)
isFullscreen
.
value
=
true
else
isFullscreen
.
value
=
false
},
{
immediate
:
true
}
)
onActivated
(()
=>
{
tableRef
.
value
?.
doLayout
()
})
onBeforeMount
(()
=>
{
columns
.
value
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
checked
)
checkList
.
value
.
push
(
item
.
label
)
})
fetchData
()
})
/** 点击全屏 */
const
clickFullScreen
=
()
=>
{
isFullscreen
.
value
=
!
isFullscreen
.
value
isFullscreen
.
value
?
enter
()
:
exit
()
}
/** 搜索条件折叠 */
const
handleFold
=
()
=>
{
fold
.
value
=
!
fold
.
value
}
/** 查询角色列表 */
const
fetchData
=
async
()
=>
{
listLoading
.
value
=
true
const
pp
=
Object
.
assign
({},
proxy
.
addDateRange
(
queryForm
,
queryForm
.
dateRange
))
delete
pp
.
dateRange
const
{
rows
,
total
:
_total
}
=
(
await
getList
(
pp
))
as
any
list
.
value
=
rows
total
.
value
=
_total
listLoading
.
value
=
false
}
/** 搜索按钮操作 */
function
handleQuery
()
{
queryForm
.
pageNum
=
1
fetchData
()
}
/** 重置按钮操作 */
function
resetQuery
()
{
proxy
.
resetForm
(
'queryRef'
)
handleQuery
()
}
const
handleSizeChange
=
(
value
:
number
)
=>
{
queryForm
.
pageNum
=
1
queryForm
.
pageSize
=
value
fetchData
()
}
const
handleCurrentChange
=
(
value
:
number
)
=>
{
queryForm
.
pageNum
=
value
fetchData
()
}
const
setSelectRows
=
(
value
:
string
)
=>
{
selectRows
.
value
=
value
}
/** 新增按钮操作 */
const
handleAdd
=
()
=>
{
editRef
.
value
.
showEdit
()
}
/** 修改按钮操作 */
function
handleUpdate
(
row
:
any
)
{
editRef
.
value
.
showEdit
(
row
)
}
/** 删除按钮操作 */
const
handleDelete
=
(
row
:
any
=
{})
=>
{
if
(
row
.
roleId
)
{
$baseConfirm
(
'您确定要删除当前项吗'
,
null
,
async
()
=>
{
const
{
msg
}:
any
=
await
doDelete
(
row
.
roleId
)
$baseMessage
(
msg
,
'success'
,
'hey'
)
await
fetchData
()
})
}
else
{
if
(
selectRows
.
value
.
length
>
0
)
{
const
ids
=
selectRows
.
value
.
map
((
item
:
{
roleId
:
any
})
=>
item
.
roleId
)
$baseConfirm
(
'您确定要删除选中项吗'
,
null
,
async
()
=>
{
const
{
msg
}:
any
=
await
doDelete
(
ids
)
$baseMessage
(
msg
,
'success'
,
'hey'
)
await
fetchData
()
})
}
else
{
$baseMessage
(
'您未选中任何行'
,
'warning'
,
'hey'
)
}
}
}
/** 导出按钮操作 */
function
handleExport
()
{
proxy
.
download
(
'system/role/export'
,
{
...
queryForm
,
},
`role_
${
Date
.
now
()}
.xlsx`
)
}
</
script
>
src/views/system/roleManagement/vabAutoComponents/RoleManagementEdit2.vue
0 → 100755
浏览文件 @
bf0864e6
<
template
>
<vab-dialog
v-model=
"dialogFormVisible"
append-to-body
:title=
"title"
width=
"500px"
@
close=
"close"
>
<el-form
ref=
"formRef"
label-width=
"80px"
:model=
"form"
:rules=
"rules"
>
<el-form-item
label=
"角色码"
prop=
"role"
>
<el-input
v-model=
"form.role"
clearable
/>
</el-form-item>
<el-form-item
label=
"菜单"
>
<div
class=
"vab-tree-border"
>
<el-tree
ref=
"treeRef"
:data=
"list"
:default-checked-keys=
"form.menuCheckedList"
:default-expanded-keys=
"[]"
node-key=
"path"
show-checkbox
>
<template
#
default=
"
{ data }">
<span>
{{
data
.
meta
.
title
}}
</span>
</
template
>
</el-tree>
</div>
</el-form-item>
<el-form-item
label=
"按钮权限"
>
<el-input
v-model=
"form.btnRolesCheckedList"
clearable
:rows=
"3"
type=
"textarea"
/>
</el-form-item>
</el-form>
<
template
#
footer
>
<el-button
type=
"primary"
@
click=
"save"
>
保存
</el-button>
</
template
>
</vab-dialog>
</template>
<
script
lang=
"ts"
setup
>
import
type
{
FormInstance
}
from
'element-plus'
import
{
doEdit
}
from
'/@/api/roleManagement'
import
{
getList
}
from
'/@/api/router'
defineOptions
({
name
:
'RoleManagementEdit'
,
})
const
emit
=
defineEmits
([
'fetch-data'
])
const
formRef
=
ref
<
FormInstance
>
()
const
treeRef
=
ref
<
any
>
(
null
)
const
form
=
reactive
<
any
>
({
role
:
''
,
btnRolesCheckedList
:
[
'read:system'
,
'write:system'
,
'delete:system'
,
'read:index'
,
'write:index'
,
'delete:index'
,
'read:index'
,
'write:index'
,
'delete:index'
,
],
})
const
rules
=
reactive
<
any
>
({
role
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
'请输入角色码'
}],
})
const
title
=
ref
<
string
>
(
''
)
const
dialogFormVisible
=
ref
<
boolean
>
(
false
)
const
list
=
ref
<
any
>
([])
const
showEdit
=
(
row
:
any
)
=>
{
dialogFormVisible
.
value
=
true
nextTick
(()
=>
{
if
(
row
)
{
title
.
value
=
'编辑'
Object
.
assign
(
form
,
row
)
}
else
{
title
.
value
=
'添加'
form
.
btnRolesCheckedList
=
[
'read:system'
,
'write:system'
,
'delete:system'
,
'read:index'
,
'write:index'
,
'delete:index'
,
'read:index'
,
'write:index'
,
'delete:index'
,
]
}
})
}
defineExpose
({
showEdit
,
})
const
close
=
()
=>
{
formRef
.
value
?.
clearValidate
()
formRef
.
value
?.
resetFields
()
emit
(
'fetch-data'
)
}
const
fetchData
=
async
()
=>
{
const
{
data
}
=
await
getList
()
list
.
value
=
data
.
list
}
const
save
=
()
=>
{
formRef
.
value
?.
validate
(
async
(
valid
:
any
)
=>
{
if
(
valid
)
{
const
tree
=
treeRef
.
value
.
getCheckedKeys
()
const
treeObject
=
{
'treeArray:'
:
tree
}
const
{
msg
}:
any
=
await
doEdit
({
...
form
,
...
treeObject
,
})
await
$baseMessage
(
msg
,
'success'
,
'hey'
)
await
close
()
dialogFormVisible
.
value
=
false
}
})
}
onBeforeMount
(()
=>
{
fetchData
()
})
</
script
>
<
style
lang=
"scss"
scoped
>
.vab-tree-border
{
width
:
100%
;
height
:
250px
;
padding
:
var
(
--el-padding
);
overflow-y
:
auto
;
border
:
1px
solid
var
(
--el-border-color
);
border-radius
:
var
(
--el-border-radius-base
);
}
</
style
>
src/views/system/userManagement/index.vue
浏览文件 @
bf0864e6
...
...
@@ -158,6 +158,9 @@
</div>
</template>
</el-table-column>
<
template
#
empty
>
<el-empty
class=
"vab-data-empty"
description=
"暂无数据"
/>
</
template
>
</el-table>
<vab-pagination
:current-page=
"queryForm.pageNum"
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论