apply-clients 6.0.4 → 6.0.7

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 (30) hide show
  1. package/build/dev-server.js +2 -2
  2. package/package.json +1 -1
  3. package/src/components/apply/base/rightview/InstallCardList2.vue +3 -2
  4. package/src/components/apply/base/rightview/carddetail/BuildFeeDetail2.vue +1 -1
  5. package/src/components/apply/base/rightview/carddetail/ChangeFeeDetail2.vue +1 -1
  6. package/src/components/apply/base/rightview/carddetail/ReduceFeeDetail2.vue +2 -2
  7. package/src/components/apply/base/rightview/carddetail/StopApplyDetail2.vue +70 -70
  8. package/src/components/build/Install/InstallFee/AddContract.vue +257 -257
  9. package/src/components/build/Install/InstallFee/InstallFee.vue +929 -929
  10. package/src/components/build/Install/InstallFee/PreparationFee.vue +223 -223
  11. package/src/components/build/Install/InstallFee/PrestoreFee.vue +630 -630
  12. package/src/components/build/Install/Process/CustomerBuildingMessage.vue +251 -251
  13. package/src/components/build/Install/Process/CustomerEquipmentMessage.vue +172 -172
  14. package/src/components/build/Install/Process/CustomerFile.vue +423 -423
  15. package/src/components/build/Install/Process/CustomerMaterialMessage.vue +414 -414
  16. package/src/components/build/Install/Process/CustomerRecordMessage.vue +749 -749
  17. package/src/components/build/Install/Process/FeeNormeAndContratSigne.vue +376 -376
  18. package/src/components/build/Install/Process/MeterType.vue +379 -379
  19. package/src/components/build/Install/Process/PlaceControler.vue +304 -304
  20. package/src/components/build/Install/Process/zhongran/ZR_Construction.vue +388 -388
  21. package/src/components/build/Install/Process/zhongran/ZR_CustomerEssentialInfo.vue +416 -415
  22. package/src/components/build/Install/Process/zhongran/ZR_MaterialPlan.vue +259 -259
  23. package/src/components/build/Install/Process/zhongran/ZR_MaterialPlanExamine.vue +243 -243
  24. package/src/components/build/Install/Process/zhongran/ZR_PlaceControler.vue +426 -426
  25. package/src/components/build/Install/Process/zhongran/ZR_TestDesign.vue +441 -441
  26. package/src/components/build/Install/ProcessInfo/ApplyRecordCancel.vue +135 -135
  27. package/src/components/build/Install/bill/BillGZKMakeInfo.vue +58 -58
  28. package/src/components/build/Install/bill/BillQRKMakeInfo.vue +79 -79
  29. package/src/components/build/Install/bill/BillXSDMakeInfo.vue +206 -206
  30. package/src/main.js +25 -25
@@ -1,415 +1,416 @@
1
- <template>
2
- <validator name="v">
3
- <div class="from-group col-sm-12">
4
- <div class="from-group col-sm-12" style="height: auto">
5
- <div class="form-group col-sm-3 form-input-group" >
6
- <label class="control-label" >客户名称:</label>
7
- <div class="col-sm-6" id="f_user_name" :class="[$v.f_user_name.required ? 'formItem-required' : '' ]">
8
- <input class="form-control col-sm-6" type="text" v-if="selectdata.f_user_name" v-model="model.f_user_name"
9
- readonly>
10
- <input class="form-control col-sm-6" type="text" v-else v-model="model.f_user_name"
11
- :disabled="this.edit ? false : 'disabled'"
12
- v-validate:f_user_name ='{required: true }'
13
- >
14
- </div>
15
- </div>
16
- <div class="form-group col-sm-3 form-input-group">
17
- <label class="control-label">工程名称:</label>
18
- <div class="col-sm-6" id="f_project_name" :class="[$v.f_project_name.required ? 'formItem-required' : '' ]">
19
- <input class="form-control col-sm-6" type="text" v-if="selectdata.f_project_name"
20
- v-model="model.f_project_name"
21
- readonly>
22
- <input class="form-control col-sm-6" type="text" v-else v-model="model.f_project_name"
23
- @change="checkProName" :disabled="this.edit ? false : 'disabled'"
24
- v-validate:f_project_name ='{required: true }'>
25
- </div>
26
- </div>
27
- <div class="form-group col-sm-3 form-input-group">
28
- <label class="col-sm-4 control-label">证件类型:</label>
29
- <div class="col-sm-8" id="f_credentials" :class="[$v.f_credentials.required ? 'formItem-required' : '' ]">
30
- <input class="form-control col-sm-6" type="text" v-if="selectdata.f_credentials"
31
- v-model="model.f_credentials"
32
- readonly>
33
- <input class="form-control col-sm-6" type="text" v-show="false"
34
- v-model="model.f_credentials"
35
- v-validate:f_credentials ='{required: true }'
36
- >
37
- <v-select
38
- v-if="edit"
39
- :is-all-line="true"
40
- v-model="model.f_credentials" v-else
41
- placeholder='请选择'
42
- :value.sync="model.f_credentials"
43
- :value-single="true"
44
- :options='fcredentials'
45
- close-on-select
46
- :disabled="this.edit ? false : 'disabled'"
47
- >
48
- </v-select>
49
- </div>
50
- </div>
51
- <div class="form-group col-sm-3 form-input-group">
52
- <label class="control-label">证件号码:</label>
53
- <div class="col-sm-6" id="f_idnumber" :class="[$v.f_idnumber.required ? 'formItem-required' : '' ]">
54
- <input class="form-control col-sm-6" type="text" v-if="selectdata.f_idnumber" v-model="model.f_idnumber" readonly>
55
- <input class="form-control col-sm-6" id="f_phone" type="text"
56
- v-else v-model="model.f_idnumber" :disabled="this.edit ? false : 'disabled'"
57
- v-validate:f_idnumber = '{required:true}'>
58
- </div>
59
- </div>
60
-
61
- <div class="form-group col-sm-3 form-input-group">
62
- <label class="control-label">电话号码:</label>
63
- <div class="col-sm-6" id="f_phone" :class="[$v.f_phone.required ? 'formItem-required' : '' ]">
64
- <input class="form-control col-sm-6" type="text" v-if="selectdata.f_phone" v-model="model.f_phone" readonly>
65
- <input class="form-control col-sm-6" id="f_phone" type="text"
66
- v-else v-model="model.f_phone" :disabled="this.edit ? false : 'disabled'"
67
- v-validate:f_phone = '{required:true}'>
68
- </div>
69
- </div>
70
- <div class="form-group col-sm-3 form-input-group">
71
- <label class="control-label">客户类型:</label>
72
- <div class="col-sm-5" id="f_customer_type" :class="[$v.f_customer_type.required ? 'formItem-required' : '' ]">
73
- <input class="form-control col-sm-6" type="text" v-if="selectdata.f_customer_type"
74
- v-model="model.f_customer_type" readonly>
75
- <input class="form-control col-sm-6" type="text" v-show="false"
76
- v-model="model.f_customer_type"
77
- v-validate:f_customer_type = '{required:true}'>
78
- <v-select :is-all-line="true" :value.sync="model.f_customer_type"
79
- v-if="edit" v-model="model.f_customer_type"
80
- v-ref:customertype
81
- :value-single="true"
82
- :options='fcustomertype'
83
- placeholder='请选择' close-on-select
84
- :disabled="this.edit ? false : 'disabled'"
85
- >
86
- </v-select>
87
- </div>
88
- </div>
89
- <div class="form-group col-sm-3 form-input-group" >
90
- <label class="col-sm-4 control-label">报装类型:</label>
91
- <div class="col-sm-8" id="f_apply_type" :class="[$v.f_apply_type.required ? 'formItem-required' : '' ]">
92
- <input class="form-control col-sm-6" type="text" v-if="selectdata.f_apply_type" v-model="model.f_apply_type"
93
- readonly>
94
- <input class="form-control col-sm-6" type="text" v-show="false" v-model="model.f_apply_type" v-validate:f_apply_type = '{required:true}'>
95
- <v-select :is-all-line="true" v-ref:fapplytype
96
- v-if="edit"
97
- v-model="model.f_apply_type"
98
- placeholder='请选择'
99
- :value-single="true"
100
- :value.sync="model.f_apply_type"
101
- :options='fapplytype'
102
- close-on-select
103
- :disabled="this.edit ? false : 'disabled'"
104
- >
105
- </v-select>
106
- </div>
107
- </div>
108
- <div class="form-group col-sm-9 form-input-group">
109
- <label class=" col-sm-3 control-label">用户单位:</label>
110
- <div class="col-sm-8">
111
- <input class="form-control col-sm-6" type="text" v-if="selectdata.f_company_name"
112
- v-model="model.f_company_name" readonly>
113
- <input class="form-control" type="text" v-model="model.f_company_name" v-else :disabled="this.edit ? false : 'disabled'">
114
- </div>
115
- </div>
116
-
117
- <div class="form-group col-sm-9 form-input-group">
118
- <label class="control-label">地址:</label>
119
- <div class="col-sm-8" id="f_address" :class="[$v.f_address.required ? 'formItem-required' : '' ]">
120
- <input class="form-control col-sm-6" type="text" v-if="selectdata.f_address" v-model="model.f_address" readonly>
121
- <input class="form-control col-sm-6" id="f_phone" type="text"
122
- v-else v-model="model.f_address" :disabled="this.edit ? false : 'disabled'"
123
- v-validate:f_address = '{required:true}'>
124
- </div>
125
- </div>
126
- <div class="form-horizontal auto">
127
- <div class="form-group">
128
- <div class="form-group col-sm-9 form-input-group">
129
- <label class="col-sm-2" v-if="model.f_apply_type === '改装报建'">改装原因:</label>
130
- <label class="col-sm-2" v-else>报装登记备注:</label>
131
- <div class="col-sm-9">
132
- <textarea class="form-control" v-model="model.f_apply_remarks" rows="3" v-if="selectdata.f_apply_remarks" readonly></textarea>
133
- <textarea class="form-control" v-model="model.f_apply_remarks" rows="3" v-else
134
- :disabled="this.edit ? false : 'disabled'">
135
- </textarea>
136
- </div>
137
- </div>
138
- <div class="form-group col-sm-12">
139
- <div class="form-group col-sm-4 form-input-group">
140
- <label class="control-label">分公司:</label>
141
- <div class="col-sm-5">
142
- <input class="form-control" type="text" v-model="model.f_filiale" disabled>
143
- </div>
144
- </div>
145
- <div class="form-group col-sm-4 form-input-group">
146
- <label class="control-label">部门:</label>
147
- <div class="col-sm-5">
148
- <input class="form-control" type="text" v-model="model.f_apply_department" disabled>
149
- </div>
150
- </div>
151
- </div>
152
- <div class="form-group col-sm-12">
153
- <div class="form-group col-sm-4 form-input-group">
154
- <!--<label class="control-label">操作人:</label>-->
155
- <label class="control-label">经办人:</label>
156
- <div class="col-sm-5">
157
- <input class="form-control" type="text" v-model="model.f_apply_operator" disabled>
158
- </div>
159
- </div>
160
- <div class="form-group col-sm-4 form-input-group">
161
- <label class="control-label">操作日期:</label>
162
- <div class="col-sm-5">
163
- <input class="form-control" type="text" v-model="model.f_apply_date" disabled>
164
- </div>
165
- </div>
166
- </div>
167
- </div>
168
- </div>
169
- <div v-if="!base" class="from-group col-sm-8">
170
- <center v-show="edit">
171
- <button type="button" @click="confirm()" class="btn btn-primary "
172
- style="width:80px; margin-left:50px;" :disabled='!$v.valid'>
173
- 提交
174
- </button>
175
- <button type="button" @click="reset()" class="btn btn-warning" style="width:80px; margin-left:50px;">
176
- 取消
177
- </button>
178
- </center>
179
- </div>
180
- </div>
181
- <billgzkmakeinfo v-show="false" :billselect="model" :selectone="改装卡" v-ref:billgzkmakeinfo></billgzkmakeinfo>
182
- </div>
183
- </validator>
184
- </template>
185
- <script>
186
- import {HttpResetClass} from 'vue-client'
187
-
188
- export default {
189
- title: "基本信息",
190
- props: {
191
- selectdata: {
192
- type: Object,
193
- default: {}
194
- }
195
- },
196
- data() {
197
- return {
198
- fapplytype: this.$appdata.getParam('报装类型'),
199
- fcredentials: this.$appdata.getParam('证件类型'),
200
- fhousetype: this.$appdata.getParam('房屋类型'),
201
- fcustomertype: this.$appdata.getParam('客户类型'),
202
- model: {},
203
- flag: null,
204
- }
205
- },
206
- props: ['selectdata','edit'],
207
- ready() {
208
- console.log("开始")
209
- this.model = Object.assign({}, this.model, this.selectdata)
210
- },
211
- methods: {
212
- async confirm() {
213
- this.model.f_user_type = ' ' //这句是为了避免调saveApplyNext.logic时报错
214
- // 改装报建,先打印改装卡,再去保存信息
215
- if (this.model.f_apply_type === '改装报建') {
216
- if (this.model.f_apply_remarks) {
217
- this.getModel();
218
- this.$refs.billgzkmakeinfo.$refs.billqrk.billselect = this.model
219
- this.flag = this.$refs.billgzkmakeinfo.$refs.billqrk.load()
220
- setTimeout(() => {
221
- this.$refs.billgzkmakeinfo.$refs.billqrk.$refs.page2.$refs.querenka.$refs.reportprint.print()
222
- }, 5000)
223
- this.$refs.billgzkmakeinfo.updateNumber()
224
- } else {
225
- this.$showMessage("请填写改装原因")
226
- return
227
- }
228
- }
229
- var proName = this.model.f_project_name
230
- //工程名唯一性判断
231
- if(!this.selectdata.f_project_name){
232
- this.$resetpost('rs/sql/findByProName', {data: {proName: proName}}, {
233
- resolveMsg: null,
234
- rejectMsg: '提交错误!'
235
- }).then((res) => {
236
- console.log('>>>>>>>>>>>>>>查询结果<<<<<<<<<<<<<<<', res)
237
- if (res.data.length > 0) {
238
- this.$showMessage("工程名不能重复!")
239
- flag = false
240
- } else {
241
- this.getModel();
242
- this.workflow()
243
- }
244
- })
245
- }
246
-
247
- },
248
- workflow() {
249
- var phoneReg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/ //手机号码正则
250
- var regex = /.*?[\u4e00-\u9fa5].*?[\u4e00-\u9fa5].*/
251
- var telReg = /0\d{2,3}-\d{7,8}/ //座机正则
252
- var officerReg = /^[a-zA-Z0-9]{7,21}$/ //军官证
253
- var idReg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i //身份证
254
- var busReg = /(^(?:(?![IOZSV])[\dA-Z]){2}\d{6}(?:(?![IOZSV])[\dA-Z]){10}$)|(^\d{15}$)/ //营业执照
255
- if (!this.model.f_user_name) {
256
- this.$showMessage("客户名称不能为空!")
257
- return false
258
- } else if (!regex.test(this.model.f_user_name)) {
259
- this.$showMessage("客户名称请输入至少两个汉字!")
260
- this.model.f_user_name = ''
261
- return false
262
- }
263
- if (!this.model.f_project_name) {
264
- this.$showMessage("工程名称不能为空!")
265
- return false
266
- }
267
- //先选证件类型再判断证件号
268
- if (!this.model.f_credentials || this.model.f_credentials.length == 0) {
269
- this.$showMessage("请选择证件类型!")
270
- return false
271
- } else if (!this.model.f_idnumber) {
272
- this.$showMessage("证件号码不能为空!")
273
- return false
274
- } else if (this.model.f_credentials == '军官证') {
275
- if (!officerReg.test(this.model.f_idnumber)) {
276
- this.$showMessage("请输入正确的军官证号码!")
277
- return false
278
- }
279
- } else if (this.model.f_credentials == '营业执照') {
280
- if (!busReg.test(this.model.f_idnumber)) {
281
- this.$showMessage("请输入正确的营业执照号码!")
282
- return false
283
- }
284
- } else if (this.model.f_credentials == '身份证') {
285
- if (!idReg.test(this.model.f_idnumber)) {
286
- this.$showMessage("请输入正确的身份证号码!")
287
- return false
288
- }
289
- }
290
- if (!this.model.f_phone) {
291
- this.$showMessage("电话号码不能为空!")
292
- return false
293
- } else if (!phoneReg.test(this.model.f_phone) && !telReg.test(this.model.f_phone)) {
294
- this.$showMessage("请输入正确的电话号码!")
295
- return false
296
- }
297
- if (!this.model.f_customer_type || this.model.f_customer_type.length == 0) {
298
- this.$showMessage("请选择客户类型!")
299
- return false
300
- }
301
- if (!this.model.f_company_name) {
302
- this.$showMessage("用户单位不能为空!")
303
- return false
304
- }
305
- if (!this.model.f_address) {
306
- this.$showMessage("地址不能为空")
307
- return false
308
- }
309
- console.log('11', this.uuid);
310
- if (!this.model.f_apply_type || this.model.f_apply_type.length == 0) {
311
- this.$showMessage("请选择报装类型!")
312
- return false
313
- } else {
314
- this.model.f_apply_type = this.model.f_apply_type
315
- let fileInfoData = this.$parent.$parent.$parent.$parent.$refs.file.fileInfoData
316
- let recordmessage = this.$parent.$parent.$parent.$parent.$refs.record.model.rows
317
- let materialmessage = this.$parent.$parent.$parent.$parent.$refs.material.model.rows
318
- for (var i = 0; i < materialmessage.length; i++) {
319
- materialmessage[i].id = Number(materialmessage[i].id)
320
- materialmessage[i].f_quantity = Number(materialmessage[i].f_quantity)
321
- materialmessage[i].f_price = Number(materialmessage[i].f_price)
322
- materialmessage[i].f_money = Number(materialmessage[i].f_money)
323
- }
324
- let buildingmessage = []
325
- if (this.$parent.$parent.$parent.$parent.$refs.building) {
326
- buildingmessage = this.$parent.$parent.$parent.$parent.$refs.building.model.rows
327
- }
328
- let equipmentmessage = []
329
- if (this.$parent.$parent.$parent.$parent.flagg) {
330
- equipmentmessage = this.$parent.$parent.$parent.$parent.$refs.equipment.devicesinfo
331
- if (equipmentmessage.length != 0 && equipmentmessage[0].id == null) {
332
- equipmentmessage = []
333
- }
334
- for (var i = 0; i < equipmentmessage.length; i++) {
335
- equipmentmessage[i].f_devices_type = typeof equipmentmessage[i].f_devices_type === 'object' ? equipmentmessage[i].f_devices_type[0] : equipmentmessage[i].f_devices_type
336
- }
337
- }
338
- let data = {
339
- model: this.model,
340
- fileinfodata: fileInfoData,
341
- recordmessage: recordmessage,
342
- materialmessage: materialmessage,
343
- equipmentmessage: equipmentmessage,
344
- buildingmessage: buildingmessage,
345
- loginUser: {
346
- id: this.$login.f.id,
347
- name: this.$login.f.name,
348
- ename: this.$login.f.ename
349
- }
350
- }
351
- let http = new HttpResetClass()
352
- http.load('POST', `rs/logic/saveapplynext`, {data: data})
353
- .then((res) => {
354
- this.reset()
355
- })
356
- }
357
- return true
358
- },
359
-
360
- reset() {
361
- this.$dispatch('close')
362
- this.$dispatch('selfsearch')
363
- },
364
- getModel() {
365
- this.model.f_area = typeof this.model.f_area === 'object' ? this.model.f_area[0] : this.model.f_area ? this.model.f_area : ''
366
- this.model.f_credentials = typeof this.model.f_credentials === 'object' ? this.model.f_credentials[0] : this.model.f_credentials ? this.model.f_credentials : ''
367
- this.model.f_apply_type = typeof this.model.f_apply_type === 'object' ? this.model.f_apply_type[0] : this.model.f_apply_type ? this.model.f_apply_type : ''
368
- this.model.f_residential_area = typeof this.model.f_residential_area === 'object' ? this.model.f_residential_area[0] : this.model.f_residential_area ? this.model.f_residential_area : ''
369
- this.model.f_customer_type = typeof this.model.f_customer_type === 'object' ? this.model.f_customer_type[0] : this.model.f_customer_type ? this.model.f_customer_type : ''
370
- // this.model.f_sub_state = ''
371
- },
372
-
373
- },
374
- watch: {
375
- 'selectdata'() {
376
- console.log("监听selectdata")
377
- this.model = Object.assign({}, this.selectdata, this.model)
378
- },
379
- 'model.f_customer_type'() {
380
- if (this.model.f_customer_type == '企业') {
381
- this.$parent.$parent.$parent.$parent.flagg = true
382
- } else {
383
- this.$parent.$parent.$parent.$parent.flagg = false
384
- }
385
- },
386
-
387
- },
388
- computed: {
389
- village() {
390
- let temp = []
391
- for (var i = 0; i < this.$login.f.f_allArea.length; i++) {
392
- temp.push({label: this.$login.f.f_allArea[i].label, value: this.$login.f.f_allArea[i].label})
393
- }
394
- return temp
395
- },
396
- allvillages() {
397
- let temp = []
398
- for (var i = 0; i < this.$login.f.f_allArea.length; i++) {
399
- if (this.model.f_residential_area[0] == this.$login.f.f_allArea[i].label)
400
- return this.$login.f.f_allArea[i].value
401
- }
402
- }
403
- }
404
- }
405
- </script>
406
- <style>
407
- .formItem-required::after {
408
- content: '*';
409
- position: absolute;
410
- font-size: 20px;
411
- margin-top: 3.5%;
412
- margin-left: 3%;
413
- color: #d91118;
414
- }
415
- </style>
1
+ <template>
2
+ <validator name="v">
3
+ <div class="from-group col-sm-12">
4
+ <div class="from-group col-sm-12" style="height: auto">
5
+ <div class="form-group col-sm-3 form-input-group" >
6
+ <label class="control-label" >客户名称:</label>
7
+ <div class="col-sm-6" id="f_user_name" :class="[$v.f_user_name.required ? 'formItem-required' : '' ]">
8
+ <input class="form-control col-sm-6" type="text" v-if="selectdata.f_user_name" v-model="model.f_user_name"
9
+ readonly>
10
+ <input class="form-control col-sm-6" type="text" v-else v-model="model.f_user_name"
11
+ :disabled="this.edit ? false : 'disabled'"
12
+ v-validate:f_user_name ='{required: true }'
13
+ >
14
+ </div>
15
+ </div>
16
+ <div class="form-group col-sm-3 form-input-group">
17
+ <label class="control-label">工程名称:</label>
18
+ <div class="col-sm-6" id="f_project_name" :class="[$v.f_project_name.required ? 'formItem-required' : '' ]">
19
+ <input class="form-control col-sm-6" type="text" v-if="selectdata.f_project_name"
20
+ v-model="model.f_project_name"
21
+ readonly>
22
+ <input class="form-control col-sm-6" type="text" v-else v-model="model.f_project_name"
23
+ @change="checkProName" :disabled="this.edit ? false : 'disabled'"
24
+ v-validate:f_project_name ='{required: true }'>
25
+ </div>
26
+ </div>
27
+ <div class="form-group col-sm-3 form-input-group">
28
+ <label class="col-sm-4 control-label">证件类型:</label>
29
+ <div class="col-sm-8" id="f_credentials" :class="[$v.f_credentials.required ? 'formItem-required' : '' ]">
30
+ <input class="form-control col-sm-6" type="text" v-if="selectdata.f_credentials"
31
+ v-model="model.f_credentials"
32
+ readonly>
33
+ <input class="form-control col-sm-6" type="text" v-show="false"
34
+ v-model="model.f_credentials"
35
+ v-validate:f_credentials ='{required: true }'
36
+ >
37
+ <v-select
38
+ v-if="edit"
39
+ :is-all-line="true"
40
+ v-model="model.f_credentials" v-else
41
+ placeholder='请选择'
42
+ :value.sync="model.f_credentials"
43
+ :value-single="true"
44
+ :options='fcredentials'
45
+ close-on-select
46
+ :disabled="this.edit ? false : 'disabled'"
47
+ >
48
+ </v-select>
49
+ </div>
50
+ </div>
51
+ <div class="form-group col-sm-3 form-input-group">
52
+ <label class="control-label">证件号码:</label>
53
+ <div class="col-sm-6" id="f_idnumber" :class="[$v.f_idnumber.required ? 'formItem-required' : '' ]">
54
+ <input class="form-control col-sm-6" type="text" v-if="selectdata.f_idnumber" v-model="model.f_idnumber" readonly>
55
+ <input class="form-control col-sm-6" id="f_phone" type="text"
56
+ v-else v-model="model.f_idnumber" :disabled="this.edit ? false : 'disabled'"
57
+ v-validate:f_idnumber = '{required:true}'>
58
+ </div>
59
+ </div>
60
+
61
+ <div class="form-group col-sm-3 form-input-group">
62
+ <label class="control-label">电话号码:</label>
63
+ <div class="col-sm-6" id="f_phone" :class="[$v.f_phone.required ? 'formItem-required' : '' ]">
64
+ <input class="form-control col-sm-6" type="text" v-if="selectdata.f_phone" v-model="model.f_phone" readonly>
65
+ <input class="form-control col-sm-6" id="f_phone" type="text"
66
+ v-else v-model="model.f_phone" :disabled="this.edit ? false : 'disabled'"
67
+ v-validate:f_phone = '{required:true}'>
68
+ </div>
69
+ </div>
70
+ <div class="form-group col-sm-3 form-input-group">
71
+ <label class="control-label">客户类型:</label>
72
+ <div class="col-sm-5" id="f_customer_type" :class="[$v.f_customer_type.required ? 'formItem-required' : '' ]">
73
+ <input class="form-control col-sm-6" type="text" v-if="selectdata.f_customer_type"
74
+ v-model="model.f_customer_type" readonly>
75
+ <input class="form-control col-sm-6" type="text" v-show="false"
76
+ v-model="model.f_customer_type"
77
+ v-validate:f_customer_type = '{required:true}'>
78
+ <v-select :is-all-line="true" :value.sync="model.f_customer_type"
79
+ v-if="edit" v-model="model.f_customer_type"
80
+ v-ref:customertype
81
+ :value-single="true"
82
+ :options='fcustomertype'
83
+ placeholder='请选择' close-on-select
84
+ :disabled="this.edit ? false : 'disabled'"
85
+ >
86
+ </v-select>
87
+ </div>
88
+ </div>
89
+ <div class="form-group col-sm-3 form-input-group" >
90
+ <label class="col-sm-4 control-label">报装类型:</label>
91
+ <div class="col-sm-8" id="f_apply_type" :class="[$v.f_apply_type.required ? 'formItem-required' : '' ]">
92
+ <input class="form-control col-sm-6" type="text" v-if="selectdata.f_apply_type" v-model="model.f_apply_type"
93
+ readonly>
94
+ <input class="form-control col-sm-6" type="text" v-show="false" v-model="model.f_apply_type" v-validate:f_apply_type = '{required:true}'>
95
+ <v-select :is-all-line="true" v-ref:fapplytype
96
+ v-if="edit"
97
+ v-model="model.f_apply_type"
98
+ placeholder='请选择'
99
+ :value-single="true"
100
+ :value.sync="model.f_apply_type"
101
+ :options='fapplytype'
102
+ close-on-select
103
+ :disabled="this.edit ? false : 'disabled'"
104
+ >
105
+ </v-select>
106
+ </div>
107
+ </div>
108
+ <div class="form-group col-sm-9 form-input-group">
109
+ <label class=" col-sm-3 control-label">用户单位:</label>
110
+ <div class="col-sm-8">
111
+ <input class="form-control col-sm-6" type="text" v-if="selectdata.f_company_name"
112
+ v-model="model.f_company_name" readonly>
113
+ <input class="form-control" type="text" v-model="model.f_company_name" v-else :disabled="this.edit ? false : 'disabled'">
114
+ </div>
115
+ </div>
116
+
117
+ <div class="form-group col-sm-9 form-input-group">
118
+ <label class="control-label">地址:</label>
119
+ <div class="col-sm-8" id="f_address" :class="[$v.f_address.required ? 'formItem-required' : '' ]">
120
+ <input class="form-control col-sm-6" type="text" v-if="selectdata.f_address" v-model="model.f_address" readonly>
121
+ <input class="form-control col-sm-6" id="f_phone" type="text"
122
+ v-else v-model="model.f_address" :disabled="this.edit ? false : 'disabled'"
123
+ v-validate:f_address = '{required:true}'>
124
+ </div>
125
+ </div>
126
+ <div class="form-horizontal auto">
127
+ <div class="form-group">
128
+ <div class="form-group col-sm-9 form-input-group">
129
+ <label class="col-sm-2" v-if="model.f_apply_type === '改装报建'">改装原因:</label>
130
+ <label class="col-sm-2" v-else>报装登记备注:</label>
131
+ <div class="col-sm-9">
132
+ <textarea class="form-control" v-model="model.f_apply_remarks" rows="3" v-if="selectdata.f_apply_remarks" readonly></textarea>
133
+ <textarea class="form-control" v-model="model.f_apply_remarks" rows="3" v-else
134
+ :disabled="this.edit ? false : 'disabled'">
135
+ </textarea>
136
+ </div>
137
+ </div>
138
+ <div class="form-group col-sm-12">
139
+ <div class="form-group col-sm-4 form-input-group">
140
+ <label class="control-label">分公司:</label>
141
+ <div class="col-sm-5">
142
+ <input class="form-control" type="text" v-model="model.f_filiale" disabled>
143
+ </div>
144
+ </div>
145
+ <div class="form-group col-sm-4 form-input-group">
146
+ <label class="control-label">部门:</label>
147
+ <div class="col-sm-5">
148
+ <input class="form-control" type="text" v-model="model.f_apply_department" disabled>
149
+ </div>
150
+ </div>
151
+ </div>
152
+ <div class="form-group col-sm-12">
153
+ <div class="form-group col-sm-4 form-input-group">
154
+ <!--<label class="control-label">操作人:</label>-->
155
+ <label class="control-label">经办人:</label>
156
+ <div class="col-sm-5">
157
+ <input class="form-control" type="text" v-model="model.f_apply_operator" disabled>
158
+ </div>
159
+ </div>
160
+ <div class="form-group col-sm-4 form-input-group">
161
+ <label class="control-label">操作日期:</label>
162
+ <div class="col-sm-5">
163
+ <input class="form-control" type="text" v-model="model.f_apply_date" disabled>
164
+ </div>
165
+ </div>
166
+ </div>
167
+ </div>
168
+ </div>
169
+ <div v-if="!base" class="from-group col-sm-8">
170
+ <center v-show="edit">
171
+ <button type="button" @click="confirm()" class="btn btn-primary "
172
+ style="width:80px; margin-left:50px;" :disabled='!$v.valid'>
173
+ 提交
174
+ </button>
175
+ <button type="button" @click="reset()" class="btn btn-warning" style="width:80px; margin-left:50px;">
176
+ 取消
177
+ </button>
178
+ </center>
179
+ </div>
180
+ </div>
181
+ <billgzkmakeinfo v-show="false" :billselect="model" :selectone="改装卡" v-ref:billgzkmakeinfo></billgzkmakeinfo>
182
+ </div>
183
+ </validator>
184
+ </template>
185
+ <script>
186
+ import {HttpResetClass} from 'vue-client'
187
+
188
+ export default {
189
+ title: "基本信息",
190
+ props: {
191
+ selectdata: {
192
+ type: Object,
193
+ default: {}
194
+ }
195
+ },
196
+ data() {
197
+ return {
198
+ fapplytype: this.$appdata.getParam('报装类型'),
199
+ fcredentials: this.$appdata.getParam('证件类型'),
200
+ fhousetype: this.$appdata.getParam('房屋类型'),
201
+ fcustomertype: this.$appdata.getParam('客户类型'),
202
+ model: {},
203
+ flag: null,
204
+ }
205
+ },
206
+ props: ['selectdata','edit'],
207
+ ready() {
208
+ console.log("开始")
209
+ this.model = Object.assign({}, this.model, this.selectdata)
210
+ },
211
+ methods: {
212
+ async confirm() {
213
+ this.model.f_user_type = ' ' //这句是为了避免调saveApplyNext.logic时报错
214
+ // 改装报建,先打印改装卡,再去保存信息
215
+ if (this.model.f_apply_type === '改装报建') {
216
+ if (this.model.f_apply_remarks) {
217
+ this.getModel();
218
+ this.$refs.billgzkmakeinfo.$refs.billqrk.billselect = this.model
219
+ this.flag = this.$refs.billgzkmakeinfo.$refs.billqrk.load()
220
+ setTimeout(() => {
221
+ this.$refs.billgzkmakeinfo.$refs.billqrk.$refs.page2.$refs.querenka.$refs.reportprint.print()
222
+ }, 5000)
223
+ this.$refs.billgzkmakeinfo.updateNumber()
224
+ } else {
225
+ this.$showMessage("请填写改装原因")
226
+ return
227
+ }
228
+ }
229
+ var proName = this.model.f_project_name
230
+ //工程名唯一性判断
231
+ if(!this.selectdata.f_project_name){
232
+ this.$resetpost('rs/sql/findByProName', {data: {proName: proName}}, {
233
+ resolveMsg: null,
234
+ rejectMsg: '提交错误!'
235
+ }).then((res) => {
236
+ console.log('>>>>>>>>>>>>>>查询结果<<<<<<<<<<<<<<<', res)
237
+ if (res.data.length > 0) {
238
+ this.$showMessage("工程名不能重复!")
239
+ flag = false
240
+ } else {
241
+ this.getModel();
242
+ this.workflow()
243
+ }
244
+ })
245
+ }
246
+
247
+ },
248
+ workflow() {
249
+ var phoneReg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/ //手机号码正则
250
+ var regex = /.*?[\u4e00-\u9fa5].*?[\u4e00-\u9fa5].*/
251
+ var telReg = /0\d{2,3}-\d{7,8}/ //座机正则
252
+ var officerReg = /^[a-zA-Z0-9]{7,21}$/ //军官证
253
+ var idReg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i //身份证
254
+ var busReg = /(^(?:(?![IOZSV])[\dA-Z]){2}\d{6}(?:(?![IOZSV])[\dA-Z]){10}$)|(^\d{15}$)/ //营业执照
255
+ if (!this.model.f_user_name) {
256
+ this.$showMessage("客户名称不能为空!")
257
+ return false
258
+ } else if (!regex.test(this.model.f_user_name)) {
259
+ this.$showMessage("客户名称请输入至少两个汉字!")
260
+ this.model.f_user_name = ''
261
+ return false
262
+ }
263
+ if (!this.model.f_project_name) {
264
+ this.$showMessage("工程名称不能为空!")
265
+ return false
266
+ }
267
+ //先选证件类型再判断证件号
268
+ if (!this.model.f_credentials || this.model.f_credentials.length == 0) {
269
+ this.$showMessage("请选择证件类型!")
270
+ return false
271
+ } else if (!this.model.f_idnumber) {
272
+ this.$showMessage("证件号码不能为空!")
273
+ return false
274
+ } else if (this.model.f_credentials == '军官证') {
275
+ if (!officerReg.test(this.model.f_idnumber)) {
276
+ this.$showMessage("请输入正确的军官证号码!")
277
+ return false
278
+ }
279
+ } else if (this.model.f_credentials == '营业执照') {
280
+ if (!busReg.test(this.model.f_idnumber)) {
281
+ this.$showMessage("请输入正确的营业执照号码!")
282
+ return false
283
+ }
284
+ } else if (this.model.f_credentials == '身份证') {
285
+ if (!idReg.test(this.model.f_idnumber)) {
286
+ this.$showMessage("请输入正确的身份证号码!")
287
+ return false
288
+ }
289
+ }
290
+ if (!this.model.f_phone) {
291
+ this.$showMessage("电话号码不能为空!")
292
+ return false
293
+ } else if (!phoneReg.test(this.model.f_phone) && !telReg.test(this.model.f_phone)) {
294
+ this.$showMessage("请输入正确的电话号码!")
295
+ return false
296
+ }
297
+ if (!this.model.f_customer_type || this.model.f_customer_type.length == 0) {
298
+ this.$showMessage("请选择客户类型!")
299
+ return false
300
+ }
301
+ if (!this.model.f_company_name) {
302
+ this.$showMessage("用户单位不能为空!")
303
+ return false
304
+ }
305
+ if (!this.model.f_address) {
306
+ this.$showMessage("地址不能为空")
307
+ return false
308
+ }
309
+ console.log('11', this.uuid);
310
+ if (!this.model.f_apply_type || this.model.f_apply_type.length == 0) {
311
+ this.$showMessage("请选择报装类型!")
312
+ return false
313
+ } else {
314
+ this.model.f_apply_type = this.model.f_apply_type
315
+ let fileInfoData = this.$parent.$parent.$parent.$parent.$refs.file.fileInfoData
316
+ let recordmessage = this.$parent.$parent.$parent.$parent.$refs.record.model.rows
317
+ let materialmessage = this.$parent.$parent.$parent.$parent.$refs.material.model.rows
318
+ for (var i = 0; i < materialmessage.length; i++) {
319
+ materialmessage[i].id = Number(materialmessage[i].id)
320
+ materialmessage[i].f_quantity = Number(materialmessage[i].f_quantity)
321
+ materialmessage[i].f_price = Number(materialmessage[i].f_price)
322
+ materialmessage[i].f_money = Number(materialmessage[i].f_money)
323
+ }
324
+ let buildingmessage = []
325
+ if (this.$parent.$parent.$parent.$parent.$refs.building) {
326
+ buildingmessage = this.$parent.$parent.$parent.$parent.$refs.building.model.rows
327
+ }
328
+ let equipmentmessage = []
329
+ if (this.$parent.$parent.$parent.$parent.flagg) {
330
+ equipmentmessage = this.$parent.$parent.$parent.$parent.$refs.equipment.devicesinfo
331
+ if (equipmentmessage.length != 0 && equipmentmessage[0].id == null) {
332
+ equipmentmessage = []
333
+ }
334
+ for (var i = 0; i < equipmentmessage.length; i++) {
335
+ equipmentmessage[i].f_devices_type = typeof equipmentmessage[i].f_devices_type === 'object' ? equipmentmessage[i].f_devices_type[0] : equipmentmessage[i].f_devices_type
336
+ }
337
+ }
338
+ let data = {
339
+ model: this.model,
340
+ fileinfodata: fileInfoData,
341
+ recordmessage: recordmessage,
342
+ materialmessage: materialmessage,
343
+ equipmentmessage: equipmentmessage,
344
+ buildingmessage: buildingmessage,
345
+ loginUser: {
346
+ id: this.$login.f.id,
347
+ name: this.$login.f.name,
348
+ ename: this.$login.f.ename
349
+ }
350
+ }
351
+ data.model.f_apply_type+='流程'
352
+ let http = new HttpResetClass()
353
+ http.load('POST', `rs/logic/saveapplynext`, {data: data})
354
+ .then((res) => {
355
+ this.reset()
356
+ })
357
+ }
358
+ return true
359
+ },
360
+
361
+ reset() {
362
+ this.$dispatch('close')
363
+ this.$dispatch('selfsearch')
364
+ },
365
+ getModel() {
366
+ this.model.f_area = typeof this.model.f_area === 'object' ? this.model.f_area[0] : this.model.f_area ? this.model.f_area : ''
367
+ this.model.f_credentials = typeof this.model.f_credentials === 'object' ? this.model.f_credentials[0] : this.model.f_credentials ? this.model.f_credentials : ''
368
+ this.model.f_apply_type = typeof this.model.f_apply_type === 'object' ? this.model.f_apply_type[0] : this.model.f_apply_type ? this.model.f_apply_type : ''
369
+ this.model.f_residential_area = typeof this.model.f_residential_area === 'object' ? this.model.f_residential_area[0] : this.model.f_residential_area ? this.model.f_residential_area : ''
370
+ this.model.f_customer_type = typeof this.model.f_customer_type === 'object' ? this.model.f_customer_type[0] : this.model.f_customer_type ? this.model.f_customer_type : ''
371
+ // this.model.f_sub_state = ''
372
+ },
373
+
374
+ },
375
+ watch: {
376
+ 'selectdata'() {
377
+ console.log("监听selectdata")
378
+ this.model = Object.assign({}, this.selectdata, this.model)
379
+ },
380
+ 'model.f_customer_type'() {
381
+ if (this.model.f_customer_type == '企业') {
382
+ this.$parent.$parent.$parent.$parent.flagg = true
383
+ } else {
384
+ this.$parent.$parent.$parent.$parent.flagg = false
385
+ }
386
+ },
387
+
388
+ },
389
+ computed: {
390
+ village() {
391
+ let temp = []
392
+ for (var i = 0; i < this.$login.f.f_allArea.length; i++) {
393
+ temp.push({label: this.$login.f.f_allArea[i].label, value: this.$login.f.f_allArea[i].label})
394
+ }
395
+ return temp
396
+ },
397
+ allvillages() {
398
+ let temp = []
399
+ for (var i = 0; i < this.$login.f.f_allArea.length; i++) {
400
+ if (this.model.f_residential_area[0] == this.$login.f.f_allArea[i].label)
401
+ return this.$login.f.f_allArea[i].value
402
+ }
403
+ }
404
+ }
405
+ }
406
+ </script>
407
+ <style>
408
+ .formItem-required::after {
409
+ content: '*';
410
+ position: absolute;
411
+ font-size: 20px;
412
+ margin-top: 3.5%;
413
+ margin-left: 3%;
414
+ color: #d91118;
415
+ }
416
+ </style>