sale-client 4.2.23 → 4.2.25

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "4.2.23",
3
+ "version": "4.2.25",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -345,8 +345,14 @@
345
345
  <label for="f_adjustable" class="font_normal_body" style="width: auto;letter-spacing: 0.5em;margin-right: -0.5em;margin-left: -0.5em">&ensp;{{getConfigLabelName('f_adjustable','调压箱')}}</label>
346
346
  <input type="text" v-model="row.f_adjustable" v-show="false"
347
347
  v-validate:f_adjustable=getConfigValidate("f_adjustable",false)>
348
- <v-select :value.sync="row.f_adjustable" :options='adjustables' placeholder='调压箱' close-on-select
349
- v-model='row.f_adjustable' :search='true'></v-select>
348
+ <v-select :value.sync="row.f_adjustable"
349
+ :options='adjustables'
350
+ placeholder='调压箱'
351
+ close-on-select
352
+ @select-search="getAdjustables"
353
+ v-model='row.f_adjustable'
354
+ :search='true'>
355
+ </v-select>
350
356
  </div>
351
357
  <div class="col-sm-4 form-group" :class="[$m.f_hand_date.required ? 'has-error' : '']"
352
358
  v-show="(formconfig && formconfig.f_hand_date && formconfig.f_hand_date.required) || !onlyshowmust"
@@ -720,6 +726,7 @@
720
726
  opteratormetrbook: false, // 抄表册操作
721
727
  oldrow: [],
722
728
  overdueset: [],
729
+ adjustables: [],
723
730
  isiot: true,
724
731
  meterNumberDisabled: false,
725
732
  meterChangeDisabled: this.$appdata.getSingleValue('建档后禁止更改表号') ? this.$appdata.getSingleValue('建档后禁止更改表号') : false,
@@ -757,8 +764,26 @@
757
764
  }
758
765
  await this.getConcentrators()
759
766
  co(meterBookGen(this))
767
+ this.getAdjustables()
760
768
  },
761
769
  methods: {
770
+ async getAdjustables (searchText) {
771
+ let condition = `f_orgid = '${this.$login.f.orgid}'`
772
+ if (searchText) {
773
+ condition = condition + ` and (f_adjustable_name like '%${searchText}%' or f_adjustable_id like '%${searchText}%')`
774
+ }
775
+ let data = {
776
+ items: 'id,f_adjustable_name,f_adjustable_id',
777
+ tablename: 't_adjustablebox',
778
+ condition: condition,
779
+ orderitem: 'id desc'
780
+ }
781
+ let result = await this.$resetpost('rs/sql/singleTable_OrderBy?pageNo=1&pageSize=100', {data: data}, {resolveMsg: null, rejectMsg: '获取集中器失败!'})
782
+ this.adjustables = [{label: '全部', value: ''}]
783
+ for (let row of result.data) {
784
+ this.adjustables.push({label: `[${row.f_adjustable_id}]-${row.f_adjustable_name}`, value: row})
785
+ }
786
+ },
762
787
  validateInput (event, key) {
763
788
  const value = event.target.value
764
789
  const sanitizedValue = value.replace(/[^0-9.]/g, '')
@@ -1090,17 +1115,6 @@
1090
1115
  return Array.from(new Set(result))
1091
1116
  },
1092
1117
 
1093
- adjustables () {
1094
- let arr = []
1095
- let filter = this.f_filialeid
1096
- this.$GetSaleParam.getAdjustable(filter).forEach((item) => {
1097
- let temp = {}
1098
- temp.label = `[${item.value.f_adjustable_id}]-${item.label}`
1099
- temp.value = item.value
1100
- arr.push(temp)
1101
- })
1102
- return [{label: '全部', value: ''}, ...arr]
1103
- },
1104
1118
  inputtores () {
1105
1119
  // return this.$login.f.f_gasman
1106
1120
  let rs = new Array()
@@ -89,13 +89,29 @@
89
89
  </thead>
90
90
  <tbody>
91
91
  <tr v-show="nextCheckDateShow">
92
- <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">下次安检时间:</td>
92
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">本次安检时间:</td>
93
93
  <td colspan="3" :style=style>{{ model.f_next_check_date }}</td>
94
94
  </tr>
95
95
  <tr>
96
96
  <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">上次安检时间:</td>
97
97
  <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;">{{ model.f_last_check_date }}</td>
98
98
  </tr>
99
+ <tr>
100
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">上次安检结果:</td>
101
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;">{{ lastDefectResult }}</td>
102
+ </tr>
103
+ <tr>
104
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">上次是否有隐患:</td>
105
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;">{{ lastDefectResult === '有隐患' ? '是' : '否' }}</td>
106
+ </tr>
107
+ <tr>
108
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">上次隐患名称:</td>
109
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;">{{ model.f_last_defect_text }}</td>
110
+ </tr>
111
+ <tr>
112
+ <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">上次处理结果:</td>
113
+ <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;">{{ model.f_last_repaired === '已修' ? '已处理' : '未处理' }}</td>
114
+ </tr>
99
115
  <tr>
100
116
  <td colspan="1" style="text-align: center;border: #E9E9E9 solid 1px;">安检员:</td>
101
117
  <td colspan="3" style="text-align: center;border: #E9E9E9 solid 1px;">{{model.f_checker_name}}</td>
@@ -289,11 +305,28 @@
289
305
  }
290
306
  },
291
307
  computed: {
292
- inspectionResult() {
308
+ inspectionResult () {
293
309
  if (this.model.safecheckitem == null || this.model.safecheckitem.every(item => item.f_repaire_state === '已处理')) {
294
- return '正常';
310
+ return '正常'
311
+ }
312
+ return '有隐患'
313
+ },
314
+ lastDefectResult () {
315
+ let content = this.model.f_last_defect_content
316
+ if (!content) return ''
317
+
318
+ try {
319
+ // 先解析一次
320
+ let parsed = typeof content === 'string' ? JSON.parse(content) : content
321
+ // 如果 result 还是 undefined,再尝试一次解析
322
+ if (typeof parsed.result === 'undefined' && typeof parsed === 'string') {
323
+ parsed = JSON.parse(parsed)
324
+ }
325
+ return parsed.result || ''
326
+ } catch (e) {
327
+ console.warn('解析 f_last_defect_content 出错', e)
328
+ return ''
295
329
  }
296
- return '有隐患';
297
330
  }
298
331
  },
299
332
  watch: {
@@ -0,0 +1,478 @@
1
+ <template>
2
+ <div>
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="[!baseinfo.base.f_user_name ? 'has-error' : '']"
7
+ v-if="getConfigShowItem('f_user_name')">
8
+ <label for="f_user_name" class="font_normal_body">*{{getConfigLabelName('f_user_name','用户姓名')}}</label>
9
+ <input type="text" v-model="baseinfo.base.f_user_name"
10
+ v-validate:f_user_name='getConfigValidate("f_user_name",true)'
11
+ class="input_search" style="width:60%" :placeholder="getConfigPlaceholder('f_user_name','用户姓名')" v-next-el="phone">
12
+ </div>
13
+ <div style="" class="col-sm-4 form-group"
14
+ :class="[$v.f_user_phone.minlength || $v.f_user_phone.maxlength ? 'has-error' : '']" v-if="getConfigShowItem('f_user_phone')">
15
+ <label for="f_user_phone" class="font_normal_body">*{{getConfigLabelName('f_user_phone','客户电话')}}</label>
16
+ <input type="text" maxlength="11" v-model="baseinfo.base.f_user_phone"
17
+ v-validate:f_user_phone="getConfigValidate('f_user_phone')" class="input_search" style="width:60%"
18
+ :placeholder="getConfigPlaceholder('f_user_phone','客户电话')"
19
+ v-el:phone v-next-el="area">
20
+ </div>
21
+ <div class="col-sm-4 form-group">
22
+ <label for="f_user_state" class="font_normal_body">&ensp;客户状态</label>
23
+ <v-select :value.sync="baseinfo.base.f_user_state"
24
+ :disabled="false"
25
+ :value-single="true"
26
+ :options='userstates' placeholder='客户状态'
27
+ close-on-select></v-select>
28
+ </div>
29
+ </div>
30
+ <div class="row">
31
+ <div style="" class="col-sm-4 form-group" >
32
+ <label for="f_credentials" class="font_normal_body">&ensp;证件类型</label>
33
+ <v-select id="idCardType" :value.sync="baseinfo.base.f_credentials"
34
+ v-model="baseinfo.base.f_credentials"
35
+ :value-single="true"
36
+ :options='credentials'
37
+ :placeholder="getConfigPlaceholder('f_credentials','证件类型')"
38
+ style="width: 65%"
39
+ close-on-select></v-select>
40
+ </div>
41
+ <div style="" class="col-sm-8 form-group"
42
+ key="身份证号码"
43
+ :class="[$v.f_idnumber.identityCardValid ? 'has-error' : '']"
44
+ v-if="baseinfo.base.f_credentials.includes('身份证')">
45
+ <label for="f_idnumber" class="font_normal_body color-red">*证件号码</label>
46
+ <input type="text" maxlength="18" v-model="baseinfo.base.f_idnumber"
47
+ v-validate:f_idnumber='{identityCardValid: true}' class="input_search" style="width:80%"
48
+ :placeholder="getConfigPlaceholder('f_idnumber','证件号码')">
49
+ </div>
50
+ <div style="" class="col-sm-8 form-group"
51
+ key="证件号码"
52
+ v-else>
53
+ <label class="font_normal_body">&ensp;证件号码</label>
54
+ <input type="text" v-model="baseinfo.base.f_idnumber" class="input_search" style="width:80%"
55
+ :placeholder="getConfigPlaceholder('f_idnumber','证件号码')">
56
+ </div>
57
+ </div>
58
+ <div class="row">
59
+ <div class="col-sm-12 form-group" :class="[$v.f_address.required ? 'has-error' : '']">
60
+ <label for="f_address" class="font_normal_body">*地址信息</label>
61
+ <input type="text" v-model="addressinfo.f_address" v-validate:f_address="{required: true}"
62
+ class="input_search" disabled="disabled" style="width:75%;" placeholder="用户地址" >
63
+ <span>
64
+ <button class="button_search button_spacing" type="button" style="width: max-content" v-if="!isedit" @click="selectaddress()">选择地址</button>
65
+ <!-- <button class="button_search button_spacing" type="button" style="width: max-content" v-if="isedit" @click="modifyaddress()">修改地址</button>-->
66
+ <button class="button_search button_spacing" type="button" style="width: max-content" v-if="isedit" @click="selectaddress()">修改地址</button>
67
+ </span>
68
+ </div>
69
+ </div>
70
+ <div class="row">
71
+ <div class="col-sm-6 form-group">
72
+ <label style="letter-spacing: 2em;margin-right: -2em;margin-left: -2em" class="font_normal_body w2">&ensp;经度</label>
73
+ <input type="text" v-model="lng"
74
+ class="input_search" :disabled="true" style="width:75%;" placeholder="经度" >
75
+ </div>
76
+ <div class="col-sm-6 form-group">
77
+ <label style="letter-spacing: 2em;margin-right: -2em;margin-left: -2em" class="font_normal_body w2">&ensp;纬度</label>
78
+ <input type="text" v-model="lat"
79
+ class="input_search" :disabled="true" style="width:75%;" placeholder="经度" >
80
+ </div>
81
+ </div>
82
+ <div class="row">
83
+ <div style=""
84
+ v-show="(formconfig && formconfig.f_used_name && formconfig.f_used_name.required) || !onlyshowmust"
85
+ :class="[$v.f_used_name.required ? 'has-error' : '']"
86
+ class="col-sm-4 form-group" v-if="getConfigShowItem('f_used_name')">
87
+ <label style="letter-spacing: 0.5em;margin-right: -0.5em;margin-left: -0.5em" for="f_used_name" class="font_normal_body w3">&ensp;{{getConfigLabelName('f_used_name','曾用名')}}</label>
88
+ <input type="text" v-model="baseinfo.base.f_used_name" class="input_search" style="width:60%"
89
+ v-validate:f_used_name="getConfigValidate('f_used_name', false)"
90
+ :placeholder="getConfigPlaceholder('f_used_name','曾用名')">
91
+ </div>
92
+ <div style="" class="col-sm-4 form-group"
93
+ v-show="(formconfig && formconfig.f_rent_phone && formconfig.f_rent_phone.required) || !onlyshowmust"
94
+ :class="[$v.f_rent_phone.required ? 'has-error' : '']" v-if="getConfigShowItem('f_rent_phone')">
95
+ <label for="f_rent_phone" class="font_normal_body">&ensp;备用电话</label>
96
+ <input type="text" v-model="baseinfo.base.f_rent_phone" class="input_search" style="width:60%"
97
+ v-validate:f_rent_phone="getConfigValidate('f_rent_phone', false)"
98
+ placeholder="备用电话">
99
+ </div>
100
+ <div class="col-sm-4 form-group"
101
+ v-show="(formconfig && formconfig.f_people_num && formconfig.f_people_num.required) || !onlyshowmust"
102
+ :class="[$v.f_people_num.dctest ? 'has-error' : '']" v-if="getConfigShowItem('f_people_num')">
103
+ <label for="f_people_num" style="letter-spacing: 0.5em;margin-right: -0.5em" class="font_normal_body w3">{{getConfigLabelName('f_people_num','人口数')}}</label>
104
+ <input type="number" v-model="baseinfo.base.f_people_num" v-show="!peopleMax" v-validate:f_people_num='{dctest: [0, ">=" ]}'
105
+ :disabled="!jurisdiction.includes('修改人口数')" class="input_search" style="width:60%"
106
+ placeholder="家庭人口数">
107
+ <v-select id="f_people_num" :value.sync="baseinfo.base.f_people_num"
108
+ v-if="peopleMax"
109
+ v-model="baseinfo.base.f_people_num"
110
+ :value-single="true"
111
+ :options='peoplenums'
112
+ :placeholder="getConfigPlaceholder('f_people_num','家庭人口数')"
113
+ style="width: 65%"
114
+ close-on-select></v-select>
115
+ </div>
116
+ </div>
117
+ <div class="row">
118
+ <div style=""
119
+ v-show="(formconfig && formconfig.f_balance && formconfig.f_balance.required) || !onlyshowmust"
120
+ :class="[$v.f_balance.required ? 'has-error' : '']"
121
+ class="col-sm-4 form-group" v-if="getConfigShowItem('f_balance')">
122
+ <label for="f_balance" class="font_normal_body">&ensp;{{getConfigLabelName('f_balance','用户余额')}}</label>
123
+ <input type="text" v-model="baseinfo.base.f_balance" class="input_search" style="width:60%"
124
+ v-validate:f_balance="getConfigValidate('f_balance', false)"
125
+ :placeholder="getConfigPlaceholder('f_balance','用户余额')"
126
+ :disabled="!jurisdiction.includes('档案信息查询修改')">
127
+ </div>
128
+ <div style="" class="col-sm-4 form-group" v-if="getConfigShowItem('f_is_mgq')"
129
+ v-show="(formconfig && formconfig.f_is_mgq && formconfig.f_is_mgq.required) || !onlyshowmust"
130
+ :class="[$v.f_is_mgq.required ? 'has-error' : '']">
131
+ <label for="f_is_mgq" style="letter-spacing: 0.5em;margin-right: -0.5em" class="font_normal_body w3">{{getConfigLabelName('f_is_mgq','煤改气')}}</label>
132
+ <input type="text" v-show="false" v-model="baseinfo.base.f_is_mgq"
133
+ v-validate:f_is_mgq="getConfigValidate('f_is_mgq', false)">
134
+ <v-select id="f_is_mgq" :value.sync="baseinfo.base.f_is_mgq" v-model="baseinfo.base.f_is_mgq"
135
+ :placeholder="getConfigPlaceholder('f_is_mgq','是否煤改气')"
136
+ :options='mgq' style="width: 65%" close-on-select></v-select>
137
+ </div>
138
+ <div class="col-sm-4 form-group" v-if="getConfigShowItem('f_book_no')"
139
+ v-show="(formconfig && formconfig.f_book_no && formconfig.f_book_no.required) || !onlyshowmust"
140
+ :class="[$v.f_book_no.required ? 'has-error' : '']">
141
+ <label for="f_contract" class="font_normal_body">&ensp;{{getConfigLabelName('f_book_no','燃气本号')}}</label>
142
+ <input type="text" v-model="baseinfo.base.f_book_no" class="input_search" style="width:60%"
143
+ v-validate:f_book_no="getConfigValidate('f_book_no', false)"
144
+ :placeholder="getConfigPlaceholder('f_book_no','用户证号')">
145
+ </div>
146
+ </div>
147
+ <div class="row">
148
+ <div style="" class="col-sm-4 form-group" v-if="getConfigShowItem('f_rent_name')"
149
+ v-show="(formconfig && formconfig.f_rent_name && formconfig.f_rent_name.required) || !onlyshowmust"
150
+ :class="[$v.f_rent_name.required ? 'has-error' : '']">
151
+ <label for="f_rent_name" class="font_normal_body">&ensp;{{getConfigLabelName('f_rent_name','租户姓名')}}</label>
152
+ <input type="text" v-model="baseinfo.base.f_rent_name" class="input_search" style="width:60%"
153
+ v-validate:f_rent_name="getConfigValidate('f_rent_name', false)"
154
+ :placeholder="getConfigPlaceholder('f_rent_name','租户姓名')">
155
+ </div>
156
+ <div style="" class="col-sm-4 form-group" v-if="getConfigShowItem('f_zuhu_phone')"
157
+ v-show="(formconfig && formconfig.f_zuhu_phone && formconfig.f_zuhu_phone.required) || !onlyshowmust"
158
+ :class="[$v.f_zuhu_phone.required ? 'has-error' : '']">
159
+ <label for="f_zuhu_phone" class="font_normal_body">{{getConfigLabelName('f_zuhu_phone','租户电话')}}</label>
160
+ <input type="text" v-model="baseinfo.base.f_zuhu_phone" class="input_search" style="width:60%"
161
+ v-validate:f_zuhu_phone="getConfigValidate('f_zuhu_phone', false)"
162
+ :placeholder="getConfigPlaceholder('f_zuhu_phone','租户电话')">
163
+ </div>
164
+ <div style="" class="col-sm-4 form-group"
165
+ v-show="(formconfig && formconfig.f_cost_type && formconfig.f_cost_type.required) || !onlyshowmust"
166
+ v-if="getConfigShowItem('f_cost_type')">
167
+ <label for="f_is_mgq" class="font_normal_body ">&ensp;{{getConfigLabelName('f_cost_type','付款类型')}}</label>
168
+ <v-select id="f_is_mgq" :value.sync="baseinfo.base.f_cost_type" v-model="baseinfo.base.f_cost_type"
169
+ :options='costtype'
170
+ :placeholder="getConfigPlaceholder('f_cost_type','付款类型')" style="width: 65%" close-on-select></v-select>
171
+ </div>
172
+ </div>
173
+ <div class="row">
174
+ <div class="col-sm-8 form-group" v-if="getConfigShowItem('f_contract_id')"
175
+ v-show="(formconfig && formconfig.f_contract_id && formconfig.f_contract_id.required) || !onlyshowmust"
176
+ :class="[$v.f_contract_id.required ? 'has-error' : '']">
177
+ <label for="f_contract" class="font_normal_body">&ensp;{{getConfigLabelName('f_contract_id','合同编号')}}</label>
178
+ <input type="text" v-model="baseinfo.base.f_contract_id" class="input_search" style="width:80%"
179
+ v-validate:f_contract_id="getConfigValidate('f_contract_id', false)"
180
+ :placeholder="getConfigPlaceholder('f_contract_id','合同编号')">
181
+ </div>
182
+ <div class="col-sm-4 form-group"
183
+ v-show="(formconfig && formconfig.f_print_dh && formconfig.f_print_dh.required) || !onlyshowmust"
184
+ :class="[$v.f_print_dh.required ? 'has-error' : '']">
185
+ <label for="f_print_dh" class="font_normal_body ">&ensp;{{getConfigLabelName('f_print_dh','打印类别')}}</label>
186
+ <input type="text" v-show="false" v-model="baseinfo.base.f_print_dh"
187
+ v-validate:f_print_dh="getConfigValidate('f_print_dh', false)">
188
+ <v-select id="f_print_dh" :value.sync="baseinfo.base.f_print_dh" v-model="baseinfo.base.f_print_dh"
189
+ :value-single="true" :disabled="baseinfo.base.f_print_dh_stats" :search="false"
190
+ :options='printstate' placeholder='流程单 | 点火单' style="width: 65%" close-on-select></v-select>
191
+ </div>
192
+
193
+
194
+ </div>
195
+ <div class="row">
196
+ <div style="" class="col-sm-12 form-group" v-if="getConfigShowItem('f_comments')"
197
+ v-show="(formconfig && formconfig.f_comments && formconfig.f_comments.required) || !onlyshowmust"
198
+ :class="[$v.f_comments.required ? 'has-error' : '']">
199
+ <label for="f_paper_accoun" style="letter-spacing: 2em;margin-right: -2em;margin-left: -2em" class="font_normal_body w2">&ensp;{{getConfigLabelName('f_comments','备注')}}</label>
200
+ <input class="input_search" style="width:86.5%;height: 40px" v-model="baseinfo.base.f_comments"
201
+ :placeholder="getConfigPlaceholder('f_comments','请输入备注信息')"
202
+ v-validate:f_comments="getConfigValidate('f_comments',false)" />
203
+ </div>
204
+
205
+ <div class="col-sm-4 form-group"
206
+ v-show="((formconfig && formconfig.f_house_type && formconfig.f_house_type.required) || !onlyshowmust) && getConfigShowItem('f_house_type')"
207
+ :class="[$v.f_house_type.required ? 'has-error' : '']">
208
+ <label for="f_user_state" class="font_normal_body">&ensp;{{getConfigLabelName('f_house_type','房屋类型')}}</label>
209
+ <input type="text" v-show="false" v-model="baseinfo.base.f_house_type"
210
+ v-validate:f_house_type="getConfigValidate('f_house_type',false)">
211
+ <v-select :value.sync="baseinfo.base.f_house_type"
212
+ :search="false"
213
+ :value-single="true"
214
+ :options='housetype' close-on-select
215
+ :placeholder="getConfigPlaceholder('f_house_type','房屋类型')">
216
+ </v-select>
217
+ </div>
218
+ </div>
219
+ <div class="row">
220
+ <a style="text-decoration: none;font-weight: 300;float: left;color: #333;margin-top: 15px;font-weight: 500"
221
+ v-if="baseinfo.base.f_cost_type[0] === '银行代扣'">银行信息</a>
222
+ </div>
223
+ <div v-if="baseinfo.base.f_cost_type[0] === '银行代扣'">
224
+ <div class="row">
225
+ <div class="col-sm-4 form-group"
226
+ :class="[$v.f_bank_accopen.required ? 'has-error' : '']">
227
+ <label for="f_username" class="font_normal_body">银行户名</label>
228
+ <input type="text" v-model="baseinfo.bank.f_bank_accopen"
229
+ class="input_search" style="width:60%" id="f_username" placeholder="客户名称"
230
+ v-validate:f_bank_accopen='{required: true}'
231
+ v-next-el="bankaccount">
232
+ </div>
233
+ <div class="col-sm-4 form-group" id=userfiles-useEssInf-银行名称>
234
+ <label for="f_username" class="font_normal_body ">银行名称</label>
235
+ <v-select :value.sync="baseinfo.bank.f_bank_name"
236
+ :options='banknames' placeholder='银行名称'
237
+ close-on-select></v-select>
238
+ </div>
239
+ <div class="col-sm-4 form-group">
240
+ <label for="f_bank_idnumber" class="font_normal_body">缴费编号</label>
241
+ <input type="text" v-model="baseinfo.bank.f_bank_pay_number"
242
+ class="input_search" style="width:60%"
243
+ aria-describedby="helpBlock" placeholder="缴费编号" v-el:bankpaynumber>
244
+ </div>
245
+ <div class="col-sm-12 form-group">
246
+ <label for="f_bank_idnumber" class="font_normal_body">身份证号</label>
247
+ <input type="text" v-model="baseinfo.bank.f_bank_idnumber"
248
+ class="input_search" style="width:54%"
249
+ aria-describedby="helpBlock" placeholder="身份证号" v-el:bankidnumber>
250
+ </div>
251
+ <div class="col-sm-12 form-group"
252
+ :class="[$v.f_bank_account.required ? 'has-error' : '']">
253
+ <label for="f_userid" class="font_normal_body">银行账号</label>
254
+ <input type="text" v-model="baseinfo.bank.f_bank_account" class="input_search" style="width:54%"
255
+ v-validate:f_bank_account='{required: true}' placeholder="银行账号" v-el:bankaccount
256
+ v-next-el="bankidnumber">
257
+ </div>
258
+ </div>
259
+ </div>
260
+ </form>
261
+ </validator>
262
+ <modal v-if="showselectaddress" :show.sync="showselectaddress" width="80%" title="地址信息" v-ref:modal large
263
+ backdrop="false">
264
+ <article slot="modal-body" class="modal-body" style="height: 700px;padding: 0!important;">
265
+ <file-address-manage-new :is-select="isSelect" :fileinfo="addressinfo"
266
+ @address-valid="doNothing" :showselectaddress.sync="showselectaddress"
267
+ :f_filialeid="f_filialeid"
268
+ v-ref:fileaddress></file-address-manage-new>
269
+ </article>
270
+ <footer slot="modal-footer" class="modal-footer">
271
+ </footer>
272
+ </modal>
273
+ </div>
274
+ </template>
275
+
276
+ <script>
277
+ import {HttpResetClass} from 'vue-client'
278
+
279
+ let getEditUserState = async function (self) {
280
+ try {
281
+ let http = new HttpResetClass()
282
+ let result = await http.load('GET', `rs/vue/EditUserState.json`, {}, {resolveMsg: null, rejectMsg: null})
283
+ console.log(result.data.EditUserState)
284
+ self.edituserstate = result.data.EditUserState
285
+ Object.assign(self.config, result.data)
286
+ } catch (e) {
287
+ console.log(e)
288
+ }
289
+ }
290
+
291
+ export default {
292
+ title: '基本信息',
293
+ props: ['baseinfo', 'addressinfo', 'isedit', 'f_filialeid', 'formconfig', 'onlyshowmust'],
294
+ data () {
295
+ return {
296
+ showselectaddress: false,
297
+ site: '',
298
+ areas: [],
299
+ streets: [],
300
+ residentials: [],
301
+ lng: '',
302
+ lat: '',
303
+ config: {
304
+ f_idnumber: true,
305
+ f_house_type: true
306
+ },
307
+ validateRules: {},
308
+ inputtores: this.$appdata.getParam('抄表员'),
309
+ credentials: this.$appdata.getParam('证件类型'),
310
+ costtypes: this.$appdata.getParam('缴费类型'),
311
+ banknames: this.$appdata.getParam('银行名称'),
312
+ userstates: this.$appdata.getParam('预备客户状态参数') ? [{label: '全部', value: ''}, ...this.$appdata.getParam('预备客户状态参数')] : [{label: '预备', value: '预备'}],
313
+ housetype: this.$appdata.getParam('房屋类型'),
314
+ mgq: this.$appdata.getParam('是否煤改气'),
315
+ costtype: this.$appdata.getParam('付款类型'),
316
+ printstate: this.$appdata.getParam('建档打印类型') ? [{label: '暂不选择', value: '暂不选择'}, ...this.$appdata.getParam('建档打印类型')] : [{label: '暂不选择', value: '暂不选择'}],
317
+ peopleMax: this.$appdata.getSingleValue('最大人口数'),
318
+ jurisdiction: this.$login.r,
319
+ edituserstate: false,
320
+ // highMeterPlugin: {},
321
+ readCardFlag: true,
322
+
323
+ isSelect: false
324
+ }
325
+ },
326
+ ready () {
327
+ getEditUserState(this)
328
+ this.$resetValidation()
329
+ this.lng = this.addressinfo.f_lng
330
+ this.lat = this.addressinfo.f_lat
331
+ console.log('addressinfo', this.addressinfo)
332
+ // this.initValidateRules()
333
+ },
334
+ beforeDestroy () {
335
+ },
336
+ methods: {
337
+ // updateValidateRules() {
338
+ // if (!this.formconfig) return
339
+ //
340
+ // Object.keys(this.formconfig).forEach(field => {
341
+ // const fieldConfig = this.formconfig[field]
342
+ // const rules = {}
343
+ //
344
+ // if (fieldConfig.required) {
345
+ // rules.required = true
346
+ // }
347
+ //
348
+ // if (fieldConfig.minlength || fieldConfig.minlength === 0) {
349
+ // rules.minlength = fieldConfig.minlength
350
+ // }
351
+ //
352
+ // if (fieldConfig.maxlength) {
353
+ // rules.maxlength = fieldConfig.maxlength
354
+ // }
355
+ //
356
+ // this.validateRules[field] = Object.assign({}, this.validateRules[field], rules)
357
+ // })
358
+ // },
359
+
360
+ getConfigValidate (name, defaultVal) {
361
+ this.$resetValidation()
362
+ if (this.formconfig && this.formconfig[name]) {
363
+ let Validate = {}
364
+ if (this.formconfig[name].required) {
365
+ Object.assign(Validate, {required: true})
366
+ }
367
+ if (this.formconfig[name].minlength || this.formconfig[name].minlength === 0) {
368
+ Object.assign(Validate, {minlength: this.formconfig[name].minlength})
369
+ }
370
+ if (this.formconfig[name].maxlength) {
371
+ Object.assign(Validate, {maxlength: this.formconfig[name].maxlength})
372
+ }
373
+ return Validate
374
+ } else if (name === 'f_user_phone') {
375
+ return { minlength: 11, maxlength: 11 }
376
+ } else if (defaultVal) {
377
+ return {required: defaultVal}
378
+ }
379
+ return {}
380
+ },
381
+ getConfigShowItem (name, defaultVal = true) {
382
+ if (this.formconfig && this.formconfig[name] && this.formconfig[name].hasOwnProperty('showItem')) {
383
+ return this.formconfig[name].showItem
384
+ } else {
385
+ return defaultVal
386
+ }
387
+ },
388
+ getConfigLabelName (name, defaultVal) {
389
+ if (this.formconfig && this.formconfig[name] && this.formconfig[name].labelName) {
390
+ return this.formconfig[name].labelName
391
+ } else {
392
+ return defaultVal
393
+ }
394
+ },
395
+ getConfigPlaceholder (name, defaultVal) {
396
+ if (this.formconfig && this.formconfig[name] && this.formconfig[name].placeholder) {
397
+ return this.formconfig[name].placeholder
398
+ } else {
399
+ return defaultVal
400
+ }
401
+ },
402
+ selectaddress () {
403
+ this.showselectaddress = true
404
+ this.isSelect = true
405
+ },
406
+ modifyaddress () {
407
+ this.showselectaddress = true
408
+ this.isSelect = false
409
+ },
410
+ onValid (res) {
411
+ this.$dispatch('valid')
412
+ },
413
+ onInvalid (res) {
414
+ // 打印所有校验状态
415
+ this.$dispatch('invalid')
416
+ },
417
+ doNothing () {
418
+ // console.log('啥也不做')
419
+ },
420
+ resetValidation () {
421
+ this.baseinfo = Object.assign({}, this.baseinfo)
422
+ this.$nextTick(() => {
423
+ this.$resetValidation()
424
+ })
425
+ },
426
+ readIDCardCallback (compoent, msg) {
427
+ // console.log('进入高拍仪',msg)
428
+ if (msg.err !== 0) {
429
+ return
430
+ }
431
+ // document.getElementById("idCardType").getElementsByClassName("btn-content")[0].innerHTML="身份证"
432
+ compoent.baseinfo.base.f_idnumber = msg.strID
433
+ compoent.baseinfo.base.f_user_name = msg.strName.trim()
434
+ // compoent.baseinfo.base.f_credentials = '身份证'
435
+ }
436
+ },
437
+ watch: {
438
+ 'baseinfo.base.f_credentials' () {
439
+ this.$resetValidation()
440
+ },
441
+ 'baseinfo.base.f_cost_type[0]' () {
442
+ this.$resetValidation()
443
+ },
444
+ 'baseinfo.base.f_user_name' (val) {
445
+ console.log('f_user_name变化', val)
446
+ },
447
+ 'addressinfo.f_lat' (newVal) {
448
+ this.lat = newVal
449
+ },
450
+ 'addressinfo.f_lng' (newVal) {
451
+ this.lng = newVal
452
+ }
453
+ },
454
+ computed: {
455
+ peoplenums () {
456
+ let peopleMax = this.$appdata.getSingleValue('最大人口数') ? this.$appdata.getSingleValue('最大人口数') : 0
457
+ let nums = []
458
+ for (let i = 1; i <= peopleMax; i++) {
459
+ let temp = {}
460
+ temp.label = i
461
+ temp.value = i
462
+ nums.push(temp)
463
+ }
464
+ return nums
465
+ }
466
+ },
467
+ events: {
468
+ 'confirmaddress' (res) {
469
+ this.showselectaddress = false
470
+ this.addressinfo.f_address = res.f_address
471
+ this.addressinfo.id = res.id
472
+ this.lat = res.f_lat
473
+ this.lng = res.f_lng
474
+ this.$dispatch('defaultOtheret', res)
475
+ }
476
+ }
477
+ }
478
+ </script>
@@ -169,7 +169,7 @@
169
169
  data () {
170
170
  return {
171
171
  condition: '1=1',
172
- model: new PagedList(`${this.row.f_meter_type === '物联网表'?'api/af-revenue/sql/sale_WebHandplanQuery':'api/af-revenue/sql/sale_HandplanQuery'}`, 20, {f_user_id: this.row.f_user_id}, {
172
+ model: new PagedList(`${this.row.f_meter_type === '物联网表' ? 'api/af-revenue/sql/sale_WebHandplanQuery' : 'api/af-revenue/sql/sale_HandplanQuery'}`, 20, {f_user_id: this.row.f_user_id}, {
173
173
  f_oughtfee: 0,
174
174
  f_oughtamount: 0,
175
175
  f_stairamount1: 0,
@@ -252,7 +252,7 @@
252
252
  this.condition = `${this.$refs.paged.$refs.criteria.condition} and ${this.searchValue} = '${this.row[this.searchValue]}'`
253
253
  this.model.search(this.condition, this.model)
254
254
  let http = new HttpResetClass()
255
- let res = await http.load('POST', `${this.row.f_meter_type === '物联网表'?'api/af-revenue/sql/sale_WebHandplanQuery':'api/af-revenue/sql/sale_HandplanQuery'}`, {
255
+ let res = await http.load('POST', `${this.row.f_meter_type === '物联网表' ? 'api/af-revenue/sql/sale_WebHandplanQuery' : 'api/af-revenue/sql/sale_HandplanQuery'}`, {
256
256
  data: {
257
257
  f_user_id: this.row.f_user_id,
258
258
  condition: this.condition
@@ -15,4 +15,6 @@ export default function () {
15
15
  Vue.component('user-info-detail-manage-new', (resolve) => { require(['./UserInfoDetailManageNew'], resolve) })
16
16
  // 物联网退费管理
17
17
  Vue.component('iot-refund', (resolve) => { require(['./IOTRefund'], resolve) })
18
+ // 用户基本信息test
19
+ Vue.component('file-user-essential-info', (resolve) => { require(['./UserEssentialInfoTest'], resolve) })
18
20
  }