Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
template_vue
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
杨硕
template_vue
Commits
76128e0e
Commit
76128e0e
authored
Jul 20, 2023
by
杨硕
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化中间页面权限问题
parent
c0e36fad
Changes
25
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
981 additions
and
503 deletions
+981
-503
index.html
public/index.html
+15
-15
liulanqi_logo.png
public/liulanqi_logo.png
+0
-0
errorLog.js
src/api/monitor/errorLog.js
+3
-2
loginInfo.js
src/api/monitor/loginInfo.js
+13
-13
type.js
src/api/system/dict/type.js
+1
-1
denglu_logo@2x.png
src/assets/image/denglu_logo@2x.png
+0
-0
index.vue
src/components/coolbutton/index.vue
+27
-12
Logo.vue
src/layout/components/Sidebar/Logo.vue
+3
-3
SidebarItem.vue
src/layout/components/Sidebar/SidebarItem.vue
+2
-2
index.vue
src/layout/components/Sidebar/index.vue
+1
-1
header.vue
src/layout/components/header.vue
+38
-30
permission.js
src/store/modules/permission.js
+8
-3
user.js
src/store/modules/user.js
+3
-2
index.vue
src/views/equipment/index.vue
+15
-0
home.vue
src/views/home.vue
+18
-10
login.vue
src/views/login/login.vue
+20
-20
index.vue
src/views/monitor/errorLog/index.vue
+199
-63
index.vue
src/views/monitor/loginInfo/index.vue
+168
-51
index.vue
src/views/monitor/operLog/index.vue
+198
-64
reSetPsw.vue
src/views/reSetPsw.vue
+25
-25
index.vue
src/views/system/dept/index.vue
+20
-9
data.vue
src/views/system/dict/data.vue
+15
-20
index.vue
src/views/system/dict/index.vue
+38
-29
index.vue
src/views/system/role/index.vue
+62
-42
index.vue
src/views/system/user/index.vue
+89
-86
No files found.
public/index.html
View file @
76128e0e
<!DOCTYPE html>
<html>
<head>
<head>
<meta
charset=
"utf-8"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge,chrome=1"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
>
<link
rel=
"icon"
href=
"<%= BASE_URL %>home
_logo.png"
>
<link
rel=
"icon"
href=
"<%= BASE_URL %>liulanqi
_logo.png"
>
<link
rel=
"stylesheet"
href=
"//at.alicdn.com/t/font_2011217_f70ptj9y4oc.css"
>
<title><
%=
webpackConfig
.
name
%
></title>
</head>
<body>
<noscript>
</head>
<body>
<noscript>
<strong>
We're sorry but
<
%=
webpackConfig
.
name
%
>
doesn't work properly without JavaScript enabled. Please enable it to continue.
</strong>
</noscript>
<div
id=
"app"
></div>
<!-- built files will be auto injected -->
</body>
</noscript>
<div
id=
"app"
></div>
<!-- built files will be auto injected -->
</body>
</html>
public/liulanqi_logo.png
0 → 100644
View file @
76128e0e
1.73 KB
src/api/monitor/errorLog.js
View file @
76128e0e
...
...
@@ -24,10 +24,11 @@ export function delErrLog(data) {
}
// 清空异常日志
export
function
cleanErrLog
()
{
export
function
cleanErrLog
(
query
)
{
return
request
({
url
:
'/monitor/errorLog/clean'
,
method
:
'delete'
method
:
'delete'
,
params
:
query
})
}
...
...
src/api/monitor/loginInfo.js
View file @
76128e0e
import
request
from
'@/utils/request'
import
Qs
from
'qs'
// 查询
登录
日志列表
// 查询
操作
日志列表
export
function
list
(
query
)
{
return
request
({
url
:
'/monitor/
loginInfo/querySysLogin
ListByPagination'
,
url
:
'/monitor/
operLog/queryOperLog
ListByPagination'
,
method
:
'get'
,
params
:
query
})
}
// 删除
登录
日志
export
function
del
Logininfo
(
data
)
{
// 删除
操作
日志
export
function
del
OperLog
(
data
)
{
// data = Qs.stringify(data)
return
request
({
url
:
'/monitor/
loginInfo
/delete'
,
url
:
'/monitor/
operLog
/delete'
,
method
:
'post'
,
data
,
headers
:
{
...
...
@@ -23,21 +23,21 @@ export function delLogininfo(data) {
})
}
// 清空
登录
日志
export
function
clean
Logininfo
(
)
{
// 清空
操作
日志
export
function
clean
OperLog
(
query
)
{
return
request
({
url
:
'/monitor/loginInfo/clean'
,
method
:
'delete'
url
:
'/monitor/operLog/clean'
,
method
:
'delete'
,
params
:
query
})
}
// 导出
登录
日志
export
function
export
Logininfo
(
query
)
{
// 导出
操作
日志
export
function
export
OperLog
(
query
)
{
return
request
({
url
:
'/monitor/
loginInfo
/export'
,
url
:
'/monitor/
operLog
/export'
,
method
:
'get'
,
params
:
query
,
responseType
:
'blob'
})
}
src/api/system/dict/type.js
View file @
76128e0e
...
...
@@ -103,7 +103,7 @@ export function exportType(query) {
// 获取字典选择框列表
export
function
selectDictType
(
dictType
)
{
return
request
({
url
:
'/system/dict/
type/optionselect
'
+
dictType
,
url
:
'/system/dict/
data/type/
'
+
dictType
,
method
:
'get'
})
}
src/assets/image/denglu_logo@2x.png
0 → 100644
View file @
76128e0e
4.06 KB
src/components/coolbutton/index.vue
View file @
76128e0e
<
template
>
<el-button
v-if=
"isShow"
:size=
"size"
:type=
"type"
:icon=
"icon"
:disabled=
"disabled"
@
click=
"defaultClick"
>
{{
name
}}
</el-button>
<el-button
v-else
v-hasPermi=
"hasper"
:size=
"size"
:type=
"type"
...
...
@@ -10,8 +19,8 @@
</
template
>
<
script
>
import
{
getInfo
}
from
'@/api/login'
//
import { getInfo } from '@/api/login'
import
store
from
'../../store/index'
export
default
{
name
:
'CoolButton'
,
props
:
{
// 调用该组件时需要传递过来的属性
...
...
@@ -51,16 +60,22 @@ export default {
},
getInfoMessage
()
{
const
data
=
this
.
haspermi
getInfo
().
then
(
res
=>
{
if
(
res
.
data
.
permissions
[
0
]
===
'*:*:*'
)
{
// getInfo().then(res => {
// if (res.data.permissions[0] === '*:*:*') {
// this.isShow = true
// this.hasper = []
// } else {
// this.isShow = false
// this.hasper = data
// }
// })
if
(
store
.
getters
.
permissions
[
0
]
===
'*:*:*'
)
{
this
.
isShow
=
true
this
.
hasper
=
[]
}
else
{
this
.
isShow
=
false
this
.
hasper
=
data
}
// TODO: clear this log
console
.
log
(
`this.hasper`
,
this
.
hasper
)
})
}
}
}
...
...
src/layout/components/Sidebar/Logo.vue
View file @
76128e0e
<
template
>
<div
class=
"sidebar-logo-container"
:class=
"
{'collapse':collapse}">
<transition
name=
"sidebarLogoFade"
>
<router-link
v-if=
"collapse"
key=
"collapse"
class=
"sidebar-logo-link"
to=
"/"
>
<router-link
v-if=
"collapse"
key=
"collapse"
class=
"sidebar-logo-link"
to=
"/
home
"
>
<img
v-if=
"logo"
:src=
"logo"
class=
"sidebar-logo"
>
<h1
v-else
class=
"sidebar-title"
>
{{
title
}}
</h1>
</router-link>
<router-link
v-else
key=
"expand"
class=
"sidebar-logo-link"
to=
"/"
>
<router-link
v-else
key=
"expand"
class=
"sidebar-logo-link"
to=
"/
home
"
>
<img
v-if=
"logo"
:src=
"logo"
class=
"sidebar-logo"
>
<h1
class=
"sidebar-title"
>
{{
title
}}
</h1>
</router-link>
...
...
@@ -25,7 +25,7 @@ export default {
data
()
{
return
{
title
:
'信息化管理系统'
,
logo
:
require
(
'@/assets/image/
logo
.png'
)
logo
:
require
(
'@/assets/image/
denglu_logo@2x
.png'
)
}
}
}
...
...
src/layout/components/Sidebar/SidebarItem.vue
View file @
76128e0e
...
...
@@ -13,8 +13,8 @@
<item
v-if=
"item.meta"
:icon=
"item.meta && item.meta.icon"
:title=
"item.meta.title"
/>
</
template
>
<sidebar-item
v-for=
"
child
in item.children"
:key=
"child.path"
v-for=
"
(child,index)
in item.children"
:key=
"child.path
+index
"
:is-nest=
"true"
:item=
"child"
:base-path=
"resolvePath(child.path)"
...
...
src/layout/components/Sidebar/index.vue
View file @
76128e0e
...
...
@@ -12,7 +12,7 @@
:collapse-transition=
"false"
mode=
"vertical"
>
<sidebar-item
v-for=
"
route in permission_routes"
:key=
"route.path
"
:item=
"route"
:base-path=
"route.path"
/>
<sidebar-item
v-for=
"
(route,index) in permission_routes"
:key=
"route.path+index
"
:item=
"route"
:base-path=
"route.path"
/>
</el-menu>
</el-scrollbar>
</div>
...
...
src/layout/components/header.vue
View file @
76128e0e
...
...
@@ -6,25 +6,25 @@
class=
"hamburger-container"
@
toggleClick=
"toggleSideBar"
/>
<!--
<el-dropdown-->
<!-- class="change-sys"-->
<!-- @command="handleCommand"-->
<!-- >-->
<!--<!–
<span
class=
"el-dropdown-link"
>
–>
-->
<!--<!– 业务中台
<i
class=
"el-icon-arrow-down el-icon--right"
/>
–>
-->
<!--<!–
</span>
–>
-->
<!--
<el-dropdown-menu-->
<!-- slot="dropdown"-->
<!-- >-->
<!--
<el-dropdown-item-->
<!-- v-for="(item) in appList"-->
<!-- :key="item.businessId"-->
<!-- :command="specialTag !== '1' ? item.pcUrl : ''"-->
<!-- >-->
<!--
{{
item
.
system
}}
-->
<!--
</el-dropdown-item>
-->
<!--
</el-dropdown-menu>
-->
<!--
</el-dropdown>
-->
<!--
<el-dropdown-->
<!-- class="change-sys"-->
<!-- @command="handleCommand"-->
<!-- >-->
<!--<!–
<span
class=
"el-dropdown-link"
>
–>
-->
<!--<!– 业务中台
<i
class=
"el-icon-arrow-down el-icon--right"
/>
–>
-->
<!--<!–
</span>
–>
-->
<!--
<el-dropdown-menu-->
<!-- slot="dropdown"-->
<!-- >-->
<!--
<el-dropdown-item-->
<!-- v-for="(item) in appList"-->
<!-- :key="item.businessId"-->
<!-- :command="specialTag !== '1' ? item.pcUrl : ''"-->
<!-- >-->
<!--
{{
item
.
system
}}
-->
<!--
</el-dropdown-item>
-->
<!--
</el-dropdown-menu>
-->
<!--
</el-dropdown>
-->
</div>
<div
class=
"right-menu"
>
<!--
<i
class=
"el-icon-info"
/>
-->
...
...
@@ -36,12 +36,13 @@
<!--
<el-badge
:value=
"200"
:max=
"99"
class=
"item"
>
-->
<!--
<i
class=
"el-icon-message-solid"
/>
-->
<!--
</el-badge>
-->
<span
class=
"username-text"
>
[您好,
{{
userName
}}
]
</span>
<el-dropdown
class=
"avatar-container"
trigger=
"click"
>
<div
class=
"avatar-wrapper"
>
<!--
<img
:src=
"avatar"
class=
"user-avatar"
>
-->
<div
class=
"username-text"
>
[您好,
{{
userName
}}
]
</div>
<!--
<img
:src=
"avatar"
class=
"user-avatar"
>
-->
<i
class=
"el-icon-caret-bottom"
/>
</div>
<el-dropdown-menu
slot=
"dropdown"
class=
"user-dropdown"
>
...
...
@@ -64,6 +65,9 @@ import { mapGetters } from 'vuex'
import
{
queryInAdhibitions
}
from
'@/api/internal.js'
import
Hamburger
from
'@/components/Hamburger'
export
default
{
components
:
{
Hamburger
},
data
()
{
return
{
appList
:
[],
...
...
@@ -71,9 +75,6 @@ export default {
specialTag
:
this
.
$store
.
state
.
user
.
specialTag
}
},
components
:
{
Hamburger
},
computed
:
{
...
mapGetters
([
'sidebar'
,
...
...
@@ -166,7 +167,14 @@ export default {
.breadcrumb-container
{
float
:
left
;
}
.username-text
{
font-size
:
16px
;
//margin-right: 12px;
}
.username-text
:hover
{
cursor
:
pointer
;
//margin-right: 12px;
}
.right-menu
{
float
:
right
;
height
:
100%
;
...
...
@@ -180,9 +188,6 @@ export default {
margin-right
:
50px
;
font-size
:
18px
;
}
.username-text
{
margin-right
:
12px
;
}
.right-menu-item
{
display
:
inline-block
;
padding
:
0
8px
;
...
...
@@ -202,6 +207,9 @@ export default {
.avatar-container
{
margin-right
:
30px
;
.avatar-wrapper
:hover
{
cursor
:
pointer
;
}
.avatar-wrapper
{
position
:
relative
;
height
:
40px
;
...
...
src/store/modules/permission.js
View file @
76128e0e
...
...
@@ -20,15 +20,20 @@ const permission = {
return
new
Promise
(
resolve
=>
{
// TODO: clear this log
console
.
log
(
`menuName`
,
menuName
)
const
menuList
=
menuName
.
menuName
.
split
(
','
)
// TODO: clear this log
console
.
log
(
`menuList`
,
menuList
)
// 向后端请求路由数据
getInfo
().
then
(
res
=>
{
const
newRoute
=
[]
// 根据点击的菜单名匹配对应的菜单
res
.
data
.
menus
.
forEach
(
item
=>
{
if
(
item
.
meta
.
title
===
menuName
.
menuName
)
{
menuList
.
forEach
(
menuItem
=>
{
if
(
item
.
meta
.
title
===
menuItem
)
{
newRoute
.
push
(
item
)
}
})
})
const
accessedRoutes
=
filterAsyncRouter
(
newRoute
)
if
(
accessedRoutes
[
0
])
{
const
firstChild
=
getFirstChild
(
accessedRoutes
[
0
])
...
...
src/store/modules/user.js
View file @
76128e0e
...
...
@@ -13,7 +13,7 @@ const user = {
roles
:
[],
permissions
:
[],
specialTag
:
''
,
menuName
:
''
menuName
:
[]
},
...
...
@@ -87,7 +87,8 @@ const user = {
// TODO: clear this log
console
.
log
(
`menuName-getInfo`
,
menuName
)
commit
(
'SET_MENUNAME'
,
menuName
)
// 存入菜单名
Cookies
.
set
(
'menuname'
,
menuName
)
const
b
=
menuName
.
join
(
','
)
Cookies
.
set
(
'menuname'
,
b
)
resolve
(
menuName
)
})
},
...
...
src/views/equipment/index.vue
0 → 100644
View file @
76128e0e
<
template
>
<div>
设备管理
</div>
</
template
>
<
script
>
export
default
{
name
:
'Index'
}
</
script
>
<
style
scoped
>
</
style
>
src/views/home.vue
View file @
76128e0e
<
template
>
<div
class=
"home"
>
<div
class=
"home-const"
@
click=
"gotoIndex(
'系统管理'
)"
>
<div
class=
"home-const"
@
click=
"gotoIndex(
systemManage
)"
>
<div>
<img
src=
"../assets/image/img5@2x.png"
style=
"width: 100%;height: 392px"
>
</div>
...
...
@@ -9,7 +9,7 @@
<span
class=
"card-title"
>
系统管理
</span>
</div>
</div>
<div
class=
"home-const"
@
click=
"gotoIndex(
'日志管理'
)"
>
<div
class=
"home-const"
@
click=
"gotoIndex(
logManage
)"
>
<div>
<img
src=
"../assets/image/img6@2x.png"
style=
"width: 100%;height: 392px"
>
</div>
...
...
@@ -18,22 +18,22 @@
<span
class=
"card-title"
>
日志管理
</span>
</div>
</div>
<div
class=
"home-const"
@
click=
"gotoIndex(
'消息管理'
)"
>
<div
class=
"home-const"
@
click=
"gotoIndex(
productionManage
)"
>
<div>
<img
src=
"../assets/image/img7@2x.png"
style=
"width: 100%;height: 392px"
>
</div>
<div
class=
"card-bottom"
>
<img
src=
"../assets/image/icon7@2x.png"
style=
"width: 40px;height: 40px;margin: 0 14px 0 20px"
>
<span
class=
"card-title"
>
消息
管理
</span>
<span
class=
"card-title"
>
生产
管理
</span>
</div>
</div>
<div
class=
"home-const"
@
click=
"gotoIndex(
'运维管理'
)"
>
<div
class=
"home-const"
@
click=
"gotoIndex(
equipmentManage
)"
>
<div>
<img
src=
"../assets/image/img8@2x.png"
style=
"width: 100%;height: 392px"
>
</div>
<div
class=
"card-bottom"
>
<img
src=
"../assets/image/icon8@2x.png"
style=
"width: 40px;height: 40px;margin: 0 14px 0 20px"
>
<span
class=
"card-title"
>
运维
管理
</span>
<span
class=
"card-title"
>
设备
管理
</span>
</div>
</div>
</div>
...
...
@@ -46,7 +46,10 @@ export default {
name
:
'Home'
,
data
()
{
return
{
systemManage
:
[
'系统管理'
],
logManage
:
[
'日志管理'
],
productionManage
:
[
'生产管理'
],
equipmentManage
:
[
'设备管理'
,
'工序管理'
]
}
},
created
()
{
...
...
@@ -57,16 +60,21 @@ export default {
this
.
$store
.
dispatch
(
'removeRole'
)
},
gotoIndex
(
menuName
)
{
// TODO: clear this log
console
.
log
(
`menuName`
,
menuName
)
getInfo
().
then
(
res
=>
{
if
(
res
.
data
.
permissions
)
{
// 判断用户是否有点击菜单的权限
var
index
=
0
res
.
data
.
menus
.
forEach
(
item
=>
{
if
(
item
.
meta
.
title
===
menuName
)
{
menuName
.
forEach
(
menuItem
=>
{
if
(
item
.
meta
.
title
===
menuItem
)
{
index
=
index
+
1
}
})
})
if
(
index
>
0
)
{
// this.$message.success('用户有权限')
// 存入点击的菜单名,便于后边路由跳转
this
.
$store
.
dispatch
(
'GetInfoMessage'
,
menuName
).
then
(()
=>
{
this
.
$router
.
push
(
'/welcome'
)
...
...
src/views/login/login.vue
View file @
76128e0e
...
...
@@ -20,20 +20,20 @@
<svg-icon
slot=
"prefix"
icon-class=
"password"
class=
"el-input__icon input-icon"
/>
</el-input>
</el-form-item>
<el-form-item
prop=
"code"
>
<el-input
v-model=
"loginForm.code"
auto-complete=
"off"
placeholder=
"验证码"
style=
"width: 63%"
@
keyup
.
enter
.
native=
"handleLogin"
>
<svg-icon
slot=
"prefix"
icon-class=
"validCode"
class=
"el-input__icon input-icon"
/
>
</el-input
>
<!--
<div
class=
"login-code"
>
<img
:src=
"codeUrl"
@
click=
"getCode"
>
</div>
-->
</el-form-item
>
<!--
<el-form-item
prop=
"code"
>
--
>
<!--
<el-input-->
<!-- v-model="loginForm.code"-->
<!-- auto-complete="off"-->
<!-- placeholder="验证码"-->
<!-- style="width: 63%"-->
<!-- @keyup.enter.native="handleLogin"-->
<!-- >--
>
<!--
<svg-icon
slot=
"prefix"
icon-class=
"validCode"
class=
"el-input__icon input-icon"
/>
--
>
<!--
</el-input>
--
>
<!-- <!–
<div
class=
"login-code"
>
--
>
<!--
<img
:src=
"codeUrl"
@
click=
"getCode"
>
--
>
<!--
</div>
–>
-->
<!--
</el-form-item>
--
>
<el-form-item
style=
"width:80%;margin-bottom: 20px"
>
<el-button
class=
"blue-btn"
...
...
@@ -50,12 +50,12 @@
class=
"buttons-content"
>
<el-checkbox
v-model=
"loginForm.rememberMe"
class=
"rem-code"
>
记住密码
</el-checkbox>
<el-link
:underline=
"false"
@
click=
"goDetail('/forgetPwd')"
>
<router-link
to=
"/forgetPwd"
>
忘记密码
</router-link
>
</el-link
>
<!--
<el-link-->
<!-- :underline="false"-->
<!-- @click="goDetail('/forgetPwd')"-->
<!-- >--
>
<!--
<router-link
to=
"/forgetPwd"
>
忘记密码
</router-link>
--
>
<!--
</el-link>
--
>
</div>
</div>
</el-form>
...
...
src/views/monitor/errorLog/index.vue
View file @
76128e0e
This diff is collapsed.
Click to expand it.
src/views/monitor/loginInfo/index.vue
View file @
76128e0e
This diff is collapsed.
Click to expand it.
src/views/monitor/operLog/index.vue
View file @
76128e0e
This diff is collapsed.
Click to expand it.
src/views/reSetPsw.vue
View file @
76128e0e
...
...
@@ -31,15 +31,15 @@
<el-form-item
prop=
"checkPass"
label=
"确认密码"
placeholder=
"请再次输入新密码"
>
<el-input
v-model=
"pwdList.checkPass"
placeholder=
"请再次输入新密码"
type=
"password"
/>
</el-form-item>
<el-form-item>
<el-button
class=
"blue-btn"
type=
"primary"
@
click=
"onSubmit"
>
修改密码
</el-button>
<el-button
class=
"blue-btn"
type=
"primary"
@
click=
"onSubmit"
>
确定
</el-button>
</el-form-item>
</el-form>
</section>
...
...
@@ -121,7 +121,7 @@ export default {
}
</
script
>
<
style
lang=
"scss"
scoped
>
.forget-pwd-content
{
.forget-pwd-content
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
...
...
@@ -146,5 +146,5 @@ export default {
border-radius
:
4px
;
}
}
}
}
</
style
>
src/views/system/dept/index.vue
View file @
76128e0e
...
...
@@ -73,6 +73,8 @@
/>
</
template
>
</el-table-column>
<el-table-column
:show-overflow-tooltip=
"true"
prop=
"leader"
label=
"负责人"
width=
"200"
/>
<el-table-column
:show-overflow-tooltip=
"true"
prop=
"phone"
label=
"联系电话"
width=
"200"
/>
<el-table-column
:show-overflow-tooltip=
"true"
label=
"创建时间"
align=
"center"
prop=
"createDate"
width=
"200"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
createDate
|
transformDateByFormat
(
'YYYY-MM-DD HH:mm'
)
}}
</span>
...
...
@@ -133,7 +135,7 @@
<!-- type="text"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- >删除
</el-button>
-->
<coolbutton
:type=
"typeParent"
:name=
"nameParent"
:size=
"size"
:
icon=
"delicon"
:
haspermi=
"delHaspermi"
@
btn-click=
"handleDelete(scope.row)"
/>
<coolbutton
:type=
"typeParent"
:name=
"nameParent"
:size=
"size"
:haspermi=
"delHaspermi"
@
btn-click=
"handleDelete(scope.row)"
/>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -246,7 +248,16 @@ export default {
// 是否显示弹出层
open
:
false
,
// 状态数据字典
statusOptions
:
[],
statusOptions
:
[
{
dictLabel
:
'启用'
,
dictValue
:
'1'
},
{
dictLabel
:
'停用'
,
dictValue
:
'0'
}
],
// 查询参数
queryParams
:
{
deptName
:
undefined
,
...
...
@@ -299,9 +310,9 @@ export default {
this
.
queryParams
=
{
...
param
}
}
this
.
getList
()
this
.
getDicts
(
'sys_normal_disable'
.
toUpperCase
()).
then
(
response
=>
{
this
.
statusOptions
=
response
.
data
})
//
this.getDicts('sys_normal_disable'.toUpperCase()).then(response => {
//
this.statusOptions = response.data
//
})
},
methods
:
{
/** 查询部门列表 */
...
...
@@ -341,9 +352,9 @@ export default {
}
},
// 字典状态字典翻译
statusFormat
(
row
,
column
)
{
return
this
.
selectDictLabel
(
this
.
statusOptions
,
row
.
flag
)
},
//
statusFormat(row, column) {
//
return this.selectDictLabel(this.statusOptions, row.flag)
//
},
// 取消按钮
cancel
()
{
this
.
open
=
false
...
...
@@ -359,7 +370,7 @@ export default {
leader
:
undefined
,
phone
:
undefined
,
email
:
undefined
,
flag
:
'
0
'
flag
:
'
1
'
}
this
.
resetForm
(
'form'
)
},
...
...
src/views/system/dict/data.vue
View file @
76128e0e
...
...
@@ -35,9 +35,7 @@
<el-button
type=
"primary"
size=
"small"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
size=
"small"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-form-item
style=
"float: right"
>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dict:add']"-->
<!-- type="primary"-->
...
...
@@ -47,8 +45,7 @@
<!-- >新增-->
<!--
</el-button>
-->
<coolbutton
:type=
"typePrimary"
:name=
"addName"
:icon=
"addIcon"
:size=
"size"
:haspermi=
"addHaspermi"
@
btn-click=
"handleAdd"
/>
</el-col>
<el-col
:span=
"1.5"
>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dict:update']"-->
<!-- type="success"-->
...
...
@@ -58,9 +55,7 @@
<!-- @click="handleUpdate"-->
<!-- >修改-->
<!--
</el-button>
-->
<!--
<coolbutton
:type=
"typeSuccess"
:name=
"updataName"
:icon=
"updateIcon"
:size=
"size"
:haspermi=
"updateHaspermi"
@
btn-click=
"handleUpdate"
/>
-->
</el-col>
<el-col
:span=
"1.5"
>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dict:delete']"-->
<!-- type="danger"-->
...
...
@@ -70,31 +65,31 @@
<!-- @click="handleDelete"-->
<!-- >删除-->
<!--
</el-button>
-->
<!--
<coolbutton
:type=
"typeDanger"
:name=
"nameParent"
:icon=
"delicon"
:size=
"size"
:haspermi=
"delHaspermi"
@
btn-click=
"handleDelete"
/>
-->
</el-col>
<el-col
:span=
"1.5"
>
<!--
<coolbutton
:type=
"typeDanger"
:name=
"nameParent"
:icon=
"delicon"
:size=
"size"
:haspermi=
"delHaspermi"
@
btn-click=
"handleDelete"
/>
-->
<el-button
v-has-permi=
"['sys:dict:export']"
type=
"success"
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
>
导出
</el-button>
</el-col>
<right-toolbar
:show-search
.
sync=
"showSearch"
@
queryTable=
"getList"
/>
</el-row>
</el-form-item>
</el-form>
<div
class=
"placeholder"
/>
<div
style=
"padding:10px"
>
<div
class=
"mb12 font-small-bold"
>
字典参数列表
</div>
<el-table
v-loading=
"loading"
:data=
"dataList"
border
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"
selection
"
width=
"55"
align=
"center"
/>
<el-table-column
type=
"
index"
label=
"序号
"
width=
"55"
align=
"center"
/>
<!--
<el-table-column
:show-overflow-tooltip=
"true"
label=
"参数编码"
prop=
"dictCode"
>
-->
<!--
<template
slot-scope=
"scope"
>
-->
<!--
{{
scope
.
row
.
dictCode
||
'-'
}}
-->
<!--
</
template
>
-->
<!-- </el-table-column>-->
<
el-table-column
label=
"字典编码"
align=
"center"
prop=
"businessId"
/
>
<
!-- <el-table-column label="字典编码" align="center" prop="businessId" />--
>
<el-table-column
:show-overflow-tooltip=
"true"
label=
"字典标签"
prop=
"dictLabel"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
dictLabel
||
'-'
}}
...
...
@@ -140,14 +135,14 @@
<!-- style="color: #49cec9"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- >修改
</el-button>
-->
<coolbutton
style=
"color: #49cec9"
:type=
"typeParent"
:name=
"updataName"
:size=
"size"
:haspermi=
"
edit
Haspermi"
@
btn-click=
"handleUpdate(scope.row)"
/>
<coolbutton
style=
"color: #49cec9"
:type=
"typeParent"
:name=
"updataName"
:size=
"size"
:haspermi=
"
update
Haspermi"
@
btn-click=
"handleUpdate(scope.row)"
/>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dictConfig:remove']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- >删除
</el-button>
-->
<coolbutton
:type=
"typeParent"
:
icon=
"delicon"
:name=
"nameParent"
:size=
"size"
:haspermi=
"remove
Haspermi"
@
btn-click=
"handleDelete(scope.row)"
/>
<coolbutton
:type=
"typeParent"
:
name=
"nameParent"
:size=
"size"
:haspermi=
"del
Haspermi"
@
btn-click=
"handleDelete(scope.row)"
/>
<!--
<el-switch-->
<!-- v-model="scope.row.status"-->
<!-- v-hasPermi="['sys:dictConfig:toggle']"-->
...
...
@@ -213,7 +208,7 @@ import Coolbutton from '@/components/coolbutton'
export
default
{
name
:
'Data'
,
components
:
{
Coolbutton
},
components
:
{
Coolbutton
},
data
()
{
const
verifyIDProp
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
''
||
value
===
undefined
||
value
===
null
)
{
...
...
src/views/system/dict/index.vue
View file @
76128e0e
...
...
@@ -100,15 +100,15 @@
<!-- >导出
</el-button>
-->
<coolbutton
:type=
"typeSuccess"
:name=
"exportName"
:icon=
"exportIcon"
:size=
"size"
:haspermi=
"exportHaspermi"
@
btn-click=
"handleExport"
/>
</el-col>
<
right-toolbar
:show-search
.
sync=
"showSearch"
@
queryTable=
"getList"
/
>
<
!--
<right-toolbar
:show-search
.
sync=
"showSearch"
@
queryTable=
"getList"
/>
--
>
</el-row>
</el-form>
<div
class=
"placeholder"
/>
<div
style=
"min-height: 445px;padding:10px"
>
<h5
style=
"margin: 0 0 12px 0;font-size: 14px"
>
字典管理列表
</h5>
<el-table
v-loading=
"loading"
border
:data=
"typeList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"
selection
"
width=
"55"
align=
"center"
/>
<
el-table-column
label=
"字典编号"
align=
"center"
prop=
"businessId"
/
>
<el-table-column
type=
"
index"
label=
"序号
"
width=
"55"
align=
"center"
/>
<
!--
<el-table-column
label=
"字典编号"
align=
"center"
prop=
"businessId"
/>
--
>
<el-table-column
label=
"字典名称"
prop=
"dictName"
:show-overflow-tooltip=
"true"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
dictName
||
'-'
}}
...
...
@@ -157,14 +157,14 @@
<!-- style="color: #49cec9"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- >修改
</el-button>
-->
<coolbutton
:type=
"typeParent"
style=
"color: #49cec9"
:name=
"updataName"
:size=
"size"
:haspermi=
"
edit
Haspermi"
@
btn-click=
"handleUpdate(scope.row)"
/>
<coolbutton
:type=
"typeParent"
style=
"color: #49cec9"
:name=
"updataName"
:size=
"size"
:haspermi=
"
update
Haspermi"
@
btn-click=
"handleUpdate(scope.row)"
/>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dict:remove']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- >删除
</el-button>
-->
<coolbutton
:type=
"typeParent"
:
icon=
"delicon"
:name=
"nameParent"
:size=
"size"
:haspermi=
"remove
Haspermi"
@
btn-click=
"handleDelete(scope.row)"
/>
<coolbutton
:type=
"typeParent"
:
name=
"nameParent"
:size=
"size"
:haspermi=
"del
Haspermi"
@
btn-click=
"handleDelete(scope.row)"
/>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -205,21 +205,20 @@
/>
</el-select>
</el-form-item>
<!-- <el-form-item v-show="form.parentId">-->
<!-- <el-select v-model="form.dataId" style="width: 100%" clearable placeholder="请选择父字典类型" @visible-change="clearSelected">-->
<!-- <el-option-->
<!-- v-for="item in optionsDict"-->
<!-- :key="item.dictCode"-->
<!-- :label="item.dictLabel"-->
<!-- :disabled="item.status == 1"-->
<!-- :value="item.dictCode"-->
<!-- >-->
<!-- <span style="float: left">{{ item.dictLabel }}</span>-->
<!-- <span v-if="item.status === '1'" style="float: right; color: #8492a6; font-size: 12px;padding-left: 10px">{{ '已停用' }}</span>-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item
v-show=
"form.parentId"
>
<el-select
v-model=
"form.dataId"
style=
"width: 100%"
clearable
placeholder=
"请选择父字典数据"
@
visible-change=
"clearSelected"
>
<el-option
v-for=
"item in optionsDict"
:key=
"item.dictValue"
:label=
"item.dictLabel"
:disabled=
"item.status == 1"
:value=
"item.dictValue"
>
<span
style=
"float: left"
>
{{ item.dictLabel }}
</span>
<span
v-if=
"item.status === '1'"
style=
"float: right; color: #8492a6; font-size: 12px;padding-left: 10px"
>
{{ '已停用' }}
</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remarks"
>
<el-input
v-model
.
trim=
"form.remarks"
maxlength=
"200"
type=
"textarea"
placeholder=
"请输入内容"
/>
</el-form-item>
...
...
@@ -250,7 +249,7 @@ import Template from '@/views/instance/Template'
import
Coolbutton
from
'@/components/coolbutton'
export
default
{
name
:
'Dict'
,
components
:
{
Template
,
Coolbutton
},
components
:
{
Template
,
Coolbutton
},
data
()
{
const
verifyTypeProp
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
''
||
value
===
undefined
||
value
===
null
)
{
...
...
@@ -424,7 +423,7 @@ export default {
selectDictType
(
this
.
options
.
find
(
item
=>
{
return
item
.
businessId
===
val
}).
dictType
).
then
(
response
=>
{
this
.
optionsDict
=
response
.
data
})
this
.
form
.
dataId
=
''
//
this.form.dataId = ''
},
clearSelected
(
flag
)
{
// flag = true 为下拉框选项展开时的标识
...
...
@@ -440,7 +439,7 @@ export default {
},
handleStatusChange
(
row
)
{
const
text
=
row
.
flag
===
'1'
?
'启用'
:
'停用'
this
.
$confirm
(
'确认
要"'
+
text
+
'""'
+
row
.
dictName
+
'"吗
?'
,
'提示'
,
{
this
.
$confirm
(
'确认
确认操作
?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
...
...
@@ -506,6 +505,11 @@ export default {
const
dictId
=
row
.
businessId
||
this
.
ids
getType
(
dictId
).
then
(
response
=>
{
this
.
form
=
response
.
data
this
.
$nextTick
(()
=>
{
this
.
form
.
dataId
=
response
.
data
.
dataId
.
toString
()
this
.
$forceUpdate
()
})
this
.
getOptions
(
this
.
form
.
parentId
)
this
.
open
=
true
this
.
title
=
'修改字典类型'
})
...
...
@@ -548,21 +552,26 @@ export default {
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
dictIds
=
row
.
businessId
||
this
.
ids
this
.
$confirm
(
'是否确认删除字典编号为"'
+
dictIds
+
'"的数据项?'
,
'警告'
,
{
const
that
=
this
this
.
$confirm
(
'是否确认操作?'
,
'警告'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(
function
()
{
return
delType
(
dictIds
)
}).
then
(()
=>
{
this
.
getList
()
this
.
msgSuccess
(
'删除成功'
)
delType
(
dictIds
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
that
.
getList
()
that
.
msgSuccess
(
'删除成功'
)
}
else
{
that
.
$message
.
error
(
res
.
message
)
}
})
})
},
/** 导出按钮操作 */
handleExport
()
{
const
queryParams
=
this
.
queryParams
this
.
$confirm
(
'是否确认
导出所有类型数据项
?'
,
'警告'
,
{
this
.
$confirm
(
'是否确认
操作
?'
,
'警告'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
...
...
src/views/system/role/index.vue
View file @
76128e0e
...
...
@@ -39,7 +39,7 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
size=
"small"
@
click=
"handleQuery"
>
查询
</el-button>
<el-button
type=
"primary"
size=
"small"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
查询
</el-button>
</el-form-item>
<div
style=
"float: right"
>
<el-form-item>
...
...
@@ -67,12 +67,7 @@
<div
class=
"mb12 font-small-bold"
>
角色管理列表
</div>
<el-table
v-loading=
"loading"
border
:data=
"roleList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"50"
/>
<el-table-column
label=
"角色编号"
prop=
"businessId"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
businessId
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"角色名称"
prop=
"roleName"
:show-overflow-tooltip=
"true"
>
<el-table-column
label=
"名称"
prop=
"roleName"
:show-overflow-tooltip=
"true"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
roleName
||
'-'
}}
</
template
>
...
...
@@ -122,7 +117,6 @@
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button>
</
template
>
...
...
@@ -138,39 +132,39 @@
/>
<!-- 添加或修改角色配置对话框 -->
<el-dialog
title=
"角色信息
"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
>
<el-dialog
:title=
"title
"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
size=
"small"
label-width=
"80px"
>
<el-form-item
label=
"
角色
名称"
prop=
"roleName"
>
<el-form-item
label=
"名称"
prop=
"roleName"
>
<el-input
v-model
.
trim=
"form.roleName"
show-word-limit
:maxlength=
"30"
placeholder=
"请输入角色名称"
/>
</el-form-item>
<el-form-item
label=
"权限字符"
prop=
"roleKey"
>
<el-input
v-model
.
trim=
"form.roleKey"
show-word-limit
:maxlength=
"30"
placeholder=
"请输入权限字符"
/>
</el-form-item>
<el-form-item
label=
"
角色
排序"
prop=
"roleSort"
>
<el-form-item
label=
"排序"
prop=
"roleSort"
>
<el-input-number
v-model=
"form.roleSort"
style=
"width: 100%"
controls-position=
"right"
:min=
"0"
/>
</el-form-item>
<el-form-item
label=
"角色状态"
>
<el-radio-group
v-model=
"form.flag"
>
<el-radio
v-for=
"dict in statusOptions"
:key=
"dict.dictValue"
:label=
"dict.dictValue"
>
{{ dict.dictLabel }}
</el-radio>
</el-radio-group>
<el-form-item
label=
"状态"
>
<!-- <el-radio-group v-model="form.flag">-->
<!-- <el-radio :label="1">启用</el-radio>-->
<!-- <el-radio :label="0">停用</el-radio>-->
<!-- </el-radio-group>-->
<el-radio
v-model=
"form.flag"
label=
"1"
>
启用
</el-radio>
<el-radio
v-model=
"form.flag"
label=
"0"
>
停用
</el-radio>
</el-form-item>
<el-form-item
label=
"菜单权限"
>
<
el-checkbox
v-model=
"menuExpand"
@
change=
"handleCheckedTreeExpand($event, 'menu')"
>
展开/折叠
</el-checkbox
>
<
el-checkbox
v-model=
"menuNodeAll"
@
change=
"handleCheckedTreeNodeAll($event, 'menu')"
>
全选/全不选
</el-checkbox
>
<
el-checkbox
v-model=
"form.menuCheckStrictly"
@
change=
"handleCheckedTreeConnect($event, 'menu')"
>
父子联动
</el-checkbox
>
<
!-- <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox>--
>
<
!-- <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox>--
>
<
!-- <el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox>--
>
<el-tree
ref=
"menu"
class=
"tree-border"
:data=
"menuOptions"
show-checkbox
node-key=
"id"
:check-strictly=
"!form.menuCheckStrictly"
check-strictly
empty-text=
"加载中,请稍后"
:props=
"defaultProps"
@
check-change=
"handleMenuCheckChange"
/>
</el-form-item>
<el-form-item
label=
"备注"
>
...
...
@@ -235,10 +229,10 @@
/>
</el-select>
</el-form-item>
<el-form-item
v-show=
"form.dataScope == 2"
label=
"数据权限"
>
<
el-checkbox
v-model=
"deptExpand"
@
change=
"handleCheckedTreeExpand($event, 'dept')"
>
展开/折叠
</el-checkbox
>
<
el-checkbox
v-model=
"deptNodeAll"
@
change=
"handleCheckedTreeNodeAll($event, 'dept')"
>
全选/全不选
</el-checkbox
>
<
el-checkbox
v-model=
"form.deptCheckStrictly"
@
change=
"handleCheckedTreeConnect($event, 'dept')"
>
父子联动
</el-checkbox
>
<el-form-item
v-show=
"form.dataScope ==
=
2"
label=
"数据权限"
>
<
!-- <el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">展开/折叠</el-checkbox>--
>
<
!-- <el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">全选/全不选</el-checkbox>--
>
<
!-- <el-checkbox v-model="form.deptCheckStrictly" @change="handleCheckedTreeConnect($event, 'dept')">父子联动</el-checkbox>--
>
<el-tree
ref=
"dept"
class=
"tree-border"
...
...
@@ -365,7 +359,9 @@ export default {
flag
:
undefined
},
// 表单参数
form
:
{},
form
:
{
},
defaultProps
:
{
children
:
'children'
,
label
:
'label'
...
...
@@ -437,6 +433,29 @@ export default {
this
.
deptOptions
=
response
.
data
})
},
// 树状图节点点击选中事件
handleMenuCheckChange
(
data
,
check
,
subCheck
)
{
// data为选中节点信息,check选中状态
if
(
data
.
children
!==
undefined
&&
data
.
children
!==
null
)
{
// 是否包含子节点
this
.
checkNode
(
data
.
children
,
check
)
// 调用checkNode方法
}
// // 获取所有被选中的节点信息
// const nodes = this.$refs.menu.getCheckedNodes(false, false)
// // 将获取到的信息赋值(根据自己的需求)
// this.custGroupDesc = nodes.map(item => item.CN_NAME)
// this.searchForm.custGroup = nodes.map(item => item.code)
},
// 选中所有下级节点
checkNode
(
data
,
check
)
{
// 遍历所有下级节点信息
data
.
forEach
(
item
=>
{
// 通过节点信息设置选中状态
this
.
$refs
.
menu
.
setChecked
(
item
,
check
,
false
)
// 是否包含下级节点,包含下级节点则选中所有下级节点
if
(
item
.
children
!==
undefined
)
{
this
.
checkNode
(
item
.
children
,
check
)
}
})
},
// 所有菜单节点数据
getMenuAllCheckedKeys
()
{
// 目前被选中的菜单节点
...
...
@@ -474,7 +493,7 @@ export default {
// 角色状态修改
handleStatusChange
(
row
)
{
const
text
=
row
.
flag
===
'1'
?
'启用'
:
'停用'
this
.
$confirm
(
'
确认要"'
+
text
+
'""'
+
row
.
roleName
+
'"角色吗
?'
,
'警告'
,
{
this
.
$confirm
(
'
是否确认操作
?'
,
'警告'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
...
...
@@ -514,12 +533,12 @@ export default {
roleName
:
undefined
,
roleKey
:
undefined
,
roleSort
:
0
,
flag
:
undefined
,
flag
:
'1'
,
menuIds
:
[],
menuName
:
undefined
,
deptIds
:
[],
menuCheckStrictly
:
tru
e
,
deptCheckStrictly
:
tru
e
,
menuCheckStrictly
:
fals
e
,
deptCheckStrictly
:
fals
e
,
remark
:
undefined
}
this
.
resetForm
(
'form'
)
...
...
@@ -541,14 +560,14 @@ export default {
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
},
// 树权限(父子联动)
handleCheckedTreeConnect
(
value
,
type
)
{
if
(
type
===
'menu'
)
{
this
.
form
.
menuCheckStrictly
=
!!
value
}
else
if
(
type
===
'dept'
)
{
this
.
form
.
deptCheckStrictly
=
!!
value
}
},
//
//
树权限(父子联动)
//
handleCheckedTreeConnect(value, type) {
//
if (type === 'menu') {
//
this.form.menuCheckStrictly = !!value
//
} else if (type === 'dept') {
//
this.form.deptCheckStrictly = !!value
//
}
//
},
// 树权限(全选/全不选)
handleCheckedTreeNodeAll
(
value
,
type
)
{
if
(
type
===
'menu'
)
{
...
...
@@ -625,6 +644,7 @@ export default {
submitForm
:
function
()
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
form
.
menuCheckStrictly
=
false
if
(
this
.
form
.
businessId
!==
undefined
)
{
this
.
form
.
menuIds
=
this
.
getMenuAllCheckedKeys
()
updateRole
(
this
.
form
).
then
(
response
=>
{
...
...
@@ -657,7 +677,7 @@ export default {
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
roleIds
=
row
.
businessId
||
this
.
ids
this
.
$confirm
(
'
所选择数据被删除后不可再恢复,是否继续
?'
,
'提示'
,
{
this
.
$confirm
(
'
是否确认操作
?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
...
...
@@ -675,7 +695,7 @@ export default {
/** 导出按钮操作 */
handleExport
()
{
const
queryParams
=
this
.
queryParams
this
.
$confirm
(
'是否确认
导出所有用户信息
?'
,
'警告'
,
{
this
.
$confirm
(
'是否确认
操作
?'
,
'警告'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
...
...
src/views/system/user/index.vue
View file @
76128e0e
This diff is collapsed.
Click to expand it.
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