Merge branch 'dev' of 112.124.100.131:GFRS/ebiz-h5 into dev

This commit is contained in:
liyuetong
2021-06-09 20:30:51 +08:00
4 changed files with 241 additions and 10 deletions

View File

@@ -108,3 +108,21 @@ export function saveOrUpdateDocument(data) {
data
})
}
// 获取验证码
export function getAuthCode(data) {
return request({
url: getUrl('/customer/authcode/loginedSend', 1),
method: 'post',
data
})
}
// 卡单撤单
export function revokeOrder(data) {
return request({
url: getUrl('/sale/order/revokeOrder', 1),
method: 'post',
data
})
}

View File

@@ -2119,6 +2119,16 @@ export default {
shortName: '重疾险',
name: '国富人寿八桂无忧重大疾病保险D款',
code: 'GFRS_M0044'
},
{
shortName: '医疗险',
name: '国富人寿特定疾病药品费用医疗保险',
code: 'GFRS_M0045'
},
{
shortName: '重疾险',
name: '国富人寿世纪无忧重大疾病保险',
code: 'GFRS_M0046'
}
],
// 职级

View File

@@ -59,6 +59,9 @@
<div v-if="orderItem.isCanPay && (orderItem.orderStatus == '02' || orderItem.orderStatus == '19' || orderItem.orderStatus == '55')">
<van-button round @click="goPay(orderItem.orderNo)" size="small" class="mr5" type="danger" v-no-more-click="1000">去支付</van-button>
</div>
<div v-if="canRevoke[orderItem.orderStatus]">
<van-button round @click="revokeOrder(orderItem)" size="small" class="mr5" type="danger">撤单</van-button>
</div>
</div>
</div>
<template v-if="NewItems.length === 0">
@@ -67,6 +70,25 @@
<p class="gray text-center pt20">暂无订单</p>
</li>
</template>
<van-dialog
class="dialog-delete"
@confirm="checkCaptchaCode"
@cancel="cancelCaptchaCode"
:before-close="beforeClose"
confirm-button-color="#fff"
v-model="revokePanelShow"
title="短信验证"
show-cancel-button
>
<p class="captchaReceiver">投保人手机号: {{ captchaReceiver | phoneNumFilter }}</p>
<van-field v-model="sms" center clearable placeholder="请输入短信验证码">
<template #button>
<van-button :disabled="sendTime !== 0" v-no-more-click="1000" @click="getCaptchaCode" size="small" type="danger">{{
sendTime ? `${sendTime}s后获取` : '获取验证码'
}}</van-button>
</template>
</van-field>
</van-dialog>
</div>
</van-list>
</div>
@@ -76,8 +98,8 @@
</template>
<script>
import { getCardList, getOrderList } from '@/api/ebiz/cardList/cardList.js'
import { Tab, Tabs, List, Sticky } from 'vant'
import { getCardList, getOrderList, getAuthCode, revokeOrder } from '@/api/ebiz/cardList/cardList.js'
import {Tab, Tabs, List, Sticky, Toast} from 'vant'
import dataDictionary from '@/assets/js/utils/data-dictionary' //根据数据字典找到订单状态
// import formatDate from '@/assets/js/utils/date-utils'
@@ -103,7 +125,27 @@ export default {
list: [],
// orderList: [{ text: '11111' }, { text: '11111' }], //我的订单
orderList: [], //我的订单
iNow: 0
canRevoke: {
'19': true,
'02': true,
'48': true,
'49': true,
'55': true,
'58': true,
'46': true,
'50': true,
'51': true
},
iNow: 0,
sms: '',
smsId: '',
sendTime: 0,
revokePanelShow:false,
getCaptcha: false,
captchaTimer: null,
captchaReceiver: '',
revokeOrderNo: '',
captchaMaped: false
}
},
created() {
@@ -260,7 +302,93 @@ export default {
path: `/cardList/pay`
}
})
}
},
//撤单
revokeOrder(order) {
console.dir(order)
this.$dialog
.confirm({
className: 'dialog-delete',
title: '提示',
message: '撤单后,数据将不可恢复,您确定要撤单吗?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
this.revokePanelShow = true
this.captchaReceiver = order.appntMobile
this.revokeOrderNo = order.orderNo
})
},
beforeClose(action, done) {
this.captchaMaped ? done() : done(false)
},
async getCaptchaCode() {
if (this.sendTime !== 0) return
this.getCaptcha = true
this.sendTime = 60
let data = {
operateType: 'appntInfoEntry',
type: 'H5',
operateCode: this.captchaReceiver,
system: 'agentApp',
operateCodeType: '0'
}
let res = await getAuthCode(data)
if (res.result === '0') {
this.$toast('获取验证码成功')
}
this.smsId = res.sessionId
this.captchaTimer = setInterval(() => {
this.sendTime--
if (this.sendTime === 0) {
clearInterval(this.captchaTimer)
this.captchaTimer = null
}
}, 1000)
},
async checkCaptchaCode() {
if (!this.getCaptcha) {
return this.$toast('请先获取验证码')
}
if (!this.sms.trim()) {
return this.$toast('请输入验证码')
}
clearInterval(this.captchaTimer)
this.captchaTimer = null
let revokeResult = await revokeOrder({
id: this.revokeOrderNo,
smsId: this.smsId,
code: this.sms
})
if (revokeResult.result == 0) {
this.$toast('撤单成功!')
setTimeout(() => {
this.orderList = []
this.isSuccess = false
this.currentPage = 1
;[this.loading, this.finished] = [true, false]
let pageInfo = {
pageNum: this.currentPage,
pageSize: this.pageSize
}
this.loadMore(pageInfo)
}, 1000)
} else {
Toast.fail(revokeResult.resultMessage)
}
this.cancelCaptchaCode()
this.sms = ''
},
cancelCaptchaCode() {
this.sendTime = 0
this.revokePanelShow = false
clearInterval(this.captchaTimer)
this.captchaTimer = null
this.getCaptcha = false
this.captchaMaped = false
this.captchaReceiver = ''
},
},
filters: {
statusFormat(val) {
@@ -271,6 +399,11 @@ export default {
}
})
return text
},
phoneNumFilter(phoneNum) {
let num = phoneNum.split('')
num.splice(3, 4, '****')
return num.join('')
}
},
computed: {
@@ -285,7 +418,8 @@ export default {
prtNo: orderItem.orderInfoDTO.prtNo,
appantName: orderItem.appntDTO.name,
insuredName: orderItem.insuredDTOs[0].name,
orderStatus: orderItem.orderInfoDTO.orderStatus
orderStatus: orderItem.orderInfoDTO.orderStatus,
appntMobile: orderItem.appntDTO.mobile
}
let dateToday = new Date()
dateToday.setHours(0)
@@ -448,4 +582,31 @@ export default {
box-sizing: border-box;
font-size: 14px;
}
/deep/ .dialog-delete{
padding-bottom: 15px;
font-size: 14px;
}
/deep/ .dialog-delete .van-dialog__header {
padding: 0.5em !important;
margin-bottom: 1em !important;
border-bottom: 1px solid #eaeaea;
}
/deep/ .van-cell {
padding: 0;
padding-bottom: 0.5em;
border-bottom: 1px solid #eaeaea;
}
/deep/ .van-dialog__content {
padding: 1em;
}
.captchaReceiver {
margin-bottom: 1em;
padding-bottom: 1em;
border-bottom: 1px solid #eaeaea;
font-size: 14px;
}
</style>

View File

@@ -77,13 +77,13 @@
<div class="pv12 border-bd">{{ riskFactor.name }}</div>
<div class="duty">
<div class="flex justify-content-s border-bd pv10 align-items-c" v-for="(dutyItem, dutyItemIndex) in riskFactor.rules" :key="dutyItemIndex">
<span v-if="!(item.productCode == 'GFRS_M0024' || item.productCode == 'GFRS_M0040' || item.productCode == 'GFRS_M0044')" class="fs14 w100"
<span v-if="!(item.productCode == 'GFRS_M0024' || item.productCode == 'GFRS_M0040' || item.productCode == 'GFRS_M0044' || item.productCode == 'GFRS_M0046')" class="fs14 w100"
>{{ dutyItem.dutyName }}({{ dutyItem.suffix }})</span
>
<span v-else class="fs14 w100">{{ dutyItem.dutyName }}</span>
<div class="flex relative">
<van-stepper
v-if="!(item.productCode == 'GFRS_M0024' || item.productCode == 'GFRS_M0040' || item.productCode == 'GFRS_M0044')"
v-if="!(item.productCode == 'GFRS_M0024' || item.productCode == 'GFRS_M0040' || item.productCode == 'GFRS_M0044' || item.productCode == 'GFRS_M0046')"
v-model="dutyItem.defaultDutyAmt"
:min="dutyItem.minDutyAmt"
:max="dutyItem.maxDutyAmt"
@@ -478,7 +478,11 @@ export default {
}
})
}
if (item.mainRiskCode == 'GFRS_M0046') {
if(this.saleInsuredPersonInfo.relationToAppnt == 1){
this.isEnterAddtionRiskListFunc();
}
}
let payEndYearVal
//初始化时交费期间为一次性交清时,在就是中介渠道, 附加险GFRS_A0007GFRS_A0009去掉后附加险list就为空--隐藏icon
item.calFactorLst.map(i => {
@@ -1722,6 +1726,42 @@ export default {
}
}
//isTrial为0 ---暂时为富娃娃两全保险(万能型)专配 输入保费校验
} else if (productCode == 'GFRS_M0046') {
//被保险人年龄如果在50-65区间
if (this.saleInsuredPersonInfo.age >= 51 && this.saleInsuredPersonInfo.age <= 60) {
//使用rules规则里的第二条控制保额份数
// 年龄在51周岁及以上被保险人投保本险种时最低基本保险金额为10000元。超过最低基本保险金额为10000元整数倍。
if (Number(defalutValue) < Number(riskFactor.rules[1].minPrem) || Number(defalutValue) > Number(riskFactor.rules[1].maxPrem)) {
this.$toast('51周岁-60周岁最低基本保险金额为10000元。超过最低基本保险金额为10000元整数倍。')
this.nextStepFlag = true
} else {
if ((Number(defalutValue) * 10000) % (Number(currentEle.limit) * 10000) != 0) {
// this.defalutAmt = currentEle.rules[productIndex].displayAmount
this.$toast('51周岁-60周岁最低基本保险金额为10000元。超过最低基本保险金额为10000元整数倍。')
this.nextStepFlag = true
} else {
this.mainRiskInfluenceAddRisk()
currentEle['amt'] = Number(defalutValue) * Number(currentEle.moneyUnit)
this.getTrial()
}
}
//年龄在0-50周岁被保险人投保本险种时最低基本保险金额为50000元超过最低基本保险金额为10000元整数倍。
} else if (this.saleInsuredPersonInfo.age >= 0 && this.saleInsuredPersonInfo.age <= 50) {
//使用rules规则里的第一条控制保额份数
if (Number(defalutValue) < Number(riskFactor.rules[0].minPrem) || Number(defalutValue) > Number(riskFactor.rules[0].maxPrem)) {
this.$toast('0周岁-50周岁最低基本保险金额为50000元。超过最低基本保险金额为10000元整数倍。')
this.nextStepFlag = true
} else {
if ((Number(defalutValue) * 10000) % (Number(currentEle.limit) * 10000) != 0) {
this.$toast('0周岁-50周岁最低基本保险金额为50000元。超过最低基本保险金额为10000元整数倍。')
this.nextStepFlag = true
} else {
this.mainRiskInfluenceAddRisk()
currentEle['amt'] = Number(defalutValue) * Number(currentEle.moneyUnit)
this.getTrial()
}
}
}
} else if (this.isTrial === '0' && this.chooseProducts[productIndex].isMainRisk == '0') {
if (Number(defalutValue) < Number(min)) {
this.$toast(`交费期间为${riskFactor.yearWay}年交时,最低保费为${Number(min) * Number(riskFactor.moneyUnit)}`)
@@ -1861,7 +1901,8 @@ export default {
if (
this.trialList[index].productCode == 'GFRS_M0024' ||
this.trialList[index].productCode == 'GFRS_M0040' ||
this.trialList[index].productCode == 'GFRS_M0044'
this.trialList[index].productCode == 'GFRS_M0044' ||
this.trialList[index].productCode == 'GFRS_M0046'
) {
riskItem['dutyLst'] = this.trialInfos[index].duty
}
@@ -1914,7 +1955,8 @@ export default {
//国富人寿桂企保重大疾病保险产品专写
this.trialInfos.map((v, i) => {
if (v.productCode == 'GFRS_M0024' || v.productCode == 'GFRS_M0040' || v.productCode == 'GFRS_M0044') {
if (v.productCode == 'GFRS_M0024' || v.productCode == 'GFRS_M0040' || v.productCode == 'GFRS_M0044'
|| v.productCode == 'GFRS_M0046') {
delete riskDTOLst[i].duty
}
})