apply-clients 3.4.3 → 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 (79) hide show
  1. package/package.json +1 -1
  2. package/src/AndroidApp.vue +18 -18
  3. package/src/android.js +1 -1
  4. package/src/apply.js +39 -20
  5. package/src/applyAndroid.js +23 -9
  6. package/src/components/android/AppOnetomany.vue +47 -5
  7. package/src/components/android/AppServiceView.vue +745 -566
  8. package/src/components/android/AppSign.vue +154 -142
  9. package/src/components/android/AppTakePic.vue +11 -11
  10. package/src/components/android/AreaSelect/AppQrcodeReader.vue +73 -0
  11. package/src/components/android/AreaSelect/AppResAreaMapGroup.vue +148 -0
  12. package/src/components/android/AreaSelect/AppResAreaSelect.vue +108 -0
  13. package/src/components/android/AreaSelect/AppResAreaSelectGroup.vue +142 -0
  14. package/src/components/android/Function/AppFunctionServiceControl.vue +344 -0
  15. package/src/components/android/Function/AppInstallFunction.vue +366 -0
  16. package/src/components/android/Process/AppExplorationUser.vue +217 -37
  17. package/src/components/android/Process/AppServiceControl.vue +1708 -757
  18. package/src/components/android/Process/Processes/AppAddMaterialScience.vue +477 -0
  19. package/src/components/android/Process/Processes/AppBuildSign.vue +46 -0
  20. package/src/components/android/Process/Processes/AppChargeManagement.vue +637 -0
  21. package/src/components/android/Process/Processes/AppDevicesManagement.vue +519 -0
  22. package/src/components/android/Process/Processes/AppInstallationDetails.vue +482 -456
  23. package/src/components/android/Process/Processes/AppSupplementalAgreement.vue +298 -0
  24. package/src/components/android/Process/Processes/selectApply.vue +250 -0
  25. package/src/components/android/Process/Processes/selectUserinfo.vue +182 -0
  26. package/src/components/android/Supervisory/AppProcessSupervisory.vue +205 -71
  27. package/src/components/android/Supervisory/AppSupervisoryCart.vue +156 -121
  28. package/src/components/common/TabButton.vue +149 -0
  29. package/src/components/common/Tabs.vue +67 -0
  30. package/src/components/image/dwg.jpg +0 -0
  31. package/src/components/image/txt.jpg +0 -0
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. package/src/components/product/ApplyCharge/ApplyChargeList.vue +272 -53
  38. package/src/components/product/ApplyCharge/ApplyChargeSearch.vue +3 -3
  39. package/src/components/product/AreaSelect/MyAreaSelect.vue +423 -0
  40. package/src/components/product/AreaSelect/ResAreaSelect.vue +106 -0
  41. package/src/components/product/AreaSelect/ResAreaSelectGroup.vue +150 -0
  42. package/src/components/product/AreaSelect/utils/EventListener.js +29 -0
  43. package/src/components/product/AreaSelect/utils/coerceBoolean.js +7 -0
  44. package/src/components/product/Function/InstallFunction.vue +3 -2
  45. package/src/components/product/Function/InstallInfoSelect.vue +41 -21
  46. package/src/components/product/Function/Service/FunctionServiceControl.vue +96 -71
  47. package/src/components/product/GaoDeMapComponents/GaoDeMap.vue +231 -0
  48. package/src/components/product/Install/InstallProject.vue +194 -0
  49. package/src/components/product/OldApply/Handle/HandleApply.vue +337 -0
  50. package/src/components/product/OldApply/Monitor/MonitorApply.vue +360 -0
  51. package/src/components/product/OldApply/OldApply.vue +209 -0
  52. package/src/components/product/OldApply/OldApplyMessage.vue +420 -0
  53. package/src/components/product/Onetomany.vue +40 -11
  54. package/src/components/product/Process/ExplorationSelect.vue +495 -417
  55. package/src/components/product/Process/ExplorationUser.vue +145 -94
  56. package/src/components/product/Process/Processes/InstallationDetails.vue +610 -592
  57. package/src/components/product/Process/Processes/Print/printCharge.vue +166 -142
  58. package/src/components/product/Process/Processes/Print/printChargepc.vue +142 -0
  59. package/src/components/product/Process/Processes/Print/printRefund.vue +196 -0
  60. package/src/components/product/Process/Processes/addMaterialScience.vue +454 -0
  61. package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +4 -0
  62. package/src/components/product/Process/Processes/chargeManagement.vue +656 -638
  63. package/src/components/product/Process/Processes/devicesManagement.vue +484 -478
  64. package/src/components/product/Process/Processes/selectApply.vue +2 -2
  65. package/src/components/product/Process/Service/ServiceControl.vue +628 -10
  66. package/src/components/product/Process/ShowBackReason.vue +33 -0
  67. package/src/components/product/ServiceView.vue +981 -631
  68. package/src/components/product/Stop/StopApply.vue +26 -30
  69. package/src/components/product/Stop/StopApplyList.vue +27 -25
  70. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +732 -34
  71. package/src/components/product/Supervisory/SupervisoryControl.vue +38 -1
  72. package/src/components/product/Supervisory/SupervisoryList.vue +404 -233
  73. package/src/components/product/Supervisory/SupervisoryhCart.vue +51 -28
  74. package/src/components/product/VueUtils/ApplyUpload.vue +40 -38
  75. package/src/components/product/VueUtils/GaoPaiYi/HighMeter.vue +1090 -0
  76. package/src/components/product/VueUtils/ToolsPage.vue +51 -0
  77. package/src/components/product/VueUtils/Tree.vue +330 -0
  78. package/src/expandcssAndroid.less +362 -879
  79. package/src/main.js +3 -0
