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
07b47dcc
authored
2023-03-27 17:26:41 +0800
by
renchao@pashanhoo.com
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
style:样式修改
2 parents
24c6ad37
bb6ca1ce
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
2225 additions
and
1501 deletions
README.md
public/config.json
src/components/LbTable/index.vue
src/layout1/components/Navbar.vue
src/layout1/components/TagsView/index.vue
src/main.js
src/permission.js
src/styles/dialogBox.scss
src/styles/index.scss
src/styles/jgElement-ui.scss
src/styles/jgPublic.scss
src/styles/sbPublic.scss
src/views/jktj/bsxljk/index.vue
src/views/jktj/cgltj/index.vue
src/views/jktj/ywltj/index.vue
src/views/jsbwcx/index.vue
src/views/statistics/css/index.scss
src/views/statistics/dataReceiveQuality/index.vue
src/views/statistics/nullTermRatio/index.vue
src/views/statistics/registerBookQuality/index.vue
src/views/system/components/addTask.vue
src/views/system/dictionaries/components/editDialog.vue
src/views/system/dictionaries/dictionaries.vue
src/views/system/information/base-set.vue
src/views/system/information/index.vue
src/views/system/information/password-edit.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/roles/roleslistdiglog.vue
src/views/system/timedTask/index.vue
src/views/system/users/edit-dialog.vue
src/views/system/users/index.vue
src/views/system/validationRule/index.vue
README.md
View file @
07b47dc
<!--
*
@Description:
*
@Autor: renchao
*
@LastEditTime: 2023-03-27 1
3:25:25
*
@LastEditTime: 2023-03-27 1
5:43:24
-->
# 安装依赖
npm install
...
...
@@ -21,4 +21,15 @@ npm install --registry=https://registry.npm.taobao.org
-
`wip`
开发中
## 项目换肤
给html根标签设置一个data-theme属性,然后通过js切换data-theme的属性值,Scss根据此属性来判断使用对应主题变量
\ No newline at end of file
给html根标签设置一个data-theme属性,然后通过js切换data-theme的属性值,Scss根据此属性来判断使用对应主题变量
## config说明
{
"TITLE": "汉中市数据上报系统",
"THEME": "sb",
"CODE": "BDCJGPT", {"BDCSBPT":上报: "BDCJGPT":监管}
"SERVERAPI": "/bdcsjsb",
"calcHeight": 200, {上报:160 监管:200}
"MANAGEMENTAPI": "http://192.168.2.38:8090/management"
}
\ No newline at end of file
...
...
public/config.json
View file @
07b47dc
{
"TITLE"
:
"汉中市数据上报系统"
,
"THEME"
:
"sb"
,
"CODE"
:
"BDC
JG
PT"
,
"CODE"
:
"BDC
SB
PT"
,
"SERVERAPI"
:
"/bdcsjsb"
,
"calcHeight"
:
160
,
"MANAGEMENTAPI"
:
"http://192.168.2.38:8090/management"
}
...
...
src/components/LbTable/index.vue
View file @
07b47dc
...
...
@@ -139,11 +139,25 @@ export default {
let
_this
=
this
if
(
this
.
heightNum
)
{
_this
.
$nextTick
(()
=>
{
window
.
addEventListener
(
'resize'
,
()
=>
{
if
(
document
.
querySelector
(
".tags-view-container"
))
{
window
.
addEventListener
(
'resize'
,
()
=>
{
if
(
_this
.
calcHeight
==
230
)
{
_this
.
tableHeight
=
_this
.
calcHeightx
(
192
)
}
else
{
_this
.
tableHeight
=
_this
.
calcHeightx
(
_this
.
calcHeight
)
}
});
if
(
_this
.
calcHeight
==
230
)
{
_this
.
tableHeight
=
_this
.
calcHeightx
(
192
)
}
else
{
_this
.
tableHeight
=
_this
.
calcHeightx
(
_this
.
calcHeight
)
}
}
else
{
window
.
addEventListener
(
'resize'
,
()
=>
{
_this
.
tableHeight
=
_this
.
calcHeightx
(
_this
.
calcHeight
)
});
_this
.
tableHeight
=
_this
.
calcHeightx
(
_this
.
calcHeight
)
});
_this
.
tableHeight
=
_this
.
calcHeightx
(
_this
.
calcHeight
)
}
})
}
else
{
_this
.
tableHeight
=
window
.
innerHeight
-
_this
.
heightNum
...
...
@@ -158,9 +172,15 @@ export default {
calcHeightx
(
value
,
wappered
=
true
)
{
//项目自定义的公共header部分的高度,可忽略
let
header
=
document
.
querySelector
(
".from-clues-header"
).
offsetHeight
;
//value为动态计算table界面高度时,减去的其他空白部分,需自行在调试找到临界值,剩下的就是table表格的高度(包含header+body部分)
value
=
value
==
undefined
?
100
:
value
;
let
res
=
window
.
innerHeight
-
parseInt
(
header
)
-
value
;
if
(
document
.
querySelector
(
".tags-view-container"
))
{
let
tagsView
=
document
.
querySelector
(
".tags-view-container"
).
offsetHeight
;
var
res
=
window
.
innerHeight
-
parseInt
(
header
)
-
value
-
parseInt
(
tagsView
);
}
else
{
var
res
=
window
.
innerHeight
-
parseInt
(
header
)
-
value
;
}
if
(
wappered
)
{
//通过原生方法,获取dom节点的高度------获取element-ui table表格body的元素
let
wapper
=
window
.
document
.
getElementsByClassName
(
'el-table__body-wrapper'
);
...
...
src/layout1/components/Navbar.vue
View file @
07b47dc
...
...
@@ -6,14 +6,12 @@
<h4>
不动产登记上报系统
</h4>
</div>
<div
class=
"right-menu"
>
<el-dropdown
class=
"avatar-container right-menu-item hover-effect"
trigger=
"hover"
>
<div
class=
"user"
>
{{
userName
}}
<span
@
click=
"onCancel"
>
<i
class=
"el-icon-switch-button"
></i>
</span>
</div>
</el-dropdown>
<div
class=
"user"
>
{{
userName
}}
<span
@
click=
"onCancel"
>
<i
class=
"el-icon-switch-button"
></i>
</span>
</div>
</div>
</div>
</div>
...
...
src/layout1/components/TagsView/index.vue
View file @
07b47dc
...
...
@@ -194,12 +194,12 @@ export default {
@import
"~@/styles/_handle.scss"
;
.tags-view-container
{
height
:
4
0px
;
height
:
5
0px
;
width
:
100%
;
background
:
#fff
;
border-bottom
:
1px
solid
#d8dce5
;
box-sizing
:
border-box
;
padding-top
:
2
px
;
padding-top
:
7
px
;
margin-bottom
:
7px
;
border-radius
:
4px
;
...
...
src/main.js
View file @
07b47dc
...
...
@@ -2,7 +2,7 @@
* @Author: yangwei
* @Date: 2023-01-16 09:10:12
* @LastEditors: Please set LastEditors
* @LastEditTime: 2023-03-2
3 15:15:02
* @LastEditTime: 2023-03-2
7 16:54:34
* @FilePath: \bdcjg-web\src\main.js
* @Description:
*
...
...
@@ -19,7 +19,6 @@ import mixin from '@/utils/mixin/theme.js'
import
axios
from
'axios'
import
dataV
from
'@jiaminghi/data-view'
;
import
*
as
echarts
from
"echarts"
import
{
startLoadingAddCount
,
endLoadingSubCount
}
from
'./utils/requestLoading'
Vue
.
mixin
(
mixin
)
import
'./directive/vxe-table'
...
...
@@ -68,4 +67,5 @@ axios.get("./config.json")
store
,
render
:
h
=>
h
(
App
)
})
window
.
document
.
documentElement
.
setAttribute
(
"data-theme"
,
'blue'
);
})
\ No newline at end of file
...
...
src/permission.js
View file @
07b47dc
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-03-27 1
4:16:28
* @LastEditTime: 2023-03-27 1
7:26:19
*/
import
Vue
from
'vue'
import
router
from
"./router"
;
...
...
@@ -24,7 +24,6 @@ router.beforeEach(async (to, from, next) => {
localStorage
.
removeItem
(
"token"
);
next
();
}
else
{
window
.
document
.
documentElement
.
setAttribute
(
"data-theme"
,
'blue'
);
let
code
=
Vue
.
prototype
.
BASE_API
.
CODE
//判断token是否存在
const
hasToken
=
localStorage
.
getItem
(
"token"
);
...
...
src/styles/dialogBox.scss
View file @
07b47dc
// .dialogCon {
// background: #031A46;
// -webkit-box-shadow: inset 0px 0px 12px 0px #02d9fd;
// box-shadow: inset 0px 0px 12px 0px #02d9fd;
// border-radius: 0px 2px 2px 2px;
// border: 1px solid #6BC1FC;
// padding: 15px;
// }
...
...
src/styles/index.scss
View file @
07b47dc
@import
'./variables.scss'
;
@import
'./mixin.scss'
;
@import
'./transition.scss'
;
// @import './element-ui.scss';
/* CSS 初始化 */
html
,
...
...
@@ -430,16 +431,6 @@ aside {
border-radius
:
16px
;
color
:
#B06974
;
}
// 弹框中间区域样式
.dialogCon
{
background
:
#031A46
;
box-shadow
:
inset
0px
0px
12px
0px
#02D9FD
;
border-radius
:
0px
2px
2px
2px
;
border
:
1px
solid
#6BC1FC
;
padding
:
15px
;
}
// 通过 入库 样式
.adopt
,
.success
{
...
...
@@ -518,4 +509,4 @@ aside {
@font-face
{
font-family
:
AliBold
;
src
:
url('../image/font/Alibaba_PuHuiTi_2.0_55_Regular_85_Bold.ttf')
}
\ No newline at end of file
}
...
...
src/styles/jgElement-ui.scss
View file @
07b47dc
...
...
@@ -535,8 +535,12 @@ table td {
// 提示框
.el-message-box
{
background-color
:
#031a46
;
border
:
1px
solid
#5f82c7
;
background
:
#031A46
;
-webkit-box-shadow
:
inset
0px
0px
12px
0px
#02d9fd
;
box-shadow
:
inset
0px
0px
12px
0px
#02d9fd
;
border-radius
:
0px
2px
2px
2px
;
border
:
1px
solid
#6BC1FC
;
padding
:
15px
;
.el-message-box__title
{
color
:
white
;
...
...
src/styles/jgPublic.scss
View file @
07b47dc
...
...
@@ -190,6 +190,21 @@
}
}
.complex-header
{
.el-table--border
th
.el-table__cell
{
border-bottom
:
1px
solid
#458ACF
!
important
;
}
.el-table--border
.el-table__cell
{
border-right
:
1px
solid
#458ACF
!
important
;
}
.el-table--group
,
.el-table--border
{
border
:
1px
solid
#458ACF
!
important
;
}
}
.el-pagination.is-background
.btn-prev
,
.el-pagination.is-background
.btn-next
{
@extend
.bgc
;
...
...
@@ -228,49 +243,6 @@
text-align
:
right
;
}
// 修改弹框样式
.modifydialog
{
.el-dialog__header
{
text-align
:
center
;
margin-bottom
:
10px
;
.el-dialog__title
{
color
:
white
;
}
}
.el-form-item__label
{
color
:
white
;
}
.el-input__inner
{
background-color
:
#07388b
;
}
.el-input__inner
{
background
:
#07388b
;
border-radius
:
2px
;
border
:
1px
solid
#6bc1fc
;
}
.el-textarea__inner
{
background
:
#07388b
;
color
:
#fff
;
}
.el-form-item__label
{
color
:
#fff
;
}
.el-dialog__header
{
text-align
:
center
;
margin-bottom
:
10px
;
.el-dialog__title
{
color
:
white
;
}
}
}
// 角色管理人员菜单配置弹框样式
.roleconfiguration
{
...
...
@@ -1000,6 +972,39 @@
// 人员管理角色管理菜单管理修改新增弹框样式
.PersonnelDialog
{
.el-dialog__header
{
text-align
:
center
;
margin-bottom
:
10px
;
.el-dialog__title
{
color
:
white
;
}
}
.el-form-item__label
{
color
:
white
;
}
.el-input__inner
{
background-color
:
#07388b
;
}
.el-input__inner
{
background
:
#07388b
;
border-radius
:
2px
;
border
:
1px
solid
#6bc1fc
;
}
.el-textarea__inner
{
background
:
#07388b
;
color
:
#fff
;
}
.el-form-item__label
{
color
:
#fff
;
}
.el-dialog__header
{
.dialog_title
{
display
:
-
webkit-box
;
...
...
@@ -1029,4 +1034,72 @@
.selbig
{
width
:
500px
;
}
}
\ No newline at end of file
}
// 弹框中间区域样式
.dialogCon
{
background
:
#031A46
;
box-shadow
:
inset
0px
0px
12px
0px
#02D9FD
;
border-radius
:
0px
2px
2px
2px
;
border
:
1px
solid
#6BC1FC
;
padding
:
15px
;
}
// 修改密码界面样式
.informationpassword
{
margin
:
36px
200px
;
overflow-y
:
auto
;
.form-wrapper
{
padding
:
24px
120px
0px
;
.el-form-item
{
margin-bottom
:
24px
;
.el-form-item__label
{
color
:
#ffffff
;
}
.el-input
.el-input__inner
{
padding
:
0
8px
;
height
:
40px
;
line-height
:
40px
;
border
:
1px
solid
#6bc1fc
;
}
}
}
.bottom-wrapper
{
padding
:
32px
120px
24px
;
text-align
:
center
;
}
}
// 修改基本信息界面样式
.informationbase
{
margin
:
0
.1875rem
1
.0417rem
;
overflow-y
:
auto
;
.form-wrapper
{
padding
:
0px
120px
0px
;
.el-form-item
{
/
deep
/
.el-form-item__label
{
color
:
#ffffff
;
}
::v-deep
.el-input
.el-input__inner
{
padding
:
0
8px
;
height
:
40px
;
line-height
:
40px
;
border
:
1px
solid
#6bc1fc
;
}
}
.el-form-item--small.el-form-item
{
margin-bottom
:
16px
;
}
}
.bottom-wrapper
{
padding
:
0px
120px
0px
;
text-align
:
center
;
}
}
...
...
src/styles/sbPublic.scss
View file @
07b47dc
...
...
@@ -7,6 +7,7 @@
padding
:
0
7px
!
important
;
}
.from-clues
{
height
:
100%
;
width
:
100%
;
...
...
@@ -16,7 +17,7 @@
&
-header
{
width
:
100%
;
padding
:
7px
15px
1
0
px
15px
;
padding
:
7px
15px
1
5
px
15px
;
box-sizing
:
border-box
;
background-size
:
100%
100%
;
background
:
#FFFFFF
;
...
...
@@ -141,4 +142,753 @@
.cz
:focus
{
background-color
:
white
;
background-size
:
cover
;
}
\ No newline at end of file
}
// 角色管理人员菜单配置弹框样式
.roleconfiguration
{
.el-dialog__close
{
font-size
:
16px
!
important
;
}
}
// 面包屑
.breadcrumb
{
width
:
80%
;
text-indent
:
10px
;
background
:
url("~@/image/breadcrumb.png")
no-repeat
;
background-size
:
100%
100%
;
line-height
:
32px
;
height
:
32px
;
padding-left
:
35px
;
margin
:
8px
0
10px
6px
;
color
:
#CEF8FF
;
}
.el-icon-arrow-right
{
width
:
2px
;
position
:
relative
;
left
:
10px
;
color
:
#FFFFFF
;
}
.el-breadcrumb__inner
{
color
:
#CEF8FF
!
important
;
}
.breadcrumb1366
{
padding
:
10px
0
!
important
;
}
.cur-location
{
font-size
:
16px
;
color
:
white
;
line-height
:
40px
;
float
:
left
;
img
{
position
:
relative
;
top
:
3px
;
margin-right
:
4px
;
}
}
.el-breadcrumb__inner
a
,
.el-breadcrumb__inner.is-link
{
color
:
white
;
cursor
:
text
;
font-weight
:
normal
;
}
// .button {
// width: 76px;
// height: 32px;
// color: #ffffff;
// cursor: pointer;
// border: 0;
// font-size: 12px;
// }
// // 按钮样式
// .cx {
// background: url("../image/btn.png") no-repeat 0 -34px;
// background-size: cover;
// }
// .cx:hover {
// background: url("../image/btn.png") no-repeat 0 -34px;
// background-size: cover;
// color: white;
// }
// .cz {
// background: url("../image/btn.png") no-repeat 0 0;
// background-size: cover;
// }
// .cz:hover {
// background: url("../image/btn.png") no-repeat 0 0;
// background-size: cover;
// color: white;
// }
// .el-button:focus {
// background: none;
// }
// .cx:focus {
// background: url("../image/btn.png") no-repeat 0 -34px;
// background-size: cover;
// color: white;
// }
// .cz:focus {
// background: url("../image/btn.png") no-repeat 0 0;
// background-size: cover;
// color: white;
// }
// 监管弹框样式
.dialogBox
{
overflow
:
hidden
;
// min-height: 90vh;
.dialog_title
{
// display: flex;
// position: relative;
// font-size: 22px;
// top: -10px;
// width: 38%;
// height: 40px;
// margin-left: 28px;
// justify-content: center;
// white-space: nowrap;
b
{
// font-weight: 200;
// display: inline-block;
// position: relative;
font-size
:
24px
;
// top: -11px;
// width: 38%;
// height: 40px;
// margin-left: 28px;
// // @include flex-center;
display
:
flex
;
justify-content
:
center
;
}
}
.dialog_full
{
position
:
absolute
;
top
:
0
;
right
:
30px
;
}
.el-dialog__body
{
max-height
:
88vh
;
overflow-x
:
hidden
;
overflow-y
:
hidden
;
}
.dialog_footer
{
margin-bottom
:
8px
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.dialogBox-content
{
height
:
auto
}
.editDialogBox-box
{
border-radius
:
3px
;
border
:
1px
solid
#6BC1FC
;
.el-form-item__label
{
color
:
#000000
;
}
.el-form-item__content
{
color
:
#000000
;
}
}
.item-content-input
{
.el-input__inner
{
border
:
none
!
important
;
text-align
:
right
;
}
}
.regularHeight
{
display
:
flex
;
flex-direction
:
column
;
height
:
87vh
;
.editDialogBox-con
,
.JsonEditor
{
flex
:
1
;
height
:
100%
;
}
}
.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
:
#000000
;
border-radius
:
2px
;
border
:
1px
solid
#224C7C
;
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
:
#000307
;
cursor
:
not
-
allowed
;
white-space
:
nowrap
;
margin-right
:
5px
;
text-align
:
right
;
}
}
}
.el-textarea__inner
{
// border: 1px solid #224C7C;
// margin: 0 0 10px 0 !important;
// width: 100% !important;
// color: #dadde3 !important;
// background: transparent !important;
}
.el-input__inner
{
// border: 1px solid #224C7C !important;
// margin: 0 !important;
// width: 100% !important;
// color: #111111 !important;
// background: transparent !important;
}
.el-dialog__header
{
color
:
#070000
;
// height: 46px !important;
// width: 97%;
// margin: 0 auto;
// margin-top: 2px;
}
.el-dialog__body
{
padding-top
:
0
;
padding-bottom
:
0
;
// height: 95vh;
}
// .el-dialog__headerbtn {
// right: 40px;
// top: 33px;
// &:hover {
// // background: rgb(4, 172, 250);
// right: 40px;
// top: 33px;
// }
// }
.el-form-item
{
display
:
flex
;
width
:
100%
;
}
}
.contentCenter
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
calc
(
-50%
+
85px
)
,
-50%
);
}
.mainCenter
{
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
// 展开收起按钮位置
.el-input__suffix
{
right
:
10px
;
}
}
// 登簿日志弹出框
.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
{
text-align
:
center
;
margin-bottom
:
10px
;
.el-dialog__title
{
color
:
rgb
(
0
,
0
,
0
);
}
}
.el-form-item__label
{
color
:
rgb
(
0
,
0
,
0
);
}
.el-input__inner
{
// background-color: #07388b;
}
.el-input__inner
{
// background: #07388b;
// border-radius: 2px;
// border: 1px solid #6bc1fc;
}
.el-textarea__inner
{
// background: #07388b;
// color: rgb(0, 0, 0);
}
.el-form-item__label
{
color
:
rgb
(
2
,
0
,
0
);
}
.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
;
}
}
// 弹框中间区域样式
.dialogCon
{
background
:
#ffffff
;
border
:
1px
solid
#294ef1
;
padding
:
15px
;
}
// 修改密码界面样式
.informationpassword
{
margin
:
36px
200px
;
overflow-y
:
auto
;
.form-wrapper
{
padding
:
24px
120px
0px
;
.el-form-item
{
margin-bottom
:
24px
;
.el-form-item__label
{
color
:
#000000
;
}
.el-input
.el-input__inner
{
padding
:
0
8px
;
height
:
40px
;
line-height
:
40px
;
border
:
1px
solid
#6bc1fc
;
}
}
}
.bottom-wrapper
{
padding
:
32px
120px
24px
;
text-align
:
center
;
}
}
// 修改基本信息界面样式
.informationbase
{
margin
:
0
.1875rem
1
.0417rem
;
overflow-y
:
auto
;
.form-wrapper
{
padding
:
0px
120px
0px
;
.el-form-item
{
/
deep
/
.el-form-item__label
{
color
:
#000000
;
}
::v-deep
.el-input
.el-input__inner
{
padding
:
0
8px
;
height
:
40px
;
line-height
:
40px
;
border
:
1px
solid
#6bc1fc
;
}
}
.el-form-item--small.el-form-item
{
margin-bottom
:
16px
;
}
}
.bottom-wrapper
{
padding
:
0px
120px
0px
;
text-align
:
center
;
}
}
...
...
src/views/jktj/bsxljk/index.vue
View file @
07b47dc
...
...
@@ -4,19 +4,19 @@
<!-- 头部搜索 -->
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"100px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME == 'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
<el-col
:span=
"4"
>
<el-form-item
label=
"开始日期"
prop=
"startTime"
>
<el-form-item
label=
"开始日期"
prop=
"startTime"
class=
"d-flex"
>
<el-date-picker
type=
"date"
:clearable=
"false"
class=
"width100"
placeholder=
"开始日期"
:picker-options=
"pickerOptionsStart"
v-model=
"form.startTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"结束日期"
prop=
"endTime"
>
<el-form-item
label=
"结束日期"
prop=
"endTime"
class=
"d-flex"
>
<el-date-picker
class=
"width100"
:clearable=
"false"
type=
"date"
placeholder=
"结束日期"
:picker-options=
"pickerOptionsEnd"
v-model=
"form.endTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
@
change=
"endTimeChange"
></el-date-picker>
...
...
@@ -39,322 +39,322 @@
</div>
</
template
>
<
script
>
import
{
mapGetters
}
from
"vuex"
;
import
efficient
from
"@/api/efficient"
;
import
{
getFirstDayOfSeason
,
timeFormat
}
from
"@/utils/operation"
;
export
default
{
name
:
"jktj"
,
data
()
{
return
{
// 开始日期限制
pickerOptionsStart
:
{
disabledDate
:
(
time
)
=>
{
if
(
this
.
form
.
endTime
)
{
return
time
.
getTime
()
>
new
Date
(
this
.
form
.
endTime
).
getTime
();
}
},
},
// 结束日期限制
pickerOptionsEnd
:
{
disabledDate
:
(
time
)
=>
{
if
(
this
.
form
.
startTime
)
{
return
time
.
getTime
()
<
new
Date
(
this
.
form
.
startTime
).
getTime
();
}
},
import
{
mapGetters
}
from
"vuex"
;
import
efficient
from
"@/api/efficient"
;
import
{
getFirstDayOfSeason
,
timeFormat
}
from
"@/utils/operation"
;
export
default
{
name
:
"jktj"
,
data
()
{
return
{
// 开始日期限制
pickerOptionsStart
:
{
disabledDate
:
(
time
)
=>
{
if
(
this
.
form
.
endTime
)
{
return
time
.
getTime
()
>
new
Date
(
this
.
form
.
endTime
).
getTime
();
}
},
form
:
{
startTime
:
getFirstDayOfSeason
(),
endTime
:
timeFormat
(
new
Date
(),
true
),
},
// 结束日期限制
pickerOptionsEnd
:
{
disabledDate
:
(
time
)
=>
{
if
(
this
.
form
.
startTime
)
{
return
time
.
getTime
()
<
new
Date
(
this
.
form
.
startTime
).
getTime
();
}
},
// 搜索表单
pieChartsData
:
[],
};
},
form
:
{
startTime
:
getFirstDayOfSeason
(),
endTime
:
timeFormat
(
new
Date
(),
true
),
},
// 搜索表单
pieChartsData
:
[],
};
},
created
()
{
},
mounted
()
{
this
.
getProcessCounts
();
},
computed
:
{
...
mapGetters
([
"dicData"
]),
},
methods
:
{
endTimeChange
(
val
)
{
this
.
form
.
endTime
=
timeFormat
(
new
Date
(
val
),
true
);
},
created
()
{
},
mounted
()
{
this
.
getProcessCounts
();
//查询各区县办件数量
async
getProcessCounts
()
{
this
.
pieChartsData
=
[];
let
{
result
:
res
}
=
await
efficient
.
getProcessCounts
(
this
.
form
.
startTime
,
this
.
form
.
endTime
);
//获取图表配置项需要的数据
res
.
length
>
0
&&
res
.
forEach
((
item
)
=>
{
this
.
pieChartsData
.
push
({
//登记数量
value
:
item
.
counts
,
//登记数量
name
:
item
.
recTypeName
,
//登记类型代码
groupId
:
item
.
recType
,
});
});
res
.
length
&&
this
.
$nextTick
(()
=>
{
// 初始化图表
this
.
echartInit
();
this
.
barChartInit
(
res
[
0
].
recType
);
});
},
computed
:
{
...
mapGetters
([
"dicData"
]),
// 重置
resetForm
()
{
this
.
form
=
{
startTime
:
getFirstDayOfSeason
(),
endTime
:
timeFormat
(
new
Date
(),
true
),
};
this
.
getProcessCounts
();
},
methods
:
{
endTimeChange
(
val
)
{
this
.
form
.
endTime
=
timeFormat
(
new
Date
(
val
),
true
);
},
//查询各区县办件数量
async
getProcessCounts
()
{
this
.
pieChartsData
=
[];
let
{
result
:
res
}
=
await
efficient
.
getProcessCounts
(
this
.
form
.
startTime
,
this
.
form
.
endTime
);
//获取图表配置项需要的数据
res
.
length
>
0
&&
res
.
forEach
((
item
)
=>
{
this
.
pieChartsData
.
push
({
//登记数量
value
:
item
.
counts
,
//登记数量
name
:
item
.
recTypeName
,
//登记类型代码
groupId
:
item
.
recType
,
});
});
res
.
length
&&
this
.
$nextTick
(()
=>
{
// 初始化图表
this
.
echartInit
();
this
.
barChartInit
(
res
[
0
].
recType
);
});
},
// 重置
resetForm
()
{
this
.
form
=
{
startTime
:
getFirstDayOfSeason
(),
endTime
:
timeFormat
(
new
Date
(),
true
),
};
this
.
getProcessCounts
();
},
//玫瑰图初始化
echartInit
()
{
let
_this
=
this
;
// 基于准备好的dom,初始化echarts实例
let
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
"myChart"
));
// 绘制图表
myChart
.
setOption
({
legend
:
{
bottom
:
"2%"
,
left
:
"center"
,
textStyle
:
{
color
:
"#fff"
,
},
},
tooltip
:
{
trigger
:
"item"
,
formatter
:
"{b} : {c}"
,
//玫瑰图初始化
echartInit
()
{
let
_this
=
this
;
// 基于准备好的dom,初始化echarts实例
let
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
"myChart"
));
// 绘制图表
myChart
.
setOption
({
legend
:
{
bottom
:
"2%"
,
left
:
"center"
,
textStyle
:
{
color
:
"#fff"
,
},
label
:
{
color
:
'inherit'
,
},
series
:
[
{
name
:
"各业务类型办理数量"
,
type
:
"pie"
,
radius
:
[
0
,
250
],
center
:
[
"50%"
,
"45%"
],
roseType
:
"area"
,
itemStyle
:
{
borderRadius
:
8
,
},
data
:
this
.
pieChartsData
,
},
tooltip
:
{
trigger
:
"item"
,
formatter
:
"{b} : {c}"
,
},
label
:
{
color
:
'inherit'
,
},
series
:
[
{
name
:
"各业务类型办理数量"
,
type
:
"pie"
,
radius
:
[
0
,
250
],
center
:
[
"50%"
,
"45%"
],
roseType
:
"area"
,
itemStyle
:
{
borderRadius
:
8
,
},
],
});
//添加点击事件
myChart
.
on
(
"click"
,
function
(
param
)
{
_this
.
barChartInit
(
param
.
data
.
groupId
);
});
//默认选中第一个
let
index
=
1
;
myChart
.
dispatchAction
({
type
:
"highlight"
,
seriesIndex
:
0
,
dataIndex
:
0
,
});
myChart
.
on
(
"mouseover"
,
function
(
e
)
{
if
(
e
.
dataIndex
!=
index
)
{
myChart
.
dispatchAction
({
type
:
"downplay"
,
seriesIndex
:
0
,
dataIndex
:
index
,
});
}
});
myChart
.
on
(
"mouseout"
,
function
(
e
)
{
index
=
e
.
dataIndex
;
data
:
this
.
pieChartsData
,
},
],
});
//添加点击事件
myChart
.
on
(
"click"
,
function
(
param
)
{
_this
.
barChartInit
(
param
.
data
.
groupId
);
});
//默认选中第一个
let
index
=
1
;
myChart
.
dispatchAction
({
type
:
"highlight"
,
seriesIndex
:
0
,
dataIndex
:
0
,
});
myChart
.
on
(
"mouseover"
,
function
(
e
)
{
if
(
e
.
dataIndex
!=
index
)
{
myChart
.
dispatchAction
({
type
:
"
highlight
"
,
type
:
"
downplay
"
,
seriesIndex
:
0
,
dataIndex
:
e
.
dataI
ndex
,
dataIndex
:
i
ndex
,
});
}
});
myChart
.
on
(
"mouseout"
,
function
(
e
)
{
index
=
e
.
dataIndex
;
myChart
.
dispatchAction
({
type
:
"highlight"
,
seriesIndex
:
0
,
dataIndex
:
e
.
dataIndex
,
});
},
//柱图初始化
async
barChartInit
(
recType
)
{
//请求recType对应业务的各区县数据
let
{
result
:
res
}
=
await
efficient
.
getProcessDays
(
recType
,
this
.
form
.
startTime
,
this
.
form
.
endTime
);
//行政区数组
let
xzqArr
=
[];
this
.
dicData
[
"A20"
].
forEach
((
item
)
=>
{
xzqArr
.
push
(
item
.
DNAME
);
let
tempArr
=
res
.
filter
((
i
)
=>
{
return
i
.
qxdm
==
item
.
DCODE
;
});
if
(
tempArr
.
length
)
{
item
.
avgDay
=
tempArr
[
0
].
avgDay
;
item
.
maxDay
=
tempArr
[
0
].
maxDay
;
item
.
minDay
=
tempArr
[
0
].
minDay
;
}
else
{
item
.
avgDay
=
0
;
item
.
maxDay
=
0
;
item
.
minDay
=
0
;
}
});
},
//柱图初始化
async
barChartInit
(
recType
)
{
//请求recType对应业务的各区县数据
let
{
result
:
res
}
=
await
efficient
.
getProcessDays
(
recType
,
this
.
form
.
startTime
,
this
.
form
.
endTime
);
//行政区数组
let
xzqArr
=
[];
this
.
dicData
[
"A20"
].
forEach
((
item
)
=>
{
xzqArr
.
push
(
item
.
DNAME
);
let
tempArr
=
res
.
filter
((
i
)
=>
{
return
i
.
qxdm
==
item
.
DCODE
;
});
//补全无数据行政区后的结果数组
let
dealArr
=
[...
this
.
dicData
[
"A20"
]];
let
myChartBar
=
this
.
$echarts
.
init
(
document
.
getElementById
(
"myChart-bar"
)
);
myChartBar
.
setOption
({
color
:
[
"#00bdb1"
,
"#ff6e6e"
,
"#3f99ff"
,
"#ffaf48"
],
tooltip
:
{
if
(
tempArr
.
length
)
{
item
.
avgDay
=
tempArr
[
0
].
avgDay
;
item
.
maxDay
=
tempArr
[
0
].
maxDay
;
item
.
minDay
=
tempArr
[
0
].
minDay
;
}
else
{
item
.
avgDay
=
0
;
item
.
maxDay
=
0
;
item
.
minDay
=
0
;
}
});
//补全无数据行政区后的结果数组
let
dealArr
=
[...
this
.
dicData
[
"A20"
]];
let
myChartBar
=
this
.
$echarts
.
init
(
document
.
getElementById
(
"myChart-bar"
)
);
myChartBar
.
setOption
({
color
:
[
"#00bdb1"
,
"#ff6e6e"
,
"#3f99ff"
,
"#ffaf48"
],
tooltip
:
{
show
:
true
,
trigger
:
"axis"
,
textStyle
:
{
fontSize
:
16
,
// 字体大小
},
extraCssText
:
"width:220px;height:160px;"
,
// 背景色
},
grid
:
{
top
:
120
,
},
legend
:
{
data
:
[
"最短用时"
,
"平均用时"
,
"最长用时"
],
top
:
20
,
textStyle
:
{
show
:
true
,
trigger
:
"axis"
,
textStyle
:
{
fontSize
:
16
,
// 字体大小
},
extraCssText
:
"width:220px;height:160px;"
,
// 背景色
color
:
"#fff"
,
fontSize
:
"16"
,
},
grid
:
{
top
:
120
,
},
xAxis
:
[
{
type
:
"category"
,
data
:
xzqArr
,
axisLabel
:
{
interval
:
0
,
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
},
},
legend
:
{
data
:
[
"最短用时"
,
"平均用时"
,
"最长用时"
],
top
:
20
,
textStyle
:
{
show
:
true
,
],
yAxis
:
[
{
type
:
"value"
,
name
:
"单位:天"
,
nameTextStyle
:
{
color
:
"#fff"
,
fontSize
:
"16"
,
},
},
xAxis
:
[
{
type
:
"category"
,
data
:
xzqArr
,
axisLabel
:
{
interval
:
0
,
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
},
},
],
yAxis
:
[
{
type
:
"value"
,
name
:
"单位:天"
,
nameTextStyle
:
{
axisLabel
:
{
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
axisLabel
:
{
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
},
},
],
label
:
{
color
:
'inherit'
,
},
series
:
[
{
type
:
"bar"
,
//显示数值
itemStyle
:
{
normal
:
{
label
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方显示
],
label
:
{
color
:
'inherit'
,
},
series
:
[
{
type
:
"bar"
,
//显示数值
itemStyle
:
{
normal
:
{
label
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方显示
},
},
},
barMaxWidth
:
"60"
,
name
:
"最短用时"
,
data
:
dealArr
.
map
((
item
)
=>
item
.
minDay
),
},
{
type
:
"bar"
,
//显示数值
itemStyle
:
{
normal
:
{
label
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方显示
barMaxWidth
:
"60"
,
name
:
"最短用时"
,
data
:
dealArr
.
map
((
item
)
=>
item
.
minDay
),
},
{
type
:
"bar"
,
//显示数值
itemStyle
:
{
normal
:
{
label
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方显示
},
},
},
barMaxWidth
:
"60"
,
name
:
"平均用时"
,
data
:
dealArr
.
map
((
item
)
=>
item
.
avgDay
),
},
{
type
:
"bar"
,
//显示数值
itemStyle
:
{
normal
:
{
label
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方显示
barMaxWidth
:
"60"
,
name
:
"平均用时"
,
data
:
dealArr
.
map
((
item
)
=>
item
.
avgDay
),
},
{
type
:
"bar"
,
//显示数值
itemStyle
:
{
normal
:
{
label
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方显示
},
},
},
barMaxWidth
:
"60"
,
name
:
"最长用时"
,
data
:
dealArr
.
map
((
item
)
=>
item
.
maxDay
),
},
],
});
},
barMaxWidth
:
"60"
,
name
:
"最长用时"
,
data
:
dealArr
.
map
((
item
)
=>
item
.
maxDay
),
},
],
});
},
};
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
.jktjDetail
{
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
.rows
{
margin-left
:
100px
;
}
.jktjDetail
{
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
.center
{
line-height
:
50vh
;
text-align
:
center
;
}
.rows
{
margin-left
:
100px
;
}
.echarts-box
{
display
:
flex
;
justify-content
:
center
;
.center
{
line-height
:
50vh
;
text-align
:
center
;
}
.chart
{
width
:
40%
;
height
:
100%
;
float
:
left
;
}
.echarts-box
{
display
:
flex
;
justify-content
:
center
;
.chart-bar
{
width
:
60%
;
}
.chart
{
width
:
40%
;
height
:
100%
;
float
:
left
;
}
.form-clues-content
{
flex
:
1
;
height
:
100%
;
color
:
#b6b5b5
;
.chart-bar
{
width
:
60%
;
}
}
.form-clues-content
{
flex
:
1
;
height
:
100%
;
color
:
#b6b5b5
;
}
}
</
style
>
...
...
src/views/jktj/cgltj/index.vue
View file @
07b47dc
...
...
@@ -3,13 +3,13 @@
<div
class=
"jktjDetail form-clues"
>
<!-- 头部搜索 -->
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"
10
0px"
>
<el-form-item>
<el-form
ref=
"form"
:model=
"form"
label-width=
"
8
0px"
>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
<el-col
:span=
"4"
>
<el-form-item
label=
"行政区"
>
<el-form-item
label=
"行政区"
class=
"d-flex"
>
<el-select
v-model=
"form.qxdm"
class=
"width100"
clearable
placeholder=
"行政区"
>
<el-option
v-for=
"item in dicData['A20']"
:key=
"item.DCODE"
:label=
"item.DNAME"
:value=
"item.DCODE"
>
</el-option>
...
...
@@ -17,14 +17,14 @@
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"开始日期"
prop=
"startTime"
>
<el-form-item
label=
"开始日期"
prop=
"startTime"
class=
"d-flex"
>
<el-date-picker
type=
"date"
:clearable=
"false"
class=
"width100"
placeholder=
"开始日期"
:picker-options=
"pickerOptionsStart"
v-model=
"form.startTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"结束日期"
prop=
"endTime"
>
<el-form-item
label=
"结束日期"
prop=
"endTime"
class=
"d-flex"
>
<el-date-picker
type=
"date"
:clearable=
"false"
class=
"width100"
placeholder=
"结束日期"
:picker-options=
"pickerOptionsEnd"
v-model=
"form.endTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
@
change=
"endTimeChange"
></el-date-picker>
...
...
@@ -47,274 +47,274 @@
</
template
>
<
script
>
import
{
mapGetters
}
from
"vuex"
;
import
{
getFirstDayOfSeason
,
timeFormat
}
from
"@/utils/operation"
;
import
business
from
"@/api/business"
;
export
default
{
name
:
"jktj"
,
data
()
{
return
{
// 开始日期限制
pickerOptionsStart
:
{
disabledDate
:
(
time
)
=>
{
if
(
this
.
form
.
endTime
)
{
return
time
.
getTime
()
>
new
Date
(
this
.
form
.
endTime
).
getTime
();
}
},
},
// 结束日期限制
pickerOptionsEnd
:
{
disabledDate
:
(
time
)
=>
{
if
(
this
.
form
.
startTime
)
{
return
time
.
getTime
()
<
new
Date
(
this
.
form
.
startTime
).
getTime
();
}
},
import
{
mapGetters
}
from
"vuex"
;
import
{
getFirstDayOfSeason
,
timeFormat
}
from
"@/utils/operation"
;
import
business
from
"@/api/business"
;
export
default
{
name
:
"jktj"
,
data
()
{
return
{
// 开始日期限制
pickerOptionsStart
:
{
disabledDate
:
(
time
)
=>
{
if
(
this
.
form
.
endTime
)
{
return
time
.
getTime
()
>
new
Date
(
this
.
form
.
endTime
).
getTime
();
}
},
recTypeArr
:
[]
,
chartData
:
[],
// 搜索表单
form
:
{
startTime
:
getFirstDayOfSeason
(),
endTime
:
timeFormat
(
new
Date
(),
true
),
qxdm
:
""
,
}
,
// 结束日期限制
pickerOptionsEnd
:
{
disabledDate
:
(
time
)
=>
{
if
(
this
.
form
.
startTime
)
{
return
time
.
getTime
()
<
new
Date
(
this
.
form
.
startTime
).
getTime
();
}
},
interval
:
50
};
},
mounted
()
{
// 查询成功率
this
.
getSuucessRate
();
},
computed
:
{
...
mapGetters
([
"dicData"
]),
},
methods
:
{
endTimeChange
(
val
)
{
this
.
form
.
endTime
=
timeFormat
(
new
Date
(
val
),
true
)
},
async
getSuucessRate
()
{
this
.
recTypeArr
=
[];
this
.
chartData
=
[];
let
{
result
:
res
}
=
await
business
.
getSuucessRate
(
this
.
form
.
startTime
,
this
.
form
.
endTime
,
this
.
form
.
qxdm
);
this
.
chartData
=
res
;
recTypeArr
:
[],
chartData
:
[],
// 搜索表单
form
:
{
startTime
:
getFirstDayOfSeason
(),
endTime
:
timeFormat
(
new
Date
(),
true
),
qxdm
:
""
,
},
interval
:
50
};
},
mounted
()
{
// 查询成功率
this
.
getSuucessRate
();
},
computed
:
{
...
mapGetters
([
"dicData"
]),
},
methods
:
{
endTimeChange
(
val
)
{
this
.
form
.
endTime
=
timeFormat
(
new
Date
(
val
),
true
)
},
async
getSuucessRate
()
{
this
.
recTypeArr
=
[];
this
.
chartData
=
[];
let
{
result
:
res
}
=
await
business
.
getSuucessRate
(
this
.
form
.
startTime
,
this
.
form
.
endTime
,
this
.
form
.
qxdm
);
this
.
chartData
=
res
;
let
maxData
=
Math
.
max
.
apply
(
Math
,
this
.
chartData
.
map
(
item
=>
{
return
item
.
failure
}))
this
.
interval
=
Math
.
ceil
(
maxData
/
10
)
//行政区代码过滤
res
.
length
>
0
&&
res
.
forEach
((
item
)
=>
{
this
.
recTypeArr
.
push
(
item
.
recTypeName
);
});
this
.
$nextTick
(()
=>
{
// 初始化图表
this
.
chartData
.
length
&&
this
.
echartInit
();
let
maxData
=
Math
.
max
.
apply
(
Math
,
this
.
chartData
.
map
(
item
=>
{
return
item
.
failure
}))
this
.
interval
=
Math
.
ceil
(
maxData
/
10
)
//行政区代码过滤
res
.
length
>
0
&&
res
.
forEach
((
item
)
=>
{
this
.
recTypeArr
.
push
(
item
.
recTypeName
);
});
},
// 重置
resetForm
()
{
this
.
form
=
{
startTime
:
getFirstDayOfSeason
(),
endTime
:
timeFormat
(
new
Date
(),
true
),
qxdm
:
""
,
};
this
.
getSuucessRate
();
},
echartInit
()
{
let
_this
=
this
;
// 基于准备好的dom,初始化echarts实例
let
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
"myChart"
));
// 绘制图表
myChart
.
setOption
({
color
:
[
"#13E5FF"
,
"#C99E68"
,
"#E873B2"
,
"#ffaf48"
],
tooltip
:
{
trigger
:
"axis"
,
formatter
:
'{b}<br/>{a0}:{c0}个<br/>{a1}:{c1}个<br/>{a2}:{c2}%'
,
axisPointer
:
{
type
:
"cross"
,
crossStyle
:
{
color
:
"#fff"
,
},
},
},
legend
:
{
data
:
[
"成功"
,
"失败"
,
"成功率"
],
top
:
'16'
,
textStyle
:
{
show
:
true
,
this
.
$nextTick
(()
=>
{
// 初始化图表
this
.
chartData
.
length
&&
this
.
echartInit
();
});
},
// 重置
resetForm
()
{
this
.
form
=
{
startTime
:
getFirstDayOfSeason
(),
endTime
:
timeFormat
(
new
Date
(),
true
),
qxdm
:
""
,
};
this
.
getSuucessRate
();
},
echartInit
()
{
let
_this
=
this
;
// 基于准备好的dom,初始化echarts实例
let
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
"myChart"
));
// 绘制图表
myChart
.
setOption
({
color
:
[
"#13E5FF"
,
"#C99E68"
,
"#E873B2"
,
"#ffaf48"
],
tooltip
:
{
trigger
:
"axis"
,
formatter
:
'{b}<br/>{a0}:{c0}个<br/>{a1}:{c1}个<br/>{a2}:{c2}%'
,
axisPointer
:
{
type
:
"cross"
,
crossStyle
:
{
color
:
"#fff"
,
fontSize
:
"16"
,
},
},
label
:
{
color
:
'inherit'
,
},
legend
:
{
data
:
[
"成功"
,
"失败"
,
"成功率"
],
top
:
'16'
,
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
xAxis
:
[
{
type
:
"category"
,
data
:
_this
.
recTypeArr
,
axisPointer
:
{
type
:
"shadow"
,
},
label
:
{
color
:
'inherit'
,
},
xAxis
:
[
{
type
:
"category"
,
data
:
_this
.
recTypeArr
,
axisPointer
:
{
type
:
"shadow"
,
},
axisLabel
:
{
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
axisLabel
:
{
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
formatter
:
function
(
val
)
{
let
c
=
document
.
createElement
(
"canvas"
);
const
ctx
=
c
.
getContext
(
"2d"
);
const
arr
=
val
.
split
(
""
);
arr
.
map
((
item
)
=>
ctx
.
measureText
(
item
).
width
)
.
reduce
((
pre
,
next
,
index
)
=>
{
const
nLen
=
pre
+
next
;
if
(
nLen
>
40
)
{
arr
[
index
-
1
]
+=
"..."
;
return
next
;
}
else
{
return
nLen
;
}
});
c
=
null
;
let
ind
=
arr
.
findIndex
((
i
)
=>
{
return
i
.
indexOf
(
"..."
)
>
-
1
;
formatter
:
function
(
val
)
{
let
c
=
document
.
createElement
(
"canvas"
);
const
ctx
=
c
.
getContext
(
"2d"
);
const
arr
=
val
.
split
(
""
);
arr
.
map
((
item
)
=>
ctx
.
measureText
(
item
).
width
)
.
reduce
((
pre
,
next
,
index
)
=>
{
const
nLen
=
pre
+
next
;
if
(
nLen
>
40
)
{
arr
[
index
-
1
]
+=
"..."
;
return
next
;
}
else
{
return
nLen
;
}
});
let
newArr
=
ind
>
0
?
arr
.
splice
(
0
,
ind
+
1
)
:
arr
;
return
newArr
.
join
(
""
);
},
c
=
null
;
let
ind
=
arr
.
findIndex
((
i
)
=>
{
return
i
.
indexOf
(
"..."
)
>
-
1
;
});
let
newArr
=
ind
>
0
?
arr
.
splice
(
0
,
ind
+
1
)
:
arr
;
return
newArr
.
join
(
""
);
},
},
],
yAxis
:
[
{
type
:
"value"
,
name
:
"数量/个"
,
nameTextStyle
:
{
},
],
yAxis
:
[
{
type
:
"value"
,
name
:
"数量/个"
,
nameTextStyle
:
{
color
:
"#fff"
,
fontSize
:
"16"
,
},
// interval: this.interval,
axisLabel
:
{
formatter
:
"{value}"
,
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
// interval: this.interval,
axisLabel
:
{
formatter
:
"{value}"
,
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
},
},
{
type
:
"value"
,
name
:
"成功率"
,
nameTextStyle
:
{
},
{
type
:
"value"
,
name
:
"成功率"
,
nameTextStyle
:
{
color
:
"#fff"
,
fontSize
:
"16"
,
},
splitNumber
:
2
,
axisLabel
:
{
formatter
:
"{value} %"
,
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
splitNumber
:
2
,
axisLabel
:
{
formatter
:
"{value} %"
,
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
},
},
]
,
series
:
[
{
name
:
"成功"
,
type
:
"bar
"
,
//显示数值
itemStyle
:
{
normal
:
{
labe
l
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方
显示
},
}
,
],
series
:
[
{
name
:
"成功
"
,
type
:
"bar"
,
//显示数值
itemStyle
:
{
norma
l
:
{
label
:
{
show
:
true
,
//开启
显示
position
:
"top"
,
//在上方显示
},
},
barMaxWidth
:
'60'
,
data
:
this
.
chartData
.
map
((
item
)
=>
{
return
item
.
success
;
}),
},
{
name
:
"失败"
,
type
:
"bar"
,
//显示数值
itemStyle
:
{
normal
:
{
label
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方显示
},
barMaxWidth
:
'60'
,
data
:
this
.
chartData
.
map
((
item
)
=>
{
return
item
.
success
;
}),
},
{
name
:
"失败"
,
type
:
"bar"
,
//显示数值
itemStyle
:
{
normal
:
{
label
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方显示
},
},
barMaxWidth
:
'60'
,
data
:
this
.
chartData
.
map
((
item
)
=>
{
return
item
.
failure
;
}),
},
{
name
:
"成功率"
,
//显示数值
itemStyle
:
{
normal
:
{
label
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方显示
},
barMaxWidth
:
'60'
,
data
:
this
.
chartData
.
map
((
item
)
=>
{
return
item
.
failure
;
}),
},
{
name
:
"成功率"
,
//显示数值
itemStyle
:
{
normal
:
{
label
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方显示
},
},
type
:
"line"
,
barMaxWidth
:
'60'
,
yAxisIndex
:
1
,
data
:
this
.
chartData
.
map
((
item
)
=>
{
return
item
.
rate
;
}),
},
],
});
},
type
:
"line"
,
barMaxWidth
:
'60'
,
yAxisIndex
:
1
,
data
:
this
.
chartData
.
map
((
item
)
=>
{
return
item
.
rate
;
}),
},
],
});
},
};
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
.jktjDetail
{
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
.rows
{
margin-left
:
100px
;
}
.jktjDetail
{
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
.center
{
line-height
:
50vh
;
text-align
:
center
;
color
:
#b6b5b5
;
}
.rows
{
margin-left
:
100px
;
}
.echarts-box
{
display
:
flex
;
justify-content
:
center
;
height
:
500px
;
.center
{
line-height
:
50vh
;
text-align
:
center
;
color
:
#b6b5b5
;
}
.chart
{
width
:
100%
;
height
:
100%
;
}
}
.echarts-box
{
display
:
flex
;
justify-content
:
center
;
height
:
500px
;
.
form-clues-conten
t
{
flex
:
1
;
.
char
t
{
width
:
100%
;
height
:
100%
;
}
}
.form-clues-content
{
flex
:
1
;
height
:
100%
;
}
}
</
style
>
...
...
src/views/jktj/ywltj/index.vue
View file @
07b47dc
...
...
@@ -4,12 +4,12 @@
<!-- 头部搜索 -->
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"100px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME == 'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
<el-col
:span=
"4"
>
<el-form-item
label=
"行政区"
>
<el-form-item
label=
"行政区"
class=
"d-flex"
>
<el-select
v-model=
"form.qxdm"
class=
"width100"
clearable
placeholder=
"行政区"
>
<el-option
v-for=
"item in dicData['A20']"
:key=
"item.DCODE"
:label=
"item.DNAME"
:value=
"item.DCODE"
>
</el-option>
...
...
@@ -17,14 +17,14 @@
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"开始日期"
>
<el-form-item
label=
"开始日期"
class=
"d-flex"
>
<el-date-picker
class=
"width100"
:clearable=
"false"
type=
"date"
placeholder=
"开始日期"
:picker-options=
"pickerOptionsStart"
v-model=
"form.startTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"结束日期"
>
<el-form-item
label=
"结束日期"
class=
"d-flex"
>
<el-date-picker
class=
"width100"
:clearable=
"false"
type=
"date"
placeholder=
"结束日期"
:picker-options=
"pickerOptionsEnd"
v-model=
"form.endTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
@
change=
"endTimeChange"
></el-date-picker>
...
...
@@ -47,202 +47,202 @@
</
template
>
<
script
>
import
{
mapGetters
}
from
"vuex"
;
import
efficient
from
"@/api/efficient"
;
import
{
getFirstDayOfSeason
,
timeFormat
}
from
"@/utils/operation"
;
export
default
{
name
:
"jktj"
,
data
()
{
return
{
// 开始日期限制
pickerOptionsStart
:
{
disabledDate
:
(
time
)
=>
{
if
(
this
.
form
.
endTime
)
{
return
time
.
getTime
()
>
new
Date
(
this
.
form
.
endTime
).
getTime
();
}
},
},
// 结束日期限制
pickerOptionsEnd
:
{
disabledDate
:
(
time
)
=>
{
if
(
this
.
form
.
startTime
)
{
return
time
.
getTime
()
<
new
Date
(
this
.
form
.
startTime
).
getTime
();
}
},
import
{
mapGetters
}
from
"vuex"
;
import
efficient
from
"@/api/efficient"
;
import
{
getFirstDayOfSeason
,
timeFormat
}
from
"@/utils/operation"
;
export
default
{
name
:
"jktj"
,
data
()
{
return
{
// 开始日期限制
pickerOptionsStart
:
{
disabledDate
:
(
time
)
=>
{
if
(
this
.
form
.
endTime
)
{
return
time
.
getTime
()
>
new
Date
(
this
.
form
.
endTime
).
getTime
();
}
},
// 搜索表单
valueTime
:
""
,
// 搜索表单
form
:
{
startTime
:
getFirstDayOfSeason
(),
endTime
:
timeFormat
(
new
Date
(),
true
),
qxdm
:
""
,
},
// 结束日期限制
pickerOptionsEnd
:
{
disabledDate
:
(
time
)
=>
{
if
(
this
.
form
.
startTime
)
{
return
time
.
getTime
()
<
new
Date
(
this
.
form
.
startTime
).
getTime
();
}
},
chartData
:
[]
};
},
// 搜索表单
valueTime
:
""
,
// 搜索表单
form
:
{
startTime
:
getFirstDayOfSeason
(),
endTime
:
timeFormat
(
new
Date
(),
true
),
qxdm
:
""
,
},
chartData
:
[]
};
},
mounted
()
{
// 查询业务量
this
.
getProcessCounts
();
},
computed
:
{
...
mapGetters
([
"dicData"
]),
},
methods
:
{
endTimeChange
(
val
)
{
this
.
form
.
endTime
=
timeFormat
(
new
Date
(
val
),
true
)
},
mounted
()
{
// 查询业务量
this
.
getProcessCounts
();
async
getProcessCounts
()
{
this
.
chartData
=
[];
let
{
result
:
res
}
=
await
efficient
.
getProcessCounts
(
this
.
form
.
startTime
,
this
.
form
.
endTime
,
this
.
form
.
qxdm
);
//获取图表配置项需要的数据
this
.
chartData
=
res
;
this
.
$nextTick
(()
=>
{
// 初始化图表
this
.
chartData
.
length
&&
this
.
echartInit
(
this
.
chartData
)
});
},
computed
:
{
...
mapGetters
([
"dicData"
]),
// 重置
resetForm
()
{
this
.
form
=
{
startTime
:
getFirstDayOfSeason
(),
endTime
:
timeFormat
(
new
Date
(),
true
),
qxdm
:
""
};
this
.
getProcessCounts
();
},
methods
:
{
endTimeChange
(
val
)
{
this
.
form
.
endTime
=
timeFormat
(
new
Date
(
val
),
true
)
},
async
getProcessCounts
()
{
this
.
chartData
=
[];
let
{
result
:
res
}
=
await
efficient
.
getProcessCounts
(
this
.
form
.
startTime
,
this
.
form
.
endTime
,
this
.
form
.
qxdm
);
//获取图表配置项需要的数据
this
.
chartData
=
res
;
this
.
$nextTick
(()
=>
{
// 初始化图表
this
.
chartData
.
length
&&
this
.
echartInit
(
this
.
chartData
)
});
},
// 重置
resetForm
()
{
this
.
form
=
{
startTime
:
getFirstDayOfSeason
(),
endTime
:
timeFormat
(
new
Date
(),
true
),
qxdm
:
""
};
this
.
getProcessCounts
();
},
//图表渲染
echartInit
(
chartArr
)
{
// 基于准备好的dom,初始化echarts实例
let
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
"myChart"
));
// 绘制图表
myChart
.
setOption
({
color
:
[
"#13E5FF"
],
tooltip
:
{
show
:
true
,
trigger
:
"axis"
,
textStyle
:
{
fontSize
:
16
,
// 字体大小
},
},
grid
:
{
top
:
120
,
bottom
:
100
,
},
label
:
{
color
:
'inherit'
,
//图表渲染
echartInit
(
chartArr
)
{
// 基于准备好的dom,初始化echarts实例
let
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
"myChart"
));
// 绘制图表
myChart
.
setOption
({
color
:
[
"#13E5FF"
],
tooltip
:
{
show
:
true
,
trigger
:
"axis"
,
textStyle
:
{
fontSize
:
16
,
// 字体大小
},
xAxis
:
[
{
type
:
"category"
,
data
:
chartArr
.
map
(
item
=>
item
.
recTypeName
),
axisLabel
:
{
interval
:
0
,
rotate
:
40
,
formatter
:
function
(
val
)
{
let
c
=
document
.
createElement
(
"canvas"
);
const
ctx
=
c
.
getContext
(
"2d"
);
const
arr
=
val
.
split
(
""
);
arr
.
map
((
item
)
=>
ctx
.
measureText
(
item
).
width
)
.
reduce
((
pre
,
next
,
index
)
=>
{
const
nLen
=
pre
+
next
;
if
(
nLen
>
60
)
{
arr
[
index
-
1
]
+=
"..."
;
return
next
;
}
else
{
return
nLen
;
}
});
c
=
null
;
let
ind
=
arr
.
findIndex
((
i
)
=>
{
return
i
.
indexOf
(
"..."
)
>
-
1
;
},
grid
:
{
top
:
120
,
bottom
:
100
,
},
label
:
{
color
:
'inherit'
,
},
xAxis
:
[
{
type
:
"category"
,
data
:
chartArr
.
map
(
item
=>
item
.
recTypeName
),
axisLabel
:
{
interval
:
0
,
rotate
:
40
,
formatter
:
function
(
val
)
{
let
c
=
document
.
createElement
(
"canvas"
);
const
ctx
=
c
.
getContext
(
"2d"
);
const
arr
=
val
.
split
(
""
);
arr
.
map
((
item
)
=>
ctx
.
measureText
(
item
).
width
)
.
reduce
((
pre
,
next
,
index
)
=>
{
const
nLen
=
pre
+
next
;
if
(
nLen
>
60
)
{
arr
[
index
-
1
]
+=
"..."
;
return
next
;
}
else
{
return
nLen
;
}
});
let
newArr
=
ind
>
0
?
arr
.
splice
(
0
,
ind
+
1
)
:
arr
;
return
newArr
.
join
(
""
);
},
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
c
=
null
;
let
ind
=
arr
.
findIndex
((
i
)
=>
{
return
i
.
indexOf
(
"..."
)
>
-
1
;
});
let
newArr
=
ind
>
0
?
arr
.
splice
(
0
,
ind
+
1
)
:
arr
;
return
newArr
.
join
(
""
);
},
},
],
yAxis
:
[
{
type
:
"value"
,
name
:
"数量/个"
,
nameTextStyle
:
{
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
axisLabel
:
{
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
},
},
],
yAxis
:
[
{
type
:
"value"
,
name
:
"数量/个"
,
nameTextStyle
:
{
color
:
"#fff"
,
fontSize
:
"16"
,
},
axisLabel
:
{
textStyle
:
{
show
:
true
,
color
:
"#fff"
,
fontSize
:
"16"
,
},
},
],
},
],
series
:
[
{
type
:
"bar"
,
//显示数值
itemStyle
:
{
normal
:
{
label
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方显示
},
series
:
[
{
type
:
"bar"
,
//显示数值
itemStyle
:
{
normal
:
{
label
:
{
show
:
true
,
//开启显示
position
:
"top"
,
//在上方显示
},
},
barMaxWidth
:
'60'
,
data
:
chartArr
.
map
(
item
=>
item
.
counts
),
},
],
});
},
barMaxWidth
:
'60'
,
data
:
chartArr
.
map
(
item
=>
item
.
counts
),
},
],
});
},
};
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
.jktjDetail
{
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
.rows
{
margin-left
:
100px
;
}
.jktjDetail
{
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
.center
{
line-height
:
50vh
;
text-align
:
center
;
color
:
#b6b5b5
;
}
.rows
{
margin-left
:
100px
;
}
.echarts-box
{
display
:
flex
;
justify-content
:
center
;
height
:
500px
;
.center
{
line-height
:
50vh
;
text-align
:
center
;
color
:
#b6b5b5
;
}
.chart
{
width
:
100%
;
height
:
100%
;
}
}
.echarts-box
{
display
:
flex
;
justify-content
:
center
;
height
:
500px
;
.
form-clues-conten
t
{
flex
:
1
;
.
char
t
{
width
:
100%
;
height
:
100%
;
}
}
.form-clues-content
{
flex
:
1
;
height
:
100%
;
}
}
</
style
>
...
...
src/views/jsbwcx/index.vue
View file @
07b47dc
...
...
@@ -4,7 +4,7 @@
<!-- 头部搜索 -->
<div
class=
"from-clues-header"
>
<el-form
ref=
"ruleForm"
:model=
"form"
label-width=
"100px"
>
<el-form-item
v-if=
"BASE_API.THEME
==
'jg'"
>
<el-form-item
v-if=
"BASE_API.THEME
==
'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
src/views/statistics/css/index.scss
View file @
07b47dc
/
deep
/
.el-table--border
th
.el-table__cell
{
border-bottom
:
1px
solid
#458ACF
!
important
;
}
/
deep
/
.el-table--border
.el-table__cell
{
border-right
:
1px
solid
#458ACF
!
important
;
}
/
deep
/
.el-table
thead
.is-group
th
.el-table__cell
{
background-color
:
transparent
!
important
;
}
...
...
@@ -17,9 +9,4 @@
.export-excel-wrapper
{
display
:
inline-block
;
}
/
deep
/
.el-table--group
,
.el-table--border
{
border
:
1px
solid
#458ACF
!
important
;
}
\ No newline at end of file
...
...
src/views/statistics/dataReceiveQuality/index.vue
View file @
07b47dc
...
...
@@ -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"
>
...
...
@@ -32,7 +32,7 @@
</el-form>
</div>
<!-- 列表区域 -->
<div
class=
"from-clues-content"
>
<div
class=
"from-clues-content
complex-header
"
>
<lb-table
ref=
"table"
:header-cell-style=
"headerStyle1"
:calcHeight=
"200"
:pagination=
"false"
:column=
"tableData.columns"
:data=
"tableData.data"
>
</lb-table>
...
...
@@ -171,6 +171,7 @@ export default {
</
script
>
<
style
scoped
lang=
"scss"
>
@import
"../css/index.scss"
;
/
deep
/
th
.el-table__cell
{
height
:
0
!important
;
}
...
...
src/views/statistics/nullTermRatio/index.vue
View file @
07b47dc
...
...
@@ -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"
>
...
...
@@ -33,10 +33,9 @@
</el-form>
</div>
<!-- 列表区域 -->
<div
class=
"from-clues-content"
>
<div
class=
"from-clues-content
complex-header
"
>
<lb-table
ref=
"table"
:pagination=
"false"
:calcHeight=
"200"
:column=
"tableData.columns"
:data=
"tableData.data"
>
</lb-table>
<down-lb-table
ref=
"table"
v-show=
"false"
:id=
"'mytable'"
:downExcel=
"true"
:pagination=
"false"
:column=
"tableData.columns"
:data=
"tableData.data"
:downTitle=
"downTitle"
>
</down-lb-table>
...
...
src/views/statistics/registerBookQuality/index.vue
View file @
07b47dc
...
...
@@ -2,7 +2,7 @@
* @Author: yangwei
* @Date: 2023-02-17 16:32:50
* @LastEditors: Please set LastEditors
* @LastEditTime: 2023-03-
15 10:42:2
1
* @LastEditTime: 2023-03-
27 14:58:5
1
* @FilePath: \bdcjg-web\src\views\statistics\registerBookQuality\index.vue
* @Description:
*
...
...
@@ -14,7 +14,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"
>
...
...
@@ -42,7 +42,7 @@
</el-form>
</div>
<!-- 列表区域 -->
<div
class=
"from-clues-content"
>
<div
class=
"from-clues-content
complex-header
"
>
<lb-table
ref=
"table"
:pagination=
"false"
:border=
"true"
:calcHeight=
"200"
:header-cell-style=
"headerStyle"
:column=
"tableData.columns"
:data=
"tableData.data"
>
</lb-table>
...
...
src/views/system/components/addTask.vue
View file @
07b47dc
...
...
@@ -42,136 +42,136 @@
</
template
>
<
script
>
import
sjsbTask
from
'@/api/sjsbTask.js'
export
default
{
props
:
{
value
:
{
type
:
Boolean
,
default
:
false
},
taskData
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
myValue
:
this
.
value
,
ruleForm
:
{
jobName
:
''
,
cronExpression
:
''
,
beanName
:
''
,
methodName
:
''
,
methodParams
:
''
,
remark
:
''
},
rules
:
{
jobName
:
[
{
required
:
true
,
message
:
'任务名'
,
trigger
:
'blur'
}
],
cronExpression
:
[
{
required
:
true
,
message
:
'cron表达式'
,
trigger
:
'blur'
}
],
beanName
:
[
{
required
:
true
,
message
:
'任务类名'
,
trigger
:
'blur'
}
],
methodName
:
[
{
required
:
true
,
message
:
'任务方法名'
,
trigger
:
'blur'
}
]
},
message
:
''
}
},
methods
:
{
handleSubmit
()
{
let
_this
=
this
this
.
$refs
[
'ruleForm'
].
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
if
(
!
_this
.
taskData
)
{
try
{
let
res
=
await
sjsbTask
.
sjsbTaskSave
(
_this
.
ruleForm
)
if
(
res
.
code
==
200
)
{
_this
.
loading
=
false
_this
.
$message
({
message
:
res
.
message
,
type
:
'success'
})
_this
.
handleClose
()
_this
.
$parent
.
featchData
()
}
}
catch
(
error
)
{
_this
.
message
=
error
_this
.
$refs
.
msg
.
messageShow
()
}
}
else
{
try
{
let
res
=
await
sjsbTask
.
updateCron
(
_this
.
ruleForm
)
if
(
res
.
code
==
200
)
{
_this
.
$message
({
message
:
res
.
message
,
type
:
'success'
})
_this
.
handleClose
()
_this
.
$parent
.
featchData
()
}
}
catch
(
error
)
{
_this
.
message
=
error
_this
.
$refs
.
msg
.
messageShow
()
}
}
}
else
{
this
.
$message
(
'请检查表单完整性'
)
return
false
;
}
})
},
handleClose
()
{
this
.
$emit
(
"input"
,
false
);
}
},
watch
:
{
value
(
val
)
{
this
.
myValue
=
val
import
sjsbTask
from
'@/api/sjsbTask.js'
export
default
{
props
:
{
value
:
{
type
:
Boolean
,
default
:
false
},
taskData
:
{
type
:
Object
,
default
:
null
}
},
taskData
(
val
)
{
if
(
val
!=
null
)
{
this
.
ruleForm
=
val
}
else
{
this
.
ruleForm
=
{
data
()
{
return
{
myValue
:
this
.
value
,
ruleForm
:
{
jobName
:
''
,
cronExpression
:
''
,
beanName
:
''
,
methodName
:
''
,
methodParams
:
''
,
remark
:
''
},
rules
:
{
jobName
:
[
{
required
:
true
,
message
:
'任务名'
,
trigger
:
'blur'
}
],
cronExpression
:
[
{
required
:
true
,
message
:
'cron表达式'
,
trigger
:
'blur'
}
],
beanName
:
[
{
required
:
true
,
message
:
'任务类名'
,
trigger
:
'blur'
}
],
methodName
:
[
{
required
:
true
,
message
:
'任务方法名'
,
trigger
:
'blur'
}
]
},
message
:
''
}
},
methods
:
{
handleSubmit
()
{
let
_this
=
this
this
.
$refs
[
'ruleForm'
].
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
if
(
!
_this
.
taskData
)
{
try
{
let
res
=
await
sjsbTask
.
sjsbTaskSave
(
_this
.
ruleForm
)
if
(
res
.
code
==
200
)
{
_this
.
loading
=
false
_this
.
$message
({
message
:
res
.
message
,
type
:
'success'
})
_this
.
handleClose
()
_this
.
$parent
.
featchData
()
}
}
catch
(
error
)
{
_this
.
message
=
error
_this
.
$refs
.
msg
.
messageShow
()
}
}
else
{
try
{
let
res
=
await
sjsbTask
.
updateCron
(
_this
.
ruleForm
)
if
(
res
.
code
==
200
)
{
_this
.
$message
({
message
:
res
.
message
,
type
:
'success'
})
_this
.
handleClose
()
_this
.
$parent
.
featchData
()
}
}
catch
(
error
)
{
_this
.
message
=
error
_this
.
$refs
.
msg
.
messageShow
()
}
}
}
else
{
this
.
$message
(
'请检查表单完整性'
)
return
false
;
}
})
},
handleClose
()
{
this
.
$emit
(
"input"
,
false
);
}
},
watch
:
{
value
(
val
)
{
this
.
myValue
=
val
},
taskData
(
val
)
{
if
(
val
!=
null
)
{
this
.
ruleForm
=
val
}
else
{
this
.
ruleForm
=
{
jobName
:
''
,
cronExpression
:
''
,
beanName
:
''
,
methodName
:
''
,
methodParams
:
''
,
remark
:
''
}
}
}
}
}
}
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
/
deep
/
.dialogBox
.dialog_title
{
margin-left
:
5px
!important
;
}
//
/
deep
/
.dialogBox
.dialog_title
{
//
margin-left
:
5px
!important
;
//
}
/
deep
/
.el-dialog__headerbtn
{
margin-top
:
-12px
;
}
//
/
deep
/
.el-dialog__headerbtn
{
//
margin-top
:
-12px
;
//
}
.editDialogBox-box
{
margin
:
14px
18px
30px
18px
!important
}
//
.editDialogBox-box
{
//
margin
:
14px
18px
30px
18px
!important
//
}
/
deep
/
.el-form-item__label
{
color
:
#fff
;
}
//
/
deep
/
.el-form-item__label
{
//
color
:
#fff
;
//
}
/
deep
/
.el-form-item
{
color
:
#fff
;
margin-bottom
:
10px
;
}
//
/
deep
/
.el-form-item
{
//
color
:
#fff
;
//
margin-bottom
:
10px
;
//
}
/
deep
/
.el-input__inner
{
background-color
:
transparent
;
border
:
1px
solid
#458ACF
;
}
//
/
deep
/
.el-input__inner
{
//
background-color
:
transparent
;
//
border
:
1px
solid
#458ACF
;
//
}
</
style
>
...
...
src/views/system/dictionaries/components/editDialog.vue
View file @
07b47dc
...
...
@@ -25,372 +25,337 @@
</
template
>
<
script
>
import
{
getUuid
,
judgeSort
,
realMove
,
findParents
,
removeTreeListItem
,
}
from
"@/utils/operation"
;
import
{
editDictNode
,
getChildDictList
}
from
"@/api/dict"
;
export
default
{
props
:
{
value
:
{
type
:
Boolean
,
default
:
false
},
details
:
{
type
:
Object
,
default
:
{},
},
},
data
()
{
return
{
key
:
0
,
myValue
:
this
.
value
,
keyList
:
[],
ruleForm
:
{
DCODE
:
""
,
DNAME
:
""
,
import
{
getUuid
,
judgeSort
,
realMove
,
findParents
,
removeTreeListItem
,
}
from
"@/utils/operation"
;
import
{
editDictNode
,
getChildDictList
}
from
"@/api/dict"
;
export
default
{
props
:
{
value
:
{
type
:
Boolean
,
default
:
false
},
details
:
{
type
:
Object
,
default
:
{},
},
column
:
[],
columns
:
[
{
width
:
"70"
,
renderHeader
:
(
h
,
scope
)
=>
{
return
(
<
div
>
{
this
.
details
.
ISENABLE
===
"0"
?
(
<
span
>
序号
<
/span
>
)
:
(
<
i
class
=
"el-icon-plus"
onClick
=
{()
=>
{
this
.
handleAdd
();
}}
style
=
"cursor:pointer;color:#409EFF"
><
/i
>
)}
<
/div
>
);
},
render
:
(
h
,
scope
)
=>
{
return
<
span
>
{
scope
.
row
.
index
}
<
/span>
;
},
},
data
()
{
return
{
key
:
0
,
myValue
:
this
.
value
,
keyList
:
[],
ruleForm
:
{
DCODE
:
""
,
DNAME
:
""
,
},
{
prop
:
"DCODE"
,
width
:
"100"
,
label
:
"字典项编码"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
input
placeholder
=
"字典项编码"
v
-
show
=
{
scope
.
row
.
codeShow
}
v
-
fo
value
=
{
scope
.
row
[
scope
.
column
.
property
]}
onFocus
=
{()
=>
{
this
.
itemShowFalse
();
scope
.
row
.
codeShow
=
true
;
}}
onInput
=
{(
val
)
=>
{
scope
.
row
[
scope
.
column
.
property
]
=
val
;
this
.
itemShowFalse
();
scope
.
row
.
codeShow
=
true
;
}}
maxlength
=
"8"
><
/el-input
>
column
:
[],
columns
:
[
{
width
:
"70"
,
renderHeader
:
(
h
,
scope
)
=>
{
return
(
<
div
>
{
this
.
details
.
ISENABLE
===
"0"
?
(
<
span
>
序号
<
/span
>
)
:
(
<
i
class
=
"el-icon-plus"
onClick
=
{()
=>
{
this
.
handleAdd
();
}}
style
=
"cursor:pointer;color:#409EFF"
><
/i
>
)}
<
/div
>
);
},
render
:
(
h
,
scope
)
=>
{
return
<
span
>
{
scope
.
row
.
index
}
<
/span>
;
},
},
{
prop
:
"DCODE"
,
width
:
"100"
,
label
:
"字典项编码"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
input
placeholder
=
"字典项编码"
v
-
show
=
{
scope
.
row
.
codeShow
}
v
-
fo
value
=
{
scope
.
row
[
scope
.
column
.
property
]}
onFocus
=
{()
=>
{
this
.
itemShowFalse
();
scope
.
row
.
codeShow
=
true
;
}}
onInput
=
{(
val
)
=>
{
scope
.
row
[
scope
.
column
.
property
]
=
val
;
this
.
itemShowFalse
();
scope
.
row
.
codeShow
=
true
;
}}
maxlength
=
"8"
><
/el-input
>
<
el
-
input
placeholder
=
"字典项编码"
v
-
show
=
{
!
scope
.
row
.
codeShow
}
value
=
{
scope
.
row
[
scope
.
column
.
property
]}
onFocus
=
{()
=>
{
this
.
itemShowFalse
();
scope
.
row
.
codeShow
=
true
;
}}
onInput
=
{(
val
)
=>
{
scope
.
row
[
scope
.
column
.
property
]
=
val
;
this
.
itemShowFalse
();
scope
.
row
.
codeShow
=
true
;
}}
maxlength
=
"8"
><
/el-input
>
<
/div
>
);
<
el
-
input
placeholder
=
"字典项编码"
v
-
show
=
{
!
scope
.
row
.
codeShow
}
value
=
{
scope
.
row
[
scope
.
column
.
property
]}
onFocus
=
{()
=>
{
this
.
itemShowFalse
();
scope
.
row
.
codeShow
=
true
;
}}
onInput
=
{(
val
)
=>
{
scope
.
row
[
scope
.
column
.
property
]
=
val
;
this
.
itemShowFalse
();
scope
.
row
.
codeShow
=
true
;
}}
maxlength
=
"8"
><
/el-input
>
<
/div
>
);
},
},
},
{
prop
:
"DNAME"
,
label
:
"字典项名称"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
input
placeholder
=
"字典项编码"
v
-
show
=
{
scope
.
row
.
nameShow
}
v
-
fo
value
=
{
scope
.
row
[
scope
.
column
.
property
]}
onFocus
=
{()
=>
{
this
.
itemShowFalse
();
scope
.
row
.
nameShow
=
true
;
}}
onInput
=
{(
val
)
=>
{
scope
.
row
[
scope
.
column
.
property
]
=
val
;
this
.
itemShowFalse
();
scope
.
row
.
codeShow
=
true
;
}}
><
/el-input
>
{
prop
:
"DNAME"
,
label
:
"字典项名称"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
input
placeholder
=
"字典项编码"
v
-
show
=
{
scope
.
row
.
nameShow
}
v
-
fo
value
=
{
scope
.
row
[
scope
.
column
.
property
]}
onFocus
=
{()
=>
{
this
.
itemShowFalse
();
scope
.
row
.
nameShow
=
true
;
}}
onInput
=
{(
val
)
=>
{
scope
.
row
[
scope
.
column
.
property
]
=
val
;
this
.
itemShowFalse
();
scope
.
row
.
codeShow
=
true
;
}}
><
/el-input
>
<
el
-
input
placeholder
=
"字典项名称"
v
-
show
=
{
!
scope
.
row
.
nameShow
}
value
=
{
scope
.
row
[
scope
.
column
.
property
]}
onFocus
=
{()
=>
{
this
.
itemShowFalse
();
scope
.
row
.
nameShow
=
true
;
}}
onInput
=
{(
val
)
=>
{
scope
.
row
[
scope
.
column
.
property
]
=
val
;
this
.
itemShowFalse
();
scope
.
row
.
codeShow
=
true
;
}}
><
/el-input
>
<
/div
>
);
<
el
-
input
placeholder
=
"字典项名称"
v
-
show
=
{
!
scope
.
row
.
nameShow
}
value
=
{
scope
.
row
[
scope
.
column
.
property
]}
onFocus
=
{()
=>
{
this
.
itemShowFalse
();
scope
.
row
.
nameShow
=
true
;
}}
onInput
=
{(
val
)
=>
{
scope
.
row
[
scope
.
column
.
property
]
=
val
;
this
.
itemShowFalse
();
scope
.
row
.
codeShow
=
true
;
}}
><
/el-input
>
<
/div
>
);
},
},
},
{
width
:
"130
"
,
label
:
"移动"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
button
type
=
"text"
disabled
=
{
scope
.
row
.
isTop
}
onClick
=
{()
=>
{
this
.
moveUpward
(
scope
.
$index
,
scope
.
row
);
}}
>
上移
<
/el-button
>
<
el
-
button
type
=
"text"
disabled
=
{
scope
.
row
.
isBottom
}
onClick
=
{()
=>
{
this
.
moveDown
(
scope
.
$index
,
scope
.
row
);
}}
>
下移
<
/
el-button
>
<
/div
>
);
{
width
:
"130"
,
label
:
"移动
"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
button
type
=
"text"
disabled
=
{
scope
.
row
.
isTop
}
onClick
=
{()
=>
{
this
.
moveUpward
(
scope
.
$index
,
scope
.
row
);
}}
>
上移
<
/el-button
>
<
el
-
button
type
=
"text"
disabled
=
{
scope
.
row
.
isBottom
}
onClick
=
{()
=>
{
this
.
moveDown
(
scope
.
$index
,
scope
.
row
);
}}
>
下移
<
/el-button
>
<
/
div
>
);
},
},
},
{
width
:
"100
"
,
label
:
"操作"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
button
type
=
"text
"
style
=
"margin-right:10px"
onClick
=
{()
=>
{
this
.
handleAddSubordinate
(
scope
.
row
);
}}
>
增加下级
<
/el-button
>
<
el
-
button
type
=
"text
"
style
=
"margin-left:0"
onClick
=
{()
=>
{
this
.
handleMinus
(
scope
.
$index
,
scope
.
row
);
}}
>
删除
<
/
el-button
>
<
/div
>
)
{
width
:
"100"
,
label
:
"操作
"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
div
>
<
el
-
button
type
=
"text"
style
=
"margin-right:10px
"
onClick
=
{()
=>
{
this
.
handleAddSubordinate
(
scope
.
row
);
}}
>
增加下级
<
/el-button
>
<
el
-
button
type
=
"text"
style
=
"margin-left:0
"
onClick
=
{()
=>
{
this
.
handleMinus
(
scope
.
$index
,
scope
.
row
);
}}
>
删除
<
/el-button
>
<
/
div
>
)
}
}
}
],
tableData
:
[]
}
},
watch
:
{
value
(
val
)
{
this
.
myValue
=
val
],
tableData
:
[]
}
},
"details.dictid"
:
{
handler
:
function
(
newValue
)
{
if
(
!
this
.
value
)
return
;
getChildDictList
(
newValue
).
then
((
res
)
=>
{
this
.
$endLoading
();
let
{
result
}
=
res
;
this
.
tableData
=
result
?
result
:
[];
this
.
tableData
.
forEach
((
item
,
index
)
=>
{
item
.
index
=
index
+
1
;
watch
:
{
value
(
val
)
{
this
.
myValue
=
val
},
"details.dictid"
:
{
handler
:
function
(
newValue
)
{
if
(
!
this
.
value
)
return
;
getChildDictList
(
newValue
).
then
((
res
)
=>
{
this
.
$endLoading
();
let
{
result
}
=
res
;
this
.
tableData
=
result
?
result
:
[];
this
.
tableData
.
forEach
((
item
,
index
)
=>
{
item
.
index
=
index
+
1
;
})
this
.
tableData
=
judgeSort
(
this
.
tableData
)
})
this
.
tableData
=
judgeSort
(
this
.
tableData
)
})
},
immediate
:
true
},
immediate
:
true
},
details
:
{
handler
:
function
(
newValue
)
{
if
(
newValue
.
ISENABLE
==
2
)
{
this
.
column
=
this
.
columns
.
slice
(
0
,
6
)
;
}
else
{
this
.
column
=
this
.
columns
;
}
this
.
ruleForm
=
newValue
.
rowData
;
this
.
addIndexes
();
this
.
key
++
;
details
:
{
handler
:
function
(
newValue
)
{
if
(
newValue
.
ISENABLE
==
2
)
{
this
.
column
=
this
.
columns
.
slice
(
0
,
6
);
}
else
{
this
.
column
=
this
.
columns
;
}
this
.
ruleForm
=
newValue
.
rowData
;
this
.
addIndexes
();
this
.
key
++
;
},
deep
:
true
,
},
deep
:
true
,
},
},
methods
:
{
// 添加索引
addIndexes
(
data
=
this
.
tableData
,
isAdd
=
true
)
{
data
.
forEach
((
item
,
index
)
=>
{
if
(
index
==
0
)
{
item
.
codeShow
=
true
;
item
.
nameShow
=
false
;
item
.
normcodeShow
=
false
;
item
.
normnameShow
=
false
;
}
else
{
methods
:
{
// 添加索引
addIndexes
(
data
=
this
.
tableData
,
isAdd
=
true
)
{
data
.
forEach
((
item
,
index
)
=>
{
if
(
index
==
0
)
{
item
.
codeShow
=
true
;
item
.
nameShow
=
false
;
item
.
normcodeShow
=
false
;
item
.
normnameShow
=
false
;
}
else
{
item
.
codeShow
=
false
;
item
.
nameShow
=
false
;
item
.
normcodeShow
=
false
;
item
.
normnameShow
=
false
;
}
if
(
isAdd
)
{
item
.
index
=
index
+
1
;
}
if
(
item
.
children
)
{
this
.
addIndexes
(
item
.
children
,
false
);
}
});
},
itemShowFalse
()
{
this
.
tableData
.
forEach
((
item
,
index
)
=>
{
item
.
codeShow
=
false
;
item
.
nameShow
=
false
;
item
.
normcodeShow
=
false
;
item
.
normnameShow
=
false
;
});
},
handleMinus
(
index
,
row
)
{
removeTreeListItem
(
this
.
tableData
,
row
.
dictid
,
'dictid'
);
this
.
tableData
=
judgeSort
(
this
.
tableData
)
this
.
key
++
;
},
handleSubmit
()
{
editDictNode
({
dictid
:
this
.
details
.
rowData
.
dictid
,
typeid
:
this
.
details
.
rowData
.
TYPEID
,
children
:
this
.
tableData
,
}).
then
((
res
)
=>
{
if
(
res
.
code
===
200
)
{
this
.
$message
({
message
:
"修改成功"
,
type
:
"success"
,
});
this
.
$emit
(
"input"
,
false
);
}
});
},
closeDialog
()
{
this
.
$emit
(
"input"
,
false
);
},
// 增加下级
handleAddSubordinate
(
row
)
{
if
(
!
row
.
children
)
{
row
.
children
=
[];
}
if
(
isAdd
)
{
item
.
index
=
index
+
1
;
}
if
(
item
.
children
)
{
this
.
addIndexes
(
item
.
children
,
false
);
}
});
},
itemShowFalse
()
{
this
.
tableData
.
forEach
((
item
,
index
)
=>
{
item
.
codeShow
=
false
;
item
.
nameShow
=
false
;
item
.
normcodeShow
=
false
;
item
.
normnameShow
=
false
;
});
},
handleMinus
(
index
,
row
)
{
removeTreeListItem
(
this
.
tableData
,
row
.
dictid
,
'dictid'
);
this
.
tableData
=
judgeSort
(
this
.
tableData
)
this
.
key
++
;
},
handleSubmit
()
{
editDictNode
({
dictid
:
this
.
details
.
rowData
.
dictid
,
typeid
:
this
.
details
.
rowData
.
TYPEID
,
children
:
this
.
tableData
,
}).
then
((
res
)
=>
{
if
(
res
.
code
===
200
)
{
this
.
$message
({
message
:
"修改成功"
,
type
:
"success"
,
});
this
.
$emit
(
"input"
,
false
);
}
});
},
closeDialog
()
{
this
.
$emit
(
"input"
,
false
);
},
// 增加下级
handleAddSubordinate
(
row
)
{
if
(
!
row
.
children
)
{
row
.
children
=
[];
}
row
.
children
.
push
({
DCODE
:
""
,
DNAME
:
""
,
ISENABLE
:
"1"
,
NORMCODE
:
""
,
NORMNAME
:
""
,
dictid
:
getUuid
(
32
),
typeid
:
row
.
typeid
,
});
this
.
keyList
=
[];
this
.
keyList
.
push
(
row
.
dictid
);
},
// 增加
handleAdd
()
{
this
.
$nextTick
(()
=>
{
let
container
=
this
.
$el
.
querySelector
(
".el-table__body-wrapper"
);
container
.
scrollTop
=
container
.
scrollHeight
;
});
this
.
tableData
.
push
({
DCODE
:
""
,
DNAME
:
""
,
ISENABLE
:
"1"
,
normcode
:
""
,
normname
:
""
,
dictid
:
getUuid
(
32
),
typeid
:
this
.
ruleForm
.
typeid
,
});
this
.
addIndexes
();
this
.
tableData
=
judgeSort
(
this
.
tableData
)
this
.
key
++
;
},
// 上移下移
moveUpward
(
index
,
row
)
{
realMove
(
row
.
dictid
,
"UP"
,
this
.
tableData
);
let
id
=
findParents
(
this
.
tableData
,
row
.
dictid
);
this
.
keyList
=
id
;
this
.
key
++
;
},
moveDown
(
index
,
row
)
{
realMove
(
row
.
dictid
,
"DOWN"
,
this
.
tableData
);
let
id
=
findParents
(
this
.
tableData
,
row
.
dictid
);
this
.
keyList
=
id
;
this
.
key
++
;
row
.
children
.
push
({
DCODE
:
""
,
DNAME
:
""
,
ISENABLE
:
"1"
,
NORMCODE
:
""
,
NORMNAME
:
""
,
dictid
:
getUuid
(
32
),
typeid
:
row
.
typeid
,
});
this
.
keyList
=
[];
this
.
keyList
.
push
(
row
.
dictid
);
},
// 增加
handleAdd
()
{
this
.
$nextTick
(()
=>
{
let
container
=
this
.
$el
.
querySelector
(
".el-table__body-wrapper"
);
container
.
scrollTop
=
container
.
scrollHeight
;
});
this
.
tableData
.
push
({
DCODE
:
""
,
DNAME
:
""
,
ISENABLE
:
"1"
,
normcode
:
""
,
normname
:
""
,
dictid
:
getUuid
(
32
),
typeid
:
this
.
ruleForm
.
typeid
,
});
this
.
addIndexes
();
this
.
tableData
=
judgeSort
(
this
.
tableData
)
this
.
key
++
;
},
// 上移下移
moveUpward
(
index
,
row
)
{
realMove
(
row
.
dictid
,
"UP"
,
this
.
tableData
);
let
id
=
findParents
(
this
.
tableData
,
row
.
dictid
);
this
.
keyList
=
id
;
this
.
key
++
;
},
moveDown
(
index
,
row
)
{
realMove
(
row
.
dictid
,
"DOWN"
,
this
.
tableData
);
let
id
=
findParents
(
this
.
tableData
,
row
.
dictid
);
this
.
keyList
=
id
;
this
.
key
++
;
},
},
},
};
};
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
/
deep
/
.el-radio
{
margin-right
:
5px
!important
;
display
:
flex
;
}
/
deep
/
.el-radio__label
{
display
:
block
;
}
/
deep
/
.el-form-item__label
{
color
:
#fff
;
}
/
deep
/
.el-form-item
{
color
:
#fff
;
margin-bottom
:
10px
;
}
/
deep
/
.el-radio-group
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.editDialogBox-box
{
margin
:
14px
18px
30px
18px
!important
}
.opacity-input
{
/deep/
.el-input__inner
{
background-color
:
transparent
;
border
:
1px
solid
#458ACF
;
}
}
</
style
>
...
...
src/views/system/dictionaries/dictionaries.vue
View file @
07b47dc
...
...
@@ -6,7 +6,7 @@
<el-form-item
v-if=
"BASE_API.THEME == 'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
:gutter=
"20"
>
<el-row
:gutter=
"20"
class=
"mb-5"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"字典类型编码"
>
<el-input
v-model=
"ruleForm.dcode"
@
clear=
"queryClick"
clearable
placeholder=
"字典类型编码"
></el-input>
...
...
@@ -36,101 +36,101 @@
</div>
</
template
>
<
script
>
import
table
from
"@/utils/mixin/table"
import
{
getQlxxDictList
,
refreshDictCache
}
from
"@/api/dict.js"
import
{
datas
,
sendThis
}
from
"./dictionaries"
import
editDialog
from
"./components/editDialog.vue"
export
default
{
name
:
"djbcx"
,
components
:
{
editDialog
},
mixins
:
[
table
],
mounted
()
{
sendThis
(
this
);
this
.
queryClick
()
},
data
()
{
return
{
isDialog
:
false
,
details
:
{
dictid
:
''
,
isenable
:
1
,
rowData
:
{}
},
ruleForm
:
{
dcode
:
''
,
dname
:
''
},
tableData
:
{
total
:
0
,
columns
:
datas
.
columns
().
concat
([
{
label
:
"操作"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
el
-
button
type
=
"text"
class
=
'successColor'
onClick
=
{()
=>
{
this
.
editClick
(
scope
.
row
,
1
)
}}
>
修改
<
/el-button
>
)
}
}
]),
data
:
[]
}
}
},
methods
:
{
// 初始化数据
queryClick
()
{
getQlxxDictList
({
...
this
.
ruleForm
,
...
this
.
pageData
}).
then
(
res
=>
{
let
{
records
,
total
}
=
res
.
result
this
.
tableData
.
data
=
records
?
records
:
[]
this
.
tableData
.
total
=
total
?
total
:
0
})
import
table
from
"@/utils/mixin/table"
import
{
getQlxxDictList
,
refreshDictCache
}
from
"@/api/dict.js"
import
{
datas
,
sendThis
}
from
"./dictionaries"
import
editDialog
from
"./components/editDialog.vue"
export
default
{
name
:
"djbcx"
,
components
:
{
editDialog
},
handleSearch
()
{
this
.
pageData
.
currentPage
=
1
this
.
tableData
.
data
=
[]
mixins
:
[
table
],
mounted
()
{
sendThis
(
this
);
this
.
queryClick
()
},
handleRefresh
()
{
this
.
$confirm
(
'是否确认刷新'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
refreshDictCache
().
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
let
refech
=
this
.
$store
.
dispatch
(
'dict/generateDic'
)
this
.
$endLoading
()
refech
&&
this
.
$message
({
message
:
'刷新成功'
,
type
:
'success'
});
}
else
{
this
.
$message
.
error
(
res
.
message
)
}
data
()
{
return
{
isDialog
:
false
,
details
:
{
dictid
:
''
,
isenable
:
1
,
rowData
:
{}
},
ruleForm
:
{
dcode
:
''
,
dname
:
''
},
tableData
:
{
total
:
0
,
columns
:
datas
.
columns
().
concat
([
{
label
:
"操作"
,
render
:
(
h
,
scope
)
=>
{
return
(
<
el
-
button
type
=
"text"
class
=
'successColor'
onClick
=
{()
=>
{
this
.
editClick
(
scope
.
row
,
1
)
}}
>
修改
<
/el-button
>
)
}
}
]),
data
:
[]
}
}
},
methods
:
{
// 初始化数据
queryClick
()
{
getQlxxDictList
({
...
this
.
ruleForm
,
...
this
.
pageData
}).
then
(
res
=>
{
let
{
records
,
total
}
=
res
.
result
this
.
tableData
.
data
=
records
?
records
:
[]
this
.
tableData
.
total
=
total
?
total
:
0
})
}).
catch
(()
=>
{
this
.
$message
({
type
:
'info'
,
message
:
'取消刷新'
},
handleSearch
()
{
this
.
pageData
.
currentPage
=
1
this
.
tableData
.
data
=
[]
this
.
queryClick
()
},
handleRefresh
()
{
this
.
$confirm
(
'是否确认刷新'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
refreshDictCache
().
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
let
refech
=
this
.
$store
.
dispatch
(
'dict/generateDic'
)
this
.
$endLoading
()
refech
&&
this
.
$message
({
message
:
'刷新成功'
,
type
:
'success'
});
}
else
{
this
.
$message
.
error
(
res
.
message
)
}
})
}).
catch
(()
=>
{
this
.
$message
({
type
:
'info'
,
message
:
'取消刷新'
});
});
}
);
},
editClick
(
row
,
val
)
{
this
.
details
.
rowData
=
row
this
.
details
.
isenable
=
val
this
.
details
.
dictid
=
row
.
dictid
this
.
isDialog
=
true
}
,
editClick
(
row
,
val
)
{
this
.
details
.
rowData
=
row
this
.
details
.
isenable
=
val
this
.
details
.
dictid
=
row
.
dictid
this
.
isDialog
=
true
}
}
}
};
};
</
script
>
<
style
scoped
lang=
"scss"
>
/
deep
/
.dialogBox
.dialog_title
{
top
:
0
;
margin-left
:
5px
;
}
/
deep
/
.dialogBox
.dialog_title
{
top
:
0
;
margin-left
:
5px
;
}
</
style
>
...
...
src/views/system/information/base-set.vue
View file @
07b47dc
<
template
>
<div
class=
"content"
>
<div
class=
"user-info"
>
<div
class=
"informationbase"
>
<el-form
ref=
"form"
label-width=
"100px"
...
...
@@ -38,7 +37,6 @@
<btn
nativeType=
"cx"
type=
"primary"
@
click=
"updateInfo"
>
更新信息
</btn>
</div>
</div>
</div>
</
template
>
<
script
>
...
...
src/views/system/information/index.vue
View file @
07b47dc
<!--
* @Author: xiaomiao 1158771342@qq.com
* @Date: 2023-03-09 20:54:28
* @LastEditors:
Please set LastEditors
* @LastEditTime: 2023-03-27
09:13:22
* @LastEditors:
xiaomiao 1158771342@qq.com
* @LastEditTime: 2023-03-27
14:26:49
* @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
v-if=
"BASE_API.THEME
==
'jg'"
>
<el-form-item
v-if=
"BASE_API.THEME
==
'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
@@ -34,64 +34,38 @@
</div>
</
template
>
<
script
>
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
;
import
"@/utils/flexible.js"
;
import
BaseSet
from
"./base-set.vue"
;
import
PasswordEdit
from
"./password-edit.vue"
;
export
default
{
components
:
{
BaseSet
,
PasswordEdit
,
},
},
watch
:
{},
created
()
{
},
mounted
()
{
},
methods
:
{
information
()
{
this
.
isshow
=
true
;
data
()
{
return
{
isshow
:
true
,
};
},
password
()
{
this
.
isshow
=
false
;
computed
:
{
userData
()
{
return
this
.
$store
.
state
.
user
.
userInfo
;
},
},
},
};
watch
:
{},
created
()
{
},
mounted
()
{
},
methods
:
{
information
()
{
this
.
isshow
=
true
;
},
password
()
{
this
.
isshow
=
false
;
},
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
@import
"~@/styles/mixin.scss"
;
.information
{
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
;
}
}
.boxin
{
flex
:
1
;
}
}
</
style
>
</
style
>
...
...
src/views/system/information/password-edit.vue
View file @
07b47dc
<
template
>
<div
class=
"content"
>
<div
class=
"user-info"
>
<el-form
ref=
"form"
label-width=
"100px"
:model=
"form"
class=
"form-wrapper"
:rules=
"rules"
>
<el-form-item
label=
"旧密码:"
prop=
"oldPassword"
>
<el-input
v-model=
"form.oldPassword"
clearable
type=
"password"
show-password
/>
</el-form-item>
<el-form-item
label=
"新密码:"
prop=
"newPassword"
>
<el-input
v-model=
"form.newPassword"
clearable
type=
"password"
show-password
/>
</el-form-item>
<el-form-item
label=
"确认密码:"
prop=
"confirmPassword"
>
<el-input
v-model=
"form.confirmPassword"
clearable
type=
"password"
show-password
/>
</el-form-item>
</el-form>
<div
class=
"bottom-wrapper"
>
<btn
nativeType=
"cx"
type=
"primary"
@
click=
"updatePassword"
>
确认修改
</btn>
</div>
<div
class=
"informationpassword"
>
<el-form
ref=
"form"
label-width=
"100px"
:model=
"form"
class=
"form-wrapper"
:rules=
"rules"
>
<el-form-item
label=
"旧密码:"
prop=
"oldPassword"
>
<el-input
v-model=
"form.oldPassword"
clearable
type=
"password"
show-password
/>
</el-form-item>
<el-form-item
label=
"新密码:"
prop=
"newPassword"
>
<el-input
v-model=
"form.newPassword"
clearable
type=
"password"
show-password
/>
</el-form-item>
<el-form-item
label=
"确认密码:"
prop=
"confirmPassword"
>
<el-input
v-model=
"form.confirmPassword"
clearable
type=
"password"
show-password
/>
</el-form-item>
</el-form>
<div
class=
"bottom-wrapper"
>
<btn
nativeType=
"cx"
type=
"primary"
@
click=
"updatePassword"
>
确认修改
</btn>
</div>
</div>
</
template
>
...
...
@@ -110,27 +108,4 @@
</
script
>
<
style
scoped
lang=
"scss"
>
.user-info
{
margin
:
36px
200px
;
overflow-y
:
auto
;
.form-wrapper
{
padding
:
24px
120px
0px
;
/deep/.el-form-item
{
margin-bottom
:
24px
;
.el-form-item__label
{
color
:
#ffffff
;
}
.el-input
.el-input__inner
{
padding
:
0
8px
;
height
:
40px
;
line-height
:
40px
;
border
:
1px
solid
#6bc1fc
;
}
}
}
.bottom-wrapper
{
padding
:
32px
120px
24px
;
text-align
:
center
;
}
}
</
style
>
...
...
src/views/system/menus/edit-dialog.vue
View file @
07b47dc
<
template
>
<dialogBox
class=
"
modifydialog
PersonnelDialog"
:isMain=
"true"
width=
"40%"
:title=
"title"
@
closeDialog=
"close"
@
submitForm=
"submitForm"
<dialogBox
class=
"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"
>
...
...
@@ -236,35 +236,4 @@
}
</
script
>
<
style
scoped
lang=
"scss"
>
//
.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
;
//
b
{
//
font-size
:
16px
;
//
}
//
}
//
.el-dialog__headerbtn
{
//
right
:
20px
!important
;
//
top
:
23px
!important
;
//
}
//
}
//
}
</
style
>
...
...
src/views/system/menus/index.vue
View file @
07b47dc
...
...
@@ -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
v-if=
"BASE_API.THEME
==
'jg'"
>
<el-form-item
v-if=
"BASE_API.THEME
==
'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"mb-5"
>
...
...
@@ -11,7 +11,7 @@
<el-input
v-model
.
trim=
"form.menuName"
class=
"width100"
clearable
placeholder=
"菜单名称"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"
3
"
class=
"btnColRight"
>
<el-col
:span=
"
20
"
class=
"btnColRight"
>
<btn
nativeType=
"cx"
@
click=
"searchQuery"
>
查询
</btn>
<btn
nativeType=
"cx"
@
click=
"handleAdd()"
>
新增菜单
</btn>
</el-col>
...
...
@@ -19,7 +19,7 @@
</el-form>
</div>
<div
class=
"from-clues-content"
>
<lb-table
:pagination=
"false"
:column=
"tableData.columns"
:calcHeight=
"
200
"
:data=
"tablelistData"
row-key=
"id"
<lb-table
:pagination=
"false"
:column=
"tableData.columns"
:calcHeight=
"
BASE_API.calcHeight
"
:data=
"tablelistData"
row-key=
"id"
default-expand-all
:tree-props=
"
{ children: 'children', hasChildren: 'hasChildren' }">
</lb-table>
...
...
src/views/system/roles/edit-dialog.vue
View file @
07b47dc
<!-- 新增 & 修改角色 -->
<
template
>
<dialogBox
class=
"
modifydialog
PersonnelDialog"
class=
"PersonnelDialog"
:title=
"title"
:width=
"'567px'"
:isMain=
"true"
...
...
src/views/system/roles/index.vue
View file @
07b47dc
...
...
@@ -11,7 +11,7 @@
<el-input
v-model
.
trim=
"form.rolesName"
class=
"width100"
clearable
placeholder=
"角色名称"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"
3
"
class=
"btnColRight"
>
<el-col
:span=
"
20
"
class=
"btnColRight"
>
<btn
nativeType=
"cx"
@
click=
"searchQuery"
>
查询
</btn>
<btn
nativeType=
"cx"
@
click=
"handleAddEdit"
>
增加角色
</btn>
</el-col>
...
...
@@ -19,7 +19,7 @@
</el-form>
</div>
<div
class=
"from-clues-content"
>
<lb-table
:pagination=
"false"
@
size-change=
"handleSizeChange"
:calcHeight=
"
200
"
<lb-table
:pagination=
"false"
@
size-change=
"handleSizeChange"
:calcHeight=
"
BASE_API.calcHeight
"
@
p-current-change=
"handleCurrentChange"
:column=
"tableData.columns"
:data=
"listdata"
:expand-row-keys=
"keyList"
row-key=
"dictid"
>
</lb-table>
...
...
src/views/system/roles/roleslistdiglog.vue
View file @
07b47dc
...
...
@@ -412,6 +412,7 @@
};
</
script
>
<
style
scoped
lang=
"scss"
>
//
@import
"~@/styles/mixin.scss"
;
//
@import
"~@/styles/dialogBox.scss"
;
/
deep
/
.dialogBox
.el-dialog__header
{
height
:
59px
!important
;
}
</
style
>
...
...
src/views/system/timedTask/index.vue
View file @
07b47dc
...
...
@@ -5,7 +5,7 @@
<el-form-item
v-if=
"BASE_API.THEME == 'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
<el-row
class=
"mb-5"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"搜索标题"
>
<el-input
v-model=
"form.jobName"
placeholder=
"标题"
></el-input>
...
...
@@ -251,5 +251,5 @@ export default {
}
</
script
>
<
style
scoped
lang=
"scss"
>
@import
"~@/styles/mixin.scss"
;
//
@import
"~@/styles/mixin.scss"
;
</
style
>
...
...
src/views/system/users/edit-dialog.vue
View file @
07b47dc
<
template
>
<dialogBox
:title=
"title"
:width=
"'867px'"
class=
"
modifydialog
PersonnelDialog"
@
closeDialog=
"close"
:isMain=
"true"
@
submitForm=
"submitForm"
<dialogBox
:title=
"title"
:width=
"'867px'"
class=
"PersonnelDialog"
@
closeDialog=
"close"
:isMain=
"true"
@
submitForm=
"submitForm"
v-model=
"myValue"
>
<div
class=
"dialogCon"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
>
...
...
src/views/system/users/index.vue
View file @
07b47dc
...
...
@@ -5,7 +5,7 @@
<el-form-item
v-if=
"BASE_API.THEME == 'jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row
class=
"m
t-10
"
>
<el-row
class=
"m
b-5
"
>
<el-col
:span=
"4"
>
<el-form-item
label=
"用户名"
prop=
"loginName"
>
<el-input
v-model
.
trim=
"form.loginName"
class=
"width100"
clearable
placeholder=
"用户名"
></el-input>
...
...
@@ -22,7 +22,7 @@
</el-form-item>
</el-col>
<!-- 操作按钮 -->
<el-col
:span=
"
3
"
class=
"btnColRight"
>
<el-col
:span=
"
12
"
class=
"btnColRight"
>
<btn
nativeType=
"cx"
@
click=
"getTableList"
>
查询
</btn>
<btn
nativeType=
"cx"
@
click=
"handleAdd"
>
添加人员
</btn>
</el-col>
...
...
@@ -31,7 +31,8 @@
</div>
<div
class=
"from-clues-content"
>
<lb-table
:pagination=
"false"
@
size-change=
"handleSizeChange"
@
p-current-change=
"handleCurrentChange"
:column=
"tableData.columns"
:calcHeight=
"200"
:data=
"tableData.data"
:expand-row-keys=
"keyList"
row-key=
"dictid"
>
:column=
"tableData.columns"
:calcHeight=
"BASE_API.calcHeight"
:data=
"tableData.data"
:expand-row-keys=
"keyList"
row-key=
"dictid"
>
</lb-table>
</div>
<EditDialog
ref=
"dialogForm"
v-model=
"isDialog"
@
ok=
"reloadTableData"
/>
...
...
src/views/system/validationRule/index.vue
View file @
07b47dc
...
...
@@ -2,7 +2,7 @@
<div
class=
"dictionary-config from-clues"
>
<div
class=
"from-clues-header"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"90px"
>
<el-form-item>
<el-form-item
v-if=
"BASE_API.THEME=='jg'"
>
<Breadcrumb
/>
</el-form-item>
<el-row>
...
...
Please
register
or
sign in
to post a comment