[FIX]【保全】退保、进度查询、filters

This commit is contained in:
yuweiqi
2020-06-04 21:11:46 +08:00
parent f70d800586
commit 1a88cd470f
8 changed files with 368 additions and 138 deletions

View File

@@ -51,6 +51,14 @@ export function queryEdorList(data) {
data
})
}
//保全试算
export function trial(data) {
return request({
url: getUrl('/edor/edor/trial', 1),
method: 'post',
data
})
}
//签名信息保存
export function edorSignSave(data) {
return request({

View File

@@ -4,92 +4,93 @@
## 保全项枚举(各个保全项文件夹也以此枚举命名)
AA("AA","增加保险金额","AA","G"),
AC("AC","投保人资料变更","AC","U"),
AM("AM","投保人变更","AM","U"),
AP("AP","宽末处理方式变更","AP","U"),
AR("AR","保单账户部分领取","AR","P"),
AT("AT","年金险解除合同","AT","P"),
AX("AX","年金险协议减人","AX","U"),
AZ("AZ","年金险减人","AZ","U"),
BB("BB","客户基本资料变更","BB","U"),
BC("BC","受益人变更","BC","U"),
BE("BE","被保险人复效","BE","Q"),
BI("BI","银行信息变更","BI","U"),
BM("BM","红利领取方式变更","BM","U"),
BR("BR","保险期间恢复","BR","U"),
BS("BS","保险期间中断","BS","U"),
BZ("BZ","建工险保单中止","BZ","U"),
CA("CA","帐户金额转移","CA","P"),
CB("CB","退保回退","CB","G"),
CC("CC","建工险工程面积造价变更","CC","U"),
CD("CD","客户地址信息变更","CD","U"),
CM("CM","客户重要资料变更","CM","U"),
CS("CS","签名变更","CS","U"),
CT("CT","退保","CT","P"),
DA("DA","增加附加特约责任","DA","U"),
DB("DB","红利领取","DB","P"),
DT("DT","附加特约责任终止","DT","U"),
EB("EB","差错回退","EB","U"),
EF("EF","终止附加险","EF","P"),
EI("EI","延长保险期间","EI","G"),
EN("EN","续保方式变更","EN","U"),
ER("ER","满期降低保额续保","ER","G"),
ES("ES","终止险种","ES","P"),
FM("FM","交费期间变更","FM","U"),
GA("GA","年金转换","GA","U"),
GB("GB","领取年龄变更","GB","U"),
GC("GC","生存给付转账授权","GC","U"),
GM("GM","领取方式变更","GM","U"),
HI("HI","补充告知","HI","U"),
HJ("HJ","万能缓缴期","HJ","U"),
IC("IC","客户重要资料变更(保单层","IC","U"),
IG("IG","投连险提前通知领取","IG","P"),
IO("IO","职业变更","IO","U"),
IP("IP","追加保费","IP","G"),
IR("IR","更换被保险人","IR","U"),
IT("IT","投连险退保","IT","P"),
JB("JB","减保选择权","JB","U"),
LG("LG","生存给付柜面领取","LG","P"),
LN("LN","保单质押贷款","LN","P"),
LR("LR","保单遗失补发","LR","G"),
MF("MF","长险费用变更","MF","U"),
MR("MR","主险续保","MR","G"),
NC("NC","新增保险方案","NC","G"),
NI("NI","新增保险","NI","G"),
NP("NP","保单新增险种","NP","G"),
NR("NR","被保人增加险种","NR","G"),
NS("NS","新增附加险","NS","G"),
OP("OP","万能险部分领取","OP","G"),
PA("PA","投资计划变更","PA","U"),
PC("PC","续期交费信息变更","PC","U"),
PF("PF","保单冻结及解冻","PF","U"),
PG("PG","投连险随时领取","PG","G"),
PL("PL","保单挂失、解挂","PL","U"),
PM("PM","缴费频率变更","PM","U"),
PR("PR","保单迁移","PR","U"),
PT("PT","减少保险金额","PT","P"),
PU("PU","减额缴清","PU","G"),
RB("RB","保全回退","RB","G"),
RC("RC","交费提醒方式变更","RC","U"),
RD("RD","部分领取","RD","P"),
RE("RE","保单复效","RE","Q"),
RF("RF","贷款清偿","RF","G"),
RG("RG","满期领取","RG","P"),
RN("RN","不定期缴费","RN","P"),
RR("RR","无名单实名化","RR","U"),
SA("SA","建工险保单延期","SA","U"),
SC("SC","特约变更","SC","U"),
SF("SF","公共保额收付费","SF","G"),
SM("SM","服务类维护","SM","U"),
TA("TA","转养老金","TA","U"),
TI("TI","投连账户转换","TI","U"),
TR("TR","保费自垫清偿","TR","G"),
TS("TS","投连复缴","TS","G"),
VC("VC","保单归属规则维护","VC","U"),
VR("VR","被保险人归属规则变更","VR","U"),
WP("WP","万能追加保费","WP","G"),
WT("WT","犹豫期退保","WT","P"),
XS("XS","协议减保","XS","U"),
XT("XT","协议退保","XT","P"),
ZT("ZT","减少被保险人","ZT","P");
detail (保全进度查询,前端文件夹名称)
AA("AA","增加保险金额","AA","G"),
AC("AC","投保人资料变更","AC","U"),
AM("AM","投保人变更","AM","U"),
AP("AP","宽末处理方式变更","AP","U"),
AR("AR","保单账户部分领取","AR","P"),
AT("AT","年金险解除合同","AT","P"),
AX("AX","年金险协议减人","AX","U"),
AZ("AZ","年金险减人","AZ","U"),
BB("BB","客户基本资料变更","BB","U"),
BC("BC","受益人变更","BC","U"),
BE("BE","被保险人复效","BE","Q"),
BI("BI","银行信息变更","BI","U"),
BM("BM","红利领取方式变更","BM","U"),
BR("BR","保险期间恢复","BR","U"),
BS("BS","保险期间中断","BS","U"),
BZ("BZ","建工险保单中止","BZ","U"),
CA("CA","帐户金额转移","CA","P"),
CB("CB","退保回退","CB","G"),
CC("CC","建工险工程面积造价变更","CC","U"),
CD("CD","客户地址信息变更","CD","U"),
CM("CM","客户重要资料变更","CM","U"),
CS("CS","签名变更","CS","U"),
CT("CT","退保","CT","P"),
DA("DA","增加附加特约责任","DA","U"),
DB("DB","红利领取","DB","P"),
DT("DT","附加特约责任终止","DT","U"),
EB("EB","差错回退","EB","U"),
EF("EF","终止附加险","EF","P"),
EI("EI","延长保险期间","EI","G"),
EN("EN","续保方式变更","EN","U"),
ER("ER","满期降低保额续保","ER","G"),
ES("ES","终止险种","ES","P"),
FM("FM","交费期间变更","FM","U"),
GA("GA","年金转换","GA","U"),
GB("GB","领取年龄变更","GB","U"),
GC("GC","生存给付转账授权","GC","U"),
GM("GM","领取方式变更","GM","U"),
HI("HI","补充告知","HI","U"),
HJ("HJ","万能缓缴期","HJ","U"),
IC("IC","客户重要资料变更(保单层","IC","U"),
IG("IG","投连险提前通知领取","IG","P"),
IO("IO","职业变更","IO","U"),
IP("IP","追加保费","IP","G"),
IR("IR","更换被保险人","IR","U"),
IT("IT","投连险退保","IT","P"),
JB("JB","减保选择权","JB","U"),
LG("LG","生存给付柜面领取","LG","P"),
LN("LN","保单质押贷款","LN","P"),
LR("LR","保单遗失补发","LR","G"),
MF("MF","长险费用变更","MF","U"),
MR("MR","主险续保","MR","G"),
NC("NC","新增保险方案","NC","G"),
NI("NI","新增被保险人","NI","G"),
NP("NP","保单新增险种","NP","G"),
NR("NR","被保人增加险","NR","G"),
NS("NS","新增附加险","NS","G"),
OP("OP","万能险部分领取","OP","G"),
PA("PA","投资计划变更","PA","U"),
PC("PC","续期交费信息变更","PC","U"),
PF("PF","保单冻结及解冻","PF","U"),
PG("PG","投连险随时领取","PG","G"),
PL("PL","保单挂失、解挂","PL","U"),
PM("PM","缴费频率变更","PM","U"),
PR("PR","保单迁移","PR","U"),
PT("PT","减少保险金额","PT","P"),
PU("PU","减额缴清","PU","G"),
RB("RB","保全回退","RB","G"),
RC("RC","交费提醒方式变更","RC","U"),
RD("RD","部分领取","RD","P"),
RE("RE","保单复效","RE","Q"),
RF("RF","贷款清偿","RF","G"),
RG("RG","满期领取","RG","P"),
RN("RN","不定期缴费","RN","P"),
RR("RR","无名单实名化","RR","U"),
SA("SA","建工险保单延期","SA","U"),
SC("SC","特约变更","SC","U"),
SF("SF","公共保额收付费","SF","G"),
SM("SM","服务类维护","SM","U"),
TA("TA","转养老金","TA","U"),
TI("TI","投连账户转换","TI","U"),
TR("TR","保费自垫清偿","TR","G"),
TS("TS","投连复缴","TS","G"),
VC("VC","保单归属规则维护","VC","U"),
VR("VR","被保险人归属规则变更","VR","U"),
WP("WP","万能追加保费","WP","G"),
WT("WT","犹豫期退保","WT","P"),
XS("XS","协议保","XS","U"),
XT("XT","协议退保","XT","P"),
ZT("ZT","减少被保险人","ZT","P");

View File

@@ -99,7 +99,6 @@ export default {
}).then(res => {
this.$toast.clear()
if (res.result == 0) {
console.log('res=======', res)
this.list = res.content.customerList
if (this.list.length == 0) {
this.$toast(`暂无此客户`)
@@ -141,11 +140,11 @@ export default {
break
case 'surrender':
surrenderType = '4'
url = `/preserve/common/policyList?entry=WT`
url = `/preserve/common/policyList?entry=CT`
break
case 'hesitateSurrender':
surrenderType = '5'
url = `/preserve/common/policyList?entry=CT`
url = `/preserve/common/policyList?entry=WT`
break
default:
break

View File

@@ -102,9 +102,8 @@ export default {
contNo: this.policy.contNo,
edorType: 'BC',
customerNo: this.customerInfo.customerNo,
idno: this.customerInfo.idno,
mobile: this.customerInfo.mobile,
name: this.customerInfo.name
idno: this.customerInfo.idNo,
mobile: this.customerInfo.mobile
}
return new Promise((resolve, reject) => {
policyInfo(data).then(
@@ -117,7 +116,7 @@ export default {
})
resolve()
} else {
reject(this.$toast(res.resultMessage))
reject(this.$toast(res.content))
}
},
error => {

View File

@@ -100,7 +100,6 @@ export default {
//点击保单,跳转页面
toChange(detail) {
console.log(detail)
localStorage['preserve-policy'] = JSON.stringify(detail)
let url
switch (this.entry) {

View File

@@ -6,24 +6,24 @@
<!-- 保单信息 -->
<p style="border-bottom: 1px solid #ebedf0" class=" fs15 fwb pl10 pv12">保单信息</p>
<van-cell title="产品名称" :value="detail.riskName" required />
<van-cell title="保单号" :value="detail.riskName" required />
<van-cell title="保单号" :value="detail.contNo" required />
<van-cell title="投保人" :value="detail.appntName" required />
<van-cell title="被保险人" :value="detail.insuredName" required />
<van-cell title="保单生效日期" :value="detail.cvaliDate" required />
<van-cell title="退保金额" :value="detail.contState | amtFormat" required />
<van-cell title="万能险退保手续费比例" :value="detail.accountName" required />
<van-cell title="退保金额" :value="ctTrialDto.fee | amtFormat" required />
<van-cell title="万能险退保手续费比例" :value="ctTrialDto.feeRate" required />
</van-cell-group>
<!-- 账号信息 -->
<div class="account-info-container">
<van-cell-group class="mt10">
<p style="border-bottom: 1px solid #ebedf0" class=" fs15 fwb pl10 pv12">账号信息</p>
<van-cell title="开户人姓名" required>张三</van-cell>
<van-cell title="开户人姓名" required :value="ctTrialDto.newAccName" />
<van-field
v-model="account"
label="退款账户"
placeholder="请选择"
right-icon="arrow"
@click="accountPopup = true"
@click="changeAccount"
readonly
v-validate="'required'"
data-vv-name="退款账户"
@@ -55,7 +55,7 @@
/>
<van-button type="danger" size="small" round class="bankCard mr10 w110 h20" @click="cardScanning('0')" v-no-more-click="2000">银行卡扫描</van-button>
</van-cell-group>
<van-field v-model="bank" label="开户银行所在地" placeholder="请输入" v-validate="'required'" data-vv-name="开户银行所在地" required />
<van-field v-model="bankProvince" label="开户银行所在地" placeholder="请输入" v-validate="'required'" data-vv-name="开户银行所在地" required />
<van-field
v-model="surrenderReason"
label="退保原因"
@@ -105,10 +105,10 @@
<van-list>
<van-cell
v-for="item in surrenderReasonList"
:key="item.type"
:title="item.title"
:key="item.id"
:title="item.text"
class="text-center"
@click="chooseSurrderReason(item.title, item.type)"
@click="chooseSurrderReason(item.text, item.id)"
/>
</van-list>
</van-popup>
@@ -121,8 +121,11 @@
<script>
import { Field, Cell, CellGroup, Popup, List, Row, Col } from 'vant'
import BankCardScan from '@/components/ebiz/sale/BankCardScan'
// import { orderDetail, customerInfoChange } from '@/api/ebiz/preserve/preserve'
import { policyInfo, trial } from '@/api/ebiz/preserve/preserve'
import { getBankList } from '@/api/ebiz/sale/sale'
import dataDic from '../js/data-dictionary.js'
import filters from '@/views/ebiz/preserve/filters'
export default {
name: 'surrenderInfo',
components: {
@@ -137,57 +140,110 @@ export default {
},
data() {
return {
policy: null, //保单详情
customerInfo: {}, //客户详情
bank: '', //开户银行
bankPopup: false,
bankCode: '', //银行编码
bankPopup: false, // 展示银行列表
bankList: [], // 银行列表
bankId: '374198274319824389127341', // 银行卡号
bankId: '', // 银行卡号
bankProvince: '',
isScan: false, // 是否扫描银行卡
surrenderReasonList: [],
account: '原银行账户', //退款账户
accountType: '1', //退款账户
accountPopup: false, //展示退款账户弹框
accountList: [
//退款账户列表
{ type: '1', title: '原银行账户' },
{ type: '2', title: '新银行账户' }
],
accountList: [], //退款银行账户
otherReason: '', //其他退款原因
surrenderReason: '', //退款原因
surrenderReasonType: '', //退款原因
surrenderReasonPopup: false, //展示退保原因弹框
surrenderReasonList: [
//退款原因列表
{ type: '1', title: '个人经济原因,无力负担保费' },
{ type: '2', title: '对险种不满意' },
{ type: '3', title: '对业务员不满意' },
{ type: '4', title: '对公司服务不满意' },
{ type: '5', title: '人情投保' },
{ type: '6', title: '其他' }
],
ctTrialDto: {},
detail: {
contNo: 'HL052019110010001047',
riskName: '鼎诚人寿重大疾病险重大疾病险重大疾病险',
appntName: '嘿嘿',
insuredName: '狗乐',
insuPayType: '1',
cvaliDate: '2020-12-31',
contState: '001',
accountName: '彭小芳',
bankCode: '102',
bankNo: '374198274319824389127341'
} //保单详情
riskName: '',
contNo: '',
appntName: '',
insuredName: '',
cvaliDate: '',
surrenderMoney: ''
}
}
},
created() {
this.getBank()
this.customerInfo = JSON.parse(localStorage['preserve-customerInfo']) //客户详情
this.policy = JSON.parse(localStorage['preserve-policy'])
},
mounted() {
// 筛选按钮的点击事件
window.appCallBack = this.appCallBack
this.accountList = dataDic.accountList //退款银行账户列表
this.surrenderReasonList = dataDic.surrenderReasonList //退款原因列表
this.getBank()
this.getPolicyInfo()
this.getTrial({ customerNo: this.customerInfo.customerNo, edorType: this.$route.query.entry, contNo: this.policy.contNo })
},
filters: {
idToText: filters.idToText,
amtFormat: filters.amtFormat
},
methods: {
//获取试算信息
getTrial(data) {
trial(data).then(
res => {
if (res.result == '0') {
this.ctTrialDto = res.content
} else {
this.$toast(res.resultMessage)
}
},
error => {
console.log(error)
}
)
},
//获取初始化信息
getPolicyInfo() {
let data = {
contNo: this.policy.contNo,
edorType: 'CT',
customerNo: this.customerInfo.customerNo,
idno: this.customerInfo.idNo
}
return new Promise((resolve, reject) => {
policyInfo(data).then(
res => {
if (res.result == '0') {
// this.beneficiaries = res.content.cont.bcBnfList
// //isNewInfo 是否新信息 0-是 1-否
// this.beneficiaries.forEach(item => {
// item.isNewInfo = '1'
// })
let resData = res.content.cont
this.detail = Object.assign({}, this.detail, resData, {
appntName: resData.appnt.appntName,
insuredName: resData.insuredList[0].insuredName
})
resolve()
} else {
reject(this.$toast(res.content))
}
},
error => {
reject(console.log(error))
}
)
})
},
changeAccount() {
// this.accountPopup = true
// if(this.accountType == '1'){
// this.bankId = this.ctTrialDto.newAccNo
// this.bankProvince = this.ctTrialDto.newBankProvince
// this.bank = this.ctTrialDto.newBankProvince
//TODO
// }
},
// 选择银行
chooseBank(name, code) {
this.bank = name
@@ -310,7 +366,7 @@ export default {
// 获取银行卡列表
async getBank() {
let data = {
operateType: 'edor_bank_type'
operateType: 'claim_bank_type'
}
let res = await getBankList(data)
if (res.result == '0') {

View File

@@ -0,0 +1,157 @@
import Common from '@/assets/js/common'
import dataDic from '@/views/ebiz/preserve/js/data-dictionary'
/*
* 把其他filter放到index.js里面一起引入
*/
export default {
m2km(value) {
return Common.m2km(value)
},
/**
* 除法
* @param {Number} dividend 被除数
* @param {Number} divisor 除数
* @return {Number} 值
*/
divide(dividend, divisor) {
return Common.divide(dividend, divisor)
},
/**
* 保留小数位替代Number.toFixed()方法针对于某些数据16.455)不能做到四舍五入
* @param {[type]} value 数值
* @param {[type]} num 几位小数
* @return {[type]} 值
*/
toFixed(value, num) {
return Common.toFixed(value, num)
},
/**
* 如果是小数则保留小数位,默认两位
* @param {[type]} value 数值
* @param {Number} num 几位小数
* @return {[type]} 值
*/
toFloatFixed(value, num) {
Common.toFloatFixed(value, num)
},
/**
* 转化成工作时间
* @param {[type]} value 值
* @return {[type]} [description]
*/
businessHour(value) {
let time = ''
if (value) {
const arr = value.split(';')
time =
'星期' +
Common.getWeek(arr[0]) +
' ~ 星期' +
Common.getWeek(arr[1]) +
' ' +
Common.getTime(arr[2]) +
':' +
Common.getTime(arr[3]) +
' ~ ' +
Common.getTime(arr[4]) +
':' +
Common.getTime(arr[5])
}
return time
},
isEmptyObject(o) {
return Common.isEmptyObject(o)
},
wan(value) {
const isNumber = typeof value === 'number'
return isNumber && value / 10000
},
// 除以100保留小数位
divide100(value, num = 2, isFill) {
let values = Number(value)
const regular = /^\d+\.\d+/
if (values) {
values = values / 100
if (regular.test(values)) {
return Common.toFixed(values, num)
} else {
return Common.toFixed(values)
}
} else {
if (isFill) {
// 是否需要填充
value = 0
}
}
return value
},
discount(value, position = 0) {
let ret = value.split('.')
if (position == 0) {
ret = ret[0]
} else if (position == 1) {
ret = ret[1]
}
return ret
},
// 数据字典 id 转 text
idToText(id, type) {
let text = ''
dataDic[type].some(item => {
if (item.id == id) {
text = item.text
}
})
return text
},
/**
* 处理千分位并保留两位小数
* @param {[type]} moneyStr 钱
* @param {Boolean} flag 是否保留两位小数
* @return {[type]} 值
*/
// 处理钱的格式
moneyFormat(moneyStr, flag = false) {
// let str = (Math.round(moneyStr * 100) / 100).toString()
// let pointIdx = str.indexOf('.')
// if (pointIdx < 0) {
// str = str.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')
// pointIdx = str.length
// str += '.'
// } else {
// let int = str.substr(0, pointIdx)
// int.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,')
// }
// while (str.length <= pointIdx + 2) {
// str += '0'
// }
// return str
//摘自国富群:这个在报文转换的时候,核心返回“—”的时候,直接返回空。 @于维琦(于维琦) 前端如果保额为空,直接展示“—”@皮伟(皮伟) 你跟她碰一下怎么改
if (moneyStr === null) {
return '—'
}
let str = ''
if (flag) {
str = (moneyStr + '').replace(/\d{1,3}(?=(\d{3})+$)/g, '$&,')
} else {
str = parseFloat(moneyStr)
.toFixed(2)
.replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
}
return str
},
// 处理保额的格式化
amtFormat(moneyStr) {
let str = ''
str = (moneyStr + '').replace(/\d{1,3}(?=(\d{3})+$)/g, '$&,')
return str
}
}

View File

@@ -80,6 +80,17 @@ export default {
id: 'd',
text: '强制终止'
}
],
//退款账户列表
accountList: [{ type: '1', title: '原银行账户' }, { type: '2', title: '新银行账户' }],
//退款原因列表
surrenderReasonList: [
{ id: '1', text: '个人经济原因,无力负担保费' },
{ id: '2', text: '对险种不满意' },
{ id: '3', text: '对业务员不满意' },
{ id: '4', text: '对公司服务不满意' },
{ id: '5', text: '人情投保' },
{ id: '6', text: '其他' }
]
/*
preserveUserType: {