apply-clients 3.3.52 → 3.3.53

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 (38) hide show
  1. package/build/dev-server.js +130 -130
  2. package/package.json +1 -1
  3. package/src/AndroidApp.vue +35 -35
  4. package/src/apply.js +93 -93
  5. package/src/applyAndroid.js +31 -31
  6. package/src/components/android/AppOnetomany.vue +301 -301
  7. package/src/components/android/AppServiceView.vue +566 -566
  8. package/src/components/android/AppSign.vue +142 -142
  9. package/src/components/android/Function/AppInstallFunction.vue +366 -366
  10. package/src/components/android/Process/AppExplorationUser.vue +340 -340
  11. package/src/components/android/Process/AppServiceControl.vue +807 -761
  12. package/src/components/android/Process/Processes/AppBuildSign.vue +46 -46
  13. package/src/components/android/Supervisory/AppProcessSupervisory.vue +300 -300
  14. package/src/components/android/Supervisory/AppSupervisoryCart.vue +119 -119
  15. package/src/components/product/ApplyCharge/ApplyChargeList.vue +382 -382
  16. package/src/components/product/Function/InstallFunction.vue +132 -132
  17. package/src/components/product/Function/InstallInfoSelect.vue +320 -320
  18. package/src/components/product/Function/Service/FunctionServiceControl.vue +445 -445
  19. package/src/components/product/Material/MaterialDetailed.vue +235 -235
  20. package/src/components/product/OldApply/Monitor/MonitorApply.vue +329 -329
  21. package/src/components/product/OldApply/OldApply.vue +150 -150
  22. package/src/components/product/Onetomany.vue +377 -377
  23. package/src/components/product/Print/BuildOrder/buildOrderList.vue +264 -264
  24. package/src/components/product/Print/BuildOrder/printBuildOrder.vue +153 -153
  25. package/src/components/product/Process/ExplorationSelect.vue +457 -457
  26. package/src/components/product/Process/ExplorationUser.vue +147 -147
  27. package/src/components/product/Process/Processes/InstallationDetails.vue +592 -592
  28. package/src/components/product/Process/Processes/Print/printCharge.vue +142 -142
  29. package/src/components/product/Process/Processes/Print/printRefund.vue +196 -196
  30. package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +207 -207
  31. package/src/components/product/Process/Service/ServiceControl.vue +1311 -1265
  32. package/src/components/product/ServiceView.vue +631 -631
  33. package/src/components/product/Supervisory/SupervisoryControl.vue +137 -137
  34. package/src/components/product/Supervisory/SupervisoryList.vue +296 -296
  35. package/src/components/product/Supervisory/SupervisoryhCart.vue +130 -130
  36. package/src/components/product/VueUtils/ApplyUpload.vue +273 -273
  37. package/src/components/product/VueUtils/HighMeter.vue +208 -208
  38. package/.project +0 -17
@@ -1,366 +1,366 @@
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 = '{}'"
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
- <v-select
65
- width="100%"
66
- v-model="model.f_apply_nature"
67
- placeholder='报建性质'
68
- condition="f_apply_nature = '{}'"
69
- :value.sync="model.f_apply_nature"
70
- :options='$parent.$parent.applyNatures'
71
- class="select select_list"
72
- :value-single="true"
73
- close-on-select ></v-select>
74
- </div>
75
- </div>
76
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
77
- <label class="">用户地址:</label>
78
- <div class="col-xs-8" >
79
- <input class="" v-model=model.f_address condition="u.f_address like '%{}%'" />
80
- </div>
81
- </div>
82
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
83
- <label class="">开始时间:</label>
84
- <div class="col-xs-8" >
85
- <datepicker id="startDate" placeholder="开始日期"
86
- style="width: 100%!important;"
87
- v-model="model.startDate"
88
- :value.sync="model.startDate"
89
- :format="'yyyy-MM-dd 00:00:00'"
90
- :show-reset-button="true"
91
- condition="u.f_apply_date >= '{}'">
92
- </datepicker>
93
- </div>
94
- </div>
95
- <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
96
- <label class="">结束时间:</label>
97
- <div class="col-xs-8" >
98
- <datepicker id="endDate" placeholder="结束日期"
99
- style="width: 100%!important;"
100
- v-model="model.endDate"
101
- :value.sync="model.endDate"
102
- :format="'yyyy-MM-dd 23:59:59'"
103
- :show-reset-button="true"
104
- condition="f_apply_date <= '{}'">
105
- </datepicker>
106
- </div>
107
- </div>
108
- <div class="row form-group text-right" style="">
109
- <button class="btn btn-primary" @click="$parent.$parent.search()">查询</button>
110
- <button class="btn btn-info" @click="$parent.$parent.clear()">清空</button>
111
- <button class="btn" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"></button>
112
- </div>
113
- </div>
114
- </criteria>
115
-
116
- <list :model="model" partial='list'>
117
- <div partial class="auto app-text panel">
118
- <div class="panel-body panel-self">
119
- <div class="col-xs-12">
120
- <p class="col-xs-3 text-left font"><b>客户名称:</b></p>
121
- <p class="col-xs-9 text-left input-font">{{ row.f_user_name }}</p>
122
- </div>
123
- <div class="col-xs-12">
124
- <p class="col-xs-3 text-left font"><b>电&emsp;&emsp;话:</b></p>
125
- <!-- <p class="col-xs-9 text-left input-font">{{ row.f_phone }}</p>-->
126
- <p class="col-xs-9 text-left input-font">
127
- {{ row.f_phone }}&ensp;
128
- <svg @click.prevent="$parent.$parent.$parent.dialNumber(row.f_phone)" style="width: 25px;height: 25px;position: absolute;" 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>
129
- </p>
130
- </div>
131
- <div class="col-xs-12">
132
- <p class="col-xs-3 text-left font"><b>工程编号:</b></p>
133
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_num }}</p>
134
- </div>
135
- <div class="col-xs-12">
136
- <p class="col-xs-3 text-left font"><b>客户编号:</b></p>
137
- <p class="col-xs-9 text-left input-font">{{ row.f_userinfo_code }}</p>
138
- </div>
139
- <div class="col-xs-12">
140
- <p class="col-xs-3 text-left font"><b>报建类型:</b></p>
141
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_type }}</p>
142
- </div>
143
- <div class="col-xs-12">
144
- <p class="col-xs-3 text-left font"><b>办理环节:</b></p>
145
- <p class="col-xs-9 text-left input-font">{{ row.defname }}</p>
146
- </div>
147
- <div class="col-xs-12">
148
- <p class="col-xs-3 text-left font"><b>地&emsp;&emsp;址:</b></p>
149
- <p class="col-xs-9 text-left input-font">{{ row.f_address }}</p>
150
- </div>
151
- <div class="col-xs-12">
152
- <p class="col-xs-3 text-left font"><b>报建日期:</b></p>
153
- <p class="col-xs-9 text-left input-font">{{ row.f_apply_date }}</p>
154
- </div>
155
- <div class="col-xs-12" style="color: red">
156
- <p class="col-xs-3 text-left font"><b>施工备注:</b></p>
157
- <p class="col-xs-9 text-left input-font">{{ row.f_construction_remarks }}</p>
158
- </div>
159
-
160
- <div class="col-xs-12 text-center">
161
- <button
162
- style="min-width:100px"
163
- class="btn btn-info button_spacing"
164
- v-for="(index,func) in $parent.$parent.$parent.functions(row)"
165
- v-if="$parent.$parent.$parent.$parent.showFunc(func.personexpression)"
166
- @click="$parent.$parent.$parent.$parent.click(row, func)">{{ func.title }}</button>
167
- </div>
168
- </div>
169
- </div>
170
- </list>
171
- </criteria-paged>
172
- </div>
173
- </template>
174
- <script>
175
- import Vue from 'vue'
176
- import {HttpResetClass, PagedList} from 'vue-client'
177
- import {isEmpty} from '../../Util'
178
- export default {
179
- title: '报建业务',
180
- data () {
181
- return {
182
- model: new PagedList(`${this.$androidUtil.getProxyUrl()}/rs/sql/checkuserfunction`, 20, {
183
- // model: new PagedList('rs/sql/checkuserfunction', 20, {
184
- data: {
185
- orgid: Vue.user.orgid
186
- // orgid: '10101'
187
- }
188
- }),
189
- criteriaShow: false,
190
- applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')], // 所有报建类型
191
- defnames: [{label: '全部', value: ''}],
192
- applyNatures: [{label: '全部', value: ''}], // 报建性质
193
- function_vue: null
194
- }
195
- },
196
- created () {
197
- this.getConfig()
198
- },
199
- ready () {
200
- this.search()
201
- },
202
- methods: {
203
- dialNumber (phone) {
204
- this.$showMessage(`是否拨打电话:${phone}`, ['confirm']).then((res) => {
205
- if (res === 'confirm') {
206
- this.$androidUtil.makeAPhoneCall(phone)
207
- }
208
- })
209
- },
210
- // 权限控制
211
- showFunc (personexpression) {
212
-
213
- if (isEmpty(personexpression)) {
214
- return true
215
- }
216
-
217
- let mark = personexpression.charAt(0)
218
-
219
- let str = personexpression.substring(2, personexpression.length-1)
220
-
221
- if (mark === 'D' && Vue.user.f_department_name.includes(str)) {
222
- return true
223
- }
224
- if (mark === 'R' && Vue.user.f_role_name.includes(str)) {
225
- return true
226
- }
227
- if (mark === 'P' && Vue.user.id.includes(str)) {
228
- return true
229
- }
230
-
231
- return false
232
- },
233
- // 获取功能配置
234
- async getConfig () {
235
- let res = await this.$resetpost(
236
- `${this.$androidUtil.getProxyUrl()}/rs/logic/ApplyGetFunction`,
237
- null,
238
- {resolveMsg: null, rejectMsg: '配置数据获取失败!!!'}
239
- )
240
- this.function_vue = res.data
241
- // 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}]}]}
242
- },
243
- clear () {
244
- Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
245
- this.$refs.cp.$refs.cri.model[key] = null
246
- })
247
- },
248
- // 查询
249
- search () {
250
- this.$refs.cp.$refs.cri.search()
251
- },
252
- click (row, func) {
253
- let _this = this
254
- this.$dispatch('gotoson', {
255
- _this: _this,
256
- title: row.title,
257
- safe: true
258
- })
259
- this.$goto('app-function-service-control', {selectdata: row, jsondata: func}, 'self', _this.search)
260
- },
261
- applyTypeChange () {
262
- if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
263
- let http = new HttpResetClass()
264
- http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/getDefnameByType`, {
265
- // http.load('POST', 'rs/logic/getDefnameByType', {
266
- f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type
267
- }, {resolveMsg: null, rejectMsg: null}).then((res) => {
268
- this.defnames = [{label: '全部', value: ''}, ...res.data]
269
-
270
- this.applyNatures = isEmpty(this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)]
271
- })
272
- } else {
273
- this.defnames = [{label: '全部', value: ''}]
274
-
275
- this.applyNatures = [{label: '全部', value: ''}]
276
- }
277
- }
278
- },
279
- computed: {
280
- functions () {
281
- return function (row) {
282
- let funcs = []
283
-
284
- let functions = this.function_vue.functions
285
-
286
- for (const item of functions) {
287
- // 显示类型
288
- if (item.showApplyTypes) {
289
- if (item.showApplyTypes.indexOf(row.f_apply_type) === -1) {
290
- continue
291
- }
292
- }
293
- // 显示节点
294
- if (item.showDefnames) {
295
- if (item.showDefnames.indexOf(row.defname) === -1) {
296
- continue
297
- }
298
- }
299
- // 显示设备
300
- if (item.device && item.device !== 'app') {
301
- continue
302
- }
303
- funcs.push(item)
304
- }
305
-
306
- return funcs
307
- }
308
- }
309
- },
310
- events: {
311
- }
312
- }
313
- </script>
314
- <style scoped>
315
- .button_spacing{margin: 0px 0px 5px 10px;}
316
- .panel-self{
317
- border-radius: 10px;
318
- border:1px solid #499EDF;
319
- background-color: #F8F8F8;
320
- }
321
- .font{
322
- font: 15px PingFang-SC-Medium;
323
- color: #666666;
324
- }
325
-
326
- .button_shrink_top {
327
- width: 34px;
328
- height: 34px;
329
- border: solid 1px #6aa6e2;
330
- background-size: 100%;
331
- background-image: url("../../../../static/newStyle/stretch_top.png")
332
- }
333
-
334
- .button_shrink_bottom {
335
- width: 34px;
336
- height: 34px;
337
- border: solid 1px #6aa6e2;
338
- background-size: 100%;
339
- background-image: url("../../../../static/newStyle/stretch_bottom.png")
340
- }
341
- </style>
342
- <style lang="less">
343
- .app-input {
344
- label {
345
- float: left;
346
- }
347
- .select {
348
- button {
349
- border: none;
350
- outline: none;
351
- text-align: left;
352
- .btn-placeholder {
353
- color: #ACA899
354
- }
355
- }
356
- }
357
- .datepicker {
358
- .form-control:focus {
359
- border: none!important;
360
- outline: none!important;
361
- -webkit-box-shadow: none;
362
- box-shadow: none;
363
- }
364
- }
365
- }
366
- </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 = '{}'"
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
+ <v-select
65
+ width="100%"
66
+ v-model="model.f_apply_nature"
67
+ placeholder='报建性质'
68
+ condition="f_apply_nature = '{}'"
69
+ :value.sync="model.f_apply_nature"
70
+ :options='$parent.$parent.applyNatures'
71
+ class="select select_list"
72
+ :value-single="true"
73
+ close-on-select ></v-select>
74
+ </div>
75
+ </div>
76
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
77
+ <label class="">用户地址:</label>
78
+ <div class="col-xs-8" >
79
+ <input class="" v-model=model.f_address condition="u.f_address like '%{}%'" />
80
+ </div>
81
+ </div>
82
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
83
+ <label class="">开始时间:</label>
84
+ <div class="col-xs-8" >
85
+ <datepicker id="startDate" placeholder="开始日期"
86
+ style="width: 100%!important;"
87
+ v-model="model.startDate"
88
+ :value.sync="model.startDate"
89
+ :format="'yyyy-MM-dd 00:00:00'"
90
+ :show-reset-button="true"
91
+ condition="u.f_apply_date >= '{}'">
92
+ </datepicker>
93
+ </div>
94
+ </div>
95
+ <div class="row form-group app-input" v-if="$parent.$parent.criteriaShow">
96
+ <label class="">结束时间:</label>
97
+ <div class="col-xs-8" >
98
+ <datepicker id="endDate" placeholder="结束日期"
99
+ style="width: 100%!important;"
100
+ v-model="model.endDate"
101
+ :value.sync="model.endDate"
102
+ :format="'yyyy-MM-dd 23:59:59'"
103
+ :show-reset-button="true"
104
+ condition="f_apply_date <= '{}'">
105
+ </datepicker>
106
+ </div>
107
+ </div>
108
+ <div class="row form-group text-right" style="">
109
+ <button class="btn btn-primary" @click="$parent.$parent.search()">查询</button>
110
+ <button class="btn btn-info" @click="$parent.$parent.clear()">清空</button>
111
+ <button class="btn" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"></button>
112
+ </div>
113
+ </div>
114
+ </criteria>
115
+
116
+ <list :model="model" partial='list'>
117
+ <div partial class="auto app-text panel">
118
+ <div class="panel-body panel-self">
119
+ <div class="col-xs-12">
120
+ <p class="col-xs-3 text-left font"><b>客户名称:</b></p>
121
+ <p class="col-xs-9 text-left input-font">{{ row.f_user_name }}</p>
122
+ </div>
123
+ <div class="col-xs-12">
124
+ <p class="col-xs-3 text-left font"><b>电&emsp;&emsp;话:</b></p>
125
+ <!-- <p class="col-xs-9 text-left input-font">{{ row.f_phone }}</p>-->
126
+ <p class="col-xs-9 text-left input-font">
127
+ {{ row.f_phone }}&ensp;
128
+ <svg @click.prevent="$parent.$parent.$parent.dialNumber(row.f_phone)" style="width: 25px;height: 25px;position: absolute;" 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>
129
+ </p>
130
+ </div>
131
+ <div class="col-xs-12">
132
+ <p class="col-xs-3 text-left font"><b>工程编号:</b></p>
133
+ <p class="col-xs-9 text-left input-font">{{ row.f_apply_num }}</p>
134
+ </div>
135
+ <div class="col-xs-12">
136
+ <p class="col-xs-3 text-left font"><b>客户编号:</b></p>
137
+ <p class="col-xs-9 text-left input-font">{{ row.f_userinfo_code }}</p>
138
+ </div>
139
+ <div class="col-xs-12">
140
+ <p class="col-xs-3 text-left font"><b>报建类型:</b></p>
141
+ <p class="col-xs-9 text-left input-font">{{ row.f_apply_type }}</p>
142
+ </div>
143
+ <div class="col-xs-12">
144
+ <p class="col-xs-3 text-left font"><b>办理环节:</b></p>
145
+ <p class="col-xs-9 text-left input-font">{{ row.defname }}</p>
146
+ </div>
147
+ <div class="col-xs-12">
148
+ <p class="col-xs-3 text-left font"><b>地&emsp;&emsp;址:</b></p>
149
+ <p class="col-xs-9 text-left input-font">{{ row.f_address }}</p>
150
+ </div>
151
+ <div class="col-xs-12">
152
+ <p class="col-xs-3 text-left font"><b>报建日期:</b></p>
153
+ <p class="col-xs-9 text-left input-font">{{ row.f_apply_date }}</p>
154
+ </div>
155
+ <div class="col-xs-12" style="color: red">
156
+ <p class="col-xs-3 text-left font"><b>施工备注:</b></p>
157
+ <p class="col-xs-9 text-left input-font">{{ row.f_construction_remarks }}</p>
158
+ </div>
159
+
160
+ <div class="col-xs-12 text-center">
161
+ <button
162
+ style="min-width:100px"
163
+ class="btn btn-info button_spacing"
164
+ v-for="(index,func) in $parent.$parent.$parent.functions(row)"
165
+ v-if="$parent.$parent.$parent.$parent.showFunc(func.personexpression)"
166
+ @click="$parent.$parent.$parent.$parent.click(row, func)">{{ func.title }}</button>
167
+ </div>
168
+ </div>
169
+ </div>
170
+ </list>
171
+ </criteria-paged>
172
+ </div>
173
+ </template>
174
+ <script>
175
+ import Vue from 'vue'
176
+ import {HttpResetClass, PagedList} from 'vue-client'
177
+ import {isEmpty} from '../../Util'
178
+ export default {
179
+ title: '报建业务',
180
+ data () {
181
+ return {
182
+ model: new PagedList(`${this.$androidUtil.getProxyUrl()}/rs/sql/checkuserfunction`, 20, {
183
+ // model: new PagedList('rs/sql/checkuserfunction', 20, {
184
+ data: {
185
+ orgid: Vue.user.orgid
186
+ // orgid: '10101'
187
+ }
188
+ }),
189
+ criteriaShow: false,
190
+ applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')], // 所有报建类型
191
+ defnames: [{label: '全部', value: ''}],
192
+ applyNatures: [{label: '全部', value: ''}], // 报建性质
193
+ function_vue: null
194
+ }
195
+ },
196
+ created () {
197
+ this.getConfig()
198
+ },
199
+ ready () {
200
+ this.search()
201
+ },
202
+ methods: {
203
+ dialNumber (phone) {
204
+ this.$showMessage(`是否拨打电话:${phone}`, ['confirm']).then((res) => {
205
+ if (res === 'confirm') {
206
+ this.$androidUtil.makeAPhoneCall(phone)
207
+ }
208
+ })
209
+ },
210
+ // 权限控制
211
+ showFunc (personexpression) {
212
+
213
+ if (isEmpty(personexpression)) {
214
+ return true
215
+ }
216
+
217
+ let mark = personexpression.charAt(0)
218
+
219
+ let str = personexpression.substring(2, personexpression.length-1)
220
+
221
+ if (mark === 'D' && Vue.user.f_department_name.includes(str)) {
222
+ return true
223
+ }
224
+ if (mark === 'R' && Vue.user.f_role_name.includes(str)) {
225
+ return true
226
+ }
227
+ if (mark === 'P' && Vue.user.id.includes(str)) {
228
+ return true
229
+ }
230
+
231
+ return false
232
+ },
233
+ // 获取功能配置
234
+ async getConfig () {
235
+ let res = await this.$resetpost(
236
+ `${this.$androidUtil.getProxyUrl()}/rs/logic/ApplyGetFunction`,
237
+ null,
238
+ {resolveMsg: null, rejectMsg: '配置数据获取失败!!!'}
239
+ )
240
+ this.function_vue = res.data
241
+ // 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}]}]}
242
+ },
243
+ clear () {
244
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
245
+ this.$refs.cp.$refs.cri.model[key] = null
246
+ })
247
+ },
248
+ // 查询
249
+ search () {
250
+ this.$refs.cp.$refs.cri.search()
251
+ },
252
+ click (row, func) {
253
+ let _this = this
254
+ this.$dispatch('gotoson', {
255
+ _this: _this,
256
+ title: row.title,
257
+ safe: true
258
+ })
259
+ this.$goto('app-function-service-control', {selectdata: row, jsondata: func}, 'self', _this.search)
260
+ },
261
+ applyTypeChange () {
262
+ if (!isEmpty(this.$refs.cp.$refs.cri.model.f_apply_type)) {
263
+ let http = new HttpResetClass()
264
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/getDefnameByType`, {
265
+ // http.load('POST', 'rs/logic/getDefnameByType', {
266
+ f_apply_type: this.$refs.cp.$refs.cri.model.f_apply_type
267
+ }, {resolveMsg: null, rejectMsg: null}).then((res) => {
268
+ this.defnames = [{label: '全部', value: ''}, ...res.data]
269
+
270
+ this.applyNatures = isEmpty(this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)) ? [{label: '全部', value: ''}] : [{label: '全部', value: ''}, ...this.$appdata.getParam(`${this.$refs.cp.$refs.cri.model.f_apply_type}性质`)]
271
+ })
272
+ } else {
273
+ this.defnames = [{label: '全部', value: ''}]
274
+
275
+ this.applyNatures = [{label: '全部', value: ''}]
276
+ }
277
+ }
278
+ },
279
+ computed: {
280
+ functions () {
281
+ return function (row) {
282
+ let funcs = []
283
+
284
+ let functions = this.function_vue.functions
285
+
286
+ for (const item of functions) {
287
+ // 显示类型
288
+ if (item.showApplyTypes) {
289
+ if (item.showApplyTypes.indexOf(row.f_apply_type) === -1) {
290
+ continue
291
+ }
292
+ }
293
+ // 显示节点
294
+ if (item.showDefnames) {
295
+ if (item.showDefnames.indexOf(row.defname) === -1) {
296
+ continue
297
+ }
298
+ }
299
+ // 显示设备
300
+ if (item.device && item.device !== 'app') {
301
+ continue
302
+ }
303
+ funcs.push(item)
304
+ }
305
+
306
+ return funcs
307
+ }
308
+ }
309
+ },
310
+ events: {
311
+ }
312
+ }
313
+ </script>
314
+ <style scoped>
315
+ .button_spacing{margin: 0px 0px 5px 10px;}
316
+ .panel-self{
317
+ border-radius: 10px;
318
+ border:1px solid #499EDF;
319
+ background-color: #F8F8F8;
320
+ }
321
+ .font{
322
+ font: 15px PingFang-SC-Medium;
323
+ color: #666666;
324
+ }
325
+
326
+ .button_shrink_top {
327
+ width: 34px;
328
+ height: 34px;
329
+ border: solid 1px #6aa6e2;
330
+ background-size: 100%;
331
+ background-image: url("../../../../static/newStyle/stretch_top.png")
332
+ }
333
+
334
+ .button_shrink_bottom {
335
+ width: 34px;
336
+ height: 34px;
337
+ border: solid 1px #6aa6e2;
338
+ background-size: 100%;
339
+ background-image: url("../../../../static/newStyle/stretch_bottom.png")
340
+ }
341
+ </style>
342
+ <style lang="less">
343
+ .app-input {
344
+ label {
345
+ float: left;
346
+ }
347
+ .select {
348
+ button {
349
+ border: none;
350
+ outline: none;
351
+ text-align: left;
352
+ .btn-placeholder {
353
+ color: #ACA899
354
+ }
355
+ }
356
+ }
357
+ .datepicker {
358
+ .form-control:focus {
359
+ border: none!important;
360
+ outline: none!important;
361
+ -webkit-box-shadow: none;
362
+ box-shadow: none;
363
+ }
364
+ }
365
+ }
366
+ </style>