sale-client 4.2.79 → 4.2.81

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 (65) hide show
  1. package/build/dev-server.js +52 -30
  2. package/index.html +7 -2
  3. package/package.json +1 -1
  4. package/src/App.vue +1 -1
  5. package/src/components/revenue/HandManager/MeterBookUser.vue +726 -726
  6. package/src/components/revenue/comprehen/ComprehenOperation/QrPay/QrPaymentDetailed.vue +423 -423
  7. package/src/components/revenue/comprehen/Maintenance/hand/handOperate.vue +469 -469
  8. package/src/components/revenue/machineHandManage/ArrearsQuery.vue +938 -938
  9. package/src/filiale/alashan/eticket/EticketRecordList.vue +428 -428
  10. package/src/filiale/bayan/ChargeList.vue +1010 -1010
  11. package/src/filiale/bayan/StockListmain.vue +543 -543
  12. package/src/filiale/bazhong/UserInfoDetailManageNew.vue +245 -245
  13. package/src/filiale/bazhong/ic_detail/ChangeMeterQueryUser.vue +370 -370
  14. package/src/filiale/bazhong/sale.js +8 -8
  15. package/src/filiale/beifangshiye/FilesManage/UserEssentialInfoTest.vue +668 -0
  16. package/src/filiale/beifangshiye/OtherChargeNew.vue +625 -625
  17. package/src/filiale/beifangshiye/sale.js +2 -0
  18. package/src/filiale/lixianV3/ArrearsQuery.vue +938 -938
  19. package/src/filiale/lixianV3/InsuranceChargesDetails.vue +425 -425
  20. package/src/filiale/meihekou/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +281 -281
  21. package/src/filiale/ronghao/ArrearsQuery.vue +974 -974
  22. package/src/filiale/ronghao/CardMeterCenter.vue +1 -1
  23. package/src/filiale/ronghao/CardService.js +2144 -2144
  24. package/src/filiale/ronghao/IOTMeterCenter.vue +1 -1
  25. package/src/filiale/ronghao/InsuranceManage.vue +58 -58
  26. package/src/filiale/ronghao/MachineChargeService.js +149 -149
  27. package/src/filiale/ronghao/NoCardMeterCenter.vue +1 -1
  28. package/src/filiale/ronghao/PaymentCode.vue +174 -174
  29. package/src/filiale/ronghao/PriceChangeCompensation/CompensationManage.vue +26 -26
  30. package/src/filiale/ronghao/PriceChangeCompensation/IotCompensation.vue +318 -318
  31. package/src/filiale/ronghao/PriceChangeCompensation/JbCompensation.vue +343 -343
  32. package/src/filiale/ronghao/PriceChangeCompensation/SurplusRecordDetail.vue +74 -74
  33. package/src/filiale/ronghao/ReplaceCardManage.vue +415 -415
  34. package/src/filiale/ronghao/Upload.vue +654 -654
  35. package/src/filiale/ronghao/cardDown.vue +1141 -1141
  36. package/src/filiale/ronghao/changemeterOperate.vue +315 -315
  37. package/src/filiale/ronghao/fillgasSpecific.vue +313 -313
  38. package/src/filiale/ronghao/ic_detail/ChargeRecordQuery.vue +106 -106
  39. package/src/filiale/ronghao/ic_detail/WatchCollection.vue +115 -115
  40. package/src/filiale/ronghao/ic_detail/WebHandQueryUser.vue +411 -411
  41. package/src/filiale/ronghao/machineDown.vue +1176 -1176
  42. package/src/filiale/ronghao/replacementSingleInfoOperation.vue +315 -315
  43. package/src/filiale/ronghao/specificInformation.vue +537 -537
  44. package/src/filiale/yangchun/ChargeList.vue +954 -954
  45. package/src/filiale/yuncheng/changemeterListMaintain.vue +504 -504
  46. package/src/filiale/zhongsheng/BlackListList.vue +293 -293
  47. package/src/filiale/zhongyi/HandQueryUser.vue +389 -389
  48. package/src/main.js +3 -3
  49. package/src/plugins/FileManageService.js +1 -0
  50. package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
  51. package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
  52. package/.gradle/5.2.1/gc.properties +0 -0
  53. package/.gradle/8.5/checksums/checksums.lock +0 -0
  54. package/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock +0 -0
  55. package/.gradle/8.5/dependencies-accessors/gc.properties +0 -0
  56. package/.gradle/8.5/executionHistory/executionHistory.bin +0 -0
  57. package/.gradle/8.5/executionHistory/executionHistory.lock +0 -0
  58. package/.gradle/8.5/fileChanges/last-build.bin +0 -0
  59. package/.gradle/8.5/fileHashes/fileHashes.bin +0 -0
  60. package/.gradle/8.5/fileHashes/fileHashes.lock +0 -0
  61. package/.gradle/8.5/gc.properties +0 -0
  62. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  63. package/.gradle/buildOutputCleanup/cache.properties +0 -2
  64. package/.gradle/file-system.probe +0 -0
  65. package/.gradle/vcs-1/gc.properties +0 -0
