Compare commits

..

43 Commits

Author SHA1 Message Date
liu.xiaofeng@ebiz-digits.com
f1d1d427a3 健康险续保营业部经理可以编辑未续报原因 2023-11-27 18:14:54 +08:00
liu.xiaofeng@ebiz-digits.com
bca713cc29 由列表页面跳转详情页面路由传参由原来的固定调整为动态的值 2023-11-27 18:14:39 +08:00
liu.xiaofeng@ebiz-digits.com
32efc01229 健康险续保搜索栏操作逻辑修改2 2023-11-27 18:14:27 +08:00
liu.xiaofeng@ebiz-digits.com
9e0424bf00 健康险续保搜索栏操作逻辑修改1 2023-11-27 18:14:21 +08:00
liu.xiaofeng@ebiz-digits.com
7d0cffe7fb 健康险续保搜索栏操作逻辑修改 2023-11-27 18:14:18 +08:00
liu.xiaofeng@ebiz-digits.com
e1683e5ade 健康险续保列表页面搜索框功能修改并新增模糊搜索营业部经理下的代理人列表数据 2023-11-27 18:14:13 +08:00
liu.xiaofeng@ebiz-digits.com
f21a5b2ea3 选择服务经理的弹窗数据展示效果调整为两个字段展示并做切换效果 2023-11-27 18:14:05 +08:00
liu.xiaofeng@ebiz-digits.com
fecc1e6eaa 营业部经理增加选择按钮并添加下拉弹窗 2023-11-27 18:13:52 +08:00
liu.xiaofeng@ebiz-digits.com
87ce8a30c3 区分营业部经理和服务经理的数据显示 2023-11-27 18:13:46 +08:00
liu.xiaofeng@ebiz-digits.com
8769293cba 自动计算健康险续保选择月份的第一天和最后一天的日期 2023-11-27 18:12:03 +08:00
liu.xiaofeng@ebiz-digits.com
2ed6d9dba0 对接健康险续保得接口并调整相关字段展示1 2023-11-27 18:11:53 +08:00
liu.xiaofeng@ebiz-digits.com
d3163a3cb8 对接健康险续保得接口并调整相关字段展示 2023-11-27 18:11:41 +08:00
liu.xiaofeng@ebiz-digits.com
934fc3ae46 增加健康险清单和健康险详情接口 2023-11-27 18:11:22 +08:00
liu.xiaofeng@ebiz-digits.com
354c1d0ac8 健康险续保列表接口对接 2023-11-27 18:11:04 +08:00
liu.xiaofeng@ebiz-digits.com
56795d7e00 续保列表与详情页面效果细节调整 2023-11-27 18:10:59 +08:00
liu.xiaofeng@ebiz-digits.com
0200f2763d xubao 2023-11-27 18:10:50 +08:00
liu.xiaofeng@ebiz-digits.com
c616c28b2c 建议书保费试算页面鑫管家B款终身寿险(万能型)改动保额不调用试算接口 2023-11-27 18:09:19 +08:00
liu.xiaofeng@ebiz-digits.com
19afc6a83a 自动获取试算接口信息并隐藏保费试算页面显示的保额字段 计划书利益演算页面隐藏保额相关字段 2023-11-27 18:09:15 +08:00
liu.xiaofeng@ebiz-digits.com
bdff1b73d5 投保那显示的字段里,也修改一下:单独投保保费为5万元
如果输入关联保单,自动跳为100元
不给更改
2023-11-27 18:09:05 +08:00
liu.xiaofeng@ebiz-digits.com
7b60b94fde 鑫管家B款终身寿险(万能型)清空关联的保单时 重置保费默认值1 2023-11-27 18:09:00 +08:00
liu.xiaofeng@ebiz-digits.com
6c045b1e5a 鑫管家B款终身寿险(万能型)清空关联的保单时 重置保费默认值 2023-11-27 18:08:55 +08:00
liu.xiaofeng@ebiz-digits.com
25dd40e296 单独投保,保费为大于等于50000元 2023-11-27 18:07:59 +08:00
liu.xiaofeng@ebiz-digits.com
11d877feff 单独投保,保费为大于等于50000元 2023-11-27 18:07:54 +08:00
liu.xiaofeng@ebiz-digits.com
9aa38c51cb 单独投保,保费为大于等于50000元 2023-11-27 18:07:49 +08:00
liu.xiaofeng@ebiz-digits.com
c23f233b99 国富人寿鑫管家B款终身寿险(万能型)增加抄录 2023-11-27 18:07:44 +08:00
liu.xiaofeng@ebiz-digits.com
da7a8851e5 将被保人文件数组排序 2023-11-27 18:05:33 +08:00
liu.xiaofeng@ebiz-digits.com
a0d9841298 补充校验健康险保单费用落地管控规则的申请 2023-11-27 18:04:32 +08:00
liu.xiaofeng@ebiz-digits.com
e77eda9be2 卡单接口对接 2023-11-27 18:04:28 +08:00
liu.xiaofeng@ebiz-digits.com
d8ac03e0b1 银保-国富人寿年年丰C款两全保险(分红型)产品定义系统需求增加抄录 2023-11-27 18:01:33 +08:00
liu.xiaofeng@ebiz-digits.com
8d285e28fa 签字确认页面去掉支付按钮 2023-11-27 17:58:36 +08:00
liu.xiaofeng@ebiz-digits.com
99754e3e15 上传银行卡信息页面点击保存区分开门红产品与普通产品的业务逻辑 2023-11-27 17:58:30 +08:00
liu.xiaofeng@ebiz-digits.com
a59c4e4c7b 上传银行卡信息页面隐藏短信验证码 2023-11-27 17:58:26 +08:00
liu.xiaofeng@ebiz-digits.com
dfc90d359e 调整个险渠道电投产品的保单支付流程 2023-11-27 17:58:22 +08:00
liu.xiaofeng@ebiz-digits.com
e45bfb3041 支付流程调整—转核心批量扣款 2023-11-27 17:58:18 +08:00
liu.xiaofeng@ebiz-digits.com
af9d2399ea 在“选择产品”页面,点击【开门产品】按钮后选择产品进行试算,在“签名确认”页面展示【指定保单生效日】字段
增加“指定保险合同生效日说明”阅读确认文档
2023-11-27 17:58:11 +08:00
liu.xiaofeng@ebiz-digits.com
e7d61e01d6 调整选择产品开门红弹窗产品类型内容展示样式居中 2023-11-27 17:57:59 +08:00
liu.xiaofeng@ebiz-digits.com
fccc592ba9 指定生效日说明文件参数传递修改 2023-11-27 17:57:52 +08:00
liu.xiaofeng@ebiz-digits.com
1fbbbabb2c 指定生效日说明文件参数传递修改 2023-11-27 17:57:48 +08:00
liu.xiaofeng@ebiz-digits.com
c2dc47c15a 调整贵州地图显示页面右下角显示的图标大小 2023-11-27 17:57:37 +08:00
liu.xiaofeng@ebiz-digits.com
295bfdb167 调整地图页面显示的图标大小 2023-11-27 17:57:31 +08:00
liu.xiaofeng@ebiz-digits.com
989ac6ecad 选择产品页面更换多个图片 贵州地图轮播图页面更换图标 2023-11-27 17:57:26 +08:00
liu.xiaofeng@ebiz-digits.com
a97ffeb415 更换开门红菜单页面背景图 2023-11-27 17:57:22 +08:00
liu.xiaofeng@ebiz-digits.com
03a2a7ef24 开门红业绩查询排名字段调整 2023-11-27 17:57:17 +08:00
86 changed files with 2950 additions and 5444 deletions

View File

@@ -1,91 +0,0 @@
import request from '@/assets/js/utils/request'
import getUrl from '@/assets/js/utils/get-url'
// 查询登录人所属项目列表
export function gbcProjectList(data) {
return request({
url: getUrl('/agent/gbc/project/list', 1),
method: 'post',
data
})
}
// 查询项目详情
export function gbcProjectDetail(data) {
return request({
url: getUrl('/agent/gbc/project/detail', 1),
method: 'post',
data
})
}
// 此接口是后端用于将GBC项目信息同步至登录用户信息即UserModel中的接口前端在选中项目后需要调用此接口。
export function gbcProjectConfirm(data) {
return request({
url: getUrl('/agent/gbc/project/confirm', 1),
method: 'post',
data
})
}
// GBC获取首页轮播图和上头条内容
export function homeConfigGBC(data) {
return request({
url: getUrl('/customer/agent/homeConfigGBC', 1,3),
method: 'get',
data
})
}
// 根据项目编码获取科室信息
export function getDepartmentByProjectNo(data) {
return request({
url: getUrl('/agent/gbc/project/getDepartmentByProjectNo', 1),
method: 'post',
data
})
}
// 按年份查询登录人所属项目列表
export function getGBCprojectlistByYear(data) {
return request({
url: getUrl('/agent/gbc/project/listByYear', 1),
method: 'post',
data
})
}
// 查询项目下的客户列表
export function getGBCappntlist(data) {
return request({
url: getUrl('/sale/gbc/appnt/list', 1),
method: 'post',
data
})
}
// 查询项目下的客户列表
export function getGBCappntDetail(data) {
return request({
url: getUrl('/sale/gbc/appnt/detail', 1),
method: 'post',
data
})
}
// 保存客户类型
export function getGBCappntTypeSave(data) {
return request({
url: getUrl('/sale/gbc/appnt/type/save', 1),
method: 'post',
data
})
}
// 保存客户沟通记录
export function getGBCappntConnectSave(data) {
return request({
url: getUrl('/sale/gbc/appnt/connect/save', 1),
method: 'post',
data
})
}

View File

@@ -90,11 +90,3 @@ export function queryOutPosters(data) {
})
}
//大单榜海报列表接口
export function queryOutPostersBig(data) {
return request({
url: getUrl(`/sale/makePosters/queryOutPostersBig`, 1),
method: 'post',
data
})
}

View File

@@ -364,16 +364,6 @@ export function getDoubleRecordProductLst(data) {
})
}
// 指定受益人身份四要素
export function checkAppointBnf(data) {
return request({
url: getUrl('/sale/bnfCheck/checkAppointBnf ', 1),
method: 'post',
data
})
}
export function appntIsAgent(data) {
return request({
url: getUrl('/sale/insure/appntIsAgent', 1),
@@ -381,12 +371,3 @@ export function appntIsAgent(data) {
data
})
}
export function saveOrderType(data) {
return request({
url: getUrl('/sale/order/saveOrderType', 1),
method: 'post',
data
})
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 579 KiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 KiB

After

Width:  |  Height:  |  Size: 613 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

@@ -21,7 +21,7 @@ export default {
return startDate = thisyear + '-02-28'
}
}else{
return startDate = String(Number(endDate.slice(0, 4)) - 5) + endDate.slice(4, 11)
return startDate = String(Number(endDate.slice(0, 4)) - 5) + startDate.slice(4, 11)
}
}
/**
@@ -141,7 +141,7 @@ export default {
* @Description: 年满46周岁的公民申领居民身份证有效期为长期
* @Date: 2023/7/4
**/
else if (startage > 45) {
else if (startage > 65) {
return endDate
}
},

View File

