safecheck-client 4.0.0-21 → 4.0.0-22

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,7 +1,7 @@
1
1
  {
2
2
  "name": "safecheck-client",
3
3
  "//": "主分支版本别乱升,测试包的版本直接发包(建议使用1.XX.XX-XXX格式作为测试包,不要频繁升级第三位版本号),别提交版本号。切了分支切记把主分支版本升了,保证主分支始终是最高版本!!!!!",
4
- "version": "4.0.0-21",
4
+ "version": "4.0.0-22",
5
5
  "description": "安检模块 前端组件",
6
6
  "author": "丁新 <417755458@qq.com>",
7
7
  "license": "ISC",
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
 
63
63
  <div style="float: left;width:60%" class="form-group" v-if="!show && row.type == 'number'" v-show="row.isshow">
64
- <input type="text" class="form-control" maxlength="100" v-model="row.f_item_value" :readonly="row.readonly">
64
+ <input type="text" class="form-control" maxlength="100" v-model="row.f_item_value" onkeyup="value=value.replace(/[^\d\.-]/g,'')" :readonly="row.readonly">
65
65
  </div>
66
66
  <!--<input type="text" class="form-control" v-model="row.f_content" v-if="!show && row.type == 'string' && row.f_project != '表号'" :disabled="(!(ischecked == '有')) || issee" :readonly="issee">-->
67
67
  <!--<input type="text" class="form-control" v-model="meternum" v-if="!show && row.type == 'string' && row.f_project == '表号' " :disabled="(!(ischecked == '有')) || issee" :readonly="issee" >-->
@@ -1,403 +1,420 @@
1
- <template>
2
- <div class="auto clearfix">
3
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
4
- <div class="col-xs-4 col-sm-4 col-md-4">
5
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
6
- <span class="text-left font">客户编号</span>
7
- </div>
8
- <div class="col-xs-8 col-sm-8 col-md-8">
9
- <p class="text-left show-font">{{ model.f_userinfo_code }}</p>
10
- </div>
11
- </div>
12
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
13
- <div class="col-xs-4 col-sm-4 col-md-4">
14
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
15
- <span class="text-left font">客户姓名</span>
16
- </div>
17
- <div class="col-xs-8 col-sm-8 col-md-8">
18
- <input v-model="model.f_user_name" class="form-control show-font" placeholder="请输入客户姓名" type="text">
19
- </div>
20
- </div>
21
- <div class="row app-row col-xs-12 col-sm-12 col-md-12">
22
- <div class="col-xs-4 col-sm-2 col-md-2">
23
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
24
- <span class="text-left font">客户地址</span>
25
- </div>
26
- <div class="col-xs-8 col-sm-10 col-md-10">
27
- <input v-model="model.f_address" class="form-control show-font" placeholder="请输入客户地址" type="text">
28
- </div>
29
- </div>
30
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
31
- <div class="col-xs-4 col-sm-4 col-md-4">
32
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
33
- <span class="text-left font">客户电话</span>
34
- </div>
35
- <div class="col-xs-8 col-sm-8 col-md-8">
36
- <input v-model="model.f_user_phone" class="form-control show-font" placeholder="请输入电话号码" type="number">
37
- </div>
38
- </div>
39
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
40
- <div class="col-xs-4 col-sm-4 col-md-4">
41
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
42
- <span class="text-left font">证件类型</span>
43
- </div>
44
- <div class="col-xs-8 col-sm-8 col-md-8">
45
- <v-select v-model="model.f_id_type" :options="idTypeOptions"
46
- :value-single="true" :value.sync="model.f_id_type"
47
- close-on-select placeholder="请选择证件类型"
48
- style="width: 100%">
49
- </v-select>
50
- </div>
51
- </div>
52
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
53
- <div class="col-xs-4 col-sm-4 col-md-4">
54
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
55
- <span class="text-left font">证件号码</span>
56
- </div>
57
- <div class="col-xs-8 col-sm-8 col-md-8">
58
- <input v-model="model.f_idnumber" class="form-control show-font" placeholder="请输入证件号码" type="text">
59
- </div>
60
- </div>
61
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
62
- <div class="col-xs-4 col-sm-4 col-md-4">
63
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
64
- <span class="text-left font">保单号</span>
65
- </div>
66
- <div class="col-xs-8 col-sm-8 col-md-8">
67
- <input v-model="model.f_ins_number" class="form-control show-font" placeholder="请输入保单号" type="number">
68
- </div>
69
- </div>
70
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
71
- <div class="col-xs-4 col-sm-4 col-md-4">
72
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
73
- <span class="text-left font">上期保费截至日期</span>
74
- </div>
75
- <div class="col-xs-8 col-sm-8 col-md-8">
76
- <p class="text-left show-font">{{ model.f_last_insexpiration_date }}</p>
77
- </div>
78
- </div>
79
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
80
- <div class="col-xs-4 col-sm-4 col-md-4">
81
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
82
- <span class="text-left font">投保日期</span>
83
- </div>
84
- <div class="col-xs-8 col-sm-8 col-md-8">
85
- <datepicker v-model="model.f_ins_start_date" :format="'yyyy-MM-dd'" :value.sync="model.f_ins_start_date"
86
- placeholder="请选择投保日期" style="width: 60%" @change="changeExpirationDate">
87
- </datepicker>
88
- </div>
89
- </div>
90
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
91
- <div class="col-xs-4 col-sm-4 col-md-4">
92
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
93
- <span class="text-left font">购买年限</span>
94
- </div>
95
- <div class="col-xs-8 col-sm-8 col-md-8">
96
- <input v-model="model.f_salecount" class="form-control show-font" placeholder="购买年限" style="width: 60%"
97
- type="number" @change="changeExpirationDate">
98
- </div>
99
- </div>
100
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
101
- <div class="col-xs-4 col-sm-4 col-md-4">
102
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
103
- <span class="text-left font">购买日期</span>
104
- </div>
105
- <div class="col-xs-8 col-sm-8 col-md-8">
106
- <datepicker v-model="create_date" :format="'yyyy-MM-dd'" :value.sync="create_date"
107
- placeholder="购买日期" style="width: 60%">
108
- </datepicker>
109
- </div>
110
- </div>
111
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
112
- <div class="col-xs-4 col-sm-4 col-md-4">
113
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
114
- <span class="text-left font">到期日期</span>
115
- </div>
116
- <div class="col-xs-8 col-sm-8 col-md-8">
117
- <datepicker v-model="model.f_expiration_date" :format="'yyyy-MM-dd'" :value.sync="model.f_expiration_date"
118
- placeholder="到期日期" style="width: 60%">
119
- </datepicker>
120
- </div>
121
- </div>
122
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
123
- <div class="col-xs-4 col-sm-4 col-md-4">
124
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
125
- <span class="text-left font">保险险种</span>
126
- </div>
127
- <div class="col-xs-8 col-sm-8 col-md-8">
128
- <v-select v-model="model.f_insurance_type" :options="insurance_types"
129
- :value-single="true" :value.sync="model.f_insurance_type"
130
- close-on-select placeholder="保险险种"
131
- style="width: 100%">
132
- </v-select>
133
- </div>
134
- </div>
135
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
136
- <div class="col-xs-4 col-sm-4 col-md-4">
137
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
138
- <span class="text-left font">金额</span>
139
- </div>
140
- <div class="col-xs-8 col-sm-8 col-md-8">
141
- <input v-model="model.f_money" class="form-control show-font" placeholder="请输入金额" type="number">
142
- </div>
143
- </div>
144
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
145
- <div class="col-xs-4 col-sm-4 col-md-4">
146
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
147
- <span class="text-left font">与投保人关系</span>
148
- </div>
149
- <div class="col-xs-8 col-sm-8 col-md-8">
150
- <v-select v-model="model.f_relationship" :options="relationshipOptions"
151
- :value-single="true" :value.sync="model.f_relationship"
152
- close-on-select placeholder="请选择关系"
153
- style="width: 100%">
154
- </v-select>
155
- </div>
156
- </div>
157
- <div class="row app-row col-xs-12 col-sm-6 col-md-6">
158
- <div class="col-xs-4 col-sm-4 col-md-4">
159
- <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
160
- <span class="text-left font">收款方式</span>
161
- </div>
162
- <div class="col-xs-8 col-sm-8 col-md-8">
163
- <v-select v-model="model.f_payment" :options="payTypes"
164
- :value-single="true" :value.sync="model.f_payment"
165
- close-on-select placeholder="收款方式"
166
- style="width: 100%">
167
- </v-select>
168
- </div>
169
- </div>
170
- <div class="row app-row col-xs-12">
171
- <div class="col-xs-4 col-sm-4 col-md-4">
172
- <img alt="" src="../../../assets/add.png" style="width: 20px;">
173
- <span class="text-left font">备注</span>
174
- </div>
175
- <div class="col-xs-8 col-sm-8 col-md-8">
176
- <input v-model="model.f_comments" class="form-control show-font" placeholder="备注">
177
- </div>
178
- </div>
179
- <div class="col-xs-12 text-center app-row">
180
- <button class="btn btn-lg btn-font btn-color" style="width: 22%;" type="button" @click="commit()">提交</button>
181
- </div>
182
- </div>
183
- </template>
184
- <script>
185
- import {HttpResetClass} from 'vue-client'
186
- import * as Util from '../../../components/Util'
187
- import Vue from 'vue'
188
-
189
- export default {
190
- title: '手机单户抄表',
191
- data() {
192
- return {
193
- create_date: Util.getNowDate(),
194
- isCommit: false,
195
- insurance_types: [{label: '请选择', value: ''}, ...this.$appdata.getParam('险种')],
196
- payTypes: [{label: '请选择', value: ''}, ...this.$appdata.getParam('付款方式')],
197
- idTypeOptions: [
198
- {label: '身份证', value: '身份证'},
199
- {label: '军官证', value: '军官证'},
200
- {label: '统一社会信用代码', value: '统一社会信用代码'},
201
- {label: '港澳居民通行证', value: '港澳居民通行证'},
202
- {label: '外国人永久居留证', value: '外国人永久居留证'},
203
- {label: '户口本', value: '户口本'}
204
- ],
205
- relationshipOptions: [
206
- {label: '本人', value: '0'},
207
- {label: '配偶', value: '1'},
208
- {label: '父母', value: '2'},
209
- {label: '子女', value: '3'},
210
- {label: '其他', value: '9'}
211
- ]
212
- }
213
- },
214
- props: {
215
- model: {
216
- type: Object,
217
- default: {}
218
- }
219
- },
220
- ready() {
221
- new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/safe_singleTable_OrderBy`, {
222
- data: {
223
- items: 'ui.*,p.f_province,p.f_city,p.f_district,tu.f_user_type,tu.f_user_id,tu.version as table_version',
224
- tablename: 't_userinfo ui left join t_user_address ua on ui.f_userinfo_id = ua.f_userinfo_id left join t_pcd p on ua.f_pcd_id = p.id left join t_userfiles tu on tu.f_userinfo_id = ui.f_userinfo_id',
225
- condition: `ui.f_userinfo_id = '${this.model.f_userinfo_id}' and tu.f_table_state in ('正常','停用','预备')`,
226
- orderitem: '1'
227
- }
228
- }).then(response => {
229
- this.model = Object.assign({}, this.model, response.data[0])
230
- this.model.f_last_insexpiration_date = response.data[0].f_ins_stop_date
231
- if (response.data[0].f_user_type.includes('非民用')) {
232
- this.model.f_relationship = '9'
233
- } else {
234
- this.model.f_relationship = '0'
235
- }
236
- if (!this.model.province || !this.model.city || !this.model.county){
237
- this.$showMessage('检查档案省、市、区数据是否正常')
238
- }
239
- })
240
- this.model.f_money = ''
241
- this.model.f_fee_type = ''
242
- this.model.f_comments = ''
243
- this.model.f_salecount = 1
244
- this.model.f_ins_number = ''
245
- this.model.f_ins_start_date = Util.toStandardDateString()
246
- this.model.f_id_type = '身份证'
247
- },
248
- methods: {
249
- async commit() {
250
- if (!this.model.f_ins_start_date) {
251
- this.$showMessage('投保日期未选择,请选择后重新尝试。')
252
- return
253
- }
254
- if (!this.model.f_expiration_date) {
255
- this.$showMessage('到期日期未选择,请选择后重新尝试。')
256
- return
257
- }
258
- if (!this.model.f_insurance_type) {
259
- this.$showMessage('保险险种未填写,请填写后重新尝试。')
260
- return
261
- }
262
- if (!this.model.f_money) {
263
- this.$showMessage('金额未填写,请填写后重新尝试。')
264
- return
265
- }
266
- if (!this.model.f_id_type) {
267
- this.$showMessage('证件类型未选择,请选择后重新尝试。')
268
- return
269
- }
270
- if (!this.model.f_idnumber) {
271
- this.$showMessage('证件号码未填写,请填写后重新尝试。')
272
- return
273
- }
274
- if (!this.model.f_relationship) {
275
- this.$showMessage('与投保人关系未选择,请选择后重新尝试。')
276
- return
277
- }
278
- let data = {
279
- "begin_date": this.model.f_ins_start_date,// 保单开始日期 yyyy-mm-dd
280
- "insure_period_display": `${this.model.f_salecount}年`,// 保期
281
- "user_name": this.model.f_user_name,// 投保人姓名
282
- "id_type": this.model.f_id_type,//证件类型
283
- "id_number": this.model.f_idnumber,// 证件号码
284
- "user_phone": this.model.f_user_phone,// 投保人电话
285
- "user_address": this.model.f_address,// 投保人地址
286
- "province": this.model.f_province,//省
287
- "city": this.model.f_city,//市
288
- "county": this.model.f_district,//区
289
- "insuredList": [ //被保人信息
290
- {
291
- "user_name": this.model.f_user_name,// 被保人姓名
292
- "id_type": this.model.f_id_type,//证件类型
293
- "id_number": this.model.f_idnumber,// 证件号码
294
- "relationship": this.model.f_relationship//与投保人关系: 0 本人 1 配偶 2 父母 3 子女 9 其他 若投保人是企业,默认传9
295
- }
296
- ]
297
- }
298
- try {
299
- let commit_data = JSON.parse(JSON.stringify(this.model))
300
- /*const response = await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/jingSuanShi/specialToPolicy`, data)
301
- let commit_data = JSON.parse(JSON.stringify(this.model))
302
- if (response.data.message.includes('成功')) {
303
- commit_data.f_serial_id = response.data.orderNo
304
- } else {
305
- this.$showMessage(response.data.message)
306
- return
307
- }*/
308
- commit_data.f_buy_date = this.create_date
309
- commit_data.f_total_ins_charge = 0
310
- commit_data.f_operatorid = Vue.user.id
311
- commit_data.f_operator = Vue.user.name
312
- if (this.model.f_payment == '余额抵扣'){
313
- if (this.model.f_meter_classify == '机表'){
314
- if((this.model.f_balance -0)-this.model.f_money < 0){
315
- this.$showMessage('当前用户账户余额不够抵扣本次收费,请选择其他的收费方式进行收费')
316
- return
317
- }
318
- commit_data.f_receivable = Number(commit_data.f_money)
319
- commit_data.f_money = 0
320
- }else {
321
- this.$showMessage('仅有机表用户可选择余额抵扣')
322
- return
323
- }
324
- }
325
- commit_data.f_receivable = this.model.f_money
326
- commit_data.f_operate_date = Util.toStandardDateString()
327
- commit_data.f_state = '有效'
328
- commit_data.f_orgid = Vue.user.orgid
329
- commit_data.f_orgname = Vue.user.orgs
330
- commit_data.f_depid = Vue.user.depids
331
- commit_data.f_depname = Vue.user.deps
332
- await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/saveInsInfo`, {data: commit_data})
333
- this.$showMessage('提交成功')
334
- this.$back()
335
- } catch (error) {
336
- this.$showMessage('提交失败')
337
- this.isCommit = false
338
- }
339
- },
340
- changeExpirationDate() {
341
- if (this.model.f_ins_start_date && this.model.f_salecount) {
342
- let factoryDate = new Date(this.model.f_ins_start_date);
343
- let scrapDate = new Date(factoryDate);
344
- scrapDate.setFullYear(factoryDate.getFullYear() + parseInt(this.model.f_salecount));
345
- let year = scrapDate.getFullYear();
346
- let month = (scrapDate.getMonth() + 1).toString().padStart(2, '0');
347
- let day = scrapDate.getDate().toString().padStart(2, '0');
348
- this.model.f_expiration_date = `${year}-${month}-${day}`
349
- }
350
- }
351
- },
352
- watch: {
353
- 'model.f_insurance_type'() {
354
- this.model.f_money = this.$appdata.getSingleValue(this.model.f_insurance_type) || 0
355
- }
356
- }
357
- }
358
- </script>
359
- <style scoped>
360
- .mt-5 {
361
- margin-top: 5px;
362
- }
363
-
364
- .mt-10 {
365
- margin-top: 10px;
366
- }
367
-
368
- .mt-20 {
369
- margin-top: 20px;
370
- }
371
-
372
- .app-row {
373
- background-color: white;
374
- padding: 10px 10px 0 10px;
375
- border-bottom: 1px solid rgba(235, 235, 235, 0.5);
376
- }
377
-
378
- .app-row-none-border {
379
- background-color: white;
380
- padding: 10px 10px 0 10px;
381
- }
382
-
383
- .font {
384
- font: 15px PingFang-SC-Medium;
385
- color: #666666;
386
- }
387
-
388
- .show-font {
389
- font: 15px PingFang-SC-Medium;
390
- color: #333333
391
- }
392
-
393
- .btn-font {
394
- font: 600 16px PingFang-SC-Bold;
395
- color: #499EDF;
396
- }
397
-
398
- .btn-color {
399
- background-color: #FFFFFF;
400
- border-radius: 10px;
401
- border: 1px solid #499EDF;
402
- }
403
- </style>
1
+ <template>
2
+ <div class="auto clearfix">
3
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
4
+ <div class="col-xs-4 col-sm-4 col-md-4">
5
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
6
+ <span class="text-left font">客户编号</span>
7
+ </div>
8
+ <div class="col-xs-8 col-sm-8 col-md-8">
9
+ <p class="text-left show-font">{{ model.f_userinfo_code }}</p>
10
+ </div>
11
+ </div>
12
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
13
+ <div class="col-xs-4 col-sm-4 col-md-4">
14
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
15
+ <span class="text-left font">客户姓名</span>
16
+ </div>
17
+ <div class="col-xs-8 col-sm-8 col-md-8">
18
+ <input v-model="model.f_user_name" class="form-control show-font" placeholder="请输入客户姓名" type="text">
19
+ </div>
20
+ </div>
21
+ <div class="row app-row col-xs-12 col-sm-12 col-md-12">
22
+ <div class="col-xs-4 col-sm-2 col-md-2">
23
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
24
+ <span class="text-left font">客户地址</span>
25
+ </div>
26
+ <div class="col-xs-8 col-sm-10 col-md-10">
27
+ <input v-model="model.f_address" class="form-control show-font" placeholder="请输入客户地址" type="text">
28
+ </div>
29
+ </div>
30
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
31
+ <div class="col-xs-4 col-sm-4 col-md-4">
32
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
33
+ <span class="text-left font">客户电话</span>
34
+ </div>
35
+ <div class="col-xs-8 col-sm-8 col-md-8">
36
+ <input v-model="model.f_user_phone" class="form-control show-font" placeholder="请输入电话号码" type="number">
37
+ </div>
38
+ </div>
39
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
40
+ <div class="col-xs-4 col-sm-4 col-md-4">
41
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
42
+ <span class="text-left font">证件类型</span>
43
+ </div>
44
+ <div class="col-xs-8 col-sm-8 col-md-8">
45
+ <v-select v-model="model.f_id_type" :options="idTypeOptions"
46
+ :value-single="true" :value.sync="model.f_id_type"
47
+ close-on-select placeholder="请选择证件类型"
48
+ style="width: 100%">
49
+ </v-select>
50
+ </div>
51
+ </div>
52
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
53
+ <div class="col-xs-4 col-sm-4 col-md-4">
54
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
55
+ <span class="text-left font">证件号码</span>
56
+ </div>
57
+ <div class="col-xs-8 col-sm-8 col-md-8">
58
+ <input v-model="model.f_idnumber" class="form-control show-font" placeholder="请输入证件号码" type="text">
59
+ </div>
60
+ </div>
61
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
62
+ <div class="col-xs-4 col-sm-4 col-md-4">
63
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
64
+ <span class="text-left font">保单号</span>
65
+ </div>
66
+ <div class="col-xs-8 col-sm-8 col-md-8">
67
+ <input v-model="model.f_ins_number" class="form-control show-font" placeholder="请输入保单号" type="number">
68
+ </div>
69
+ </div>
70
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
71
+ <div class="col-xs-4 col-sm-4 col-md-4">
72
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
73
+ <span class="text-left font">上期保费截至日期</span>
74
+ </div>
75
+ <div class="col-xs-8 col-sm-8 col-md-8">
76
+ <p class="text-left show-font">{{ model.f_last_insexpiration_date }}</p>
77
+ </div>
78
+ </div>
79
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
80
+ <div class="col-xs-4 col-sm-4 col-md-4">
81
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
82
+ <span class="text-left font">投保日期</span>
83
+ </div>
84
+ <div class="col-xs-8 col-sm-8 col-md-8">
85
+ <datepicker v-model="model.f_ins_start_date" :format="'yyyy-MM-dd'" :value.sync="model.f_ins_start_date"
86
+ placeholder="请选择投保日期" style="width: 60%" @change="changeExpirationDate">
87
+ </datepicker>
88
+ </div>
89
+ </div>
90
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
91
+ <div class="col-xs-4 col-sm-4 col-md-4">
92
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
93
+ <span class="text-left font">购买年限</span>
94
+ </div>
95
+ <div class="col-xs-8 col-sm-8 col-md-8">
96
+ <input v-model="model.f_salecount" class="form-control show-font" placeholder="购买年限" style="width: 60%"
97
+ type="number" @change="changeExpirationDate">
98
+ </div>
99
+ </div>
100
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
101
+ <div class="col-xs-4 col-sm-4 col-md-4">
102
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
103
+ <span class="text-left font">购买日期</span>
104
+ </div>
105
+ <div class="col-xs-8 col-sm-8 col-md-8">
106
+ <datepicker v-model="create_date" :format="'yyyy-MM-dd'" :value.sync="create_date"
107
+ placeholder="购买日期" style="width: 60%">
108
+ </datepicker>
109
+ </div>
110
+ </div>
111
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
112
+ <div class="col-xs-4 col-sm-4 col-md-4">
113
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
114
+ <span class="text-left font">到期日期</span>
115
+ </div>
116
+ <div class="col-xs-8 col-sm-8 col-md-8">
117
+ <datepicker v-model="model.f_expiration_date" :format="'yyyy-MM-dd'" :value.sync="model.f_expiration_date"
118
+ placeholder="到期日期" style="width: 60%">
119
+ </datepicker>
120
+ </div>
121
+ </div>
122
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
123
+ <div class="col-xs-4 col-sm-4 col-md-4">
124
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
125
+ <span class="text-left font">保险公司</span>
126
+ </div>
127
+ <div class="col-xs-8 col-sm-8 col-md-8">
128
+ <v-select v-model="model.f_insurance_company" :options="insurance_companys"
129
+ :value-single="true" :value.sync="model.f_insurance_company"
130
+ close-on-select placeholder="保险公司"
131
+ style="width: 100%">
132
+ </v-select>
133
+ </div>
134
+ </div>
135
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
136
+ <div class="col-xs-4 col-sm-4 col-md-4">
137
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
138
+ <span class="text-left font">保险险种</span>
139
+ </div>
140
+ <div class="col-xs-8 col-sm-8 col-md-8">
141
+ <v-select v-model="model.f_insurance_type" :options="insurance_types"
142
+ :value-single="true" :value.sync="model.f_insurance_type"
143
+ close-on-select placeholder="保险险种"
144
+ style="width: 100%">
145
+ </v-select>
146
+ </div>
147
+ </div>
148
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
149
+ <div class="col-xs-4 col-sm-4 col-md-4">
150
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
151
+ <span class="text-left font">金额</span>
152
+ </div>
153
+ <div class="col-xs-8 col-sm-8 col-md-8">
154
+ <input v-model="model.f_money" class="form-control show-font" placeholder="请输入金额" type="number">
155
+ </div>
156
+ </div>
157
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
158
+ <div class="col-xs-4 col-sm-4 col-md-4">
159
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
160
+ <span class="text-left font">与投保人关系</span>
161
+ </div>
162
+ <div class="col-xs-8 col-sm-8 col-md-8">
163
+ <v-select v-model="model.f_relationship" :options="relationshipOptions"
164
+ :value-single="true" :value.sync="model.f_relationship"
165
+ close-on-select placeholder="请选择关系"
166
+ style="width: 100%">
167
+ </v-select>
168
+ </div>
169
+ </div>
170
+ <div class="row app-row col-xs-12 col-sm-6 col-md-6">
171
+ <div class="col-xs-4 col-sm-4 col-md-4">
172
+ <img alt="" src="../../../assets/add.png" style="width: 20px;margin-bottom: 5px">
173
+ <span class="text-left font">收款方式</span>
174
+ </div>
175
+ <div class="col-xs-8 col-sm-8 col-md-8">
176
+ <v-select v-model="model.f_payment" :options="payTypes"
177
+ :value-single="true" :value.sync="model.f_payment"
178
+ close-on-select placeholder="收款方式"
179
+ style="width: 100%">
180
+ </v-select>
181
+ </div>
182
+ </div>
183
+ <div class="row app-row col-xs-12">
184
+ <div class="col-xs-4 col-sm-4 col-md-4">
185
+ <img alt="" src="../../../assets/add.png" style="width: 20px;">
186
+ <span class="text-left font">备注</span>
187
+ </div>
188
+ <div class="col-xs-8 col-sm-8 col-md-8">
189
+ <input v-model="model.f_comments" class="form-control show-font" placeholder="备注">
190
+ </div>
191
+ </div>
192
+ <div class="col-xs-12 text-center app-row">
193
+ <button class="btn btn-lg btn-font btn-color" style="width: 22%;" type="button" @click="commit()">提交</button>
194
+ </div>
195
+ </div>
196
+ </template>
197
+ <script>
198
+ import {HttpResetClass} from 'vue-client'
199
+ import * as Util from '../../../components/Util'
200
+ import Vue from 'vue'
201
+
202
+ export default {
203
+ title: '手机单户抄表',
204
+ data() {
205
+ return {
206
+ create_date: Util.getNowDate(),
207
+ isCommit: false,
208
+ insurance_types: [{label: '请选择', value: ''}, ...this.$appdata.getParam('险种')],
209
+ insurance_companys: [{label: '请选择', value: ''}, ...this.$appdata.getParam('保险公司')],
210
+ payTypes: [{label: '请选择', value: ''}, ...this.$appdata.getParam('付款方式')],
211
+ idTypeOptions: [
212
+ {label: '身份证', value: '身份证'},
213
+ {label: '军官证', value: '军官证'},
214
+ {label: '统一社会信用代码', value: '统一社会信用代码'},
215
+ {label: '港澳居民通行证', value: '港澳居民通行证'},
216
+ {label: '外国人永久居留证', value: '外国人永久居留证'},
217
+ {label: '户口本', value: '户口本'}
218
+ ],
219
+ relationshipOptions: [
220
+ {label: '本人', value: '0'},
221
+ {label: '配偶', value: '1'},
222
+ {label: '父母', value: '2'},
223
+ {label: '子女', value: '3'},
224
+ {label: '其他', value: '9'}
225
+ ]
226
+ }
227
+ },
228
+ props: {
229
+ model: {
230
+ type: Object,
231
+ default: {}
232
+ }
233
+ },
234
+ ready() {
235
+ new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/api/af-safecheck/sql/safe_singleTable_OrderBy`, {
236
+ data: {
237
+ items: 'ui.*,p.f_province,p.f_city,p.f_district,tu.f_user_type,tu.f_user_id,tu.version as table_version',
238
+ tablename: 't_userinfo ui left join t_user_address ua on ui.f_userinfo_id = ua.f_userinfo_id left join t_pcd p on ua.f_pcd_id = p.id left join t_userfiles tu on tu.f_userinfo_id = ui.f_userinfo_id',
239
+ condition: `ui.f_userinfo_id = '${this.model.f_userinfo_id}' and tu.f_table_state in ('正常','停用','预备')`,
240
+ orderitem: '1'
241
+ }
242
+ }).then(response => {
243
+ this.model = Object.assign({}, this.model, response.data[0])
244
+ this.model.f_last_insexpiration_date = response.data[0].f_ins_stop_date
245
+ if (response.data[0].f_user_type.includes('非民用')) {
246
+ this.model.f_relationship = '9'
247
+ } else {
248
+ this.model.f_relationship = '0'
249
+ }
250
+ // if (!this.model.province || !this.model.city || !this.model.county){
251
+ // this.$showMessage('检查档案省、市、区数据是否正常')
252
+ // }
253
+ })
254
+ this.model.f_money = ''
255
+ this.model.f_fee_type = ''
256
+ this.model.f_comments = ''
257
+ this.model.f_salecount = 1
258
+ this.model.f_ins_number = ''
259
+ this.model.f_ins_start_date = Util.toStandardDateString()
260
+ this.model.f_id_type = '身份证'
261
+ },
262
+ methods: {
263
+ async commit() {
264
+ if (!this.model.f_ins_start_date) {
265
+ this.$showMessage('投保日期未选择,请选择后重新尝试。')
266
+ return
267
+ }
268
+ if (!this.model.f_expiration_date) {
269
+ this.$showMessage('到期日期未选择,请选择后重新尝试。')
270
+ return
271
+ }
272
+ if (!this.model.f_insurance_type) {
273
+ this.$showMessage('保险险种未填写,请填写后重新尝试。')
274
+ return
275
+ }
276
+ if (!this.model.f_money) {
277
+ this.$showMessage('金额未填写,请填写后重新尝试。')
278
+ return
279
+ }
280
+ if (!this.model.f_id_type) {
281
+ this.$showMessage('证件类型未选择,请选择后重新尝试。')
282
+ return
283
+ }
284
+ // if (!this.model.f_idnumber) {
285
+ // this.$showMessage('证件号码未填写,请填写后重新尝试。')
286
+ // return
287
+ // }
288
+ if (!this.model.f_relationship) {
289
+ this.$showMessage('与投保人关系未选择,请选择后重新尝试。')
290
+ return
291
+ }
292
+ let data = {
293
+ "begin_date": this.model.f_ins_start_date,// 保单开始日期 yyyy-mm-dd
294
+ "insure_period_display": `${this.model.f_salecount}年`,// 保期
295
+ "user_name": this.model.f_user_name,// 投保人姓名
296
+ "id_type": this.model.f_id_type,//证件类型
297
+ "id_number": this.model.f_idnumber,// 证件号码
298
+ "user_phone": this.model.f_user_phone,// 投保人电话
299
+ "user_address": this.model.f_address,// 投保人地址
300
+ "province": this.model.f_province,//省
301
+ "city": this.model.f_city,//市
302
+ "county": this.model.f_district,//区
303
+ "insuredList": [ //被保人信息
304
+ {
305
+ "user_name": this.model.f_user_name,// 被保人姓名
306
+ "id_type": this.model.f_id_type,//证件类型
307
+ "id_number": this.model.f_idnumber,// 证件号码
308
+ "relationship": this.model.f_relationship//与投保人关系: 0 本人 1 配偶 2 父母 3 子女 9 其他 若投保人是企业,默认传9
309
+ }
310
+ ]
311
+ }
312
+ try {
313
+ let commit_data = JSON.parse(JSON.stringify(this.model))
314
+ /*const response = await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/jingSuanShi/specialToPolicy`, data)
315
+ let commit_data = JSON.parse(JSON.stringify(this.model))
316
+ if (response.data.message.includes('成功')) {
317
+ commit_data.f_serial_id = response.data.orderNo
318
+ } else {
319
+ this.$showMessage(response.data.message)
320
+ return
321
+ }*/
322
+ commit_data.f_buy_date = this.create_date
323
+ commit_data.f_total_ins_charge = 0
324
+ commit_data.f_operatorid = Vue.user.id
325
+ commit_data.f_operator = Vue.user.name
326
+ if (this.model.f_payment == '余额抵扣'){
327
+ if (this.model.f_meter_classify == '机表'){
328
+ if((this.model.f_balance -0)-this.model.f_money < 0){
329
+ this.$showMessage('当前用户账户余额不够抵扣本次收费,请选择其他的收费方式进行收费')
330
+ return
331
+ }
332
+ commit_data.f_receivable = Number(commit_data.f_money)
333
+ commit_data.f_money = 0
334
+ }else {
335
+ this.$showMessage('仅有机表用户可选择余额抵扣')
336
+ return
337
+ }
338
+ }
339
+ commit_data.f_receivable = this.model.f_money
340
+ commit_data.f_operate_date = Util.toStandardDateString()
341
+ commit_data.f_state = '有效'
342
+ commit_data.f_orgid = Vue.user.orgid
343
+ commit_data.f_orgname = Vue.user.orgs
344
+ commit_data.f_depid = Vue.user.depids
345
+ commit_data.f_depname = Vue.user.deps
346
+ await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/api/af-revenue/logic/saveInsInfo`, {data: commit_data})
347
+ this.$showMessage('提交成功')
348
+ this.$back()
349
+ } catch (error) {
350
+ this.$showMessage('提交失败')
351
+ this.isCommit = false
352
+ }
353
+ },
354
+ changeExpirationDate() {
355
+ if (this.model.f_ins_start_date && this.model.f_salecount) {
356
+ let factoryDate = new Date(this.model.f_ins_start_date);
357
+ let scrapDate = new Date(factoryDate);
358
+ scrapDate.setFullYear(factoryDate.getFullYear() + parseInt(this.model.f_salecount));
359
+ let year = scrapDate.getFullYear();
360
+ let month = (scrapDate.getMonth() + 1).toString().padStart(2, '0');
361
+ let day = (scrapDate.getDate()-1).toString().padStart(2, '0');
362
+ this.model.f_expiration_date = `${year}-${month}-${day}`
363
+ }
364
+ }
365
+ },
366
+ watch: {
367
+ 'model.f_insurance_type'() {
368
+ this.model.f_money = Number(this.$appdata.getSingleValue(this.model.f_insurance_type) || 0) * Number(this.model.f_salecount)
369
+ },
370
+ 'model.f_salecount'() {
371
+ this.model.f_money = Number(this.$appdata.getSingleValue(this.model.f_insurance_type) || 0) * Number(this.model.f_salecount)
372
+ }
373
+ }
374
+ }
375
+ </script>
376
+ <style scoped>
377
+ .mt-5 {
378
+ margin-top: 5px;
379
+ }
380
+
381
+ .mt-10 {
382
+ margin-top: 10px;
383
+ }
384
+
385
+ .mt-20 {
386
+ margin-top: 20px;
387
+ }
388
+
389
+ .app-row {
390
+ background-color: white;
391
+ padding: 10px 10px 0 10px;
392
+ border-bottom: 1px solid rgba(235, 235, 235, 0.5);
393
+ }
394
+
395
+ .app-row-none-border {
396
+ background-color: white;
397
+ padding: 10px 10px 0 10px;
398
+ }
399
+
400
+ .font {
401
+ font: 15px PingFang-SC-Medium;
402
+ color: #666666;
403
+ }
404
+
405
+ .show-font {
406
+ font: 15px PingFang-SC-Medium;
407
+ color: #333333
408
+ }
409
+
410
+ .btn-font {
411
+ font: 600 16px PingFang-SC-Bold;
412
+ color: #499EDF;
413
+ }
414
+
415
+ .btn-color {
416
+ background-color: #FFFFFF;
417
+ border-radius: 10px;
418
+ border: 1px solid #499EDF;
419
+ }
420
+ </style>