system-clients 3.2.70 → 3.2.72-yc

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.
Files changed (206) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/.eslintrc.js +16 -16
  4. package/CHANGELOG.md +51 -51
  5. package/README.md +36 -36
  6. package/SystemClient.iml +8 -8
  7. package/build/css-loaders.js +34 -34
  8. package/build/dev-client.js +8 -8
  9. package/build/example-server.js +80 -80
  10. package/build/release.sh +28 -28
  11. package/build/utils.js +71 -71
  12. package/build/webpack.base.conf.js +85 -85
  13. package/build/webpack.dev.conf.js +31 -31
  14. package/build/webpack.example.conf.js +49 -49
  15. package/build/webpack.prod.conf.js +60 -60
  16. package/build/webpack.test.conf.js +31 -31
  17. package/build.gradle +6 -6
  18. package/config/dev.env.js +6 -6
  19. package/config/index.js +38 -38
  20. package/config/prod.env.js +3 -3
  21. package/config/test.env.js +6 -6
  22. package/doc/Login.md +7 -7
  23. package/examples/LoginPage/App.vue +21 -21
  24. package/examples/LoginPage/index.html +11 -11
  25. package/examples/LoginPage/main.js +15 -15
  26. package/examples/ReadCard/App.vue +23 -23
  27. package/examples/ReadCard/index.html +11 -11
  28. package/examples/ReadCard/main.js +12 -12
  29. package/index.html +21 -21
  30. package/package.json +1 -1
  31. package/release.bat +5 -5
  32. package/src/App.vue +24 -24
  33. package/src/LodopFuncs.js +123 -123
  34. package/src/assets/binding.svg +1 -1
  35. package/src/assets/unbind.svg +1 -1
  36. package/src/assets//345/205/254/345/221/212.svg +1 -1
  37. package/src/assets//347/207/203/346/260/224/347/274/264/350/264/271.eps +116 -116
  38. package/src/assets//350/201/224/347/263/273/346/210/221/344/273/254.svg +1 -1
  39. package/src/components/List.vue +51 -51
  40. package/src/components/Main.vue +87 -11
  41. package/src/components/TabButton.vue +201 -201
  42. package/src/components/Table.js +74 -74
  43. package/src/components/Tabs.vue +67 -67
  44. package/src/components/Util.js +343 -343
  45. package/src/components/addressManage/AddressCascadingMenu.vue +145 -145
  46. package/src/components/common/ProgressBase.vue +83 -83
  47. package/src/components/equipment/PosManage.vue +138 -138
  48. package/src/components/equipment/PosManageBoth.vue +125 -125
  49. package/src/components/equipment/PosParamManage.vue +51 -51
  50. package/src/components/materialManage/materialData.vue +44 -44
  51. package/src/components/materialManage/materialList.vue +255 -255
  52. package/src/components/parammanage/ParamManage.vue +42 -42
  53. package/src/components/parammanage/ParamManages.vue +43 -43
  54. package/src/components/parammanage/ParamPages.vue +222 -222
  55. package/src/components/parammanage/SinglePages.vue +167 -167
  56. package/src/components/server/AddChangeMsg.vue +66 -66
  57. package/src/components/server/ChangeDeclare.vue +45 -45
  58. package/src/components/server/IconTree.vue +26 -26
  59. package/src/components/server/ImageVieweTest.vue +56 -56
  60. package/src/components/server/ImageViewer.vue +350 -350
  61. package/src/components/server/LeftTree.vue +111 -111
  62. package/src/components/server/LoadData.vue +56 -55
  63. package/src/components/server/LoginPage.vue +235 -235
  64. package/src/components/server/LoginView.vue +128 -128
  65. package/src/components/server/Menu.vue +188 -188
  66. package/src/components/server/TestResSelect.vue +58 -58
  67. package/src/components/server/TestResSelectGroup.vue +388 -388
  68. package/src/components/server/TestRightTree.vue +42 -42
  69. package/src/filiale/baole/system.js +5 -5
  70. package/src/filiale/chengtou/system.js +5 -5
  71. package/src/filiale/dongguan/system.js +6 -6
  72. package/src/filiale/furuike/system.js +7 -7
  73. package/src/filiale/gehua/system.js +6 -6
  74. package/src/filiale/qianneng/Login.vue +566 -0
  75. package/src/filiale/qianneng/ModifyPw.vue +2 -2
  76. package/src/filiale/qianneng/system.js +11 -8
  77. package/src/filiale/rizhao/LeftTree.vue +111 -111
  78. package/src/filiale/rizhao/system.js +14 -14
  79. package/src/filiale/shiquan/system.js +8 -8
  80. package/src/filiale/tianyi/system.js +5 -5
  81. package/src/filiale/wenxi/system.js +10 -10
  82. package/src/filiale/wuhai/LeftTree.vue +141 -141
  83. package/src/filiale/wuhai/system.js +10 -10
  84. package/src/filiale/yuchuan/system.js +10 -10
  85. package/src/filiale/zhoukou/system.js +6 -6
  86. package/src/index.js +7 -7
  87. package/src/plugins/EncryptUtil.js +53 -53
  88. package/src/plugins/HeatGetLoginInfoService.js +491 -491
  89. package/src/plugins/validation.js +1 -1
  90. package/src/project/ProjectPage.vue +24 -24
  91. package/src/project/State.js +17 -17
  92. package/src/stores/AppData.js +1 -1
  93. package/src/stores/HeatAppData.js +38 -38
  94. package/src/styles/fonts/glyphicons-halflings-regular.svg +288 -288
  95. package/src/styles/less/.csscomb.json +304 -304
  96. package/src/styles/less/.csslintrc +19 -19
  97. package/src/styles/less/alerts.less +73 -73
  98. package/src/styles/less/aofeng/animate.min.css +10 -10
  99. package/src/styles/less/aofeng/expandcss.less +569 -569
  100. package/src/styles/less/aofeng/login.less +367 -367
  101. package/src/styles/less/aofeng/themeOne/loginStyle.less +1586 -1586
  102. package/src/styles/less/aofeng/themeOne/systemStyle.less +2650 -2650
  103. package/src/styles/less/aofeng/themeOne.less +17 -17
  104. package/src/styles/less/aofeng/themeTwo/newStyle1.less +415 -415
  105. package/src/styles/less/aofeng/themeTwo.less +3 -3
  106. package/src/styles/less/badges.less +66 -66
  107. package/src/styles/less/bootstrap.less +66 -66
  108. package/src/styles/less/breadcrumbs.less +26 -26
  109. package/src/styles/less/button-groups.less +247 -247
  110. package/src/styles/less/buttons.less +172 -172
  111. package/src/styles/less/carousel.less +269 -269
  112. package/src/styles/less/close.less +34 -34
  113. package/src/styles/less/code.less +69 -69
  114. package/src/styles/less/component-animations.less +33 -33
  115. package/src/styles/less/dropdowns.less +216 -216
  116. package/src/styles/less/fonts-list.less +25 -25
  117. package/src/styles/less/forms.less +626 -626
  118. package/src/styles/less/glyphicons.less +305 -305
  119. package/src/styles/less/grid.less +84 -84
  120. package/src/styles/less/input-groups.less +167 -167
  121. package/src/styles/less/jumbotron.less +52 -52
  122. package/src/styles/less/labels.less +64 -64
  123. package/src/styles/less/list-group.less +141 -141
  124. package/src/styles/less/manageStyle/manageChile.less +180 -180
  125. package/src/styles/less/manageStyle/manageStyle/manageChile.less +180 -180
  126. package/src/styles/less/manageStyle/manageStyle/manageStyle.less +1102 -1102
  127. package/src/styles/less/manageStyle/manageStyle/safeStyle.less +498 -498
  128. package/src/styles/less/manageStyle/manageStyle.less +1102 -1102
  129. package/src/styles/less/manageStyle/safeStyle.less +498 -498
  130. package/src/styles/less/media.less +66 -66
  131. package/src/styles/less/mixins/alerts.less +14 -14
  132. package/src/styles/less/mixins/background-variant.less +9 -9
  133. package/src/styles/less/mixins/border-radius.less +18 -18
  134. package/src/styles/less/mixins/buttons.less +69 -69
  135. package/src/styles/less/mixins/center-block.less +7 -7
  136. package/src/styles/less/mixins/clearfix.less +22 -22
  137. package/src/styles/less/mixins/forms.less +90 -90
  138. package/src/styles/less/mixins/gradients.less +59 -59
  139. package/src/styles/less/mixins/grid-framework.less +92 -92
  140. package/src/styles/less/mixins/grid.less +122 -122
  141. package/src/styles/less/mixins/hide-text.less +21 -21
  142. package/src/styles/less/mixins/image.less +33 -33
  143. package/src/styles/less/mixins/labels.less +12 -12
  144. package/src/styles/less/mixins/list-group.less +30 -30
  145. package/src/styles/less/mixins/nav-divider.less +10 -10
  146. package/src/styles/less/mixins/nav-vertical-align.less +9 -9
  147. package/src/styles/less/mixins/opacity.less +8 -8
  148. package/src/styles/less/mixins/pagination.less +24 -24
  149. package/src/styles/less/mixins/panels.less +24 -24
  150. package/src/styles/less/mixins/progress-bar.less +10 -10
  151. package/src/styles/less/mixins/reset-filter.less +8 -8
  152. package/src/styles/less/mixins/reset-text.less +18 -18
  153. package/src/styles/less/mixins/resize.less +6 -6
  154. package/src/styles/less/mixins/responsive-visibility.less +15 -15
  155. package/src/styles/less/mixins/size.less +10 -10
  156. package/src/styles/less/mixins/tab-focus.less +9 -9
  157. package/src/styles/less/mixins/table-row.less +44 -44
  158. package/src/styles/less/mixins/text-emphasis.less +9 -9
  159. package/src/styles/less/mixins/text-overflow.less +8 -8
  160. package/src/styles/less/mixins/vendor-prefixes.less +227 -227
  161. package/src/styles/less/mixins.less +40 -40
  162. package/src/styles/less/modals.less +151 -151
  163. package/src/styles/less/navbar.less +660 -660
  164. package/src/styles/less/navs.less +285 -285
  165. package/src/styles/less/normalize.less +424 -424
  166. package/src/styles/less/pager.less +76 -76
  167. package/src/styles/less/pagination.less +89 -89
  168. package/src/styles/less/panels.less +275 -275
  169. package/src/styles/less/popovers.less +131 -131
  170. package/src/styles/less/print.less +101 -101
  171. package/src/styles/less/progress-bars.less +87 -87
  172. package/src/styles/less/responsive-embed.less +35 -35
  173. package/src/styles/less/responsive-utilities.less +194 -194
  174. package/src/styles/less/scaffolding.less +161 -161
  175. package/src/styles/less/stand.less +207 -207
  176. package/src/styles/less/tables.less +312 -312
  177. package/src/styles/less/theme.less +291 -291
  178. package/src/styles/less/thumbnails.less +36 -36
  179. package/src/styles/less/tooltip.less +102 -102
  180. package/src/styles/less/type.less +316 -316
  181. package/src/styles/less/utilities.less +55 -55
  182. package/src/styles/less/variables.less +899 -899
  183. package/src/styles/less/wells.less +29 -29
  184. package/src/system.js +121 -121
  185. package/src/systemphone.js +11 -11
  186. package/src/util/Daiban.json +12 -12
  187. package/src/util/LdapHelper.js +75 -75
  188. package/test/e2e/custom-assertions/elementCount.js +26 -26
  189. package/test/e2e/nightwatch.conf.js +40 -40
  190. package/test/e2e/runner.js +30 -30
  191. package/test/e2e/specs/test.js +14 -14
  192. package/test/unit/.eslintrc +5 -5
  193. package/test/unit/index.js +13 -13
  194. package/test/unit/init.js +10 -10
  195. package/test/unit/karma.conf.js +49 -49
  196. package/test/unit/specs/base64.spec.js +5 -5
  197. package/test/unit/specs/components/parammanage/ParamPage.spec.js +20 -20
  198. package/test/unit/specs/components/parammanage/SinglePage.spec.js +20 -20
  199. package/test/unit/specs/components/server/LeftTree/App.vue +18 -18
  200. package/test/unit/specs/components/server/LeftTree/LeftTree.spec.js +22 -22
  201. package/test/unit/specs/components/server/LoadData.spec.js +24 -24
  202. package/test/unit/specs/components/server/Login.spec.js +61 -61
  203. package/test/unit/specs/components/server/RightTree.spec.js +50 -50
  204. package/test/unit/specs/plugins/GetLoginInfoService.spec.js +55 -55
  205. package/test/unit/test.html +76 -76
  206. package/yarn-error.log +6896 -6896
