system-clients 3.1.93 → 3.1.95-aode
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +16 -16
- package/build/webpack.base.conf.js +78 -85
- package/package.json +102 -102
- package/src/components/Main.vue +30 -107
- package/src/components/equipment/EquipmentManage.vue +65 -65
- package/src/components/equipment/PcAdd.vue +5 -5
- package/src/components/equipment/PcList.vue +5 -5
- package/src/components/equipment/PhoneAdd.vue +4 -4
- package/src/components/equipment/PhoneList.vue +4 -4
- package/src/components/equipment/PosAdd.vue +137 -323
- package/src/components/equipment/PosList.vue +164 -294
- package/src/components/equipment/PosManage.vue +67 -138
- package/src/components/parammanage/ParamManage.vue +2 -2
- package/src/components/parammanage/ParamPage.vue +7 -7
- package/src/components/parammanage/SinglePage.vue +4 -4
- package/src/components/server/Login.vue +42 -48
- package/src/components/server/ResSelect.vue +0 -5
- package/src/components/server/ResSelectGroup.vue +118 -155
- package/src/components/server/RightTree.vue +257 -262
- package/src/plugins/GetLoginInfoService.js +7 -7
- package/src/styles/less/aofeng/standard.less +60 -446
- package/src/styles/less/aofeng/themeOne/BinaryTemplate.less +13 -13
- package/src/styles/less/aofeng/themeOne/systemStyle.less +6 -6
- package/src/styles/less/tables.less +0 -50
- package/src/styles/less/type.less +3 -16
- package/src/styles/less/variables.less +3 -6
- package/src/system.js +83 -93
- package/static/aodelogo.png +0 -0
- package/static/aodenewlogo.png +0 -0
- package/static/{logo.png → ewmlogo.png} +0 -0
- package/.gradle/5.2.1/gc.properties +0 -0
- package/.gradle/vcs-1/gc.properties +0 -0
- package/src/components/TabButton.vue +0 -201
- package/src/components/Tabs.vue +0 -67
- package/src/components/equipment/PosManageBoth.vue +0 -125
- package/src/components/equipment/PosParamAdd.vue +0 -236
- package/src/components/equipment/PosParamList.vue +0 -121
- package/src/components/equipment/PosParamManage.vue +0 -51
- package/src/components/server/ImageVieweTest.vue +0 -56
- package/src/components/server/ImageViewer.vue +0 -350
- package/src/components/server/PcdBuildingSelect.vue +0 -241
- package/src/styles/less/manageStyle/manageStyle/manageChile.less +0 -180
- package/src/styles/less/manageStyle/manageStyle/manageStyle.less +0 -1102
- package/src/styles/less/manageStyle/manageStyle/safeStyle.less +0 -498
- package/static/newStyle/about-us.png +0 -0
- package/yarn-error.log +0 -6896
@@ -137,8 +137,8 @@
|
|
137
137
|
@media screen and (max-width: 1920px) {
|
138
138
|
|
139
139
|
.basic-main {
|
140
|
-
padding: 0.
|
141
|
-
margin: 0.
|
140
|
+
padding: 0.6%;
|
141
|
+
margin: 0.6% 0.6%;
|
142
142
|
width: 98.8%;
|
143
143
|
height: auto;
|
144
144
|
background-color: #ffffff;
|
@@ -213,8 +213,8 @@
|
|
213
213
|
// background-color: #ffffff!important;
|
214
214
|
//}
|
215
215
|
.binary-left {
|
216
|
-
padding: 0.
|
217
|
-
margin: 0.
|
216
|
+
padding: 0.6%;
|
217
|
+
margin: 0.6% 0.6%;
|
218
218
|
width: 58%;
|
219
219
|
height: auto;
|
220
220
|
background-color: #ffffff;
|
@@ -223,8 +223,8 @@
|
|
223
223
|
}
|
224
224
|
|
225
225
|
.binary-right {
|
226
|
-
padding: 0.
|
227
|
-
margin: 0.
|
226
|
+
padding: 0.6%;
|
227
|
+
margin: 0.6% 0.6% 0.6% 0;
|
228
228
|
width: 40%;
|
229
229
|
height: auto;
|
230
230
|
background-color: #ffffff;
|
@@ -255,12 +255,12 @@
|
|
255
255
|
}
|
256
256
|
|
257
257
|
|
258
|
-
/*分辨率@
|
258
|
+
/*分辨率@1920*1080*/
|
259
259
|
@media screen and (max-width: 1600px) {
|
260
260
|
|
261
261
|
.basic-main {
|
262
|
-
padding: 0.
|
263
|
-
margin: 0.
|
262
|
+
padding: 0.6%;
|
263
|
+
margin: 0.6% 0.6%;
|
264
264
|
width: 98.8%;
|
265
265
|
height: auto;
|
266
266
|
background-color: #ffffff;
|
@@ -335,8 +335,8 @@
|
|
335
335
|
// background-color: #ffffff!important;
|
336
336
|
//}
|
337
337
|
.binary-left {
|
338
|
-
padding: 0.
|
339
|
-
margin: 0.
|
338
|
+
padding: 0.6%;
|
339
|
+
margin: 0.6% 0.6%;
|
340
340
|
width: 58%;
|
341
341
|
height: auto;
|
342
342
|
background-color: #ffffff;
|
@@ -345,8 +345,8 @@
|
|
345
345
|
}
|
346
346
|
|
347
347
|
.binary-right {
|
348
|
-
padding: 0.
|
349
|
-
margin: 0.
|
348
|
+
padding: 0.6%;
|
349
|
+
margin: 0.6% 0.6% 0.6% 0;
|
350
350
|
width: 40%;
|
351
351
|
height: auto;
|
352
352
|
background-color: #ffffff;
|
@@ -333,7 +333,7 @@ input{outline:none;}
|
|
333
333
|
//system左侧树列表
|
334
334
|
.system-left {
|
335
335
|
float: left;
|
336
|
-
width:
|
336
|
+
width: 9%;
|
337
337
|
height: 100%;
|
338
338
|
|
339
339
|
.system-left-chi {
|
@@ -760,7 +760,7 @@ input{outline:none;}
|
|
760
760
|
//system左侧树列表
|
761
761
|
.system-left{
|
762
762
|
float: left;
|
763
|
-
width:
|
763
|
+
width: 10%;
|
764
764
|
|
765
765
|
height: 100%;
|
766
766
|
|
@@ -1193,7 +1193,7 @@ input{outline:none;}
|
|
1193
1193
|
//system左侧树列表
|
1194
1194
|
.system-left{
|
1195
1195
|
float: left;
|
1196
|
-
width:
|
1196
|
+
width: 11%;
|
1197
1197
|
height: 100%;
|
1198
1198
|
.system-left-chi{
|
1199
1199
|
height: 96%;
|
@@ -1610,7 +1610,7 @@ input{outline:none;}
|
|
1610
1610
|
//system左侧树列表
|
1611
1611
|
.system-left{
|
1612
1612
|
float: left;
|
1613
|
-
width:
|
1613
|
+
width: 11%;
|
1614
1614
|
height:100%;
|
1615
1615
|
.system-left-chi{
|
1616
1616
|
height: 96%;
|
@@ -2033,7 +2033,7 @@ input{outline:none;}
|
|
2033
2033
|
//system左侧树列表
|
2034
2034
|
.system-left{
|
2035
2035
|
float: left;
|
2036
|
-
width:
|
2036
|
+
width: 11%;
|
2037
2037
|
height: 100%;
|
2038
2038
|
.system-left-chi{
|
2039
2039
|
height: 96%;
|
@@ -2448,7 +2448,7 @@ input{outline:none;}
|
|
2448
2448
|
//system左侧树列表
|
2449
2449
|
.system-left{
|
2450
2450
|
float: left;
|
2451
|
-
width:
|
2451
|
+
width: 13%;
|
2452
2452
|
height: 100%;
|
2453
2453
|
.system-left-chi{
|
2454
2454
|
height: 96%;
|
@@ -71,57 +71,7 @@ th {
|
|
71
71
|
}
|
72
72
|
}
|
73
73
|
|
74
|
-
.tablenew {
|
75
|
-
width: 100%;
|
76
|
-
max-width: 100%;
|
77
|
-
margin-bottom: @line-height-computed;
|
78
|
-
// Cells
|
79
|
-
> thead,
|
80
|
-
> tbody,
|
81
|
-
> tfoot {
|
82
|
-
> tr {
|
83
|
-
> th,
|
84
|
-
> td {
|
85
|
-
padding: 4px !important;
|
86
|
-
line-height: @line-height-base;
|
87
|
-
vertical-align: middle; // 原本为top
|
88
|
-
border-top: 0px solid @table-border-color; // 原本为0px
|
89
|
-
text-align: left;// 原本没有
|
90
|
-
color: #304A66;
|
91
|
-
// 原本没有,自己添加
|
92
|
-
font-family: 微软雅黑;
|
93
|
-
|
94
|
-
}
|
95
|
-
}
|
96
|
-
}
|
97
|
-
// Bottom align for column headings
|
98
|
-
> thead > tr > th {
|
99
|
-
text-align: center;
|
100
|
-
vertical-align: middle; // 原本为bottom
|
101
|
-
border-bottom: 2px solid @table-border-color;
|
102
|
-
font-weight: 600;
|
103
|
-
}
|
104
|
-
// Remove top border from thead by default
|
105
|
-
> caption + thead,
|
106
|
-
> colgroup + thead,
|
107
|
-
> thead:first-child {
|
108
|
-
> tr:first-child {
|
109
|
-
> th,
|
110
|
-
> td {
|
111
|
-
border-top: 0;
|
112
|
-
}
|
113
|
-
}
|
114
|
-
}
|
115
|
-
// Account for multiple tbody instances
|
116
|
-
> tbody + tbody {
|
117
|
-
border-top: 2px solid @table-border-color;
|
118
|
-
}
|
119
74
|
|
120
|
-
// Nesting
|
121
|
-
.table {
|
122
|
-
background-color: @body-bg;
|
123
|
-
}
|
124
|
-
}
|
125
75
|
// Condensed table w/ half padding
|
126
76
|
|
127
77
|
.table-condensed {
|
@@ -131,7 +131,7 @@ mark,
|
|
131
131
|
.bg-variant(@state-success-bg);
|
132
132
|
}
|
133
133
|
.bg-info {
|
134
|
-
|
134
|
+
.bg-variant(@state-info-bg);
|
135
135
|
font-weight: 600;
|
136
136
|
}
|
137
137
|
.bg-warning {
|
@@ -140,20 +140,7 @@ mark,
|
|
140
140
|
.bg-danger {
|
141
141
|
.bg-variant(@state-danger-bg);
|
142
142
|
}
|
143
|
-
|
144
|
-
.report-primary {
|
145
|
-
color: #000809;
|
146
|
-
.bg-variant(@report-bg);
|
147
|
-
border-color: darken(@border, 25%);
|
148
|
-
}
|
149
|
-
.report-title{
|
150
|
-
color: #000809;
|
151
|
-
.bg-variant(@report-title);
|
152
|
-
border-color: darken(@border, 25%);
|
153
|
-
}
|
154
|
-
.report-success {
|
155
|
-
.bg-variant(@report-success);
|
156
|
-
}
|
143
|
+
|
157
144
|
|
158
145
|
// Page header
|
159
146
|
// -------------------------
|
@@ -245,7 +232,7 @@ dd {
|
|
245
232
|
|
246
233
|
// Abbreviations and acronyms
|
247
234
|
abbr[title],
|
248
|
-
|
235
|
+
// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
|
249
236
|
abbr[data-original-title] {
|
250
237
|
cursor: help;
|
251
238
|
border-bottom: 1px dotted @abbr-border-color;
|
@@ -19,10 +19,7 @@
|
|
19
19
|
@brand-info: #5bc0de;
|
20
20
|
@brand-warning: #f0ad4e;
|
21
21
|
@brand-danger: #d9534f;
|
22
|
-
|
23
|
-
@report-success: #ffffff;
|
24
|
-
@border: #adacac;
|
25
|
-
@report-title: #80add9;
|
22
|
+
|
26
23
|
|
27
24
|
//== Scaffolding
|
28
25
|
//
|
@@ -51,14 +48,14 @@
|
|
51
48
|
@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
|
52
49
|
@font-family-base: @font-family-sans-serif;
|
53
50
|
|
54
|
-
@font-size-base:
|
51
|
+
@font-size-base: 16px;
|
55
52
|
@font-size-large: ceil((@font-size-base * 1.25)); // ~18px
|
56
53
|
@font-size-small: ceil((@font-size-base * 0.85)); // ~12px
|
57
54
|
|
58
55
|
@font-size-h1: floor((@font-size-base * 2.6)); // ~36px
|
59
56
|
@font-size-h2: floor((@font-size-base * 2.15)); // ~30px
|
60
57
|
@font-size-h3: ceil((@font-size-base * 1.7)); // ~24px
|
61
|
-
@font-size-h4: ceil((@font-size-base * 1.
|
58
|
+
@font-size-h4: ceil((@font-size-base * 1.25)); // ~18px
|
62
59
|
@font-size-h5: @font-size-base;
|
63
60
|
@font-size-h6: ceil((@font-size-base * 0.85)); // ~12px
|
64
61
|
|
package/src/system.js
CHANGED
@@ -1,93 +1,83 @@
|
|
1
|
-
import Vue from 'vue'
|
2
|
-
import GetLoginInfoService from './plugins/GetLoginInfoService'
|
3
|
-
import GetAppDataService from './stores/AppData'
|
4
|
-
// 热力
|
5
|
-
import HeatGetLoginInfoService from './plugins/HeatGetLoginInfoService'
|
6
|
-
import HeatGetAppDataService from './stores/HeatAppData'
|
7
|
-
// 热力登陆控制
|
8
|
-
Vue.$heatCompatibility = Vue.prototype.$heatCompatibility = false
|
9
|
-
|
10
|
-
// /** **************************登录与主界面相关******************************/
|
11
|
-
|
12
|
-
import login from './components/server/Login'
|
13
|
-
import changeDeclare from './components/server/ChangeDeclare'
|
14
|
-
import addChangemsg from './components/server/AddChangeMsg'
|
15
|
-
import homePage from './components/Main'
|
16
|
-
import leftTree from './components/server/LeftTree'
|
17
|
-
import iconTree from './components/server/IconTree'
|
18
|
-
import modifyPw from './components/server/ModifyPw'
|
19
|
-
import LoadData from './components/server/LoadData'
|
20
|
-
import RightTree from './components/server/RightTree'
|
21
|
-
import TestRightTree from './components/server/TestRightTree'
|
22
|
-
//资源选择
|
23
|
-
import ResSelect from './components/server/ResSelect'
|
24
|
-
import ResSelectGroup from './components/server/ResSelectGroup'
|
25
|
-
|
26
|
-
//资源选择测试
|
27
|
-
import TestResSelect from './components/server/TestResSelect'
|
28
|
-
import RoleSelector from "./components/server/RoleSelector";
|
29
|
-
export default function (val) {
|
30
|
-
//验证码开关赋值
|
31
|
-
if(val!=null){
|
32
|
-
GetLoginInfoService.Verification=val
|
33
|
-
}
|
34
|
-
Vue.use(GetLoginInfoService)
|
35
|
-
Vue.use(GetAppDataService)
|
36
|
-
Vue.use(HeatGetLoginInfoService)
|
37
|
-
Vue.use(HeatGetAppDataService)
|
38
|
-
|
39
|
-
Vue.component('login', login)
|
40
|
-
Vue.component('change-declare', changeDeclare)
|
41
|
-
Vue.component('add-changemsg', addChangemsg)
|
42
|
-
Vue.component('home-page', homePage)
|
43
|
-
Vue.component('left-tree', leftTree)
|
44
|
-
Vue.component('icon-tree', iconTree)
|
45
|
-
Vue.component('modify-pw', modifyPw)
|
46
|
-
Vue.component('load-data', LoadData)
|
47
|
-
Vue.component('right-tree', RightTree)
|
48
|
-
Vue.component('test-right-tree', TestRightTree)
|
49
|
-
Vue.component('role-selector', RoleSelector)
|
50
|
-
//资源选择
|
51
|
-
Vue.component('res-select', ResSelect)
|
52
|
-
Vue.component('res-select-group', ResSelectGroup)
|
53
|
-
//资源选择测试
|
54
|
-
Vue.component('test-res-select', TestResSelect)
|
55
|
-
|
56
|
-
// 参数管理(新)
|
57
|
-
Vue.component('param-manage', (resolve) => { require(['./components/parammanage/ParamManage'], resolve) })
|
58
|
-
// 参数管理
|
59
|
-
Vue.component('param-page', (resolve) => { require(['./components/parammanage/ParamPage'], resolve) })
|
60
|
-
// 参数管理
|
61
|
-
Vue.component('single-page', (resolve) => { require(['./components/parammanage/SinglePage'], resolve) })
|
62
|
-
|
63
|
-
// 参数管理(旧)
|
64
|
-
Vue.component('param-manages', (resolve) => { require(['./components/parammanage/ParamManages'], resolve) })
|
65
|
-
// 参数管理
|
66
|
-
Vue.component('param-pages', (resolve) => { require(['./components/parammanage/ParamPages'], resolve) })
|
67
|
-
// 参数管理
|
68
|
-
Vue.component('single-pages', (resolve) => { require(['./components/parammanage/SinglePages'], resolve) })
|
69
|
-
|
70
|
-
// 终端管理
|
71
|
-
Vue.component('equipment-manage', (resolve) => { require(['./components/equipment/EquipmentManage'], resolve) })
|
72
|
-
// pc端控制
|
73
|
-
Vue.component('pc-manage', (resolve) => { require(['./components/equipment/PcManage'], resolve) })
|
74
|
-
// phone端控制
|
75
|
-
Vue.component('phone-manage', (resolve) => { require(['./components/equipment/PhoneManage'], resolve) })
|
76
|
-
// pos端控制
|
77
|
-
Vue.component('pos-manage', (resolve) => { require(['./components/equipment/PosManage'], resolve) })
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
Vue.component('
|
82
|
-
|
83
|
-
|
84
|
-
Vue.component('material-data', (resolve) => { require(['./components/materialManage/materialData.vue'], resolve) })
|
85
|
-
Vue.component('material-data-list', (resolve) => { require(['./components/materialManage/materialList.vue'], resolve) })
|
86
|
-
// 图片查看器
|
87
|
-
Vue.component('image-viewer', (resolve) => { require(['./components/server/ImageViewer'], resolve) })
|
88
|
-
// 测试图片查看器
|
89
|
-
Vue.component('image-viewer-test', (resolve) => { require(['./components/server/ImageVieweTest'], resolve) })
|
90
|
-
|
91
|
-
//省市区、街道、小区、楼栋级联查询
|
92
|
-
Vue.component('pcd-building-select', (resolve) => { require(['./components/server/PcdBuildingSelect'], resolve) })
|
93
|
-
}
|
1
|
+
import Vue from 'vue'
|
2
|
+
import GetLoginInfoService from './plugins/GetLoginInfoService'
|
3
|
+
import GetAppDataService from './stores/AppData'
|
4
|
+
// 热力
|
5
|
+
import HeatGetLoginInfoService from './plugins/HeatGetLoginInfoService'
|
6
|
+
import HeatGetAppDataService from './stores/HeatAppData'
|
7
|
+
// 热力登陆控制
|
8
|
+
Vue.$heatCompatibility = Vue.prototype.$heatCompatibility = false
|
9
|
+
|
10
|
+
// /** **************************登录与主界面相关******************************/
|
11
|
+
|
12
|
+
import login from './components/server/Login'
|
13
|
+
import changeDeclare from './components/server/ChangeDeclare'
|
14
|
+
import addChangemsg from './components/server/AddChangeMsg'
|
15
|
+
import homePage from './components/Main'
|
16
|
+
import leftTree from './components/server/LeftTree'
|
17
|
+
import iconTree from './components/server/IconTree'
|
18
|
+
import modifyPw from './components/server/ModifyPw'
|
19
|
+
import LoadData from './components/server/LoadData'
|
20
|
+
import RightTree from './components/server/RightTree'
|
21
|
+
import TestRightTree from './components/server/TestRightTree'
|
22
|
+
//资源选择
|
23
|
+
import ResSelect from './components/server/ResSelect'
|
24
|
+
import ResSelectGroup from './components/server/ResSelectGroup'
|
25
|
+
|
26
|
+
//资源选择测试
|
27
|
+
import TestResSelect from './components/server/TestResSelect'
|
28
|
+
import RoleSelector from "./components/server/RoleSelector";
|
29
|
+
export default function (val) {
|
30
|
+
//验证码开关赋值
|
31
|
+
if(val!=null){
|
32
|
+
GetLoginInfoService.Verification=val
|
33
|
+
}
|
34
|
+
Vue.use(GetLoginInfoService)
|
35
|
+
Vue.use(GetAppDataService)
|
36
|
+
Vue.use(HeatGetLoginInfoService)
|
37
|
+
Vue.use(HeatGetAppDataService)
|
38
|
+
|
39
|
+
Vue.component('login', login)
|
40
|
+
Vue.component('change-declare', changeDeclare)
|
41
|
+
Vue.component('add-changemsg', addChangemsg)
|
42
|
+
Vue.component('home-page', homePage)
|
43
|
+
Vue.component('left-tree', leftTree)
|
44
|
+
Vue.component('icon-tree', iconTree)
|
45
|
+
Vue.component('modify-pw', modifyPw)
|
46
|
+
Vue.component('load-data', LoadData)
|
47
|
+
Vue.component('right-tree', RightTree)
|
48
|
+
Vue.component('test-right-tree', TestRightTree)
|
49
|
+
Vue.component('role-selector', RoleSelector)
|
50
|
+
//资源选择
|
51
|
+
Vue.component('res-select', ResSelect)
|
52
|
+
Vue.component('res-select-group', ResSelectGroup)
|
53
|
+
//资源选择测试
|
54
|
+
Vue.component('test-res-select', TestResSelect)
|
55
|
+
|
56
|
+
// 参数管理(新)
|
57
|
+
Vue.component('param-manage', (resolve) => { require(['./components/parammanage/ParamManage'], resolve) })
|
58
|
+
// 参数管理
|
59
|
+
Vue.component('param-page', (resolve) => { require(['./components/parammanage/ParamPage'], resolve) })
|
60
|
+
// 参数管理
|
61
|
+
Vue.component('single-page', (resolve) => { require(['./components/parammanage/SinglePage'], resolve) })
|
62
|
+
|
63
|
+
// 参数管理(旧)
|
64
|
+
Vue.component('param-manages', (resolve) => { require(['./components/parammanage/ParamManages'], resolve) })
|
65
|
+
// 参数管理
|
66
|
+
Vue.component('param-pages', (resolve) => { require(['./components/parammanage/ParamPages'], resolve) })
|
67
|
+
// 参数管理
|
68
|
+
Vue.component('single-pages', (resolve) => { require(['./components/parammanage/SinglePages'], resolve) })
|
69
|
+
|
70
|
+
// 终端管理
|
71
|
+
Vue.component('equipment-manage', (resolve) => { require(['./components/equipment/EquipmentManage'], resolve) })
|
72
|
+
// pc端控制
|
73
|
+
Vue.component('pc-manage', (resolve) => { require(['./components/equipment/PcManage'], resolve) })
|
74
|
+
// phone端控制
|
75
|
+
Vue.component('phone-manage', (resolve) => { require(['./components/equipment/PhoneManage'], resolve) })
|
76
|
+
// pos端控制
|
77
|
+
Vue.component('pos-manage', (resolve) => { require(['./components/equipment/PosManage'], resolve) })
|
78
|
+
|
79
|
+
// 材料字典
|
80
|
+
Vue.component('material-data', (resolve) => { require(['./components/materialManage/materialData.vue'], resolve) })
|
81
|
+
Vue.component('material-data-list', (resolve) => { require(['./components/materialManage/materialList.vue'], resolve) })
|
82
|
+
|
83
|
+
}
|
Binary file
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,201 +0,0 @@
|
|
1
|
-
<template>
|
2
|
-
<div class='flex foot_tabset1'>
|
3
|
-
<!-- Nav tabs -->
|
4
|
-
<ul class="nav nav-{{navStyle}}" role="tablist" style="margin-left: 1%">
|
5
|
-
<li style="margin-right: 10px;height: 100%"
|
6
|
-
:id="'vc-tabset-li-'+attach +'-'+$index"
|
7
|
-
v-for="r in renderData"
|
8
|
-
@click.prevent="handleTabListClick($index, r)"
|
9
|
-
:disabled="r.disabled"
|
10
|
-
>
|
11
|
-
<button v-if="button" class="button_new" style="width: max-content" v-bind:class="{
|
12
|
-
'btn-succ': ($index === active),
|
13
|
-
'disabled': r.disabled
|
14
|
-
}">
|
15
|
-
<slot name="header">
|
16
|
-
{{ r.header }}
|
17
|
-
</slot>
|
18
|
-
<!-- 关闭按钮 -->
|
19
|
-
<span class="glyphicon glyphicon-remove" style="margin-left: 15px;" @click="deletetTab(r)" v-if="close"
|
20
|
-
:id="'vc-tabset-close-'+attach +'-'+$index"></span>
|
21
|
-
</button>
|
22
|
-
<span v-if="!button" v-bind:class="{
|
23
|
-
'span-active': ($index === active),
|
24
|
-
'span-disable': ($index !== active)
|
25
|
-
}">
|
26
|
-
<slot name="header">
|
27
|
-
{{ r.header }}
|
28
|
-
</slot>
|
29
|
-
<!-- 关闭按钮 -->
|
30
|
-
<span class="glyphicon glyphicon-remove" style="margin-left: 15px;" @click="deletetTab(r)" v-if="close"
|
31
|
-
:id="'vc-tabset-close-'+attach +'-'+$index"></span>
|
32
|
-
</span>
|
33
|
-
|
34
|
-
</li>
|
35
|
-
</ul>
|
36
|
-
|
37
|
-
<!-- Tab panes -->
|
38
|
-
<div class="tab-content span" v-el:tab-content>
|
39
|
-
<slot></slot>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
</template>
|
43
|
-
|
44
|
-
<script>
|
45
|
-
import {remove} from 'vue-client/src/stores/Remove.js'
|
46
|
-
|
47
|
-
export default {
|
48
|
-
props: {
|
49
|
-
navStyle: {
|
50
|
-
type: String,
|
51
|
-
default: 'tabs'
|
52
|
-
},
|
53
|
-
effect: {
|
54
|
-
type: String,
|
55
|
-
default: 'fadein'
|
56
|
-
},
|
57
|
-
active: {
|
58
|
-
type: Number,
|
59
|
-
default: 0
|
60
|
-
},
|
61
|
-
close: {
|
62
|
-
type: Boolean,
|
63
|
-
default: false
|
64
|
-
},
|
65
|
-
button: {
|
66
|
-
type: Boolean,
|
67
|
-
default: true
|
68
|
-
},
|
69
|
-
attach: {
|
70
|
-
type: String,
|
71
|
-
default: 'vuestrap'
|
72
|
-
},
|
73
|
-
content: {}
|
74
|
-
},
|
75
|
-
ready() {
|
76
|
-
remove.$on('remove', (name) => {
|
77
|
-
console.log('tabset收$on 到的名字为:', name)
|
78
|
-
this.$removeTab(name)
|
79
|
-
})
|
80
|
-
},
|
81
|
-
data() {
|
82
|
-
return {
|
83
|
-
// 数据格式:{comp, header,disabled}
|
84
|
-
// - comp: 当前页签对应的tab组件
|
85
|
-
renderData: []
|
86
|
-
}
|
87
|
-
},
|
88
|
-
methods: {
|
89
|
-
handleTabListClick(index, el) {
|
90
|
-
// 没有打开过, 则添加显示
|
91
|
-
this.$dispatch('tab-changed')
|
92
|
-
if (!this.$parent.show.includes(el.header)) {
|
93
|
-
this.$parent.show.push(el.header)
|
94
|
-
}
|
95
|
-
if (el.comp._scope && el.comp._scope.tab) {
|
96
|
-
this.$dispatch('tab-changed', el.comp._scope.tab.comp.name)
|
97
|
-
}
|
98
|
-
if (!el.disabled) this.active = index
|
99
|
-
},
|
100
|
-
// deletetab函数为自己添加
|
101
|
-
deletetTab(el) {
|
102
|
-
this.$removeTab(el.comp._scope.tab.comp.name)
|
103
|
-
remove.$emit('delete', el.comp._scope.tab.comp.name)
|
104
|
-
},
|
105
|
-
// 根据删除也下标,修改所有页签的下标
|
106
|
-
modifyAllIndex(index) {
|
107
|
-
let cur = this.active
|
108
|
-
this.$nextTick(() => {
|
109
|
-
// 关闭页签以后的多有页签的的下标向前挪动一位,之前的页签不动
|
110
|
-
for (var i = index; i < this.renderData.length; i++) {
|
111
|
-
this.renderData[i].comp.index -= 1
|
112
|
-
}
|
113
|
-
// 修改激活页
|
114
|
-
// 获取当前激活页签下标,关闭在当前激活页之后(包含当前激活页),当前激活页下标不变
|
115
|
-
// 当关闭当前激活页之前(激活页向前移动一位)
|
116
|
-
if (this.active > index || this.active === this.renderData.length) {
|
117
|
-
this.active = cur - 1
|
118
|
-
} else if (cur === 0) {
|
119
|
-
this.active = 0
|
120
|
-
} else {
|
121
|
-
this.active = cur
|
122
|
-
}
|
123
|
-
if (this.active === -1) {
|
124
|
-
this.$dispatch('tab-changed', null)
|
125
|
-
} else {
|
126
|
-
this.$dispatch('tab-changed', this.renderData[this.active].comp._scope.tab.comp.name)
|
127
|
-
}
|
128
|
-
})
|
129
|
-
}
|
130
|
-
},
|
131
|
-
events: {
|
132
|
-
'delete'(index) {
|
133
|
-
this.modifyAllIndex(index)
|
134
|
-
}
|
135
|
-
}
|
136
|
-
}
|
137
|
-
</script>
|
138
|
-
|
139
|
-
<style scoped>
|
140
|
-
ul > li > a {
|
141
|
-
position: relative;
|
142
|
-
}
|
143
|
-
|
144
|
-
ul > li > a > span {
|
145
|
-
display: none;
|
146
|
-
}
|
147
|
-
|
148
|
-
.span-active {
|
149
|
-
width: max-content;
|
150
|
-
border-bottom: 3px solid #5ac0d9;
|
151
|
-
height: 100%;
|
152
|
-
display: inline-block;
|
153
|
-
font-size: 1.5rem;
|
154
|
-
color: #666;
|
155
|
-
font-weight: 550;
|
156
|
-
padding: 0px 10px;
|
157
|
-
padding-top: 3px;
|
158
|
-
vertical-align: bottom;
|
159
|
-
}
|
160
|
-
|
161
|
-
.span-disable {
|
162
|
-
width: max-content;
|
163
|
-
height: 100%;
|
164
|
-
display: inline-block;
|
165
|
-
font-size: 1.5rem;
|
166
|
-
color: #666;
|
167
|
-
font-weight: 550;
|
168
|
-
padding: 0px 10px;
|
169
|
-
padding-top: 3px;
|
170
|
-
vertical-align: bottom;
|
171
|
-
}
|
172
|
-
|
173
|
-
/*ul > li > a:hover > span {*/
|
174
|
-
/*display: initial;*/
|
175
|
-
/*position: absolute;*/
|
176
|
-
/*right: 0;*/
|
177
|
-
/*top: 35%;*/
|
178
|
-
/*border: 1px solid #EAEAEA;*/
|
179
|
-
/*}*/
|
180
|
-
/*ul > li > a:hover > span:hover {*/
|
181
|
-
/*border: 1px solid #EAEAEA;*/
|
182
|
-
/*color: #5cb95c;*/
|
183
|
-
/*}*/
|
184
|
-
ul > li > button {
|
185
|
-
background-color: #FFFFFF;
|
186
|
-
border-radius: 4px;
|
187
|
-
color: #999;
|
188
|
-
border: 1px solid #5cb95c;
|
189
|
-
}
|
190
|
-
|
191
|
-
.btn-succ {
|
192
|
-
background-color: #6aa6e2;
|
193
|
-
border-radius: 4px;
|
194
|
-
color: #fff;
|
195
|
-
}
|
196
|
-
|
197
|
-
.foot_tabset1 > .nav {
|
198
|
-
/*overflow-x: scroll;*/
|
199
|
-
white-space: nowrap;
|
200
|
-
}
|
201
|
-
</style>
|