Compare commits

..

1 Commits

Author SHA1 Message Date
liu.xiaofeng@ebiz-digits.com
dbc9b1267d hotfix 20230912 证件类型隐藏出生证 2023-09-12 17:57:27 +08:00
81 changed files with 4231 additions and 6737 deletions

1
.gitignore vendored
View File

@@ -1,6 +1,5 @@
node_modules
dist
package-lock.json
.eslintrc.js
.prettierrc

6
.idea/vcs.xml generated
View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

142
.idea/workspace.xml generated
View File

@@ -1,142 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="BranchesTreeState">
<expand>
<path>
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
</path>
<path>
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="GROUP_NODE:feature" type="e8cecc67:BranchNodeDescriptor" />
</path>
</expand>
<select>
<path>
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="GROUP_NODE:feature" type="e8cecc67:BranchNodeDescriptor" />
<item name="BRANCH:feature/GFRS-3645【需求】银保代理人队伍实施电子化合同签署需求" type="e8cecc67:BranchNodeDescriptor" />
</path>
</select>
</component>
<component name="ChangeListManager">
<list default="true" id="4d16cce5-c1c6-4276-9f6d-1c613b9069ca" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
</list>
<list id="9dec77f1-88e3-4add-8bce-d075d25d3a95" name="【新增电子投保单模板和贵州联系地址的需求】投保人,被保人,还有再次投保,客户列表,贵州联系地址" comment="【新增电子投保单模板和贵州联系地址的需求】投保人,被保人,还有再次投保,客户列表,贵州联系地址">
<changelist_data name="li.yuetong" email="li.yuetong@ebiz-digits.com" date="1648128838000" />
</list>
<list id="b2733ac4-2dda-4e3e-9035-9ddf7e8022ac" name="桂冠俱乐部--图标取服务器地址,内勤账号只有月度桂冠会员名单" comment="桂冠俱乐部--图标取服务器地址,内勤账号只有月度桂冠会员名单">
<changelist_data name="liyuetong" email="li.yuetong@ebiz-fooge.com" date="1627466477000" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="feature/GFRS-3645【需求】银保代理人队伍实施电子化合同签署需求" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectId" id="1wehGnVjkpV3KCrUT4RERn3FkQ8" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="TODO_SCOPE" value="All Places" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="node.js.detected.package.eslint" value="true" />
<property name="node.js.path.for.package.eslint" value="project" />
<property name="node.js.path.for.package.tslint" value="project" />
<property name="node.js.selected.package.eslint" value="(autodetect)" />
<property name="node.js.selected.package.tslint" value="(autodetect)" />
<property name="vue.rearranger.settings.migration" value="true" />
</component>
<component name="SpellCheckerSettings" BundledDictionaries="0" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" Dictionaries="0" CorrectionsLimit="5" DefaultDictionary="application-level" UseSingleDictionary="true" />
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="4d16cce5-c1c6-4276-9f6d-1c613b9069ca" name="Default Changelist" comment="" />
<created>1628824872091</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1628824872091</updated>
<workItem from="1628824875972" duration="309000" />
<workItem from="1648129165145" duration="308000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="2" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State>
<option name="FILTERS">
<map>
<entry key="branch">
<value>
<list>
<option value="feature/GFRS-3645【需求】银保代理人队伍实施电子化合同签署需求" />
</list>
</value>
</entry>
</map>
</option>
</State>
</value>
</entry>
</map>
</option>
<option name="RECENT_FILTERS">
<map>
<entry key="Branch">
<value>
<list>
<RecentGroup>
<option name="FILTER_VALUES">
<option value="origin/feature/GFRS-3188【需求】新增电子投保单模板和贵州联系地址的需求" />
</option>
</RecentGroup>
<RecentGroup>
<option name="FILTER_VALUES">
<option value="origin/feature/GFRS-2591【需求】关于金掌桂增设桂冠俱乐部专区的需求申请" />
</option>
</RecentGroup>
</list>
</value>
</entry>
</map>
</option>
<option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="信手书插件调整" />
<option name="LAST_COMMIT_MESSAGE" value="信手书插件调整" />
</component>
<component name="WindowStateProjectService">
<state x="2661" y="222" key="RollbackChangesDialog" timestamp="1691989931574">
<screen x="1920" y="0" width="1920" height="1040" />
</state>
<state x="2661" y="222" key="RollbackChangesDialog/0.0.1920.1040/1920.0.1920.1040@1920.0.1920.1040" timestamp="1691989931574" />
<state x="2640" y="232" key="git4idea.branch.GitSmartOperationDialog" timestamp="1691989933303">
<screen x="1920" y="0" width="1920" height="1040" />
</state>
<state x="2640" y="232" key="git4idea.branch.GitSmartOperationDialog/0.0.1920.1040/1920.0.1920.1040@1920.0.1920.1040" timestamp="1691989933303" />
</component>
</project>

File diff suppressed because one or more lines are too long

View File

