Files
ebiz-h5/src/views/ebiz/questions/QuestionsDetail.vue
2020-08-21 16:26:05 +08:00

1021 lines
34 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div class="detail-container">
<div class="pdf">
<iframe :src="src + pdfUrl" class="iframe"></iframe>
</div>
<!-- 补充材料问题件 -->
<div class="update" v-if="issueType === '828601'">
<div class="updateInfo">
<div class="title">被保险人身份证明</div>
<div class="content">
<div class="query">
<div>问题说明</div>
<p>
{{ supplement.descriptionInsurant }}
</p>
</div>
<p class="uploadTitle">身份证头像面照片</p>
<van-uploader
:max-count="1"
:after-read="insurantUpload"
:before-delete="insurantDelete"
name="insurantIdCardA"
v-model="supplement.insurantIdCardA"
/>
<p class="uploadTitle">身份证国徽面照片</p>
<van-uploader
:max-count="1"
:after-read="insurantUpload"
:before-delete="insurantDelete"
name="insurantIdCardB"
v-model="supplement.insurantIdCardB"
/>
</div>
</div>
<div class="updateInfo">
<div class="title">申请人身份证明银行账户复印件</div>
<div class="content">
<div class="query">
<div>问题说明</div>
<p>
{{ supplement.descriptionPolicyholder }}
</p>
</div>
<p class="uploadTitle">身份证头像面照片</p>
<van-uploader
:max-count="1"
:after-read="policyHolderUpload"
:before-delete="policyHolderDelete"
name="policyholderIdCardA"
v-model="supplement.policyholderIdCardA"
/>
<p class="uploadTitle">身份证国徽面照片</p>
<van-uploader
:max-count="1"
:after-read="policyHolderUpload"
:before-delete="policyHolderDelete"
name="policyholderIdCardB"
v-model="supplement.policyholderIdCardB"
/>
<p class="uploadTitle">银行卡照片</p>
<van-uploader
:max-count="1"
:after-read="policyHolderUpload"
@delete="policyHolderDelete"
name="policyholderBankCardA"
v-model="supplement.policyholderBankCardA"
/>
</div>
</div>
</div>
<!-- 新契约基本问题件 -->
<div class="feedback" v-if="issueType === 'TB89'">
<div class="title">问题件回复</div>
<textarea placeholder="请输入" v-model="newContract.feedback" :disabled="newContract.feedbackAvailable"></textarea>
</div>
<div class="checkedBox" v-if="issueType !== '818901'">
<van-checkbox v-model="checked" class="checked" icon-size="16px" shape="square"
>本人认真阅读本新契约基本问题件对其有关内容已全部了解确认所上传资料均为真实资料如有虚假资料或不如实告知一切法律后果本人承担同意将其作为投保要约的有效组成部分并承诺遵守</van-checkbox
>
</div>
<!-- 转账不成功基本问题件 -->
<div class="selectList" v-if="issueType === '818901'">
<div class="item">
<van-field label-class="labels" label="处理方式">
<template #input>
<van-radio-group :disabled="handleType" v-model="transfer.mode" direction="horizontal" class="radioGroup" @change="modeChange">
<van-radio :name="1" icon-size="16px">继续转账</van-radio>
<van-radio :name="2" icon-size="16px">终止转账</van-radio>
<van-radio :name="3" icon-size="16px">更换卡号</van-radio>
</van-radio-group>
</template>
</van-field>
</div>
<div v-if="this.transfer.mode !== 2">
<div class="item">
<van-field v-model="transfer.bank" @click="getBankListItem" label-class="labels" readonly label="开户银行" placeholder="请选择"> </van-field>
</div>
<div class="item">
<van-field v-model="transfer.card" :maxlength="19" label-class="labels" label="银行卡号" placeholder="请输入银行卡号"
><template #button>
<van-button size="small" class="button" round color="#e4393c" type="primary" @click.stop="toggleCardScan(true)">银行卡扫描</van-button>
</template>
</van-field>
</div>
<div class="item">
<van-field label-class="labels" readonly label="银行卡照片"></van-field>
<div class="cardList">
<van-uploader :max-count="1" :after-read="cardUpload" @delete="transferBankCardDelete" name="bankcardA" v-model="transfer.cardPhoto" />
</div>
</div>
</div>
<div class="checkedBox" v-if="issueType === '818901'">
<van-checkbox v-model="checked" class="checked" icon-size="16px" shape="square"
>本人已认真阅读和理解上述通知书内容同意将其作为投保要约的有效组成部分并承诺遵守</van-checkbox
>
</div>
</div>
<!-- end -->
<div class="autograph">
<div class="list">
<span>投保人/监护人亲笔签名</span>
<van-button type="danger" size="small" @click="autograph(0)">{{ policyholderSigned ? '已签名' : '未签名' }}</van-button>
</div>
<div class="list" v-if="$route.query.receiveType === '1'">
<span>被投保人亲笔签名</span>
<van-button type="danger" size="small" @click="autograph(1)">{{ insurantSigned ? '已签名' : '未签名' }}</van-button>
</div>
</div>
<div class="bg-white bottom-btn">
<van-button type="danger" size="large" block @click="submit">下一步</van-button>
</div>
<short-message :sendTime.sync="sendTime" :show.sync="dialog.show" :type="dialog.type" :text="dialog.text" @getMessage="getMessage"></short-message>
<van-popup v-model="transfer.show" position="bottom">
<ul class="bankList">
<li v-for="item in transfer.bankList" :key="item.code" @click="getBankListItem(item)">{{ item.bankName }}</li>
</ul>
</van-popup>
<div :class="{ showDiscern: 1, show: transfer.showDiscern }">
<van-icon name="cross" class="icon" @click.stop="toggleCardScan(false)" size="20" />
<bank-card-scan class="backContent" :scanShow="true" :clear="transfer.clear" @getScanInfo="getBankNo"></bank-card-scan>
</div>
<!-- 转账不成功问题件提示框 -->
<van-dialog v-model="showConfirm" title="标题" :show-confirm-button="false">
<p style="margin: 1em;" v-if="transfer.mode === 2">
如您选择终止转账我公司将按照承保前撤单处 请您谨慎选择
</p>
<p style="margin: 1em;" v-if="transfer.mode === 3">
变更银行账号后续期保险费如有默认使用新账 号信息进行转账支付
</p>
<van-button type="danger" block @click="showConfirm = false">确定</van-button>
</van-dialog>
</div>
</template>
<script>
import { Uploader, Checkbox, Field, Radio, RadioGroup, Popup, Overlay, Dialog } from 'vant'
import { getBankList, uploadImg } from '@/api/ebiz/sale/sale'
import { getQuestionDetail, updateQuestionDetail } from '@/api/ebiz/questions'
import BankCardScan from '@/components/ebiz/sale/BankCardScan'
import ShortMessage from '@/components/ebiz/question/ShortMessage.vue'
import config from '@/config'
export default {
name: 'QuestionsDetail',
components: {
[Uploader.name]: Uploader,
[Checkbox.name]: Checkbox,
ShortMessage,
BankCardScan,
[Field.name]: Field,
[Radio.name]: Radio,
[RadioGroup.name]: RadioGroup,
[Popup.name]: Popup,
[Overlay.name]: Overlay,
[Dialog.name]: Dialog
},
data() {
let isWeixin = this.$utils.device().isWeixin
return {
sendTime: 0,
isWeixin,
problemInfo: null,
problemDetail: null,
supplement: {
// 被保人问题描述
descriptionInsurant: '',
// 投保人问题描述
descriptionPolicyholder: '',
// 被保人身份证明
insurantIdCardA: [],
insurantIdCardAUploadResult: null,
insurantIdCardB: [],
insurantIdCardBUploadResult: null,
// 投保人身份证明等资料
policyholderIdCardA: [],
policyholderIdCardAUploadResult: null,
policyholderIdCardB: [],
policyholderIdCardBUploadResult: null,
policyholderBankCardA: [],
policyholderBankCardAUploadResult: null
},
newContract: {
// 新契约
feedback: '',
feedbackAvailable: false
},
transfer: {
// 转账失败
mode: '',
bank: '',
bankCode: '',
card: '',
cardPhoto: [],
bankList: [],
show: false, //显示银行列表
showDiscern: false, //是否开启银行卡识别
clear: false, //是否清空银行卡识别数据
cardUploadResult: null
},
// 勾选协议
checked: false,
dialog: {
// 弹窗
show: false,
type: 'confirm',
text: ''
},
issueType: 0,
// 投保人是否已签名
policyholderSigned: false,
policyholderBase64: '',
// 被保人是否已签名
insurantSigned: false,
insurantBase64: '',
// 接收验证码手机号码
phoneNum: '',
showConfirm: false,
src: location.origin + '/pdfjs/web/viewer.html?file=',
pdfUrl: '',
// 转账不成功处理方式是否不可用
handleType: false
}
},
methods: {
// 补充资料问题件投保人上传身份证照片,银行卡照片
async policyHolderUpload(file, detail) {
// 微信端将上传的图片保存到localstorage中供签名回调使用
if (this.isWeixin) {
localStorage.setItem(detail.name, file.content)
}
let res = await this.afterRead(file)
let imageType = detail.name === 'policyholderIdCardA' ? 1 : detail.name === 'policyholderIdCardB' ? 2 : 3
let result = {
rgssUrl: res.path,
imageInfoType: imageType,
subBusinessType: 0
}
switch (detail.name) {
case 'policyholderIdCardA':
this.supplement.policyholderIdCardAUploadResult = result
if (this.isWeixin) {
localStorage.setItem('policyholderIdCardAUploadResult', JSON.stringify(result))
}
break
case 'policyholderIdCardB':
this.supplement.policyholderIdCardBUploadResult = result
if (this.isWeixin) {
localStorage.setItem('policyholderIdCardBUploadResult', JSON.stringify(result))
}
break
case 'policyholderBankCardA':
this.supplement.policyholderBankCardAUploadResult = result
if (this.isWeixin) {
localStorage.setItem('policyholderBankCardAUploadResult', JSON.stringify(result))
}
break
}
},
// 投保人删除资料回调方法
policyHolderDelete(file, detail) {
switch (detail.name) {
case 'policyholderIdCardA':
this.supplement.policyholderIdCardAUploadResult = null
return true
case 'policyholderIdCardB':
this.supplement.policyholderIdCardBUploadResult = null
return true
case 'policyholderBankCardA':
this.supplement.policyholderBankCardAUploadResult = null
return true
}
},
checkPolicyholderUpload() {
return (
this.supplement.policyholderIdCardAUploadResult && this.supplement.policyholderIdCardBUploadResult && this.supplement.policyholderBankCardAUploadResult
)
},
// 补充资料问题件被保人上传身份证照片
async insurantUpload(file, detail) {
if (this.isWeixin) {
localStorage.setItem(detail.name, file.content)
}
let res = await this.afterRead(file)
let result = {
rgssUrl: res.path,
imageInfoType: detail.name === 'insurantIdCardA' ? 1 : 2,
subBusinessType: 1
}
switch (detail.name) {
case 'insurantIdCardA':
this.supplement.insurantIdCardAUploadResult = result
if (this.isWeixin) {
localStorage.setItem('insurantIdCardAUploadResult', JSON.stringify(result))
}
break
case 'insurantIdCardB':
this.supplement.insurantIdCardBUploadResult = result
if (this.isWeixin) {
localStorage.setItem('insurantIdCardBUploadResult', JSON.stringify(result))
}
break
}
},
insurantDelete(file, detail) {
switch (detail.name) {
case 'insurantIdCardA':
this.supplement.insurantIdCardAUploadResult = null
return true
case 'insurantIdCardB':
this.supplement.insurantIdCardBUploadResult = null
return true
}
},
checkInsurantUpload() {
return this.supplement.insurantIdCardAUploadResult && this.supplement.insurantIdCardBUploadResult
},
// 转账不成功问题件添加银行卡照片
async cardUpload(file, detail) {
// 供微信签名回调回显图片
if (this.isWeixin) {
localStorage.setItem(detail.name, file.content)
}
let res = await this.afterRead(file)
this.transfer.cardUploadResult = {
rgssUrl: res.path,
imageInfoType: '3',
subBusinessType: '0'
}
if (this.isWeixin) {
localStorage.setItem('transferCardUploadResult', JSON.stringify(this.transfer.cardUploadResult))
}
},
// 转账不成功问题件删除银行卡照片
transferBankCardDelete() {
this.transfer.cardUploadResult = null
},
// 签名
async autograph(personType) {
if (this.isWeixin && this.checked) {
localStorage.setItem('agreementChecked', true)
}
// 新契约问题件签名前必须输入回复内容
if (this.issueType === 'TB89') {
if (!this.newContract.feedback.trim()) {
return this.$toast('请填写具体回复信息')
} else {
localStorage.setItem('problemReplay', this.newContract.feedback.trim())
}
}
// 转账不成功签名前必须选择处理方式
if (this.issueType === '818901') {
if (this.transfer.mode === '') {
return this.$toast('请先选择处理方式')
} else {
localStorage.setItem('resolveType', this.transfer.mode)
}
// 非终止转账
if (this.transfer.mode !== 2) {
// 校验开户行
if (!this.transfer.bank) {
return this.$toast('请选择开户银行')
}
// 银行卡号校验
let regx = /^(\d{16}|\d{18}|\d{19})$/
if (!regx.test(this.transfer.card)) {
return this.$toast('银行卡号不符合规则')
}
if (this.transfer.cardPhoto.length === 0) {
return this.$toast('请上传银行卡照片')
}
}
if (this.transfer.bank) {
localStorage.setItem('problemBank', this.transfer.bank)
}
if (this.transfer.bankCode) {
localStorage.setItem('problemBankCode', this.transfer.bankCode)
}
if (this.transfer.card) {
localStorage.setItem('problemCard', this.transfer.card)
}
}
let name = personType === 0 ? this.problemInfo.appntName : this.problemInfo.insuredName
let number = personType === 0 ? this.problemInfo.appntIdCardNo : this.problemInfo.insuredIdCardNo
if (!this.isWeixin) {
let signParam = {
name,
type: '1',
number,
keyword: personType === 0 ? '投保人签名:' : '被保人签名:',
pageNo: '1',
index: 1,
offset: 20,
pos: 3,
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}
// eslint-disable-next-line
const res = await EWebBridge.webCallAppInJs('ca_sign', signParam)
let signRes = JSON.parse(res)
// 投保人签名
if (personType === 0 && signRes.state === '1') {
this.policyholderBase64 = decodeURI(signRes.sign)
this.policyholderSigned = true
}
// 被保人签名
else if (personType === 1 && signRes.state === '1') {
this.insurantBase64 = decodeURI(signRes.sign)
this.insurantSigned = true
}
} else {
if (personType === 0) {
this.toAirSign('0', '投保人签名:', '10', '2', personType)
} else {
this.toAirSign('0', '被保人签名:', '10', '2', personType)
}
}
},
getBankNo(data) {
console.log(data)
},
toggleCardScan(data) {
this.transfer.showDiscern = data
if (data) {
localStorage.setItem('cardScanningType', 0)
} else {
localStorage.removeItem('cardScanningType')
}
},
getBankListItem(item) {
this.transfer.show = !this.transfer.show
this.transfer.bank = item.bankName
this.transfer.bankCode = item.code
},
async getBankList() {
this.transfer.bankList = (
await getBankList({
operateType: 'bank_type'
})
).content
},
appCallBack(data) {
let title = ''
if (this.issueType === 'TB89') {
title = '国富人寿基本问题件处理'
} else if (this.issueType === '828601') {
title = '国富人寿补充资料问题件处理'
} else {
title = '国富人寿转账不成功问题件处理'
}
let shareObj = {
title: title,
content: '签字进行',
url: `${location.origin}/#/questions/detail/${this.problemDetail.issueId}/${this.problemDetail.issueType}?&token=${localStorage.token}&receiveType=${this.problemDetail.receiveType}&prtNo=${this.$route.query.prtNo}`,
img: this.$assetsUrl + 'images/logo.png'
}
console.dir(shareObj)
if (data.trigger == 'right_button_click') {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
extra: shareObj
})
}
},
modeChange(mode) {
if (mode !== 1) {
this.showConfirm = true
}
this.transfer.bankCode = ''
this.transfer.bank = ''
this.transfer.card = ''
this.transfer.cardPhoto.splice(0)
this.transfer.cardUploadResult.splice(0)
},
async afterRead(file) {
let data = new FormData()
data.append('imgPath', file.file)
return await uploadImg(data)
},
// 下一步
submit() {
// 校验回复内容
if (this.issueType === 'TB89' && this.newContract.feedback.trim() === '') return this.$toast('请填写具体回复信息')
// 校验补充资料
if (this.issueType === '828601') {
if (!this.checkInsurantUpload()) return this.$toast('请上传被保人补充资料')
if (!this.checkPolicyholderUpload()) return this.$toast('请上传申请人补充资料')
}
// 转账不成功
if (this.issueType === '818901') {
// 校验处理方式
if (this.transfer.mode === '') {
return this.$toast('请先选择处理方式')
}
// 非终止转账
if (this.transfer.mode !== 2) {
// 校验开户行
if (!this.transfer.bank) {
return this.$toast('请选择开户银行')
}
// 银行卡号校验
let regx = /^(\d{16}|\d{18}|\d{19})$/
if (!regx.test(this.transfer.card)) {
return this.$toast('银行卡号不符合规则')
}
if (this.transfer.cardPhoto.length === 0) {
return this.$toast('请上传银行卡照片')
}
}
}
if (!this.checked) {
return this.$toast('请先阅读并勾选协议')
}
// 校验签名
if (this.$route.query.receiveType === '0') {
if (!this.policyholderSigned) return this.$toast('签名未完成, 请先进行签名')
} else if (this.$route.query.receiveType === '1') {
if (!this.policyholderSigned || !this.insurantSigned) return this.$toast('签名未完成, 请先进行签名')
}
let phoneStrArr = this.problemInfo.phoneNo.split('')
phoneStrArr.splice(3, 4, '****')
let encryptPhone = phoneStrArr.join('')
// 短信校验
this.dialog = {
type: 'confirm',
show: true,
text: `为确定用户身份,我们将向${encryptPhone}此手机号发送验证码`
}
},
async getMessage({ data }) {
let signInfo = []
if (this.policyholderBase64) signInfo.push(this.policyholderBase64)
if (this.insurantBase64) signInfo.push(this.insurantBase64)
let problemData = {
id: this.$route.params.id,
businessType: this.$route.params.type,
content: '',
disposeStatus: '',
bankType: '',
bankName: '',
bankNo: '',
list: [],
signInfo: signInfo
}
// 验证码验证成功
if (data) {
// 关闭短信弹窗
this.dialog.show = false
// 契约问题件
if (this.issueType === 'TB89') {
problemData.content = this.newContract.feedback
}
// 补充资料类问题件
else if (this.issueType === '828601') {
// 被保人资料
problemData.list.push(this.supplement.insurantIdCardAUploadResult)
problemData.list.push(this.supplement.insurantIdCardBUploadResult)
// 投保人资料
problemData.list.push(this.supplement.policyholderIdCardAUploadResult)
problemData.list.push(this.supplement.policyholderIdCardBUploadResult)
problemData.list.push(this.supplement.policyholderBankCardAUploadResult)
}
// 转账不成功问题件
else {
problemData.disposeStatus = this.transfer.mode
problemData.bankType = this.transfer.bankCode
problemData.bankName = this.transfer.bank
problemData.bankNo = this.transfer.card
// 选择非终止转账时上传银行卡照片
if (this.transfer.mode !== 2) {
problemData.list.push(this.transfer.cardUploadResult)
}
}
this.$toast.loading()
// 更新问题件数据
let res = await updateQuestionDetail(problemData)
this.$toast.clear()
if (res.result === '1') {
localStorage.setItem('failedReason', res.resultMessage)
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#/questions/result/${res.result}`,
forbidSwipeBack: '1'
},
routerInfo: {
path: `/questions/result/${res.result}`
}
})
}
},
async getQuestionDetail() {
const rs = await getQuestionDetail({
id: this.$route.params.id,
prtNo: this.$route.query.prtNo,
userType: Number(this.$route.query.receiveType)
})
// 包含投保人和被保人证件id和姓名
this.problemInfo = rs.content
this.pdfUrl = encodeURIComponent(config.imgDomain + `/returnDirectStream?imgPath=${this.problemInfo.pdfUrl}`)
this.problemDetail = this.problemInfo.list[0]
// 问题件接收人类型: 0投保人, 1被保人
this.problemDetail.receiveType = this.$route.query.receiveType
// 被保人资料问题描述
this.supplement.descriptionInsurant = this.problemDetail.content
// 投保人资料问题描述
this.supplement.descriptionPolicyholder = this.problemDetail.issueContent
},
// 微信空签
toAirSign(status, keyword, offset, originStatus, personType) {
sessionStorage.removeItem('twoimgBase64Data')
sessionStorage.removeItem('twowxSigned')
localStorage.removeItem('signInfo')
localStorage.setItem('signedPersonType', personType)
localStorage.setItem(
'signInfo',
JSON.stringify({
originStatus: originStatus,
idNo: personType === 0 ? this.problemInfo.appntIdCardNo : this.problemInfo.insuredIdCardNo,
name: personType === 0 ? this.problemInfo.appntName : this.problemInfo.insuredName,
type: '1',
keyword: keyword,
status: status,
offset: offset,
originUrl: location.href + '&fromSign=true'
})
)
window.location.href = this.$mainUrl + '/sign/index.html'
}
},
async created() {
// 问题件类型
this.issueType = this.$route.params.type
if (this.issueType === 'TB89') {
document.title = '新契约基本问题件通知书'
} else if (this.issueType === '818901') {
document.title = '转账不成功问题件'
} else if (this.issueType === '828601') {
document.title = '补充资料通知书'
}
if (this.isWeixin) {
localStorage.setItem('token', this.$route.query.token)
let imgBase64Data = sessionStorage.getItem('twoimgBase64Data')
let signInfo = JSON.parse(localStorage.getItem('signInfo'))
if (this.$route.query.fromSign) {
// 0代表投保人签名
if (Number(localStorage.getItem('signedPersonType')) === 0) {
if (signInfo.status == '0') {
localStorage.setItem('policyholderSignInfo', imgBase64Data)
}
}
// 1代表被保人签名
else {
if (signInfo.status == '0') {
localStorage.setItem('insurantSignInfo', imgBase64Data)
}
}
} else {
// 不是微信签名回调时清空保存的数据
localStorage.removeItem('insurantSignInfo')
localStorage.removeItem('policyholderSignInfo')
localStorage.removeItem('agreementChecked')
localStorage.removeItem('problemReplay')
// 转账不成功类型保存的数据
localStorage.removeItem('resolveType')
localStorage.removeItem('problemBank')
localStorage.removeItem('problemCard')
localStorage.removeItem('problemBankCode')
// 补充资料问题件保存数据
localStorage.removeItem('insurantIdCardAUploadResult')
localStorage.removeItem('insurantIdCardBUploadResult')
localStorage.removeItem('policyholderIdCardAUploadResult')
localStorage.removeItem('policyholderIdCardBUploadResult')
localStorage.removeItem('policyholderBankCardAUploadResult')
localStorage.removeItem('insurantIdCardA')
localStorage.removeItem('insurantIdCardB')
localStorage.removeItem('policyholderIdCardA')
localStorage.removeItem('policyholderIdCardB')
localStorage.removeItem('policyholderBankCardA')
}
// localstorage存在投保人签名信息
if (localStorage.getItem('policyholderSignInfo')) {
this.policyholderBase64 = localStorage.getItem('policyholderSignInfo')
this.policyholderSigned = true
}
// localstorage存在被保人签名信息
if (localStorage.getItem('insurantSignInfo')) {
this.insurantBase64 = localStorage.getItem('insurantSignInfo')
this.insurantSigned = true
}
// localstorage存在回复内容时回显回复内容
if (localStorage.getItem('problemReplay')) {
this.newContract.feedback = localStorage.getItem('problemReplay')
this.newContract.feedbackAvailable = true
}
// 微信签名后回显同意协议
if (localStorage.getItem('agreementChecked') === 'true') {
this.checked = true
}
// 转账不成功问题件
{
// localstorage存在处理类型回显处理类型
if (localStorage.getItem('resolveType')) {
this.transfer.mode = Number(localStorage.getItem('resolveType'))
}
// localstorage存在银行名称回显银行名称
if (localStorage.getItem('problemBank')) {
this.transfer.bank = localStorage.getItem('problemBank')
}
// localstorage存在银行卡号回显银行卡号
if (localStorage.getItem('problemCard')) {
this.transfer.card = localStorage.getItem('problemCard')
}
if (localStorage.getItem('problemBankCode')) {
this.transfer.bankCode = localStorage.getItem('problemBankCode')
}
// 签名回调回显银行卡照片
if (localStorage.getItem('bankcardA')) {
this.transfer.cardPhoto.push({
content: localStorage.getItem('bankcardA')
})
}
}
// 补充资料问题件
{
// 签名回调回显被保人身份证头像面
if (localStorage.getItem('policyholderIdCardA')) {
this.supplement.insurantIdCardA.push({
content: localStorage.getItem('policyholderIdCardA')
})
}
// 签名回调保存被保人身份证头像面上传结果
if (localStorage.getItem('insurantIdCardAUploadResult')) {
this.supplement.insurantIdCardAUploadResult = JSON.parse(localStorage.getItem('insurantIdCardAUploadResult'))
}
// 签名回调回显被保人身份证国徽面照片
if (localStorage.getItem('policyholderIdCardB')) {
this.supplement.insurantIdCardB.push({
content: localStorage.getItem('policyholderIdCardB')
})
}
// 签名回调回显被保人身份证国徽面
if (localStorage.getItem('insurantIdCardBUploadResult')) {
this.supplement.insurantIdCardBUploadResult = JSON.parse(localStorage.getItem('insurantIdCardBUploadResult'))
}
// 签名回调回显投保人身份证头像面
if (localStorage.getItem('policyholderIdCardA')) {
this.supplement.policyholderIdCardA.push({
content: localStorage.getItem('policyholderIdCardA')
})
}
// 签名回调保存投保人身份证头像面上传结果
if (localStorage.getItem('policyholderIdCardAUploadResult')) {
this.supplement.policyholderIdCardAUploadResult = JSON.parse(localStorage.getItem('policyholderIdCardAUploadResult'))
}
// 签名回调回显投保人身份证国徽面
if (localStorage.getItem('policyholderIdCardB')) {
this.supplement.policyholderIdCardB.push({
content: localStorage.getItem('policyholderIdCardB')
})
}
// 签名回调保存投保人身份证国徽面上传结果
if (localStorage.getItem('policyholderIdCardBUploadResult')) {
this.supplement.policyholderIdCardBUploadResult = JSON.parse(localStorage.getItem('policyholderIdCardBUploadResult'))
}
// 签名回调回显投保人银行卡照片
if (localStorage.getItem('policyholderBankCardA')) {
this.supplement.policyholderBankCardA.push({
content: localStorage.getItem('policyholderBankCardA')
})
}
// 签名回调后保存转账不成功上传银行卡照片结果信息
if (localStorage.getItem('transferCardUploadResult')) {
this.transfer.cardUploadResult = JSON.parse(localStorage.getItem('transferCardUploadResult'))
}
}
}
this.getBankList()
this.getQuestionDetail()
},
mounted() {
setTimeout(() => {
// 拦截原生右上角按钮
if (!this.isWeixin) {
window.EWebBridge.webCallAppInJs('webview_right_button', {
btns: [
{
img: this.$assetsUrl + 'images/share@3x.png'
}
]
})
}
}, 1000)
window['appCallBack'] = this.appCallBack
}
}
</script>
<style lang="scss" scoped>
.iframe {
width: 99%;
height: 70vh;
}
.uploadTitle {
font-size: 14px;
margin-bottom: 0.5em;
}
.bottom-btn {
z-index: 1;
}
/deep/ .van-dialog__header {
padding-top: 1em;
}
/deep/ .van-search {
font-size: 10px;
}
#app .van-cell:not(:last-child):after {
border: 0;
}
.detail-container {
min-height: 100vh;
background: #fff;
padding-bottom: 40px;
box-sizing: border-box;
.showDiscern {
position: fixed;
z-index: -1;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
background: rgba(0, 0, 0, 0.5);
opacity: 0;
visibility: hidden;
transition: all 0.3s ease 0.3s;
display: flex;
align-items: flex-end;
justify-content: center;
background: #fff;
&.show {
z-index: 999;
opacity: 1;
visibility: visible;
transition: all 0.3s;
.backContent {
transform: translateY(0);
transition: all 0.3s ease 0.3s;
}
}
.icon {
position: absolute;
right: 10px;
top: 10px;
z-index: 1;
}
.backContent {
transition: all 0.3s;
width: 100%;
transform: translateY(10px);
height: 95%;
background: #fff;
border-radius: 5px;
overflow: hidden;
}
}
.bankList {
height: 300px;
li {
text-align: center;
padding: 10px 0;
font-size: 14px;
border-bottom: 1px solid #eee;
}
}
.pdf {
width: 100vw;
}
.checkedBox {
padding: 10px;
.checked {
font-size: 10px;
color: #666;
line-height: 1.5;
}
}
.update {
margin-bottom: 10px;
.updateInfo {
border-bottom: 1px solid #eee;
.title {
border-bottom: 1px solid #eee;
height: 30px;
line-height: 30px;
font-size: 14px;
padding: 0 10px;
}
.content {
padding: 10px 20px;
.query {
color: #e4393c;
font-size: 13px;
div {
padding-bottom: 2px;
}
p {
line-height: 22px;
}
}
}
}
}
.feedback {
border-bottom: 1px solid #eee;
margin-bottom: 10px;
padding: 0 10px;
.title {
font-size: 14px;
padding: 10px 0;
}
textarea {
font-size: 13px;
border: 0;
width: 100%;
height: 60px;
}
}
.selectList {
.item {
border-bottom: 1px solid #eee;
/deep/.labels {
font-size: 13px;
}
.radioGroup {
display: flex;
justify-content: space-between;
font-size: 13px;
}
.button {
height: 18px;
line-height: 18px;
}
.cardList {
padding: 10px 10px 0;
border-top: 1px solid #eee;
}
}
}
.autograph {
padding: 10px 10px 20px 10px;
font-size: 12px;
.list {
&:first-child {
margin-bottom: 5px;
}
.button {
border-radius: 5px;
height: 18px;
line-height: 18px;
}
}
}
.next {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 40px;
}
}
</style>