@@ -1,51 +1,51 @@
1
- <template>
2
- <div class="flex">
3
- <div class="auto">
4
- <ul class="nav nav-tabs">
5
- <li role="presentation" @click="h1()" id="1"><a href="#">档案</a></li>
6
- <li role="presentation" @click="h2()" id="2"><a href="#">小区-地址</a></li>
7
- <li role="presentation" @click="h3()" id="3"><a href="#">单位-地址</a></li>
8
- </ul>
9
- </div>
10
- <div style="margin-top:10px;" id="hh" class="span">
11
- <route :comp="{name: 'civil-search'}" v-if = "r1"></route>
12
- <route :comp="{name: 'Address-search'}" v-if = "r2"></route>
13
- <route :comp="{name: 'unit-search'}" v-if = "r3"></route>
14
- </div>
15
- </div>
16
- </template>
17
- <script>
18
- /**
19
- *档案管理查询列表
20
- */
21
- export default {
22
- title: '档案管理',
23
- data () {
24
- return {
25
- r1: true,
26
- r2: false,
27
- r3: false
28
- }
29
- },
30
- methods: {
31
- h1 () {
32
- this.r1 = true
33
- this.r2 = false
34
- this.r3 = false
35
- this.r4 = false
36
- },
37
- h2 () {
38
- this.r1 = false
39
- this.r2 = true
40
- this.r3 = false
41
- this.r4 = false
42
- },
43
- h3 () {
44
- this.r1 = false
45
- this.r2 = false
46
- this.r3 = true
47
- this.r4 = false
48
- }
49
- }
50
- }
51
- </script>
1
+ <template>
2
+ <div class="flex">
3
+ <div class="auto">
4
+ <ul class="nav nav-tabs">
5
+ <li role="presentation" @click="h1()" id="1"><a href="#">档案</a></li>
6
+ <li role="presentation" @click="h2()" id="2"><a href="#">小区-地址</a></li>
7
+ <li role="presentation" @click="h3()" id="3"><a href="#">单位-地址</a></li>
8
+ </ul>
9
+ </div>
10
+ <div style="margin-top:10px;" id="hh" class="span">
11
+ <route :comp="{name: 'civil-search'}" v-if = "r1"></route>
12
+ <route :comp="{name: 'Address-search'}" v-if = "r2"></route>
13
+ <route :comp="{name: 'unit-search'}" v-if = "r3"></route>
14
+ </div>
15
+ </div>
16
+ </template>
17
+ <script>
18
+ /**
19
+ *档案管理查询列表
20
+ */
21
+ export default {
22
+ title: '档案管理',
23
+ data () {
24
+ return {
25
+ r1: true,
26
+ r2: false,
27
+ r3: false
28
+ }
29
+ },
30
+ methods: {
31
+ h1 () {
32
+ this.r1 = true
33
+ this.r2 = false
34
+ this.r3 = false
35
+ this.r4 = false
36
+ },
37
+ h2 () {
38
+ this.r1 = false
39
+ this.r2 = true
40
+ this.r3 = false
41
+ this.r4 = false
42
+ },
43
+ h3 () {
44
+ this.r1 = false
45
+ this.r2 = false
46
+ this.r3 = true
47
+ this.r4 = false
48
+ }
49
+ }
50
+ }
51
+ </script>
@@ -140,6 +140,26 @@
140
140
  </footer>
141
141
  </modal>
142
142
 
143
+ <modal v-show="showRemind" :show.sync="showRemind" :backdrop="false">
144
+ <header slot="modal-header" class="text-center"><h3>卡表动态库到期</h3></header>
145
+ <article slot="modal-body" class="modal-body">
146
+ <form class="form-horizontal">
147
+ <div class="row">
148
+ <div class="col-sm-3 " v-for="item in dataRemind">
149
+ <label class="col-sm-3">{{ item.type }}:</label>
150
+ <span style="font-weight:normal">{{item.brand}}</span>
151
+ </div>
152
+ <div class="col-sm-12 text-right">
153
+ <span style="font-weight:normal">卡表动态库到期,请联系售后尽快注册!</span>
154
+ </div>
155
+ </div>
156
+ </form>
157
+ </article>
158
+ <footer slot="modal-footer" style="height: 8vh" class="modal-footer">
159
+ <button class="button_search" @click="showRemind = false">确认</button>
160
+ </footer>
161
+ </modal>
162
+
143
163
  <!-- 变更录入 模态框 -->
144
164
  <add-changemsg :show="AddChangeMsgShow" v-on:toggle="AddChangeMsgShow = false"></add-changemsg>
145
165
  <!-- 修改密码组件 -->
@@ -246,6 +266,9 @@ let createWaterMark = function (userName) {
246
266
  setting: true,
247
267
  srcsetting: '../../static/newStyle/setting.png',
248
268
  showwatermakeflag: false,
269
+ gasbrandIdData: [],
270
+ showRemind: false,
271
+ dataRemind: [],
249
272
  // headerHint: true, // 右侧顶部提示信息
250
273
  // value: 25645.26,
251
274
  // AddChangeMsgShow: false,
@@ -312,6 +335,8 @@ let createWaterMark = function (userName) {
312
335
  if (this.config.approve) {
313
336
  this.getFlowList()
314
337
  }
338
+ // 获取卡表动态库到期时间
339
+ this.getExpireDate()
315
340
  },
316
341
  methods: {
317
342
  getOrderList(){
@@ -325,7 +350,6 @@ let createWaterMark = function (userName) {
325
350
  console.log('捕获到异常', error)
326
351
  }
327
352
  },
328
- // 获取审核待办
329
353
  getFlowList(){
330
354
  console.log('======获取流程审核待办=====')
331
355
  let times = this.config.approveTimes * 60 * 1000
@@ -338,16 +362,6 @@ let createWaterMark = function (userName) {
338
362
  console.log('捕获到异常', error)
339
363
  }
340
364
  },
341
- getTimesgotoWorkOrderSite(){
342
- let teltimes = 2*60*1000 // 两分钟
343
- try {
344
- this.intervaltx =setInterval(()=>{
345
- this.gotoWorkOrderSite()
346
- },teltimes)
347
- }catch (e) {
348
- console.log('捕获到异常', e)
349
- }
350
- },
351
365
  async getFlowDaiBan(){
352
366
  this.flowDaiBan = ''
353
367
  let http = new HttpResetClass()
@@ -369,6 +383,16 @@ let createWaterMark = function (userName) {
369
383
  this.newTipShow = true
370
384
  }
371
385
  },
386
+ getTimesgotoWorkOrderSite(){
387
+ let teltimes = 2*60*1000 // 两分钟
388
+ try {
389
+ this.intervaltx =setInterval(()=>{
390
+ this.gotoWorkOrderSite()
391
+ },teltimes)
392
+ }catch (e) {
393
+ console.log('捕获到异常', e)
394
+ }
395
+ },
372
396
  async getDaiBan(){
373
397
  this.OrderDaiBan = ''
374
398
  this.AppDaiBan = ''
@@ -417,6 +441,58 @@ let createWaterMark = function (userName) {
417
441
  this.newTipShow = true
418
442
  }
419
443
  },
444
+ // 获取动态库卡表到期日
445
+ async getExpireDate(){
446
+ // 获取分公司的表品牌id
447
+ let http = new HttpResetClass()
448
+ await http.load('POST', '/rs/sql/singleTable', {data: {
449
+ tablename:'t_gasbrand_orgid',
450
+ condition:`f_using_orgid ='${this.$login.f.orgid}'`
451
+ }}, {
452
+ resolveMsg: null,
453
+ rejectMsg: null
454
+ }).then((res) => {
455
+ if (res.data.length > 0) {
456
+ res.data.forEach(item => {
457
+ this.gasbrandIdData.push(item.f_gasbrand_id)
458
+ })
459
+ }
460
+ if (this.gasbrandIdData.length > 0) {
461
+ // 获取卡表到期时间
462
+ http.load('POST', '/rs/sql/singleTable', {data: {
463
+ tablename:'t_gasbrand',
464
+ condition:`id in (${this.gasbrandIdData}) and f_meter_type like '%卡表%'`
465
+ }}, {
466
+ resolveMsg: null,
467
+ rejectMsg: null
468
+ }).then((res) => {
469
+ if (res.data.length > 0) {
470
+ res.data.forEach(itre => {
471
+ let band = null
472
+ if ('f_dynamic_expire' in itre) {
473
+ console.log(itre.f_dynamic_expire)
474
+ if (itre.f_dynamic_expire !== null && itre.f_dynamic_expire !== '') {
475
+ let todayold = new Date(itre.f_dynamic_expire)
476
+ todayold.setDate(todayold.getDate() - parseInt(this.$appdata.getSingleValue('动态库提醒天数设置')))
477
+ let today = new Date()
478
+ if (today > todayold) {
479
+ band = {type:'卡表',brand:itre.f_meter_brand}
480
+ this.dataRemind.push(band)
481
+ }
482
+ }
483
+ }
484
+ })
485
+
486
+ }
487
+ if (this.dataRemind.length > 0) {
488
+ this.showRemind = true
489
+ // this.$showMessage(band + '。' +
490
+ // '卡表动态库到期,请联系售后尽快注册!')
491
+ }
492
+ })
493
+ }
494
+ })
495
+ },
420
496
  // 提醒框被点击
421
497
  tipClick(){
422
498
  this.newTipShow = false
@@ -1,201 +1,201 @@
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>
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>