[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 data
}) })
} }
//保全试算
export function trial(data) {
return request({
url: getUrl('/edor/edor/trial', 1),
method: 'post',
data
})
}
//签名信息保存 //签名信息保存
export function edorSignSave(data) { export function edorSignSave(data) {
return request({ return request({

View File

@@ -4,6 +4,7 @@
## 保全项枚举(各个保全项文件夹也以此枚举命名) ## 保全项枚举(各个保全项文件夹也以此枚举命名)
detail (保全进度查询,前端文件夹名称)
AA("AA","增加保险金额","AA","G"), AA("AA","增加保险金额","AA","G"),
AC("AC","投保人资料变更","AC","U"), AC("AC","投保人资料变更","AC","U"),
AM("AM","投保人变更","AM","U"), AM("AM","投保人变更","AM","U"),

View File

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

View File

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

View File

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

View File

@@ -6,24 +6,24 @@
<!-- 保单信息 --> <!-- 保单信息 -->
<p style="border-bottom: 1px solid #ebedf0" class=" fs15 fwb pl10 pv12">保单信息</p> <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.riskName" required /> <van-cell title="保单号" :value="detail.contNo" required />
<van-cell title="投保人" :value="detail.appntName" required /> <van-cell title="投保人" :value="detail.appntName" required />
<van-cell title="被保险人" :value="detail.insuredName" required /> <van-cell title="被保险人" :value="detail.insuredName" required />
<van-cell title="保单生效日期" :value="detail.cvaliDate" required /> <van-cell title="保单生效日期" :value="detail.cvaliDate" required />
<van-cell title="退保金额" :value="detail.contState | amtFormat" required /> <van-cell title="退保金额" :value="ctTrialDto.fee | amtFormat" required />
<van-cell title="万能险退保手续费比例" :value="detail.accountName" required /> <van-cell title="万能险退保手续费比例" :value="ctTrialDto.feeRate" required />
</van-cell-group> </van-cell-group>
<!-- 账号信息 --> <!-- 账号信息 -->
<div class="account-info-container"> <div class="account-info-container">
<van-cell-group class="mt10"> <van-cell-group class="mt10">
<p style="border-bottom: 1px solid #ebedf0" class=" fs15 fwb pl10 pv12">账号信息</p> <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 <van-field
v-model="account" v-model="account"
label="退款账户" label="退款账户"
placeholder="请选择" placeholder="请选择"
right-icon="arrow" right-icon="arrow"
@click="accountPopup = true" @click="changeAccount"
readonly readonly
v-validate="'required'" v-validate="'required'"
data-vv-name="退款账户" 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-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-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 <van-field
v-model="surrenderReason" v-model="surrenderReason"
label="退保原因" label="退保原因"
@@ -105,10 +105,10 @@
<van-list> <van-list>
<van-cell <van-cell
v-for="item in surrenderReasonList" v-for="item in surrenderReasonList"
:key="item.type" :key="item.id"
:title="item.title" :title="item.text"
class="text-center" class="text-center"
@click="chooseSurrderReason(item.title, item.type)" @click="chooseSurrderReason(item.text, item.id)"
/> />
</van-list> </van-list>
</van-popup> </van-popup>
@@ -121,8 +121,11 @@
<script> <script>
import { Field, Cell, CellGroup, Popup, List, Row, Col } from 'vant' import { Field, Cell, CellGroup, Popup, List, Row, Col } from 'vant'
import BankCardScan from '@/components/ebiz/sale/BankCardScan' 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 { getBankList } from '@/api/ebiz/sale/sale'
import dataDic from '../js/data-dictionary.js'
import filters from '@/views/ebiz/preserve/filters'
export default { export default {
name: 'surrenderInfo', name: 'surrenderInfo',
components: { components: {
@@ -137,57 +140,110 @@ export default {
}, },
data() { data() {
return { return {
policy: null, //保单详情
customerInfo: {}, //客户详情
bank: '', //开户银行 bank: '', //开户银行
bankPopup: false,
bankCode: '', //银行编码 bankCode: '', //银行编码
bankPopup: false, // 展示银行列表
bankList: [], // 银行列表 bankList: [], // 银行列表
bankId: '374198274319824389127341', // 银行卡号 bankId: '', // 银行卡号
bankProvince: '',
isScan: false, // 是否扫描银行卡 isScan: false, // 是否扫描银行卡
surrenderReasonList: [],
account: '原银行账户', //退款账户 account: '原银行账户', //退款账户
accountType: '1', //退款账户 accountType: '1', //退款账户
accountPopup: false, //展示退款账户弹框 accountPopup: false, //展示退款账户弹框
accountList: [ accountList: [], //退款银行账户
//退款账户列表
{ type: '1', title: '原银行账户' },
{ type: '2', title: '新银行账户' }
],
otherReason: '', //其他退款原因 otherReason: '', //其他退款原因
surrenderReason: '', //退款原因 surrenderReason: '', //退款原因
surrenderReasonType: '', //退款原因 surrenderReasonType: '', //退款原因
surrenderReasonPopup: false, //展示退保原因弹框 surrenderReasonPopup: false, //展示退保原因弹框
surrenderReasonList: [ ctTrialDto: {},
//退款原因列表
{ type: '1', title: '个人经济原因,无力负担保费' },
{ type: '2', title: '对险种不满意' },
{ type: '3', title: '对业务员不满意' },
{ type: '4', title: '对公司服务不满意' },
{ type: '5', title: '人情投保' },
{ type: '6', title: '其他' }
],
detail: { detail: {
contNo: 'HL052019110010001047', riskName: '',
riskName: '鼎诚人寿重大疾病险重大疾病险重大疾病险', contNo: '',
appntName: '嘿嘿', appntName: '',
insuredName: '狗乐', insuredName: '',
insuPayType: '1', cvaliDate: '',
cvaliDate: '2020-12-31', surrenderMoney: ''
contState: '001', }
accountName: '彭小芳',
bankCode: '102',
bankNo: '374198274319824389127341'
} //保单详情
} }
}, },
created() { created() {
this.getBank() this.customerInfo = JSON.parse(localStorage['preserve-customerInfo']) //客户详情
this.policy = JSON.parse(localStorage['preserve-policy'])
}, },
mounted() { mounted() {
// 筛选按钮的点击事件 // 筛选按钮的点击事件
window.appCallBack = this.appCallBack 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: { 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) { chooseBank(name, code) {
this.bank = name this.bank = name
@@ -310,7 +366,7 @@ export default {
// 获取银行卡列表 // 获取银行卡列表
async getBank() { async getBank() {
let data = { let data = {
operateType: 'edor_bank_type' operateType: 'claim_bank_type'
} }
let res = await getBankList(data) let res = await getBankList(data)
if (res.result == '0') { 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', id: 'd',
text: '强制终止' 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: { preserveUserType: {