apply-clients 3.4.2 → 3.4.4

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 (130) hide show
  1. package/android.html +23 -23
  2. package/build/dev-server.js +119 -119
  3. package/build/webpack.base.conf.js +2 -1
  4. package/build/webpack.dev.conf.js +12 -0
  5. package/dingding.html +23 -0
  6. package/index.html +33 -33
  7. package/package.json +2 -1
  8. package/src/AndroidApp.vue +35 -35
  9. package/src/DingDingApp.vue +51 -0
  10. package/src/android.js +21 -21
  11. package/src/apply.js +38 -13
  12. package/src/applyAndroid.js +46 -32
  13. package/src/applyDingDing.js +12 -0
  14. package/src/components/android/AppOnetomany.vue +343 -301
  15. package/src/components/android/AppServiceView.vue +189 -10
  16. package/src/components/android/AppSign.vue +19 -7
  17. package/src/components/android/AppTakePic.vue +143 -143
  18. package/src/components/android/AreaSelect/AppQrcodeReader.vue +73 -0
  19. package/src/components/android/AreaSelect/AppResAreaMapGroup.vue +148 -0
  20. package/src/components/android/AreaSelect/AppResAreaSelect.vue +108 -0
  21. package/src/components/android/AreaSelect/AppResAreaSelectGroup.vue +142 -0
  22. package/src/components/android/Function/AppFunctionServiceControl.vue +344 -0
  23. package/src/components/android/Function/AppInstallFunction.vue +366 -0
  24. package/src/components/android/Process/AppExplorationUser.vue +500 -320
  25. package/src/components/android/Process/AppServiceControl.vue +999 -48
  26. package/src/components/android/Process/Processes/AppAddMaterialScience.vue +477 -0
  27. package/src/components/android/Process/Processes/AppBuildSign.vue +46 -0
  28. package/src/components/android/Process/Processes/AppChargeManagement.vue +637 -0
  29. package/src/components/android/Process/Processes/AppDevicesManagement.vue +519 -0
  30. package/src/components/android/Process/Processes/AppInstallationDetails.vue +116 -90
  31. package/src/components/android/Process/Processes/AppSupplementalAgreement.vue +298 -0
  32. package/src/components/android/Process/Processes/selectApply.vue +250 -0
  33. package/src/components/android/Process/Processes/selectUserinfo.vue +182 -0
  34. package/src/components/android/ProgressReport/ProgressReportDetail.vue +64 -64
  35. package/src/components/android/Supervisory/AppProcessSupervisory.vue +205 -71
  36. package/src/components/android/Supervisory/AppSupervisoryCart.vue +69 -34
  37. package/src/components/android/TaskGraph.vue +125 -125
  38. package/src/components/common/TabButton.vue +149 -0
  39. package/src/components/common/Tabs.vue +67 -0
  40. package/src/components/image/dwg.jpg +0 -0
  41. package/src/components/image/txt.jpg +0 -0
  42. package/src/components/image//345/221/250/345/217/243/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
  43. package/src/components/image//350/245/277/345/215/216/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
  44. package/src/components/image//351/203/270/345/237/216/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
  45. package/src/components/image//351/241/271/345/237/216/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
  46. package/src/components/image//351/271/277/351/202/221/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
  47. package/src/components/product/ApplyCharge/ApplyChargeList.vue +272 -53
  48. package/src/components/product/ApplyCharge/ApplyChargeSearch.vue +3 -3
  49. package/src/components/product/AreaSelect/MyAreaSelect.vue +423 -0
  50. package/src/components/product/AreaSelect/ResAreaSelect.vue +106 -0
  51. package/src/components/product/AreaSelect/ResAreaSelectGroup.vue +150 -0
  52. package/src/components/product/AreaSelect/utils/EventListener.js +29 -0
  53. package/src/components/product/AreaSelect/utils/coerceBoolean.js +7 -0
  54. package/src/components/product/Business/BusinessApply.vue +269 -0
  55. package/src/components/product/Business/CivilApply.vue +269 -0
  56. package/src/components/product/Function/InstallFunction.vue +132 -125
  57. package/src/components/product/Function/InstallInfoSelect.vue +320 -292
  58. package/src/components/product/Function/Service/FunctionServiceControl.vue +445 -222
  59. package/src/components/product/GaoDeMapComponents/GaoDeMap.vue +231 -0
  60. package/src/components/product/GroupByApply/ApplyGroupByList.vue +253 -0
  61. package/src/components/product/GroupByApply/ApplyGroupByMain.vue +53 -0
  62. package/src/components/product/GroupByApply/ApplyGroupByPaper.vue +376 -0
  63. package/src/components/product/Install/InstallProject.vue +194 -0
  64. package/src/components/product/Material/MaterialDetailed.vue +262 -0
  65. package/src/components/product/OldApply/Handle/HandleApply.vue +337 -0
  66. package/src/components/product/OldApply/Monitor/MonitorApply.vue +360 -0
  67. package/src/components/product/OldApply/OldApply.vue +209 -0
  68. package/src/components/product/OldApply/OldApplyMessage.vue +420 -0
  69. package/src/components/product/Onetomany.vue +406 -377
  70. package/src/components/product/Print/BuildOrder/buildOrderList.vue +339 -0
  71. package/src/components/product/Print/BuildOrder/printBuildOrder.vue +157 -0
  72. package/src/components/product/Print/IgnitionBill/IgnitionBill.vue +259 -0
  73. package/src/components/product/Print/IgnitionBill/printIgnitionBill.vue +168 -0
  74. package/src/components/product/Process/ExplorationSelect.vue +495 -410
  75. package/src/components/product/Process/ExplorationUser.vue +189 -138
  76. package/src/components/product/Process/Processes/InstallationDetails.vue +25 -7
  77. package/src/components/product/Process/Processes/Print/printCharge.vue +41 -17
  78. package/src/components/product/Process/Processes/Print/printChargepc.vue +142 -0
  79. package/src/components/product/Process/Processes/Print/printRefund.vue +196 -0
  80. package/src/components/product/Process/Processes/addMaterialScience.vue +454 -0
  81. package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +211 -207
  82. package/src/components/product/Process/Processes/chargeManagement.vue +20 -3
  83. package/src/components/product/Process/Processes/devicesManagement.vue +484 -478
  84. package/src/components/product/Process/Processes/selectApply.vue +2 -2
  85. package/src/components/product/Process/Service/ServiceControl.vue +638 -20
  86. package/src/components/product/Process/Service/ShowBackReason.vue +33 -33
  87. package/src/components/product/Process/ShowBackReason.vue +33 -0
  88. package/src/components/product/ServiceView.vue +357 -7
  89. package/src/components/product/Stop/StopApply.vue +101 -103
  90. package/src/components/product/Stop/StopApplyList.vue +271 -269
  91. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +884 -186
  92. package/src/components/product/Supervisory/SupervisoryControl.vue +137 -100
  93. package/src/components/product/Supervisory/SupervisoryList.vue +201 -30
  94. package/src/components/product/Supervisory/SupervisoryhCart.vue +130 -107
  95. package/src/components/product/VueUtils/ApplyUpload.vue +275 -273
  96. package/src/components/product/VueUtils/GaoPaiYi/HighMeter.vue +1090 -0
  97. package/src/components/product/VueUtils/HighMeter.vue +208 -208
  98. package/src/components/product/VueUtils/ToolsPage.vue +51 -0
  99. package/src/components/product/VueUtils/Tree.vue +330 -0
  100. package/src/dingding.js +19 -0
  101. package/src/expandcssAndroid.less +517 -1034
  102. package/src/filiale/yuchuan/android/Process/AppServiceControl.vue +735 -731
  103. package/src/filiale/yuchuan/android/Process/Processes/AppInstallationDetails.vue +824 -824
  104. package/src/filiale/yuchuan/android/Process/Processes/AppInstallationDetailsCivil.vue +650 -650
  105. package/src/filiale/yuchuan/android/Sign/AppSignTask.vue +182 -182
  106. package/src/filiale/yuchuan/android/Sign/BuildSign.vue +50 -50
  107. package/src/filiale/yuchuan/android/Sign/ConstructSign.vue +50 -50
  108. package/src/filiale/yuchuan/android/Sign/DesignSign.vue +50 -50
  109. package/src/filiale/yuchuan/android/Sign/SupervisorSign.vue +50 -50
  110. package/src/filiale/yuchuan/android/Task/Build/BuildTsak.vue +60 -60
  111. package/src/filiale/yuchuan/android/Task/Survey/SurveyTsak.vue +60 -60
  112. package/src/filiale/yuchuan/android.js +14 -14
  113. package/src/filiale/yuchuan/pc/Order/OrderApply.vue +528 -528
  114. package/src/filiale/yuchuan/pc/Order/OrderApplyList.vue +343 -343
  115. package/src/filiale/yuchuan/pc/Print/BuildOrder/buildOrderList.vue +264 -0
  116. package/src/filiale/yuchuan/pc/Print/BuildOrder/printBuildOrder.vue +152 -0
  117. package/src/filiale/yuchuan/pc/Process/ExplorationUser.vue +149 -149
  118. package/src/filiale/yuchuan/pc/Process/Processes/ApplyMapCom.vue +67 -67
  119. package/src/filiale/yuchuan/pc/Process/Processes/InstallationDetails.vue +809 -809
  120. package/src/filiale/yuchuan/pc/Process/Processes/InstallationDetailsCivil.vue +595 -595
  121. package/src/filiale/yuchuan/pc/Process/Processes/Print/printCharge.vue +125 -0
  122. package/src/filiale/yuchuan/pc/Process/Processes/chargeManagement.vue +621 -470
  123. package/src/filiale/yuchuan/pc/Process/Service/ServiceControl.vue +1108 -1074
  124. package/src/filiale/yuchuan/pc/Sign/SignRecord.vue +24 -0
  125. package/src/filiale/yuchuan/pc/Sign/SignRecordList.vue +174 -0
  126. package/src/filiale/yuchuan/pc.js +20 -12
  127. package/src/main.js +4 -1
  128. package/src/components/product/Function/StopApplyCrrdList.vue +0 -176
  129. package/src/components/product/Function/functions/ApplyRecordCancel.vue +0 -102
  130. package/src/components/product/Function/functions/StopInstall.vue +0 -106
