Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ant-design-pro-vue
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tianzhuanghu
ant-design-pro-vue
Commits
9c440120
Commit
9c440120
authored
Sep 16, 2018
by
Sendya
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added: permission table
parent
8c66abd0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
292 additions
and
0 deletions
+292
-0
index.js
src/router/index.js
+6
-0
PermissionList.vue
src/views/list/PermissionList.vue
+286
-0
No files found.
src/router/index.js
View file @
9c440120
...
...
@@ -128,6 +128,12 @@ export const asyncRouterMap = [
meta
:
{
title
:
'角色列表'
}
},
{
path
:
'/list/permission-list'
,
name
:
'PermissionList'
,
component
:
()
=>
import
(
'@/views/list/PermissionList'
),
meta
:
{
title
:
'权限列表'
}
},
{
path
:
'/list/basic-list'
,
name
:
'BasicList'
,
component
:
()
=>
import
(
'@/views/list/StandardList'
),
...
...
src/views/list/PermissionList.vue
0 → 100644
View file @
9c440120
<
template
>
<a-card
:bordered=
"false"
>
<div>
<a-form
layout=
"horizontal"
>
<div
:class=
"advanced ? null : 'fold'"
>
<a-row
:gutter=
"48"
>
<a-col
:md=
"8"
:sm=
"24"
>
<a-form-item
label=
"名称"
:labelCol=
"
{span: 5}"
:wrapperCol="{span: 18, offset: 1}"
>
<a-input
placeholder=
"请输入"
/>
</a-form-item>
</a-col>
<a-col
:md=
"8"
:sm=
"24"
>
<a-form-item
label=
"状态"
:labelCol=
"
{span: 5}"
:wrapperCol="{span: 18, offset: 1}"
>
<a-select
placeholder=
"请选择"
>
<a-select-option
value=
"1"
>
正常
</a-select-option>
<a-select-option
value=
"2"
>
禁用
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<span
style=
"margin-top: 3px;"
>
<a-button
type=
"primary"
>
查询
</a-button>
<a-button
style=
"margin-left: 8px"
>
重置
</a-button>
</span>
</a-row>
</div>
</a-form>
</div>
<s-table
size=
"default"
:columns=
"columns"
:data=
"loadData"
>
<span
slot=
"actions"
slot-scope=
"text, record"
>
<a-tag
v-for=
"(action, index) in record.actionList"
:key=
"index"
>
{{
action
.
describe
}}
</a-tag>
</span>
<span
slot=
"status"
slot-scope=
"text"
>
{{
text
|
statusFilter
}}
</span>
<span
slot=
"action"
slot-scope=
"text, record"
>
<a
@
click=
"handleEdit(record)"
>
编辑
</a>
<a-divider
type=
"vertical"
/>
<a-dropdown>
<a
class=
"ant-dropdown-link"
>
更多
<a-icon
type=
"down"
/>
</a>
<a-menu
slot=
"overlay"
>
<a-menu-item>
<a
href=
"javascript:;"
>
详情
</a>
</a-menu-item>
<a-menu-item>
<a
href=
"javascript:;"
>
禁用
</a>
</a-menu-item>
<a-menu-item>
<a
href=
"javascript:;"
>
删除
</a>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</s-table>
<a-modal
title=
"操作"
:width=
"800"
v-model=
"visible"
@
ok=
"handleOk"
>
<a-form
:autoFormCreate=
"(form)=>
{this.form = form}">
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
'唯一识别码'
hasFeedback
validateStatus=
'success'
>
<a-input
placeholder=
'唯一识别码'
v-model=
"mdl.id"
id=
'no'
disabled=
"disabled"
/>
</a-form-item>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
'权限名称'
hasFeedback
validateStatus=
'success'
>
<a-input
placeholder=
'起一个名字'
v-model=
"mdl.name"
id=
'permission_name'
/>
</a-form-item>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
'状态'
hasFeedback
validateStatus=
'warning'
>
<a-select
v-model=
"mdl.status"
>
<a-select-option
value=
'1'
>
正常
</a-select-option>
<a-select-option
value=
'2'
>
禁用
</a-select-option>
</a-select>
</a-form-item>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
'描述'
hasFeedback
>
<a-textarea
:rows=
"5"
v-model=
"mdl.describe"
placeholder=
"..."
id=
'describe'
/>
</a-form-item>
<a-divider
/>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
'赋予权限'
hasFeedback
>
<a-select
style=
"width: 100%"
mode=
"multiple"
v-model=
"mdl.actions"
:allowClear=
"true"
>
<a-select-option
v-for=
"(action, index) in permissionList"
:key=
"index"
:value=
"action.value"
>
{{
action
.
label
}}
</a-select-option>
</a-select>
</a-form-item>
</a-form>
</a-modal>
</a-card>
</
template
>
<
script
>
import
STable
from
'@/components/table/'
export
default
{
name
:
"TableList"
,
components
:
{
STable
},
data
()
{
return
{
description
:
'列表使用场景:后台管理中的权限管理以及角色管理,可用于基于 RBAC 设计的角色权限控制,颗粒度细到每一个操作类型。'
,
visible
:
false
,
labelCol
:
{
xs
:
{
span
:
24
},
sm
:
{
span
:
5
},
},
wrapperCol
:
{
xs
:
{
span
:
24
},
sm
:
{
span
:
16
},
},
form
:
null
,
mdl
:
{},
// 高级搜索 展开/关闭
advanced
:
false
,
// 查询参数
queryParam
:
{},
// 表头
columns
:
[
{
title
:
'唯一识别码'
,
dataIndex
:
'id'
},
{
title
:
'权限名称'
,
dataIndex
:
'name'
,
},
{
title
:
'可操作权限'
,
dataIndex
:
'actions'
,
scopedSlots
:
{
customRender
:
'actions'
},
},
{
title
:
'状态'
,
dataIndex
:
'status'
,
scopedSlots
:
{
customRender
:
'status'
},
},
{
title
:
'操作'
,
width
:
'150px'
,
dataIndex
:
'action'
,
scopedSlots
:
{
customRender
:
'action'
},
}
],
// 向后端拉取可以用的操作列表
permissionList
:
null
,
// 加载数据方法 必须为 Promise 对象
loadData
:
parameter
=>
{
return
this
.
$http
.
get
(
'/permission'
,
{
params
:
Object
.
assign
(
parameter
,
this
.
queryParam
)
}).
then
(
res
=>
{
let
result
=
res
.
result
result
.
data
.
map
(
permission
=>
{
permission
.
actionList
=
JSON
.
parse
(
permission
.
actionData
)
return
permission
})
return
result
})
},
selectedRowKeys
:
[],
selectedRows
:
[]
}
},
filters
:
{
statusFilter
(
status
)
{
const
statusMap
=
{
1
:
'正常'
,
2
:
'禁用'
}
return
statusMap
[
status
]
}
},
created
()
{
this
.
loadPermissionList
()
},
methods
:
{
loadPermissionList
()
{
// permissionList
new
Promise
((
resolve
=>
{
const
data
=
[
{
label
:
'新增'
,
value
:
'add'
,
defaultChecked
:
false
},
{
label
:
'查询'
,
value
:
'get'
,
defaultChecked
:
false
},
{
label
:
'修改'
,
value
:
'update'
,
defaultChecked
:
false
},
{
label
:
'列表'
,
value
:
'query'
,
defaultChecked
:
false
},
{
label
:
'删除'
,
value
:
'delete'
,
defaultChecked
:
false
},
{
label
:
'导入'
,
value
:
'import'
,
defaultChecked
:
false
},
{
label
:
'导出'
,
value
:
'export'
,
defaultChecked
:
false
}
]
setTimeout
(
resolve
(
data
),
1500
)
})).
then
(
res
=>
{
this
.
permissionList
=
res
})
},
handleEdit
(
record
)
{
this
.
mdl
=
Object
.
assign
({},
record
)
console
.
log
(
this
.
mdl
)
this
.
visible
=
true
},
handleOk
()
{
},
onChange
(
selectedRowKeys
,
selectedRows
)
{
this
.
selectedRowKeys
=
selectedRowKeys
this
.
selectedRows
=
selectedRows
},
toggleAdvanced
()
{
this
.
advanced
=
!
this
.
advanced
},
},
watch
:
{
/*
'selectedRows': function (selectedRows) {
this.needTotalList = this.needTotalList.map(item => {
return {
...item,
total: selectedRows.reduce( (sum, val) => {
return sum + val[item.dataIndex]
}, 0)
}
})
}
*/
}
}
</
script
>
\ No newline at end of file
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