Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart_gov_platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
smart_gov_platform
Commits
ac190666
Commit
ac190666
authored
May 29, 2024
by
“yiyousong”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 添加角色管理板块,优化应用数据上传
parent
fb7f9bdd
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
2471 additions
and
14 deletions
+2471
-14
base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue
...r-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue
+37
-1
base-manager-ui/admin/src/pages/basicset/system/System.vue
base-manager-ui/admin/src/pages/basicset/system/System.vue
+25
-1
base-manager-ui/admin/src/pages/basicset/system/dimension/Dimension.vue
...i/admin/src/pages/basicset/system/dimension/Dimension.vue
+232
-0
base-manager-ui/admin/src/pages/basicset/system/dimension/modal/AddDimension.vue
...rc/pages/basicset/system/dimension/modal/AddDimension.vue
+146
-0
base-manager-ui/admin/src/pages/basicset/system/parameter/Parameter.vue
...i/admin/src/pages/basicset/system/parameter/Parameter.vue
+27
-9
base-manager-ui/admin/src/pages/basicset/system/resourceManage/Resource.vue
...min/src/pages/basicset/system/resourceManage/Resource.vue
+268
-0
base-manager-ui/admin/src/pages/basicset/system/resourceManage/modal/AddResurce.vue
...pages/basicset/system/resourceManage/modal/AddResurce.vue
+233
-0
base-manager-ui/admin/src/pages/basicset/system/role/Role.vue
...-manager-ui/admin/src/pages/basicset/system/role/Role.vue
+232
-0
base-manager-ui/admin/src/pages/basicset/system/role/modal/AddResDim.vue
.../admin/src/pages/basicset/system/role/modal/AddResDim.vue
+121
-0
base-manager-ui/admin/src/pages/basicset/system/role/modal/AddRole.vue
...ui/admin/src/pages/basicset/system/role/modal/AddRole.vue
+120
-0
base-manager-ui/admin/src/pages/basicset/system/role/modal/ApportionRes.vue
...min/src/pages/basicset/system/role/modal/ApportionRes.vue
+197
-0
base-manager-ui/admin/src/pages/basicset/system/role/modal/ResDimList.vue
...admin/src/pages/basicset/system/role/modal/ResDimList.vue
+303
-0
base-manager-ui/admin/src/pages/basicset/system/user/User.vue
...-manager-ui/admin/src/pages/basicset/system/user/User.vue
+210
-0
base-manager-ui/admin/src/pages/basicset/system/user/modal/AddUserRole.vue
...dmin/src/pages/basicset/system/user/modal/AddUserRole.vue
+137
-0
base-manager-ui/admin/src/router/config.js
base-manager-ui/admin/src/router/config.js
+26
-0
base-manager-ui/admin/src/services/basicsetApi.js
base-manager-ui/admin/src/services/basicsetApi.js
+38
-0
base-manager-ui/admin/src/services/index.js
base-manager-ui/admin/src/services/index.js
+10
-3
base-manager-ui/admin/src/services/system.js
base-manager-ui/admin/src/services/system.js
+109
-0
No files found.
base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue
View file @
ac190666
...
...
@@ -141,6 +141,7 @@
:action=
"api + '/base/file/commonupload'"
:multiple=
"true"
:file-list=
"v.fileList"
:beforeUpload=
"handleBeforeUpload"
@
change=
"
(info) =>
{
handleChange(info, v);
...
...
@@ -420,8 +421,43 @@ export default {
});
this
.
form
=
{
...
data
};
},
// 文件上传
// 更改文件名称
renameFile
(
originalFile
,
newName
)
{
return
new
File
([
originalFile
],
newName
,
{
type
:
originalFile
.
type
,
lastModified
:
originalFile
.
lastModified
,
});
},
handleBeforeUpload
(
file
)
{
let
index
=
file
.
name
.
lastIndexOf
(
"
.
"
);
let
fileName
=
file
.
name
.
slice
(
0
,
index
);
let
suffix
=
file
.
name
.
slice
(
index
);
let
uid
=
file
.
uid
;
if
(
fileName
.
length
>=
40
)
{
let
newName
=
fileName
.
slice
(
0
,
40
)
+
"
...
"
+
suffix
;
let
newFile
=
this
.
renameFile
(
file
,
newName
);
newFile
.
uid
=
uid
;
return
new
Promise
((
resolve
)
=>
{
resolve
(
newFile
);
});
}
},
// 文件上传状态变化
handleChange
(
info
,
row
)
{
if
(
info
.
file
.
status
&&
info
.
file
.
status
!=
"
removed
"
&&
info
.
file
.
response
&&
info
.
file
.
response
.
code
==
-
1
)
{
this
.
$message
.
error
(
info
.
file
.
response
.
msg
);
info
.
fileList
=
info
.
fileList
.
filter
(
(
file
)
=>
file
.
response
.
code
!=
-
1
);
}
let
fileList
=
[...
info
.
fileList
];
// fileList = fileList.slice(-1);
fileList
=
fileList
.
map
((
file
)
=>
{
...
...
base-manager-ui/admin/src/pages/basicset/system/System.vue
View file @
ac190666
<
template
>
<div
class=
"system flex flexc"
>
<a-tabs
:activeKey=
"activeKey"
@
change=
"changeRouter"
>
<!--
<a-tab-pane
key=
"/system/user"
>
<span
slot=
"tab"
>
<a-icon
type=
"user"
/>
用户管理
</span>
</a-tab-pane>
<a-tab-pane
key=
"/system/role"
>
<span
slot=
"tab"
>
<a-icon
type=
"idcard"
/>
角色管理
</span>
</a-tab-pane>
<a-tab-pane
key=
"/system/resource"
>
<span
slot=
"tab"
>
<a-icon
type=
"cloud-sync"
/>
资源管理
</span>
</a-tab-pane>
<a-tab-pane
key=
"/system/dimension"
>
<span
slot=
"tab"
>
<a-icon
type=
"deployment-unit"
/>
维度管理
</span>
</a-tab-pane>
-->
<a-tab-pane
key=
"/system/parameter"
>
<span
slot=
"tab"
>
<a-icon
type=
"container"
/>
...
...
@@ -53,4 +77,4 @@ export default {
border-bottom: 1px solid #f0f0f0 !important;
}
}
</
style
>
\ No newline at end of file
</
style
>
base-manager-ui/admin/src/pages/basicset/system/dimension/Dimension.vue
0 → 100644
View file @
ac190666
<
template
>
<div
class=
"dimension-container"
>
<div
class=
"control flex aic jcb mb15 pdr6"
>
<div>
<a-button
type=
"primary"
style=
"margin-right: 10px"
@
click=
"handleAdd"
>
新增
</a-button
>
<a-button
type=
"danger"
@
click=
"handleDelAll"
>
批量删除
</a-button>
</div>
<div
class=
"search-box"
>
<a-input-search
placeholder=
"请输入维度名搜索"
enter-button=
"搜索"
v-model=
"searchValue"
allowClear
@
search=
"onSearch"
/>
</div>
</div>
<!-- 表格 -->
<div
class=
"table-content"
>
<a-table
:row-selection=
"
{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:loading="loading"
bordered
:scroll="{ y: 590 }"
:columns="columns"
:pagination="{
showTotal: (total) => `共 ${total} 条`,
current: current,
total: total,
pageSize: size,
showSizeChanger: true,
showQuickJumper: true,
pageSizeOptions: pageSizeOptions,
onChange: handleChange,
onShowSizeChange: showSizeChange,
}"
:data-source="tableData"
:rowKey="(record) => record.id"
>
<!-- 序号 -->
<span
slot=
"num"
slot-scope=
"text, record, index"
>
{{
(
current
-
1
)
*
size
+
index
+
1
}}
</span>
<!-- 操作 -->
<template
slot=
"action"
slot-scope=
"text"
>
<a-space
size=
"middle"
>
<span
href=
"javascript:;"
class=
"primary pointer"
@
click=
"handleEdit(text)"
>
编辑
</span
>
<span
href=
"javascript:;"
class=
"delete pointer"
@
click=
"handleDel(text.id)"
>
删除
</span
>
</a-space>
</
template
>
</a-table>
</div>
<!-- 新增 -->
<AddDimension
ref=
"AddDimension"
:addVisible.sync=
"addVisible"
:title=
"title"
:dict=
"dict"
@
addSuccess=
"getDimensionList"
></AddDimension>
</div>
</template>
<
script
>
import
{
getDimensionList
,
delDimension
}
from
"
@/services/system
"
;
import
{
pageSizeOptions
}
from
"
@/config/pageConfig.js
"
;
import
AddDimension
from
"
./modal/AddDimension
"
;
export
default
{
components
:
{
AddDimension
},
data
()
{
const
columns
=
[
{
title
:
"
序号
"
,
dataIndex
:
"
num
"
,
width
:
"
65px
"
,
scopedSlots
:
{
customRender
:
"
num
"
,
},
},
{
title
:
"
名称
"
,
dataIndex
:
"
dimensionName
"
,
},
{
title
:
"
编码
"
,
dataIndex
:
"
dimensionCode
"
,
},
{
title
:
"
类型
"
,
dataIndex
:
"
dimensionType
"
,
customRender
:
(
text
)
=>
{
return
this
.
dict
.
dimensionType
[
text
];
},
},
{
title
:
"
创建时间
"
,
dataIndex
:
"
createTime
"
,
customRender
:
(
text
)
=>
{
return
this
.
$moment
(
text
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
},
},
{
title
:
"
操作
"
,
width
:
"
120px
"
,
scopedSlots
:
{
customRender
:
"
action
"
},
},
];
return
{
columns
,
loading
:
false
,
current
:
1
,
size
:
10
,
total
:
0
,
pageSizeOptions
,
searchValue
:
""
,
// 搜索
tableData
:
[],
selectedRowKeys
:
[],
dict
:
{},
// 字典
addVisible
:
false
,
title
:
"
新增
"
,
};
},
created
()
{
this
.
getDimensionList
();
},
methods
:
{
// 获取列表
async
getDimensionList
()
{
this
.
loading
=
true
;
let
res
=
await
getDimensionList
({
page
:
this
.
current
,
size
:
this
.
size
,
dimensionName
:
this
.
searchValue
,
});
this
.
loading
=
false
;
if
(
res
.
data
.
code
==
1
)
{
let
{
data
,
total
,
dict
}
=
res
.
data
.
data
;
this
.
tableData
=
data
;
this
.
total
=
total
;
this
.
dict
=
dict
;
}
},
// 新增
handleAdd
()
{
this
.
title
=
"
新增
"
;
this
.
$refs
.
AddDimension
.
onAdd
();
this
.
addVisible
=
true
;
},
// 搜索
onSearch
()
{
this
.
current
=
1
;
},
// 分页
handleChange
(
num
)
{
this
.
current
=
num
;
},
// 改变每页显示数量
showSizeChange
(
current
,
size
)
{
this
.
current
=
current
;
this
.
size
=
size
;
},
// 选择
onSelectChange
(
keys
)
{
this
.
selectedRowKeys
=
keys
;
},
// 批量删除
handleDelAll
()
{
if
(
!
this
.
selectedRowKeys
.
length
)
{
this
.
$message
.
warn
(
"
请先勾选数据
"
);
return
;
}
let
ids
=
this
.
selectedRowKeys
.
join
(
"
,
"
);
this
.
handleDel
(
ids
);
},
// 编辑
handleEdit
(
row
)
{
this
.
title
=
"
编辑
"
;
this
.
$refs
.
AddDimension
.
onEdit
(
row
);
this
.
addVisible
=
true
;
},
// 删除
handleDel
(
id
)
{
let
_this
=
this
;
this
.
$confirm
({
title
:
"
系统提示
"
,
content
:
"
删除不可恢复,确定要删除吗?
"
,
okText
:
"
确定
"
,
okType
:
"
danger
"
,
cancelText
:
"
取消
"
,
centered
:
true
,
icon
:
"
exclamation-circle
"
,
maskClosable
:
true
,
async
onOk
()
{
let
res
=
await
delDimension
({
id
});
if
(
res
.
data
.
code
==
1
)
{
_this
.
$message
.
success
(
res
.
data
.
msg
);
_this
.
getDimensionList
();
}
console
.
log
(
id
);
},
onCancel
()
{
console
.
log
(
"
Cancel
"
);
},
});
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.dimension-container {
width: 100%;
height: 100%;
}
</
style
>
base-manager-ui/admin/src/pages/basicset/system/dimension/modal/AddDimension.vue
0 → 100644
View file @
ac190666
<
template
>
<div>
<a-modal
:title=
"title"
:visible=
"Visible"
@
cancel=
"handleCancel"
:maskClosable=
"false"
>
<a-button
slot=
"footer"
@
click=
"handleReset"
>
重置
</a-button>
<a-button
slot=
"footer"
type=
"primary"
:loading=
"loading"
@
click=
"handleOk"
>
确定
</a-button
>
<a-form-model
:model=
"form"
ref=
"form"
:rules=
"rules"
:label-col=
"
{ span: 5 }"
:wrapper-col="{ span: 19 }"
>
<a-form-model-item
label=
"名称"
prop=
"dimensionName"
>
<a-input
v-model=
"form.dimensionName"
placeholder=
"请输入维度名称"
></a-input>
</a-form-model-item>
<a-form-model-item
label=
"编号"
prop=
"dimensionCode"
>
<a-input
v-model=
"form.dimensionCode"
placeholder=
"请输入维度编号"
></a-input>
</a-form-model-item>
<a-form-model-item
label=
"类型"
prop=
"dimensionType"
>
<a-select
v-model=
"form.dimensionType"
placeholder=
"请选择维度类型"
>
<a-select-option
v-for=
"(v, key) in dict.dimensionType"
:key=
"key"
:value=
"Number(key)"
>
{{
v
}}
</a-select-option
>
</a-select>
</a-form-model-item>
</a-form-model>
</a-modal>
</div>
</
template
>
<
script
>
import
{
saveDimension
}
from
"
@/services/system
"
;
export
default
{
components
:
{},
props
:
{
addVisible
:
{
required
:
true
,
type
:
Boolean
,
default
:
false
,
},
title
:
{
required
:
true
,
type
:
String
,
default
:
""
,
},
dict
:
{
required
:
true
,
type
:
Object
,
default
:
()
=>
{},
},
},
data
()
{
return
{
loading
:
false
,
form
:
{
dimensionName
:
""
,
// 维度名称
dimensionCode
:
""
,
// 维度编码
dimensionValue
:
""
,
// 维度值
dimensionType
:
undefined
,
// 维度类型
},
rules
:
{
dimensionName
:
[
{
required
:
true
,
message
:
"
请输入维度名称
"
,
trigger
:
"
blur
"
},
],
dimensionCode
:
[
{
required
:
true
,
message
:
"
请输入维度编码
"
,
trigger
:
"
blur
"
},
],
dimensionType
:
[
{
required
:
true
,
message
:
"
请选择维度类型
"
,
trigger
:
"
change
"
},
],
},
};
},
computed
:
{
Visible
:
{
get
()
{
return
this
.
addVisible
;
},
set
(
val
)
{
this
.
$emit
(
"
update:addVisible
"
,
val
);
},
},
},
created
()
{},
methods
:
{
// 新增
onAdd
()
{
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
"
id
"
);
},
// 编辑
onEdit
(
row
)
{
this
.
$nextTick
(()
=>
{
this
.
form
=
{
...
row
};
});
},
// 保存
handleOk
()
{
this
.
$refs
.
form
.
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
this
.
loading
=
true
;
let
res
=
await
saveDimension
(
this
.
form
);
let
{
code
,
msg
}
=
res
.
data
;
this
.
loading
=
false
;
if
(
code
==
1
)
{
this
.
$message
.
success
(
msg
);
this
.
$emit
(
"
addSuccess
"
);
this
.
handleCancel
();
}
}
});
},
// 重置
handleReset
()
{
this
.
$refs
.
form
.
resetFields
();
},
// 关闭
handleCancel
()
{
this
.
$refs
.
form
.
resetFields
();
this
.
Visible
=
false
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
></
style
>
base-manager-ui/admin/src/pages/basicset/system/parameter/Parameter.vue
View file @
ac190666
...
...
@@ -8,13 +8,20 @@
<a-button
type=
"danger"
@
click=
"handleDelAll"
>
批量删除
</a-button>
</div>
<div
class=
"search-box"
>
<a-input-search
placeholder=
"请输入参数名搜索"
enter-button=
"搜索"
v-model=
"searchValue"
allowClear
@
search=
"onSearch"
/>
<a-space>
<a-input
placeholder=
"请输入参数名搜索"
v-model=
"searchForm.name"
allowClear
/>
<a-input
placeholder=
"请输入二级组织搜索"
v-model=
"searchForm.secondOrganize"
allowClear
/>
<a-button
type=
"primary"
@
click=
"onSearch"
>
搜索
</a-button>
<a-button
@
click=
"resetSearch"
>
重置
</a-button>
</a-space>
</div>
</div>
<!-- 表格 -->
...
...
@@ -176,6 +183,10 @@ export default {
total
:
0
,
pageSizeOptions
,
searchValue
:
""
,
// 搜索
searchForm
:
{
name
:
""
,
secondOrganize
:
""
,
},
tableData
:
[],
selectedRowKeys
:
[],
dict
:
{},
// 字典
...
...
@@ -193,7 +204,8 @@ export default {
let
res
=
await
getSystemParameterList
({
page
:
this
.
current
,
size
:
this
.
size
,
name
:
`%
${
this
.
searchValue
}
%`
,
name
:
`%
${
this
.
searchForm
.
name
}
%`
,
secondOrganize
:
`%
${
this
.
searchForm
.
secondOrganize
}
%`
,
});
this
.
loading
=
false
;
if
(
res
.
data
.
code
==
1
)
{
...
...
@@ -217,6 +229,12 @@ export default {
this
.
current
=
1
;
this
.
getSystemParameterList
();
},
// 重置搜索
resetSearch
()
{
this
.
current
=
1
;
Object
.
assign
(
this
.
searchForm
,
this
.
$options
.
data
().
searchForm
);
this
.
getSystemParameterList
();
},
// 分页
handleChange
(
num
)
{
this
.
current
=
num
;
...
...
@@ -292,4 +310,4 @@ export default {
width: 100%;
height: 100%;
}
</
style
>
\ No newline at end of file
</
style
>
base-manager-ui/admin/src/pages/basicset/system/resourceManage/Resource.vue
0 → 100644
View file @
ac190666
<
template
>
<div
class=
"resource-container"
>
<div
class=
"control flex aic jcb mb15 pdr6"
>
<a-space>
<a-button
type=
"primary"
@
click=
"handleAdd"
>
新增
</a-button>
<a-button
v-permission=
"[1]"
type=
"primary"
class=
"addclass"
@
click=
"refSresource"
>
刷新资源
</a-button
>
<a-button
type=
"danger"
@
click=
"handleDelAll"
>
批量删除
</a-button>
</a-space>
<div
class=
"search-box"
>
<a-input-search
placeholder=
"请输入资源名搜索"
enter-button=
"搜索"
v-model=
"searchValue"
allowClear
@
search=
"onSearch"
/>
</div>
</div>
<!-- 表格 -->
<div
class=
"table-content"
>
<a-table
:row-selection=
"
{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:loading="loading"
bordered
:scroll="{ y: 590 }"
:columns="columns"
:pagination="{
showTotal: (total) => `共 ${total} 条`,
current: current,
total: total,
pageSize: size,
showSizeChanger: true,
showQuickJumper: true,
pageSizeOptions: pageSizeOptions,
onChange: handleChange,
onShowSizeChange: showSizeChange,
}"
:data-source="tableData"
:rowKey="(record) => record.id"
>
<!-- 序号 -->
<span
slot=
"num"
slot-scope=
"text, record, index"
>
{{
(
current
-
1
)
*
size
+
index
+
1
}}
</span>
<!-- 操作 -->
<template
slot=
"action"
slot-scope=
"text"
>
<a-space
size=
"middle"
>
<span
href=
"javascript:;"
class=
"primary pointer"
@
click=
"handleEdit(text)"
>
编辑
</span
>
<span
href=
"javascript:;"
class=
"delete pointer"
@
click=
"handleDel(text.id)"
>
删除
</span
>
</a-space>
</
template
>
</a-table>
</div>
<!-- 新增、编辑 -->
<AddResurce
ref=
"AddResurce"
:title=
"title"
:visible.sync=
"addVisible"
:dict=
"dict"
@
add=
"getResourceList"
></AddResurce>
</div>
</template>
<
script
>
import
{
getResourceList
,
refreshResource
,
delResource
,
}
from
"
@/services/system
"
;
import
{
pageSizeOptions
}
from
"
@/config/pageConfig.js
"
;
import
AddResurce
from
"
./modal/AddResurce.vue
"
;
export
default
{
components
:
{
AddResurce
},
data
()
{
const
columns
=
[
{
title
:
"
序号
"
,
dataIndex
:
"
num
"
,
width
:
"
65px
"
,
scopedSlots
:
{
customRender
:
"
num
"
,
},
},
{
title
:
"
名称
"
,
width
:
400
,
dataIndex
:
"
name
"
,
},
{
title
:
"
资源
"
,
dataIndex
:
"
url
"
,
customRender
:
(
text
)
=>
{
if
(
text
)
{
return
text
.
split
(
"
,
"
).
map
((
v
)
=>
{
return
(
<
a
-
tag
style
=
"
margin-bottom:4px
"
color
=
"
blue
"
>
{
v
}
<
/a-tag
>
);
});
}
},
},
{
title
:
"
认证类型
"
,
width
:
200
,
dataIndex
:
"
authType
"
,
customRender
:
(
text
)
=>
{
return
this
.
dict
.
authType
[
text
];
},
},
{
title
:
"
操作
"
,
width
:
"
120px
"
,
scopedSlots
:
{
customRender
:
"
action
"
},
},
];
return
{
columns
,
loading
:
false
,
current
:
1
,
size
:
10
,
total
:
0
,
pageSizeOptions
,
searchValue
:
""
,
// 搜索
tableData
:
[],
selectedRowKeys
:
[],
dict
:
{},
// 字典
addVisible
:
false
,
title
:
"
新增
"
,
};
},
created
()
{
this
.
getResourceList
();
},
methods
:
{
// 获取资源列表
async
getResourceList
()
{
this
.
loading
=
true
;
let
res
=
await
getResourceList
({
page
:
this
.
current
,
size
:
this
.
size
,
name
:
`%
${
this
.
searchValue
}
%`
,
});
this
.
loading
=
false
;
if
(
res
.
data
.
code
==
1
)
{
let
{
data
,
total
,
dict
}
=
res
.
data
.
data
;
this
.
tableData
=
data
;
this
.
total
=
total
;
this
.
dict
=
dict
;
}
},
// 新增
handleAdd
()
{
this
.
title
=
"
新增
"
;
this
.
$refs
.
AddResurce
.
onAdd
();
this
.
addVisible
=
true
;
},
// 搜索
onSearch
()
{
this
.
current
=
1
;
this
.
getResourceList
();
},
// 分页
handleChange
(
num
)
{
this
.
current
=
num
;
this
.
getResourceList
();
},
// 改变每页显示数量
showSizeChange
(
current
,
size
)
{
this
.
current
=
current
;
this
.
size
=
size
;
this
.
getResourceList
();
},
// 选择
onSelectChange
(
keys
)
{
this
.
selectedRowKeys
=
keys
;
},
// 批量删除
handleDelAll
()
{
if
(
!
this
.
selectedRowKeys
.
length
)
{
this
.
$message
.
warn
(
"
请先勾选数据
"
);
return
;
}
let
ids
=
this
.
selectedRowKeys
.
join
(
"
,
"
);
this
.
handleDel
(
ids
);
},
// 编辑
handleEdit
(
row
)
{
this
.
title
=
"
编辑
"
;
this
.
$refs
.
AddResurce
.
onEdit
(
row
);
this
.
addVisible
=
true
;
},
// 删除
handleDel
(
id
)
{
let
_this
=
this
;
this
.
$confirm
({
title
:
"
系统提示
"
,
content
:
"
删除不可恢复,确定要删除吗?
"
,
okText
:
"
确定
"
,
okType
:
"
danger
"
,
cancelText
:
"
取消
"
,
centered
:
true
,
icon
:
"
exclamation-circle
"
,
maskClosable
:
true
,
async
onOk
()
{
let
res
=
await
delResource
({
id
});
if
(
res
.
data
.
code
==
1
)
{
let
{
msg
}
=
res
.
data
;
_this
.
$message
.
success
(
msg
);
_this
.
getResourceList
();
}
},
onCancel
()
{
console
.
log
(
"
Cancel
"
);
},
});
},
// 刷新资源
async
refSresource
()
{
let
_this
=
this
;
this
.
$confirm
({
title
:
"
系统提示
"
,
content
:
"
确定要刷新资源吗?
"
,
okText
:
"
是
"
,
cancelText
:
"
否
"
,
centered
:
true
,
async
onOk
()
{
let
res
=
await
refreshResource
();
if
(
res
.
data
.
code
==
1
)
{
_this
.
$message
.
success
(
res
.
data
.
msg
);
_this
.
getResourceList
();
}
},
});
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.resource-container {
width: 100%;
height: 100%;
}
</
style
>
base-manager-ui/admin/src/pages/basicset/system/resourceManage/modal/AddResurce.vue
0 → 100644
View file @
ac190666
<
template
>
<div
class=
"add-resurce"
>
<a-modal
:title=
"title"
:centered=
"true"
:visible=
"Visible"
@
cancel=
"handleCancel"
width=
"30%"
:maskClosable=
"false"
>
<a-form-model
:label-col=
"
{
span: 5,
}"
:wrapper-col="{
span: 19,
}"
ref="form"
:model="form"
:rules="rules"
>
<a-form-model-item
label=
"资源名称"
prop=
"name"
>
<a-input
placeholder=
"请输入资源名称"
allowClear
v-model=
"form.name"
/>
</a-form-model-item>
<a-form-model-item
label=
"权限类型"
prop=
"authType"
>
<a-select
v-model=
"form.authType"
placeholder=
"请选择权限类型"
>
<a-select-option
v-for=
"(v, key) in dict.authType"
:key=
"key"
:value=
"Number(key)"
>
{{
v
}}
</a-select-option
>
</a-select>
</a-form-model-item>
<a-form-model-item
class=
"url-params-box"
label=
"链接地址"
>
<a-form-model-item
class=
"url-params"
v-for=
"(v, i) in form.urls"
:key=
"i"
:prop=
"`urls.$
{i}.value`"
:rules="[
{ required: true, validator: validatorUrl, trigger: 'blur' },
]"
>
<a-input
class=
"mr10"
v-model=
"v.value"
placeholder=
"请输入链接地址"
/>
<a-space>
<a-button
type=
"primary"
@
click=
"changeParams(i, 'add')"
><a-icon
type=
"plus"
/></a-button>
<a-button
type=
"danger"
v-if=
"i > 0"
@
click=
"changeParams(i, 'remove')"
><a-icon
type=
"minus"
/></a-button>
</a-space>
</a-form-model-item>
</a-form-model-item>
</a-form-model>
<template
slot=
"footer"
>
<a-button
@
click=
"resetForm"
>
重置
</a-button>
<a-button
type=
"primary"
class=
"addclass"
:loading=
"loading"
@
click=
"subForm"
>
确定
</a-button
>
</
template
>
</a-modal>
</div>
</template>
<
script
>
import
{
saveResource
}
from
"
@/services/system
"
;
export
default
{
props
:
{
title
:
{
required
:
true
,
type
:
String
,
default
:
"
新增资源
"
,
},
visible
:
{
required
:
true
,
type
:
Boolean
,
default
:
false
,
},
dict
:
{
required
:
true
,
type
:
Object
,
default
:
()
=>
{},
},
},
data
()
{
return
{
loading
:
false
,
form
:
{
name
:
""
,
authType
:
undefined
,
url
:
""
,
urls
:
[
{
value
:
""
,
},
],
},
rules
:
{
name
:
[{
required
:
true
,
message
:
"
请输入资源名称
"
,
trigger
:
"
blur
"
}],
authType
:
[
{
required
:
true
,
message
:
"
请输选择权限类型
"
,
trigger
:
"
change
"
},
],
},
};
},
computed
:
{
Visible
:
{
get
()
{
return
this
.
visible
;
},
set
(
val
)
{
this
.
$emit
(
"
update:visible
"
,
val
);
},
},
},
methods
:
{
onAdd
()
{
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
"
id
"
);
},
onEdit
(
row
)
{
setTimeout
(()
=>
{
this
.
form
=
{
...
row
};
let
arr
=
[];
if
(
this
.
form
.
url
)
{
arr
=
this
.
form
.
url
.
split
(
"
,
"
).
map
((
v
)
=>
{
return
{
value
:
v
,
};
});
}
this
.
$set
(
this
.
form
,
"
urls
"
,
arr
);
},
10
);
},
subForm
()
{
this
.
$refs
.
form
.
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
this
.
loading
=
true
;
let
res
=
await
saveResource
({
...
this
.
form
,
url
:
this
.
form
.
urls
.
map
((
v
)
=>
v
.
value
).
join
(
"
,
"
),
});
let
{
code
,
msg
}
=
res
.
data
;
this
.
loading
=
false
;
if
(
code
==
1
)
{
this
.
$message
.
success
(
msg
);
this
.
$emit
(
"
add
"
);
this
.
handleCancel
();
}
}
});
},
// 判断是否存在链接
isRepeat
(
val
)
{
return
this
.
form
.
urls
.
filter
((
v
)
=>
v
.
value
==
val
).
length
>
1
;
},
// 校验链接地址
validatorUrl
(
rule
,
value
,
callback
)
{
if
(
!
value
)
{
callback
(
new
Error
(
"
请输入链接
"
));
}
else
if
(
this
.
isRepeat
(
value
))
{
callback
(
new
Error
(
"
重复的链接地址
"
));
}
else
{
callback
();
}
},
changeParams
(
index
,
type
)
{
if
(
type
==
"
add
"
)
{
let
obj
=
{
value
:
""
,
};
if
(
this
.
form
.
urls
.
some
((
v
)
=>
!
v
.
value
))
{
this
.
$message
.
warning
(
"
请先完成前面地址的填写
"
);
return
;
}
this
.
form
.
urls
.
splice
(
index
+
1
,
0
,
obj
);
}
else
{
this
.
form
.
urls
.
splice
(
index
,
1
);
}
// this.$forceUpdate();
},
resetForm
()
{
// 重置还原表单信息内容
this
.
$refs
.
form
.
resetFields
();
this
.
$set
(
this
.
form
,
"
urls
"
,
[{
value
:
""
}]);
},
handleCancel
()
{
this
.
resetForm
();
this
.
Visible
=
false
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
/deep/.ant-modal-body {
max-height: 600px;
overflow-y: auto;
}
/deep/.url-params-box {
display: block !important;
.ant-form-item-children {
display: block;
}
}
/deep/.url-params {
.ant-form-item-children {
display: flex;
align-items: center;
}
}
</
style
>
base-manager-ui/admin/src/pages/basicset/system/role/Role.vue
0 → 100644
View file @
ac190666
<
template
>
<div
class=
"role-container"
>
<div
class=
"control flex aic jcb mb15 pdr6"
>
<div>
<a-button
type=
"primary"
style=
"margin-right: 10px"
@
click=
"handleAdd"
>
新增
</a-button
>
<a-button
type=
"danger"
@
click=
"handleDelAll"
>
批量删除
</a-button>
</div>
<div
class=
"search-box"
>
<a-input-search
placeholder=
"请输入角色名搜索"
enter-button=
"搜索"
v-model=
"searchValue"
allowClear
@
search=
"onSearch"
/>
</div>
</div>
<!-- 表格 -->
<div
class=
"table-content"
>
<a-table
:row-selection=
"
{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:loading="loading"
bordered
:scroll="{ y: 590 }"
:columns="columns"
:pagination="{
showTotal: (total) => `共 ${total} 条`,
current: current,
total: total,
pageSize: size,
showSizeChanger: true,
showQuickJumper: true,
pageSizeOptions: pageSizeOptions,
onChange: handleChange,
onShowSizeChange: showSizeChange,
}"
:data-source="tableData"
:rowKey="(record) => record.id"
>
<!-- 序号 -->
<span
slot=
"num"
slot-scope=
"text, record, index"
>
{{
(
current
-
1
)
*
size
+
index
+
1
}}
</span>
<!-- 操作 -->
<template
slot=
"action"
slot-scope=
"text"
>
<a-space
size=
"middle"
>
<span
class=
"primary pointer"
@
click=
"apportion(text)"
>
分配资源
</span
>
<span
class=
"primary pointer"
@
click=
"handleResDim(text)"
>
资源维度
</span
>
<span
class=
"primary pointer"
@
click=
"handleEdit(text)"
>
编辑
</span>
<span
class=
"delete pointer"
@
click=
"handleDel(text.id)"
>
删除
</span>
</a-space>
</
template
>
</a-table>
</div>
<!-- 新增 -->
<AddRole
ref=
"AddRole"
:title=
"title"
:addVisible.sync=
"addVisible"
@
addSuccess=
"getRoleList"
></AddRole>
<!-- 分配资源 -->
<ApportionRes
ref=
"ApportionRes"
:visible.sync=
"resVisible"
></ApportionRes>
<!-- 角色维度 -->
<ResDimList
ref=
"ResDimList"
:visible.sync=
"resDimListVisible"
></ResDimList>
</div>
</template>
<
script
>
import
{
getRoleList
,
delRole
}
from
"
@/services/system
"
;
import
{
pageSizeOptions
}
from
"
@/config/pageConfig.js
"
;
import
AddRole
from
"
./modal/AddRole.vue
"
;
import
ApportionRes
from
"
./modal/ApportionRes.vue
"
;
import
ResDimList
from
"
./modal/ResDimList.vue
"
;
export
default
{
components
:
{
AddRole
,
ApportionRes
,
ResDimList
},
data
()
{
const
columns
=
[
{
title
:
"
序号
"
,
dataIndex
:
"
num
"
,
width
:
"
65px
"
,
scopedSlots
:
{
customRender
:
"
num
"
,
},
},
{
title
:
"
角色名称
"
,
dataIndex
:
"
name
"
,
},
{
title
:
"
备注
"
,
dataIndex
:
"
remark
"
,
},
{
title
:
"
操作
"
,
width
:
"
20%
"
,
scopedSlots
:
{
customRender
:
"
action
"
},
},
];
return
{
columns
,
loading
:
false
,
current
:
1
,
size
:
10
,
total
:
0
,
pageSizeOptions
,
searchValue
:
""
,
// 搜索
tableData
:
[],
selectedRowKeys
:
[],
dict
:
{},
// 字典
addVisible
:
false
,
resVisible
:
false
,
resDimListVisible
:
false
,
title
:
"
新增角色
"
,
};
},
created
()
{
this
.
getRoleList
();
},
methods
:
{
// 获取角色列表
async
getRoleList
()
{
this
.
loading
=
true
;
let
res
=
await
getRoleList
({
current
:
this
.
current
,
size
:
this
.
size
,
name
:
this
.
searchValue
,
});
this
.
loading
=
false
;
if
(
res
.
data
.
code
==
1
)
{
let
{
data
,
total
}
=
res
.
data
.
data
;
this
.
tableData
=
data
;
this
.
total
=
total
;
}
},
// 新增
handleAdd
()
{
this
.
title
=
"
新增角色
"
;
this
.
$refs
.
AddRole
.
onAdd
();
this
.
addVisible
=
true
;
},
// 搜索
onSearch
()
{
this
.
current
=
1
;
this
.
getRoleList
();
},
// 分页
handleChange
(
num
)
{
this
.
current
=
num
;
this
.
getRoleList
();
},
// 改变每页显示数量
showSizeChange
(
current
,
size
)
{
this
.
current
=
current
;
this
.
size
=
size
;
this
.
getRoleList
();
},
// 选择
onSelectChange
(
keys
)
{
this
.
selectedRowKeys
=
keys
;
},
// 批量删除
handleDelAll
()
{
if
(
!
this
.
selectedRowKeys
.
length
)
{
this
.
$message
.
warn
(
"
请先勾选数据
"
);
return
;
}
let
ids
=
this
.
selectedRowKeys
.
join
(
"
,
"
);
this
.
handleDel
(
ids
);
},
// 编辑
handleEdit
(
row
)
{
this
.
title
=
"
编辑角色
"
;
this
.
$refs
.
AddRole
.
onEdit
(
row
);
this
.
addVisible
=
true
;
},
// 删除
handleDel
(
id
)
{
let
_this
=
this
;
this
.
$confirm
({
title
:
"
系统提示
"
,
content
:
"
删除不可恢复,确定要删除吗?
"
,
okText
:
"
确定
"
,
okType
:
"
danger
"
,
cancelText
:
"
取消
"
,
centered
:
true
,
icon
:
"
exclamation-circle
"
,
maskClosable
:
true
,
async
onOk
()
{
let
res
=
await
delRole
({
id
});
if
(
res
.
data
.
code
==
1
)
{
_this
.
$message
.
success
(
res
.
data
.
msg
);
_this
.
getRoleList
();
}
},
onCancel
()
{
console
.
log
(
"
Cancel
"
);
},
});
},
// 分配资源
apportion
(
row
)
{
this
.
$refs
.
ApportionRes
.
onAdd
(
row
.
id
);
this
.
resVisible
=
true
;
},
// 资源维度
handleResDim
(
row
)
{
this
.
$refs
.
ResDimList
.
getRoleInfo
(
row
);
this
.
resDimListVisible
=
true
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.role-container {
width: 100%;
height: 100%;
}
</
style
>
base-manager-ui/admin/src/pages/basicset/system/role/modal/AddResDim.vue
0 → 100644
View file @
ac190666
<
template
>
<div>
<a-modal
:title=
"title"
:visible=
"Visible"
@
cancel=
"handleCancel"
:maskClosable=
"false"
>
<a-button
slot=
"footer"
@
click=
"handleReset"
>
重置
</a-button>
<a-button
slot=
"footer"
type=
"primary"
:loading=
"loading"
@
click=
"handleOk"
>
确定
</a-button
>
<a-form-model
:model=
"form"
ref=
"form"
:rules=
"rules"
:label-col=
"
{ span: 5 }"
:wrapper-col="{ span: 19 }"
>
<a-form-model-item
label=
"名称"
prop=
"name"
>
<a-input
v-model=
"form.name"
placeholder=
"请输入角色名称"
></a-input>
</a-form-model-item>
<a-form-model-item
label=
"备注"
prop=
"remark"
>
<a-textarea
v-model=
"form.remark"
placeholder=
"请输入备注"
></a-textarea>
</a-form-model-item>
</a-form-model>
</a-modal>
</div>
</
template
>
<
script
>
import
{
saveRole
}
from
"
@/services/system
"
;
export
default
{
components
:
{},
props
:
{
addVisible
:
{
required
:
true
,
type
:
Boolean
,
default
:
false
,
},
title
:
{
required
:
true
,
type
:
String
,
default
:
""
,
},
dict
:
{
required
:
true
,
type
:
Object
,
default
:
()
=>
{},
},
},
data
()
{
return
{
loading
:
false
,
form
:
{},
rules
:
{
name
:
[{
required
:
true
,
message
:
"
请输入角色名称
"
,
trigger
:
"
blur
"
}],
},
};
},
computed
:
{
Visible
:
{
get
()
{
return
this
.
addVisible
;
},
set
(
val
)
{
this
.
$emit
(
"
update:addVisible
"
,
val
);
},
},
},
created
()
{},
methods
:
{
// 新增
onAdd
()
{
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
"
id
"
);
},
// 编辑
onEdit
(
row
)
{
this
.
$nextTick
(()
=>
{
this
.
form
=
{
...
row
};
});
},
// 保存
handleOk
()
{
this
.
$refs
.
form
.
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
this
.
loading
=
true
;
let
res
=
await
saveRole
(
this
.
form
);
let
{
code
,
msg
}
=
res
.
data
;
this
.
loading
=
false
;
if
(
code
==
1
)
{
this
.
$message
.
success
(
msg
);
this
.
$emit
(
"
addSuccess
"
);
this
.
handleCancel
();
}
}
});
},
// 重置
handleReset
()
{
this
.
$refs
.
form
.
resetFields
();
},
// 关闭
handleCancel
()
{
this
.
$refs
.
form
.
resetFields
();
this
.
Visible
=
false
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
></
style
>
base-manager-ui/admin/src/pages/basicset/system/role/modal/AddRole.vue
0 → 100644
View file @
ac190666
<
template
>
<div>
<a-modal
:title=
"title"
:visible=
"Visible"
@
cancel=
"handleCancel"
:maskClosable=
"false"
>
<a-button
slot=
"footer"
@
click=
"handleReset"
>
重置
</a-button>
<a-button
slot=
"footer"
type=
"primary"
:loading=
"loading"
@
click=
"handleOk"
>
确定
</a-button
>
<a-form-model
:model=
"form"
ref=
"form"
:rules=
"rules"
:label-col=
"
{ span: 5 }"
:wrapper-col="{ span: 19 }"
>
<a-form-model-item
label=
"名称"
prop=
"name"
>
<a-input
v-model=
"form.name"
placeholder=
"请输入角色名称"
></a-input>
</a-form-model-item>
<a-form-model-item
label=
"备注"
prop=
"remark"
>
<a-textarea
v-model=
"form.remark"
placeholder=
"请输入备注"
></a-textarea>
</a-form-model-item>
</a-form-model>
</a-modal>
</div>
</
template
>
<
script
>
import
{
saveRole
}
from
"
@/services/system
"
;
export
default
{
components
:
{},
props
:
{
addVisible
:
{
required
:
true
,
type
:
Boolean
,
default
:
false
,
},
title
:
{
required
:
true
,
type
:
String
,
default
:
""
,
},
},
data
()
{
return
{
loading
:
false
,
form
:
{
name
:
""
,
remark
:
""
,
roleType
:
2
,
},
rules
:
{
name
:
[{
required
:
true
,
message
:
"
请输入角色名称
"
,
trigger
:
"
blur
"
}],
},
};
},
computed
:
{
Visible
:
{
get
()
{
return
this
.
addVisible
;
},
set
(
val
)
{
this
.
$emit
(
"
update:addVisible
"
,
val
);
},
},
},
created
()
{},
methods
:
{
// 新增
onAdd
()
{
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
"
id
"
);
},
// 编辑
onEdit
(
row
)
{
this
.
$nextTick
(()
=>
{
this
.
form
=
{
...
row
};
});
},
// 保存
handleOk
()
{
this
.
$refs
.
form
.
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
this
.
loading
=
true
;
let
res
=
await
saveRole
(
this
.
form
);
let
{
code
,
msg
}
=
res
.
data
;
this
.
loading
=
false
;
if
(
code
==
1
)
{
this
.
$message
.
success
(
msg
);
this
.
$emit
(
"
addSuccess
"
);
this
.
handleCancel
();
}
}
});
},
// 重置
handleReset
()
{
this
.
$refs
.
form
.
resetFields
();
},
// 关闭
handleCancel
()
{
this
.
$refs
.
form
.
resetFields
();
this
.
Visible
=
false
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
></
style
>
base-manager-ui/admin/src/pages/basicset/system/role/modal/ApportionRes.vue
0 → 100644
View file @
ac190666
<
template
>
<div
class=
"apportion-res"
>
<a-modal
title=
"分配资源"
:centered=
"true"
:visible=
"Visible"
@
cancel=
"handleCancel"
width=
"40%"
:maskClosable=
"false"
>
<div
class=
"mb10"
v-for=
"(v, key) in resourceList"
:key=
"key"
>
<div
class=
"mb10"
:style=
"
{ borderBottom: '1px solid #E9E9E9' }">
<span
class=
"title"
>
{{
key
}}
</span>
<a-checkbox
:indeterminate=
"v.indeterminate"
:checked=
"v.checkAll"
@
change=
"onCheckAllChange($event, v)"
>
全选
</a-checkbox>
</div>
<a-checkbox-group
style=
"width:100%"
:value=
"form.resourceIdList"
@
change=
"onChange($event, v)"
>
<a-row>
<a-col
:span=
"12"
v-for=
"item in v.list"
:key=
"item.id"
>
<a-checkbox
:value=
"item.id"
>
{{
item
.
name
}}
</a-checkbox>
</a-col>
</a-row>
</a-checkbox-group>
</div>
<template
slot=
"footer"
>
<a-button
@
click=
"resetForm"
>
重置
</a-button>
<a-button
type=
"primary"
class=
"addclass"
@
click=
"subForm"
>
确定
</a-button
>
</
template
>
</a-modal>
</div>
</template>
<
script
>
import
{
getRoleResourceList
,
getResourceList
,
saveRoleResource
,
}
from
"
@/services/system
"
;
export
default
{
props
:
{
visible
:
{
required
:
true
,
type
:
Boolean
,
default
:
false
,
},
},
data
()
{
return
{
form
:
{
resourceIdList
:
[],
roleId
:
""
,
},
rules
:
{},
resourceList
:
{},
// 资源列表
userResourceList
:
[],
// 用户资源列表
};
},
computed
:
{
Visible
:
{
get
()
{
return
this
.
visible
;
},
set
(
val
)
{
this
.
$emit
(
"
update:visible
"
,
val
);
},
},
},
methods
:
{
// 获取资源列表
async
getResourceList
()
{
let
res
=
await
getResourceList
({
page
:
1
,
size
:
-
1
,
});
if
(
res
.
data
.
code
==
1
)
{
let
{
data
}
=
res
.
data
.
data
;
this
.
resourceList
=
this
.
groupByAuth
(
data
);
}
},
// 获取角色资源权限列表
async
getRoleResourceList
(
roleId
)
{
let
res
=
await
getRoleResourceList
({
size
:
-
1
,
page
:
1
,
roleId
,
});
if
(
res
.
data
.
code
==
1
)
{
let
{
data
}
=
res
.
data
.
data
;
let
arr
=
data
.
filter
((
v
)
=>
v
.
resourceId
);
this
.
form
.
resourceIdList
=
arr
.
map
((
v
)
=>
v
.
resourceId
);
}
},
// 权限分组
groupByAuth
(
list
)
{
let
group
=
{};
list
.
forEach
((
item
)
=>
{
let
name
=
item
.
name
.
split
(
"
-
"
)[
0
];
if
(
!
group
[
name
])
{
group
[
name
]
=
{
indeterminate
:
false
,
checkAll
:
false
,
list
:
[],
};
}
group
[
name
].
list
.
push
(
item
);
});
return
group
;
},
// 控制全选
onCheckAllChange
(
e
,
row
)
{
let
rowIds
=
row
.
list
.
map
((
v
)
=>
v
.
id
);
let
checked
=
e
.
target
.
checked
;
row
.
indeterminate
=
false
;
row
.
checkAll
=
checked
;
if
(
checked
)
{
this
.
form
.
resourceIdList
=
[
...
new
Set
([...
this
.
form
.
resourceIdList
,
...
rowIds
]),
];
}
else
{
this
.
form
.
resourceIdList
=
this
.
form
.
resourceIdList
.
filter
((
v
)
=>
{
return
!
rowIds
.
includes
(
v
);
});
}
},
// 控制单选
onChange
(
checkedList
,
row
)
{
let
rowIds
=
row
.
list
.
map
((
v
)
=>
v
.
id
);
this
.
form
.
resourceIdList
=
this
.
form
.
resourceIdList
.
filter
((
v
)
=>
{
return
!
rowIds
.
includes
(
v
);
});
this
.
form
.
resourceIdList
=
[
...
new
Set
([...
this
.
form
.
resourceIdList
,
...
checkedList
]),
];
row
.
indeterminate
=
!!
checkedList
.
length
&&
checkedList
.
length
<
rowIds
.
length
;
row
.
checkAll
=
checkedList
.
length
===
rowIds
.
length
;
},
onAdd
(
roleId
)
{
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
this
.
form
.
roleId
=
roleId
;
this
.
getResourceList
();
this
.
getRoleResourceList
(
roleId
);
},
async
subForm
()
{
let
res
=
await
saveRoleResource
(
this
.
form
);
if
(
res
.
data
.
code
==
1
)
{
this
.
$message
.
success
(
"
添加成功
"
);
this
.
handleCancel
();
}
},
resetForm
()
{
this
.
form
.
resourceIdList
=
[];
Object
.
keys
(
this
.
resourceList
).
forEach
((
key
)
=>
{
this
.
resourceList
[
key
].
checkAll
=
false
;
this
.
resourceList
[
key
].
indeterminate
=
false
;
});
// 重置还原表单信息内容
// this.$refs.form.resetFields();
},
handleCancel
()
{
this
.
resetForm
();
this
.
Visible
=
false
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
/deep/.ant-modal-body {
max-height: 700px;
overflow-y: auto;
}
.title {
margin-right: 1em;
font-size: 18px;
font-weight: bold;
}
</
style
>
base-manager-ui/admin/src/pages/basicset/system/role/modal/ResDimList.vue
0 → 100644
View file @
ac190666
<
template
>
<div>
<a-drawer
title=
"角色资源规则管理"
:visible=
"Visible"
@
close=
"onClose"
:maskClosable=
"false"
:destroyOnClose=
"true"
width=
"50%"
>
<div
class=
"search-box flex aic jcb mb20"
>
<div>
<a-space>
<a-button
type=
"primary"
@
click=
"handleAdd"
>
新增
</a-button>
<a-button
type=
"danger"
@
click=
"handleDelAll"
>
批量删除
</a-button>
</a-space>
</div>
<a-input-search
style=
"width: 300px"
placeholder=
"请输入名称搜索"
enter-button=
"搜索"
v-model=
"searchVal"
allowClear
@
search=
"onSearch"
/>
</div>
<!-- 表格 -->
<div
class=
"table-content"
>
<a-table
:row-selection=
"
{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:loading="loading"
bordered
:scroll="{ y: 460 }"
:columns="columns"
:pagination="{
showTotal: (total) => `共 ${total} 条`,
current: current,
total: total,
pageSize: size,
showSizeChanger: true,
showQuickJumper: true,
pageSizeOptions: pageSizeOptions,
onChange: handleChange,
onShowSizeChange: showSizeChange,
}"
:data-source="tableData"
:rowKey="(record) => record.id"
>
<!-- 序号 -->
<span
slot=
"num"
slot-scope=
"text, record, index"
>
{{
(
current
-
1
)
*
size
+
index
+
1
}}
</span>
<!-- 统计类型 -->
<template
slot=
"censusType"
slot-scope=
"text"
>
{{
filterDict
(
text
.
censusType
)
}}
</
template
>
<!-- 是否开放 -->
<
template
slot=
"status"
slot-scope=
"text"
>
<a-tag
color=
"blue"
v-if=
"text.status === 1"
>
是
</a-tag>
<a-tag
color=
"red"
v-else
>
否
</a-tag>
</
template
>
<!-- 操作 -->
<
template
slot=
"action"
slot-scope=
"text"
>
<a-space>
<a
href=
"javascript:;"
class=
"edit"
@
click=
"handleEdit(text)"
>
编辑
</a
>
<a
href=
"javascript:;"
class=
"delete"
@
click=
"handleDel(text.id)"
>
删除
</a
>
</a-space>
</
template
>
</a-table>
</div>
<AddResDim
ref=
"AddResDim"
:addVisible.sync=
"addVisible"
:title=
"title"
:dict=
"dict"
></AddResDim>
</a-drawer>
</div>
</template>
<
script
>
import
{
pageSizeOptions
}
from
"
@/config/pageConfig.js
"
;
import
{
getDimResList
}
from
"
@/services/system
"
;
import
AddResDim
from
"
./AddResDim.vue
"
;
const
ruleCondition
=
[
{
key
:
"
IN
"
,
name
:
"
属于
"
,
},
{
key
:
"
<
"
,
name
:
"
小于
"
,
},
{
key
:
"
>
"
,
name
:
"
大于
"
,
},
{
key
:
"
=
"
,
name
:
"
等于
"
,
},
{
key
:
"
!=
"
,
name
:
"
不等于
"
,
},
{
key
:
"
>=
"
,
name
:
"
大于等于
"
,
},
{
key
:
"
<=
"
,
name
:
"
小于等于
"
,
},
{
key
:
"
% like
"
,
name
:
"
左模糊
"
,
},
{
key
:
"
like %
"
,
name
:
"
右模糊
"
,
},
];
export
default
{
props
:
{
visible
:
{
type
:
Boolean
,
require
:
true
,
default
:
false
,
},
},
components
:
{
AddResDim
},
data
()
{
const
columns
=
[
{
title
:
"
序号
"
,
dataIndex
:
"
num
"
,
width
:
"
65px
"
,
scopedSlots
:
{
customRender
:
"
num
"
,
},
},
{
title
:
"
规则名称
"
,
dataIndex
:
"
ruleName
"
,
},
{
title
:
"
规则编码
"
,
dataIndex
:
"
ruleCode
"
,
},
{
title
:
"
规则条件
"
,
dataIndex
:
"
ruleCondition
"
,
},
{
title
:
"
规则值
"
,
dataIndex
:
"
ruleValue
"
,
},
{
title
:
"
规则类型
"
,
dataIndex
:
"
ruleType
"
,
},
{
title
:
"
所属资源
"
,
dataIndex
:
"
resourceName
"
,
},
{
title
:
"
创建时间
"
,
dataIndex
:
"
createTime
"
,
},
{
title
:
"
操作
"
,
width
:
"
100px
"
,
scopedSlots
:
{
customRender
:
"
action
"
},
},
];
return
{
ruleCondition
,
columns
,
roleInfo
:
{},
// 模块信息
loading
:
false
,
total
:
0
,
size
:
10
,
current
:
1
,
pageSizeOptions
,
selectedRowKeys
:
[],
tableData
:
[],
addVisible
:
false
,
title
:
"
新增
"
,
searchVal
:
""
,
dict
:
{},
// 字典
};
},
computed
:
{
Visible
:
{
get
()
{
return
this
.
visible
;
},
set
(
val
)
{
this
.
$emit
(
"
update:visible
"
,
val
);
},
},
},
methods
:
{
// 获取模块信息
getRoleInfo
(
roleInfo
)
{
this
.
roleInfo
=
roleInfo
;
this
.
getDimResList
();
},
// 获取列表
async
getDimResList
()
{
let
res
=
await
getDimResList
({
current
:
this
.
current
,
size
:
this
.
size
,
roleId
:
this
.
roleInfo
.
id
,
ruleName
:
this
.
searchVal
,
});
if
(
res
.
data
.
code
==
1
)
{
console
.
log
(
res
.
data
);
}
},
handleAdd
()
{
this
.
title
=
"
新增
"
;
this
.
addVisible
=
true
;
this
.
$refs
.
AddResDim
.
onAdd
();
},
handleDelAll
()
{
if
(
!
this
.
selectedRowKeys
.
length
)
{
this
.
$message
.
warning
(
"
请先勾选数据
"
);
return
;
}
let
ids
=
this
.
selectedRowKeys
.
join
(
"
,
"
);
this
.
handleDel
(
ids
);
},
// 关闭抽屉
onClose
()
{
this
.
searchVal
=
""
;
this
.
selectedRowKeys
=
[];
this
.
Visible
=
false
;
},
// 搜索
onSearch
()
{
this
.
current
=
1
;
},
// 编辑
handleEdit
(
row
)
{
this
.
title
=
"
编辑
"
;
this
.
addVisible
=
true
;
this
.
$refs
.
AddResDim
.
onEdit
(
row
);
},
// 翻页
handleChange
(
cur
)
{
this
.
current
=
cur
;
},
// 改变每页显示数量
showSizeChange
(
current
,
size
)
{
this
.
current
=
current
;
this
.
size
=
size
;
},
// 删除
handleDel
(
id
)
{
let
_this
=
this
;
this
.
$confirm
({
title
:
"
系统提示
"
,
content
:
"
删除不可恢复,确定要删除吗?
"
,
okText
:
"
确定
"
,
okType
:
"
danger
"
,
cancelText
:
"
取消
"
,
centered
:
true
,
icon
:
"
exclamation-circle
"
,
maskClosable
:
true
,
async
onOk
()
{
console
.
log
(
id
,
_this
);
},
});
},
// 选中
onSelectChange
(
keys
)
{
this
.
selectedRowKeys
=
keys
;
},
// 过滤列表数据
filterDict
(
dict
)
{
let
str
=
""
;
Object
.
keys
(
this
.
dict
.
censusType
).
forEach
((
keys
)
=>
{
if
(
dict
==
keys
)
{
str
=
this
.
dict
.
censusType
[
keys
];
}
});
return
str
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
></
style
>
base-manager-ui/admin/src/pages/basicset/system/user/User.vue
0 → 100644
View file @
ac190666
<
template
>
<div
class=
"user-container"
>
<div
class=
"control flex aic jcb mb15 pdr6"
>
<div>
<!--
<a-button
type=
"primary"
style=
"margin-right: 10px"
@
click=
"handleAdd"
>
新增
</a-button
>
<a-button
type=
"danger"
@
click=
"handleDelAll"
>
批量删除
</a-button>
-->
</div>
<div
class=
"search-box"
>
<a-space>
<a-input
placeholder=
"请输入登录名搜索"
v-model=
"searchForm.loginName"
allowClear
/>
<a-input
placeholder=
"请输入用户姓名搜索"
v-model=
"searchForm.realName"
allowClear
/>
<a-button
type=
"primary"
@
click=
"onSearch"
>
搜索
</a-button>
<a-button
@
click=
"resetSearch"
>
重置
</a-button>
</a-space>
</div>
</div>
<!-- 表格 -->
<div
class=
"table-content"
>
<a-table
:loading=
"loading"
bordered
:scroll=
"
{ y: 590 }"
:columns="columns"
:pagination="{
showTotal: (total) => `共 ${total} 条`,
current: current,
total: total,
pageSize: size,
showSizeChanger: true,
showQuickJumper: true,
pageSizeOptions: pageSizeOptions,
onChange: handleChange,
onShowSizeChange: showSizeChange,
}"
:data-source="tableData"
:rowKey="(record) => record.id"
>
<!-- 序号 -->
<span
slot=
"num"
slot-scope=
"text, record, index"
>
{{
(
current
-
1
)
*
size
+
index
+
1
}}
</span>
<!-- 操作 -->
<template
slot=
"action"
slot-scope=
"text"
>
<a-space
size=
"middle"
>
<span
class=
"primary pointer"
@
click=
"changeRole(text)"
>
分配角色
</span
>
</a-space>
</
template
>
</a-table>
</div>
<!-- 分配角色 -->
<AddUserRole
ref=
"AddUserRole"
:addVisible.sync=
"addVisible"
></AddUserRole>
</div>
</template>
<
script
>
import
{
getUserList
}
from
"
@/services/system
"
;
import
{
pageSizeOptions
}
from
"
@/config/pageConfig.js
"
;
import
AddUserRole
from
"
./modal/AddUserRole.vue
"
;
import
{
mapState
}
from
"
vuex
"
;
export
default
{
components
:
{
AddUserRole
},
data
()
{
const
columns
=
[
{
title
:
"
序号
"
,
dataIndex
:
"
num
"
,
width
:
"
65px
"
,
scopedSlots
:
{
customRender
:
"
num
"
,
},
},
{
title
:
"
登录名
"
,
dataIndex
:
"
loginName
"
,
},
{
title
:
"
用户姓名
"
,
dataIndex
:
"
realName
"
,
},
{
title
:
"
所属角色
"
,
dataIndex
:
"
roleIds
"
,
customRender
:
(
text
)
=>
{
if
(
text
&&
this
.
dict
.
roleIds
)
{
return
<
a
-
tag
>
{
this
.
dict
.
roleIds
[
text
]}
<
/a-tag>
;
}
},
},
{
title
:
"
状态
"
,
dataIndex
:
"
status
"
,
customRender
:
(
text
)
=>
{
return
<
a
-
tag
>
{
this
.
dict
.
status
[
text
]}
<
/a-tag>
;
},
},
{
title
:
"
操作
"
,
width
:
"
120px
"
,
scopedSlots
:
{
customRender
:
"
action
"
},
},
];
return
{
columns
,
loading
:
false
,
current
:
1
,
size
:
10
,
total
:
0
,
pageSizeOptions
,
searchForm
:
{
loginName
:
""
,
realName
:
""
,
},
tableData
:
[],
selectedRowKeys
:
[],
dict
:
{},
// 字典
addVisible
:
false
,
title
:
"
新增
"
,
loginNames
:
[
"
admin
"
,
"
administrator1
"
,
"
Administrator
"
],
};
},
computed
:
{
...
mapState
(
"
site
"
,
[
"
userInfo
"
]),
},
created
()
{
this
.
getUserList
();
},
methods
:
{
// 获取用户列表
async
getUserList
()
{
this
.
loading
=
true
;
let
res
=
await
getUserList
({
page
:
this
.
current
,
size
:
this
.
size
,
...
this
.
searchForm
,
});
this
.
loading
=
false
;
if
(
res
.
data
.
code
==
1
)
{
let
{
data
,
total
,
dict
}
=
res
.
data
.
data
;
let
{
name
}
=
this
.
userInfo
;
if
(
this
.
loginNames
.
includes
(
name
))
{
this
.
tableData
=
data
;
this
.
total
=
total
;
}
else
{
this
.
tableData
=
data
.
filter
((
v
)
=>
{
return
!
this
.
loginNames
.
includes
(
v
.
loginName
);
});
this
.
total
=
total
-
this
.
loginNames
.
length
;
}
this
.
dict
=
dict
;
}
},
// 新增
handleAdd
()
{
this
.
title
=
"
新增
"
;
this
.
$refs
.
AddParameter
.
onAdd
();
this
.
addVisible
=
true
;
},
// 搜索
onSearch
()
{
this
.
current
=
1
;
this
.
getUserList
();
},
resetSearch
()
{
this
.
current
=
1
;
Object
.
assign
(
this
.
searchForm
,
this
.
$options
.
data
().
searchForm
);
this
.
getUserList
();
},
// 分页
handleChange
(
num
)
{
this
.
current
=
num
;
this
.
getUserList
();
},
// 改变每页显示数量
showSizeChange
(
current
,
size
)
{
this
.
current
=
current
;
this
.
size
=
size
;
this
.
getUserList
();
},
// 分配角色
changeRole
(
row
)
{
this
.
$refs
.
AddUserRole
.
onEdit
(
row
);
this
.
addVisible
=
true
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
.user-container {
width: 100%;
height: 100%;
}
</
style
>
base-manager-ui/admin/src/pages/basicset/system/user/modal/AddUserRole.vue
0 → 100644
View file @
ac190666
<
template
>
<div>
<a-modal
title=
"分配角色"
:visible=
"Visible"
@
cancel=
"handleCancel"
:maskClosable=
"false"
>
<a-button
slot=
"footer"
@
click=
"handleReset"
>
重置
</a-button>
<a-button
slot=
"footer"
type=
"primary"
:loading=
"loading"
@
click=
"handleOk"
>
确定
</a-button
>
<a-form-model
:model=
"form"
ref=
"form"
:rules=
"rules"
:label-col=
"
{ span: 5 }"
:wrapper-col="{ span: 19 }"
>
<a-form-model-item
label=
"选择角色"
prop=
"roleIds"
>
<a-select
mode=
"multiple"
v-model=
"form.roleIds"
placeholder=
"请选择角色"
>
<a-select-option
v-for=
"v in roleList"
:key=
"v.id"
:value=
"v.id"
>
{{
v
.
name
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-form-model>
</a-modal>
</div>
</
template
>
<
script
>
import
{
getRoleList
,
saveUser
}
from
"
@/services/system
"
;
export
default
{
components
:
{},
props
:
{
addVisible
:
{
required
:
true
,
type
:
Boolean
,
default
:
false
,
},
},
data
()
{
return
{
loading
:
false
,
form
:
{
roleIds
:
[],
},
roleList
:
[],
rules
:
{
roleIds
:
[{
required
:
true
,
message
:
"
请选择角色
"
,
trigger
:
"
change
"
}],
},
};
},
computed
:
{
Visible
:
{
get
()
{
return
this
.
addVisible
;
},
set
(
val
)
{
this
.
$emit
(
"
update:addVisible
"
,
val
);
},
},
},
created
()
{
this
.
getRoleList
();
},
methods
:
{
// 获取角色列表
async
getRoleList
()
{
let
res
=
await
getRoleList
({
page
:
1
,
size
:
-
1
,
});
if
(
res
.
data
.
code
==
1
)
{
let
{
data
}
=
res
.
data
.
data
;
this
.
roleList
=
data
;
}
},
// 新增
onAdd
()
{
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
"
id
"
);
},
// 编辑
onEdit
(
row
)
{
this
.
$nextTick
(()
=>
{
this
.
form
=
{
...
row
};
if
(
this
.
form
.
roleIds
)
{
this
.
form
.
roleIds
=
this
.
form
.
roleIds
.
split
(
"
,
"
);
}
else
{
this
.
form
.
roleIds
=
[];
}
});
},
// 保存
handleOk
()
{
this
.
$refs
.
form
.
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
this
.
loading
=
true
;
let
res
=
await
saveUser
({
...
this
.
form
,
roleIds
:
this
.
form
.
roleIds
.
join
(
"
,
"
),
});
this
.
loading
=
false
;
let
{
code
,
msg
}
=
res
.
data
;
if
(
code
==
1
)
{
this
.
$message
.
success
(
msg
);
this
.
$emit
(
"
addSuccess
"
);
this
.
handleCancel
();
}
}
});
},
// 重置
handleReset
()
{
this
.
$refs
.
form
.
resetFields
();
},
// 关闭
handleCancel
()
{
this
.
$refs
.
form
.
resetFields
();
this
.
Visible
=
false
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
></
style
>
base-manager-ui/admin/src/router/config.js
View file @
ac190666
...
...
@@ -308,6 +308,32 @@ const options = {
},
redirect
:
"
system/parameter
"
,
children
:
[
{
path
:
"
user
"
,
name
:
"
用户管理
"
,
component
:
()
=>
import
(
"
@/pages/basicset/system/user/User
"
),
meta
:
{
invisible
:
true
},
},
{
path
:
"
role
"
,
name
:
"
角色管理
"
,
component
:
()
=>
import
(
"
@/pages/basicset/system/role/Role
"
),
meta
:
{
invisible
:
true
},
},
{
path
:
"
resource
"
,
name
:
"
资源管理
"
,
component
:
()
=>
import
(
"
@/pages/basicset/system/resourceManage/Resource
"
),
meta
:
{
invisible
:
true
},
},
{
path
:
"
dimension
"
,
name
:
"
维度管理
"
,
component
:
()
=>
import
(
"
@/pages/basicset/system/dimension/Dimension
"
),
meta
:
{
invisible
:
true
},
},
{
path
:
"
parameter
"
,
name
:
"
系统参数
"
,
...
...
base-manager-ui/admin/src/services/basicsetApi.js
View file @
ac190666
...
...
@@ -349,6 +349,44 @@ module.exports = {
save
:
`
${
BASE_URL
}
/base/task/save`
,
delete
:
`
${
BASE_URL
}
/base/task/delete`
,
},
// 维度
dimension
:
{
list
:
`
${
BASE_URL
}
/base/dimension/list`
,
info
:
`
${
BASE_URL
}
/base/dimension/info`
,
save
:
`
${
BASE_URL
}
/base/dimension/save`
,
delete
:
`
${
BASE_URL
}
/base/dimension/delete`
,
},
// 角色资源维度
dimensionResource
:
{
list
:
`
${
BASE_URL
}
/base/dimension/resource/rule/list`
,
info
:
`
${
BASE_URL
}
/base/dimension/resource/rule/info`
,
save
:
`
${
BASE_URL
}
/base/dimension/resource/rule/save`
,
delete
:
`
${
BASE_URL
}
/base/dimension/resource/rule/delete`
,
},
// 用户
user
:
{
list
:
`
${
BASE_URL
}
/base/user/list`
,
info
:
`
${
BASE_URL
}
/base/user/info`
,
save
:
`
${
BASE_URL
}
/base/user/save`
,
delete
:
`
${
BASE_URL
}
/base/user/delete`
,
},
// 角色
role
:
{
list
:
`
${
BASE_URL
}
/base/role/list`
,
info
:
`
${
BASE_URL
}
/base/role/info`
,
save
:
`
${
BASE_URL
}
/base/role/save`
,
delete
:
`
${
BASE_URL
}
/base/role/delete`
,
authList
:
`
${
BASE_URL
}
/base/role/auth/list`
,
distributionSource
:
`
${
BASE_URL
}
/base/role/auth/distributionSource`
,
},
// 资源
resource
:
{
list
:
`
${
BASE_URL
}
/base/resource/list`
,
info
:
`
${
BASE_URL
}
/base/resource/info`
,
save
:
`
${
BASE_URL
}
/base/resource/save`
,
delete
:
`
${
BASE_URL
}
/base/resource/delete`
,
refreshUrl
:
`
${
BASE_URL
}
/base/resource/refreshUrl`
,
},
},
// 站点大厅
hall
:
{
...
...
base-manager-ui/admin/src/services/index.js
View file @
ac190666
import
userService
from
'
./user
'
import
userService
from
"
./user
"
;
export
{
userService
import
{
upload
}
from
"
@/services/basicsetApi
"
;
import
{
request
,
METHOD
}
from
"
@/utils/request
"
;
// 上传文件
export
async
function
uploadFile
(
data
)
{
return
request
(
upload
.
file
,
METHOD
.
POST
,
data
);
}
export
{
userService
};
base-manager-ui/admin/src/services/system.js
View file @
ac190666
...
...
@@ -46,3 +46,112 @@ export async function saveSystemTask(data) {
export
async
function
delSystemTask
(
data
)
{
return
request
(
system
.
task
.
delete
,
METHOD
.
GET
,
data
);
}
/*
* 用户管理
*/
// 获取用户列表
export
async
function
getUserList
(
data
)
{
return
request
(
system
.
user
.
list
,
METHOD
.
POST
,
data
);
}
// 获取用户信息
export
async
function
getUserInfo
(
data
)
{
return
request
(
system
.
user
.
info
,
METHOD
.
GET
,
data
);
}
// 保存用户信息
export
async
function
saveUser
(
data
)
{
return
request
(
system
.
user
.
save
,
METHOD
.
POST
,
data
);
}
// 删除用户信息
export
async
function
delUser
(
data
)
{
return
request
(
system
.
user
.
delete
,
METHOD
.
GET
,
data
);
}
/*
* 角色管理
*/
// 获取角色列表
export
async
function
getRoleList
(
data
)
{
return
request
(
system
.
role
.
list
,
METHOD
.
POST
,
data
);
}
// 获取角色信息
export
async
function
getRoleInfo
(
data
)
{
return
request
(
system
.
role
.
info
,
METHOD
.
GET
,
data
);
}
// 保存角色信息
export
async
function
saveRole
(
data
)
{
return
request
(
system
.
role
.
save
,
METHOD
.
POST
,
data
);
}
// 删除角色信息
export
async
function
delRole
(
data
)
{
return
request
(
system
.
role
.
delete
,
METHOD
.
GET
,
data
);
}
// 获取角色资源列表
export
async
function
getRoleResourceList
(
data
)
{
return
request
(
system
.
role
.
authList
,
METHOD
.
POST
,
data
);
}
// 保存角色资源信息
export
async
function
saveRoleResource
(
data
)
{
return
request
(
system
.
role
.
distributionSource
,
METHOD
.
POST
,
data
);
}
/*
* 资源管理
*/
// 获取资源列表
export
async
function
getResourceList
(
data
)
{
return
request
(
system
.
resource
.
list
,
METHOD
.
POST
,
data
);
}
// 获取资源信息
export
async
function
getResourceInfo
(
data
)
{
return
request
(
system
.
resource
.
info
,
METHOD
.
GET
,
data
);
}
// 保存资源信息
export
async
function
saveResource
(
data
)
{
return
request
(
system
.
resource
.
save
,
METHOD
.
POST
,
data
);
}
// 删除资源信息
export
async
function
delResource
(
data
)
{
return
request
(
system
.
resource
.
delete
,
METHOD
.
GET
,
data
);
}
// 刷新资源
export
async
function
refreshResource
(
data
)
{
return
request
(
system
.
resource
.
refreshUrl
,
METHOD
.
POST
,
data
);
}
/*
* 维度管理
*/
// 获取维度列表
export
async
function
getDimensionList
(
data
)
{
return
request
(
system
.
dimension
.
list
,
METHOD
.
POST
,
data
);
}
// 获取维度信息
export
async
function
getDimensionInfo
(
data
)
{
return
request
(
system
.
dimension
.
info
,
METHOD
.
GET
,
data
);
}
// 保存维度信息
export
async
function
saveDimension
(
data
)
{
return
request
(
system
.
dimension
.
save
,
METHOD
.
POST
,
data
);
}
// 删除维度信息
export
async
function
delDimension
(
data
)
{
return
request
(
system
.
dimension
.
delete
,
METHOD
.
GET
,
data
);
}
// 获取角色资源维度列表
export
async
function
getDimResList
(
data
)
{
return
request
(
system
.
dimensionResource
.
list
,
METHOD
.
POST
,
data
);
}
// 获取角色资源维度信息
export
async
function
getDimResInfo
(
data
)
{
return
request
(
system
.
dimensionResource
.
info
,
METHOD
.
GET
,
data
);
}
// 保存角色资源维度信息
export
async
function
saveDimRes
(
data
)
{
return
request
(
system
.
dimensionResource
.
save
,
METHOD
.
POST
,
data
);
}
// 删除角色资源维度信息
export
async
function
delDimRes
(
data
)
{
return
request
(
system
.
dimensionResource
.
delete
,
METHOD
.
GET
,
data
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment