system-clients 3.2.99 → 3.2.100-temp

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 (217) hide show
  1. package/.eslintrc.js +16 -16
  2. package/.gradle/7.4/checksums/checksums.lock +0 -0
  3. package/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock +0 -0
  4. package/.gradle/7.4/dependencies-accessors/gc.properties +0 -0
  5. package/.gradle/7.4/executionHistory/executionHistory.bin +0 -0
  6. package/.gradle/7.4/executionHistory/executionHistory.lock +0 -0
  7. package/.gradle/7.4/fileChanges/last-build.bin +0 -0
  8. package/.gradle/7.4/fileHashes/fileHashes.bin +0 -0
  9. package/.gradle/7.4/fileHashes/fileHashes.lock +0 -0
  10. package/.gradle/7.4/gc.properties +0 -0
  11. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  12. package/.gradle/buildOutputCleanup/cache.properties +2 -0
  13. package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  14. package/.gradle/file-system.probe +0 -0
  15. package/.gradle/vcs-1/gc.properties +0 -0
  16. package/SystemClient.iml +8 -8
  17. package/build/webpack.base.conf.js +85 -85
  18. package/build.gradle +6 -6
  19. package/examples/LoginPage/App.vue +21 -21
  20. package/examples/LoginPage/index.html +11 -11
  21. package/examples/LoginPage/main.js +15 -15
  22. package/index.html +21 -21
  23. package/package.json +103 -103
  24. package/src/components/Main.vue +58 -29
  25. package/src/components/TabButton.vue +201 -201
  26. package/src/components/Tabs.vue +67 -67
  27. package/src/components/Util.js +343 -343
  28. package/src/components/addressManage/AddressCascadingMenu.vue +145 -145
  29. package/src/components/common/ProgressBase.vue +83 -83
  30. package/src/components/equipment/EquipmentManage.vue +83 -83
  31. package/src/components/equipment/PcAdd.vue +115 -115
  32. package/src/components/equipment/PcList.vue +119 -119
  33. package/src/components/equipment/PcManage.vue +61 -61
  34. package/src/components/equipment/PhoneAdd.vue +118 -118
  35. package/src/components/equipment/PhoneList.vue +113 -113
  36. package/src/components/equipment/PhoneManage.vue +61 -61
  37. package/src/components/equipment/PosAdd.vue +323 -319
  38. package/src/components/equipment/PosList.vue +294 -292
  39. package/src/components/equipment/PosManage.vue +138 -138
  40. package/src/components/equipment/PosManageBoth.vue +125 -125
  41. package/src/components/equipment/PosParamAdd.vue +236 -236
  42. package/src/components/equipment/PosParamList.vue +121 -121
  43. package/src/components/equipment/PosParamManage.vue +51 -51
  44. package/src/components/materialManage/materialData.vue +44 -44
  45. package/src/components/materialManage/materialList.vue +255 -255
  46. package/src/components/parammanage/ParamManage.vue +42 -42
  47. package/src/components/parammanage/ParamPage.vue +337 -337
  48. package/src/components/parammanage/ParamPages.vue +222 -222
  49. package/src/components/parammanage/SinglePage.vue +235 -235
  50. package/src/components/parammanage/SinglePages.vue +167 -167
  51. package/src/components/server/AddChangeMsg.vue +66 -66
  52. package/src/components/server/ChangeDeclare.vue +45 -45
  53. package/src/components/server/ImageVieweTest.vue +56 -56
  54. package/src/components/server/ImageViewer.vue +350 -350
  55. package/src/components/server/LeftTree.vue +111 -111
  56. package/src/components/server/LoadData.vue +55 -55
  57. package/src/components/server/Login.vue +571 -548
  58. package/src/components/server/LoginPage.vue +235 -235
  59. package/src/components/server/LoginView.vue +128 -128
  60. package/src/components/server/Menu.vue +188 -188
  61. package/src/components/server/ModifyPw.vue +125 -126
  62. package/src/components/server/PcdBuildingSelect.vue +241 -243
  63. package/src/components/server/ResSelect.vue +175 -169
  64. package/src/components/server/ResSelectGroup.vue +211 -211
  65. package/src/components/server/RightTree.vue +348 -348
  66. package/src/components/server/RoleSelector.vue +89 -90
  67. package/src/components/server/TestResSelect.vue +58 -58
  68. package/src/components/server/TestResSelectGroup.vue +388 -388
  69. package/src/filiale/baole/Login.vue +568 -570
  70. package/src/filiale/baole/system.js +5 -5
  71. package/src/filiale/bayan/PosAdd.vue +374 -0
  72. package/src/filiale/bayan/PosList.vue +349 -0
  73. package/src/filiale/bayan/PosManage.vue +138 -0
  74. package/src/filiale/bayan/system.js +6 -0
  75. package/src/filiale/chengtou/Login.vue +537 -539
  76. package/src/filiale/chengtou/system.js +5 -5
  77. package/src/filiale/dongguan/Login.vue +900 -902
  78. package/src/filiale/dongguan/Main.vue +715 -717
  79. package/src/filiale/dongguan/system.js +6 -6
  80. package/src/filiale/furuike/Login.vue +583 -587
  81. package/src/filiale/furuike/Main.vue +827 -840
  82. package/src/filiale/furuike/system.js +7 -7
  83. package/src/filiale/gehua/Main.vue +807 -809
  84. package/src/filiale/gehua/system.js +6 -6
  85. package/src/filiale/konggang/Login.vue +470 -472
  86. package/src/filiale/konggang/system.js +7 -7
  87. package/src/filiale/qianneng/Login.vue +582 -584
  88. package/src/filiale/qianneng/Main.vue +4 -6
  89. package/src/filiale/qianneng/ModifyPw.vue +107 -108
  90. package/src/filiale/qianneng/system.js +11 -11
  91. package/src/filiale/rizhao/LeftTree.vue +111 -111
  92. package/src/filiale/rizhao/Login.vue +791 -793
  93. package/src/filiale/rizhao/Main.vue +611 -611
  94. package/src/filiale/rizhao/system.js +14 -14
  95. package/src/filiale/shiquan/Login.vue +564 -566
  96. package/src/filiale/shiquan/system.js +8 -8
  97. package/src/filiale/tianyi/Login.vue +571 -573
  98. package/src/filiale/tianyi/system.js +5 -5
  99. package/src/filiale/tongchuan/Login.vue +561 -563
  100. package/src/filiale/tongchuan/Main.vue +1019 -1021
  101. package/src/filiale/tongchuan/system.js +7 -7
  102. package/src/filiale/weinan/Main.vue +923 -924
  103. package/src/filiale/weinan/system.js +7 -7
  104. package/src/filiale/wenxi/Login.vue +535 -537
  105. package/src/filiale/wenxi/Main.vue +785 -787
  106. package/src/filiale/wenxi/system.js +10 -10
  107. package/src/filiale/wuhai/LeftTree.vue +141 -141
  108. package/src/filiale/wuhai/Main.vue +807 -810
  109. package/src/filiale/wuhai/system.js +10 -10
  110. package/src/filiale/yuchuan/Login.vue +889 -891
  111. package/src/filiale/yuchuan/Main.vue +864 -866
  112. package/src/filiale/yuchuan/system.js +10 -10
  113. package/src/filiale/zhoukou/Main.vue +807 -809
  114. package/src/filiale/zhoukou/system.js +6 -6
  115. package/src/plugins/EncryptUtil.js +53 -53
  116. package/src/plugins/GetLoginInfoService.js +581 -478
  117. package/src/plugins/HeatGetLoginInfoService.js +491 -491
  118. package/src/plugins/validation.js +15 -15
  119. package/src/stores/AppData.js +38 -38
  120. package/src/stores/HeatAppData.js +38 -38
  121. package/src/styles/fonts/glyphicons-halflings-regular.svg +288 -288
  122. package/src/styles/less/.csscomb.json +304 -304
  123. package/src/styles/less/.csslintrc +19 -19
  124. package/src/styles/less/alerts.less +73 -73
  125. package/src/styles/less/aofeng/animate.min.css +10 -10
  126. package/src/styles/less/aofeng/expandcss.less +569 -569
  127. package/src/styles/less/aofeng/login.less +367 -367
  128. package/src/styles/less/aofeng/standard.less +2507 -2507
  129. package/src/styles/less/aofeng/themeOne/BinaryTemplate.less +690 -690
  130. package/src/styles/less/aofeng/themeOne/loginStyle.less +1586 -1586
  131. package/src/styles/less/aofeng/themeOne/systemStyle.less +2650 -2650
  132. package/src/styles/less/aofeng/themeOne.less +17 -17
  133. package/src/styles/less/aofeng/themeTwo/newStyle1.less +415 -415
  134. package/src/styles/less/aofeng/themeTwo.less +3 -3
  135. package/src/styles/less/badges.less +66 -66
  136. package/src/styles/less/bootstrap.less +66 -66
  137. package/src/styles/less/breadcrumbs.less +26 -26
  138. package/src/styles/less/button-groups.less +247 -247
  139. package/src/styles/less/buttons.less +172 -172
  140. package/src/styles/less/carousel.less +269 -269
  141. package/src/styles/less/close.less +34 -34
  142. package/src/styles/less/code.less +69 -69
  143. package/src/styles/less/component-animations.less +33 -33
  144. package/src/styles/less/dropdowns.less +216 -216
  145. package/src/styles/less/fonts-list.less +25 -25
  146. package/src/styles/less/forms.less +626 -626
  147. package/src/styles/less/glyphicons.less +305 -305
  148. package/src/styles/less/grid.less +84 -84
  149. package/src/styles/less/input-groups.less +167 -167
  150. package/src/styles/less/jumbotron.less +52 -52
  151. package/src/styles/less/labels.less +64 -64
  152. package/src/styles/less/list-group.less +141 -141
  153. package/src/styles/less/manageStyle/manageChile.less +180 -180
  154. package/src/styles/less/manageStyle/manageStyle/manageChile.less +180 -180
  155. package/src/styles/less/manageStyle/manageStyle/manageStyle.less +1102 -1102
  156. package/src/styles/less/manageStyle/manageStyle/safeStyle.less +498 -498
  157. package/src/styles/less/manageStyle/manageStyle.less +1102 -1102
  158. package/src/styles/less/manageStyle/safeStyle.less +498 -498
  159. package/src/styles/less/media.less +66 -66
  160. package/src/styles/less/mixins/alerts.less +14 -14
  161. package/src/styles/less/mixins/background-variant.less +9 -9
  162. package/src/styles/less/mixins/border-radius.less +18 -18
  163. package/src/styles/less/mixins/buttons.less +69 -69
  164. package/src/styles/less/mixins/center-block.less +7 -7
  165. package/src/styles/less/mixins/clearfix.less +22 -22
  166. package/src/styles/less/mixins/forms.less +90 -90
  167. package/src/styles/less/mixins/gradients.less +59 -59
  168. package/src/styles/less/mixins/grid-framework.less +92 -92
  169. package/src/styles/less/mixins/grid.less +122 -122
  170. package/src/styles/less/mixins/hide-text.less +21 -21
  171. package/src/styles/less/mixins/image.less +33 -33
  172. package/src/styles/less/mixins/labels.less +12 -12
  173. package/src/styles/less/mixins/list-group.less +30 -30
  174. package/src/styles/less/mixins/nav-divider.less +10 -10
  175. package/src/styles/less/mixins/nav-vertical-align.less +9 -9
  176. package/src/styles/less/mixins/opacity.less +8 -8
  177. package/src/styles/less/mixins/pagination.less +24 -24
  178. package/src/styles/less/mixins/panels.less +24 -24
  179. package/src/styles/less/mixins/progress-bar.less +10 -10
  180. package/src/styles/less/mixins/reset-filter.less +8 -8
  181. package/src/styles/less/mixins/reset-text.less +18 -18
  182. package/src/styles/less/mixins/resize.less +6 -6
  183. package/src/styles/less/mixins/responsive-visibility.less +15 -15
  184. package/src/styles/less/mixins/size.less +10 -10
  185. package/src/styles/less/mixins/tab-focus.less +9 -9
  186. package/src/styles/less/mixins/table-row.less +44 -44
  187. package/src/styles/less/mixins/text-emphasis.less +9 -9
  188. package/src/styles/less/mixins/text-overflow.less +8 -8
  189. package/src/styles/less/mixins/vendor-prefixes.less +227 -227
  190. package/src/styles/less/mixins.less +40 -40
  191. package/src/styles/less/modals.less +151 -151
  192. package/src/styles/less/navbar.less +660 -660
  193. package/src/styles/less/navs.less +285 -285
  194. package/src/styles/less/normalize.less +424 -424
  195. package/src/styles/less/pager.less +76 -76
  196. package/src/styles/less/pagination.less +89 -89
  197. package/src/styles/less/panels.less +275 -275
  198. package/src/styles/less/popovers.less +131 -131
  199. package/src/styles/less/print.less +101 -101
  200. package/src/styles/less/progress-bars.less +87 -87
  201. package/src/styles/less/responsive-embed.less +35 -35
  202. package/src/styles/less/responsive-utilities.less +194 -194
  203. package/src/styles/less/scaffolding.less +161 -161
  204. package/src/styles/less/stand.less +207 -207
  205. package/src/styles/less/tables.less +312 -312
  206. package/src/styles/less/theme.less +291 -291
  207. package/src/styles/less/thumbnails.less +36 -36
  208. package/src/styles/less/tooltip.less +102 -102
  209. package/src/styles/less/type.less +316 -316
  210. package/src/styles/less/utilities.less +55 -55
  211. package/src/styles/less/variables.less +899 -899
  212. package/src/styles/less/wells.less +29 -29
  213. package/src/system.js +125 -121
  214. package/src/util/Daiban.json +12 -12
  215. package/yarn-error.log +6896 -6896
  216. package/src/filiale/ruihua/Login.vue +0 -549
  217. package/src/filiale/ruihua/system.js +0 -5
@@ -160,6 +160,24 @@
160
160
  </footer>
161
161
  </modal>
162
162
 
163
+ <modal v-show="notReportShow" :show.sync="notReportShow" :backdrop="false">
164
+ <header slot="modal-header" class="text-center">
165
+ <h3>未上报用户提醒</h3>
166
+ </header>
167
+ <article slot="modal-body" class="modal-body">
168
+ <form class="form-horizontal">
169
+ <div class="row">
170
+ <div class="col-sm-12">
171
+ <span style="font-weight:normal">{{ notReportTitle }}</span>
172
+ </div>
173
+ </div>
174
+ </form>
175
+ </article>
176
+ <footer slot="modal-footer" style="height: 8vh" class="modal-footer">
177
+ <button class="button_search" @click="notReportShow = false">确认</button>
178
+ </footer>
179
+ </modal>
180
+
163
181
  <!-- 变更录入 模态框 -->
164
182
  <add-changemsg :show="AddChangeMsgShow" v-on:toggle="AddChangeMsgShow = false"></add-changemsg>
165
183
  <!-- 修改密码组件 -->
@@ -189,8 +207,7 @@ let getwartermakr = async function (self) {
189
207
  tablename: 't_singlevalue',
190
208
  condition: " 1=1 and name=\'水印内容\'"
191
209
  };
