apply-clients 3.3.222 → 3.4.2-FuGu-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 (114) hide show
  1. package/build/css-loaders.js +34 -0
  2. package/build/dev-android.js +101 -0
  3. package/build/dev-client.js +8 -0
  4. package/build/dev-server-app.js +76 -0
  5. package/build/dev-server.js +119 -0
  6. package/build/example-server.js +80 -0
  7. package/build/release.sh +28 -0
  8. package/build/utils.js +80 -0
  9. package/build/webpack.base.conf.js +85 -0
  10. package/build/webpack.baseandroid.conf.js +84 -0
  11. package/build/webpack.dev.conf.js +51 -0
  12. package/build/webpack.devandroid.conf.js +34 -0
  13. package/build/webpack.example.conf.js +49 -0
  14. package/build/webpack.prod.conf.js +60 -0
  15. package/build/webpack.prodandroid.conf.js +60 -0
  16. package/build/webpack.test.conf.js +31 -0
  17. package/dingding.html +23 -0
  18. package/index.html +1 -1
  19. package/package.json +4 -3
  20. package/src/AndroidApp.vue +18 -13
  21. package/src/App.vue +20 -20
  22. package/src/DingDingApp.vue +51 -0
  23. package/src/android.js +1 -1
  24. package/src/apply.js +75 -91
  25. package/src/applyAndroid.js +25 -54
  26. package/src/applyDingDing.js +12 -0
  27. package/src/components/android/AppOnetomany.vue +37 -21
  28. package/src/components/android/AppServiceView.vue +3 -7
  29. package/src/components/android/AppSign.vue +3 -3
  30. package/src/components/android/AppTakePic.vue +12 -13
  31. package/src/components/android/Process/AppExplorationUser.vue +88 -38
  32. package/src/components/android/Process/AppServiceControl.vue +87 -16
  33. package/src/components/android/Process/Processes/AppInstallationDetails.vue +90 -100
  34. package/src/components/android/ProgressReport/ProgressReportDetail.vue +64 -0
  35. package/src/components/android/ProgressReport/ProgressReportList.vue +209 -0
  36. package/src/components/android/Supervisory/AppProcessSupervisory.vue +73 -152
  37. package/src/components/android/Supervisory/AppSupervisoryCart.vue +29 -23
  38. package/src/components/android/TaskGraph.vue +125 -0
  39. package/src/components/build/Install/ExplorationUser.vue +304 -0
  40. package/src/components/build/Install/Process/zhongran/ZR_Design.vue +537 -0
  41. package/src/components/product/ApplyCharge/ApplyChargeList.vue +36 -50
  42. package/src/components/product/ApplyCharge/ApplyChargeSearch.vue +3 -3
  43. package/src/components/product/ApplyCharge/printCharge.vue +142 -0
  44. package/src/components/product/Function/InstallFunction.vue +11 -2
  45. package/src/components/product/Function/InstallInfoSelect.vue +29 -47
  46. package/src/components/product/Function/Service/FunctionServiceControl.vue +172 -6
  47. package/src/components/product/Onetomany.vue +105 -24
  48. package/src/components/product/Order/OrderApply.vue +30 -30
  49. package/src/components/product/Order/OrderApplyList.vue +78 -67
  50. package/src/components/product/Order/OrderMessage.vue +11 -88
  51. package/src/components/product/Process/ExplorationSelect.vue +176 -149
  52. package/src/components/product/Process/ExplorationUser.vue +95 -85
  53. package/src/components/product/Process/Processes/InstallationDetails.vue +440 -352
  54. package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +35 -9
  55. package/src/components/product/Process/Processes/chargeManagement.vue +634 -638
  56. package/src/components/product/Process/Processes/devicesManagement.vue +22 -2
  57. package/src/components/product/Process/Processes/selectApply.vue +1 -1
  58. package/src/components/product/Process/Service/ServiceControl.vue +1241 -883
  59. package/src/components/product/Process/Service/ShowBackReason.vue +33 -0
  60. package/src/components/product/ServiceView.vue +313 -423
  61. package/src/components/product/Stop/StopApply.vue +27 -25
  62. package/src/components/product/Stop/StopApplyList.vue +26 -11
  63. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +18 -349
  64. package/src/components/product/Supervisory/SupervisoryControl.vue +0 -8
  65. package/src/components/product/Supervisory/SupervisoryList.vue +27 -47
  66. package/src/components/product/Supervisory/SupervisoryhCart.vue +32 -54
  67. package/src/components/product/VueUtils/ApplyUpload.vue +273 -264
  68. package/src/components/product/VueUtils/HighMeter.vue +208 -0
  69. package/src/dingding.js +20 -0
  70. package/src/expandcssAndroid.less +879 -362
  71. package/src/main.js +1 -1
  72. package/src/components/android/Function/AppFunctionServiceControl.vue +0 -329
  73. package/src/components/android/Function/AppInstallFunction.vue +0 -330
  74. package/src/components/android/Order/ApplyOrder.vue +0 -141
  75. package/src/components/android/Process/Processes/AppBuildSign.vue +0 -47
  76. package/src/components/android/Process/Processes/AppChargeManagement.vue +0 -468
  77. package/src/components/android/Process/Processes/AppDevicesManagement.vue +0 -490
  78. package/src/components/android/Process/Processes/AppSupplementalAgreement.vue +0 -297
  79. package/src/components/android/Process/Processes/AppjiaSign.vue +0 -47
  80. package/src/components/android/Process/Processes/AppjiafangSign.vue +0 -47
  81. package/src/components/android/Process/Processes/ApptechnologySign.vue +0 -47
  82. package/src/components/image/danwei.png +0 -0
  83. package/src/components/image/dizhi.png +0 -0
  84. package/src/components/image/dwg.jpg +0 -0
  85. package/src/components/image/name.png +0 -0
  86. package/src/components/image/phone.png +0 -0
  87. package/src/components/image/type.png +0 -0
  88. package/src/components/image/yasuobao.jpg +0 -0
  89. package/src/components/image/zaixiantousu1.png +0 -0
  90. package/src/components/image/zizhukaitong.png +0 -0
  91. package/src/components/image//346/210/221/347/232/204.png +0 -0
  92. package/src/components/product/Function/Inform.vue +0 -73
  93. package/src/components/product/Function/MarketSurvey.vue +0 -81
  94. package/src/components/product/Process/Processes/printCharge.vue +0 -121
  95. package/src/components/product/Process/ShowBackReason.vue +0 -33
  96. package/src/components/product/Supervisory/Service/printChargeNode.vue +0 -873
  97. package/src/components/product/VueUtils/GaoPaiYi/HighMeter.vue +0 -1090
  98. package/src/components/product/VueUtils/ToolsPage.vue +0 -51
  99. package/src/components/product/VueUtils/Tree.vue +0 -330
  100. package/src/filiale/wuan/android.js +0 -0
  101. package/src/filiale/wuan/pc.js +0 -4
  102. package/src/filiale/yuchuan/android/AppServiceView.vue +0 -599
  103. package/src/filiale/yuchuan/android/Process/AppServiceControl.vue +0 -414
  104. package/src/filiale/yuchuan/android/Process/Processes/AppInstallationDetails.vue +0 -456
  105. package/src/filiale/yuchuan/android/Reserve/ApplyReserve.vue +0 -200
  106. package/src/filiale/yuchuan/android/SiteSurvey/TaskGraph.vue +0 -137
  107. package/src/filiale/yuchuan/android.js +0 -8
  108. package/src/filiale/yuchuan/pc/Order/OrderApply.vue +0 -517
  109. package/src/filiale/yuchuan/pc/Order/OrderApplyList.vue +0 -343
  110. package/src/filiale/yuchuan/pc/Process/ExplorationSelect.vue +0 -356
  111. package/src/filiale/yuchuan/pc/Process/ExplorationUser.vue +0 -131
  112. package/src/filiale/yuchuan/pc/Process/Processes/MapCom.vue +0 -51
  113. package/src/filiale/yuchuan/pc/Process/Service/ServiceControl.vue +0 -517
  114. package/src/filiale/yuchuan/pc.js +0 -13
