Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
newShopFront
Project
Project
Details
Activity
Releases
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
newshop
newShopFront
Commits
b716fbe2
Commit
b716fbe2
authored
Dec 18, 2019
by
Your Name
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
权限节点列表管理员列表
parent
d476d4dd
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
743 additions
and
91 deletions
+743
-91
package-lock.json
package-lock.json
+20
-20
authority.js
src/api/authority.js
+20
-3
manage.js
src/api/manage.js
+59
-59
index.js
src/components/Table/index.js
+14
-1
router.config.js
src/config/router.config.js
+12
-0
main.js
src/main.js
+4
-1
manageList.vue
src/views/authority/manageList.vue
+111
-0
menuList.vue
src/views/authority/menuList.vue
+496
-0
roleList.vue
src/views/authority/roleList.vue
+3
-2
Scategorymg.vue
src/views/storedc/Scategorymg.vue
+4
-5
No files found.
package-lock.json
View file @
b716fbe2
...
@@ -3866,9 +3866,9 @@
...
@@ -3866,9 +3866,9 @@
}
}
},
},
"buffer"
:
{
"buffer"
:
{
"version"
:
"4.9.
1
"
,
"version"
:
"4.9.
2
"
,
"resolved"
:
"https://registry.npmjs.org/buffer/-/buffer-4.9.
1
.tgz"
,
"resolved"
:
"https://registry.npmjs.org/buffer/-/buffer-4.9.
2
.tgz"
,
"integrity"
:
"sha
1-bRu2AbB6TvztlwlBMgkwJ8lbwpg
="
,
"integrity"
:
"sha
512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg=
="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"base64-js"
:
"^1.0.2"
,
"base64-js"
:
"^1.0.2"
,
...
@@ -5793,9 +5793,9 @@
...
@@ -5793,9 +5793,9 @@
"dev"
:
true
"dev"
:
true
},
},
"des.js"
:
{
"des.js"
:
{
"version"
:
"1.0.
0
"
,
"version"
:
"1.0.
1
"
,
"resolved"
:
"https://registry.npmjs.org/des.js/-/des.js-1.0.
0
.tgz"
,
"resolved"
:
"https://registry.npmjs.org/des.js/-/des.js-1.0.
1
.tgz"
,
"integrity"
:
"sha
1-wHTS4qpqipoH29YfmhXCzYPsjsw
="
,
"integrity"
:
"sha
512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA=
="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"inherits"
:
"^2.0.1"
,
"inherits"
:
"^2.0.1"
,
...
@@ -6089,9 +6089,9 @@
...
@@ -6089,9 +6089,9 @@
"dev"
:
true
"dev"
:
true
},
},
"elliptic"
:
{
"elliptic"
:
{
"version"
:
"6.5.
1
"
,
"version"
:
"6.5.
2
"
,
"resolved"
:
"https://registry.npmjs.org/elliptic/-/elliptic-6.5.
1
.tgz"
,
"resolved"
:
"https://registry.npmjs.org/elliptic/-/elliptic-6.5.
2
.tgz"
,
"integrity"
:
"sha512-
xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg
=="
,
"integrity"
:
"sha512-
f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw
=="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"bn.js"
:
"^4.4.0"
,
"bn.js"
:
"^4.4.0"
,
...
@@ -14055,9 +14055,9 @@
...
@@ -14055,9 +14055,9 @@
}
}
},
},
"serialize-javascript"
:
{
"serialize-javascript"
:
{
"version"
:
"
1.9.1
"
,
"version"
:
"
2.1.2
"
,
"resolved"
:
"https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-
1.9.1
.tgz"
,
"resolved"
:
"https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-
2.1.2
.tgz"
,
"integrity"
:
"sha512-
0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A
=="
,
"integrity"
:
"sha512-
rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ
=="
,
"dev"
:
true
"dev"
:
true
},
},
"serve-index"
:
{
"serve-index"
:
{
...
@@ -15054,16 +15054,16 @@
...
@@ -15054,16 +15054,16 @@
}
}
},
},
"terser-webpack-plugin"
:
{
"terser-webpack-plugin"
:
{
"version"
:
"1.4.
1
"
,
"version"
:
"1.4.
3
"
,
"resolved"
:
"https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.
1
.tgz"
,
"resolved"
:
"https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.
3
.tgz"
,
"integrity"
:
"sha512-
ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg
=="
,
"integrity"
:
"sha512-
QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA
=="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"cacache"
:
"^12.0.2"
,
"cacache"
:
"^12.0.2"
,
"find-cache-dir"
:
"^2.1.0"
,
"find-cache-dir"
:
"^2.1.0"
,
"is-wsl"
:
"^1.1.0"
,
"is-wsl"
:
"^1.1.0"
,
"schema-utils"
:
"^1.0.0"
,
"schema-utils"
:
"^1.0.0"
,
"serialize-javascript"
:
"^
1.7.0
"
,
"serialize-javascript"
:
"^
2.1.2
"
,
"source-map"
:
"^0.6.1"
,
"source-map"
:
"^0.6.1"
,
"terser"
:
"^4.1.2"
,
"terser"
:
"^4.1.2"
,
"webpack-sources"
:
"^1.4.0"
,
"webpack-sources"
:
"^1.4.0"
,
...
@@ -16103,9 +16103,9 @@
...
@@ -16103,9 +16103,9 @@
"dev"
:
true
"dev"
:
true
},
},
"webpack"
:
{
"webpack"
:
{
"version"
:
"4.41.
2
"
,
"version"
:
"4.41.
3
"
,
"resolved"
:
"https://registry.npmjs.org/webpack/-/webpack-4.41.
2
.tgz"
,
"resolved"
:
"https://registry.npmjs.org/webpack/-/webpack-4.41.
3
.tgz"
,
"integrity"
:
"sha512-
Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A
=="
,
"integrity"
:
"sha512-
EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law
=="
,
"dev"
:
true
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"@webassemblyjs/ast"
:
"1.8.5"
,
"@webassemblyjs/ast"
:
"1.8.5"
,
...
@@ -16128,7 +16128,7 @@
...
@@ -16128,7 +16128,7 @@
"node-libs-browser"
:
"^2.2.1"
,
"node-libs-browser"
:
"^2.2.1"
,
"schema-utils"
:
"^1.0.0"
,
"schema-utils"
:
"^1.0.0"
,
"tapable"
:
"^1.1.3"
,
"tapable"
:
"^1.1.3"
,
"terser-webpack-plugin"
:
"^1.4.
1
"
,
"terser-webpack-plugin"
:
"^1.4.
3
"
,
"watchpack"
:
"^1.6.0"
,
"watchpack"
:
"^1.6.0"
,
"webpack-sources"
:
"^1.4.1"
"webpack-sources"
:
"^1.4.1"
}
}
...
...
src/api/authority.js
View file @
b716fbe2
...
@@ -14,7 +14,16 @@ import homeUrl from './homeURL'
...
@@ -14,7 +14,16 @@ import homeUrl from './homeURL'
* @param parameter
* @param parameter
* @returns {*}
* @returns {*}
*/
*/
// 获取权限节点列表
export
function
getMenuList
(
parameter
)
{
console
.
log
(
'111111111111111111111111111111111111111111111'
)
console
.
log
(
parameter
)
return
axios
({
url
:
'authority/authority-nodes/node-list'
,
method
:
'get'
,
params
:
parameter
})
}
// 获取角色列表
// 获取角色列表
export
function
getRoleList
(
parameter
)
{
export
function
getRoleList
(
parameter
)
{
return
axios
({
return
axios
({
...
@@ -50,7 +59,7 @@ export function modifyRoleDetails (parameter) {
...
@@ -50,7 +59,7 @@ export function modifyRoleDetails (parameter) {
})
})
}
}
// 获取权限节点
// 获取权限节点
export
function
getTree
Details
(
parameter
)
{
export
function
getTree
List
(
parameter
)
{
return
axios
({
return
axios
({
url
:
'authority/authority-nodes/role-authorities'
,
url
:
'authority/authority-nodes/role-authorities'
,
method
:
'get'
,
method
:
'get'
,
...
@@ -65,7 +74,15 @@ export function modifyAuthority (parameter) {
...
@@ -65,7 +74,15 @@ export function modifyAuthority (parameter) {
data
:
parameter
data
:
parameter
})
})
}
}
// 获取管理员列表
export
function
getMangeList
(
parameter
)
{
console
.
log
(
parameter
)
return
axios
({
url
:
'authority/manage-lists/get-manage-list'
,
method
:
'get'
,
params
:
parameter
})
}
/**
/**
* get user 2step code open?
* get user 2step code open?
* @param parameter {*}
* @param parameter {*}
...
...
src/api/manage.js
View file @
b716fbe2
...
@@ -11,69 +11,69 @@ const api = {
...
@@ -11,69 +11,69 @@ const api = {
export
default
api
export
default
api
export
function
getUserList
(
parameter
)
{
//
export function getUserList(parameter) {
return
axios
({
//
return axios({
url
:
api
.
user
,
//
url: api.user,
method
:
'get'
,
//
method: 'get',
params
:
parameter
//
params: parameter
})
//
})
}
//
}
export
function
getRoleList
(
parameter
)
{
//
export function getRoleList(parameter) {
return
axios
({
//
return axios({
url
:
api
.
role
,
//
url: api.role,
method
:
'get'
,
//
method: 'get',
params
:
parameter
//
params: parameter
})
//
})
}
//
}
export
function
getServiceList
(
parameter
)
{
//
export function getServiceList(parameter) {
console
.
log
(
parameter
);
//
console.log(parameter);
let
newparameter
=
{
//
let newparameter = {
'page'
:
parameter
.
page
-
1
,
//
'page': parameter.page-1,
'pageSize'
:
parameter
.
pageSize
,
//
'pageSize': parameter.pageSize,
}
//
}
return
axios
({
//
return axios({
url
:
"http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/user-complains/user-complain"
,
//
url: "http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/user-complains/user-complain",
method
:
'get'
,
//
method: 'get',
headers
:
{
//
headers: {
'Authorization'
:
'Bearer Be6w4YzLSJxLnFNWFKbbJmpl9yAknSKN'
//
'Authorization': 'Bearer Be6w4YzLSJxLnFNWFKbbJmpl9yAknSKN'
},
//
},
params
:
newparameter
//
params: newparameter
})
//
})
}
//
}
export
function
getPermissions
(
parameter
)
{
//
export function getPermissions(parameter) {
console
.
log
(
parameter
);
//
console.log(parameter);
let
newparameter
=
{
//
let newparameter = {
'page'
:
parameter
.
page
-
1
,
//
'page': parameter.page-1,
'pageSize'
:
parameter
.
pageSize
,
//
'pageSize': parameter.pageSize,
}
//
}
return
axios
({
//
return axios({
url
:
"http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/shop-users/employee-list"
,
//
url: "http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/shop-users/employee-list",
method
:
'get'
,
//
method: 'get',
headers
:
{
//
headers: {
'Authorization'
:
'Bearer Be6w4YzLSJxLnFNWFKbbJmpl9yAknSKN'
//
'Authorization': 'Bearer Be6w4YzLSJxLnFNWFKbbJmpl9yAknSKN'
},
//
},
params
:
newparameter
//
params: newparameter
})
//
})
}
//
}
export
function
getOrgTree
(
parameter
)
{
//
export function getOrgTree(parameter) {
console
.
log
(
parameter
);
//
console.log(parameter);
let
newparameter
=
{
//
let newparameter = {
'page'
:
parameter
.
page
-
1
,
//
'page': parameter.page-1,
'pageSize'
:
parameter
.
pageSize
,
//
'pageSize': parameter.pageSize,
}
//
}
return
axios
({
//
return axios({
url
:
"http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/user-departments/department"
,
//
url: "http://localhost/dengxueyun/newshopBack/backend/web/v1/shopuser/user-departments/department",
method
:
'get'
,
//
method: 'get',
headers
:
{
//
headers: {
'Authorization'
:
'Bearer Be6w4YzLSJxLnFNWFKbbJmpl9yAknSKN'
//
'Authorization': 'Bearer Be6w4YzLSJxLnFNWFKbbJmpl9yAknSKN'
},
//
},
params
:
newparameter
//
params: newparameter
})
//
})
}
//
}
// id == 0 add post
// id == 0 add post
// id != 0 update put
// id != 0 update put
...
...
src/components/Table/index.js
View file @
b716fbe2
...
@@ -167,12 +167,25 @@ export default {
...
@@ -167,12 +167,25 @@ export default {
this
.
loadData
()
this
.
loadData
()
return
return
}
}
// 这里用于判断接口是否有返回 r.totalCount 且 this.showPagination = true 且 pageNo 和 pageSize 存在 且 totalCount 小于等于 pageNo * pageSize 的大小
// 这里用于判断接口是否有返回 r.totalCount 且 this.showPagination = true 且 pageNo 和 pageSize 存在 且 totalCount 小于等于 pageNo * pageSize 的大小
// 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能
// 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能
try
{
try
{
if
(([
'auto'
,
true
].
includes
(
this
.
showPagination
)
&&
r
.
totalCount
<=
(
r
.
page
*
this
.
localPagination
.
pageSize
)))
{
if
(([
'auto'
,
true
].
includes
(
this
.
showPagination
)
&&
r
.
totalCount
<=
(
r
.
page
*
this
.
localPagination
.
pageSize
)))
{
this
.
localPagination
.
hideOnSinglePage
=
true
this
.
localPagination
.
hideOnSinglePage
=
true
// this.localPagination = this.showPagination && Object.assign({}, this.localPagination, {
// current: r.page, // 返回结果中的当前分页数
// total: r.totalCount, // 返回结果中的总记录数
// showSizeChanger: this.showSizeChanger,
// pageSize: (pagination && pagination.pageSize) ||
// this.localPagination.pageSize
// }) || false
// // 为防止删除数据后导致页面当前页面数据长度为 0 ,自动翻页到上一页
// if (r.data.length === 0 && this.showPagination && this.localPagination.current > 1) {
// this.localPagination.current--
// this.loadData()
// return
// }
}
}
}
catch
(
e
)
{
}
catch
(
e
)
{
this
.
localPagination
=
false
this
.
localPagination
=
false
...
...
src/config/router.config.js
View file @
b716fbe2
...
@@ -167,11 +167,23 @@ export const asyncRouterMap = [
...
@@ -167,11 +167,23 @@ export const asyncRouterMap = [
component
:
PageView
,
component
:
PageView
,
meta
:
{
title
:
'权限管理'
,
keepAlive
:
true
,
icon
:
'safety'
,
permission
:
[
'table'
]
},
meta
:
{
title
:
'权限管理'
,
keepAlive
:
true
,
icon
:
'safety'
,
permission
:
[
'table'
]
},
children
:
[
children
:
[
{
path
:
'/authority/menuList'
,
name
:
'menuList'
,
component
:
()
=>
import
(
'@/views/authority/menuList'
),
meta
:
{
title
:
'权限节点列表'
,
keepAlive
:
false
,
permission
:
[
'table'
]
}
},
{
{
path
:
'/authority/rolelist'
,
path
:
'/authority/rolelist'
,
name
:
'rolelist'
,
name
:
'rolelist'
,
component
:
()
=>
import
(
'@/views/authority/roleList'
),
component
:
()
=>
import
(
'@/views/authority/roleList'
),
meta
:
{
title
:
'角色列表'
,
keepAlive
:
false
,
permission
:
[
'table'
]
}
meta
:
{
title
:
'角色列表'
,
keepAlive
:
false
,
permission
:
[
'table'
]
}
},
{
path
:
'/authority/manageList'
,
name
:
'manageList'
,
component
:
()
=>
import
(
'@/views/authority/manageList'
),
meta
:
{
title
:
'管理员列表'
,
keepAlive
:
false
,
permission
:
[
'table'
]
}
}
}
]
]
},
},
...
...
src/main.js
View file @
b716fbe2
...
@@ -16,16 +16,19 @@ import 'quill/dist/quill.bubble.css'
...
@@ -16,16 +16,19 @@ import 'quill/dist/quill.bubble.css'
import
VueAMap
from
'vue-amap'
;
import
VueAMap
from
'vue-amap'
;
// mock
// mock
// WARNING: `mockjs` NOT SUPPORT `IE` PLEASE DO NOT USE IN `production` ENV.
// WARNING: `mockjs` NOT SUPPORT `IE` PLEASE DO NOT USE IN `production` ENV.
import
'./mock'
//
import './mock'
import
bootstrap
from
'./core/bootstrap'
import
bootstrap
from
'./core/bootstrap'
import
'./core/lazy_use'
import
'./core/lazy_use'
import
'./permission'
// permission control
import
'./permission'
// permission control
import
'./utils/filter'
// global filter
import
'./utils/filter'
// global filter
import
'./components/global.less'
import
'./components/global.less'
import
common
from
'@/static/js/common.js'
Vue
.
config
.
productionTip
=
false
Vue
.
config
.
productionTip
=
false
Vue
.
prototype
.
common
=
common
// mount axios Vue.$http and this.$http
// mount axios Vue.$http and this.$http
Vue
.
use
(
VueAxios
)
Vue
.
use
(
VueAxios
)
Vue
.
use
(
VueQuillEditor
)
Vue
.
use
(
VueQuillEditor
)
...
...
src/views/authority/manageList.vue
0 → 100644
View file @
b716fbe2
<
template
>
<div>
<a-card
style=
"margin-bottom:10px"
>
<div
class=
"table-operator"
>
<a-button-group>
<a-button
type=
'primary'
icon=
'plus'
@
click=
"goEdit(1)"
>
添加管理员
</a-button>
</a-button-group>
</div>
<s-table
style=
"margin-top:10px"
ref=
"table"
size=
"default"
rowKey=
"GUID"
:columns=
"columns"
:data=
"loadData"
:showPagination=
"pagination"
>
<span
slot=
"action"
slot-scope=
"text, record"
>
<template>
<a
@
click=
"handleEdit(record)"
>
编辑
</a>
<a-divider
type=
"vertical"
/>
<a-popconfirm
title=
"是否要删除此行?"
@
confirm=
"remove(record.ID)"
>
<a>
删除
</a>
</a-popconfirm>
</
template
>
</span>
</s-table>
</a-card>
</div>
</template>
<
script
>
// , addMenu, updateMenu, deleteMenu
import
moment
from
'moment'
import
{
STable
}
from
'@/components'
import
{
getMangeList
}
from
'@/api/authority'
export
default
{
name
:
"authority"
,
components
:
{
STable
},
data
()
{
return
{
labelCol
:
{
xs
:
{
span
:
5
}
},
wrapperCol
:
{
xs
:
{
span
:
17
}
},
form
:
this
.
$form
.
createForm
(
this
),
columns
:
[
{
title
:
'管理员姓名'
,
dataIndex
:
'NAME'
},
{
title
:
'手机号'
,
dataIndex
:
'MOBILEPHONE'
},
{
title
:
'创建时间'
,
dataIndex
:
'CREATE_DATE'
},
{
title
:
'角色'
,
dataIndex
:
'ROLENAME'
},
{
title
:
'操作'
,
dataIndex
:
'action'
,
width
:
'150px'
,
scopedSlots
:
{
customRender
:
'action'
}
}
],
// listData:[],
pagination
:
false
,
// 加载数据方法 必须为 Promise 对象
loadData
:
parameter
=>
{
console
.
log
(
'shujujiazai'
)
return
getMangeList
(
Object
.
assign
(
parameter
,
this
.
queryParam
)).
then
(
res
=>
{
console
.
log
(
'1212121'
)
console
.
log
(
res
)
// this.listData = res
// console.log(this.listData)
// res.data=this.listData
return
res
})
},
selectedRowKeys
:
[],
selectedRows
:
[],
modalNow
:
1
}
},
methods
:
{
}
}
</
script
>
<
style
>
.ant-card-body
{
padding
:
10px
;
}
.ant-card-wider-padding
.ant-card-body
{
padding
:
10px
;
}
.ant-table-tbody
>
tr
>
td
{
padding
:
10px
10px
;
}
</
style
>
src/views/authority/menuList.vue
0 → 100644
View file @
b716fbe2
<
template
>
<div>
<a-card
style=
"margin-bottom:10px"
>
<a-form
layout=
"inline"
>
<a-row
:gutter=
"16"
type=
"flex"
justify=
"start"
>
<a-col
:span=
"6"
>
<a-form-item
label=
"名称:"
>
<a-input
type=
"text"
>
</a-input>
</a-form-item>
</a-col>
<a-col
:span=
"6"
>
<a-form-item
label=
"类型:"
>
<a-radio-group>
<a-radio-button
value=
"0"
>
显示
</a-radio-button>
<a-radio-button
value=
"1"
>
禁用
</a-radio-button>
</a-radio-group>
</a-form-item>
</a-col>
<a-col
:span=
"6"
>
<a-form-item>
<a-button
type=
"primary"
>
<a-icon
type=
"search"
></a-icon>
搜索
</a-button>
</a-form-item>
</a-col>
</a-row>
</a-form>
<!--
<a-card
hoverable
>
-->
<!--
<a-spin
tip=
"加载中,请稍候..."
:spinning=
"loading"
>
-->
<!--
<a-button-group>
<a-button
type=
"primary"
:disabled=
"tableSelected.type && tableSelected.type === 'B'"
@
click=
"addMenuClick"
v-perm:menu:add
>
<a-icon
type=
"plus"
/>
新增
</a-button>
<a-button
type=
"primary"
@
click=
"editMenuClick"
v-perm:menu:edit
>
<a-icon
type=
"edit"
/>
修改
</a-button>
<a-button
type=
"danger"
@
click=
"deleteMenuClick"
v-perm:menu:remove
>
<a-icon
type=
"delete"
/>
删除
</a-button>
</a-button-group>
-->
<s-table
style=
"margin-top:10px"
ref=
"table"
size=
"default"
rowKey=
"ID"
:columns=
"columns"
:data=
"loadData"
:showPagination=
"pagination"
>
<span
slot=
"action"
slot-scope=
"text, record"
>
<template>
<a
@
click=
"handleEdit(record)"
>
编辑
</a>
<a-divider
type=
"vertical"
/>
<a-popconfirm
title=
"是否要删除此行?"
@
confirm=
"remove(record.ID)"
>
<a>
删除
</a>
</a-popconfirm>
</
template
>
</span>
</s-table>
<!-- </a-spin> -->
</a-card>
<!-- <a-modal v-model="showMenuModal" title="菜单" :maskClosable="false" @ok="editMenu">
<a-form :form="form">
<a-form-item v-show="false">
<a-input type="hidden" v-decorator="['id']"></a-input>
</a-form-item>
<a-form-item v-show="false">
<a-input type="hidden" v-decorator="['pid']"></a-input>
</a-form-item>
<a-form-item label="名称:" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-input type="text" v-decorator="['name', { rules: [{ required: true, message: '请输入菜单名' }] }]">
</a-input>
</a-form-item>
<a-form-item label="父菜单:" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-tree-select
style="width:100%"
:dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
:treeData="modalTreeData"
:treeDefaultExpandedKeys="expandedRowKeys"
treeNodeLabelProp="name"
treeNodeFilterProp="id"
@select="parentTreeSelect"
:disabled="modalParams.type == 'B' && editType == 'update'"
v-decorator="['pMenu', { rules: [{ required: false }] }]"
>
</a-tree-select>
</a-form-item>
<a-form-item label="路径:" v-show="modalParams.type != 'B'" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-input
type="text"
v-decorator="['path', { rules: [{ required: modalParams.type != 'B', message: '请输入菜单路径' }] }]"
>
</a-input>
</a-form-item>
<a-form-item label="组件:" v-show="modalParams.type == 'M'" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-input
type="text"
v-decorator="['component', { rules: [{ required: modalParams.type == 'M', message: '请输入菜单组件' }] }]"
>
</a-input>
</a-form-item>
<a-form-item label="权限标识:" v-show="modalParams.type != 'D'" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-input
type="text"
v-decorator="['permName']"
placeholder="权限标识"
/>
</a-form-item>
<a-form-item label="图标:" v-show="modalParams.type != 'B'" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-input type="text" v-decorator="['icon']"> </a-input>
</a-form-item>
<a-form-item label="排序:" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-input type="number" v-decorator="['sort']"> </a-input>
</a-form-item>
<a-form-item label="类型:" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-radio-group
buttonStyle="solid"
:disabled="editType == 'update'"
v-model="modalParams.type"
v-decorator="[
'type',
{ rules: [{ required: true, message: '请选择菜单类型' }, { validator: makeMenuTypeSafe }] }
]"
>
<a-radio-button value="D">目录</a-radio-button>
<a-radio-button value="M">菜单</a-radio-button>
<a-radio-button value="B">按钮</a-radio-button>
</a-radio-group>
</a-form-item>
</a-form>
</a-modal> -->
</div>
</template>
<
script
>
// , addMenu, updateMenu, deleteMenu
import
moment
from
'moment'
import
{
STable
}
from
'@/components'
import
{
getMenuList
}
from
'@/api/authority'
export
default
{
name
:
"authority"
,
components
:
{
STable
},
data
()
{
return
{
// loading: false,
// parentTreeSelected: {},
labelCol
:
{
xs
:
{
span
:
5
}
},
wrapperCol
:
{
xs
:
{
span
:
17
}
},
form
:
this
.
$form
.
createForm
(
this
),
// rowSelection: {
// type: 'radio',
// selectedRowKeys: []
// },
columns
:
[
{
title
:
'菜单名称'
,
dataIndex
:
'TITLE'
},
{
title
:
'节点id'
,
dataIndex
:
'ID'
// customRender: (value, row, index) => {
// var ret = []
// // 添加icon
// if (row.icon) {
// ret.push(
<
a
-
icon
type
=
{
row
.
icon
}
style
=
"font-size:14px;padding-right:3px"
/>
)
// } else {
// ret.push(
<
span
style
=
"padding-right:17px"
/>
)
// }
// return (
//
<
span
>
// {ret}
//
<
span
>
{
value
}
<
/span
>
//
<
/span
>
// )
// }
},
{
title
:
'菜单地址'
,
dataIndex
:
'NAME'
},
{
title
:
'菜单状态'
,
dataIndex
:
'STATUS'
},
{
title
:
'是否为菜单'
,
dataIndex
:
'IS_MENU'
},
{
title
:
'是否顶部菜单'
,
dataIndex
:
'IS_TOP_MENU'
},
{
title
:
'是否默认显示'
,
dataIndex
:
'IS_DEFAULT_SHOW'
},
{
title
:
'描述'
,
dataIndex
:
'REMARK'
},
// {
// title: '类型',
// dataIndex: 'type',
// customRender: (type, row, index) => {
// return (
//
<
div
>
// {type === 'D' ? (
//
<
a
-
tag
color
=
"blue"
>
目录
<
/a-tag
>
// ) : type === 'M' ? (
//
<
a
-
tag
color
=
"green"
>
菜单
<
/a-tag
>
// ) : (
//
<
a
-
tag
color
=
"volcano"
>
按钮
<
/a-tag
>
// )}
//
<
/div
>
// )
// }
// },
{
title
:
'排序'
,
dataIndex
:
'SORT'
},
{
title
:
'类型'
,
dataIndex
:
'LEVEL'
// customRender: (state, row, index) => {
// return
<
div
>
{
state
===
0
?
<
a
-
tag
color
=
"cyan"
>
显示
<
/a-tag> : <a-tag color="red">隐藏</
a
-
tag
>
}
<
/div
>
// }
},
{
title
:
'操作'
,
dataIndex
:
'action'
,
width
:
'150px'
,
scopedSlots
:
{
customRender
:
'action'
}
}
],
listData
:[],
pagination
:
false
,
// 加载数据方法 必须为 Promise 对象
loadData
:
parameter
=>
{
console
.
log
(
'shujujiazai'
)
return
getMenuList
(
Object
.
assign
(
parameter
,
this
.
queryParam
)).
then
(
res
=>
{
console
.
log
(
'1212121'
)
// res.pageSize = res._meta.perPage
// res.page = res._meta.currentPage
// res.totalPage = res._meta.pageCount
// res.totalCount = res._meta.totalCount
console
.
log
(
res
)
this
.
listData
=
res
console
.
log
(
this
.
listData
)
res
.
data
=
this
.
listData
return
res
})
},
selectedRowKeys
:
[],
selectedRows
:
[],
modalNow
:
1
// data: [],
// modalTreeData: [],
// params: {},
// modalParams: {
// type: 'M'
// },
// showMenuModal: false,
// tableSelected: {},
// editType: '',
// expandedRowKeys: []
}
},
methods
:
{
// regetTreeData () {
// if (this.modalTreeData.length
<=
0
)
{
// getMenuList({}).then(res => {
// this.modalTreeData = [{ id: 0, name: '主菜单', type: 'D' }]
// this.modalTreeData[0].children = res.data
// this.makeTreeDataSafe(this.modalTreeData)
// })
// }
// },
// customRow (record) {
// return {
// on: {
// click: () => {
// this.rowSelection.selectedRowKeys = [record.id]
// this.tableSelected = record
// }
// }
// }
// },
// parentTreeSelect (value, node, extra) {
// this.parentTreeSelected = extra.selectedNodes[0].data.props
// },
// getMenuById (data, id) {
// if (id === null) return null
// for (var i = 0; i
<
data
.
length
;
i
++
)
{
// if (data[i].id === id) {
// return data[i]
// }
// if (data[i].children) {
// var ret = null
// if ((ret = this.getMenuById(data[i].children, id))) {
// return ret
// }
// }
// }
// },
// initMenuParams () {
// this.modalParams = {
// pMenu: '',
// pid: '',
// type: 'M',
// permName: '',
// name: '',
// path: '',
// component: '',
// icon: ''
// }
// },
// addMenuClick () {
// if (this.tableSelected.type === 'B') {
// this.$error({ title: '按钮下不能创建子项' })
// return
// }
// this.editType = 'add'
// this.initMenuParams()
// this.modalParams.pMenu = this.tableSelected.name ? this.tableSelected.name : '主菜单'
// this.modalParams.pid = this.tableSelected.id ? this.tableSelected.id : 0
// if (this.tableSelected.type === 'M') {
// this.modalParams.type = 'B'
// }
// this.showMenuModal = true
// },
// editMenuClick () {
// if (!this.tableSelected.id) {
// this.$message.warning('请选择要修改的菜单项', 5)
// return
// }
// this.editType = 'update'
// this.initMenuParams()
// this.tableSelected = this.getMenuById(this.data, this.tableSelected.id)
// Object.assign(this.modalParams, this.tableSelected)
// var parentMenu = this.getMenuById(this.modalTreeData, this.modalParams.pid)
// this.modalParams.pMenu = parentMenu.name
// this.showMenuModal = true
// },
// deleteMenuClick () {
// if (!this.tableSelected.id) {
// this.$message.warning('请选择要删除的菜单项', 5)
// return
// }
// this.$confirm({
// title: `确认删除菜单【${this.tableSelected.name}】吗?`,
// onOk: () => {
// deleteMenu(this.tableSelected.id).then(res => {
// if (!res.code) {
// this.tableSelected = {}
// this.$message.success('删除成功', 5)
// this.getData()
// this.updateModalTreeIfNeed()
// } else {
// this.$error({ title: `删除失败:${res.msg}` })
// }
// })
// }
// })
// },
// makeMenuTypeSafe (rule, value, cb) {
// var parentType = 'D'
// if (this.parentTreeSelected.type) {
// // 用户自己选择父菜单
// parentType = this.parentTreeSelected.type
// } else if (this.modalParams.pid) {
// // 对话框刚打开时
// var parentMenu = this.getMenuById(this.modalTreeData, this.modalParams.pid)
// parentType = parentMenu ? parentMenu.type : 'D'
// }
// if (parentType === 'M' && value !== 'B') {
// cb(new Error('菜单下只能包含按钮'))
// } else if (parentType === 'D' && value === 'B') {
// cb(new Error('目录下不能包含按钮'))
// } else if (parentType === 'B') {
// cb(new Error('按钮下不能包含子项'))
// }
// cb()
// },
// updateModalTreeIfNeed () {
// if (Object.keys(this.params).length === 0) {
// this.modalTreeData = []
// this.regetTreeData()
// }
// },
// editMenu () {
// this.form.validateFields((err, values) => {
// if (!err) {
// if (this.editType === 'add') {
// addMenu(values).then(res => {
// if (!res.code) {
// this.showMenuModal = false
// this.$message.success('添加成功', 5)
// this.getData()
// this.updateModalTreeIfNeed()
// } else {
// this.$error({ title: `添加失败:${res.msg}` })
// }
// })
// } else if (this.editType === 'update') {
// // 修改父菜单
// if (this.parentTreeSelected.id) {
// values.pid = this.parentTreeSelected.id
// if (values.pid === values.id) {
// this.$error({ title: `父菜单不能是自身` })
// return
// }
// }
// updateMenu(values).then(res => {
// if (!res.code) {
// this.showMenuModal = false
// this.$message.success('修改成功', 5)
// this.getData()
// if (this.parentTreeSelected.id) {
// // 更新下树结构
// this.updateModalTreeIfNeed()
// }
// } else {
// this.$error({ title: `修改失败:${res.msg}` })
// }
// })
// }
// }
// })
// },
// getData () {
// this.loading = true
// getMenuList(this.params).then(res => {
// this.loading = false
// this.data = res.data
// // 设置第一层级默认展开
// // this.expandedRowKeys.push(...this.data.map(item => item.id))
// if (Object.keys(this.params).length === 0 && this.modalTreeData.length
<=
0
)
{
// this.modalTreeData = [{ id: 0, name: '主菜单', type: 'D' }]
// this.modalTreeData[0].children = JSON.parse(JSON.stringify(this.data))
// this.makeTreeDataSafe(this.modalTreeData)
// }
// })
// },
// makeTreeDataSafe (data) {
// // 修改为antd控件需要的不同属性名
// for (var i = data.length - 1; i >= 0; i--) {
// var item = data[i]
// if (item.type === 'B') {
// data.splice(i, 1)
// }
// item.title = item.name
// item.key = item.id
// item.value = item.name
// if (item.children) {
// this.makeTreeDataSafe(item.children)
// }
// }
// }
}
// created () {
// this.getData()
// },
// watch: {
// showMenuModal (newVal) {
// if (newVal) {
// this.parentTreeSelected = {}
// this.$nextTick(() => {
// this.form.setFieldsValue(this.modalParams)
// })
// }
// }
// }
}
</
script
>
<
style
>
.ant-card-body
{
padding
:
10px
;
}
.ant-card-wider-padding
.ant-card-body
{
padding
:
10px
;
}
.ant-table-tbody
>
tr
>
td
{
padding
:
10px
10px
;
}
</
style
>
src/views/authority/roleList.vue
View file @
b716fbe2
...
@@ -109,7 +109,7 @@
...
@@ -109,7 +109,7 @@
<
script
>
<
script
>
import
moment
from
'moment'
import
moment
from
'moment'
import
{
STable
}
from
'@/components'
import
{
STable
}
from
'@/components'
import
{
getRoleList
,
addRole
,
getRoleDetails
,
modifyRoleDetails
,
getTree
Details
,
modifyAuthority
}
from
'@/api/authority'
import
{
getRoleList
,
addRole
,
getRoleDetails
,
modifyRoleDetails
,
getTree
List
,
modifyAuthority
}
from
'@/api/authority'
export
default
{
export
default
{
name
:
'RoleList'
,
name
:
'RoleList'
,
...
@@ -215,7 +215,8 @@ export default {
...
@@ -215,7 +215,8 @@ export default {
"ID"
:
value
.
ID
,
"ID"
:
value
.
ID
,
"NAME"
:
value
.
NAME
"NAME"
:
value
.
NAME
}
}
getTreeDetails
(
treeParameters
).
then
(
res
=>
{
console
.
log
(
treeParameters
)
getTreeList
(
treeParameters
).
then
(
res
=>
{
// res:cur_role_nodes=>树节点
// res:cur_role_nodes=>树节点
// every_role_name:该权限节点的name
// every_role_name:该权限节点的name
// every_role_node_ids:该节点包括的节点的id
// every_role_node_ids:该节点包括的节点的id
...
...
src/views/storedc/Scategorymg.vue
View file @
b716fbe2
...
@@ -13,7 +13,6 @@
...
@@ -13,7 +13,6 @@
rowKey=
"GUID"
rowKey=
"GUID"
:columns=
"columns"
:columns=
"columns"
:data=
"loadData"
:data=
"loadData"
showPagination=
"auto"
>
>
<span
slot=
"action"
slot-scope=
"text, record"
>
<span
slot=
"action"
slot-scope=
"text, record"
>
<template>
<template>
...
@@ -121,10 +120,10 @@ export default {
...
@@ -121,10 +120,10 @@ export default {
// 加载数据方法 必须为 Promise 对象
// 加载数据方法 必须为 Promise 对象
loadData
:
parameter
=>
{
loadData
:
parameter
=>
{
return
getScategorymg
(
Object
.
assign
(
parameter
,
this
.
queryParam
)).
then
(
res
=>
{
return
getScategorymg
(
Object
.
assign
(
parameter
,
this
.
queryParam
)).
then
(
res
=>
{
res
.
pageSize
=
res
.
_meta
.
perPage
//
res.pageSize = res._meta.perPage
res
.
page
=
res
.
_meta
.
currentPage
//
res.page = res._meta.currentPage
res
.
totalPage
=
res
.
_meta
.
pageCount
//
res.totalPage = res._meta.pageCount
res
.
totalCount
=
res
.
_meta
.
totalCount
//
res.totalCount = res._meta.totalCount
// res.data = []
// res.data = []
// res.data = res.userdepartment
// res.data = res.userdepartment
return
res
return
res
...
...
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