@@ -26,16 +26,6 @@ export default {
reload: this.reload
}
},
created () {
// 在页面加载时读取sessionStorage
if (sessionStorage.getItem('store')) {
this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(sessionStorage.getItem('store'))))
}
// 在页面刷新时将store保存到sessionStorage里
window.addEventListener('beforeunload', () => {
sessionStorage.setItem('store', JSON.stringify(this.$store.state))
})
},
mounted(){
},
methods: {

View File

@@ -1,46 +0,0 @@
import request from '@/assets/js/utils/request'
import getUrl from '@/assets/js/utils/get-url'
// 银保代理人签署信息查询接口
export function getContractInfo(data) {
return request({
url: getUrl('/agent/enterYB/getContractInfo', 1),
method: 'post',
data
})
}
// 银保代理人签署信息接收接口
export function putContractInfo(data) {
return request({
url: getUrl('/agent/enterYB/putContractInfo', 1),
method: 'post',
data
})
}
// 生成电子合同pdf
export function generateAgreementYB(data) {
return request({
url: getUrl('/agent/enterYB/generateAgreementYB', 1),
method: 'post',
data
})
}
// 获取验证码
export function getAuthCode(data) {
return request({
url: getUrl('/customer/authcode/noLoginedSend', 1),
method: 'post',
data
})
}
// 校验验证码
export function checkSignYB(data) {
return request({
url: getUrl('/customer/authcode/checkSignYB', 1),
method: 'post',
data
})
}

View File

@@ -353,13 +353,4 @@ export function getUniversalCodeLst(data) {
method: 'post',
data
})
}
// 获取柳州分红万能投连型产品编码集合
export function getDoubleRecordProductLst(data) {
return request({
url: getUrl('/sale/product/getDoubleRecordProductLst ', 1),
method: 'post',
data
})
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -1,164 +1,167 @@
import utilsAge from '@/assets/js/utils/age'
export default {
//计算身份证起始日期
getStartDate: function(birthday, endDate) {
getStartDate: function(age, endDate) {
let startDate = '' //证件起始日期
let startage = ''
let endage = utilsAge.getAge(birthday, new Date(endDate))
let thisDate = new Date() //当年日期
let thisyear = thisDate.getFullYear() //当前年份
/**
* @Author: LiuXiaoFeng
* @Description: 未满16周岁的公民申领的居民身份证有效期为5年
* @Date: 2023/7/4
**/
if (endage - 5 < 16) {
let date2_29 = endDate.slice(5, 11)
if(date2_29 == '02-29'){
let thisyear = Number(endDate.slice(0, 4)) - 5
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return startDate = thisyear + '-02-29'
} else {
return startDate = thisyear + '-02-28'
}
}else{
return startDate = String(Number(endDate.slice(0, 4)) - 5) + startDate.slice(4, 11)
if (age < 16) {
/**
* @Author: LiuXiaoFeng
* @Description: 16周岁以下的证件有效期为5年
* @Date: 2023/7/4
**/
startDate = String(Number(endDate.slice(0,4)) - 5) + endDate.slice(4,11)
} else if (age >= 16 && age <= 21) {
/**
* @Author: LiuXiaoFeng
* @Description: 16周岁~21周岁的证件有效期为10年或5年
* @Date: 2023/7/4
**/
if (age - (10 - (endDate.slice(0,4) - thisyear)) < 16 ) {
/**
* @Author: LiuXiaoFeng
* @Description: 如果证件有效期为10年 根据证件截止日期 判断10年前的年龄 如果小于16周岁 那么证件有效期就是5年
* @Date: 2023/7/5
**/
startDate = String(Number(endDate.slice(0,4)) - 5) + endDate.slice(4,11)
} else {
startDate = String(Number(endDate.slice(0,4)) - 10) + endDate.slice(4,11)
}
}
/**
* @Author: LiuXiaoFeng
* @Description: 年满16周岁25周岁的公民申领的居民身份证有效期为10年
* @Date: 2023/7/4
**/
else if (endage - 5 >= 16 && endage - 10 <= 25) {
} else if(age >= 22 && age <= 25) {
/**
* @Author: LiuXiaoFeng
* @Description: 22周岁~25周岁的证有效期为10年
* @Date: 2023/7/4
**/
startDate = String(Number(endDate.slice(0,4)) - 10) + endDate.slice(4,11)
startage = utilsAge.getAge(birthday, new Date(startDate))
if(startage >= 16 && startage <= 25){
let date2_29 = endDate.slice(5, 11)
if(date2_29 == '02-29') {
let thisyear = Number(endDate.slice(0, 4)) - 10
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return startDate = thisyear + '-02-29'
} else {
return startDate = thisyear + '-02-28'
}
} else {
return startDate
}
} else if (age >= 26 && age <= 35) {
/**
* @Author: LiuXiaoFeng
* @Description: 26周岁~35周岁的证件有效期为20年或10年
* @Date: 2023/7/4
**/
if (age - (20 - (endDate.slice(0,4) - thisyear)) < 26 ) {
/**
* @Author: LiuXiaoFeng
* @Description: 如果证件有效期为20年 根据证件截止日期 判断20年前的年龄 如果小于26周岁 那么证件有效期就是10年
* @Date: 2023/7/5
**/
startDate = String(Number(endDate.slice(0,4)) - 10) + endDate.slice(4,11)
} else {
startDate = String(Number(endDate.slice(0,4)) - 20) + endDate.slice(4,11)
}
}
/**
* @Author: LiuXiaoFeng
* @Description: 年满26周岁45周岁的公民申领的居民身份证有效期为20年
* @Date: 2023/7/4
**/
else if(endage - 10 >= 26 && endage - 20 <= 45) {
startDate = String(Number(endDate.slice(0,4)) - 20) + endDate.slice(4,11)
startage = utilsAge.getAge(birthday, new Date(startDate))
if(startage >= 26 && startage <= 45){
let date2_29 = endDate.slice(5, 11)
if(date2_29 == '02-29') {
let thisyear = Number(endDate.slice(0, 4)) - 20
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return startDate = thisyear + '-02-29'
} else {
return startDate = thisyear + '-02-28'
}
} else {
return startDate
}
} else if (age >= 36 && age <= 45) {
/**
* @Author: LiuXiaoFeng
* @Description: 36周岁~45周岁的证有效期为20年
* @Date: 2023/7/4
**/
startDate = String(Number(endDate.slice(0,4)) + 20) + endDate.slice(4,11)
} else if (age >= 46 && age <= 65) {
/**
* @Author: LiuXiaoFeng
* @Description: 46周岁~65周岁的证件有效期为20年或长期
* @Date: 2023/7/4
**/
if (age - (20 - (endDate.slice(0,4) - thisyear)) < 46 ) {
/**
* @Author: LiuXiaoFeng
* @Description: 如果证件有效期为20年 根据证件截止日期 判断20年前的年龄 如果小于46周岁 那么证件有效期就是20年
* @Date: 2023/7/5
**/
startDate = String(Number(endDate.slice(0,4)) - 20) + endDate.slice(4,11)
}
} else if (age > 65) {
/**
* @Author: LiuXiaoFeng
* @Description: 65周岁以上的证件有效期为长期
* @Date: 2023/7/4
**/
}
/**
* @Author: LiuXiaoFeng
* @Description: 年满46周岁的公民申领居民身份证有效期为长期
* @Date: 2023/7/4
**/
else if (endage - 20 >= 46) {
return startDate
}
return startDate
},
//计算身份证截止日期
getEndDate: function(birthday, startDate) {
getEndDate: function(age, startDate) {
let endDate = '' //证件截止日期
let startage = utilsAge.getAge(birthday, new Date(startDate))
/**
* @Author: LiuXiaoFeng
* @Description: 未满16周岁的公民申领的居民身份证有效期为5年
* @Date: 2023/7/4
**/
if (startage < 16) {
let date2_29 = startDate.slice(5, 11)
if(date2_29 == '02-29') {
let thisyear = Number(startDate.slice(0, 4)) + 5
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return endDate = thisyear + '-02-29'
} else {
return endDate = thisyear + '-02-28'
}
} else {
return endDate = String(Number(startDate.slice(0, 4)) + 5) + startDate.slice(4, 11)
}
}
/**
* @Author: LiuXiaoFeng
* @Description: 年满16周岁至25周岁的公民申领的居民身份证有效期为10年
* @Date: 2023/7/4
**/
else if (startage >= 16 && startage <= 25) {
let date2_29 = startDate.slice(5, 11)
if(date2_29 == '02-29') {
let thisyear = Number(startDate.slice(0, 4)) + 10
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return endDate = thisyear + '-02-29'
} else {
return endDate = thisyear + '-02-28'
}
} else {
return endDate = String(Number(startDate.slice(0, 4)) + 10) + startDate.slice(4, 11)
}
}
/**
* @Author: LiuXiaoFeng
* @Description: 年满26周岁至45周岁的公民申领的居民身份证有效期为20年
* @Date: 2023/7/4
**/
else if (startage >= 26 && startage <= 45) {
let date2_29 = startDate.slice(5, 11)
if(date2_29 == '02-29') {
let thisyear = Number(startDate.slice(0, 4)) + 20
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return endDate = thisyear + '-02-29'
} else {
return endDate = thisyear + '-02-28'
}
} else {
return endDate = String(Number(startDate.slice(0, 4)) + 20) + startDate.slice(4, 11)
}
}
/**
* @Author: LiuXiaoFeng
* @Description: 年满46周岁的公民申领居民身份证有效期为长期
* @Date: 2023/7/4
**/
else if (startage > 65) {
return endDate
}
},
let thisDate = new Date() //当年日期
let thisyear = thisDate.getFullYear() //当前年份
//计算户口本截止日期
getEndDate2: function(birthday, startDate) {
let endDate = ''
let date2_29 = startDate.slice(5, 11)
if(date2_29 == '02-29'){
let thisyear = Number(startDate.slice(0, 4)) + 16
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return endDate = thisyear + '-02-29'
if (age < 16) {
/**
* @Author: LiuXiaoFeng
* @Description: 16周岁以下的证件有效期为5年
* @Date: 2023/7/4
**/
endDate = String(Number(startDate.slice(0,4)) + 5) + startDate.slice(4,11)
} else if (age >= 16 && age <= 21) {
/**
* @Author: LiuXiaoFeng
* @Description: 16周岁~21周岁的证件有效期为10年或5年
* @Date: 2023/7/4
**/
if (age - (thisyear - startDate.slice(0,4)) < 16 ) {
/**
* @Author: LiuXiaoFeng
* @Description: 根据证件起始日期计算办证时年龄 如果办证时年龄小于16周岁 那么证件有效期就是5年
* @Date: 2023/7/5
**/
endDate = String(Number(startDate.slice(0,4)) + 5) + startDate.slice(4,11)
} else {
return endDate = thisyear + '-02-28'
endDate = String(Number(startDate.slice(0,4)) + 10) + startDate.slice(4,11)
}
}else{
return endDate = String(Number(startDate.slice(0, 4)) + 16) + startDate.slice(4, 11)
} else if(age >= 22 && age <= 25) {
/**
* @Author: LiuXiaoFeng
* @Description: 22周岁~25周岁的证件有效期为10年
* @Date: 2023/7/4
**/
endDate = String(Number(startDate.slice(0,4)) + 10) + startDate.slice(4,11)
} else if (age >= 26 && age <= 35) {
/**
* @Author: LiuXiaoFeng
* @Description: 26周岁~35周岁的证件有效期为20年或10年
* @Date: 2023/7/4
**/
if (age - (thisyear - startDate.slice(0,4)) < 26 ) {
/**
* @Author: LiuXiaoFeng
* @Description: 根据证件起始日期计算办证时年龄 如果办证时年龄小于26周岁 那么证件有效期就是10年
* @Date: 2023/7/5
**/
endDate = String(Number(startDate.slice(0,4)) + 10) + startDate.slice(4,11)
} else {
endDate = String(Number(startDate.slice(0,4)) + 20) + startDate.slice(4,11)
}
} else if (age >= 36 && age <= 45) {
/**
* @Author: LiuXiaoFeng
* @Description: 36周岁~45周岁的证件有效期为20年
* @Date: 2023/7/4
**/
endDate = String(Number(startDate.slice(0,4)) + 20) + startDate.slice(4,11)
} else if (age >= 46 && age <= 65) {
/**
* @Author: LiuXiaoFeng
* @Description: 46周岁~65周岁的证件有效期为20年或长期
* @Date: 2023/7/4
**/
if (age - (thisyear - startDate.slice(0,4)) < 46 ) {
/**
* @Author: LiuXiaoFeng
* @Description: 根据证件起始日期计算办证时年龄 如果办证时年龄小于46周岁 那么证件有效期就是20年
* @Date: 2023/7/5
**/
endDate = String(Number(startDate.slice(0,4)) + 20) + startDate.slice(4,11)
}
} else if (age > 65) {
/**
* @Author: LiuXiaoFeng
* @Description: 65周岁以上的证件有效期为长期
* @Date: 2023/7/4
**/
}
return endDate
}
}

View File

@@ -3,8 +3,8 @@
* @Date create in 2021/03/16
*/
import { JSEncrypt } from 'jsencrypt'
import { sha256 } from 'js-sha256'
let CryptoJS = require('crypto-js')
let sha256 = require('js-sha256')
//生成随机字符串默认24位
export function randomString(len) {
len = len || 24

View File

@@ -1059,36 +1059,6 @@ export default {
text: '户口本'
}
],
// 新市民身份
isNewPeopleFlag: [
{
id: 1,
text: '是'
},
{
id: 0,
text: '否'
}
],
// 新市民类型 创业、就业、子女上学、投奔子女
npType: [
{
id: 1,
text: '创业'
},
{
id: 2,
text: '就业'
},
{
id: 3,
text: '子女上学'
},
{
id: 4,
text: '投奔子女'
}
],
//出生证明
birthType: [
{
@@ -1977,7 +1947,7 @@ export default {
},
{
id: '58',
text: '转人核支付'
text: '待客户付款'
},
{
id: '59',
@@ -3808,14 +3778,6 @@ export default {
code: "GFRS_M0073__cashValue",
label: "元"
},
{
code: "specMajorDiseaseInsurance",
label: "元"
},
{
code: "expireSurvivalInsurance",
label: "元"
},
{
code: "currentBonus_L",
label: "元"
@@ -3852,21 +3814,9 @@ export default {
code: "supplementarySpecificDiseaseInsurance",
label: "元"
},
{
code: "deductible",
label: "元"
},
{
code: "deductible",
label: "免赔额"
},
{
code: "accidentalDeductible",
label: "元"
},
{
code: "accidentalLimit",
label: "%"
}
],
// 卡单与短期险重新投保选择职业类别时,两个模块职业类型数据的排序不同,创建这个数据字典,用于在选择职业类别时,作为一个参数传入组件,

View File

@@ -177,7 +177,6 @@ service.interceptors.request.use(
if (!config.data || config.data == null) {
config.data = {}
}
if (!!config.data && config.data != null) {
if (configApp.API_VERSION == 'v3') {
// console.log('随机密钥:' + masterKey);
@@ -186,8 +185,9 @@ service.interceptors.request.use(
// console.log('加密后的masterKey' + ak);
// 随机密钥加密data
let data = AESEncrypt(JSON.stringify(config.data), masterKey);
// 验证数据完整性SHA256
// 数据完整性SHA256需要进行二次AES加密
// console.log('MD5值' + MD5(AESEncrypt(data, masterKey)).toString());
// 验证数据完整性MD5
// 数据完整性MD5需要进行二次AES加密
config.headers['signature'] = SHA256(AESEncrypt(data, masterKey)).toString();
if (config.method == 'get') {
config.headers['ak'] = ak
@@ -209,34 +209,33 @@ service.interceptors.request.use(
}
if (!token) {
console.log(window.location.hash, '12132123123');
console.log('token====>>', token)
// 设备类型
const target = BusinessCommon.device()
// 安卓or苹果(非浏览器)
if (!target.isWeixin && target.mobile) {
// console.log(to.meta.name, 'to.meta.name');
// eslint-disable-next-line no-undef
let u = navigator.userAgent;
let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //判断是否是 android终端
if (isAndroid) {
// setTimeout(() => {
if (window.location.hash !== '#/my/privacyPolicy' && window.location.hash !== '#/YB_agentSign/step1' && window.location.hash !== '#/YB_agentSign/step2') {
if (window.location.hash !== '#/my/privacyPolicy') {
console.log(window.Android.getToken(), 'Android获取token')
CacheUtils.setLocItem('token', window.Android.getToken())
}
// console.log(window.Android.getToken(), 'Android获取token')
// CacheUtils.setLocItem('token', window.Android.getToken())
// }, 1000)
} else {
// const res = await EWebBridge.webCallAppInJs('getToken')
// CacheUtils.setLocItem('token', JSON.parse(res).token)
if (window.location.hash !== '#/my/privacyPolicy') {
const res = await EWebBridge.webCallAppInJs('getToken')
CacheUtils.setLocItem('token', JSON.parse(res).token)
}
// const res = await EWebBridge.webCallAppInJs('getToken')
// CacheUtils.setLocItem('token', JSON.parse(res).token)
}
}
}
config.headers['token'] = CacheUtils.getLocItem('token')
// 添加请时间戳
let timeStr = new Date().getTime() + ''
@@ -253,7 +252,6 @@ service.interceptors.request.use(
service.interceptors.response.use(
response => {
let res = response.data
console.log(response)
if (
(configApp.API_VERSION == 'v2' || configApp.API_VERSION == 'v3') &&
response.config.url &&
@@ -287,7 +285,6 @@ service.interceptors.response.use(
if (res.code != 0) {
//10001 token不能为空 10002 token错误或已失效
if (res.code == 10001 || res.code == 10002) {
console.log(res.code)
var ua = window.navigator.userAgent.toLowerCase();
//通过正则表达式匹配ua中是否含有MicroMessenger字符串, 在微信
if (ua.match(/MicroMessenger/i) == 'micromessenger') {

View File

@@ -63,8 +63,9 @@ service.interceptors.request.use(
// console.log('加密后的masterKey' + ak);
// 随机密钥加密data
let data = AESEncrypt(JSON.stringify(config.data), masterKey);
// 验证数据完整性SHA256
// 数据完整性SHA256需要进行二次AES加密
// console.log('MD5值' + MD5(AESEncrypt(data, masterKey)).toString());
// 验证数据完整性MD5
// 数据完整性MD5需要进行二次AES加密
config.headers['signature'] = SHA256(AESEncrypt(data, masterKey)).toString();
if(config.method == 'get'){
config.headers['ak'] = ak

View File

@@ -68,8 +68,7 @@ Validator.extend('salename', {
getMessage: () => '亲,请确认您录入的姓名是否正确哦~',
validate: value => {
// return /^[\u4e00-\u9fa5·]{1,15}$/.test(value)
return /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/.test(value);
// return /^[\u4e00-\u9fa5·]{2,120}$|^[a-zA-Z\s]{4,120}$/.test(value);
return /^[\u4e00-\u9fa5·]{2,120}$|^[a-zA-Z\s]{4,120}$/.test(value);
}
});
// sale - 详细地址 - 详细地址须同时包含汉字和数字,

View File

@@ -97,8 +97,6 @@ export default {
},
methods: {
clickTable() {
this.checkModel.pwd = ''
this.checkModel.authCode = ''
console.log('active', this.active)
},
// 校验是否显示弹窗
@@ -187,7 +185,7 @@ export default {
} else {
this.checkModel.show = true
this.checkModel.codeDisabled = true
// window.clearInterval(this.checkModel.timeId)
window.clearInterval(this.checkModel.timeId)
this.$toast(checkModelResult.resultMessage)
}
},

View File

@@ -62,27 +62,6 @@
<van-field v-model="userInfo.email" label="电子邮箱" name="电子邮箱" v-validate="'email'" placeholder="请输入" clearable maxlength="50" />
<van-field v-model="userInfo.stature" label="身高cm" name="身高" placeholder="请输入" clearable v-validate="'onlyNumber|stature'" maxlength="5" />
<van-field v-model="userInfo.weight" label=" 体重kg" name="体重" placeholder="请输入" clearable v-validate="'onlyNumber|avoirdupois'" />
<div class="p15 pl8 fs14" style="border-bottom: 1px solid #eee;display: flex;justify-content: space-between;align-items: center;" v-if="manageComCode == '45'">
<van-radio-group v-model="userInfo.isNewPeopleFlag" class="flex">
<label>
<i class="pr5"></i>
新市民身份
</label>
<van-radio name="1" class="ml30"></van-radio>
<van-radio name="0" class="ml20"></van-radio>
</van-radio-group>
<van-icon name="question-o" size="20" @click="isNewPeopleFlagTip"/>
</div>
<van-field
v-if="userInfo.isNewPeopleFlag == 1 && manageComCode == '45'"
:value="userInfo.npType | idToText('npType')"
readonly
label="新市民类型"
name="新市民类型"
right-icon="arrow"
placeholder="请选择"
@click="toSelect('11')"
/>
<van-field
:value="userInfo.customerType | idToText('customerType')"
readonly
@@ -217,22 +196,11 @@
<van-popup v-model="censusShow" position="bottom">
<van-area :area-list="areaList" value="110101" :columns-num="2" @confirm="sureArea($event, '3')" @cancel="areaShow = false" />
</van-popup>
<van-dialog v-model="isNewPeopleFlagTipshow" :showConfirmButton="false">
<div slot="title">
<p style="color: #E9332E;">新市民身份说明</p>
</div>
<div style="padding: 20px 30px 30px;font-size: 14px;">
<div style="line-height: 25px;">新市民是指因本人创业就业子女上学投靠子女等原因来到城镇常住未获得当地户籍或获得当地户籍不满三年的各类群体包括但不限于进城务工人员新就业大中专毕业生等</div>
</div>
<div style="text-align: center;margin-bottom: 30px;">
<van-button round type="danger" size="small" style="padding:0px 35px;font-size: 14px;" @click="isNewPeopleFlagTipshow = false">我知道了</van-button>
</div>
</van-dialog>
</div>
</template>
<script>
import {Field, CellGroup, Cell, Popup, Picker, Checkbox, Area, RadioGroup, Radio} from 'vant'
import { Field, CellGroup, Cell, Popup, Picker, Checkbox, Area } from 'vant'
import SelectRadio from '@/components/ebiz/SelectRadio'
import FieldDatePicter from '@/components/ebiz/FieldDatePicter'
import DataDictionary from '@/assets/js/utils/data-dictionary'
@@ -258,14 +226,11 @@ export default {
[FieldDatePicter.name]: FieldDatePicter,
[OccupationPicker.name]: OccupationPicker,
[SelectRadio.name]: SelectRadio,
[RadioGroup.name]: RadioGroup,
[Radio.name]: Radio,
[Area.name]: Area
},
props: ['userInfo'],
data() {
return {
isNewPeopleFlagTipshow: false,
popupShow: false,
areaShow: false, //省级联动
homeShow: false,
@@ -287,8 +252,6 @@ export default {
customerType: '',
customerSource: '',
age: '',
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
effectiveDateTypeAble: false, //长期按钮是否禁用
occupationShowPicker: false,
sexRadio: [
@@ -359,9 +322,6 @@ export default {
this.areaLists = areaLists
},
methods: {
isNewPeopleFlagTip(){
this.isNewPeopleFlagTipshow = true
},
selectClick() {
let title = ''
;[this.occupationShowPicker, title] = [true, '职业类别']
@@ -606,8 +566,6 @@ export default {
this.columns = DataDictionary.customerSource
} else if (pickerType == '9') {
this.columns = DataDictionary.workCondition
} else if (pickerType == '11') {
this.columns = DataDictionary.npType
}
},
//确认选择字段
@@ -644,8 +602,6 @@ export default {
;[this.userInfo.customerSource, this.customerSource] = [value.id, value.text]
} else if (this.pickerType == '9') {
;[this.userInfo.workCondition, this.workCondition] = [value.id, value.text]
} else if (this.pickerType == '11') {
;[this.userInfo.npType, this.npType] = [value.id, value.text]
}
},
//区域选择
@@ -697,12 +653,6 @@ export default {
// return
// }
this.userInfo.effectiveDateType = false
//如果录入日期早于当前日期
if (Date.parse(val) < Date.parse(new Date())) {
this.userInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
return this.$toast('您的证件已过期')
}
}
break
case '2':
@@ -783,7 +733,4 @@ export default {
.van-checkbox {
margin-left: auto;
}
.isNewPeopleFlagTipClass{
margin-top: 45px;line-height: 24px;text-indent: 2em;letter-spacing: 1px;padding: 2px 10px;
}
</style>

View File

@@ -45,39 +45,39 @@ export default {
]
}
},
methods: {
methods: {
changeProgressBar(index) {
//由 localStorage.salePageFlag 来控制是否可跳到指定页面
if (localStorage.active == '3' && index != 3) {
this.$toast('已到达签名确认流程,不可以回到前面的流程')
}
if (Number(CacheUtils.getLocItem('active')) < Number(index)) return
var url
switch (index) {
case 0:
url = 'InsureInformation?salePageFlag=ProgressBar'
break
case 1:
url = 'ProductInformation?salePageFlag=ProgressBar'
break
case 2:
url = 'Notification?salePageFlag=ProgressBar'
break
case 3:
url = 'SignatureConfirmation?salePageFlag=ProgressBar'
break
default:
url = 'InsureInformation?salePageFlag=ProgressBar'
break
}
//由 localStorage.salePageFlag 来控制是否可跳到指定页面
if (localStorage.active == '3' && index != 3) {
this.$toast('已到达签名确认流程,不可以回到前面的流程')
}
if (Number(CacheUtils.getLocItem('active')) < Number(index)) return
var url;
switch (index) {
case 0:
url = 'InsureInformation?salePageFlag=ProgressBar';
break;
case 1:
url = 'ProductInformation?salePageFlag=ProgressBar';
break;
case 2:
url = 'Notification?salePageFlag=ProgressBar';
break;
case 3:
url = 'SignatureConfirmation?salePageFlag=ProgressBar';
break;
default:
url = 'InsureInformation?salePageFlag=ProgressBar';
break;
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#/insureAgain/${url}`,
forbidSwipeBack: '1',
needRefresh: '1'
},
routerInfo: { path: `/insureAgain/${url}` }
flag: 'h5',
extra: {
url: location.origin + `/#/insureAgain/${url}`,
forbidSwipeBack: '1',
needRefresh: '1'
},
routerInfo: { path: `/insureAgain/${url}` }
})
}
}

View File

@@ -37,16 +37,17 @@ export default {
if (this.$route.query.proposalOrderNo) {
thisMyUrl = this.routerInfos[index] + '?proposalOrderNo=' + this.$route.query.proposalOrderNo
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/' + thisMyUrl,
needRefresh: '1'
},
routerInfo: {
path: '/' + thisMyUrl
}
})
this.$router.push({ path: '/' + thisMyUrl })
// this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/' + thisMyUrl,
// needRefresh: '1'
// },
// routerInfo: {
// path: '/' + thisMyUrl
// }
// })
}
},
showArrow(index) {

View File

@@ -27,10 +27,6 @@ import { getOrderDetail1 } from '@/api/ebiz/sale/sale'
export default {
name: 'IndexBar',
props: {
orderNo: {
type: String,
default: ''
},
value: {
type: String,
default: ''
@@ -194,7 +190,6 @@ export default {
}
})
this.selectTab()
console.log(this.orderNo,'this.orderNo')
},
methods: {
changePage(pageIndex) {

View File

@@ -1,22 +0,0 @@
//电子投保 定义相关组件
const step1 = () => import('@/views/ebiz/YB_agentSign/step1')
const step2 = () => import('@/views/ebiz/YB_agentSign/step2')
let riskName = localStorage.riskName
export default [
{
path: '/YB_agentSign/step1',
name: 'step1',
component: step1,
meta: {
title: '银保代理人电子化合同签署'
}
},
{
path: '/YB_agentSign/step2',
name: 'step2',
component: step2,
meta: {
title: '银保代理人电子化合同签署'
}
},
]

View File

@@ -2,7 +2,6 @@
import proposal from './proposal'
import question from './question'
import sale from './sale'
import YB_agentSign from './YB_agentSign'
import customer from './customer'
import my from './my'
import serve from './serve'
@@ -28,10 +27,9 @@ import attendance from './attendance'
// 开门红业绩
import goodStart from './goodStart'
import hgb from './hgb'
import train from './train'
import hgb from './hgb'
import eqiVisit from './eqiVisit'
// 重新投保
import insureAgain from './insureAgain'
@@ -39,6 +37,7 @@ import insureAgain from './insureAgain'
import productionSay from './productionSay'
// 出单详情
import billingDetail from './billingDetail'
// 金掌柜智能客服
import customerService from './customerService'
// 桂冠俱乐部
@@ -52,7 +51,6 @@ import YB_APP from '../YB_APP/index'
export default [
...proposal,
...sale,
...YB_agentSign,
...customer,
...my,
...serve,
@@ -78,9 +76,8 @@ export default [
...hgb,
...train,
...goodStart,
...train,
...insureAgain,
...eqiVisit,
...insureAgain,
...productionSay,
...billingDetail,
...customerService,

View File

@@ -217,7 +217,6 @@ export default {
message: '加载中……'
})
this.getAgentInfo()
this.YBpolicyListAgent()
// 筛选按钮的点击事件
window.appCallBack = this.appCallBack

View File

@@ -1,196 +0,0 @@
<template>
<div style="height: 100vh;background: #fff;">
<div style="display: flex;align-items: center;justify-content: center;padding-top: 60px;">
<img style="width: 40px;" src="@/assets/images/logo.png" />
<span style="margin-left: 15px;">请您填写以下正确信息</span>
</div>
<div style="margin-top: 120px;">
<van-cell-group>
<van-field v-model="name" v-validate="'required|salename'" label="姓名" name="姓名"/>
<van-field v-model="idNo" v-validate="'required|idNo'" label="身份证号" name="身份证号" maxlength="18"/>
</van-cell-group>
</div>
<van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">确定</van-button>
<van-dialog class="text-center" v-model="isCaptchaModalShow" title="请输入验证码">
<div style="margin-top: 20px;margin-bottom: 20px;">
<van-field v-model="mobile" label="手机号码" readonly/>
<van-field v-model="code" type="number" v-validate="'required|onlyNumber'" maxlength="6" center clearable label="短信验证码" placeholder="请输入短信验证码">
<template #button>
<van-button size="small" type="danger" :disabled="countDownNum !== 0" @click="getCaptcha">{{
countDownNum === 0 ? '获取验证码' : countDownNum | countDownText
}}</van-button>
</template>
</van-field>
</div>
<div class="bottom">
<van-button type="danger" @click="onCaptchaConfirm" style="width:80%;margin-bottom: 20px;">确定</van-button>
</div>
</van-dialog>
<van-dialog class="text-center nobutton" v-model="isNoButtonModalShow" title="提示">
<div style="margin-top: 20px;margin-bottom: 70px;margin-top: 50px;">
<span>系统不存在该人员或已离职</span>
</div>
</van-dialog>
</div>
</template>
<script>
import {Field, CellGroup} from "vant";
import { getContractInfo, putContractInfo, getAuthCode, checkSignYB } from '@/api/ebiz/YB_agentSign/YB_agentSign'
export default {
name: 'YB_agentSign_step1',
components: {
[Field.name]: Field,
[CellGroup.name]: CellGroup,
},
data() {
return {
name:'',
idNo:'',
isCaptchaModalShow:false,
isNoButtonModalShow: false,
mobile:'',
oldmobile:'',
code:'',
countDownNum: 0,
uuid: ''
}
},
mounted() {
},
methods: {
async nextStep(){
let valid = await this.$validator.validate()
if (true === valid) {
let params = {
idType: "0",
idNo: this.idNo,
name: this.name
}
getContractInfo(params).then(res => {
if (res.result == 0) {
if(res.content.uuid){
this.isCaptchaModalShow = true
this.uuid = res.content.uuid
if(res.content.phone){
this.oldmobile = res.content.phone
this.mobile = this.dataMaskingMobile(this.oldmobile)
}else{
this.$toast('当前代理人没有手机号码信息')
}
}else{
this.$toast(res.content.message)
}
} else {
this.$toast(res.resultMessage)
return false
}
})
// this.isNoButtonModalShow = true
} else {
return this.$toast(this.$validator.errors.all()[0])
}
},
async getCaptcha() {
if(!this.oldmobile){
this.$toast('当前代理人没有手机号码信息,不能获取验证码');
return false
}
let data = {
operateType: 'appntInfoEntry',
type: 'H5',
operateCode: this.oldmobile,
system: 'agentApp',
operateCodeType: '0'
}
// 获取验证码
let res = await getAuthCode(data)
if (res.result === '0') {
this.$toast(res.resultMessage)
this.sid = res.sessionId
this.countDownNum = 60
this.countDownTimer = setInterval(() => {
this.countDownNum--
if (this.countDownNum <= 0) {
clearInterval(this.countDownTimer)
this.countDownTimer = null
}
}, 1000)
} else {
this.$toast(res.resultMessage)
}
},
async onCaptchaConfirm(){
if (!this.sid) {
return this.$toast('请先获取验证码')
}
if (!this.code.trim()) {
return this.$toast('请输入验证码')
}
let res = await checkSignYB({
smsId: this.sid,
code: this.code
})
if (res.result === '0') {
this.code = ''
this.isCaptchaModalShow = false
this.$store.commit('updateYBidNo', this.idNo)
this.$store.commit('updateYBname', this.name)
this.$store.commit('updateYBuuid', this.uuid)
this.$router.push({ path: '/YB_agentSign/step2'})
} else {
this.$toast(res.resultMessage)
}
},
dataMaskingMobile(mobile) {
let str = ''
if (mobile && mobile.trim().length == 11) {
str = mobile.trim().replace(/^(\S{0})(\S*)(\S{4})$/, function(all, u1, u2, u3) {
return u1 + new Array(u2.length + 1).join('*') + u3
})
}
return str
}
},
filters: {
countDownText(val) {
if (isNaN(parseFloat(val))) {
return val
} else {
return `${val} s`
}
}
}
}
</script>
<style lang="scss" scoped>
/deep/ .van-cell{
padding: 18px 15px;
}
/deep/.van-dialog__confirm{
color: #fff!important;
background: #e9332e;
border-radius: 8px;
margin-bottom: 20px;
width: 80%;
}
/deep/.van-field__label{
margin-left: 15px;
}
.text-center{
/deep/.van-field__label{
margin-left: 15px;
text-align: left;
}
}
.nobutton{
/deep/ .van-dialog__footer{
display: none;
}
}
/deep/ .van-dialog__footer{
display: none;
}
</style>

View File

@@ -1,231 +0,0 @@
<template>
<div class='insuranceInformation-container pb50 redRadioCheckbox'>
<van-notice-bar :scrollable='false' v-if='!Time' class='notice'>
{{ `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上` }}
</van-notice-bar>
<div id="pdf" style="height: 70vh;overflow: scroll;background: #eee;">
<div id="pdfH5ID"></div>
</div>
<van-radio-group v-model='radio' class='pb10 pt20 pl30 fs14'>
<van-radio name='1' @click='click'>
本人确认已阅读<span>国富人寿保险股份有限公司委托代理合同</span>
</van-radio>
</van-radio-group>
<div class='pt30 pl30 flex align-items-c'>
<span class='mr10'>代理人签名 :</span>
<van-button type='danger' size='small' :disabled="signBtnDisable" @click="sign" v-no-more-click='1000'>
{{signInfo.status == '1' ? '签名' : '已签名' }}
</van-button>
<img v-if="signH5Img" :src="signImgUrl" style="height: 34px;margin-left: 20px;width: auto;"/>
</div>
<div class='bg-white bottom-btn'>
<van-button type='danger' size='large' :disabled='isDisabledComplite' @click='goNext' v-no-more-click='1000'>提交
</van-button>
</div>
<van-popup v-model="signSuccessShow" :close-on-click-overlay="false" round>
<div style="width: 300px;height: 150px;text-align: center;">
<div style="margin-top: 30px;font-size: 20px;">提交结果</div>
<div style="margin-top: 30px;font-size: 16px;display: flex;justify-content: center;align-items: center;">
<img src="@/assets/images/ebiz/radio-active.png" style="width: 25px;height: 25px;"/>
<span style="margin-left: 15px;">签署成功</span>
</div>
</div>
</van-popup>
</div>
</template>
<script>
import { RadioGroup, Radio, Dialog, NoticeBar } from 'vant'
import config from '@/config'
import { generateAgreementYB, putContractInfo } from '@/api/ebiz/YB_agentSign/YB_agentSign'
import Pdfh5 from "pdfh5";
export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
time:'10',
radio: '',
number: '',
src: location.origin + '/pdfjs/web/viewer.html?file=',
pdfUrl: '',
signVal: '2',
base64: '',
signBtnDisable: true,
isDisabledComplite:true,
isOver: false,
signInfo: {
status: '1'
},
signSuccessShow:false,
signImgUrl:'data:image/gif;base64,',
signH5Val: '',
signH5Img: '',
pdfh5: null
}
},
components: {
[RadioGroup.name]: RadioGroup,
[Radio.name]: Radio,
[Dialog.name]: Dialog,
[NoticeBar.name]: NoticeBar
},
created(){
this.timeOut()
},
mounted() {
document.body.style.backgroundColor = '#fff'
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let dataParams = {
idType:'0',
idNo:this.$store.getters.getYBidNo,
name:this.$store.getters.getYBname
}
generateAgreementYB(dataParams).then(res=>{
this.$toast.clear()
if(res.result == 0){
window.sessionStorage.setItem('signName',this.$store.getters.getYBname)
// this.pdfUrl = config.assetsUpUrl + res.content.rgssUrl
//实例化
this.pdfh5 = new Pdfh5("#pdfH5ID", {
pdfurl: config.assetsUpUrl + res.content.rgssUrl,
// pdfurl: 'https://iagentsales-test2.e-guofu.com/opt/ebiz/webapps/ebiz-epolicy/pdf/2023/08/09/1000001078372351/1000001078372351.pdf',
lazy:false,
scale:1
}).on("complete", function (status, msg, time) { //监听完成事件
console.log("状态:" + status + ",信息:" + msg + ",耗时:" + time + "毫秒,总页数:" + this.totalNum)
})
this.signH5Img = sessionStorage.getItem('signH5Img')
if(this.signH5Img){
this.$set(this.signInfo, 'status', '2')
this.radio = '1'
this.Time = true
this.isOver = true
this.signImgUrl = this.signImgUrl + this.signH5Img
}
}else{
this.$toast(res.resultMessage)
}
})
},
methods: {
// 点击阅读时
click() {
let that = this
if (that.isOver == false) {
Dialog.confirm({
title: '提示',
message: '该内容涉及您的重大权益,请您仔细阅读',
showCancelButton: false
}).then(() => {
that.radio = ''
})
}
},
timeOut() {
let that = this
let time = that.time
that.Time = false
that.number = `${time}`
let timer = setInterval(() => {
time--
if (time <= 0) {
time = 0
clearInterval(timer)
that.Time = true
that.isOver = true
// window.localStorage.setItem('step', '1')
}
that.number = `${time}`
}, 1000)
},
sign() {
// window.location.href = 'http://'+window.location.host + '/signH5/1.html'
window.location.href = this.$mainUrl + '/signH5/1.html'
},
goNext(){
// this.signSuccessShow = true
// window.localStorage.removeItem('signInfo')
let params = {
uuid:this.$store.getters.getYBuuid,
signInfo: window.sessionStorage.getItem('signH5Val')
}
putContractInfo(params).then(res=>{
if(res.result == 0){
this.signSuccessShow = true
window.localStorage.removeItem('signInfo')
}else{
this.$toast(res.resultMessage)
}
})
}
},
computed: {
listenChange() {
const { isOver, radio, signInfo } = this
return { isOver, radio, signInfo }
}
},
beforeRouteLeave(to, from, next) {
window.sessionStorage.removeItem('signH5Val')
document.body.style.backgroundColor = ''
next()
},
watch: {
listenChange(val) {
let that = this
if (that.signVal == '0' || that.signVal == '2') {
if (val.isOver == true && val.radio != '') {
that.signBtnDisable = false
} else {
that.signBtnDisable = true
}
if (that.radio == '1' && val.signInfo.status == '2') {
that.isDisabledComplite = false
} else {
that.isDisabledComplite = true
}
}
}
}
}
</script>
<style lang='scss' scoped>
img {
width: 100%;
height: 100%;
}
.notice {
width: 100%;
position: fixed;
top: 0;
z-index: 20;
}
.iframe {
width: 100vw;
height: 70vh;
}
#pdfH5ID{
width: 100vw;
}
/deep/.viewerContainer{
width: 100vw;
overflow: inherit;
}
/deep/ .pageNum{
display: none!important;
}
/deep/ .pageContainer{
margin: 2vw;
background: #fff;
img{
width: 96vw;
}
}
</style>

View File

@@ -1,702 +0,0 @@
<template>
<div class="sale-list-container pb50 text-center" v-if="isCheck == 1">
<p class="f10 gray mt60">您暂无使用权限</p>
<p class="f10 gray mt5">如有问题咨询请联系个险业务部</p>
</div>
<div class="sale-list-container pb50" v-else-if="isCheck == 0">
<van-search placeholder="请输入投保人姓名" v-model="searchName" @change="searchList" @keyup.enter="searchList" />
<van-sticky>
<van-tabs :line-width="45" v-model="active" @change="tabChange" sticky>
<van-tab name="uncommit" title="未提交"></van-tab>
<van-tab name="commit" title="已提交"></van-tab>
<van-tab name="waitUnderwritten" title="待承保"></van-tab>
</van-tabs>
</van-sticky>
<van-list
v-model="loading"
:immediate-check="false"
:finished="finished"
:finished-text="finishedText"
error-text="请求失败点击重新加载"
:error.sync="error"
@load="loadMore"
class="pb45"
>
<div v-if="isSuccess">
<div v-if="saleList.length > 0">
<div v-for="(order, index) in saleList" :key="index">
<div class="fs12 mt20 mb5 text-center">{{ order.orderInfoDTO.createDate }}</div>
<div class="bg-white m15 pv15 pr15 pl10">
<div class="flex justify-content-s align-items-c">
<div>
<div class="w45 inline-b">
<van-tag plain color="#5CA7DE">投保</van-tag>
</div>
<span class="fs15 c-gray-dark">{{ order.appntDTO.name }}</span>
</div>
</div>
<div v-for="(insured, insuredIndex) in order.insuredDTOs" :key="insuredIndex">
<div class="mv15">
<div class="w45 inline-b">
<van-tag plain color="#DD9C56">被保</van-tag>
</div>
<span class="fs15 c-gray-dark">{{ insured.name }}</span>
</div>
<div v-for="(main, mainIndex) in insured.mainRisk" :key="mainIndex">
<div class="mv10">
<span class="w45 inline-b">
<van-tag plain type="danger">主险</van-tag>
</span>
<span class="fs15 c-gray-dark">{{ main.riskName }}</span>
</div>
<div class="mv10 pl45 flex" v-for="(addtional, addtionIndex) in main.addtion" :key="addtionIndex">
<span class="mr10" style="flex-shrink: 0">
<van-tag mark color="#DDF2EF" text-color="#E9332E">附加</van-tag>
</span>
<span class="fs13">{{ addtional.riskName }}</span>
</div>
</div>
</div>
<div class="flex fs15 justify-content-s mt15 mb15">
<span class="c-gray-darker fwb">首期总保费</span>
<span class="yellow fwb">{{ order.firstPrem == 0 ? '0.00' : order.firstPrem | moneyFormat }}</span>
</div>
<div class="pt15" v-if="active == 'commit' || active == 'waitUnderwritten'" style="border-top:1px solid #dadada">
<div>
<div class="w80 inline-b">
<van-tag plain color="#999999">投保单号</van-tag>
</div>
<span class="fs14 c-gray-dark">{{ order.orderInfoDTO.orderNo }}</span>
</div>
<div class="mt10">
<div class="w80 inline-b">
<van-tag plain color="#999999">状态</van-tag>
</div>
<span class="fs14 c-gray-dark">{{ order.stateName }}</span>
</div>
</div>
<div v-if="!!order.orderInfoDTO.doubleFlag && order.orderInfoDTO.doubleFlag == '0'" class="fs12 mt15">
温馨提示本投保单满足双录条件需要双录质检通过后才能承保
</div>
<div class="text-right mt15 ">
<van-button v-if="active == 'uncommit'" round @click="goDetail(order)" size="small" class="mr5" type="danger" v-no-more-click="1000"
>编辑</van-button
>
<van-button
v-if="active == 'uncommit'"
plain
round
@click.stop="del(order, index)"
size="small"
class="mr5"
type="danger"
v-no-more-click="1000"
>删除</van-button
>
<van-button
@click="againPay(order)"
v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '19'"
size="small"
class="mr5"
type="danger"
round
>重新支付</van-button
>
<van-button
@click="changeCard(order)"
v-if="(active == 'commit' && order.orderInfoDTO.orderStatus == '48') || (active == 'commit' && order.orderInfoDTO.orderStatus == '49')"
size="small"
class="mr5"
type="danger"
round
>修改卡号</van-button
>
<template v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '55'">
<van-button @click="changeCard(order)" size="small" class="mr5" type="danger" round>修改卡号</van-button>
<van-button @click="againPay(order)" size="small" class="mr5" type="danger" round>重新支付</van-button>
</template>
<template v-if="active == 'commit' && (order.orderInfoDTO.orderStatus == '02' || order.orderInfoDTO.orderStatus == '58')">
<van-button @click="goPay(order)" size="small" class="mr5" type="danger" round>去支付</van-button>
</template>
<!-- doubleFlag 1- 0-doubleFlag为0双录时canRevokeDouble加 orderStatus 16 -->
<van-button
@click="revokeOrder(order)"
v-if="active == 'commit' && ((canRevoke[order.orderInfoDTO.orderStatus] && (order.orderInfoDTO.doubleFlag == '1' || order.orderInfoDTO.doubleFlag == null || order.orderInfoDTO.doubleFlag == ''))
|| (canRevokeDouble[order.orderInfoDTO.orderStatus] && order.orderInfoDTO.doubleFlag == '0'))"
size="small"
class="mr5"
type="danger"
round
>撤单</van-button
>
<van-button @click="seePolicy(order)" v-if="active == 'commit'" size="small" type="danger" round>查看投保单</van-button>
</div>
</div>
</div>
</div>
<div v-else class="text-center">
<img class="mt40" src="@/assets/images/pic_page-non.png" />
<div class="fs17 mt40">暂无订单</div>
</div>
</div>
</van-list>
<van-button type="danger" class="bottom-btn" @click="add" v-no-more-click="1000">点我新增</van-button>
<van-dialog
class="dialog-delete"
@confirm="checkCaptchaCode"
@cancel="cancelCaptchaCode"
:before-close="beforeClose"
confirm-button-color="#fff"
v-model="revokePanelShow"
title="短信验证"
show-cancel-button
>
<p class="captchaReceiver">投保人手机号: {{ captchaReceiver | phoneNumFilter }}</p>
<van-field v-model="sms" center clearable placeholder="请输入短信验证码">
<template #button>
<van-button :disabled="sendTime !== 0" v-no-more-click="1000" @click="getCaptchaCode" size="small" type="danger">{{
sendTime ? `${sendTime}s后获取` : '获取验证码'
}}</van-button>
</template>
</van-field>
</van-dialog>
<!-- 短信验证 -->
<check-agent @checModelSuccessMethod="initThisPage" />
</div>
</template>
<script>
import { Search, Tabs, Tab, List, Tag, Sticky, Toast, Dialog, Field } from 'vant'
import { orderList, deleteOrderInfo, getAuthCode, revokeOrder } from '@/api/ebiz/sale/sale'
import { funcPermCheck } from '@/api/ebiz/common/common'
import { formatRiskList } from '@/assets/js/utils/formatRiskList.js'
import dataDictionary from '@/assets/js/utils/data-dictionary' //根据数据字典找到用户等级
import CheckAgent from '@/components/common/CheckAgent'
export default {
name: 'saleList',
components: {
[CheckAgent.name]: CheckAgent,
[Field.name]: Field,
[Search.name]: Search,
[Tabs.name]: Tabs,
[Tab.name]: Tab,
[List.name]: List,
[Tag.name]: Tag,
[Sticky.name]: Sticky,
[Dialog.name]: Dialog
},
data() {
return {
isCheck: 0, //查看是否有权限
showFlag: true,
searchName: '',
active: 'uncommit', //uncommit 表示未提交 commit表示已提交
saleList: [],
loading: false,
finished: false,
total: '', //总页数
currentPage: 1, //当前页数
error: false,
finishedText: '没有更多了',
pageSize: 5, //每页数据条数
isSuccess: false,
canRevoke: {
'19': true,
'02': true,
'48': true,
'49': true,
'55': true,
'58': true,
'46': true,
'50': true,
'51': true
},
canRevokeDouble: {
'19': true,
'02': true,
'48': true,
'49': true,
'55': true,
'58': true,
'46': true,
'50': true,
'51': true,
'16': true,
},
revokePanelShow: false,
sms: '',
smsId: '',
sendTime: 0,
getCaptcha: false,
captchaTimer: null,
captchaReceiver: '',
revokeOrderNo: '',
captchaMaped: false
}
},
mounted() {
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
}, 100)
window.appCallBack = this.appCallBack
funcPermCheck({}).then(res => {
this.isCheck = res.result
})
},
methods: {
beforeClose(action, done) {
this.captchaMaped ? done() : done(false)
},
async getCaptchaCode() {
if (this.sendTime !== 0) return
this.getCaptcha = true
this.sendTime = 60
let data = {
operateType: 'appntInfoEntry',
type: 'H5',
operateCode: this.captchaReceiver,
system: 'agentApp',
operateCodeType: '0'
}
let res = await getAuthCode(data)
if (res.result === '0') {
this.$toast('获取验证码成功')
}
this.smsId = res.sessionId
this.captchaTimer = setInterval(() => {
this.sendTime--
if (this.sendTime === 0) {
clearInterval(this.captchaTimer)
this.captchaTimer = null
}
}, 1000)
},
async checkCaptchaCode() {
if (!this.getCaptcha) {
return this.$toast('请先获取验证码')
}
if (!this.sms.trim()) {
return this.$toast('请输入验证码')
}
clearInterval(this.captchaTimer)
this.captchaTimer = null
let revokeResult = await revokeOrder({
id: this.revokeOrderNo,
smsId: this.smsId,
code: this.sms
})
if (revokeResult.result == 0) {
this.$toast('撤单成功!')
setTimeout(() => {
this.saleList = []
this.isSuccess = false
this.currentPage = 1
;[this.loading, this.finished] = [true, false]
let pageInfo = {
pageNum: this.currentPage,
pageSize: this.pageSize,
orderType: this.active
}
this.loadMore(pageInfo)
}, 1000)
} else {
Toast.fail(revokeResult.resultMessage)
}
this.cancelCaptchaCode()
this.sms = ''
},
cancelCaptchaCode() {
this.sendTime = 0
this.revokePanelShow = false
clearInterval(this.captchaTimer)
this.captchaTimer = null
this.getCaptcha = false
this.captchaMaped = false
this.captchaReceiver = ''
},
initThisPage(showFlag) {
this.showFlag = showFlag
if (this.showFlag) {
return
}
this.loadMore()
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
this.$jump({
flag: 'home'
})
}
},
//分页用
loadMore() {
if (this.showFlag) {
return
}
let pageInfo = {
pageNum: this.currentPage,
pageSize: this.pageSize,
orderType: this.active,
name: this.searchName,
desensitizType: this.active === 'uncommit' ? 1 : 0
}
this.getOrderList(pageInfo)
},
//再次支付
againPay(order) {
localStorage.orderNo = order.orderInfoDTO.orderNo
// 再次支付 salelist为 0
localStorage.salelist = '0'
localStorage.removeItem('changeCard')
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/payMent?orderNo=' + order.orderInfoDTO.orderNo
},
routerInfo: { path: '/sale/payMent?orderNo=' + order.orderInfoDTO.orderNo }
})
},
//支付失败去换卡
changeCard(order) {
let url = ''
let orderStatus = order.orderInfoDTO.orderStatus
localStorage.orderNo = order.orderInfoDTO.orderNo
if (order.insuredDTOs[0].riskDTOLst[0]) {
localStorage.setItem('productCode', order.insuredDTOs[0].riskDTOLst[0].mainRiskCode)
}
localStorage.setItem('changeCard', true)
switch (orderStatus) {
case '55': //账户信息页
url = '/sale/AccountInformation?orderNo=' + order.orderInfoDTO.orderNo
break
case '48': //账户信息填写成功,跳到影像上传页
url = '/sale/AttachmentManagement?orderNo=' + order.orderInfoDTO.orderNo
break
case '49': //影像上传页填写成功,跳到银行卡号确认页
url = '/sale/SignatureConfirmation?orderNo=' + order.orderInfoDTO.orderNo
break
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#${url}`
},
routerInfo: { path: url }
})
},
//去支付
goPay(order) {
localStorage.orderNo = order.orderInfoDTO.orderNo
localStorage.setItem('AppntidType', order.appntDTO.idType)
localStorage.salelist = '1'
localStorage.removeItem('changeCard')
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/payMent?orderNo=' + order.orderInfoDTO.orderNo
},
routerInfo: { path: '/sale/payMent?orderNo=' + order.orderInfoDTO.orderNo }
})
},
//查看保单
seePolicy(order) {
localStorage.orderNo = order.orderInfoDTO.orderNo
localStorage.removeItem('changeCard')
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/detail?type=1&orderNo=' + order.orderInfoDTO.orderNo
},
routerInfo: {
path: '/sale/detail?orderNo=' + order.orderInfoDTO.orderNo,
query: {
type: 1
}
}
})
},
//初始化保单列表
getOrderList(pageInfo) {
orderList(pageInfo).then(res => {
if (res.result == '0') {
this.isSuccess = true
this.currentPage++
if (res.orderDTOPageInfo == null || res.orderDTOPageInfo == '' || res.orderDTOPageInfo == undefined) {
this.finished = true
this.loading = false
this.finishedText = ''
return
}
let list = res.orderDTOPageInfo.list
if (list.length == 0) {
this.finishedText = ''
} else {
this.finishedText = '已经全部加载'
}
list = formatRiskList(list, 'insuredDTOs', 'riskDTOLst') //根据后面两个参数 来格式化数据
dataDictionary.policyState.forEach(state => {
list.forEach(order => {
if (state.id == order.orderInfoDTO.orderStatus) {
order.stateName = state.text
}
})
})
this.saleList = this.saleList.concat(list)
if (this.saleList.length == 0) {
this.isSuccess = false
}
this.loading = false
if (res.orderDTOPageInfo.nextPage == 0) {
//当下一页为0时 表示全部数据加载完毕
this.finished = true
}
} else {
this.finished = true
this.loading = false
this.finishedText = res.resultMessage
}
})
},
tabChange(name) {
this.currentPage = 1
this.active = name
this.saleList = []
;[this.loading, this.finished] = [true, false]
this.finishedText = '正在加载...'
this.loadMore()
},
searchList() {
this.currentPage = 1
this.saleList = []
;[this.loading, this.finished] = [true, false]
this.finishedText = '正在加载...'
this.loadMore()
},
//投保单详情
goDetail(order) {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
window.localStorage.setItem('detailJump', '')
if (order.insuredDTOs[0]) {
if (order.insuredDTOs[0].riskDTOLst[0]) {
localStorage.setItem('productCode', order.insuredDTOs[0].riskDTOLst[0].mainRiskCode)
}
}
let orderStatus = order.orderInfoDTO.orderStatus
let orderNo = order.orderInfoDTO.orderNo
let url = ''
//保存对应的订单号
localStorage.orderNo = orderNo
localStorage.isFrom = 'sale'
localStorage.removeItem('changeCard')
if(orderStatus == '01'){ //已签名待客户确认, 跳到签名确认页面
url = '/sale/SignatureConfirmation?edit=1&orderNo='+orderNo
}else if(orderStatus == '43'){//未签名待客户确认, 跳到签名确认页面
url = '/sale/SignatureConfirmation?edit=1&orderNo='+orderNo
}else if(orderStatus == '35'){//投保人保存成功, 跳到被保险人页面
url = '/sale/insuredPerson?edit=1&orderNo='+orderNo
}else if(orderStatus == '36'){//被保险人保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1&orderNo='+orderNo
}else if(orderStatus == '37'){//受益人保存成功, 跳到告知信息--
url = '/sale/NotifyingMessage?edit=1&orderNo='+orderNo
}else if(orderStatus == '38'){ //账户信息保存成功, 跳到附件管理--
url = '/sale/AttachmentManagement?edit=1&orderNo='+orderNo
}else if(orderStatus == '39'){ //险种信息保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1&orderNo='+orderNo
}else if(orderStatus == '40'){//告知信息保存成功, 跳到风险测评--
if( order.riskEvaluationDTO.isShowEvaluationPoint != '1'){
if(order.universalRiskNotifyDTO && order.universalRiskNotifyDTO.isUniversalRiskNotifyShowPoint == '1'){
url = '/sale/universalRiskNotifyingMessage?edit=1&orderNo='+orderNo
}else{
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}
}else {
url = '/sale/answerPage?edit=1&orderNo='+orderNo
}
}else if(orderStatus == ''){//跳到投保人
url = '/sale/insuredInfo?edit=1&orderNo='+orderNo
}else if(orderStatus == '44'){//建议书转投保, 跳到投保人
url = '/sale/insuredInfo?edit=1&orderNo='+orderNo
}else if(orderStatus == '62'){//风险测评保存成功, 跳到账户信息--
if(order.universalRiskNotifyDTO && order.universalRiskNotifyDTO.isUniversalRiskNotifyShowPoint != '1'){
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}else{
url = '/sale/universalRiskNotifyingMessage?edit=1&orderNo='+orderNo
}
}else if(orderStatus == '63'){//风险测评保存成功, 跳到账户信息--
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}
// switch (orderStatus) {
// case '01': //已签名待客户确认, 跳到签名确认页面
// url = '/sale/SignatureConfirmation?edit=1'
// break
// case '43': //未签名待客户确认, 跳到签名确认页面
// url = '/sale/SignatureConfirmation?edit=1'
// break
// case '35': //投保人保存成功, 跳到被保险人页面--
// url = '/sale/insuredPerson?edit=1'
// break
// case '36': //被保险人保存成功, 跳到已选产品列表
// url = '/common/selectedProduct?edit=1'
// break
// case '37': //受益人保存成功, 跳到告知信息--
// url = '/sale/NotifyingMessage?edit=1'
// break
// case '38': //账户信息保存成功, 跳到附件管理--
// url = '/sale/AttachmentManagement?edit=1'
// break
// case '39': //险种信息保存成功, 跳到已选产品列表
// url = '/common/selectedProduct?edit=1'
// break
// case '40': //告知信息保存成功, 跳到风险测评--
// url = '/sale/answerPage?edit=1'
// break
// case '': //跳到投保人
// url = '/sale/insuredInfo?edit=1'
// break
// case '44': //建议书转投保, 跳到投保人
// url = '/sale/insuredInfo?edit=1'
// break
// case '62': //风险测评保存成功, 跳到账户信息--
// // url = '/sale/AccountInformation?edit=1'
// url = '/sale/answerSuccess?edit=1'
// break
// default:
// break
// }
this.$jump({
flag: 'h5',
extra: {
forbidSwipeBack: '1',
url: location.origin + `/#${url}`
},
routerInfo: { path: url }
})
},
//删除投保单
del(order) {
let params = {
orderType: 'DEL_ORDER', //列表页 此值为固定
id: order.orderInfoDTO.orderNo,
orderDTO: {
orderInfo: {
orderNo: order.orderNo
}
}
}
this.$dialog
.confirm({
className: 'dialog-delete',
title: '提示',
message: '确认删除投保单吗?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
deleteOrderInfo(params).then(res => {
if (res.result == 0) {
this.saleList = []
this.isSuccess = false
this.currentPage = 1
;[this.loading, this.finished] = [true, false]
let pageInfo = {
pageNum: this.currentPage,
pageSize: this.pageSize,
orderType: this.active
}
this.loadMore(pageInfo)
} else {
Toast.fail(res.resultMessage)
}
})
})
.catch(() => {})
},
//新增
add() {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
localStorage.orderNo = ''
localStorage.chooseProductCodes = '' //置空所选险种
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/insuredInfo'
},
routerInfo: { path: '/sale/insuredInfo' }
})
},
revokeOrder(order) {
console.dir(order)
this.$dialog
.confirm({
className: 'dialog-delete',
title: '提示',
message: '撤单后,数据将不可恢复,您确定要撤单吗?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
this.revokePanelShow = true
this.captchaReceiver = order.appntDTO.mobile
this.revokeOrderNo = order.orderInfoDTO.orderNo
})
}
},
filters: {
encryCheckModelMobile(code) {
return code.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2')
},
phoneNumFilter(phoneNum) {
let num = phoneNum.split('')
num.splice(3, 4, '****')
return num.join('')
}
}
}
</script>
<style lang="scss" scoped>
/deep/ .dialog-delete .van-dialog__header {
padding: 0.5em;
margin-bottom: 0;
border-bottom: 1px solid #eaeaea;
}
/deep/ .van-cell {
padding: 0;
padding-bottom: 0.5em;
border-bottom: 1px solid #eaeaea;
}
/deep/ .van-dialog__content {
padding: 1em;
}
.captchaReceiver {
margin-bottom: 1em;
padding-bottom: 1em;
border-bottom: 1px solid #eaeaea;
font-size: 14px;
}
.van-search__content {
background: #fff !important;
border-radius: 10px;
}
.van-search {
background: none !important;
}
</style>

View File

@@ -151,8 +151,8 @@ export default {
index: '1',
offset: '5',
pos: '3',
signatureWidth: this.$utils.signParams().signatureWidth-20,
signatureHeight: this.$utils.signParams().signatureHeight-20
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}).then(data => {
this.$toast.clear()
if (JSON.parse(data).state == '1') {

View File

@@ -320,6 +320,7 @@ export default {
// appntNodeNew = null
// break
// }
console.log(this.branchType,'this.branchType')
let params = {
types: ['00'],
ebizEnterCustomerDto: {
@@ -330,7 +331,6 @@ export default {
},
appntNode: this.branchType == '1' ? appntNode : null
}
auditCheck(params).then(res => {
if (res.result == '0') {
if(res.content){

View File

@@ -272,9 +272,8 @@ export default {
}
},
handlePhoto(url) {
//let index = url.indexOf('images')
//return this.$assetsUpUrl + url.substring(index)
return this.$assetsUpUrl + url;
let index = url.indexOf('images')
return this.$assetsUrl + url.substring(index)
},
handlePdf(url) {
this.pdfShow = true

View File

@@ -859,13 +859,13 @@ export function sureArea(that, area, type, flag = false) {
*/
export function getIdentityInfo(that, data, type) {
if (data.name && data.name != '待识别') {
that.userInfo.certificateValidate = `${data.startDate.substr(0, 4)}-${data.startDate.substr(4, 2)}-${data.startDate.substr(6, 2)}`
that.userInfo.certiexpiredate = `${data.endDate.substr(0, 4)}-${data.endDate.substr(4, 2)}-${data.endDate.substr(6, 2)}`
that.userInfo.name = data.name
that.userInfo.idNo = data.idNo
that.userInfo.birthday = `${data.birthYear}-${data.birthMonth}-${data.birthDay}`
that.userInfo.sex = data.gender == '男' ? '0' : '1'
that.effectiveDateTypeAble = idToData(data.idNo).age <= 45
that.userInfo.certificateValidate = `${data.startDate.substr(0, 4)}-${data.startDate.substr(4, 2)}-${data.startDate.substr(6, 2)}`
that.userInfo.certiexpiredate = `${data.endDate.substr(0, 4)}-${data.endDate.substr(4, 2)}-${data.endDate.substr(6, 2)}`
that.userInfo.name = data.name
that.userInfo.idNo = data.idNo
that.userInfo.birthday = `${data.birthYear}-${data.birthMonth}-${data.birthDay}`
that.userInfo.sex = data.gender == '男' ? '0' : '1'
that.effectiveDateTypeAble = idToData(data.idNo).age <= 45
}
that.isScan = false
that.bankisScan = false

View File

@@ -539,7 +539,7 @@ export default {
signStatus: '1', //--签名状态 0:未签名; 1:已签名
signPath: signPath //--签名图片地址
}
that.allowanceSignDTOLst.forEach(function(item) {
that.allowanceSignDTOLst.forEach(function (item) {
if (item.id == that.signId) {
item.signStatus = obj.signStatus
item.signPath = signPath
@@ -669,7 +669,7 @@ export default {
extra: {
title: `国富人寿桂冠专属父母赡养津贴申请`,
content: '点击去签字',
shareScene: 0,// 0只分享好友1 只分享朋友圈 不传默认所有
shareScene:0,// 0只分享好友1 只分享朋友圈 不传默认所有
url: location.origin + '/#/allowance/application/signatureConfirmation?allowanceNo=' + this.allowanceNo + '&token=' + res.content,
// '&relationToAppnt=' +
// JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt +

View File

@@ -17,7 +17,7 @@
<van-cell title="被保险人" :value="card.insuredName" />
<van-cell title="生效日期" :value="card.cvalidate" />
<!-- <van-cell v-if="card.bankCode" title="卡号" :value="card.bankCode" /> -->
<van-cell title="保费" :value="`${payInfo.amnt}元` | moneyFormat" v-if="payInfo.amnt != ''" />
<van-cell title="保费" class="red" :value="`${payInfo.amnt}元` | moneyFormat" v-if="payInfo.amnt != ''" />
</van-cell-group>
<!-- <div v-if="payStatus != '2' && payStatus != '1'" class=" p10 pb250 bg-white">
<span class="pt150 fs14"> 如有相关问题请联系信息技术部运维人员</span>

View File

@@ -3,7 +3,7 @@
* @Date: 2021-04-01 11:00:21
* @LastEditTime: 2021-04-06 16:32:02
* @LastEditors: PangXingYue
* @Description:
* @Description:
* @FilePath: \ebiz-h5\src\views\ebiz\cardList\ShowPDF.vue
-->
<template>
@@ -23,7 +23,7 @@ export default {
data() {
return {
pdfUrl: '',
src: 'https://iagentsales-test2.e-guofu.com:5100' + '/pdfjs/web/viewer.html?file=',
src: location.origin + '/pdfjs/web/viewer.html?file=',
index: this.$route.query.index || 0, //阅读文件指针
timer: null,
time: 2,
@@ -40,22 +40,22 @@ export default {
if (sessionStorage.orderDetail) {
this.orderDTO = JSON.parse(sessionStorage.orderDetail)
this.cardListPDF = this.orderDTO.ebizSignDTOS
this.docType = 'shareOpen'
this.docType = 'shareOpen'
} else {
this.cardListPDF = JSON.parse(localStorage.getItem('cardListPDF'))
this.cardListPDF = JSON.parse(localStorage.getItem('cardListPDF'))
}
this.init()
},
mounted() {},
methods: {
init() {
init() {
if (sessionStorage.orderDetail) {
this.pdfUrl = this.cardListPDF[this.index].originalUrl
document.title = this.cardListPDF[this.index].documentName
document.title = this.cardListPDF[this.index].documentName
} else {
this.pdfUrl = this.cardListPDF.documentUrl
document.title = this.cardListPDF.title
}
document.title = this.cardListPDF.title
}
this.interval()
},
interval() {
@@ -69,19 +69,19 @@ export default {
// 调用阅读接口
if (this.time !== 0) {
return false
}
}
this.saveOrUpdateDocument()
},
//更新险种文档阅读状态
saveOrUpdateDocument() {
saveOrUpdateDocument() {
this.cardListPDF[this.index]['documentStatus'] = '1'
let data = {
ebizSignDTOS: [this.cardListPDF[this.index]]
}
saveOrUpdateDocument(data).then(res => {
if (res.result == '0') {
this.$toast.clear()
sessionStorage.orderDetail = JSON.stringify(this.orderDTO)
if (res.result == '0') {
this.$toast.clear()
sessionStorage.orderDetail = JSON.stringify(this.orderDTO)
if (this.index >= this.cardListPDF.length - 1) {
this.$jump({
flag: 'h5',
@@ -93,13 +93,13 @@ export default {
}
})
} else {
this.index = this.cardListPDF.findIndex((item, key) => {
this.index = this.cardListPDF.findIndex((item, key) => {
return item.documentStatus != 1
})
if (this.index != -1) {
this.init()
}
}
}
}
} else {
this.cardListPDF[this.index]['documentStatus'] = '0'
this.$toast(res.resultMessage)

View File

@@ -95,7 +95,7 @@ export default {
title: '温馨提示',
messageAlign: 'left',
confirmButtonText: '确认',
message: `您即将进入保险投保流程,为维护您的合法权益,投保请您务必仔细阅读和确认产品说明、投保须知、免除保险人责任条款、保险条款和投保人声明等页面所有内容,且您的投保和操作过程将被记录。`,
message: `1、您即将进入投保流程,为维护您的合法权益,投保请您务必仔细阅读和确认保险条款、投保须知、免除保险人责任条款、犹豫期条款等页面所有内容。<br/>2.您的投保过程和操作将被记录。`,
})
.then(() => {
})

View File

@@ -1780,7 +1780,7 @@ export default {
}
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
console.log('计算年龄', age)
console.log('计算年龄', age)
// return
// 如果是未成年人
if (age < 18) {

View File

@@ -109,6 +109,7 @@
item.productCode == 'GFRS_M0051' ||
item.productCode == 'GFRS_M0054' ||
item.productCode == 'GFRS_M0073' ||
item.productCode == 'GFRS_M0077' ||
item.productCode == 'GFRS_M0057'
)
"
@@ -127,6 +128,7 @@
item.productCode == 'GFRS_M0051' ||
item.productCode == 'GFRS_M0054' ||
item.productCode == 'GFRS_M0073' ||
item.productCode == 'GFRS_M0077' ||
item.productCode == 'GFRS_M0057'
)
"
@@ -135,10 +137,10 @@
:max="dutyItem.maxDutyAmt"
:show-plus="false"
:show-minus="false"
:disabled="item.productCode == 'GFRS_A0012' || (item.productCode == 'GFRS_M0077' && !dutyItem.necess) || (item.productCode == 'GFRS_M0077' && dutyItem.duty == '311507')"
:disabled="item.productCode == 'GFRS_A0012'"
class="ml10 mr10"
@focus="focusStep"
@blur="blurStep(dutyItem, index,item.productCode)"
@blur="blurStep(dutyItem, index)"
@change="
dutyStepperChange(
item.calFactorLst[riskFactorIndex].rules[dutyItemIndex].defaultDutyAmt,
@@ -1187,23 +1189,6 @@ export default {
})
}
}
if (validateRiskCode === 'GFRS_M0077'){
if(dutyItem.duty == '311507' && dutyItem.necess){
this.chooseProducts.forEach(item => {
item.calFactorLst.map((i) => {
if (i.code == 'dutyGroup') {
if(i.rules && i.rules.length != 0) {
i.rules.forEach(ii=>{
if(ii.duty != '311507' && ii.necess){
dutyItem.defaultDutyAmt = ii.defaultDutyAmt
}
})
}
}
})
})
}
}
this.valiAndSend(dutyItem, productIndex)
},
valiAndSend(dutyItem, productIndex) {
@@ -1233,31 +1218,15 @@ export default {
focusStep() {
this.nextStepFlag = true
},
blurStep(dutyItem, productIndex, productCode) {
blurStep(dutyItem, productIndex) {
this.nextStepFlag = false
//失去焦点时做验证
if (dutyItem.necess) {
//勾选时才做验证
this.valiAndSend(dutyItem, productIndex)
}
if(productCode == 'GFRS_M0077'){
this.chooseProducts.forEach(item => {
if (item.mainRiskCode == 'GFRS_M0077') {
item.calFactorLst.map((i) => {
if (i.code == 'dutyGroup') {
if(i.rules && i.rules.length != 0) {
i.rules.forEach(ii=>{
if(ii.duty == '311507' && ii.necess){
ii.defaultDutyAmt = dutyItem.defaultDutyAmt
}
})
}
}
})
}
})
}
},
//失去焦点时做验证
if (dutyItem.necess) {
//勾选时才做验证
this.valiAndSend(dutyItem, productIndex)
}
},
//险种GFRS_M0016\GFRS_M0070的责任的验证规则
valiDuty(value, duty) {
if (this.mainRiskCode === 'GFRS_M0016') {
@@ -2852,7 +2821,7 @@ export default {
this.trialInfos[index].amt = this.trialList[index].amt
}
// GFRS_A0009,GFRS_A0010 这两款时,责任保额不相加
if(item.productCode == 'GFRS_A0009' || item.productCode == 'GFRS_A0010' || item.productCode == 'GFRS_A0013'|| item.productCode == 'GFRS_A0014' || item.productCode == 'GFRS_M0077'){
if(item.productCode == 'GFRS_A0009' || item.productCode == 'GFRS_A0010' || item.productCode == 'GFRS_A0013'|| item.productCode == 'GFRS_A0014'){
this.trialInfos[index].amt = this.trialList[index].duty[0].amt
}
// GFRS_A0011-附加两全 属于非豁免险 但附加两全保额=主险年交保费+其他不带豁免责任的长期期交附加险年交保费

View File

@@ -543,6 +543,7 @@ export default {
} else if (this.$route.query.proposalOrderNo) {
thismyurl = '?proposalOrderNo=' + this.$route.query.proposalOrderNo
}
// this.$router.push({ path: '/common/calculatePremium' + thismyurl })
this.$jump({
flag: 'h5',
extra: {

View File

@@ -105,17 +105,6 @@
</div>
</div>
</van-dialog>
<van-dialog v-model="thisdoubledialogshow" :showConfirmButton="false">
<div slot="title">
<p style="color: #E9332E;">提示</p>
</div>
<div style="padding: 20px 30px 30px;font-size: 14px;">
<div style="line-height: 25px;">根据监管要求本单需要您配合对销售过程进行录音录像</div>
</div>
<div style="text-align: center;">
<van-button type="danger" block style="font-size: 14px;" @click="thisdoubledialogfunc">确定</van-button>
</div>
</van-dialog>
<div>
<van-submit-bar button-text="下一步" @submit="nextStep" :disabled="nextStepFlag">
<div class="fs15 ml15 fwb" style="flex:1" slot="default">
@@ -133,7 +122,7 @@ import FieldPicker from '@/components/ebiz/FieldPicker'
import { orderDetail, deleteOrderInfo, mainRiskList, mainRiskListProposal, calculatePremium } from '@/api/ebiz/common/common'
import { formatAllRisk } from '@/assets/js/utils/formatRiskList'
import { getDetail, deleteProposal } from '@/api/ebiz/proposal/proposal.js'
import { saveOrderActiveType,getActivityList, getDoubleRecordProductLst } from '@/api/ebiz/sale/sale.js'
import { saveOrderActiveType,getActivityList } from '@/api/ebiz/sale/sale.js'
import utilsAge from '@/assets/js/utils/age'
import IndexBar from '@/components/ebiz/sale/IndexBar'
import riskRules from './risk-rules'
@@ -142,7 +131,6 @@ export default {
name: 'selectedProduct',
data() {
return {
thisdoubledialogshow: false,
chooseProducts: [],
total: 0,
nextStepFlag: true,
@@ -160,7 +148,6 @@ export default {
noCheckedUrl: require('@/assets/images/kmh/no_checked.png'),
proposalOrderNo:'',
renovate:'',//刷新子组件
manageComCode:'',//代理人管理机构 52贵州 45广西
isCrossChannel: 0, // 是否选择交叉渠道列表 0-否 1-是
}
},
@@ -174,7 +161,7 @@ export default {
[Radio.name]: Radio,
[Image.name]: Image
},
async mounted() {
mounted() {
this.$jump({
flag: 'navigation',
extra: {
@@ -220,9 +207,6 @@ export default {
window.appCallBack = this.appCallBack
document.body.style.backgroundColor = '#fff'
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.manageComCode = dataReturn.manageComCode
this.getProductList()
if (!this.$route.query.edit) {
//如果不是编辑/导航条跳转进来的
@@ -351,11 +335,7 @@ export default {
if (resultData.result == 0) {
if( resultData.orderDTO ) {
//判断是否显示风险测评tab
let updateAnswerType = resultData.orderDTO.riskEvaluationDTO.isShowEvaluationPoint =='1'?true:false
this.$store.commit('updateAnswerType', updateAnswerType )
// console.log(updateAnswerType,'updateAnswerType');
this.renovate = new Date().getTime()
this.renovate = new Date().getTime()
}
let riskDTOLst
if (isProposal) {
@@ -774,41 +754,21 @@ export default {
}
})
} else {
let showFlag = false
if (this.manageComCode == '52') {
this.chooseProducts.map(item => {
if (item.insuYearFlag == 'A' || (item.insuYearFlag == 'Y' && item.insuYear != '1')) {
showFlag = true
return true
}
})
if(!showFlag){
let doubleRecordRes = await getDoubleRecordProductLst({})
if(doubleRecordRes.result == 0){
if(doubleRecordRes.content && doubleRecordRes.content.length != 0){
doubleRecordRes.content.forEach(items=>{
this.chooseProducts.map(item => {
if (item.riskCode == items ) {
showFlag = true
return true
}
})
})
}
}
}
}
let showFlag = this.showTipForDoubleRecord()
if (showFlag) {
this.thisdoubledialogshow = true
this.$dialog
.alert({
message: '年龄≥60周岁投保人如果投保一年期以上产品请根据监管要求对销售过程进行录音录像',
confirmButtonColor: '#000000'
})
.then(() => {
this.nextPageShow()
})
} else {
this.nextPageShow()
}
}
},
thisdoubledialogfunc(){
this.thisdoubledialogshow = false
this.nextPageShow()
},
//添加产品
async addProduct() {
// 1、处理判断活动 1、电投流程 2、后端接口提供弹出判断
@@ -942,11 +902,11 @@ export default {
}
})
},
async showTipForDoubleRecord() {
showTipForDoubleRecord() {
//判断投保人年龄是否大于等于60岁
let showFlag = false
let age = this.appntDTO.birthday?utilsAge.getAge(this.appntDTO.birthday, new Date()):this.appntDTO.age
if (this.manageComCode == '52') {
if (age >= 60) {
this.chooseProducts.map(item => {
if (item.insuYearFlag == 'A' || (item.insuYearFlag == 'Y' && item.insuYear != '1')) {
showFlag = true
@@ -954,21 +914,6 @@ export default {
}
})
}
if(showFlag){
let doubleRecordRes = await getDoubleRecordProductLst({})
if(doubleRecordRes.result == 0){
if(doubleRecordRes.content && doubleRecordRes.content.length != 0){
doubleRecordRes.content.forEach(items=>{
this.chooseProducts.map(item => {
if (item.riskCode == items ) {
showFlag = true
return true
}
})
})
}
}
}
return showFlag
},
nextPageShow() {

View File

@@ -194,7 +194,6 @@ export default {
getAgentInfo({}).then(
res => {
if (res.result == 0) {
flag.jobNo = res.jobNo //登录账号
flag.manageComCode = res.manageComCode.substring(2, 4)
flag.jobNo = res.jobNo
// branchType N1、1代表个险渠道 和 N5、5 代表中介渠道N代表内勤

View File

@@ -28,7 +28,7 @@
</template>
<script>
import { Field, CellGroup, Cell, RadioGroup, Radio, } from 'vant'
import { Field, CellGroup, Cell } from 'vant'
import { updateCustomerInfo } from '@/api/ebiz/customer/customer'
import formBlock from '@/components/ebiz/customer/formBlock'
@@ -84,9 +84,7 @@ export default {
homeArea: '', //家庭区
homeAddress: '', //家庭详细地址
homeZip: '', //家庭邮编
homePhone: '', //家庭电话
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
homePhone: '' //家庭电话
}
}
},
@@ -189,9 +187,7 @@ export default {
familyAnnualIncome: $this.userInfo.familyAnnualIncome,
province: $this.userInfo.province,
city: $this.userInfo.city,
homePhone: $this.userInfo.homePhone,
isNewPeopleFlag: $this.userInfo.isNewPeopleFlag,
npType: $this.userInfo.npType,
homePhone: $this.userInfo.homePhone
}
}
switch (data.agentCustomerInfoDTO.companyArea) {

View File

@@ -95,9 +95,7 @@ export default {
homeArea: '', //家庭区
homeAddress: '', //家庭详细地址
homeZip: '', //家庭邮编
homePhone: '', //家庭电话
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
homePhone: '' //家庭电话
}
}
},
@@ -180,8 +178,6 @@ export default {
$this.userInfo.homeProvince = result.homeProvince
$this.userInfo.homeCity = result.homeCity
$this.userInfo.homeArea = result.homeArea
$this.userInfo.isNewPeopleFlag = result.isNewPeopleFlag
$this.userInfo.npType = result.npType
sessionStorage.setItem('birthday', result.birthday)
sessionStorage.setItem('idType', result.customerIdType)
@@ -345,9 +341,7 @@ export default {
familyAnnualIncome: $this.userInfo.familyAnnualIncome,
province: $this.userInfo.province,
city: $this.userInfo.city,
homePhone: $this.userInfo.homePhone,
isNewPeopleFlag: $this.userInfo.isNewPeopleFlag,
npType: $this.userInfo.npType,
homePhone: $this.userInfo.homePhone
}
}
switch (data.agentCustomerInfoDTO.companyArea) {

View File

@@ -37,7 +37,7 @@
@click='imagePreviewFunc(item.singleNode.PicUrl)' />
</template>
<template v-else-if='item.singleNode.isRichText == 3'>
<a :href="item.singleNode.answerMsg" style="cursor:pointer">{{ item.singleNode.answerMsg }}</a>
<a :href='item.singleNode.answerMsg'>{{ item.singleNode.answerMsg }}</a>
</template>
</div>
</div>

View File

@@ -29,7 +29,6 @@ export default {
},
methods: {
async init() {
//获取当时时间
this.date = utils.formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss')
const result = await getMapDataList({})
if (result.result === '0') {

View File

@@ -595,9 +595,8 @@ export default {
})
})
this.setInsuredCustomerMarriage(this.insuredPersonInfo.marriage)
//是否长期
this.insuredPersonInfo.effectiveDateType = this.insuredPersonInfo.effectiveDateType == 'true' ? true : false
//被保人证件类型如果是身份证时证件截止日期证件截止日期应为第16周岁的生日日期。
//被保人证件类型如果是户口本时证件截止日期证件截止日期应为第16周岁的生日日期。
if(this.insuredPersonInfo.idType == '2' && idToData(this.insuredPersonInfo.idNo).age <16){
// 获取出生日期年份16
let year = Number(this.insuredPersonInfo.birthday.substr(0,4)) + 16
@@ -609,6 +608,9 @@ export default {
}else{
this.insuredPersonInfo.certiexpiredate = year+'-'+ this.insuredPersonInfo.birthday.substr(5,5)
}
}else{
//是否长期
this.insuredPersonInfo.effectiveDateType = this.insuredPersonInfo.effectiveDateType == 'true' ? true : false
}
if (this.insuredPersonInfo.homeProvince.length) {
this.insuredHomeName = getAreaName([

View File

@@ -338,7 +338,7 @@ export default {
}
submit(data).then(res => {
if (res.result == '0') {
if (res.reslut == '0') {
this.$toast.clear()
window.localStorage.setItem('submitStatus', res.result)
this.$jump({

View File

@@ -29,7 +29,7 @@
<img id='poster_main-image' src='' class='poster_main-image' style='display: none' />
<div class='bottom_btn'>
<van-button class='share-posters' type='default' @click='shareFunc()' v-no-more-click="1000">分享</van-button>
<van-button class='download-posters' type='default' :style="{color:posterCanvasObj.fontColor,background:'linear-gradient(135deg, '+posterCanvasObj.lightColor+' 0%, '+posterCanvasObj.darkColor+' 100%)'}" @click='downLoadImagesFunc()' v-no-more-click="1000">下载</van-button>
<van-button class='download-posters' type='default' @click='downLoadImagesFunc()' v-no-more-click="1000">下载</van-button>
</div>
</div>
<canvas id='canvas' width='750' height='1271' style='display: none'></canvas>
@@ -71,11 +71,7 @@ export default {
crownLevelImg: '', // 冠级图片地址
memberGradeImg: '', // 会员级别图片地址
imageUrl: '', // canvas绘图后生产的base64格式的图片链接地址
downLoadUrl: '', // 下载图片的链接地址
fontColor:'', //字体颜色色号
lightColor:'',//按钮渐变颜色浅色色号
darkColor:'', //按钮渐变颜色深色色号
nameColor:'' //地区和名字色值
downLoadUrl: '' // 下载图片的链接地址
}
}
},
@@ -159,14 +155,6 @@ export default {
this.posterCanvasObj.memberGradeImg = res.content.memberGradeUrl
// 展示地区,名称位置的背景图片
this.posterCanvasObj.nameCardImg = res.content.orthogonUrl
// 字体颜色色号
this.posterCanvasObj.fontColor = res.content.fontColor
// 按钮渐变颜色浅色色号
this.posterCanvasObj.lightColor = res.content.lightColor
// 按钮渐变颜色深色色号
this.posterCanvasObj.darkColor = res.content.darkColor
// 地区和名字色值
this.posterCanvasObj.nameColor = res.content.nameColor
// 调用canvas绘制页面的方法
this.getCanvas()
} else {
@@ -234,13 +222,11 @@ export default {
ctx.drawImage(nameCardImg, 210, 800, 328, 74) // 展示地区,名称位置的背景图片
ctx.drawImage(crownLevelImg, 367, 905,50,30) // 冠级
ctx.drawImage(memberGradeImg, 315, 950,140,36) // 会员级别
// ctx.fillStyle = '#ffffff'
ctx.fillStyle = that.posterCanvasObj.nameColor
ctx.fillStyle = '#ffffff'
ctx.font = 'lighter 32px PingFangSC-Light, PingFang SC'
ctx.textAlign = 'center'
ctx.fillText(that.posterCanvasObj.managerComName, 320, 848) // 地区名称(南宁青秀)
// ctx.fillStyle = '#ffffff'
ctx.fillStyle = that.posterCanvasObj.nameColor
ctx.fillStyle = '#ffffff'
ctx.font = '32px SourceHanSerifCN-SemiBold'
ctx.textAlign = 'center'
ctx.fillText(that.posterCanvasObj.name, 450, 848) // 名字(张洋溢)
@@ -431,11 +417,13 @@ export default {
font-size: 17px;
font-family: PingFangSC-Medium, PingFang SC;
letter-spacing: 1px;
// color: #FFFFFF;
color: #FFFFFF;
border-radius: 0px;
// border: 1px solid #FFE97C;
// background: linear-gradient(135deg, #DD1818 0%, #910A0A 100%);
background: linear-gradient(135deg, #DD1818 0%, #910A0A 100%);
}
}
}
</style>

View File

@@ -52,7 +52,7 @@ export default {
// 选择时间模块使用到的数据对象
datePickerObj: {
filterDate: '', // 当前的时间(年月)
maxDate: new Date('2022-08'), // 可以选择的最大时间
maxDate: new Date(), // 可以选择的最大时间
minDate: new Date('2022-06') // 可以选择的最小时间
}
}
@@ -79,7 +79,7 @@ export default {
* @Date:2021-08-25
*/
getCurrentDateFunc() {
let date = new Date('2022-08')
let date = new Date()
let year = date.getFullYear()
let month = (date.getMonth() + 1) <= 9 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
return year + '-' + month

View File

@@ -608,7 +608,6 @@ export default {
/deep/.van-popup--center {
position: fixed;
width: 80%;
height: 80%;
border-radius: 8px;
background-color: #142162;

View File

@@ -48,12 +48,12 @@ export default {
base64: '', // 分享的base64
imgPath: '',
isShow: false,
isShareLimit:'',
shareLimitDesc:'',
showBut:false,
showDialog: false,
schoolName:"",
className:"",
isShareLimit:'',
shareLimitDesc:'',
redisKey:''
}
},
@@ -116,11 +116,11 @@ export default {
this.$toast.clear()
if (res.result == 0) {
this.posterInfo = res.infoDTOList[0]
this.isShareLimit =res.isShareLimit
this.shareLimitDesc=res.shareLimitDesc
if(res.infoDTOList[0].isLearn=='0'){
this.showBut=true;
}
this.isShareLimit =res.isShareLimit
this.shareLimitDesc=res.shareLimitDesc
resolve()
} else {
reject()
@@ -179,15 +179,11 @@ export default {
if (this.posterType == 'product') {
params.redisKey = this.redisKey
shareUrlWithQR(params).then(res => {
window.localStorage.removeItem('schoolName')
window.localStorage.removeItem('className')
this.$toast.clear()
if (res.result == 0) {
this.imgUrl = config.imgDomain + `/returnImageStream?a=`+Math.random()*100+`.jpg&imgPath=${res.content.path}`
this.imgPath = res.content.path
this.isShow = true
console.log('created生成图片url');
console.log(this.imgUrl);
// this.getBase64(this.imgUrl)
resolve()
} else {
@@ -196,11 +192,9 @@ export default {
})
} else {
shareUrl(params).then(res => {
window.localStorage.removeItem('schoolName')
window.localStorage.removeItem('className')
this.$toast.clear()
if (res.result == 0) {
this.imgUrl = config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${res.content.path}`
this.imgUrl = config.imgDomain + `/returnImageStream?a=`+Math.random()*100+`.jpg&imgPath=${res.content.path}`
this.imgPath = res.content.path
this.isShow = true
// this.getBase64(this.imgUrl)
@@ -210,7 +204,8 @@ export default {
}
})
}
window.localStorage.removeItem('schoolName')
window.localStorage.removeItem('className')
})
},
// 获取base64
@@ -279,10 +274,8 @@ export default {
window.localStorage.setItem('className', this.className)
this.schoolName="";
this.className="";
console.log('确认提交生成图片url');
console.log(this.imgUrl);
resolve()
window.location.reload();
location.reload();
} else {
reject()
}

View File

@@ -37,10 +37,10 @@ export default {
990000: '境外'
},
city_list: {
110100: '北京市',
110200: '北京市',
120100: '天津市',
120200: '天津市',
110100: '辖区',
110200: '辖县',
120100: '辖区',
120200: '辖县',
130100: '石家庄市',
130200: '唐山市',
130300: '秦皇岛市',
@@ -111,8 +111,8 @@ export default {
231100: '黑河市',
231200: '绥化市',
232700: '大兴安岭地区',
310100: '上海市',
310200: '上海市',
310100: '辖区',
310200: '辖县',
320100: '南京市',
320200: '无锡市',
320300: '徐州市',
@@ -275,9 +275,9 @@ export default {
460100: '海口市',
460200: '三亚市',
469000: '省直辖县级行政单位',
500100: '重庆市',
500200: '重庆市',
// 500300: '辖市',
500100: '辖区',
500200: '辖县',
500300: '辖市',
510100: '成都市',
510300: '自贡市',
510400: '攀枝花市',
@@ -409,7 +409,7 @@ export default {
712100: '台东县',
712200: '花莲县',
712300: '澎湖县',
810100: '香港特别行政区',
810100: '市辖区',
820100: '澳门',
999900: '境外'
},
@@ -2501,20 +2501,18 @@ export default {
441827: '清新县',
441881: '英德市',
441882: '连州市',
441900: '东莞市',
441901: '市辖区',
441902: '万江区',
441903: '莞城区',
441904: '南城区',
441905: '东城区',
// 441910: '东莞市',
442000: '中山市',
441910: '东莞市',
442001: '市辖区',
442002: '石歧区',
442003: '东区',
442004: '西区',
442005: '南区',
// 442010: '中山市',
442010: '中山市',
445101: '市辖区',
445102: '湘桥区',
445121: '潮安县',
@@ -2669,10 +2667,9 @@ export default {
460107: '琼山区',
460108: '美兰区',
460201: '市辖区',
460400: '儋州市',
469001: '五指山市',
469002: '琼海市',
// 469003: '儋州市',
469003: '儋州市',
469005: '文昌市',
469006: '万宁市',
469007: '东方市',
@@ -2729,10 +2726,10 @@ export default {
500241: '秀山土家族苗族自治县',
500242: '酉阳土家族苗族自治县',
500243: '彭水苗族土家族自治县',
// 500381: '江津市',
// 500382: '合川市',
// 500383: '永川市',
// 500384: '南川市',
500381: '江津市',
500382: '合川市',
500383: '永川市',
500384: '南川市',
510101: '市辖区',
510104: '锦江区',
510105: '青羊区',
@@ -3373,7 +3370,6 @@ export default {
620121: '永登县',
620122: '皋兰县',
620123: '榆中县',
620200: '嘉峪关市',
620201: '市辖区',
620301: '市辖区',
620302: '金川区',

View File

@@ -42,7 +42,7 @@
v-validate="'required'"
placeholder="投保人职业"
/>
<van-field :border="false" maxlength="11" v-model="appntDTO.mobile" clearable label="手机号码" name="手机号码" placeholder="投保人手机号码" v-validate="'mobileLength11|mobileStartWith1|mobile'" />
<van-field :border="false" v-model="appntDTO.mobile" clearable label="手机号码" name="手机号码" placeholder="投保人手机号码" v-validate="'mobile'" />
<van-button type="danger" @click="nextStep" class="bottom-btn fs16">下一步</van-button>
</van-cell-group>
</div>
@@ -310,9 +310,9 @@ export default {
if(this.appntDTO.name == name){
this.appntDTO.name = ''
}
let ageRule = /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/
let ageRule = /^[a-zA-Z0-9\.\s\u4e00-\u9fa5]{2,120}$/
if (this.appntDTO.name && !ageRule.test(this.appntDTO.name)) {
return Toast.fail('姓名长度为2-120个字符之内只能输入汉字或者英文')
return Toast.fail('姓名长度为2-120个字符之内只能输入汉字、数字或者英文')
}
this.appntDTO.age = String(this.appntDTO.age)
this.$validator.validate().then(valid => {

View File

@@ -52,14 +52,13 @@
/>
<select-radio class="border-bottom" :radios="medicalRadio" label="有无社保" :value.sync="insured.medical"></select-radio>
<van-field
maxlength="11"
v-model="insured.mobile"
:readonly="disabled"
clearable
label="手机号码"
name="手机号码"
placeholder="被保险人手机号码"
v-validate="'mobileLength11|mobileStartWith1|mobile'"
v-validate="'mobile'"
/>
<van-button type="danger" @click="nextStep" class="bottom-btn fs16">下一步</van-button>
</van-cell-group>

View File

@@ -10,14 +10,14 @@
</van-sticky>
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
<van-list
v-model="loading"
:immediate-check="false"
:finished="finished"
:finished-text="finishedText"
error-text="请求失败点击重新加载"
:error.sync="error"
@load="loadMore"
class="pb45"
v-model="loading"
:immediate-check="false"
:finished="finished"
:finished-text="finishedText"
error-text="请求失败点击重新加载"
:error.sync="error"
@load="loadMore"
class="pb45"
>
<div v-if="isSuccess">
<div v-if="proposalList.length > 0">
@@ -85,332 +85,331 @@
</template>
<script>
import { Tabs, Tab, Tag, Dialog, List, Sticky, Toast,PullRefresh } from 'vant'
import { getList, toInsurance, deleteProposal,proposalCopy } from '@/api/ebiz/proposal/proposal.js'
import { funcPermCheck } from '@/api/ebiz/common/common'
import { formatRiskList } from '@/assets/js/utils/formatRiskList.js'
import riskRules from '../common/risk-rules.js'
import CheckAgent from '@/components/common/CheckAgent'
import { Tabs, Tab, Tag, Dialog, List, Sticky, Toast,PullRefresh } from 'vant'
import { getList, toInsurance, deleteProposal,proposalCopy } from '@/api/ebiz/proposal/proposal.js'
import { funcPermCheck } from '@/api/ebiz/common/common'
import { formatRiskList } from '@/assets/js/utils/formatRiskList.js'
import riskRules from '../common/risk-rules.js'
import CheckAgent from '@/components/common/CheckAgent'
export default {
name: 'proposalList',
components: {
[CheckAgent.name]: CheckAgent,
[Tabs.name]: Tabs,
[Tab.name]: Tab,
[Tag.name]: Tag,
[List.name]: List,
[Sticky.name]: Sticky,
[PullRefresh.name]: PullRefresh
},
data() {
return {
isCheck: 0, //查看是否有权限
active: 1,
proposalList: [],
finishedText: '没有更多了',
finished: false,
error: false,
loading: false,
pageSize: 5, //每页数据条数
morePage: 1, // 当前页数
isSuccess: false,
refreshing:false //下拉刷新
}
},
created() {
this.$CacheUtils.removeLocItem('proposalNo')
this.$CacheUtils.removeLocItem('canMoveOn')
this.$CacheUtils.removeLocItem('orderNo')
funcPermCheck({}).then(res => {
this.isCheck = res.result
})
},
mounted() {
this.$jump({
flag: 'navigation',
extra: {
title: '建议书列表',
hiddenRight: '1'
}
})
},
methods: {
initThisPage(showFlag) {
if (showFlag) {
return
}
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
}, 100)
window.appCallBack = this.appCallBack
this.loadMore()
export default {
name: 'proposalList',
components: {
[CheckAgent.name]: CheckAgent,
[Tabs.name]: Tabs,
[Tab.name]: Tab,
[Tag.name]: Tag,
[List.name]: List,
[Sticky.name]: Sticky,
[PullRefresh.name]: PullRefresh
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
this.$jump({
flag: 'home',
extra: {}
})
data() {
return {
isCheck: 0, //查看是否有权限
active: 1,
proposalList: [],
finishedText: '没有更多了',
finished: false,
error: false,
loading: false,
pageSize: 5, //每页数据条数
morePage: 1, // 当前页数
isSuccess: false,
refreshing:false //下拉刷新
}
},
//获取建议书列表
getProposalList(tabType, pageInfo) {
let status = '0' + tabType
let request = {
proposalInfoDTO: {
status
},
pageInfo
}
getList(request).then(res => {
if (res.result == '0') {
this.isSuccess = true
let content = res.content
this.morePage++
let list = content.list
if (list.length == 0) {
this.finishedText = ''
} else {
this.finishedText = '已经全部加载'
}
list = formatRiskList(list, 'insuredDTOs', 'riskDTOLst') //格式化数据为本地显示结果
this.proposalList = this.proposalList.concat(list)
this.proposalList.forEach(item => {
// 建议书投保人/被保人姓名不必填, 填写姓名时展示姓名(落库),不填写姓名时展示性别+年龄,如:男30岁(不落库)
if(!item.appntDTO.name){
let sexAppnt = item.appntDTO.sex == '0'?'男':'女'
item.appntDTO.name = sexAppnt + item.appntDTO.age+'岁'
}
if(item.insuredDTOs.length){
item.insuredDTOs.forEach(item01 => {
if(!item01.name){
let sex = item01.sex == '0'?'男':'女'
item01.name = sex + item01.insuredAge+'岁'
}
})
}
})
if (this.proposalList.length == 0) {
this.isSuccess = false
}
this.loading = false
if (content.nextPage == 0) {
//当下一页为0时 表示全部数据加载完毕
this.finished = true
}
this.refreshing = false
} else {
this.refreshing = true
this.finished = true
this.loading = false
this.finishedText = res.resultMessage
}
created() {
this.$CacheUtils.removeLocItem('proposalNo')
this.$CacheUtils.removeLocItem('canMoveOn')
this.$CacheUtils.removeLocItem('orderNo')
funcPermCheck({}).then(res => {
this.isCheck = res.result
})
},
loadMore() {
let pageInfo = {
pageNum: this.morePage,
pageSize: this.pageSize
}
let active = this.active
this.getProposalList(active, pageInfo)
},
//下拉刷新
onRefresh() {
console.log(111111111111111)
this.finished = false // 不写这句会导致你上拉到底过后在下拉刷新将不能触发下拉加载事件
let pageInfo = {
pageNum: 1,
pageSize: this.pageSize
}
let active = this.active
this.proposalList = []
this.getProposalList(active, pageInfo) // 加载数据
},
tabChange(index) {
this.morePage = 1
this.active = index
this.proposalList = []
;[this.loading, this.finished] = [true, false]
this.finishedText = '正在加载...'
this.loadMore()
},
//删除建议书
deleteProposal(item) {
let params = {
orderDTO: {
orderInfoDTO: {
orderNo: item.orderInfoDTO.orderNo
}
},
type: '1'
}
Dialog.confirm({
className: 'dialog-delete',
title: '提示',
message: '确认删除建议书?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
deleteProposal(params).then(res => {
if (res.result == '0') {
this.proposalList = []
this.morePage = 1
;[this.loading, this.finished] = [true, false]
this.loadMore()
}
})
})
.catch(() => {})
},
//点我新增
addProposal() {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
mounted() {
this.$jump({
flag: 'h5',
flag: 'navigation',
extra: {
url: location.origin + '/#/proposal/appnt'
},
routerInfo: {
path: '/proposal/appnt'
title: '建议书列表',
hiddenRight: '1'
}
})
},
//编辑
edit(item) {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
//建议书列表 编辑=》制作中的建议书跳转到选择被保险人页面;
this.$CacheUtils.setLocItem('proposalNo', item.orderInfoDTO.orderNo)
this.$CacheUtils.setLocItem('canMoveOn', 1)
let url = `/proposal/chooseInsuredPerson?proposalOrderNo=${item.orderInfoDTO.orderNo}`
this.$router.push({ path: url })
// this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + `/#${url}`,
// needRefresh: '1'
// },
// routerInfo: {
// path: url
// }
// })
},
//拷贝
copy(item) {
//建议书列表 编辑=》制作中的建议书跳转到选择被保险人页面;
this.$CacheUtils.setLocItem('canMoveOn', 1)
let params = {
orderNo:item.orderInfoDTO.orderNo
}
proposalCopy(params).then(res => {
if (res.result == '0') {
this.$CacheUtils.setLocItem('proposalNo', res.content)
let url = `/proposal/appnt?proposalOrderNo=${res.content}`
this.$router.push({ path: url })
methods: {
initThisPage(showFlag) {
if (showFlag) {
return
}
})
// this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + `/#${url}`,
// needRefresh: '1'
// },
// routerInfo: {
// path: url
// }
// })
},
//预览 跳转至利益演示
preview(item) {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
this.$CacheUtils.setLocItem('proposalNo', item.orderInfoDTO.orderNo)
//新增 解决直接点击预览报错问题
localStorage.mainRiskCode = item.insuredDTOs[0].mainRisk[0].mainRiskCode
let url = `/proposal/proposalInfo?proposalOrderNo=${item.orderInfoDTO.orderNo}`
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#${url}`,
},
routerInfo: {
path: url
}
})
},
//转投保
async toInsurance(item) {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
if (this.isCheck == '1') {
//校验该代理人是否有该产品的售卖权限
return this.$toast('您暂无使用权限!如有问题咨询,请联系个险业务部。')
}
if (item.insuredDTOs[0].mainRisk.length === 2) {
let prodCodes = item.insuredDTOs[0].riskDTOLst
let prd26 = prodCodes.some(item => {
return item.riskCode === 'GFRS_M0026'
})
let prd17 = prodCodes.some(item => {
return item.riskCode === 'GFRS_M0017'
})
// 如果选择的产品不是GFRS_M0026&GFRS_M0017弹出提示
if (!(prd26 && prd17)) {
return Toast.fail('暂不支持组合产品转投保')
}
}
let permissionRiskCode
let flag = item.insuredDTOs[0].riskDTOLst.some(v => {
permissionRiskCode = v.riskCode
return v.riskCode == 'GFRS_M0024' || v.riskCode == 'GFRS_M0040' || v.riskCode == 'GFRS_M0044'
})
let flagPermission = await riskRules.getProductSellPermissionList(permissionRiskCode, this)
if (flag && flagPermission.flag) {
return this.$toast(flagPermission.resultMessage)
}
// let flag = item.insuredDTOs[0].riskDTOLst.some(v => {
// return v.riskCode == 'GFRS_M0024' //桂企单独调用check
// })
let params = {
proposalInfoDTO: {
proposalNo: item.orderInfoDTO.orderNo
}
}
toInsurance(params).then(res => {
if (res.result == '0') {
localStorage.chooseProductCodes = ''
this.$CacheUtils.setLocItem('orderNo', res.content.orderNo)
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
}, 100)
window.appCallBack = this.appCallBack
this.loadMore()
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/insuredInfo?edit=1&orderNo=' + res.content.orderNo,
backToFirst: '1'
},
routerInfo: {
path: '/sale/insuredInfo?edit=1&orderNo=' + res.content.orderNo
}
flag: 'home',
extra: {}
})
} else {
Toast.fail(res.resultMessage)
}
})
},
//获取建议书列表
getProposalList(tabType, pageInfo) {
let status = '0' + tabType
let request = {
proposalInfoDTO: {
status
},
pageInfo
}
getList(request).then(res => {
if (res.result == '0') {
this.isSuccess = true
let content = res.content
this.morePage++
let list = content.list
if (list.length == 0) {
this.finishedText = ''
} else {
this.finishedText = '已经全部加载'
}
list = formatRiskList(list, 'insuredDTOs', 'riskDTOLst') //格式化数据为本地显示结果
this.proposalList = this.proposalList.concat(list)
this.proposalList.forEach(item => {
// 建议书投保人/被保人姓名不必填, 填写姓名时展示姓名(落库),不填写姓名时展示性别+年龄,如:男30岁(不落库)
if(!item.appntDTO.name){
let sexAppnt = item.appntDTO.sex == '0'?'男':'女'
item.appntDTO.name = sexAppnt + item.appntDTO.age+'岁'
}
if(item.insuredDTOs.length){
item.insuredDTOs.forEach(item01 => {
if(!item01.name){
let sex = item01.sex == '0'?'男':'女'
item01.name = sex + item01.insuredAge+'岁'
}
})
}
})
if (this.proposalList.length == 0) {
this.isSuccess = false
}
this.loading = false
if (content.nextPage == 0) {
//当下一页为0时 表示全部数据加载完毕
this.finished = true
}
this.refreshing = false
} else {
this.refreshing = true
this.finished = true
this.loading = false
this.finishedText = res.resultMessage
}
})
},
loadMore() {
let pageInfo = {
pageNum: this.morePage,
pageSize: this.pageSize
}
let active = this.active
this.getProposalList(active, pageInfo)
},
//下拉刷新
onRefresh() {
console.log(111111111111111)
this.finished = false // 不写这句会导致你上拉到底过后在下拉刷新将不能触发下拉加载事件
let pageInfo = {
pageNum: 1,
pageSize: this.pageSize
}
let active = this.active
this.proposalList = []
this.getProposalList(active, pageInfo) // 加载数据
},
tabChange(index) {
this.morePage = 1
this.active = index
this.proposalList = []
;[this.loading, this.finished] = [true, false]
this.finishedText = '正在加载...'
this.loadMore()
},
//删除建议书
deleteProposal(item) {
let params = {
orderDTO: {
orderInfoDTO: {
orderNo: item.orderInfoDTO.orderNo
}
},
type: '1'
}
Dialog.confirm({
className: 'dialog-delete',
title: '提示',
message: '确认删除建议书?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
deleteProposal(params).then(res => {
if (res.result == '0') {
this.proposalList = []
this.morePage = 1
;[this.loading, this.finished] = [true, false]
this.loadMore()
}
})
})
.catch(() => {})
},
//点我新增
addProposal() {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/proposal/appnt'
},
routerInfo: {
path: '/proposal/appnt'
}
})
},
//编辑
edit(item) {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
//建议书列表 编辑=》制作中的建议书跳转到选择被保险人页面;
this.$CacheUtils.setLocItem('proposalNo', item.orderInfoDTO.orderNo)
this.$CacheUtils.setLocItem('canMoveOn', 1)
let url = `/proposal/chooseInsuredPerson?proposalOrderNo=${item.orderInfoDTO.orderNo}`
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#${url}`,
needRefresh: '1'
},
routerInfo: {
path: url
}
})
},
//拷贝
copy(item) {
//建议书列表 编辑=》制作中的建议书跳转到选择被保险人页面;
this.$CacheUtils.setLocItem('canMoveOn', 1)
let params = {
orderNo:item.orderInfoDTO.orderNo
}
proposalCopy(params).then(res => {
if (res.result == '0') {
this.$CacheUtils.setLocItem('proposalNo', res.content)
let url = `/proposal/appnt?proposalOrderNo=${res.content}`
this.$router.push({ path: url })
}
})
// this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + `/#${url}`,
// needRefresh: '1'
// },
// routerInfo: {
// path: url
// }
// })
},
//预览 跳转至利益演示
preview(item) {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
this.$CacheUtils.setLocItem('proposalNo', item.orderInfoDTO.orderNo)
//新增 解决直接点击预览报错问题
localStorage.mainRiskCode = item.insuredDTOs[0].mainRisk[0].mainRiskCode
let url = `/proposal/proposalInfo?proposalOrderNo=${item.orderInfoDTO.orderNo}`
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#${url}`,
},
routerInfo: {
path: url
}
})
},
//转投保
async toInsurance(item) {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
if (this.isCheck == '1') {
//校验该代理人是否有该产品的售卖权限
return this.$toast('您暂无使用权限!如有问题咨询,请联系个险业务部。')
}
if (item.insuredDTOs[0].mainRisk.length === 2) {
let prodCodes = item.insuredDTOs[0].riskDTOLst
let prd26 = prodCodes.some(item => {
return item.riskCode === 'GFRS_M0026'
})
let prd17 = prodCodes.some(item => {
return item.riskCode === 'GFRS_M0017'
})
// 如果选择的产品不是GFRS_M0026&GFRS_M0017弹出提示
if (!(prd26 && prd17)) {
return Toast.fail('暂不支持组合产品转投保')
}
}
let permissionRiskCode
let flag = item.insuredDTOs[0].riskDTOLst.some(v => {
permissionRiskCode = v.riskCode
return v.riskCode == 'GFRS_M0024' || v.riskCode == 'GFRS_M0040' || v.riskCode == 'GFRS_M0044'|| v.riskCode == 'GFRS_M0051'
})
let flagPermission = await riskRules.getProductSellPermissionList(permissionRiskCode, this)
if (flag && flagPermission.flag) {
return this.$toast(flagPermission.resultMessage)
}
// let flag = item.insuredDTOs[0].riskDTOLst.some(v => {
// return v.riskCode == 'GFRS_M0024' //桂企单独调用check
// })
let params = {
proposalInfoDTO: {
proposalNo: item.orderInfoDTO.orderNo
}
}
toInsurance(params).then(res => {
if (res.result == '0') {
localStorage.chooseProductCodes = ''
this.$CacheUtils.setLocItem('orderNo', res.content.orderNo)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/insuredInfo?edit=1&orderNo=' + res.content.orderNo,
backToFirst: '1'
},
routerInfo: {
path: '/sale/insuredInfo?edit=1&orderNo=' + res.content.orderNo
}
})
} else {
Toast.fail(res.resultMessage)
}
})
}
}
}
}
</script>

View File

@@ -470,7 +470,7 @@ export default {
}
},
showDutyDetailExplain(dutyDetailExplain) {
return dutyDetailExplain.replace(/\.00/g, '') + '。'
return dutyDetailExplain.replace(/\.00/, '') + '。'
},
/* 添加定时器 */
timeOut() {

View File

@@ -437,7 +437,7 @@ export default {
if (res.result !== '0') {
this.cardAuthCount++
if(!res.resultMessage){
return this.$toast("银行卡校验失败,请重新填写")
return this.$toast("当前系统繁忙,请重新输入!")
}
return this.$toast(res.resultMessage)
}
@@ -661,10 +661,10 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/answerPage?orderNo=' + this.$route.query.orderNo,
url: location.origin + '/#/sale/answerPage',
},
routerInfo: {
path: '/sale/answerPage?orderNo=' + this.$route.query.orderNo
path: '/sale/answerPage'
}
})
// on close

View File

@@ -1124,11 +1124,11 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/beneficiary?orderNo='+this.$route.query.orderNo,
url: location.origin + '/#/sale/beneficiary?orderNo=' + this.$route.query.orderNo,
needRefresh: '1'
},
routerInfo: {
path: '/sale/beneficiary?orderNo='+this.$route.query.orderNo
path: '/sale/beneficiary?orderNo=' + this.$route.query.orderNo
}
})
} else {

View File

@@ -32,7 +32,7 @@ export default {
// 倒计时时间
number: '',
// 定时器时间
time: '2',
time: '10',
// 定时器名称
timer: null,
isOver: false,
@@ -131,19 +131,13 @@ export default {
},
// 获取签名状态
getOrderDetail() {
openLoading()
let that = this
let data = {
orderNo: that.$route.query.orderNo
}
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
return new Promise((resolve) => {
getOrderDetail1(data).then(res => {
this.$toast.clear()
if (res.result == '0') {
res.orderDTO.ebizSignDTOS.map(item => {
if (item.signType == '0' || item.signType == '2') {

View File

@@ -9,7 +9,7 @@
<van-cell-group>
<van-field required label="银行卡账户" disabled />
</van-cell-group>
<div @click="test('fileListBank', '3', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<div @click="test('fileListBank', '3', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileListBank"
v-model="fileListBank"
@@ -36,7 +36,7 @@
<van-cell-group>
<van-field required :label="item.id == '2' ? `${item.text}户主页` : `${item.text}正面`" disabled />
</van-cell-group>
<div @click="test('fileListIdFront', '1', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)" class="flex align-items-e">
<div @click="test('fileListIdFront', '1', saleInsuredInfo.appntId, saleInsuredInfo.idType)" class="flex align-items-e">
<van-uploader
name="fileListIdFront"
v-model="fileListIdFront"
@@ -50,7 +50,7 @@
<van-cell-group>
<van-field required :label="item.id == '2' ? `${item.text}本人页` : `${item.text}反面`" disabled />
</van-cell-group>
<div @click="test('fileListIdBack', '2', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<div @click="test('fileListIdBack', '2', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileListIdBack"
v-model="fileListIdBack"
@@ -66,7 +66,7 @@
<van-cell-group>
<van-field required :label="`${item.text}头像面`" disabled />
</van-cell-group>
<div @click="test('fileLIstImg', '8', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<div @click="test('fileLIstImg', '8', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileLIstImg"
v-model="fileLIstImg"
@@ -83,7 +83,7 @@
<van-cell-group>
<van-field required label="银行卡正面" disabled />
</van-cell-group>
<div @click="test('fileListBank', '3', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<div @click="test('fileListBank', '3', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileListBank"
v-model="fileListBank"
@@ -97,7 +97,7 @@
<van-cell-group v-if="isNotify">
<van-field label="健康告知异常类资料" disabled />
</van-cell-group>
<div v-if="isNotify" @click="test('fileListNotify', '24', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<div v-if="isNotify" @click="test('fileListNotify', '24', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileListNotify"
v-model="fileListNotify"
@@ -125,7 +125,7 @@
<van-cell-group>
<van-field required :label="item.id == '2' ? `${item.text}户主页` : `${item.text}正面`" disabled />
</van-cell-group>
<div @click="test('fileListIdFrontInsured', '1', '1', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<div @click="test('fileListIdFrontInsured', '1', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<van-uploader
name="fileListIdFrontInsured"
v-model="fileListIdFrontInsured"
@@ -139,7 +139,7 @@
<van-cell-group>
<van-field required :label="item.id == '2' ? `${item.text}本人页` : `${item.text}反面`" disabled />
</van-cell-group>
<div @click="test('fileListIdBackInsured', '2', '1', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<div @click="test('fileListIdBackInsured', '2', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<van-uploader
name="fileListIdBackInsured"
v-model="fileListIdBackInsured"
@@ -155,7 +155,7 @@
<van-cell-group>
<van-field required :label="`${item.text}头像页`" disabled />
</van-cell-group>
<div @click="test('fileLIstImgInsured', '8', '1', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<div @click="test('fileLIstImgInsured', '8', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<van-uploader
name="fileLIstImgInsured"
v-model="fileLIstImgInsured"
@@ -172,7 +172,7 @@
<van-cell-group v-if="isNotifyInsured">
<van-field label="健康告知异常类资料" disabled />
</van-cell-group>
<div v-if="isNotifyInsured" @click="test('fileListNotifyInsured', '24', '1', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<div v-if="isNotifyInsured" @click="test('fileListNotifyInsured', '24', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<van-uploader
name="fileListNotifyInsured"
v-model="fileListNotifyInsured"
@@ -200,7 +200,7 @@
<van-cell-group>
<van-field required :label="item.id == '2' ? `${item01.name}+${item.text}户主页` : `${item01.name}+${item.text}正面`" disabled />
</van-cell-group>
<div @click="test('fileListIdFrontBeneficiary', '1', '3', item01.bnfId, item01.idType, item01.bnfId)">
<div @click="test('fileListIdFrontBeneficiary', '1', item01.bnfId, item01.idType, item01.bnfId)">
<van-uploader
:name="'fileListIdFrontBeneficiary'+index01"
v-model="bnfInfo[index01].fileListIdFrontBeneficiary"
@@ -214,7 +214,7 @@
<van-cell-group>
<van-field required :label="item.id == '2' ? `${item01.name}+${item.text}本人页` : `${item01.name}+${item.text}反面`" disabled />
</van-cell-group>
<div @click="test('fileListIdBackBeneficiary', '2', '3', item01.bnfId, item01.idType, item01.bnfId)">
<div @click="test('fileListIdBackBeneficiary', '2', item01.bnfId, item01.idType, item01.bnfId)">
<van-uploader
:name="'fileListIdBackBeneficiary'+index01"
v-model="bnfInfo[index01].fileListIdBackBeneficiary"
@@ -230,7 +230,7 @@
<van-cell-group>
<van-field required :label="`${item01.name}+${item.text}头像页`" disabled />
</van-cell-group>
<div @click="test('fileLIstImgBeneficiary', '8', '3', item01.bnfId, item01.idType, item01.bnfId)">
<div @click="test('fileLIstImgBeneficiary', '8', item01.bnfId, item01.idType, item01.bnfId)">
<van-uploader
:name="'fileLIstImgBeneficiary'+index01"
v-model="bnfInfo[index01].fileLIstImgBeneficiary"
@@ -265,12 +265,6 @@
>下一步</van-button
>
</div>
<van-dialog v-model="thisdialogshow" title="提示" confirmButtonText="返回修改">
<div style="padding: 20px;font-size: 14px;">
<div style="margin-bottom: 10px;letter-spacing: 1px;color: #E9332E;">校验失败原因</div>
<div v-for="(item,index) in thisdialogcontent" style="margin-bottom: 10px;letter-spacing: 1px;">{{index+1}}{{item}}</div>
</div>
</van-dialog>
</div>
</template>
@@ -286,8 +280,6 @@ import utils from '../../../assets/js/business-common'
export default {
data() {
return {
thisdialogshow: false,
thisdialogcontent: '',
isNotify: false, //是否有异常的健康告知
isNotifyInsured: false,
// 订单号
@@ -360,8 +352,7 @@ export default {
changeCard: localStorage.changeCard,
salePageFlag: '9',
imageType: '',
subBusinessNo: '',
subBusinessType: '',
subBusinessNo: ''
}
},
async created() {
@@ -759,9 +750,8 @@ export default {
}
})
},
test(name, type, subBusinessType, subBusinessNo, id, bnfId) {
test(name, type, subBusinessNo, id, bnfId) {
this.imageType = type
this.subBusinessType = subBusinessType
this.bnfId = bnfId
this.id = id
this.type = name
@@ -839,7 +829,7 @@ export default {
businessType: '',
imageInfoType: that.imageType,
rgssUrl: encodeURI(res.path).replace(/\+/g, '%2B'),
subBusinessType: that.subBusinessType,
subBusinessType: '0',
subBusinessNo: that.subBusinessNo,
fileName: that.imgName,
}
@@ -1025,18 +1015,13 @@ export default {
}
});
},
// 点击下一步
next() {
let that = this
that.list.map((i) => {
delete i.name
})
let nowTime = new Date().getTime()
let localTime = window.localStorage.getItem('serrorTime')
if(nowTime - localTime < 20000){
this.$toast('您操作过于频繁请20S后再试')
return false
}
let data = {
orderDTO: {
orderInfoDTO: {
@@ -1081,21 +1066,12 @@ export default {
},
})
} else {
let thisTime = new Date().getTime()
window.localStorage.setItem('serrorTime',thisTime)
if (res.resultMessage.indexOf('Engine') != -1) {
this.thisdialogshow = true
// let thisdialogcontent = '【Engine】投保人电子邮箱已被其他投保人使用哦请确认并重新录入如有疑问请拨打4006946688进行咨询【Engine】被保人与投保人关系需为本人、配偶、子女、父母人工审核中请您耐心等待哦~'
this.thisdialogcontent = res.resultMessage.split('【Engine】')
this.thisdialogcontent.splice(0, 1)
} else {
Dialog.confirm({
title: '提示',
message: res.resultMessage,
confirmButtonColor: '#FF0000',
showCancelButton: false
})
}
Dialog.confirm({
title: '提示',
message: res.resultMessage,
confirmButtonColor:'#FF0000',
showCancelButton:false
})
}
})
},
@@ -1317,7 +1293,4 @@ export default {
.redRadioCheckbox {
overflow: hidden;
}
/deep/ .van-field__label{
width: 50vw;
}
</style>

View File

@@ -2,6 +2,7 @@
<div class="insuranceInformation-container pb50 redRadioCheckbox">
<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 fs14">
<van-radio name="1" @click="click">
本人确认已阅读
@@ -40,7 +41,7 @@ export default {
// 倒计时时间
number: '',
// 定时器时间
time: '2',
time: '10',
// 定时器名称
timer: null,
isOver: false,
@@ -74,7 +75,11 @@ export default {
[NoticeBar.name]: NoticeBar
},
mounted() {
let that = this
that.timeOut()
document.body.style.backgroundColor = '#fff'
},
async created() {
if (!this.isWeixin) {
setTimeout(() => {
// eslint-disable-next-line no-undef
@@ -93,33 +98,53 @@ export default {
if (this.isWeixin) {
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
}
if (this.detailJump != '1') {
// 投被保险人是否同人
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
// 获取被保险人信息
// that.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
}
// if (this.detailJump != '1') {
// this.getOrderDetail()
// }
if (this.isWeixin) {
let imgBase64Data = sessionStorage.getItem('twoimgBase64Data')
let wxSigned = JSON.parse(sessionStorage.getItem('twowxSigned'))
// let wxSigned = false
let signInfo = JSON.parse(localStorage.getItem('signInfo'))
console.log('`````````````````````````````````')
console.log('imgBase64Data: twoimgBase64Data:' + imgBase64Data)
console.log('wxSigned: ' + wxSigned)
if (wxSigned) {
console.log('第二次进入电子保单')
console.log('````````````````````````````````')
this.getOrderDetail().then(() => {
this.Time = true
this.isOver = true
this.radio = '1'
this.base64 = imgBase64Data
this.isDisabledComplite = false
console.log('signInfo.status:' + signInfo.status)
if (signInfo.status == '0') {
// this.appntSign.documentStatus = '3'
console.log('``````````````````')
//因签字后微信端签字面板无法返回状态,导致签字状态不变,下一步按钮无法点击
this.$set(this.appntSign, 'documentStatus', '3')
console.log('appntSign.documentStatus: ' + this.appntSign.documentStatus)
this.isSign = false
this.isDisabledComplite = false
// this.isDisable = false
} else {
this.$set(this.insuredSign, 'documentStatus', '3')
// this.insuredSign.documentStatus = '3'
this.isDisabledComplite = false
this.isSign = false
}
})
} else {
console.log('第一次进入电子保单')
this.timeOut()
this.getOrderDetail()
}
@@ -129,10 +154,6 @@ export default {
this.getOrderDetail()
}
}
this.timeOut()
},
created() {
},
methods: {
appCallBack(data) {
@@ -188,12 +209,6 @@ export default {
let data = {
orderNo: that.$route.query.orderNo
}
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
return new Promise((resolve, reject) => {
getOrderDetail(data).then(res => {
if (res.result == '0') {

View File

@@ -1,7 +1,7 @@
<template>
<div class="beneficiary-container redRadioCheckbox">
<div style="background: rgb(245, 245, 245);" class="pt3 pb5">
<index-bar :key="renovate" :orderNo= '$route.query.orderNo'></index-bar>
<index-bar :key="renovate"></index-bar>
</div>
<div h10></div>
<div class="fs14 flex justify-content-s pv12 ph15 van-hairline--bottom">
@@ -216,10 +216,10 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/addBeneficiaryInfo?orderNo='+this.$route.query.orderNo
url: location.origin + '/#/sale/addBeneficiaryInfo?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/addBeneficiaryInfo?orderNo='+this.$route.query.orderNo
path: '/sale/addBeneficiaryInfo?orderNo=' + this.$route.query.orderNo
}
})
},

View File

@@ -41,7 +41,7 @@ export default {
// 倒计时时间
number: '',
// 定时器时间
time: '2',
time: '10',
// 定时器名称
timer: null,
isOver: false,
@@ -74,11 +74,12 @@ export default {
[Dialog.name]: Dialog,
[NoticeBar.name]: NoticeBar
},
created() {
},
async mounted() {
mounted() {
let that = this
that.timeOut()
document.body.style.backgroundColor = '#fff'
},
async created() {
if (!this.isWeixin) {
setTimeout(() => {
// eslint-disable-next-line no-undef
@@ -97,32 +98,52 @@ export default {
if (this.isWeixin) {
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
}
if (this.detailJump != '1') {
// 投被保险人是否同人
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
// 获取被保险人信息
// that.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
}
// if (this.detailJump != '1') {
// this.getOrderDetail()
// }
if (this.isWeixin) {
let imgBase64Data = sessionStorage.getItem('twoimgBase64Data')
let wxSigned = JSON.parse(sessionStorage.getItem('twowxSigned'))
// let wxSigned = false
let signInfo = JSON.parse(localStorage.getItem('signInfo'))
console.log('`````````````````````````````````')
console.log('imgBase64Data: twoimgBase64Data:' + imgBase64Data)
console.log('wxSigned: ' + wxSigned)
if (wxSigned) {
console.log('第二次进入电子保单')
console.log('````````````````````````````````')
this.getOrderDetail().then(() => {
this.Time = true
this.isOver = true
this.radio = '1'
this.base64 = imgBase64Data
this.isDisabledComplite = false
console.log('signInfo.status:' + signInfo.status)
if (signInfo.status == '0') {
// this.appntSign.documentStatus = '3'
console.log('``````````````````')
this.$set(this.appntSign, 'documentStatus', '3')
console.log('appntSign.documentStatus: ' + this.appntSign.documentStatus)
this.isSign = false
this.isDisabledComplite = false
// this.isDisable = false
} else {
this.$set(this.insuredSign, 'documentStatus', '3')
// this.insuredSign.documentStatus = '3'
this.isDisabledComplite = false
this.isSign = false
}
})
} else {
console.log('第一次进入电子保单')
this.timeOut()
this.getOrderDetail()
}
@@ -132,7 +153,6 @@ export default {
this.getOrderDetail()
}
}
this.timeOut()
},
methods: {
appCallBack(data) {

View File

@@ -147,7 +147,7 @@ export default {
// 倒计时时间
number: '',
// 定时器时间
time: '2',
time: '10',
// 定时器名称
timer: null,
isOver: false,

View File

@@ -47,7 +47,7 @@ export default {
// 倒计时时间
number: '',
// 定时器时间
time: '2',
time: '10',
// 定时器名称
timer: null,
isOver: false,
@@ -83,70 +83,89 @@ export default {
[Dialog.name]: Dialog,
[NoticeBar.name]: NoticeBar
},
created() {
},
async mounted() {
mounted() {
let that = this
that.timeOut()
document.body.style.backgroundColor = '#fff'
// 当前代理人渠道--个险渠道,中介渠道
},
async created() {
// 当前代理人渠道--个险渠道,中介渠道
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.branchTypeVal = dataReturn.branchTypeVal
if (!that.isWeixin) {
if (!this.isWeixin) {
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
img: that.$assetsUrl + 'images/del-close-btn@3x.png',
img: this.$assetsUrl + 'images/del-close-btn@3x.png',
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
}, 100)
window.appCallBack = that.appCallBack
window.appCallBack = this.appCallBack
}
let that = this
that.detailJump = window.localStorage.getItem('detailJump')
that.signVal = window.localStorage.getItem('sign-val')
// 获取投保人信息
that.saleInsuredInfo = JSON.parse(that.$CacheUtils.getLocItem('saleInsuredInfo'))
if (that.isWeixin) {
that.relationToAppnt = JSON.parse(that.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
that.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
if (this.isWeixin) {
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
}
if (that.detailJump != '1') {
if (this.detailJump != '1') {
// 投被保险人是否同人
that.relationToAppnt = JSON.parse(that.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
// 获取被保险人信息
// that.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
}
// if (this.detailJump != '1') {
// this.getOrderDetail()
// }
if (this.isWeixin) {
let imgBase64Data = sessionStorage.getItem('twoimgBase64Data')
let wxSigned = JSON.parse(sessionStorage.getItem('twowxSigned'))
// let wxSigned = false
let signInfo = JSON.parse(localStorage.getItem('signInfo'))
console.log('`````````````````````````````````')
console.log('imgBase64Data: twoimgBase64Data:' + imgBase64Data)
console.log('wxSigned: ' + wxSigned)
if (wxSigned) {
that.getOrderDetail().then(() => {
that.Time = true
that.isOver = true
that.radio = '1'
that.base64 = imgBase64Data
that.isDisabledComplite = false
console.log('第二次进入电子保单')
console.log('````````````````````````````````')
this.getOrderDetail().then(() => {
this.Time = true
this.isOver = true
this.radio = '1'
this.base64 = imgBase64Data
this.isDisabledComplite = false
console.log('signInfo.status:' + signInfo.status)
if (signInfo.status == '0') {
that.$set(that.appntSign, 'documentStatus', '3')
that.isSign = false
that.isDisabledComplite = false
// this.appntSign.documentStatus = '3'
console.log('``````````````````')
this.$set(this.appntSign, 'documentStatus', '3')
console.log('appntSign.documentStatus: ' + this.appntSign.documentStatus)
this.isSign = false
this.isDisabledComplite = false
// this.isDisable = false
} else {
that.$set(that.insuredSign, 'documentStatus', '3')
that.isDisabledComplite = false
that.isSign = false
this.$set(this.insuredSign, 'documentStatus', '3')
// this.insuredSign.documentStatus = '3'
this.isDisabledComplite = false
this.isSign = false
}
})
} else {
that.timeOut()
that.getOrderDetail()
console.log('第一次进入电子保单')
this.timeOut()
this.getOrderDetail()
}
} else {
that.timeOut()
if (that.detailJump != '1') {
that.getOrderDetail()
this.timeOut()
if (this.detailJump != '1') {
this.getOrderDetail()
}
}
that.timeOut()
},
methods: {
appCallBack(data) {
@@ -202,15 +221,8 @@ export default {
let data = {
orderNo: that.$route.query.orderNo
}
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
return new Promise((resolve, reject) => {
getOrderDetail(data).then(res => {
this.$toast.clear()
if (res.result == '0') {
if(res.orderDTO.universalRiskNotifyDTO && res.orderDTO.universalRiskNotifyDTO.isUniversalRiskNotifyShowPoint){
this.isUniversalRiskNotifyShowPoint = res.orderDTO.universalRiskNotifyDTO.isUniversalRiskNotifyShowPoint

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -96,7 +96,7 @@
</template>
<template v-if="active == 'commit' && (order.orderInfoDTO.orderStatus == '02' || order.orderInfoDTO.orderStatus == '58')">
<van-button @click="goPay(order)" size="small" class="mr5" type="danger" round>
支付
支付
</van-button>
</template>
<!-- doubleFlag 1- 0-doubleFlag为0双录时canRevokeDouble加 orderStatus 16 -->

View File

@@ -3,7 +3,7 @@
<div class="pb50">
<div class="allFalse">
<div style="background-color: rgb(245, 245, 245);padding-bottom:5px">
<index-bar :key="renovate" :orderNo= '$route.query.orderNo'></index-bar>
<index-bar :key="renovate"></index-bar>
</div>
<div v-if="!isSpecificMedicalInsurance" class="flex justify-content-s align-items-c bg-white pt20 pb20 pr10">
<span class="pl10">告知项目</span>
@@ -206,11 +206,6 @@ export default {
this.$utils.intLocalStorage(res)
this.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
this.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
let myproductCodes = []
res.orderDTO.insuredDTOs[0].riskDTOLst.forEach(item => {
myproductCodes.push(item.riskCode)
})
this.$CacheUtils.setLocItem('productCodes',JSON.stringify(myproductCodes))
//如果返回参数存在曾经提交的告知信息,获取曾经提交的告知信息
let insuredFinanceImpartDTO = res.orderDTO.appntDTO.financeImpartDTO //投保人财务告知集合
let insuredImpartDTO = res.orderDTO.appntDTO.impartDTO //投保人健康告知集合
@@ -274,7 +269,7 @@ export default {
}
// })
// this.relationToAppnt = `1`
// this.productCodes = JSON.parse(localStorage.chooseProductCodes)
this.productCodes = JSON.parse(localStorage.chooseProductCodes)
this.isSpecificMedicalInsurance = this.productCodes && this.productCodes.includes('GFRS_M0045')
//this.information()
},
@@ -511,10 +506,10 @@ export default {
// console.log(res)
if (res.result == '0') {
this.$toast.loading({
duration: 0, 
forbidClick: true,
loadingType: 'spinner',
message: '加载中……'
duration:0,
forbidClick:true,
loadingType:'spinner',
message:'加载中……'
})
res.productImpartLstDTO.impartDTOS.map(item => {
item.impartItemDTOS.map(im => {

View File

@@ -225,9 +225,6 @@ export default {
orderNo: this.orderNo,
payType: this.radio
}
if(that.isWeixin){
data.payType = 'WXJSAPI'
}
acceptInsurance(data).then(res => {
console.log('----取支付参数结果:', JSON.stringify(res))
// res = {'result':'0','resultMessage':'','content':null,'prtNo':'8186270000000008','payStatus':'4','amnt':'63700.00','appntName':'投保人','message':null,'brPayReturnData':{'result':'','resultMessage':'','content':null,'businessId':'1569125393518','businessNo':'8186270000000008','tradeSubType':'COMM','businessType':'SALE','systemType':'GF','money':63700,'businessSubType':'XDCB','thirdType':'0002','thirdName':null,'bankCode':'ABC','epayOrderNo':'1909221209536259999900','companyAccount':null,'tradeState':'TRADING','standardCode':'DEALING','standardMsg':null,'thirdOrderNo':null,'respRemark':null,'tradeTime':'2019-09-22T04:09:53.518+0000','description':'','version':'1','sourceNotecode':'8186270000000008','payType':'MIT01','expireDate':'20191010101010','transSeq':'20190922120953782','transSource':'MIT','applyEntity':'11860000','paymentCode':'8186270000000008','transDate':'20190922','rdSeq':'1909221209536259999900','settleMode':null,'cur':'CNY','transTime':'120953','ourAmount':63700,'fixUser':'1','insurer':'投保人','certType':'0','certNum':'110101199009210011','oppBank':'ABC','oppAct':'6228481200290317812','oppActName':'投保人','cellPhone':null,'purpose':null,'memo':null,'returnURL':'http://139.199.50.151/#/sale/payResult','notifyURL':'http://139.199.50.151:7000/api/v1/epay/epay/payResult','s3Sign':'e3f0581ec6b751337e8eca360a0746bc'}}
@@ -435,7 +432,7 @@ export default {
flag: 'share',
extra: {
title: `国富人寿电子投保单(${shareName})付款`,
content: '投保单号:'+ localStorage.orderNo + '\n' + '支付金额:' + this.underWriteData.orderAmount + '元',
content: '付款进行',
url: location.origin + '/#/sale/payMent?orderNo=' + localStorage.orderNo + '&token=' + localStorage.token,
img: this.$assetsUrl + 'images/logo.png'
}

View File

@@ -21,21 +21,13 @@
<!-- <div v-if="payStatus != '2' && payStatus != '1'" class=" p10 pb250 bg-white">
<span class="pt150 fs14"> 如有相关问题请联系信息技术部运维人员</span>
</div> -->
<!-- <div v-if="payStatus == '1'" class=" p10 pb250 bg-white">-->
<!-- <span class="pt150 fs14"> 核心承保中请您稍后查看</span>-->
<!-- <div class="mt15" v-if="this.manageComCode == '45'">-->
<!-- <span class="pt150 fs14 green fwb">-->
<!-- 温馨提示为维护您的合法权益广西保险行业协会将向您发送满意度调查短信欢迎回复短信对我们的销售和服务进行监督-->
<!-- </span>-->
<!-- </div>-->
<!-- </div>-->
<div v-if="payStatus == '1'" class="p10 pb250 bg-white" style="text-align: center;padding-top: 50px!important;">
<p style="text-align: center;font-weight: bold;">温馨提示</p>
<p style="text-align: center;">您可识别下方官方微信"国富人寿"二维码关注公众号查询您的保单信息和服务</p>
<div style="padding: 20px;">
<img :src="erweima" style="width: 60vw;"/>
<div v-if="payStatus == '1'" class=" p10 pb250 bg-white">
<span class="pt150 fs14"> 核心承保中请您稍后查看</span>
<div class="mt15" v-if="this.manageComCode == '45'">
<span class="pt150 fs14 green fwb">
温馨提示为维护您的合法权益广西保险行业协会将向您发送满意度调查短信欢迎回复短信对我们的销售和服务进行监督
</span>
</div>
<p style="text-align: center;font-weight: bold;">长按识别二维码</p>
</div>
<div v-if="payStatus == '2' || payStatus == '4' || payStatus == '8'" class=" p10 pb250 bg-white">
<span v-html="resMessage"></span>
@@ -59,162 +51,161 @@
</template>
<script>
import { Cell, CellGroup } from 'vant'
import { getPayState } from '@/api/ebiz/sale/sale'
import riskRules from '@/views/ebiz/common/risk-rules'
import erweima from '@/assets/images/erweima.png'
export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
isWeixin,
// 保融收银台返回的支付流水号
paySeqNo: '',
// 接口返回数据前,不做页面渲染
isReady: true,
// 是否已重新获取支付状态。(首次进入本页,立即查询支付结果。如果是‘支付中’,两秒后再次(最后一次)再次获取一次支付状态。)
isReloaded: false,
// 结果原因
resMessage: '',
// 支付结果
payStatus: '',
// 支付信息
payInfo: {
appntName: '', // 投保人
prtNo: '', // 投保单号
amnt: '' // 支付金额
},
// 图片
srcSuccess: this.$assetsUrl + 'images/success.png',
srcPending: this.$assetsUrl + 'images/pending.png',
srcFail: this.$assetsUrl + 'images/fail.png',
erweima,
manageComCode:''//代理人管理机构 52贵州 45广西
import { Cell, CellGroup } from 'vant'
import { getPayState } from '@/api/ebiz/sale/sale'
import riskRules from '@/views/ebiz/common/risk-rules'
export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
isWeixin,
// 保融收银台返回的支付流水号
paySeqNo: '',
// 接口返回数据前,不做页面渲染
isReady: true,
// 是否已重新获取支付状态。(首次进入本页,立即查询支付结果。如果是‘支付中’,两秒后再次(最后一次)再次获取一次支付状态。)
isReloaded: false,
// 结果原因
resMessage: '',
// 支付结果
payStatus: '',
// 支付信息
payInfo: {
appntName: '', // 投保人
prtNo: '', // 投保单号
amnt: '' // 支付金额
},
// 图片
srcSuccess: this.$assetsUrl + 'images/success.png',
srcPending: this.$assetsUrl + 'images/pending.png',
srcFail: this.$assetsUrl + 'images/fail.png',
manageComCode:''//代理人管理机构 52贵州 45广西
}
},
components: {
[Cell.name]: Cell,
[CellGroup.name]: CellGroup
},
methods: {
// 返回列表页
next() {
if(this.isWeixin){
WeixinJSBridge.call("closeWindow");
}else{
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/list'
},
routerInfo: {
path: '/sale/list'
}
})
}
},
components: {
[Cell.name]: Cell,
[CellGroup.name]: CellGroup
},
methods: {
// 返回列表页
next() {
if(this.isWeixin){
WeixinJSBridge.call("closeWindow");
}else{
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/list'
},
routerInfo: {
path: '/sale/list'
}
})
}
},
// 查询支付状态
queryPayState() {
// 查询支付状态
queryPayState() {
this.$toast.clear()
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let data = { orderNo: this.paySeqNo }
getPayState(data).then(res => {
this.$toast.clear()
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let data = { orderNo: this.paySeqNo }
getPayState(data).then(res => {
this.$toast.clear()
this.isReady = true
console.log('----支付结果查询', JSON.stringify(res))
if (res.result == '0') {
this.payStatus = res.payStatus
this.payInfo = { appntName: res.appntName, prtNo: res.prtNo, amnt: res.amnt }
this.resMessage = res.message
// 如果是支付中2秒后重新获取一次支付状态
if (this.payStatus == '4' && !this.isReloaded) {
this.isReloaded = true
setTimeout(() => {
this.queryPayState()
}, 2000)
}
} else {
this.$toast(res.resultMessage)
this.isReady = true
console.log('----支付结果查询', JSON.stringify(res))
if (res.result == '0') {
this.payStatus = res.payStatus
this.payInfo = { appntName: res.appntName, prtNo: res.prtNo, amnt: res.amnt }
this.resMessage = res.message
// 如果是支付中2秒后重新获取一次支付状态
if (this.payStatus == '4' && !this.isReloaded) {
this.isReloaded = true
setTimeout(() => {
this.queryPayState()
}, 2000)
}
})
},
// 重新支付
rePayMent() {
// localStorage.orderNo = order.orderInfoDTO.orderNo
// 再次支付 salelist为 0
localStorage.salelist = '0'
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/payMent'
},
routerInfo: {
path: '/sale/payMent'
}
})
},
//更换卡号
changeCard() {
localStorage.setItem('changeCard', true)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/AccountInformation'
},
routerInfo: {
path: '/sale/AccountInformation'
}
})
}
},
created() {
EWebBridge.webCallAppInJs('webview_left_button', {
intercept: '1' //是否拦截原生返回事件 1是 其他否
} else {
this.$toast(res.resultMessage)
}
})
},
async mounted() {
let that = this
// document.body.style.backgroundColor = '#fff'
that.payStatus = window.localStorage.getItem('payStatus')
that.payInfo = JSON.parse(window.localStorage.getItem('payInfo'))
if (window.localStorage.getItem('resMessage') != null) {
that.resMessage = window.localStorage.getItem('resMessage').replace(/\\n/g, '<br>')
}
this.paySeqNo = this.$route.query.RdSeq
if (!this.paySeqNo) {
this.$toast({ message: '参数错误缺少支付流水号RdSeq查询参数', duration: 5000 })
} else {
this.queryPayState()
}
//获取代理人管理机构 52贵州 45广西
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.manageComCode = dataReturn.manageComCode
// 重新支付
rePayMent() {
// localStorage.orderNo = order.orderInfoDTO.orderNo
// 再次支付 salelist为 0
localStorage.salelist = '0'
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/payMent'
},
routerInfo: {
path: '/sale/payMent'
}
})
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
//更换卡号
changeCard() {
localStorage.setItem('changeCard', true)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/AccountInformation'
},
routerInfo: {
path: '/sale/AccountInformation'
}
})
}
},
created() {
EWebBridge.webCallAppInJs('webview_left_button', {
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
},
async mounted() {
let that = this
// document.body.style.backgroundColor = '#fff'
that.payStatus = window.localStorage.getItem('payStatus')
that.payInfo = JSON.parse(window.localStorage.getItem('payInfo'))
if (window.localStorage.getItem('resMessage') != null) {
that.resMessage = window.localStorage.getItem('resMessage').replace(/\\n/g, '<br>')
}
this.paySeqNo = this.$route.query.RdSeq
if (!this.paySeqNo) {
this.$toast({ message: '参数错误缺少支付流水号RdSeq查询参数', duration: 5000 })
} else {
this.queryPayState()
}
//获取代理人管理机构 52贵州 45广西
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.manageComCode = dataReturn.manageComCode
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>
<style lang="scss" scoped>
.payResult-container {
.payResult-header {
width: 345px;
// height: 143px;
.payResult-img {
width: 70px;
height: 70px;
}
.payResult-container {
.payResult-header {
width: 345px;
// height: 143px;
.payResult-img {
width: 70px;
height: 70px;
}
}
// /deep/ .van-cell__value {
// text-align: left;
// }
}
// /deep/ .van-cell__value {
// text-align: left;
// }
</style>

View File

@@ -32,7 +32,7 @@ export default {
// 倒计时时间
number: '',
// 定时器时间
time: '2',
time: '10',
// 定时器名称
timer: null,
isOver: false,
@@ -56,10 +56,9 @@ export default {
[NoticeBar.name]: NoticeBar
},
created() {
this.init()
},
async mounted() {
await this.init()
mounted() {
let readingType = localStorage.getItem('readingProtocolType')
if (readingType && readingType === '1') {
this.protocol = true
@@ -87,7 +86,7 @@ export default {
}
},
methods: {
init(){
async init(){
this.getOrderDetail()
},
timeOut() {
@@ -111,18 +110,11 @@ export default {
// 获取PDF的路径
getOrderDetail() {
let that = this
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let data = {
orderNo: that.$route.query.orderNo
}
return new Promise((resolve, reject) => {
getOrderDetail(data).then(res => {
this.$toast.clear()
if (res.result == '0') {
res.orderDTO.ebizSignDTOS.map(item => {
if (item.documentCode == '12') {
@@ -197,10 +189,10 @@ export default {
saveInformation(data).then(res => {
// console.log(res)
if (res.result == '0') {
that.$toast.clear()
this.$toast.clear()
window.localStorage.setItem('detailJump', '')
let url = '/sale/signatureConfirmation'
that.$jump({
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#'+ url + '?orderNo=' + that.$route.query.orderNo,
@@ -210,15 +202,15 @@ export default {
routerInfo: {
path:
url +'?orderNo=' +
that.$route.query.orderNo +
this.$route.query.orderNo +
'&token=' +
localStorage.token +
'&saleInsuredInfo=' +
that.$CacheUtils.getLocItem('saleInsuredInfo') +
this.$CacheUtils.getLocItem('saleInsuredInfo') +
'&saleInsuredPersonInfo=' +
that.$CacheUtils.getLocItem('saleInsuredPersonInfo') +
this.$CacheUtils.getLocItem('saleInsuredPersonInfo') +
'&relationToAppnt=' +
JSON.parse(that.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt +
JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt +
'&attachmentShow=' +
window.localStorage.getItem('attachmentShow') +
'&signInvalid=' +
@@ -231,7 +223,7 @@ export default {
}
})
} else {
that.$toast.loading({
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
@@ -265,28 +257,28 @@ export default {
}
saveInformation(data).then(res => {
if (res.result == '0') {
that.$toast.clear()
this.$toast.clear()
window.localStorage.setItem('detailJump', '')
let url = '/sale/signatureConfirmation'
that.$jump({
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#'+ url + '?orderNo=' + that.$route.query.orderNo,
url: location.origin + '/#'+ url + '?orderNo=' + this.$route.query.orderNo,
pullRefresh: '1',
backToFirst: '1'
},
routerInfo: {
path:
url +'?orderNo=' +
that.$route.query.orderNo +
this.$route.query.orderNo +
'&token=' +
localStorage.token +
'&saleInsuredInfo=' +
that.$CacheUtils.getLocItem('saleInsuredInfo') +
this.$CacheUtils.getLocItem('saleInsuredInfo') +
'&saleInsuredPersonInfo=' +
that.$CacheUtils.getLocItem('saleInsuredPersonInfo') +
this.$CacheUtils.getLocItem('saleInsuredPersonInfo') +
'&relationToAppnt=' +
JSON.parse(that.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt +
JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt +
'&attachmentShow=' +
window.localStorage.getItem('attachmentShow') +
'&signInvalid=' +
@@ -338,10 +330,10 @@ export default {
}
saveInformation(data).then(res => {
if (res.result == '0') {
that.$toast.clear()
this.$toast.clear()
window.localStorage.setItem('detailJump', '')
let url = 'signatureConfirmation'
that.$jump({
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + url + '?orderNo=' + that.$route.query.orderNo,

View File

@@ -226,12 +226,6 @@
}}</van-button>
</van-cell-group>
</van-dialog>
<van-dialog v-model="thisnewpeopledialogshow" title="提示" confirmButtonText="确定">
<div style="padding: 20px;font-size: 14px;padding-top: 0px;">
<div style="line-height: 25px;letter-spacing: 1px;">尊敬的客户您好</div>
<div style="line-height: 25px;letter-spacing: 1px;text-indent: 2em;">感谢您投保我公司爱心保/安心保产品在本保险合同生效后被保险人将获得一份专属的健康管理服务详情请登录公司官方微信公众号国富人寿保险>发现国富>新市民专区 查询或拨打公司客服热线400-694-6688咨询本服务为无偿提供</div>
</div>
</van-dialog>
</div>
</template>
@@ -259,7 +253,6 @@ export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
thisnewpeopledialogshow: false,
isInsuYearFlag: false, //是否为长期险
isVideo: false, //是否已阅读视频
isVideoNext: false,
@@ -465,56 +458,55 @@ export default {
this.relationToAppnt = this.$route.query.relationToAppnt
this.isShow = false
await this.getOrderDetail()
console.log('初始化this.appntSign ==', this.appntSign)
if (
(this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '0') ||
(this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '2')
) {
// this.$toast('签名成功,请联系业务员进行后续流程!')
Dialog.alert({ title: '提示', message: '签名成功,请联系业务员进行后续流程!' })
} else if (this.insuredSignStatus == '3' && sessionStorage.getItem('shareCode') == '1') {
Dialog.alert({ title: '提示', message: '签名成功,请联系业务员进行后续流程!' })
}
if (this.changeCard && this.appntSign.documentStatus == '1') {
Dialog.alert({ title: '提示', message: '确认完成,请联系业务员完成后续流程!' })
}
// localStorage['faceAuthWeXin-requestId'] localStorage['faceAuthWeXin-bizToken']--微信端人脸识别获取腾讯认证url接口获得认证相关参数
if (localStorage['faceAuthWeXin-requestId'] && localStorage['faceAuthWeXin-bizToken'] && this.$route.query.faceAuthCountWeixin != undefined) {
this.getRecognitionResult(JSON.parse(localStorage['faceAuthWeXin-requestId']), JSON.parse(localStorage['faceAuthWeXin-bizToken']))
}
if (sessionStorage.shareCode == '1') {
console.log('进来被保险人')
this.tipsName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).name
} else if(sessionStorage.shareCode == '3'){
console.log('进来代理人')
this.tipsName =this.recmd.name
}else {
console.log('进来投保人')
this.tipsName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).name
// console.log('localStorage.saleInsuredInfo', localStorage.saleInsuredInfo)
// console.log('localStorage.saleInsuredInfo.name', localStorage.saleInsuredInfo.name)
// console.log('this.tipName', this.tipsName)
}
weixinShare({
title: '国富人寿计划书',
imgUrl: 'http://47.96.143.111:8000/app/images/logo.png',
desc: '国富为您量身定制的保险产品,请查收'
})
// let params = {
// orderNo: ''
// }
this.faceAuthCount.appnt = this.$route.query.faceAuthCountAppnt == undefined ? 0 : Number(this.$route.query.faceAuthCountAppnt)
this.faceAuthCount.insured = this.$route.query.faceAuthCountInsured == undefined ? 0 : Number(this.$route.query.faceAuthCountInsured)
this.faceAuthCount.weixin = this.$route.query.faceAuthCountWeixin == undefined ? 0 : Number(this.$route.query.faceAuthCountWeixin)
} else {
// 获取详情消息
this.getOrderDetail()
this.getSignInvalid()
this.isShow = true
if (
(this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '0') ||
(this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '2')
) {
// this.$toast('签名成功,请联系业务员进行后续流程!')
Dialog.alert({ title: '提示', message: '签名成功,请联系业务员进行后续流程!' })
} else if (this.insuredSignStatus == '3' && sessionStorage.getItem('shareCode') == '1') {
Dialog.alert({ title: '提示', message: '签名成功,请联系业务员进行后续流程!' })
}
},
if (this.changeCard && this.appntSign.documentStatus == '1') {
Dialog.alert({ title: '提示', message: '确认完成,请联系业务员完成后续流程!' })
}
// localStorage['faceAuthWeXin-requestId'] localStorage['faceAuthWeXin-bizToken']--微信端人脸识别获取腾讯认证url接口获得认证相关参数
if (localStorage['faceAuthWeXin-requestId'] && localStorage['faceAuthWeXin-bizToken'] && this.$route.query.faceAuthCountWeixin != undefined) {
this.getRecognitionResult(JSON.parse(localStorage['faceAuthWeXin-requestId']), JSON.parse(localStorage['faceAuthWeXin-bizToken']))
}
if (sessionStorage.shareCode == '1') {
console.log('进来被保险人')
this.tipsName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).name
} else if(sessionStorage.shareCode == '3'){
console.log('进来代理人')
this.tipsName =this.recmd.name
}else {
console.log('进来投保人')
this.tipsName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).name
// console.log('localStorage.saleInsuredInfo', localStorage.saleInsuredInfo)
// console.log('localStorage.saleInsuredInfo.name', localStorage.saleInsuredInfo.name)
// console.log('this.tipName', this.tipsName)
}
weixinShare({
title: '国富人寿计划书',
imgUrl: 'http://47.96.143.111:8000/app/images/logo.png',
desc: '国富为您量身定制的保险产品,请查收'
})
// let params = {
// orderNo: ''
// }
this.faceAuthCount.appnt = this.$route.query.faceAuthCountAppnt == undefined ? 0 : Number(this.$route.query.faceAuthCountAppnt)
this.faceAuthCount.insured = this.$route.query.faceAuthCountInsured == undefined ? 0 : Number(this.$route.query.faceAuthCountInsured)
this.faceAuthCount.weixin = this.$route.query.faceAuthCountWeixin == undefined ? 0 : Number(this.$route.query.faceAuthCountWeixin)
} else {
// 获取详情消息
this.getOrderDetail()
this.getSignInvalid()
this.isShow = true
}
},
// 获取消息和阅读状态
realPeopelCheck() {
this.$toast.loading({
@@ -664,6 +656,27 @@ export default {
},
// 人脸识别
async start_ocr(val) {
// val 0投保人 1被保险人 2本人
// return this.$dialog
// .alert({
// className: 'dialog-alert',
// title: '提示',
// message: '为维护您的合法权益,请您务必认真观看防范销售误导视频。',
// confirmButtonColor: '#ee0a24',
// confirmButtonText: '确认'
// })
// .then(() => {
// this.$jump({
// flag: 'navigation',
// extra: {
// title: '防范销售误导',
// hiddenRight: '1'
// }
// })
// this.videoShow = true
// this.isVideo = true
// this.isVideoUrl = 'goUrl'
// })
console.log('人脸识别')
console.log(val)
let that = this
@@ -674,10 +687,9 @@ export default {
//idtype不为身份证跳过人脸识别
if (JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).idType != '1') {
that.goUrl()
}
else {
} else {
// 白名单校验
let res = await getWhitelist({
const res = await getWhitelist({
idNo: this.saleInsuredInfo.idNo,
name: this.saleInsuredInfo.name,
whiteType: 'sale_face_show'
@@ -727,7 +739,7 @@ export default {
that.insuredUrl()
} else {
// 白名单校验
let res = await getWhitelist({
const res = await getWhitelist({
idNo: this.saleInsuredPersonInfo.idNo,
name: this.saleInsuredPersonInfo.name,
whiteType: 'sale_face_show'
@@ -779,7 +791,7 @@ export default {
}
}
// 白名单校验
let res = await getWhitelist({
const res = await getWhitelist({
idNo: this.saleInsuredInfo.idNo,
name: this.saleInsuredInfo.name,
whiteType: 'sale_face_show'
@@ -1465,28 +1477,28 @@ export default {
this.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
this.relationToAppnt = this.saleInsuredPersonInfo.relationToAppnt //将缓存中的与被保险人关系赋值给页面
that.recmd = res.orderDTO.recmdDTO
that.orderInfo = res.orderDTO.orderInfoDTO
that.insured = res.orderDTO.insuredDTOs
// 初始化RID状态
this.realPeopleRidInfo.appntRidFlag = res.orderDTO.appntDTO.ridStatus
this.realPeopleRidInfo.insureRidFlag = res.orderDTO.insuredDTOs[0].ridStatus
//存code区分万能型产品
let productCode, riskName
let isDoubleMailRisk = that.orderInfo.isDoubleMailRisk
if (isDoubleMailRisk == '1') {
productCode = 'GFRS_M0017'
riskName = res.orderDTO.insuredDTOs[0].riskDTOLst[1].riskName
} else {
productCode = that.insured[0].riskDTOLst[0].mainRiskCode
riskName = res.orderDTO.insuredDTOs[0].riskDTOLst[0].riskName
}
if (that.orderInfo && that.orderInfo.activeType) {
that.$CacheUtils.setLocItem('activeType',that.orderInfo.activeType)
}
localStorage.setItem('productCode', productCode)
this.riskName = riskName
localStorage.setItem('riskName', riskName)
that.recmd = res.orderDTO.recmdDTO
that.orderInfo = res.orderDTO.orderInfoDTO
that.insured = res.orderDTO.insuredDTOs
// 初始化RID状态
this.realPeopleRidInfo.appntRidFlag = res.orderDTO.appntDTO.ridStatus
this.realPeopleRidInfo.insureRidFlag = res.orderDTO.insuredDTOs[0].ridStatus
//存code区分万能型产品
let productCode, riskName
let isDoubleMailRisk = that.orderInfo.isDoubleMailRisk
if (isDoubleMailRisk == '1') {
productCode = 'GFRS_M0017'
riskName = res.orderDTO.insuredDTOs[0].riskDTOLst[1].riskName
} else {
productCode = that.insured[0].riskDTOLst[0].mainRiskCode
riskName = res.orderDTO.insuredDTOs[0].riskDTOLst[0].riskName
}
if (that.orderInfo && that.orderInfo.activeType) {
that.$CacheUtils.setLocItem('activeType',that.orderInfo.activeType)
}
localStorage.setItem('productCode', productCode)
this.riskName = riskName
localStorage.setItem('riskName', riskName)
if (this.relationToAppnt != '1') {
this.activeNames.push(res.orderDTO.insuredDTOs.length + 1)
@@ -1557,9 +1569,6 @@ export default {
}
})
}
if(res.orderDTO.orderInfoDTO.productCode == 'GFRS_M0076' || res.orderDTO.orderInfoDTO.productCode == 'GFRS_M0077') {
that.thisnewpeopledialogshow = true
}
resolve('success')
} else {
Dialog.confirm({
@@ -1575,70 +1584,70 @@ export default {
})
})
},
//自定义key值排序用
addKey(item) {
//ducumentCode 1投保须知 2投保单 3产品说明书 4提示书 6免除保险人责任条款说明书 7保险销售行为双录说明
// 8指定保单生效日 9短期险投保须知 10国富人寿自保件承诺书 11柳州保险行业寿险投保风险提示书 12个人信息使用授权
// documentStatus: 文档状态 0 未读 1 已读 2 未签名 3 已签名
// documentType: 文档类型 0 阅读文档 1 签名文档
// signType: 签名类型 0 投保人 1 被保人 2 本人
if (item.documentCode == '1') {
item.key = 2
// item.key = 4
item.routePath = 'insuranceInformation'
} else if (item.documentCode == '2') {
// item.key = 9
item.key = 11
item.routePath = 'SignatureOfElectronic'
} else if (item.documentCode == '3') {
// item.key = 4
item.key = 6
item.routePath = 'productTip'
} else if (item.documentCode == '4') {
// item.key = 5
item.key = 7
item.routePath = 'InsuranceTip'
} else if (item.documentCode == '6') {
// item.key = 7
item.key = 9
item.routePath = 'avoidDutyTip'
} else if (item.documentCode == '7') {
// item.key = 8
item.key = 10
item.routePath = 'doubleRecordTip'
} else if (item.documentCode == '8') {
item.key = 1
item.routePath = 'apointValidDoc'
} else if (item.documentCode == '9') {
// item.key = 3
item.key = 5
item.routePath = 'shortPeriodProduct'
}else if (item.documentCode == '10') {
item.key = 1
item.routePath = 'commitmentSelfProtect'
} else if (item.documentCode == '11') {
// item.key = 6
item.key = 8
item.routePath = 'InsuranceRiskReminder'
} else if (item.documentCode == '12') {
// item.key = 10
item.key = 12
item.routePath = 'PersonalInformation'
} else if (item.documentCode == '13') {
// item.key = 2
item.key = 4
item.routePath = 'insuranceClauses'
}else if (item.documentCode == '14') {//风险评估pdf
item.key = 3
item.routePath = 'AnswerTip'
} else if (item.documentCode == '15') {
item.key = 7.1
item.routePath = 'universalRiskNotifyingMessageTip'
}
},
getSignInvalid() {
this.$toast.loading({
duration: 0, // 持续展示 toast
//自定义key值排序用
addKey(item) {
//ducumentCode 1投保须知 2投保单 3产品说明书 4提示书 6免除保险人责任条款说明书 7保险销售行为双录说明
// 8指定保单生效日 9短期险投保须知 10国富人寿自保件承诺书 11柳州保险行业寿险投保风险提示书 12个人信息使用授权
// documentStatus: 文档状态 0 未读 1 已读 2 未签名 3 已签名
// documentType: 文档类型 0 阅读文档 1 签名文档
// signType: 签名类型 0 投保人 1 被保人 2 本人
if (item.documentCode == '1') {
item.key = 2
// item.key = 4
item.routePath = 'insuranceInformation'
} else if (item.documentCode == '2') {
// item.key = 9
item.key = 11
item.routePath = 'SignatureOfElectronic'
} else if (item.documentCode == '3') {
// item.key = 4
item.key = 6
item.routePath = 'productTip'
} else if (item.documentCode == '4') {
// item.key = 5
item.key = 7
item.routePath = 'InsuranceTip'
} else if (item.documentCode == '6') {
// item.key = 7
item.key = 9
item.routePath = 'avoidDutyTip'
} else if (item.documentCode == '7') {
// item.key = 8
item.key = 10
item.routePath = 'doubleRecordTip'
} else if (item.documentCode == '8') {
item.key = 1
item.routePath = 'apointValidDoc'
} else if (item.documentCode == '9') {
// item.key = 3
item.key = 5
item.routePath = 'shortPeriodProduct'
}else if (item.documentCode == '10') {
item.key = 1
item.routePath = 'commitmentSelfProtect'
} else if (item.documentCode == '11') {
// item.key = 6
item.key = 8
item.routePath = 'InsuranceRiskReminder'
} else if (item.documentCode == '12') {
// item.key = 10
item.key = 12
item.routePath = 'PersonalInformation'
} else if (item.documentCode == '13') {
// item.key = 2
item.key = 4
item.routePath = 'insuranceClauses'
}else if (item.documentCode == '14') {//风险评估pdf
item.key = 3
item.routePath = 'AnswerTip'
} else if (item.documentCode == '15') {
item.key = 7.1
item.routePath = 'universalRiskNotifyingMessageTip'
}
},
getSignInvalid() {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
@@ -1749,18 +1758,9 @@ export default {
})
},
getRecognitionResult(requestId, bizToken) {
this.$toast.loading({
// 持续展示 toast
duration: 0,
// 禁用背景点击s
forbidClick: true,
loadingType: 'spinner',
message: '加载中……'
})
return new Promise(() => {
getRecognitionResult({ requestId, bizToken }).then(
(res) => {
this.$toast.clear()
if (res.result == '0') {
this.recognizeResult = res.result
} else {

View File

@@ -122,7 +122,7 @@ export default {
// 倒计时时间
number: '',
// // 定时器时间
time: '2',
time: '10',
// // 定时器名称
timer: null,
isOver: false,
@@ -170,8 +170,6 @@ export default {
// chooseProductCodes: '',
// pdf名字
pdfName: '',
caSignEnteringGinseng: '', //ca签名入参
caSignExoticGinseng: '', //ca签名出参
isPersonalInformation:'' // -1不存在 其他值是下标
}
},
@@ -370,14 +368,12 @@ export default {
let data = {
contNo: window.localStorage.getItem('contNo'),
baseEncryp: this.base64,
caSignEnteringGinseng: this.caSignEnteringGinseng, //ca签名入参
caSignExoticGinseng: JSON.stringify(this.caSignExoticGinseng), //ca签名出参
pdfAddresss: window.localStorage.getItem('insurance-policyUrl'),
orderNo: this.$route.query.orderNo
}
submit(data).then(res => {
if (res.result == '0') {
if (res.reslut == '0') {
this.$toast.clear()
window.localStorage.setItem('submitStatus', res.result)
this.$jump({
@@ -430,8 +426,6 @@ export default {
documentStatus: '3',
signType: that.signVal,
baseEncryp: that.base64,
caSignEnteringGinseng: this.caSignEnteringGinseng, //ca签名入参
caSignExoticGinseng: JSON.stringify(this.caSignExoticGinseng), //ca签名出参
documentType: that.appntSign.documentType,
documentCode: that.appntSign.documentCode
}
@@ -508,8 +502,6 @@ export default {
documentStatus: '3',
signType: that.signVal,
baseEncryp: that.base64,
caSignEnteringGinseng: this.caSignEnteringGinseng, //ca签名入参
caSignExoticGinseng: JSON.stringify(this.caSignExoticGinseng), //ca签名出参
documentType: that.insuredSign.documentType,
documentCode: that.insuredSign.documentCode
}
@@ -610,30 +602,16 @@ export default {
signatureHeight: this.$utils.signParams().signatureHeight
}).then(data => {
let temp = JSON.parse(data)
let caSignEnteringGinseng = {
//身份证号码
number: this.saleInsuredInfo.idNo,
//姓名
name: this.saleInsuredInfo.name,
type: this.saleInsuredInfo.idType,
keyword: '申请日期',
pageNo: '1',
index: '1',
offset: this.caOffset,
pos: '3', //设置偏移量 3表示右侧
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}
this.caSignEnteringGinseng = JSON.stringify(caSignEnteringGinseng)
this.caSignExoticGinseng = temp
// console.log(`--签名返回val:${val},this.detailJump:${this.detailJump},this.relationToAppnt:${this.relationToAppnt},CA_state:${temp.state}`)
this.$toast.clear()
if (JSON.parse(data).state == '1') {
this.base64 = decodeURI(JSON.parse(data).sign)
this.appntSign.documentStatus = '3'
this.isDisabledComplite = false
this.isSubmit = false
this.isSign = false
if(this.base64){
this.appntSign.documentStatus = '3'
this.isDisabledComplite = false
this.isSubmit = false
this.isSign = false
}
}
})
}
@@ -658,23 +636,6 @@ export default {
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}).then(data => {
let temp = JSON.parse(data)
let caSignEnteringGinseng = {
//身份证号码
number: this.saleInsuredInfo.idNo,
//姓名
name: this.saleInsuredInfo.name,
type: this.saleInsuredInfo.idType,
keyword: '被保险人或法定监护人签名',
pageNo: '1',
index: '1',
offset: '-250',
pos: '3',
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}
this.caSignEnteringGinseng = JSON.stringify(caSignEnteringGinseng)
this.caSignExoticGinseng = temp
// console.log(`--签名返回val:${val},this.detailJump:${this.detailJump},this.relationToAppnt:${this.relationToAppnt}`, JSON.stringify(data))
this.$toast.clear()
if (JSON.parse(data).state == '1') {
@@ -736,23 +697,6 @@ export default {
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}).then(data => {
let temp = JSON.parse(data)
let caSignEnteringGinseng = {
//身份证号码
number: that.saleInsuredInfo.idNo,
//姓名
name: that.saleInsuredInfo.name,
type: that.saleInsuredInfo.idType,
keyword: '投保人签字',
pageNo: '1',
index: '1',
offset: '20',
pos: '3',
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}
this.caSignEnteringGinseng = JSON.stringify(caSignEnteringGinseng)
this.caSignExoticGinseng = temp
// console.log(`--签名返回val:${val},this.detailJump:${this.detailJump},this.relationToAppnt:${this.relationToAppnt}`, JSON.stringify(data))
this.$toast.clear()
if (JSON.parse(data).state == '1') {
@@ -786,23 +730,6 @@ export default {
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}).then(data => {
let temp = JSON.parse(data)
let caSignEnteringGinseng = {
//身份证号码
number: that.saleInsuredPersonInfo.idNo,
//姓名
name: that.saleInsuredPersonInfo.name,
type: that.saleInsuredPersonInfo.idType,
keyword: '被保险人或法定监护人签名',
pageNo: '1',
index: '1',
offset: '50',
pos: '3',
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}
this.caSignEnteringGinseng = JSON.stringify(caSignEnteringGinseng)
this.caSignExoticGinseng = temp
// console.log(`--签名返回val:${val},this.detailJump:${this.detailJump},this.relationToAppnt:${this.relationToAppnt}`, JSON.stringify(data))
this.$toast.clear()
if (JSON.parse(data).state == '1') {
@@ -907,28 +834,7 @@ export default {
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}).then(data => {
let temp = JSON.parse(data)
let caSignEnteringGinseng = {
//身份证号码
number: this.saleInsuredInfo.idNo,
//姓名
name: this.saleInsuredInfo.name,
type: this.saleInsuredInfo.idType,
keyword: '投保人签名',
pageNo: '1',
index: '1',
offset: '10',
pos: '3', //设置偏移量 3表示右侧
commentKeyword: '认真',
commentText: '本人已阅读保险条款、产品说明书和投保提示书,了解本产品的特点和保单利益的不确定性',
commentOffset: '28',
commentPos: '2',
caType: '1',
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}
this.caSignEnteringGinseng = JSON.stringify(caSignEnteringGinseng)
this.caSignExoticGinseng = temp
// let temp = JSON.parse(data)
// console.log(`--签名返回val:${val},this.detailJump:${this.detailJump},this.relationToAppnt:${this.relationToAppnt},CA_state:${temp.state}`)
this.$toast.clear()
if (JSON.parse(data).state == '1') {
@@ -960,28 +866,7 @@ export default {
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}).then(data => {
let temp = JSON.parse(data)
let caSignEnteringGinseng = {
//身份证号码
number: this.saleInsuredInfo.idNo,
//姓名
name: this.saleInsuredInfo.name,
type: this.saleInsuredInfo.idType,
keyword: '申请日期',
pageNo: '1',
index: '1',
offset: this.caOffset,
pos: '3', //设置偏移量 3表示右侧
commentKeyword: '认真',
commentText: '本人已阅读保险条款、产品说明书和投保提示书,了解本产品的特点和保单利益的不确定性',
commentOffset: '28',
commentPos: '2',
caType: '1',
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}
this.caSignEnteringGinseng = JSON.stringify(caSignEnteringGinseng)
this.caSignExoticGinseng = temp
// let temp = JSON.parse(data)
// console.log(`--签名返回val:${val},this.detailJump:${this.detailJump},this.relationToAppnt:${this.relationToAppnt},CA_state:${temp.state}`)
this.$toast.clear()
if (JSON.parse(data).state == '1') {
@@ -996,8 +881,147 @@ export default {
}
}
},
created() {
async created() {
let data = {
orderNo: this.$route.query.orderNo
}
getOrderDetail(data).then(res => {
if (res.result == '0') {
let array = []
res.orderDTO.ebizSignDTOS.map(item => {
array.push(item.documentCode)
})
this.isPersonalInformation = array.findIndex(item => item === '12')
}
})
if (!this.isWeixin) {
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
img: this.$assetsUrl + 'images/del-close-btn@3x.png',
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
}, 100)
window.appCallBack = this.appCallBack
}
let that = this
// 获取当前时间的时间戳
// var day2 = new Date()
// var day = day2.setTime(day2.getTime())
// console.log(day)
// console.log(new Date('2020-01-01 23:59:59').getTime())
// if (day > new Date('2020-01-01 23:59:59').getTime()) {
// this.dayShow = true
// }
// 获取产品编码
// this.chooseProductCodes = JSON.parse(localStorage.chooseProductCodes)
that.detailJump = window.localStorage.getItem('detailJump')
if (this.detailJump == '1') {
this.pdfUrl = encodeURIComponent(config.imgDomain + `/returnDirectStream?imgPath=${localStorage.getItem('insurance-policyUrl')}`)
}
that.signVal = window.localStorage.getItem('sign-val')
// 判断是不是万能险
let comment = window.localStorage.getItem('productCode')
// if (comment == 'GFRS_M0003') {
if (comment == 'GFRS_M0003' || comment == 'GFRS_M0015' || comment == 'GFRS_M0017') {
this.isComment = true
}
// 获取投保人信息
that.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
// 在微信
if (this.isWeixin) {
// 在微信且不是回执签收
if (this.detailJump != '1') {
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
let imgBase64Data = sessionStorage.getItem('imgBase64Data')
let wxSigned = sessionStorage.getItem('wxSigned')
let signInfo = JSON.parse(localStorage.getItem('signInfo'))
console.log('`````````````````````````````````')
console.log('imgBase64Data:twoimgBase64Data ' + imgBase64Data)
console.log('wxSigned: ' + wxSigned)
if (wxSigned) {
console.log('第二次进入电子保单!')
console.log('that222222222222', that)
this.getOrderDetail().then(() => {
this.Time = true
this.isOver = true
this.radio = '1'
this.base64 = imgBase64Data
this.isDisabledComplite = false
console.log('signInfo.status:' + signInfo.status)
if (signInfo.status == '0') {
// this.appntSign.documentStatus = '3'
console.log('``````````````````')
this.$set(this.appntSign, 'documentStatus', '3')
console.log('appntSign.documentStatus: ' + this.appntSign.documentStatus)
this.isSign = false
this.isDisabledComplite = false
// this.isDisable = false
} else {
this.$set(this.insuredSign, 'documentStatus', '3')
// this.insuredSign.documentStatus = '3'
this.isDisabledComplite = false
this.isSign = false
}
})
} else {
console.log('````````````````````````')
console.log('第一次进入电子保单')
this.timeOut()
this.getOrderDetail()
}
} else {
// 在微信而且是回执签收
document.title = '保险合同签收回执电子确认书签名'
let imgBase64Data = sessionStorage.getItem('imgBase64Data')
let wxSigned = sessionStorage.getItem('wxSigned')
let signInfo = JSON.parse(localStorage.getItem('signInfo'))
console.log('`````````````````````````````````')
console.log('imgBase64Data:twoimgBase64Data ' + imgBase64Data)
console.log('wxSigned: ' + wxSigned)
if (wxSigned) {
console.log('第二次进入电子保单!')
console.log('that222222222222', that)
this.Time = true
this.isOver = true
this.radioSure = '1'
this.base64 = imgBase64Data
this.isDisabledComplite = false
console.log('signInfo.status:' + signInfo.status)
if (signInfo.status == '0') {
// this.appntSign.documentStatus = '3'
console.log('``````````````````')
this.$set(this.appntSign, 'documentStatus', '3')
console.log('appntSign.documentStatus: ' + this.appntSign.documentStatus)
this.isSign = false
this.isDisabledComplite = false
this.isSubmit = false
} else {
this.$set(this.insuredSign, 'documentStatus', '3')
// this.insuredSign.documentStatus = '3'
this.isDisabledComplite = false
this.isSign = false
}
}
}
} else {
// 不在微信且不是回执签收
if (this.detailJump != '1') {
// 投被保险人是否同人
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
// 获取被保险人信息
that.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
this.timeOut()
this.getOrderDetail()
} else {
// 不在微信但是在回执签收
document.title = '保险合同签收回执电子确认书签名'
}
}
},
computed: {
listenChange() {
@@ -1056,109 +1080,19 @@ export default {
}
}
},
async mounted() {
mounted() {
document.body.style.backgroundColor = '#fff'
let data = {
orderNo: this.$route.query.orderNo
}
getOrderDetail(data).then(res => {
if (res.result == '0') {
let array = []
res.orderDTO.ebizSignDTOS.map(item => {
array.push(item.documentCode)
})
this.isPersonalInformation = array.findIndex(item => item === '12')
}
})
if (!this.isWeixin) {
setTimeout(() => {
EWebBridge.webCallAppInJs('webview_left_button', {
img: this.$assetsUrl + 'images/del-close-btn@3x.png',
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
}, 100)
window.appCallBack = this.appCallBack
}
let that = this
that.detailJump = window.localStorage.getItem('detailJump')
if (this.detailJump == '1') {
this.pdfUrl = encodeURIComponent(config.imgDomain + `/returnDirectStream?imgPath=${localStorage.getItem('insurance-policyUrl')}`)
}
that.signVal = window.localStorage.getItem('sign-val')
// 判断是不是万能险
let comment = window.localStorage.getItem('productCode')
if (comment == 'GFRS_M0003' || comment == 'GFRS_M0015' || comment == 'GFRS_M0017') {
this.isComment = true
}
// 获取投保人信息
that.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
// 在微信
if (this.isWeixin) {
// 在微信且不是回执签收
if (this.detailJump != '1') {
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
let imgBase64Data = sessionStorage.getItem('imgBase64Data')
let wxSigned = sessionStorage.getItem('wxSigned')
let signInfo = JSON.parse(localStorage.getItem('signInfo'))
if (wxSigned) {
this.getOrderDetail().then(() => {
this.Time = true
this.isOver = true
this.radio = '1'
this.base64 = imgBase64Data
this.isDisabledComplite = false
if (signInfo.status == '0') {
this.$set(this.appntSign, 'documentStatus', '3')
this.isSign = false
this.isDisabledComplite = false
} else {
this.$set(this.insuredSign, 'documentStatus', '3')
this.isDisabledComplite = false
this.isSign = false
}
})
} else {
this.timeOut()
this.getOrderDetail()
}
} else {
// 在微信而且是回执签收
document.title = '保险合同签收回执电子确认书签名'
let imgBase64Data = sessionStorage.getItem('imgBase64Data')
let wxSigned = sessionStorage.getItem('wxSigned')
let signInfo = JSON.parse(localStorage.getItem('signInfo'))
if (wxSigned) {
this.Time = true
this.isOver = true
this.radioSure = '1'
this.base64 = imgBase64Data
this.isDisabledComplite = false
if (signInfo.status == '0') {
this.$set(this.appntSign, 'documentStatus', '3')
this.isSign = false
this.isDisabledComplite = false
this.isSubmit = false
} else {
this.$set(this.insuredSign, 'documentStatus', '3')
this.isDisabledComplite = false
this.isSign = false
}
}
}
} else {
// 不在微信且不是回执签收
if (this.detailJump != '1') {
// 投被保险人是否同人
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
// 获取被保险人信息
that.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
this.timeOut()
this.getOrderDetail()
} else {
// 不在微信但是在回执签收
document.title = '保险合同签收回执电子确认书签名'
}
}
// console.log('---签名投保单PDFurl:', this.pdfUrl, 'insurance-policyUrl', window.localStorage.getItem('insurance-policyUrl'))
// this.pdfUrl = "http://10.10.100.98:7012/updown/returnDirectStream?imgPath=Ra4LpmZv2h6FrwZPS48QIETiI2AcWWLx6RavVjoAkoMMdje9Cf6YWX3FlAKn%2FwOBIMX%2BfXJaM6sn%0D%0AiUe41vurjQJ65teJQwdrc2wcOn%2FJtQSVGLphInLPv0HGtHpZ3OhD"
// this.src = 'http://139.199.50.151:7000/pdfjs/web/viewer.html?file='
// console.log('------pdf url:', this.src + this.pdfUrl)
//实例化
// this.pdfh5 = new Pdfh5('#pdf', {
// pdfurl: config.imgDomain + `/returnDirectStream?imgPath=${window.localStorage.getItem('insurance-policyUrl')}`
// // pdfurl: res.data.content.content
// })
// 获取签名信息
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''

View File

@@ -62,7 +62,7 @@ export default {
// 倒计时时间
number: '',
// // 定时器时间
time: '2',
time: '10',
// // 定时器名称
timer: null,
isOver: false,
@@ -556,7 +556,34 @@ export default {
}
},
created() {
if (!this.isWeixin) {
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
img: this.$assetsUrl + 'images/del-close-btn@3x.png',
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
}, 100)
window.appCallBack = this.appCallBack
}
let that = this
that.detailJump = window.localStorage.getItem('detailJump')
that.signVal = window.localStorage.getItem('sign-val')
// 获取投保人信息
that.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
if (this.isWeixin) {
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
}
if (this.detailJump != '1') {
// 投被保险人是否同人
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
// 获取被保险人信息
that.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
}
},
computed: {
listenChange() {
@@ -596,30 +623,6 @@ export default {
}
},
async mounted() {
if (!this.isWeixin) {
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
img: this.$assetsUrl + 'images/del-close-btn@3x.png',
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
}, 100)
window.appCallBack = this.appCallBack
}
let that = this
that.detailJump = window.localStorage.getItem('detailJump')
that.signVal = window.localStorage.getItem('sign-val')
// 获取投保人信息
that.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
if (this.isWeixin) {
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
}
if (this.detailJump != '1') {
// 投被保险人是否同人
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
// 获取被保险人信息
that.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
}
if (this.detailJump != '1') {
this.getOrderDetail()
}
@@ -627,22 +630,39 @@ export default {
let imgBase64Data = sessionStorage.getItem('threeimgBase64Data')
let wxSigned = sessionStorage.getItem('threewxSigned')
let signInfo = localStorage.getItem('signInfo')
console.log('`````````````````````````````````')
console.log('imgBase64Data:threeimgBase64Data ' + imgBase64Data)
console.log('wxSigned: ' + wxSigned)
if (wxSigned) {
console.log('第二次进入电子保单')
console.log('````````````````````````````````')
let rs = await this.getOrderDetail()
console.log(rs)
if (rs === 'success') {
this.Time = true
this.radio = '1'
this.base64 = imgBase64Data
this.isDisabledComplite = false
if (signInfo.status == '1') {
// this.appntSign.signStatus = '1'
console.log('``````````````````')
console.log('appntSign:' + this.appntSign)
this.$set(this.appntSign, 'signStatus', '1')
this.isSubmit = false
this.isSign = false
} else {
// this.insuredSign.signStatus = '1'
console.log('````````````````````')
console.log('insuredSign:' + this.insuredSign)
this.$set(this.insuredSign, 'signStatus', '1')
// this.isDisabledComplite = false
}
}
console.log('第二次进入保单,完成状态查看')
console.log(this.isDisabledComplite)
} else {
console.log('````````````````````````')
console.log('第一次进入电子保单')
this.timeOut()
this.getOrderDetail()
}
@@ -654,6 +674,12 @@ export default {
}
document.body.style.backgroundColor = '#fff'
this.pdfUrl = encodeURIComponent(config.imgDomain + `/returnDirectStream?imgPath=${window.localStorage.getItem('insurance-policyUrl')}`)
//实例化
// this.pdfh5 = new Pdfh5('#pdf', {
// pdfurl: config.imgDomain + `/returnDirectStream?imgPath=${window.localStorage.getItem('insurance-policyUrl')}`
// // pdfurl: res.data.content.content
// })
// 获取签名信息
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''

View File

@@ -62,7 +62,7 @@ export default {
// 倒计时时间
number: '',
// 定时器时间
time: '2',
time: '10',
// 定时器名称
timer: null,
isOver: false,

View File

@@ -93,7 +93,7 @@ export default {
// 倒计时时间
number: '',
// // 定时器时间
time: '2',
time: '10',
// // 定时器名称
timer: null,
isOver: false,
@@ -343,7 +343,7 @@ export default {
}
submit(data).then(res => {
if (res.result == '0') {
if (res.reslut == '0') {
this.$toast.clear()
window.localStorage.setItem('submitStatus', res.result)
this.$jump({

View File

@@ -32,7 +32,7 @@ export default {
// 倒计时时间
number: '',
// 定时器时间
time: '2',
time: '10',
// 定时器名称
timer: null,
isOver: false,
@@ -60,10 +60,33 @@ export default {
[NoticeBar.name]: NoticeBar
},
created() {
this.init()
},
mounted() {
this.init()
// let readingType = localStorage.getItem('readingProtocolType')
// if (readingType && readingType === '1') {
// this.protocol = true
// }
// let that = this
// // {{switchFlag.Time?pageVariable.msg:pageVariable.number}}
// that.timeOut()
// that.activeType = window.localStorage.getItem('activeType')
// // Notify({
// // type: 'warning',
// // message: `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上`,
// // duration: 10000,
// // background: '#999999',
// // className: 'notify'
// // })
// document.body.style.backgroundColor = '#fff'
// that.signVal = window.localStorage.getItem('sign-val')
// // if (JSON.parse(window.localStorage.getItem('sign-insured'))) {
// // that.insuredSign = JSON.parse(window.localStorage.getItem('sign-insured'))
// // }
// // if (JSON.parse(window.localStorage.getItem('sign-appnt'))) {
// // that.appntSign = JSON.parse(window.localStorage.getItem('sign-appnt'))
// // }
},
methods: {
async init(){
@@ -117,18 +140,11 @@ export default {
// 获取PDF的路径
getOrderDetail() {
let that = this
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let data = {
orderNo: that.$route.query.orderNo
}
return new Promise((resolve, reject) => {
getOrderDetail(data).then(res => {
this.$toast.clear()
if (res.result == '0') {
res.orderDTO.insuredDTOs[0].riskDTOLst.forEach(item => {
if(item.isMainRisk == '0'){
@@ -339,9 +355,9 @@ export default {
})*/
// 若需展示 短期健康险投保须知,则优先展示
that.appntSign.map(item => {
if (item.documentCode == '9') {
url = 'shortPeriodProduct'
}
if (item.documentCode == '9') {
url = 'shortPeriodProduct'
}
})
this.$jump({
flag: 'h5',
@@ -531,14 +547,14 @@ export default {
})
}
this.$jump({
flag: 'h5',
extra: {
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + url + '?orderNo=' + that.$route.query.orderNo,
forbidSwipeBack: '1'
},
routerInfo: {
},
routerInfo: {
path: '/sale/' + url + '?orderNo=' + that.$route.query.orderNo
}
}
})
}
} else {

View File

@@ -31,7 +31,7 @@
// 倒计时时间
number: '',
// 定时器时间
time: '2',
time: '10',
// 定时器名称
timer: null,
isOver: false,
@@ -62,7 +62,6 @@
mounted() {
let that = this
document.body.style.backgroundColor = '#fff'
that.getOrderDetail();
setTimeout(function() {
closeLoading()
that.timeOut()
@@ -79,6 +78,7 @@
}, 100)
window.appCallBack = this.appCallBack
}
this.getOrderDetail();
let that = this;
that.signVal = window.localStorage.getItem('sign-val')
},
@@ -131,19 +131,13 @@
},
// 获取签名状态
getOrderDetail() {
openLoading()
let that = this
let data = {
orderNo: that.$route.query.orderNo
}
that.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
return new Promise((resolve) => {
getOrderDetail1(data).then(res => {
that.$toast.clear()
if (res.result == '0') {
for(let i = 0;i<res.orderDTO.ebizSignDTOS.length;i++){
if (res.orderDTO.ebizSignDTOS[i].signType == '0' || res.orderDTO.ebizSignDTOS[i].signType == '2') {

View File

@@ -31,7 +31,7 @@ export default {
// 倒计时时间
number: '',
// 定时器时间
time: '2',
time: '10',
// 定时器名称
timer: null,
isOver: false,

View File

@@ -47,7 +47,7 @@ export default {
// 倒计时时间
number: '',
// 定时器时间
time: '2',
time: '10',
// 定时器名称
timer: null,
isOver: false,
@@ -82,15 +82,16 @@ export default {
[Dialog.name]: Dialog,
[NoticeBar.name]: NoticeBar
},
created() {
},
async mounted() {
mounted() {
let that = this
that.timeOut()
document.body.style.backgroundColor = '#fff'
// 当前代理人渠道--个险渠道,中介渠道
},
async created() {
// 当前代理人渠道--个险渠道,中介渠道
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.branchTypeVal = dataReturn.branchTypeVal
if (!this.isWeixin) {
setTimeout(() => {
// eslint-disable-next-line no-undef
@@ -113,29 +114,48 @@ export default {
if (this.detailJump != '1') {
// 投被保险人是否同人
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
// 获取被保险人信息
// that.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
}
// if (this.detailJump != '1') {
// this.getOrderDetail()
// }
if (this.isWeixin) {
let imgBase64Data = sessionStorage.getItem('twoimgBase64Data')
let wxSigned = JSON.parse(sessionStorage.getItem('twowxSigned'))
// let wxSigned = false
let signInfo = JSON.parse(localStorage.getItem('signInfo'))
console.log('`````````````````````````````````')
console.log('imgBase64Data: twoimgBase64Data:' + imgBase64Data)
console.log('wxSigned: ' + wxSigned)
if (wxSigned) {
console.log('第二次进入电子保单')
console.log('````````````````````````````````')
this.getOrderDetail().then(() => {
this.Time = true
this.isOver = true
this.radio = '1'
this.base64 = imgBase64Data
this.isDisabledComplite = false
console.log('signInfo.status:' + signInfo.status)
if (signInfo.status == '0') {
// this.appntSign.documentStatus = '3'
console.log('``````````````````')
this.$set(this.appntSign, 'documentStatus', '3')
console.log('appntSign.documentStatus: ' + this.appntSign.documentStatus)
this.isSign = false
this.isDisabledComplite = false
// this.isDisable = false
} else {
this.$set(this.insuredSign, 'documentStatus', '3')
// this.insuredSign.documentStatus = '3'
this.isDisabledComplite = false
this.isSign = false
}
})
} else {
console.log('第一次进入电子保单')
this.timeOut()
this.getOrderDetail()
}
@@ -145,7 +165,6 @@ export default {
this.getOrderDetail()
}
}
this.timeOut()
},
methods: {
appCallBack(data) {
@@ -201,15 +220,8 @@ export default {
let data = {
orderNo: that.$route.query.orderNo
}
that.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
return new Promise((resolve, reject) => {
getOrderDetail(data).then(res => {
that.$toast.clear()
if (res.result == '0') {
// 截取代理人机构号的前六位,用于去判断是否属于柳州代理人
if(res.orderDTO.recmdDTO.managerOrg && res.orderDTO.recmdDTO.managerOrg.length >= 6){

View File

@@ -20,8 +20,6 @@
<van-cell title="证件类型" :value="appntDTO.idTypeText" />
<van-cell title="证件号码" :value="appntDTO.idNo" />
<van-cell title="联系电话" :value="appntDTO.mobileStar" />
<!-- <van-cell title="新市民身份" v-if="manageComCode == '45'" :value="appntDTO.isNewPeopleFlagText" />-->
<!-- <van-cell v-if="appntDTO.isNewPeopleFlagText == '是' && manageComCode == '45'" title="新市民类型" :value="appntDTO.npTypeTypeText" />-->
</van-cell-group>
</van-collapse-item>
@@ -35,8 +33,6 @@
<van-cell title="证件类型" :value="item.idTypeText" />
<van-cell title="证件号码" :value="item.idNo" />
<van-cell title="联系电话" :value="item.mobile" />
<!-- <van-cell title="新市民身份" v-if="manageComCode == '45'" :value="item.isNewPeopleFlagText" />-->
<!-- <van-cell v-if="item.isNewPeopleFlagText == '是' && manageComCode == '45'" title="新市民类型" :value="item.npTypeText" />-->
</van-cell-group>
</van-collapse-item>
<div v-for="(itm, i) in item.bnfDTOs" :key="i" class="pb10">
@@ -106,7 +102,6 @@ import { getAuthCode, autchCodeCheck } from '@/api/ebiz/sale/sale'
import { checkPhone } from '@/api/ebiz/customer/customer'
import dataDictionary from '@/assets/js/utils/data-dictionary' //根据数据字典进行页面展示
import { formatAllRisk } from '@/assets/js/utils/formatRiskList'
import riskRules from '@/views/ebiz/common/risk-rules'
export default {
data() {
return {
@@ -136,7 +131,7 @@ export default {
insuredDTOs: [],
// 保单号
contNo: '',
manageComCode:'',//代理人管理机构 52贵州 45广西
list: []
}
},
@@ -155,10 +150,6 @@ export default {
// 获取保单详情
this.getPolicyDetail()
},
async mounted() {
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.manageComCode = dataReturn.manageComCode
},
components: {
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
@@ -287,8 +278,6 @@ export default {
that.OrderInfoDTO = orderInfoDTO
// 投保人信息
this.filterData(dataDictionary.sex, 'sex', appntDTO)
this.filterData(dataDictionary.isNewPeopleFlag, 'isNewPeopleFlag', appntDTO)
this.filterData(dataDictionary.npType, 'isNewPeopleFlag', appntDTO)
this.filterData(dataDictionary.idType, 'idType', appntDTO)
that.appntDTO = appntDTO
this.$CacheUtils.setLocItem('saleInsuredInfo', JSON.stringify(appntDTO))
@@ -329,15 +318,11 @@ export default {
}
})
this.filterData(dataDictionary.sex, 'sex', insured)
this.filterData(dataDictionary.isNewPeopleFlag, 'isNewPeopleFlag', insured)
this.filterData(dataDictionary.npType, 'npType', insured)
this.filterData(dataDictionary.idType, 'idType', insured)
this.filterData(dataDictionary.relationToAppnt, 'relation', insured)
insured.bnfDTOs.map(bnf => {
this.filterData(dataDictionary.bnfType, 'bnfType', bnf)
this.filterData(dataDictionary.sex, 'sex', bnf)
this.filterData(dataDictionary.isNewPeopleFlag, 'isNewPeopleFlag', bnf)
this.filterData(dataDictionary.npType, 'npType', bnf)
this.filterData(dataDictionary.idType, 'idType', bnf)
this.filterData(dataDictionary.relationToAppnt, 'relation', bnf)
})

View File

@@ -1,3 +1,11 @@
/*
* @Author: jiawei jia.wei@ebiz-digits.com
* @Date: 2023-03-01 17:02:34
* @LastEditors: jiawei jia.wei@ebiz-digits.com
* @LastEditTime: 2023-03-01 17:02:56
* @FilePath: \ebiz-h5\vue.config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
const autoprefixer = require('autoprefixer')
const pxtoviewport = require('postcss-px-to-viewport')
@@ -24,17 +32,14 @@ module.exports = {
chainWebpack: config => {
// 移除 prefetch 插件
config.plugins.delete('prefetch')
// 或者
// 修改它的选项:
// config.plugin('prefetch').tap(options => {
// options[0].fileBlacklist = options[0].fileBlacklist || []
// options[0].fileBlacklist.push(/myasyncRoute(.)+?\.js$/)
// return options
// // 压缩代码
// config.optimization.minimize(true)
// // 分割代码
// config.optimization.splitChunks({
// chunks: 'all',
// })
},
devServer: {
// host:'localhost',
port: 8082
}
}