package/src/main.js CHANGED
@@ -9,7 +9,7 @@ import {material} from 'material-client'
9
9
  import apply from './apply'
10
10
 
11
11
  all()
12
- apply()
12
+ apply('yuchuan')
13
13
  ldap()
14
14
  sale()
15
15
  material()
@@ -1,329 +0,0 @@
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
-
297
- this.breakControl()
298
- },
299
- async 'onetomanyupdate' (index, rowIndex) {
300
- let data = this.show_data.onetomany[index].rows[rowIndex]
301
-
302
- this.show_data.onetomany[index].fields.forEach(item => {
303
- data[item.field] = item.value
304
- })
305
- let res = await this.$resetpost(
306
- `${this.$androidUtil.getProxyUrl()}/rs/entity/${this.show_data.onetomany[index].tables[0]}`,
307
- data
308
- )
309
-
310
- this.breakControl()
311
- },
312
- async 'onetomanyadd' (index) {
313
- let data = {
314
- f_process_id : this.show_data.f_process_id
315
- }
316
- this.show_data.onetomany[index].fields.forEach(item => {
317
- data[item.field] = item.value
318
- })
319
- let res = await this.$resetpost(
320
- `${this.$androidUtil.getProxyUrl()}/rs/entity/${this.show_data.onetomany[index].tables[0]}`,
321
- data
322
- )
323
- this.breakControl()
324
- }
325
- },
326
- watch:{
327
- }
328
- }
329
- </script>
@@ -1,330 +0,0 @@
1
- <template>
2
- <div class="p-10">
3
- <criteria-paged :model="model" v-ref:cp>
4
- <criteria partial='criteria' @condition-changed='search' v-ref:cri>
5
- <div partial class="auto">
6
- <div class="row form-group app-input">
7
- <label class="">客户名称:</label>
8
- <div class="col-xs-8" >
9
- <input class="" v-model=model.f_user_name condition="u.f_user_name like '%{}%'" />
10
- </div>
11
- </div>
12
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
13
- <label class="">联系电话:</label>
14
- <div class="col-xs-8" >
15
- <input class="" v-model=model.f_phone condition="u.f_phone like '%{}%'" />
16
- </div>
17
- </div>
18
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
19
- <label class="">工程编号:</label>
20
- <div class="col-xs-8" >
21
- <input class="" v-model=model.f_apply_num condition="u.f_apply_num like '%{}%'" />
22
- </div>
23
- </div>
24
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
25
- <label class="">合同编号:</label>
26
- <div class="col-xs-8" >
27
- <input class="" v-model=model.f_contract_number condition="u.f_contract_number like '%{}%'" />
28
- </div>
29
- </div>
30
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
31
- <label class="">报建类型:</label>
32
- <div class="col-xs-8" >
33
- <v-select
34
- width="100%"
35
- v-model="model.f_apply_type"
36
- placeholder='报建类型'
37
- condition="u.f_apply_type like '%{}%'"
38
- :value.sync="model.f_apply_type"
39
- :options='$parent.$parent.applytype'
40
- class="select select_list"
41
- :value-single="true"
42
- @change="$parent.$parent.applyTypeChange()"
43
- close-on-select ></v-select>
44
- </div>
45
- </div>
46
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
47
- <label class="">办理环节:</label>
48
- <div class="col-xs-8" >
49
- <v-select
50
- width="100%"
51
- v-model="model.defname"
52
- placeholder='办理环节'
53
- condition="act.defname = '{}'"
54
- :value.sync="model.defname"
55
- :options='$parent.$parent.defnames'
56
- class="select select_list"
57
- :value-single="true"
58
- close-on-select ></v-select>
59
- </div>
60
- </div>
61
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
62
- <label class="">用户地址:</label>
63
- <div class="col-xs-8" >
64
- <input class="" v-model=model.f_address condition="u.f_address like '%{}%'" />
65
- </div>
66
- </div>
67
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
68
- <label class="">开始时间:</label>
69
- <div class="col-xs-8" >
70
- <datepicker id="startDate" placeholder="开始日期"
71
- style="width: 100%!important;"
72
- v-model="model.startDate"
73
- :value.sync="model.startDate"
74
- :format="'yyyy-MM-dd HH:mm:ss'"
75
- :show-reset-button="true"
76
- condition="u.f_apply_date >= to_date('{}', 'yyyy-mm-dd hh24:mi:ss')">
77
- </datepicker>
78
- </div>
79
- </div>
80
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
81
- <label class="">结束时间:</label>
82
- <div class="col-xs-8" >
83
- <datepicker id="endDate" placeholder="结束日期"
84
- style="width: 100%!important;"
85
- v-model="model.endDate"
86
- :value.sync="model.endDate"
87
- :format="'yyyy-MM-dd HH:mm:ss'"
88
- :show-reset-button="true"
89
- condition="f_apply_date <= to_date('{}', 'yyyy-mm-dd hh24:mi:ss')">
90
- </datepicker>
91
- </div>
92
- </div>
93
- <div class="row form-group text-right" style="">
94
- <button class="btn btn-primary" @click="$parent.$parent.search()">查询</button>
95
- <button class="btn btn-info" @click="$parent.$parent.clear()">清空</button>
96
- <button class="btn" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"></button>
97
- </div>
98
- </div>
99
- </criteria>
100
-
101
- <list :model="model" partial='list'>
102
- <div partial class="auto app-text panel">
103
- <div class="panel-body panel-self">
104
- <div class="col-xs-12">
105
- <p class="col-xs-3 text-left font"><b>客户名称:</b></p>
106
- <p class="col-xs-9 text-left input-font">{{ row.f_user_name }}</p>
107
- </div>
108
- <div class="col-xs-12">
109
- <p class="col-xs-3 text-left font"><b>电&emsp;&emsp;话:</b></p>
110
- <p class="col-xs-9 text-left input-font">{{ row.f_phone }}</p>
111
- </div>
112
- <div class="col-xs-12">
113
- <p class="col-xs-3 text-left font"><b>工程编号:</b></p>
114
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_num }}</p>
115
- </div>
116
- <div class="col-xs-12">
117
- <p class="col-xs-3 text-left font"><b>报建类型:</b></p>
118
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_type }}</p>
119
- </div>
120
- <div class="col-xs-12">
121
- <p class="col-xs-3 text-left font"><b>办理环节:</b></p>
122
- <p class="col-xs-9 text-left input-font">{{ row.defname }}</p>
123
- </div>
124
- <div class="col-xs-12">
125
- <p class="col-xs-3 text-left font"><b>地&emsp;&emsp;址:</b></p>
126
- <p class="col-xs-9 text-left input-font">{{ row.f_address }}</p>
127
- </div>
128
- <div class="col-xs-12">
129
- <p class="col-xs-3 text-left font"><b>报建日期:</b></p>
130
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_date }}</p>
131
- </div>
132
-
133
- <div class="col-xs-12 text-center">
134
- <button
135
- style="min-width:100px"
136
- class="btn btn-info button_spacing"
137
- v-for="(index,func) in $parent.$parent.$parent.functions(row)"
138
- v-if="$parent.$parent.$parent.$parent.showFunc(func.personexpression)"
139
- @click="$parent.$parent.$parent.$parent.click(row, func)">{{ func.title }}</button>
140
- </div>
141
- </div>
142
- </div>
143
- </list>
144
- </criteria-paged>
145
- </div>
146
- </template>
147
- <script>
148
- import Vue from 'vue'
149
- import {HttpResetClass, PagedList} from 'vue-client'
150
- import {isEmpty} from '../../Util'
151
- export default {
152
- title: '报建业务',
153
- data () {
154
- return {
155
- model: new PagedList(`${this.$androidUtil.getProxyUrl()}/rs/sql/checkuserfunction`, 20, {
156
- // model: new PagedList('rs/sql/checkuserfunction', 20, {
157
- data: {
158
- orgid: Vue.user.orgid,
159
- id: Vue.user.id
160
- // id: '1626081',
161
- // orgid: '1123'
162
- }
163
- }),
164
- criteriaShow: false,
165
- applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')], // 所有报建类型
166
- // applytype: [{label: '全部', value: ''},{label: '散户报建', value: '散户报建'}], // 所有报建类型
167
- defnames: [{label: '全部', value: ''}],
168
- function_vue: null
169
- }
170
- },
171
- created () {
172
- this.getConfig()
173
- },
174
- ready () {
175
- this.search()
176
- },
177
- methods: {
178
- // 权限控制
179
- showFunc (personexpression) {
180
-
181
- if (isEmpty(personexpression)) {
182
- return true
183
- }
184
-
185
- let mark = personexpression.charAt(0)
186
-
187
- let str = personexpression.substring(2, personexpression.length-1)
188
-
189
- if (mark === 'D' && Vue.user.f_department_name.includes(str)) {
190
- return true
191
- }
192
- if (mark === 'R' && Vue.user.f_role_name.includes(str)) {
193
- return true
194
- }
195
- if (mark === 'P' && Vue.user.id.includes(str)) {
196
- return true
197
- }
198
-
199
- return false
200
- },
201
- // 获取功能配置
202
- async getConfig () {
203
- let res = await this.$resetpost(
204
- `${this.$androidUtil.getProxyUrl()}/rs/logic/ApplyGetFunction`,
205
- null,
206
- {resolveMsg: null, rejectMsg: '配置数据获取失败!!!'}
207
- )
208
- this.function_vue = res.data
209
- // this.function_vue = {"functions":[{"title":"补充协议","showApplyTypes":["散户报建","团购报建","工商户报建"],"showDefnames":["报装缴费","设计出图","图纸审核","工程派工","工程施工"],"tables":["t_apply"],"fields":[{"label":"项目名称","type":"input","field":"f_entry_name","readonly":true,"value":null,"disabled":false,"required":true},{"label":"客户姓名","type":"input","field":"f_user_name","readonly":true,"value":null,"disabled":false,"required":true},{"label":"联系电话","type":"input","field":"f_phone","readonly":true,"disabled":false,"required":true},{"label":"合同编号","type":"input","field":"f_contract_number","placeholder":"Z-自动拼接","readonly":true,"required":true},{"label":"合同金额","type":"number","field":"f_contract_money","placeholder":"请输入","readonly":true,"required":true},{"label":"追加总金额","type":"number","field":"f_add_contract_money","placeholder":"请输入","readonly":true,"required":true,"default":0},{"label":"应交金额","type":"number","field":"f_due_money","placeholder":"请输入","readonly":true,"required":true},{"label":"累计缴费金额","type":"number","field":"f_cumulative_payment_money","placeholder":"请输入","readonly":true,"required":true,"default":0},{"label":"未结总金额","type":"number","field":"f_surplus_money","placeholder":"请输入","readonly":true,"required":true},{"label":"付款比例","type":"input","field":"f_payment_ratio","placeholder":"请输入","readonly":true,"required":true}],"components":[{"title":"补充协议","device":"pc","name":"supplemental-agreement","mark":1},{"title":"补充协议","device":"app","name":"app-supplemental-agreement","mark":1}]},{"title":"收费","component":"service-view","showApplyTypes":["散户报建","改管报建","增容报建","团购报建","工商户报建","团购转散户"],"showDefnames":["报装缴费","设计出图","图纸审核","工程派工","工程施工","点火派单","通气点火","完工"],"tables":["t_apply"],"fields":[{"label":"项目名称","type":"input","field":"f_entry_name","readonly":true,"value":null,"disabled":false,"required":true},{"label":"客户姓名","type":"input","field":"f_user_name","readonly":true,"value":null,"disabled":false,"required":true},{"label":"联系电话","type":"input","field":"f_phone","readonly":true,"disabled":false,"required":true},{"label":"合同编号","type":"input","field":"f_contract_number","placeholder":"Z-自动拼接","readonly":true,"required":true},{"label":"合同金额","type":"number","field":"f_contract_money","placeholder":"请输入","readonly":true,"required":true},{"label":"追加总金额","type":"number","field":"f_add_contract_money","placeholder":"请输入","readonly":true,"required":true,"default":0},{"label":"应交金额","type":"number","field":"f_due_money","placeholder":"请输入","readonly":true,"required":true},{"label":"累计缴费金额","type":"number","field":"f_cumulative_payment_money","placeholder":"请输入","readonly":true,"required":true,"default":0},{"label":"未结总金额","type":"number","field":"f_surplus_money","placeholder":"请输入","readonly":true,"required":true},{"label":"付款比例","type":"input","field":"f_payment_ratio","placeholder":"请输入","readonly":true,"required":true}],"components":[{"title":"缴费明细","device":"pc","name":"apply-charge-management"},{"title":"缴费明细","device":"app","name":"app-charge-management"}]},{"title":"暂停报建","personexpression":"","showApplyTypes":["散户报建","改管报建","增容报建","团购报建","工商户报建","团购转散户"],"showDefnames":["信息确认","报装申请","勘察派工","现场勘察","设计预算","合同签订","报装缴费","设计出图","图纸审核","工程派工","工程施工","点火派单","通气点火"],"tables":["t_apply"],"fields":[{"label":"工程名称","type":"input","field":"f_entry_name","readonly":true,"disabled":false,"required":true},{"label":"工程编号","type":"input","field":"f_apply_num","readonly":true,"disabled":false,"required":true},{"label":"报建类型","type":"input","field":"f_apply_type","readonly":true,"required":true,"disabled":false},{"label":"用户名称","type":"input","field":"f_user_name","readonly":true,"disabled":false,"required":true},{"label":"用户电话","type":"tel","field":"f_phone","readonly":true,"disabled":false,"required":true},{"label":"证件类型","type":"input","field":"f_credentials","readonly":true,"required":true,"disabled":false},{"label":"证件号码","type":"input","field":"f_idnumber","readonly":true,"required":true,"disabled":false},{"label":"地址","type":"textarea","field":"f_address","rows":1,"readonly":true,"required":true,"disabled":false},{"label":"暂停原因","type":"textarea","field":"f_stop_reason","rows":2,"readonly":false,"required":true,"disabled":false}],"buttons":[{"event":"pauseApply","button_name":"暂停","disabled":true}]},{"title":"终止报建","personexpression":"","showApplyTypes":["散户报建","改管报建","增容报建","团购报建","工商户报建","团购转散户"],"showDefnames":["信息确认","报装申请","勘察派工","现场勘察","设计预算","合同签订","报装缴费","设计出图","图纸审核","工程派工","工程施工","点火派单","通气点火"],"tables":["t_apply"],"fields":[{"label":"工程名称","type":"input","field":"f_entry_name","readonly":true,"disabled":false,"required":true},{"label":"工程编号","type":"input","field":"f_apply_num","readonly":true,"disabled":false,"required":true},{"label":"报建类型","type":"input","field":"f_apply_type","readonly":true,"required":true,"disabled":false},{"label":"用户名称","type":"input","field":"f_user_name","readonly":true,"disabled":false,"required":true},{"label":"用户电话","type":"tel","field":"f_phone","readonly":true,"disabled":false,"required":true},{"label":"证件类型","type":"input","field":"f_credentials","readonly":true,"required":true,"disabled":false},{"label":"证件号码","type":"input","field":"f_idnumber","readonly":true,"required":true,"disabled":false},{"label":"地址","type":"textarea","field":"f_address","rows":1,"readonly":true,"required":true,"disabled":false},{"label":"终止原因","type":"textarea","field":"f_stop_reason","rows":2,"readonly":false,"required":true,"disabled":false}],"buttons":[{"event":"stopApply","button_name":"终止","disabled":true}]}]}
210
- },
211
- clear () {
212
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
213
- this.$refs.cp.$refs.cri.model[key] = null
214
- })
215
- },
216
- // 查询
217
- search () {
218
- this.$refs.cp.$refs.cri.search()
219
- },
220
- click (row, func) {
221
- let _this = this
222
- this.$dispatch('gotoson', {
223
- _this: _this,
224
- title: row.title,
225
- safe: true
226
- })
227
- this.$goto('app-function-service-control', {selectdata: row, jsondata: func}, 'self', _this.search)
228
- },
229
- applyTypeChange () {
230
- if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
231
- let http = new HttpResetClass()
232
- http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/getDefnameByType`, {
233
- // http.load('POST', 'rs/logic/getDefnameByType', {
234
- f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type
235
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
236
- this.defnames = [{label: '全部', value: ''}, ...res.data]
237
- })
238
- } else {
239
- this.defnames = [{label: '全部', value: ''}]
240
- }
241
- }
242
- },
243
- computed: {
244
- functions () {
245
- return function (row) {
246
- let funcs = []
247
-
248
- let functions = this.function_vue.functions
249
-
250
- for (const item of functions) {
251
- // 显示类型
252
- if (item.showApplyTypes) {
253
- if (item.showApplyTypes.indexOf(row.f_apply_type) === -1) {
254
- continue
255
- }
256
- }
257
- // 显示节点
258
- if (item.showDefnames) {
259
- if (item.showDefnames.indexOf(row.defname) === -1) {
260
- continue
261
- }
262
- }
263
- // 显示设备
264
- if (item.device && item.device !== 'app') {
265
- continue
266
- }
267
- funcs.push(item)
268
- }
269
-
270
- return funcs
271
- }
272
- }
273
- },
274
- events: {
275
- }
276
- }
277
- </script>
278
- <style scoped>
279
- .button_spacing{margin: 0px 0px 5px 10px;}
280
- .panel-self{
281
- border-radius: 10px;
282
- border:1px solid #499EDF;
283
- background-color: #F8F8F8;
284
- }
285
- .font{
286
- font: 15px PingFang-SC-Medium;
287
- color: #666666;
288
- }
289
-
290
- .button_shrink_top {
291
- width: 34px;
292
- height: 34px;
293
- border: solid 1px #6aa6e2;
294
- background-size: 100%;
295
- background-image: url("../../../../static/newStyle/stretch_top.png")
296
- }
297
-
298
- .button_shrink_bottom {
299
- width: 34px;
300
- height: 34px;
301
- border: solid 1px #6aa6e2;
302
- background-size: 100%;
303
- background-image: url("../../../../static/newStyle/stretch_bottom.png")
304
- }
305
- </style>
306
- <style lang="less">
307
- .app-input {
308
- label {
309
- float: left;
310
- }
311
- .select {
312
- button {
313
- border: none;
314
- outline: none;
315
- text-align: left;
316
- .btn-placeholder {
317
- color: #ACA899
318
- }
319
- }
320
- }
321
- .datepicker {
322
- .form-control:focus {
323
- border: none!important;
324
- outline: none!important;
325
- -webkit-box-shadow: none;
326
- box-shadow: none;
327
- }
328
- }
329
- }
330
- </style>