Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
refined-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
refined-platform
Commits
fd4047d5
Commit
fd4047d5
authored
Nov 11, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
544e40e7
9ce7f426
Changes
17
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1818 additions
and
1145 deletions
+1818
-1145
refined-manager-ui/admin/.env
refined-manager-ui/admin/.env
+1
-1
refined-manager-ui/admin/src/assets/less/base.css
refined-manager-ui/admin/src/assets/less/base.css
+331
-0
refined-manager-ui/admin/src/assets/less/base.less
refined-manager-ui/admin/src/assets/less/base.less
+269
-124
refined-manager-ui/admin/src/assets/utils/ajax.js
refined-manager-ui/admin/src/assets/utils/ajax.js
+70
-63
refined-manager-ui/admin/src/components/DataTable.vue
refined-manager-ui/admin/src/components/DataTable.vue
+51
-53
refined-manager-ui/admin/src/components/Header.vue
refined-manager-ui/admin/src/components/Header.vue
+151
-104
refined-manager-ui/admin/src/components/HeaderLeft.vue
refined-manager-ui/admin/src/components/HeaderLeft.vue
+247
-234
refined-manager-ui/admin/src/components/Table.vue
refined-manager-ui/admin/src/components/Table.vue
+62
-50
refined-manager-ui/admin/src/views/Home.vue
refined-manager-ui/admin/src/views/Home.vue
+15
-8
refined-manager-ui/admin/src/views/SSO.vue
refined-manager-ui/admin/src/views/SSO.vue
+12
-2
refined-manager-ui/admin/src/views/appointment/records/list.vue
...d-manager-ui/admin/src/views/appointment/records/list.vue
+165
-153
refined-manager-ui/admin/src/views/device/list.vue
refined-manager-ui/admin/src/views/device/list.vue
+91
-73
refined-manager-ui/admin/src/views/login/login.vue
refined-manager-ui/admin/src/views/login/login.vue
+22
-9
refined-manager-ui/admin/src/views/realtime/dataflow/list.vue
...ned-manager-ui/admin/src/views/realtime/dataflow/list.vue
+114
-103
refined-manager-ui/admin/src/views/system/menu/dialogshow.vue
...ned-manager-ui/admin/src/views/system/menu/dialogshow.vue
+110
-66
refined-manager-ui/admin/src/views/system/menu/list.vue
refined-manager-ui/admin/src/views/system/menu/list.vue
+105
-101
refined-manager-ui/admin/vue.config.js
refined-manager-ui/admin/vue.config.js
+2
-1
No files found.
refined-manager-ui/admin/.env
View file @
fd4047d5
...
@@ -7,7 +7,7 @@ VUE_APP_BASE_API =/basics_api
...
@@ -7,7 +7,7 @@ VUE_APP_BASE_API =/basics_api
# 门户登录地址
# 门户登录地址
VUE_APP_PORTAL_URL =
/portal_home
VUE_APP_PORTAL_URL =
http://192.168.0.98:11072
VUE_APP_PORTAL_PORT = 21080
VUE_APP_PORTAL_PORT = 21080
...
...
refined-manager-ui/admin/src/assets/less/base.css
0 → 100644
View file @
fd4047d5
html
{
-webkit-text-size-adjust
:
100%
;
-ms-text-size-adjust
:
100%
;
box-sizing
:
border-box
;
}
html
*
{
outline
:
0
;
box-sizing
:
inherit
;
-webkit-text-size-adjust
:
none
;
-webkit-tap-highlight-color
:
rgba
(
0
,
0
,
0
,
0
);
}
html
,
body
{
height
:
100%
;
min-height
:
100%
;
font-family
:
"Microsoft Yahei"
,
"Helvetica Neue"
,
Helvetica
,
STHeiTi
,
Arial
,
sans-serif
;
}
body
{
overflow-y
:
scroll
;
}
body
,
div
,
dl
,
dt
,
dd
,
ul
,
ol
,
li
,
h1
,
h2
,
h3
,
h4
,
h5
,
h6
,
pre
,
code
,
form
,
fieldset
,
legend
,
input
,
textarea
,
p
,
blockquote
,
th
,
td
,
hr
,
button
,
article
,
aside
,
details
,
figcaption
,
figure
,
footer
,
header
,
hgroup
,
menu
,
nav
,
section
{
margin
:
0
;
padding
:
0
;
}
input
,
select
,
textarea
,
button
{
font-size
:
100%
;
-webkit-appearance
:
none
;
border
:
0
;
outline
:
0
;
}
table
{
border-collapse
:
collapse
;
border-spacing
:
0
;
}
fieldset
,
img
{
border
:
0
;
}
abbr
,
acronym
{
border
:
0
;
font-variant
:
normal
;
}
del
{
text-decoration
:
line-through
;
}
address
,
caption
,
cite
,
code
,
dfn
,
em
,
th
,
var
{
font-style
:
normal
;
font-weight
:
500
;
}
ol
,
ul
{
list-style
:
none
;
}
caption
,
th
{
text-align
:
left
;
}
q
:before
,
q
:after
{
content
:
""
;
}
sub
,
sup
{
font-size
:
75%
;
line-height
:
0
;
position
:
relative
;
vertical-align
:
baseline
;
}
sup
{
top
:
-0.5em
;
}
sub
{
bottom
:
-0.25em
;
}
ins
,
a
{
text-decoration
:
none
;
cursor
:
pointer
;
}
/* ============================================================
flex:定义布局为盒模型
flex-v:盒模型垂直布局
flex-1:子元素占据剩余的空间
flex-align-center:子元素垂直居中
flex-pack-center:子元素水平居中
flex-pack-justify:子元素两端对齐
兼容性:ios 4+、android 2.3+、winphone8+
============================================================ */
.flex
{
display
:
-webkit-box
;
display
:
-webkit-flex
;
display
:
-ms-flexbox
;
display
:
flex
;
}
.flex-v
{
-webkit-box-orient
:
vertical
;
-webkit-flex-direction
:
column
;
-ms-flex-direction
:
column
;
flex-direction
:
column
;
}
.flex-1
{
-webkit-box-flex
:
1
;
-webkit-flex
:
1
;
-ms-flex
:
1
;
flex
:
1
;
}
.flex-align-center
{
-webkit-box-align
:
center
;
-webkit-align-items
:
center
;
-ms-flex-align
:
center
;
align-items
:
center
;
}
.flex-pack-center
{
-webkit-box-pack
:
center
;
-webkit-justify-content
:
center
;
-ms-flex-pack
:
center
;
justify-content
:
center
;
}
.flex-pack-justify
{
-webkit-box-pack
:
justify
;
-webkit-justify-content
:
space-between
;
-ms-flex-pack
:
justify
;
justify-content
:
space-between
;
}
.clearfix
:after
{
content
:
""
;
display
:
table
;
clear
:
both
;
font-size
:
0
;
}
.fl
{
float
:
left
;
}
.fr
{
float
:
right
;
}
.hide
{
display
:
none
;
}
.disabled
{
pointer-events
:
none
;
}
#app
,
.pages
{
display
:
-webkit-box
;
display
:
-webkit-flex
;
display
:
-ms-flexbox
;
display
:
flex
;
-webkit-box-orient
:
vertical
;
-webkit-flex-direction
:
column
;
-ms-flex-direction
:
column
;
flex-direction
:
column
;
height
:
100%
;
}
.ellipsis
{
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
[
v-cloak
]
{
display
:
none
;
}
[
disabled
]
{
pointer-events
:
none
;
}
.el-dialog
.el-checkbox-group
.el-checkbox
{
margin
:
5px
0
;
width
:
33.33%
;
}
.el-dialog
.el-checkbox-group
.pointBox
{
width
:
50%
;
}
.el-table
th
{
user-select
:
all
;
}
.el-progress-bar
{
padding-right
:
70px
;
margin-right
:
-70px
;
}
#operatorUserCabinCheckBox
.el-checkbox
{
white-space
:
normal
!important
;
width
:
100%
;
}
#operatorUserCabinCheckBox
.el-checkbox__label
{
display
:
inline
;
}
.page-statistics
.chart
{
margin-bottom
:
80px
;
border
:
1px
solid
#ededed
;
height
:
400px
;
}
.page-statistics
.el-table
th
.color-gray
,
.page-statistics
.el-table
tr
.color-gray
{
background-color
:
#f0f9eb
;
}
@media
screen
and
(
max-width
:
800px
)
{
.page
{
margin
:
5px
5px
;
}
.el-dialog
{
width
:
98%
!important
;
}
.el-dialog
.el-checkbox-group
.el-checkbox
{
margin
:
5px
0
;
width
:
50%
;
font-size
:
12px
;
}
.el-dialog
.el-checkbox-group
.el-checkbox
.el-checkbox__label
{
font-size
:
12px
;
}
}
.mobile-table-card
{
margin
:
10px
auto
;
padding
:
10px
;
box-shadow
:
0
0
5px
#ccc
;
}
.mobile-table-card
.mobile-table-cell
{
padding
:
5px
0
;
border-bottom
:
1px
dotted
#eee
;
}
.mobile-table-card
.mobile-table-cell
.cell-title
{
font-size
:
13px
;
color
:
#666
;
}
.mobile-table-card
.mobile-table-cell
.cell-content
{
padding-left
:
5px
;
text-align
:
right
;
word-break
:
break-word
;
}
.layout-menu-wrapper
{
height
:
64px
!important
;
line-height
:
64px
!important
;
background
:
linear-gradient
(
90deg
,
#1845c6
,
#2999ff
)
!important
;
}
.layout-menu-wrapper
.layout-logo
{
font-size
:
20px
;
font-weight
:
bold
;
}
.layout-menu-wrapper
.menu-list
li
a
{
display
:
block
;
padding
:
0
12px
;
height
:
100%
;
font-size
:
14px
!important
;
color
:
rgba
(
254
,
254
,
254
,
0.65
)
!important
;
text-align
:
center
!important
;
}
.layout-menu-wrapper
.menu-list
li
a
i
{
font-size
:
14px
!important
;
margin-right
:
10px
!important
;
}
.layout-menu-wrapper
.menu-list
li
a
i
:first-child
{
margin-right
:
0px
!important
;
}
.layout-menu-wrapper
.menu-list
li
a
:hover
{
color
:
#fff
!important
;
}
.layout-menu-wrapper
.menu-list
li
a
.router-link-active
,
.layout-menu-wrapper
.menu-list
li
a
[
active
]
{
color
:
#fff
!important
;
list-style-type
:
none
;
border-bottom
:
none
!important
;
padding-bottom
:
2px
;
background-color
:
#1890ff
!important
;
}
.layout-header
.layout-submenu-wrapper
{
width
:
95%
!important
;
margin
:
0
auto
!important
;
margin-top
:
20px
!important
;
border-top-left-radius
:
8px
;
border-top-right-radius
:
8px
;
}
.page.active
{
width
:
95%
!important
;
margin
:
0
auto
!important
;
padding
:
20px
!important
;
padding-top
:
0
!important
;
}
.page
{
height
:
82%
!important
;
min-height
:
82%
!important
;
border-bottom-left-radius
:
8px
;
border-bottom-right-radius
:
8px
;
}
refined-manager-ui/admin/src/assets/less/base.less
View file @
fd4047d5
...
@@ -8,58 +8,111 @@ html * {
...
@@ -8,58 +8,111 @@ html * {
outline: 0;
outline: 0;
box-sizing: inherit;
box-sizing: inherit;
-webkit-text-size-adjust: none;
-webkit-text-size-adjust: none;
-webkit-tap-highlight-color: rgba(0,0,0,0)
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
}
html,body {
html,
body {
height: 100%;
height: 100%;
min-height: 100%;
min-height: 100%;
font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, STHeiTi, Arial, sans-serif;
font-family: "Microsoft Yahei", "Helvetica Neue", Helvetica, STHeiTi, Arial,
sans-serif;
}
}
body {
body {
overflow-y: scroll;
overflow-y: scroll;
}
}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
code,
form,
fieldset,
legend,
input,
textarea,
p,
blockquote,
th,
td,
hr,
button,
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
margin: 0;
margin: 0;
padding: 0
padding: 0;
}
}
input,select,textarea,button {
input,
select,
textarea,
button {
font-size: 100%;
font-size: 100%;
-webkit-appearance: none;
-webkit-appearance: none;
border:0;
border:
0;
outline: 0;
outline: 0;
}
}
table {
table {
border-collapse: collapse;
border-collapse: collapse;
border-spacing: 0
border-spacing: 0;
}
}
fieldset,img {
fieldset,
border: 0
img {
border: 0;
}
}
abbr,acronym {
abbr,
acronym {
border: 0;
border: 0;
font-variant: normal
font-variant: normal;
}
}
del {
del {
text-decoration: line-through
text-decoration: line-through;
}
}
address,caption,cite,code,dfn,em,th,var {
address,
caption,
cite,
code,
dfn,
em,
th,
var {
font-style: normal;
font-style: normal;
font-weight: 500
font-weight: 500;
}
}
ol,ul {
ol,
list-style: none
ul {
list-style: none;
}
}
caption,th {
caption,
text-align: left
th {
text-align: left;
}
}
// h1,h2,h3,h4,h5,h6 {
// h1,h2,h3,h4,h5,h6 {
...
@@ -67,26 +120,29 @@ caption,th {
...
@@ -67,26 +120,29 @@ caption,th {
// font-weight: 500
// font-weight: 500
// }
// }
q:before,q:after {
q:before,
content: ''
q:after {
content: "";
}
}
sub,sup {
sub,
sup {
font-size: 75%;
font-size: 75%;
line-height: 0;
line-height: 0;
position: relative;
position: relative;
vertical-align: baseline
vertical-align: baseline;
}
}
sup {
sup {
top: -.5em
top: -0.5em;
}
}
sub {
sub {
bottom: -.25em
bottom: -0.25em;
}
}
ins,a {
ins,
a {
text-decoration: none;
text-decoration: none;
cursor: pointer;
cursor: pointer;
}
}
...
@@ -99,36 +155,72 @@ ins,a {
...
@@ -99,36 +155,72 @@ ins,a {
flex-pack-justify:子元素两端对齐
flex-pack-justify:子元素两端对齐
兼容性:ios 4+、android 2.3+、winphone8+
兼容性:ios 4+、android 2.3+、winphone8+
============================================================ */
============================================================ */
.flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}
.flex {
.flex-v{-webkit-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
display: -webkit-box;
.flex-1{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;}
display: -webkit-flex;
.flex-align-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;}
display: -ms-flexbox;
.flex-pack-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}
display: flex;
.flex-pack-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}
}
.flex-v {
.clearfix{
-webkit-box-orient: vertical;
&:after{
-webkit-flex-direction: column;
content: '';
-ms-flex-direction: column;
flex-direction: column;
}
.flex-1 {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.flex-align-center {
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.flex-pack-center {
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
}
.flex-pack-justify {
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
}
.clearfix {
&:after {
content: "";
display: table;
display: table;
clear: both;
clear: both;
font-size: 0;
font-size: 0;
}
}
}
}
.fl{float: left};
.fl {
.fr{float: right};
float: left;
.hide{display: none;}
}
.disabled{
.fr {
float: right;
}
.hide {
display: none;
}
.disabled {
pointer-events: none;
pointer-events: none;
}
}
#app,.pages{
#app,
.pages {
.flex;
.flex;
.flex-v;
.flex-v;
height: 100%;
height: 100%;
}
}
.ellipsis {
.ellipsis{
overflow: hidden;
overflow: hidden;
white-space: nowrap;
white-space: nowrap;
text-overflow: ellipsis;
text-overflow: ellipsis;
...
@@ -139,13 +231,13 @@ ins,a {
...
@@ -139,13 +231,13 @@ ins,a {
[disabled] {
[disabled] {
pointer-events: none;
pointer-events: none;
}
}
.el-dialog{
.el-dialog
{
.el-checkbox-group
{
.el-checkbox-group
{
.el-checkbox
{
.el-checkbox
{
margin: 5px 0;
margin: 5px 0;
width: 33.33%;
width: 33.33%;
}
}
.pointBox
{
.pointBox
{
width: 50%;
width: 50%;
}
}
}
}
...
@@ -153,48 +245,47 @@ ins,a {
...
@@ -153,48 +245,47 @@ ins,a {
.el-table th {
.el-table th {
user-select: all;
user-select: all;
}
}
.el-progress-bar{
.el-progress-bar
{
padding-right: 70px;
padding-right: 70px;
margin-right: -70px;
margin-right: -70px;
}
}
#operatorUserCabinCheckBox .el-checkbox{
#operatorUserCabinCheckBox .el-checkbox
{
white-space: normal !important;
white-space: normal !important;
width: 100%
width: 100%
;
}
}
#operatorUserCabinCheckBox .el-checkbox__label{
#operatorUserCabinCheckBox .el-checkbox__label
{
display: inline;
display: inline;
}
}
// 统计页面隔日期变色
// 统计页面隔日期变色
.page-statistics{
.page-statistics
{
.chart{
.chart
{
margin-bottom: 80px;
margin-bottom: 80px;
border: 1px solid #ededed;
border: 1px solid #ededed;
height: 400px;
height: 400px;
}
}
.el-table th, .el-table tr{
.el-table th,
&.color-gray{
.el-table tr {
&.color-gray {
background-color: #f0f9eb;
background-color: #f0f9eb;
}
}
}
}
}
}
@media screen and (max-width: 800px) {
.page {
@media screen and (max-width: 800px){
.page{
margin: 5px 5px;
margin: 5px 5px;
}
}
.el-dialog
{
.el-dialog
{
width: 98%
!important;
width: 98%
!important;
.el-checkbox-group
{
.el-checkbox-group
{
.el-checkbox
{
.el-checkbox
{
margin: 5px 0;
margin: 5px 0;
width: 50%;
width: 50%;
font-size: 12px;
font-size: 12px;
.el-checkbox__label
{
.el-checkbox__label
{
font-size: 12px;
font-size: 12px;
}
}
}
}
...
@@ -206,21 +297,75 @@ ins,a {
...
@@ -206,21 +297,75 @@ ins,a {
// background-color: red;
// background-color: red;
// }
// }
.mobile-table-card{
.mobile-table-card
{
margin: 10px auto;
margin: 10px auto;
padding: 10px;
padding: 10px;
box-shadow: 0 0 5px #ccc;
box-shadow: 0 0 5px #ccc;
.mobile-table-cell
{
.mobile-table-cell
{
padding: 5px 0;
padding: 5px 0;
border-bottom: 1px dotted #eee;
border-bottom: 1px dotted #eee;
.cell-title
{
.cell-title
{
font-size: 13px;
font-size: 13px;
color: #666;
color: #666;
}
}
.cell-content
{
.cell-content
{
padding-left: 5px;
padding-left: 5px;
text-align: right;
text-align: right;
word-break: break-word;
word-break: break-word;
}
}
}
}
}
}
.layout-menu-wrapper {
height: 64px !important;
line-height: 64px !important;
background: linear-gradient(90deg, #1845c6, #2999ff) !important;
}
.layout-menu-wrapper .layout-logo {
font-size: 20px;
font-weight: bold;
}
.layout-menu-wrapper .menu-list li a {
display: block;
padding: 0 12px;
height: 100%;
font-size: 14px !important;
color: rgba(254, 254, 254, 0.65) !important;
text-align: center !important;
}
.layout-menu-wrapper .menu-list li a i {
font-size: 14px !important;
margin-right: 10px !important;
}
.layout-menu-wrapper .menu-list li a i:first-child {
margin-right: 0px !important;
}
.layout-menu-wrapper .menu-list li a:hover {
color: #fff !important;
}
.layout-menu-wrapper .menu-list li a.router-link-active,
.layout-menu-wrapper .menu-list li a[active] {
color: #fff !important;
list-style-type: none;
border-bottom: none !important;
padding-bottom: 2px;
background-color: #1890ff !important;
}
.layout-header .layout-submenu-wrapper {
width: 95% !important;
margin: 0 auto !important;
margin-top: 20px !important;
border-top-left-radius: 8px;
border-top-right-radius: 8px;
}
.page.active {
width: 95% !important;
margin: 0 auto !important;
padding: 20px !important;
padding-top: 0 !important;
}
.page {
height: 82% !important;
min-height: 82% !important;
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
}
refined-manager-ui/admin/src/assets/utils/ajax.js
View file @
fd4047d5
import
axios
from
'
axios
'
;
import
axios
from
"
axios
"
;
import
Qs
from
'
qs
'
;
import
Qs
from
"
qs
"
;
const
JSONbig
=
require
(
'
json-bigint
'
)({
"
storeAsString
"
:
true
});
const
JSONbig
=
require
(
"
json-bigint
"
)({
storeAsString
:
true
});
import
cookie
from
'
./cookie
'
;
import
cookie
from
"
./cookie
"
;
import
httpErrorHandler
from
'
./httpErrorHandler
'
;
import
httpErrorHandler
from
"
./httpErrorHandler
"
;
const
instance
=
axios
.
create
({
const
instance
=
axios
.
create
({
baseURL
:
'
/refined
'
,
baseURL
:
"
/refined
"
,
headers
:
{
headers
:
{
post
:
{
post
:
{
'
Content-Type
'
:
'
application/json;charset=UTF-8
'
,
"
Content-Type
"
:
"
application/json;charset=UTF-8
"
,
'
dataType
'
:
'
json
'
,
dataType
:
"
json
"
,
}
}
,
},
},
transformResponse
:
[
data
=>
{
transformResponse
:
[
(
data
)
=>
{
try
{
try
{
JSON
.
parse
(
data
);
JSON
.
parse
(
data
);
return
JSONbig
.
parse
(
data
);
return
JSONbig
.
parse
(
data
);
}
catch
(
error
)
{
}
catch
(
error
)
{
return
data
;
return
data
;
}
}
}],
},
],
});
});
instance
.
interceptors
.
request
.
use
(
instance
.
interceptors
.
request
.
use
(
config
=>
{
(
config
)
=>
{
// 获取当前页面的主机名和端口号
// 获取当前页面的主机名和端口号
const
hostname
=
location
.
hostname
;
const
hostname
=
location
.
hostname
;
const
baseURL
=
config
.
baseURL
;
const
baseURL
=
config
.
baseURL
;
//const port = location.port;
//const port = location.port;
const
port
=
process
.
env
.
VUE_APP_PORTAL_PORT
==
'
undefined
'
?
'
11089
'
:
process
.
env
.
VUE_APP_PORTAL_PORT
;
const
port
=
process
.
env
.
VUE_APP_PORTAL_PORT
==
"
undefined
"
?
"
11089
"
:
process
.
env
.
VUE_APP_PORTAL_PORT
;
// 动态修改请求地址
// 动态修改请求地址
console
.
log
(
config
.
url
)
console
.
log
(
config
.
url
);
if
(
config
.
url
.
startsWith
(
'
/
'
))
{
if
(
config
.
url
.
startsWith
(
"
/
"
))
{
// 字符串以 / 开头
// 字符串以 / 开头
config
.
url
=
`http://
${
hostname
}
:
${
port
}${
baseURL
}${
config
.
url
}
`
;
config
.
url
=
`http://112.19.80.237:11080
${
baseURL
}${
config
.
url
}
`
;
// config.url = `http://${hostname}:${port}${baseURL}${config.url}`;
}
}
//config.url = `http://${hostname}:${port}${baseURL}/${config.url}`;
//config.url = `http://${hostname}:${port}${baseURL}/${config.url}`;
...
@@ -47,16 +53,18 @@ instance.interceptors.request.use(config => {
...
@@ -47,16 +53,18 @@ instance.interceptors.request.use(config => {
// config.headers['Content-Type'] = 'application/json;charset=UTF-8'
// config.headers['Content-Type'] = 'application/json;charset=UTF-8'
// config.headers.timestamp = Math.floor(new Date().getTime() / 1000)
// config.headers.timestamp = Math.floor(new Date().getTime() / 1000)
// console.log("sessionStorage",window.sessionStorage)
// console.log("sessionStorage",window.sessionStorage)
config
.
headers
.
Authorization
=
window
.
sessionStorage
.
getItem
(
'
token
'
)
||
''
config
.
headers
.
Authorization
=
window
.
sessionStorage
.
getItem
(
"
token
"
)
||
""
;
//console.log("request config and session",config,window.sessionStorage);
//console.log("request config and session",config,window.sessionStorage);
return
config
;
return
config
;
},
err
=>
{
},
(
err
)
=>
{
return
Promise
.
reject
(
err
);
return
Promise
.
reject
(
err
);
});
}
);
instance
.
interceptors
.
response
.
use
(
response
=>
{
instance
.
interceptors
.
response
.
use
(
(
response
)
=>
{
return
response
.
data
return
response
.
data
;
},
httpErrorHandler
);
},
httpErrorHandler
);
/**
/**
* 封装后的axios post方法
* 封装后的axios post方法
...
@@ -69,8 +77,8 @@ instance.interceptors.response.use(response=>{
...
@@ -69,8 +77,8 @@ instance.interceptors.response.use(response=>{
export
function
post
(
url
,
option
,
config
=
{})
{
export
function
post
(
url
,
option
,
config
=
{})
{
const
data
=
Object
.
assign
({},
option
,
{
const
data
=
Object
.
assign
({},
option
,
{
// __mortals_token__: cookie.getItem('__mortals_token__'),
// __mortals_token__: cookie.getItem('__mortals_token__'),
})
})
;
return
instance
.
post
(
url
,
data
,
config
)
return
instance
.
post
(
url
,
data
,
config
)
;
}
}
/**
/**
...
@@ -84,24 +92,23 @@ export function post(url, option, config = {}) {
...
@@ -84,24 +92,23 @@ export function post(url, option, config = {}) {
export
function
get
(
url
,
option
,
config
=
{})
{
export
function
get
(
url
,
option
,
config
=
{})
{
const
data
=
Object
.
assign
({},
option
,
{
const
data
=
Object
.
assign
({},
option
,
{
//__mortals_token__: cookie.getItem('__mortals_token__'),
//__mortals_token__: cookie.getItem('__mortals_token__'),
})
})
;
return
instance
.
get
(
url
,
{
params
:
data
},
config
)
return
instance
.
get
(
url
,
{
params
:
data
},
config
)
;
}
}
// 文件上传
// 文件上传
const
uploadInstance
=
axios
.
create
({
const
uploadInstance
=
axios
.
create
({
baseURL
:
'
/m
'
,
baseURL
:
"
/m
"
,
headers
:
{
headers
:
{
post
:
{
post
:
{
'
Content-Type
'
:
'
multipart/form-data
'
,
"
Content-Type
"
:
"
multipart/form-data
"
,
}
}
,
}
}
,
});
});
uploadInstance
.
interceptors
.
response
.
use
(
response
=>
{
uploadInstance
.
interceptors
.
response
.
use
(
(
response
)
=>
{
return
response
.
data
return
response
.
data
;
},
httpErrorHandler
);
},
httpErrorHandler
);
/**
/**
* 封装后的axios upload方法
* 封装后的axios upload方法
...
@@ -113,8 +120,8 @@ uploadInstance.interceptors.response.use(response=>{
...
@@ -113,8 +120,8 @@ uploadInstance.interceptors.response.use(response=>{
*/
*/
export
function
upload
(
url
,
option
,
config
=
{})
{
export
function
upload
(
url
,
option
,
config
=
{})
{
let
formdata
=
new
FormData
();
let
formdata
=
new
FormData
();
Object
.
keys
(
option
).
forEach
(
key
=>
{
Object
.
keys
(
option
).
forEach
(
(
key
)
=>
{
formdata
.
append
(
key
,
option
[
key
])
formdata
.
append
(
key
,
option
[
key
])
;
})
})
;
return
uploadInstance
.
post
(
url
,
formdata
,
config
)
return
uploadInstance
.
post
(
url
,
formdata
,
config
)
;
}
}
refined-manager-ui/admin/src/components/DataTable.vue
View file @
fd4047d5
<
template
>
<
template
>
<el-table
<el-table
size=
'small'
size=
"small"
:data=
"tableData"
:data=
"tableData"
:row-key=
"handleRowKeyMethod"
:row-key=
"handleRowKeyMethod"
:span-method=
"handleSpanMethod"
:span-method=
"handleSpanMethod"
...
@@ -9,12 +9,14 @@
...
@@ -9,12 +9,14 @@
@
sort-change=
"handleSortChange"
@
sort-change=
"handleSortChange"
@
row-click=
"handleRowClick"
@
row-click=
"handleRowClick"
:row-class-name=
"tableRowClassName"
:row-class-name=
"tableRowClassName"
:empty-text=
'emptyText'
:empty-text=
"emptyText"
border
border
style=
"width: 100%"
>
height=
"600"
style=
"width: 100%"
>
<el-table-column
<el-table-column
v-for=
'column in columns'
v-for=
"column in columns"
:key=
'column.prop'
:key=
"column.prop"
:type=
"column.type"
:type=
"column.type"
:index=
"handleIndexMethod"
:index=
"handleIndexMethod"
:selectable=
"handleSelectableMethod"
:selectable=
"handleSelectableMethod"
...
@@ -24,98 +26,94 @@
...
@@ -24,98 +26,94 @@
:sortable=
"column.sortable"
:sortable=
"column.sortable"
:show-overflow-tooltip=
"column.tooltip"
:show-overflow-tooltip=
"column.tooltip"
:align=
"column.align || 'left'"
:align=
"column.align || 'left'"
:formatter=
'column.formatter'
:formatter=
"column.formatter"
:reserve-selection=
'column.reserveSelection'
:reserve-selection=
"column.reserveSelection"
:subColumns=
'column.subColumns'
:subColumns=
"column.subColumns"
>
>
<el-table-column
<el-table-column
v-for=
'sunColumn in column.subColumns'
v-for=
"sunColumn in column.subColumns"
:key=
'sunColumn.prop'
:key=
"sunColumn.prop"
:type=
"sunColumn.type"
:type=
"sunColumn.type"
:prop=
"sunColumn.prop"
:prop=
"sunColumn.prop"
:label=
"sunColumn.label"
:label=
"sunColumn.label"
:width=
"sunColumn.width"
:width=
"sunColumn.width"
:sortable=
"sunColumn.sortable"
:sortable=
"sunColumn.sortable"
:align=
"sunColumn.align || 'left'"
:align=
"sunColumn.align || 'left'"
:formatter=
'sunColumn.formatter'
:formatter=
"sunColumn.formatter"
/>
/>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</
template
>
</
template
>
<
script
>
<
script
>
export
default
{
export
default
{
props
:
{
props
:
{
handleRowKeyMethod
:
{
handleRowKeyMethod
:
{
type
:
Function
,
type
:
Function
,
required
:
false
,
required
:
false
,
default
:
row
=>
{
return
row
.
id
}
default
:
(
row
)
=>
{
return
row
.
id
;
},
},
},
handleSelectableMethod
:
{
handleSelectableMethod
:
{
type
:
Function
,
type
:
Function
,
required
:
false
,
required
:
false
,
default
:
()
=>
{}
default
:
()
=>
{}
,
},
},
handleIndexMethod
:
{
handleIndexMethod
:
{
type
:
Function
,
type
:
Function
,
required
:
false
,
required
:
false
,
default
:
()
=>
{}
default
:
()
=>
{}
,
},
},
handleSpanMethod
:
{
handleSpanMethod
:
{
type
:
Function
,
type
:
Function
,
required
:
false
,
required
:
false
,
default
:
()
=>
{}
default
:
()
=>
{}
,
},
},
handleSelectionChange
:
{
handleSelectionChange
:
{
type
:
Function
,
type
:
Function
,
required
:
false
,
required
:
false
,
default
:
()
=>
{}
default
:
()
=>
{}
,
},
},
handleRowClick
:
{
handleRowClick
:
{
type
:
Function
,
type
:
Function
,
required
:
false
,
required
:
false
,
default
:
()
=>
{}
default
:
()
=>
{}
,
},
},
handleSortChange
:
{
handleSortChange
:
{
type
:
Function
,
type
:
Function
,
required
:
false
,
required
:
false
,
default
:
()
=>
{}
default
:
()
=>
{}
,
},
},
tableRowClassName
:
{
tableRowClassName
:
{
type
:
Function
,
type
:
Function
,
required
:
false
,
required
:
false
,
default
:
()
=>
{}
default
:
()
=>
{}
,
},
},
loading
:
{
loading
:
{
type
:
Boolean
,
type
:
Boolean
,
required
:
false
,
required
:
false
,
default
:
true
default
:
true
,
},
},
tableData
:
{
tableData
:
{
type
:
Array
,
type
:
Array
,
required
:
false
,
required
:
false
,
default
:
()
=>
[]
default
:
()
=>
[]
,
},
},
columns
:
{
columns
:
{
type
:
Array
,
type
:
Array
,
required
:
false
,
required
:
false
,
default
:
()
=>
[],
default
:
()
=>
[],
}
}
,
},
},
computed
:
{
computed
:
{
emptyText
()
{
emptyText
()
{
return
(
!
this
.
loading
&&
!
this
.
tableData
.
length
)
?
'
暂无数据
'
:
'
加载中...
'
return
!
this
.
loading
&&
!
this
.
tableData
.
length
?
"
暂无数据
"
:
"
加载中...
"
;
},
},
},
methods
:{
},
},
methods
:
{},
data
()
{
data
()
{
return
{}
return
{}
;
}
}
,
}
}
;
</
script
>
</
script
>
refined-manager-ui/admin/src/components/Header.vue
View file @
fd4047d5
This diff is collapsed.
Click to expand it.
refined-manager-ui/admin/src/components/HeaderLeft.vue
View file @
fd4047d5
<
template
>
<
template
>
<div>
<div>
<div
class=
"profile"
:class=
"
{close: isOpen
}">
<div
class=
"profile"
:class=
"
{ close: isOpen
}">
<p
class=
"menu-switch"
>
<p
class=
"menu-switch"
>
<i
@
click=
"toogle"
:class=
"`el-icon-s-$
{isOpen?'unfold':
'fold'}`" />
<i
@
click=
"toogle"
:class=
"`el-icon-s-$
{isOpen ? 'unfold' :
'fold'}`" />
</p>
</p>
<el-dropdown
@
command=
"handleCommand"
>
<el-dropdown
@
command=
"handleCommand"
>
<span
class=
"el-dropdown-link"
>
<span
class=
"el-dropdown-link"
>
{{
currentUserName
}}
{{
currentUserName
}}
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</span>
</span>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
...
@@ -15,14 +15,23 @@
...
@@ -15,14 +15,23 @@
</el-dropdown-menu>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown>
</div>
</div>
<div
class=
"sidebar"
:class=
"
{close: isOpen
}">
<div
class=
"sidebar"
:class=
"
{ close: isOpen
}">
<div
class=
"logo"
>
<div
class=
"logo"
>
<router-link
to=
"/"
>
<router-link
to=
"/"
>
<img
src=
"../assets/images/logo.png"
height=
"20"
alt
/>
<img
src=
"../assets/images/logo.png"
height=
"20"
alt
/>
{{
isOpen
?
''
:
'
xxx系统
'
}}
{{
isOpen
?
""
:
"
xxx系统
"
}}
</router-link>
</router-link>
</div>
</div>
<el-menu
:default-active=
"defaultActive"
background-color=
"#222333"
text-color=
"#fff"
active-text-color=
"#409eff"
:collapse=
"isOpen"
:collapse-transition=
"false"
router
unique-opened
>
<el-menu
:default-active=
"defaultActive"
background-color=
"#222333"
text-color=
"#fff"
active-text-color=
"#409eff"
:collapse=
"isOpen"
:collapse-transition=
"false"
router
unique-opened
>
<el-menu-item
index=
"/index"
key=
"home"
>
<el-menu-item
index=
"/index"
key=
"home"
>
<i
class=
"el-icon-s-home"
></i>
<i
class=
"el-icon-s-home"
></i>
<span>
首页
</span>
<span>
首页
</span>
...
@@ -31,11 +40,15 @@
...
@@ -31,11 +40,15 @@
<el-submenu
v-for=
"item in menu"
:key=
"item.id"
:index=
"item.name"
>
<el-submenu
v-for=
"item in menu"
:key=
"item.id"
:index=
"item.name"
>
<template
slot=
"title"
>
<template
slot=
"title"
>
<i
:class=
"`el-icon-$
{item.icon}`">
</i>
<i
:class=
"`el-icon-$
{item.icon}`">
</i>
<span
slot=
"title"
>
{{
item
.
name
}}
</span>
<span
slot=
"title"
>
{{
item
.
name
}}
</span>
</
template
>
</
template
>
<el-menu-item
v-for=
"val in item.children"
:index=
"val.path"
:key=
"val.id"
>
<el-menu-item
v-for=
"val in item.children"
:index=
"val.path"
:key=
"val.id"
>
<i
:class=
"`el-icon-${val.icon}`"
></i>
<i
:class=
"`el-icon-${val.icon}`"
></i>
<span>
{{val.name
}}
</span>
<span>
{{ val.name
}}
</span>
</el-menu-item>
</el-menu-item>
</el-submenu>
</el-submenu>
</el-menu>
</el-menu>
...
...
refined-manager-ui/admin/src/components/Table.vue
View file @
fd4047d5
...
@@ -28,7 +28,8 @@
...
@@ -28,7 +28,8 @@
@
click=
"config.methods.importView"
@
click=
"config.methods.importView"
class=
"el-icon-upload2"
class=
"el-icon-upload2"
title=
"导入"
title=
"导入"
>
导入
</el-button>
>
导入
</el-button
>
<!--
<el-button
<!--
<el-button
v-if=
"isShowButton('notDel')"
v-if=
"isShowButton('notDel')"
...
@@ -40,8 +41,19 @@
...
@@ -40,8 +41,19 @@
title=
"批量删除"
title=
"批量删除"
>
删除
</el-button
>
删除
</el-button
>
-->
>
-->
<Confirm
v-if=
'isShowButton("notDel")'
@
confirm=
'config.methods.del'
message=
'确定要删除选中的多条记录吗?'
>
<Confirm
<el-button
icon=
"el-icon-delete"
type=
"danger"
size=
'mini'
plain
title=
"批量删除"
>
批量删除
</el-button>
v-if=
"isShowButton('notDel')"
@
confirm=
"config.methods.del"
message=
"确定要删除选中的多条记录吗?"
>
<el-button
icon=
"el-icon-delete"
type=
"danger"
size=
"mini"
plain
title=
"批量删除"
>
批量删除
</el-button
>
</Confirm>
</Confirm>
<el-button
<el-button
@
click=
"item.method"
@
click=
"item.method"
...
...
refined-manager-ui/admin/src/views/Home.vue
View file @
fd4047d5
<
template
>
<
template
>
<div
class=
"page page-home"
style=
"min-height: 100vh;"
>
<div
class=
"page page-home"
style=
"min-height: 100vh;"
>
欢迎你,
{{
userData
}}
欢迎你,
{{
userData
}}
</div>
</div>
</
template
>
</
template
>
...
@@ -13,3 +13,10 @@ export default {
...
@@ -13,3 +13,10 @@ export default {
},
},
};
};
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
.page-home {
margin-top: 20px !important;
border-top-left-radius: 8px;
border-top-right-radius: 8px;
}
</
style
>
refined-manager-ui/admin/src/views/SSO.vue
View file @
fd4047d5
...
@@ -12,13 +12,23 @@ export default {
...
@@ -12,13 +12,23 @@ export default {
if
(
token
)
{
if
(
token
)
{
window
.
sessionStorage
.
setItem
(
"
token
"
,
token
);
window
.
sessionStorage
.
setItem
(
"
token
"
,
token
);
window
.
sessionStorage
.
setItem
(
"
siteid
"
,
siteid
);
window
.
sessionStorage
.
setItem
(
"
siteid
"
,
siteid
);
this
.
$route
.
query
.
sysName
?
localStorage
.
setItem
(
"
sysName
"
,
this
.
$route
.
query
.
sysName
)
:
""
;
this
.
$route
.
query
.
sysName
?
(
document
.
title
=
this
.
$route
.
query
.
sysName
)
:
""
;
this
.
$route
.
query
.
sysLogo
?
localStorage
.
setItem
(
"
sysLogo
"
,
this
.
$route
.
query
.
sysLogo
)
:
""
;
this
.
$router
.
push
(
"
/index
"
);
// 有token直接跳转首页
this
.
$router
.
push
(
"
/index
"
);
// 有token直接跳转首页
}
else
{
}
else
{
this
.
$message
({
this
.
$message
({
message
:
"
没有权限,正在跳转登录页面...
"
,
message
:
"
没有权限,正在跳转登录页面...
"
,
center
:
true
,
center
:
true
,
});
});
setTimeout
(
function
()
{
setTimeout
(
function
()
{
window
.
location
.
href
=
window
.
location
.
href
=
process
.
env
.
VUE_APP_PORTAL_URL
==
"
undefined
"
process
.
env
.
VUE_APP_PORTAL_URL
==
"
undefined
"
?
"
http://192.168.0.98:11072
"
?
"
http://192.168.0.98:11072
"
...
...
refined-manager-ui/admin/src/views/appointment/records/list.vue
View file @
fd4047d5
<
template
>
<
template
>
<div
class=
"page"
>
<div
class=
"page"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<LayoutTable
notAdd
notDel
:data=
"tableData"
:config=
"tableConfig"
>
<el-button
<el-button
slot=
"table-head-left2"
slot=
"table-head-left2"
style=
"margin-left: 10px"
style=
"margin-left: 10px"
...
@@ -11,7 +10,6 @@
...
@@ -11,7 +10,6 @@
@
click=
"monitorWarn"
@
click=
"monitorWarn"
>
监测预警
</el-button
>
监测预警
</el-button
>
>
</LayoutTable>
</LayoutTable>
<drawer-show
ref=
"dataDrawerShow"
/>
<drawer-show
ref=
"dataDrawerShow"
/>
...
@@ -21,18 +19,18 @@
...
@@ -21,18 +19,18 @@
</
template
>
</
template
>
<
script
>
<
script
>
/** 表单弹出框模式需引入 */
/** 表单弹出框模式需引入 */
import
dialogShow
from
"
./dialogshow
"
;
import
dialogShow
from
"
./dialogshow
"
;
import
drawerShow
from
"
./dataDrawerShow
"
;
import
drawerShow
from
"
./dataDrawerShow
"
;
import
table
from
"
@/assets/mixins/table
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
export
default
{
name
:
"
AppointmentRecordsList
"
,
name
:
"
AppointmentRecordsList
"
,
components
:
{
components
:
{
dialogShow
,
drawerShow
dialogShow
,
drawerShow
,
},
},
mixins
:
[
table
],
mixins
:
[
table
],
created
()
{
created
()
{},
},
methods
:
{
methods
:
{
/** 重写新增方法 */
/** 重写新增方法 */
toAdd
(
row
)
{
toAdd
(
row
)
{
...
@@ -52,14 +50,20 @@
...
@@ -52,14 +50,20 @@
},
},
serviceConstraint
(
row
)
{
serviceConstraint
(
row
)
{
let
_this
=
this
let
_this
=
this
;
this
.
$confirm
(
'
服务约束后,系统将停止向该群众推送此项服务,是否确认?
'
,
"
系统服务
"
,
{
this
.
$confirm
(
"
服务约束后,系统将停止向该群众推送此项服务,是否确认?
"
,
"
系统服务
"
,
{
confirmButtonText
:
"
确定
"
,
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
cancelButtonText
:
"
取消
"
,
type
:
"
warning
"
type
:
"
warning
"
,
}).
then
(
function
()
{
}
)
.
then
(
function
()
{
//todo
//todo
_this
.
$post
(
"
/appointment/records
"
,
{
id
:
[
row
.
id
]
})
_this
.
$post
(
"
/appointment/records
"
,
{
id
:
[
row
.
id
]
})
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
if
(
res
&&
res
.
code
&&
res
.
code
==
1
)
{
if
(
res
&&
res
.
code
&&
res
.
code
==
1
)
{
_this
.
getList
();
_this
.
getList
();
...
@@ -69,12 +73,9 @@
...
@@ -69,12 +73,9 @@
.
catch
((
error
)
=>
{
.
catch
((
error
)
=>
{
_this
.
$message
.
error
(
error
.
message
);
_this
.
$message
.
error
(
error
.
message
);
});
});
}).
then
(
response
=>
{
})
})
}
.
then
((
response
)
=>
{});
},
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -104,28 +105,38 @@
...
@@ -104,28 +105,38 @@
label
:
"
姓名
"
,
label
:
"
姓名
"
,
fuzzy
:
true
,
fuzzy
:
true
,
},
},
],
],
columns
:
[
columns
:
[
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
姓名
"
,
prop
:
"
name
"
},
{
label
:
"
姓名
"
,
prop
:
"
name
"
},
{
label
:
"
联系方式
"
,
prop
:
"
contactInfo
"
},
{
label
:
"
联系方式
"
,
prop
:
"
contactInfo
"
},
{
label
:
"
身份证号码
"
,
prop
:
"
idNumber
"
},
{
label
:
"
身份证号码
"
,
prop
:
"
idNumber
"
},
{
label
:
"
预约业务
"
,
prop
:
"
reservationService
"
},
{
label
:
"
预约业务
"
,
prop
:
"
reservationService
"
},
{
label
:
"
预约编号
"
,
prop
:
"
reservationNumber
"
},
{
label
:
"
预约编号
"
,
prop
:
"
reservationNumber
"
},
{
label
:
"
监测时间
"
,
prop
:
"
monitorTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
监测时间
"
,
prop
:
"
monitorTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
监测设备
"
,
prop
:
"
monitorDevice
"
},
{
label
:
"
监测设备
"
,
prop
:
"
monitorDevice
"
},
{
label
:
"
签到方式
"
,
prop
:
"
checkInMethod
"
,
formatter
:
this
.
formatter
},
{
label
:
"
签到方式
"
,
prop
:
"
checkInMethod
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
监测凭证
"
,
prop
:
"
monitorCertificate
"
,
formatter
:
(
row
)
=>
{
{
label
:
"
监测凭证
"
,
prop
:
"
monitorCertificate
"
,
formatter
:
(
row
)
=>
{
return
row
.
monitorCertificate
!=
""
?
(
return
row
.
monitorCertificate
!=
""
?
(
<
el
-
image
<
el
-
image
style
=
"
width: 70px; height: 70px
"
style
=
"
width: 70px; height: 70px
"
...
@@ -135,11 +146,12 @@
...
@@ -135,11 +146,12 @@
)
:
(
)
:
(
"
--
"
"
--
"
);
);
},},
},
},
{
{
label
:
"
操作
"
,
label
:
"
操作
"
,
width
:
240
,
width
:
240
,
formatter
:
row
=>
{
formatter
:
(
row
)
=>
{
return
(
return
(
<
div
>
<
div
>
<
el
-
button
<
el
-
button
...
@@ -154,11 +166,11 @@
...
@@ -154,11 +166,11 @@
<
/el-button
>
<
/el-button
>
<
/div
>
<
/div
>
);
);
}
},
}
},
]
],
}
},
};
}
};
};
},
};
</
script
>
</
script
>
refined-manager-ui/admin/src/views/device/list.vue
View file @
fd4047d5
<
template
>
<
template
>
<div
class=
"page"
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
>
</LayoutTable>
</LayoutTable>
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
/** 表单弹出框模式需引入 */
/** 表单弹出框模式需引入 */
import
dialogShow
from
"
./dialogshow
"
;
import
dialogShow
from
"
./dialogshow
"
;
import
table
from
"
@/assets/mixins/table
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
export
default
{
name
:
"
DeviceList
"
,
name
:
"
DeviceList
"
,
components
:
{
components
:
{
dialogShow
dialogShow
,
},
mixins
:
[
table
],
created
()
{
},
},
mixins
:
[
table
],
created
()
{},
methods
:
{
methods
:
{
/** 重写新增方法 */
/** 重写新增方法 */
toAdd
(
row
)
{
toAdd
(
row
)
{
...
@@ -33,51 +30,72 @@
...
@@ -33,51 +30,72 @@
toView
(
row
)
{
toView
(
row
)
{
this
.
$refs
.
dialogform
.
view
(
row
);
this
.
$refs
.
dialogform
.
view
(
row
);
},
},
},
},
data
()
{
data
()
{
return
{
return
{
config
:
{
config
:
{
search
:
[
search
:
[
{
name
:
"
deviceName
"
,
type
:
"
text
"
,
label
:
"
设备名称
"
,
fuzzy
:
true
,
},
{
name
:
"
deviceStatus
"
,
type
:
"
select
"
,
label
:
"
设备状态
"
,
},
],
],
columns
:
[
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
设备名称
"
,
prop
:
"
deviceName
"
},
{
label
:
"
设备名称
"
,
prop
:
"
deviceName
"
},
{
label
:
"
设备编码
"
,
prop
:
"
deviceCode
"
},
{
label
:
"
设备编码
"
,
prop
:
"
deviceCode
"
},
{
label
:
"
设备位置
"
,
prop
:
"
deviceLocation
"
},
{
label
:
"
设备位置
"
,
prop
:
"
deviceLocation
"
},
{
label
:
"
经度
"
,
prop
:
"
lon
"
},
{
label
:
"
经度
"
,
prop
:
"
lon
"
},
{
label
:
"
纬度
"
,
prop
:
"
lati
"
},
{
label
:
"
纬度
"
,
prop
:
"
lati
"
},
{
label
:
"
楼层
"
,
prop
:
"
floor
"
,
formatter
:
this
.
formatter
},
{
label
:
"
楼层
"
,
prop
:
"
floor
"
,
formatter
:
this
.
formatter
},
{
label
:
"
楼栋
"
,
prop
:
"
build
"
,
formatter
:
this
.
formatter
},
{
label
:
"
楼栋
"
,
prop
:
"
build
"
,
formatter
:
this
.
formatter
},
/* {label: "超时时间", prop: "timeOutPeriod",formatter: this.formatter},
/* {label: "超时时间", prop: "timeOutPeriod",formatter: this.formatter},
{label: "临近时间", prop: "nearTime",formatter: this.formatter},*/
{label: "临近时间", prop: "nearTime",formatter: this.formatter},*/
{
label
:
"
设备状态
"
,
prop
:
"
deviceStatus
"
,
formatter
:
this
.
formatter
},
{
label
:
"
设备状态
"
,
prop
:
"
deviceStatus
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
备注
"
,
prop
:
"
deviceRemark
"
},
{
label
:
"
备注
"
,
prop
:
"
deviceRemark
"
},
{
{
label
:
"
操作
"
,
label
:
"
操作
"
,
width
:
240
,
width
:
240
,
formatter
:
row
=>
{
formatter
:
(
row
)
=>
{
return
(
return
(
<
table
-
buttons
noAdd
noEdit
noDel
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
<
table
-
buttons
noAdd
noEdit
noDel
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
);
}
},
}
},
]
],
}
},
};
}
};
};
},
};
</
script
>
</
script
>
refined-manager-ui/admin/src/views/login/login.vue
View file @
fd4047d5
...
@@ -3,23 +3,33 @@
...
@@ -3,23 +3,33 @@
<
template
>
<
template
>
<div
class=
"page page-login flex flex-v"
>
<div
class=
"page page-login flex flex-v"
>
<div
class=
"form-wrap flex flex-1"
>
<div
class=
"form-wrap flex flex-1"
>
<el-form
@
submit.prevent=
'onSubmit'
ref=
"form"
:model=
"form"
label-width=
"80px"
size=
"small"
>
<el-form
<h1>
智慧大厅精细化管理平台
</h1>
@
submit.prevent=
"onSubmit"
ref=
"form"
:model=
"form"
label-width=
"80px"
size=
"small"
>
<h1>
{{
title
}}
</h1>
<el-form-item
label=
"用户名"
>
<el-form-item
label=
"用户名"
>
<el-input
v-model=
"form.loginName"
></el-input>
<el-input
v-model=
"form.loginName"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"密码"
>
<el-form-item
label=
"密码"
>
<el-input
v-model=
"form.password"
type=
'password'
></el-input>
<el-input
v-model=
"form.password"
type=
"password"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
size=
"large"
>
<el-form-item
size=
"large"
>
<el-button
type=
"primary"
native-type=
'submit'
:loading=
'loading'
@
click=
'onSubmit'
>
登录
</el-button>
<el-button
type=
"primary"
native-type=
"submit"
:loading=
"loading"
@
click=
"onSubmit"
>
登录
</el-button
>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
<div
class=
"footer"
>
<div
class=
"footer"
></div>
</div>
</div>
</div>
</
template
>
</
template
>
...
@@ -41,6 +51,9 @@ export default {
...
@@ -41,6 +51,9 @@ export default {
// });
// });
// window.location.href=process.env.VUE_APP_PORTAL_URL=='undefined'?'http://192.168.0.98:11072':process.env.VUE_APP_PORTAL_URL
// window.location.href=process.env.VUE_APP_PORTAL_URL=='undefined'?'http://192.168.0.98:11072':process.env.VUE_APP_PORTAL_URL
localStorage
.
getItem
(
"
sysName
"
)
?
(
this
.
title
=
localStorage
.
getItem
(
"
sysName
"
))
:
(
this
.
title
=
"
智慧大厅精细化管理平台
"
);
},
},
methods
:
{
methods
:
{
login
()
{
login
()
{
...
@@ -51,7 +64,7 @@ export default {
...
@@ -51,7 +64,7 @@ export default {
},
},
loginSuccess
({
data
})
{
loginSuccess
({
data
})
{
console
.
log
(
"
userData
"
,
data
);
console
.
log
(
"
userData
"
,
data
);
console
.
log
(
"
redirect
"
,
this
.
redirect
)
console
.
log
(
"
redirect
"
,
this
.
redirect
);
this
.
$store
.
commit
(
"
setUserData
"
,
data
);
this
.
$store
.
commit
(
"
setUserData
"
,
data
);
this
.
$router
.
replace
({
this
.
$router
.
replace
({
path
:
this
.
redirect
,
path
:
this
.
redirect
,
...
@@ -92,6 +105,7 @@ export default {
...
@@ -92,6 +105,7 @@ export default {
loginName
:
""
,
loginName
:
""
,
password
:
""
,
password
:
""
,
},
},
title
:
""
,
};
};
},
},
};
};
...
@@ -140,4 +154,3 @@ export default {
...
@@ -140,4 +154,3 @@ export default {
}
}
}
}
</
style
>
</
style
>
refined-manager-ui/admin/src/views/realtime/dataflow/list.vue
View file @
fd4047d5
...
@@ -10,7 +10,6 @@
...
@@ -10,7 +10,6 @@
@
click=
"monitorWarn"
@
click=
"monitorWarn"
>
监测预警
</el-button
>
监测预警
</el-button
>
>
</LayoutTable>
</LayoutTable>
<drawer-show
ref=
"dataDrawerShow"
/>
<drawer-show
ref=
"dataDrawerShow"
/>
...
@@ -19,19 +18,18 @@
...
@@ -19,19 +18,18 @@
</
template
>
</
template
>
<
script
>
<
script
>
/** 表单弹出框模式需引入 */
/** 表单弹出框模式需引入 */
import
dialogShow
from
"
./dialogshow
"
;
import
dialogShow
from
"
./dialogshow
"
;
import
drawerShow
from
"
./dataDrawerShow
"
;
import
drawerShow
from
"
./dataDrawerShow
"
;
import
table
from
"
@/assets/mixins/table
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
export
default
{
name
:
"
RealtimeDataflowList
"
,
name
:
"
RealtimeDataflowList
"
,
components
:
{
components
:
{
dialogShow
,
drawerShow
dialogShow
,
drawerShow
,
},
mixins
:
[
table
],
created
()
{
},
},
mixins
:
[
table
],
created
()
{},
methods
:
{
methods
:
{
/** 重写新增方法 */
/** 重写新增方法 */
toAdd
(
row
)
{
toAdd
(
row
)
{
...
@@ -49,7 +47,6 @@
...
@@ -49,7 +47,6 @@
monitorWarn
(
row
)
{
monitorWarn
(
row
)
{
this
.
$refs
.
dataDrawerShow
.
view
(
row
);
this
.
$refs
.
dataDrawerShow
.
view
(
row
);
},
},
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -75,25 +72,32 @@
...
@@ -75,25 +72,32 @@
],
],
columns
:
[
columns
:
[
/* {type: "selection", width: 60},*/
/* {type: "selection", width: 60},*/
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
姓名
"
,
prop
:
"
name
"
},
{
label
:
"
姓名
"
,
prop
:
"
name
"
},
{
label
:
"
监测设备
"
,
prop
:
"
device
"
},
{
label
:
"
监测设备
"
,
prop
:
"
device
"
},
{
label
:
"
监测时间
"
,
prop
:
"
detectTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
监测时间
"
,
prop
:
"
detectTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
联系方式
"
,
prop
:
"
contact
"
},
{
label
:
"
联系方式
"
,
prop
:
"
contact
"
},
{
label
:
"
身份证号码
"
,
prop
:
"
idNumber
"
},
{
label
:
"
身份证号码
"
,
prop
:
"
idNumber
"
},
{
label
:
"
是否预约
"
,
prop
:
"
isBooking
"
,
formatter
:
this
.
formatter
},
{
label
:
"
是否预约
"
,
prop
:
"
isBooking
"
,
formatter
:
this
.
formatter
},
{
label
:
"
排队编码
"
,
prop
:
"
queueNum
"
},
{
label
:
"
排队编码
"
,
prop
:
"
queueNum
"
},
{
label
:
"
办理位置
"
,
prop
:
"
location
"
},
{
label
:
"
办理位置
"
,
prop
:
"
location
"
},
{
label
:
"
识别截图
"
,
prop
:
"
picture
"
,
formatter
:
(
row
)
=>
{
{
label
:
"
识别截图
"
,
prop
:
"
picture
"
,
formatter
:
(
row
)
=>
{
return
row
.
picture
!=
""
?
(
return
row
.
picture
!=
""
?
(
<
el
-
image
<
el
-
image
style
=
"
width: 70px; height: 70px
"
style
=
"
width: 70px; height: 70px
"
...
@@ -103,20 +107,27 @@
...
@@ -103,20 +107,27 @@
)
:
(
)
:
(
"
--
"
"
--
"
);
);
},},
},
},
{
{
label
:
"
操作
"
,
label
:
"
操作
"
,
width
:
240
,
width
:
240
,
formatter
:
row
=>
{
formatter
:
(
row
)
=>
{
return
(
return
(
<
table
-
buttons
noAdd
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
<
table
-
buttons
noAdd
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
);
}
},
}
},
]
],
}
},
};
}
};
};
},
};
</
script
>
</
script
>
refined-manager-ui/admin/src/views/system/menu/dialogshow.vue
View file @
fd4047d5
...
@@ -14,17 +14,42 @@
...
@@ -14,17 +14,42 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<!--
<Field
label=
"ID"
prop=
"id"
v-model=
"form.id"
v-if=
'pageInfo.type !== "add"'
disabled
/>
<!--
<Field
label=
"ID"
prop=
"id"
v-model=
"form.id"
v-if=
'pageInfo.type !== "add"'
disabled
/>
-->
<Field
label=
"名称"
prop=
"name"
v-model=
"form.name"
/>
-->
<Field
label=
"权限类型"
prop=
"authType"
v-model=
"form.authType"
:enumData=
'dict.authType'
type=
'select'
/>
<Field
label=
"名称"
prop=
"name"
v-model=
"form.name"
/>
<Field
label=
"权限类型"
prop=
"authType"
v-model=
"form.authType"
:enumData=
"dict.authType"
type=
"select"
/>
<Field
label=
"访问地址"
prop=
"url"
v-model=
"form.url"
/>
<Field
label=
"访问地址"
prop=
"url"
v-model=
"form.url"
/>
<Field
label=
"状态"
prop=
"status"
v-model=
"form.status"
:enumData=
'dict.status'
type=
'radio'
/>
<Field
<Field
class=
"radio-group-container"
label=
"图标"
prop=
"imgPath"
:span=
'24'
>
label=
"状态"
<el-radio-group
v-model=
"form.imgPath"
class=
'form-el-radio-group'
>
prop=
"status"
<el-radio-button
style=
"width: 180px"
label=
""
>
不需要图标
</el-radio-button>
v-model=
"form.status"
<el-radio-button
style=
"width: 180px"
v-for=
'(icon, index) in icons'
:key=
'index'
:label=
"icon"
>
:enumData=
"dict.status"
<i
:class=
"'el-icon-'+icon"
style=
"font-size: 20px"
></i>
type=
"radio"
{{
icon
}}
/>
<Field
class=
"radio-group-container"
label=
"图标"
prop=
"imgPath"
:span=
"24"
>
<el-radio-group
v-model=
"form.imgPath"
class=
"form-el-radio-group"
>
<el-radio-button
style=
"width: 180px"
label=
""
>
不需要图标
</el-radio-button
>
<el-radio-button
style=
"width: 180px"
v-for=
"(icon, index) in icons"
:key=
"index"
:label=
"icon"
>
<i
:class=
"'el-icon-' + icon"
style=
"font-size: 20px"
></i>
{{
icon
}}
</el-radio-button>
</el-radio-button>
</el-radio-group>
</el-radio-group>
</Field>
</Field>
...
@@ -41,7 +66,7 @@
...
@@ -41,7 +66,7 @@
import
form
from
"
@/assets/mixins/formdialog
"
;
import
form
from
"
@/assets/mixins/formdialog
"
;
import
Treeselect
from
"
@riophae/vue-treeselect
"
;
import
Treeselect
from
"
@riophae/vue-treeselect
"
;
import
"
@riophae/vue-treeselect/dist/vue-treeselect.css
"
;
import
"
@riophae/vue-treeselect/dist/vue-treeselect.css
"
;
import
axios
from
'
axios
'
import
axios
from
"
axios
"
;
export
default
{
export
default
{
mixins
:
[
form
],
mixins
:
[
form
],
components
:
{
components
:
{
...
@@ -49,15 +74,42 @@ export default {
...
@@ -49,15 +74,42 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
fileContent
:
""
,
fileContent
:
""
,
icons
:
[
icons
:
[
'
info
'
,
'
error
'
,
'
success
'
,
'
warning
'
,
'
question
'
,
"
info
"
,
'
tickets
'
,
'
document
'
,
'
goods
'
,
'
sold-out
'
,
'
news
'
,
"
error
"
,
'
message
'
,
'
date
'
,
'
printer
'
,
'
time
'
,
'
bell
'
,
"
success
"
,
'
mobile-phone
'
,
'
service
'
,
'
view
'
,
'
menu
'
,
'
star-on
'
,
"
warning
"
,
'
location
'
,
'
phone
'
,
'
picture
'
,
'
delete
'
,
'
search
'
,
"
question
"
,
'
edit
'
,
'
rank
'
,
'
refresh
'
,
'
share
'
,
'
setting
'
,
"
tickets
"
,
'
upload
'
,
'
upload2
'
,
'
download
'
,
'
loading
'
,
"
document
"
,
"
goods
"
,
"
sold-out
"
,
"
news
"
,
"
message
"
,
"
date
"
,
"
printer
"
,
"
time
"
,
"
bell
"
,
"
mobile-phone
"
,
"
service
"
,
"
view
"
,
"
menu
"
,
"
star-on
"
,
"
location
"
,
"
phone
"
,
"
picture
"
,
"
delete
"
,
"
search
"
,
"
edit
"
,
"
rank
"
,
"
refresh
"
,
"
share
"
,
"
setting
"
,
"
upload
"
,
"
upload2
"
,
"
download
"
,
"
loading
"
,
],
],
menuOptions
:
[],
menuOptions
:
[],
// 遮罩层
// 遮罩层
...
@@ -66,46 +118,38 @@ export default {
...
@@ -66,46 +118,38 @@ export default {
title
:
"
菜单信息
"
,
title
:
"
菜单信息
"
,
// 是否显示弹出层
// 是否显示弹出层
open
:
false
,
open
:
false
,
id
:
null
,
id
:
null
,
toString
:[
toString
:
[
"
status
"
,
"
linkType
"
,
"
commMenu
"
,
"
menuType
"
,
"
authType
"
],
"
status
"
,
"
linkType
"
,
"
commMenu
"
,
"
menuType
"
,
"
authType
"
,
],
// 表单校验
// 表单校验
rules
:
{
rules
:
{},
}
};
};
},
},
created
()
{
created
()
{
axios
.
get
(
'
/icon.txt
'
)
axios
.
get
(
"
/icon.txt
"
).
then
((
response
)
=>
{
.
then
(
response
=>
{
this
.
fileContent
=
response
.
data
;
this
.
fileContent
=
response
.
data
this
.
icons
=
this
.
fileContent
.
split
(
"
\n
"
);
this
.
icons
=
this
.
fileContent
.
split
(
'
\n
'
)
});
})
},
},
methods
:
{
methods
:
{
/** 编辑 */
/** 编辑 */
edit
(
row
,
menuOptions
)
{
edit
(
row
,
menuOptions
)
{
this
.
reset
()
this
.
reset
()
;
this
.
query
=
{
id
:
row
.
id
};
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
this
.
pageInfo
.
editUrl
;
;
this
.
urls
.
currUrl
=
this
.
pageInfo
.
editUrl
;
this
.
getData
();
this
.
getData
();
this
.
menuOptions
=
menuOptions
;
this
.
menuOptions
=
menuOptions
;
this
.
title
=
"
修改菜单信息
"
;
this
.
title
=
"
修改菜单信息
"
;
},
},
/** 新增 */
/** 新增 */
async
add
(
row
,
menuOptions
)
{
async
add
(
row
,
menuOptions
)
{
this
.
reset
()
this
.
reset
()
;
this
.
query
=
{
id
:
row
.
id
};
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
this
.
pageInfo
.
addUrl
;
this
.
urls
.
currUrl
=
this
.
pageInfo
.
addUrl
;
this
.
getData
();
this
.
getData
();
if
(
row
.
id
)
{
if
(
row
.
id
)
{
this
.
id
=
row
.
id
this
.
id
=
row
.
id
;
this
.
form
.
parentId
=
row
.
id
this
.
form
.
parentId
=
row
.
id
;
}
}
this
.
menuOptions
=
menuOptions
;
this
.
menuOptions
=
menuOptions
;
this
.
title
=
"
新增菜单信息
"
;
this
.
title
=
"
新增菜单信息
"
;
...
@@ -113,7 +157,7 @@ export default {
...
@@ -113,7 +157,7 @@ export default {
/** 查看*/
/** 查看*/
view
(
row
,
menuOptions
)
{
view
(
row
,
menuOptions
)
{
this
.
query
=
{
id
:
row
.
id
};
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
this
.
pageInfo
.
viewUrl
;
;
this
.
urls
.
currUrl
=
this
.
pageInfo
.
viewUrl
;
this
.
getData
();
this
.
getData
();
this
.
menuOptions
=
menuOptions
;
this
.
menuOptions
=
menuOptions
;
this
.
title
=
"
菜单信息详细
"
;
this
.
title
=
"
菜单信息详细
"
;
...
@@ -124,8 +168,8 @@ export default {
...
@@ -124,8 +168,8 @@ export default {
},
},
/**获取数据后弹框 */
/**获取数据后弹框 */
afterRender
(
data
)
{
afterRender
(
data
)
{
if
(
this
.
id
)
{
if
(
this
.
id
)
{
this
.
form
.
parentId
=
this
.
id
this
.
form
.
parentId
=
this
.
id
;
}
}
this
.
open
=
true
;
this
.
open
=
true
;
},
},
...
@@ -148,21 +192,21 @@ export default {
...
@@ -148,21 +192,21 @@ export default {
// 表单重置
// 表单重置
reset
()
{
reset
()
{
this
.
form
=
{
this
.
form
=
{
name
:
''
,
name
:
""
,
url
:
''
,
url
:
""
,
ancestors
:
''
,
ancestors
:
""
,
parentId
:
0
,
parentId
:
0
,
orderId
:
1
,
orderId
:
1
,
status
:
1
,
status
:
1
,
linkType
:
0
,
linkType
:
0
,
groupId
:
1
,
groupId
:
1
,
groupName
:
''
,
groupName
:
""
,
imgPath
:
''
,
imgPath
:
""
,
buttonImgPath
:
''
,
buttonImgPath
:
""
,
imgCommPath
:
''
,
imgCommPath
:
""
,
commMenu
:
0
,
commMenu
:
0
,
menuType
:
0
,
menuType
:
0
,
authType
:
3
,
authType
:
3
,
};
};
this
.
resetForm
(
"
form
"
);
this
.
resetForm
(
"
form
"
);
},
},
...
@@ -195,10 +239,10 @@ export default {
...
@@ -195,10 +239,10 @@ export default {
box-shadow
:
none
;
box-shadow
:
none
;
}
}
.el-radio-button__orig-radio
:checked
+
.el-radio-button__inner
{
.el-radio-button__orig-radio
:checked
+
.el-radio-button__inner
{
background
:
rgba
(
0
,
0
,
0
,
0
);
background
:
rgba
(
0
,
0
,
0
,
0
);
border
:
1px
solid
#3
E7BFA
!
important
;
border
:
1px
solid
#3
e7bfa
!
important
;
color
:
#3
E7BFA
;
color
:
#3
e7bfa
;
line-height
:
14px
;
line-height
:
14px
;
outline
:
none
;
outline
:
none
;
box-shadow
:
none
;
box-shadow
:
none
;
...
...
refined-manager-ui/admin/src/views/system/menu/list.vue
View file @
fd4047d5
<
template
>
<
template
>
<div
className=
"page"
>
<div
class=
"page"
>
<LayoutTable
notPagination
ref=
"layoutTable"
:data=
"tableData"
:config=
"tableConfig"
/>
<LayoutTable
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
notPagination
ref=
"layoutTable"
:data=
"tableData"
:config=
"tableConfig"
/>
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
handleTree
}
from
"
@/assets/utils/table
"
;
import
{
handleTree
}
from
"
@/assets/utils/table
"
;
import
Treeselect
from
"
@riophae/vue-treeselect
"
;
import
Treeselect
from
"
@riophae/vue-treeselect
"
;
import
"
@riophae/vue-treeselect/dist/vue-treeselect.css
"
;
import
"
@riophae/vue-treeselect/dist/vue-treeselect.css
"
;
import
table
from
"
@/assets/mixins/table
"
;
import
table
from
"
@/assets/mixins/table
"
;
...
@@ -16,17 +20,17 @@ import dialogShow from "./dialogshow";
...
@@ -16,17 +20,17 @@ import dialogShow from "./dialogshow";
export
default
{
export
default
{
name
:
"
Menu
"
,
name
:
"
Menu
"
,
mixins
:
[
table
],
mixins
:
[
table
],
components
:
{
Treeselect
,
dialogShow
},
components
:
{
Treeselect
,
dialogShow
},
created
()
{
created
()
{
this
.
query
=
{
"
page
"
:
1
,
"
size
"
:
-
1
}
this
.
query
=
{
page
:
1
,
size
:
-
1
};
},
},
methods
:
{
methods
:
{
afterRender
(
data
)
{
afterRender
(
data
)
{
console
.
log
(
data
)
console
.
log
(
data
)
;
data
.
data
=
handleTree
(
data
.
data
,
"
id
"
,
"
parentId
"
);
data
.
data
=
handleTree
(
data
.
data
,
"
id
"
,
"
parentId
"
);
console
.
log
(
"
tree data:
"
,
data
.
data
)
console
.
log
(
"
tree data:
"
,
data
.
data
);
this
.
menuOptions
=
data
.
data
;
this
.
menuOptions
=
data
.
data
;
this
.
$refs
.
layoutTable
.
showType
=
"
treetable
"
this
.
$refs
.
layoutTable
.
showType
=
"
treetable
"
;
},
},
handleUp
(
data
)
{
handleUp
(
data
)
{
...
@@ -49,7 +53,7 @@ export default {
...
@@ -49,7 +53,7 @@ export default {
})
})
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
if
(
res
&&
res
.
code
&&
res
.
code
==
1
)
{
if
(
res
&&
res
.
code
&&
res
.
code
==
1
)
{
this
.
getData
()
this
.
getData
();
this
.
loading
=
false
;
this
.
loading
=
false
;
this
.
$message
.
success
(
"
更新排序成功!
"
);
this
.
$message
.
success
(
"
更新排序成功!
"
);
}
}
...
@@ -64,8 +68,8 @@ export default {
...
@@ -64,8 +68,8 @@ export default {
this
.
$refs
.
dialogform
.
add
(
row
,
this
.
menuOptions
);
this
.
$refs
.
dialogform
.
add
(
row
,
this
.
menuOptions
);
},
},
handleRowClick
(
row
){
handleRowClick
(
row
)
{
console
.
log
(
row
)
console
.
log
(
row
)
;
//if(row.children || row.children.length === 0) return ;
//if(row.children || row.children.length === 0) return ;
//this.$refs.layoutTable.toggleRowExpansion(row,true)
//this.$refs.layoutTable.toggleRowExpansion(row,true)
},
},
...
@@ -77,7 +81,7 @@ export default {
...
@@ -77,7 +81,7 @@ export default {
/** 重写编辑方法 */
/** 重写编辑方法 */
toEdit
(
row
)
{
toEdit
(
row
)
{
this
.
loading
=
true
;
this
.
loading
=
true
;
this
.
$post
(
this
.
pageInfo
.
exclude
,
{
id
:
row
.
id
})
this
.
$post
(
this
.
pageInfo
.
exclude
,
{
id
:
row
.
id
})
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
if
(
res
&&
res
.
code
&&
res
.
code
==
1
)
{
if
(
res
&&
res
.
code
&&
res
.
code
==
1
)
{
this
.
menuOptions
=
handleTree
(
res
.
data
.
data
);
this
.
menuOptions
=
handleTree
(
res
.
data
.
data
);
...
@@ -96,24 +100,25 @@ export default {
...
@@ -96,24 +100,25 @@ export default {
// 展示菜单图标
// 展示菜单图标
showIcon
(
row
,
column
)
{
showIcon
(
row
,
column
)
{
return
<
i
class
=
{
'
el-icon-
'
+
row
.
imgPath
}
><
/i
>
return
<
i
class
=
{
"
el-icon-
"
+
row
.
imgPath
}
><
/i>
;
},
},
// 操作菜单状态
// 操作菜单状态
changeStatus
(
row
,
column
)
{
changeStatus
(
row
,
column
)
{
return
(
return
(
<
my
-
switch
<
my
-
switch
confirm
confirm
url
=
'
/menu/save
'
url
=
"
/menu/save
"
row
=
{
row
}
row
=
{
row
}
onChange
=
{
this
.
statusChange
}
onChange
=
{
this
.
statusChange
}
value
=
{
this
.
tableData
.
data
}
value
=
{
this
.
tableData
.
data
}
onInput
=
{(
data
)
=>
{
onInput
=
{(
data
)
=>
{
this
.
tableData
.
data
=
data
;
this
.
tableData
.
data
=
data
;
}}
/
>
}}
)
/
>
);
},
},
statusChange
()
{
statusChange
()
{
this
.
$store
.
dispatch
(
'
login
'
);
this
.
$store
.
dispatch
(
"
login
"
);
},
},
},
},
data
()
{
data
()
{
...
@@ -125,41 +130,41 @@ export default {
...
@@ -125,41 +130,41 @@ export default {
search
:
[],
search
:
[],
columns
:
[
columns
:
[
{
{
type
:
'
selection
'
,
type
:
"
selection
"
,
width
:
60
,
width
:
60
,
},
},
{
{
prop
:
'
id
'
,
prop
:
"
id
"
,
label
:
'
ID
'
,
label
:
"
ID
"
,
width
:
120
,
width
:
120
,
},
},
{
{
prop
:
'
name
'
,
prop
:
"
name
"
,
label
:
'
名称
'
,
label
:
"
名称
"
,
width
:
160
,
width
:
160
,
},
},
{
{
prop
:
'
imgPath
'
,
prop
:
"
imgPath
"
,
label
:
'
图标
'
,
label
:
"
图标
"
,
width
:
50
,
width
:
50
,
formatter
:
this
.
showIcon
,
formatter
:
this
.
showIcon
,
},
},
{
{
prop
:
'
authType
'
,
prop
:
"
authType
"
,
label
:
'
权限类型
'
,
label
:
"
权限类型
"
,
formatter
:
this
.
formatter
,
formatter
:
this
.
formatter
,
},
},
{
{
prop
:
'
parentId
'
,
prop
:
"
parentId
"
,
label
:
'
父ID
'
,
label
:
"
父ID
"
,
},
},
{
{
prop
:
'
url
'
,
prop
:
"
url
"
,
label
:
'
地址
'
,
label
:
"
地址
"
,
},
},
{
{
prop
:
'
status
'
,
prop
:
"
status
"
,
label
:
'
状态
'
,
label
:
"
状态
"
,
width
:
100
,
width
:
100
,
formatter
:
this
.
changeStatus
,
formatter
:
this
.
changeStatus
,
},
},
...
@@ -183,7 +188,7 @@ export default {
...
@@ -183,7 +188,7 @@ export default {
{
{
label
:
"
操作
"
,
label
:
"
操作
"
,
width
:
280
,
width
:
280
,
formatter
:
row
=>
{
formatter
:
(
row
)
=>
{
return
(
return
(
<
div
>
<
div
>
<
el
-
link
<
el
-
link
...
@@ -200,7 +205,6 @@ export default {
...
@@ -200,7 +205,6 @@ export default {
onClick
=
{()
=>
{
onClick
=
{()
=>
{
this
.
handleDown
(
row
);
this
.
handleDown
(
row
);
}}
}}
><
/el-link
>
><
/el-link
>
<
el
-
button
<
el
-
button
...
@@ -223,11 +227,11 @@ export default {
...
@@ -223,11 +227,11 @@ export default {
/
>
/
>
<
/div
>
<
/div
>
);
);
}
}
,
}
}
,
]
]
,
}
}
,
};
};
}
}
,
};
};
</
script
>
</
script
>
refined-manager-ui/admin/vue.config.js
View file @
fd4047d5
...
@@ -17,7 +17,8 @@ module.exports = {
...
@@ -17,7 +17,8 @@ module.exports = {
hot
:
true
,
//自动保存
hot
:
true
,
//自动保存
proxy
:
{
proxy
:
{
'
/refined
'
:
{
'
/refined
'
:
{
target
:
'
http://127.0.0.1:21080
'
,
target
:
'
http://112.19.80.237:11080/
'
,
// target: 'http://127.0.0.1:21080',
changeOrigin
:
true
,
changeOrigin
:
true
,
secure
:
false
,
secure
:
false
,
cookieDomainRewrite
:
'
localhost
'
,
cookieDomainRewrite
:
'
localhost
'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment