mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-22 01:16:45 +08:00
详情页面修改,保单提交修改
This commit is contained in:
57
src/components/ebiz/insureAgain/DropdownBox.vue
Normal file
57
src/components/ebiz/insureAgain/DropdownBox.vue
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
<template>
|
||||||
|
<div :class="gutter ? 'mb10' : ''">
|
||||||
|
<van-cell is-link>
|
||||||
|
<template #title>
|
||||||
|
<slot name="boxTitle">
|
||||||
|
<span class="title">{{ title }}</span>
|
||||||
|
</slot>
|
||||||
|
</template>
|
||||||
|
<template #right-icon>
|
||||||
|
<slot name="right-title"></slot>
|
||||||
|
<van-icon v-show="!isOpened" name="arrow-down" @click.native="isOpened = !isOpened" />
|
||||||
|
<van-icon v-show="isOpened" name="arrow-up" @click.native="isOpened = !isOpened" />
|
||||||
|
</template>
|
||||||
|
</van-cell>
|
||||||
|
|
||||||
|
<div class="content bg-white" v-show="isOpened">
|
||||||
|
<slot>
|
||||||
|
<p style="text-align: center;" class="p10">暂无内容</p>
|
||||||
|
</slot>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<slot name="footer"></slot>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'DropdownBox',
|
||||||
|
props: {
|
||||||
|
gutter: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
isOpened: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.title {
|
||||||
|
color: #ff0000;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/deep/ .van-cell {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
55
src/components/ebiz/insureAgain/InfoCell.vue
Normal file
55
src/components/ebiz/insureAgain/InfoCell.vue
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<template>
|
||||||
|
<van-field label-width="12.2em">
|
||||||
|
<template #label>
|
||||||
|
<slot name="cellLabel">
|
||||||
|
<span :style="styleObj">{{ label }}</span>
|
||||||
|
</slot>
|
||||||
|
</template>
|
||||||
|
<template #input>
|
||||||
|
<slot>
|
||||||
|
<span :style="styleObj">{{ value }}</span>
|
||||||
|
</slot>
|
||||||
|
</template>
|
||||||
|
</van-field>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { Field } from 'vant'
|
||||||
|
export default {
|
||||||
|
name: 'InfoCell',
|
||||||
|
components: {
|
||||||
|
[Field.name]: Field
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: '暂无数据',
|
||||||
|
required: false
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
type: String
|
||||||
|
},
|
||||||
|
color: {
|
||||||
|
type: String,
|
||||||
|
default: '#000'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
styleObj() {
|
||||||
|
return {
|
||||||
|
color: this.color
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
created() {}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
/deep/ .van-field__control {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
33
src/components/ebiz/insureAgain/StateRadio.vue
Normal file
33
src/components/ebiz/insureAgain/StateRadio.vue
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<template>
|
||||||
|
<van-radio-group v-model="result">
|
||||||
|
<van-radio :disabled="disabled" :name="1" />
|
||||||
|
<van-radio checked-color="#19970e" v-show="false" :name="2" />
|
||||||
|
</van-radio-group>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { Radio, RadioGroup } from 'vant'
|
||||||
|
export default {
|
||||||
|
name: 'StateRadio',
|
||||||
|
components: {
|
||||||
|
[Radio.name]: Radio,
|
||||||
|
[RadioGroup.name]: RadioGroup
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
result: {
|
||||||
|
type: Number,
|
||||||
|
default: 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
disabled() {
|
||||||
|
return this.result !== 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
428
src/views/ebiz/insureAgain/commitInsureDetail.vue
Normal file
428
src/views/ebiz/insureAgain/commitInsureDetail.vue
Normal file
@@ -0,0 +1,428 @@
|
|||||||
|
<template>
|
||||||
|
<div class="detail-container">
|
||||||
|
<van-collapse v-model="activeNames">
|
||||||
|
<!-- 保单信息 -->
|
||||||
|
<van-collapse-item title="投保单信息" name="1" class="pb10 pt10">
|
||||||
|
<van-cell-group>
|
||||||
|
<van-cell title="投保单号" :value="OrderInfoDTO.orderNo" />
|
||||||
|
<van-cell title="投保日期" :value="OrderInfoDTO.appntDateLabel" />
|
||||||
|
<van-cell title="订单状态" :value="OrderInfoDTO.orderStatus | orderStatusFilter" />
|
||||||
|
<van-cell v-if="problemList.length" title="问题件状态">
|
||||||
|
<div v-for="(problem, index) in problemList" :key="index">{{ problem.comment }} - {{ problem.state }}</div>
|
||||||
|
</van-cell>
|
||||||
|
<van-cell v-if="reason" title="原因" :value="reason | reasonFilter" />
|
||||||
|
</van-cell-group>
|
||||||
|
</van-collapse-item>
|
||||||
|
|
||||||
|
<!-- 投保人信息 -->
|
||||||
|
<van-collapse-item title="投保人信息" name="2" class="detail-title pb10">
|
||||||
|
<van-cell-group>
|
||||||
|
<van-cell title="投保人" :value="appntDTO.name" />
|
||||||
|
<van-cell title="性别" :value="appntDTO.sex" />
|
||||||
|
<van-cell title="证件类型" :value="appntDTO.idType" />
|
||||||
|
<van-cell title="证件号码" :value="appntDTO.idNo" />
|
||||||
|
<van-cell title="联系电话" :value="appntDTO.mobileStar" />
|
||||||
|
</van-cell-group>
|
||||||
|
</van-collapse-item>
|
||||||
|
|
||||||
|
<!-- 多被保险人信息 -->
|
||||||
|
<div v-for="(item, index) in insuredDTOs" :key="index" class="pb10">
|
||||||
|
<van-collapse-item title="被保险人信息" :name="index + 40" class="pb10">
|
||||||
|
<van-cell-group>
|
||||||
|
<van-cell title="是投保人的" :value="item.relationToAppnt" />
|
||||||
|
<van-cell title="姓名" :value="item.name" />
|
||||||
|
<van-cell title="性别" :value="item.sex" />
|
||||||
|
<van-cell title="证件类型" :value="item.idType" />
|
||||||
|
<van-cell title="证件号码" :value="item.idNo" />
|
||||||
|
<van-cell title="联系电话" :value="item.mobile" />
|
||||||
|
</van-cell-group>
|
||||||
|
</van-collapse-item>
|
||||||
|
<div v-if="OrderInfoDTO.bnfFlag == '法定受益人'">
|
||||||
|
<van-cell-group>
|
||||||
|
<van-cell title="受益人" value="法定受益人" style="padding: .5em 1.5em;"></van-cell>
|
||||||
|
</van-cell-group>
|
||||||
|
</div>
|
||||||
|
<div v-for="(itm, i) in item.bnfDTOs" :key="itm.name" class="pb10" v-else>
|
||||||
|
<!-- 受益人信息 -->
|
||||||
|
<van-collapse-item title="受益人信息" :name="i + 81">
|
||||||
|
<van-cell-group>
|
||||||
|
<van-cell title="受益人" :value="OrderInfoDTO.bnfFlag" />
|
||||||
|
<div v-if="OrderInfoDTO.bnfFlag == '指定受益人'">
|
||||||
|
<van-cell title="姓名" :value="itm.name" />
|
||||||
|
<van-cell title="性别" :value="itm.sex" />
|
||||||
|
<van-cell title="是被保险人的" :value="itm.relationToInsured" />
|
||||||
|
<van-cell title="受益比例" :value="`${itm.bnfLot}%`" v-if="itm.bnfLot != null" />
|
||||||
|
<van-cell title="证件类型" :value="itm.idType" />
|
||||||
|
<van-cell title="证件号码" :value="itm.idNo" />
|
||||||
|
</div>
|
||||||
|
</van-cell-group>
|
||||||
|
</van-collapse-item>
|
||||||
|
</div>
|
||||||
|
<div v-for="(it, ind) in list" :key="it.riskName" class="pb10 pt10">
|
||||||
|
<!-- <span>{{ it.isMainRisk }}</span> -->
|
||||||
|
<van-collapse-item title="险种信息" :name="ind + 10">
|
||||||
|
<van-cell-group>
|
||||||
|
<van-cell title="险种名称" :value="it.riskName" />
|
||||||
|
<van-cell title="保险期间" :value="it.insuYear" />
|
||||||
|
<van-cell title="交费方式" :value="it.payIntv" />
|
||||||
|
<van-cell title="交费期间" :value="it.payEndYearFlag == 'Y' ? `${it.payEndYear}年` : `至${it.payEndYear}岁`" v-if="it.payEndYear != '1000'" />
|
||||||
|
<van-cell title="交费期间" v-if="it.payEndYear == '1000'" value="一次性交清" />
|
||||||
|
<!-- isYear == true ? `${it.insuYear}年` : it.insuYear" -->
|
||||||
|
<van-cell title="险种保额(元)" value="--" v-if="it.riskCode == 'GFRS_M0015' || it.riskCode == 'GFRS_M0017' || it.riskCode == 'GFRS_M0003'" />
|
||||||
|
<van-cell title="险种保额(元)" :value="it.amt | moneyFormat" v-else />
|
||||||
|
<van-cell title="险种保费(元)" :value="it.mainPremDetail | moneyFormat" />
|
||||||
|
<!-- v-if="it.isMainRisk == '1'" -->
|
||||||
|
<!-- <span>{{ it.isMainRisk }}</span> -->
|
||||||
|
<van-collapse-item title="附加险信息" :name="num + 61" v-for="(i, num) in it.addtion" :key="num">
|
||||||
|
<van-cell-group>
|
||||||
|
<van-cell title="险种名称" :value="i.riskName" />
|
||||||
|
<van-cell title="保险期间" :value="i.insuYear" />
|
||||||
|
<!-- item.payEndYearFlag == 'Y' ? `${it.payEndYear}年` : `至${it.payEndYear}岁` -->
|
||||||
|
<van-cell title="交费方式" :value="i.payIntv" />
|
||||||
|
<van-cell title="交费期间" :value="i.payEndYearFlag == 'Y' ? `${i.payEndYear}年` : `至${i.payEndYear}岁`" v-if="i.payEndYear != '1000'" />
|
||||||
|
<van-cell title="交费期间" v-if="i.payEndYear == '1000'" value="一次性交清" />
|
||||||
|
<van-cell title="险种保额(元)" value="--" v-if="i.riskCode == 'GFRS_M0015' || i.riskCode == 'GFRS_M0017' || i.riskCode == 'GFRS_M0003'" />
|
||||||
|
<van-cell title="险种保额(元)" :value="i.planCodeLabel" v-else-if="i.amt == null && i.planCode != ''" />
|
||||||
|
<van-cell title="险种保额(元)" :value="i.amt | moneyFormat" v-else />
|
||||||
|
<van-cell title="险种保费(元)" :value="i.prem | moneyFormat" />
|
||||||
|
</van-cell-group>
|
||||||
|
</van-collapse-item>
|
||||||
|
</van-cell-group>
|
||||||
|
</van-collapse-item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</van-collapse>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { Collapse, CollapseItem, Cell, CellGroup, Button } from 'vant'
|
||||||
|
import { getDetail } from '@/api/ebiz/sale/sale'
|
||||||
|
import { formatAllRisk } from '@/assets/js/utils/formatRiskList'
|
||||||
|
import dataDictionary from '@/assets/js/utils/data-dictionary'
|
||||||
|
import { getQuestionList } from '@/api/ebiz/questions'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 折叠面板
|
||||||
|
activeNames: ['1'],
|
||||||
|
// 保单基本信息
|
||||||
|
OrderInfoDTO: {},
|
||||||
|
// 投保人信息
|
||||||
|
appntDTO: {},
|
||||||
|
// 被保险人信息
|
||||||
|
insuredDTOs: [],
|
||||||
|
// 保单号
|
||||||
|
contNo: '',
|
||||||
|
list: [],
|
||||||
|
reason: '',
|
||||||
|
problemList: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
// 获取保单详情
|
||||||
|
this.getPolicyDetail()
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
[Collapse.name]: Collapse,
|
||||||
|
[CollapseItem.name]: CollapseItem,
|
||||||
|
[Cell.name]: Cell,
|
||||||
|
[CellGroup.name]: CellGroup,
|
||||||
|
[Button.name]: Button
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 获取保单详情
|
||||||
|
async getPolicyDetail() {
|
||||||
|
let data = {
|
||||||
|
orderNo: window.localStorage.getItem('orderNo'),
|
||||||
|
desensitizType: this.$route.query.type ? 0 : 1
|
||||||
|
}
|
||||||
|
let params = {
|
||||||
|
type: 3,
|
||||||
|
pageInfo: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
prtNo: window.localStorage.getItem('orderNo')
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
let results = await Promise.all([getDetail(data), getQuestionList(params)])
|
||||||
|
// 保单详情响应数据
|
||||||
|
let res = results[0]
|
||||||
|
// // 问题件状态响应数据
|
||||||
|
let problemResult = results[1]
|
||||||
|
if (res.result == '0') {
|
||||||
|
if (res.orderDTO.orderInfoDTO.bnfFlag == '1') {
|
||||||
|
res.orderDTO.orderInfoDTO.bnfFlag = '指定受益人'
|
||||||
|
} else if (res.orderDTO.orderInfoDTO.bnfFlag == '0') {
|
||||||
|
res.orderDTO.orderInfoDTO.bnfFlag = '法定受益人'
|
||||||
|
}
|
||||||
|
this.OrderInfoDTO = res.orderDTO.orderInfoDTO
|
||||||
|
this.appntDTO = res.orderDTO.appntDTO
|
||||||
|
this.reason = res.orderDTO.reason
|
||||||
|
|
||||||
|
// 投保人信息
|
||||||
|
if (res.orderDTO.appntDTO.sex == '0') {
|
||||||
|
res.orderDTO.appntDTO.sex = '男'
|
||||||
|
} else if (res.orderDTO.appntDTO.sex == '1') {
|
||||||
|
res.orderDTO.appntDTO.sex = '女'
|
||||||
|
}
|
||||||
|
switch (res.orderDTO.appntDTO.idType) {
|
||||||
|
case '1':
|
||||||
|
res.orderDTO.appntDTO.idType = '居民身份证'
|
||||||
|
break
|
||||||
|
case '2':
|
||||||
|
res.orderDTO.appntDTO.idType = '户口本'
|
||||||
|
break
|
||||||
|
case '3':
|
||||||
|
res.orderDTO.appntDTO.idType = '出生证'
|
||||||
|
break
|
||||||
|
case '4':
|
||||||
|
res.orderDTO.appntDTO.idType = '外国人护照'
|
||||||
|
break
|
||||||
|
case '5':
|
||||||
|
res.orderDTO.appntDTO.idType = '港澳居民来往内地通行证'
|
||||||
|
break
|
||||||
|
case '6':
|
||||||
|
res.orderDTO.appntDTO.idType = '台湾居民来往大陆通行证'
|
||||||
|
break
|
||||||
|
// case '7':
|
||||||
|
// res.orderDTO.appntDTO.idType = '其他'
|
||||||
|
// break
|
||||||
|
case '8':
|
||||||
|
res.orderDTO.appntDTO.idType = '外国人永久居留身份证'
|
||||||
|
break
|
||||||
|
case '9':
|
||||||
|
res.orderDTO.appntDTO.idType = '港澳台居民居住证'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
this.appntDTO = res.orderDTO.appntDTO
|
||||||
|
res.orderDTO.insuredDTOs.map(item => {
|
||||||
|
item.riskDTOLst.map(it => {
|
||||||
|
if (it.insuYearFlag == 'Y') {
|
||||||
|
it.insuYear = `${it.insuYear}年`
|
||||||
|
} else {
|
||||||
|
if (it.insuYearFlag == 'A' && it.insuYear == '106') {
|
||||||
|
it.insuYear = '终身'
|
||||||
|
} else {
|
||||||
|
it.insuYear = `至${it.insuYear}周岁的保单周年日`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Number(it.payIntv)
|
||||||
|
switch (it.payIntv) {
|
||||||
|
case 0:
|
||||||
|
it.payIntv = '一次性交清'
|
||||||
|
break
|
||||||
|
case 1:
|
||||||
|
it.payIntv = '月交'
|
||||||
|
break
|
||||||
|
case 12:
|
||||||
|
it.payIntv = '年交'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
// 被保险人信息
|
||||||
|
res.orderDTO.insuredDTOs.map(item => {
|
||||||
|
if (item.sex == '0') {
|
||||||
|
item.sex = '男'
|
||||||
|
} else if (item.sex == '1') {
|
||||||
|
item.sex = '女'
|
||||||
|
} else {
|
||||||
|
item.sex = '不详'
|
||||||
|
}
|
||||||
|
switch (item.idType) {
|
||||||
|
case '1':
|
||||||
|
item.idType = '居民身份证'
|
||||||
|
break
|
||||||
|
case '2':
|
||||||
|
item.idType = '户口本'
|
||||||
|
break
|
||||||
|
case '3':
|
||||||
|
item.idType = '出生证'
|
||||||
|
break
|
||||||
|
case '4':
|
||||||
|
item.idType = '外国人护照'
|
||||||
|
break
|
||||||
|
case '5':
|
||||||
|
item.idType = '港澳居民来往内地通行证'
|
||||||
|
break
|
||||||
|
case '6':
|
||||||
|
item.idType = '台湾居民来往大陆通行证'
|
||||||
|
break
|
||||||
|
// case '7':
|
||||||
|
// item.idType = '其他'
|
||||||
|
// break
|
||||||
|
case '8':
|
||||||
|
item.idType = '外国人永久居留身份证'
|
||||||
|
break
|
||||||
|
case '9':
|
||||||
|
item.idType = '港澳台居民居住证'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
switch (item.relationToAppnt) {
|
||||||
|
case '1':
|
||||||
|
item.relationToAppnt = '本人'
|
||||||
|
break
|
||||||
|
case '2':
|
||||||
|
item.relationToAppnt = '配偶'
|
||||||
|
break
|
||||||
|
case '3':
|
||||||
|
item.relationToAppnt = '父母'
|
||||||
|
break
|
||||||
|
case '4':
|
||||||
|
item.relationToAppnt = '子女'
|
||||||
|
break
|
||||||
|
case '5':
|
||||||
|
item.relationToAppnt = '其他'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if (res.orderDTO.orderInfoDTO.bnfFlag == '指定受益人') {
|
||||||
|
item.bnfDTOs.map(it => {
|
||||||
|
if (it.sex == '0') {
|
||||||
|
it.sex = '男'
|
||||||
|
} else if (it.sex == '1') {
|
||||||
|
it.sex = '女'
|
||||||
|
} else {
|
||||||
|
it.sex = '不详'
|
||||||
|
}
|
||||||
|
switch (it.idType) {
|
||||||
|
case '1':
|
||||||
|
it.idType = '居民身份证'
|
||||||
|
break
|
||||||
|
case '2':
|
||||||
|
it.idType = '户口本'
|
||||||
|
break
|
||||||
|
case '3':
|
||||||
|
it.idType = '出生证'
|
||||||
|
break
|
||||||
|
case '4':
|
||||||
|
it.idType = '外国人护照'
|
||||||
|
break
|
||||||
|
case '5':
|
||||||
|
it.idType = '港澳居民来往内地通行证'
|
||||||
|
break
|
||||||
|
case '6':
|
||||||
|
it.idType = '台湾居民来往大陆通行证'
|
||||||
|
break
|
||||||
|
// case '7':
|
||||||
|
// it.idType = '其他'
|
||||||
|
// break
|
||||||
|
case '8':
|
||||||
|
it.idType = '外国人永久居留身份证'
|
||||||
|
break
|
||||||
|
case '9':
|
||||||
|
it.idType = '港澳台居民居住证'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
switch (it.relationToInsured) {
|
||||||
|
case '1':
|
||||||
|
it.relationToInsured = '本人'
|
||||||
|
break
|
||||||
|
case '2':
|
||||||
|
it.relationToInsured = '配偶'
|
||||||
|
break
|
||||||
|
case '3':
|
||||||
|
it.relationToInsured = '父母'
|
||||||
|
break
|
||||||
|
case '4':
|
||||||
|
it.relationToInsured = '子女'
|
||||||
|
break
|
||||||
|
case '5':
|
||||||
|
it.relationToInsured = '其他'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
this.insuredDTOs = res.orderDTO.insuredDTOs
|
||||||
|
// 格式化
|
||||||
|
this.list = formatAllRisk(this.insuredDTOs[0].riskDTOLst)
|
||||||
|
} else {
|
||||||
|
this.$toast(res.resultMessage)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 问题件状态显示
|
||||||
|
if (problemResult.result === '0') {
|
||||||
|
if (problemResult.content && problemResult.content.list) {
|
||||||
|
this.problemList.splice(0)
|
||||||
|
let lists = problemResult.content.list
|
||||||
|
for (let list of lists) {
|
||||||
|
let state = this.mapOrderState(list.status)
|
||||||
|
this.problemList.push({
|
||||||
|
comment: list.statusComment,
|
||||||
|
state
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$toast(problemResult.resultMessage)
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
this.$toast('网络异常')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mapOrderState(state) {
|
||||||
|
switch (state) {
|
||||||
|
case '0':
|
||||||
|
return '待客户处理'
|
||||||
|
case '1':
|
||||||
|
return '待核心处理'
|
||||||
|
case '2':
|
||||||
|
return '已打印'
|
||||||
|
case '3':
|
||||||
|
return '已回扫'
|
||||||
|
case '4':
|
||||||
|
return '逾期关闭'
|
||||||
|
case '5':
|
||||||
|
return '已回销'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
filters: {
|
||||||
|
orderStatusFilter(val) {
|
||||||
|
for (let status of dataDictionary.policyState) {
|
||||||
|
if (status.id === val) {
|
||||||
|
return status.text
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ''
|
||||||
|
},
|
||||||
|
reasonFilter(val) {
|
||||||
|
let reg = /'|;/g
|
||||||
|
return val.replace(reg, '')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
/deep/ .van-cell__title {
|
||||||
|
flex: 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
/deep/ .van-cell__value {
|
||||||
|
flex: 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-container {
|
||||||
|
.van-hairline--top-bottom::after {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
/deep/ .van-collapse-item__content {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
padding-left: 0.3rem;
|
||||||
|
padding-right: 0.3rem;
|
||||||
|
}
|
||||||
|
/deep/.van-collapse-item__title {
|
||||||
|
padding: 0.5em 1.5em;
|
||||||
|
}
|
||||||
|
/deep/ .van-cell__value {
|
||||||
|
text-align: left !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
356
src/views/ebiz/insureAgain/uncommitInsureDetail.vue
Normal file
356
src/views/ebiz/insureAgain/uncommitInsureDetail.vue
Normal file
@@ -0,0 +1,356 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<DropdownBox>
|
||||||
|
<template #boxTitle>
|
||||||
|
<span>投保人信息</span>
|
||||||
|
</template>
|
||||||
|
<InfoCell label="保单号">{{OrderInfoDTO.orderNo}}</InfoCell>
|
||||||
|
<InfoCell label="生效日期">{{OrderInfoDTO.appntDateLabel}}</InfoCell>
|
||||||
|
<InfoCell label="保单状态">{{OrderInfoDTO.orderStatus | orderStatusFilter}}</InfoCell>
|
||||||
|
<InfoCell label="签收状态">{{OrderInfoDTO.orderNo}}</InfoCell>
|
||||||
|
</DropdownBox>
|
||||||
|
<DropdownBox>
|
||||||
|
<template #boxTitle>
|
||||||
|
<span>投保人信息</span>
|
||||||
|
</template>
|
||||||
|
<InfoCell label="投保人">{{appntDTO.name}}</InfoCell>
|
||||||
|
<InfoCell label="性别">{{appntDTO.sex}}</InfoCell>
|
||||||
|
<InfoCell label="证件类型">{{appntDTO.idType}}</InfoCell>
|
||||||
|
<InfoCell label="证件号码">{{appntDTO.idNo}}</InfoCell>
|
||||||
|
<InfoCell label="联系电话">{{appntDTO.mobileStar}}</InfoCell>
|
||||||
|
</DropdownBox>
|
||||||
|
<DropdownBox>
|
||||||
|
<template #boxTitle>
|
||||||
|
<span>被保险人信息</span>
|
||||||
|
</template>
|
||||||
|
<div v-for="(item, index) in insuredDTOs" :key="index" class="pb10">
|
||||||
|
<InfoCell label="姓名">{{item.name}}</InfoCell>
|
||||||
|
<InfoCell label="性别">{{item.sex}}</InfoCell>
|
||||||
|
<InfoCell label="证件类型">{{item.idType}}</InfoCell>
|
||||||
|
<InfoCell label="证件号码">{{item.idNo}}</InfoCell>
|
||||||
|
<InfoCell label="联系电话">{{item.mobile}}</InfoCell>
|
||||||
|
</div>
|
||||||
|
</DropdownBox>
|
||||||
|
<DropdownBox>
|
||||||
|
<template #boxTitle>
|
||||||
|
<span>受益人信息</span>
|
||||||
|
</template>
|
||||||
|
<div v-if="OrderInfoDTO.bnfFlag == '法定受益人'">
|
||||||
|
<InfoCell label="受益人">法定受益人</InfoCell>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<div v-for="(item, index) in insuredDTOs" :key="index" class="pb10">
|
||||||
|
<div v-for="itm in item.bnfDTOs" :key="itm.name" class="pb10">
|
||||||
|
<InfoCell label="受益人">{{OrderInfoDTO.bnfFlag}}</InfoCell>
|
||||||
|
<div v-if="OrderInfoDTO.bnfFlag == '指定受益人'">
|
||||||
|
<InfoCell label="姓名">{{itm.name}}</InfoCell>
|
||||||
|
<InfoCell label="性别">{{itm.sex}}</InfoCell>
|
||||||
|
<InfoCell label="受益比例" v-if="itm.bnfLot != null">{{`${itm.bnfLot}%`}}</InfoCell>
|
||||||
|
<InfoCell label="证件类型">{{itm.idType}}</InfoCell>
|
||||||
|
<InfoCell label="证件号码">{{itm.idNo}}</InfoCell>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</DropdownBox>
|
||||||
|
|
||||||
|
<DropdownBox>
|
||||||
|
<template #boxTitle>
|
||||||
|
<span>险种类型</span>
|
||||||
|
</template>
|
||||||
|
<div v-for="it in list" :key="it.riskName" class="pb10">
|
||||||
|
<InfoCell label="险种名称">{{it.riskName}}</InfoCell>
|
||||||
|
<InfoCell label="保险期间">{{it.insuYear}}</InfoCell>
|
||||||
|
<InfoCell label="交费期间" v-if="it.payEndYear !== '1000'">{{it.payEndYearFlag == 'Y' ? `${it.payEndYear}年` : `至${it.payEndYear}岁`}}</InfoCell>
|
||||||
|
<InfoCell label="交费期间" v-if="it.payEndYear === '1000'">一次性交清</InfoCell>
|
||||||
|
<InfoCell label="险种保额(元)" v-if="it.riskCode == 'GFRS_M0015' || it.riskCode == 'GFRS_M0017' || it.riskCode == 'GFRS_M0003'">--</InfoCell>
|
||||||
|
<InfoCell label="险种保额(元)" v-else>{{it.amt | moneyFormat}}</InfoCell>
|
||||||
|
<InfoCell label="险种保费(元)">{{it.riskName}}</InfoCell>
|
||||||
|
</div>
|
||||||
|
</DropdownBox>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import InfoCell from '@/components/ebiz/insureAgain/InfoCell'
|
||||||
|
import DropdownBox from '@/components/ebiz/insureAgain/DropdownBox'
|
||||||
|
import dataDictionary from '@/assets/js/utils/data-dictionary'
|
||||||
|
import { Collapse, CollapseItem, Cell, CellGroup, Button } from 'vant'
|
||||||
|
import { getDetail } from '@/api/ebiz/sale/sale'
|
||||||
|
import { formatAllRisk } from '@/assets/js/utils/formatRiskList'
|
||||||
|
import { getQuestionList } from '@/api/ebiz/questions'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
DropdownBox,
|
||||||
|
InfoCell
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 保单基本信息
|
||||||
|
OrderInfoDTO: {},
|
||||||
|
// 投保人信息
|
||||||
|
appntDTO: {},
|
||||||
|
// 被保险人信息
|
||||||
|
insuredDTOs: [],
|
||||||
|
list: [],
|
||||||
|
reason: '',
|
||||||
|
problemList: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
filters: {
|
||||||
|
orderStatusFilter(val) {
|
||||||
|
for (let status of dataDictionary.policyState) {
|
||||||
|
if (status.id === val) {
|
||||||
|
return status.text
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ''
|
||||||
|
},
|
||||||
|
reasonFilter(val) {
|
||||||
|
let reg = /'|;/g
|
||||||
|
return val.replace(reg, '')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getInsureAgainDetail()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 获取保单详情
|
||||||
|
async getInsureAgainDetail() {
|
||||||
|
let data = {
|
||||||
|
orderNo: '8186270000012069',
|
||||||
|
desensitizType: 0
|
||||||
|
}
|
||||||
|
let params = {
|
||||||
|
type: 3,
|
||||||
|
pageInfo: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
prtNo: '8186270000012069'
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
let results = await Promise.all([getDetail(data), getQuestionList(params)])
|
||||||
|
// 保单详情响应数据
|
||||||
|
let res = results[0]
|
||||||
|
// // 问题件状态响应数据
|
||||||
|
let problemResult = results[1]
|
||||||
|
if (res.result == '0') {
|
||||||
|
if (res.orderDTO.orderInfoDTO.bnfFlag == '1') {
|
||||||
|
res.orderDTO.orderInfoDTO.bnfFlag = '指定受益人'
|
||||||
|
} else if (res.orderDTO.orderInfoDTO.bnfFlag == '0') {
|
||||||
|
res.orderDTO.orderInfoDTO.bnfFlag = '法定受益人'
|
||||||
|
}
|
||||||
|
this.OrderInfoDTO = res.orderDTO.orderInfoDTO
|
||||||
|
this.appntDTO = res.orderDTO.appntDTO
|
||||||
|
this.reason = res.orderDTO.reason
|
||||||
|
|
||||||
|
// 投保人信息
|
||||||
|
if (res.orderDTO.appntDTO.sex == '0') {
|
||||||
|
res.orderDTO.appntDTO.sex = '男'
|
||||||
|
} else if (res.orderDTO.appntDTO.sex == '1') {
|
||||||
|
res.orderDTO.appntDTO.sex = '女'
|
||||||
|
}
|
||||||
|
switch (res.orderDTO.appntDTO.idType) {
|
||||||
|
case '1':
|
||||||
|
res.orderDTO.appntDTO.idType = '居民身份证'
|
||||||
|
break
|
||||||
|
case '2':
|
||||||
|
res.orderDTO.appntDTO.idType = '户口本'
|
||||||
|
break
|
||||||
|
case '3':
|
||||||
|
res.orderDTO.appntDTO.idType = '出生证'
|
||||||
|
break
|
||||||
|
case '4':
|
||||||
|
res.orderDTO.appntDTO.idType = '外国人护照'
|
||||||
|
break
|
||||||
|
case '5':
|
||||||
|
res.orderDTO.appntDTO.idType = '港澳居民来往内地通行证'
|
||||||
|
break
|
||||||
|
case '6':
|
||||||
|
res.orderDTO.appntDTO.idType = '台湾居民来往大陆通行证'
|
||||||
|
break
|
||||||
|
// case '7':
|
||||||
|
// res.orderDTO.appntDTO.idType = '其他'
|
||||||
|
// break
|
||||||
|
case '8':
|
||||||
|
res.orderDTO.appntDTO.idType = '外国人永久居留身份证'
|
||||||
|
break
|
||||||
|
case '9':
|
||||||
|
res.orderDTO.appntDTO.idType = '港澳台居民居住证'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
this.appntDTO = res.orderDTO.appntDTO
|
||||||
|
res.orderDTO.insuredDTOs.map(item => {
|
||||||
|
item.riskDTOLst.map(it => {
|
||||||
|
if (it.insuYearFlag == 'Y') {
|
||||||
|
it.insuYear = `${it.insuYear}年`
|
||||||
|
} else {
|
||||||
|
if (it.insuYearFlag == 'A' && it.insuYear == '106') {
|
||||||
|
it.insuYear = '终身'
|
||||||
|
} else {
|
||||||
|
it.insuYear = `至${it.insuYear}周岁的保单周年日`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Number(it.payIntv)
|
||||||
|
switch (it.payIntv) {
|
||||||
|
case 0:
|
||||||
|
it.payIntv = '一次性交清'
|
||||||
|
break
|
||||||
|
case 1:
|
||||||
|
it.payIntv = '月交'
|
||||||
|
break
|
||||||
|
case 12:
|
||||||
|
it.payIntv = '年交'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
// 被保险人信息
|
||||||
|
res.orderDTO.insuredDTOs.map(item => {
|
||||||
|
if (item.sex == '0') {
|
||||||
|
item.sex = '男'
|
||||||
|
} else if (item.sex == '1') {
|
||||||
|
item.sex = '女'
|
||||||
|
} else {
|
||||||
|
item.sex = '不详'
|
||||||
|
}
|
||||||
|
switch (item.idType) {
|
||||||
|
case '1':
|
||||||
|
item.idType = '居民身份证'
|
||||||
|
break
|
||||||
|
case '2':
|
||||||
|
item.idType = '户口本'
|
||||||
|
break
|
||||||
|
case '3':
|
||||||
|
item.idType = '出生证'
|
||||||
|
break
|
||||||
|
case '4':
|
||||||
|
item.idType = '外国人护照'
|
||||||
|
break
|
||||||
|
case '5':
|
||||||
|
item.idType = '港澳居民来往内地通行证'
|
||||||
|
break
|
||||||
|
case '6':
|
||||||
|
item.idType = '台湾居民来往大陆通行证'
|
||||||
|
break
|
||||||
|
// case '7':
|
||||||
|
// item.idType = '其他'
|
||||||
|
// break
|
||||||
|
case '8':
|
||||||
|
item.idType = '外国人永久居留身份证'
|
||||||
|
break
|
||||||
|
case '9':
|
||||||
|
item.idType = '港澳台居民居住证'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
switch (item.relationToAppnt) {
|
||||||
|
case '1':
|
||||||
|
item.relationToAppnt = '本人'
|
||||||
|
break
|
||||||
|
case '2':
|
||||||
|
item.relationToAppnt = '配偶'
|
||||||
|
break
|
||||||
|
case '3':
|
||||||
|
item.relationToAppnt = '父母'
|
||||||
|
break
|
||||||
|
case '4':
|
||||||
|
item.relationToAppnt = '子女'
|
||||||
|
break
|
||||||
|
case '5':
|
||||||
|
item.relationToAppnt = '其他'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if (res.orderDTO.orderInfoDTO.bnfFlag == '指定受益人') {
|
||||||
|
item.bnfDTOs.map(it => {
|
||||||
|
if (it.sex == '0') {
|
||||||
|
it.sex = '男'
|
||||||
|
} else if (it.sex == '1') {
|
||||||
|
it.sex = '女'
|
||||||
|
} else {
|
||||||
|
it.sex = '不详'
|
||||||
|
}
|
||||||
|
switch (it.idType) {
|
||||||
|
case '1':
|
||||||
|
it.idType = '居民身份证'
|
||||||
|
break
|
||||||
|
case '2':
|
||||||
|
it.idType = '户口本'
|
||||||
|
break
|
||||||
|
case '3':
|
||||||
|
it.idType = '出生证'
|
||||||
|
break
|
||||||
|
case '4':
|
||||||
|
it.idType = '外国人护照'
|
||||||
|
break
|
||||||
|
case '5':
|
||||||
|
it.idType = '港澳居民来往内地通行证'
|
||||||
|
break
|
||||||
|
case '6':
|
||||||
|
it.idType = '台湾居民来往大陆通行证'
|
||||||
|
break
|
||||||
|
// case '7':
|
||||||
|
// it.idType = '其他'
|
||||||
|
// break
|
||||||
|
case '8':
|
||||||
|
it.idType = '外国人永久居留身份证'
|
||||||
|
break
|
||||||
|
case '9':
|
||||||
|
it.idType = '港澳台居民居住证'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
switch (it.relationToInsured) {
|
||||||
|
case '1':
|
||||||
|
it.relationToInsured = '本人'
|
||||||
|
break
|
||||||
|
case '2':
|
||||||
|
it.relationToInsured = '配偶'
|
||||||
|
break
|
||||||
|
case '3':
|
||||||
|
it.relationToInsured = '父母'
|
||||||
|
break
|
||||||
|
case '4':
|
||||||
|
it.relationToInsured = '子女'
|
||||||
|
break
|
||||||
|
case '5':
|
||||||
|
it.relationToInsured = '其他'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
this.insuredDTOs = res.orderDTO.insuredDTOs
|
||||||
|
// 格式化
|
||||||
|
this.list = formatAllRisk(this.insuredDTOs[0].riskDTOLst)
|
||||||
|
} else {
|
||||||
|
this.$toast(res.resultMessage)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 问题件状态显示
|
||||||
|
if (problemResult.result === '0') {
|
||||||
|
if (problemResult.content && problemResult.content.list) {
|
||||||
|
this.problemList.splice(0)
|
||||||
|
let lists = problemResult.content.list
|
||||||
|
for (let list of lists) {
|
||||||
|
let state = this.mapOrderState(list.status)
|
||||||
|
this.problemList.push({
|
||||||
|
comment: list.statusComment,
|
||||||
|
state
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.$toast(problemResult.resultMessage)
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
this.$toast('网络异常')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
Reference in New Issue
Block a user