@@ -0,0 +1,668 @@
1
+ <template>
2
+ <div id="UserEssential">
3
+ <validator name='v' @valid="$emit('valid')" @invalid="$emit('invalid')">
4
+ <form class="form-horizontal select-overspread ">
5
+ <div class="row">
6
+ <div class="col-sm-4 form-group " :class="[$v.f_user_name.required ? 'has-error' : '']"
7
+ v-if="getConfigShowItem('f_user_name')">
8
+ <label for="f_user_name"
9
+ class="font_normal_body">*{{ getConfigLabelName('f_user_name', '用户姓名') }}</label>
10
+ <input type="text" v-model="baseinfo.base.f_user_name"
11
+ v-validate:f_user_name='getConfigValidate("f_user_name",true)'
12
+ class="input_search" style="width:60%" :placeholder="getConfigPlaceholder('f_user_name','用户姓名')"
13
+ v-next-el="phone">
14
+ </div>
15
+ <div style="" class="col-sm-4 form-group"
16
+ :class="[$v.f_user_phone.minlength || $v.f_user_phone.maxlength ? 'has-error' : '']"
17
+ v-if="getConfigShowItem('f_user_phone')">
18
+ <label for="f_user_phone"
19
+ class="font_normal_body">*{{ getConfigLabelName('f_user_phone', '客户电话') }}</label>
20
+ <input type="text" maxlength="11" v-model="baseinfo.base.f_user_phone"
21
+ v-validate:f_user_phone=getConfigValidate("f_user_phone") class="input_search" style="width:55%"
22
+ :placeholder="getConfigPlaceholder('f_user_phone','客户电话')"
23
+ v-el:phone v-next-el="area">
24
+ <button type="button" class="glyphicon glyphicon-plus" @click.stop="phoneManage()"></button>
25
+ </div>
26
+
27
+ <div style=""
28
+ v-show="(formconfig && formconfig.f_rent_phone && formconfig.f_rent_phone.required) || !onlyshowmust"
29
+ :class="[$v.f_rent_phone.required ? 'has-error' : '']"
30
+ class="col-sm-4 form-group" v-if="getConfigShowItem('f_rent_phone')">
31
+ <label for="f_rent_phone"
32
+ class="font_normal_body">&ensp;{{ getConfigLabelName('f_rent_phone', '曾用电话') }}</label>
33
+ <input type="text" v-model="baseinfo.base.f_rent_phone" class="input_search" style="width:60%"
34
+ v-validate:f_rent_phone=getConfigValidate("f_rent_phone",false)
35
+ :placeholder="getConfigPlaceholder('f_rent_phone','曾用电话')">
36
+ </div>
37
+
38
+ <div class="col-sm-4 form-group" style="" v-if="true">
39
+ <label for="f_user_state"
40
+ class="font_normal_body">&ensp;{{ getConfigLabelName('f_user_state', '客户状态') }}</label>
41
+ <v-select :value.sync="baseinfo.base.f_user_state"
42
+ :disabled="true"
43
+ :value-single="true"
44
+ :options='userstates' :placeholder="getConfigPlaceholder('f_user_state','客户状态')"
45
+ close-on-select></v-select>
46
+ </div>
47
+ <div class="col-sm-4 form-group" style="">
48
+ <label for="f_uservent_date"
49
+ class="font_normal_body">&ensp;{{ getConfigLabelName('f_uservent_date', '通气日期') }}</label>
50
+ <datepicker style="width:60%" placeholder="用户通气日期"
51
+ v-model="baseinfo.base.f_uservent_date"
52
+ v-ref:f_uservent_date
53
+ :value.sync="baseinfo.base.f_uservent_date"
54
+ :format="'yyyy-MM-dd HH:mm:ss'"
55
+ ></datepicker>
56
+ </div>
57
+ </div>
58
+ <div class="row">
59
+ <div style="" class="col-sm-4 form-group" v-if="getConfigShowItem('f_credentials')">
60
+ <label for="f_credentials"
61
+ class="font_normal_body">&ensp;{{ getConfigLabelName('f_credentials', '证件类型') }}</label>
62
+ <v-select id="idCardType" :value.sync="baseinfo.base.f_credentials"
63
+ v-model="baseinfo.base.f_credentials"
64
+ :value-single="true"
65
+ :options='credentials'
66
+ :placeholder="getConfigPlaceholder('f_credentials','证件类型')"
67
+ style="width: 65%"
68
+ close-on-select></v-select>
69
+ </div>
70
+ <div style="" class="col-sm-8 form-group"
71
+ :class="[$v.f_idnumber2.identityCardValid ? 'has-error' : '']"
72
+ v-if="baseinfo.base.f_credentials === '身份证' && config.f_idnumber ">
73
+ <label for="f_idnumber" class="font_normal_body">*证件号码</label>
74
+ <input type="text" maxlength="18" v-model="baseinfo.base.f_idnumber"
75
+ v-validate:f_idnumber2='{identityCardValid: true}' class="input_search" style="width:80%"
76
+ :placeholder="getConfigPlaceholder('f_idnumber','证件号码')">
77
+ </div>
78
+ <div style="" class="col-sm-8 form-group"
79
+ v-if="baseinfo.base.f_credentials !== '身份证' || !config.f_idnumber ">
80
+ <label class="font_normal_body">&ensp;证件号码</label>
81
+ <input type="text" v-model="baseinfo.base.f_idnumber" class="input_search" style="width:80%"
82
+ :placeholder="getConfigPlaceholder('f_idnumber','证件号码')">
83
+ </div>
84
+ </div>
85
+ <div class="row">
86
+ <div class="col-sm-12 form-group" :class="[$v.f_address.required ? 'has-error' : '']">
87
+ <label for="f_address" class="font_normal_body">*地址信息</label>
88
+ <input type="text" v-model="addressinfo.f_address" :value.sync="addressinfo.f_address"
89
+ v-validate:f_address='{required: true }'
90
+ class="input_search" disabled="disabled" style="width:70%;" placeholder="用户地址">
91
+ <span>
92
+ <button class="button_search button_spacing" type="button" style="width: max-content" v-if="!isedit"
93
+ @click="selectaddress()">选择地址</button>
94
+ <!-- <button class="button_search button_spacing" type="button" style="width: max-content" v-if="isedit" @click="modifyaddress()">修改地址</button>-->
95
+ <button class="button_search button_spacing" type="button" style="width: max-content" v-if="isedit"
96
+ @click="selectaddress()">修改地址</button>
97
+ </span>
98
+ </div>
99
+ </div>
100
+ <div class="row">
101
+ <div style=""
102
+ v-show="(formconfig && formconfig.f_used_name && formconfig.f_used_name.required) || !onlyshowmust"
103
+ :class="[$v.f_used_name.required ? 'has-error' : '']"
104
+ class="col-sm-4 form-group" v-if="getConfigShowItem('f_used_name')">
105
+ <label style="letter-spacing: 0.5em;margin-right: -0.5em" for="f_used_name"
106
+ class="font_normal_body w3">{{ getConfigLabelName('f_used_name', '曾用名') }}</label>
107
+ <input type="text" v-model="baseinfo.base.f_used_name" class="input_search" style="width:60%"
108
+ v-validate:f_used_name=getConfigValidate("f_used_name",false)
109
+ :placeholder="getConfigPlaceholder('f_used_name','曾用名')">
110
+ </div>
111
+ <div class="col-sm-4 form-group"
112
+ v-show="(formconfig && formconfig.f_people_num && formconfig.f_people_num.required) || !onlyshowmust"
113
+ :class="[$v.f_people_num.dctest ? 'has-error' : '']" v-if="getConfigShowItem('f_people_num')">
114
+ <label for="f_people_num" style="letter-spacing: 0.5em;margin-right: -0.5em"
115
+ class="font_normal_body w3">{{ getConfigLabelName('f_people_num', '人口数') }}</label>
116
+ <input type="number" v-model="baseinfo.base.f_people_num" v-show="!peopleMax"
117
+ v-validate:f_people_num='{dctest: [0, ">=" ]}'
118
+ :disabled="!jurisdiction.includes('修改人口数')" class="input_search" style="width:60%"
119
+ placeholder="家庭人口数">
120
+ <v-select id="f_people_num" :value.sync="baseinfo.base.f_people_num"
121
+ v-if="peopleMax"
122
+ v-model="baseinfo.base.f_people_num"
123
+ :value-single="true"
124
+ :options='peoplenums'
125
+ :placeholder="getConfigPlaceholder('f_people_num','家庭人口数')"
126
+ style="width: 65%"
127
+ close-on-select></v-select>
128
+ </div>
129
+ </div>
130
+ <div class="row">
131
+ <div style=""
132
+ v-show="(formconfig && formconfig.f_balance && formconfig.f_balance.required) || !onlyshowmust"
133
+ :class="[$v.f_balance.required ? 'has-error' : '']"
134
+ class="col-sm-4 form-group" v-if="getConfigShowItem('f_balance')">
135
+ <label for="f_balance"
136
+ class="font_normal_body">&ensp;{{ getConfigLabelName('f_balance', '用户余额') }}</label>
137
+ <input type="text" v-model="baseinfo.base.f_balance" class="input_search" style="width:60%"
138
+ v-validate:f_balance=getConfigValidate("f_balance",false)
139
+ :placeholder="getConfigPlaceholder('f_balance','用户余额')"
140
+ :disabled="!jurisdiction.includes('档案信息查询修改')">
141
+ </div>
142
+ <div style="" class="col-sm-4 form-group" v-if="getConfigShowItem('f_is_mgq')"
143
+ v-show="(formconfig && formconfig.f_is_mgq && formconfig.f_is_mgq.required) || !onlyshowmust"
144
+ :class="[$v.f_is_mgq.required ? 'has-error' : '']">
145
+ <label for="f_is_mgq" style="letter-spacing: 0.5em;margin-right: -0.5em"
146
+ class="font_normal_body w3">{{ getConfigLabelName('f_is_mgq', '煤改气') }}</label>
147
+ <input type="text" v-show="false" v-model="baseinfo.base.f_is_mgq"
148
+ v-validate:f_is_mgq=getConfigValidate("f_is_mgq",false)>
149
+ <v-select id="f_is_mgq" :value.sync="baseinfo.base.f_is_mgq" v-model="baseinfo.base.f_is_mgq"
150
+ :placeholder="getConfigPlaceholder('f_is_mgq','是否煤改气')"
151
+ :options='mgq' style="width: 65%" close-on-select></v-select>
152
+ </div>
153
+ <div class="col-sm-4 form-group" v-if="getConfigShowItem('f_book_no')"
154
+ v-show="(formconfig && formconfig.f_book_no && formconfig.f_book_no.required) || !onlyshowmust"
155
+ :class="[$v.f_book_no.required ? 'has-error' : '']">
156
+ <label for="f_contract"
157
+ class="font_normal_body">&ensp;{{ getConfigLabelName('f_book_no', '燃气本号') }}</label>
158
+ <input type="text" v-model="baseinfo.base.f_book_no" class="input_search" style="width:60%"
159
+ v-validate:f_book_no=getConfigValidate("f_book_no",false)
160
+ :placeholder="getConfigPlaceholder('f_book_no','用户证号')">
161
+ </div>
162
+ </div>
163
+ <div class="row">
164
+ <div style="" class="col-sm-4 form-group" v-if="getConfigShowItem('f_rent_name')"
165
+ v-show="(formconfig && formconfig.f_rent_name && formconfig.f_rent_name.required) || !onlyshowmust"
166
+ :class="[$v.f_rent_name.required ? 'has-error' : '']">
167
+ <label for="f_rent_name"
168
+ class="font_normal_body">&ensp;{{ getConfigLabelName('f_rent_name', '租户姓名') }}</label>
169
+ <input type="text" v-model="baseinfo.base.f_rent_name" class="input_search" style="width:60%"
170
+ v-validate:f_rent_name=getConfigValidate("f_rent_name",false)
171
+ :placeholder="getConfigPlaceholder('f_rent_name','租户姓名')">
172
+ </div>
173
+ <div style="" class="col-sm-4 form-group" v-if="getConfigShowItem('f_zuhu_phone')"
174
+ v-show="(formconfig && formconfig.f_zuhu_phone && formconfig.f_zuhu_phone.required) || !onlyshowmust"
175
+ :class="[$v.f_zuhu_phone.required ? 'has-error' : '']">
176
+ <label for="f_zuhu_phone"
177
+ class="font_normal_body">{{ getConfigLabelName('f_zuhu_phone', '租户电话') }}</label>
178
+ <input type="text" v-model="baseinfo.base.f_zuhu_phone" class="input_search" style="width:60%"
179
+ v-validate:f_zuhu_phone=getConfigValidate("f_zuhu_phone",false)
180
+ :placeholder="getConfigPlaceholder('f_zuhu_phone','租户电话')">
181
+ </div>
182
+ </div>
183
+ <div class="row">
184
+ <div style="" class="col-sm-8 form-group"
185
+ v-show="(formconfig && formconfig.f_zuhu_idnumber && formconfig.f_zuhu_idnumber.required) || !onlyshowmust"
186
+ v-if="getConfigShowItem('f_zuhu_idnumber')"
187
+ :class="[$v.f_zuhu_idnumber.required ? 'has-error' : '']">
188
+ <label for="f_zuhu_idnumber"
189
+ class="font_normal_body">{{ getConfigLabelName('f_zuhu_idnumber', '租户身份证') }}</label>
190
+ <input type="text" v-model="baseinfo.base.f_zuhu_idnumber" class="input_search" style="width:80%"
191
+ v-validate:f_zuhu_idnumber=getConfigValidate("f_zuhu_idnumber",false)
192
+ :placeholder="getConfigPlaceholder('f_zuhu_idnumber','租户身份证')">
193
+ </div>
194
+ <div style="" class="col-sm-4 form-group"
195
+ v-show="(formconfig && formconfig.f_cost_type && formconfig.f_cost_type.required) || !onlyshowmust"
196
+ v-if="getConfigShowItem('f_cost_type')">
197
+ <label for="f_is_mgq"
198
+ class="font_normal_body ">&ensp;{{ getConfigLabelName('f_cost_type', '付款类型') }}</label>
199
+ <v-select id="f_is_mgq" :value.sync="baseinfo.base.f_cost_type" v-model="baseinfo.base.f_cost_type"
200
+ :options='costtype'
201
+ :placeholder="getConfigPlaceholder('f_cost_type','付款类型')" style="width: 65%"
202
+ close-on-select></v-select>
203
+ </div>
204
+ </div>
205
+ <div class="row">
206
+ <div class="col-sm-8 form-group" v-if="getConfigShowItem('f_contract_id')"
207
+ v-show="(formconfig && formconfig.f_contract_id && formconfig.f_contract_id.required) || !onlyshowmust"
208
+ :class="[$v.f_contract_id.required ? 'has-error' : '']">
209
+ <label for="f_contract"
210
+ class="font_normal_body">&ensp;{{ getConfigLabelName('f_contract_id', '合同编号') }}</label>
211
+ <input type="text" v-model="baseinfo.base.f_contract_id" class="input_search" style="width:80%"
212
+ v-validate:f_contract_id=getConfigValidate("f_contract_id",false)
213
+ :placeholder="getConfigPlaceholder('f_contract_id','合同编号')">
214
+ </div>
215
+ <div class="col-sm-4 form-group" v-if="getConfigShowItem('f_house_type')"
216
+ v-show="(formconfig && formconfig.f_house_type && formconfig.f_house_type.required) || !onlyshowmust"
217
+ :class="[$v.f_house_type.required ? 'has-error' : '']">
218
+ <label for="f_user_state"
219
+ class="font_normal_body">&ensp;{{ getConfigLabelName('f_house_type', '房屋类型') }}</label>
220
+ <input type="text" v-show="false" v-model="baseinfo.base.f_house_type"
221
+ v-validate:f_house_type=getConfigValidate("f_house_type",false)>
222
+ <v-select :value.sync="baseinfo.base.f_house_type" :search="false" :value-single="true"
223
+ :options='housetype' close-on-select
224
+ :placeholder="getConfigPlaceholder('f_house_type','房屋类型')">
225
+ </v-select>
226
+ </div>
227
+ </div>
228
+ <div class="row">
229
+ <div style="" class="col-sm-4 form-group" v-if="getConfigShowItem('f_user_level')"
230
+ v-show="(formconfig && formconfig.f_user_level && formconfig.f_user_level.required) || !onlyshowmust"
231
+ :class="[$v.f_user_level.required ? 'has-error' : '']">
232
+ <label for="f_user_level"
233
+ class="font_normal_body ">&ensp;{{ getConfigLabelName('f_user_level', '用户等级') }}</label>
234
+ <input type="text" v-show="false" v-model="baseinfo.base.f_user_level"
235
+ v-validate:f_user_level=getConfigValidate("f_user_level",false)>
236
+ <v-select :value.sync="baseinfo.base.f_user_level" :search="false" :value-single="true"
237
+ :options='userlevel'
238
+ :placeholder="getConfigPlaceholder('f_user_level','用户等级')" close-on-select>
239
+ </v-select>
240
+ </div>
241
+ <div class="col-sm-4 form-group" v-if="getConfigShowItem('f_user_nature')"
242
+ v-show="(formconfig && formconfig.f_user_nature && formconfig.f_user_nature.required) || !onlyshowmust"
243
+ :class="[$v.f_user_nature.required ? 'has-error' : '']">
244
+ <label for="f_user_nature" class="font_normal_body"
245
+ title="用户性质">&ensp;{{ getConfigLabelName('f_user_nature', '用气类型') }}</label>
246
+ <input type="text" v-show="false" v-model="baseinfo.base.f_user_nature"
247
+ v-validate:f_user_nature=getConfigValidate("f_user_nature",false)>
248
+ <v-select :value.sync="baseinfo.base.f_user_nature" :search="false" :value-single="true"
249
+ :placeholder="getConfigPlaceholder('f_user_nature','用气类型')"
250
+ :options='usernature' close-on-select>
251
+ </v-select>
252
+ </div>
253
+ <div class="col-sm-4 form-group" v-if="getConfigShowItem('f_olduserinfo_code')"
254
+ v-show="(formconfig && formconfig.f_olduserinfo_code && formconfig.f_olduserinfo_code.required) || !onlyshowmust"
255
+ :class="[$v.f_olduserinfo_code.required ? 'has-error' : '']">
256
+ <label for="f_user_nature"
257
+ class="font_normal_body">&ensp;{{ getConfigLabelName('f_olduserinfo_code', '档案编号') }}</label>
258
+ <input type="text" v-model="baseinfo.base.f_olduserinfo_code" class="input_search" style="width:60%"
259
+ v-validate:f_olduserinfo_code=getConfigValidate("f_olduserinfo_code",false)
260
+ :placeholder="getConfigPlaceholder('f_olduserinfo_code','档案编号')">
261
+ </div>
262
+ <div class="col-sm-4 form-group"
263
+ v-show="(formconfig && formconfig.f_gas_pointsnumber && formconfig.f_gas_pointsnumber.required) || !onlyshowmust"
264
+ :class="[$v.f_gas_pointsnumber.dctest ? 'has-error' : '']"
265
+ v-if="getConfigShowItem('f_gas_pointsnumber')">
266
+ <label for="f_gas_pointsnumber"
267
+ class="font_normal_body">{{ getConfigLabelName('f_gas_pointsnumber', '用气点数量') }}</label>
268
+ <v-select id="f_gas_pointsnumber" :value.sync="baseinfo.base.f_gas_pointsnumber"
269
+ v-model="baseinfo.base.f_gas_pointsnumber"
270
+ :value-single="true"
271
+ :options='pointsnums'
272
+ :placeholder="getConfigPlaceholder('f_gas_pointsnumber','用气点数量')"
273
+ style="width: 65%"
274
+ close-on-select></v-select>
275
+ </div>
276
+ <div class="col-sm-4 form-group" v-if="getConfigShowItem('f_reminder_amount')"
277
+ v-show="(formconfig && formconfig.f_reminder_amount && formconfig.f_reminder_amount.required) || !onlyshowmust"
278
+ :class="[$v.f_reminder_amount.required ? 'has-error' : '']"
279
+ title="余额小于该值后,微信公众号或短信推送余额不足提醒">
280
+ <label for="f_reminder_amount"
281
+ :style="{color: baseinfo.base.f_reminder_amount === null || baseinfo.base.f_reminder_amount === '' ? 'red' : null}"
282
+ class="font_normal_body">{{ getConfigLabelName('f_reminder_amount', '提示金额') }}</label>
283
+ <input type="number" v-model="baseinfo.base.f_reminder_amount" class="input_search" style="width:60%"
284
+ v-validate:f_reminder_amount=getConfigValidate("f_reminder_amount",false)
285
+ :placeholder="getConfigPlaceholder('f_reminder_amount','提示金额')" @input="reminderAmountHandle">
286
+ </div>
287
+ <div class="col-sm-4 form-group" v-if="getConfigShowItem('f_open_date')"
288
+ v-show="(formconfig && formconfig.f_open_date && formconfig.f_open_date.required) || !onlyshowmust"
289
+ :class="[$v.f_open_date.required ? 'has-error' : '']">
290
+ <label for="f_open_date"
291
+ class="font_normal_body">{{ getConfigLabelName('f_open_date', '开户时间') }}</label>
292
+ <input type="text" v-model="baseinfo.base.f_open_date" v-show="false"
293
+ v-validate:f_open_date=getConfigValidate('f_open_date',true)>
294
+ <datepicker style="width:60%" id="ScrapDate" placeholder="开户时间" width='100%'
295
+ v-model="baseinfo.base.f_open_date"
296
+ :value.sync="baseinfo.base.f_open_date"
297
+ class="datepicker"
298
+ :format="'yyyy-MM-dd HH:mm:ss'"
299
+ :show-reset-button="true">
300
+ </datepicker>
301
+ </div>
302
+ </div>
303
+ <div class="row">
304
+ <div style="" class="col-sm-12 form-group" v-if="getConfigShowItem('f_comments')"
305
+ v-show="(formconfig && formconfig.f_comments && formconfig.f_comments.required) || !onlyshowmust"
306
+ :class="[$v.f_comments.required ? 'has-error' : '']">
307
+ <label for="f_paper_accoun"
308
+ class="font_normal_body">&ensp;{{ getConfigLabelName('f_comments', '备注') }}</label>
309
+ <input class="input_search" style="width:86.5%;height: 40px" v-model="baseinfo.base.f_comments"
310
+ :placeholder="getConfigPlaceholder('f_comments','请输入备注信息')"
311
+ v-validate:f_comments=getConfigValidate("f_comments",false)>
312
+ </div>
313
+ </div>
314
+
315
+ <div class="row" style="margin-top: 2%;">
316
+ <a style="font-size: 16px;font-weight: 500;"
317
+ v-if="baseinfo.base.f_cost_type[0] === '银行代扣'">银行信息</a>
318
+ </div>
319
+ <div v-if="baseinfo.base.f_cost_type[0] === '银行代扣'">
320
+ <div class="row">
321
+ <div class="col-sm-4 form-group"
322
+ :class="[$v.f_bank_accopen.required ? 'has-error' : '']" v-if="getConfigShowItem('f_bank_accopen')">
323
+ <label for="f_username"
324
+ class="font_normal_body">{{ getConfigLabelName('f_bank_accopen', '银行户名') }}</label>
325
+ <input type="text" v-model="baseinfo.bank.f_bank_accopen"
326
+ class="input_search" style="width:60%" id="f_username"
327
+ :placeholder="getConfigPlaceholder('f_bank_accopen','客户名称')"
328
+ v-validate:f_bank_accopen=getConfigValidate("f_bank_accopen",false)
329
+ v-next-el="bankaccount">
330
+ </div>
331
+ <div class="col-sm-4 form-group" id=userfiles-useEssInf-银行名称 v-if="getConfigShowItem('f_bank_name')"
332
+ :class="[$v.f_bank_name.required ? 'has-error' : '']">
333
+ <label for="f_username"
334
+ class="font_normal_body ">{{ getConfigLabelName('f_bank_name', '银行名称') }}</label>
335
+ <input type="text" v-show="false" v-model="baseinfo.base.f_bank_name"
336
+ v-validate:f_bank_name=getConfigValidate("f_bank_name",false)>
337
+ <v-select :value.sync="baseinfo.bank.f_bank_name"
338
+ :options='banknames'
339
+ :placeholder="getConfigPlaceholder('f_bank_name','银行名称')"
340
+ close-on-select></v-select>
341
+ </div>
342
+ <div class="col-sm-4 form-group" v-if="getConfigShowItem('f_bank_pay_number')"
343
+ :class="[$v.f_bank_pay_number.required ? 'has-error' : '']">
344
+ <label for="f_bank_idnumber"
345
+ class="font_normal_body">{{ getConfigLabelName('f_bank_pay_number', '缴费编号') }}</label>
346
+ <input type="text" v-model="baseinfo.bank.f_bank_pay_number"
347
+ class="input_search" style="width:60%"
348
+ v-validate:f_bank_pay_number=getConfigValidate("f_bank_pay_number",false)
349
+ :placeholder="getConfigPlaceholder('f_bank_pay_number','缴费编号')"
350
+ aria-describedby="helpBlock" v-el:bankpaynumber>
351
+ </div>
352
+ <div class="col-sm-12 form-group" v-if="getConfigShowItem('f_bank_idnumber')"
353
+ :class="[$v.f_bank_idnumber.required ? 'has-error' : '']">
354
+ <label for="f_bank_idnumber"
355
+ class="font_normal_body">{{ getConfigLabelName('f_bank_idnumber', '身份证号') }}</label>
356
+ <input type="text" v-model="baseinfo.bank.f_bank_idnumber"
357
+ class="input_search" style="width:54%"
358
+ :placeholder="getConfigPlaceholder('f_bank_idnumber','身份证号')"
359
+ v-validate:f_bank_idnumber=getConfigValidate("f_bank_idnumber",false)
360
+ aria-describedby="helpBlock" v-el:bankidnumber>
361
+ </div>
362
+ <div class="col-sm-12 form-group"
363
+ :class="[$v.f_bank_account.required ? 'has-error' : '']" v-if="getConfigShowItem('f_bank_account')">
364
+ <label for="f_userid"
365
+ class="font_normal_body">{{ getConfigLabelName('f_bank_account', '银行账号') }}</label>
366
+ <input type="text" v-model="baseinfo.bank.f_bank_account" class="input_search" style="width:54%"
367
+ v-validate:f_bank_account=getConfigValidate("f_bank_account",true) v-el:bankaccount
368
+ :placeholder="getConfigPlaceholder('f_bank_account','银行账号')"
369
+ v-next-el="bankidnumber">
370
+ </div>
371
+ </div>
372
+ </div>
373
+ </form>
374
+ </validator>
375
+ <modal v-if="showselectaddress" :show.sync="showselectaddress" width="50%" height="80%" title="地址信息" v-ref:modal
376
+ large backdrop="false">
377
+ <article slot="modal-body" class="modal-body" style="height: 700px;padding: 0!important;">
378
+ <file-address-manage :is-select="isSelect" :fileinfo="addressinfo"
379
+ @address-valid="doNothing" :showselectaddress.sync="showselectaddress"
380
+ v-ref:fileaddress></file-address-manage>
381
+ </article>
382
+ <footer slot="modal-footer" class="modal-footer">
383
+ </footer>
384
+ </modal>
385
+ <file-user-phone :show.sync="showphone" :userphonelist="userphonelist"
386
+ :f_userinfo_id="baseinfo.base.f_userinfo_id"></file-user-phone>
387
+ </div>
388
+ </template>
389
+
390
+ <script>
391
+ import {HttpResetClass} from 'vue-client'
392
+
393
+ let getEditUserState = async function (self) {
394
+ try {
395
+ let http = new HttpResetClass()
396
+ let result = await http.load('GET', `rs/vue/EditUserState.json`, {}, {resolveMsg: null, rejectMsg: null})
397
+ console.log(result.data.EditUserState)
398
+ self.edituserstate = result.data.EditUserState
399
+ Object.assign(self.config, result.data)
400
+ } catch (e) {
401
+ console.log(e)
402
+ }
403
+ }
404
+
405
+ export default {
406
+ title: '基本信息',
407
+ props: ['baseinfo', 'addressinfo', 'isedit', 'userphonelist', 'formconfig', 'onlyshowmust'],
408
+ data () {
409
+ return {
410
+ showselectaddress: false,
411
+ site: '',
412
+ config: {
413
+ f_idnumber: true
414
+ },
415
+ showphone: false,
416
+ areas: [],
417
+ streets: [],
418
+ residentials: [],
419
+ inputtores: this.$appdata.getParam('抄表员'),
420
+ credentials: this.$appdata.getParam('证件类型'),
421
+ costtypes: this.$appdata.getParam('缴费类型'),
422
+ banknames: this.$appdata.getParam('银行名称'),
423
+ userstates: this.$appdata.getParam('用户状态'),
424
+ mgq: this.$appdata.getParam('是否煤改气'),
425
+ peopleMax: this.$appdata.getSingleValue('最大人口数'),
426
+ pointsMax: this.$appdata.getSingleValue('最大用气点数量'),
427
+ costtype: this.$appdata.getParam('付款类型'),
428
+ usernature: this.$appdata.getParam('用户性质'),
429
+ userlevel: this.$appdata.getParam('用户等级'),
430
+ housetype: this.$appdata.getParam('房屋类型'),
431
+ jurisdiction: this.$login.r,
432
+ edituserstate: false,
433
+ // highMeterPlugin: {},
434
+ readCardFlag: true,
435
+
436
+ isSelect: false,
437
+ rules: {}
438
+ }
439
+ },
440
+ ready () {
441
+ getEditUserState(this)
442
+ this.$resetValidation()
443
+ // this.highMeterPlugin = new HighMeter(this,this.readIDCardCallback)
444
+ },
445
+ beforeDestroy () {
446
+ // this.highMeterPlugin.Stop()
447
+ },
448
+ methods: {
449
+ reminderAmountHandle (e) {
450
+ this.$emit('input', e.target.value)
451
+ e.target.value = (e.target.value.match(/^\d*(\.?\d{0,1})/g)[0]) || null
452
+ this.baseinfo.base.f_reminder_amount = parseInt(e.target.value, 10)
453
+ },
454
+ getConfigValidate (name, defaultVal) {
455
+ this.$resetValidation()
456
+ if (this.formconfig && this.formconfig[name]) {
457
+ let Validate = {}
458
+ if (this.formconfig[name].required) {
459
+ Object.assign(Validate, {required: true})
460
+ }
461
+ if (this.formconfig[name].minlength || this.formconfig[name].minlength === 0) {
462
+ Object.assign(Validate, {minlength: this.formconfig[name].minlength})
463
+ }
464
+ if (this.formconfig[name].maxlength) {
465
+ Object.assign(Validate, {maxlength: this.formconfig[name].maxlength})
466
+ }
467
+ return Validate
468
+ } else if (name === 'f_user_phone') {
469
+ return {minlength: 11, maxlength: 11}
470
+ } else if (defaultVal) {
471
+ return {required: defaultVal}
472
+ }
473
+ return {}
474
+ },
475
+ getConfigShowItem (name, defaultVal = true) {
476
+ if (this.formconfig && this.formconfig[name] && this.formconfig[name].hasOwnProperty('showItem')) {
477
+ return this.formconfig[name].showItem
478
+ } else {
479
+ return defaultVal
480
+ }
481
+ },
482
+ getConfigLabelName (name, defaultVal) {
483
+ if (this.formconfig && this.formconfig[name] && this.formconfig[name].labelName) {
484
+ return this.formconfig[name].labelName
485
+ } else {
486
+ return defaultVal
487
+ }
488
+ },
489
+ getConfigPlaceholder (name, defaultVal) {
490
+ if (this.formconfig && this.formconfig[name] && this.formconfig[name].placeholder) {
491
+ return this.formconfig[name].placeholder
492
+ } else {
493
+ return defaultVal
494
+ }
495
+ },
496
+ selectaddress () {
497
+ this.showselectaddress = true
498
+ this.isSelect = true
499
+ },
500
+ modifyaddress () {
501
+ this.showselectaddress = true
502
+ this.isSelect = false
503
+ },
504
+ onValid (res) {
505
+ this.$dispatch('valid')
506
+ },
507
+ onInvalid (res) {
508
+ this.$dispatch('invalid')
509
+ },
510
+ doNothing () {
511
+ },
512
+ readIDCardCallback (compoent, msg) {
513
+ console.log('进入高拍仪', msg)
514
+ if (msg.err !== 0) {
515
+ return
516
+ }
517
+ // document.getElementById("idCardType").getElementsByClassName("btn-content")[0].innerHTML="身份证"
518
+ compoent.baseinfo.base.f_idnumber = msg.strID
519
+ compoent.baseinfo.base.f_user_name = msg.strName.trim()
520
+ // compoent.baseinfo.base.f_credentials=["身份证"]
521
+ },
522
+ phoneManage () {
523
+ this.showphone = true
524
+ console.log('查看用户备用电话信息', this.userphonelist)
525
+ }
526
+ },
527
+ watch: {
528
+ 'baseinfo.base.f_userinfo_id' (val) {
529
+ if (this.formconfig.f_reminder_amount != null) {
530
+ if (this.baseinfo.base.f_reminder_amount === null && this.formconfig.f_reminder_amount.required) {
531
+ this.$showAlert('当前用户还未设置余额提示金额,请在提示金额字段进行设置', 'warning', 3000)
532
+ }
533
+ }
534
+ },
535
+ // 重置验证结果,当证件类型切换时,验证结果不能立即刷新,需要重置
536
+ 'baseinfo.base.f_credentials[0]' () {
537
+ console.log('验证器重置')
538
+ this.$resetValidation()
539
+ },
540
+ 'baseinfo.base.f_cost_type[0]' () {
541
+ console.log('验证器重置')
542
+ this.$resetValidation()
543
+ }
544
+ // 当选择销户,需要给其提醒是否进行销户
545
+ // 'baseinfo.base.f_user_state'(val) {
546
+ // // if (val[0] === '销户') {
547
+ // // this.$showMessage('是否要对该客户进行销户操作?', ['confirm', 'cancel']).then((res) => {
548
+ // // if (res !== 'confirm') {
549
+ // // this.baseinfo.base.f_user_state = ['正常']
550
+ // // }
551
+ // // })
552
+ // // }
553
+ // }
554
+ },
555
+ computed: {
556
+ peoplenums () {
557
+ let peopleMax = this.$appdata.getSingleValue('最大人口数') ? this.$appdata.getSingleValue('最大人口数') : 0
558
+ let nums = []
559
+ for (let i = 1; i <= peopleMax; i++) {
560
+ let temp = {}
561
+ temp.label = i
562
+ temp.value = i
563
+ nums.push(temp)
564
+ }
565
+ return nums
566
+ },
567
+ pointsnums () {
568
+ let pointsMax = this.$appdata.getSingleValue('最大用气点数量') ? this.$appdata.getSingleValue('最大用气点数量') : 10
569
+ let nums = []
570
+ for (let i = 1; i <= pointsMax; i++) {
571
+ let temp = {}
572
+ temp.label = i
573
+ temp.value = i
574
+ nums.push(temp)
575
+ }
576
+ return nums
577
+ }
578
+ },
579
+ events: {
580
+ 'confirmaddress' (res) {
581
+ console.log('选定地址', res)
582
+ this.showselectaddress = false
583
+ this.addressinfo.f_address = res.f_address
584
+ this.addressinfo.id = res.id
585
+ this.$dispatch('defaultOtheret', res)
586
+ }
587
+ }
588
+ }
589
+ </script>
590
+ <style scoped lang="less">
591
+ // 两个字符占用4个字符距离
592
+ .w2 {
593
+ letter-spacing: 2em; /*如果需要y个字两端对齐,则为(x-y)/(y-1),这里是(4-2)/(2-1)=2em */
594
+ margin-right: -2em; /*同上*/
595
+ }
596
+
597
+ // 三个字符占用4个字符距离
598
+ .w3 {
599
+ letter-spacing: 0.5em;
600
+ margin-right: -0.5em
601
+ }
602
+
603
+ #UserEssential {
604
+ // 去掉number类型输入框的上下箭头
605
+ input[type="number"] {
606
+ &::-webkit-inner-spin-button,
607
+ &::-webkit-outer-spin-button {
608
+ -webkit-appearance: none;
609
+ margin: 0;
610
+ }
611
+
612
+ & {
613
+ -moz-appearance: textfield;
614
+ }
615
+ }
616
+
617
+ #addboxmap {
618
+ height: 300px;
619
+ }
620
+
621
+ .glyphicon-map-marker:hover {
622
+ color: red;
623
+ }
624
+
625
+ .glyphicon-map-marker {
626
+ color: blue;
627
+ cursor: pointer;
628
+ }
629
+
630
+ .scrollbar() {
631
+ .font_normal_body {
632
+ width: 73px;
633
+ overflow: auto;
634
+ white-space: nowrap;
635
+ // 指滚动条两边的按钮
636
+ &::-webkit-scrollbar-button {
637
+ display: none;
638
+ }
639
+
640
+ // 滚动条的宽度
641
+ &::-webkit-scrollbar {
642
+ width: 5px !important;
643
+ height: 5px !important;
644
+ }
645
+
646
+ // 滚动条的设置
647
+ &::-webkit-scrollbar-thumb {
648
+ background-color: #ddd;
649
+ background-clip: padding-box;
650
+ }
651
+
652
+ &::-webkit-scrollbar-thumb:hover {
653
+ background-color: #bbb;
654
+ }
655
+
656
+ &::-webkit-scrollbar-track {
657
+ /*滚动条里面轨道*/
658
+ box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
659
+ background: #ededed;
660
+ }
661
+ }
662
+ }
663
+
664
+ .col-sm-4, .col-sm-12, .col-sm-8 {
665
+ .scrollbar();
666
+ }
667
+ }
668
+ </style>