apply-clients 3.3.16 → 3.3.17

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 (57) hide show
  1. package/index.html +33 -33
  2. package/package.json +1 -1
  3. package/src/AndroidApp.vue +30 -30
  4. package/src/android.js +21 -21
  5. package/src/apply.js +3 -6
  6. package/src/applyAndroid.js +35 -35
  7. package/src/components/android/AppOnetomany.vue +285 -285
  8. package/src/components/android/AppServiceView.vue +570 -570
  9. package/src/components/android/AppTakePic.vue +143 -143
  10. package/src/components/android/Function/AppFunctionServiceControl.vue +329 -329
  11. package/src/components/android/Function/AppInstallFunction.vue +327 -327
  12. package/src/components/android/Process/AppExplorationUser.vue +268 -268
  13. package/src/components/android/Process/AppServiceControl.vue +711 -686
  14. package/src/components/android/Process/Processes/AppChargeManagement.vue +468 -468
  15. package/src/components/android/Process/Processes/AppDevicesManagement.vue +490 -490
  16. package/src/components/android/Process/Processes/AppInstallationDetails.vue +466 -466
  17. package/src/components/android/Process/Processes/AppSupplementalAgreement.vue +297 -297
  18. package/src/components/android/Supervisory/AppProcessSupervisory.vue +261 -261
  19. package/src/components/android/Supervisory/AppSupervisoryCart.vue +115 -115
  20. package/src/components/product/ApplyCharge/ApplyChargeList.vue +265 -265
  21. package/src/components/product/ApplyCharge/ApplyChargeSearch.vue +30 -30
  22. package/src/components/product/Function/InstallFunction.vue +122 -122
  23. package/src/components/product/Function/InstallInfoSelect.vue +289 -289
  24. package/src/components/product/Function/Service/FunctionServiceControl.vue +254 -254
  25. package/src/components/product/Onetomany.vue +296 -296
  26. package/src/components/product/Order/OrderApply.vue +47 -47
  27. package/src/components/product/Order/OrderApplyList.vue +62 -62
  28. package/src/components/product/Order/OrderMessage.vue +237 -237
  29. package/src/components/product/Process/ExplorationSelect.vue +145 -143
  30. package/src/components/product/Process/ExplorationUser.vue +128 -128
  31. package/src/components/product/Process/Processes/InstallationDetails.vue +421 -352
  32. package/src/components/product/Process/Processes/Print/img/10101.png +0 -0
  33. package/src/components/product/Process/Processes/Print/img/1010109.png +0 -0
  34. package/src/components/product/Process/Processes/Print/img/1010110.png +0 -0
  35. package/src/components/product/Process/Processes/Print/img/1010111.png +0 -0
  36. package/src/components/product/Process/Processes/Print/img/1010112.png +0 -0
  37. package/src/components/product/Process/Processes/{printCharge.vue → Print/printCharge.vue} +139 -121
  38. package/src/components/product/Process/Processes/Print/printRefund.vue +193 -0
  39. package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +181 -181
  40. package/src/components/product/Process/Processes/chargeManagement.vue +639 -639
  41. package/src/components/product/Process/Processes/devicesManagement.vue +458 -458
  42. package/src/components/product/Process/Processes/selectApply.vue +250 -250
  43. package/src/components/product/Process/Processes/selectUserinfo.vue +182 -182
  44. package/src/components/product/Process/Processes/supplementalAgreement.vue +298 -298
  45. package/src/components/product/Process/Service/ServiceControl.vue +916 -810
  46. package/src/components/product/Process/ShowBackReason.vue +33 -33
  47. package/src/components/product/ServiceView.vue +301 -307
  48. package/src/components/product/Stop/StopApplyList.vue +254 -254
  49. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +512 -517
  50. package/src/components/product/Supervisory/SupervisoryControl.vue +100 -100
  51. package/src/components/product/Supervisory/SupervisoryList.vue +226 -226
  52. package/src/components/product/Supervisory/SupervisoryhCart.vue +124 -124
  53. package/src/components/product/VueUtils/ApplyUpload.vue +262 -262
  54. package/src/components/product/VueUtils/GaoPaiYi/HighMeter.vue +1090 -1090
  55. package/src/main.js +23 -23
  56. package/src/components/product/Function/Inform.vue +0 -74
  57. package/src/components/product/Function/MarketSurvey.vue +0 -80
@@ -1,327 +1,327 @@
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
- // orgid: '10101'
160
- }
161
- }),
162
- criteriaShow: false,
163
- applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')], // 所有报建类型
164
- defnames: [{label: '全部', value: ''}],
165
- function_vue: null
166
- }
167
- },
168
- created () {
169
- this.getConfig()
170
- },
171
- ready () {
172
- this.search()
173
- },
174
- methods: {
175
- // 权限控制
176
- showFunc (personexpression) {
177
-
178
- if (isEmpty(personexpression)) {
179
- return true
180
- }
181
-
182
- let mark = personexpression.charAt(0)
183
-
184
- let str = personexpression.substring(2, personexpression.length-1)
185
-
186
- if (mark === 'D' && Vue.user.f_department_name.includes(str)) {
187
- return true
188
- }
189
- if (mark === 'R' && Vue.user.f_role_name.includes(str)) {
190
- return true
191
- }
192
- if (mark === 'P' && Vue.user.id.includes(str)) {
193
- return true
194
- }
195
-
196
- return false
197
- },
198
- // 获取功能配置
199
- async getConfig () {
200
- let res = await this.$resetpost(
201
- `${this.$androidUtil.getProxyUrl()}/rs/logic/ApplyGetFunction`,
202
- null,
203
- {resolveMsg: null, rejectMsg: '配置数据获取失败!!!'}
204
- )
205
- this.function_vue = res.data
206
- // 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}]}]}
207
- },
208
- clear () {
209
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
210
- this.$refs.cp.$refs.cri.model[key] = null
211
- })
212
- },
213
- // 查询
214
- search () {
215
- this.$refs.cp.$refs.cri.search()
216
- },
217
- click (row, func) {
218
- let _this = this
219
- this.$dispatch('gotoson', {
220
- _this: _this,
221
- title: row.title,
222
- safe: true
223
- })
224
- this.$goto('app-function-service-control', {selectdata: row, jsondata: func}, 'self', _this.search)
225
- },
226
- applyTypeChange () {
227
- if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
228
- let http = new HttpResetClass()
229
- http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/getDefnameByType`, {
230
- // http.load('POST', 'rs/logic/getDefnameByType', {
231
- f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type
232
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
233
- this.defnames = [{label: '全部', value: ''}, ...res.data]
234
- })
235
- } else {
236
- this.defnames = [{label: '全部', value: ''}]
237
- }
238
- }
239
- },
240
- computed: {
241
- functions () {
242
- return function (row) {
243
- let funcs = []
244
-
245
- let functions = this.function_vue.functions
246
-
247
- for (const item of functions) {
248
- // 显示类型
249
- if (item.showApplyTypes) {
250
- if (item.showApplyTypes.indexOf(row.f_apply_type) === -1) {
251
- continue
252
- }
253
- }
254
- // 显示节点
255
- if (item.showDefnames) {
256
- if (item.showDefnames.indexOf(row.defname) === -1) {
257
- continue
258
- }
259
- }
260
- // 显示设备
261
- if (item.device && item.device !== 'app') {
262
- continue
263
- }
264
- funcs.push(item)
265
- }
266
-
267
- return funcs
268
- }
269
- }
270
- },
271
- events: {
272
- }
273
- }
274
- </script>
275
- <style scoped>
276
- .button_spacing{margin: 0px 0px 5px 10px;}
277
- .panel-self{
278
- border-radius: 10px;
279
- border:1px solid #499EDF;
280
- background-color: #F8F8F8;
281
- }
282
- .font{
283
- font: 15px PingFang-SC-Medium;
284
- color: #666666;
285
- }
286
-
287
- .button_shrink_top {
288
- width: 34px;
289
- height: 34px;
290
- border: solid 1px #6aa6e2;
291
- background-size: 100%;
292
- background-image: url("../../../../static/newStyle/stretch_top.png")
293
- }
294
-
295
- .button_shrink_bottom {
296
- width: 34px;
297
- height: 34px;
298
- border: solid 1px #6aa6e2;
299
- background-size: 100%;
300
- background-image: url("../../../../static/newStyle/stretch_bottom.png")
301
- }
302
- </style>
303
- <style lang="less">
304
- .app-input {
305
- label {
306
- float: left;
307
- }
308
- .select {
309
- button {
310
- border: none;
311
- outline: none;
312
- text-align: left;
313
- .btn-placeholder {
314
- color: #ACA899
315
- }
316
- }
317
- }
318
- .datepicker {
319
- .form-control:focus {
320
- border: none!important;
321
- outline: none!important;
322
- -webkit-box-shadow: none;
323
- box-shadow: none;
324
- }
325
- }
326
- }
327
- </style>
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
+ // orgid: '10101'
160
+ }
161
+ }),
162
+ criteriaShow: false,
163
+ applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')], // 所有报建类型
164
+ defnames: [{label: '全部', value: ''}],
165
+ function_vue: null
166
+ }
167
+ },
168
+ created () {
169
+ this.getConfig()
170
+ },
171
+ ready () {
172
+ this.search()
173
+ },
174
+ methods: {
175
+ // 权限控制
176
+ showFunc (personexpression) {
177
+
178
+ if (isEmpty(personexpression)) {
179
+ return true
180
+ }
181
+
182
+ let mark = personexpression.charAt(0)
183
+
184
+ let str = personexpression.substring(2, personexpression.length-1)
185
+
186
+ if (mark === 'D' && Vue.user.f_department_name.includes(str)) {
187
+ return true
188
+ }
189
+ if (mark === 'R' && Vue.user.f_role_name.includes(str)) {
190
+ return true
191
+ }
192
+ if (mark === 'P' && Vue.user.id.includes(str)) {
193
+ return true
194
+ }
195
+
196
+ return false
197
+ },
198
+ // 获取功能配置
199
+ async getConfig () {
200
+ let res = await this.$resetpost(
201
+ `${this.$androidUtil.getProxyUrl()}/rs/logic/ApplyGetFunction`,
202
+ null,
203
+ {resolveMsg: null, rejectMsg: '配置数据获取失败!!!'}
204
+ )
205
+ this.function_vue = res.data
206
+ // 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}]}]}
207
+ },
208
+ clear () {
209
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
210
+ this.$refs.cp.$refs.cri.model[key] = null
211
+ })
212
+ },
213
+ // 查询
214
+ search () {
215
+ this.$refs.cp.$refs.cri.search()
216
+ },
217
+ click (row, func) {
218
+ let _this = this
219
+ this.$dispatch('gotoson', {
220
+ _this: _this,
221
+ title: row.title,
222
+ safe: true
223
+ })
224
+ this.$goto('app-function-service-control', {selectdata: row, jsondata: func}, 'self', _this.search)
225
+ },
226
+ applyTypeChange () {
227
+ if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
228
+ let http = new HttpResetClass()
229
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/getDefnameByType`, {
230
+ // http.load('POST', 'rs/logic/getDefnameByType', {
231
+ f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type
232
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
233
+ this.defnames = [{label: '全部', value: ''}, ...res.data]
234
+ })
235
+ } else {
236
+ this.defnames = [{label: '全部', value: ''}]
237
+ }
238
+ }
239
+ },
240
+ computed: {
241
+ functions () {
242
+ return function (row) {
243
+ let funcs = []
244
+
245
+ let functions = this.function_vue.functions
246
+
247
+ for (const item of functions) {
248
+ // 显示类型
249
+ if (item.showApplyTypes) {
250
+ if (item.showApplyTypes.indexOf(row.f_apply_type) === -1) {
251
+ continue
252
+ }
253
+ }
254
+ // 显示节点
255
+ if (item.showDefnames) {
256
+ if (item.showDefnames.indexOf(row.defname) === -1) {
257
+ continue
258
+ }
259
+ }
260
+ // 显示设备
261
+ if (item.device && item.device !== 'app') {
262
+ continue
263
+ }
264
+ funcs.push(item)
265
+ }
266
+
267
+ return funcs
268
+ }
269
+ }
270
+ },
271
+ events: {
272
+ }
273
+ }
274
+ </script>
275
+ <style scoped>
276
+ .button_spacing{margin: 0px 0px 5px 10px;}
277
+ .panel-self{
278
+ border-radius: 10px;
279
+ border:1px solid #499EDF;
280
+ background-color: #F8F8F8;
281
+ }
282
+ .font{
283
+ font: 15px PingFang-SC-Medium;
284
+ color: #666666;
285
+ }
286
+
287
+ .button_shrink_top {
288
+ width: 34px;
289
+ height: 34px;
290
+ border: solid 1px #6aa6e2;
291
+ background-size: 100%;
292
+ background-image: url("../../../../static/newStyle/stretch_top.png")
293
+ }
294
+
295
+ .button_shrink_bottom {
296
+ width: 34px;
297
+ height: 34px;
298
+ border: solid 1px #6aa6e2;
299
+ background-size: 100%;
300
+ background-image: url("../../../../static/newStyle/stretch_bottom.png")
301
+ }
302
+ </style>
303
+ <style lang="less">
304
+ .app-input {
305
+ label {
306
+ float: left;
307
+ }
308
+ .select {
309
+ button {
310
+ border: none;
311
+ outline: none;
312
+ text-align: left;
313
+ .btn-placeholder {
314
+ color: #ACA899
315
+ }
316
+ }
317
+ }
318
+ .datepicker {
319
+ .form-control:focus {
320
+ border: none!important;
321
+ outline: none!important;
322
+ -webkit-box-shadow: none;
323
+ box-shadow: none;
324
+ }
325
+ }
326
+ }
327
+ </style>