@@ -1,125 +1,125 @@
1
- <template>
2
- <div>
3
- <div :style="'height:' + AmapHeight">
4
- <AMap-location
5
- :islocation="true"
6
- :locationzoomcenter="false"
7
- :usenative="true"
8
- :isshowsearch="false"
9
- :mylocationinfo="false"
10
- :islocationclearmark="false"
11
- :isshowmapmodel="false"
12
- :locationwindow="false"
13
- mapmodel="dragMarker"
14
- :labelmarksarray="labelmarksarray"
15
- @diyspotmouseclick="diyspotmouseclick"
16
- ></AMap-location>
17
- </div>
18
- <div class="auto row" v-if="selectdata">
19
- <div class="col-sm-12 col-xs-12 form-group app-input" style="margin-top: 10px"></div>
20
- <template v-for="item in fileds">
21
- <div class="col-sm-12 col-xs-12 form-group app-input">
22
- <label class="">{{ item.label }}</label>
23
- <div :class="item.type === 'tel' || item.type === 'map' ? 'col-sm-8 col-xs-8' : 'col-sm-8 col-xs-9'">
24
- <input style="width: 100%" type="text" placeholder="" v-model="selectdata[item.field]" :value="selectdata[item.field]" readonly>
25
- <svg v-if="item.type === 'tel'" @click.prevent="dialNumber(selectdata[item.field])" style="width: 25px;height: 25px;position: absolute;bottom: 8px;" t="1628575136009" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2374" width="200" height="200"><path d="M682.25 465.262c0 16.695 11.115 27.811 27.81 27.811s27.812-11.116 27.812-27.811A167.395 167.395 0 0 0 570.96 298.35c-16.695 0-27.811 11.116-27.811 27.811s11.16 27.812 27.811 27.812a111.597 111.597 0 0 1 111.29 111.289z m111.289 0c0 16.695 11.115 27.811 27.81 27.811s27.812-11.116 27.812-27.811c0-152.984-125.217-278.201-278.2-278.201-16.696 0-27.812 11.16-27.812 27.855s11.16 27.811 27.811 27.811c122.405 0 222.579 100.174 222.579 222.535zM417.976 367.9c30.623-30.579 33.391-77.898 5.58-111.289L337.31 148.134c-27.811-36.16-80.666-41.74-116.869-13.928-2.768 2.812-5.536 2.812-5.536 5.58l-75.13 75.13c-72.318 72.318 30.623 267.041 217.042 453.417C543.15 854.708 735.06 954.88 807.378 885.33l75.13-75.13c33.392-33.391 33.392-86.246 0-116.825l-5.536-5.58-108.52-86.246c-33.348-27.81-80.623-25.043-111.246 5.58l-47.275 47.319c-50.087-30.623-94.593-64.014-133.564-102.941-38.927-38.971-72.275-83.478-102.898-133.565l44.507-50.043z m-38.927-75.13c8.348 11.16 8.348 27.855-2.812 36.203l-61.202 63.97a29.569 29.569 0 0 0-5.536 33.392 721.425 721.425 0 0 0 122.405 164.1 721.512 721.512 0 0 0 164.1 122.405 29.569 29.569 0 0 0 33.39-5.58l63.971-63.97c11.16-11.116 25.043-11.116 36.203-2.769l108.477 89.014s2.768 0 2.768 2.768a26.889 26.889 0 0 1 0 38.971l-75.13 75.13c-36.115 36.115-208.606-55.666-372.75-217.042-164.1-161.332-253.114-336.548-216.955-372.75l77.854-77.899c11.16-8.348 30.623-8.348 38.971 5.58l86.246 108.521z" fill="#8A8A8A" p-id="2375"></path></svg>
26
- <svg v-if="item.type === 'map'" @click="openAmap(selectdata[item.field])" style="width: 25px;height: 25px;position: absolute;bottom: 8px;" t="1628575336648" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3201" width="200" height="200"><path d="M512 956h-1.1c-10.9 0-20.5-6.9-24.7-17L369.9 654.1 85 537.8c-10.1-4.1-16.8-13.7-17.2-24.6-0.4-10.9 5.6-21 15.3-25.9l833-416.5c10.7-5.3 23.6-3.2 32.1 5.2s10.5 21.4 5.2 32.1L536.8 940.9c-4.7 9.4-14.3 15.1-24.8 15.1zM162.7 509.6l239 97.6c6.9 2.8 12.4 8.3 15.2 15.2l97.6 239 351.9-703.8-703.7 352z" fill="#666666" p-id="3202"></path></svg>
27
- </div>
28
- </div>
29
- </template>
30
- <div class="col-sm-12 col-xs-12 form-group app-btn">
31
- <button class="btn btn-info" @click.prevent="click()">查看详情</button>
32
- </div>
33
- </div>
34
- </div>
35
- </template>
36
- <script>
37
- import Vue from 'vue'
38
- export default {
39
- title: '地图任务点',
40
- props: {
41
- data: {
42
- type: Array,
43
- default: []
44
- },
45
- fileds: {
46
- type: Array,
47
- default: []
48
- }
49
- },
50
- data () {
51
- return {
52
- labelmarksarray: [],
53
- selectdata: null,
54
- AmapHeight: '100%'
55
- }
56
- },
57
- ready () {
58
- this.getLocatingPoint()
59
- },
60
- methods: {
61
- // 查看详情
62
- click () {
63
- let _this = this
64
- this.$dispatch('gotoson', {
65
- _this: _this,
66
- title: _this.selectdata.defname,
67
- safe: true
68
- })
69
- this.$goto('app-service-control', {selectdata: _this.selectdata}, 'self', null)
70
- },
71
- // 导航
72
- openAmap (address) {
73
- let _this = this
74
- HostApp.openThirdPartyMap({
75
- lon: _this.selectdata.f_longitude,
76
- lat: _this.selectdata.f_dimension,
77
- address: address
78
- })
79
- },
80
- // 拨打电话
81
- dialNumber (tel) {
82
- this.$showMessage(`是否拨打电话:${tel}`, ['confirm']).then((res) => {
83
- if (res === 'confirm') {
84
- this.$androidUtil.makeAPhoneCall(tel)
85
- }
86
- })
87
- },
88
- // 点击定位点回调
89
- diyspotmouseclick (data) {
90
- this.AmapHeight = '60%'
91
-
92
- this.selectdata = data
93
- },
94
- // 获取定位点
95
- getLocatingPoint () {
96
- this.data.forEach(item => {
97
- this.labelmarksarray.push({
98
- data: {
99
- data: item,
100
- content: item.f_user_name
101
- },
102
- position: [item.f_longitude, item.f_dimension],
103
- isclearmarker: false,
104
- islabel: false
105
- })
106
- })
107
- }
108
- },
109
- events: {
110
- },
111
- watch: {
112
- 'data' () {
113
- this.getLocatingPoint()
114
- }
115
- }
116
- }
117
- </script>
118
-
119
- <style lang="less">
120
- .app-input {
121
- label {
122
- float: left;
123
- }
124
- }
125
- </style>
1
+ <template>
2
+ <div>
3
+ <div :style="'height:' + AmapHeight">
4
+ <AMap-location
5
+ :islocation="true"
6
+ :locationzoomcenter="false"
7
+ :usenative="true"
8
+ :isshowsearch="false"
9
+ :mylocationinfo="false"
10
+ :islocationclearmark="false"
11
+ :isshowmapmodel="false"
12
+ :locationwindow="false"
13
+ mapmodel="dragMarker"
14
+ :labelmarksarray="labelmarksarray"
15
+ @diyspotmouseclick="diyspotmouseclick"
16
+ ></AMap-location>
17
+ </div>
18
+ <div class="auto row" v-if="selectdata">
19
+ <div class="col-sm-12 col-xs-12 form-group app-input" style="margin-top: 10px"></div>
20
+ <template v-for="item in fileds">
21
+ <div class="col-sm-12 col-xs-12 form-group app-input">
22
+ <label class="">{{ item.label }}</label>
23
+ <div :class="item.type === 'tel' || item.type === 'map' ? 'col-sm-8 col-xs-8' : 'col-sm-8 col-xs-9'">
24
+ <input style="width: 100%" type="text" placeholder="" v-model="selectdata[item.field]" :value="selectdata[item.field]" readonly>
25
+ <svg v-if="item.type === 'tel'" @click.prevent="dialNumber(selectdata[item.field])" style="width: 25px;height: 25px;position: absolute;bottom: 8px;" t="1628575136009" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2374" width="200" height="200"><path d="M682.25 465.262c0 16.695 11.115 27.811 27.81 27.811s27.812-11.116 27.812-27.811A167.395 167.395 0 0 0 570.96 298.35c-16.695 0-27.811 11.116-27.811 27.811s11.16 27.812 27.811 27.812a111.597 111.597 0 0 1 111.29 111.289z m111.289 0c0 16.695 11.115 27.811 27.81 27.811s27.812-11.116 27.812-27.811c0-152.984-125.217-278.201-278.2-278.201-16.696 0-27.812 11.16-27.812 27.855s11.16 27.811 27.811 27.811c122.405 0 222.579 100.174 222.579 222.535zM417.976 367.9c30.623-30.579 33.391-77.898 5.58-111.289L337.31 148.134c-27.811-36.16-80.666-41.74-116.869-13.928-2.768 2.812-5.536 2.812-5.536 5.58l-75.13 75.13c-72.318 72.318 30.623 267.041 217.042 453.417C543.15 854.708 735.06 954.88 807.378 885.33l75.13-75.13c33.392-33.391 33.392-86.246 0-116.825l-5.536-5.58-108.52-86.246c-33.348-27.81-80.623-25.043-111.246 5.58l-47.275 47.319c-50.087-30.623-94.593-64.014-133.564-102.941-38.927-38.971-72.275-83.478-102.898-133.565l44.507-50.043z m-38.927-75.13c8.348 11.16 8.348 27.855-2.812 36.203l-61.202 63.97a29.569 29.569 0 0 0-5.536 33.392 721.425 721.425 0 0 0 122.405 164.1 721.512 721.512 0 0 0 164.1 122.405 29.569 29.569 0 0 0 33.39-5.58l63.971-63.97c11.16-11.116 25.043-11.116 36.203-2.769l108.477 89.014s2.768 0 2.768 2.768a26.889 26.889 0 0 1 0 38.971l-75.13 75.13c-36.115 36.115-208.606-55.666-372.75-217.042-164.1-161.332-253.114-336.548-216.955-372.75l77.854-77.899c11.16-8.348 30.623-8.348 38.971 5.58l86.246 108.521z" fill="#8A8A8A" p-id="2375"></path></svg>
26
+ <svg v-if="item.type === 'map'" @click="openAmap(selectdata[item.field])" style="width: 25px;height: 25px;position: absolute;bottom: 8px;" t="1628575336648" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3201" width="200" height="200"><path d="M512 956h-1.1c-10.9 0-20.5-6.9-24.7-17L369.9 654.1 85 537.8c-10.1-4.1-16.8-13.7-17.2-24.6-0.4-10.9 5.6-21 15.3-25.9l833-416.5c10.7-5.3 23.6-3.2 32.1 5.2s10.5 21.4 5.2 32.1L536.8 940.9c-4.7 9.4-14.3 15.1-24.8 15.1zM162.7 509.6l239 97.6c6.9 2.8 12.4 8.3 15.2 15.2l97.6 239 351.9-703.8-703.7 352z" fill="#666666" p-id="3202"></path></svg>
27
+ </div>
28
+ </div>
29
+ </template>
30
+ <div class="col-sm-12 col-xs-12 form-group app-btn">
31
+ <button class="btn btn-info" @click.prevent="click()">查看详情</button>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </template>
36
+ <script>
37
+ import Vue from 'vue'
38
+ export default {
39
+ title: '地图任务点',
40
+ props: {
41
+ data: {
42
+ type: Array,
43
+ default: []
44
+ },
45
+ fileds: {
46
+ type: Array,
47
+ default: []
48
+ }
49
+ },
50
+ data () {
51
+ return {
52
+ labelmarksarray: [],
53
+ selectdata: null,
54
+ AmapHeight: '100%'
55
+ }
56
+ },
57
+ ready () {
58
+ this.getLocatingPoint()
59
+ },
60
+ methods: {
61
+ // 查看详情
62
+ click () {
63
+ let _this = this
64
+ this.$dispatch('gotoson', {
65
+ _this: _this,
66
+ title: _this.selectdata.defname,
67
+ safe: true
68
+ })
69
+ this.$goto('app-service-control', {selectdata: _this.selectdata}, 'self', null)
70
+ },
71
+ // 导航
72
+ openAmap (address) {
73
+ let _this = this
74
+ HostApp.openThirdPartyMap({
75
+ lon: _this.selectdata.f_longitude,
76
+ lat: _this.selectdata.f_dimension,
77
+ address: address
78
+ })
79
+ },
80
+ // 拨打电话
81
+ dialNumber (tel) {
82
+ this.$showMessage(`是否拨打电话:${tel}`, ['confirm']).then((res) => {
83
+ if (res === 'confirm') {
84
+ this.$androidUtil.makeAPhoneCall(tel)
85
+ }
86
+ })
87
+ },
88
+ // 点击定位点回调
89
+ diyspotmouseclick (data) {
90
+ this.AmapHeight = '60%'
91
+
92
+ this.selectdata = data
93
+ },
94
+ // 获取定位点
95
+ getLocatingPoint () {
96
+ this.data.forEach(item => {
97
+ this.labelmarksarray.push({
98
+ data: {
99
+ data: item,
100
+ content: item.f_user_name
101
+ },
102
+ position: [item.f_longitude, item.f_dimension],
103
+ isclearmarker: false,
104
+ islabel: false
105
+ })
106
+ })
107
+ }
108
+ },
109
+ events: {
110
+ },
111
+ watch: {
112
+ 'data' () {
113
+ this.getLocatingPoint()
114
+ }
115
+ }
116
+ }
117
+ </script>
118
+
119
+ <style lang="less">
120
+ .app-input {
121
+ label {
122
+ float: left;
123
+ }
124
+ }
125
+ </style>
@@ -0,0 +1,149 @@
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"
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 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" :id="'vc-tabset-close-'+attach +'-'+$index"></span>
20
+ </button>
21
+
22
+ </li>
23
+ </ul>
24
+
25
+ <!-- Tab panes -->
26
+ <div class="tab-content span" v-el:tab-content>
27
+ <slot></slot>
28
+ </div>
29
+ </div>
30
+ </template>
31
+
32
+ <script>
33
+ import {remove} from 'vue-client/src/stores/Remove.js'
34
+
35
+ export default {
36
+ props: {
37
+ navStyle: {
38
+ type: String,
39
+ default: 'tabs'
40
+ },
41
+ effect: {
42
+ type: String,
43
+ default: 'fadein'
44
+ },
45
+ active: {
46
+ type: Number,
47
+ default: 0
48
+ },
49
+ close: {
50
+ type: Boolean,
51
+ default: false
52
+ },
53
+ attach: {
54
+ type: String,
55
+ default: 'vuestrap'
56
+ },
57
+ content: {}
58
+ },
59
+ ready () {
60
+ remove.$on('remove', (name) => {
61
+ console.log('tabset收$on 到的名字为:', name)
62
+ this.$removeTab(name)
63
+ })
64
+ },
65
+ data () {
66
+ return {
67
+ // 数据格式:{comp, header,disabled}
68
+ // - comp: 当前页签对应的tab组件
69
+ renderData: []
70
+ }
71
+ },
72
+ methods: {
73
+ handleTabListClick (index, el) {
74
+ this.$parent.show[index] = true
75
+ if (el.comp._scope && el.comp._scope.tab) {
76
+ this.$dispatch('tab-changed', el.comp._scope.tab.comp.name)
77
+ }
78
+ if (!el.disabled) this.active = index
79
+ },
80
+ // deletetab函数为自己添加
81
+ deletetTab (el) {
82
+ this.$removeTab(el.comp._scope.tab.comp.name)
83
+ remove.$emit('delete', el.comp._scope.tab.comp.name)
84
+ },
85
+ // 根据删除也下标,修改所有页签的下标
86
+ modifyAllIndex (index) {
87
+ let cur = this.active
88
+ this.$nextTick(() => {
89
+ // 关闭页签以后的多有页签的的下标向前挪动一位,之前的页签不动
90
+ for (var i = index; i < this.renderData.length; i++) {
91
+ this.renderData[i].comp.index -= 1
92
+ }
93
+ // 修改激活页
94
+ // 获取当前激活页签下标,关闭在当前激活页之后(包含当前激活页),当前激活页下标不变
95
+ // 当关闭当前激活页之前(激活页向前移动一位)
96
+ if (this.active > index || this.active === this.renderData.length) {
97
+ this.active = cur - 1
98
+ } else if (cur === 0) {
99
+ this.active = 0
100
+ } else {
101
+ this.active = cur
102
+ }
103
+ if (this.active === -1) {
104
+ this.$dispatch('tab-changed', null)
105
+ } else {
106
+ this.$dispatch('tab-changed', this.renderData[this.active].comp._scope.tab.comp.name)
107
+ }
108
+ })
109
+ }
110
+ },
111
+ events: {
112
+ 'delete' (index) {
113
+ this.modifyAllIndex(index)
114
+ }
115
+ }
116
+ }
117
+ </script>
118
+
119
+ <style scoped>
120
+ ul > li > a {
121
+ position: relative;
122
+ }
123
+ ul > li > a > span {
124
+ display: none;
125
+ }
126
+ /*ul > li > a:hover > span {*/
127
+ /*display: initial;*/
128
+ /*position: absolute;*/
129
+ /*right: 0;*/
130
+ /*top: 35%;*/
131
+ /*border: 1px solid #EAEAEA;*/
132
+ /*}*/
133
+ /*ul > li > a:hover > span:hover {*/
134
+ /*border: 1px solid #EAEAEA;*/
135
+ /*color: #5cb95c;*/
136
+ /*}*/
137
+ ul > li > button {
138
+ background-color: #FFFFFF;
139
+ border-radius: 4px;
140
+ color: #999;
141
+ border: 1px solid #5cb95c;
142
+ }
143
+ .btn-succ{
144
+ background-color: #6aa6e2;
145
+ border-radius: 4px;
146
+ color: #fff;
147
+ }
148
+
149
+ </style>
@@ -0,0 +1,67 @@
1
+ <template>
2
+ <div role="tabpanel" class="tab-pane"
3
+ v-bind:class="{hide:!show}"
4
+ v-if="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>
Binary file
Binary file