@@ -0,0 +1,142 @@
1
+ <template>
2
+ <div :class="style">
3
+ <label :class="labelstyle" :style="shijifontColors">市&emsp;&emsp;县</label>
4
+ <app-res-area-select
5
+ :options = options
6
+ @res-select="getXian"
7
+ :issearch = "false"
8
+ >
9
+ </app-res-area-select>
10
+ </div>
11
+ <div :class="style">
12
+ <label :class="labelstyle" :style="xianfontColors">街道乡镇</label>
13
+ <app-res-area-select
14
+ :options = xian_options
15
+ @res-select="getjdao"
16
+ :issearch = "false"
17
+ >
18
+ </app-res-area-select>
19
+ </div>
20
+ <div :class="style">
21
+ <label :class="labelstyle" :style="shequfontColors">社&emsp;&emsp;区</label>
22
+ <app-res-area-select
23
+ :options = jdao_options
24
+ @res-select="getshequ"
25
+ :issearch = "false"
26
+ >
27
+ </app-res-area-select>
28
+ </div>
29
+ </template>
30
+ <script>
31
+
32
+ import { HttpResetClass } from 'vue-client'
33
+ import Vue from "vue";
34
+ export default {
35
+ title: '区域选择分组',
36
+ props: {
37
+ style: {
38
+ type: String,
39
+ default: 'col-xs-12 form-group app-input'
40
+ },
41
+ labelstyle: {
42
+ type: String,
43
+ default: 'font_normal_title'
44
+ },
45
+ mul: {
46
+ type: Boolean,
47
+ default: true
48
+ },
49
+ //初始值 默认选中值
50
+ initres: {
51
+ type: Object,
52
+ default: null,
53
+ }
54
+ },
55
+ data () {
56
+ return {
57
+ options:[],
58
+ initres: [],
59
+ xianginitres: [],
60
+ jdaoinitres: [],
61
+ xian_options:[],
62
+ jdao_options:[],
63
+ shijifontColors:"color: #cd5c5c",//红色
64
+ xianfontColors:"color: #cd5c5c",//红色
65
+ shequfontColors:"color: #cd5c5c",//红色
66
+ pubColors:"color: #0c2e4d",// 黑色
67
+ pub2Colors:"color: #cd5c5c"// 红色
68
+ }
69
+ },
70
+ ready () {
71
+ this.getResList();
72
+ },
73
+ methods:{
74
+ //获取区域地址
75
+ async getResList() {
76
+ let http = new HttpResetClass()
77
+ // let req = await http.load('POST', '/rs/logic/resAreaSelect', {
78
+ let req = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/resAreaSelect`, {
79
+ userid: Vue.user.id,
80
+ orgid: Vue.user.orgid
81
+ }, {resolveMsg: null, rejectMsg: '获取区域地址失败'})
82
+ this.options = []
83
+ this.options = req.data
84
+ },
85
+ async getXian(value,lable,obj) {
86
+ this.xian_options = []
87
+ this.jdao_options = []
88
+ let newFilArr = obj.filter( (item,i) =>{
89
+ if(item.value == value){
90
+ return item
91
+ }
92
+ } )
93
+ if (newFilArr.length>0){
94
+ this.xian_options = newFilArr[0].children
95
+ }
96
+ if (value !=null && value.length!=0){
97
+ this.shijifontColors = this.pubColors
98
+ }else {
99
+ this.shijifontColors = this.pub2Colors
100
+ this.xianfontColors = this.pub2Colors
101
+ this.shequfontColors = this.pub2Colors
102
+ }
103
+ this.$parent.$parent.$parent.areaData.sjvalue = value
104
+ this.$parent.$parent.$parent.disableButton()
105
+ // this.$dispatch('shiji-select', value, lable)
106
+ },
107
+ async getjdao(value,lable,obj) {
108
+ this.jdao_options = []
109
+ let newFilArr = obj.filter( (item,i) =>{
110
+ if(item.value == value){
111
+ return item
112
+ }
113
+ } )
114
+ if (newFilArr.length>0){
115
+ this.jdao_options = newFilArr[0].children
116
+ }
117
+ if (value !=null && value.length!=0){
118
+ this.xianfontColors = this.pubColors
119
+ }else {
120
+ this.xianfontColors = this.pub2Colors
121
+ this.shequfontColors = this.pub2Colors
122
+ }
123
+ this.$parent.$parent.$parent.areaData.xianvalue = value
124
+ this.$parent.$parent.$parent.disableButton()
125
+ // this.$dispatch('xian-select',value, lable)
126
+ },
127
+ async getshequ(value,lable,obj) {
128
+ if (value !=null && value.length!=0){
129
+ this.shequfontColors = this.pubColors
130
+ }else {
131
+ this.shequfontColors = this.pub2Colors
132
+ }
133
+ this.$parent.$parent.$parent.areaData.sqvalue = value
134
+ this.$parent.$parent.$parent.disableButton()
135
+ // this.$dispatch('shequ-select',value, lable)
136
+ }
137
+ },
138
+ watch: {
139
+
140
+ }
141
+ }
142
+ </script>
@@ -0,0 +1,344 @@
1
+ <template>
2
+ <div class="col-sm-12 col-xs-12 p-10">
3
+ <accordion one-at-a-time="true">
4
+ <panel :header="selectdata.title" :is-open="true" type="primary">
5
+ <app-service-view v-ref:serviceview :data="show_data" v-if="showview"></app-service-view>
6
+ </panel>
7
+ <panel header="拍照" :is-open="false" type="primary" v-if="selectdata.f_process_id">
8
+ <app-take-pic :blobid="selectdata.f_process_id" :defname="selectdata.defname" :isdelete="true" :istakepic="true" :istype="true"></app-take-pic>
9
+ </panel>
10
+ </accordion>
11
+ </div>
12
+ </template>
13
+ <script>
14
+ import {HttpResetClass} from 'vue-client'
15
+ import Vue from 'vue'
16
+ export default {
17
+ title: '报建功能业务控制层',
18
+ props: ['selectdata', 'jsondata'],
19
+ data () {
20
+ return {
21
+ show_data: null, // 给通用页面显示的数据
22
+ showview: false // 控制通用页面
23
+ }
24
+ },
25
+ ready () {
26
+ this.refurbish()
27
+ },
28
+ methods: {
29
+ async refurbish () {
30
+ this.selectdata = Object.assign({}, this.selectdata, this.jsondata)
31
+
32
+ // fields 字段填充值
33
+ for (const item of this.selectdata.fields) {
34
+ if (!item.value) {
35
+ item.value = null
36
+ }
37
+
38
+ if (!item.value && (item.default || item.default === 0) && item.type !== 'datepicker') {
39
+ if (item.eval) {
40
+ let user = Vue.user
41
+ // 将PC用户信息 替换成 APP的
42
+ item.value = eval(item.default.replace('this.$login.f', 'user'))
43
+ } else {
44
+ item.value = item.default
45
+ }
46
+ }
47
+
48
+ if (this.selectdata[item.field]) {
49
+ // 将json字符串格式化赋值给value
50
+ if (String(this.selectdata[item.field]).startsWith("{")) {
51
+ item.value = JSON.parse(this.selectdata[item.field])
52
+ } else {
53
+ item.value = this.selectdata[item.field]
54
+ }
55
+ }
56
+ if (this.selectdata[item.field] === 0) {
57
+ item.value = 0
58
+ }
59
+
60
+ // datepicker
61
+ if (item.type === 'datepicker' && !item.value && item.default) {
62
+ item.value = new Date().Format(`${item.format ? item.format : 'yyyy-MM-dd HH:mm:ss'}`)
63
+ }
64
+
65
+ // 如果配置类型为select,优先从参数列表获取options
66
+ if (item.type === 'select' || item.type === 'checkbox') {
67
+ if (item.param) {
68
+ let temp = this.$appdata.getParam(item.label)
69
+
70
+ if (temp && temp.length > 0) {
71
+ item.options = temp
72
+ }
73
+
74
+ if (item.paramLabel) {
75
+ temp = this.$appdata.getParam(item.paramLabel)
76
+ if (temp && temp.length > 0) {
77
+ item.options = temp
78
+ }
79
+ }
80
+ }
81
+
82
+ if (item.ready) {
83
+ item.options = await this[item.ready]()
84
+ }
85
+ }
86
+
87
+
88
+ if (item.type === 'checkbox') {
89
+ if (this.selectdata[item.field]) {
90
+ item.value = JSON.parse(this.selectdata[item.field])
91
+ } else {
92
+ item.value = []
93
+ }
94
+ }
95
+ }
96
+
97
+ // 控制组件
98
+ if (this.selectdata.components) {
99
+ this.selectdata.components.forEach(item => {
100
+ item.mark = 2
101
+ })
102
+ }
103
+
104
+ // 初始化onetomany
105
+ if (this.selectdata.onetomany) {
106
+ for (const item of this.selectdata.onetomany) {
107
+ let res = null
108
+ if (item.queryEvent) {
109
+ res = this[item.queryEvent]()
110
+ } else {
111
+ let data = {
112
+ tablename: item.tables[0],
113
+ condition: `f_process_id='${this.selectdata.f_process_id}'`
114
+ }
115
+ res = await this.$resetpost(
116
+ `${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`,
117
+ {data: data},
118
+ {resolveMsg: null, rejectMsg: 'onetomany查询失败'}
119
+ )
120
+ }
121
+
122
+ item.rows = res.data
123
+
124
+ // 初始化onetomany中的fields
125
+ for (const field of item.fields) {
126
+ if (!field.value) {
127
+ if (field.value !== 0) {
128
+ field.value = null
129
+ }
130
+ }
131
+
132
+ if (field.default || field.default === 0) {
133
+ field.value = field.default
134
+ }
135
+
136
+ // datepicker
137
+ if (field.type === 'datepicker' && !field.value && field.default) {
138
+ field.value = new Date().Format(`${field.format ? field.format : 'yyyy-MM-dd HH:mm:ss'}`)
139
+ }
140
+
141
+ if (field.type === 'select') {
142
+ let temp = this.$appdata.getParam(field.label)
143
+
144
+ if (temp && temp.length > 0) {
145
+ field.options = temp
146
+ }
147
+
148
+ if (field.paramLabel) {
149
+ temp = this.$appdata.getParam(field.paramLabel)
150
+ if (temp && temp.length > 0) {
151
+ item.options = temp
152
+ }
153
+ }
154
+ }
155
+ }
156
+ }
157
+ }
158
+
159
+ // 消除双向绑定,避免子组件(显示层)数据更改,父组件(控制层)也更改
160
+ let temp = JSON.parse(JSON.stringify(this.selectdata))
161
+
162
+ this.show_data = temp
163
+ this.$nextTick(() => {
164
+ this.showview = true
165
+ })
166
+ },
167
+ getLableValue(label) {
168
+ for (const item of this.show_data.fields) {
169
+ if (item.label === label && item.type !== 'number') {
170
+ return item.value || ''
171
+ }
172
+ if (item.label === label && item.type === 'number') {
173
+ return item.value || 0
174
+ }
175
+ }
176
+ },
177
+ getLableOptions(label) {
178
+ for (const item of this.show_data.fields) {
179
+ if (item.label === label) {
180
+ return item.options
181
+ }
182
+ }
183
+ },
184
+ setLabelValue(label, value) {
185
+ for (const item of this.show_data.fields) {
186
+ if (item.label === label) {
187
+ item.value = value
188
+ this.show_data[item.field] = value
189
+ }
190
+ }
191
+ },
192
+ setLabelOptions(label, options) {
193
+ for (const item of this.show_data.fields) {
194
+ if (item.label === label) {
195
+ item.options = options
196
+ }
197
+ }
198
+ },
199
+ async breakControl () {
200
+ if (this.show_data.id) {
201
+ let data = {
202
+ condition: `u.id = ${this.show_data.id}`,
203
+ data: {
204
+ orgid: Vue.user.orgid
205
+ // id: '51953',
206
+ // orgid: '10101'
207
+ }
208
+ }
209
+ let res = await this.$resetpost(
210
+ `${this.$androidUtil.getProxyUrl()}/rs/sql/checkuserfunction`,
211
+ // `rs/sql/checkuserfunction`,
212
+ {data: data},
213
+ {resolveMsg: null, rejectMsg: '数据更新失败,请手查询更新!!!'}
214
+ )
215
+
216
+ this.selectdata = res.data[0]
217
+ } else {
218
+ this.selectdata = servicedata
219
+ }
220
+
221
+ this.refurbish()
222
+ },
223
+ },
224
+ events: {
225
+ async 'stopApply' () {
226
+
227
+ let data = {
228
+ data: this.show_data,
229
+ user: Vue.user
230
+ }
231
+
232
+ let res = await this.$resetpost(
233
+ `${this.$androidUtil.getProxyUrl()}/rs/logic/stopApply`,
234
+ {data: data},
235
+ {resolveMsg: null, rejectMsg: '终止报建失败!!!'}
236
+ )
237
+
238
+ // 返回上层
239
+ this.$dispatch('confirm')
240
+ },
241
+ async 'pauseApply' () {
242
+
243
+ let data = {
244
+ data: this.show_data,
245
+ user: Vue.user
246
+ }
247
+
248
+ let res = await this.$resetpost(
249
+ `${this.$androidUtil.getProxyUrl()}/rs/logic/pauseApply`,
250
+ {data: data},
251
+ {resolveMsg: null, rejectMsg: '暂停报建失败!!!'}
252
+ )
253
+
254
+ // 返回上层
255
+ this.$dispatch('confirm')
256
+ },
257
+ // 获取view层button事件
258
+ async 'button' (){
259
+
260
+ let res = await this.$resetpost(
261
+ `${this.$androidUtil.getProxyUrl()}/rs/entity/t_apply`,
262
+ this.show_data,
263
+ {resolveMsg: null, rejectMsg: '数据保存失败!!!'}
264
+ )
265
+
266
+ // 返回上层
267
+ this.$dispatch('confirm')
268
+ },
269
+ 'breakControl' () {
270
+ this.breakControl()
271
+ },
272
+ // 失去焦点出触发事件
273
+ 'onchange' (index) {
274
+ },
275
+ 'onblur' (index) {},
276
+ 'oninput' (index) {},
277
+ 'initializtionView' () {},
278
+ async 'onchangeModal' (index, fieldIndex) {
279
+ },
280
+ async 'onblurModal' (index, fieldIndex) {
281
+
282
+ },
283
+ async 'oninputModal' (index, fieldIndex) {
284
+
285
+ },
286
+ async 'onetomanydelete' (index, rowIndex) {
287
+
288
+ let http = new HttpResetClass()
289
+
290
+ let res = await http.load(
291
+ 'DELETE',
292
+ `${this.$androidUtil.getProxyUrl()}/rs/entity/${this.show_data.onetomany[index].tables[0]}/${this.show_data.onetomany[index].rows[rowIndex].id}`,
293
+ null,
294
+ {resolveMsg: null, rejectMsg: '删除失败!!!'}
295
+ )
296
+ res = await this.$resetpost(
297
+ `${this.$androidUtil.getProxyUrl()}/rs/entity/t_apply`,
298
+ this.show_data
299
+ )
300
+ this.breakControl()
301
+ },
302
+ async 'onetomanyupdate' (index, rowIndex) {
303
+ let data = this.show_data.onetomany[index].rows[rowIndex]
304
+
305
+ this.show_data.onetomany[index].fields.forEach(item => {
306
+ data[item.field] = item.value
307
+ })
308
+ let res = await this.$resetpost(
309
+ `${this.$androidUtil.getProxyUrl()}/rs/entity/${this.show_data.onetomany[index].tables[0]}`,
310
+ data
311
+ )
312
+ res = await this.$resetpost(
313
+ `${this.$androidUtil.getProxyUrl()}/rs/entity/t_apply`,
314
+ this.show_data
315
+ )
316
+ this.breakControl()
317
+ },
318
+ async 'onetomanyadd' (index) {
319
+ let data = {
320
+ f_process_id : this.show_data.f_process_id,
321
+ f_operator_id: Vue.user.id,
322
+ f_operator: Vue.user.name,
323
+ f_operation_date: new Date().Format('yyyy-MM-dd HH:mm:ss'),
324
+ f_orgid: Vue.user.orgid,
325
+ f_orgname: Vue.user.orgs
326
+ }
327
+ this.show_data.onetomany[index].fields.forEach(item => {
328
+ data[item.field] = item.value
329
+ })
330
+ let res = await this.$resetpost(
331
+ `${this.$androidUtil.getProxyUrl()}/rs/entity/${this.show_data.onetomany[index].tables[0]}`,
332
+ data
333
+ )
334
+ res = await this.$resetpost(
335
+ `${this.$androidUtil.getProxyUrl()}/rs/entity/t_apply`,
336
+ this.show_data
337
+ )
338
+ this.breakControl()
339
+ }
340
+ },
341
+ watch:{
342
+ }
343
+ }
344
+ </script>