system-clients 3.1.96 → 3.1.97-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/.gradle/5.2.1/executionHistory/executionHistory.bin +0 -0
- package/.gradle/5.2.1/executionHistory/executionHistory.lock +0 -0
- package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
- package/.gradle/5.2.1/fileHashes/fileHashes.bin +0 -0
- package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
- package/.gradle/7.1/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/.gradle/{5.2.1 → 7.1/dependencies-accessors}/gc.properties +0 -0
- package/.gradle/7.1/executionHistory/executionHistory.bin +0 -0
- package/.gradle/7.1/executionHistory/executionHistory.lock +0 -0
- package/.gradle/7.1/fileChanges/last-build.bin +0 -0
- package/.gradle/7.1/fileHashes/fileHashes.bin +0 -0
- package/.gradle/7.1/fileHashes/fileHashes.lock +0 -0
- package/.gradle/{buildOutputCleanup/built.bin → 7.1/gc.properties} +0 -0
- package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/.gradle/buildOutputCleanup/cache.properties +2 -2
- package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/.gradle/checksums/checksums.lock +0 -0
- package/build/webpack.base.conf.js +78 -85
- package/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/gradlew +185 -0
- package/gradlew.bat +89 -0
- package/package.json +4 -4
- package/src/components/Main.vue +512 -622
- 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 +47 -70
- 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/components/server/RoleSelector.vue +90 -89
- 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 +2650 -2650
- package/src/styles/less/fonts-list.less +4 -4
- package/src/styles/less/stand.less +1 -1
- 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/buildOutputCleanup/cache.properties.lock +0 -1
- 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
@@ -8,18 +8,18 @@
|
|
8
8
|
|
9
9
|
@font-face {
|
10
10
|
font-family: 'PINGFANG-MEDIUM'; //重命名字体名
|
11
|
-
src: url('../fonts/pingfang-medium.ttf'); //引入字体
|
11
|
+
//src: url('../fonts/pingfang-medium.ttf'); //引入字体
|
12
12
|
}
|
13
13
|
@font-face {
|
14
14
|
font-family: 'PINGFANG-BOLD'; //重命名字体名
|
15
|
-
src: url('../fonts/pingfang-bold.ttf'); //引入字体
|
15
|
+
//src: url('../fonts/pingfang-bold.ttf'); //引入字体
|
16
16
|
}
|
17
17
|
@font-face {
|
18
18
|
font-family: 'PINGFANG-REGULAR'; //重命名字体名
|
19
|
-
src: url('../fonts/pingfang-regular.ttf'); //引入字体
|
19
|
+
//src: url('../fonts/pingfang-regular.ttf'); //引入字体
|
20
20
|
}
|
21
21
|
|
22
22
|
@font-face {
|
23
23
|
font-family: PingFang;
|
24
|
-
src:url('../fonts/PingFangSC-Regular.ttf');
|
24
|
+
//src:url('../fonts/PingFangSC-Regular.ttf');
|
25
25
|
}
|
@@ -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
|
@@ -1 +0,0 @@
|
|
1
|
-
|
@@ -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>
|
package/src/components/Tabs.vue
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
<template>
|
2
|
-
<div role="tabpanel" class="tab-pane"
|
3
|
-
v-bind:class="{hide:!show}"
|
4
|
-
v-show="show"
|
5
|
-
:transition="transition"
|
6
|
-
>
|
7
|
-
<slot></slot>
|
8
|
-
</div>
|
9
|
-
</template>
|
10
|
-
|
11
|
-
<script>
|
12
|
-
import coerceBoolean from 'vue-client/src/vue-strap/src/utils/coerceBoolean.js'
|
13
|
-
|
14
|
-
export default {
|
15
|
-
props: {
|
16
|
-
header: {
|
17
|
-
type: String
|
18
|
-
},
|
19
|
-
disabled: {
|
20
|
-
type: Boolean,
|
21
|
-
coerce: coerceBoolean,
|
22
|
-
default: false
|
23
|
-
}
|
24
|
-
},
|
25
|
-
data () {
|
26
|
-
return {
|
27
|
-
index: 0,
|
28
|
-
show: false
|
29
|
-
}
|
30
|
-
},
|
31
|
-
watch: {
|
32
|
-
'header' (val) {
|
33
|
-
// header变化时,通知tabset
|
34
|
-
let data = this.$parent.renderData.find((v) => v.comp === this)
|
35
|
-
data.header = val
|
36
|
-
}
|
37
|
-
},
|
38
|
-
computed: {
|
39
|
-
show () {
|
40
|
-
return (this.$parent.active === this.index)
|
41
|
-
},
|
42
|
-
transition () {
|
43
|
-
return this.$parent.effect
|
44
|
-
}
|
45
|
-
},
|
46
|
-
created () {
|
47
|
-
this.$parent.renderData.push({
|
48
|
-
comp: this,
|
49
|
-
header: this.header,
|
50
|
-
disabled: this.disabled
|
51
|
-
})
|
52
|
-
},
|
53
|
-
ready () {
|
54
|
-
// 找到当前tab的索引
|
55
|
-
this.index = this.$parent.$children.findIndex((v) => v.$el === this.$el)
|
56
|
-
},
|
57
|
-
beforeDestroy () {
|
58
|
-
this.$parent.renderData.splice(this.index, 1)
|
59
|
-
}
|
60
|
-
}
|
61
|
-
</script>
|
62
|
-
|
63
|
-
<style scoped>
|
64
|
-
.tab-content > .tab-pane {
|
65
|
-
display: block;
|
66
|
-
}
|
67
|
-
</style>
|