@@ -1773,7 +1773,7 @@ export default {
},
{
id: '07',
text: '核保失败'
text: '公司谢绝'
},
{
id: '08',
@@ -1977,7 +1977,7 @@ export default {
},
{
id: '58',
text: '支付'
text: '转人核支付'
},
{
id: '59',
@@ -3887,10 +3887,6 @@ export default {
{
code: "riskCost_M",
label: "元"
},
{
code: "GFRS_M0087__cashValue",
label: "元"
}
],
// 卡单与短期险重新投保选择职业类别时,两个模块职业类型数据的排序不同,创建这个数据字典,用于在选择职业类别时,作为一个参数传入组件,

View File

@@ -22,7 +22,6 @@ body {
html {
height: auto;
max-height: 100%;
font-size: 1px;
}
a,

View File

@@ -1,78 +0,0 @@
<template>
<div class="index">
<div class="navigator-item" v-for="(item, index) in navigatorItems" :key="index">
<span class="title" :class="{ active: index === current }" @click="jump(index)">{{ index + 1 }}.{{ item }}</span>
<div v-if="showArrow(index)" class="arrow">
<div class="arrow-line" :style="{ backgroundColor: index === current ? 'red' : '' }" />
<van-icon name="arrow" :class="{ active: index === current }" />
</div>
</div>
</div>
</template>
<script>
export default {
name: 'BreadcrumbNavigator',
props: {
current: {
type: Number,
default: 0
},
moveOn: {
type: Boolean,
default: false
}
},
data() {
return {
navigatorItems: ['投保人信息', '选择被保人', '生成建议书'],
routerInfos: ['proposal/appnt', 'proposal/chooseInsuredPerson']
}
},
methods: {
jump(index) {
if (index === this.current || index == 2) return
if (this.moveOn) {
let thisMyUrl = this.routerInfos[index]
if (this.$route.query.proposalOrderNo) {
thisMyUrl = this.routerInfos[index] + '?proposalOrderNo=' + this.$route.query.proposalOrderNo
}
this.$router.push({ path: '/' + thisMyUrl })
}
},
showArrow(index) {
return index + 1 != this.navigatorItems.length
}
}
}
</script>
<style lang="scss" scoped>
.index {
display: flex;
align-items: center;
justify-content: center;
.navigator-item {
display: flex;
align-items: center;
margin: 5px 2px;
.title {
font-size: 14px;
}
.active {
color: red;
}
.arrow {
display: flex;
align-items: center;
}
.arrow-line {
width: 10px;
height: 1px;
background-color: #2c3e50;
border-radius: 1px;
margin-left: 2px;
}
}
}
</style>

View File

@@ -1,34 +1,29 @@
<template>
<div>
<div class="own_content">
<ul class="index-bar">
<li @click="changePage(item.pageNo)" v-for="(item, index) in pageTitle" :key="index" :class="item.tabClass" :id="item.tabClass" v-if="item.show">
<!-- 选中 -->
<div v-if="item.tabClass" class="flex justify-content-fs align-items-c">
<div class="flex flex-direction-colunm align-items-c">
<van-image :src="item.imgCheckedUrl" class="image_head" />
<span class="fs12 mt12">{{ item.pageItem }}</span>
</div>
<van-image :src="doneUrl" v-if="index !== 10" class="image_done" />
<div class="own_content">
<ul class="index-bar">
<li @click="changePage(item.pageNo)" v-for="(item, index) in pageTitle" :key="index" :class="item.tabClass" :id="item.tabClass" v-if="item.show">
<!-- 选中 -->
<div v-if="item.tabClass" class="flex justify-content-fs align-items-c">
<div class="flex flex-direction-colunm align-items-c">
<van-image :src="item.imgCheckedUrl" class="image_head" />
<span class="fs12 mt12">{{ item.pageItem }}</span>
</div>
<div v-if="!item.tabClass" class="flex justify-content-fs align-items-c">
<div class="flex flex-direction-colunm align-items-c">
<van-image :src="item.imgNoCheckedUrl" class="image_head" />
<span class="fs12 mt12" style="color: #999999">{{ item.pageItem }}</span>
</div>
<van-image :src="doneNurl" v-if="index !== 10" class="image_done" />
<van-image :src="doneUrl" v-if="index !== 10" class="image_done" />
</div>
<div v-if="!item.tabClass" class="flex justify-content-fs align-items-c">
<div class="flex flex-direction-colunm align-items-c">
<van-image :src="item.imgNoCheckedUrl" class="image_head" />
<span class="fs12 mt12" style="color: #999999">{{ item.pageItem }}</span>
</div>
</li>
</ul>
</div>
<p v-if="branchType == '13'" style="margin-top: 10px;color: red;background-color: #ffdddc;padding: 5px 10px;">提示您目前正在投保的项目为{{projectName}}</p>
<van-image :src="doneNurl" v-if="index !== 10" class="image_done" />
</div>
</li>
</ul>
</div>
</template>
<script>
import { Icon, Image } from 'vant'
import { getOrderDetail1 } from '@/api/ebiz/sale/sale'
import { gbcProjectDetail } from '@/api/GBC/GBC'
export default {
name: 'IndexBar',
props: {
@@ -56,8 +51,6 @@ export default {
},
data() {
return {
branchType:'',
projectName:'',
thisShow: false,
doneUrl: this.$assetsUrl + 'images/kmh/done.png',
doneNurl: this.$assetsUrl + 'images/kmh/done_n.png',
@@ -166,7 +159,7 @@ export default {
salePageFlag: Number(localStorage.salePageFlag)
}
},
async mounted() {
mounted() {
let that = this
let data = {
orderNo: that.$route.query.orderNo
@@ -194,32 +187,11 @@ export default {
})
}
}
if(this.$route.query.orderNo) {
this.projectName = res.orderDTO.ebizOrderGbcRelDTO.projectName
}
}
})
this.selectTab()
if(window.localStorage.getItem('branchType') == '13') {
this.branchType = '13'
if(!this.$route.query.orderNo) {
that.gbcProjectDetail()
}
}
},
methods: {
gbcProjectDetail(){
let params = {
}
gbcProjectDetail(params).then(res=>{
if(res.result == '0') {
this.projectName = res.content.projectName
} else {
this.$toast(res.resultMessage)
}
})
},
changePage(pageIndex) {
let url = ''
//由 localStorage.salePageFlag 来控制是否可跳到指定页面

View File

@@ -29,29 +29,29 @@ function getSearchString (key) {
}
return obj[key]
}
let apiVersion = 'v2'
var ua = window.navigator.userAgent.toLowerCase()
//通过正则表达式匹配ua中是否含有MicroMessenger字符串, 在微信
if (localStorage.getItem('apiVersion')) {
apiVersion = localStorage.getItem('apiVersion')
} else {
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
//report/reportList数据报表页面在浏览器可以打开了但在微信或企业微信中打开不了,接口请求不需要token
if (window.location.href.indexOf('apiVersion') > 0) {
apiVersion = getSearchString('apiVersion') == 'V3' ? 'v3' : 'v2';//url中apiVersion没有时为v2
} else {
apiVersion = 'v3'
}
} else {
// 在app
if (navigator.userAgent.indexOf('JZG_') > 0) {
apiVersion = navigator.userAgent.split('JZG_')[1].split('/')[0].split('_')[1] == 'V3' ? 'v3' : 'v2'
}
}
window.localStorage.setItem('apiVersion', apiVersion)
}
// 可以多个接口域名,按需添加
console.log('环境:', process.env.VUE_APP_FLAG)
let apiVersion = 'v1'
// var ua = window.navigator.userAgent.toLowerCase()
// //通过正则表达式匹配ua中是否含有MicroMessenger字符串, 在微信
// if (localStorage.getItem('apiVersion')) {
// apiVersion = localStorage.getItem('apiVersion')
// } else {
// if (ua.match(/MicroMessenger/i) == 'micromessenger') {
// //report/reportList数据报表页面在浏览器可以打开了但在微信或企业微信中打开不了,接口请求不需要token
// if (window.location.href.indexOf('apiVersion') > 0) {
// apiVersion = getSearchString('apiVersion') == 'V3' ? 'v3' : 'v2';//url中apiVersion没有时为v2
// } else {
// apiVersion = 'v3'
// }
// } else {
// // 在app
// if (navigator.userAgent.indexOf('JZG_') > 0) {
// apiVersion = navigator.userAgent.split('JZG_')[1].split('/')[0].split('_')[1] == 'V3' ? 'v3' : 'v2'
// }
// }
// window.localStorage.setItem('apiVersion', apiVersion)
// }
// // 可以多个接口域名,按需添加
// console.log('环境:', process.env.VUE_APP_FLAG)
switch (process.env.VUE_APP_FLAG) {
case 'dev':
apiDomain = 'https://iagentsales-test2.e-guofu.com:5200/api/' + apiVersion // 国富api ///api/v1

View File

@@ -1,44 +0,0 @@
//数据报表 定义相关组件
const GBC_home = () => import('@/views/GBC/home')
const GBC_projectList = () => import('@/views/GBC/projectList')
const GBC_projectDetail = () => import('@/views/GBC/projectDetail')
const GBC_customerDetail = () => import('@/views/GBC/customerDetail')
export default [
{
path: '/GBC/home',
name: 'GBC_home',
component: GBC_home,
meta: {
title: '首页',
index: 1
}
},
{
path: '/GBC/projectList',
name: 'GBC_projectList',
component: GBC_projectList,
meta: {
title: '项目列表',
index: 1
}
},
{
path: '/GBC/projectDetail',
name: 'GBC_projectDetail',
component: GBC_projectDetail,
meta: {
title: '项目详情',
index: 1
}
},
{
path: '/GBC/customerDetail',
name: 'GBC_customerDetail',
component: GBC_customerDetail,
meta: {
title: '编辑客户信息',
index: 1
}
},
]

View File

@@ -23,7 +23,7 @@ export default [
name: 'Prefecture',
component: PerformanceReport,
meta: {
title: '一月业绩查询'
title: '开门红业绩查询'
}
},
{
@@ -31,7 +31,7 @@ export default [
name: 'Prefecture',
component: Prefecture,
meta: {
title: '一月专区'
title: '开门红专区'
}
},
{
@@ -53,7 +53,7 @@ export default [
name: 'GoodStartScheme',
component: GoodStartScheme,
meta: {
title: '一月方案'
title: '开门红方案'
}
},
{
@@ -61,7 +61,7 @@ export default [
name: 'businessMap',
component: businessMap,
meta: {
title: '一月业务地图'
title: '开门红业务地图'
}
},
{
@@ -77,7 +77,7 @@ export default [
name: 'newsPaper',
component: newsPaper,
meta: {
title: '一月实时贺报'
title: '开门红实时贺报'
}
}
]

View File

@@ -49,10 +49,6 @@ import allowance from './allowance'
import cooperativeUnit from './cooperativeUnit'
// YB_APP
import YB_APP from '../YB_APP/index'
// GBC
import GBC from '../GBC/index'
// test
import test from '../test/index'
//健康险续保
import healthInsuranceRenewal from './healthInsuranceRenewal'
export default [
@@ -93,7 +89,5 @@ export default [
...allowance,
...cooperativeUnit,
...YB_APP,
...GBC,
...test,
...healthInsuranceRenewal
] //根据需要进行删减

View File

@@ -37,9 +37,6 @@ const PayResultFail = () => import('@/views/ebiz/sale/PayResultFail')
const apointValidDoc = () => import('@/views/ebiz/sale/apointValidDoc')
const shortPeriodProduct = () => import('@/views/ebiz/sale/shortPeriodProduct')
const commitmentSelfProtect = () => import('@/views/ebiz/sale/commitmentSelfProtect')
const readDocuments = () => import('@/views/ebiz/sale/readDocuments')
const signDocuments = () => import('@/views/ebiz/sale/signDocuments')
let riskName = localStorage.riskName
console.log('sale/riskName==', riskName)
export default [
@@ -331,21 +328,5 @@ export default [
meta: {
title: '国富人寿投保风险承受能力测评表'
}
},
{
path: '/sale/readDocuments',
name: 'readDocuments',
component: readDocuments,
meta: {
title: '阅读文件'
}
},
{
path: '/sale/signDocuments',
name: 'signDocuments',
component: signDocuments,
meta: {
title: '签名页面'
}
}
]

View File

@@ -1,14 +0,0 @@
//数据报表 定义相关组件
const test_home = () => import('@/views/test/home')
export default [
{
path: '/test/home',
name: 'test_home',
component: test_home,
meta: {
title: '首页',
index: 1
}
},
]

View File

@@ -31,8 +31,6 @@ export default new Vuex.Store({
YBidNo: '', //银保代理人电子化合同签署证件号码
YBname: '', //银保代理人电子化合同签署姓名
YBuuid: '', //银保代理人电子化合同签署代理人uuid
appntSign: '', //投保人阅读签署文件
insuredSign: '', //被保人阅读签署文件
},
mutations: {
setOrderDetail (state, data) {
@@ -95,14 +93,6 @@ export default new Vuex.Store({
updateYBuuid (state, val) {
state.YBuuid = val
},
//更新 投保人阅读签署文件
updateappntSign (state, val) {
state.appntSign = val
},
//更新 被保人阅读签署文件
updateinsuredSign (state, val) {
state.insuredSign = val
},
},
getters: {
getPageFlag (state) {
@@ -138,12 +128,6 @@ export default new Vuex.Store({
getYBuuid (state) {
return state.YBuuid
},
getappntSign (state) {
return state.appntSign
},
getinsuredSign (state) {
return state.insuredSign
},
}
})

View File

@@ -1,400 +0,0 @@
<template>
<div>
<div style="background: #fff;margin: 10px;padding: 10px;border-radius: 5px;">
<div style="display: flex;font-size: 14px;font-weight: bold;">
<span style="width: 25%;display: flex;align-items: center;align-items: center;line-height: 30px;justify-content: center;">保单数量</span>
<span style="width: 25%;display: flex;align-items: center;align-items: center;line-height: 30px;justify-content: center">家庭成员</span>
<span style="width: 25%;display: flex;align-items: center;align-items: center;line-height: 30px;justify-content: center;">总保额</span>
<span style="width: 25%;display: flex;align-items: center;align-items: center;line-height: 30px;justify-content: center;">总保费</span>
</div>
<div style="display: flex;font-size: 13px;color: #999;margin-top: 10px;">
<span style="width: 25%;display: flex;align-items: flex-end;align-items: baseline;justify-content: center;">
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.contSize}}</span>
</span>
<span style="width: 25%;display: flex;align-items: flex-end;align-items: baseline;justify-content: center;">
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.members.length}}</span>
</span>
<span style="width: 25%;display: flex;align-items: flex-end;align-items: baseline;justify-content: center;">
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.totalAmt}}</span>
</span>
<span style="width: 25%;display: flex;align-items: flex-end;align-items: baseline;justify-content: center;">
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.totalPrem}}</span>
</span>
</div>
</div>
<div style="margin: 10px;overflow: auto;white-space: nowrap;">
<div v-for="(item,index) in infoContent.members" @click="activeMembers(item,index)" class="membersClass" :key="index" :style="{border:activeMembersIndex==index?'1px solid #e98c8c':'none'}">
<div v-if="item.gender=='1'" class="triangle1"></div>
<div v-if="item.gender=='0'" class="triangle2"></div>
<div v-if="item.relateToAppnt == 1" style="position: absolute;right: 2px;top: 2px;font-size: 12px;color: #fff;">本人</div>
<div v-if="item.relateToAppnt == 2" style="position: absolute;right: 2px;top: 2px;font-size: 12px;color: #fff;">配偶</div>
<div v-if="item.relateToAppnt == 3" style="position: absolute;right: 2px;top: 2px;font-size: 12px;color: #fff;">父母</div>
<div v-if="item.relateToAppnt == 4" style="position: absolute;right: 2px;top: 2px;font-size: 12px;color: #fff;">子女</div>
<div v-if="item.relateToAppnt == 5" style="position: absolute;right: 2px;top: 2px;font-size: 12px;color: #fff;">其他</div>
<div style="position: absolute;top: 20px;left: 20px;">
<img v-if="item.gender =='0' && item.relateToAppnt == 1" src="@/assets/images/GBC/relation6.png" style="width: 40px;" />
<img v-if="item.gender =='1' && item.relateToAppnt == 1" src="@/assets/images/GBC/relation1.png" style="width: 40px;" />
<img v-if="item.gender =='0' && item.relateToAppnt == 2" src="@/assets/images/GBC/relation6.png" style="width: 40px;" />
<img v-if="item.gender =='1' && item.relateToAppnt == 2" src="@/assets/images/GBC/relation1.png" style="width: 40px;" />
<img v-if="item.gender =='0' && item.relateToAppnt == 3" src="@/assets/images/GBC/relation4.png" style="width: 40px;" />
<img v-if="item.gender =='1' && item.relateToAppnt == 3" src="@/assets/images/GBC/relation5.png" style="width: 40px;" />
<img v-if="item.gender =='0' && item.relateToAppnt == 4" src="@/assets/images/GBC/relation3.png" style="width: 40px;" />
<img v-if="item.gender =='1' && item.relateToAppnt == 4" src="@/assets/images/GBC/relation2.png" style="width: 40px;" />
<img v-if="item.gender =='0' && item.relateToAppnt == 5" src="@/assets/images/GBC/relation6.png" style="width: 40px;" />
<img v-if="item.gender =='1' && item.relateToAppnt == 5" src="@/assets/images/GBC/relation1.png" style="width: 40px;" />
</div>
<div style="position: absolute;bottom: 3px;width: 100%;text-align: center;font-size: 12px;">{{item.appntName}}</div>
</div>
</div>
<div style="margin: 10px;border-radius: 5px;overflow: hidden;">
<van-collapse v-model="activeNames">
<van-collapse-item title="基本信息" name="1">
<div style="display: flex;padding-bottom: 10px;border-bottom: 1px dashed #666;">
<div style="width: 30%;line-height: 30px;color: #666;">
<p>客户姓名</p>
<p>年龄</p>
<p>性别</p>
<p>手机号码</p>
<p v-if="activeMembersIndex == 0">部门/科室</p>
</div>
<div style="width: 70%;line-height: 30px;color: #000;">
<p>{{infoContent.appntName}}</p>
<p>{{infoContent.age}}周岁</p>
<p>{{infoContent.gender=='1'?'女':'男'}}</p>
<p>{{infoContent.mobile}}</p>
<p v-if="activeMembersIndex == 0">{{infoContent.departmentName}}</p>
</div>
</div>
<van-field @click="toSelect('toChooseAppntType')" v-model="infoContent.appntTypeName" class="customerType" label="客户类型" name="客户类型" readonly right-icon="arrow" placeholder="请选择"/>
</van-collapse-item>
</van-collapse>
</div>
<div style="margin: 10px;border-radius: 5px;overflow: hidden;">
<van-collapse v-model="activeNames">
<van-collapse-item title="沟通记录" name="2">
<div style="display: flex;justify-content: space-between;align-items: center;">
<span>内容描述</span>
<van-button @click="activeConnectRecords = true" plain round type="danger" size="small"> </van-button>
</div>
<div v-if="activeConnectRecords">
<div class="message">
<div class="wrapper">
<div class="parents">
<textarea placeholder="请输入内容描述......" maxlength="500" autofocus="true" v-model="connectContent"></textarea>
<span class="tips">
{{connectContent.length}}/500
</span>
</div>
</div>
</div>
<div class="saveMeaasge" style="margin-top: 10px;display: flex;justify-content: center;">
<van-button @click="getGBCappntConnectSave" type="danger" size="small"> </van-button>
</div>
</div>
<div class="connectRecordsClass" style="border-top: 1px solid #dedede;margin-top: 10px;">
<div v-for="(item,index) in infoContent.connectRecords" :key="index" style="margin-top: 10px;">
<div style="display: flex;line-height: 30px;align-items: center;">
<span style="display: inline-block;width: 30%;color: #666;">记录时间</span>
<span style="display: inline-block;width: 70%;color: #000;">{{item.connectTime}}</span>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<span style="display: inline-block;width: 30%;color: #666;">提交人</span>
<span style="display: inline-block;width: 70%;color: #000;">{{item.createUser}}</span>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<span style="display: inline-block;width: 30%;color: #666;">内容描述</span>
<span style="display: inline-block;width: 70%;color: #000;"></span>
</div>
<div class="itemMessage">
<van-field v-model="item.connectContent" readonly rows="5" label="" type="textarea" maxlength="500" placeholder=""/>
</div>
</div>
</div>
</van-collapse-item>
</van-collapse>
</div>
<div style="margin: 10px;border-radius: 5px;overflow: hidden;">
<van-collapse v-model="activeNames">
<van-collapse-item title="保单信息" name="3">
<div v-for="(item,index) in infoContent.contList" :key="index" style="border-bottom: 1px dashed #dedede;margin-bottom: 20px;">
<div style="display: flex;justify-content: space-between;align-items: center;border-bottom: 1px solid #dedede;padding-bottom: 5px;">
<div>
<p style="font-size: 14px;font-weight: bold;line-height: 25px;color: #000;">{{item.productName}} </p>
<p style="font-size: 12px;line-height: 25px;color: #999;">保单号{{item.contNo}} </p>
</div>
<div v-if="item.orderStatus == '08'" style="padding: 10px 20px;border-radius: 8px;border: 1px solid #e9332e;background: #ffdfde;color: #e9332e;">
<span>已承保</span>
</div>
<div v-if="item.orderStatus == '09'" style="padding: 10px 20px;border-radius: 8px;border: 1px solid #48A1F3;background: #DBEDFE;color: #48A1F3;">
<span>已退保</span>
</div>
</div>
<div style="padding: 10px 0px;">
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">投保人</p>
<p style="width: 25%;color: #000;">{{item.appntName}}</p>
<p style="width: 25%;color: #666;">被保险人</p>
<p style="width: 20%;color: #000;">{{item.insuredName}}</p>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">保额()</p>
<p style="width: 25%;color: #000;">{{item.amt}}</p>
<p style="width: 25%;color: #666;">保费()</p>
<p style="width: 20%;color: #000;">{{item.prem}}</p>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">交费期间</p>
<p style="width: 25%;color: #000;">{{item.paymentPeriod}}</p>
<p style="width: 25%;color: #666;">保险期间</p>
<p style="width: 20%;color: #000;">{{item.insuredPeriod}}</p>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">保险生效日期</p>
<p style="width: 50%;color: #000;">{{item.effectiveDate}}</p>
</div>
</div>
</div>
</van-collapse-item>
</van-collapse>
</div>
<van-popup v-model="popupShow" position="bottom">
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" />
</van-popup>
</div>
</template>
<script>
import { Collapse, CollapseItem } from 'vant'
import { getGBCappntDetail, getGBCappntTypeSave, getGBCappntConnectSave } from '@/api/GBC/GBC.js'
export default {
components: {
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
},
data() {
return {
activeMembersIndex:0,
activeConnectRecords:false,
infoContent:{
members:[
{appntName:'刘亚丽',relateToAppnt:1,src:require('@/assets/images/GBC/relation1.png'),gender:'1'},
{appntName:'刘桂芬',relateToAppnt:2,src:require('@/assets/images/GBC/relation2.png'),gender:'1'},
{appntName:'谢居安',relateToAppnt:3,src:require('@/assets/images/GBC/relation3.png'),gender:'0'},
{appntName:'谢危',relateToAppnt:4,src:require('@/assets/images/GBC/relation4.png'),gender:'0'},
{appntName:'刘亚丽',relateToAppnt:5,src:require('@/assets/images/GBC/relation5.png'),gender:'1'},
{appntName:'刘桂芬',relateToAppnt:6,src:require('@/assets/images/GBC/relation6.png'),gender:'1'},
{appntName:'谢居安',relateToAppnt:7,src:require('@/assets/images/GBC/relation1.png'),gender:'0'},
{appntName:'谢危',relateToAppnt:8,src:require('@/assets/images/GBC/relation2.png'),gender:'0'},
{appntName:'谢危',relateToAppnt:9,src:require('@/assets/images/GBC/relation2.png'),gender:'0'},
],
connectRecords:[
{
connectTime:'2023-11-21 16:00:00',
createUser:'赵威武',
connectContent:'客户为财务部总经理45岁2个小孩大儿子读初中小女儿读小学爱人在银行工作全家人都已配置过重疾险保额均为30万。自己可以做购买决策但目前有2套房贷在供经济压力较大但对我司方案很认可回去商量后再决定是否加保'
},
{
connectTime:'2023-11-21 16:00:00',
createUser:'赵威武',
connectContent:'客户为财务部总经理45岁2个小孩大儿子读初中小女儿读小学爱人在银行工作全家人都已配置过重疾险保额均为30万。自己可以做购买决策但目前有2套房贷在供经济压力较大但对我司方案很认可回去商量后再决定是否加保'
},
{
connectTime:'2023-11-21 16:00:00',
createUser:'赵威武',
connectContent:'客户为财务部总经理45岁2个小孩大儿子读初中小女儿读小学爱人在银行工作全家人都已配置过重疾险保额均为30万。自己可以做购买决策但目前有2套房贷在供经济压力较大但对我司方案很认可回去商量后再决定是否加保'
}
],
contList:[
{appntName:'赵燕燕',insuredName:'赵燕燕',amt:'3,200.00',prem:'150.00',paymentPeriod:'3年交',insuredPeriod:'终身',effectiveDate:'2023-11-28',orderStatus: '1'},
{appntName:'赵燕燕',insuredName:'赵燕燕',amt:'3,200.00',prem:'150.00',paymentPeriod:'3年交',insuredPeriod:'终身',effectiveDate:'2023-11-28',orderStatus: '1'},
{appntName:'赵燕燕',insuredName:'赵燕燕',amt:'3,200.00',prem:'150.00',paymentPeriod:'3年交',insuredPeriod:'终身',effectiveDate:'2023-11-28',orderStatus: '2'},
]
},
activeNames:[],
popupShow:false,
columns:[],
customerType:'',
pickerType: '',
columns_toChooseAppntType:[
{text:'A类',id:'A'},
{text:'B类',id:'B'},
{text:'C类',id:'C'},
{text:'D类',id:'D'},
],
connectContent: "",
maxLength: 500,
}
},
created() {
},
mounted(){
this.getGBCappntDetail()
},
methods: {
activeMembers(thisData,thisIndex) {
this.activeMembersIndex = thisIndex
this.infoContent.appntName = thisData.name
this.infoContent.age = thisData.age
this.infoContent.gender = thisData.gender
this.infoContent.mobile = thisData.mobile
this.infoContent.departmentName = thisData.departmentName
},
getGBCappntDetail() {
let params = {
"projectCode": this.$route.query.projectCode,
"appntId": this.$route.query.appntId
}
getGBCappntDetail(params).then(res => {
if(res.result == 0) {
this.infoContent = res.content
} else {
this.$toast(res.resultMessage)
}
})
},
getGBCappntConnectSave(){
let params = {
"projectCode": this.$route.query.projectCode,
"appntId": this.$route.query.projectCode,
"connectContent": this.connectContent
}
getGBCappntConnectSave(params).then(res=>{
if(res.result == 0) {
this.$toast('保存成功')
this.getGBCappntDetail()
} else {
this.$toast(res.resultMessage)
}
})
},
onConfirm(value){
if(this.pickerType == 'toChooseAppntType'){
this.infoContent.appntTypeName = value.text
this.infoContent.appntType = value.id
let params = {
"projectCode": this.$route.query.projectCode,
"appntId": this.$route.query.appntId,
"appntType": this.infoContent.appntType
}
getGBCappntTypeSave(params).then(res=>{
if(res.result == 0){
this.$toast('保存成功')
} else {
this.$toast(res.resultMessage)
}
})
}
this.popupShow = false
},
toSelect(pickerType){
this.pickerType = pickerType
this.popupShow = true
switch (pickerType) {
case 'toChooseAppntType':
this.columns = this.columns_toChooseAppntType
break
}
},
},
computed: {
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>
<style lang="scss" scoped>
.triangle1 {
width: 0;
height: 0;
border-width:30px; /* 设置边长 */
border-style: solid;
transform: translateX(50px) translateY(-30px) rotate(45deg);
border-color: transparent transparent #FC7D5B transparent; /* 透明色为背景色,#000000为需要显示的颜色 */
}
.triangle2 {
width: 0;
height: 0;
border-width:30px; /* 设置边长 */
border-style: solid;
transform: translateX(50px) translateY(-30px) rotate(45deg);
border-color: transparent transparent #3D72D0 transparent; /* 透明色为背景色,#000000为需要显示的颜色 */
}
/deep/ .van-cell:not(:last-child)::after {
border-bottom: 1px dashed #666 !important;
}
/deep/ .van-cell:not(:last-child)::after{
left:0px !important;
}
.customerType{
padding-left: 0px;
padding-right: 0px;
color: #666;
}
/deep/ .message{
border-radius: 10px;
border: 1px solid #dedede;
margin-top: 20px;
padding: 10px;
}
.parents {
width: 100%;
height: 120px;
position: relative;
}
textarea {
border: none;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
.tips {
position: absolute;
bottom: 0;
right: 0;
}
/deep/ .saveMeaasge{
.van-button--small{
padding: 0px 40px;
border-radius: 5px;
}
}
/deep/ .itemMessage{
border: 1px solid #dedede;
border-radius: 10px;
padding: 10px;
.van-field__label{
width: 0;
}
.van-cell{
padding: 0px;
}
.van-field__control{
color: #333;
height: auto;
}
}
/deep/ .van-collapse-item{
.van-cell__title{
font-size: 14px;
font-weight: bold;
}
}
.membersClass{
display: inline-block;
width: 80px;
height: 80px;
border-radius: 5px;
background: #fff;
margin-right: 10px;
overflow: hidden;
position: relative;
}
</style>

View File

@@ -1,368 +0,0 @@
<template>
<div class="public_container" :style="{paddingTop:marginTop+'px'}">
<!-- <van-pull-refresh v-model="isLoading" @refresh="onRefresh">-->
<div class="head">
<van-swipe :autoplay="3000" style="width: 100%;">
<van-swipe-item v-for="(item, index) in activity" :key="index" @touchstart="touchstart" @touchmove="touchmove" @touchend="touchend(item)">
<!-- <img :src="config.assetsUrl + item.img + '?v=' + thisGetTime" /> -->
<img :src="item.img">
</van-swipe-item>
</van-swipe>
</div>
<div class="iconPart1">
<van-notice-bar :left-icon="png8" :text='getCodeValue'/>
</div>
<div class="top">
<div class="menu" v-for="(item, ind) in homePageIcon" :key="ind" @click="goDetail(item)">
<div class="menuImg">
<img :src="item.img">
</div>
<span class="menuName">{{ item.title }}</span>
</div>
</div>
<div class="cooperativeUnits">
<div>
<div style="width: 50%;display: inline-block;" v-for="(item,index) in list1" :key="index">
<p style="display: flex;justify-content: flex-start;height: 50px;align-items: center;margin: 5px 10px;border:1px solid #eee;border-radius: 5px;background: #fff;color: #333333;padding-left: 10px;">
<img src="@/assets/images/GBC/home-cooperativeUnits-icon.png" style="width: 20px;height: 20px;margin-right: 10px;"/>
{{item.name}}
</p>
</div>
</div>
</div>
<div class="companyProfile">
<img :src="image1" style="width: 100%;"/>
</div>
<!-- </van-pull-refresh>-->
<van-dialog v-model="chooseProjectDialogShow" :showConfirmButton="false">
<div slot="title">
<p style="color: #E9332E;">请选择项目</p>
</div>
<div class="chooseProjectDialog" style="padding: 20px 30px 30px;font-size: 14px;">
<van-radio-group v-model="chooseTeamCode">
<van-radio v-for="(item,index) in projectList" :key="index" :name="item.teamCode" style="margin: 10px;">
<span style="margin-left: 20px;">
{{item.projectName}}
<span v-if="item.teamName" style="margin-left: 10px;color: #a7a7a7;">
({{item.teamName}})
</span>
</span>
</van-radio>
</van-radio-group>
</div>
<div style="text-align: center;margin-bottom: 30px;">
<van-button round type="danger" size="small" style="padding:0px 35px;font-size: 14px;" @click="chooseProjectList">
确定
</van-button>
</div>
</van-dialog>
<!-- 选择过期项目弹窗提示 -->
<van-dialog v-model="enableProjectDialogShow" :showConfirmButton="false">
<div slot="title">
<p style="color: #E9332E;">提示</p>
</div>
<div style="padding: 20px 30px 30px;font-size: 14px;">
{{chooseProjectName}}项目服务时间已结束
</div>
<div style="text-align: center;margin-bottom: 30px;">
<van-button round type="danger" size="small" style="padding:0px 35px;font-size: 14px;" @click="enableProjectDialogShow = false">
返回
</van-button>
</div>
</van-dialog>
</div>
</template>
<script>
import { gbcProjectList, gbcProjectConfirm, homeConfigGBC } from '@/api/GBC/GBC'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
import { Swipe, SwipeItem, NoticeBar, Icon, Popup, PullRefresh ,Toast, RadioGroup, Radio } from 'vant'
import config from '@/config'
import png8 from '@/assets/YB_APP/images/8.png';
export default {
name: 'Home',
components: {
[Swipe.name]: Swipe,
[SwipeItem.name]: SwipeItem,
[NoticeBar.name]: NoticeBar,
[Icon.name]: Icon,
[Popup.name]: Popup,
[PullRefresh.name]:PullRefresh,
[RadioGroup.name]:RadioGroup,
[Radio.name]:Radio,
[Toast.name]:Toast ,
},
data() {
return {
config,
marginTop:'80',
getCodeValue:'',
png8,
activity: [],
homePageIcon:[
{title:'建议书',route:'/proposal/list',img:require('@/assets/images/GBC/home-menu-1.png')},
{title:'电子投保',route:'/sale/list',img:require('@/assets/images/GBC/home-menu-2.png')},
{title:'海报设计',route:'/poster/posterList',img:require('@/assets/images/GBC/home-menu-3.png')},
{title:'GBC专区',route:'/GBC/projectList',img:require('@/assets/images/GBC/home-menu-4.png')}
],
isLoading: false,
image1: require('@/assets/images/GBC/home-companyProfile.png'),
list1:[
{name:'广西金融投资集团'},{name:'广投集团'},{name:'广西北部湾银行'},{name:'国海证券'},
],
projectList:[],
chooseProjectDialogShow: false,
chooseTeamCode:'',
chooseProjectCode:'',
chooseProjectName: '',
enableProjectDialogShow: false,
}
},
mounted(){
this.homeConfigGBC()
this.setMarginTop()
if(this.$route.query.isFrom == 'login') {
this.gbcProjectList()
}
this.getAgentInfo()
},
methods:{
getAgentInfo(){
let params = {
}
getAgentInfo(params).then(res => {
if(res.result == '0') {
if(res.branchType == '13') {
window.localStorage.setItem('branchType','13')
}
} else {
this.$toast(res.resultMessage)
}
})
},
gbcProjectList(){
let params = {
}
gbcProjectList(params).then(res=>{
if(res.result == '0') {
this.projectList = res.content
if(this.projectList.length == 1) {
this.chooseProjectDialogShow = false
this.chooseTeamCode = this.projectList[0].teamCode
this.chooseProjectCode = this.projectList[0].projectCode
this.chooseProjectName = this.projectList[0].projectName
this.chooseProjectList()
}
if(this.projectList.length > 1) {
this.chooseProjectDialogShow = true
}
} else {
this.$toast(res.resultMessage)
}
})
},
chooseProjectList(){
if(!this.chooseTeamCode) {
this.$toast('请选择项目')
return false
}
if(this.projectList && this.projectList.length != 0) {
this.projectList.forEach(item=>{
if(item.teamCode == this.chooseTeamCode){
this.chooseProjectName = item.projectName
}
})
}
let params = {
teamCode:this.chooseTeamCode
}
gbcProjectConfirm(params).then(res=>{
if(res.result == '0') {
if(res.content.enable == 1){
this.chooseProjectDialogShow = false
} else {
this.enableProjectDialogShow = true
}
} else {
this.$toast(res.resultMessage)
}
})
},
goDetail(data){
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#'+ data.route,
},
routerInfo: {
path: data.route,
},
})
},
setMarginTop(){
EWebBridge.webCallAppInJs("top_bar_height").then(data => {
console.log(data,'top_bar_height')
if(data){
// 获取高度成功
let height = data.height
// 设置高度
this.marginTop = height + 10
}
})
},
homeConfigGBC(){
let params = {
}
homeConfigGBC(params).then(res=>{
if(res.result == 0){
this.activity = res.content.activity
if(res.content.getCodeValue.length!=0){
res.content.getCodeValue.forEach(item=>{
this.getCodeValue += item + ' '
})
}
this.homePageIcon = res.content.icon.homePageIcon
}else{
this.$toast(res.resultMessage)
}
})
},
touchstart(){
this.clickFlag = true
},
touchmove(){
this.clickFlag = false
},
touchend(data){
if(this.clickFlag){
let dataURL = JSON.parse(data.route).extra.url
if(dataURL){
let thisRoute = dataURL.substring(dataURL.lastIndexOf("/#")+2)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#' + thisRoute,
},
routerInfo: {
path: thisRoute,
},
})
}
}
},
// 下拉刷新
onRefresh() {
setTimeout(() => {
Toast('刷新成功');
this.isLoading = false;
location. reload()
}, 1000);
},
},
// beforeRouteEnter(to, from, next) {
// next(vm => {
// if(from && from.path){
// console.log(from)
// // eslint-disable-next-line no-undef
// if(form.path == '/login') {
// window.sessionStorage.setItem('GBCFrom','GBCLogin')
// }
// }
// });
// },
}
</script>
<style lang="scss" scoped>
.public_container{
font-size: 12px;
height: 100vh;
width: 100vw;
/*background-image: url("../../assets/YB_APP/images/2-1.png");*/
/*background-repeat: no-repeat;*/
/*background-size: contain;*/
background: #F0F8FF;
}
.head {
position: relative;
margin: 10px;border-radius: 5px;
/*box-shadow: 0px 5px 8px 0px #7a6fc1;*/
img {
width: 100%;
height: 100%;
border-radius: 5px;
}
/deep/ .van-swipe-item{
height: auto;
}
}
/deep/ .van-notice-bar{
border-radius: 5px;
}
.menuImg{
width:100%;display: flex;justify-content: center;margin-bottom: 5px;
/deep/ img{
width: 30px;
height: 30px;
}
}
/deep/ .van-notice-bar{
background: #fff;
color: #333;
letter-spacing: 1px;
}
/deep/ .van-icon__image{
width: 100%;
}
/deep/ .van-notice-bar__left-icon{
width: 50px;
}
/deep/ .van-notice-bar__wrap{
margin-left: 10px;
}
/deep/ .van-swipe-item{
img{
height:145px;
}
}
.iconPart1{
margin: 10px;border-radius: 5px;
}
.top{
display:flex;
justify-content: space-between;
margin: 10px;
border-radius: 5px;
align-items: center;
padding: 15px;
}
.title-img {
height: 40px;
}
/deep/ .chooseProjectDialog{
.van-radio__icon {
.van-icon{
border: 1px solid red;
}
}
}
.cooperativeUnits{
background: url("../../assets/images/GBC/home-cooperativeUnits.png");
background-repeat: no-repeat;
background-size: cover;
height: 130px;
padding-top: 60px;
margin: 10px;
border-radius: 10px;
}
</style>

View File

@@ -1,379 +0,0 @@
<template>
<div>
<van-tabs v-model="tabActive">
<van-tab title="客户列表" name="customerList"></van-tab>
<van-tab title="数据看板" name="dataBoard"></van-tab>
<van-tab title="产品列表" name="productList"></van-tab>
</van-tabs>
<div v-if="tabActive == 'customerList'">
<div style="display: flex;align-items: center;padding-left: 10px;background: #fff;">
<div style="width: 30%;">
<van-dropdown-menu :overlay="dropdownmenuoverlay">
<van-dropdown-item v-model="filterType" :options="filterTypeOption" @change="dropdownMenuChange"/>
</van-dropdown-menu>
</div>
<van-search v-if="filterType == 1 || filterType == 2 || filterType == 3" v-model="searchvalue" shape="round" @search="getGBCappntlist" placeholder="搜索客户姓名/部门/科室/服务人员" style="width: 70%;"/>
<div v-if="filterType == 4" style="display: flex;align-items: center;height: 54px;">
<div @click="toChooseDate('startDate')" style="background: #f5f5f5;height: 34px;border-radius: 17px;width: 90px;display: flex;align-items: center;padding:0px 10px;">
<van-icon name="notes-o" />
<span v-if="!startDate" style="font-size: 12px;margin-left: 5px;color: #666;">请选择日期</span>
<span v-if="startDate" style="font-size: 12px;margin-left: 5px;color: #333;">{{startDate}}</span>
</div>
<span style="margin: 0px 5px;font-size: 14px;"></span>
<div @click="toChooseDate('endDate')" style="background: #f5f5f5;height: 34px;border-radius: 17px;width: 90px;display: flex;align-items: center;padding: 0px 10px;">
<van-icon name="notes-o" />
<span v-if="!endDate" style="font-size: 12px;margin-left: 5px;color: #666;">请选择日期</span>
<span v-if="endDate" style="font-size: 12px;margin-left: 5px;color: #333;">{{endDate}}</span>
</div>
</div>
</div>
<div style="padding: 0px 10px 10px;">
<div v-for="(item,index) in customerList" :key="index">
<div style="padding: 20px 20px 10px;border-radius: 5px;background: #fff;margin-top: 20px;">
<div style="display: flex;font-size: 14px;line-height: 30px;border-bottom: 1px solid #eee;padding-bottom: 10px;">
<div style="width: 55%;overflow: hidden;white-space: nowrap;">
<p>客户姓名{{item.appntName}}</p>
<p>手机号码{{item.mobile}}</p>
<p>服务组长{{item.teamLeader}}</p>
</div>
<div style="width: 45%;overflow: hidden;white-space: nowrap;">
<p>部门/科室{{item.departmentName}}</p>
<p>承包保单{{item.contSize}}</p>
<p>服务组员{{item.teamMember}}</p>
</div>
</div>
<div style="display: flex;justify-content: flex-end;margin-top: 10px;">
<van-button @click="goCustomerDetail(item)" type="danger" size="small" style="border-radius:5px;">查看编辑</van-button>
</div>
</div>
</div>
</div>
</div>
<div v-if="tabActive == 'dataBoard'">
<div style="margin: 10px;padding: 10px;background: #fff;border-radius: 5px;">
<p style="font-size: 18px;line-height: 35px;font-weight: bold;">项目名称国富人寿北京协和医院AA项目</p>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期2024-03-30</p>
<div style="display: flex;justify-content: center;margin-top: 20px;">
<van-circle v-model="currentRate" color="#E9332E" :stroke-width="60" size="80px" :rate="85" :speed="100" :text="text" />
</div>
<p style="display: flex;justify-content: center;font-weight: bold;font-size: 14px;margin: 10px;">面谈转化率</p>
<div style="padding: 10px;background: rgba(251, 235, 230, 0.5);border-radius: 5px;display: flex;justify-content: flex-start;flex-wrap:wrap;">
<div v-for="(item,index) in dataList1" style="width: 33%;display: flex;justify-content: space-around;align-items: center;">
<div>
<div style="font-size: 12px;line-height: 22px;margin: 7px 0px;">
<p style="display: flex;justify-content: center;font-size: 14px;">{{item.value}}</p>
<p style="display: flex;justify-content: center;align-items: center;">
<span class="colorBlock" :style="{background:colorList[index]}"></span>
{{item.name}}
</p>
</div>
</div>
<!-- <div v-if="(index + 1) % 3 != 0 || index < 2" style="width: 1px;background: #FFC9AF;height: 60%;"></div>-->
</div>
</div>
</div>
<div style="margin: 10px;padding: 10px;background: #fff;border-radius: 5px;">
<div style="border-bottom: 1px dashed #666;padding-bottom: 15px;">
<p style="font-size: 18px;line-height: 35px;font-weight: bold;">项目成员分配</p>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期2024-03-30</p>
</div>
<div style="margin-top: 10px;margin-bottom: 3px;background: rgba(255, 87, 83, 0.7);line-height: 30px;display: flex;align-items: center;color: #fff;font-size: 14px;">
<span style="width: 18%;display: flex;justify-content: center;">成员</span>
<span style="width: 22%;display: flex;justify-content: center;">角色</span>
<span style="width: 30%;display: flex;justify-content: center;">累计标保()</span>
<span style="width: 30%;display: flex;justify-content: center;">受理标保()</span>
</div>
<div>
<div v-for="item in dataList2" style="background: rgba(251, 235, 230, 0.44);margin-bottom: 1px;line-height: 30px;display: flex;align-items: center;color: #333;font-size: 13px;">
<span style="width: 18%;display: flex;justify-content: center;">{{item.name}}</span>
<span style="width: 22%;display: flex;justify-content: center;">{{item.role}}</span>
<span style="width: 30%;display: flex;justify-content: center;">{{item.value1}}</span>
<span style="width: 30%;display: flex;justify-content: center;">{{item.value2}}</span>
</div>
</div>
</div>
<div style="margin: 10px;padding: 10px;background: #fff;border-radius: 5px;">
<div style="border-bottom: 1px dashed #666;padding-bottom: 15px;">
<p style="font-size: 18px;line-height: 35px;font-weight: bold;">项目数据统计</p>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期2024-03-30</p>
</div>
<div style="margin-top: 10px;margin-bottom: 3px;background: rgba(255, 87, 83, 0.7);line-height: 30px;display: flex;align-items: center;color: #fff;font-size: 14px;">
<span style="width: 25%;display: flex;justify-content: center;">小组</span>
<span style="width: 25%;display: flex;justify-content: center;">组长</span>
<span style="width: 25%;display: flex;justify-content: center;">获客人数</span>
<span style="width: 25%;display: flex;justify-content: center;">获客率</span>
</div>
<div>
<div style="background: rgba(251, 235, 230, 0.44);margin-bottom: 1px;line-height: 30px;display: flex;align-items: center;color: #333;font-size: 13px;">
<span style="width: 50%;display: flex;justify-content: center;">项目合并</span>
<span style="width: 25%;display: flex;justify-content: center;">890</span>
<span style="width: 25%;display: flex;justify-content: center;">89%</span>
</div>
</div>
<div>
<div v-for="(item,index) in dataList3" :key="index" style="background: rgba(251, 235, 230, 0.44);margin-bottom: 1px;line-height: 30px;display: flex;align-items: center;color: #333;font-size: 13px;">
<span style="width: 25%;display: flex;justify-content: center;">{{item.name}}</span>
<span style="width: 25%;display: flex;justify-content: center;">{{item.role}}</span>
<span style="width: 25%;display: flex;justify-content: center;">{{item.value1}}</span>
<span style="width: 25%;display: flex;justify-content: center;">{{item.value2}}</span>
</div>
</div>
</div>
</div>
<div v-if="tabActive == 'productList'">
<div v-for="(item,index) in dataList4" @click="goProductDetail(item.productCode)" :key="index" style="background: #fff;border-radius: 5px;margin: 5px;display: flex;padding: 5px;">
<img :src="item.productImageUrl" style="display: inline-block;width: 35%;border-radius: 5px;"/>
<div style="display: inline-block;width: 65%;padding-left: 10px;">
<p style="font-size: 16px;">{{item.productName}}</p>
<p style="font-size: 14px;color: #bdbdbd;margin-top: 20px;">{{item.productDesc}}</p>
</div>
</div>
</div>
<van-popup v-model="showDataPicker" position="bottom">
<van-datetime-picker type="date" v-model="currentDate" @confirm="onConfirmDate" @cancel="cancelDate" :max-date="maxDate" :min-date="minDate" />
</van-popup>
</div>
</template>
<script>
import { Tab, Tabs, Search, DropdownMenu, DropdownItem, Circle } from 'vant'
import { getList } from '@/api/ebiz/product/product.js'
import { getGBCappntlist } from '@/api/GBC/GBC.js'
export default {
components: {
[Tab.name]: Tab,
[Tabs.name]: Tabs,
[Search.name]: Search,
[DropdownMenu.name]: DropdownMenu,
[DropdownItem.name]: DropdownItem,
[Circle.name]: Circle,
},
data() {
return {
tabActive:1,
searchvalue:'',
filterType: 1,
startDate:'',
endDate:'',
showDataPicker:false,
minDate: new Date(2000, 0, 1),
maxDate: new Date(2050, 11, 31),
currentDate:new Date(),
datePickerType:'',
filterTypeOption: [
{ text: '按客户', value: 1 },
{ text: '按科室', value: 2 },
{ text: '按小组', value: 3 },
{ text: '按日期', value: 4 },
],
dropdownmenuoverlay:false,
customerList:[],
currentRate: 0,
colorList:['#E9332E','#CB9BFF','#54C6FA','#FF9B39','#60D64D','#4045F3','#FF59D9','#E8C0A2','#FCD338','#7584A2'],
dataList1:[
{name:'累计受理保费(元)',value:'150,000.00'},
{name:'累计标保(元)',value:'250,000.00'},
{name:'件均保费(元)',value:'130,000.00'},
{name:'件均保费(元)',value:'10856'},
{name:'累计受理件数(件)',value:'356'},
{name:'累计承保人数(人)',value:'9569'},
{name:'累计承保件数(件)',value:'262'},
],
dataList2:[
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
],
dataList3:[
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
],
dataList4:[],
}
},
created() {
},
mounted(){
this.getGBCappntlist()
this.getProductList()
},
methods: {
dropdownMenuChange(value){
this.filterType = value
this.searchvalue = ''
this.startDate = ''
this.endDate = ''
if(value == 1 || value == 2 || value == 3) {
this.getGBCappntlist()
}
},
getGBCappntlist(){
let params = {
"projectCode": this.$route.query.projectCode,
"filterType": this.filterType,
"appntName": "",
"departmentName": "",
"teamMemberName": "",
"startDate": "",
"endDate": ""
}
if(this.filterType == 1){
params.appntName = this.searchvalue
}
if(this.filterType == 2){
params.departmentName = this.searchvalue
}
if(this.filterType == 3){
params.teamMemberName = this.searchvalue
}
if(this.filterType == 4) {
params.startDate = this.startDate
params.endDate = this.endDate
}
getGBCappntlist(params).then(res=>{
if(res.result == '0') {
this.customerList = []
if(res.content && res.content.length != 0) {
this.customerList = res.content
}
} else {
this.$toast(res.resultMessage)
}
})
},
toChooseDate(type){
this.datePickerType = type
if(type == 'startDate') {
this.showDataPicker = true
}
if(type == 'endDate') {
this.showDataPicker = true
}
},
onConfirmDate(date){
if(this.datePickerType == 'startDate') {
let year = date.getFullYear()
let month = String(date.getMonth() + 1).padStart(2, '0');
let day = String(date.getDate()).padStart(2, '0');
this.startDate = year + '-' + month + '-' + day;
if(this.endDate) {
this.getGBCappntlist()
}
}
if(this.datePickerType == 'endDate') {
let year = date.getFullYear()
let month = String(date.getMonth() + 1).padStart(2, '0');
let day = String(date.getDate()).padStart(2, '0');
this.endDate = year + '-' + month + '-' + day;
if(this.startDate) {
this.getGBCappntlist()
}
}
this.showDataPicker = false
},
cancelDate(){
this.showDataPicker = false
},
goCustomerDetail(data){
this.$router.push({
path:'/GBC/customerDetail',
query:{
projectCode:this.$route.query.projectCode,
appntId:data.appntId
},
})
},
getProductList(){
let params = {
type: 'app'
}
getList(params).then(res=>{
if(res.result == '0') {
this.dataList4 = this.dataList4.concat(res.productList)
this.dataList4 = this.dataList4.concat(res.productList)
this.dataList4 = this.dataList4.concat(res.productList)
this.dataList4 = this.dataList4.concat(res.productList)
} else {
this.$toast(res.resultMessage)
}
})
},
goProductDetail(productCode) {
localStorage.productDetailCode = productCode
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#/product/ProductDetail/${productCode}`
},
routerInfo: {
path: `/product/ProductDetail/${productCode}`
}
})
},
},
// watch: {
// isShowOthenSalarySource(nVal) {
// if (!nVal) {
// this.userInfo.otherSalarySource = ''
// }
// },
// },
computed: {
text() {
return this.currentRate.toFixed(0) + '%';
},
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>
<style lang="scss" scoped>
/deep/ .van-search__content{
background: #fff;
}
/deep/ .van-dropdown-menu{
height: 34px;
}
/deep/ .van-dropdown-item__content{
width: 40%;
left: 10px;
}
/deep/ .van-dropdown-menu{
background: #f5f5f5;
}
.colorBlock{
width: 8px;
height: 8px;
display: inline-block;
/*background: #000;*/
border-radius: 3px;
margin-right: 3px;
}
/deep/ .van-hairline--top-bottom::after{
border: none;
}
/deep/ .van-dropdown-menu{
background: #fff;
}
/deep/ .van-search__content{
background: #f5f5f5;
}
/deep/ [data-v-3f765cce] .van-dropdown-item__content{
box-shadow: 0px 0px 5px 5px #f5f5f5;
}
</style>

View File

@@ -1,87 +0,0 @@
<template>
<div>
<van-search v-model="searchvalue" shape="round" background="#fff" placeholder="搜索项目名称"/>
<div style="padding: 10px;">
<van-collapse v-for="item in yearList" :key="item.year" v-model="activeNames" style="margin-top: 10px;border-radius: 5px;">
<van-collapse-item :title="item.year" :name="item.year">
<div v-for="(ii,iis) in item.projects" @click="goprojectDetail(ii)" :key="iis" style="display: flex;justify-content: space-between;align-items: center;padding: 10px;border-bottom: 1px solid #eee;">
<div>
<p style="color:#323233;margin-bottom: 10px;">{{ii.projectName}}</p>
<p v-if="ii.enable == '1'">服务起止日期<span style="margin-left: 10px;">{{ii.startDate}}{{ii.endDate}}</span></p>
<p v-if="ii.enable == '0'">服务起止日期<span style="margin-left: 10px;color: red;">{{ii.startDate}}{{ii.endDate}}</span></p>
</div>
<van-icon name="arrow" />
</div>
</van-collapse-item>
</van-collapse>
</div>
</div>
</template>
<script>
import { Search, Collapse, CollapseItem, Icon } from 'vant'
import { getGBCprojectlistByYear } from '@/api/GBC/GBC'
export default {
components: {
[Search.name]: Search,
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
[Icon.name]: Icon,
},
data() {
return {
searchvalue:'',
activeNames: [],
yearList:[],
}
},
created() {
},
mounted(){
this.getGBCprojectlistByYear()
},
methods: {
getGBCprojectlistByYear(){
let params = {
}
getGBCprojectlistByYear(params).then(res=>{
if(res.result == '0') {
this.yearList = []
if(res.content && res.content.length != 0) {
this.yearList = res.content
}
} else {
this.$toast(res.resultMessage)
}
})
},
goprojectDetail(data){
this.$router.push({
path:'/GBC/projectDetail',
query:{
projectCode:data.projectCode
},
})
},
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>
<style lang="scss" scoped>
/deep/ .van-search__content{
background: #f7f8fa;
}
/deep/ .van-cell__title{
font-weight: bold;
}
/deep/ .van-collapse-item__title{
border-radius: 5px;
}
</style>

View File

@@ -19,8 +19,7 @@
<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 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>
@@ -88,6 +87,8 @@
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.YB_agenturl + res.content.rgssUrl,
@@ -97,7 +98,7 @@
}).on("complete", function (status, msg, time) { //监听完成事件
console.log("状态:" + status + ",信息:" + msg + ",耗时:" + time + "毫秒,总页数:" + this.totalNum)
})
this.signH5Img = JSON.parse(window.sessionStorage.getItem('signH5Img')).val
this.signH5Img = sessionStorage.getItem('signH5Img')
if(this.signH5Img){
this.$set(this.signInfo, 'status', '2')
this.radio = '1'
@@ -143,22 +144,17 @@
}, 1000)
},
sign() {
let signInfo = {
type:'签名-银保代理人电子化合同签署',
text:this.$store.getters.getYBname,
keyWord: '乙方锟斤拷:'
}
window.sessionStorage.setItem('signInfo',JSON.stringify(signInfo))
window.location.href = 'http://'+window.location.host + '/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){
window.sessionStorage.clear()
this.signSuccessShow = true
window.localStorage.removeItem('signInfo')
}else{

View File

@@ -173,19 +173,6 @@ export default {
}
}
},
created() {
},
mounted() {
let date = new Date()
let month = date.getMonth() + 1
if (month <= 9) {
month = '0' + month
}
//默认展示当天数据
this.postDate = date.getFullYear() + '-' + month + '-' + date.getDate()
this.initData()
},
methods: {
//切换当月、当天
switchDayOrMonth(index) {
@@ -231,14 +218,7 @@ export default {
* 查询机构下拉列表
* manageCode, manageLv传空查全国所有二级机构
**/
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let resData = await getBranchByUser({})
this.$toast.clear()
if (resData.result != '0') return this.$toast(resData.resultMessage)
this.manageLv = resData.content.level
//当前token查不出机构时,展示敬请期待
@@ -295,12 +275,6 @@ export default {
},
// 查询列表数据
queryOutOrderListFunc() {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
queryOutOrderList({
dateFlag: this.dateFlag,
appntDate: this.postDate,
@@ -310,7 +284,6 @@ export default {
pageNum: this.pageNum,
pageSize: this.pageSize
}).then(res => {
this.$toast.clear()
if (res.result == 0) {
if (res.content) {
this.pageNum++
@@ -415,6 +388,16 @@ export default {
this.queryOutOrderListFunc()
}
},
created() {
let date = new Date()
let month = date.getMonth() + 1
if (month <= 9) {
month = '0' + month
}
//默认展示当天数据
this.postDate = date.getFullYear() + '-' + month + '-' + date.getDate()
this.initData()
}
}
</script>

View File

@@ -320,7 +320,7 @@
placeholder="请录入保单号或者投保单号,如果关联多个保单,请用\隔开"
/>
</div>
<div class="flex justify-content-s pv10 border-bottom prem" v-if="item.productCode != 'GFRS_M0080' && item.productCode != 'GFRS_M0083' && item.productCode != 'GFRS_M0085'">
<div class="flex justify-content-s pv10 border-bottom prem" v-if="item.productCode != 'GFRS_M0080' && item.productCode != 'GFRS_M0083'">
<!-- trialType 0-保额算保费1-保费算保额 -->
<!-- isTrial是否需存在特殊配置(规则) 0-是 1-否-->
<span
@@ -789,7 +789,7 @@
this.isEnterAddtionRiskListFunc()
}
}
if ((item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0085') && this.isFrom == 'proposal') {
if (item.mainRiskCode == 'GFRS_M0083' && this.isFrom == 'proposal') {
item.calFactorLst.forEach((i) => {
if (i.code == "inputPrem") {
i.minPrem = 0.01
@@ -2019,13 +2019,13 @@
let thisproductInfo = JSON.parse(window.localStorage.getItem('chooseProducts'))
if(thisproductInfo && thisproductInfo.length != 0) {
thisproductInfo.forEach(item => {
if(item.productCode == 'GFRS_M0083' || item.productCode == 'GFRS_M0085') {
if(item.productCode == 'GFRS_M0083') {
productCode = item.productCode
}
})
}
if(this.isFrom != 'proposal'){
if(productCode == 'GFRS_M0083' || productCode == 'GFRS_M0085'){
if(productCode == 'GFRS_M0083'){
if(!that.policyNo){
that.chooseProducts.forEach(item=>{
item.calFactorLst.forEach(ii=>{
@@ -2364,7 +2364,7 @@
this.saleInsuredInfo.sex,
this.saleInsuredInfo.occupationCode,
this.saleInsuredInfo.occupationName,
this.saleInsuredInfo.age?this.saleInsuredInfo.age:this.saleInsuredInfo.insuredAge
this.saleInsuredPersonInfo.insuredAge
]
} else {
;[birthday, sex, occupationCode, occupationName, age] = [
@@ -2699,7 +2699,7 @@
}
}
}
else if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0085') {
else if (productCode == 'GFRS_M0083') {
if(this.isFrom != 'proposal'){
if(!this.policyNo && defalutValue < 5) {
this.$toast('单独投保保费为大于等于50000元')

View File

@@ -4,7 +4,7 @@
<index-bar :key="renovate"></index-bar>
</div>
<div class="mt8"></div>
<div v-for="(item, index) in chooseProducts" :key="index" class="mb20 bg-white pv15 pr15 pl10 radius5">
<div v-for="(item, index) in chooseProducts" :key="index" class="mb20 bg-white mh15 pv15 pr15 pl10 radius5">
<div class="flex mv10 align-items-c">
<div class="fs14 w45">
<van-tag plain type="danger">主险</van-tag>
@@ -27,27 +27,12 @@
<van-button size="small" round @click="deteleInsure(index)" plain type="danger">删除</van-button>
</div>
</div>
<div v-if="isFrom == 'sale' && isShow == false">
<div class="p15 pl8 fs14" style="margin-bottom: 20px;background: #fff;">
<van-radio-group v-model="isElecCont" class="flex" style="display: flex;align-items: center;">
<label>
<i class="red pr5">*</i>
保单形式
</label>
<van-radio name="1" class="ml10" style="display: flex;align-items: center;color: red;">
电子(不打印保单)
</van-radio>
<van-radio name="2" v-if="chooseProducts[0].mainRiskCode != 'GFRS_M0076' && chooseProducts[0].mainRiskCode != 'GFRS_M0077'" class="ml10" style="display: flex;align-items: center;color: red;">
电子+纸质
</van-radio>
</van-radio-group>
</div>
</div>
<div class="pt30 bg-white pb50">
<div class="text-center m20 pv15 border-dotted c-gray-base bg-white" @click="addProduct" v-if="isShow == true">
<span class="v-middle mr10" style="font-size:32px">+</span>添加产品
</div>
</div>
<van-dialog v-model="active_show" :show-confirm-button="false" class="dialog_class" style="position: relative; overflow: visible;">
<img class="icon_image" src="@/assets/images/kmh/close_bg.png" @click="active_show = false" />
<div class="pl20 pr20 mt30">
@@ -148,7 +133,7 @@
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, saveOrderType } from '@/api/ebiz/sale/sale.js'
import { saveOrderActiveType,getActivityList, getDoubleRecordProductLst } 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'
@@ -177,7 +162,6 @@
renovate:'',//刷新子组件
manageComCode:'',//代理人管理机构 52贵州 45广西
isCrossChannel: 0, // 是否选择交叉渠道列表 0-否 1-是
isElecCont: '', // 保单形式
}
},
components: {
@@ -400,9 +384,6 @@
}
if (!isProposal) {
if (this.chooseProducts.length > 0) {
if(this.chooseProducts[0].mainRiskCode == 'GFRS_M0076' || this.chooseProducts[0].mainRiskCode == 'GFRS_M0077') {
this.isElecCont = '1'
}
if (this.chooseProducts[0].mainRiskCode == 'GFRS_M0026' && this.chooseProducts.length == 1) {
this.isShow = true
} else {
@@ -1000,61 +981,17 @@
localStorage.beneficiaryInfo = ''
localStorage.fromAddBeneficiaryInfo = ''
localStorage.removeItem('applicant')
if(this.isFrom == 'sale') {
if(!this.isElecCont) {
this.$toast('请选择保单形式')
return false
this.$jump({
flag: 'h5',
extra: {
forbidSwipeBack: '1',
url: location.origin + '/#' + thismyurl,
needRefresh: '1'
},
routerInfo: {
path: thismyurl
}
else {
let params = {
orderNO: this.$route.query.orderNo,
isElecCont: this.isElecCont
}
if(this.isElecCont == '1') {
params.isElecCont = '0'
}
saveOrderType(params).then(res => {
if(res.result == 0) {
this.$jump({
flag: 'h5',
extra: {
forbidSwipeBack: '1',
url: location.origin + '/#' + thismyurl,
needRefresh: '1'
},
routerInfo: {
path: thismyurl
}
})
} else {
this.$toast(res.resultMessage)
}
})
// this.$jump({
// flag: 'h5',
// extra: {
// forbidSwipeBack: '1',
// url: location.origin + '/#' + thismyurl,
// needRefresh: '1'
// },
// routerInfo: {
// path: thismyurl
// }
// })
}
} else {
this.$jump({
flag: 'h5',
extra: {
forbidSwipeBack: '1',
url: location.origin + '/#' + thismyurl,
needRefresh: '1'
},
routerInfo: {
path: thismyurl
}
})
}
})
}
}
}
@@ -1135,15 +1072,5 @@
padding-right: 0px;
padding-bottom: 10px;
}
/deep/ .van-radio__icon--round{
display: flex;
align-items: center;
}
/deep/ .van-icon{
line-height: 100%;
}
/deep/ .van-radio__label{
color: red;
}
}
</style>

View File

@@ -196,7 +196,6 @@ export default {
if (res.result == 0) {
flag.manageComCode = res.manageComCode ? res.manageComCode.substring(2, 4) : ''
flag.jobNo = res.jobNo
flag.branchType = res.branchType
// branchType N1、1代表个险渠道 和 N5、5 代表中介渠道N代表内勤
if (res.branchType == 'N1' || res.branchType == '1') {
flag.branchTypeVal = 'G'

View File

@@ -1,309 +1,200 @@
<template>
<div class="good-start-scheme bg-white">
<div v-if="isShow == true">
<div class="flex justify-content-s pt10 pb15">
<div class="fs12 bntTab">
<span :class="[active == 'appnt' ? 'tab' : 'unTab']" @click="tabChange('appnt')">预收</span>
<span :class="[active == 'sign' ? 'tab' : 'unTab']" @click="tabChange('sign')">承保</span>
</div>
<div>
<div @click="timePopup" class="fs12 red h30 mt5 mr15">
{{ titleTime }}
<img src="@/assets/images/u79.png" alt class="ml5" />
</div>
</div>
<div class="wrapper">
<div v-if="posterList.length !== 0">
<van-grid :column-num="3" :gutter="5">
<van-grid-item v-for="(item, index) in posterList" :key="index" @click="previewImg(item, index)">
<van-image class="fill" :src="item.posterUrl" />
</van-grid-item>
</van-grid>
<div class="pageWrapper">
<van-pagination class="bottom-btn" v-model="pageNum" :page-count="totalPage" @change="pageChange" />
</div>
<div v-if="pics.length">
<van-grid :column-num="3">
<van-grid-item v-for="(pic, i) in pics" :key="i">
<van-image height="200" :src="pic.posterUrl" @click="prevImg(pic, i)" />
</van-grid-item>
</van-grid>
<van-image-preview id="preview" v-model="isPrevShow" :images="images" :start-position="startPosition" @change="onPageChange" />
<!-- <van-button class="share-btn" v-show="isPrevShow" type="danger" block @click="shareImg">分享</van-button> -->
<div class="flex justify-content-s bottom-btn bottom15 border-color" v-show="isPrevShow">
<van-button square type="default" size="large" @click="shareImg" v-no-more-click="1000"> 分享 </van-button>
<van-button square type="danger" size="large" @click="downLoadImagesFunc" v-no-more-click="1000"> 下载 </van-button>
</div>
<van-image-preview id="preview" v-model="isPrevShow" :images="images" :start-position="startPosition" @change="onPageChange" />
<div class="flex justify-content-s bottom-btn bottom15 border-color" v-show="isPrevShow">
<van-button square type="default" size="large" @click="shareImg" v-no-more-click="1000"> 分享 </van-button>
<van-button square type="danger" size="large" @click="downLoadImagesFunc" v-no-more-click="1000"> 下载 </van-button>
</div>
</div>
<!-- {{isShow}} {{pics.length}} -->
<div v-if="isShow == false || pics.length == '0'" class="text-center height100vh">
<div v-if="posterList.length === 0" class="text-center">
<img class="mt40 w250" src="@/assets/images/pic_page-non.png" />
<div class="fs17 c-gray-dark mt40" v-if="isShow == false">您暂无使用权限</div>
<div class="fs17 c-gray-dark mt40" v-if="isShow == true && pics.length == '0'">暂无数据</div>
<div class="fs17 c-gray-dark mt40">暂无数据</div>
</div>
<!-- 筛选年月日 -->
<van-popup v-model="dateShow" position="bottom">
<van-datetime-picker v-model="currentDate" type="date" title="选择日期" :min-date="minDate" :max-date="maxDate" @cancel="handleCancel" @confirm="handleEndDateConfirm"/>
</van-popup>
</div>
</template>
<script>
import { Grid, GridItem, Image, ImagePreview, Pagination } from 'vant'
import { queryOutPostersBig, getBranchByUser} from '@/api/ebiz/goodStart'
import { getAgentInfo} from '@/api/ebiz/my/my.js'
import utils from '@/assets/js/utils/date-utils'
import Vue from 'vue'
import { Sticky, Grid, GridItem, Pagination, ImagePreview, List, Image } from 'vant'
import { queryBigPosters } from '@/api/ebiz/poster/poster'
// import config from '@/config'
import Vue from 'vue'
// 全局注册
Vue.use(ImagePreview)
export default {
components: {
[Grid.name]: Grid,
[GridItem.name]: GridItem,
[Image.name]: Image,
[Pagination.name]: Pagination
Vue.use(ImagePreview)
export default {
name: 'posterList',
components: {
[Sticky.name]: Sticky,
[Grid.name]: Grid,
[GridItem.name]: GridItem,
[Pagination.name]: Pagination,
[List.name]: List,
[Image.name]: Image
},
data() {
return {
// posterType: 'hb',
srcUrl: '@/images/u10199.png',
pageNum: 1,
pageSize: 9,
posterList: [], // 贺报列表
realImgUrls: [],
// index: 0,
totalPage: 0,
isPrevShow: false,
startPosition: 0,
currentPage: 0,
}
},
computed: {
images() {
const picArr = []
for (let pic of this.posterList) {
picArr.push(pic.posterUrl)
}
return picArr
}
},
created() {
this.getPostList()
},
methods: {
onPageChange(index) {
this.currentPage = index
},
data() {
return {
dateShow: false,
minDate: new Date(),
maxDate: new Date(),
currentDate: new Date(),
titleTime:'', //筛选时间
isFromService: '',
isPrevShow: false,
currentPage: 0,
pics: [],
startPosition: 0,
branchType:'', //以N打头的是内勤 其他是外勤0: 外勤1: 内勤
isShow:false, //是否有权限查看
manageLv:null,
active:'appnt'
// 贺报列表查询
async getPostList() {
let param = {
// posterInfoDTO: {
// posterType: this.posterType
// },
pageNum: this.pageNum,
pageSize: this.pageSize
}
this.$toast.loading({
message: '加载中...',
forbidClick: true,
loadingType: 'spinner'
})
let res = await queryBigPosters(param)
if (res.result == 0) {
this.realImgUrls.splice(0)
this.totalPage = res.content.pages
this.posterList = res.content.list
for (let item of this.posterList) {
// let narrowUrl = (config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${item.posterNarrowUrl}`).replace(/\+/g, '%2B')
// let url = (config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${item.posterUrl}`).replace(/\+/g, '%2B')
// item.narrowUrl = narrowUrl
this.realImgUrls.push(item.posterUrl)
}
} else {
this.$toast(res.resultMessage)
}
},
computed: {
images() {
const picArr = []
for (let pic of this.pics) {
picArr.push(pic.posterUrl)
}
return picArr
}
previewImg(item, index) {
// this.isPrevShow = true
// ImagePreview({
// images: this.realImgUrls,
// startPosition: index
// })
this.isPrevShow = true
this.startPosition = index
},
created() {
pageChange(pageNum) {
this.pageNum = pageNum
this.getPostList()
},
mounted() {
this.minDate = new Date(this.getPrevDate(30))
this.titleTime = utils.formatDate(new Date(), 'yyyy-MM-dd')
this.getAgentInfoFunc()
this.getBranchByUserFunc()
shareImg() {
console.log(this.images[this.currentPage])
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
extra: {
shareType: '1',
img: this.images[this.currentPage]
}
})
},
methods: {
getPrevDate(numDays) {
var today = new Date();
today.setDate(today.getDate() - numDays);
return today.toLocaleDateString();
},
//选择当月时间
seceltCurrentMonth() {
this.titleTime = utils.formatDate(new Date(), 'yyyy-MM-dd')
this.queryOutPostersBig()
},
timePopup() {
this.dateShow = true
},
handleCancel() {
this.dateShow = false
},
//tab按钮切换
tabChange(active) {
this.active = active
this.queryOutPostersBig()
},
//点击筛选年月日--点击确认
handleEndDateConfirm(e) {
this.dateShow = false
this.titleTime = utils.formatDate(e, 'yyyy-MM-dd')
this.queryOutPostersBig()
},
// 获取代理人信息,区分内外勤
async getAgentInfoFunc() {
const res = await getAgentInfo({})
if (res.result == 0) {
// res.branchType 以N打头的是内勤 其他是外勤0: 外勤1: 内勤
this.branchType = /^N{1}/.test(res.branchType) ? '1' : '0'
} else {
return this.$toast(res.resultMessage)
}
},
//获取当前人机构
async getBranchByUserFunc(){
this.isShow = true
this.queryOutPostersBig()
// let resData = await getBranchByUser({})
// // 内勤一、二、三 级暂无使用权限
// this.manageLv = resData.content.level?Number(resData.content.level.substr(1, 1)):9
// if(this.manageLv == 4 || this.manageLv == 5 ||this.manageLv == 6 ||this.manageLv == 7 ||this.manageLv == 8 ||this.manageLv == 9){
// this.isShow = true //是否有权限查看
// this.queryOutPostersBig()
// }
},
prevChange(index) {
this.startPosition = index
},
interceptAppBtn() {
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
intercept: '1'
})
}, 100)
window.appCallBack = this.appCallBack
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
if (!this.isPrevShow) {
if (this.isFromService) {
this.$jump({
flag: 'service'
})
} else {
this.$jump({
flag: 'h5',
extra: {
title: '开门红专区',
forbidSwipeBack: 1,
url: location.origin + `/#/goodStart/prefecture`
},
routerInfo: {
path: `/goodStart/prefecture/prefecture`,
type: '1'
}
})
}
} else {
this.isPrevShow = false
}
}
},
onPageChange(page) {
this.currentPage = page
},
async queryOutPostersBig() {
const param = {
appntType: this.active,
appntMonth: this.titleTime
}
const result = await queryOutPostersBig(param)
if (result.result === '0') {
this.pics = result.content.list
} else {
this.$toast(result.resultMessage)
}
},
prevImg(pic, i) {
this.isPrevShow = true
this.startPosition = i
},
shareImg() {
console.log(this.images[this.currentPage])
// 原生下载图片的方法
downLoadImagesFunc() {
if (this.images[this.currentPage]) {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
extra: {
shareType: '1',
img: this.images[this.currentPage]
}
})
},
// 原生下载图片的方法
downLoadImagesFunc() {
if (this.images[this.currentPage]) {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('download', {
name: '开门红方案.png',
url: this.images[this.currentPage]
})
.then(() => {
console.log('下载完成')
})
.catch(() => {
this.$toast.fail('图片下载失败,请重新下载!')
})
} else {
EWebBridge.webCallAppInJs('download', {
name: '开门红方案.png',
url: this.images[this.currentPage]
}).then(() => {
console.log('下载完成')
}).catch(() => {
this.$toast.fail('图片下载失败,请重新下载!')
}
})
} else {
this.$toast.fail('图片下载失败,请重新下载!')
}
}
}
}
</script>
<style lang="scss" scoped>
.height100vh{
height: 100vh;
}
.good-start-scheme {
padding-bottom: 20px;
}
/deep/ .van-grid-item {
height: 30vh;
}
/deep/ .van-grid-item__content {
padding: 5px;
}
/deep/ .fill {
height: 100%;
}
.share-btn {
position: fixed;
bottom: 0;
z-index: 10000;
}
.wrapper {
padding-top: 12px;
padding-bottom: 50px;
}
/deep/ .van-image-preview__image {
bottom: auto;
}
.post-container {
display: flex;
flex-wrap: wrap;
justify-content: start;
}
/deep/ .van-pagination__item {
color: #ff0033;
}
.post {
width: 28vw;
padding: 3px;
background: #fff;
margin: 5px;
}
/deep/ .van-pagination__item--active {
background-color: #ff0033;
color: #fff;
}
img {
max-width: 100%;
}
#pagination {
position: fixed;
bottom: 0;
left: 0;
right: 0;
}
/deep/ .van-list__loading,
/deep/ .van-list__finished-text {
width: 100%;
}
.border-color {
z-index: 9999;
border: 2px solid;
border-image: radial-gradient(circle, rgba(255, 233, 124, 1), rgba(222, 144, 34, 1)) 2 2;
}
/deep/ .van-button--danger {
background: linear-gradient(to right, #f26e43, #ac0209) !important; /*设置按钮为渐变颜色*/
border: none !important;
}
/deep/ .van-pagination__item {
color: #ff4040;
}
// 顶部tab按钮
.bntTab {
text-align: center;
.tab {
background: red;
color: #fff;
border-radius: 14px;
width: 64px;
height: 26px;
line-height: 26px;
display: inline-block;
text-align: center;
margin-left: 10px;
}
.unTab {
background-color: #fff;
color: #333;
border: 1px solid #c1c1c1;
border-radius: 14px;
width: 64px;
height: 26px;
line-height: 26px;
display: inline-block;
text-align: center;
margin-left: 10px;
}
}
/deep/.van-pagination__item:active,
/deep/.van-pagination__item--active {
background-color: #ff4040;
color: #fff;
}
.border-color {
z-index: 9999;
border: 2px solid;
border-image: radial-gradient(circle, rgba(255, 233, 124, 1), rgba(222, 144, 34, 1)) 2 2;
}
/deep/ .van-button--danger {
background: linear-gradient(to right, #f26e43, #ac0209) !important; /*设置按钮为渐变颜色*/
border: none !important;
}
</style>

View File

@@ -11,7 +11,7 @@
<th>姓名</th>
<th class="company">营销服务部</th>
<th>预收规保</th>
<th>承保期交</th>
<th>承保标保</th>
</tr>
<tr v-for="(item, index) in showData.topList" :key="item.code">
<td>{{ item.rank }}</td>
@@ -29,7 +29,7 @@
<th>姓名</th>
<th class="company">营销服务部</th>
<th>预收规保</th>
<th>承保期交</th>
<th>承保标保</th>
</tr>
<tr v-for="(item, index) in showData.topList" :key="item.code" :class="{ top3: index <= 2 }">
<td>{{ item.rank }}</td>
@@ -56,7 +56,7 @@
</div>
</van-col>
<van-col span="12" class="detail">
<div class="m-title mt15">本月承保期交</div>
<div class="m-title mt15">本月承保标保</div>
<div class="m-number mt12">
<span class="c-gray-darker fs26 fw500"> {{ showData.achievement.selfAcceptStand }}</span>
<span class="m-gray fs12 c-gray-dark ml20">万元</span>
@@ -78,7 +78,7 @@
</div>
</van-col>
<van-col span="12" class="detail" style="border-right: 1px solid #ff4040;">
<div class="m-title mt15">承保期交排名</div>
<div class="m-title mt15">承保标保排名</div>
<div class="m-number mt12">
<span class="m-gray fs12 c-gray-dark mr20"></span>
<span class="c-gray-darker fs26 fw500">{{ showData.achievement.rankingBb }}</span>
@@ -86,7 +86,7 @@
</div>
</van-col>
<van-col span="12" class="detail">
<div class="m-title mt15">距上一名承保期交差距</div>
<div class="m-title mt15">距上一名承保标保差距</div>
<div class="m-number mt12">
<span class="c-gray-darker fs26 fw500">{{ showData.achievement.previousCbbbGap }}</span>
<span class="m-gray fs12 c-gray-dark ml20"></span>

View File

@@ -59,7 +59,7 @@ export default {
for (var i = 0; i < myseries.data.length; i++) {
if (myseries.data[i].name == params.name) {
res += myseries.data[i].comName + '</br>'
res += '承保期交' + ' : ' + myseries.data[i].sum + '万元</br>'
res += '承保标保' + ' : ' + myseries.data[i].sum + '万元</br>'
res += '目标达成率' + ' : ' + myseries.data[i].rate + '%</br>'
}
}

View File

@@ -64,9 +64,9 @@ export default {
needGettingKey: ['name', 'ysbb', 'ysjs', 'bzbf', 'cbjs'],
tableColumns: [
{ name: '机构', key: 'name' },
{ name: '预收期交(万元)', key: 'ysbb' },
{ name: '预收标保(万元)', key: 'ysbb' },
{ name: '预收件数(件)', key: 'ysjs' },
{ name: '承保期交(万元)', key: 'bzbf' },
{ name: '承保标保(万元)', key: 'bzbf' },
{ name: '承保件数(件)', key: 'cbjs' }
],
values: [],

View File

@@ -5,7 +5,7 @@
<div class="header-left">
<van-button>
<img :src="point" />
<span class="ml5 mr5">期交</span>
<span class="ml5 mr5">标保</span>
</van-button>
</div>
<div class="header-center">
@@ -132,7 +132,7 @@ export default {
// 实时筛选时间条件
timeCondition: dateUtil.formatDate(currentDate, 'yyyy-MM-dd HH:mm'),
dayTimeCondition: currentDate,
// 0: 期交, 1: 人力, 2: 产品
// 0: 标保, 1: 人力, 2: 产品
typeIndex: 0,
//子组件机构名称的角标等于this.availableLevel - 3
active: 0,

View File

@@ -36,7 +36,7 @@ export default {
const res =await getServiceConfig({})
if (res.sections) {
res.sections.forEach(e=>{
if(e.name.indexOf('一月专区')!=-1){
if(e.name.indexOf('开门红专区')!=-1){
this.menuList =e.items;
}
})

View File

@@ -10,10 +10,10 @@
<div v-if="this.$route.query.renewalFlag == '0'">
<div v-for="item in dataInfo.oldRiskMessageDTOList">
<van-cell title="原保单险种名称" :value="item.riskName" />
<van-cell title="原保单保费" :value="item.prem+'元'" class="lastvancell"/>
<van-cell title="原保单保费" :value="item.prem" class="lastvancell"/>
</div>
</div>
<van-cell title="保单保费" v-if="this.$route.query.renewalFlag == '1'" :value="dataInfo.prem+'元'" />
<van-cell title="保单保费" v-if="this.$route.query.renewalFlag == '1'" :value="dataInfo.prem" />
<van-cell title="代理人" v-if="agentType == '服务经理'" :value="dataInfo.agentCustomerManagerName" />
<van-cell title="代理人工号" v-if="agentType == '服务经理'" :value="dataInfo.agentCustomerManagertCode" />
<van-cell title="客户经理" v-if="agentType == '营业部经理'" :value="dataInfo.agentCustomerManagerName" />

View File

@@ -2,10 +2,10 @@
<div class="sale-list-container pb50">
<div class="topsearch" style="display: flex;background:#fff;align-items: center;">
<div v-if="agentType == '营业部经理'" style="width: 50%;padding: 10px 5px;">
<van-field @click="openchooseagent" v-model="searchName" disabled style="background: #f7f8fa;padding:5px 10px;" label="业务员" right-icon="arrow" placeholder="请选择"/>
<van-field @click="openchooseagent" v-model="searchName" style="background: #f7f8fa;padding:5px 10px;" label="业务员" right-icon="arrow" placeholder="请选择"/>
</div>
<div style="width: 50%;padding: 10px 5px;">
<van-field @click="openshowDataPicker" v-model="showChooseDate" disabled style="background: #f7f8fa;padding:5px 10px;" label="日期" right-icon="arrow" placeholder="请选择"/>
<van-field @click="openshowDataPicker" v-model="showChooseDate" style="background: #f7f8fa;padding:5px 10px;" label="日期" right-icon="arrow" placeholder="请选择"/>
</div>
</div>
<van-sticky>
@@ -44,7 +44,7 @@
</div>
</van-list>
<van-popup v-model="showDataPicker" position="bottom">
<van-datetime-picker type="year-month" v-model="currentDate" title="选择年月" :formatter="formatter" @confirm="onConfirmDate" @cancel="showDataPicker = false" :min-date="minDate" :max-date="maxDate"/>
<van-datetime-picker type="year-month" v-model="currentDate" title="选择日期" @confirm="onConfirmDate" @cancel="showDataPicker = false" :min-date="minDate" :max-date="maxDate"/>
</van-popup>
<van-popup v-model="popupShow" position="bottom">
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" />
@@ -80,7 +80,7 @@ export default {
total: '',
currentPage: 1,
error: false,
finishedText: '',
finishedText: '没有更多了',
pageSize: 5,
showDataPicker:false,
minDate: new Date(2000, 0),
@@ -107,9 +107,6 @@ export default {
this.agentCode = val.slice(0, thisIndex)
this.searchName = val.slice(thisIndex).trim()
this.popupShow = false
this.currentPage = 1
this.listData = []
;[this.loading, this.finished] = [true, false]
this.getOrderList()
},
getAgentManager() {
@@ -156,7 +153,6 @@ export default {
}
;[this.loading, this.finished] = [false, true]
} else {
;[this.loading, this.finished] = [false, true]
this.$toast(res.resultMessage)
}
})
@@ -167,6 +163,7 @@ export default {
this.active = name
this.listData = []
;[this.loading, this.finished] = [true, false]
this.finishedText = '正在加载...'
this.getOrderList()
},
//搜索
@@ -174,6 +171,7 @@ export default {
this.currentPage = 1
this.listData = []
;[this.loading, this.finished] = [true, false]
this.finishedText = '正在加载...'
this.getOrderList()
},
//投保单详情
@@ -234,19 +232,8 @@ export default {
let lastDay1 = date.toLocaleDateString();
this.cvaliEndDate = lastDay1.replaceAll('/','-')
this.showDataPicker = false
this.currentPage = 1
this.listData = []
;[this.loading, this.finished] = [true, false]
this.getOrderList()
},
formatter(type, val) {
if (type === 'year') {
return `${val}`;
} else if (type === 'month') {
return `${val}`;
}
return val;
},
}
}
}
</script>

View File

@@ -74,8 +74,8 @@
<tr v-if="curMainType == '01'" class="title">
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2" style="height: 1.2em;width:8.6em">机构</th>
<th>预收期交</th>
<th>承保期交</th>
<th>预收标保</th>
<th>承保标保</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -176,8 +176,8 @@ export default {
// 数据
personalDate: [],
timeVal: '',
sortTypeText: '预收期交',
queryColumns: ['预收件数', '预收期交', '承保件数', '承保期交', '承保期交'],
sortTypeText: '预收标保',
queryColumns: ['预收件数', '预收标保', '承保件数', '承保标保', '承保标保'],
// 人力排名
// sortTypeText: '活动人力',
// queryColumns: ['活动人力', '合格人力', '桂冠人力', '新增人力'],
@@ -318,18 +318,18 @@ export default {
case '预收件数':
this.sortType = '1'
break
case '预收期交':
case '预收标保':
this.sortType = '2'
break
case '承保件数':
this.sortType = '3'
break
case '承保期交':
case '承保标保':
this.sortType = '4'
break
// case '承保期交':
// this.sortType = '5'
// break
case '承保标保':
this.sortType = '5'
break
//
case '活动人力':
this.sortType = '6'

View File

@@ -73,7 +73,7 @@
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2">机构</th>
<th>预收保费</th>
<th>承保期交</th>
<th>承保标保</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -150,7 +150,7 @@ export default {
tableData: [],
timeVal: '',
sortTypeText: '预收保费',
queryColumns: ['预收件数', '预收保费', '承保件数', '承保期交', '承保保费'],
queryColumns: ['预收件数', '预收保费', '承保件数', '承保标保', '承保保费'],
showPicker: false,
// 年月日选择器
showDatePicker: false,
@@ -293,7 +293,7 @@ export default {
onConfirm(value, index) {
this.sortTypeText = value
switch (value) {
// '预收件数', '预收期交', '承保件数', '承保期交', '承保期交
// '预收件数', '预收标保', '承保件数', '承保标保', '承保标保
case '预收件数':
this.sortType = '1'
break
@@ -303,7 +303,7 @@ export default {
case '承保件数':
this.sortType = '3'
break
case '承保期交':
case '承保标保':
this.sortType = '4'
break
case '承保保费':

View File

@@ -70,7 +70,7 @@
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2">机构</th>
<th>预收保费</th>
<th>承保期交</th>
<th>承保标保</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -147,7 +147,7 @@ export default {
tableData: [],
timeVal: '',
sortTypeText: '预收保费',
queryColumns: ['预收件数', '预收保费', '承保件数', '承保期交', '承保保费'],
queryColumns: ['预收件数', '预收保费', '承保件数', '承保标保', '承保保费'],
showPicker: false,
// 年月日选择器
showDatePicker: false,
@@ -289,7 +289,7 @@ export default {
onConfirm(value, index) {
this.sortTypeText = value
switch (value) {
// '预收件数', '预收期交', '承保件数', '承保期交', '承保期交
// '预收件数', '预收标保', '承保件数', '承保标保', '承保标保
case '预收件数':
this.sortType = '1'
break
@@ -299,7 +299,7 @@ export default {
case '承保件数':
this.sortType = '3'
break
case '承保期交':
case '承保标保':
this.sortType = '4'
break
case '承保保费':

View File

@@ -70,7 +70,7 @@
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2">机构</th>
<th>预收保费</th>
<th>承保期交</th>
<th>承保标保</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -147,7 +147,7 @@ export default {
tableData: [],
timeVal: '',
sortTypeText: '预收保费',
queryColumns: ['预收件数', '预收保费', '承保件数', '承保期交', '承保保费'],
queryColumns: ['预收件数', '预收保费', '承保件数', '承保标保', '承保保费'],
showPicker: false,
// 年月日选择器
showDatePicker: false,
@@ -290,7 +290,7 @@ export default {
onConfirm(value, index) {
this.sortTypeText = value
switch (value) {
// '预收件数', '预收期交', '承保件数', '承保期交', '承保期交
// '预收件数', '预收标保', '承保件数', '承保标保', '承保标保
case '预收件数':
this.sortType = '1'
break
@@ -300,7 +300,7 @@ export default {
case '承保件数':
this.sortType = '3'
break
case '承保期交':
case '承保标保':
this.sortType = '4'
break
case '承保保费':

View File

@@ -94,30 +94,30 @@ export default {
[
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: false, name: '预收期交(万元)', key: 'ysbb' },
{ isInt: false, name: '预收标保(万元)', key: 'ysbb' },
{ isInt: true, name: '预收件数(件)', key: 'ysjs' },
{ isInt: false, name: '承保期交(万元)', key: 'bzbf' },
{ isInt: false, name: '承保标保(万元)', key: 'bzbf' },
{ isInt: true, name: '承保件数(件)', key: 'cbjs' }
],
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: false, name: '预收期交(万元)', key: 'ysbb' },
{ isInt: false, name: '预收标保(万元)', key: 'ysbb' },
{ isInt: true, name: '预收件数(件)', key: 'ysjs' },
{ isInt: false, name: '承保期交(万元)', key: 'bzbf' },
{ isInt: false, name: '承保标保(万元)', key: 'bzbf' },
{ isInt: true, name: '承保件数(件)', key: 'cbjs' },
{ isInt: false, name: '承保同比', key: 'cbtb' },
{ isInt: false, name: '承保环比', key: 'cbhb' }
],
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: false, name: '承保期交(万元)', key: 'bzbf' },
{ isInt: false, name: '期交目标', key: 'bbmb' },
{ isInt: false, name: '期交目标达成率', key: 'bbmbdcl' },
{ isInt: false, name: '承保标保(万元)', key: 'bzbf' },
{ isInt: false, name: '标保目标', key: 'bbmb' },
{ isInt: false, name: '标保目标达成率', key: 'bbmbdcl' },
{ isInt: false, name: '差距', key: 'cj' }
],
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: false, name: '承保期交(万元)', key: 'bzbf' }
{ isInt: false, name: '承保标保(万元)', key: 'bzbf' }
]
],
[
@@ -131,7 +131,7 @@ export default {
],
[
{ isInt: false, name: '产品', key: 'productName' },
{ isInt: false, name: '承保期交(万元)', key: 'cbbb' },
{ isInt: false, name: '承保标保(万元)', key: 'cbbb' },
{ isInt: true, name: '承保件数(件)', key: 'cbItems' },
{ isInt: false, name: '保费占比(%)', key: 'percent' }
]

View File

@@ -70,7 +70,7 @@
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2">机构</th>
<th>预收保费</th>
<th>承保期交</th>
<th>承保标保</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -146,7 +146,7 @@ export default {
bzbfTotol: 0,
timeVal: '',
sortTypeText: '预收保费',
queryColumns: ['预收件数', '预收保费', '承保件数', '承保期交', '承保保费'],
queryColumns: ['预收件数', '预收保费', '承保件数', '承保标保', '承保保费'],
showPicker: false,
// 年月日选择器
showDatePicker: false,
@@ -279,7 +279,7 @@ export default {
onConfirm(value, index) {
this.sortTypeText = value
switch (value) {
// '预收件数', '预收期交', '承保件数', '承保期交', '承保期交
// '预收件数', '预收标保', '承保件数', '承保标保', '承保标保
case '预收件数':
this.sortType = '1'
break
@@ -289,7 +289,7 @@ export default {
case '承保件数':
this.sortType = '3'
break
case '承保期交':
case '承保标保':
this.sortType = '4'
break
case '承保保费':

View File

@@ -70,7 +70,7 @@
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2">机构</th>
<th>预收保费</th>
<th>承保期交</th>
<th>承保标保</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -147,7 +147,7 @@ export default {
bzbfTotol: 0,
timeVal: '',
sortTypeText: '预收保费',
queryColumns: ['预收件数', '预收保费', '承保件数', '承保期交', '承保保费'],
queryColumns: ['预收件数', '预收保费', '承保件数', '承保标保', '承保保费'],
showPicker: false,
// 年月日选择器
showDatePicker: false,
@@ -290,7 +290,7 @@ export default {
onConfirm(value, index) {
this.sortTypeText = value
switch (value) {
// '预收件数', '预收期交', '承保件数', '承保期交', '承保期交
// '预收件数', '预收标保', '承保件数', '承保标保', '承保标保
case '预收件数':
this.sortType = '1'
break
@@ -300,7 +300,7 @@ export default {
case '承保件数':
this.sortType = '3'
break
case '承保期交':
case '承保标保':
this.sortType = '4'
break
case '承保保费':

View File

@@ -70,7 +70,7 @@
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2">机构</th>
<th>预收保费</th>
<th>承保期交</th>
<th>承保标保</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -147,7 +147,7 @@ export default {
tableData: [],
timeVal: '',
sortTypeText: '预收保费',
queryColumns: ['预收件数', '预收保费', '承保件数', '承保期交', '承保保费'],
queryColumns: ['预收件数', '预收保费', '承保件数', '承保标保', '承保保费'],
showPicker: false,
// 年月日选择器
showDatePicker: false,
@@ -288,7 +288,7 @@ export default {
onConfirm(value, index) {
this.sortTypeText = value
switch (value) {
// '预收件数', '预收期交', '承保件数', '承保期交', '承保期交
// '预收件数', '预收标保', '承保件数', '承保标保', '承保标保
case '预收件数':
this.sortType = '1'
break
@@ -298,7 +298,7 @@ export default {
case '承保件数':
this.sortType = '3'
break
case '承保期交':
case '承保标保':
this.sortType = '4'
break
case '承保保费':

View File

@@ -11,7 +11,7 @@
<th>达成</th>
</tr>
<tr>
<td class="bleft bright">预收期交</td>
<td class="bleft bright">预收标保</td>
<td class="bright">{{ performance.ysbb | unitFilter(1) | blankFilter }}</td>
</tr>
<tr>
@@ -19,7 +19,7 @@
<td class="bright">{{ performance.ysjs | unitFilter(2) | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">承保期交</td>
<td class="bleft bright">承保标保</td>
<td class="bright">{{ performance.bzbf | unitFilter(1) | blankFilter }}</td>
</tr>
<tr>
@@ -29,43 +29,43 @@
</table>
</div>
</div>
<!-- <div class="data-section">-->
<!-- <span ref="manpower" class="title">-->
<!-- 人力-->
<!-- </span>-->
<!-- <div class="table-wrapper">-->
<!-- <table class="myTable" cellspacing="0" cellpadding="0">-->
<!-- <tr>-->
<!-- <th style="width: 50%;">人力指标</th>-->
<!-- <th>达成()</th>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="bleft bright">活动人力</td>-->
<!-- <td class="bright">{{ manpower.hdrl | blankFilter }}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="bleft bright">合格人力</td>-->
<!-- <td class="bright">{{ manpower.hgrl | blankFilter }}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="bleft bright">桂冠人力</td>-->
<!-- <td class="bright">{{ manpower.ggrl | blankFilter }}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="bleft bright">桂冠正式会员</td>-->
<!-- <td class="bright">{{ manpower.gghy | blankFilter }}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="bleft bright">双冠人力</td>-->
<!-- <td class="bright">{{ manpower.sgrl | blankFilter }}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="bleft bright">新增人力</td>-->
<!-- <td class="bright">{{ manpower.xzrl | blankFilter }}</td>-->
<!-- </tr>-->
<!-- </table>-->
<!-- </div>-->
<!-- </div>-->
<div class="data-section">
<span ref="manpower" class="title">
人力
</span>
<div class="table-wrapper">
<table class="myTable" cellspacing="0" cellpadding="0">
<tr>
<th style="width: 50%;">人力指标</th>
<th>达成()</th>
</tr>
<tr>
<td class="bleft bright">活动人力</td>
<td class="bright">{{ manpower.hdrl | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">合格人力</td>
<td class="bright">{{ manpower.hgrl | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">桂冠人力</td>
<td class="bright">{{ manpower.ggrl | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">桂冠正式会员</td>
<td class="bright">{{ manpower.gghy | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">双冠人力</td>
<td class="bright">{{ manpower.sgrl | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">新增人力</td>
<td class="bright">{{ manpower.xzrl | blankFilter }}</td>
</tr>
</table>
</div>
</div>
<div class="data-section">
<span ref="production" class="title">
产品
@@ -77,7 +77,7 @@
<table class="myTable" style="min-width: 140vw;" cellspacing="0" cellpadding="0">
<tr>
<th class="sticky">产品名称</th>
<th>承保期交(万元)</th>
<th>承保标保(万元)</th>
<th>承保件数()</th>
<th>保费占比(%)</th>
</tr>

View File

@@ -123,9 +123,9 @@ export default {
// 实时筛选时间条件
timeCondition: dateUtil.formatDate(currentDate, 'MM-dd HH:mm'),
dayTimeCondition: currentDate,
// 0: 期交, 1: 人力, 2: 产品
// 0: 标保, 1: 人力, 2: 产品
typeIndex: 0,
dataTypes: ['期交', '人力指标', '产品'],
dataTypes: ['标保', '人力指标', '产品'],
active: 0,
// 侧边栏是否显示
isSideBarShow: false,

View File

@@ -80,7 +80,7 @@ export default {
tableData: [],
items: [],
bzbfTotol: 0,
queryColumns: ['预收保费','承保期交 ', '承保保费', '预收件数', '承保件数'],
queryColumns: ['预收保费','承保标保 ', '承保保费', '预收件数', '承保件数'],
active: 0,
// 当前的机构编码
curCode: '',

View File

@@ -39,7 +39,7 @@
<div class="name">直辖组</div>
</td>
<td>
<div class="name">承保期交</div>
<div class="name">承保标保</div>
</td>
<td>
<div class="date">寿险承保件数</div>
@@ -54,7 +54,7 @@
<div class="date">综合开拓承保保费</div>
</td>-->
<td>
<div class="date">本月预收期交</div>
<div class="date">本月预收标保</div>
</td>
<td>
<div class="date">本月预收件数</div>

View File

@@ -115,7 +115,7 @@
<div>
<div class="h50 bg-white content mh-auto fs13 fw500 mt5">
<div class="pl10 pr10 pt15 flex justify-content-s align-items-c">
<div>本月{{ filterStatusName }}期交</div>
<div>本月{{ filterStatusName }}标保</div>
<div v-if="filterStatus == 1" class="red">{{ ysbb }}</div>
<div v-else-if="filterStatus == 2" class="red">{{ cbbb }}</div>
</div>

View File

@@ -54,7 +54,7 @@
<div class="mt20">
<div class="h50 bg-white content mh-auto fs13 fw500">
<div class="pl10 pr10 pt15 flex justify-content-s align-items-c">
<div>个人承保期交</div>
<div>个人承保标保</div>
<div class="red">{{cbbb}}</div>
</div>
</div>
@@ -78,7 +78,7 @@
</div>-->
<div class="h50 bg-white content mh-auto fs13 fw500 mt5" v-if="isShow">
<div class="pl10 pr10 pt15 flex justify-content-s align-items-c">
<div>本月预收期交</div>
<div>本月预收标保</div>
<div class="red">{{ysbb}}</div>
</div>
</div>

View File

@@ -32,7 +32,7 @@
<div class="mt20">
<div class="h50 bg-white content mh-auto fs13 fw500">
<div class="pl10 pr10 pt15 flex justify-content-s align-items-c">
<div>{{teamName}}承保期交</div>
<div>{{teamName}}承保标保</div>
<div class="red">{{cbbb}}</div>
</div>
</div>
@@ -56,7 +56,7 @@
</div>-->
<div class="h50 bg-white content mh-auto fs13 fw500 mt5" v-if="isShow">
<div class="pl10 pr10 pt15 flex justify-content-s align-items-c">
<div>本月预收期交</div>
<div>本月预收标保</div>
<div class="red">{{ysbb}}</div>
</div>
</div>

View File

@@ -2,7 +2,7 @@
<div ref="product" class="home-product-container pb20">
<!-- 非个险 -->
<template v-if="!isPersonalInsu">
<div class="home-product-content" v-if="branchType != '12'">
<div class="home-product-content">
<!-- 产品中心 -->
<div class="pcenter-title flex pt10 mr20 mb10 ml15 justify-content-s align-items-c" style="height: 30px;">
<h3 class="center-title fs15 pl10" style="border-left: 4px solid red;">知识社区</h3>
@@ -61,7 +61,7 @@
</template>
<!-- 个险 -->
<template v-if="isPersonalInsu">
<div class="home-product-content" v-if="branchType != '12'">
<div class="home-product-content">
<!-- 机构排名/业绩排名 -->
<div class="pcenter-title flex pt10 pb10 mr15 justify-content-s align-items-c" style="height: 50px;">
<img v-if="isInner" class="title-img" :src="organizationImgUrl" />
@@ -157,8 +157,8 @@ export default {
isGoodStart: '0', // 是否开门红 0-默认
isPersonalInsu: true, // 是否个险渠道
isInner: false,
organizationTheads: ['排名', '机构', '当日预收(期交)', '月预收期交', '日承保期交', '月承保期交'],
performanceTheads: ['排名', '姓名', '营销服务部', '预收期交', '承保期交'],
organizationTheads: ['排名', '机构', '当日预收(标保)', '月预收标保', '日承保标保', '月承保标保'],
performanceTheads: ['排名', '姓名', '营销服务部', '预收规保', '承保标保'],
organizationData: [],
performanceData: [],
organizationImgUrl: '', // 机构排名图片

View File

@@ -275,15 +275,8 @@
//点我新增
addProposal() {
let thisToken = this.$CacheUtils.getLocItem('token')
let thisbranchType = ''
if(this.$CacheUtils.getLocItem('branchType') == '13') {
thisbranchType = this.$CacheUtils.getLocItem('branchType')
}
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
if(thisbranchType) {
this.$CacheUtils.setLocItem('branchType', thisbranchType)
}
this.$jump({
flag: 'h5',
extra: {
@@ -297,15 +290,8 @@
//编辑
edit(item) {
let thisToken = this.$CacheUtils.getLocItem('token')
let thisbranchType = ''
if(this.$CacheUtils.getLocItem('branchType') == '13') {
thisbranchType = this.$CacheUtils.getLocItem('branchType')
}
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
if(thisbranchType) {
this.$CacheUtils.setLocItem('branchType', thisbranchType)
}
//建议书列表 编辑=》制作中的建议书跳转到选择被保险人页面;
this.$CacheUtils.setLocItem('proposalNo', item.orderInfoDTO.orderNo)
this.$CacheUtils.setLocItem('canMoveOn', 1)

View File

@@ -51,14 +51,14 @@
<div class="fs12 div_4">
<div class="risk_head flex text-center line-height table fs12 bg_DBEFFE">
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7">投保险种</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="ispremshow">保额(</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="mainRiskCodes[0] != 'GFRS_M0080' && mainRiskCodes[0] != 'GFRS_M0083'">保额(</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">保险期间</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">交费期间</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">首年保费()</div>
</div>
<div class="risk_body flex text-center table bg_f7fbff" v-for="(riskItem, index) in pageShowInfo.showInsuredDTO.riskDTOLst" :key="index">
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7">{{ riskItem.riskName }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="ispremshow">{{ riskItem.amt ? riskItem.amt : '--' }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="mainRiskCodes[0] != 'GFRS_M0080' && mainRiskCodes[0] != 'GFRS_M0083'">{{ riskItem.amt ? riskItem.amt : '--' }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.insureName }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.payName }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.showPrem ? riskItem.showPrem : '--' }}</div>
@@ -386,8 +386,7 @@ export default {
mainRiskCodes: [],
time: 5,
proposalNo:'',
mainRiskName: '',
ispremshow: true, // 是否展示保额
mainRiskName: ''
}
},
filters: {
@@ -730,9 +729,6 @@ export default {
that.pageShowInfo.insuredDTOs.forEach(item => {
item.riskDTOLst.forEach(item01 => {
if (item01.isMainRisk == '0') {
if(item01.mainRiskCode == 'GFRS_M0080' || item01.mainRiskCode == 'GFRS_M0083' || item01.mainRiskCode == 'GFRS_M0085') {
that.ispremshow = false
}
mainRiskNameList.push(item01.riskName)
}
})

View File

@@ -150,30 +150,16 @@ export function relevanceByInsure(insured, insuredLabelResult, insuredResult, in
let defaulValue = 'M' //档位默认值
let radios = []
if(currentInsuredInfo.L){
if(risk.mainRiskCode == 'GFRS_M0083' || risk.mainRiskCode == 'GFRS_M0085') {
radios.push({
label: '保证' + currentInsuredInfo.L,
value: 'L'
})
} else {
radios.push({
label: '低档' + currentInsuredInfo.L,
value: 'L'
})
}
radios.push({
label: '低档' + currentInsuredInfo.L,
value: 'L'
})
}
if(currentInsuredInfo.M){
if(risk.mainRiskCode == 'GFRS_M0083' || risk.mainRiskCode == 'GFRS_M0085') {
radios.push({
label: '演示' + currentInsuredInfo.M,
value: 'M'
})
} else {
radios.push({
label: '中档' + currentInsuredInfo.M,
value: 'M'
})
}
radios.push({
label: '中档' + currentInsuredInfo.M,
value: 'M'
})
}
if(currentInsuredInfo.H){
radios.push({

File diff suppressed because it is too large Load Diff

View File

@@ -86,7 +86,7 @@
</van-field>
</van-dialog>
<van-dialog class="bankCardContract" v-model="bankCardContractShow" title="提示" show-cancel-button @confirm="authConfirm" @cancel="checkModelCancel">
<p class="p10 fs14">尊敬的客户您好您的银行卡账户未进行续期签约为确保是您本人操作短信验证码已发送至您的手机号{{ appntDTO.mobile }}请您输入验证码完成签约流程~</p>
<p class="p10 fs14">您的银行卡账户未进行续期签约为确保是您本人操作短信验证码已发送至您的手机号{{ appntDTO.mobile }}请您输入验证码完成签约流程~</p>
<van-cell-group class="flex align-items-c" style="margin: 10px;">
<van-field maxlength="6" placeholder="请输入短信验证码" v-model="verfyCode" clearable label-width="0" />
</van-cell-group>
@@ -577,79 +577,39 @@ export default {
}
},
getBankCardSignState(){
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……',
})
let params = {
orderNo: this.$route.query.orderNo
}
getBankCardSignState(params).then(res => {
this.$toast.clear()
let checkRes = res.content
if (checkRes.result == '0') {
this.$toast.clear()
if (checkRes.needSign == '0' || checkRes.needSign == null) {
if(checkRes.signState == '0' || checkRes.signState == '2'){
// 不需签约已签约,不做处理
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
}
}
else if (checkRes.needSign == '3') {
if(checkRes.signState == '0') {
this.$toast('该银行卡金掌桂暂不支持续期签约!')
}
}
else if (checkRes.needSign == '1'){
if (checkRes.signState == '2' || checkRes.needSign == '0') {
// 不需签约 或 已签约 不做处理 可以发起支付
console.log('不需签约已签约 不做处理 可以发起支付')
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
} else if (checkRes.needSign == '1'){
if (checkRes.signConfirmType == '2'){
this.bankCardContractShow = true
this.rdSeq = checkRes.rdSeq
}else if (checkRes.signConfirmType == '3'){
Dialog.alert({
message: '银行已发送短信至手机号'+ this.appntDTO.mobile +',按照短信提示完成短信回复签约,再次通过金掌桂完成后续流程。',
message: '亲,银行已发送短信至手机号'+ this.appntDTO.mobile +',按照短信提示完成短信回复签约,再次通过金掌桂完成后续流程。',
confirmButtonColor: '#ff5e50',
}).then(() => {})
} else if(checkRes.signConfirmType == '4') {
// this.$toast('招商银行卡请至官微续期签约~')
Dialog.alert({
message: '招商银行卡请至官微续期签约~',
confirmButtonColor: '#ff5e50',
}).then(() => {})
} else if(checkRes.signConfirmType == '5') {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
} else if (checkRes.signState == '3') {
// 签约失败
const info = '您当前银行卡账户续期签约失败,\n原因' + checkRes.resultMessage
Dialog.confirm({
message: info,
className: 'reConfirm leftConfirm',
cancelButtonText: '返回',
cancelButtonColor: '#ff5e50',
showCancelButton: false,
confirmButtonText: '修改银行卡信息',
confirmButtonColor: '#ff5e50',
allowHtml: true
}).then(() => {}).catch(() => {});
} else if (checkRes.signState == '4') {
const info = '银行卡已在签约中,请稍后~'
}else{
this.$toast('该微信绑定的银行卡金掌桂暂不支持续期签约!')
}
if (checkRes.signState == '4') {
const info = '亲,银行卡已在签约中,请稍后'
Dialog.alert({
message: info,
className: 'reConfirm leftConfirm',
@@ -657,19 +617,29 @@ export default {
allowHtml: true
}).then(() => {}).catch(() => {})
// }
} else if (checkRes.signState == '3') {
// 签约失败
const info = '亲,您当前银行卡账户续期签约失败,\n原因' + checkRes.resultMessage
Dialog.confirm({
message: info,
className: 'reConfirm leftConfirm',
cancelButtonText: '返回',
cancelButtonColor: '#ff5e50',
confirmButtonText: '修改银行卡信息',
confirmButtonColor: '#ff5e50',
allowHtml: true
}).then(() => {}).catch(() => {});
}
}
else {
} else {
this.$toast(checkRes.resultMessage)
}
}else{
const info = '您当前银行卡账户续期签约失败,\n原因' + checkRes.resultMessage
const info = '亲,您当前银行卡账户续期签约失败,\n原因' + checkRes.resultMessage
Dialog.confirm({
message: info,
className: 'reConfirm leftConfirm',
cancelButtonText: '返回',
cancelButtonColor: '#ff5e50',
showCancelButton: false,
confirmButtonText: '修改银行卡信息',
confirmButtonColor: '#ff5e50',
allowHtml: true
@@ -700,7 +670,7 @@ export default {
signConfirm(data).then(res => {
this.verfyCode = ''
this.bankCardContractShow = false
if (res.content.result == '0') {
if (res.result == '0') {
this.$toast.clear()
this.$jump({
flag: 'h5',
@@ -714,13 +684,12 @@ export default {
}else{
this.$toast.clear()
// 签约失败
const info = '您当前银行卡账户续期签约失败,\n原因' + res.content.resultMessage
const info = '亲,您当前银行卡账户续期签约失败,\n原因' + data.resultMessage
Dialog.confirm({
message: info,
className: 'reConfirm leftConfirm',
cancelButtonText: '返回',
cancelButtonColor: '#ff5e50',
showCancelButton: false,
confirmButtonText: '修改银行卡信息',
confirmButtonColor: '#ff5e50',
allowHtml: true

View File

@@ -88,7 +88,7 @@
@confirm="onDateConfirm($event, '1')"
ref="certiexpiredate"
:flag="certiexpiredateShow"
:readonly="isInsured"
:readonly="isInsured || idLimit"
></FieldDatePicter>
<div class="border-bt relative fs14 p10 flex align-center">
<van-checkbox v-model="userInfo.effectiveDateType" class="fr" :disabled="effectiveDateTypeAble" @change="effectiveDataTypeChange">长期</van-checkbox>
@@ -250,7 +250,7 @@ import idNoCheck from '@/assets/js/utils/idNoCheck'
import { idToData } from './js/verification'
import { selectComp } from './js/methods'
import getAreaName from '@/assets/js/utils/getAreaNameForSale'
import { getOrderDetail, checkAppointBnf } from '@/api/ebiz/sale/sale'
import { getOrderDetail } from '@/api/ebiz/sale/sale'
let relationToInsured = [
{ id: 2, text: '配偶' },
@@ -643,10 +643,6 @@ export default {
this.effectiveDateTypeAble = age <= 45
if(this.userInfo.birthday){
this.userInfo.certiexpiredate = countCredentialValidity.getEndDate(age,val)
if(this.userInfo.certiexpiredate) {
this.effectiveDateTypeAble = true
this.userInfo.effectiveDateType = false
}
}
}
}
@@ -1118,51 +1114,21 @@ export default {
}
}
let thisbnfDTOs = []
thisbnfDTOs.push(this.userInfo)
let params = {
orderType: 'BNF_ORDER',
orderDTO: {
productDTO: null,
orderInfoDTO: {
bnfFlag: this.bnfFlag,
orderNo: this.$route.query.orderNo
},
appntDTO: {},
insuredDTOs: [
{
insuredId: JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).insuredId,
bnfDTOs: thisbnfDTOs
}
],
paymentDTO: {},
orderAccountDTO: {},
channelDTO: null,
orderExpandDTO: null,
thirdOrderDTO: null
}
beneficiaries.push(this.userInfo)
// 保存 新增的受益人信息 以及页面跳转字段
localStorage.beneficiaryInfo = JSON.stringify(beneficiaries)
localStorage.fromAddBeneficiaryInfo = true
if (this.userInfo.asAppntAddress == true) {
localStorage.applicant = '1'
}
checkAppointBnf(params).then(res=>{
if(res.result == '0'){
beneficiaries.push(this.userInfo)
// 保存 新增的受益人信息 以及页面跳转字段
localStorage.beneficiaryInfo = JSON.stringify(beneficiaries)
localStorage.fromAddBeneficiaryInfo = true
if (this.userInfo.asAppntAddress == true) {
localStorage.applicant = '1'
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/beneficiary?orderNo=' + this.$route.query.orderNo,
needRefresh: '1'
},
routerInfo: {
path: '/sale/beneficiary?orderNo=' + this.$route.query.orderNo
}
})
} else {
this.$toast(res.resultMessage)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/beneficiary?orderNo=' + this.$route.query.orderNo,
needRefresh: '1'
},
routerInfo: {
path: '/sale/beneficiary?orderNo=' + this.$route.query.orderNo
}
})
} else {
@@ -1303,53 +1269,35 @@ export default {
}
this.userInfo.effectiveDateType = false
this.effectiveDateTypeAble = idToData(val).age <= 45
if(this.userInfo.idType == '2' && idToData(this.userInfo.idNo).age <16) {
this.userInfo.birthday = idToData(val).birthday
this.userInfo.sex = idToData(val).sex
this.userInfo.certificateValidate = this.userInfo.birthday
let date2_29 = this.userInfo.certificateValidate.slice(5, 11)
if(date2_29 == '02-29'){
let thisyear = Number(this.userInfo.certificateValidate.slice(0, 4)) + 16
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return this.userInfo.certiexpiredate = thisyear + '-02-29'
} else {
return this.userInfo.certiexpiredate = thisyear + '-02-28'
}
}else{
this.userInfo.certiexpiredate = String(Number(this.userInfo.certificateValidate.slice(0, 4)) + 16) + this.userInfo.certificateValidate.slice(4, 11)
}
}
this.userInfo.birthday = idToData(val).birthday
//受益人证件类型如果是户口本时证件截止日期证件截止日期应为第16周岁的生日日期。
// if(this.userInfo.idType == '2' && idToData(this.userInfo.idNo).age <16){
// // 获取出生日期年份16
// let year = Number(this.userInfo.birthday.substr(0,4)) + 16
// if(this.userInfo.birthday.substr(5,5) == '02-29'){
// // 获取某年某月一共多少天
// let date = new Date(year, 2, 1)
// let dayEnd = new Date(date.getTime() - 864e5).getDate()
// this.userInfo.certiexpiredate = year +'-02-'+ dayEnd
// // this.userInfo.certiexpiredate = String(Number(this.userInfo.certificateValidate.slice(0, 4)) + 16) + this.userInfo.certificateValidate.slice(4, 11)
// }else{
// // this.userInfo.certiexpiredate = year +'-'+ this.userInfo.birthday.substr(5,5)
// this.userInfo.certiexpiredate = String(Number(this.userInfo.certificateValidate.slice(0, 4)) + 16) + this.userInfo.certificateValidate.slice(4, 11)
// }
// }
// this.userInfo.sex = idToData(val).sex
// if (idToData(val).age > 45) {
// if (from) {
// this.userInfo.effectiveDateType = true
// }
// this.effectiveDateTypeAble = false
// }
// //如果选择户口本
// if (this.userInfo.idType == '2') {
// let exipreDate = Date.parse(this.userInfo.birthday) + Date.parse('1985-12-31')
// this.userInfo.certificateValidate = this.userInfo.birthday
// this.userInfo.certiexpiredate = this.timeStampFormat(exipreDate)
// this.idLimit = true
// //如果选择出生证明
// }
if(this.userInfo.idType == '2' && idToData(this.userInfo.idNo).age <16){
// 获取出生日期年份16
let year = Number(this.userInfo.birthday.substr(0,4)) + 16
if(this.userInfo.birthday.substr(5,5) == '02-29'){
// 获取某年某月一共多少天
let date = new Date(year, 2, 1)
let dayEnd = new Date(date.getTime() - 864e5).getDate()
this.userInfo.certiexpiredate = year +'-02-'+ dayEnd
}else{
this.userInfo.certiexpiredate = year +'-'+ this.userInfo.birthday.substr(5,5)
}
}
this.userInfo.sex = idToData(val).sex
if (idToData(val).age > 45) {
if (from) {
this.userInfo.effectiveDateType = true
}
this.effectiveDateTypeAble = false
}
//如果选择户口本
if (this.userInfo.idType == '2') {
let exipreDate = Date.parse(this.userInfo.birthday) + Date.parse('1985-12-31')
this.userInfo.certificateValidate = this.userInfo.birthday
this.userInfo.certiexpiredate = this.timeStampFormat(exipreDate)
this.idLimit = true
//如果选择出生证明
}
}
},
filters: {

View File

@@ -1,7 +1,28 @@
<template>
<div class="redRadioCheckbox">
<index-bar></index-bar>
<div>
<!-- 来源于支付失败后更换银行卡信息 -->
<div v-if="changeCard">
<div class="flex p10 align-items-c bg-white mt10">
<span>投保人附件</span>
</div>
<van-cell-group>
<van-field required label="银行卡账户" disabled />
</van-cell-group>
<div @click="test('fileListBank', '3', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileListBank"
v-model="fileListBank"
:after-read="afterRead"
@delete="deleteImg"
:before-delete="beforeDelete"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
<div v-else>
<!-- 投保人证件 -->
<div>
<div class="flex p10 align-items-c bg-white mt10">
@@ -59,6 +80,20 @@
</div>
</div>
</div>
<van-cell-group>
<van-field required label="银行卡正面" disabled />
</van-cell-group>
<div @click="test('fileListBank', '3', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileListBank"
v-model="fileListBank"
:after-read="afterRead"
@delete="deleteImg"
:before-delete="beforeDelete"
class="mt10 ml20"
:max-count="1"
/>
</div>
<van-cell-group v-if="isNotify">
<van-field label="健康告知异常类资料" disabled />
</van-cell-group>
@@ -255,42 +290,78 @@ export default {
thisdialogcontent: '',
isNotify: false, //是否有异常的健康告知
isNotifyInsured: false,
orderNo: '', // 订单号
fileListNotifyInsured: [], // 被保人异常告知
fileListNotify: [], // 保人异常告知
fileListIdFront: [], // 投保人身份证正面
fileListIdBack: [], // 投保人身份证反面
fileLIstImg: [], // 投保人其他类型页面
saleInsuredInfoOther: [], // 投保人选择的必选其他
saleInsuredPersonInfoOther: [], // 被保险人选择的必选其他
fileListIdFrontInsured: [], // 被保险人身份证正面
fileListIdBackInsured: [], // 被保险人身份证反面
fileLIstImgInsured: [], // 被保险人其他类型页面
fileListIdFrontBeneficiary: [], // 受益人身份证
fileListIdBackBeneficiary: [], // 受益人身份证反面
fileLIstImgBeneficiary: [], // 受益人其他类型页面
bnfInfo:[], // 受益人
// 订单号
orderNo: '',
// 保人异常告知
fileListNotifyInsured: [],
// 投保人异常告知
fileListNotify: [],
// 投保人身份证正面
fileListIdFront: [
// { url: 'https://img.yzcdn.cn/vant/cat.jpeg' }
// Uploader 根据文件后缀来判断是否为图片文件
],
// 投保人身份证
fileListIdBack: [],
// 投保人其他类型页面
fileLIstImg: [],
// 投保人选择的必选其他
saleInsuredInfoOther: [],
// 被保险人选择的必选其他
saleInsuredPersonInfoOther: [],
// 银行卡正面
fileListBank: [],
// 被保险人身份证正面
fileListIdFrontInsured: [],
// 被保险人身份证反面
fileListIdBackInsured: [],
// 被保险人银行账户
fileListBankInsured: [],
// 被保险人其他类型页面
fileLIstImgInsured: [],
// 受益人身份证正面
fileListIdFrontBeneficiary: [],
// 受益人身份证反面
fileListIdBackBeneficiary: [],
// 受益人其他类型页面
fileLIstImgBeneficiary: [],
// 受益人
bnfInfo:[],
isDisabledBnf:true,
radio: '', // 单选框
isDisabled: true, // 是否可以点击下一步
idType: [], // 数据字典证件类型
saleInsuredPersonInfo: {}, // 被保险人信息
saleInsuredInfo: {}, // 投保人信息
saleBtnfPersonInfo: {}, // 受益人信息
file: '', // 图片流
imgName: '', // 图片名称
imgList: [], // 图片返回数组
// 单选框
radio: '',
// 是否可以点击下一步
isDisabled: true,
// 数据字典证件类型
idType: [],
// 被保险人信息
saleInsuredPersonInfo: {},
// 投保人信息
saleInsuredInfo: {},
// 受益人信息
saleBtnfPersonInfo: {},
// 图片流
file: '',
// 图片名称
imgName: '',
// 图片返回数组
imgList: [],
type: '',
isAppant: '', // 是投保人还是被保险人
list: [], // 传给后端的list
id: '', // 是哪个证件类型
bnfId:'', //受益人id
// 是投保人还是被保险人
isAppant: '',
// 传给后端的list
list: [],
// 是哪个证件类型
id: '',
//受益人id
bnfId:'',
// 投保人被保险人是否是一个人 1为同一个人
relationToAppnt: '',
changeCard: localStorage.changeCard,
salePageFlag: '9',
imageType: '',
subBusinessNo: '',
subBusinessType: '',
changeCard: localStorage.changeCard,
}
},
async created() {
@@ -420,6 +491,9 @@ export default {
//如果是从导航栏点击进入
this.salePageFlag = localStorage.salePageFlag
}
if (this.changeCard) {
document.body.style.backgroundColor = '#fff'
}
let that = this
// 投被保险人是否同人
// if (this.$CacheUtils.getLocItem('saleInsuredPersonInfo')) {
@@ -517,6 +591,44 @@ export default {
} else {
that.fileListIdBackInsured = []
}
// 银行卡
if (window.localStorage.getItem('bankCardUrlPath') != null) {
let bankCardUrl = {
url: config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${window.localStorage.getItem('bankCardUrlPath')}`,
}
that.fileListBank.push(bankCardUrl)
let obj = {
businessNo: that.orderNo,
businessType: '',
imageInfoType: '3',
rgssUrl: window.localStorage.getItem('bankCardUrlPath'),
subBusinessType: '0',
subBusinessNo: that.saleInsuredInfo.insuredId,
}
that.list.push(obj)
} else {
that.fileListBank = []
}
// 被保险人银行卡
// if (window.localStorage.getItem('bankCardUrlInsuredPath') != null) {
// let bankCardUrlInsured = {
// url: config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${window.localStorage.getItem('bankCardUrlInsuredPath')}`
// }
// that.fileListBankInsured.push(bankCardUrlInsured)
// let obj = {
// businessNo: that.orderNo,
// businessType: '',
// imageInfoType: '3',
// rgssUrl: window.localStorage.getItem('bankCardUrlInsuredPath'),
// subBusinessType: '1',
// subBusinessNo: that.saleInsuredPersonInfo.insuredId
// }
// that.list.push(obj)
// } else {
// that.fileListBankInsured = []
// }
// 保费超过20万的提示
// Dialog.alert({ title: '提示', message: '趸交保费≥20万元或期交保费*总期数≥20万元时须上传指定受益人证件正反面' })
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
@@ -569,12 +681,20 @@ export default {
} else if (detail.name == 'fileLIstImg') {
this.fileLIstImg = []
this.deleteImg(file, 'fileLIstImg')
}else if (detail.name == 'fileListIdFrontInsured') {
} else if (detail.name == 'fileListBank') {
this.fileListBank = []
this.deleteImg(file, 'fileListBank')
// } else if (detail.name == 'fileListBankBack') {
// this.fileListBankBack = []
} else if (detail.name == 'fileListIdFrontInsured') {
this.fileListIdFrontInsured = []
this.deleteImg(file, 'fileListIdFrontInsured')
} else if (detail.name == 'fileListIdBackInsured') {
this.fileListIdBackInsured = []
this.deleteImg(file, 'fileListIdBackInsured')
} else if (detail.name == 'fileListBankInsured') {
this.fileListBankInsured = []
this.deleteImg(file, 'fileListBankInsured')
} else if (detail.name == 'fileLIstImgInsured') {
this.fileLIstImgInsured = []
this.deleteImg(file, 'fileLIstImgInsured')
@@ -781,7 +901,7 @@ export default {
})
},
beforeNext(isDis) {
if (isDis && this.fileListIdBack.length > 0 && this.fileListIdFront.length > 0) {
if (isDis && this.fileListBank.length > 0 && this.fileListIdBack.length > 0 && this.fileListIdFront.length > 0) {
this.$toast('请勾选确认销售人员已见证各证件原件并拍照上传')
}
},
@@ -933,16 +1053,22 @@ export default {
saveInformation(data).then((res) => {
if (res.result == '0') {
this.$toast.clear()
window.localStorage.setItem('accountInformationRadio', that.radio)
window.localStorage.setItem('accountInformation-isPaymentSelf', JSON.stringify(that.checked))
window.localStorage.setItem('jumpFromSign', '')
if (!this.changeCard) {
window.localStorage.setItem('accountInfomation-bank', that.bank)
window.localStorage.setItem('accountInformationRadio', that.radio)
window.localStorage.setItem('accountInformation-isPaymentSelf', JSON.stringify(that.checked))
window.localStorage.setItem('jumpFromSign', '')
}
window.localStorage.removeItem('imgfront')
window.localStorage.removeItem('imgBackPath')
window.localStorage.removeItem('imgfrontPath')
window.localStorage.removeItem('imgfrontInsured')
window.localStorage.removeItem('imgfrontInsuredPath')
window.localStorage.removeItem('imgBackInsuredPath')
window.localStorage.removeItem('bankCardUrl')
window.localStorage.removeItem('bankCardUrlPath')
window.localStorage.removeItem('bankCardUrlInsured')
window.localStorage.removeItem('bankCardUrlInsuredPath')
that.$jump({
flag: 'h5',
extra: {
@@ -979,10 +1105,13 @@ export default {
const {
fileListIdFront,
fileListIdBack,
fileListBank,
// fileListBankBack,
radio,
fileLIstImg,
fileListIdFrontInsured,
fileListIdBackInsured,
fileListBankInsured,
fileLIstImgInsured,
saleInsuredPersonInfoOther,
saleInsuredInfoOther
@@ -991,9 +1120,12 @@ export default {
return {
fileListIdFront,
fileListIdBack,
fileListBank,
// fileListBankBack,
radio,
fileListIdFrontInsured,
fileListIdBackInsured,
fileListBankInsured,
fileLIstImgInsured,
fileLIstImg,
saleInsuredPersonInfoOther,
@@ -1004,33 +1136,125 @@ export default {
watch: {
listenChange(val) {
let that = this
if (
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.fileListIdFrontInsured.length != '0' && val.fileListIdBackInsured.length != '0' && val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.fileListIdFrontInsured.length != '0' && val.fileListIdBackInsured.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.fileListIdFrontInsured.length != '0' && val.fileListIdBackInsured.length != '0' && val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.fileListIdFrontInsured.length != '0' && val.fileListIdBackInsured.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.fileLIstImgInsured.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.fileLIstImgInsured.length != '0' && val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.fileLIstImgInsured.length != '0' && val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.fileLIstImgInsured.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.radio !== '' && this.relationToAppnt == '1') ||
(val.fileLIstImg.length != '0' && val.radio !== '' && this.relationToAppnt == '1') ||
(val.saleInsuredInfoOther.length != '0' && val.fileListIdFrontInsured.length != '0' && val.fileListIdBackInsured.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileLIstImgInsured.length != '0' && val.radio !== '') ||
(val.saleInsuredPersonInfoOther.length != '0' && val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileLIstImg.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileListIdFrontInsured.length != '0' && val.fileListIdBackInsured.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileLIstImg.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.saleInsuredPersonInfoOther.length != '0' && val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.saleInsuredPersonInfoOther.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.saleInsuredPersonInfoOther.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.saleInsuredPersonInfoOther.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.radio !== '' && this.relationToAppnt == '1')
) {
//去掉收益人添加的,有收益人删掉该行显示下面影藏判断
that.isDisabled = false
if (this.changeCard) {
//从转账不成功跳过来的
if (val.fileListBank.length != '0' && val.radio !== '') {
that.isDisabled = false
} else {
that.isDisabled = true
}
} else {
that.isDisabled = true
if (
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
(val.fileLIstImg.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.radio !== '') ||
(val.fileLIstImg.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.radio !== '') ||
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.fileLIstImgInsured.length != '0' &&
val.radio !== '') ||
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImgInsured.length != '0' &&
val.radio !== '') ||
(val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImg.length != '0' &&
val.fileLIstImgInsured.length != '0' &&
val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.fileLIstImgInsured.length != '0' && val.fileListBankInsured.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.radio !== '' &&
this.relationToAppnt == '1') ||
(val.fileLIstImg.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.radio !== '' &&
this.relationToAppnt == '1') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImgInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredPersonInfoOther.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImg.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileListBankInsured.length != '0' && val.fileLIstImg.length != '0' && val.radio !== '') ||
(val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.radio !== '') ||
(val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImg.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.radio !== '' &&
this.relationToAppnt == '1')
) {
//去掉收益人添加的,有收益人删掉该行显示下面影藏判断
that.isDisabled = false
} else {
that.isDisabled = true
}
}
},
//监听受益人影像list的变化控制下一步按钮是否可点击
@@ -1039,16 +1263,21 @@ export default {
console.log(val,'val监听到but')
console.log(oldval,'oldval监听到but')
let that = this
if(val.length > 0){
for (let index = 0; index < val.length; index++) {
let item = val[index]
that.isDisabledBnf = !this.checkBtnInfo(item)
if(this.checkBtnInfo(item) == false){
return false
if (this.changeCard) {
document.body.style.backgroundColor = '#fff'
this.isDisabledBnf = false
}else{
if(val.length > 0){
for (let index = 0; index < val.length; index++) {
let item = val[index]
that.isDisabledBnf = !this.checkBtnInfo(item)
if(this.checkBtnInfo(item) == false){
return false
}
}
}else if (val.length == 0){
that.isDisabledBnf = false
}
}else if (val.length == 0){
that.isDisabledBnf = false
}
},
deep: true

View File

@@ -2,7 +2,7 @@
<div class="detail-container">
<van-collapse v-model="activeNames">
<!-- 保单信息 -->
<van-collapse-item v-if="branchType == '13'" title="投保单信息" name="1" class="pb10 pt10">
<van-collapse-item title="投保单信息" name="1" class="pb10 pt10">
<van-cell-group>
<van-cell title="投保单号" :value="OrderInfoDTO.orderNo" />
<van-cell title="投保日期" :value="OrderInfoDTO.appntDateLabel" />
@@ -14,22 +14,9 @@
</van-cell-group>
</van-collapse-item>
<!-- 项目信息 -->
<van-collapse-item title="项目信息" name="3" v-if="branchType == '13'" class="detail-title pb10">
<van-cell-group>
<van-cell title="平台名称" :value="ebizOrderGbcRelDTO.unitName" />
<van-cell title="项目名称" :value="ebizOrderGbcRelDTO.projectName" />
<van-cell title="团队组代码" :value="ebizOrderGbcRelDTO.teamCode" />
<van-cell title="服务截止日期" :value="ebizOrderGbcRelDTO.projectEndDate" />
<van-cell title="录单人工号" :value="ebizOrderGbcRelDTO.personCode" />
<van-cell title="出单人工号" :value="ebizOrderGbcRelDTO.teamLeaderCode" />
</van-cell-group>
</van-collapse-item>
<!-- 投保人信息 -->
<van-collapse-item title="投保人信息" name="2" class="detail-title pb10">
<van-cell-group>
<van-cell title="部门/科室" v-if="branchType == '13'" :value="ebizOrderGbcRelDTO.departmentName" />
<van-cell title="投保人" :value="appntDTO.name" />
<van-cell title="性别" :value="appntDTO.sex" />
<van-cell title="证件类型" :value="appntDTO.idType" />
@@ -117,13 +104,10 @@ import { getQuestionList } from '@/api/ebiz/questions'
export default {
data() {
return {
branchType:'',
// 折叠面板
activeNames: ['1'],
// 保单基本信息
OrderInfoDTO: {},
// 项目信息
ebizOrderGbcRelDTO:{},
// 投保人信息
appntDTO: {},
// 被保险人信息
@@ -139,11 +123,6 @@ export default {
// 获取保单详情
this.getPolicyDetail()
},
mounted() {
if(window.localStorage.getItem('branchType') == '13') {
this.branchType = '13'
}
},
components: {
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
@@ -179,7 +158,6 @@ export default {
res.orderDTO.orderInfoDTO.bnfFlag = '法定受益人'
}
this.OrderInfoDTO = res.orderDTO.orderInfoDTO
this.ebizOrderGbcRelDTO = res.orderDTO.ebizOrderGbcRelDTO
this.appntDTO = res.orderDTO.appntDTO
this.reason = res.orderDTO.reason

File diff suppressed because it is too large Load Diff

View File

@@ -90,28 +90,6 @@
说明:如您想获取个人信息处理的合作机构名称联系方式信息处理方式保存期限详情和个人行使信息保护权利的方式和程序可拨打国富人寿服务热线4006946688咨询
</p>
</div>
<div>
<h2 style="text-align:center" class="mb20">转账授权书</h2>
<p class="mb20">本人授权国富人寿保险股份有限公司以下简称国富人寿及本人指定之银行账户微信账户按下述授权内容进行保险费的划扣及相关权益的给付</p>
<p class="mb20" style="font-weight: bold;">银行卡转账授权声明</p>
<p class="mb20">1本人同意委托国富人寿从本人的授权账户中扣取本保险合同所需缴纳的保险费并保证授权账户中有足够的金额支付应交保险费</p>
<p class="mb20">
2本人确认授权的银行账户所有人为投保人本人账户的开户银行户名和账号均真实有效续期交费账户与首期保费交纳账户为同一账户
本人所提供的授权账户必须是本人的个人结算账户借记卡个人活期结算存折
</p>
<p class="mb20">
3本人同意若因账户挂失账户冻结账户余额不足或其
他非银行原因造成转账不成功致使产生保险合同终止的任何后果或投资账户的费用损失因此引起的责任概由本人承担
</p>
<p class="mb20">4如本人在同一指定账户内同时授权两张或两张以上保险单中的保险费或其他自动转账业务时本人同意依照国富人寿规定的转账顺序转账</p>
<p class="mb20">5本人投保后若办理退保或退费业务同意国富人寿将应退金额通过银行划转入该账户</p>
<p class="mb20">
6本人因故结清账户会重新开立账户并及时通过国富人寿进行变更如本人欲终止本授权应立即向国富人寿递交终止的书面申请由国富人寿知会银行停止转账若因本人未及时办理账户变更手续而导致退保给付金无法按时给付则同意国富人寿按退保申请日的给付金额支付
</p>
<p class="mb20">7对于一年期以上的产品国富人寿可在保险费约定支付日之前及时通知本人交纳续期保险费</p>
<p class="mb20" style="font-weight: bold;">微信转账授权声明</p>
<p class="mb20">1首期保险费使用微信支付的本人同意国富人寿通过本人投保时留存的银行账户进行续期保险费转账扣除</p>
</div>
</div>
<van-radio-group v-model="radio" class="pb10 pb20 pl30">

View File

@@ -2,20 +2,8 @@
<div class="insured-info-container pb60 redRadioCheckbox">
<!-- 基本信息 -->
<index-bar :key="renovate"></index-bar>
<!-- 项目信息 -->
<van-cell-group :border="false" v-if="branchType == '13'">
<p style="border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 mt10 pv12">项目信息</p>
<van-field v-model="projectDTO.platformName" label="平台名称" name="平台名称" readonly placeholder="请输入"/>
<van-field v-model="projectDTO.projectName" label="项目名称" name="项目名称" readonly placeholder="请输入"/>
<van-field v-model="projectDTO.teamCode" label="团队组代码" name="团队组代码" readonly placeholder="请输入"/>
<van-field v-model="projectDTO.endDate" label="服务截至日期" name="服务截至日期" readonly placeholder="请输入"/>
<van-field v-model="projectDTO.personCode" label="录单人工号" name="录单人工号" readonly placeholder="请输入"/>
<van-field v-model="projectDTO.leaderCode" label="出单人工号" name="出单人工号" readonly placeholder="请输入"/>
<!-- <van-field :value="projectDTO.departmentName" @click="toSelect('GBCKS')" readonly required label="部门/科室" name="部门/科室" right-icon="arrow" placeholder="请选择"/>-->
</van-cell-group>
<van-cell-group class="mt10">
<p style="border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 pv12">基本信息</p>
<van-field v-show="branchType == '13'" v-model="projectDTO.departmentName" @click="toSelect('GBCKS')" readonly required label="部门/科室" name="部门/科室" right-icon="arrow" placeholder="请选择"/>
<customer-picker
@on-choose="chooseCustomer"
v-validate="'required|salename'"
@@ -135,14 +123,7 @@
v-validate="'required|mobileLength11|mobileStartWith1|mobile'"
maxlength="11"
/>
<van-field
v-model="userInfo.email"
required
label="电子邮箱"
name="电子邮箱"
placeholder="请输入"
v-validate="'required|email'"
clearable />
<van-field v-model="userInfo.email" required label="电子邮箱" name="电子邮箱" placeholder="请输入" v-validate="'required|email'" clearable />
<van-field
v-model="userInfo.stature"
label="身高(cm)"
@@ -187,16 +168,16 @@
v-validate="'required'"
@click="toSelect('11')"
/>
<!-- <div class="p15 pl8 fs14">-->
<!-- <van-radio-group v-model="isElecCont" class="flex">-->
<!-- <label>-->
<!-- <i class="red pr5">*</i>-->
<!-- 保单形式-->
<!-- </label>-->
<!-- <van-radio name="0" class="ml30">电子(不打印保单)</van-radio>-->
<!-- <van-radio name="2" class="ml20">电子+纸质</van-radio>-->
<!-- </van-radio-group>-->
<!-- </div>-->
<div class="p15 pl8 fs14">
<van-radio-group v-model="isElecCont" class="flex">
<label>
<i class="red pr5">*</i>
保单形式
</label>
<van-radio name="0" class="ml30">电子(不打印保单)</van-radio>
<van-radio name="2" class="ml20">电子+纸质</van-radio>
</van-radio-group>
</div>
</van-cell-group>
<!-- <van-radio-group :border="false" v-model="userInfo.addressStatus" v-validate="'required'" label="设置为联系地址" name="设置为联系地址"> -->
<!-- 工作信息 -->
@@ -464,7 +445,6 @@
import { selectComp, getIdentityInfo } from './js/methods'
import SearchField from '@/components/common/SearchField'
import riskRules from '@/views/ebiz/common/risk-rules'
import { gbcProjectDetail, getDepartmentByProjectNo } from '@/api/GBC/GBC'
export default {
name: 'insuredInfo',
@@ -488,21 +468,6 @@
},
data() {
return {
branchType: '',
projectDTO:{
platformName:'',
projectName:'',
teamCode:'',
endDate:'',
personCode:'',
leaderCode:'',
departmentName:'',
departmentCode:'',
},
departmentList:[
{id: 1, text: '科室1'},
{id: 2, text: '科室2'}
],
thisdoubledialogshow: false,
thismyorderNo: '',
thismystr: '',
@@ -684,17 +649,6 @@
} else if (res.orderDTO.orderInfoDTO.productCode == 'GFRS_M0040') {
this.specilFlag = '1'
}
if(this.$route.query.orderNo) {
this.projectDTO.platformName = res.orderDTO.ebizOrderGbcRelDTO.unitName
this.projectDTO.projectName = res.orderDTO.ebizOrderGbcRelDTO.projectName
this.projectDTO.teamCode = res.orderDTO.ebizOrderGbcRelDTO.teamCode
this.projectDTO.endDate = res.orderDTO.ebizOrderGbcRelDTO.projectEndDate
this.projectDTO.personCode = res.orderDTO.ebizOrderGbcRelDTO.personCode
this.projectDTO.leaderCode = res.orderDTO.ebizOrderGbcRelDTO.teamLeaderCode
this.projectDTO.departmentName = res.orderDTO.ebizOrderGbcRelDTO.departmentName
this.projectDTO.departmentCode = res.orderDTO.ebizOrderGbcRelDTO.departmentCode
}
// ------------------------专为桂企写死--end---------------//
}
})
@@ -728,47 +682,8 @@
this.areaValue = '520000'
}
this.areaLists = areaLists
if(window.localStorage.getItem('branchType') == '13') {
this.branchType = '13'
if(!this.$route.query.orderNo) {
this.gbcProjectDetail()
}
this.getDepartmentByProjectNo()
}
},
methods: {
getDepartmentByProjectNo(){
let params = {
}
getDepartmentByProjectNo(params).then(res=>{
if(res.result == '0'){
this.departmentList = []
if(res.content && res.content.length != 0) {
res.content.forEach(item=>{
this.departmentList.push({
id: item.departmentCode,
text: item.departmentName
})
})
}
} else {
this.$toast(res.resultMessage)
}
})
},
gbcProjectDetail(){
let params = {
}
gbcProjectDetail(params).then(res=>{
if(res.result == '0') {
this.projectDTO = res.content
} else {
this.$toast(res.resultMessage)
}
})
},
isNewPeopleFlagTip(){
this.isNewPeopleFlagTipshow = true
},
@@ -900,9 +815,6 @@
case '11':
this.columns = DataDictionary.npType
break
case 'GBCKS':
this.columns = this.departmentList
break
}
// if (pickerType == '1') {
@@ -986,9 +898,6 @@
this.userInfo.marriageStatus = value.text
} else if (this.pickerType === '11') {
this.userInfo.npType = value.id
} else if (this.pickerType === 'GBCKS') {
this.projectDTO.departmentCode = value.id
this.projectDTO.departmentName = value.text
}
},
//证件起始截止日期
@@ -1011,10 +920,6 @@
this.effectiveDateTypeAble = age <= 45
if(this.userInfo.birthday){
this.userInfo.certiexpiredate = countCredentialValidity.getEndDate(this.userInfo.birthday,val)
if(this.userInfo.certiexpiredate) {
this.effectiveDateTypeAble = true
this.userInfo.effectiveDateType = false
}
}
}
}
@@ -1151,10 +1056,10 @@
return false
}
}
// if(this.isElecCont == '' || this.isElecCont == null || this.isElecCont == undefined){
// this.$toast('请选择保单形式')
// return false
// }
if(this.isElecCont == '' || this.isElecCont == null || this.isElecCont == undefined){
this.$toast('请选择保单形式')
return false
}
// .then(valid => {
if (true === valid) {
localStorage.chooseProductCodesNew = localStorage.chooseProductCodes
@@ -1457,13 +1362,6 @@
}
this.thismystr = ''
params.orderDTO.appntDTO = this.userInfo
if(this.branchType == '13'){
params.orderDTO.ebizOrderGbcRelDTO = {
projectCode: this.projectDTO.projectCode,
departmentCode: this.projectDTO.departmentCode,
teamCode:this.projectDTO.teamCode,
}
}
console.log('params :>> ', params)
//------------------------专为桂企写死--begin---------------//
if (this.specilFlag == '1') {

View File

@@ -1042,21 +1042,21 @@
this.userInfo.effectiveDateType = false
} else {
this.userInfo.effectiveDateType = true
this.effectiveDateTypeAble = false
this.userInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
}
this.effectiveDateTypeAble = true
// this.userInfo.effectiveDateType = insuredInfo.effectiveDateType == 'false' ? false : true
//数据不是从用户列表拉取
this.fromCustomer = false
this.userInfo.relationToAppnt = value.id
//长期判断
// if (this.userInfo.idType == '1') {
// // 计算年龄
// let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// // 长期按钮是否禁用
// this.effectiveDateTypeAble = age <= 45
// }
if (this.userInfo.idType == '1') {
// 计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age <= 45
}
} else {
this.$toast(res.resultMessage)
}
@@ -1111,10 +1111,6 @@
this.effectiveDateTypeAble = age <= 45
if(this.userInfo.birthday){
this.userInfo.certiexpiredate = countCredentialValidity.getEndDate(this.userInfo.birthday,val)
if(this.userInfo.certiexpiredate) {
this.effectiveDateTypeAble = true
this.userInfo.effectiveDateType = false
}
}
}
}

View File

@@ -137,7 +137,7 @@
<script>
import { Search, Tabs, Tab, List, Tag, Sticky, Toast, Dialog, Field } from 'vant'
import { orderList, deleteOrderInfo, getAuthCode, revokeOrder, getBankCardSignState } from '@/api/ebiz/sale/sale'
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' //根据数据字典找到用户等级
@@ -447,17 +447,10 @@ export default {
this.loadMore()
},
//投保单详情
async goDetail(order) {
goDetail(order) {
let thisToken = this.$CacheUtils.getLocItem('token')
let thisbranchType = ''
if(this.$CacheUtils.getLocItem('branchType') == '13') {
thisbranchType = this.$CacheUtils.getLocItem('branchType')
}
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
if(thisbranchType) {
this.$CacheUtils.setLocItem('branchType', thisbranchType)
}
window.localStorage.setItem('detailJump', '')
if (order.insuredDTOs[0]) {
if (order.insuredDTOs[0].riskDTOLst[0]) {
@@ -482,35 +475,7 @@ export default {
}else if(orderStatus == '37'){//受益人保存成功, 跳到告知信息--
url = '/sale/NotifyingMessage?edit=1&orderNo='+orderNo
}else if(orderStatus == '38'){ //账户信息保存成功, 跳到附件管理--
if(order.orderInfoDTO.activeType == 'KMH') {
let params = {
orderNo: order.orderInfoDTO.orderNo
}
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……',
})
await getBankCardSignState(params).then(res => {
this.$toast.clear()
if(res.result == 0) {
if(res.content.needSign == '0' || res.content.needSign == null) {
if(res.content.signState == '0' || res.content.signState == '2') {
url = '/sale/AttachmentManagement?edit=1&orderNo='+orderNo
} else {
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}
} else {
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}
} else {
this.$toast(res.resultMessage)
}
})
} else {
url = '/sale/AttachmentManagement?edit=1&orderNo='+orderNo
}
}else if(orderStatus == '39'){ //险种信息保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1&orderNo='+orderNo
}else if(orderStatus == '40'){//告知信息保存成功, 跳到风险测评--
@@ -587,16 +552,8 @@ export default {
//新增
add() {
let thisToken = this.$CacheUtils.getLocItem('token')
let thisbranchType = ''
if(this.$CacheUtils.getLocItem('branchType') == '13') {
thisbranchType = this.$CacheUtils.getLocItem('branchType')
}
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
if(thisbranchType) {
this.$CacheUtils.setLocItem('branchType', thisbranchType)
}
localStorage.orderNo = ''
localStorage.chooseProductCodes = '' //置空所选险种
this.$jump({

View File

@@ -882,17 +882,17 @@ export default {
border: none;
}
.allFalse {
/*position: fixed;*/
position: fixed;
overflow: hidden;
z-index: 10;
width: 100%;
}
/*.content-all-info {*/
/* padding-top: 153px;*/
/*}*/
/*.content-all-info2 {*/
/* padding-top: 90px;*/
/*}*/
.content-all-info {
padding-top: 153px;
}
.content-all-info2 {
padding-top: 90px;
}
.pb5{
padding-bottom: 5px;
}

View File

@@ -164,10 +164,10 @@
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/AccountInformation' + '?orderNo=' + this.payInfo.prtNo
url: location.origin + '/#/sale/AccountInformation'
},
routerInfo: {
path: '/sale/AccountInformation' + '?orderNo=' + this.payInfo.prtNo
path: '/sale/AccountInformation'
}
})
}

View File

@@ -22,10 +22,6 @@
<img :src="srcPending" class="mb40 mt20" />
<p class="title">核心系统繁忙请稍后重试</p>
</div>
<div v-else-if="uwResult == '53'">
<img :src="srcPending" class="mb40 mt20" />
<p class="title">核心批扣</p>
</div>
<div v-else>
<img :src="srcPending" class="mb40 mt20" />
<p class="title">系统繁忙请稍后重试</p>

File diff suppressed because it is too large Load Diff

View File

@@ -1087,7 +1087,7 @@
that.signVal = window.localStorage.getItem('sign-val')
// 判断是不是万能险
let comment = window.localStorage.getItem('productCode')
if (comment == 'GFRS_M0003' || comment == 'GFRS_M0015' || comment == 'GFRS_M0017' || comment == 'GFRS_M0075' || comment == 'GFRS_M0080') {
if (comment == 'GFRS_M0003' || comment == 'GFRS_M0015' || comment == 'GFRS_M0017' || comment == 'GFRS_M0075' || comment == 'GFRS_M0080' || comment == 'GFRS_M0082' || comment == 'GFRS_M0083') {
this.isComment = true
}
// 获取投保人信息

View File

@@ -5,9 +5,9 @@
<div>
<!-- <h2 v-if="activeType=='KMH'" style="text-align:center" class="mb20">指定保单生效日说明</h2> -->
<!-- <h2 v-if="activeType=='SQY'" style="text-align:center" class="mb20">指定保险合同生效日说明</h2> -->
<h2 style="text-align:center" class="mb20">预录投保单承保生效说明</h2>
<h2 style="text-align:center" class="mb20">指定保险合同生效说明</h2>
<p style="text-indent:2rem;" :class="[activeType=='SQY' ? 'fontb' : '']">
尊敬的客户您好以下为预录投保单承保生效重要说明请您务必仔细阅读和确认
尊敬的客户您好以下为指定保险合同生效重要说明请您务必仔细阅读和确认
</p>
<p style="text-indent:2rem;">
<!-- 如您于{{ activeType=='KMH' ? '2020年12月31日':activeType=='SQY'? '2021年5月31日':'' }}(包含当日之前申请投保并交费成功且国富人寿保险股份有限公司以下简称国富人寿
@@ -17,17 +17,16 @@
<span>{{ cvalidateStrToFormat }}</span>零时起生效您交费成功日或签发保单日如在<span>{{ cvalidateStrToFormat }}</span>
包含当日之后保险合同于国富人寿收取首期保险费并签发保险单次日零时起生效 -->
<!-- 如您于<span>{{ cvalidateStrOneDayOff }}</span>(包含当日前申请投保且支付保险费经国富人寿保险股份有限公司以下简称国富人寿同意并签发保单-->
<!-- <span>{{ cvalidateStrOneDayOff }}</span>(包含当日前签发保单保险合同自{{ cvalidateStrToFormat }}零时起生效{{ cvalidateStrToFormat }}(包含当日后签发保单-->
<!-- 保险合同自签发保险单次日零时起生效国富人寿将通过您投保时预留的银行账户转账扣除保险费为顺利承保请您充足银行账户余额-->
如您于<span>{{ cvalidateStrOneDayOff }}</span>(包含当日前申请投保且支付保险费经国富人寿保险股份有限公司以下简称国富人寿同意并签发保单
<span>{{ cvalidateStrOneDayOff }}</span>(包含当日前签发保单保险合同自{{ cvalidateStrToFormat }}零时起生效{{ cvalidateStrToFormat }}(包含当日后签发保单
保险合同自签发保险单次日零时起生效国富人寿将通过您投保时预留的银行账户转账扣除保险费为顺利承保请您充足银行账户余额
本次投保为预录投保申请国富人寿保险股份有限公司以下简称国富人寿将通过您投保时预留的银行账户转账扣除保险费为顺利承保请您充足银行账户余额如您于{{ cvalidateStrOneDayOff }}(包含当日前提交投保申请且完成转账支付经国富人寿同意于{{ cvalidateStrOneDayOff }}(包含当日前签发保单保险合同自{{ cvalidateStrToFormat }}零时起生效如您于{{ cvalidateStrOneDayOff }}(包含当日前提交投保申请{{ cvalidateStrToFormat }}(包含当日完成转账支付经国富人寿同意于{{ cvalidateStrToFormat }}(包含当日后签发保单保险合同自签发保险单次日零时起生效
</p>
<p style="text-indent:2rem;">
国富人寿承担的保险责任从保险合同生效日零时开始签发保险单后国富人寿将电子保单发送至您的电子邮箱
</p>
<p style="text-indent:2rem;">
请您务必仔细阅读保险条款中的犹豫期保险责任责任免除等各项重要容和提示
请您务必仔细阅读保险条款中的犹豫期保险责任责任免除等各项重要容和提示
</p>
</div>
</div>
@@ -35,7 +34,7 @@
<div class="bg-white bottom-btn">
<van-radio-group v-model="radio" class="pb10 pb20 pl30">
<van-radio name="1" @click="click" class="fs14">
<span>本人已详细阅读并同意上述预录投保单承保生效说明 </span>
<span>本人已详细阅读并同意上述指定保单生效说明 </span>
</van-radio>
</van-radio-group>
<van-button type="danger" size="large" :disabled="isDisable" @click="goNext" v-no-more-click="1000">我已阅读并知晓</van-button>
@@ -113,7 +112,7 @@ export default {
let that = this
// {{switchFlag.Time?pageVariable.msg:pageVariable.number}}
that.timeOut()
document.title = '预录投保单承保生效说明'
document.title = '指定保单生效说明'
that.activeType = window.localStorage.getItem('activeType')
// Notify({
// type: 'warning',

View File

@@ -1,425 +0,0 @@
<template>
<div class='insuranceInformation-container redRadioCheckbox'>
<div style="padding: 10px;overflow-x: auto;overflow-y: hidden;display: flex" v-if="!isPreview">
<p :key="index" v-for="(item, index) in fileList" :class="{ active: index+1 == current }"
@click="fileListClick(item,index)"
style="white-space: nowrap;display: flex;align-items: center;">
{{item.documentShortName}}({{index+1}}/{{fileList.length}})
<van-icon v-if="index != fileList.length - 1" name="arrow" style="margin: 0px 5px;"/>
</p>
</div>
<van-notice-bar :scrollable='false' v-if='!Time' class='notice'>
{{ `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上` }}
</van-notice-bar>
<div id="pdf" style="overflow: scroll;background: #eee;" :style="[{height:isPreview ? '100vh' : '75vh'}]">
<div id="pdfH5ID"></div>
</div>
<div style="height: 20vh;" v-if="!isPreview">
<van-radio-group v-model='radio' class='pb10 pt10 pl10 fs20'>
<van-radio name='1' @click='click'>
本人确认已阅读<span>{{documentName}}</span>
</van-radio>
</van-radio-group>
<div v-if="fileList.length != 0 && fileList[this.current - 1].documentCode == '2' && signVal == '2' && (productType == '1' || productType == '2')" style="display: flex;align-items: center;margin-left: 40px;margin-top: 10px;font-size: 14px;">
<span class="fs20">投保人抄录</span>
<van-button type='danger' class="fs20" style="height: 30px;" size='mini' :disabled="chaoluButtonDisabled" round @click="gochaolu">
{{chaoluStatus ? '已抄录' : '抄录' }}
</van-button>
</div>
<div class='bg-white bottom-btn' v-if="current != '1'">
<van-button style="width: 30%;font-size: 20px;" plain type='danger' size='large' v-no-more-click='1000' @click="prevStep">上一步
</van-button>
<van-button style="width: 70%;font-size: 20px;" type='danger' size='large' :disabled='isDisabledComplite' @click='goNext' v-no-more-click='1000'>
我已阅读确认并理解继续
</van-button>
</div>
<div class='bg-white bottom-btn' v-if="current == '1'">
<van-button class="fs20" type='danger' size='large' :disabled='isDisabledComplite' @click='goNext' v-no-more-click='1000'>我已阅读确认并理解继续
</van-button>
</div>
</div>
</div>
</template>
<script>
import { RadioGroup, Radio, Dialog, NoticeBar } from 'vant'
import Pdfh5 from "pdfh5";
import { saveInformation } from '@/api/ebiz/sale/sale'
export default {
data() {
return {
isPreview: false,
time:'10',
radio: '',
number: '',
src: location.origin + '/pdfjs/web/viewer.html?file=',
pdfUrl: '',
isDisabledComplite:true,
isOver: false,
current: 1,
pdfh5: null,
documentName: '',
fileList:[],
mainRiskCodes: '',
chaoluButtonDisabled: true,
chaoluStatus: false,
productType: '',
}
},
components: {
[RadioGroup.name]: RadioGroup,
[Radio.name]: Radio,
[Dialog.name]: Dialog,
[NoticeBar.name]: NoticeBar
},
created(){
if(this.$route.query.currentIndex){
this.Time = true
this.isPreview = true
} else if(window.sessionStorage.getItem('signH5Img')){
this.Time = true
} else {
this.timeOut()
}
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
},
mounted() {
document.body.style.backgroundColor = '#fff'
this.productType = window.localStorage.getItem('productType')
this.mainRiskCodes = JSON.parse(window.localStorage.getItem('mainRiskCodes'))[0]
let agentSignFile = JSON.parse(window.localStorage.getItem('agentSignFile'))
let appntSignFile = JSON.parse(window.localStorage.getItem('appntSignFile'))
let insuredSignFile = JSON.parse(window.localStorage.getItem('insuredSignFile'))
// this.$nextTick(()=>{
if(window.localStorage.getItem('sign-val') == '3'){
this.signVal = '3'
this.fileList = agentSignFile
} else if(window.localStorage.getItem('sign-val') == '0' || window.localStorage.getItem('sign-val') == '2'){
this.signVal = '2'
this.fileList = appntSignFile
} else if(window.localStorage.getItem('sign-val') == '1') {
this.signVal = '1'
this.fileList = insuredSignFile
}
this.getOrderDetail()
// })
},
methods: {
getOrderDetail(){
if(this.$route.query.currentIndex) {
this.current = Number(this.$route.query.currentIndex)
} else {
for(let i = 0; i < this.fileList.length; i++) {
if (this.fileList[i].documentStatus == '0' || this.fileList[i].documentStatus == '2') {
this.current = i + 1
break
}
}
}
if(this.fileList[this.current - 1].documentCode == '2') {
if(window.sessionStorage.getItem('signH5Img')){
if(JSON.parse(window.sessionStorage.getItem('signH5Img')).type == '抄录' && JSON.parse(window.sessionStorage.getItem('signH5Img')).val){
this.chaoluStatus = true
}
}
}
if(this.$route.query.currentIndex){
this.changeFile(1)
} else {
if(window.sessionStorage.getItem('currentFile')) {
this.changeFile(1)
} else {
this.changeFile()
}
}
},
// 点击阅读时
click() {
let that = this
if (that.isOver == false) {
Dialog.confirm({
title: '提示',
message: '该内容涉及您的重大权益,请您仔细阅读',
showCancelButton: false
}).then(() => {
that.radio = ''
})
} else {
if(this.fileList[this.current - 1].documentCode == '2'){
that.chaoluButtonDisabled = false
}
}
},
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
}
that.number = `${time}`
}, 1000)
},
goNext(){
if(this.fileList[this.current - 1].documentCode == '2' && this.signVal == '2' && (this.productType == '1' || this.productType == '2')){
if(!this.chaoluStatus){
this.$toast('请先完成抄录')
return false
}
}
let params = {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: this.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: this.fileList[this.current - 1].signId,
orderNo: this.$route.query.orderNo,
documentCode: this.fileList[this.current - 1].documentCode,
documentStatus: '1',
documentType: this.fileList[this.current - 1].documentType,
signType: window.localStorage.getItem('sign-val')
}
]
}
}
/**
* @Author: LiuXiaoFeng
* @Description: documentCode为2 代表的是人身保险电子投保单
* 人身保险电子投保单文件需要抄录 保存时修改入参数据 copyValue是抄录的base64字符串 signOrRead需要变更为sign
* @Date: 2023/11/20
**/
if(this.fileList[this.current - 1].documentCode == '2' && this.signVal == '2' && (this.productType == '1' || this.productType == '2')){
params.orderDTO.ebizSignDTOS[0].caType = 'copy'
params.orderDTO.ebizSignDTOS[0].copyValue = JSON.parse(window.sessionStorage.getItem('signH5Img')).val
params.orderDTO.ebizSignDTOS[0].signOrRead = 'sign'
params.orderType = 'SIGN_COPY'
}
saveInformation(params).then(res=>{
if(res.result == 0) {
window.sessionStorage.removeItem('currentFile')
this.fileList[this.current - 1].documentStatus = '1'
if(window.localStorage.getItem('sign-val') == '0' || window.localStorage.getItem('sign-val') == '2'){
window.localStorage.setItem('appntSignFile',JSON.stringify(this.fileList))
} else {
window.localStorage.setItem('insuredSignFile',JSON.stringify(this.fileList))
}
if(this.fileList[this.current - 1].documentCode == '5') {
this.$router.push({
path: '/sale/SignatureConfirmation',
query: {
orderNo: this.$route.query.orderNo
}
})
} else {
if(this.current == this.fileList.length) {
this.$router.push({
path: '/sale/signDocuments',
query: {
orderNo: this.$route.query.orderNo
}
})
} else {
window.location.reload()
}
}
} else {
this.$toast(res.resultMessage)
}
})
},
gochaolu(){
let signInfo = {
type:'抄录',
// text:'本人已阅'
text:'本人已阅读保险条款、产品说明书和投保提示书,了解本产品的特点和保单利益的不确定性'
}
window.sessionStorage.setItem('signInfo',JSON.stringify(signInfo))
window.location.href = this.$mainUrl + '/signH5/1.html'
// window.location.href = 'http://'+window.location.host + '/signH5/1.html'
},
changeFile(readStatus){
this.documentName = this.fileList[this.current - 1].documentName
if(readStatus){
this.radio = '1'
this.isOver = true
this.Time = true
} else if(window.sessionStorage.getItem('signH5Img')) {
this.radio = '1'
this.isOver = true
this.chaoluButtonDisabled = false
} else {
this.radio = ''
this.isOver = false
this.timeOut()
}
let thispdfurl = ''
if(this.fileList[this.current - 1].originalUrl && (this.fileList[this.current - 1].originalUrl.indexOf('https://') != -1 || this.fileList[this.current - 1].originalUrl.indexOf('http://') != -1)) {
thispdfurl = this.fileList[this.current - 1].originalUrl
} else {
thispdfurl = this.$assetsUpUrl + this.fileList[this.current - 1].originalUrl
}
this.pdfh5 = new Pdfh5("#pdfH5ID", {
pdfurl: thispdfurl,
lazy:false,
scale:1
}).on("complete", function (status, msg, time) { //监听完成事件
console.log("状态:" + status + ",信息:" + msg + ",耗时:" + time + "毫秒,总页数:" + this.totalNum)
})
},
fileListClick(item,index) {
if(index != this.current - 1) {
if(index > this.current - 1) {
this.$toast('请逐一阅读文件')
}else{
this.fileList.forEach((item1,index1)=>{
if(index1 >= index) {
item1.documentStatus = '0'
}
})
if(window.localStorage.getItem('sign-val') == '3'){
window.localStorage.setItem('agentSignFile',JSON.stringify(this.fileList))
} else if(window.localStorage.getItem('sign-val') == '0' || window.localStorage.getItem('sign-val') == '2'){
window.localStorage.setItem('appntSignFile',JSON.stringify(this.fileList))
} else {
window.localStorage.setItem('insuredSignFile',JSON.stringify(this.fileList))
}
window.sessionStorage.setItem('currentFile',this.current)
window.location.reload()
}
}
},
prevStep(){
window.sessionStorage.removeItem('signH5Img')
this.fileList[this.current - 2].documentStatus = '0'
this.chaoluStatus = false
if(window.localStorage.getItem('sign-val') == '3'){
window.localStorage.setItem('agentSignFile',JSON.stringify(this.fileList))
} else if(window.localStorage.getItem('sign-val') == '0' || window.localStorage.getItem('sign-val') == '2'){
window.localStorage.setItem('appntSignFile',JSON.stringify(this.fileList))
} else {
window.localStorage.setItem('insuredSignFile',JSON.stringify(this.fileList))
}
window.sessionStorage.setItem('currentFile',this.current)
window.location.reload()
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
if (this.videoShow) {
this.$jump({
flag: 'navigation',
extra: {
title: '签名确认',
hiddenRight: '1'
}
})
return (this.videoShow = false)
}
return this.$dialog.confirm({
className: 'dialog-delete',
title: '提示',
message: '是否确认退出?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
this.$jump({
flag: 'h5',
extra: {
title: '签名确认',
forbidSwipeBack: 1, //当前页面禁止右滑返回
url: location.origin + `/#/sale/SignatureConfirmation?orderNo=` + this.$route.query.orderNo
},
routerInfo: {
path: `/sale/SignatureConfirmation?orderNo=` + this.$route.query.orderNo,
type: '1'
}
})
})
.catch(() => {
return
})
}
},
},
computed: {
listenChange() {
const { isOver, radio } = this
return { isOver, radio }
}
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
if(this.fileList[this.current - 1].documentCode == '2'){
window.sessionStorage.removeItem('signH5Img')
window.sessionStorage.removeItem('signH5Val')
window.sessionStorage.removeItem('signInfo')
}
next()
},
watch: {
listenChange(val) {
let that = this
if (val.isOver == true && val.radio != '') {
that.isDisabledComplite = false
} else {
that.isDisabledComplite = true
}
}
}
}
</script>
<style lang='scss' scoped>
.notice {
width: 100%;
position: fixed;
top: 0;
z-index: 20;
}
#pdfH5ID{
width: 100vw;
}
/deep/.viewerContainer{
width: 100vw;
overflow: inherit;
}
/deep/ .pageNum{
display: none!important;
}
/deep/ .pageContainer{
margin: 2vw;
background: #fff;
img{
width: 96vw;
}
}
/deep/ .pinch-zoom-container{
height: 100%!important;
}
.active {
color: red;
}
/deep/ .fs20{
font-size: 20px;
.van-button__text{
padding: 10px 20px;
}
}
</style>

View File

@@ -1,284 +0,0 @@
<template>
<div class='insuranceInformation-container' style="padding: 15px;">
<div style="display: flex;align-items: center;font-weight: bold;" class="fs20">
<span style="width: 3px;background: red;height: 25px;"></span>
<span v-if="signVal == '0' || signVal == '2'" style="margin-left: 5px;">
投保人{{signName}}
</span>
<span v-if="signVal == '1'" style="margin-left: 5px;">
被保险人{{signName}}
</span>
<span v-if="signVal == '3'" style="margin-left: 5px;">
代理人{{signName}}
</span>
</div>
<div style="margin-top: 15px;font-weight: bold;line-height: 32px;font-size: 20px;" class="fs20">
<span v-if="signVal == '3'">
1.接下来您作为代理人将进行投保文件的签字请在签字前确保您已仔细阅读投保文件并了解投保文件的内容和含义确定投保单各项信息准确无误签字完成并成功提交说明您正式向我司提交投保申请
</span>
<span v-if="signVal == '0' || signVal == '2'">
1.接下来您作为投保人将进行投保文件的签字请在签字前确保您已仔细阅读投保文件并了解投保文件的内容和含义确定投保单各项信息准确无误签字完成并成功提交说明您正式向我司提交投保申请
</span>
<span v-if="signVal == '1' && insuredAge >= 18">
1.接下来您作为被保险人将进行投保文件的签字请在签字前确保您已仔细阅读投保文件并了解投保文件的内容和含义确定投保单各项信息准确无误签字完成并成功提交说明您正式向我司提交投保申请
</span>
<span v-if="signVal == '1' && insuredAge < 18">
1.接下来您作为被保险人/监护人将进行投保文件的签字请在签字前确保您已仔细阅读投保文件并了解投保文件的内容和含义确定投保单各项信息准确无误签字完成并成功提交说明您正式向我司提交投保申请
</span>
</div>
<div style="border-bottom: 1px dashed #eee;padding-bottom: 15px;margin-top: 15px;">
<p style="font-size: 20px;font-weight: bold;">2.您将为以下文件进行统一签名</p>
<div v-for="item in fileList" style="margin-top: 15px;display: flex;justify-content: space-between;">
<span style="font-size: 20px;color: red;opacity: 0.7;width: 60%;display: inline-block;">{{item.name}}</span>
<span v-if="signstatus == '1'" style="display: flex;align-items: center;display: inline-block;width: 40%;">
<img :src="src" style="margin-left: 15px;width: 16px;"/>
<span style="font-size: 20px;color: #03ceaf;margin-left: 10px;">签署完成</span>
</span>
</div>
</div>
<div style="margin-top: 15px;display: flex;align-items: center;" class="fs20">
<span v-if="signVal == '3'" style="font-size: 20px;font-weight: bold;">代理人签名</span>
<span v-if="signVal == '0' || signVal == '2'" style="font-size: 20px;font-weight: bold;">投保人签名</span>
<span v-if="signVal == '1' && insuredAge >= 18" style="font-size: 20px;font-weight: bold;">被保险人签名</span>
<span v-if="signVal == '1' && insuredAge < 18" style="font-size: 20px;font-weight: bold;">被保险人/监护人签名</span>
<van-button type="danger" size="small" round style="margin-left: 20px;height: 40px;font-size: 16px;" @click="gosign" class="fs20">
{{signstatus ? '重新签名' : '签名'}}
</van-button>
</div>
<div>
<img v-if="signstatus" :src="signImgUrl" style="height: 34px;margin-left: 20px;width: auto;"/>
</div>
<div class='bg-white bottom-btn'>
<van-button :disabled="nextDisabled" type='danger' size='normal' style="font-size: 20px;" block v-no-more-click='1000' @click="gonext">
完成阅读并签署
</van-button>
</div>
<van-dialog v-model="guardianshow" :showConfirmButton="false">
<div slot="title">
<p style="color: #E9332E;">监护人姓名</p>
</div>
<div class="guardianContent" style="padding: 20px 30px 30px;font-size: 14px;">
<van-field v-model="guardianName" label="" name="体重" placeholder="请输入"/>
</div>
<div style="text-align: center;margin-bottom: 30px;">
<van-button round type="danger" size="small" style="padding:0px 35px;font-size: 14px;" @click="gosign">确定</van-button>
</div>
</van-dialog>
</div>
</template>
<script>
import { saveInformation } from '@/api/ebiz/sale/sale'
import isChoose from '@/assets/images/u20257.png'
export default {
data() {
return {
src: isChoose,
fileList:[],
signImgUrl:'data:image/gif;base64,',
signstatus: false,
signVal: '',
signName: '',
insuredAge: '',
guardianshow: false,
guardianName: '',
nextDisabled:true,
}
},
components: {},
created(){
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
},
mounted() {
this.signVal = window.localStorage.getItem('sign-val')
this.insuredAge = window.localStorage.getItem('insuredAge')
document.body.style.backgroundColor = '#fff'
let thisfilelist = ''
if(this.signVal == '3') {
thisfilelist = JSON.parse(window.localStorage.getItem('agentSignFile'))
this.signName = window.localStorage.getItem('recmdName')
} else if(this.signVal == '0' || this.signVal == '2') {
thisfilelist = JSON.parse(window.localStorage.getItem('appntSignFile'))
this.signName = window.localStorage.getItem('appntName')
} else if(this.signVal == '1') {
thisfilelist = JSON.parse(window.localStorage.getItem('insuredSignFile'))
this.signName = window.localStorage.getItem('insuredName')
}
console.log(thisfilelist)
thisfilelist.forEach(item => {
if(item.documentType == '1') {
this.fileList.push({
name:item.documentName,
status: '1'
})
}
})
this.signH5Img = sessionStorage.getItem('signH5Img')
if(JSON.parse(window.sessionStorage.getItem('signH5Img'))) {
if(JSON.parse(window.sessionStorage.getItem('signH5Img')).type == '签名' && JSON.parse(window.sessionStorage.getItem('signH5Img')).val)
this.signstatus = true
this.signImgUrl = this.signImgUrl + JSON.parse(window.sessionStorage.getItem('signH5Img')).val
}
if(window.sessionStorage.getItem('signH5Val')){
this.nextDisabled = false
}
},
methods: {
gosign(){
window.localStorage.setItem('orderNo',this.$route.query.orderNo)
let signInfo = {
type:'签名',
text:'',
keyWord: ''
}
if(this.signVal == '0' || this.signVal == '2') {
signInfo.text = window.localStorage.getItem('appntName')
signInfo.keyWord = '投保锟斤拷:'
}
if(this.signVal == '1'){
signInfo.text = window.localStorage.getItem('insuredName')
signInfo.keyWord = '被保锟斤拷:'
}
if(this.signVal == '3') {
signInfo.text = window.localStorage.getItem('recmdName')
signInfo.keyWord = '代理锟斤拷:'
}
if(this.insuredAge < 18 && !this.guardianName && this.signVal == '1') {
this.guardianshow = true
} else {
if(this.insuredAge < 18 && this.signVal == '1') {
signInfo.text = this.guardianName
}
window.sessionStorage.setItem('signInfo',JSON.stringify(signInfo))
window.location.href = this.$mainUrl + '/signH5/1.html'
// window.location.href = 'http://'+window.location.host + '/signH5/1.html'
}
},
gonext(){
let params = {
orderType: 'SIGN_MERGED_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: this.$route.query.orderNo
},
baseEncryp: window.sessionStorage.getItem('signH5Val'),
signValue: JSON.parse(window.sessionStorage.getItem('signH5Img')).val,
signType: window.localStorage.getItem('sign-val'),
ebizSignDTOS: []
}
}
let thisfilelist = ''
if(this.signVal == '3') {
thisfilelist = JSON.parse(window.localStorage.getItem('agentSignFile'))
} else if(this.signVal == '0' || this.signVal == '2') {
thisfilelist = JSON.parse(window.localStorage.getItem('appntSignFile'))
} else if(this.signVal == '1') {
thisfilelist = JSON.parse(window.localStorage.getItem('insuredSignFile'))
}
thisfilelist.forEach(item => {
if(item.documentType == '1') {
params.orderDTO.ebizSignDTOS.push({
signOrRead: 'sign',
signId:item.signId,
orderNo: this.$route.query.orderNo,
documentCode: item.documentCode,
documentStatus: '3',
documentType: '1',
signType: item.signType
})
}
})
saveInformation(params).then(res=>{
if(res.result == '0') {
if(window.sessionStorage.getItem('shareUrl')){
this.$router.push({
path: '/sale/SignatureConfirmation'+window.sessionStorage.getItem('shareUrl')
})
} else {
this.$router.push({
path: '/sale/SignatureConfirmation',
query: {
orderNo: this.$route.query.orderNo
}
})
}
} else {
this.$toast(res.resultMessage)
}
})
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
if (this.videoShow) {
this.$jump({
flag: 'navigation',
extra: {
title: '签名确认',
hiddenRight: '1'
}
})
return (this.videoShow = false)
}
return this.$dialog.confirm({
className: 'dialog-delete',
title: '提示',
message: '是否确认退出?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
this.$jump({
flag: 'h5',
extra: {
title: '签名确认',
forbidSwipeBack: 1, //当前页面禁止右滑返回
url: location.origin + `/#/sale/SignatureConfirmation?orderNo=` + this.$route.query.orderNo
},
routerInfo: {
path: `/sale/SignatureConfirmation?orderNo=` + this.$route.query.orderNo,
type: '1'
}
})
})
.catch(() => {
return
})
}
},
},
computed: {
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
window.sessionStorage.removeItem('signH5Img')
window.sessionStorage.removeItem('signH5Val')
window.sessionStorage.removeItem('signInfo')
next()
},
watch: {
}
}
</script>
<style lang='scss' scoped>
.guardianContent{
/deep/ .van-cell{
border: 1px solid #eee;
}
}
.fs20{
font-size: 20px;
.van-button__text{
padding: 10px 20px;
}
}
</style>

View File

@@ -1,34 +0,0 @@
<template>
<div class="public_container">
<p class="aaa">rem与em rem(root em)是一个相对单位,类似于em,em 是父元素字体大小
不同的是 rem 的基准是相对于 html 元素的字体大小 比如,根元素(html) 设置 font-size = 12px;
非根元素设置 width: 2rem; 则换成 px 表示就是 24px (rem: root em,意思是根元素,相对于根元素的字体大小)
1.em,相对于父元素,一个页面有多个父元素,这些父元素的字体大小可能不一样 2.rem,相对于根元素,一个页面只有一个根元素
</p>
</div>
</template>
<script>
export default {
name: 'Home',
components: {},
data() {
return {
}
},
mounted(){
},
methods:{
},
}
</script>
<style lang="scss" scoped>
.aaa{
font-size: 20rem;
line-height: 30rem;
padding: 10rem;
}
</style>