192
- // todo v4
193
- let result = await self.$resetpost('api/af-revenue/sql/saleSingleTable', {data: param}, {resolveMsg: null, rejectMsg: null});
210
+ let result = await self.$resetpost('rs/sql/saleSingleTable', {data: param}, {resolveMsg: null, rejectMsg: null});
194
211
  if (result && result.data.length > 0) {
195
212
  self.showwatermakeflag = true;
196
213
  createWaterMark(`${result.data[0].value}${self.$login.f.ename}`);
@@ -227,6 +244,12 @@ let createWaterMark = function (userName) {
227
244
  (document.head.append || document.head.appendChild).apply(document.head, [style]);
228
245
  }
229
246
 
247
+ window.onunload = () => {
248
+ vue.http({url: `rs/user/update/${this.$login.f.ename}`, method: 'GET'})
249
+ }
250
+ window.onbeforeunload = () => {
251
+ vue.http({url: `rs/user/update/${this.$login.f.ename}`, method: 'GET'})
252
+ }
230
253
  export default {
231
254
  title: '主界面',
232
255
  props: ['functions', 'userid', 'config'],
@@ -250,9 +273,12 @@ let createWaterMark = function (userName) {
250
273
  // img2: '/images/lefticon/退出系统.png',
251
274
  },
252
275
  treeOrIcon: false,
276
+ notReportTitle: '',
277
+ notReportShow: false,
253
278
  qrCode:false,
254
279
  isManger: false,
255
280
  show: false,
281
+ orgpathnames: `${this.$login.f.orgs}-${this.$login.f.deps}-${this.$login.f.name}`,
256
282
  systemname: '客服系统',
257
283
  date: this.$login.toStandardDateString(),
258
284
  tabs: [], //已初始化页签数组
@@ -329,10 +355,28 @@ let createWaterMark = function (userName) {
329
355
  if (this.config.approve) {
330
356
  this.getFlowList()
331
357
  }
358
+ if (this.config.isGetNotReport) {
359
+ this.getNotReport()
360
+ }
332
361
  // 获取卡表动态库到期时间
333
362
  this.getExpireDate()
334
363
  },
335
364
  methods: {
365
+ async getNotReport(){
366
+ this.notReportTitle = ''
367
+ let http = new HttpResetClass()
368
+ await http.load('POST', 'rs/sql/getNotReportUserCount', {}, {
369
+ resolveMsg: null,
370
+ rejectMsg: null
371
+ }).then((res) => {
372
+ if (res.data.length > 0){
373
+ this.notReportTitle = `当前系统物联网表用户有${res.data[0].f_total_web_count}户,超过7天未上报有${res.data[0].f_greater_than_seven_days}户,7天及以内未上报有${res.data[0].f_less_than_orequalto_seven_days}户。如需查询详情,请到物联查询中“失联查询”获取详细信息!`
374
+ }
375
+ }).catch((e)=>{})
376
+ if(this.notReportTitle){
377
+ this.notReportShow = true
378
+ }
379
+ },
336
380
  getOrderList(){
337
381
  let times = this.config.times * 60 * 1000
338
382
  console.log("=定时提示间隔=", times)
@@ -391,7 +435,7 @@ let createWaterMark = function (userName) {
391
435
  this.OrderDaiBan = ''
392
436
  this.AppDaiBan = ''
393
437
  let http = new HttpResetClass()
394
- await http.load('POST', '/api/af-system/sql/singleTable', {data: {
438
+ await http.load('POST', '/rs/sql/singleTable', {data: {
395
439
  tablename:'t_order_center',
396
440
  condition:` (f_orderstate != '预约成功' and f_orgstr ='${this.$login.f.orgid}' and f_orderstate != '预约失败' ) or f_orderstate is null`
397
441
  }}, {
@@ -439,7 +483,7 @@ let createWaterMark = function (userName) {
439
483
  async getExpireDate(){
440
484
  // 获取分公司的表品牌id
441
485
  let http = new HttpResetClass()
442
- await http.load('POST', '/api/af-system/sql/singleTable', {data: {
486
+ await http.load('POST', '/rs/sql/singleTable', {data: {
443
487
  tablename:'t_gasbrand_orgid',
444
488
  condition:`f_using_orgid ='${this.$login.f.orgid}'`
445
489
  }}, {
@@ -453,7 +497,7 @@ let createWaterMark = function (userName) {
453
497
  }
454
498
  if (this.gasbrandIdData.length > 0) {
455
499
  // 获取卡表到期时间
456
- http.load('POST', '/api/af-system/sql/singleTable', {data: {
500
+ http.load('POST', '/rs/sql/singleTable', {data: {
457
501
  tablename:'t_gasbrand',
458
502
  condition:`id in (${this.gasbrandIdData}) and f_meter_type like '%卡表%'`
459
503
  }}, {
@@ -464,6 +508,7 @@ let createWaterMark = function (userName) {
464
508
  res.data.forEach(itre => {
465
509
  let band = null
466
510
  if ('f_dynamic_expire' in itre) {
511
+ console.log(itre.f_dynamic_expire)
467
512
  if (itre.f_dynamic_expire !== null && itre.f_dynamic_expire !== '') {
468
513
  let todayold = new Date(itre.f_dynamic_expire)
469
514
  todayold.setDate(todayold.getDate() - parseInt(this.$appdata.getSingleValue('动态库提醒天数设置')))
@@ -499,14 +544,13 @@ let createWaterMark = function (userName) {
499
544
  }
500
545
  if(this.functions && this.functions.f_role_name && this.functions.f_role_name.indexOf('派单员') !== -1){
501
546
  const data = {
502
- "condition":
503
- {
504
- "condition":" 1=1 and processins.activities[ state='开始活动' and (defname in('站点接单'))].count(*) > 0 ",
505
- "sign":"1=1"
506
- },
507
- "userid":this.functions.name
547
+ condition:{
548
+ condition:'1=1',
549
+ sign:'1=1'
550
+ },
551
+ userid:this.functions.name
508
552
  }
509
- new HttpResetClass().load('POST','rs/path/operatorService/n', {data}, {resolveMsg: null, rejectMsg: null}).then(res=>{
553
+ new HttpResetClass().load('POST','rs/sql/operatorService/n', {data}, {resolveMsg: null, rejectMsg: null}).then(res=>{
510
554
  if(res.data && res.data.n !== 0){
511
555
  this.$showMessage('你有'+res.data.n+'个工单待处理,请尽快前往站点工单页面进行处理')
512
556
  }
@@ -514,7 +558,7 @@ let createWaterMark = function (userName) {
514
558
  }
515
559
  },
516
560
  openUrl() {
517
- var url = `http://123.60.214.109:8406/submitTicket?contact=${this.$login.f.name}&orgName=${this.$login.f.orgs}&phone=${this.$login.f.f_user_telephone}`
561
+ var url = `http://aote-office.8866.org:8406/submitTicket?contact=${this.$login.f.name}&orgName=${this.$login.f.orgs}&phone=${this.$login.f.f_user_telephone}`
518
562
  window.open(url, '_blank')
519
563
  },
520
564
  hindsetting() {
@@ -593,28 +637,13 @@ let createWaterMark = function (userName) {
593
637
  username: this.$login.f.name,
594
638
  usertelephone: this.$login.f.f_user_telephone
595
639
  }
596
- // todo v4
597
- try {
598
- await this.$resetget('api/af-system/user/logout', {resolveMsg: '退出成功', rejectMsg: null})
599
- }catch(e){
600
- }
640
+ await this.$resetpost('rs/logic/logOut', data, {resolveMsg: '退出成功', rejectMsg: null})
601
641
  window.location.reload()
602
642
  }
603
643
  })
604
644
  }
605
645
  },
606
646
  computed: {
607
- orgpathnames(){
608
- let names = this.$login.f.name
609
- if(this.$login.f.deps){
610
- names = `${this.$login.f.deps}-${names}`
611
- }
612
- if(this.$login.f.orgs){
613
- names = `${this.$login.f.orgs}-${names}`
614
- }
615
- return names
616
- },
617
-
618
647
  nowDate() {
619
648
  return this.$login.getNowDate()
620
649
  }
@@ -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>