mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-10 11:36:45 +08:00
Merge branch 'feature/【保全】' into dev
This commit is contained in:
@@ -24,6 +24,11 @@ const SurrenderInfo = () => import('@/views/ebiz/preserve/ct/SurrenderInfo')
|
||||
const SurrenderConfirmation = () => import('@/views/ebiz/preserve/ct/SurrenderConfirmation')
|
||||
const SurrenderTip = () => import('@/views/ebiz/preserve/ct/SurrenderTip')
|
||||
const CtImageUpload = () => import('@/views/ebiz/preserve/ct/ImageUpload')
|
||||
//犹豫期退保
|
||||
const WSurrenderInfo = () => import('@/views/ebiz/preserve/wt/WSurrenderInfo')
|
||||
const WSurrenderConfirmation = () => import('@/views/ebiz/preserve/wt/WSurrenderConfirmation')
|
||||
const WSurrenderTip = () => import('@/views/ebiz/preserve/wt/WSurrenderTip')
|
||||
const WtImageUpload = () => import('@/views/ebiz/preserve/wt/ImageUpload')
|
||||
//保全进度查询及详情页面
|
||||
const Progress = () => import('@/views/ebiz/preserve/Progress')
|
||||
const Contact = () => import('@/views/ebiz/preserve/detail/Contact')
|
||||
@@ -34,6 +39,15 @@ const CoolingOffperiodSurrender = () => import('@/views/ebiz/preserve/detail/Coo
|
||||
const Surrender = () => import('@/views/ebiz/preserve/detail/Surrender')
|
||||
|
||||
export default [
|
||||
{
|
||||
path: '/preserve/Progress',
|
||||
name: 'Progress',
|
||||
component: Progress,
|
||||
meta: {
|
||||
title: '保全进度查询',
|
||||
index: 14
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/common/search',
|
||||
name: 'Search',
|
||||
@@ -43,40 +57,41 @@ export default [
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/common/handleResult',
|
||||
name: 'HandleResult',
|
||||
component: HandleResult,
|
||||
meta: {
|
||||
title: '操作结果',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/common/submitResult',
|
||||
name: 'SubmitResult',
|
||||
component: SubmitResult,
|
||||
meta: {
|
||||
title: '提交结果',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/common/policyList',
|
||||
name: 'PolicyList',
|
||||
component: PolicyList,
|
||||
meta: {
|
||||
title: '选择保单',
|
||||
index: 2
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bb/contactInfo',
|
||||
name: 'contactInfo',
|
||||
component: contactInfo,
|
||||
meta: {
|
||||
title: '联系方式变更',
|
||||
index: 3
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bb/contacAgreement',
|
||||
name: 'contacAgreement',
|
||||
component: contacAgreement,
|
||||
meta: {
|
||||
title: '联系方式变更协议',
|
||||
index: 100
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
// ---------------------续期账户变更------------------
|
||||
{
|
||||
path: '/preserve/pc/renewalInfo',
|
||||
name: 'RenewalInfo',
|
||||
component: RenewalInfo,
|
||||
meta: {
|
||||
title: '续期账号变更',
|
||||
index: 4
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -85,79 +100,7 @@ export default [
|
||||
component: PcImageUpload,
|
||||
meta: {
|
||||
title: '续期账号图片上传',
|
||||
index: 41
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bc/beneficiaryInfo',
|
||||
name: 'BeneficiaryInfo',
|
||||
component: BeneficiaryInfo,
|
||||
meta: {
|
||||
title: '受益人变更',
|
||||
index: 5
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bc/beneficiaryInfoAdd',
|
||||
name: 'BeneficiaryInfoAdd',
|
||||
component: BeneficiaryInfoAdd,
|
||||
meta: {
|
||||
title: '指定受益人信息',
|
||||
index: 105
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bc/beneficiaryInfoDetail',
|
||||
name: 'BeneficiaryInfoDetail',
|
||||
component: BeneficiaryInfoDetail,
|
||||
meta: {
|
||||
title: '指定受益人信息',
|
||||
index: 105
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/ct/surrenderInfo',
|
||||
name: 'SurrenderInfo',
|
||||
component: SurrenderInfo,
|
||||
meta: {
|
||||
title: '退保',
|
||||
index: 6
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bc/imageUpload',
|
||||
name: 'BcImageUpload',
|
||||
component: BcImageUpload,
|
||||
meta: {
|
||||
title: '上传影像资料',
|
||||
index: 7
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/ct/imageUpload',
|
||||
name: 'CtImageUpload',
|
||||
component: CtImageUpload,
|
||||
meta: {
|
||||
title: '上传影像资料',
|
||||
index: 7
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/common/handleResult',
|
||||
name: 'HandleResult',
|
||||
component: HandleResult,
|
||||
meta: {
|
||||
title: '操作结果',
|
||||
index: 8
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bc/beneficiaryConfirmation',
|
||||
name: 'BeneficiaryConfirmation',
|
||||
component: BeneficiaryConfirmation,
|
||||
meta: {
|
||||
title: '保全代办确认',
|
||||
index: 9
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -166,25 +109,7 @@ export default [
|
||||
component: RenewalConfirmation,
|
||||
meta: {
|
||||
title: '保全代办确认',
|
||||
index: 10
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bb/contactConfirmation',
|
||||
name: 'contactConfirmation',
|
||||
component: contactConfirmation,
|
||||
meta: {
|
||||
title: '保全代办确认',
|
||||
index: 11
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/ct/surrenderConfirmation',
|
||||
name: 'SurrenderConfirmation',
|
||||
component: SurrenderConfirmation,
|
||||
meta: {
|
||||
title: '保全代办确认',
|
||||
index: 12
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -196,40 +121,162 @@ export default [
|
||||
index: 12
|
||||
}
|
||||
},
|
||||
// ---------------------联系方式变更------------------
|
||||
{
|
||||
path: '/preserve/bb/contactInfo',
|
||||
name: 'contactInfo',
|
||||
component: contactInfo,
|
||||
meta: {
|
||||
title: '联系方式变更',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bb/contacAgreement',
|
||||
name: 'contacAgreement',
|
||||
component: contacAgreement,
|
||||
meta: {
|
||||
title: '联系方式变更协议',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bb/contactConfirmation',
|
||||
name: 'contactConfirmation',
|
||||
component: contactConfirmation,
|
||||
meta: {
|
||||
title: '保全代办确认',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
// ---------------------受益人变更------------------
|
||||
{
|
||||
path: '/preserve/bc/beneficiaryInfo',
|
||||
name: 'BeneficiaryInfo',
|
||||
component: BeneficiaryInfo,
|
||||
meta: {
|
||||
title: '受益人变更',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bc/beneficiaryInfoDetail',
|
||||
name: 'BeneficiaryInfoDetail',
|
||||
component: BeneficiaryInfoDetail,
|
||||
meta: {
|
||||
title: '指定受益人信息',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bc/imageUpload',
|
||||
name: 'BcImageUpload',
|
||||
component: BcImageUpload,
|
||||
meta: {
|
||||
title: '上传影像资料',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bc/beneficiaryConfirmation',
|
||||
name: 'BeneficiaryConfirmation',
|
||||
component: BeneficiaryConfirmation,
|
||||
meta: {
|
||||
title: '保全代办确认',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/bc/beneficiaryInfoAdd',
|
||||
name: 'BeneficiaryInfoAdd',
|
||||
component: BeneficiaryInfoAdd,
|
||||
meta: {
|
||||
title: '指定受益人信息',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
// ---------------------退保------------------
|
||||
{
|
||||
path: '/preserve/ct/surrenderInfo',
|
||||
name: 'SurrenderInfo',
|
||||
component: SurrenderInfo,
|
||||
meta: {
|
||||
title: '退保',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/ct/imageUpload',
|
||||
name: 'CtImageUpload',
|
||||
component: CtImageUpload,
|
||||
meta: {
|
||||
title: '影像上传',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/ct/surrenderTip',
|
||||
name: 'SurrenderTip',
|
||||
component: SurrenderTip,
|
||||
meta: {
|
||||
title: '退保协议',
|
||||
index: 12
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/common/submitResult',
|
||||
name: 'SubmitResult',
|
||||
component: SubmitResult,
|
||||
path: '/preserve/ct/surrenderConfirmation',
|
||||
name: 'SurrenderConfirmation',
|
||||
component: SurrenderConfirmation,
|
||||
meta: {
|
||||
title: '提交结果',
|
||||
index: 13
|
||||
title: '保全代办确认',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
// ---------------------犹豫期退保------------------
|
||||
{
|
||||
path: '/preserve/wt/wsurrenderInfo',
|
||||
name: 'WSurrenderInfo',
|
||||
component: WSurrenderInfo,
|
||||
meta: {
|
||||
title: '犹豫期退保',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/Progress',
|
||||
name: 'Progress',
|
||||
component: Progress,
|
||||
path: '/preserve/wt/imageUpload',
|
||||
name: 'CtImageUpload',
|
||||
component: WtImageUpload,
|
||||
meta: {
|
||||
title: '保全进度查询',
|
||||
index: 14
|
||||
title: '影像上传',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/wt/wsurrenderTip',
|
||||
name: 'WSurrenderTip',
|
||||
component: WSurrenderTip,
|
||||
meta: {
|
||||
title: '犹豫期退保协议',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/preserve/wt/wsurrenderConfirmation',
|
||||
name: 'WSurrenderConfirmation',
|
||||
component: WSurrenderConfirmation,
|
||||
meta: {
|
||||
title: '保全代办确认',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
//-----------------------保全进度详情页面------------------
|
||||
{
|
||||
path: '/preserve/detail/Contact/:surrenderId',
|
||||
name: 'Contact',
|
||||
component: Contact,
|
||||
meta: {
|
||||
title: '联系方式变更',
|
||||
index: 15
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -238,7 +285,7 @@ export default [
|
||||
component: Beneficiary,
|
||||
meta: {
|
||||
title: '受益人',
|
||||
index: 16
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -247,7 +294,7 @@ export default [
|
||||
component: BeneficiaryInfoD,
|
||||
meta: {
|
||||
title: '指定受益人信息',
|
||||
index: 17
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -256,7 +303,7 @@ export default [
|
||||
component: CoolingOffperiodSurrender,
|
||||
meta: {
|
||||
title: '犹豫期退保',
|
||||
index: 18
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -265,7 +312,7 @@ export default [
|
||||
component: Surrender,
|
||||
meta: {
|
||||
title: '退保',
|
||||
index: 19
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -274,7 +321,7 @@ export default [
|
||||
component: Renewal,
|
||||
meta: {
|
||||
title: '续期账号变更',
|
||||
index: 20
|
||||
index: 1
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
<li><router-link to="/preserve/common/search?entry=BC">保全-搜索-受益人变更</router-link></li>
|
||||
<li><router-link to="/preserve/common/search?entry=PC">保全-搜索-续期账户变更</router-link></li>
|
||||
<li><router-link to="/preserve/common/search?entry=CT">保全-搜索-退保</router-link></li>
|
||||
<li><router-link to="/preserve/common/search?entry=WT">保全-搜索-犹豫期退保</router-link></li>
|
||||
<!-- <li><router-link to="/preserve/common/search?entry=WT">保全-搜索-犹退</router-link></li> -->
|
||||
<li><router-link to="/manpower/DiscAnalysis/List">DISC性格分析</router-link></li>
|
||||
</ul>
|
||||
|
||||
@@ -137,7 +137,7 @@ export default {
|
||||
localStorage['preserve-policy'] = JSON.stringify(this.policy)
|
||||
resolve()
|
||||
} else {
|
||||
reject(this.$toast(res.content))
|
||||
reject(this.$toast(res.resultMessage))
|
||||
}
|
||||
},
|
||||
error => {
|
||||
@@ -196,7 +196,7 @@ export default {
|
||||
routerInfo: path
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.content)
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
},
|
||||
error => {
|
||||
|
||||
@@ -205,7 +205,7 @@ export default {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.content)
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ export default {
|
||||
this.path = `/preserve/ct/surrenderConfirmation?entry=${this.entry}`
|
||||
break
|
||||
case 'WT':
|
||||
this.path = ''
|
||||
this.path = `/preserve/wt/wsurrenderConfirmation?entry=${this.entry}`
|
||||
break
|
||||
default:
|
||||
this.path = ''
|
||||
|
||||
@@ -91,7 +91,7 @@ export default {
|
||||
this.policyList = res.content.policyDTOList
|
||||
resolve()
|
||||
} else {
|
||||
this.$toast(res.content)
|
||||
this.$toast(res.resultMessage)
|
||||
reject()
|
||||
}
|
||||
},
|
||||
@@ -110,9 +110,9 @@ export default {
|
||||
case 'CT': //退保
|
||||
url = `ct/surrenderInfo?entry=${this.entry}`
|
||||
break
|
||||
// case 'WT': //犹豫期退保
|
||||
// url = `wt/surrenderInfo?entry=${this.entry}`
|
||||
// break
|
||||
case 'WT': //犹豫期退保
|
||||
url = `wt/wsurrenderInfo?entry=${this.entry}`
|
||||
break
|
||||
case 'BC': //受益人变更
|
||||
url = `bc/beneficiaryInfo?entry=${this.entry}`
|
||||
break
|
||||
|
||||
@@ -87,7 +87,7 @@ export default {
|
||||
this.$toast(`暂无此客户`)
|
||||
}
|
||||
} else {
|
||||
this.$toast(res.content || '暂无此客户')
|
||||
this.$toast(res.resultMessage || '暂无此客户')
|
||||
}
|
||||
})
|
||||
this.isSearch = false
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<img class="w60 h60 mt100" :src="srcSuccess" alt="" />
|
||||
</div>
|
||||
<p class="mt20 text-center">提交成功</p>
|
||||
<p class="mt20 fs12 gray text-center">如有疑问请拨打客服电话: 4000-000-000</p>
|
||||
<p class="mt20 fs12 gray text-center">如有疑问请拨打客服电话: 400-694-6688</p>
|
||||
|
||||
<div class="bg-white bottom-btn"><van-button type="danger" size="large" @click="nextStep" v-no-more-click="1000">返回</van-button></div>
|
||||
</div>
|
||||
|
||||
@@ -252,7 +252,7 @@ export default {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.content)
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -150,8 +150,6 @@ export default {
|
||||
this.changeInfo[item] = res.content.content[0][item] !== res.content.content[1][item]
|
||||
}
|
||||
this.account = this.changeInfo.bankNo == true ? '新银行账户' : '原银行账户'
|
||||
this.ebizSurrender.surrenderRate =
|
||||
this.ebizSurrender.surrenderRate == '0' ? this.ebizSurrender.surrenderRate : this.ebizSurrender.surrenderRate + '%'
|
||||
this.isUnRead = this.pdfList.some(i => {
|
||||
return i.documentStatus == '0'
|
||||
})
|
||||
|
||||
@@ -277,11 +277,11 @@ export default {
|
||||
this.riskType = resData.riskList.some(item => {
|
||||
return item.riskType == '4'
|
||||
})
|
||||
this.policy.riskType == this.riskType
|
||||
this.policy.riskType = this.riskType
|
||||
this.ctBonusDTO = Object.assign({}, this.ctBonusDTO, this.detail)
|
||||
resolve()
|
||||
} else {
|
||||
reject(this.$toast(res.content))
|
||||
reject(this.$toast(res.resultMessage))
|
||||
}
|
||||
},
|
||||
error => {
|
||||
@@ -475,7 +475,7 @@ export default {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.content)
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
|
||||
@@ -135,7 +135,7 @@ export default {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.content)
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
|
||||
@@ -135,7 +135,7 @@ export default {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.content)
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
|
||||
@@ -205,7 +205,7 @@ export default {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.content)
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -272,11 +272,7 @@ export default {
|
||||
if (res.result == 0) {
|
||||
this.list = res.content
|
||||
} else {
|
||||
if (res.content) {
|
||||
this.$toast(res.content)
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -370,7 +366,7 @@ export default {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.content)
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -4,78 +4,29 @@
|
||||
<div class=" pb80">
|
||||
<div class="m20 bg-white">
|
||||
<div>
|
||||
<!-- 身份证 -->
|
||||
<div v-if="entry == 'surrender' || entry == 'hesitateSurrender'">
|
||||
<van-cell-group>
|
||||
<van-field required label="身份证正面" disabled />
|
||||
</van-cell-group>
|
||||
<div @click="test('fileListIdFront', idType)" class="flex align-items-e">
|
||||
<van-uploader
|
||||
name="fileListIdFront"
|
||||
v-model="fileListIdFront"
|
||||
:after-read="afterRead"
|
||||
:before-delete="beforeDelete"
|
||||
class="mt10 ml20"
|
||||
:max-count="1"
|
||||
@delete="deleteImg"
|
||||
/>
|
||||
</div>
|
||||
<van-cell-group>
|
||||
<van-field required label="身份证反面" disabled />
|
||||
</van-cell-group>
|
||||
<div @click="test('fileListIdBack', idType)">
|
||||
<van-uploader
|
||||
name="fileListIdBack"
|
||||
v-model="fileListIdBack"
|
||||
:after-read="afterRead"
|
||||
@delete="deleteImg"
|
||||
:before-delete="beforeDelete"
|
||||
class="mt10 ml20"
|
||||
:max-count="1"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 银行卡 -->
|
||||
<div v-if="entry == 'renewal' || ((entry == 'surrender' || entry == 'hesitateSurrender') && accountType == '1')">
|
||||
<van-cell-group>
|
||||
<van-field required label="银行卡" disabled />
|
||||
</van-cell-group>
|
||||
<div @click="test('fileListBank', idType)">
|
||||
<van-uploader
|
||||
name="fileListBank"
|
||||
v-model="fileListBank"
|
||||
:after-read="afterRead"
|
||||
@delete="deleteImg"
|
||||
:before-delete="beforeDelete"
|
||||
class="mt10 ml20"
|
||||
:max-count="1"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 纸质保单 -->
|
||||
<div v-if="(entry == 'surrender' || entry == 'hesitateSurrender') && conTractType == '1'">
|
||||
<van-cell-group>
|
||||
<van-field required label="纸质保单" disabled />
|
||||
</van-cell-group>
|
||||
<div @click="test('fileListContract ', idType)">
|
||||
<van-uploader
|
||||
name="fileListContract"
|
||||
v-model="fileListContract"
|
||||
:after-read="afterRead"
|
||||
@delete="deleteImg"
|
||||
:before-delete="beforeDelete"
|
||||
class="mt10 ml20"
|
||||
:max-count="1"
|
||||
/>
|
||||
<!-- 影像 -->
|
||||
<div v-for="(item, index) in fileList" :key="index">
|
||||
<div v-if="item.isShow">
|
||||
<van-cell-group>
|
||||
<van-field required :label="item.label" disabled />
|
||||
</van-cell-group>
|
||||
<div @click="test(item)">
|
||||
<van-uploader
|
||||
:name="item.name"
|
||||
v-model="item.realFileList"
|
||||
:after-read="afterRead"
|
||||
:before-delete="beforeDelete"
|
||||
class="mt10 ml20"
|
||||
:max-count="item.max"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-white bottom-btn">
|
||||
<van-button type="danger" size="large" :disabled="isDisabled" @click="nextStep" v-no-more-click="2000">下一步</van-button>
|
||||
<van-button type="danger" size="large" @click="nextStep" v-no-more-click="2000">下一步</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -83,8 +34,7 @@
|
||||
<script>
|
||||
import { Cell, CellGroup, Field, Uploader, RadioGroup, Radio, Dialog, Picker, Popup } from 'vant'
|
||||
import { uploadImg } from '@/api/ebiz/sale/sale'
|
||||
import config from '@/config'
|
||||
import { customerInfoChange, preserveHangUp } from '@/api/ebiz/preserve/preserve'
|
||||
import { changeEdor } from '@/api/ebiz/preserve/preserve'
|
||||
export default {
|
||||
components: {
|
||||
[Cell.name]: Cell,
|
||||
@@ -103,157 +53,94 @@ export default {
|
||||
id: '',
|
||||
idType: '1',
|
||||
type: '',
|
||||
fileListIdFront: [], //身份证正面
|
||||
fileListIdBack: [], //身份证反面
|
||||
fileListBank: [], // 银行账户
|
||||
fileListContract: [], //纸质保单
|
||||
file: '', // 图片流
|
||||
imgName: '', // 图片名称
|
||||
list: [],
|
||||
fileList: [
|
||||
{
|
||||
name: 'idCardfront',
|
||||
label: '身份证正面',
|
||||
imageInfoType: '1', // 影像类型
|
||||
subBusinessType: '3', // 影像归属 0 投保人 1 被保人 2 受益人 3 代理人
|
||||
realFileList: [],
|
||||
popList: [],
|
||||
isShow: true, //是否显示(是否需要上传)
|
||||
min: 1,
|
||||
max: 1 //限制最大张数
|
||||
},
|
||||
{
|
||||
name: 'idCardBack',
|
||||
label: '身份证反面',
|
||||
imageInfoType: '2', // 影像类型
|
||||
subBusinessType: '3', // 影像归属 0 投保人 1 被保人 2 受益人 3 代理人
|
||||
realFileList: [],
|
||||
popList: [],
|
||||
isShow: true, //是否显示(是否需要上传)
|
||||
min: 1,
|
||||
max: 1 //限制最大张数
|
||||
},
|
||||
{
|
||||
name: 'bank',
|
||||
label: '银行卡',
|
||||
imageInfoType: '3', // 影像类型
|
||||
subBusinessType: '3', // 影像归属 0 投保人 1 被保人 2 受益人 3 代理人
|
||||
realFileList: [],
|
||||
popList: [],
|
||||
isShow: true, //是否显示(是否需要上传)
|
||||
min: 1,
|
||||
max: 2 //限制最大张数
|
||||
},
|
||||
{
|
||||
name: 'others',
|
||||
label: '纸质保单影像',
|
||||
imageInfoType: '11', // 影像类型
|
||||
subBusinessType: '3', // 影像归属 0 投保人 1 被保人 2 受益人 3 代理人
|
||||
realFileList: [],
|
||||
popList: [],
|
||||
isShow: true, //是否显示(是否需要上传)
|
||||
min: 1,
|
||||
max: 500 //限制最大张数
|
||||
}
|
||||
],
|
||||
uploadCheck: {},
|
||||
entry: '',
|
||||
surrenderType: '',
|
||||
accountType: '', //退款银行账号类型 0-原银行 1-新银行
|
||||
conTractType: '' //保单类型 0-电子 1-纸质
|
||||
customerInfo: JSON.parse(localStorage.getItem('preserve-customerInfo'))
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.entry = JSON.parse(localStorage.customerInfo).entry
|
||||
this.accountType = this.$route.query.accountType
|
||||
this.conTractType = this.$route.query.conTractType
|
||||
switch (this.entry) {
|
||||
case 'contact': //联系方式变更
|
||||
this.surrenderType = '1'
|
||||
break
|
||||
case 'beneficiary': //受益人变更
|
||||
this.surrenderType = '2'
|
||||
break
|
||||
case 'renewal': //续期账户变更
|
||||
this.surrenderType = '3'
|
||||
break
|
||||
case 'surrender': //退保
|
||||
this.surrenderType = '4'
|
||||
break
|
||||
case 'hesitateSurrender': //犹豫期退保
|
||||
this.surrenderType = '5'
|
||||
break
|
||||
default:
|
||||
break
|
||||
// 初始化 上传影像数据
|
||||
if (this.$route.query.isIdCard == '1') {
|
||||
this.fileList[0].isShow = false
|
||||
this.fileList[1].isShow = false
|
||||
}
|
||||
// 银行卡
|
||||
if (window.localStorage.getItem('bankCardUrlPath') != null) {
|
||||
let bankCardUrl = {
|
||||
url: config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${window.localStorage.getItem('bankCardUrlPath')}`
|
||||
}
|
||||
this.fileListBank.push(bankCardUrl)
|
||||
//续期账号变更
|
||||
if (this.surrenderType == '2') {
|
||||
let policyList = JSON.parse(localStorage.accountDTOList)
|
||||
policyList.forEach(item => {
|
||||
let obj = {
|
||||
businessNo: JSON.parse(localStorage.customerInfo).edorApplyNo,
|
||||
businessType: '2',
|
||||
imageInfoType: '3',
|
||||
rgssUrl: window.localStorage.getItem('bankCardUrlPath'),
|
||||
subBusinessType: '3',
|
||||
subBusinessNo: item.contNo
|
||||
}
|
||||
this.list.push(obj)
|
||||
})
|
||||
} else {
|
||||
//累计红利领取
|
||||
let obj = {
|
||||
businessNo: JSON.parse(localStorage.customerInfo).edorApplyNo,
|
||||
businessType: '2',
|
||||
imageInfoType: '3',
|
||||
rgssUrl: window.localStorage.getItem('bankCardUrlPath'),
|
||||
subBusinessType: '3',
|
||||
subBusinessNo: JSON.parse(localStorage.customerInfo).edorApplyNo
|
||||
}
|
||||
this.list.push(obj)
|
||||
}
|
||||
} else {
|
||||
this.fileListBank = []
|
||||
if (this.$route.query.isbankCard == '1') {
|
||||
this.fileList[2].isShow = false
|
||||
}
|
||||
if (this.$route.query.isPolRecvWay == '1') {
|
||||
this.fileList[3].isShow = false
|
||||
}
|
||||
document.getElementsByTagName('body')[0].classList.add('bg-white')
|
||||
},
|
||||
destroyed() {
|
||||
document.getElementsByTagName('body')[0].classList.remove('bg-white')
|
||||
},
|
||||
methods: {
|
||||
test(type, id) {
|
||||
this.id = id
|
||||
this.type = type
|
||||
test(item) {
|
||||
this.uploadCheck = item
|
||||
},
|
||||
afterRead(file) {
|
||||
console.log('afterRead')
|
||||
// 此时可以自行将文件上传至服务器
|
||||
this.file = file.content
|
||||
this.imgName = file.file.name
|
||||
this.upload()
|
||||
},
|
||||
// 上传图片
|
||||
upload() {
|
||||
this.$toast.loading({
|
||||
// 持续展示 toast
|
||||
duration: 0,
|
||||
// 禁用背景点击
|
||||
forbidClick: true,
|
||||
loadingType: 'spinner',
|
||||
message: '加载中……'
|
||||
})
|
||||
let formdata = new FormData()
|
||||
formdata.append('imgPath', this.dataURLtoFile(this.file, this.imgName))
|
||||
formdata.append('imgPath', this.dataURLtoFile(file.content, file.file.name))
|
||||
uploadImg(formdata).then(res => {
|
||||
this.$toast.clear()
|
||||
if (res.result == '0') {
|
||||
this.$toast.clear()
|
||||
// 是投保人
|
||||
// 证件类型
|
||||
let imageInfoType = ''
|
||||
if (this.type == 'fileListIdFront' && this.id == '1') {
|
||||
imageInfoType = '1'
|
||||
} else if (this.type == 'fileListIdBack' && this.id == '1') {
|
||||
imageInfoType = '2'
|
||||
} else if (this.type == 'fileListBank') {
|
||||
imageInfoType = '3'
|
||||
}
|
||||
|
||||
//续期账号变更 subBusinessNo 传保单号, 其他传申请号
|
||||
if (this.surrenderType == '2') {
|
||||
let policyList = JSON.parse(localStorage.accountDTOList)
|
||||
policyList.forEach(item => {
|
||||
let obj = {
|
||||
businessNo: JSON.parse(localStorage.customerInfo).edorApplyNo,
|
||||
businessType: '2',
|
||||
imageInfoType,
|
||||
rgssUrl: encodeURI(res.path).replace(/\+/g, '%2B'),
|
||||
subBusinessType: '3',
|
||||
fileName: this.imgName,
|
||||
subBusinessNo: item.contNo
|
||||
}
|
||||
this.list.push(obj)
|
||||
})
|
||||
} else {
|
||||
let subBusinessNo = JSON.parse(localStorage.customerInfo).edorApplyNo
|
||||
let obj = {
|
||||
businessNo: JSON.parse(localStorage.customerInfo).edorApplyNo,
|
||||
businessType: '2',
|
||||
imageInfoType,
|
||||
rgssUrl: encodeURI(res.path).replace(/\+/g, '%2B'),
|
||||
subBusinessType: '3',
|
||||
fileName: this.imgName,
|
||||
subBusinessNo
|
||||
}
|
||||
this.list.push(obj)
|
||||
}
|
||||
this.uploadCheck.popList.push({ name: file.file.name, imgPath: res.path })
|
||||
console.log(this.fileList)
|
||||
} else {
|
||||
switch (this.type) {
|
||||
case 'fileListIdFront':
|
||||
this.fileListIdFront = []
|
||||
break
|
||||
case 'fileListIdBack':
|
||||
this.fileListIdBack = []
|
||||
break
|
||||
case 'fileListBank':
|
||||
this.fileListBank = []
|
||||
break
|
||||
}
|
||||
this.$toast.clear()
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
@@ -278,31 +165,39 @@ export default {
|
||||
message: '您确定要删除吗'
|
||||
})
|
||||
.then(() => {
|
||||
if (detail.name == 'fileListIdFront') {
|
||||
this.fileListIdFront = []
|
||||
} else if (detail.name == 'fileListIdBack') {
|
||||
this.fileListIdBack = []
|
||||
} else if (detail.name == 'fileListBank') {
|
||||
this.fileListBank = []
|
||||
}
|
||||
this.deleteImg(file)
|
||||
this.fileList.map(item => {
|
||||
if (item.name == detail.name) {
|
||||
// 处理
|
||||
let deleteIndex = null
|
||||
for (let i = 0; i < item.realFileList.length; i++) {
|
||||
if (item.realFileList[i].file == file.file) {
|
||||
deleteIndex = i
|
||||
break
|
||||
}
|
||||
}
|
||||
item.realFileList.splice(deleteIndex, 1)
|
||||
item.popList.splice(deleteIndex, 1)
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
// cancel
|
||||
})
|
||||
},
|
||||
// 删除图片
|
||||
deleteImg(file) {
|
||||
this.list.map((item, index, array) => {
|
||||
if (item.fileName.indexOf(file.file.name) == -1) {
|
||||
return
|
||||
} else {
|
||||
array.splice(index, 1)
|
||||
}
|
||||
})
|
||||
},
|
||||
// 点击下一步
|
||||
nextStep() {
|
||||
console.log('this.fileList', this.fileList)
|
||||
let errorArr = []
|
||||
this.fileList.forEach(v => {
|
||||
if (v.isShow) {
|
||||
if (v.popList.length < v.min) {
|
||||
errorArr.push(v.label)
|
||||
}
|
||||
}
|
||||
})
|
||||
if (errorArr.length > 0) {
|
||||
return this.$toast(`请上传${errorArr[0]}影像`)
|
||||
}
|
||||
this.$toast.loading({
|
||||
// 持续展示 toast
|
||||
duration: 0,
|
||||
@@ -311,98 +206,49 @@ export default {
|
||||
loadingType: 'spinner',
|
||||
message: '加载中……'
|
||||
})
|
||||
delete this.list.fileName
|
||||
|
||||
let hangUpData = {
|
||||
surrenderDTO: {
|
||||
surrenderId: JSON.parse(localStorage.customerInfo).surrenderId,
|
||||
edorapplyNo: JSON.parse(localStorage.customerInfo).edorapplyNo,
|
||||
edoracceptNo: '',
|
||||
surrenderType: this.surrenderType,
|
||||
mediaDTOList: [],
|
||||
customerInfoDTOList: [
|
||||
{
|
||||
customerNo: JSON.parse(localStorage.customerInfo).customerNo
|
||||
}
|
||||
],
|
||||
accountDTOList: [],
|
||||
recommendDTO: {},
|
||||
bonusDTOList: [],
|
||||
signDTOList: []
|
||||
}
|
||||
//
|
||||
let saveMediaDTO = {
|
||||
platformType: 'app',
|
||||
edorType: 'WT',
|
||||
operateType: '02',
|
||||
customerNo: this.customerInfo.customerNo,
|
||||
name: this.customerInfo.customerName,
|
||||
iDNo: this.customerInfo.idNo,
|
||||
mobile: this.customerInfo.customerMobile,
|
||||
surrenderId: this.customerInfo.surrenderId,
|
||||
edorApplyNo: this.customerInfo.edorApplyNo,
|
||||
mediaUploadDTOS: []
|
||||
}
|
||||
|
||||
if (this.surrenderType == '2') {
|
||||
let hangUpList = JSON.parse(localStorage.accountDTOList)
|
||||
let surrenderId = JSON.parse(localStorage.customerInfo).surrenderId.split(',')
|
||||
hangUpList.forEach((item, index) => {
|
||||
preserveHangUp({
|
||||
surrenderDTO: {
|
||||
surrenderId: surrenderId[index],
|
||||
edorapplyNo: JSON.parse(localStorage.customerInfo).edorapplyNo,
|
||||
edoracceptNo: '',
|
||||
surrenderType: this.surrenderType,
|
||||
mediaDTOList: [],
|
||||
customerInfoDTOList: [
|
||||
{
|
||||
customerNo: JSON.parse(localStorage.customerInfo).customerNo
|
||||
}
|
||||
],
|
||||
accountDTOList: [item],
|
||||
recommendDTO: {},
|
||||
bonusDTOList: [],
|
||||
signDTOList: []
|
||||
}
|
||||
}).then(backData => {
|
||||
if (backData.result == 0) {
|
||||
if (index >= hangUpList.length - 1) {
|
||||
this.customerInfoChange()
|
||||
console.log(this.fileList)
|
||||
this.fileList.forEach(item => {
|
||||
item.popList.forEach(subItem => {
|
||||
saveMediaDTO.mediaUploadDTOS.push(
|
||||
Object.assign(
|
||||
{},
|
||||
{
|
||||
businessNo: this.customerInfo.edorApplyNo,
|
||||
businessType: item.imageInfoType,
|
||||
imageInfoType: item.imageInfoType,
|
||||
rgssUrl: subItem.imgPath,
|
||||
subBusinessType: item.imageInfoType,
|
||||
subBusinessNo: item.imageInfoType,
|
||||
manageComCode: item.imageInfoType
|
||||
}
|
||||
} else {
|
||||
return this.$toast(backData.resultMessage)
|
||||
}
|
||||
})
|
||||
)
|
||||
)
|
||||
})
|
||||
} else {
|
||||
preserveHangUp(hangUpData).then(backData => {
|
||||
this.$toast.clear()
|
||||
if (backData.result == '0') {
|
||||
let customerInfo = JSON.parse(localStorage.customerInfo)
|
||||
customerInfo.edoracceptNo = backData.content
|
||||
localStorage.customerInfo = JSON.stringify(customerInfo)
|
||||
localStorage.bankCardUrl && localStorage.removeItem('bankCardUrl')
|
||||
this.customerInfoChange()
|
||||
} else {
|
||||
this.$toast(backData.resultMessage)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
customerInfoChange() {
|
||||
customerInfoChange({
|
||||
surrenderDTOList: [
|
||||
{
|
||||
// surrenderType: JSON.parse(localStorage.customerInfo).surrenderType, //"1","基本信息变更" "2","续期账号变更" "3","红利领取"
|
||||
surrenderType: this.surrenderType,
|
||||
customerInfoDTOList: [],
|
||||
mediaDTOList: this.list,
|
||||
surrenderId: JSON.parse(localStorage.customerInfo).surrenderId,
|
||||
recommendDTO: {},
|
||||
bonusDTOList: [],
|
||||
signDTOList: []
|
||||
}
|
||||
]
|
||||
}).then(res => {
|
||||
})
|
||||
changeEdor(saveMediaDTO).then(res => {
|
||||
this.$toast.clear()
|
||||
if (res.result == 0) {
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/preserve/handleResult',
|
||||
pullRefresh: '1',
|
||||
backToFirst: '1'
|
||||
url: location.origin + '/#/preserve/common/handleResult?entry=WT',
|
||||
pullRefresh: '1'
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/preserve/handleResult'
|
||||
path: '/preserve/common/handleResult?entry=WT'
|
||||
}
|
||||
})
|
||||
} else {
|
||||
@@ -410,36 +256,6 @@ export default {
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
listenChange() {
|
||||
const { fileListIdFront, fileListIdBack, fileListBank } = this
|
||||
return {
|
||||
fileListIdFront,
|
||||
fileListIdBack,
|
||||
fileListBank
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
listenChange(val) {
|
||||
if (
|
||||
(val.fileListIdFront.length != '0' &&
|
||||
val.fileListIdBack.length != '0' &&
|
||||
val.fileListBank.length != '0' &&
|
||||
(this.entry == 'surrender' || this.entry == 'hesitateSurrender') &&
|
||||
this.accountType == '1') ||
|
||||
(this.entry == 'renewal' && val.fileListBank.length != '0') ||
|
||||
(val.fileListIdFront.length != '0' &&
|
||||
val.fileListIdBack.length != '0' &&
|
||||
(this.entry == 'surrender' || this.entry == 'hesitateSurrender') &&
|
||||
this.accountType == '0')
|
||||
) {
|
||||
this.isDisabled = false
|
||||
} else {
|
||||
this.isDisabled = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
290
src/views/ebiz/preserve/wt/WSurrenderConfirmation.vue
Normal file
290
src/views/ebiz/preserve/wt/WSurrenderConfirmation.vue
Normal file
@@ -0,0 +1,290 @@
|
||||
<!--犹豫期退保-保全代办确认页-->
|
||||
<template>
|
||||
<div class="surrender-confirmation-container pb50">
|
||||
<div style="border-bottom: 1px solid #ebedf0" class="fs14 pl10 pv12 bg-white">
|
||||
<p>
|
||||
<span>尊敬的</span>
|
||||
<span class="red">{{ ebizSurrender.accountName }}</span
|
||||
>先生/女士,您好!
|
||||
</p>
|
||||
<p class="mt10">
|
||||
<span>您的</span>
|
||||
<span class="red">退保</span>已由代理人代办,标红字体为修改/添加内容,请确认信息并进行提交:
|
||||
</p>
|
||||
</div>
|
||||
<van-cell-group class="mt10 cont-info-container">
|
||||
<!-- 保单信息 -->
|
||||
<p style="border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 pv12">保单信息</p>
|
||||
<van-cell title="保单号" :value="ebizSurrender.contNo" />
|
||||
<van-cell title="产品名称" :value="ebizSurrender.riskName" />
|
||||
<van-cell title="投保人" :value="ebizSurrender.appntName" />
|
||||
<van-cell title="被保险人" :value="ebizSurrender.insuredName" />
|
||||
<van-cell title="保单生效日期" :value="ebizSurrender.cvalidate" />
|
||||
<van-cell title="退保金额" :value="ebizSurrender.surrenderMoney | amtFormat" />
|
||||
<!-- <van-cell title="万能险退保手续费比例" :value="ebizSurrender.surrenderRate" v-if="riskType" /> -->
|
||||
</van-cell-group>
|
||||
<!-- 账号信息 -->
|
||||
<van-cell-group class="mt10 cont-info-container">
|
||||
<p style="border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 pv12">账号信息</p>
|
||||
<van-cell title="开户人姓名" :value="ebizSurrender.accountName" />
|
||||
<van-cell title="退款账户" :value="account" />
|
||||
<van-cell title="开户银行">
|
||||
<div :class="{ red: changeInfo.bankName }" slot="default">{{ ebizSurrender.bankName }}</div>
|
||||
</van-cell>
|
||||
<van-cell title="银行账号">
|
||||
<div :class="{ red: changeInfo.bankNo }" slot="default">{{ ebizSurrender.bankNo }}</div>
|
||||
</van-cell>
|
||||
<van-cell title="开户行所在地">
|
||||
<div :class="{ red: changeInfo.bankProvince }" slot="default">{{ bankProvince }}</div>
|
||||
</van-cell>
|
||||
<van-cell title="退保原因">
|
||||
<div :class="{ red: changeInfo.reason }" slot="default">{{ ebizSurrender.reason | idToText('surrenderReasonList') }}</div>
|
||||
</van-cell>
|
||||
<van-cell title="其他退保原因" v-if="ebizSurrender.reason == '06'">
|
||||
<div :class="[{ red: changeInfo.remark }]" slot="default">{{ ebizSurrender.remark }}</div>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group class="fs14 mt10 pl15 pr15 pb20">
|
||||
<p class="pt20 pb20">以下内容需要您阅读确认:</p>
|
||||
<div v-for="(item, index) in pdfList" :key="index">
|
||||
<p>需阅读:</p>
|
||||
<div class="mb10 mt10 flex align-items-c justify-content-fs">
|
||||
<span class="red">《{{ item.documentName }}》</span>
|
||||
<img :src="src" v-if="item.documentStatus == '1'" />
|
||||
</div>
|
||||
</div>
|
||||
<p class="start">点击【开始】按钮,进行相关操作</p>
|
||||
</van-cell-group>
|
||||
|
||||
<van-dialog v-model="show" title="提示" show-cancel-button @confirm="authConfirm(authCode)" @cancel="clearTimer">
|
||||
<p class="p10 fs14">向此手机发送验证码确认用户身份</p>
|
||||
<p class="p10 fs14" style="border-bottom: 1px solid #ebedf0;">{{ customerInfo.customerMobile | mask }}</p>
|
||||
<van-cell-group class="flex align-items-c pr5 mb15">
|
||||
<van-field maxlength="6" placeholder="请输入手机验证码" v-model="authCode" clearable label-width="0" />
|
||||
<van-button type="danger" plain size="small" class="w160 p0" @click="getAuthCode" :disabled="codeDisabled" v-no-more-click="2000">
|
||||
{{ codeDisabled ? `${countDown}s后重新获取` : '获取验证码' }}
|
||||
</van-button>
|
||||
</van-cell-group>
|
||||
</van-dialog>
|
||||
<div class="bottom-btn bg-white">
|
||||
<van-button type="danger" v-if="!isUnRead" size="large" @click="show = true" v-no-more-click="2000">提交申请</van-button>
|
||||
<van-button type="danger" v-else size="large" @click="start" v-no-more-click="2000">开始</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Field, Cell, CellGroup, Dialog } from 'vant'
|
||||
import { queryConfirmDetail, changeEdor } from '@/api/ebiz/preserve/preserve'
|
||||
import { getAuthCode } from '@/api/ebiz/sale/sale'
|
||||
import filters from '@/views/ebiz/preserve/filters'
|
||||
import getAreaName from '@/views/ebiz/preserve/js/utils/get-area-name'
|
||||
|
||||
export default {
|
||||
name: 'SurrenderConfirmation',
|
||||
components: {
|
||||
[Field.name]: Field,
|
||||
[Cell.name]: Cell,
|
||||
[CellGroup.name]: CellGroup,
|
||||
[Dialog.name]: Dialog
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
show: false, // 获取短信验证码
|
||||
codeDisabled: false, // 获取验证码按钮是否禁用
|
||||
timeId: null, // 计时器ID
|
||||
countDown: 60, // 倒计时
|
||||
authCode: '', // 验证码
|
||||
src: this.$assetsUrl + 'images/u6490.png', // 图片路径
|
||||
sessionId: '',
|
||||
isUnRead: true, //是否存在未阅读文档
|
||||
|
||||
customerInfo: {},
|
||||
policy: {},
|
||||
changeInfo: {},
|
||||
surrenderSignList: [],
|
||||
ebizSurrender: {},
|
||||
pdfList: [], //需阅读文档list
|
||||
// riskType: null, //是否是万能险 4-是万能险 其他/null-非万能险
|
||||
account: '', //退款银行账户
|
||||
bankProvince: '' //开户行所在地
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
document.getElementsByTagName('body')[0].classList.add('bg-white')
|
||||
this.customerInfo = JSON.parse(localStorage['preserve-customerInfo']) //客户详情
|
||||
this.policy = JSON.parse(localStorage['preserve-policy']) //保单详情
|
||||
// this.riskType = this.policy.riskType
|
||||
this.init()
|
||||
},
|
||||
destroyed() {
|
||||
document.getElementsByTagName('body')[0].classList.remove('bg-white')
|
||||
},
|
||||
methods: {
|
||||
start() {
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/preserve/wt/WSurrenderTip'
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/preserve/wt/WSurrenderTip'
|
||||
}
|
||||
})
|
||||
},
|
||||
init() {
|
||||
return new Promise((resolve, reject) => {
|
||||
queryConfirmDetail({
|
||||
surrenderId: this.customerInfo.surrenderId,
|
||||
edorType: 'WT'
|
||||
}).then(
|
||||
res => {
|
||||
if (res.result == 0) {
|
||||
this.pdfList = res.content.surrenderSignList
|
||||
this.ebizSurrender = res.content.content[1]
|
||||
this.bankProvince = getAreaName([{ code: res.content.content[1].bankProvince }])
|
||||
this.surrenderSignList = res.content.surrenderSignList
|
||||
let keys = Object.keys(res.content.content[1])
|
||||
for (let item of keys) {
|
||||
this.changeInfo[item] = res.content.content[0][item] !== res.content.content[1][item]
|
||||
}
|
||||
this.account = this.changeInfo.bankNo == true ? '新银行账户' : '原银行账户'
|
||||
this.isUnRead = this.pdfList.some(i => {
|
||||
return i.documentStatus == '0'
|
||||
})
|
||||
resolve()
|
||||
} else {
|
||||
reject(this.$toast(res.resultMessage))
|
||||
}
|
||||
},
|
||||
error => {
|
||||
reject(this.$toast(error))
|
||||
}
|
||||
)
|
||||
})
|
||||
},
|
||||
// 获取短信验证码
|
||||
getAuthCode() {
|
||||
this.codeDisabled = true
|
||||
//倒计时
|
||||
this.timeId = setInterval(() => {
|
||||
this.countDown--
|
||||
if (this.countDown <= 0) {
|
||||
window.clearInterval(this.timeId)
|
||||
this.codeDisabled = false
|
||||
this.countDown = 60
|
||||
}
|
||||
}, 1000)
|
||||
getAuthCode({
|
||||
operateType: 'appntInfoEntry',
|
||||
type: 'H5',
|
||||
operateCode: this.customerInfo.customerMobile,
|
||||
system: 'agentApp',
|
||||
operateCodeType: '0'
|
||||
}).then(res => {
|
||||
console.log(res)
|
||||
if (res.result == 0) {
|
||||
this.sessionId = res.sessionId
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
},
|
||||
// 验证码确认事件
|
||||
async authConfirm() {
|
||||
//清理计时器
|
||||
this.clearTimer()
|
||||
this.submit()
|
||||
},
|
||||
// 清理计时器
|
||||
clearTimer() {
|
||||
window.clearInterval(this.timeId)
|
||||
this.timeId = null
|
||||
this.countDown = 60
|
||||
this.codeDisabled = false
|
||||
},
|
||||
//确认变更
|
||||
submit() {
|
||||
let data = {
|
||||
platformType: 'APP',
|
||||
edorType: 'WT',
|
||||
operateType: '04',
|
||||
surrenderId: this.customerInfo.surrenderId,
|
||||
edorApplyNo: this.customerInfo.edorApplyNo,
|
||||
checkCodeDTO: {
|
||||
smsId: this.sessionId,
|
||||
code: this.authCode
|
||||
}
|
||||
}
|
||||
changeEdor(data).then(res => {
|
||||
if (res.result == 0) {
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + `/#/preserve/common/submitResult`
|
||||
},
|
||||
routerInfo: {
|
||||
path: `/preserve/common/submitResult`
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/*
|
||||
// 在微信中校验token是否失效
|
||||
async checkSignInvalid(signInvalid) {
|
||||
let that = this
|
||||
this.$toast.loading({
|
||||
duration: 0, // 持续展示 toast
|
||||
forbidClick: true, // 禁用背景点击
|
||||
loadingType: 'spinner',
|
||||
message: '加载中……'
|
||||
})
|
||||
let data = {
|
||||
sign: signInvalid
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
checkSignInvalid(data).then(res => {
|
||||
if (res.result == '0') {
|
||||
that.$toast.clear()
|
||||
let status = res.content.status
|
||||
resolve(status)
|
||||
} else {
|
||||
reject()
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
*/
|
||||
},
|
||||
filters: {
|
||||
mask: filters.mask,
|
||||
idToText: filters.idToText,
|
||||
amtFormat: filters.amtFormat
|
||||
},
|
||||
beforeDestroy() {
|
||||
//清理计时器
|
||||
this.clearTimer()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.surrender-confirmation-container {
|
||||
.cont-info-container {
|
||||
/deep/.van-cell__title,
|
||||
.van-cell__value {
|
||||
flex: auto;
|
||||
text-align: left;
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.red {
|
||||
color: #e9332e !important;
|
||||
}
|
||||
</style>
|
||||
551
src/views/ebiz/preserve/wt/WSurrenderInfo.vue
Normal file
551
src/views/ebiz/preserve/wt/WSurrenderInfo.vue
Normal file
@@ -0,0 +1,551 @@
|
||||
<!--犹豫期退保变更页-->
|
||||
<template>
|
||||
<div class="surrender-info-container pb45">
|
||||
<div v-if="!isScan">
|
||||
<van-cell-group class="mt10 cont-info-container">
|
||||
<!-- 保单信息 -->
|
||||
<p style="border-bottom: 1px solid #ebedf0" class=" fs15 fwb pl10 pv12">保单信息</p>
|
||||
<van-cell title="产品名称" :value="detail.riskName" required name="产品名称" />
|
||||
<van-cell title="保单号" :value="detail.contNo" required name="保单号" />
|
||||
<van-cell title="投保人" :value="detail.appntName" required name="投保人" />
|
||||
<van-cell title="被保险人" :value="detail.insuredName" required name="被保险人" />
|
||||
<van-cell title="保单生效日期" :value="detail.cvalidate" required name="保单生效日期" />
|
||||
<van-cell title="退保金额" :value="ctTrialDTO.surrenderMoney | amtFormat" required name="退保金额" />
|
||||
<!-- <van-cell title="万能险退保手续费比例" :value="ctTrialDTO.surrenderRate" required v-if="riskType" name="万能险退保手续费比例" /> -->
|
||||
</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-field label="开户人姓名" required :value.sync="ctTrialDTO.accountName" name="开户人姓名" v-validate="'required'" readonly />
|
||||
<van-field
|
||||
:value="account"
|
||||
label="退款账户"
|
||||
placeholder="请选择"
|
||||
right-icon="arrow"
|
||||
@click="toSelect('3')"
|
||||
readonly
|
||||
v-validate="'required'"
|
||||
name="退款账户"
|
||||
required
|
||||
/>
|
||||
<van-field
|
||||
:value.sync="ctAccountDTO.bankName"
|
||||
label="开户银行"
|
||||
placeholder="请选择"
|
||||
right-icon="arrow"
|
||||
@click="toSelect('1')"
|
||||
readonly
|
||||
v-validate="'required'"
|
||||
name="开户银行"
|
||||
v-if="accountType != '1'"
|
||||
required
|
||||
/>
|
||||
<van-field v-else label="开户银行" :value.sync="ctAccountDTO.bankName" v-validate="'required'" name="开户银行" required readonly />
|
||||
</van-cell-group>
|
||||
<van-cell-group :class="['flex', 'align-items-c']">
|
||||
<van-field
|
||||
:class="[{ 'isScan-c': accountType != '1' }]"
|
||||
v-model="ctAccountDTO.bankNo"
|
||||
label="银行账号"
|
||||
required
|
||||
maxlength="19"
|
||||
placeholder="请输入"
|
||||
clearable
|
||||
v-validate="'required|bankCard'"
|
||||
name="银行账号"
|
||||
:readonly="accountType == '1'"
|
||||
/>
|
||||
<van-button
|
||||
type="danger"
|
||||
v-if="accountType != '1'"
|
||||
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="bankProvince"
|
||||
label="开户银行所在地"
|
||||
placeholder="请输入"
|
||||
v-validate="'required'"
|
||||
@click="bankProvincePopup = true"
|
||||
name="开户银行所在地"
|
||||
required
|
||||
readonly
|
||||
/>
|
||||
<van-field
|
||||
:value.sync="reason"
|
||||
label="退保原因"
|
||||
required
|
||||
placeholder="请选择"
|
||||
right-icon="arrow"
|
||||
readonly
|
||||
v-validate="'required'"
|
||||
name="退保原因"
|
||||
@click="toSelect('2')"
|
||||
/>
|
||||
</div>
|
||||
<!-- 其他退保原因输入框 -->
|
||||
<van-row class="mb10 mt1">
|
||||
<van-col span="8"></van-col>
|
||||
<van-col span="16">
|
||||
<van-field
|
||||
class="van-hairline--surround"
|
||||
v-model="remark"
|
||||
rows="4"
|
||||
autosize
|
||||
type="textarea"
|
||||
maxlength="200"
|
||||
name="其他退保原因"
|
||||
placeholder="请输入其他退保原因"
|
||||
v-validate="surrenderReasonType == '06' ? 'required' : ''"
|
||||
v-if="surrenderReasonType == '06'"
|
||||
/>
|
||||
</van-col>
|
||||
</van-row>
|
||||
<div class="bottom-btn bg-white">
|
||||
<van-button type="danger" size="large" @click="nextStep" v-no-more-click="2000">下一步</van-button>
|
||||
</div>
|
||||
|
||||
<!-- 字段选择 -->
|
||||
<van-popup v-model="popupShow" position="bottom">
|
||||
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" />
|
||||
</van-popup>
|
||||
<!-- 开户行地址选择 -->
|
||||
<van-popup v-model="bankProvincePopup" position="bottom">
|
||||
<van-area :columns-placeholder="['请选择']" :columns-num="1" :area-list="areaList" @confirm="sureArea($event, '1')" @cancel="homeShow = false" />
|
||||
</van-popup>
|
||||
</div>
|
||||
<!-- 银行卡扫描 -->
|
||||
<BankCardScan :scanShow="isScan" :clear="false" @getScanInfo="getBankCardInfo"></BankCardScan>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Field, Cell, CellGroup, Popup, Row, Col, Picker, Area } from 'vant'
|
||||
import BankCardScan from '@/components/ebiz/sale/BankCardScan'
|
||||
import { policyInfo, trial, changeEdor } from '@/api/ebiz/preserve/preserve'
|
||||
import { getBankList, checkCard } from '@/api/ebiz/sale/sale'
|
||||
import dataDic from '../js/data-dictionary.js'
|
||||
import filters from '@/views/ebiz/preserve/filters'
|
||||
import getAreaName from '@/views/ebiz/preserve/js/utils/get-area-name'
|
||||
import areaList from '@/views/ebiz/preserve/js/utils/area'
|
||||
|
||||
export default {
|
||||
name: 'SurrenderInfo',
|
||||
components: {
|
||||
[Field.name]: Field,
|
||||
[Cell.name]: Cell,
|
||||
[CellGroup.name]: CellGroup,
|
||||
[Row.name]: Row,
|
||||
[Col.name]: Col,
|
||||
[Popup.name]: Popup,
|
||||
[Picker.name]: Picker,
|
||||
[Area.name]: Area,
|
||||
BankCardScan
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
valueKey: '',
|
||||
popupShow: false,
|
||||
pickerType: '',
|
||||
columns: [],
|
||||
bankProvincePopup: false,
|
||||
areaList: areaList,
|
||||
bankProvince: '', //开户银行所在地
|
||||
policy: null, //保单详情
|
||||
customerInfo: {}, //客户详情
|
||||
|
||||
bankList: [], // 银行列表
|
||||
isScan: false, // 是否扫描银行卡
|
||||
account: '原银行账户', //退款账户
|
||||
accountType: '1', //退款账户码值
|
||||
surrenderReasonType: '', //退款原因码值
|
||||
// riskType: null, //是否是万能险 4-是万能险 其他/null-非万能险
|
||||
prem: 0, //保单总保费
|
||||
polRecvWay: 0, //是否是纸质合同 0电子1纸质2电子+纸质
|
||||
|
||||
reason: '', //退保原因
|
||||
remark: '', //退保其他原因描述
|
||||
//退款银行账户信息
|
||||
ctAccountDTO: {
|
||||
bankCode: '',
|
||||
bankNo: '',
|
||||
bankName: '',
|
||||
bankProvince: ''
|
||||
},
|
||||
//试算信息
|
||||
ctTrialDTO: {
|
||||
surrenderMoney: '',
|
||||
surrenderRate: '',
|
||||
accountName: ''
|
||||
},
|
||||
//退保基本信息
|
||||
detail: {
|
||||
riskName: '',
|
||||
contNo: '',
|
||||
appntName: '',
|
||||
insuredName: '',
|
||||
cvalidate: ''
|
||||
},
|
||||
//原始退保信息
|
||||
ctBonusDTO: {
|
||||
isNewInfo: '1'
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.customerInfo = JSON.parse(localStorage['preserve-customerInfo']) //客户详情
|
||||
this.policy = JSON.parse(localStorage['preserve-policy'])
|
||||
},
|
||||
async mounted() {
|
||||
document.getElementsByTagName('body')[0].classList.add('bg-white')
|
||||
// 筛选按钮的点击事件
|
||||
window.appCallBack = this.appCallBack
|
||||
this.getBank()
|
||||
await this.getPolicyInfo()
|
||||
await this.getTrial({ customerNo: this.customerInfo.customerNo, edorType: this.$route.query.entry, contNo: this.policy.contNo })
|
||||
},
|
||||
destroyed() {
|
||||
document.getElementsByTagName('body')[0].classList.remove('bg-white')
|
||||
},
|
||||
filters: {
|
||||
idToText: filters.idToText,
|
||||
amtFormat: filters.amtFormat
|
||||
},
|
||||
methods: {
|
||||
//获取试算信息
|
||||
getTrial(data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
trial(data).then(
|
||||
res => {
|
||||
if (res.result == '0') {
|
||||
this.ctTrialDTO.accountName = res.content.newAccName
|
||||
this.ctTrialDTO.surrenderRate = res.content.feeRate
|
||||
this.ctTrialDTO.surrenderMoney = res.content.edorCTPrem
|
||||
this.ctAccountDTO.bankCode = res.content.newAccBankCode
|
||||
this.ctAccountDTO.bankNo = res.content.newAccNo
|
||||
this.ctAccountDTO.bankProvince = res.content.newBankProvince
|
||||
this.bankProvince = getAreaName([{ code: res.content.newBankProvince }])
|
||||
this.polRecvWay = res.content.polRecvWay
|
||||
dataDic['edorBankType'].some(item => {
|
||||
if (item.id == this.ctAccountDTO.bankCode) {
|
||||
this.ctAccountDTO.bankName = item.text
|
||||
}
|
||||
})
|
||||
this.ctBonusDTO = Object.assign({}, this.ctBonusDTO, this.ctTrialDTO, this.ctAccountDTO)
|
||||
resolve()
|
||||
} else {
|
||||
reject(this.$toast(res.resultMessage))
|
||||
}
|
||||
},
|
||||
error => {
|
||||
reject(this.$toast(error))
|
||||
}
|
||||
)
|
||||
})
|
||||
},
|
||||
//获取初始化信息
|
||||
getPolicyInfo() {
|
||||
let data = {
|
||||
contNo: this.policy.contNo,
|
||||
edorType: 'WT',
|
||||
customerNo: this.customerInfo.customerNo,
|
||||
idno: this.customerInfo.idNo
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
policyInfo(data).then(
|
||||
res => {
|
||||
if (res.result == '0') {
|
||||
let resData = res.content.cont
|
||||
this.detail.riskName = resData.riskName
|
||||
this.detail.contNo = resData.contNo
|
||||
this.detail.appntName = resData.appntName
|
||||
this.detail.insuredName = resData.insuredName
|
||||
this.detail.cvalidate = resData.cvaliDate
|
||||
this.detail.appntName = resData.appnt.appntName
|
||||
this.detail.insuredName = resData.insuredList[0].insuredName
|
||||
if (resData.riskList.length > 0) {
|
||||
resData.riskList.forEach(i => {
|
||||
this.prem += Number(i.prem)
|
||||
})
|
||||
}
|
||||
// this.riskType = resData.riskList.some(item => {
|
||||
// return item.riskType == '4'
|
||||
// })
|
||||
// this.policy.riskType = this.riskType
|
||||
this.ctBonusDTO = Object.assign({}, this.ctBonusDTO, this.detail)
|
||||
resolve()
|
||||
} else {
|
||||
reject(this.$toast(res.resultMessage))
|
||||
}
|
||||
},
|
||||
error => {
|
||||
reject(this.$toast(error))
|
||||
}
|
||||
)
|
||||
})
|
||||
},
|
||||
//弹框选择
|
||||
toSelect(pickerType, valueKey) {
|
||||
//pickerType 1.银行账户 退保原因 3、退保账户
|
||||
;[this.popupShow, this.pickerType] = [true, pickerType]
|
||||
if (valueKey) this.valueKey = valueKey
|
||||
switch (pickerType) {
|
||||
case '1':
|
||||
this.columns = this.bankList
|
||||
break
|
||||
case '2':
|
||||
this.columns = dataDic.surrenderReasonList
|
||||
break
|
||||
case '3':
|
||||
this.columns = dataDic.accountList
|
||||
}
|
||||
},
|
||||
//确认选择字段
|
||||
onConfirm(value) {
|
||||
this.popupShow = false
|
||||
switch (this.pickerType) {
|
||||
case '1':
|
||||
this.ctAccountDTO.bankCode = value.code
|
||||
this.ctAccountDTO.bankName = value.bankName
|
||||
break
|
||||
case '2':
|
||||
this.reason = value.text
|
||||
this.surrenderReasonType = value.id
|
||||
if (this.surrenderReasonType != '6') {
|
||||
this.remark = ''
|
||||
}
|
||||
break
|
||||
case '3':
|
||||
this.account = value.text
|
||||
this.accountType = value.id
|
||||
if (this.accountType == '1') {
|
||||
this.ctAccountDTO.bankCode = this.ctBonusDTO.bankCode
|
||||
this.ctAccountDTO.bankName = this.ctBonusDTO.bankName
|
||||
this.ctAccountDTO.bankProvince = this.ctBonusDTO.bankProvince
|
||||
this.ctAccountDTO.bankNo = this.ctBonusDTO.bankNo
|
||||
} else {
|
||||
this.ctAccountDTO.bankCode = ''
|
||||
this.ctAccountDTO.bankName = ''
|
||||
this.ctAccountDTO.newBankProvince = ''
|
||||
this.ctAccountDTO.bankNo = ''
|
||||
}
|
||||
break
|
||||
}
|
||||
},
|
||||
//区域选择
|
||||
sureArea(area, type) {
|
||||
switch (type) {
|
||||
case '1': //开户银行地址
|
||||
this.bankProvince = getAreaName(area)
|
||||
;[this.ctAccountDTO.bankProvince] = [area[0].code]
|
||||
this.bankProvincePopup = false
|
||||
break
|
||||
// case '2': //家庭地址
|
||||
// this.homeName = getAreaName(area)
|
||||
// ;[this.userInfo.homeProvince, this.userInfo.homeCity, this.userInfo.homeArea] = [area[0].code, area[1].code, area[2].code]
|
||||
// this.homeShow = false
|
||||
// break
|
||||
// case '3': //户籍
|
||||
// this.census = getAreaName(area)
|
||||
// ;[this.userInfo.householdProvince, this.userInfo.householdCity] = [area[0].code, area[1].code]
|
||||
// this.censusShow = false
|
||||
// break
|
||||
}
|
||||
},
|
||||
// 获取银行卡扫描信息
|
||||
getBankCardInfo(data) {
|
||||
this.ctAccountDTO.bankNo = data.name
|
||||
this.$jump({
|
||||
flag: 'navigation',
|
||||
extra: {
|
||||
title: '退保',
|
||||
hiddenRight: '1'
|
||||
}
|
||||
})
|
||||
this.isScan = false
|
||||
},
|
||||
// 银行卡扫描
|
||||
cardScanning(cardScanningType) {
|
||||
window.localStorage.setItem('cardScanningType', cardScanningType)
|
||||
document.body.style.backgroundColor = '#F5F5F5'
|
||||
let title = ''
|
||||
this.isclear = false
|
||||
;[this.isScan, title] = [true, '银行卡扫描']
|
||||
setTimeout(() => {
|
||||
this.$jump({
|
||||
flag: 'navigation',
|
||||
extra: {
|
||||
title,
|
||||
hiddenLeft: '1'
|
||||
}
|
||||
})
|
||||
this.closeBtn()
|
||||
}, 400)
|
||||
},
|
||||
closeBtn() {
|
||||
// 筛选按钮的显示
|
||||
this.$jump({
|
||||
flag: 'webview_right_button',
|
||||
extra: {
|
||||
btns: [
|
||||
{
|
||||
img: this.$assetsUrl + 'images/del-close.png',
|
||||
route: { flag: '', extra: {} }
|
||||
}
|
||||
]
|
||||
}
|
||||
})
|
||||
},
|
||||
appCallBack() {
|
||||
this.isclear = true
|
||||
// 筛选按钮的点击事件
|
||||
this.isclear = true
|
||||
this.$jump({
|
||||
flag: 'navigation',
|
||||
extra: {
|
||||
title: '退保',
|
||||
hiddenRight: '1'
|
||||
}
|
||||
})
|
||||
this.isScan = false
|
||||
},
|
||||
// 下一步
|
||||
async nextStep() {
|
||||
let valid = await this.$validator.validate()
|
||||
if (true === valid) {
|
||||
let ctBonusDTONew = Object.assign({}, this.ctAccountDTO, this.ctTrialDTO, this.detail, {
|
||||
reason: this.surrenderReasonType,
|
||||
remark: this.remark,
|
||||
isNewInfo: '0'
|
||||
})
|
||||
//银行卡鉴权
|
||||
let params = {
|
||||
account: ctBonusDTONew.bankNo,
|
||||
idNo: this.customerInfo.idNo,
|
||||
idType: this.customerInfo.idType,
|
||||
mobile: this.customerInfo.customerMobile,
|
||||
name: ctBonusDTONew.accountName
|
||||
}
|
||||
let res = await checkCard(params)
|
||||
this.$toast.clear()
|
||||
if (res.result != '0') {
|
||||
return this.$toast(res.resultMessage)
|
||||
}
|
||||
|
||||
let wtBonusDTOList = [this.ctBonusDTO, ctBonusDTONew]
|
||||
let data = {
|
||||
platformType: 'APP',
|
||||
edorType: 'WT',
|
||||
operateType: '01',
|
||||
contNo: this.detail.contNo,
|
||||
wtBonusDTOList
|
||||
}
|
||||
/*若更换新的银行卡需重新上传银行卡影像,保费满10000需上传身份证影像,如果低于10000无需上传,
|
||||
如果是纸质合同,需要添加纸质保单影像,
|
||||
在此页进行判断是否需要上传身份证影像和纸质保单影像*/
|
||||
let url = '',
|
||||
isPolRecvWay = this.polRecvWay != '0' ? '0' : '1', //是否需要上传纸质保单影像 0-是 1-否
|
||||
isbankCard = this.accountType == '2' ? '0' : '1', //是否需要上传银行卡影像 0-是 1-否
|
||||
isIdCard = this.prem >= 10000 ? '0' : '1' //是否需要上传身份证影像 0-是 1-否
|
||||
if (isIdCard == '1' && isbankCard == '1' && isPolRecvWay == '1') {
|
||||
url = '/preserve/common/handleResult?entry=WT'
|
||||
} else {
|
||||
url = `/preserve/wt/imageUpload?entry=WT&isbankCard=${isbankCard}&isIdCard=${isIdCard}&isPolRecvWay=${isPolRecvWay}`
|
||||
}
|
||||
//提交变更
|
||||
changeEdor(data).then(res => {
|
||||
if (res.result == '0') {
|
||||
this.customerInfo.surrenderId = res.content.surrenderId
|
||||
this.customerInfo.edorApplyNo = res.content.edorApplyNo
|
||||
localStorage.setItem('preserve-customerInfo', JSON.stringify(this.customerInfo))
|
||||
localStorage.setItem('preserve-policy', JSON.stringify(this.policy))
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#' + url
|
||||
},
|
||||
routerInfo: {
|
||||
path: url
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(this.$validator.errors.all()[0])
|
||||
}
|
||||
},
|
||||
// 获取银行卡列表
|
||||
async getBank() {
|
||||
let data = {
|
||||
operateType: 'claim_bank_type'
|
||||
}
|
||||
let res = await getBankList(data)
|
||||
if (res.result == '0') {
|
||||
res.content.forEach(item => {
|
||||
item.id = item.code
|
||||
item.text = item.bankName
|
||||
})
|
||||
this.bankList = res.content
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.van-dialog__confirm {
|
||||
background-color: #e9332e !important;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.surrender-info-container {
|
||||
.cont-info-container {
|
||||
/deep/.van-cell__title,
|
||||
.van-cell__value {
|
||||
flex: auto;
|
||||
text-align: left;
|
||||
}
|
||||
/deep/.van-cell__title {
|
||||
width: 40%;
|
||||
}
|
||||
.van-cell__value {
|
||||
width: 60%;
|
||||
}
|
||||
}
|
||||
.account-info-container {
|
||||
/deep/.van-cell__value {
|
||||
flex: auto;
|
||||
width: 60%;
|
||||
text-align: left;
|
||||
}
|
||||
/deep/.van-field__label {
|
||||
flex: auto;
|
||||
width: 40%;
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
.isScan-c {
|
||||
/deep/.van-field__label {
|
||||
flex: auto;
|
||||
width: 73%;
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
/deep/ .bankCard {
|
||||
width: 120px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
175
src/views/ebiz/preserve/wt/WSurrenderTip.vue
Normal file
175
src/views/ebiz/preserve/wt/WSurrenderTip.vue
Normal file
@@ -0,0 +1,175 @@
|
||||
<!--犹豫期退保协议-->
|
||||
<template>
|
||||
<div class="surrender-tip-content">
|
||||
<van-notice-bar :scrollable="false" v-if="!Time" class="notice">{{ `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上` }}</van-notice-bar>
|
||||
<iframe :src="src + pdfUrl" class="iframe"></iframe>
|
||||
<van-radio-group v-model="radio" class="pb10 pt20 pl30 pr30 fs14">
|
||||
<van-radio name="1" @click="click">
|
||||
本人确认已阅读
|
||||
<span class="red">《{{ documentName }}》</span>
|
||||
</van-radio>
|
||||
</van-radio-group>
|
||||
<div class="bg-white bottom-btn">
|
||||
<van-button type="danger" size="large" :disabled="isDisable" @click="goNext" v-no-more-click="1000">下一步</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { RadioGroup, Radio, Dialog, NoticeBar } from 'vant'
|
||||
import { changeEdor, queryConfirmDetail } from '@/api/ebiz/preserve/preserve'
|
||||
import config from '@/config'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
radio: '',
|
||||
// 倒计时时间
|
||||
number: '',
|
||||
// 定时器时间
|
||||
time: '10',
|
||||
// 定时器名称
|
||||
timer: null,
|
||||
isOver: false,
|
||||
// 判断验证码是否开始倒计时
|
||||
Time: true,
|
||||
// 按钮是否可以点击
|
||||
isDisable: true,
|
||||
pdfUrl: '',
|
||||
documentName: '', //文档名称
|
||||
pdfList: [],
|
||||
customerInfo: JSON.parse(localStorage.getItem('preserve-customerInfo')),
|
||||
policy: JSON.parse(localStorage['preserve-policy']),
|
||||
src: location.origin + '/pdfjs/web/viewer.html?file='
|
||||
}
|
||||
},
|
||||
components: {
|
||||
[RadioGroup.name]: RadioGroup,
|
||||
[Radio.name]: Radio,
|
||||
[Dialog.name]: Dialog,
|
||||
[NoticeBar.name]: NoticeBar
|
||||
},
|
||||
created() {
|
||||
this.timeOut()
|
||||
this.init()
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
//信息初始化
|
||||
init() {
|
||||
return new Promise((resolve, reject) => {
|
||||
queryConfirmDetail({
|
||||
surrenderId: this.customerInfo.surrenderId,
|
||||
edorType: 'WT'
|
||||
}).then(
|
||||
res => {
|
||||
if (res.result == 0) {
|
||||
this.pdfList = res.content.surrenderSignList
|
||||
// this.pdfUrl = config.assetsUrl + `${this.pdfList[0].policyUrl}`
|
||||
this.pdfUrl = encodeURIComponent(config.imgDomain + `/returnDirectStream?imgPath=${this.pdfList[0].policyUrl}`)
|
||||
this.documentName = this.pdfList[0].documentName
|
||||
resolve()
|
||||
} else {
|
||||
reject(this.$toast(res.resultMessage))
|
||||
}
|
||||
},
|
||||
error => {
|
||||
reject(this.$toast(error))
|
||||
}
|
||||
)
|
||||
})
|
||||
},
|
||||
timeOut() {
|
||||
let time = this.time
|
||||
this.Time = false
|
||||
this.number = `${time}`
|
||||
let timer = setInterval(() => {
|
||||
time--
|
||||
if (time <= 0) {
|
||||
time = 0
|
||||
clearInterval(timer)
|
||||
this.Time = true
|
||||
this.isOver = true
|
||||
}
|
||||
this.number = `${time}`
|
||||
}, 1000)
|
||||
},
|
||||
// 点击阅读时
|
||||
click() {
|
||||
if (this.isOver == false) {
|
||||
Dialog.confirm({
|
||||
title: '提示',
|
||||
message: '该内容涉及您的重大权益,请您仔细阅读',
|
||||
showCancelButton: false
|
||||
}).then(() => {
|
||||
this.radio = ''
|
||||
})
|
||||
}
|
||||
},
|
||||
// 下一步
|
||||
goNext() {
|
||||
let data = {
|
||||
platformType: 'APP',
|
||||
edorType: 'WT',
|
||||
operateType: '03',
|
||||
surrenderId: this.customerInfo.surrenderId,
|
||||
edorApplyNo: this.customerInfo.edorApplyNo,
|
||||
signMediaDTO: {
|
||||
signId: this.pdfList[0].signId,
|
||||
surrenderId: this.customerInfo.surrenderId,
|
||||
documentStatus: '1',
|
||||
signType: '0' //signType 0-阅读文档 3-签名文档
|
||||
}
|
||||
}
|
||||
|
||||
changeEdor(data)
|
||||
.then(res => {
|
||||
console.log(res)
|
||||
if (res.result == 0) {
|
||||
let path = '/preserve/wt/wsurrenderConfirmation?entry=WT'
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#' + path
|
||||
},
|
||||
routerInfo: {
|
||||
path: path
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
listenChange() {
|
||||
const { isOver, radio } = this
|
||||
return { isOver, radio }
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
listenChange(val) {
|
||||
if (val.isOver == true && val.radio !== '') {
|
||||
this.isDisable = false
|
||||
} else {
|
||||
this.isDisable = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.notice {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
z-index: 20;
|
||||
}
|
||||
.iframe {
|
||||
width: 100vw;
|
||||
height: 75vh;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user