Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
bdc
/
bdcjg-web
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
cad71d88
authored
2023-03-27 10:37:32 +0800
by
任超
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
style:部署
2 parents
7a5ffe6e
1edd2157
Hide whitespace changes
Inline
Side-by-side
Showing
50 changed files
with
1714 additions
and
1944 deletions
README.md
public/config.json
src/App.vue
src/api/config.js
src/api/user.js
src/base.js
src/components/EditDialog/index.vue
src/components/Theme.vue
src/layout1/components/Sidebar/SidebarItem.vue
src/layout1/components/Sidebar/index.vue
src/layout1/components/TagsView/index.vue
src/permission.js
src/router/index.js
src/styles/_handle.scss
src/styles/_themes.scss
src/styles/element-variables.scss
src/styles/jgPublic.scss
src/styles/sbPublic.scss
src/styles/variables.scss
src/utils/theme.js
src/views/bdcsj/cfdj/index.vue
src/views/bdcsj/dyaq/index.vue
src/views/bdcsj/dyiq/index.vue
src/views/bdcsj/fdcqdz/index.vue
src/views/bdcsj/fdcqqfsyq/index.vue
src/views/bdcsj/fdcqyz/index.vue
src/views/bdcsj/gzwsyq/index.vue
src/views/bdcsj/hysyq/index.vue
src/views/bdcsj/jsydzjdsyq/index.vue
src/views/bdcsj/lq/index.vue
src/views/bdcsj/nydsyq/index.vue
src/views/bdcsj/tdsyq/index.vue
src/views/bdcsj/ygdj/index.vue
src/views/bdcsj/yydj/index.vue
src/views/bdcsj/zxdj/index.vue
src/views/loginjg/index.vue
src/views/loginsb/index.vue
src/views/sthj/components/editDialog.vue
src/views/sthj/dbrzcx/index.vue
src/views/sthj/sbbwcx/index.vue
src/views/system/dictionaries/dictionaries.vue
src/views/system/information/index.vue
src/views/system/menus/edit-dialog.vue
src/views/system/menus/index.vue
src/views/system/roles/edit-dialog.vue
src/views/system/roles/index.vue
src/views/system/timedTask/data/index.js
src/views/system/timedTask/index.vue
src/views/system/users/edit-dialog.vue
src/views/system/users/index.vue
README.md
View file @
cad71d8
<!--
*
@Description:
*
@Autor: renchao
*
@LastEditTime: 2023-03-27 09:42:59
-->
# 安装依赖
npm install
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
...
...
@@ -15,4 +20,3 @@ npm install --registry=https://registry.npm.taobao.org
-
`chore`
依赖更新/脚手架配置修改等
-
`wip`
开发中
...
...
public/config.json
View file @
cad71d8
{
"TITLE"
:
"汉中市数据上报系统"
,
"THEME"
:
"jg"
,
"THEME"
:
"sb"
,
"CODE"
:
"BDCJGPT"
,
"SERVERAPI"
:
"/bdcsjsb"
,
"MANAGEMENTAPI"
:
"http://192.168.2.
236
/management"
"MANAGEMENTAPI"
:
"http://192.168.2.
38:8090
/management"
}
...
...
src/App.vue
View file @
cad71d8
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-03-24 15:07:01
-->
<
template
>
<div
id=
"app"
>
<router-view
/>
</div>
</
template
>
\ No newline at end of file
</
template
>
...
...
src/api/config.js
View file @
cad71d8
/*
* @Description: 这个是所有api的前缀配置文件
* @Autor: renchao
* @LastEditTime: 2023-03-2
1 16:26:55
* @LastEditTime: 2023-03-2
4 16:51:18
*/
export
default
{
SERVERAPI
:
'/bdcsjsb'
,
//赵千
MANAGEMENTAPI
:
'http://192.168.2.
236
/management'
MANAGEMENTAPI
:
'http://192.168.2.
38:8090
/management'
}
\ No newline at end of file
...
...
src/api/user.js
View file @
cad71d8
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-03-2
3 13:17:59
* @LastEditTime: 2023-03-2
4 09:28:25
*/
import
request
from
'@/utils/request'
// let SERVER = JSON.parse(localStorage.getItem('ApiUrl'))
let
SERVER
=
JSON
.
parse
(
localStorage
.
getItem
(
'ApiUrl'
))
console
.
log
(
JSON
.
parse
(
localStorage
.
getItem
(
'ApiUrl'
)));
// 获取用户信息
export
function
getUserInfo
()
{
return
request
({
...
...
src/base.js
View file @
cad71d8
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-03-27 09:53:16
*/
import
dialogBox
from
'@/components/DialogBox'
import
LbTable
from
'@/components/LbTable'
import
Theme
from
'@/components/Theme.vue'
import
Breadcrumb
from
"@/components/Breadcrumb.vue"
;
// 引入按钮
import
btn
from
'@/components/Button.vue'
...
...
@@ -12,8 +16,6 @@ export default {
Vue
.
component
(
'Breadcrumb'
,
Breadcrumb
);
Vue
.
component
(
'btn'
,
btn
);
Vue
.
component
(
'lbTable'
,
LbTable
);
Vue
.
component
(
'Theme'
,
Theme
);
Vue
.
prototype
.
$popup
=
Popup
.
install
;
Vue
.
prototype
.
$alertMes
=
MessageBox
.
alert
;
}
}
\ No newline at end of file
...
...
src/components/EditDialog/index.vue
View file @
cad71d8
<
template
>
<el-dialog
:close-on-click-modal=
"false"
top=
"0"
@
close=
"closeDialog"
custom-class=
"dialogBox editDialogBox mainCenter"
<el-dialog
:close-on-click-modal=
"false"
top=
"0"
@
close=
"closeDialog"
custom-class=
"dialogBox
dataReporting
editDialogBox mainCenter"
:visible
.
sync=
"dialogVisible"
width=
"92%"
>
<div
slot=
"title"
class=
"dialog_title"
ref=
"dialogTitle"
>
{{
title
||
'详情'
}}
...
...
@@ -335,194 +335,11 @@
}
</
script
>
<
style
scoped
lang=
"scss"
>
//
@import
"~@/styles/mixin.scss"
;
//
@import
"~@/styles/dialogBox.scss"
;
/
deep
/
.el-dialog__body
{
display
:
flex
;
flex-direction
:
column
;
padding-bottom
:
30px
;
}
/
deep
/
.el-tabs
{
color
:
#cef8ff
;
}
.d-center
{
z-index
:
1000
;
}
.sjmx
{
display
:
flex
;
flex-direction
:
column
;
height
:
49vh
;
/deep/.el-tabs__item
{
height
:
50px
;
padding-top
:
6px
;
}
}
.result
{
flex
:
1
;
height
:
100%
;
}
.editDialogBox-con
{
flex
:
1
;
height
:
100%
;
overflow-y
:
hidden
;
}
/
deep
/
.el-tabs__item
{
color
:
#cef8ff
!important
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
background
:
url("~@/image/tabitem.png")
no-repeat
;
background-size
:
100%
100%
;
border
:
none
!important
;
}
.obligee-item-name
{
background
:
#05275b
;
color
:
#ffffff
;
background
:
url("~@/image/itembg.png")
no-repeat
;
background-size
:
100%
100%
;
}
/
deep
/
.el-tabs__nav-scroll
{
background
:
none
;
}
/
deep
/
.el-tabs__nav
{
display
:
flex
;
border
:
none
!important
;
}
/
deep
/
.el-tabs__item.is-top
{
border
:
1px
solid
#dfe4ed
;
border-top
:
1px
solid
#dfe4ed
;
border-bottom
:
1px
solid
transparent
;
}
/
deep
/
.el-tabs__header
{
border
:
none
;
margin-bottom
:
0
;
}
/
deep
/
.el-tabs__item.is-top
:not
(
:last-child
)
{
margin-right
:
5px
;
}
/
deep
/
.el-tabs__item.is-top
{
background-color
:
none
!important
;
}
/
deep
/
.el-tabs__item.is-active
{
background
:
url("~@/image/tabitemse.png")
no-repeat
;
background-size
:
100%
100%
;
}
.success-images
{
width
:
30px
;
height
:
30px
;
position
:
relative
;
top
:
10px
;
right
:
3px
;
}
.tab-pane-item
{
line-height
:
20px
;
color
:
#02d9fd
;
p
{
text-align
:
center
;
}
}
.edit-content
{
overflow-y
:
auto
;
overflow-x
:
hidden
;
padding-right
:
1px
;
border-top
:
none
;
}
/
deep
/
.editDialogBox
{
border-radius
:
8px
;
overflow
:
hidden
;
min-width
:
1228px
;
.el-dialog__header
{
display
:
flex
;
margin-bottom
:
10px
;
}
.dialog_footer
{
flex-direction
:
column
;
.dialog_button
{
margin-top
:
8px
;
}
}
.divider
{
width
:
100%
;
border-bottom
:
1px
solid
#ccc
;
}
}
.el-dialog__wrapper
{
overflow
:
hidden
;
}
.dialog-from
{
padding-top
:
0
;
.el-col
{
justify-content
:
space-between
;
}
.bz
{
height
:
100%
;
position
:
relative
;
top
:
3px
;
}
/
deep
/
.el-select
{
padding-right
:
15px
;
}
/
deep
/
.el-icon-circle-close
{
display
:
none
;
}
/
deep
/
.el-input__suffix
{
right
:
-25px
!important
;
top
:
-5px
;
}
/
deep
/
.el-select
,
/
deep
/
.el-input
{
flex
:
1
;
width
:
100%
;
}
/
deep
/
.el-textarea__inner
{
border
:
none
!important
;
margin
:
0
;
}
&
_header
{
margin
:
0
-5px
!important
;
}
&
_title
{
font-size
:
18px
;
color
:
#d7eaee
;
margin
:
3px
0
;
}
}
</
style
>
...
...
src/components/Theme.vue
deleted
100644 → 0
View file @
7a5ffe6
<
template
>
<el-color-picker
v-model=
"theme"
:predefine=
"['#409EFF', '#1890ff', '#304156', '#212121', '#11a983', '#13c2c2', '#6959CD', '#f5222d',]"
class=
"theme-picker"
popper-class=
"theme-picker-dropdown"
/>
</
template
>
<
script
>
const
version
=
require
(
'element-ui/package.json'
).
version
// element-ui version from node_modules
const
ORIGINAL_THEME
=
'#409EFF'
// default color
export
default
{
data
()
{
return
{
chalk
:
''
,
// content of theme-chalk css
theme
:
''
}
},
computed
:
{
defaultTheme
()
{
return
this
.
$store
.
state
.
app
.
theme
}
},
watch
:
{
defaultTheme
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
theme
=
val
},
immediate
:
true
},
async
theme
(
val
)
{
const
oldVal
=
this
.
chalk
?
this
.
theme
:
ORIGINAL_THEME
if
(
typeof
val
!==
'string'
)
return
const
themeCluster
=
this
.
getThemeCluster
(
val
.
replace
(
'#'
,
''
))
const
originalCluster
=
this
.
getThemeCluster
(
oldVal
.
replace
(
'#'
,
''
))
const
$message
=
this
.
$message
({
message
:
' Compiling the theme'
,
customClass
:
'theme-message'
,
type
:
'success'
,
duration
:
0
,
iconClass
:
'el-icon-loading'
})
const
getHandler
=
(
variable
,
id
)
=>
{
return
()
=>
{
const
originalCluster
=
this
.
getThemeCluster
(
ORIGINAL_THEME
.
replace
(
'#'
,
''
))
const
newStyle
=
this
.
updateStyle
(
this
[
variable
],
originalCluster
,
themeCluster
)
let
styleTag
=
document
.
getElementById
(
id
)
if
(
!
styleTag
)
{
styleTag
=
document
.
createElement
(
'style'
)
styleTag
.
setAttribute
(
'id'
,
id
)
document
.
head
.
appendChild
(
styleTag
)
}
styleTag
.
innerText
=
newStyle
}
}
if
(
!
this
.
chalk
)
{
const
url
=
`https://unpkg.com/element-ui@
${
version
}
/lib/theme-chalk/index.css`
await
this
.
getCSSString
(
url
,
'chalk'
)
}
const
chalkHandler
=
getHandler
(
'chalk'
,
'chalk-style'
)
chalkHandler
()
const
styles
=
[].
slice
.
call
(
document
.
querySelectorAll
(
'style'
))
.
filter
(
style
=>
{
const
text
=
style
.
innerText
return
new
RegExp
(
oldVal
,
'i'
).
test
(
text
)
&&
!
/Chalk Variables/
.
test
(
text
)
})
styles
.
forEach
(
style
=>
{
const
{
innerText
}
=
style
if
(
typeof
innerText
!==
'string'
)
return
style
.
innerText
=
this
.
updateStyle
(
innerText
,
originalCluster
,
themeCluster
)
})
this
.
$emit
(
'change'
,
val
)
$message
.
close
()
}
},
methods
:
{
updateStyle
(
style
,
oldCluster
,
newCluster
)
{
let
newStyle
=
style
oldCluster
.
forEach
((
color
,
index
)
=>
{
newStyle
=
newStyle
.
replace
(
new
RegExp
(
color
,
'ig'
),
newCluster
[
index
])
})
return
newStyle
},
getCSSString
(
url
,
variable
)
{
return
new
Promise
(
resolve
=>
{
const
xhr
=
new
XMLHttpRequest
()
xhr
.
onreadystatechange
=
()
=>
{
if
(
xhr
.
readyState
===
4
&&
xhr
.
status
===
200
)
{
this
[
variable
]
=
xhr
.
responseText
.
replace
(
/@font-face{
[^
}
]
+}/
,
''
)
resolve
()
}
}
xhr
.
open
(
'GET'
,
url
)
xhr
.
send
()
})
},
getThemeCluster
(
theme
)
{
const
tintColor
=
(
color
,
tint
)
=>
{
let
red
=
parseInt
(
color
.
slice
(
0
,
2
),
16
)
let
green
=
parseInt
(
color
.
slice
(
2
,
4
),
16
)
let
blue
=
parseInt
(
color
.
slice
(
4
,
6
),
16
)
if
(
tint
===
0
)
{
// when primary color is in its rgb space
return
[
red
,
green
,
blue
].
join
(
','
)
}
else
{
red
+=
Math
.
round
(
tint
*
(
255
-
red
))
green
+=
Math
.
round
(
tint
*
(
255
-
green
))
blue
+=
Math
.
round
(
tint
*
(
255
-
blue
))
red
=
red
.
toString
(
16
)
green
=
green
.
toString
(
16
)
blue
=
blue
.
toString
(
16
)
return
`#
${
red
}${
green
}${
blue
}
`
}
}
const
shadeColor
=
(
color
,
shade
)
=>
{
let
red
=
parseInt
(
color
.
slice
(
0
,
2
),
16
)
let
green
=
parseInt
(
color
.
slice
(
2
,
4
),
16
)
let
blue
=
parseInt
(
color
.
slice
(
4
,
6
),
16
)
red
=
Math
.
round
((
1
-
shade
)
*
red
)
green
=
Math
.
round
((
1
-
shade
)
*
green
)
blue
=
Math
.
round
((
1
-
shade
)
*
blue
)
red
=
red
.
toString
(
16
)
green
=
green
.
toString
(
16
)
blue
=
blue
.
toString
(
16
)
return
`#
${
red
}${
green
}${
blue
}
`
}
const
clusters
=
[
theme
]
for
(
let
i
=
0
;
i
<=
9
;
i
++
)
{
clusters
.
push
(
tintColor
(
theme
,
Number
((
i
/
10
).
toFixed
(
2
))))
}
clusters
.
push
(
shadeColor
(
theme
,
0.1
))
return
clusters
}
}
}
</
script
>
<
style
>
.theme-message
,
.theme-picker-dropdown
{
z-index
:
99999
!important
;
}
.theme-picker
.el-color-picker__trigger
{
height
:
26px
!important
;
width
:
26px
!important
;
padding
:
2px
;
}
.theme-picker-dropdown
.el-color-dropdown__link-btn
{
display
:
none
;
}
</
style
>
\ No newline at end of file
src/layout1/components/Sidebar/SidebarItem.vue
View file @
cad71d8
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-03-24 17:10:02
-->
<
template
>
<div
v-if=
"!item.hidden"
>
<template
...
...
@@ -65,9 +70,9 @@ export default {
})
// When there is only one child router, the child router is displayed by default
if
(
showingChildren
.
length
===
1
)
{
return
true
}
//
if (showingChildren.length === 1) {
//
return true
//
}
// Show parent if there are no child router to display
if
(
showingChildren
.
length
===
0
)
{
...
...
src/layout1/components/Sidebar/index.vue
View file @
cad71d8
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-03-2
3 16:17:4
2
* @LastEditTime: 2023-03-2
4 17:10:3
2
-->
<
template
>
<div>
...
...
@@ -9,7 +9,7 @@
<el-menu
router
:default-active=
"activeMenu"
:background-color=
"variables.menuBg"
:text-color=
"variables.menuText"
:unique-opened=
"true"
:active-text-color=
"variables.menuActiveText"
:collapse-transition=
"false"
mode=
"vertical"
>
<!-- 权限菜单 -->
<sidebar-item
v-for=
"route in permission_routes.slice(
4
)"
:key=
"route.path"
:item=
"route"
<sidebar-item
v-for=
"route in permission_routes.slice(
5
)"
:key=
"route.path"
:item=
"route"
:base-path=
"route.path"
/>
<!-- 菜单全部展示 -->
<!--
<sidebar-item
v-for=
"route in asyncRoutes"
:key=
"route.path"
:item=
"route"
:base-path=
"route.path"
/>
-->
...
...
@@ -50,7 +50,7 @@ export default {
}
},
mounted
()
{
console
.
log
(
this
.
permission_routes
,
'permission_routes
permission_routes'
);
console
.
log
(
this
.
permission_routes
.
slice
(
5
),
'
permission_routes'
);
}
}
</
script
>
...
...
src/layout1/components/TagsView/index.vue
View file @
cad71d8
...
...
@@ -3,7 +3,8 @@
<scroll-pane
ref=
"scrollPane"
class=
"tags-view-wrapper"
@
scroll=
"handleScroll"
>
<router-link
v-for=
"tag in visitedViews"
ref=
"tag"
:key=
"tag.path"
:class=
"isActive(tag) ? 'active' : ''"
:to=
"
{ path: tag.path, query: tag.query, fullPath: tag.fullPath }" tag="span" class="tags-view-item"
@click.middle.native="!isAffix(tag) ? closeSelectedTag(tag) : ''" @contextmenu.prevent.native="openMenu(tag, $event)">
@click.middle.native="!isAffix(tag) ? closeSelectedTag(tag) : ''"
@contextmenu.prevent.native="openMenu(tag, $event)">
{{
tag
.
title
}}
<span
v-if=
"!isAffix(tag)"
class=
"el-icon-close"
@
click
.
prevent
.
stop=
"closeSelectedTag(tag)"
/>
</router-link>
...
...
@@ -190,30 +191,32 @@ export default {
</
script
>
<
style
lang=
"scss"
scoped
>
@import
"~@/styles/_handle.scss"
;
.tags-view-container
{
height
:
40px
;
width
:
100%
;
background
:
#fff
;
border-bottom
:
1px
solid
#d8dce5
;
box-sizing
:
border-box
;
padding-top
:
3
px
;
box-shadow
:
0
1px
3px
0
rgba
(
0
,
0
,
0
,
.12
),
0
0
3px
0
rgba
(
0
,
0
,
0
,
.04
)
;
margin-bottom
:
5
px
;
padding-top
:
2
px
;
margin-bottom
:
7px
;
border-radius
:
4
px
;
.tags-view-wrapper
{
.tags-view-item
{
display
:
inline-block
;
position
:
relative
;
cursor
:
pointer
;
height
:
26px
;
line-height
:
26px
;
border
:
1px
solid
#d8dce5
;
color
:
#495060
;
background
:
#fff
;
color
:
#4A4A4A
;
@include
font_color("tagsText");
padding
:
0
8px
;
font-size
:
12px
;
margin-left
:
5px
;
margin-top
:
4px
;
border-radius
:
4px
;
@include
borderColor("tagsBorderColor");
&:first-of-type
{
margin-left
:
15px
;
...
...
@@ -224,13 +227,13 @@ export default {
}
&
.active
{
background-color
:
#0794FF
;
color
:
#fff
;
border-color
:
#0794FF
;
@include
background("tagsBg")
;
@include
borderColor("tagsActiveText")
;
@include
font_color("tagsActiveText")
;
&::before
{
content
:
''
;
background
:
#fff
;
@include
background("tagsActiveText")
;
display
:
inline-block
;
width
:
8px
;
height
:
8px
;
...
...
src/permission.js
View file @
cad71d8
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-03-2
3 16:37:20
* @LastEditTime: 2023-03-2
4 17:28:37
*/
import
Vue
from
'vue'
import
router
from
"./router"
;
...
...
@@ -25,7 +25,7 @@ router.beforeEach(async (to, from, next) => {
localStorage
.
removeItem
(
"token"
);
next
();
}
else
{
let
code
=
Vue
.
prototype
.
BASE_API
.
THEME
==
"sb"
?
"BDCSBPT"
:
"BDCJGPT"
let
code
=
Vue
.
prototype
.
BASE_API
.
CODE
//判断token是否存在
const
hasToken
=
localStorage
.
getItem
(
"token"
);
if
(
hasToken
)
{
...
...
src/router/index.js
View file @
cad71d8
...
...
@@ -32,11 +32,7 @@ export const constantRoutes = [
{
path
:
'/'
,
redirect
:
to
=>
{
if
(
Vue
.
prototype
.
BASE_API
.
THEME
==
'jg'
)
{
return
{
path
:
'/jg'
}
}
else
{
return
{
path
:
'/sb'
}
}
return
{
path
:
`/
${
Vue
.
prototype
.
BASE_API
.
THEME
}
`
}
},
},
// 监管首页
...
...
src/styles/_handle.scss
View file @
cad71d8
...
...
@@ -20,6 +20,15 @@
@function
themed
(
$key
)
{
@return
map-get
(
$theme-map
,
$key
);
}
//获取边框颜色
@mixin
borderColor
(
$color
)
{
@include
themeify
{
border
:
1px
solid
themed
(
$color
)
!
important
;
}
}
//获取渐变背景
@mixin
background
(
$color
)
{
@include
themeify
{
...
...
@@ -33,9 +42,10 @@
background-color
:
themed
(
$color
)
!
important
;
}
}
//获取字体颜色
@mixin
font_color
(
$color
)
{
@include
themeify
{
color
:
themed
(
$color
)
!
important
;
color
:
themed
(
$color
)
!
important
;
}
}
\ No newline at end of file
...
...
src/styles/_themes.scss
View file @
cad71d8
...
...
@@ -7,15 +7,19 @@ $themes: (blue: ( //背景
menuActiveText
:
#4162D8
,
//
没有子集
submenuBg
:
#3D59C4
,
submenuColor
:
#FFFFFF
)
,
submenuColor
:
#FFFFFF
,
//
tags
tagsBorderColor
:
#E5E5E5
,
tagsBg
:
rgba
(
65
,
98
,
216
,
0
.1
)
,
tagsText
:
#4A4A4A
,
tagsActiveText
:
#4162D8
,
//
操纵
btn
btnBg
:
#4162D8
,
btnColor
:
#4162D8
)
,
green
:
(
navbg
:
#0F8B80
,
green
:
(
navbg
:
#0F8B80
,
menuBg
:
#121A2E
,
menuActive
:
linear-gradient
(
90deg
,
rgba
(
61
,
90
,
198
,
0
.7
)
0%
,
rgba
(
61
,
90
,
198
,
0
)
100%
)
,
menuActive
:
linear-gradient
(
90deg
,
rgba
(
61
,
90
,
198
,
0
.7
)
0%
,
rgba
(
61
,
90
,
198
,
0
)
100%
)
,
//
字体
menuText
:
#A1A7C2
,
menuActiveText
:
#FFFFFF
)
)
\ No newline at end of file
menuActiveText
:
#FFFFFF
))
\ No newline at end of file
...
...
src/styles/element-variables.scss
View file @
cad71d8
...
...
@@ -4,7 +4,7 @@
**/
/* theme color */
$--color-primary
:
#
0F93F6
;
$--color-primary
:
#
4162D8
;
$--color-success
:
#67C23B
;
$--color-warning
:
#E6A23C
;
$--color-danger
:
#F46C6C
;
...
...
src/styles/jgPublic.scss
View file @
cad71d8
...
...
@@ -5,6 +5,7 @@
background
:
none
!
important
;
}
// 列表样式
.tableClass
{
.el-table
{
border
:
none
!
important
;
...
...
@@ -52,6 +53,7 @@
background-color
:
rgba
(
0
,
0
,
0
,
0
);
}
// 查询表单样式
.from-clues
{
height
:
100%
;
width
:
100%
;
...
...
@@ -264,7 +266,7 @@
}
}
// 角色
配置
// 角色
管理人员菜单配置弹框样式
.roleconfiguration
{
.el-dialog__body
{
display
:
flex
;
...
...
@@ -358,82 +360,7 @@
border-top
:
none
;
}
.editDialogBox
{
border-radius
:
8px
;
overflow
:
hidden
;
min-width
:
1228px
;
height
:
825px
!
important
;
.dialog-from
{
padding
:
13px
;
border-radius
:
2px
;
box-sizing
:
border-box
;
.el-row
{
display
:
flex
;
flex-wrap
:
nowrap
;
}
.el-col
{
line-height
:
18px
;
display
:
flex
;
align-items
:
center
;
margin-bottom
:
3px
;
color
:
#b5d6dc
;
border-radius
:
2px
;
border
:
1px
solid
#224c7c
;
margin
:
5px
;
span
{
display
:
inline-block
;
padding
:
3px
;
border-radius
:
3px
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-align
:
left
;
color
:
#02d9fd
;
}
p
{
flex
:
1
;
width
:
100%
;
padding-left
:
5px
;
line-height
:
20px
;
color
:
#c0c4cc
;
cursor
:
not
-
allowed
;
white-space
:
nowrap
;
margin-right
:
5px
;
text-align
:
right
;
}
}
}
.dialog_title
{
display
:
flex
;
position
:
relative
;
font-size
:
24px
;
top
:
-8px
;
width
:
38%
;
height
:
40px
;
margin-left
:
28px
;
justify-content
:
center
;
}
.el-dialog__header
{
display
:
flex
;
margin-bottom
:
10px
;
}
.el-dialog__footer
{
padding-right
:
40px
;
}
.divider
{
width
:
100%
;
border-bottom
:
1px
solid
#ccc
;
}
}
.el-dialog__wrapper
{
overflow
:
hidden
;
...
...
@@ -514,16 +441,7 @@
font-size
:
12px
;
}
.button
:hover
{
// width: 76px;
// height: 32px;
// color: #ffffff;
// cursor: pointer;
// border: 0;
// font-size: 12px;
// background: none;
}
// 按钮样式
.cx
{
background
:
url("../image/btn.png")
no-repeat
0
-34px
;
background-size
:
cover
;
...
...
@@ -627,7 +545,7 @@
}
.item-content-input
{
/
deep
/
.el-input__inner
{
.el-input__inner
{
border
:
none
!
important
;
text-align
:
right
;
}
...
...
@@ -742,6 +660,7 @@
}
}
.contentCenter
{
position
:
absolute
;
top
:
50%
;
...
...
@@ -761,3 +680,347 @@
}
}
// 登簿日志弹出框
.entryJournal
{
.el-tabs__header
{
margin
:
0
;
}
.el-dialog
{
display
:
flex
;
flex-direction
:
column
;
}
.el-dialog__body
{
display
:
flex
;
flex-direction
:
column
;
padding-bottom
:
30px
;
height
:
100%
;
flex
:
1
;
position
:
relative
;
}
.regularHeight
{
display
:
flex
;
flex-direction
:
column
;
height
:
87vh
;
margin-bottom
:
5px
;
.editDialogBox-con
,
.JsonEditor
{
flex
:
1
;
}
}
.d-center
{}
.dialog_title
{
top
:
-6px
}
.el-tabs__item
{
color
:
#CEF8FF
!
important
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
background
:
url("~@/image/tabitem.png")
no-repeat
;
background-size
:
100%
100%
;
border
:
none
!
important
;
}
.el-tabs__nav
{
display
:
flex
;
border
:
none
!
important
;
}
.el-tabs__item.is-top
:not
(
:last-child
)
{
margin-right
:
5px
;
}
.el-icon-circle-close
{
display
:
none
;
}
.el-tabs__item.is-active
{
background
:
url("~@/image/tabitemse.png")
no-repeat
;
background-size
:
100%
100%
;
}
.from-clues-content
{
margin-top
:
0
;
background
:
none
;
padding
:
0
;
}
.editDialogBox-box
{
position
:
relative
;
top
:
10px
;
height
:
100%
;
}
.dialog-from
{
padding-top
:
0
;
.el-col
{
justify-content
:
space-between
;
}
.bz
{
height
:
100%
;
position
:
relative
;
top
:
3px
;
}
.el-input
{
flex
:
1
;
width
:
100%
;
}
.el-textarea__inner
{
border
:
none
!
important
;
margin
:
0
;
}
&
_header
{
margin
:
0
-5px
!
important
;
}
&
_title
{
font-size
:
14px
;
color
:
#d7eaee
;
margin
:
3px
0
;
}
}
}
// 数据上报弹出框
.dataReporting
{
.el-dialog__body
{
display
:
flex
;
flex-direction
:
column
;
padding-bottom
:
30px
;
}
.el-tabs
{
color
:
#cef8ff
;
}
.d-center
{
z-index
:
1000
;
}
.sjmx
{
display
:
flex
;
flex-direction
:
column
;
height
:
49vh
;
.el-tabs__item
{
height
:
50px
;
padding-top
:
6px
;
}
}
.result
{
flex
:
1
;
height
:
100%
;
}
.editDialogBox-con
{
flex
:
1
;
height
:
100%
;
overflow-y
:
hidden
;
}
.el-tabs__item
{
color
:
#cef8ff
!
important
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
background
:
url("~@/image/tabitem.png")
no-repeat
;
background-size
:
100%
100%
;
border
:
none
!
important
;
}
.obligee-item-name
{
background
:
#05275b
;
color
:
#ffffff
;
background
:
url("~@/image/itembg.png")
no-repeat
;
background-size
:
100%
100%
;
}
.el-tabs__nav-scroll
{
background
:
none
;
}
.el-tabs__nav
{
display
:
flex
;
border
:
none
!
important
;
}
.el-tabs__item.is-top
{
border
:
1px
solid
#dfe4ed
;
border-top
:
1px
solid
#dfe4ed
;
border-bottom
:
1px
solid
transparent
;
}
.el-tabs__header
{
border
:
none
;
margin-bottom
:
0
;
}
.el-tabs__item.is-top
:not
(
:last-child
)
{
margin-right
:
5px
;
}
.el-tabs__item.is-top
{
background-color
:
none
!
important
;
}
.el-tabs__item.is-active
{
background
:
url("~@/image/tabitemse.png")
no-repeat
;
background-size
:
100%
100%
;
}
.success-images
{
width
:
30px
;
height
:
30px
;
position
:
relative
;
top
:
10px
;
right
:
3px
;
}
.tab-pane-item
{
line-height
:
20px
;
color
:
#02d9fd
;
p
{
text-align
:
center
;
}
}
.edit-content
{
overflow-y
:
auto
;
overflow-x
:
hidden
;
padding-right
:
1px
;
border-top
:
none
;
}
.editDialogBox
{
border-radius
:
8px
;
overflow
:
hidden
;
min-width
:
1228px
;
.el-dialog__header
{
display
:
flex
;
margin-bottom
:
10px
;
}
.dialog_footer
{
flex-direction
:
column
;
.dialog_button
{
margin-top
:
8px
;
}
}
.divider
{
width
:
100%
;
border-bottom
:
1px
solid
#ccc
;
}
}
.el-dialog__wrapper
{
overflow
:
hidden
;
}
.dialog-from
{
padding-top
:
0
;
.el-col
{
justify-content
:
space-between
;
}
.bz
{
height
:
100%
;
position
:
relative
;
top
:
3px
;
}
.el-select
{
padding-right
:
15px
;
}
.el-icon-circle-close
{
display
:
none
;
}
.el-input__suffix
{
right
:
-25px
!
important
;
top
:
-5px
;
}
.el-select
,
.el-input
{
flex
:
1
;
width
:
100%
;
}
.el-textarea__inner
{
border
:
none
!
important
;
margin
:
0
;
}
&
_header
{
margin
:
0
-5px
!
important
;
}
&
_title
{
font-size
:
18px
;
color
:
#d7eaee
;
margin
:
3px
0
;
}
}
}
// 人员管理上下移动按钮样式
.el-button.is-disabled.el-button--text
{
width
:
64px
;
height
:
28px
;
background
:
rgba
(
255
,
255
,
255
,
0
.1
);
border-radius
:
16px
;
}
// 人员管理角色管理菜单管理修改新增弹框样式
.PersonnelDialog
{
.el-dialog__header
{
.dialog_title
{
display
:
-
webkit-box
;
display
:
-
ms-flexbox
;
display
:
flex
;
position
:
relative
;
top
:
-7px
;
width
:
29%
;
height
:
40px
;
margin-left
:
28px
;
-webkit-box-pack
:
center
;
-ms-flex-pack
:
center
;
justify-content
:
center
;
white-space
:
nowrap
;
b
{
font-size
:
16px
;
}
}
.el-dialog__headerbtn
{
right
:
20px
!
important
;
top
:
23px
!
important
;
}
}
.selbig
{
width
:
500px
;
}
}
...
...
src/styles/sbPublic.scss
View file @
cad71d8
@import
'~@/styles/sbElement-ui.scss'
;
@import
"~@/styles/_handle.scss"
;
.from-clues
{
height
:
100%
;
...
...
@@ -9,7 +10,7 @@
&
-header
{
width
:
100%
;
padding
:
15px
;
padding
:
1
0px
15px
10px
1
5px
;
box-sizing
:
border-box
;
background-size
:
100%
100%
;
background
:
#FFFFFF
;
...
...
@@ -96,7 +97,7 @@
.cx
{
width
:
86px
;
height
:
32px
;
background-color
:
#4162D8
;
@include
background_color
(
"btnBg"
)
;
color
:
white
;
border
:
none
;
}
...
...
@@ -104,7 +105,7 @@
.cx
:hover
{
width
:
86px
;
height
:
32px
;
background-color
:
#4162D8
;
@include
background_color
(
"btnBg"
)
;
color
:
white
;
border
:
none
;
}
...
...
@@ -113,8 +114,7 @@
width
:
86px
;
height
:
32px
;
background-color
:
white
;
color
:
#4162D8
;
@include
font_color
(
"btnColor"
);
border
:
1px
solid
rgba
(
65
,
98
,
216
,
0
.3
);
}
...
...
@@ -122,23 +122,17 @@
width
:
86px
;
height
:
32px
;
background-color
:
white
;
color
:
#4162D8
;
@include
font_color
(
"btnColor"
)
;
border
:
1px
solid
rgba
(
65
,
98
,
216
,
0
.3
);
}
.el-button
:focus
{
// background: none;
}
.cx
:focus
{
color
:
white
;
background-color
:
#4162D8
;
@include
background_color
(
"btnBg"
)
;
background-size
:
cover
;
}
.cz
:focus
{
color
:
#4162D8
;
background-color
:
white
;
;
background-size
:
cover
;
}
\ No newline at end of file
...
...
src/styles/variables.scss
View file @
cad71d8
...
...
@@ -9,7 +9,7 @@ $yellow:#FEC171;
$panGreen
:
#30B08F
;
// header
$headerHeight
:
7
4
px
;
$headerHeight
:
7
2
px
;
// sidebar
$menuText
:
#ffffff
;
...
...
src/utils/theme.js
View file @
cad71d8
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-03-2
1 13:42:13
* @LastEditTime: 2023-03-2
4 16:44:54
*/
import
Vue
from
'vue'
export
default
function
getTheme
(
theme
=
Vue
.
prototype
.
BASE_API
.
THEME
)
{
const
resultMap
=
{
'jg'
:
function
()
{
import
(
"@/styles/jgPublic.scss"
)
return
import
(
"@/styles/jgPublic.scss"
);
},
'sb'
:
function
()
{
import
(
"@/styles/sbPublic.scss"
)
return
import
(
"@/styles/sbPublic.scss"
);
},
default
:
function
()
{
'default'
:
function
()
{
throw
new
Error
(
`Unsupported theme:
${
theme
}
`
);
},
};
const
result
=
resultMap
[
theme
]();
if
(
result
instanceof
Promise
)
{
return
result
;
}
else
{
return
resultMap
.
default
();
}
return
resultMap
[
theme
]()
||
resultMap
.
default
()
}
}
\ No newline at end of file
...
...
src/views/bdcsj/cfdj/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"Cfdj from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
...
...
src/views/bdcsj/dyaq/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,8 @@
<div
class=
"dyaq from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
src/views/bdcsj/dyiq/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"150px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
...
...
src/views/bdcsj/fdcqdz/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"fdcqdz from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
src/views/bdcsj/fdcqqfsyq/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"fdcqqfsyq from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
src/views/bdcsj/fdcqyz/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"fdcqyz from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
src/views/bdcsj/gzwsyq/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"gzwsyq from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"105px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
...
...
src/views/bdcsj/hysyq/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"hysyq from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"105px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
...
...
src/views/bdcsj/jsydzjdsyq/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"jsydzjdsyq from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
src/views/bdcsj/lq/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"lq from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"105px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
...
...
src/views/bdcsj/nydsyq/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"105px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
...
...
src/views/bdcsj/tdsyq/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"tdsyq from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
src/views/bdcsj/ygdj/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"110px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
src/views/bdcsj/yydj/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"105px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
...
...
src/views/bdcsj/zxdj/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"cancellationReg from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"105px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
...
...
src/views/loginjg/index.vue
View file @
cad71d8
...
...
@@ -22,7 +22,6 @@
</div>
</
template
>
<
script
>
import
{
getMenuInfo
}
from
"@/api/user"
;
import
{
loginIn
}
from
"@/api/login.js"
;
export
default
{
name
:
"jgLogin"
,
...
...
src/views/loginsb/index.vue
View file @
cad71d8
...
...
@@ -108,10 +108,10 @@ export default {
if
(
valid
)
{
let
res
=
await
loginIn
(
self
.
user
.
account
,
self
.
user
.
password
)
if
(
res
.
status
==
1
)
{
let
code
=
this
.
BASE_API
.
THEME
==
"sb"
?
"BDCSBPT"
:
"BDCJGPT"
let
code
=
this
.
BASE_API
.
CODE
;
localStorage
.
setItem
(
"token"
,
`Bearer
${
res
.
content
}
`
);
const
{
result
:
getMenuData
}
=
(
await
getMenuInfo
(
code
))
||
[];
let
path1
=
JSON
.
parse
(
getMenuData
[
0
].
metadata
)?.
path
+
'/'
+
JSON
.
parse
(
getMenuData
[
0
].
children
[
0
].
metadata
)?.
path
let
path1
=
JSON
.
parse
(
getMenuData
[
1
].
metadata
)?.
path
+
'/'
+
JSON
.
parse
(
getMenuData
[
1
].
children
[
0
].
metadata
)?.
path
//登录成功后需判断有无重定向,没有重定向则跳转首页
const
accessRoutes
=
await
this
.
$store
.
dispatch
(
"permission/generateRoutes"
,
...
...
src/views/sthj/components/editDialog.vue
View file @
cad71d8
<
template
>
<el-dialog
:close-on-click-modal=
"false"
top=
"0"
@
close=
"closeDialog"
custom-class=
"dialogBox editDialogBox mainCenter"
<el-dialog
:close-on-click-modal=
"false"
top=
"0"
@
close=
"closeDialog"
custom-class=
"dialogBox e
ntryJournal e
ditDialogBox mainCenter"
:visible
.
sync=
"dialogVisible"
width=
"90%"
>
<div
slot=
"title"
class=
"dialog_title"
ref=
"dialogTitle"
>
{{
title
||
'登薄日志'
}}
...
...
@@ -458,119 +458,5 @@
}
</
script
>
<
style
scoped
lang=
"scss"
>
//
@import
"~@/styles/mixin.scss"
;
//
@import
"~@/styles/dialogBox.scss"
;
/
deep
/
.el-tabs__header
{
margin
:
0
;
}
/
deep
/
.el-dialog
{
display
:
flex
;
flex-direction
:
column
;
}
/
deep
/
.el-dialog__body
{
display
:
flex
;
flex-direction
:
column
;
padding-bottom
:
30px
;
height
:
100%
;
flex
:
1
;
position
:
relative
;
}
.regularHeight
{
display
:
flex
;
flex-direction
:
column
;
height
:
87vh
;
margin-bottom
:
5px
;
.editDialogBox-con,
.JsonEditor
{
flex
:
1
;
}
}
.d-center
{
}
.dialog_title
{
top
:
-13px
;
}
/
deep
/
.el-tabs__item
{
color
:
#cef8ff
!important
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
background
:
url("~@/image/tabitem.png")
no-repeat
;
background-size
:
100%
100%
;
border
:
none
!important
;
}
/
deep
/
.el-tabs__nav
{
display
:
flex
;
border
:
none
!important
;
}
/
deep
/
.el-tabs__item.is-top
:not
(
:last-child
)
{
margin-right
:
5px
;
}
/
deep
/
.el-icon-circle-close
{
display
:
none
;
}
/
deep
/
.el-tabs__item.is-active
{
background
:
url("~@/image/tabitemse.png")
no-repeat
;
background-size
:
100%
100%
;
}
.from-clues-content
{
margin-top
:
0
;
background
:
none
;
padding
:
0
;
}
.editDialogBox-box
{
position
:
relative
;
top
:
10px
;
height
:
100%
;
}
.dialog-from
{
padding-top
:
0
;
.el-col
{
justify-content
:
space-between
;
}
.bz
{
height
:
100%
;
position
:
relative
;
top
:
3px
;
}
/
deep
/
.el-input
{
flex
:
1
;
width
:
100%
;
}
/
deep
/
.el-textarea__inner
{
border
:
none
!important
;
margin
:
0
;
}
&
_header
{
margin
:
0
-5px
!important
;
}
&
_title
{
font-size
:
14px
;
color
:
#d7eaee
;
margin
:
3px
0
;
}
}
</
style
>
...
...
src/views/sthj/dbrzcx/index.vue
View file @
cad71d8
...
...
@@ -4,7 +4,7 @@
<!-- 头部搜索 -->
<div
class=
"from-clues-header"
>
<el-form
ref=
"ruleForm"
:model=
"form"
label-width=
"80px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
...
...
src/views/sthj/sbbwcx/index.vue
View file @
cad71d8
...
...
@@ -4,7 +4,7 @@
<!-- 头部搜索 -->
<div
class=
"from-clues-header"
>
<el-form
ref=
"ruleForm"
:model=
"form"
label-width=
"100px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
src/views/system/dictionaries/dictionaries.vue
View file @
cad71d8
...
...
@@ -3,7 +3,7 @@
<!-- 表单部分 -->
<div
class=
"from-clues-header"
>
<el-form
@
submit
.
native
.
prevent
:model=
"ruleForm"
label-width=
"120px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME == 'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
:gutter=
"20"
>
...
...
src/views/system/information/index.vue
View file @
cad71d8
<!--
* @Author: xiaomiao 1158771342@qq.com
* @Date: 2023-03-09 20:54:28
* @LastEditors:
xiaomiao 1158771342@qq.com
* @LastEditTime: 2023-03-
16 19:40:40
* @LastEditors:
Please set LastEditors
* @LastEditTime: 2023-03-
27 09:13:22
* @FilePath: \上报\bdcjg-web\src\views\system\information\index.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
...
...
@@ -10,7 +10,7 @@
<div
class=
"information from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"ruleForm"
label-width=
"100px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME == 'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
@@ -34,60 +34,64 @@
</div>
</
template
>
<
script
>
import
"@/utils/flexible.js"
;
import
BaseSet
from
"./base-set.vue"
;
import
PasswordEdit
from
"./password-edit.vue"
;
export
default
{
components
:
{
BaseSet
,
PasswordEdit
,
import
"@/utils/flexible.js"
;
import
BaseSet
from
"./base-set.vue"
;
import
PasswordEdit
from
"./password-edit.vue"
;
export
default
{
components
:
{
BaseSet
,
PasswordEdit
,
},
data
()
{
return
{
isshow
:
true
,
};
},
computed
:
{
userData
()
{
return
this
.
$store
.
state
.
user
.
userInfo
;
},
data
()
{
return
{
isshow
:
true
,
};
},
watch
:
{},
created
()
{
},
mounted
()
{
},
methods
:
{
information
()
{
this
.
isshow
=
true
;
},
computed
:
{
userData
()
{
return
this
.
$store
.
state
.
user
.
userInfo
;
},
password
()
{
this
.
isshow
=
false
;
},
watch
:
{},
created
()
{
},
mounted
()
{
},
methods
:
{
information
()
{
this
.
isshow
=
true
;
},
password
()
{
this
.
isshow
=
false
;
},
},
};
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
@import
"~@/styles/mixin.scss"
;
.information
{
@import
"~@/styles/mixin.scss"
;
.information
{
display
:
flex
;
flex-direction
:
column
;
.btnColRight
{
margin-top
:
10px
;
display
:
flex
;
flex-direction
:
column
;
.btnColRight
{
margin-top
:
10px
;
display
:
flex
;
justify-content
:
center
;
//
background-color
:
cadetblue
;
height
:
30px
;
}
/
deep
/
.content
{
.el-input__inner
{
background
:
none
;
}
.user-info
{
background
:
none
;
}
justify-content
:
center
;
//
background-color
:
cadetblue
;
height
:
30px
;
}
/
deep
/
.content
{
.el-input__inner
{
background
:
none
;
}
.boxin
{
flex
:
1
;
.user-info
{
background
:
none
;
}
}
</
style
>
.boxin
{
flex
:
1
;
}
}
</
style
>
...
...
src/views/system/menus/edit-dialog.vue
View file @
cad71d8
<
template
>
<dialogBox
class=
"modifydialog"
:isMain=
"true"
width=
"40%"
:title=
"title"
@
closeDialog=
"close"
@
submitForm=
"submitForm"
<dialogBox
class=
"modifydialog
PersonnelDialog
"
:isMain=
"true"
width=
"40%"
:title=
"title"
@
closeDialog=
"close"
@
submitForm=
"submitForm"
v-model=
"myValue"
>
<div
class=
"dialogCon"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
>
...
...
@@ -63,208 +63,208 @@
</
template
>
<
script
>
import
{
getParentMenuListAction
}
from
'@/api/authorityManage'
import
IconList
from
'../../../components/IconList'
import
JsonEditor
from
'@/components/JsonEditors'
import
{
validateCode
}
from
'@/utils/validate'
;
import
{
api
,
httpAction
}
from
'@/api/manageApi'
export
default
{
name
:
'MenuModal'
,
components
:
{
JsonEditor
,
IconList
,
},
props
:
{
value
:
{
type
:
Boolean
,
default
:
false
},
productId
:
{
type
:
String
,
default
:
''
}
},
data
()
{
return
{
myValue
:
this
.
value
,
form
:
{
icon
:
''
,
code
:
''
},
rules
:
{
name
:
[{
required
:
true
,
message
:
'请输入菜单名称'
,
trigger
:
'blur'
}],
code
:
[
{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
},
{
validator
:
validateCode
,
trigger
:
'blur'
}
]
},
title
:
''
,
type
:
''
,
visible
:
false
,
parentMenuList
:
[],
menuKey
:
0
,
jumpModeList
:
[
{
name
:
'在当前页面显示'
,
value
:
1
},
{
name
:
'跳转到新页面'
,
value
:
2
}
],
setProps
:
{
value
:
'id'
,
label
:
'name'
,
children
:
'children'
,
expandTrigger
:
'hover'
,
checkStrictly
:
true
,
// 可取消关联,选择任意一级选项
emitPath
:
false
},
dataUrl
:
api
.
menus
}
},
computed
:
{
codeComputed
:
{
get
:
function
()
{
return
this
.
form
.
code
},
set
:
function
(
val
)
{
this
.
form
.
code
=
val
.
toUpperCase
()
}
}
},
watch
:
{
value
(
val
)
{
this
.
myValue
=
val
}
},
methods
:
{
// 获取父级菜单
getParentMenuList
(
id
)
{
getParentMenuListAction
(
id
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
const
list
=
this
.
$dealArrChildren
(
res
.
content
)
if
(
id
)
{
this
.
parentMenuList
=
this
.
$dealArrDisabled
(
this
.
$deepCopy
(
list
),
id
)
this
.
menuKey
++
}
else
{
this
.
parentMenuList
=
list
}
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
},
// 选择图标
getIconName
(
data
)
{
this
.
form
.
icon
=
data
;
import
{
getParentMenuListAction
}
from
'@/api/authorityManage'
import
IconList
from
'../../../components/IconList'
import
JsonEditor
from
'@/components/JsonEditors'
import
{
validateCode
}
from
'@/utils/validate'
;
import
{
api
,
httpAction
}
from
'@/api/manageApi'
export
default
{
name
:
'MenuModal'
,
components
:
{
JsonEditor
,
IconList
,
},
getIconList
()
{
this
.
$refs
.
iconList
.
show
(
true
)
},
getIconName
(
data
)
{
this
.
form
.
icon
=
data
},
// 配置参数
getJsonString
(
data
)
{
this
.
form
.
metadata
=
data
props
:
{
value
:
{
type
:
Boolean
,
default
:
false
},
productId
:
{
type
:
String
,
default
:
''
}
},
// 新增菜单
add
()
{
this
.
getParentMenuList
(
this
.
productId
)
this
.
type
=
0
this
.
form
.
jumpMode
=
1
data
()
{
return
{
myValue
:
this
.
value
,
form
:
{
icon
:
''
,
code
:
''
},
rules
:
{
name
:
[{
required
:
true
,
message
:
'请输入菜单名称'
,
trigger
:
'blur'
}],
code
:
[
{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
},
{
validator
:
validateCode
,
trigger
:
'blur'
}
]
},
title
:
''
,
type
:
''
,
visible
:
false
,
parentMenuList
:
[],
menuKey
:
0
,
jumpModeList
:
[
{
name
:
'在当前页面显示'
,
value
:
1
},
{
name
:
'跳转到新页面'
,
value
:
2
}
],
setProps
:
{
value
:
'id'
,
label
:
'name'
,
children
:
'children'
,
expandTrigger
:
'hover'
,
checkStrictly
:
true
,
// 可取消关联,选择任意一级选项
emitPath
:
false
},
dataUrl
:
api
.
menus
}
},
// 编辑菜单
edit
(
record
)
{
this
.
type
=
1
// 若有id为编辑
if
(
record
.
id
)
{
this
.
$nextTick
(()
=>
{
this
.
form
=
Object
.
assign
({},
record
)
this
.
getParentMenuList
(
this
.
productId
)
})
computed
:
{
codeComputed
:
{
get
:
function
()
{
return
this
.
form
.
code
},
set
:
function
(
val
)
{
this
.
form
.
code
=
val
.
toUpperCase
()
}
}
},
// 选择上级菜单
handleChange
(
value
)
{
this
.
form
.
parentId
=
value
watch
:
{
value
(
val
)
{
this
.
myValue
=
val
}
},
// 保存
submitForm
(
submitType
)
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
let
method
=
''
let
url
=
''
const
formData
=
this
.
form
formData
.
productId
=
this
.
productId
if
(
!
formData
.
id
)
{
method
=
'post'
url
=
this
.
dataUrl
methods
:
{
// 获取父级菜单
getParentMenuList
(
id
)
{
getParentMenuListAction
(
id
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
const
list
=
this
.
$dealArrChildren
(
res
.
content
)
if
(
id
)
{
this
.
parentMenuList
=
this
.
$dealArrDisabled
(
this
.
$deepCopy
(
list
),
id
)
this
.
menuKey
++
}
else
{
this
.
parentMenuList
=
list
}
}
else
{
method
=
'put'
url
=
`
${
this
.
dataUrl
}
/
${
formData
.
id
}
`
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
httpAction
(
url
,
formData
,
method
)
.
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
})
})
},
// 选择图标
getIconName
(
data
)
{
this
.
form
.
icon
=
data
;
},
getIconList
()
{
this
.
$refs
.
iconList
.
show
(
true
)
},
getIconName
(
data
)
{
this
.
form
.
icon
=
data
},
// 配置参数
getJsonString
(
data
)
{
this
.
form
.
metadata
=
data
},
// 新增菜单
add
()
{
this
.
getParentMenuList
(
this
.
productId
)
this
.
type
=
0
this
.
form
.
jumpMode
=
1
},
// 编辑菜单
edit
(
record
)
{
this
.
type
=
1
// 若有id为编辑
if
(
record
.
id
)
{
this
.
$nextTick
(()
=>
{
this
.
form
=
Object
.
assign
({},
record
)
this
.
getParentMenuList
(
this
.
productId
)
})
}
},
// 选择上级菜单
handleChange
(
value
)
{
this
.
form
.
parentId
=
value
},
// 保存
submitForm
(
submitType
)
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
let
method
=
''
let
url
=
''
const
formData
=
this
.
form
formData
.
productId
=
this
.
productId
if
(
!
formData
.
id
)
{
method
=
'post'
url
=
this
.
dataUrl
}
else
{
method
=
'put'
url
=
`
${
this
.
dataUrl
}
/
${
formData
.
id
}
`
}
httpAction
(
url
,
formData
,
method
)
.
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
})
this
.
resetForm
()
this
.
$emit
(
'ok'
)
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
.
catch
((
err
)
=>
{
console
.
log
(
err
)
})
this
.
resetForm
()
this
.
$emit
(
'ok'
)
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
.
catch
((
err
)
=>
{
console
.
log
(
err
)
})
}
})
},
resetForm
()
{
this
.
$refs
.
form
.
resetFields
()
this
.
form
=
{
icon
:
''
,
code
:
''
}
})
},
resetForm
()
{
this
.
$refs
.
form
.
resetFields
()
this
.
form
=
{
icon
:
''
,
code
:
''
},
close
()
{
this
.
resetForm
()
this
.
$emit
(
'input'
,
false
)
}
},
close
()
{
this
.
resetForm
()
this
.
$emit
(
'input'
,
false
)
}
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.modifydialog
{
&-con
{
background
:
#031a46
;
}
//
.modifydialog
{
//
&-con
{
//
background
:
#031a46
;
//
}
/
deep
/
.el-dialog__header
{
.dialog_title
{
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
position
:
relative
;
top
:
-8px
;
width
:
28%
;
height
:
40px
;
margin-left
:
28px
;
-webkit-box-pack
:
center
;
-ms-flex-pack
:
center
;
justify-content
:
center
;
white-space
:
nowrap
;
/
/
/
deep
/
.el-dialog__header
{
//
.dialog_title
{
//
display
:
-webkit-box
;
//
display
:
-ms-flexbox
;
//
display
:
flex
;
//
position
:
relative
;
//
top
:
-8px
;
//
width
:
28%
;
//
height
:
40px
;
//
margin-left
:
28px
;
//
-webkit-box-pack
:
center
;
//
-ms-flex-pack
:
center
;
//
justify-content
:
center
;
//
white-space
:
nowrap
;
b
{
font-size
:
16px
;
}
}
//
b
{
//
font-size
:
16px
;
//
}
//
}
.el-dialog__headerbtn
{
right
:
20px
!important
;
top
:
23px
!important
;
}
}
}
//
.el-dialog__headerbtn
{
//
right
:
20px
!important
;
//
top
:
23px
!important
;
//
}
//
}
//
}
</
style
>
...
...
src/views/system/menus/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"timedTask from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"ruleForm"
:model=
"form"
label-width=
"100px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME == 'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
@@ -29,181 +29,181 @@
</div>
</
template
>
<
script
>
// 定时任务
import
data
from
"./data"
;
import
{
deleteAction
,
getAction
,
api
}
from
"@/api/manageApi"
;
import
EditDialog
from
"./edit-dialog.vue"
;
import
{
mapGetters
}
from
"vuex"
;
import
{
getMenuInfo
}
from
"@/api/user"
;
import
{
getUuid
,
judgeSort
,
realMove
,
findParents
,
removeTreeListItem
,
}
from
"@/utils/operation"
;
export
default
{
name
:
"menus"
,
components
:
{
EditDialog
,
},
data
()
{
return
{
isDialog
:
false
,
tablelistData
:
[],
listData
:
[],
resourceCategoryId
:
""
,
taskData
:
null
,
form
:
{
menuName
:
""
,
},
title
:
""
,
queryParam
:
{},
selectType
:
"0"
,
queryName
:
""
,
organizationId
:
""
,
// 组织机构ID
departmentId
:
""
,
// 部门ID
departmentList
:
[],
// 部门列表
levelList
:
[],
// 职务级别
sexList
:
[],
// 定时任务
import
data
from
"./data"
;
import
{
deleteAction
,
getAction
,
api
}
from
"@/api/manageApi"
;
import
EditDialog
from
"./edit-dialog.vue"
;
import
{
mapGetters
}
from
"vuex"
;
import
{
getMenuInfo
}
from
"@/api/user"
;
import
{
getUuid
,
judgeSort
,
realMove
,
findParents
,
removeTreeListItem
,
}
from
"@/utils/operation"
;
export
default
{
name
:
"menus"
,
components
:
{
EditDialog
,
},
data
()
{
return
{
isDialog
:
false
,
tablelistData
:
[],
listData
:
[],
resourceCategoryId
:
""
,
taskData
:
null
,
form
:
{
menuName
:
""
,
},
title
:
""
,
queryParam
:
{},
selectType
:
"0"
,
queryName
:
""
,
organizationId
:
""
,
// 组织机构ID
departmentId
:
""
,
// 部门ID
departmentList
:
[],
// 部门列表
levelList
:
[],
// 职务级别
sexList
:
[],
selectionList
:
[],
tableData
:
{
columns
:
[].
concat
(
data
.
columns
()).
concat
([
{
label
:
"操作"
,
width
:
380
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
button
type
=
"text"
class
=
'successColor'
onClick
=
{()
=>
{
this
.
handleEdit
(
scope
.
row
);
}}
>
修改
<
/el-button
>
selectionList
:
[],
tableData
:
{
columns
:
[].
concat
(
data
.
columns
()).
concat
([
{
label
:
"操作"
,
width
:
380
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
button
type
=
"text"
class
=
'successColor'
onClick
=
{()
=>
{
this
.
handleEdit
(
scope
.
row
);
}}
>
修改
<
/el-button
>
<
el
-
button
type
=
"text"
class
=
'delColor'
onClick
=
{()
=>
{
this
.
handleDelete
(
scope
.
row
.
id
,
scope
.
row
.
name
);
}}
>
删除
<
/el-button
>
<
/div
>
);
},
<
el
-
button
type
=
"text"
class
=
'delColor'
onClick
=
{()
=>
{
this
.
handleDelete
(
scope
.
row
.
id
,
scope
.
row
.
name
);
}}
>
删除
<
/el-button
>
<
/div
>
);
},
]),
data
:
[],
},
tableUrl
:
api
.
menus
,
// 菜单接口地址
meumurlid
:
api
.
subsystem
,
// 项目id接口地址
productId
:
""
//项目id
};
},
created
()
{
this
.
getTableList
();
},
computed
:
{
...
mapGetters
([
"products"
])
},
methods
:
{
//查询
searchQuery
()
{
if
(
this
.
form
.
menuName
)
{
this
.
tablelistData
=
this
.
childrenFn
(
this
.
listData
,
this
.
form
.
menuName
);
}
else
{
this
.
getTableList
()
}
},
]),
data
:
[],
},
childrenFn
(
arr
,
key
)
{
const
that
=
this
;
let
searchTree
=
[];
arr
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
children
!=
undefined
&&
item
.
children
.
length
!=
0
)
{
let
leaf
=
that
.
childrenFn
(
item
.
children
,
key
);
if
(
leaf
!=
undefined
)
{
let
{
name
,
code
,
resourceCategoryId
,
id
,
iproductId
,
operations
,
metadata
}
=
item
;
let
parentObj
=
{
code
,
name
,
resourceCategoryId
,
id
,
iproductId
,
operations
,
metadata
,
children
:
leaf
};
searchTree
.
push
(
parentObj
);
}
else
{
if
(
item
.
name
.
indexOf
(
key
)
!=
-
1
)
{
searchTree
.
push
(
item
);
}
}
tableUrl
:
api
.
menus
,
// 菜单接口地址
meumurlid
:
api
.
subsystem
,
// 项目id接口地址
productId
:
""
//项目id
};
},
created
()
{
this
.
getTableList
();
},
computed
:
{
...
mapGetters
([
"products"
])
},
methods
:
{
//查询
searchQuery
()
{
if
(
this
.
form
.
menuName
)
{
this
.
tablelistData
=
this
.
childrenFn
(
this
.
listData
,
this
.
form
.
menuName
);
}
else
{
this
.
getTableList
()
}
},
childrenFn
(
arr
,
key
)
{
const
that
=
this
;
let
searchTree
=
[];
arr
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
children
!=
undefined
&&
item
.
children
.
length
!=
0
)
{
let
leaf
=
that
.
childrenFn
(
item
.
children
,
key
);
if
(
leaf
!=
undefined
)
{
let
{
name
,
code
,
resourceCategoryId
,
id
,
iproductId
,
operations
,
metadata
}
=
item
;
let
parentObj
=
{
code
,
name
,
resourceCategoryId
,
id
,
iproductId
,
operations
,
metadata
,
children
:
leaf
};
searchTree
.
push
(
parentObj
);
}
else
{
if
(
item
.
name
.
indexOf
(
key
)
!=
-
1
)
{
searchTree
.
push
(
item
);
}
}
});
if
(
searchTree
!=
undefined
&&
searchTree
.
length
!=
0
)
{
return
searchTree
;
}
},
// 加载表格数据
getTableList
()
{
getMenuInfo
(
sessionStorage
.
getItem
(
"products"
)).
then
((
res
)
=>
{
if
(
res
.
code
===
200
)
{
this
.
tablelistData
=
judgeSort
(
res
.
result
)
this
.
listData
=
this
.
tablelistData
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
else
{
if
(
item
.
name
.
indexOf
(
key
)
!=
-
1
)
{
searchTree
.
push
(
item
);
}
})
const
queryOptionsid
=
{
conditionGroup
:
{
queryRelation
:
"AND"
,
conditions
:
[
{
property
:
"code"
,
value
:
sessionStorage
.
getItem
(
"products"
),
operator
:
"EQ"
,
},
],
},
};
const
params
=
{
queryOptions
:
queryOptionsid
,
};
// 获取系统id
getAction
(
this
.
meumurlid
,
params
)
.
then
((
res
)
=>
{
this
.
productId
=
res
.
content
[
0
].
id
;
this
.
getAuthorityList
(
res
.
content
[
0
].
id
,
res
.
content
[
0
].
code
)
this
.
selectedSubsystemCode
=
res
.
content
[
0
].
code
}
});
if
(
searchTree
!=
undefined
&&
searchTree
.
length
!=
0
)
{
return
searchTree
;
}
},
// 加载表格数据
getTableList
()
{
getMenuInfo
(
this
.
BASE_API
.
CODE
).
then
((
res
)
=>
{
if
(
res
.
code
===
200
)
{
this
.
tablelistData
=
judgeSort
(
res
.
result
)
this
.
listData
=
this
.
tablelistData
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
const
queryOptionsid
=
{
conditionGroup
:
{
queryRelation
:
"AND"
,
conditions
:
[
{
property
:
"code"
,
value
:
sessionStorage
.
getItem
(
"products"
),
operator
:
"EQ"
,
},
],
},
};
const
params
=
{
queryOptions
:
queryOptionsid
,
};
// 获取系统id
getAction
(
this
.
meumurlid
,
params
)
.
then
((
res
)
=>
{
this
.
productId
=
res
.
content
[
0
].
id
;
this
.
getAuthorityList
(
res
.
content
[
0
].
id
,
res
.
content
[
0
].
code
)
this
.
selectedSubsystemCode
=
res
.
content
[
0
].
code
})
.
catch
((
error
)
=>
{
console
.
log
(
"er"
,
error
);
})
},
// 新增菜单
handleAdd
()
{
this
.
isDialog
=
true
this
.
$refs
.
dialogForm
.
add
();
this
.
$refs
.
dialogForm
.
title
=
"新增"
;
},
})
.
catch
((
error
)
=>
{
console
.
log
(
"er"
,
error
);
})
},
// 新增菜单
handleAdd
()
{
this
.
isDialog
=
true
this
.
$refs
.
dialogForm
.
add
();
this
.
$refs
.
dialogForm
.
title
=
"新增"
;
},
// 修改
handleEdit
(
record
)
{
this
.
isDialog
=
true
this
.
$refs
.
dialogForm
.
edit
(
record
);
this
.
$refs
.
dialogForm
.
title
=
"修改"
;
},
// 删除
handleDelete
(
id
,
content
)
{
this
.
$confirm
(
`<div class="customer-message-wrapper">
// 修改
handleEdit
(
record
)
{
this
.
isDialog
=
true
this
.
$refs
.
dialogForm
.
edit
(
record
);
this
.
$refs
.
dialogForm
.
title
=
"修改"
;
},
// 删除
handleDelete
(
id
,
content
)
{
this
.
$confirm
(
`<div class="customer-message-wrapper">
<h5 class="title">您确认要执行该操作用于以下信息:</h5>
<p class="content" aria-controls="
${
content
}
">
${
content
}
</p>
...
...
@@ -211,48 +211,48 @@
<span >无法恢复</span>
</p>
</div>`
,
'执行确认'
,
{
dangerouslyUseHTMLString
:
true
,
customClass
:
'customer-delete'
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
'执行确认'
,
{
dangerouslyUseHTMLString
:
true
,
customClass
:
'customer-delete'
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}
)
.
then
(()
=>
{
if
(
!
this
.
tableUrl
)
{
this
.
$message
.
error
({
message
:
'请设置tableUrl属性为接口地址!'
,
showClose
:
true
})
return
}
)
.
then
(()
=>
{
if
(
!
this
.
tableUrl
)
{
this
.
$message
.
error
({
message
:
'请设置tableUrl属性为接口地址!'
,
showClose
:
true
})
return
const
url
=
this
.
tableUrl
+
'/'
+
id
deleteAction
(
url
).
then
(
res
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
})
this
.
reloadTableData
()
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
const
url
=
this
.
tableUrl
+
'/'
+
id
deleteAction
(
url
).
then
(
res
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
})
this
.
reloadTableData
()
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
})
.
catch
(()
=>
{
})
},
// 新增、编辑回显
reloadTableData
()
{
this
.
getTableList
()
},
})
.
catch
(()
=>
{
})
},
// 新增、编辑回显
reloadTableData
()
{
this
.
getTableList
()
},
};
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
@import
"~@/styles/mixin.scss"
;
@import
"~@/styles/mixin.scss"
;
//
@import
"~@/styles/public.scss"
;
//
@import
"~@/styles/public.scss"
;
/
deep
/
.el-table__expand-icon
{
color
:
#fff
;
}
/
deep
/
.el-table__expand-icon
{
color
:
#fff
;
}
</
style
>
...
...
src/views/system/roles/edit-dialog.vue
View file @
cad71d8
<!-- 新增 & 修改角色 -->
<
template
>
<dialogBox
class=
"modifydialog"
class=
"modifydialog
PersonnelDialog
"
:title=
"title"
:width=
"'567px'"
:isMain=
"true"
...
...
@@ -160,29 +160,4 @@
}
</
script
>
<
style
scoped
lang=
"scss"
>
.modifydialog
{
/deep/.el-dialog__header
{
.dialog_title
{
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
position
:
relative
;
top
:
-8px
;
width
:
24%
;
height
:
40px
;
margin-left
:
28px
;
-webkit-box-pack
:
center
;
-ms-flex-pack
:
center
;
justify-content
:
center
;
white-space
:
nowrap
;
b
{
font-size
:
16px
;
}
}
.el-dialog__headerbtn
{
right
:
20px
!important
;
top
:
23px
!important
;
}
}
}
</
style
>
...
...
src/views/system/roles/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"timedTask from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"ruleForm"
:model=
"form"
label-width=
"100px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME == 'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
@@ -19,8 +19,9 @@
</el-form>
</div>
<div
class=
"from-clues-content"
>
<lb-table
:pagination=
"false"
@
size-change=
"handleSizeChange"
:calcHeight=
"200"
@
p-current-change=
"handleCurrentChange"
:column=
"tableData.columns"
:data=
"listdata"
:expand-row-keys=
"keyList"
row-key=
"dictid"
>
<lb-table
:pagination=
"false"
@
size-change=
"handleSizeChange"
:calcHeight=
"200"
@
p-current-change=
"handleCurrentChange"
:column=
"tableData.columns"
:data=
"listdata"
:expand-row-keys=
"keyList"
row-key=
"dictid"
>
</lb-table>
</div>
<EditDialog
ref=
"addEditDialog"
v-model=
"isDialog"
@
ok=
"reloadTableData"
/>
...
...
@@ -28,439 +29,439 @@
</div>
</
template
>
<
script
>
import
{
getUuid
,
judgeSort
,
realMove
,
findParents
,
removeTreeListItem
,
}
from
"@/utils/operation"
;
import
{
getRolesById
,
getAuthorityListAction
}
from
"@/api/authorityManage"
;
import
{
getUserRoles
}
from
"@/api/personnelManage"
;
import
data
from
"./data"
;
import
{
getMenuInfo
}
from
"@/api/user"
;
import
{
api
,
getAction
,
deleteAction
}
from
"@/api/manageApi"
;
import
tableMixin
from
"@/mixins/tableMixin.js"
;
import
EditDialog
from
"./edit-dialog.vue"
;
import
Roleslistdiglog
from
"./roleslistdiglog.vue"
;
import
{
mapGetters
}
from
"vuex"
;
import
{
updateOrder
}
from
"@/api/orders"
export
default
{
name
:
"menus"
,
mixins
:
[
tableMixin
],
components
:
{
EditDialog
,
Roleslistdiglog
,
},
data
()
{
return
{
isDialog
:
false
,
personlist
:
null
,
waitMemberList
:
[],
keyList
:
[],
listdata
:
[],
setlistdata
:
[],
tableUrlroles
:
api
.
roles
,
form
:
{
rolesName
:
""
,
import
{
getUuid
,
judgeSort
,
realMove
,
findParents
,
removeTreeListItem
,
}
from
"@/utils/operation"
;
import
{
getRolesById
,
getAuthorityListAction
}
from
"@/api/authorityManage"
;
import
{
getUserRoles
}
from
"@/api/personnelManage"
;
import
data
from
"./data"
;
import
{
getMenuInfo
}
from
"@/api/user"
;
import
{
api
,
getAction
,
deleteAction
}
from
"@/api/manageApi"
;
import
tableMixin
from
"@/mixins/tableMixin.js"
;
import
EditDialog
from
"./edit-dialog.vue"
;
import
Roleslistdiglog
from
"./roleslistdiglog.vue"
;
import
{
mapGetters
}
from
"vuex"
;
import
{
updateOrder
}
from
"@/api/orders"
export
default
{
name
:
"menus"
,
mixins
:
[
tableMixin
],
components
:
{
EditDialog
,
Roleslistdiglog
,
},
data
()
{
return
{
isDialog
:
false
,
personlist
:
null
,
waitMemberList
:
[],
keyList
:
[],
listdata
:
[],
setlistdata
:
[],
tableUrlroles
:
api
.
roles
,
form
:
{
rolesName
:
""
,
},
// 当前所选角色id
roleId
:
""
,
title
:
""
,
queryParam
:
{},
multipleSelection
:
[],
// 菜单列表
menutablelistData
:
[],
tableUrl
:
api
.
menus
,
// 菜单接口地址
meumurlid
:
api
.
subsystem
,
// 项目id接口地址
selectType
:
"0"
,
queryName
:
""
,
organizationId
:
""
,
// 组织机构ID
departmentId
:
""
,
// 部门ID
departmentList
:
[],
// 部门列表
levelList
:
[],
// 职务级别
sexList
:
[],
operationCodes
:
null
,
// 操作符对象
operationList
:
[],
// 获取授权列表需要提交的操作符数组
typeOptions
:
[
{
value
:
"0"
,
label
:
"姓名"
,
},
// 当前所选角色id
roleId
:
""
,
title
:
""
,
queryParam
:
{},
multipleSelection
:
[],
// 菜单列表
menutablelistData
:
[],
tableUrl
:
api
.
menus
,
// 菜单接口地址
meumurlid
:
api
.
subsystem
,
// 项目id接口地址
selectType
:
"0"
,
queryName
:
""
,
organizationId
:
""
,
// 组织机构ID
departmentId
:
""
,
// 部门ID
departmentList
:
[],
// 部门列表
levelList
:
[],
// 职务级别
sexList
:
[],
operationCodes
:
null
,
// 操作符对象
operationList
:
[],
// 获取授权列表需要提交的操作符数组
typeOptions
:
[
{
value
:
"0"
,
label
:
"姓名"
,
},
{
value
:
"1"
,
label
:
"工号"
,
},
{
value
:
"2"
,
label
:
"部门"
,
},
{
value
:
"1"
,
label
:
"工号"
,
},
{
value
:
"2"
,
label
:
"部门"
,
},
{
value
:
"3"
,
label
:
"机构"
,
},
],
selectionList
:
[],
tableData
:
{
columns
:
[
{
value
:
"3"
,
label
:
"机构"
,
label
:
"序号"
,
type
:
"index"
,
width
:
"50"
,
index
:
this
.
indexMethod
,
},
],
selectionList
:
[],
tableData
:
{
columns
:
[
]
.
concat
(
data
.
columns
())
.
concat
([
{
label
:
"序号"
,
type
:
"index"
,
width
:
"50"
,
index
:
this
.
indexMethod
,
label
:
"排序"
,
width
:
300
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isTop
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'TOP'
);
}}
>
置顶
<
/el-button
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isTop
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'UP'
);
}}
>
上移
<
/el-button
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isBottom
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'DOWN'
);
}}
>
下移
<
/el-button
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isBottom
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'BOTTOM'
);
}}
>
置底
<
/el-button
>
<
/div
>
);
},
},
]
.
concat
(
data
.
columns
())
.
concat
([
{
label
:
"排序"
,
width
:
300
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isTop
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'TOP'
);
}}
>
置顶
<
/el-button
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isTop
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'UP'
);
}}
>
上移
<
/el-button
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isBottom
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'DOWN'
);
}}
>
下移
<
/el-button
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isBottom
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'BOTTOM'
);
}}
>
置底
<
/el-button
>
<
/div
>
);
},
])
.
concat
([
{
label
:
"操作"
,
width
:
280
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
tooltip
class
=
"item"
effect
=
"dark"
disabled
=
{
scope
.
row
.
type
!==
"Everyone"
}
content
=
"没有点击的权限"
placement
=
"top"
>
<
span
>
<
el
-
button
disabled
=
{
scope
.
row
.
type
===
"Everyone"
}
type
=
"text"
size
=
"mini"
class
=
"configurationbtnColor"
onClick
=
{()
=>
{
this
.
getList
(
scope
.
row
);
}}
>
配置
<
/el-button
>
<
/span
>
<
/el-tooltip
>
<
el
-
tooltip
class
=
"item"
effect
=
"dark"
disabled
=
{
scope
.
row
.
category
!==
1
}
content
=
"系统内置角色 不允许修改"
placement
=
"top"
>
<
span
>
<
el
-
button
disabled
=
{
scope
.
row
.
category
===
1
}
type
=
"text"
size
=
"mini"
class
=
'successColor'
onClick
=
{()
=>
{
this
.
handleAddEdit
(
scope
.
row
);
}}
>
修改
<
/el-button
>
<
/span
>
<
/el-tooltip
>
<
el
-
tooltip
class
=
"item"
effect
=
"dark"
disabled
=
{
scope
.
row
.
category
!==
1
}
content
=
"系统内置角色 不允许删除"
placement
=
"top"
>
<
span
>
<
el
-
button
type
=
"text"
disabled
=
{
scope
.
row
.
category
===
1
}
size
=
"mini"
class
=
'delColor'
// style="color:#F56C6C"
onClick
=
{()
=>
{
this
.
handleDelete
(
scope
.
row
.
id
,
scope
.
row
.
name
);
}}
>
删除
<
/el-button
>
<
/span
>
<
/el-tooltip
>
<
/div
>
);
},
])
.
concat
([
{
label
:
"操作"
,
width
:
280
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
tooltip
class
=
"item"
effect
=
"dark"
disabled
=
{
scope
.
row
.
type
!==
"Everyone"
}
content
=
"没有点击的权限"
placement
=
"top"
>
<
span
>
<
el
-
button
disabled
=
{
scope
.
row
.
type
===
"Everyone"
}
type
=
"text"
size
=
"mini"
class
=
"configurationbtnColor"
onClick
=
{()
=>
{
this
.
getList
(
scope
.
row
);
}}
>
配置
<
/el-button
>
<
/span
>
<
/el-tooltip
>
<
el
-
tooltip
class
=
"item"
effect
=
"dark"
disabled
=
{
scope
.
row
.
category
!==
1
}
content
=
"系统内置角色 不允许修改"
placement
=
"top"
>
<
span
>
<
el
-
button
disabled
=
{
scope
.
row
.
category
===
1
}
type
=
"text"
size
=
"mini"
class
=
'successColor'
onClick
=
{()
=>
{
this
.
handleAddEdit
(
scope
.
row
);
}}
>
修改
<
/el-button
>
<
/span
>
<
/el-tooltip
>
<
el
-
tooltip
class
=
"item"
effect
=
"dark"
disabled
=
{
scope
.
row
.
category
!==
1
}
content
=
"系统内置角色 不允许删除"
placement
=
"top"
>
<
span
>
<
el
-
button
type
=
"text"
disabled
=
{
scope
.
row
.
category
===
1
}
size
=
"mini"
class
=
'delColor'
// style="color:#F56C6C"
onClick
=
{()
=>
{
this
.
handleDelete
(
scope
.
row
.
id
,
scope
.
row
.
name
);
}}
>
删除
<
/el-button
>
<
/span
>
<
/el-tooltip
>
<
/div
>
);
},
}]),
},
data
:
[],
}]),
},
data
:
[],
}
},
created
()
{
this
.
getTableData
();
this
.
getTableList
()
},
computed
:
{
...
mapGetters
([
"products"
])
},
mounted
()
{
},
methods
:
{
//查询
searchQuery
()
{
if
(
this
.
form
.
rolesName
)
{
this
.
listdata
=
this
.
childrenFn
(
this
.
setlistdata
,
this
.
form
.
rolesName
);
}
else
{
this
.
getTableData
()
}
},
created
()
{
this
.
getTableData
();
this
.
getTableList
()
childrenFn
(
arr
,
key
)
{
let
searchTree
=
[];
arr
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
name
.
indexOf
(
key
)
!=
-
1
)
{
searchTree
.
push
(
item
);
}
});
if
(
searchTree
!=
undefined
&&
searchTree
.
length
!=
0
)
{
return
judgeSort
(
searchTree
);
}
},
computed
:
{
...
mapGetters
([
"products"
])
// 获取角色列表
getTableData
()
{
getRolesById
([
1
,
2
])
.
then
((
res
)
=>
{
this
.
listdata
=
res
.
content
;
this
.
listdata
=
judgeSort
(
this
.
listdata
);
this
.
setlistdata
=
res
.
content
;
})
.
catch
((
e
)
=>
console
.
error
(
e
));
},
mounted
()
{
},
methods
:
{
//查询
searchQuery
()
{
if
(
this
.
form
.
rolesName
)
{
this
.
listdata
=
this
.
childrenFn
(
this
.
setlistdata
,
this
.
form
.
rolesName
);
}
else
{
this
.
getTableData
()
}
},
childrenFn
(
arr
,
key
)
{
let
searchTree
=
[];
arr
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
name
.
indexOf
(
key
)
!=
-
1
)
{
searchTree
.
push
(
item
);
}
});
if
(
searchTree
!=
undefined
&&
searchTree
.
length
!=
0
)
{
return
judgeSort
(
searchTree
);
// 获取菜单列表
getTableList
()
{
getMenuInfo
(
this
.
BASE_API
.
CODE
).
then
((
res
)
=>
{
if
(
res
.
code
===
200
)
{
this
.
menutablelistData
=
judgeSort
(
res
.
result
)
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
},
// 获取角色列表
getTableData
()
{
getRolesById
([
1
,
2
])
.
then
((
res
)
=>
{
this
.
listdata
=
res
.
content
;
this
.
listdata
=
judgeSort
(
this
.
listdata
);
this
.
setlistdata
=
res
.
content
;
})
.
catch
((
e
)
=>
console
.
error
(
e
));
},
// 获取菜单列表
getTableList
()
{
getMenuInfo
(
sessionStorage
.
getItem
(
"products"
)).
then
((
res
)
=>
{
if
(
res
.
code
===
200
)
{
this
.
menutablelistData
=
judgeSort
(
res
.
result
)
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
const
queryOptionsid
=
{
conditionGroup
:
{
queryRelation
:
"AND"
,
conditions
:
[
{
property
:
"code"
,
value
:
this
.
products
,
operator
:
"EQ"
,
},
],
},
};
const
params
=
{
queryOptions
:
queryOptionsid
,
};
// 获取系统id
getAction
(
this
.
meumurlid
,
params
)
.
then
((
res
)
=>
{
this
.
productId
=
res
.
content
[
0
].
id
;
this
.
getAuthorityList
(
res
.
content
[
0
].
id
,
res
.
content
[
0
].
code
)
this
.
selectedSubsystemCode
=
res
.
content
[
0
].
code
// let queryOptions = {
// conditionGroup: {
// conditions: [
// {
// property: "productId",
// value: this.productId,
// operator: "EQ",
// },
// ],
// queryRelation: "AND",
// },
// orderBys: [{ property: "sort", direction: "desc" }],
// };
// if (!this.tableUrl) {
// console.log("请设置tableUrl属性为接口地址!");
// return;
// }
// if (this.queryOptions !== "") {
// this.queryParam.queryOptions = JSON.stringify(queryOptions);
// }
// 查询系统菜单
// getAction(this.tableUrl, this.queryParam)
// .then((res) => {
// if (res.status === 1) {
// this.loading = false;
// // this.menutablelistData = res.content;
// console.log("res.content菜单", res.content);
// } else {
// this.$message.error({ message: res.message, showClose: true });
// this.loading = false;
// }
// })
// .catch((error) => {
// console.log("er", error);
// this.loading = false;
// });
})
const
queryOptionsid
=
{
conditionGroup
:
{
queryRelation
:
"AND"
,
conditions
:
[
{
property
:
"code"
,
value
:
this
.
products
,
operator
:
"EQ"
,
},
],
},
};
const
params
=
{
queryOptions
:
queryOptionsid
,
};
// 获取系统id
getAction
(
this
.
meumurlid
,
params
)
.
then
((
res
)
=>
{
this
.
productId
=
res
.
content
[
0
].
id
;
this
.
getAuthorityList
(
res
.
content
[
0
].
id
,
res
.
content
[
0
].
code
)
this
.
selectedSubsystemCode
=
res
.
content
[
0
].
code
// let queryOptions = {
// conditionGroup: {
// conditions: [
// {
// property: "productId",
// value: this.productId,
// operator: "EQ",
// },
// ],
// queryRelation: "AND",
// },
// orderBys: [{ property: "sort", direction: "desc" }],
// };
// if (!this.tableUrl) {
// console.log("请设置tableUrl属性为接口地址!");
// return;
// }
// if (this.queryOptions !== "") {
// this.queryParam.queryOptions = JSON.stringify(queryOptions);
// }
// 查询系统菜单
// getAction(this.tableUrl, this.queryParam)
// .then((res) => {
// if (res.status === 1) {
// this.loading = false;
// // this.menutablelistData = res.content;
// console.log("res.content菜单", res.content);
// } else {
// this.$message.error({ message: res.message, showClose: true });
// this.loading = false;
// }
// })
// .catch((error) => {
// console.log("er", error);
// this.loading = false;
// });
})
.
catch
((
error
)
=>
{
console
.
log
(
"er"
,
error
);
});
},
// 获取权限列表
getAuthorityList
(
productId
,
code
)
{
getAuthorityListAction
(
productId
,
code
).
then
(
res
=>
{
if
(
res
.
status
===
1
)
{
if
(
res
.
content
.
length
!==
0
)
{
this
.
operationCodes
=
res
.
content
[
0
].
operations
this
.
operationList
=
[]
for
(
var
k
in
this
.
operationCodes
)
{
this
.
operationList
.
push
(
k
)
}
.
catch
((
error
)
=>
{
console
.
log
(
"er"
,
error
);
});
},
// 获取权限列表
getAuthorityList
(
productId
,
code
)
{
getAuthorityListAction
(
productId
,
code
).
then
(
res
=>
{
if
(
res
.
status
===
1
)
{
if
(
res
.
content
.
length
!==
0
)
{
this
.
operationCodes
=
res
.
content
[
0
].
operations
this
.
operationList
=
[]
for
(
var
k
in
this
.
operationCodes
)
{
this
.
operationList
.
push
(
k
)
}
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
)
},
}
)
},
// 配置
getList
(
row
)
{
this
.
getTableList
()
const
params
=
{};
const
queryOptions
=
{
conditionGroup
:
{
conditions
:
[
{
property
:
"organizationId"
,
value
:
row
.
organizationId
,
operator
:
"EQ"
,
},
{
property
:
"departmentId"
,
value
:
row
.
departmentId
,
operator
:
"EQ"
,
},
],
queryRelation
:
"AND"
,
},
orderBys
:
[{
property
:
"sort"
,
direction
:
"desc"
}],
};
params
.
queryOptions
=
JSON
.
stringify
(
queryOptions
);
// 配置
getList
(
row
)
{
this
.
getTableList
()
const
params
=
{};
const
queryOptions
=
{
conditionGroup
:
{
conditions
:
[
{
property
:
"organizationId"
,
value
:
row
.
organizationId
,
operator
:
"EQ"
,
},
{
property
:
"departmentId"
,
value
:
row
.
departmentId
,
operator
:
"EQ"
,
},
],
queryRelation
:
"AND"
,
},
orderBys
:
[{
property
:
"sort"
,
direction
:
"desc"
}],
};
params
.
queryOptions
=
JSON
.
stringify
(
queryOptions
);
getUserRoles
(
row
.
id
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
personlist
=
res
.
content
;
getAction
(
api
.
users
,
params
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
waitMemberList
=
res
.
content
;
if
(
this
.
personlist
)
{
this
.
waitMemberList
.
forEach
((
item
,
i
)
=>
{
this
.
personlist
.
forEach
((
val
)
=>
{
if
(
item
.
id
===
val
.
id
)
{
this
.
waitMemberList
[
i
].
selectStatus
=
0
;
}
});
getUserRoles
(
row
.
id
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
personlist
=
res
.
content
;
getAction
(
api
.
users
,
params
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
waitMemberList
=
res
.
content
;
if
(
this
.
personlist
)
{
this
.
waitMemberList
.
forEach
((
item
,
i
)
=>
{
this
.
personlist
.
forEach
((
val
)
=>
{
if
(
item
.
id
===
val
.
id
)
{
this
.
waitMemberList
[
i
].
selectStatus
=
0
;
}
});
}
this
.
$refs
.
rolesForm
.
personlist
(
this
.
waitMemberList
,
row
.
id
);
this
.
$refs
.
rolesForm
.
menulist
(
this
.
operationList
,
row
.
id
,
this
.
selectedSubsystemCode
,
this
.
menutablelistData
,
this
.
operationCodes
);
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
});
});
}
});
this
.
$refs
.
rolesForm
.
title
=
"人员配置"
;
}
else
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
});
});
},
// 新增、修改角色
handleAddEdit
(
value
)
{
this
.
isDialog
=
true
this
.
$refs
.
addEditDialog
.
menuType
=
this
.
menuType
;
this
.
$refs
.
addEditDialog
.
roleId
=
value
.
id
;
this
.
roleSort
=
value
.
sort
?
value
.
sort
:
0
;
this
.
$refs
.
addEditDialog
.
dialogForm
.
roleType
=
sessionStorage
.
getItem
(
"products"
);
if
(
value
.
id
)
{
this
.
$refs
.
addEditDialog
.
dialogForm
.
roleName
=
value
.
name
;
this
.
$refs
.
addEditDialog
.
dialogForm
.
roleTextArea
=
value
.
description
;
}
this
.
$refs
.
addEditDialog
.
showAddEditDialog
=
true
;
this
.
$refs
.
addEditDialog
.
title
=
value
.
id
?
"修改"
:
"新增"
;
},
//排序
updateOrder
(
record
,
operate
)
{
const
findIndex
=
this
.
listdata
.
findIndex
(
item
=>
item
.
id
===
record
.
id
)
let
swapId
=
''
if
(
operate
===
'UP'
)
{
swapId
=
this
.
listdata
[
findIndex
-
1
].
id
}
else
if
(
operate
===
'DOWN'
)
{
swapId
=
this
.
listdata
[
findIndex
+
1
].
id
this
.
$refs
.
rolesForm
.
personlist
(
this
.
waitMemberList
,
row
.
id
);
this
.
$refs
.
rolesForm
.
menulist
(
this
.
operationList
,
row
.
id
,
this
.
selectedSubsystemCode
,
this
.
menutablelistData
,
this
.
operationCodes
);
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
});
}
});
this
.
$refs
.
rolesForm
.
title
=
"人员配置"
;
}
else
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
});
});
},
// 新增、修改角色
handleAddEdit
(
value
)
{
this
.
isDialog
=
true
this
.
$refs
.
addEditDialog
.
menuType
=
this
.
menuType
;
this
.
$refs
.
addEditDialog
.
roleId
=
value
.
id
;
this
.
roleSort
=
value
.
sort
?
value
.
sort
:
0
;
this
.
$refs
.
addEditDialog
.
dialogForm
.
roleType
=
sessionStorage
.
getItem
(
"products"
);
if
(
value
.
id
)
{
this
.
$refs
.
addEditDialog
.
dialogForm
.
roleName
=
value
.
name
;
this
.
$refs
.
addEditDialog
.
dialogForm
.
roleTextArea
=
value
.
description
;
}
this
.
$refs
.
addEditDialog
.
showAddEditDialog
=
true
;
this
.
$refs
.
addEditDialog
.
title
=
value
.
id
?
"修改"
:
"新增"
;
},
//排序
updateOrder
(
record
,
operate
)
{
const
findIndex
=
this
.
listdata
.
findIndex
(
item
=>
item
.
id
===
record
.
id
)
let
swapId
=
''
if
(
operate
===
'UP'
)
{
swapId
=
this
.
listdata
[
findIndex
-
1
].
id
}
else
if
(
operate
===
'DOWN'
)
{
swapId
=
this
.
listdata
[
findIndex
+
1
].
id
}
updateOrder
(
'/rest/roles'
,
record
,
operate
,
swapId
).
then
(
res
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
})
this
.
getTableData
();
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
updateOrder
(
'/rest/roles'
,
record
,
operate
,
swapId
).
then
(
res
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
})
this
.
getTableData
();
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
},
// 删除
handleDelete
:
function
(
id
,
content
=
""
)
{
this
.
$confirm
(
`<div class="customer-message-wrapper">
})
},
// 删除
handleDelete
:
function
(
id
,
content
=
""
)
{
this
.
$confirm
(
`<div class="customer-message-wrapper">
<h5 class="title">您确认要执行该操作用于以下信息:</h5>
<p class="content" aria-controls="
${
content
}
">
${
content
}
</p>
...
...
@@ -468,50 +469,50 @@
<span >无法恢复</span>
</p>
</div>`
,
"执行确认"
,
{
dangerouslyUseHTMLString
:
true
,
customClass
:
"customer-delete"
,
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
"执行确认"
,
{
dangerouslyUseHTMLString
:
true
,
customClass
:
"customer-delete"
,
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
}
)
.
then
(()
=>
{
if
(
!
this
.
tableUrlroles
)
{
this
.
$message
.
error
({
message
:
"请设置tableUrl属性为接口地址!"
,
showClose
:
true
,
});
return
;
}
)
.
then
(()
=>
{
if
(
!
this
.
tableUrlroles
)
{
this
.
$message
.
error
({
message
:
"请设置tableUrl属性为接口地址!"
,
showClose
:
true
,
});
return
;
const
url
=
this
.
tableUrlroles
+
"/"
+
id
;
deleteAction
(
url
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
});
this
.
getTableData
();
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
});
}
const
url
=
this
.
tableUrlroles
+
"/"
+
id
;
deleteAction
(
url
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
});
this
.
getTableData
();
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
});
}
});
})
.
catch
(()
=>
{
});
},
// 新增回显
reloadTableData
()
{
this
.
getTableData
();
},
});
})
.
catch
(()
=>
{
});
},
// 新增回显
reloadTableData
()
{
this
.
getTableData
();
},
};
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
@import
"~@/styles/mixin.scss"
;
//
@import
"~@/styles/public.scss"
;
@import
"~@/styles/mixin.scss"
;
//
@import
"~@/styles/public.scss"
;
/
deep
/
.el-button.is-disabled.el-button--text
{
width
:
64px
;
height
:
28px
;
background
:
rgba
(
255
,
255
,
255
,
0.1
);
border-radius
:
16px
;
}
/
deep
/
.el-button.is-disabled.el-button--text
{
width
:
64px
;
height
:
28px
;
background
:
rgba
(
255
,
255
,
255
,
0.1
);
border-radius
:
16px
;
}
</
style
>
...
...
src/views/system/timedTask/data/index.js
View file @
cad71d8
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-03-27 10:27:32
*/
import
filter
from
'@/utils/filter.js'
class
data
extends
filter
{
constructor
()
{
...
...
@@ -17,7 +22,8 @@ class data extends filter {
},
{
prop
:
"cronExpression"
,
label
:
"cron表达式"
label
:
"cron表达式"
,
width
:
160
,
},
{
prop
:
"beanName"
,
...
...
@@ -34,7 +40,7 @@ class data extends filter {
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
{
this
.
stateStatus
(
scope
.
row
.
jobStatus
)
}
{
this
.
stateStatus
(
scope
.
row
.
jobStatus
)
}
<
/div
>
)
},
...
...
src/views/system/timedTask/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"timedTask from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME == 'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
...
...
src/views/system/users/edit-dialog.vue
View file @
cad71d8
<
template
>
<dialogBox
:title=
"title"
:width=
"'867px'"
class=
"modifydialog"
@
closeDialog=
"close"
:isMain=
"true"
@
submitForm=
"submitForm"
<dialogBox
:title=
"title"
:width=
"'867px'"
class=
"modifydialog
PersonnelDialog
"
@
closeDialog=
"close"
:isMain=
"true"
@
submitForm=
"submitForm"
v-model=
"myValue"
>
<div
class=
"dialogCon"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
>
...
...
@@ -193,32 +193,4 @@
}
</
script
>
<
style
scoped
lang=
"scss"
>
.modifydialog
{
/deep/.el-dialog__header
{
.dialog_title
{
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
position
:
relative
;
top
:
-7px
;
width
:
29%
;
height
:
40px
;
margin-left
:
28px
;
-webkit-box-pack
:
center
;
-ms-flex-pack
:
center
;
justify-content
:
center
;
white-space
:
nowrap
;
b
{
font-size
:
16px
;
}
}
.el-dialog__headerbtn
{
right
:
20px
!important
;
top
:
23px
!important
;
}
}
.selbig
{
width
:
500px
;
}
}
</
style
>
...
...
src/views/system/users/index.vue
View file @
cad71d8
...
...
@@ -2,7 +2,7 @@
<div
class=
"timedTask from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"ruleForm"
:model=
"form"
label-width=
"100px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME == 'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mt-10"
>
...
...
@@ -38,388 +38,375 @@
</div>
</
template
>
<
script
>
import
{
getUuid
,
judgeSort
,
realMove
,
findParents
,
removeTreeListItem
,
}
from
"@/utils/operation"
;
import
{
resetPassword
,
getUserList
,
getUserLists
}
from
"@/api/personnelManage"
;
import
{
api
,
deleteAction
,
getAction
}
from
'@/api/manageApi'
import
data
from
"./data"
;
import
{
deleteDomStr
}
from
'@/utils/proDomStr'
import
tableMixin
from
"@/mixins/tableMixin.js"
;
import
EditDialog
from
"./edit-dialog.vue"
;
import
{
updateOrder
}
from
"@/api/orders"
export
default
{
name
:
"menus"
,
mixins
:
[
tableMixin
],
components
:
{
EditDialog
,
},
data
()
{
return
{
isDialog
:
false
,
taskData
:
null
,
keyList
:
[],
form
:
{
loginName
:
""
,
name
:
""
,
code
:
""
,
import
{
getUuid
,
judgeSort
,
realMove
,
findParents
,
removeTreeListItem
,
}
from
"@/utils/operation"
;
import
{
resetPassword
,
getUserList
,
getUserLists
}
from
"@/api/personnelManage"
;
import
{
api
,
deleteAction
,
getAction
}
from
'@/api/manageApi'
import
data
from
"./data"
;
import
{
deleteDomStr
}
from
'@/utils/proDomStr'
import
tableMixin
from
"@/mixins/tableMixin.js"
;
import
EditDialog
from
"./edit-dialog.vue"
;
import
{
updateOrder
}
from
"@/api/orders"
export
default
{
name
:
"menus"
,
mixins
:
[
tableMixin
],
components
:
{
EditDialog
,
},
data
()
{
return
{
isDialog
:
false
,
taskData
:
null
,
keyList
:
[],
form
:
{
loginName
:
""
,
name
:
""
,
code
:
""
,
},
queryParam
:
{},
selectType
:
"0"
,
queryName
:
""
,
organizationId
:
""
,
// 组织机构ID
departmentId
:
""
,
// 部门ID
departmentList
:
[],
// 部门列表
levelList
:
[],
// 职务级别
sexList
:
[],
typeOptions
:
[
{
value
:
"0"
,
label
:
"姓名"
,
},
queryParam
:
{},
selectType
:
"0"
,
queryName
:
""
,
organizationId
:
""
,
// 组织机构ID
departmentId
:
""
,
// 部门ID
departmentList
:
[],
// 部门列表
levelList
:
[],
// 职务级别
sexList
:
[],
typeOptions
:
[
{
value
:
"0"
,
label
:
"姓名"
,
},
{
value
:
"1"
,
label
:
"工号"
,
},
{
value
:
"2"
,
label
:
"部门"
,
},
{
value
:
"1"
,
label
:
"工号"
,
},
{
value
:
"2"
,
label
:
"部门"
,
},
{
value
:
"3"
,
label
:
"机构"
,
},
],
selectionList
:
[],
tableData
:
{
columns
:
[
{
value
:
"3"
,
label
:
"机构"
,
label
:
"序号"
,
type
:
"index"
,
width
:
"50"
,
index
:
this
.
indexMethod
,
},
],
]
.
concat
(
data
.
columns
())
.
concat
([
{
label
:
"职位"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
v
-
show
=
{
scope
.
row
.
jobLevel
!==
null
}
>
{
scope
.
row
.
jobLevel
?
"干事"
:
"经理"
}
<
/div
>
)
selectionList
:
[],
tableData
:
{
columns
:
[
}
},
{
label
:
"序号"
,
type
:
"index"
,
width
:
"50"
,
index
:
this
.
indexMethod
,
label
:
"负责人"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
i
v
-
show
=
{
scope
.
row
.
isDuty
!==
null
}
class
=
"el-icon-check"
/>
)
}
},
]
.
concat
(
data
.
columns
())
.
concat
([
{
label
:
"职位"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
v
-
show
=
{
scope
.
row
.
jobLevel
!==
null
}
>
{
scope
.
row
.
jobLevel
?
"干事"
:
"经理"
}
<
/div
>
)
}
},
{
label
:
"负责人"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
i
v
-
show
=
{
scope
.
row
.
isDuty
!==
null
}
class
=
"el-icon-check"
/>
)
}
{
label
:
"排序"
,
width
:
300
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isTop
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'TOP'
);
}}
>
置顶
<
/el-button
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isTop
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'UP'
);
}}
>
上移
<
/el-button
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isBottom
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'DOWN'
);
}}
>
下移
<
/el-button
>
<
el
-
button
type
=
"text"
size
=
"mini"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isBottom
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'BOTTOM'
);
}}
>
置底
<
/el-button
>
<
/div
>
);
},
{
label
:
"排序"
,
width
:
300
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isTop
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'TOP'
);
}}
>
置顶
<
/el-button
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isTop
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'UP'
);
}}
>
上移
<
/el-button
>
<
el
-
button
type
=
"text"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isBottom
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'DOWN'
);
}}
>
下移
<
/el-button
>
<
el
-
button
type
=
"text"
size
=
"mini"
class
=
'movebtnColor'
disabled
=
{
scope
.
row
.
isBottom
}
onClick
=
{()
=>
{
this
.
updateOrder
(
scope
.
row
,
'BOTTOM'
);
}}
>
置底
<
/el-button
>
<
/div
>
);
},
},
{
label
:
"操作"
,
width
:
380
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
button
type
=
"text"
size
=
"mini"
class
=
'resetbtnColor'
onClick
=
{()
=>
{
this
.
resetPassword
(
scope
.
row
.
id
);
}}
>
重置
<
/el-button
>
<
el
-
button
type
=
"text"
size
=
"mini"
class
=
'successColor'
onClick
=
{()
=>
{
this
.
handleEdit
(
scope
.
row
);
}}
>
修改
<
/el-button
>
<
el
-
button
type
=
"text"
size
=
"mini"
class
=
'delColor'
onClick
=
{()
=>
{
this
.
handleDelete
(
scope
.
row
.
id
,
scope
.
row
.
name
);
}}
>
删除
<
/el-button
>
<
/div
>
);
},
},
]),
data
:
[],
},
};
},
created
()
{
this
.
getTableList
();
},
computed
:
{
departmentid
()
{
return
this
.
$store
.
state
.
user
.
userInfo
;
},
},
methods
:
{
handleAdd
()
{
this
.
isDialog
=
true
this
.
$refs
.
dialogForm
.
adds
();
this
.
$refs
.
dialogForm
.
title
=
"添加"
;
},
// 查询
getTableList
()
{
this
.
queryParam
=
{
name
:
this
.
form
.
name
,
code
:
this
.
form
.
code
,
loginName
:
this
.
form
.
loginName
,
};
getUserLists
(
this
.
queryParam
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
loading
=
false
;
this
.
tableData
.
data
=
res
.
content
;
this
.
tableData
.
data
=
judgeSort
(
this
.
tableData
.
data
);
let
arr
=
[]
this
.
tableData
.
data
.
forEach
((
item
)
=>
{
arr
.
push
(
item
.
departmentId
)
})
this
.
getDepts
(
arr
)
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
},
// 获取组织机构
getDepts
(
deptIdArr
)
{
let
params
=
{
queryOptions
:
{
conditionGroup
:
{
conditions
:
[
{
label
:
"操作"
,
width
:
380
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
button
type
=
"text"
size
=
"mini"
class
=
'resetbtnColor'
onClick
=
{()
=>
{
this
.
resetPassword
(
scope
.
row
.
id
);
}}
>
重置
<
/el-button
>
<
el
-
button
type
=
"text"
size
=
"mini"
class
=
'successColor'
onClick
=
{()
=>
{
this
.
handleEdit
(
scope
.
row
);
}}
>
修改
<
/el-button
>
<
el
-
button
type
=
"text"
size
=
"mini"
class
=
'delColor'
onClick
=
{()
=>
{
this
.
handleDelete
(
scope
.
row
.
id
,
scope
.
row
.
name
);
}}
>
删除
<
/el-button
>
<
/div
>
);
},
property
:
"id"
,
value
:
deptIdArr
,
operator
:
"IN"
,
},
]),
data
:
[],
],
queryRelation
:
"AND"
,
},
orderBys
:
[],
},
};
},
created
()
{
this
.
getTableList
();
},
computed
:
{
departmentid
()
{
return
this
.
$store
.
state
.
user
.
userInfo
;
},
},
methods
:
{
handleAdd
()
{
this
.
isDialog
=
true
this
.
$refs
.
dialogForm
.
adds
();
this
.
$refs
.
dialogForm
.
title
=
"添加"
;
},
// 查询
getTableList
()
{
this
.
queryParam
=
{
name
:
this
.
form
.
name
,
code
:
this
.
form
.
code
,
loginName
:
this
.
form
.
loginName
,
};
getUserLists
(
this
.
queryParam
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
loading
=
false
;
this
.
tableData
.
data
=
res
.
content
;
this
.
tableData
.
data
=
judgeSort
(
this
.
tableData
.
data
);
let
arr
=
[]
getAction
(
api
.
departments
,
params
).
then
(
(
res
)
=>
{
let
deptsList
=
res
.
content
;
deptsList
.
forEach
((
ele
)
=>
{
this
.
tableData
.
data
.
forEach
((
item
)
=>
{
arr
.
push
(
item
.
departmentId
)
})
this
.
getDepts
(
arr
)
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
},
// 获取组织机构
getDepts
(
deptIdArr
)
{
let
params
=
{
queryOptions
:
{
conditionGroup
:
{
conditions
:
[
{
property
:
"id"
,
value
:
deptIdArr
,
operator
:
"IN"
,
},
],
queryRelation
:
"AND"
,
},
orderBys
:
[],
},
};
getAction
(
api
.
departments
,
params
).
then
(
(
res
)
=>
{
let
deptsList
=
res
.
content
;
deptsList
.
forEach
((
ele
)
=>
{
this
.
tableData
.
data
.
forEach
((
item
)
=>
{
if
(
ele
.
id
==
item
.
departmentId
)
{
item
.
departmentName
=
ele
.
name
}
})
if
(
ele
.
id
==
item
.
departmentId
)
{
item
.
departmentName
=
ele
.
name
}
})
})
},
(
err
)
=>
{
console
.
log
(
"err :"
,
err
);
}
);
},
// getTableList () {
// this.loading = true;
},
(
err
)
=>
{
console
.
log
(
"err :"
,
err
);
}
);
},
// getTableList () {
// this.loading = true;
// getUserList().then((res) => {
// if (res.status === 1) {
// console.log("res人员列表", res);
// this.loading = false;
// this.tableData.data = res.content;
// this.tableData.data = judgeSort(this.tableData.data);
// } else {
// this.$message.error({ message: res.message, showClose: true });
// }
// });
// },
// getUserList().then((res) => {
// if (res.status === 1) {
// console.log("res人员列表", res);
// this.loading = false;
// this.tableData.data = res.content;
// this.tableData.data = judgeSort(this.tableData.data);
// } else {
// this.$message.error({ message: res.message, showClose: true });
// }
// });
// },
// 重置用户密码
resetPassword
(
data
)
{
const
ids
=
[]
if
(
data
instanceof
Array
)
{
data
.
forEach
((
item
)
=>
{
ids
.
push
(
item
.
id
)
})
}
else
{
ids
.
push
(
data
)
}
if
(
ids
.
length
===
0
)
{
this
.
$message
({
message
:
'请选择需要重置密码的用户!'
,
showClose
:
true
})
return
}
this
.
$confirm
(
`<div class="customer-message-wrapper">
// 重置用户密码
resetPassword
(
data
)
{
const
ids
=
[]
if
(
data
instanceof
Array
)
{
data
.
forEach
((
item
)
=>
{
ids
.
push
(
item
.
id
)
})
}
else
{
ids
.
push
(
data
)
}
if
(
ids
.
length
===
0
)
{
this
.
$message
({
message
:
'请选择需要重置密码的用户!'
,
showClose
:
true
})
return
}
this
.
$confirm
(
`<div class="customer-message-wrapper">
<h5 class="title">确定要重置密码吗</h5>
<p class="result">执行后,数据将
<span >无法恢复</span>
</p>
</div>`
,
'执行确认'
,
{
dangerouslyUseHTMLString
:
true
,
customClass
:
'customer-delete'
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}
)
.
then
(()
=>
{
resetPassword
(
ids
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
})
this
.
getTableList
()
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
})
.
catch
(()
=>
{
})
},
//排序
updateOrder
(
record
,
operate
)
{
const
findIndex
=
this
.
tableData
.
data
.
findIndex
(
item
=>
item
.
id
===
record
.
id
)
let
swapId
=
''
if
(
operate
===
'UP'
)
{
swapId
=
this
.
tableData
.
data
[
findIndex
-
1
].
id
}
else
if
(
operate
===
'DOWN'
)
{
swapId
=
this
.
tableData
.
data
[
findIndex
+
1
].
id
}
updateOrder
(
'/rest/users'
,
record
,
operate
,
swapId
).
then
(
res
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
})
this
.
getTableList
();
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
},
// 修改人员信息
handleEdit
(
row
)
{
console
.
log
(
"rowwwww"
,
row
);
this
.
isDialog
=
true
this
.
$refs
.
dialogForm
.
edit
(
row
);
this
.
$refs
.
dialogForm
.
title
=
"修改"
;
},
// 删除
handleDelete
(
id
,
content
)
{
this
.
$confirm
(
deleteDomStr
(
content
),
'执行确认'
,
{
'执行确认'
,
{
dangerouslyUseHTMLString
:
true
,
customClass
:
'customer-delete'
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
})
.
then
(()
=>
{
deleteAction
(
`
${
api
.
users
}
/
${
id
}
`
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
})
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
}
)
.
then
(()
=>
{
resetPassword
(
ids
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
})
this
.
getTableList
()
})
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
.
catch
(()
=>
{
})
},
// 新增回显
reloadTableData
()
{
this
.
getTableList
()
},
})
.
catch
(()
=>
{
})
},
//排序
updateOrder
(
record
,
operate
)
{
const
findIndex
=
this
.
tableData
.
data
.
findIndex
(
item
=>
item
.
id
===
record
.
id
)
let
swapId
=
''
if
(
operate
===
'UP'
)
{
swapId
=
this
.
tableData
.
data
[
findIndex
-
1
].
id
}
else
if
(
operate
===
'DOWN'
)
{
swapId
=
this
.
tableData
.
data
[
findIndex
+
1
].
id
}
updateOrder
(
'/rest/users'
,
record
,
operate
,
swapId
).
then
(
res
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
})
this
.
getTableList
();
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
})
},
// 修改人员信息
handleEdit
(
row
)
{
console
.
log
(
"rowwwww"
,
row
);
this
.
isDialog
=
true
this
.
$refs
.
dialogForm
.
edit
(
row
);
this
.
$refs
.
dialogForm
.
title
=
"修改"
;
},
// 删除
handleDelete
(
id
,
content
)
{
this
.
$confirm
(
deleteDomStr
(
content
),
'执行确认'
,
{
dangerouslyUseHTMLString
:
true
,
customClass
:
'customer-delete'
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
})
.
then
(()
=>
{
deleteAction
(
`
${
api
.
users
}
/
${
id
}
`
).
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
this
.
$message
.
success
({
message
:
res
.
message
,
showClose
:
true
})
}
else
{
this
.
$message
.
error
({
message
:
res
.
message
,
showClose
:
true
})
}
this
.
getTableList
()
})
})
.
catch
(()
=>
{
})
},
// 新增回显
reloadTableData
()
{
this
.
getTableList
()
},
};
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
@import
"~@/styles/mixin.scss"
;
//
.btnColRight
{
//
height
:
30px
;
//
.button
{
//
position
:
absolute
;
//
left
:
30px
;
//
}
//
}
/
deep
/
.el-button.is-disabled.el-button--text
{
width
:
64px
;
height
:
28px
;
background
:
rgba
(
255
,
255
,
255
,
0.1
);
border-radius
:
16px
;
}
@import
"~@/styles/mixin.scss"
;
</
style
>
...
...
Please
register
or
sign in
to post a comment