sale-client 3.5.157 → 3.5.158
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
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="basic-main" style="height: 98%">
|
|
3
|
+
<criteria-paged :model="model" v-ref:paged>
|
|
4
|
+
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
|
|
5
|
+
<div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
|
|
6
|
+
<div class="row">
|
|
7
|
+
<div class="form-group col-sm-2">
|
|
8
|
+
<label class="font_normal_body">用户编号</label>
|
|
9
|
+
<input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
|
|
10
|
+
placeholder='用户编号'
|
|
11
|
+
condition="f_userinfo_code = '{}'">
|
|
12
|
+
</div>
|
|
13
|
+
<div class="form-group col-sm-2">
|
|
14
|
+
<label class="font_normal_body">处理状态</label>
|
|
15
|
+
<v-select v-model="model.f_hand_state"
|
|
16
|
+
placeholder='处理状态'
|
|
17
|
+
:value.sync="model.f_hand_state"
|
|
18
|
+
:options='$parent.$parent.states'
|
|
19
|
+
close-on-select
|
|
20
|
+
condition=" {} "
|
|
21
|
+
@change="$parent.$parent.search">
|
|
22
|
+
</v-select>
|
|
23
|
+
</div>
|
|
24
|
+
<div class="col-sm-2 form-group">
|
|
25
|
+
<label class="font_normal_body" title="表单抄表员">抄 表 员</label>
|
|
26
|
+
<v-select :value.sync="model.f_inputtor" v-model='model.f_inputtor'
|
|
27
|
+
style="width:60%"
|
|
28
|
+
multiple="true"
|
|
29
|
+
condition="f_inputtor in {}"
|
|
30
|
+
:options='$parent.$parent.inputtores' placeholder='抄表员'
|
|
31
|
+
close-on-select
|
|
32
|
+
v-el:cc></v-select>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<div class="span" style="float:right;">
|
|
36
|
+
<button class="button_search button_spacing width-60" @click="search()" v-el:cx>查询</button>
|
|
37
|
+
<button class="button_search button_spacing width-60"
|
|
38
|
+
@click="$parent.$parent.allsuccess()" v-el:cx>全部通过
|
|
39
|
+
</button>
|
|
40
|
+
<button class="button_search button_spacing width-60"
|
|
41
|
+
@click="$parent.$parent.allfaild()" v-el:cx>全部不通过
|
|
42
|
+
</button>
|
|
43
|
+
<!--<export-excel :data="{condition: condition}" bean="自助抄表审核导出" sqlurl="rs/logic/exportfile"></export-excel>-->
|
|
44
|
+
<div
|
|
45
|
+
:class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
|
|
46
|
+
@click="$parent.$parent.hidden()" class="button_spacing" style="float: right">
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
51
|
+
<div class="col-sm-2 form-group">
|
|
52
|
+
<label class="font_normal_body" title="档案抄表员">抄 表 员</label>
|
|
53
|
+
<v-select :value.sync="model.f_userfiles_inputtor" v-model='model.f_userfiles_inputtor'
|
|
54
|
+
style="width:60%"
|
|
55
|
+
multiple="true"
|
|
56
|
+
condition="f_userfiles_inputtor in {}"
|
|
57
|
+
:options='$parent.$parent.inputtores' placeholder='抄表员'
|
|
58
|
+
close-on-select
|
|
59
|
+
v-el:cc></v-select>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="form-group col-sm-2">
|
|
62
|
+
<label class="font_normal_body">表编号 </label>
|
|
63
|
+
<input type="text" style="width:60%" class="input_search" v-model="model.f_user_id" placeholder='表编号'
|
|
64
|
+
condition="f_user_id = '{}'">
|
|
65
|
+
</div>
|
|
66
|
+
<div class="form-group col-sm-2">
|
|
67
|
+
<label class="font_normal_body">用户姓名</label>
|
|
68
|
+
<input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
|
|
69
|
+
placeholder='用户姓名'
|
|
70
|
+
condition="f_user_name like '%{}%' ">
|
|
71
|
+
</div>
|
|
72
|
+
<div class="form-group col-sm-2">
|
|
73
|
+
<label class="font_normal_body">用户地址</label>
|
|
74
|
+
<input type="text" style="width:60%" class="input_search" v-model="model.f_address" placeholder='用户地址'
|
|
75
|
+
condition="f_address like '%{}%'">
|
|
76
|
+
</div>
|
|
77
|
+
<div class="col-sm-2 form-group">
|
|
78
|
+
<label class="font_normal_body">抄 表 册</label>
|
|
79
|
+
<v-select :value.sync="model.f_meter_book" v-model="model.f_meter_book"
|
|
80
|
+
:options='$parent.$parent.meterbooks' placeholder='抄表册'
|
|
81
|
+
style="width:60%"
|
|
82
|
+
close-on-select
|
|
83
|
+
condition="f_meter_book_num = '{}'"></v-select>
|
|
84
|
+
</div>
|
|
85
|
+
<div class="form-group col-sm-2">
|
|
86
|
+
<label class="font_normal_body">开始时间</label>
|
|
87
|
+
<datepicker id="startDate" placeholder="上传开始时间"
|
|
88
|
+
v-model="model.startDate"
|
|
89
|
+
style="width:60%"
|
|
90
|
+
class="datepicker"
|
|
91
|
+
:value.sync="model.startDate"
|
|
92
|
+
:disabled-days-of-Week="[]"
|
|
93
|
+
:format="'yyyy-MM-dd 00:00:00'"
|
|
94
|
+
condition="f_hand_date >= '{}'"
|
|
95
|
+
:show-reset-button="reset">
|
|
96
|
+
</datepicker>
|
|
97
|
+
</div>
|
|
98
|
+
<div class="form-group col-sm-2">
|
|
99
|
+
<label class="font_normal_body">结束时间</label>
|
|
100
|
+
<datepicker id="endDate" placeholder="上传结束时间"
|
|
101
|
+
v-model="model.endDate"
|
|
102
|
+
style="width:60%"
|
|
103
|
+
class="datepicker"
|
|
104
|
+
:value.sync="model.endDate"
|
|
105
|
+
:disabled-days-of-Week="[]"
|
|
106
|
+
:format="'yyyy-MM-dd 23:59:59'"
|
|
107
|
+
condition="f_hand_date <= '{}'"
|
|
108
|
+
:show-reset-button="reset">
|
|
109
|
+
</datepicker>
|
|
110
|
+
</div>
|
|
111
|
+
<res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes"
|
|
112
|
+
v-ref:sel></res-select-group>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
</criteria>
|
|
116
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
|
|
117
|
+
<template partial='head'>
|
|
118
|
+
<tr>
|
|
119
|
+
<th>序号</th>
|
|
120
|
+
<th>用户编号</th>
|
|
121
|
+
<th>表编号</th>
|
|
122
|
+
<th>用户姓名</th>
|
|
123
|
+
<th>用户地址</th>
|
|
124
|
+
<th>上期底数</th>
|
|
125
|
+
<th>本期底数</th>
|
|
126
|
+
<th>当前表底数</th>
|
|
127
|
+
<th>用气量</th>
|
|
128
|
+
<th>上次抄表时间</th>
|
|
129
|
+
<th>表单抄表员</th>
|
|
130
|
+
<th>档案抄表员</th>
|
|
131
|
+
<th>上传图片</th>
|
|
132
|
+
<th>上传时间</th>
|
|
133
|
+
<th>抄表来源</th>
|
|
134
|
+
<th>审核人</th>
|
|
135
|
+
<th>审核状态</th>
|
|
136
|
+
<th>审核时间</th>
|
|
137
|
+
<th>操作</th>
|
|
138
|
+
</tr>
|
|
139
|
+
</template>
|
|
140
|
+
<template partial='body'>
|
|
141
|
+
<td style="text-align:center">{{ $index + 1 }}</td>
|
|
142
|
+
<td style="text-align:center">{{ row.f_userinfo_code }}</td>
|
|
143
|
+
<td style="text-align:center">{{ row.f_user_id }}</td>
|
|
144
|
+
<td style="text-align:center">{{ row.f_user_name }}</td>
|
|
145
|
+
<td style="text-align:center">{{ row.f_address }}</td>
|
|
146
|
+
<td style="text-align:center" :class="{'meterbasehaserr' : row.f_last_tablebase !== row.f_meter_base}">
|
|
147
|
+
{{ row.f_last_tablebase }}
|
|
148
|
+
</td>
|
|
149
|
+
<td style="text-align:center" :class="{'meterbasehaserr' : row.f_last_tablebase !== row.f_meter_base}">
|
|
150
|
+
{{ row.f_tablebase }}
|
|
151
|
+
</td>
|
|
152
|
+
<td style="text-align:center" :class="{'meterbasehaserr' : row.f_last_tablebase !== row.f_meter_base}">
|
|
153
|
+
{{ row.f_meter_base }}
|
|
154
|
+
</td>
|
|
155
|
+
<td style="text-align:center">{{ parseFloat(row.f_tablebase - row.f_last_tablebase).toFixed(2) }}</td>
|
|
156
|
+
<td style="text-align:center">{{ row.f_last_input_date }}</td>
|
|
157
|
+
<td style="text-align:center">{{ row.f_inputtor }}</td>
|
|
158
|
+
<td style="text-align:center">{{ row.f_userfiles_inputtor }}</td>
|
|
159
|
+
<td style="text-align:center">
|
|
160
|
+
<img-self :src="row.f_handplan_image" @error="defImg(row)" v-if="row.f_handplan_image" :width="100" :height="100"></img-self>
|
|
161
|
+
</td>
|
|
162
|
+
<td style="text-align:center">{{ row.f_hand_date }}</td>
|
|
163
|
+
<td style="text-align:center">{{ row.f_meter_source }}</td>
|
|
164
|
+
<td style="text-align:center">{{ row.f_audit_person }}</td>
|
|
165
|
+
<td style="text-align:center" v-if="row.f_meter_state === '待审核' && row.f_hand_state === '有效'">待审核</td>
|
|
166
|
+
<td style="text-align:center" v-if="row.f_hand_state !== '有效'">未通过</td>
|
|
167
|
+
<td style="text-align:center" v-if="row.f_meter_state === '已抄表' && row.f_hand_state === '有效'">已通过</td>
|
|
168
|
+
<td style="text-align:center">{{ row.f_audit_date }}</td>
|
|
169
|
+
<td style="text-align: center" v-if="row.f_meter_state === '待审核' && row.f_hand_state === '有效'">
|
|
170
|
+
<button type="button" class="button_search button_spacing width-60"
|
|
171
|
+
v-if="row.f_last_tablebase === row.f_meter_base"
|
|
172
|
+
@click.stop="$parent.$parent.$parent.success(row)">通过
|
|
173
|
+
</button>
|
|
174
|
+
<br>
|
|
175
|
+
<button type="button" class="button_search button_spacing width-60"
|
|
176
|
+
@click.stop="$parent.$parent.$parent.faild(row)">不通过
|
|
177
|
+
</button>
|
|
178
|
+
</td>
|
|
179
|
+
<td v-else></td>
|
|
180
|
+
</template>
|
|
181
|
+
</data-grid>
|
|
182
|
+
</criteria-paged>
|
|
183
|
+
|
|
184
|
+
<modal :show.sync="show" v-ref:modal backdrop="false">
|
|
185
|
+
<header slot="modal-header" class="modal-header">
|
|
186
|
+
<h4 class="modal-title">请填写不通过原因</h4>
|
|
187
|
+
</header>
|
|
188
|
+
<article slot="modal-body" class="modal-body">
|
|
189
|
+
<div class="form-group">
|
|
190
|
+
<input type="text" class="form-control" v-model="pushdata.cause"
|
|
191
|
+
placeholder='请填写不通过原因,原因将会推送给用户'>
|
|
192
|
+
</div>
|
|
193
|
+
</article>
|
|
194
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
195
|
+
<button v-show="show" type="button" class="btn btn-default" @click='show = false'>取消</button>
|
|
196
|
+
<button v-show="show" type="button" class="btn btn-success" @click='confirm()'>确认</button>
|
|
197
|
+
</footer>
|
|
198
|
+
</modal>
|
|
199
|
+
</div>
|
|
200
|
+
</template>
|
|
201
|
+
<style>
|
|
202
|
+
.meterbasehaserr {
|
|
203
|
+
color: #E26868 !important;
|
|
204
|
+
font-weight: 700
|
|
205
|
+
}
|
|
206
|
+
</style>
|
|
207
|
+
<script>
|
|
208
|
+
import {PagedList} from 'vue-client'
|
|
209
|
+
|
|
210
|
+
let readyGen = async function (self) {
|
|
211
|
+
await self.$LoadParams.loadMeterBook(self.f_filialeid)
|
|
212
|
+
self.loadMeterBooks()
|
|
213
|
+
self.getfield = self.config.excelHeaders
|
|
214
|
+
self.reflash()
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export default {
|
|
218
|
+
title: '自报表数审核',
|
|
219
|
+
data () {
|
|
220
|
+
return {
|
|
221
|
+
initres: {
|
|
222
|
+
org: [this.$login.f.orgid],
|
|
223
|
+
dep: [],
|
|
224
|
+
user: []
|
|
225
|
+
},
|
|
226
|
+
orgCondtionStr: '',
|
|
227
|
+
criteriaShow: false,
|
|
228
|
+
show: false,
|
|
229
|
+
pushdata: {openid: '', cause: ''},
|
|
230
|
+
row: null,
|
|
231
|
+
model: new PagedList('rs/sql/meterReadAudit', 20),
|
|
232
|
+
states: [{label: '待审核', value: ` f_meter_state = '待审核' and f_hand_state ='有效'`}, {
|
|
233
|
+
label: '未通过',
|
|
234
|
+
value: ` f_hand_state = '无效'`
|
|
235
|
+
}, {label: '已通过', value: `f_meter_state = '已抄表' and f_hand_state ='有效'`}],
|
|
236
|
+
meterbooks: [{label: '全部', value: ''}]
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
ready () {
|
|
240
|
+
readyGen(this)
|
|
241
|
+
this.$refs.paged.$refs.cri.model.f_hand_state[0] = ` f_meter_state = '待审核'`
|
|
242
|
+
},
|
|
243
|
+
methods: {
|
|
244
|
+
defImg(row){
|
|
245
|
+
let img = event.srcElement //当前元素
|
|
246
|
+
let imgsrc = row.f_handplan_image
|
|
247
|
+
img.src = imgsrc.replace(/mhrqwxjf.cn/g, "")
|
|
248
|
+
img.onerror = null //防止闪图
|
|
249
|
+
},
|
|
250
|
+
loadMeterBooks () {
|
|
251
|
+
this.meterbooks = [...this.meterbooks, ...this.$GetSaleParam.getMeterBooks()]
|
|
252
|
+
},
|
|
253
|
+
getRes (obj) {
|
|
254
|
+
this.orgCondtionStr = obj
|
|
255
|
+
},
|
|
256
|
+
hidden () {
|
|
257
|
+
this.criteriaShow = !this.criteriaShow
|
|
258
|
+
},
|
|
259
|
+
search () {
|
|
260
|
+
this.$refs.paged.$refs.cri.search()
|
|
261
|
+
},
|
|
262
|
+
selfSearch (args) {
|
|
263
|
+
if (!this.orgCondtionStr) {
|
|
264
|
+
args.condition = `${args.condition}` + ' and f_orgid = ' + this.$login.f.orgid
|
|
265
|
+
} else {
|
|
266
|
+
args.condition = `${args.condition}` + this.orgCondtionStr
|
|
267
|
+
}
|
|
268
|
+
this.model.search(args.condition, args.model)
|
|
269
|
+
},
|
|
270
|
+
async allsuccess () {
|
|
271
|
+
let res = await this.$showMessage('确定通过全部抄表吗?操作后将不可取消', ['confirm', 'cancel'])
|
|
272
|
+
let condition = []
|
|
273
|
+
if (res === 'confirm') {
|
|
274
|
+
if (this.model.rows.length >= 0) {
|
|
275
|
+
if (this.model.model.f_hand_state[0] == `'待审核'`) {
|
|
276
|
+
for (let i = 0; i < this.model.rows.length; i++) {
|
|
277
|
+
if (this.model.rows[i].f_last_tablebase === this.model.rows[i].f_meter_base) {
|
|
278
|
+
let temp = {
|
|
279
|
+
f_hand_id: this.model.rows[i].id,
|
|
280
|
+
// 本次表底数
|
|
281
|
+
f_tablebase: this.model.rows[i].f_tablebase,
|
|
282
|
+
// 表类型
|
|
283
|
+
f_meter_classify: this.model.rows[i].f_meter_classify,
|
|
284
|
+
// 气表品牌
|
|
285
|
+
f_meter_brand: this.model.rows[i].f_meter_brand
|
|
286
|
+
}
|
|
287
|
+
condition.push(temp)
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
let uuid = this.$login.guid()
|
|
291
|
+
let data = {
|
|
292
|
+
uuid: uuid,
|
|
293
|
+
condition: condition,
|
|
294
|
+
f_audit_person: this.$login.f.name
|
|
295
|
+
}
|
|
296
|
+
await this.$resetpost('rs/logic/allhandPlanAudit', data, {resolveMsg: '操作成功', rejectMsg: '操作失败'})
|
|
297
|
+
this.search()
|
|
298
|
+
} else {
|
|
299
|
+
this.$showMessage('此为非待审核数据,无法修改')
|
|
300
|
+
}
|
|
301
|
+
} else {
|
|
302
|
+
this.$showMessage('暂无数据,无法通过当前所有抄表')
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
async success (row) {
|
|
307
|
+
let res = await this.$showMessage('确定通过该条抄表吗?操作后将不可取消', ['confirm', 'cancel'])
|
|
308
|
+
if (res === 'confirm') {
|
|
309
|
+
let data = {
|
|
310
|
+
// 抄表id
|
|
311
|
+
f_hand_id: row.id,
|
|
312
|
+
// 本次表底数
|
|
313
|
+
f_tablebase: row.f_tablebase,
|
|
314
|
+
// 表类型
|
|
315
|
+
f_meter_classify: row.f_meter_classify,
|
|
316
|
+
// 气表品牌
|
|
317
|
+
f_meter_brand: row.f_meter_brand,
|
|
318
|
+
f_audit_person: this.$login.f.name
|
|
319
|
+
}
|
|
320
|
+
await this.$resetpost('rs/logic/handPlanAudit', data, {resolveMsg: '操作成功', rejectMsg: '操作失败'})
|
|
321
|
+
this.search()
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
async allfaild () {
|
|
325
|
+
let res = await this.$showMessage('确定作废全部抄表吗?操作后将不可取消', ['confirm', 'cancel'])
|
|
326
|
+
let condition = '('
|
|
327
|
+
if (res === 'confirm') {
|
|
328
|
+
if (this.model.rows.length > 0) {
|
|
329
|
+
if (this.model.model.f_hand_state[0] === `'待审核'`) {
|
|
330
|
+
for (let i = 0; i < this.model.rows.length; i++) {
|
|
331
|
+
condition += `'` + this.model.rows[i].id + `',`
|
|
332
|
+
}
|
|
333
|
+
condition = condition.substring(0, condition.length - 1)
|
|
334
|
+
condition += ')'
|
|
335
|
+
let sql = `UPDATE t_handplan SET f_hand_state = '无效',f_audit_person = '${this.$login.f.name}',f_audit_date = getDate() WHERE id in ${condition}`
|
|
336
|
+
await this.$resetpost('rs/logic/runSQL', {sql: sql}, {resolveMsg: '操作成功', rejectMsg: '操作失败'})
|
|
337
|
+
this.search()
|
|
338
|
+
} else {
|
|
339
|
+
this.$showMessage('此为非待审核数据,无法修改')
|
|
340
|
+
}
|
|
341
|
+
} else {
|
|
342
|
+
this.$showMessage('暂无数据,无法作废当前所有抄表')
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
async faild (row) {
|
|
347
|
+
let res = await this.$showMessage('确定作废该条抄表吗?操作后将不可取消', ['confirm', 'cancel'])
|
|
348
|
+
if (res === 'confirm') {
|
|
349
|
+
// this.row = row
|
|
350
|
+
// this.pushdata.openid = row.f_open_id
|
|
351
|
+
// this.show = true
|
|
352
|
+
let sql = `UPDATE t_handplan SET f_hand_state = '无效',f_audit_person = '${this.$login.f.name}',f_audit_date = getDate() WHERE id = ${row.id}`
|
|
353
|
+
await this.$resetpost('rs/logic/runSQL', {sql: sql}, {resolveMsg: '操作成功', rejectMsg: '操作失败'})
|
|
354
|
+
this.search()
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
async confirm () {
|
|
358
|
+
await this.$resetpost('rs/logic/weixinHanPlanAudit', this.row, {resolveMsg: '操作成功', rejectMsg: '操作失败'})
|
|
359
|
+
await this.$resetpost('http://www.hunanhongdaranqi.com/weixin/rs/logic/meterReadFailed', this.pushdata, {
|
|
360
|
+
resolveMsg: null,
|
|
361
|
+
rejectMsg: null
|
|
362
|
+
})
|
|
363
|
+
this.show = false
|
|
364
|
+
this.search()
|
|
365
|
+
}
|
|
366
|
+
},
|
|
367
|
+
computed: {
|
|
368
|
+
inputtores () {
|
|
369
|
+
// 获取抄表员
|
|
370
|
+
console.log('获取抄表员', this.$login.f)
|
|
371
|
+
let rs = []
|
|
372
|
+
if (this.$login.f.f_gasman.length > 0) {
|
|
373
|
+
for (let i = 0; i < this.$login.f.f_gasman.length; i++) {
|
|
374
|
+
let temp = {
|
|
375
|
+
label: this.$login.f.f_gasman[i].name,
|
|
376
|
+
value: this.$login.f.f_gasman[i].name
|
|
377
|
+
}
|
|
378
|
+
rs.push(temp)
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
this.inputtores2 = rs
|
|
382
|
+
return [...rs]
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
</script>
|
|
@@ -40,6 +40,8 @@ let specialComp = {
|
|
|
40
40
|
// 变更历史
|
|
41
41
|
'batch-edit-history': (resolve) => { require(['./batch/batchEditHistory'], resolve) },
|
|
42
42
|
// 批量修改档案-修改表档案
|
|
43
|
-
'batch-edit-files': (resolve) => { require(['./batch/batchEditFiles'], resolve) }
|
|
43
|
+
'batch-edit-files': (resolve) => { require(['./batch/batchEditFiles'], resolve) },
|
|
44
|
+
// 抄表审核
|
|
45
|
+
'meter-read-audit': (resolve) => { require(['./handAudit/MeterReadAudit'], resolve) }
|
|
44
46
|
}
|
|
45
47
|
exports.specialComp = specialComp
|
|
@@ -0,0 +1,325 @@
|
|
|
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" >
|
|
7
|
+
<label for="f_user_name" class="font_normal_body">*客户姓名</label>
|
|
8
|
+
<input type="text" v-model="baseinfo.base.f_user_name"
|
|
9
|
+
class="input_search" style="width:60%" placeholder="客户名称" v-next-el="phone">
|
|
10
|
+
</div>
|
|
11
|
+
<div style="" class="col-sm-4 form-group">
|
|
12
|
+
<label for="f_user_phone" class="font_normal_body">*客户电话</label>
|
|
13
|
+
<input type="text" maxlength="11" v-model="baseinfo.base.f_user_phone"
|
|
14
|
+
class="input_search" style="width:60%"
|
|
15
|
+
placeholder="客户电话" v-el:phone v-next-el="area">
|
|
16
|
+
</div>
|
|
17
|
+
<div class="col-sm-4 form-group">
|
|
18
|
+
<label for="f_user_state" class="font_normal_body"> 客户状态</label>
|
|
19
|
+
<v-select :value.sync="baseinfo.base.f_user_state"
|
|
20
|
+
:disabled="false"
|
|
21
|
+
:value-single="true"
|
|
22
|
+
:options='userstates' placeholder='客户状态'
|
|
23
|
+
close-on-select></v-select>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="row">
|
|
27
|
+
<div style="" class="col-sm-4 form-group">
|
|
28
|
+
<label for="f_credentials" class="font_normal_body"> 证件类型</label>
|
|
29
|
+
<v-select id="idCardType" :value.sync="baseinfo.base.f_credentials"
|
|
30
|
+
v-model="baseinfo.base.f_credentials"
|
|
31
|
+
:value-single="true"
|
|
32
|
+
:options='credentials' placeholder='证件类型'
|
|
33
|
+
style="width: 65%"
|
|
34
|
+
close-on-select></v-select>
|
|
35
|
+
</div>
|
|
36
|
+
<div style="" class="col-sm-8 form-group"
|
|
37
|
+
v-if="baseinfo.base.f_credentials === '身份证'||baseinfo.base.f_credentials[0] === '身份证'">
|
|
38
|
+
<label for="f_idnumber" class="font_normal_body color-red">*证件号码</label>
|
|
39
|
+
<input type="text" maxlength="18" v-model="baseinfo.base.f_idnumber"
|
|
40
|
+
class="input_search" style="width:80%"
|
|
41
|
+
placeholder="证件号码">
|
|
42
|
+
</div>
|
|
43
|
+
<div style="" class="col-sm-8 form-group"
|
|
44
|
+
v-if="baseinfo.base.f_credentials !== '身份证'&&baseinfo.base.f_credentials[0] !== '身份证'">
|
|
45
|
+
<label class="font_normal_body"> 证件号码</label>
|
|
46
|
+
<input type="text" v-model="baseinfo.base.f_idnumber" class="input_search" style="width:80%"
|
|
47
|
+
placeholder="证件号码">
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="row">
|
|
51
|
+
<div class="col-sm-12 form-group" :class="[$v.f_address.required ? 'has-error' : '']">
|
|
52
|
+
<label for="f_address" class="font_normal_body">*地址信息</label>
|
|
53
|
+
<input type="text" v-model="addressinfo.f_address" :value.sync="addressinfo.f_address" v-validate:f_address='{required: true }'
|
|
54
|
+
class="input_search" disabled="disabled" style="width:75%;" placeholder="用户地址" >
|
|
55
|
+
<span>
|
|
56
|
+
<button class="button_search button_spacing" type="button" style="width: max-content" v-if="!isedit" @click="selectaddress()">选择地址</button>
|
|
57
|
+
<!-- <button class="button_search button_spacing" type="button" style="width: max-content" v-if="isedit" @click="modifyaddress()">修改地址</button>-->
|
|
58
|
+
<button class="button_search button_spacing" type="button" style="width: max-content" v-if="isedit" @click="selectaddress()">修改地址</button>
|
|
59
|
+
</span>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
<div class="row">
|
|
63
|
+
<div style="" class="col-sm-4 form-group">
|
|
64
|
+
<label for="f_used_name" class="font_normal_body"> 曾 用 名</label>
|
|
65
|
+
<input type="text" v-model="baseinfo.base.f_used_name" class="input_search" style="width:60%"
|
|
66
|
+
placeholder="曾用名">
|
|
67
|
+
</div>
|
|
68
|
+
<div style="" class="col-sm-4 form-group">
|
|
69
|
+
<label for="f_rent_phone" class="font_normal_body"> 备用电话</label>
|
|
70
|
+
<input type="text" v-model="baseinfo.base.f_rent_phone" class="input_search" style="width:60%"
|
|
71
|
+
placeholder="备用电话">
|
|
72
|
+
</div>
|
|
73
|
+
<div class="col-sm-4 form-group" :class="[$v.f_people_num.dctest ? 'has-error' : '']">
|
|
74
|
+
<label for="f_people_num" class="font_normal_body"> 人 口 数</label>
|
|
75
|
+
<input type="number" v-model="baseinfo.base.f_people_num" v-validate:f_people_num='{dctest: [0, ">=" ]}'
|
|
76
|
+
:disabled="!jurisdiction.includes('修改人口数')" class="input_search" style="width:60%"
|
|
77
|
+
placeholder="家庭人口数">
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="row">
|
|
81
|
+
<div style="" class="col-sm-4 form-group">
|
|
82
|
+
<label for="f_balance" class="font_normal_body"> 用户余额</label>
|
|
83
|
+
<input type="text" v-model="baseinfo.base.f_balance" class="input_search" style="width:60%"
|
|
84
|
+
placeholder="用户余额" :disabled="!jurisdiction.includes('档案信息查询修改')">
|
|
85
|
+
</div>
|
|
86
|
+
<div style="" class="col-sm-4 form-group">
|
|
87
|
+
<label for="f_is_mgq" class="font_normal_body ">煤 改 气 </label>
|
|
88
|
+
<v-select id="f_is_mgq" :value.sync="baseinfo.base.f_is_mgq" v-model="baseinfo.base.f_is_mgq"
|
|
89
|
+
:options='mgq' placeholder='是否煤改气' style="width: 65%" close-on-select></v-select>
|
|
90
|
+
</div>
|
|
91
|
+
<div class="col-sm-4 form-group">
|
|
92
|
+
<label for="f_contract" class="font_normal_body"> 燃气本号</label>
|
|
93
|
+
<input type="text" v-model="baseinfo.base.f_book_no" class="input_search" style="width:60%" placeholder="用户证号">
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
<div class="row">
|
|
97
|
+
<div style="" class="col-sm-4 form-group">
|
|
98
|
+
<label for="f_rent_name" class="font_normal_body"> 租户姓名</label>
|
|
99
|
+
<input type="text" v-model="baseinfo.base.f_rent_name" class="input_search" style="width:60%"
|
|
100
|
+
placeholder="租户姓名">
|
|
101
|
+
</div>
|
|
102
|
+
<div style="" class="col-sm-4 form-group">
|
|
103
|
+
<label for="f_zuhu_phone" class="font_normal_body"> 租户电话</label>
|
|
104
|
+
<input type="text" v-model="baseinfo.base.f_zuhu_phone" class="input_search" style="width:60%"
|
|
105
|
+
placeholder="租户电话">
|
|
106
|
+
</div>
|
|
107
|
+
<div style="" class="col-sm-4 form-group">
|
|
108
|
+
<label for="f_cost_type" class="font_normal_body "> 付款类型</label>
|
|
109
|
+
<v-select id="f_cost_type" :value.sync="baseinfo.base.f_cost_type" v-model="baseinfo.base.f_cost_type"
|
|
110
|
+
:options='costtype' placeholder='付款类型' style="width: 65%" close-on-select></v-select>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
<div class="row">
|
|
114
|
+
<div class="col-sm-8 form-group">
|
|
115
|
+
<label for="f_contract" class="font_normal_body"> 合同编号</label>
|
|
116
|
+
<input type="text" v-model="baseinfo.base.f_contract_id" class="input_search" style="width:80%"
|
|
117
|
+
placeholder="合同编号">
|
|
118
|
+
</div>
|
|
119
|
+
<!--<div style="" class="col-sm-4 form-group">-->
|
|
120
|
+
<!--<label for="f_print_lc" class="font_normal_body "> 打印状态</label>-->
|
|
121
|
+
<!--<v-select id="f_print_lc" :value.sync="baseinfo.base.f_print_lc" v-model="baseinfo.base.f_print_lc"-->
|
|
122
|
+
<!--:value-single="true" :disabled="!jurisdiction.includes('档案信息查询修改')"-->
|
|
123
|
+
<!--:options='mgq' placeholder='是否打印' style="width: 65%" close-on-select></v-select>-->
|
|
124
|
+
<!--</div>-->
|
|
125
|
+
<div class="col-sm-4 form-group" :class="[$v.f_print_dh.required ? 'has-error' : '']">
|
|
126
|
+
<label for="f_print_dh" class="font_normal_body ">*打印类别</label>
|
|
127
|
+
<input type="text" v-show="false" v-model="baseinfo.base.f_print_dh" v-validate:f_print_dh='{required: true }'>
|
|
128
|
+
<v-select id="f_print_dh" :value.sync="baseinfo.base.f_print_dh" v-model="baseinfo.base.f_print_dh"
|
|
129
|
+
:value-single="true" :disabled="baseinfo.base.f_print_dh_stats" :search="false"
|
|
130
|
+
:options='printstate' placeholder='流程单 | 点火单' style="width: 65%" close-on-select></v-select>
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
</div>
|
|
135
|
+
<div class="row">
|
|
136
|
+
<div style="" class="col-sm-8 form-group">
|
|
137
|
+
<label for="f_paper_account" class="font_normal_body "> 备  注</label>
|
|
138
|
+
<input class="input_search" style="width:80%" v-model="baseinfo.base.f_comments"/>
|
|
139
|
+
</div>
|
|
140
|
+
<div class="col-sm-4 form-group" :class="[$v.f_house_type.required ? 'has-error' : '']">
|
|
141
|
+
<label for="f_user_state" class="font_normal_body"> 房屋类型</label>
|
|
142
|
+
<input type="text" v-show="false" v-model="baseinfo.base.f_house_type">
|
|
143
|
+
<v-select :value.sync="baseinfo.base.f_house_type" :search="false" :value-single="true"
|
|
144
|
+
:options='housetype' placeholder='房屋类型' close-on-select>
|
|
145
|
+
</v-select>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
<div class="row">
|
|
149
|
+
<a style="text-decoration: none;font-weight: 300;float: left;color: #333;margin-top: 15px;font-weight: 500"
|
|
150
|
+
v-if="baseinfo.base.f_cost_type[0] === '银行代扣'">银行信息</a>
|
|
151
|
+
</div>
|
|
152
|
+
<div v-if="baseinfo.base.f_cost_type[0] === '银行代扣'">
|
|
153
|
+
<div class="row">
|
|
154
|
+
<div class="col-sm-4 form-group"
|
|
155
|
+
:class="[$v.f_bank_accopen.required ? 'has-error' : '']">
|
|
156
|
+
<label for="f_username" class="font_normal_body">银行户名</label>
|
|
157
|
+
<input type="text" v-model="baseinfo.bank.f_bank_accopen"
|
|
158
|
+
class="input_search" style="width:60%" id="f_username" placeholder="客户名称"
|
|
159
|
+
v-validate:f_bank_accopen='{required: true}'
|
|
160
|
+
v-next-el="bankaccount">
|
|
161
|
+
</div>
|
|
162
|
+
<div class="col-sm-4 form-group" id=userfiles-useEssInf-银行名称>
|
|
163
|
+
<label for="f_username" class="font_normal_body ">银行名称</label>
|
|
164
|
+
<v-select :value.sync="baseinfo.bank.f_bank_name"
|
|
165
|
+
:options='banknames' placeholder='银行名称'
|
|
166
|
+
close-on-select></v-select>
|
|
167
|
+
</div>
|
|
168
|
+
<div class="col-sm-4 form-group">
|
|
169
|
+
<label for="f_bank_idnumber" class="font_normal_body">缴费编号</label>
|
|
170
|
+
<input type="text" v-model="baseinfo.bank.f_bank_pay_number"
|
|
171
|
+
class="input_search" style="width:60%"
|
|
172
|
+
aria-describedby="helpBlock" placeholder="缴费编号" v-el:bankpaynumber>
|
|
173
|
+
</div>
|
|
174
|
+
<div class="col-sm-12 form-group">
|
|
175
|
+
<label for="f_bank_idnumber" class="font_normal_body">身份证号</label>
|
|
176
|
+
<input type="text" v-model="baseinfo.bank.f_bank_idnumber"
|
|
177
|
+
class="input_search" style="width:54%"
|
|
178
|
+
aria-describedby="helpBlock" placeholder="身份证号" v-el:bankidnumber>
|
|
179
|
+
</div>
|
|
180
|
+
<div class="col-sm-12 form-group"
|
|
181
|
+
:class="[$v.f_bank_account.required ? 'has-error' : '']">
|
|
182
|
+
<label for="f_userid" class="font_normal_body">银行账号</label>
|
|
183
|
+
<input type="text" v-model="baseinfo.bank.f_bank_account" class="input_search" style="width:54%"
|
|
184
|
+
v-validate:f_bank_account='{required: true}' placeholder="银行账号" v-el:bankaccount
|
|
185
|
+
v-next-el="bankidnumber">
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
</form>
|
|
190
|
+
</validator>
|
|
191
|
+
<modal v-if="showselectaddress" :show.sync="showselectaddress" width="80%" title="地址信息" v-ref:modal large backdrop="false">
|
|
192
|
+
<article slot="modal-body" class="modal-body" style="height: 700px;padding: 0!important;">
|
|
193
|
+
<file-address-manage-new :is-select="isSelect" :fileinfo="addressinfo"
|
|
194
|
+
@address-valid="doNothing" :showselectaddress.sync="showselectaddress"
|
|
195
|
+
:f_filialeid="f_filialeid"
|
|
196
|
+
v-ref:fileaddress ></file-address-manage-new>
|
|
197
|
+
</article>
|
|
198
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
199
|
+
</footer>
|
|
200
|
+
</modal>
|
|
201
|
+
</div>
|
|
202
|
+
</template>
|
|
203
|
+
|
|
204
|
+
<script>
|
|
205
|
+
import {HttpResetClass} from 'vue-client'
|
|
206
|
+
// import HighMeter from '../../plugins/HighMeterPlugin'
|
|
207
|
+
|
|
208
|
+
let getEditUserState = async function (self) {
|
|
209
|
+
try {
|
|
210
|
+
let http = new HttpResetClass()
|
|
211
|
+
let result = await http.load('GET', `rs/vue/EditUserState.json`, {}, {resolveMsg: null, rejectMsg: null})
|
|
212
|
+
console.log('看看结果', result.data.EditUserState)
|
|
213
|
+
self.config.f_print_dh = result.data.f_print_dh
|
|
214
|
+
self.baseinfo.base.f_print_dh = (self.baseinfo.base.f_print_dh && self.baseinfo.base.f_print_dh != '' && self.baseinfo.base.f_print_dh != '否') ? self.baseinfo.base.f_print_dh : result.data.f_print_dh
|
|
215
|
+
self.edituserstate = result.data.EditUserState
|
|
216
|
+
} catch (e) {
|
|
217
|
+
console.log(e)
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export default {
|
|
222
|
+
title: '基本信息',
|
|
223
|
+
props: ['baseinfo', 'addressinfo', 'isedit', 'f_filialeid'],
|
|
224
|
+
data () {
|
|
225
|
+
return {
|
|
226
|
+
showselectaddress: false,
|
|
227
|
+
site: '',
|
|
228
|
+
areas: [],
|
|
229
|
+
streets: [],
|
|
230
|
+
residentials: [],
|
|
231
|
+
config: {},
|
|
232
|
+
inputtores: this.$appdata.getParam('抄表员'),
|
|
233
|
+
credentials: this.$appdata.getParam('证件类型'),
|
|
234
|
+
costtypes: this.$appdata.getParam('缴费类型'),
|
|
235
|
+
banknames: this.$appdata.getParam('银行名称'),
|
|
236
|
+
userstates: [{label: '预备', value: '预备'}],
|
|
237
|
+
housetype: [{label: '楼房', value: '楼房'}, {label: '自建房', value: '自建房'}],
|
|
238
|
+
mgq: this.$appdata.getParam('是否煤改气'),
|
|
239
|
+
costtype: this.$appdata.getParam('付款类型'),
|
|
240
|
+
printstate: this.$appdata.getParam('建档打印类型') ? [{label: '暂不选择', value: '暂不选择'}, ...this.$appdata.getParam('建档打印类型')]:[{label: '暂不选择', value: '暂不选择'}],
|
|
241
|
+
jurisdiction: this.$login.r,
|
|
242
|
+
edituserstate: false,
|
|
243
|
+
// highMeterPlugin: {},
|
|
244
|
+
readCardFlag: true,
|
|
245
|
+
|
|
246
|
+
isSelect: false
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
ready () {
|
|
250
|
+
console.log('f_filialeid222,,,', this.f_filialeid)
|
|
251
|
+
getEditUserState(this)
|
|
252
|
+
this.$resetValidation()
|
|
253
|
+
// this.highMeterPlugin = new HighMeter(this,this.readIDCardCallback)
|
|
254
|
+
},
|
|
255
|
+
beforeDestroy () {
|
|
256
|
+
console.log('销毁')
|
|
257
|
+
// this.highMeterPlugin.Stop()
|
|
258
|
+
},
|
|
259
|
+
methods: {
|
|
260
|
+
selectaddress () {
|
|
261
|
+
this.showselectaddress = true
|
|
262
|
+
this.isSelect = true
|
|
263
|
+
},
|
|
264
|
+
modifyaddress () {
|
|
265
|
+
this.showselectaddress = true
|
|
266
|
+
this.isSelect = false
|
|
267
|
+
},
|
|
268
|
+
onValid (res) {
|
|
269
|
+
this.$dispatch('valid')
|
|
270
|
+
},
|
|
271
|
+
onInvalid (res) {
|
|
272
|
+
this.$dispatch('invalid')
|
|
273
|
+
},
|
|
274
|
+
doNothing () {
|
|
275
|
+
// console.log('啥也不做')
|
|
276
|
+
},
|
|
277
|
+
readIDCardCallback (compoent, msg) {
|
|
278
|
+
// console.log('进入高拍仪',msg)
|
|
279
|
+
if (msg.err !== 0) {
|
|
280
|
+
return
|
|
281
|
+
}
|
|
282
|
+
// document.getElementById("idCardType").getElementsByClassName("btn-content")[0].innerHTML="身份证"
|
|
283
|
+
compoent.baseinfo.base.f_idnumber = msg.strID
|
|
284
|
+
compoent.baseinfo.base.f_user_name = msg.strName.trim()
|
|
285
|
+
compoent.baseinfo.base.f_credentials = ['身份证']
|
|
286
|
+
}
|
|
287
|
+
},
|
|
288
|
+
watch: {
|
|
289
|
+
// 重置验证结果,当证件类型切换时,验证结果不能立即刷新,需要重置
|
|
290
|
+
'baseinfo.base.f_credentials[0]' () {
|
|
291
|
+
// console.log('验证器重置')
|
|
292
|
+
this.$resetValidation()
|
|
293
|
+
this.baseinfo.base.f_print_dh = (this.baseinfo.base.f_print_dh && this.baseinfo.base.f_print_dh != '' && this.baseinfo.base.f_print_dh != '否') ? this.baseinfo.base.f_print_dh : this.config.f_print_dh
|
|
294
|
+
},
|
|
295
|
+
'baseinfo.base.f_cost_type[0]' () {
|
|
296
|
+
// console.log('验证器重置')
|
|
297
|
+
this.$resetValidation()
|
|
298
|
+
this.baseinfo.base.f_print_dh = (this.baseinfo.base.f_print_dh && this.baseinfo.base.f_print_dh != '' && this.baseinfo.base.f_print_dh != '否') ? this.baseinfo.base.f_print_dh : this.config.f_print_dh
|
|
299
|
+
},
|
|
300
|
+
// 当选择销户,需要给其提醒是否进行销户
|
|
301
|
+
'baseinfo.base.f_user_state' (val) {
|
|
302
|
+
if (val[0] === '销户') {
|
|
303
|
+
this.$showMessage('是否要对该客户进行销户操作?', ['confirm', 'cancel']).then((res) => {
|
|
304
|
+
if (res !== 'confirm') {
|
|
305
|
+
this.baseinfo.base.f_user_state = ['正常']
|
|
306
|
+
}
|
|
307
|
+
})
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
computed: {},
|
|
312
|
+
events: {
|
|
313
|
+
'confirmaddress' (res) {
|
|
314
|
+
// console.log('选定地址', res)
|
|
315
|
+
this.showselectaddress = false
|
|
316
|
+
this.addressinfo.f_address = res.f_address
|
|
317
|
+
this.addressinfo.id = res.id
|
|
318
|
+
if (res.f_house_type != null) {
|
|
319
|
+
this.baseinfo.base.f_house_type = res.f_house_type
|
|
320
|
+
}
|
|
321
|
+
this.$dispatch('defaultOtheret', res)
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
</script>
|
|
@@ -4,7 +4,8 @@ import Vue from 'vue'
|
|
|
4
4
|
|
|
5
5
|
let specialComp = {
|
|
6
6
|
// 表具设备信息
|
|
7
|
-
'file-user-device-info': (resolve) => { require(['./UserDeviceInfoTest'], resolve) }
|
|
7
|
+
'file-user-device-info': (resolve) => { require(['./UserDeviceInfoTest'], resolve) },
|
|
8
|
+
'file-user-essential-info-new': (resolve) => { require(['./UserEssentialInfoTestNew'], resolve) }
|
|
8
9
|
|
|
9
10
|
}
|
|
10
11
|
exports.specialComp = specialComp
|