Compare commits
5 Commits
ed565ffb80
...
feature/FC
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0a5bb792cf | ||
|
|
4ddb682580 | ||
|
|
7949f54cc1 | ||
|
|
f7447c3e75 | ||
|
|
20b8a09f51 |
8
.gitignore
vendored
@@ -3,10 +3,4 @@ dist
|
||||
|
||||
.eslintrc.js
|
||||
.prettierrc
|
||||
.idea
|
||||
.history
|
||||
|
||||
### lockfile ###
|
||||
yarn.lock
|
||||
bun.lock*
|
||||
.lingma
|
||||
.idea
|
||||
17741
package-lock.json
generated
10
package.json
@@ -26,17 +26,15 @@
|
||||
"crypto-js": "^4.1.1",
|
||||
"echarts": "^4.2.1",
|
||||
"fastclick": "^1.0.6",
|
||||
"file-saver": "^2.0.5",
|
||||
"html2canvas": "^1.4.1",
|
||||
"js-base64": "^2.5.1",
|
||||
"js-md5": "^0.7.3",
|
||||
"js-sha256": "^0.9.0",
|
||||
"jsencrypt": "^3.2.1",
|
||||
"nprogress": "^0.2.0",
|
||||
"pdfh5": "^1.2.13",
|
||||
"vant": "^2.13.9",
|
||||
"vant": "2.2.0",
|
||||
"vee-validate": "^2.2.14",
|
||||
"vue": "^2.7.16",
|
||||
"vue": "^2.6.10",
|
||||
"vue-hash-calendar": "^1.2.12",
|
||||
"vue-pdf": "^4.0.7",
|
||||
"vue-router": "^3.0.3",
|
||||
@@ -54,7 +52,6 @@
|
||||
"babel-eslint": "^10.0.1",
|
||||
"babel-jest": "^23.6.0",
|
||||
"babel-plugin-import": "^1.12.0",
|
||||
"code-inspector-plugin": "^1.2.10",
|
||||
"eruda": "^1.5.7",
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-plugin-prettier": "^3.1.0",
|
||||
@@ -62,7 +59,6 @@
|
||||
"node-sass": "^4.14.1",
|
||||
"postcss-px-to-viewport": "^1.1.1",
|
||||
"sass-loader": "^7.3.1",
|
||||
"terser-webpack-plugin": "^4.2.3",
|
||||
"vue-template-compiler": "^2.7.16"
|
||||
"vue-template-compiler": "^2.6.10"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,7 +228,7 @@ function appCallBack() {}
|
||||
// H5 & webapp 调用APP,并返回一个Promise对象
|
||||
function triggerCallHandler(method, params) {
|
||||
return new Promise(function(resolve) {
|
||||
window.WebViewJavascriptBridge && WebViewJavascriptBridge.callHandler(method, params, function(response) {
|
||||
WebViewJavascriptBridge.callHandler(method, params, function(response) {
|
||||
resolve(response)
|
||||
})
|
||||
})
|
||||
|
||||
27
src/App.vue
@@ -26,33 +26,6 @@ export default {
|
||||
reload: this.reload
|
||||
}
|
||||
},
|
||||
created () {
|
||||
// 在页面加载时读取sessionStorage
|
||||
// if (sessionStorage.getItem('store')) {
|
||||
// this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(sessionStorage.getItem('store'))))
|
||||
// }
|
||||
// // 在页面刷新时将store保存到sessionStorage里
|
||||
// window.addEventListener('beforeunload', () => {
|
||||
// sessionStorage.setItem('store', JSON.stringify(this.$store.state))
|
||||
// })
|
||||
//ios刷新时vuex信息保留
|
||||
let isiOS = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
|
||||
if (isiOS) {
|
||||
//在页面刷新时将vuex里的信息保存到缓存里
|
||||
window.addEventListener("pagehide", () => {
|
||||
localStorage.setItem("store", JSON.stringify(this.$store.state))
|
||||
})
|
||||
//在页面加载时读取localStorage里的状态信息
|
||||
localStorage.getItem("store") && this.$store.replaceState(Object.assign(this.$store.state,JSON.parse(localStorage.getItem("store"))));
|
||||
} else {
|
||||
//在页面刷新时将vuex里的信息保存到缓存里
|
||||
window.addEventListener("beforeunload", () => {
|
||||
localStorage.setItem("store", JSON.stringify(this.$store.state))
|
||||
})
|
||||
//在页面加载时读取localStorage里的状态信息
|
||||
localStorage.getItem("store") && this.$store.replaceState(Object.assign(this.$store.state,JSON.parse(localStorage.getItem("store"))));
|
||||
}
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -1,127 +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
|
||||
})
|
||||
}
|
||||
|
||||
// 获取GBC一级产品
|
||||
export function getGBCRiskList(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/product/getGBCRiskList ', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// GBC一级产品校验
|
||||
export function gbcAppntCheckProdect(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/gbc/appnt/checkProdect ', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// GBC一级产品校验
|
||||
export function saveOrUpdateGbc(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/gbc/appnt/saveOrUpdateGbc', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// GBC数据看板
|
||||
export function dataShow(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/gbc/data/show', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
import request from '@/assets/js/utils/request'
|
||||
import getUrl from '@/assets/js/utils/get-url'
|
||||
// 银保代理人签署信息查询接口
|
||||
export function getContractInfo(data) {
|
||||
return request({
|
||||
url: getUrl('/agent/enterYB/getContractInfo', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 银保代理人签署信息接收接口
|
||||
export function putContractInfo(data) {
|
||||
return request({
|
||||
url: getUrl('/agent/enterYB/putContractInfo', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 生成电子合同pdf
|
||||
export function generateAgreementYB(data) {
|
||||
return request({
|
||||
url: getUrl('/agent/enterYB/generateAgreementYB', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取验证码
|
||||
export function getAuthCode(data) {
|
||||
return request({
|
||||
url: getUrl('/customer/authcode/noLoginedSend', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 校验验证码
|
||||
export function checkSignYB(data) {
|
||||
return request({
|
||||
url: getUrl('/customer/authcode/checkSignYB', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
@@ -24,12 +24,4 @@ export function queryOutOrderList(data) {
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 出单详情
|
||||
export function queryOutOrderDetail(data) {
|
||||
return request({
|
||||
url: getUrl(`/sale/order/queryOutOrderDetail`, 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
@@ -39,30 +39,10 @@ export function getOrgList(data) {
|
||||
|
||||
// 获取MIS全部机构 (分级)接口--因内勤多加一级,所以用这个接口
|
||||
export function getMisBranchComList(data) {
|
||||
// data.isJzg false 为内勤
|
||||
// data.isJzg true 为外勤
|
||||
return request({
|
||||
url: getUrl( '/data/performance/getMisBranchComList', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function getMisBranchComList2(data) {
|
||||
// data.isJzg false 为内勤
|
||||
// data.isJzg true 为外勤
|
||||
return request({
|
||||
url: getUrl( '/agent/agent/getJZGManageComList' , 1),
|
||||
url: getUrl('/data/performance/getMisBranchComList', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 内勤机构
|
||||
// export function getMisBranchComList(data) {
|
||||
// return request({
|
||||
// url: getUrl('/data/performance/getMisBranchComList', 1),
|
||||
// method: 'post',
|
||||
// data
|
||||
// })
|
||||
// }
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* @Date: 2021-03-26 10:38:37
|
||||
* @LastEditTime: 2021-04-02 16:10:30
|
||||
* @LastEditors: PangXingYue
|
||||
* @Description:
|
||||
* @Description:
|
||||
* @FilePath: \ebiz-h5\src\api\ebiz\cardList\cardList.js
|
||||
*/
|
||||
// 卡单接口
|
||||
@@ -95,7 +95,7 @@ export function getPayTemp(data) {
|
||||
//
|
||||
export function getShareParam(data) {
|
||||
return request({
|
||||
url: getUrl('/customer/account/getShareParam', 1),
|
||||
url: getUrl('/customer/account/getShareParam', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
@@ -168,12 +168,4 @@ export function deleteGroupCardByInsured(data) {
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 不让跨天支付 单新契约出单跨天支付流程优化
|
||||
export function cardContIsPay(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/card/contIsPay', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -117,15 +117,4 @@ export function funcPermCheck(data) {
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/** add by zhangweiwei FCRS-764 国富无忧两全保险(B款)新增主险职业校验逻辑 start at 20240807 */
|
||||
// 校验职业是否符合产品要求
|
||||
export function occupationCodeCheck(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/product/occupationCodeCheck', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
/** add by zhangweiwei FCRS-764 国富无忧两全保险(B款)新增主险职业校验逻辑 end at 20240807 */
|
||||
}
|
||||
@@ -90,11 +90,3 @@ export function queryOutPosters(data) {
|
||||
})
|
||||
}
|
||||
|
||||
//大单榜海报列表接口
|
||||
export function queryOutPostersBig(data) {
|
||||
return request({
|
||||
url: getUrl(`/sale/makePosters/queryOutPostersBig`, 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
import request from '@/assets/js/utils/request'
|
||||
import getUrl from '@/assets/js/utils/get-url'
|
||||
|
||||
export function healthgetRenewalList(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/health/getRenewalList', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function healthgetRenewalListDetail(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/health/getRenewalListDetail', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function reasonForNonRenewalSubmitted(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/health/reasonForNonRenewalSubmitted', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function getAgentManager(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/health/getAgentManager', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
@@ -111,13 +111,5 @@ export function getServiceConfig(data) {
|
||||
})
|
||||
}
|
||||
|
||||
//登录用户2
|
||||
export function getConfigByCode(data) {
|
||||
return request({
|
||||
url: getUrl('/app/getConfigByCode', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -118,13 +118,3 @@ export function exportExcel(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
export function base64Excel(data) {
|
||||
return request({
|
||||
// url: 'http://10.10.100.98:7012/updown/uploadBase64Image',
|
||||
url: getUrl('/uploadBase64Image', 1,2),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -36,12 +36,3 @@ export function getSpecialAreaProList(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 首页底部图
|
||||
export function getHomeBottomPic(data) {
|
||||
return request({
|
||||
url: getUrl('/app/code/getCodeValue', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@@ -10,29 +10,6 @@ export function saveOrUpdateOrderInfo(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/** 获取最新的产品列表
|
||||
* @returns {import("axios").AxiosPromise<{
|
||||
* "result": string,
|
||||
* "resultMessage": string,
|
||||
* "content": string[]
|
||||
* }>}
|
||||
*
|
||||
* ### 示例返回结果
|
||||
* ```json
|
||||
* {
|
||||
* "result": "0",
|
||||
* "resultMessage": "",
|
||||
* "content": ["GFRS_M0105"]
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
export function newProducts() {
|
||||
return request({
|
||||
url: getUrl('/sale/order/getNewSaleProduct', 1),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
// 核保试算
|
||||
export function orderTrial(data) {
|
||||
return request({
|
||||
@@ -99,24 +76,6 @@ export function getOrderDetail1(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
// 投保单邮件发送
|
||||
export function getSendEmail(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/order/sendEmail', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 投保单邮件发送
|
||||
export function getDownloadZip(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/order/downloadZip?orderNo=' + data.orderNo, 1),
|
||||
method: 'get',
|
||||
data,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取验证码
|
||||
export function getAuthCode(data) {
|
||||
return request({
|
||||
@@ -145,7 +104,7 @@ export function uploadImg(data) {
|
||||
// 上传图片
|
||||
export function uploadImg2(data) {
|
||||
return request1({
|
||||
url: getUrl('/uploadImage?imgType=' + store.getters.getUploadImgType + '&orderNo=' + store.getters.getUploadImgOrderNo, 1, 2),
|
||||
url: getUrl('/uploadImage?imgType='+store.getters.getUploadImgType+'&orderNo='+store.getters.getUploadImgOrderNo, 1, 2),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
@@ -358,6 +317,7 @@ export function getActivityList(data) {
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 身份证OCR识别
|
||||
export function IDCardOCR(data) {
|
||||
return request1({
|
||||
@@ -375,6 +335,17 @@ export function getBankCardSignState(data) {
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 入司人自互保件校验
|
||||
export function CommitmentSelfCheck(data) {
|
||||
return request1({
|
||||
url: getUrl('/sale/commitment/CommitmentSelfCheck', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 获取柳州分红万能投连型产品编码集合
|
||||
export function getUniversalCodeLst(data) {
|
||||
return request({
|
||||
@@ -382,71 +353,4 @@ export function getUniversalCodeLst(data) {
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取柳州分红万能投连型产品编码集合
|
||||
export function getDoubleRecordProductLst(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/product/getDoubleRecordProductLst ', 1),
|
||||
method: 'post',
|
||||
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),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function saveOrderType(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/order/saveOrderType', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function changeOrderStatus(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/order/changeOrderStatus', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function riskLevelCheck(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/order/riskLevelCheck', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 新市民产品服务通知/安心保、爱心保产品提示
|
||||
export function sendServicePopup(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/sendNotice/sendServicePopup', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//投保流程优化保存问卷测评接口,与原接口一致
|
||||
export function saveEvalateAnswer(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/order/saveOrUpdateAssessInfo ', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 1002 B |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 615 KiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 187 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 342 KiB |
|
Before Width: | Height: | Size: 272 KiB |
|
Before Width: | Height: | Size: 189 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 111 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 2.6 MiB |
|
Before Width: | Height: | Size: 290 KiB |
|
Before Width: | Height: | Size: 5.3 KiB |
@@ -1,8 +0,0 @@
|
||||
export const riskMap = Object.freeze({
|
||||
riskName: '主险名称',
|
||||
payIntv: "交费方式",
|
||||
insuYear: "保险期间",
|
||||
payEndYear: "缴费期间",
|
||||
amt: "保额",
|
||||
prem: "保费"
|
||||
})
|
||||
@@ -1,71 +0,0 @@
|
||||
import Vue from 'vue'
|
||||
import cacheUtils from '@/assets/js/utils/cacheUtils'
|
||||
|
||||
const { setLocItem, getLocItem, removeLocItem } = cacheUtils
|
||||
|
||||
/**
|
||||
* 同步本地存储数据函数
|
||||
* 使用Vue的响应式系统,在数据变化时自动更新localStorage
|
||||
* @param {Object|Array} oldData - 需要被监听的数据对象或数组(即将弃用)
|
||||
* @param {Object} options - 配置选项
|
||||
* @param {string} options.name - localStorage中存储数据的键名
|
||||
* @param {boolean} options.release - 是否在离开页面时释放变量
|
||||
* @returns {Object|Array} 返回一个响应式对象或数组,会自动同步到localStorage
|
||||
*
|
||||
* ### 使用示例
|
||||
*
|
||||
* const beneficiaries = syncLocalstorageData([], {name: 'beneficiaryInfo'})
|
||||
*/
|
||||
export function syncLocalstorageData(oldData, { data = undefined, name = '', release = false } = {}) {
|
||||
// 兼容处理
|
||||
data = oldData || data
|
||||
|
||||
if (!name || typeof name !== 'string') {
|
||||
console.error('[syncLocalstorage] name must be a non-empty string')
|
||||
return data
|
||||
}
|
||||
|
||||
// 从localStorage加载已保存的数据(如果存在)
|
||||
// try {
|
||||
// const savedData = JSON.parse(getLocItem(name) || 'null')
|
||||
// if (savedData !== null) {
|
||||
// if (Array.isArray(savedData) && Array.isArray(data)) {
|
||||
// data.length = 0
|
||||
// data.push(...savedData)
|
||||
// } else if (typeof savedData === 'object' && savedData !== null) {
|
||||
// Object.keys(data).forEach(key => delete data[key])
|
||||
// Object.assign(data, savedData)
|
||||
// }
|
||||
// }
|
||||
// } catch (e) {
|
||||
// console.error(`[syncLocalstorage] Failed to parse saved data for ${name}:`, e)
|
||||
// }
|
||||
|
||||
// 创建Vue实例来监听数据变化
|
||||
const vm = new Vue({
|
||||
data: {
|
||||
value: data
|
||||
},
|
||||
watch: {
|
||||
value: {
|
||||
handler(newVal) {
|
||||
setLocItem(name, JSON.stringify(newVal))
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// 在页面卸载时清理
|
||||
if (release) {
|
||||
const cleanup = () => {
|
||||
removeLocItem(name)
|
||||
window.removeEventListener('unload', cleanup)
|
||||
}
|
||||
window.addEventListener('unload', cleanup)
|
||||
}
|
||||
|
||||
// 返回响应式数据
|
||||
return vm.value
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
/**
|
||||
* 防抖函数
|
||||
* @param {Function} fn - 需要防抖的函数
|
||||
* @param {Number} delay - 延迟时间,单位毫秒
|
||||
* @param {Boolean} immediate - 是否立即执行
|
||||
* @returns {Function} 防抖后的函数
|
||||
*/
|
||||
export function debounce(fn, delay, immediate = false) {
|
||||
let timeout = null;
|
||||
let isInvoked = false;
|
||||
|
||||
return function (...args) {
|
||||
const context = this;
|
||||
|
||||
if (timeout) clearTimeout(timeout);
|
||||
|
||||
if (immediate) {
|
||||
if (!isInvoked) {
|
||||
fn.apply(context, args);
|
||||
isInvoked = true;
|
||||
}
|
||||
timeout = setTimeout(() => {
|
||||
isInvoked = false;
|
||||
}, delay);
|
||||
} else {
|
||||
timeout = setTimeout(() => {
|
||||
fn.apply(context, args);
|
||||
}, delay);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 节流函数
|
||||
* @param {Function} fn - 需要节流的函数
|
||||
* @param {Number} delay - 节流时间,单位毫秒
|
||||
* @returns {Function} 节流后的函数
|
||||
*/
|
||||
export function throttle(fn, delay) {
|
||||
let lastTime = 0;
|
||||
let timeout = null;
|
||||
|
||||
return function (...args) {
|
||||
const context = this;
|
||||
const now = Date.now();
|
||||
|
||||
if (now - lastTime > delay) {
|
||||
clearTimeout(timeout);
|
||||
fn.apply(context, args);
|
||||
lastTime = now;
|
||||
} else {
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(() => {
|
||||
fn.apply(context, args);
|
||||
lastTime = now;
|
||||
}, delay - (now - lastTime));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 节流函数 - 定时器版本
|
||||
* @param {Function} fn - 需要节流的函数
|
||||
* @param {Number} delay - 节流时间,单位毫秒
|
||||
* @returns {Function} 节流后的函数
|
||||
*/
|
||||
export function throttleTimer(fn, delay) {
|
||||
let timeout = null;
|
||||
|
||||
return function (...args) {
|
||||
const context = this;
|
||||
|
||||
if (!timeout) {
|
||||
timeout = setTimeout(() => {
|
||||
fn.apply(context, args);
|
||||
timeout = null;
|
||||
}, delay);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 节流函数 - 时间戳版本
|
||||
* @param {Function} fn - 需要节流的函数
|
||||
* @param {Number} delay - 节流时间,单位毫秒
|
||||
* @returns {Function} 节流后的函数
|
||||
*/
|
||||
export function throttleTimestamp(fn, delay) {
|
||||
let lastTime = 0;
|
||||
|
||||
return function (...args) {
|
||||
const context = this;
|
||||
const now = Date.now();
|
||||
|
||||
if (now - lastTime > delay) {
|
||||
fn.apply(context, args);
|
||||
lastTime = now;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export default {
|
||||
debounce,
|
||||
throttle,
|
||||
throttleTimer,
|
||||
throttleTimestamp
|
||||
};
|
||||
@@ -1,168 +1,167 @@
|
||||
import utilsAge from '@/assets/js/utils/age'
|
||||
export default {
|
||||
//计算身份证起始日期
|
||||
getStartDate: function(birthday, endDate) {
|
||||
getStartDate: function(age, endDate) {
|
||||
let startDate = '' //证件起始日期
|
||||
let startage = ''
|
||||
let endage = utilsAge.getAge(birthday, new Date(endDate))
|
||||
let thisDate = new Date() //当年日期
|
||||
let thisyear = thisDate.getFullYear() //当前年份
|
||||
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 未满16周岁的公民申领的居民身份证有效期为5年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
if (endage - 5 < 16) {
|
||||
let date2_29 = endDate.slice(5, 11)
|
||||
if(date2_29 == '02-29'){
|
||||
let thisyear = Number(endDate.slice(0, 4)) - 5
|
||||
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
|
||||
startDate = thisyear + '-02-29'
|
||||
} else {
|
||||
startDate = thisyear + '-02-28'
|
||||
}
|
||||
}else{
|
||||
startDate = String(Number(endDate.slice(0, 4)) - 5) + endDate.slice(4, 11)
|
||||
if (age < 16) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 16周岁以下的证件有效期为5年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
startDate = String(Number(endDate.slice(0,4)) - 5) + endDate.slice(4,11)
|
||||
} else if (age >= 16 && age <= 21) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 16周岁~21周岁的证件有效期为10年或5年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
if (age - (10 - (endDate.slice(0,4) - thisyear)) < 16 ) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 如果证件有效期为10年 根据证件截止日期 判断10年前的年龄 如果小于16周岁 那么证件有效期就是5年
|
||||
* @Date: 2023/7/5
|
||||
**/
|
||||
startDate = String(Number(endDate.slice(0,4)) - 5) + endDate.slice(4,11)
|
||||
} else {
|
||||
startDate = String(Number(endDate.slice(0,4)) - 10) + endDate.slice(4,11)
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 年满16周岁至25周岁的公民申领的居民身份证有效期为10年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
else if (endage - 5 >= 16 && endage - 10 <= 25) {
|
||||
} else if(age >= 22 && age <= 25) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 22周岁~25周岁的证件有效期为10年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
startDate = String(Number(endDate.slice(0,4)) - 10) + endDate.slice(4,11)
|
||||
startage = utilsAge.getAge(birthday, new Date(startDate))
|
||||
if(startage >= 16 && startage <= 25){
|
||||
let date2_29 = endDate.slice(5, 11)
|
||||
if(date2_29 == '02-29') {
|
||||
let thisyear = Number(endDate.slice(0, 4)) - 10
|
||||
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
|
||||
startDate = thisyear + '-02-29'
|
||||
} else {
|
||||
startDate = thisyear + '-02-28'
|
||||
}
|
||||
} else {
|
||||
startDate
|
||||
}
|
||||
} else if (age >= 26 && age <= 35) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 26周岁~35周岁的证件有效期为20年或10年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
if (age - (20 - (endDate.slice(0,4) - thisyear)) < 26 ) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 如果证件有效期为20年 根据证件截止日期 判断20年前的年龄 如果小于26周岁 那么证件有效期就是10年
|
||||
* @Date: 2023/7/5
|
||||
**/
|
||||
startDate = String(Number(endDate.slice(0,4)) - 10) + endDate.slice(4,11)
|
||||
} else {
|
||||
startDate = String(Number(endDate.slice(0,4)) - 20) + endDate.slice(4,11)
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 年满26周岁至45周岁的公民申领的居民身份证有效期为20年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
else if(endage - 10 >= 26 && endage - 20 <= 45) {
|
||||
startDate = String(Number(endDate.slice(0,4)) - 20) + endDate.slice(4,11)
|
||||
startage = utilsAge.getAge(birthday, new Date(startDate))
|
||||
if(startage >= 26 && startage <= 45){
|
||||
let date2_29 = endDate.slice(5, 11)
|
||||
if(date2_29 == '02-29') {
|
||||
let thisyear = Number(endDate.slice(0, 4)) - 20
|
||||
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
|
||||
startDate = thisyear + '-02-29'
|
||||
} else {
|
||||
startDate = thisyear + '-02-28'
|
||||
}
|
||||
} else {
|
||||
startDate
|
||||
}
|
||||
} else if (age >= 36 && age <= 45) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 36周岁~45周岁的证件有效期为20年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
startDate = String(Number(endDate.slice(0,4)) + 20) + endDate.slice(4,11)
|
||||
} else if (age >= 46 && age <= 65) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 46周岁~65周岁的证件有效期为20年或长期
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
if (age - (20 - (endDate.slice(0,4) - thisyear)) < 46 ) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 如果证件有效期为20年 根据证件截止日期 判断20年前的年龄 如果小于46周岁 那么证件有效期就是20年
|
||||
* @Date: 2023/7/5
|
||||
**/
|
||||
startDate = String(Number(endDate.slice(0,4)) - 20) + endDate.slice(4,11)
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 年满46周岁的公民申领居民身份证有效期为长期
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
else if (endage - 20 >= 46) {
|
||||
startDate
|
||||
}
|
||||
if(new Date(birthday).getTime() >= new Date(startDate).getTime() || new Date().getTime() < new Date(startDate).getTime()){
|
||||
startDate = ''
|
||||
} else if (age > 65) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 65周岁以上的证件有效期为长期
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
}
|
||||
return startDate
|
||||
},
|
||||
|
||||
//计算身份证截止日期
|
||||
getEndDate: function(birthday, startDate) {
|
||||
getEndDate: function(age, startDate) {
|
||||
let endDate = '' //证件截止日期
|
||||
let startage = utilsAge.getAge(birthday, new Date(startDate))
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 未满16周岁的公民申领的居民身份证有效期为5年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
if (startage < 16) {
|
||||
let date2_29 = startDate.slice(5, 11)
|
||||
if(date2_29 == '02-29') {
|
||||
let thisyear = Number(startDate.slice(0, 4)) + 5
|
||||
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
|
||||
return endDate = thisyear + '-02-29'
|
||||
} else {
|
||||
return endDate = thisyear + '-02-28'
|
||||
}
|
||||
} else {
|
||||
return endDate = String(Number(startDate.slice(0, 4)) + 5) + startDate.slice(4, 11)
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 年满16周岁至25周岁的公民申领的居民身份证有效期为10年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
else if (startage >= 16 && startage <= 25) {
|
||||
let date2_29 = startDate.slice(5, 11)
|
||||
if(date2_29 == '02-29') {
|
||||
let thisyear = Number(startDate.slice(0, 4)) + 10
|
||||
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
|
||||
return endDate = thisyear + '-02-29'
|
||||
} else {
|
||||
return endDate = thisyear + '-02-28'
|
||||
}
|
||||
} else {
|
||||
return endDate = String(Number(startDate.slice(0, 4)) + 10) + startDate.slice(4, 11)
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 年满26周岁至45周岁的公民申领的居民身份证有效期为20年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
else if (startage >= 26 && startage <= 45) {
|
||||
let date2_29 = startDate.slice(5, 11)
|
||||
if(date2_29 == '02-29') {
|
||||
let thisyear = Number(startDate.slice(0, 4)) + 20
|
||||
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
|
||||
return endDate = thisyear + '-02-29'
|
||||
} else {
|
||||
return endDate = thisyear + '-02-28'
|
||||
}
|
||||
} else {
|
||||
return endDate = String(Number(startDate.slice(0, 4)) + 20) + startDate.slice(4, 11)
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 年满46周岁的公民申领居民身份证有效期为长期
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
else if (startage > 45) {
|
||||
return endDate
|
||||
}
|
||||
},
|
||||
let thisDate = new Date() //当年日期
|
||||
let thisyear = thisDate.getFullYear() //当前年份
|
||||
|
||||
//计算户口本截止日期
|
||||
getEndDate2: function(birthday, startDate) {
|
||||
let endDate = ''
|
||||
let date2_29 = startDate.slice(5, 11)
|
||||
if(date2_29 == '02-29'){
|
||||
let thisyear = Number(startDate.slice(0, 4)) + 16
|
||||
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
|
||||
return endDate = thisyear + '-02-29'
|
||||
if (age < 16) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 16周岁以下的证件有效期为5年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
endDate = String(Number(startDate.slice(0,4)) + 5) + startDate.slice(4,11)
|
||||
} else if (age >= 16 && age <= 21) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 16周岁~21周岁的证件有效期为10年或5年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
if (age - (thisyear - startDate.slice(0,4)) < 16 ) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 根据证件起始日期计算办证时年龄 如果办证时年龄小于16周岁 那么证件有效期就是5年
|
||||
* @Date: 2023/7/5
|
||||
**/
|
||||
endDate = String(Number(startDate.slice(0,4)) + 5) + startDate.slice(4,11)
|
||||
} else {
|
||||
return endDate = thisyear + '-02-28'
|
||||
endDate = String(Number(startDate.slice(0,4)) + 10) + startDate.slice(4,11)
|
||||
}
|
||||
}else{
|
||||
return endDate = String(Number(startDate.slice(0, 4)) + 16) + startDate.slice(4, 11)
|
||||
} else if(age >= 22 && age <= 25) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 22周岁~25周岁的证件有效期为10年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
endDate = String(Number(startDate.slice(0,4)) + 10) + startDate.slice(4,11)
|
||||
} else if (age >= 26 && age <= 35) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 26周岁~35周岁的证件有效期为20年或10年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
if (age - (thisyear - startDate.slice(0,4)) < 26 ) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 根据证件起始日期计算办证时年龄 如果办证时年龄小于26周岁 那么证件有效期就是10年
|
||||
* @Date: 2023/7/5
|
||||
**/
|
||||
endDate = String(Number(startDate.slice(0,4)) + 10) + startDate.slice(4,11)
|
||||
} else {
|
||||
endDate = String(Number(startDate.slice(0,4)) + 20) + startDate.slice(4,11)
|
||||
}
|
||||
} else if (age >= 36 && age <= 45) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 36周岁~45周岁的证件有效期为20年
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
endDate = String(Number(startDate.slice(0,4)) + 20) + startDate.slice(4,11)
|
||||
} else if (age >= 46 && age <= 65) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 46周岁~65周岁的证件有效期为20年或长期
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
if (age - (thisyear - startDate.slice(0,4)) < 46 ) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 根据证件起始日期计算办证时年龄 如果办证时年龄小于46周岁 那么证件有效期就是20年
|
||||
* @Date: 2023/7/5
|
||||
**/
|
||||
endDate = String(Number(startDate.slice(0,4)) + 20) + startDate.slice(4,11)
|
||||
}
|
||||
} else if (age > 65) {
|
||||
/**
|
||||
* @Author: LiuXiaoFeng
|
||||
* @Description: 65周岁以上的证件有效期为长期
|
||||
* @Date: 2023/7/4
|
||||
**/
|
||||
}
|
||||
return endDate
|
||||
}
|
||||
}
|
||||
|
||||
@@ -965,10 +965,10 @@ export default {
|
||||
id: 2,
|
||||
text: '户口本'
|
||||
},
|
||||
// {
|
||||
// id: 3,
|
||||
// text: '出生证'
|
||||
// },
|
||||
{
|
||||
id: 3,
|
||||
text: '出生证'
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
text: '外国人护照'
|
||||
@@ -995,54 +995,6 @@ export default {
|
||||
text: '港澳台居民居住证'
|
||||
}
|
||||
],
|
||||
//投保-被保险人证件类型(证件类型调整以及周边系统调整)
|
||||
idTypeAdjustment: [
|
||||
{
|
||||
id: 1,
|
||||
text: '居民身份证'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
text: '户口本'
|
||||
},
|
||||
// {
|
||||
// id: 3,
|
||||
// text: '出生证'
|
||||
// },
|
||||
{
|
||||
id: 4,
|
||||
text: '外国人护照'
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
text: '港澳居民来往内地通行证'
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
text: '台湾居民来往大陆通行证'
|
||||
},
|
||||
/* {
|
||||
id: 7,
|
||||
text: '其他',
|
||||
disabled: true
|
||||
}*/
|
||||
{
|
||||
id: 8,
|
||||
text: '外国人永久居留身份证'
|
||||
},
|
||||
// {
|
||||
// id: 9,
|
||||
// text: '港澳台居民居住证'
|
||||
// },
|
||||
{
|
||||
id: 11,
|
||||
text: '港澳居民居住证'
|
||||
},
|
||||
{
|
||||
id: 12,
|
||||
text: '台湾居民居住证'
|
||||
},
|
||||
],
|
||||
//投保人证件类型
|
||||
insuredIdType: [
|
||||
{
|
||||
@@ -1085,106 +1037,6 @@ export default {
|
||||
text: '港澳台居民居住证'
|
||||
}
|
||||
],
|
||||
// 投保-投保人证件类型(证件类型调整以及周边系统调整)
|
||||
insuredIdTypeAdjustment: [
|
||||
{
|
||||
id: 1,
|
||||
text: '居民身份证'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
text: '户口本',
|
||||
disabled: true
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
text: '出生证',
|
||||
disabled: true
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
text: '护照'
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
text: '港澳居民来往内地通行证'
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
text: '台湾居民来往大陆通行证'
|
||||
},
|
||||
/* {
|
||||
id: 7,
|
||||
text: '其他',
|
||||
disabled: true
|
||||
}*/
|
||||
{
|
||||
id: 8,
|
||||
text: '外国人永久居留身份证'
|
||||
},
|
||||
// {
|
||||
// id: 9,
|
||||
// text: '港澳台居民居住证'
|
||||
// }
|
||||
{
|
||||
id: 11,
|
||||
text: '港澳居民居住证'
|
||||
},
|
||||
{
|
||||
id: 12,
|
||||
text: '台湾居民居住证'
|
||||
},
|
||||
],
|
||||
// 投保-投保人证件类型-兼容需求前类型(证件类型调整以及周边系统调整)
|
||||
insuredIdTypeAllList: [
|
||||
{
|
||||
id: 1,
|
||||
text: '居民身份证'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
text: '户口本',
|
||||
disabled: true
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
text: '出生证',
|
||||
disabled: true
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
text: '护照'
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
text: '港澳居民来往内地通行证'
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
text: '台湾居民来往大陆通行证'
|
||||
},
|
||||
/* {
|
||||
id: 7,
|
||||
text: '其他',
|
||||
disabled: true
|
||||
}*/
|
||||
{
|
||||
id: 8,
|
||||
text: '外国人永久居留身份证'
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
text: '港澳台居民居住证'
|
||||
},
|
||||
{
|
||||
id: 11,
|
||||
text: '港澳居民居住证'
|
||||
},
|
||||
{
|
||||
id: 12,
|
||||
text: '台湾居民居住证'
|
||||
},
|
||||
],
|
||||
//投保人证件类型
|
||||
insuredIdTypeSpecial: [
|
||||
{
|
||||
@@ -1207,36 +1059,6 @@ export default {
|
||||
text: '户口本'
|
||||
}
|
||||
],
|
||||
// 新市民身份
|
||||
isNewPeopleFlag: [
|
||||
{
|
||||
id: 1,
|
||||
text: '是'
|
||||
},
|
||||
{
|
||||
id: 0,
|
||||
text: '否'
|
||||
}
|
||||
],
|
||||
// 新市民类型 创业、就业、子女上学、投奔子女
|
||||
npType: [
|
||||
{
|
||||
id: 1,
|
||||
text: '创业'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
text: '就业'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
text: '子女上学'
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
text: '投奔子女'
|
||||
}
|
||||
],
|
||||
//出生证明
|
||||
birthType: [
|
||||
{
|
||||
@@ -1921,7 +1743,7 @@ export default {
|
||||
},
|
||||
{
|
||||
id: '07',
|
||||
text: '核保失败'
|
||||
text: '公司谢绝'
|
||||
},
|
||||
{
|
||||
id: '08',
|
||||
@@ -2125,7 +1947,7 @@ export default {
|
||||
},
|
||||
{
|
||||
id: '58',
|
||||
text: '待支付'
|
||||
text: '待客户付款'
|
||||
},
|
||||
{
|
||||
id: '59',
|
||||
@@ -3905,36 +3727,36 @@ export default {
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "AppntModerateOrMinorDiseaseExemptionPremiumC",
|
||||
label: "元"
|
||||
code: "AppntModerateOrMinorDiseaseExemptionPremiumC",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "AppntDeathOrTotalDiseaseExemptionPremiumC",
|
||||
label: "元"
|
||||
code: "AppntDeathOrTotalDiseaseExemptionPremiumC",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "InsuredCriticalDiseaseExemptionPremiumC",
|
||||
label: "元"
|
||||
code: "InsuredCriticalDiseaseExemptionPremiumC",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "InsuredModerateOrMinorDiseaseExemptionPremiumC",
|
||||
label: "元"
|
||||
code: "InsuredModerateOrMinorDiseaseExemptionPremiumC",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "InsuredDeathOrTotalDiseaseExemptionPremiumC",
|
||||
label: "元"
|
||||
code: "InsuredDeathOrTotalDiseaseExemptionPremiumC",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "transport_G",
|
||||
label: "元"
|
||||
code: "transport_G",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "transport_H",
|
||||
label: "元"
|
||||
code: "transport_H",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "transport_J",
|
||||
label: "元"
|
||||
code: "transport_J",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "firstMajorDiseaseInsurance",
|
||||
@@ -3956,14 +3778,6 @@ export default {
|
||||
code: "GFRS_M0073__cashValue",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "specMajorDiseaseInsurance",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "expireSurvivalInsurance",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "currentBonus_L",
|
||||
label: "元"
|
||||
@@ -4000,138 +3814,9 @@ export default {
|
||||
code: "supplementarySpecificDiseaseInsurance",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "deductible",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "deductible",
|
||||
label: "免赔额"
|
||||
},
|
||||
{
|
||||
code: "accidentalDeductible",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "accidentalLimit",
|
||||
label: "%"
|
||||
},
|
||||
{
|
||||
code: "policyFee",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "expireSurvivalInsurance_L",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "expireSurvivalInsurance_M",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "riskCost_L",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "riskCost_M",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "GFRS_M0087__cashValue",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "deathDisabilityInsurance",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "middleDiseaseMildillnessExemptionPremium",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "malignantTumorAdditionalInsurance",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "specCardiovascularCerebrovascularDiseasesInsurance",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "firstCriticalIllnessCareFund",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "firstModerateIllnessCareFund",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "firstLightIllnessCareFund",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "GFRS_M0086__cashValue",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "wuyouliangquanbkx",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "currentPaidUpAdditions_L",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "currentPaidUpAdditions_M",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "totalPaidUpAdditions_L",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "totalPaidUpAdditions_M",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
code: "GFRS_M0094__cashValue",
|
||||
label: "元"
|
||||
},
|
||||
{
|
||||
//养老年金开始领取年龄
|
||||
code: 'pensionAge',
|
||||
label: '岁'
|
||||
},
|
||||
{
|
||||
code: 'AppntCriticalDiseaseExemptionPremiumD',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'AppntModerateOrMinorDiseaseExemptionPremiumD',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'AppntDeathOrTotalDiseaseExemptionPremiumD',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'InsuredCriticalDiseaseExemptionPremiumD',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'InsuredModerateOrMinorDiseaseExemptionPremiumD',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'InsuredDeathOrTotalDiseaseExemptionPremiumD',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'cumulativeSurvivalBenefitsExcludingDividends',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'cumulativeSurvivalBenefitsIncludingDividends',
|
||||
label: '元'
|
||||
}
|
||||
],
|
||||
// 卡单与短期险重新投保选择职业类别时,两个模块职业类型数据的排序不同,创建这个数据字典,用于在选择职业类别时,作为一个参数传入组件,
|
||||
@@ -4161,7 +3846,7 @@ export default {
|
||||
{ id: 'M', text: '母亲' }
|
||||
],
|
||||
// <!--------- 津贴申请专用 end --------->
|
||||
imageInfoType: [
|
||||
imageInfoType:[
|
||||
{ id: '1', text: '居民身份证正面' },
|
||||
{ id: '2', text: '居民身份证反面' },
|
||||
{ id: '3', text: '银行卡正面' },
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
export default {
|
||||
isAll: false,
|
||||
encodeKeys: process.env.NODE_ENV === 'development' ? [] : ['saleInsuredInfo', 'saleInsuredPersonInfo', 'appntDTO', 'proposalAppnt']
|
||||
encodeKeys: [
|
||||
'saleInsuredInfo',
|
||||
'saleInsuredPersonInfo',
|
||||
'appntDTO',
|
||||
'proposalAppnt'
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
export function deepClone(obj, hash = new WeakMap()) {
|
||||
if (window.structuredClone) return window.structuredClone(obj)
|
||||
// 处理 null 或 undefined
|
||||
if (obj === null || typeof obj !== 'object') {
|
||||
return obj
|
||||
}
|
||||
|
||||
// 处理循环引用
|
||||
if (hash.has(obj)) {
|
||||
return hash.get(obj)
|
||||
}
|
||||
|
||||
// 处理 Date 对象
|
||||
if (obj instanceof Date) {
|
||||
return new Date(obj)
|
||||
}
|
||||
|
||||
// 处理 RegExp 对象
|
||||
if (obj instanceof RegExp) {
|
||||
return new RegExp(obj.source, obj.flags)
|
||||
}
|
||||
|
||||
// 处理数组
|
||||
if (Array.isArray(obj)) {
|
||||
const clonedArr = []
|
||||
hash.set(obj, clonedArr)
|
||||
obj.forEach((item, index) => {
|
||||
clonedArr[index] = deepClone(item, hash)
|
||||
})
|
||||
return clonedArr
|
||||
}
|
||||
|
||||
// 处理普通对象
|
||||
if (typeof obj === 'object') {
|
||||
const clonedObj = {}
|
||||
hash.set(obj, clonedObj)
|
||||
Object.keys(obj).forEach(key => {
|
||||
clonedObj[key] = deepClone(obj[key], hash)
|
||||
})
|
||||
return clonedObj
|
||||
}
|
||||
|
||||
return obj
|
||||
}
|
||||
@@ -62,8 +62,7 @@ let sale = [
|
||||
'/sale/insure/selfToHuman',
|
||||
'/sale/insure/orderPayStatusQuery',
|
||||
'/sale/order/revokeOrder',
|
||||
'/sale/product/getcompany',
|
||||
'/sale/product/occupationCodeCheck'
|
||||
'/sale/product/getcompany'
|
||||
] //在线投保
|
||||
let agentEnter = [
|
||||
'/agent/enter/share',
|
||||
@@ -221,7 +220,7 @@ service.interceptors.request.use(
|
||||
let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //判断是否是 android终端
|
||||
if (isAndroid) {
|
||||
// setTimeout(() => {
|
||||
if (window.location.hash !== '#/my/privacyPolicy' && window.location.hash !== '#/YB_agentSign/step1' && window.location.hash !== '#/YB_agentSign/step2') {
|
||||
if (window.location.hash !== '#/my/privacyPolicy') {
|
||||
console.log(window.Android.getToken(), 'Android获取token')
|
||||
CacheUtils.setLocItem('token', window.Android.getToken())
|
||||
}
|
||||
@@ -252,9 +251,6 @@ service.interceptors.request.use(
|
||||
// respone拦截器
|
||||
service.interceptors.response.use(
|
||||
response => {
|
||||
if (response.config.responseType) {
|
||||
return response.data
|
||||
}
|
||||
let res = response.data
|
||||
if (
|
||||
(configApp.API_VERSION == 'v2' || configApp.API_VERSION == 'v3') &&
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
/**
|
||||
* 处理 json 键值对,到 url 中
|
||||
*/
|
||||
export function processJson(json) {
|
||||
if (typeof json !== 'object') return
|
||||
if (window.URLSearchParams) return new URLSearchParams(json).toString()
|
||||
|
||||
let url = ''
|
||||
for (const key in json) {
|
||||
if (json.hasOwnProperty(key)) {
|
||||
url += key + '=' + json[key] + '&'
|
||||
}
|
||||
}
|
||||
return url.substring(0, url.length - 1)
|
||||
}
|
||||
@@ -59,19 +59,16 @@ Validator.extend('email', {
|
||||
Validator.extend('name', {
|
||||
getMessage: () => '姓名长度为2-120个字符之内,只能输入汉字或者英文',
|
||||
validate: value => {
|
||||
return value
|
||||
// return /^[\u4e00-\u9fa5·]{1,15}$/.test(value)
|
||||
// return /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/.test(value);
|
||||
return /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/.test(value);
|
||||
}
|
||||
});
|
||||
//sale 投保名字 2个汉字,4个字母
|
||||
Validator.extend('salename', {
|
||||
getMessage: () => '亲,请确认您录入的姓名是否正确哦~',
|
||||
validate: value => {
|
||||
return value
|
||||
// return /^[\u4e00-\u9fa5·]{1,15}$/.test(value)
|
||||
// return /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/.test(value);
|
||||
// return /^[\u4e00-\u9fa5·]{2,120}$|^[a-zA-Z\s]{4,120}$/.test(value);
|
||||
return /^[\u4e00-\u9fa5·]{2,120}$|^[a-zA-Z\s]{4,120}$/.test(value);
|
||||
}
|
||||
});
|
||||
// sale - 详细地址 - 详细地址须同时包含汉字和数字,
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
box-sizing: border-box;
|
||||
content: " ";
|
||||
pointer-events: none;
|
||||
right: 4.26667vw;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 4.26667vw;
|
||||
border-bottom: 1px solid #dadada;
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<van-field
|
||||
minlength="6"
|
||||
class="pt5 mt10"
|
||||
style="border-top: 1px solid #eaeaea; border-bottom: 1px solid #eaeaea"
|
||||
style="border-top:1px solid #eaeaea;border-bottom:1px solid #eaeaea"
|
||||
v-model="checkModel.pwd"
|
||||
clearable
|
||||
type="password"
|
||||
@@ -207,7 +207,7 @@ export default {
|
||||
operateCodeType: '0'
|
||||
}
|
||||
//获取验证码
|
||||
getAuthCode(data).then((res) => {
|
||||
getAuthCode(data).then(res => {
|
||||
if (res.result == 0) {
|
||||
this.checkModel.smsId = res.sessionId
|
||||
this.checkModel.smsCode = null
|
||||
@@ -225,18 +225,6 @@ export default {
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
/**
|
||||
* 监听弹窗显示隐藏
|
||||
*/
|
||||
'checkModel.show'(val) {
|
||||
console.log('checkModel.show', val)
|
||||
// 显示时禁止截屏,不显示时恢复截屏
|
||||
EWebBridge.webCallAppInJs('enable_screen_capture', {
|
||||
enable: !val
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
<script>
|
||||
export default {
|
||||
name: 'DestroyablePopup',
|
||||
data() {
|
||||
return {
|
||||
isPopupOpen: this.show, isDestroyPopup: false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
isPopupOpen(val) {
|
||||
this.isPopupOpen = val
|
||||
this.$emit('update:show', val)
|
||||
},
|
||||
show() {
|
||||
if (this.show) this.isDestroyPopup = false
|
||||
this.$nextTick(() => this.isPopupOpen = this.show)
|
||||
}
|
||||
},
|
||||
props: ['show']
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="!isDestroyPopup" style="max-height: 90vh">
|
||||
<van-popup v-model="isPopupOpen" round position="bottom" @closed="()=>{isDestroyPopup = true}">
|
||||
<slot></slot>
|
||||
</van-popup>
|
||||
</div>
|
||||
</template>
|
||||
@@ -1,199 +0,0 @@
|
||||
<template>
|
||||
<div class="popup-ques-result">
|
||||
<van-popup
|
||||
v-model="showResultPopup"
|
||||
position="bottom"
|
||||
class="result-popup"
|
||||
@click-overlay = "clickOverlay('overlay')"
|
||||
>
|
||||
<div class="result-popup-title">
|
||||
<div>
|
||||
<span></span>
|
||||
<span>您的风险能力测评结果</span>
|
||||
</div>
|
||||
<van-icon name="cross" @click="clickOverlay('icon')"/>
|
||||
</div>
|
||||
<div class="result-popup-content">
|
||||
<div class='content'>尊敬的{{appntInfo.name}}{{appntInfo.sex=='0'?'先生':'女士'}}:</div>
|
||||
<div class='content'>根据您填写的评估问卷,本公司对您的保险需求及财务支付水平进行了综合评估,结果反馈如下:</div>
|
||||
<div class='content'>您适合购买的产品类型为:
|
||||
<span class='product-type'>{{resultRiskType}}</span>
|
||||
</div>
|
||||
<div class="levelList">
|
||||
<div v-for="(item,idx) in productLevel" :key="idx" class="itemLevel">
|
||||
{{ item }}
|
||||
</div>
|
||||
</div>
|
||||
<div class='tips'>特别提示:</div>
|
||||
<div class='tips tips-content'> 本次评估结果及匹配意见供您决策参考,并不代表本公司对上述产品的风险及收益作出实质性判断或者保证。若您提供的信息发生任何重大变化,建议您对所购买的产品及时进行重新审视,以确保您的购买决定与您可承受的风险程度等实际情况一致。</div>
|
||||
<div class='tips tips-content'>建议您充分考察该产品的特征,自行做出投保决定,请您确保您的决定是独立、自主、真实的。</div>
|
||||
</div>
|
||||
<!-- 未测评过底部按钮 -->
|
||||
<div class="bottom-btn bg-white flex">
|
||||
<van-button type="danger" square size="large" plain v-no-more-click="1000" @click="reTest" v-if="showRetest">重新测评</van-button>
|
||||
<van-button type="danger" square size="large" v-no-more-click="1000" @click="toInsure">我已知晓,继续投保</van-button>
|
||||
</div>
|
||||
|
||||
<!-- 已测评过底部按钮 -->
|
||||
<!-- <div class="bottom-btn bg-white flex testBtn" v-if="showHasTested">
|
||||
<van-button type="danger" square size="large" plain v-no-more-click="1000" @click="goBack">上一步</van-button>
|
||||
<van-button type="danger" square size="large" class="btn" v-no-more-click="1000" @click="goNext">已知晓,继续投保</van-button>
|
||||
<van-button type="danger" square size="large" v-no-more-click="1000" @click="reStart">重新评估</van-button>
|
||||
</div> -->
|
||||
|
||||
</van-popup>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'PopupQuesResult',
|
||||
props: {
|
||||
showResultPopup: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
showRetest: { //展示重新测评
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
appntInfo:{
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
resultRiskType:{
|
||||
type:String,
|
||||
default:''
|
||||
},
|
||||
assessResultDescList:{
|
||||
type:Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
//showNoTested: false
|
||||
productLevel:[
|
||||
'P1分类:保险期限为一年期及以下的人身保险产品,包括人寿保险、健康保险、意外伤害保险等',
|
||||
'P2分类:保险期限为一年期以上的普通型人身保险,包括人寿保险、年金保险、健康保险、意外伤害保险等',
|
||||
'P3分类:专属商业养老保险、分红型人身保险、万能型人身保险,其他符合本级特征描述的人身保险产品,包括人寿保险、年金保险等',
|
||||
'P4分类:投资连结型人身保险、变额年金保险,其他符合本级特征描述的人身保险产品,包括人寿保险、年金保险等',
|
||||
'P5分类:符合本级特征描述的人身保险产品']
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickOverlay(extra){
|
||||
this.$emit('clickOverlayHandler',extra)
|
||||
},
|
||||
|
||||
//1.未测评过弹窗按钮
|
||||
//1.1 重新测评
|
||||
reTest(){
|
||||
this.$emit('reTestHandler')
|
||||
},
|
||||
|
||||
//1.2 我已知晓,继续投保
|
||||
toInsure(){
|
||||
this.$emit('toInsureHandler')
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.popup-ques-result{
|
||||
.result-popup{
|
||||
border-top-left-radius: 15px;
|
||||
border-top-right-radius: 15px;
|
||||
.result-popup-title{
|
||||
padding:10px 15px 10px 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-size: 18px;
|
||||
font-weight: bolder;
|
||||
color:#000;
|
||||
border-bottom: 1px solid #ebe7e7;
|
||||
div{
|
||||
display:flex;
|
||||
align-items: center;
|
||||
span:first-child{
|
||||
display:block;
|
||||
height:20px;
|
||||
width: 5px;
|
||||
background-color: red;
|
||||
border-radius: 2px;
|
||||
margin-right:15px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.result-popup-content{
|
||||
padding:10px 10px 60px;
|
||||
box-sizing:border-box;
|
||||
.content{
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
margin-bottom: 5px;
|
||||
.product-type{
|
||||
color: #ee0a24;
|
||||
font-weight: bold;
|
||||
}
|
||||
&:nth-child(2){
|
||||
text-indent: 2em;
|
||||
}
|
||||
&:nth-child(3){
|
||||
text-indent: 2em;
|
||||
margin-bottom:5px;
|
||||
}
|
||||
}
|
||||
.tips{
|
||||
font-size: 12px;
|
||||
color: #333;
|
||||
line-height:1.5;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.tips-content{
|
||||
text-indent: 2em;
|
||||
}
|
||||
.tips:nth-child(5){
|
||||
border-top:1px #ebe7e7 solid;
|
||||
padding:10px 0;
|
||||
margin-bottom: 0;
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
}
|
||||
.result-popup-btn{
|
||||
|
||||
}
|
||||
/deep/ .testBtn{
|
||||
.van-button:first-child{
|
||||
flex:1;
|
||||
}
|
||||
.van-button:nth-child(2){
|
||||
flex:1.3;
|
||||
border-right:1px solid #fff !important;
|
||||
}
|
||||
.van-button:nth-child(3){
|
||||
flex:1;
|
||||
}
|
||||
}
|
||||
|
||||
.levelList{
|
||||
border:1px #DA7C43 solid;
|
||||
border-radius:10px;
|
||||
padding:10px;
|
||||
margin:15px 0;
|
||||
background-color: #F5EAE4;
|
||||
}
|
||||
.itemLevel{
|
||||
font-size: 12px;
|
||||
color:#DA7C43;
|
||||
margin-bottom:5px;
|
||||
line-height:1.8;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,162 +0,0 @@
|
||||
<template>
|
||||
<div class="popup-ques-result">
|
||||
<van-popup
|
||||
v-model="showResultPopup"
|
||||
position="bottom"
|
||||
class="result-popup"
|
||||
@click-overlay = "clickOverlay('overlay')"
|
||||
>
|
||||
<div class="result-popup-title">
|
||||
<span>您的适当性评估结果</span>
|
||||
<van-icon name="cross" @click="clickOverlay('icon')"/>
|
||||
</div>
|
||||
<div class="result-popup-content">
|
||||
<div class='content'>尊敬的{{appntInfo.name}}{{appntInfo.sex=='0'?'先生':'女士'}}:</div>
|
||||
<div class='content'>根据您填写的评估问卷,本公司对您的保险需求及财务支付水平进行了综合评估,结果反馈如下:</div>
|
||||
<div class='content'>您适合购买的产品类型为:
|
||||
<span class='product-type'>{{resultRiskType}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<div v-for="(item,idx) in productLevel" :key="idx" class="itemLevel">
|
||||
{{ item }}
|
||||
</div>
|
||||
</div>
|
||||
<div class='tips'>特别提示:</div>
|
||||
<div class='tips'> 本次评估结果及匹配意见供您决策参考,并不代表本公司对上述产品的风险及收益作出实质性判断或者保证。若您提供的信息发生任何重大变化,建议您对所购买的产品及时进行重新审视,以确保您的购买决定与您可承受的风险程度等实际情况一致。</div>
|
||||
<div class='tips'>建议您充分考察该产品的特征,自行做出投保决定,请您确保您的决定是独立、自主、真实的。</div>
|
||||
</div>
|
||||
<!-- 未测评过底部按钮 -->
|
||||
<div class="bottom-btn bg-white flex">
|
||||
<van-button type="danger" square size="large" plain v-no-more-click="1000" @click="reTest" v-if="showRetest">重新测评</van-button>
|
||||
<van-button type="danger" square size="large" v-no-more-click="1000" @click="toInsure">我已知晓,继续投保</van-button>
|
||||
</div>
|
||||
|
||||
<!-- 已测评过底部按钮 -->
|
||||
<!-- <div class="bottom-btn bg-white flex testBtn" v-if="showHasTested">
|
||||
<van-button type="danger" square size="large" plain v-no-more-click="1000" @click="goBack">上一步</van-button>
|
||||
<van-button type="danger" square size="large" class="btn" v-no-more-click="1000" @click="goNext">已知晓,继续投保</van-button>
|
||||
<van-button type="danger" square size="large" v-no-more-click="1000" @click="reStart">重新评估</van-button>
|
||||
</div> -->
|
||||
|
||||
</van-popup>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'PopupQuesResult',
|
||||
props: {
|
||||
showResultPopup: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
showRetest: { //展示重新测评
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
appntInfo:{
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
resultRiskType:{
|
||||
type:String,
|
||||
default:''
|
||||
},
|
||||
assessResultDescList:{
|
||||
type:Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
//showNoTested: false
|
||||
productLevel:[
|
||||
'P1分类:保险期限为一年期及以下的人身保险产品,包括人寿保险、健康保险、意外伤害保险等',
|
||||
'P2分类:保险期限为一年期以上的普通型人身保险,包括人寿保险、年金保险、健康保险、意外伤害保险等',
|
||||
'P3分类:专属商业养老保险、分红型人身保险、万能型人身保险,其他符合本级特征描述的人身保险产品,包括人寿保险、年金保险等',
|
||||
'P4分类:投资连结型人身保险、变额年金保险,其他符合本级特征描述的人身保险产品,包括人寿保险、年金保险等',
|
||||
'P5分类:符合本级特征描述的人身保险产品']
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickOverlay(extra){
|
||||
this.$emit('clickOverlayHandler',extra)
|
||||
},
|
||||
|
||||
//1.未测评过弹窗按钮
|
||||
//1.1 重新测评
|
||||
reTest(){
|
||||
this.$emit('reTestHandler')
|
||||
},
|
||||
|
||||
//1.2 我已知晓,继续投保
|
||||
toInsure(){
|
||||
this.$emit('toInsureHandler')
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.popup-ques-result{
|
||||
.result-popup{
|
||||
|
||||
.result-popup-title{
|
||||
padding:10px 10px 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-size: 20px;
|
||||
font-weight: bolder;
|
||||
color:#000;
|
||||
}
|
||||
.result-popup-content{
|
||||
padding:10px 10px 60px;
|
||||
box-sizing:border-box;
|
||||
.content{
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
margin-bottom: 5px;
|
||||
.product-type{
|
||||
color: #ee0a24;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
.tips{
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.tips:nth-child(5){
|
||||
padding:10px 0;
|
||||
margin-bottom: 0;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
}
|
||||
.result-popup-btn{
|
||||
|
||||
}
|
||||
/deep/ .testBtn{
|
||||
.van-button:first-child{
|
||||
flex:1;
|
||||
}
|
||||
.van-button:nth-child(2){
|
||||
flex:1.3;
|
||||
border-right:1px solid #fff !important;
|
||||
}
|
||||
.van-button:nth-child(3){
|
||||
flex:1;
|
||||
}
|
||||
}
|
||||
|
||||
.itemLevel{
|
||||
font-size: 12px;
|
||||
color:#999;
|
||||
margin-bottom:5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="search_box" ref="search_box">
|
||||
<van-field :label="label" :class="{ 'van-cell--required': required }">
|
||||
<van-field :label="label" required>
|
||||
<template #input>
|
||||
<input
|
||||
style="width: 100%; border: none"
|
||||
@@ -40,10 +40,6 @@ export default {
|
||||
value: {
|
||||
type: String
|
||||
},
|
||||
required: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
isAsync: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
|
||||
@@ -187,7 +187,7 @@ export default {
|
||||
box-sizing: border-box;
|
||||
content: ' ';
|
||||
pointer-events: none;
|
||||
right: 4.26667vw;
|
||||
right: 0;
|
||||
// bottom: 0;
|
||||
// top: 0;
|
||||
left: 4.26667vw;
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<div class="sex-radio">
|
||||
<div class="van-cell-group ">
|
||||
<div :class="{ 'van-cell--required': required }" class="van-cell van-field pv7">
|
||||
<div class="van-cell van-field pv7" :class="{ 'van-cell--required': required }">
|
||||
<div class="van-cell__title van-field__label">
|
||||
<span>{{ label }}</span>
|
||||
</div>
|
||||
<van-radio-group v-model="radio" class="radio-area">
|
||||
<van-radio v-for="(itemRadio, index) in radios" :key="index" :name="itemRadio.value" @click="handleChoose(itemRadio.value)">
|
||||
<van-radio-group class="radio-area" v-model="radio">
|
||||
<van-radio @click="handleChoose(itemRadio.value)" :name="itemRadio.value" v-for="(itemRadio, index) in radios" :key="index">
|
||||
<div slot="icon"></div>
|
||||
<van-button :color="color" :plain="radio != itemRadio.value" :type="type" class="ph30" round size="small">{{ itemRadio.label }}</van-button>
|
||||
<van-button :color="color" class="ph30" :type="type" :plain="radio == itemRadio.value ? false : true" round size="small">{{ itemRadio.label }}</van-button>
|
||||
</van-radio>
|
||||
</van-radio-group>
|
||||
</div>
|
||||
@@ -21,7 +21,7 @@ export default {
|
||||
name: 'select-radio',
|
||||
props: {
|
||||
value: {
|
||||
type: String | Boolean,
|
||||
type: String|Boolean,
|
||||
default: '0'
|
||||
},
|
||||
label: {
|
||||
@@ -57,7 +57,7 @@ export default {
|
||||
handleChoose(value) {
|
||||
if (this.disabled) {
|
||||
return
|
||||
}
|
||||
}
|
||||
this.$emit('update:value', value)
|
||||
this.$emit('radioChange', value)
|
||||
}
|
||||
@@ -83,7 +83,7 @@ export default {
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
margin-left: -15px;
|
||||
margin-left: -8px;
|
||||
}
|
||||
.van-cell {
|
||||
align-items: center;
|
||||
@@ -106,4 +106,5 @@ export default {
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -1,254 +0,0 @@
|
||||
<template>
|
||||
<div class="statisticsTable">
|
||||
<div class="statisticsTable_table">
|
||||
<div class="table">
|
||||
<table cellspacing="0" summary cellpadding="1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th :class="{ 'th-fixed': index < 1 }" v-for="(item, index) in theads" :key="index">{{ item }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item, index) in tableData" :key="index" :ref="'th' + index" @click="(e) => double_click(index, item)">
|
||||
<td class="th-fixed" @click="goLink(item)">{{ Number(index) + 1 }}</td>
|
||||
<td class="timeDate" v-show="timeShow">{{ item.signDate }}</td>
|
||||
<td class="timeDate" v-show="timeShow == false">{{ item.appntDate }}</td>
|
||||
<td class="productName">{{ item.productName }}</td>
|
||||
<td class="prem">{{ item.prem }}</td>
|
||||
<td>
|
||||
<span class="td-sheng">{{ item.name }}</span>
|
||||
</td>
|
||||
<td>{{ item.manageComName }}</td>
|
||||
<td class="chakan">
|
||||
<van-button size="mini" type="danger" @click="download(item)">下载贺报</van-button>
|
||||
<van-button size="mini" type="info" @click="look(item.orderNo)">查看</van-button>
|
||||
</td>
|
||||
<!-- <td>{{ item.branchTypeName }}</td>-->
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pagination" v-if="total > 5">
|
||||
<div type="text" @click="pageUp" :style="pageNum > 1 ? 'color:red' : ''">上一页</div>
|
||||
<div style="color: red">{{ pageNum }}/{{ Math.ceil(total / pageSize) }}</div>
|
||||
<div @click="pageDown" :style="pageNum < Math.ceil(total / pageSize) ? 'color:red' : ''">下一页 ></div>
|
||||
<div v-if="pageNum == 1" class="shangzheBox"></div>
|
||||
<div v-if="pageNum >= Math.ceil(total / pageSize)" class="xiazheBox"></div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'tableDetail',
|
||||
props: {
|
||||
theads: {
|
||||
type: Array,
|
||||
default: []
|
||||
},
|
||||
isLink: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
total: {
|
||||
type: Number,
|
||||
default: false
|
||||
},
|
||||
pageSize: {
|
||||
type: Number,
|
||||
default: false
|
||||
},
|
||||
pageNum: {
|
||||
type: Number,
|
||||
default: false
|
||||
},
|
||||
tableData: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
timeShow: false,
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
theads(newVal) {
|
||||
if (newVal) {
|
||||
for(let i=0;i<this.theads.length;i++) {
|
||||
if(this.theads[i] == '承保时间') {
|
||||
this.timeShow = true
|
||||
} else if(this.theads[i] == '预收时间') {
|
||||
this.timeShow = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
for(let i=0;i<this.theads.length;i++) {
|
||||
if(this.theads[i] == '承保时间') {
|
||||
this.timeShow = true
|
||||
} else if(this.theads[i] == '预收时间') {
|
||||
this.timeShow = false
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
double_click(index, fn, data) {
|
||||
let timestamp = 0
|
||||
this.$refs['th' + index][0].addEventListener('click', () => {
|
||||
const now = new Date()
|
||||
if (now - timestamp <= 300) {
|
||||
this.$emit('double_click', this.tableData[index])
|
||||
// fn();
|
||||
timestamp = 0
|
||||
} else {
|
||||
timestamp = now
|
||||
}
|
||||
})
|
||||
},
|
||||
pageUp() {
|
||||
if (this.pageNum <= 1) {
|
||||
return false
|
||||
}
|
||||
let page = this.pageNum - 1
|
||||
this.$emit('currentChange', page)
|
||||
},
|
||||
pageDown() {
|
||||
let end_num = Math.ceil(this.total / this.pageNum)
|
||||
if (this.pageNum >= end_num) {
|
||||
return false
|
||||
}
|
||||
let page = this.pageNum + 1
|
||||
this.$emit('currentChange', page)
|
||||
},
|
||||
goLink(item) {
|
||||
if (this.isLink) {
|
||||
this.$emit('goLink', item)
|
||||
}
|
||||
},
|
||||
// 跳转至下载贺报页面
|
||||
download(data){
|
||||
this.$emit('from-child', data);
|
||||
},
|
||||
// 查看详情 跳转至详情页面
|
||||
look(num) {
|
||||
this.$emit('fro-child', num);
|
||||
// console.log(num);
|
||||
// this.$router.push({
|
||||
// path: '/policyDetails',
|
||||
// query: {
|
||||
// orderNo: num,
|
||||
// }
|
||||
// })
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.pagination {
|
||||
display: flex;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
.shangzheBox {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 70px;
|
||||
height: 30px;
|
||||
}
|
||||
.xiazheBox {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 70px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
.statisticsTable_table {
|
||||
height: 82.5vh;
|
||||
overflow: auto;
|
||||
//width: 1000px;
|
||||
}
|
||||
.statisticsTable_table .table {
|
||||
width: 195.6vw !important;
|
||||
}
|
||||
.timeDate {
|
||||
width: 90px !important;
|
||||
}
|
||||
.productName {
|
||||
width: 35vw;
|
||||
}
|
||||
.chakan {
|
||||
width: 130px;
|
||||
}
|
||||
.prem {
|
||||
text-align: right !important;
|
||||
width: 90px !important;
|
||||
padding-right: 7px !important;
|
||||
}
|
||||
.statisticsTable th {
|
||||
width: 90px;
|
||||
}
|
||||
table {
|
||||
// width: 200vw;
|
||||
}
|
||||
.th-fixed {
|
||||
position: sticky;
|
||||
border: 1px solid #999 !important;
|
||||
left: 0;
|
||||
width: 35px !important;
|
||||
padding: 0 5px;
|
||||
}
|
||||
.statisticsTable {
|
||||
width: 100%;
|
||||
overflow-x: hidden;
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table,
|
||||
th,
|
||||
td {
|
||||
border: 1px solid #999;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
line-height: 30px;
|
||||
background: #fff;
|
||||
}
|
||||
thead {
|
||||
th {
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
background: #e9332e;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.td-fixed {
|
||||
// position: sticky;
|
||||
width: 33px !important;
|
||||
padding: 0 5px;
|
||||
left: 0;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.td-sheng {
|
||||
display: block;
|
||||
width: 65px; /* 设置span的宽度 */
|
||||
white-space: nowrap; /* 确保文本不换行 */
|
||||
overflow: hidden; /* 隐藏超出span宽度的文本 */
|
||||
text-overflow: ellipsis; /* 超出部分显示为省略号 */
|
||||
text-align: left; /* 文本对齐方式 */
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
@@ -10,7 +10,7 @@
|
||||
@click-right-icon="chooseCustomer"
|
||||
:readonly="readonly"
|
||||
/>
|
||||
<van-popup v-model="showPicker" position="bottom">
|
||||
<van-popup v-model="parentShowPicker" position="bottom">
|
||||
<customer @on-choose="choose" :code="code" :name="name" :life="life" :health="health"></customer>
|
||||
</van-popup>
|
||||
</div>
|
||||
@@ -109,7 +109,6 @@ export default {
|
||||
},
|
||||
choose(data) {
|
||||
this.name = data.customerName
|
||||
this.showPicker = false
|
||||
this.$emit('on-choose', data)
|
||||
},
|
||||
chooseCustomer() {
|
||||
|
||||
@@ -1,132 +0,0 @@
|
||||
<template>
|
||||
<div class="ys-float-btn" :style="{'width':itemWidth+'px','height':itemHeight+'px','left':left+'px','top':top+'px'}" ref="div" @click="onBtnClicked">
|
||||
<p class="p1">{{isActive === 0 ? '关怀' : '标准'}}</p>
|
||||
<p class="p2">模式</p>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: "FloatImgBtn",
|
||||
props:{
|
||||
itemWidth:{
|
||||
type:Number,
|
||||
default:56
|
||||
},
|
||||
itemHeight:{
|
||||
type:Number,
|
||||
default:56
|
||||
},
|
||||
gapWidth:{
|
||||
type:Number,
|
||||
default:6
|
||||
},
|
||||
|
||||
coefficientHeight:{
|
||||
type:Number,
|
||||
default:0.8
|
||||
}
|
||||
},
|
||||
created(){
|
||||
this.clientWidth = document.documentElement.clientWidth;
|
||||
this.clientHeight = document.documentElement.clientHeight;
|
||||
this.left = this.clientWidth - this.itemWidth - this.gapWidth;
|
||||
this.top = 100;
|
||||
},
|
||||
mounted(){
|
||||
this.$nextTick(()=>{
|
||||
const div = this.$refs.div;
|
||||
div.addEventListener("touchstart",(e)=>{
|
||||
e.stopPropagation();
|
||||
div.style.transition = 'none';
|
||||
});
|
||||
div.addEventListener("touchmove",(e)=>{
|
||||
e.stopPropagation();
|
||||
if (e.targetTouches.length === 1) {
|
||||
let touch = event.targetTouches[0];
|
||||
this.left = touch.clientX - this.itemWidth/2;
|
||||
this.top = touch.clientY - this.itemHeight/2;
|
||||
}
|
||||
},
|
||||
false
|
||||
);
|
||||
div.addEventListener("touchend",(e)=>{
|
||||
e.stopPropagation();
|
||||
div.style.transition = 'all 0.3s';
|
||||
if(this.left>this.clientWidth/2){
|
||||
this.left = this.clientWidth - this.itemWidth - this.gapWidth;
|
||||
}else{
|
||||
this.left = this.gapWidth;
|
||||
}
|
||||
if(this.top<=36)
|
||||
{
|
||||
this.top=36+this.gapWidth
|
||||
}
|
||||
else{
|
||||
let bottom=this.clientHeight-50-this.itemHeight-this.gapWidth
|
||||
console.log(bottom,this.top)
|
||||
if(this.top>=bottom)
|
||||
{
|
||||
this.top=bottom
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
methods:{
|
||||
onBtnClicked(){
|
||||
if (this.isActive === 0) {
|
||||
this.isActive = 1
|
||||
sessionStorage.setItem('oldVersionSwitch', 1)
|
||||
} else if (this.isActive === 1) {
|
||||
this.isActive = 0
|
||||
sessionStorage.setItem('oldVersionSwitch', 0)
|
||||
}
|
||||
this.$emit("onFloatBtnClicked", this.isActive);
|
||||
},
|
||||
|
||||
},
|
||||
data(){
|
||||
return{
|
||||
timer:null,
|
||||
currentTop:0,
|
||||
clientWidth:0,
|
||||
clientHeight:0,
|
||||
left:0,
|
||||
top:0,
|
||||
isActive: sessionStorage.getItem('oldVersionSwitch') ? Number(sessionStorage.getItem('oldVersionSwitch')) : 0
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.ys-float-btn{
|
||||
background:RGBA(234, 52, 66, 0.8);
|
||||
border-radius:50%;
|
||||
color: #666666;
|
||||
z-index: 20;
|
||||
transition: all 0.3s;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: fixed;
|
||||
bottom: 20vw;
|
||||
p{
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
&.p1{
|
||||
margin-top: 4px;
|
||||
}
|
||||
&.p2{
|
||||
margin-top: -6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -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>
|
||||
@@ -1,35 +1,29 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="own_content">
|
||||
<ul class="index-bar">
|
||||
<li v-for="(item, index) in pageTitle" v-if="item.show" :id="item.tabClass" :key="index" :class="item.tabClass" @click="changePage(item.pageNo)">
|
||||
<!-- 选中 -->
|
||||
<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 v-if="index !== 10" :src="doneUrl" 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 v-if="index !== 10" :src="doneNurl" 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: {
|
||||
@@ -57,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',
|
||||
@@ -68,7 +60,7 @@ export default {
|
||||
pageItem: '投保人信息',
|
||||
urlStr: '/sale/insuredInfo',
|
||||
tabClass: '',
|
||||
show: true,
|
||||
show:true,
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/tbrxx.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/tbrxx_n.png'
|
||||
},
|
||||
@@ -77,7 +69,7 @@ export default {
|
||||
pageItem: '被保险人信息',
|
||||
urlStr: '/sale/insuredPerson',
|
||||
tabClass: '',
|
||||
show: true,
|
||||
show:true,
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/bbrxx.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/bbrxx_n.png'
|
||||
},
|
||||
@@ -86,7 +78,7 @@ export default {
|
||||
pageItem: '选择产品',
|
||||
urlStr: '/common/selectedProduct',
|
||||
tabClass: '',
|
||||
show: true,
|
||||
show:true,
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/xzcp.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/xzcp_n.png'
|
||||
},
|
||||
@@ -95,7 +87,7 @@ export default {
|
||||
pageItem: '受益人信息',
|
||||
urlStr: '/sale/beneficiary',
|
||||
tabClass: '',
|
||||
show: true,
|
||||
show:true,
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/syrxx.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/syrxx_n.png'
|
||||
},
|
||||
@@ -104,7 +96,7 @@ export default {
|
||||
pageItem: '告知信息',
|
||||
urlStr: '/sale/notifyingMessage',
|
||||
tabClass: '',
|
||||
show: true,
|
||||
show:true,
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/gzxx.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/gzxx_n.png'
|
||||
},
|
||||
@@ -113,7 +105,7 @@ export default {
|
||||
pageItem: '风险测评',
|
||||
urlStr: '/sale/answerPage',
|
||||
tabClass: '',
|
||||
show: false,
|
||||
show:false,
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/fx1.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/fx2.png'
|
||||
},
|
||||
@@ -122,7 +114,7 @@ export default {
|
||||
pageItem: '风险测评结果',
|
||||
urlStr: '/sale/answerSuccess',
|
||||
tabClass: '',
|
||||
show: false,
|
||||
show:false,
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/fxjg1.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/fxjg2.png'
|
||||
},
|
||||
@@ -131,7 +123,7 @@ export default {
|
||||
pageItem: '风险告知',
|
||||
urlStr: '/sale/universalRiskNotifyingMessage',
|
||||
tabClass: '',
|
||||
show: false,
|
||||
show:false,
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/zhxx.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/zhxx_n.png'
|
||||
},
|
||||
@@ -140,7 +132,7 @@ export default {
|
||||
pageItem: '账户信息',
|
||||
urlStr: '/sale/accountInformation',
|
||||
tabClass: '',
|
||||
show: true,
|
||||
show:true,
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/zhxx.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/zhxx_n.png'
|
||||
},
|
||||
@@ -149,7 +141,7 @@ export default {
|
||||
pageItem: '附件上传',
|
||||
urlStr: '/sale/attachmentManagement',
|
||||
tabClass: '',
|
||||
show: true,
|
||||
show:true,
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/fjsc.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/fjsc_n.png'
|
||||
},
|
||||
@@ -158,7 +150,7 @@ export default {
|
||||
pageItem: '签名确认',
|
||||
urlStr: '/sale/signatureConfirmation',
|
||||
tabClass: '',
|
||||
show: true,
|
||||
show:true,
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/qmqr.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/qmqr_n.png'
|
||||
}
|
||||
@@ -167,69 +159,46 @@ export default {
|
||||
salePageFlag: Number(localStorage.salePageFlag)
|
||||
}
|
||||
},
|
||||
async mounted() {
|
||||
mounted() {
|
||||
let that = this
|
||||
let data = {
|
||||
orderNo: that.$route.query.orderNo
|
||||
}
|
||||
getOrderDetail1(data).then(res => {
|
||||
if (res.result == '0') {
|
||||
if (res.orderDTO.universalRiskNotifyDTO) {
|
||||
if (res.orderDTO.universalRiskNotifyDTO.isUniversalRiskNotifyShowPoint == 1) {
|
||||
this.pageTitle.forEach(item => {
|
||||
if (item.pageNo == 7.1) {
|
||||
if(res.orderDTO.universalRiskNotifyDTO){
|
||||
if(res.orderDTO.universalRiskNotifyDTO.isUniversalRiskNotifyShowPoint == 1){
|
||||
this.pageTitle.forEach(item=>{
|
||||
if(item.pageNo == 7.1){
|
||||
item.show = true
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
// if (res.orderDTO.riskEvaluationDTO) {
|
||||
// if (res.orderDTO.riskEvaluationDTO.isShowEvaluationPoint == 1) {
|
||||
// this.pageTitle.forEach(item => {
|
||||
// if (item.pageNo == 6) {
|
||||
// item.show = true
|
||||
// }
|
||||
// if (item.pageNo == 7) {
|
||||
// item.show = true
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
if (this.$route.query.orderNo) {
|
||||
this.projectName = res.orderDTO.ebizOrderGbcRelDTO.projectName
|
||||
if(res.orderDTO.riskEvaluationDTO){
|
||||
if(res.orderDTO.riskEvaluationDTO.isShowEvaluationPoint == 1){
|
||||
this.pageTitle.forEach(item=>{
|
||||
if(item.pageNo == 6){
|
||||
item.show = true
|
||||
}
|
||||
if(item.pageNo == 7){
|
||||
item.show = true
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
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 来控制是否可跳到指定页面
|
||||
if (localStorage.salePageFlag == '-10' && pageIndex != 10) {
|
||||
this.$toast('已到达签名确认流程,不可以回到前面的流程')
|
||||
}
|
||||
if (Number(localStorage.salePageFlag) < Number(pageIndex)) {
|
||||
if (process.env.NODE_ENV !== 'development') {
|
||||
return
|
||||
}
|
||||
}
|
||||
if (Number(localStorage.salePageFlag) < Number(pageIndex)) return
|
||||
switch (pageIndex) {
|
||||
case 1: //跳到投保人页面
|
||||
url = `/sale/insuredInfo?edit=1&salePageFlag=${pageIndex}&orderNo=` + this.$route.query.orderNo
|
||||
@@ -314,7 +283,7 @@ export default {
|
||||
this.$el.querySelector('#active').scrollIntoView(true)
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@@ -127,7 +127,7 @@ export default {
|
||||
num++
|
||||
await this.getRecognitionUrl(val, num)
|
||||
if (this.requestId && this.bizToken) {
|
||||
await this.getRecognitionResult(this.requestId, this.bizToken, JSON.parse(localStorage['orderNo']))
|
||||
await this.getRecognitionResult(this.requestId, this.bizToken)
|
||||
} else {
|
||||
return
|
||||
}
|
||||
@@ -155,9 +155,9 @@ export default {
|
||||
)
|
||||
})
|
||||
},
|
||||
getRecognitionResult(requestId, bizToken, orderNo) {
|
||||
getRecognitionResult(requestId, bizToken) {
|
||||
return new Promise((resolve, reject) => {
|
||||
getRecognitionResult({ requestId, bizToken, orderNo }).then(
|
||||
getRecognitionResult({ requestId, bizToken }).then(
|
||||
res => {
|
||||
console.log('getRecognitionResult', res)
|
||||
if (res.result == '0') {
|
||||
|
||||
@@ -6,8 +6,6 @@
|
||||
* @Description:
|
||||
* @FilePath: \ebiz-h5\src\config\index.js
|
||||
*/
|
||||
import YB_agentSign from "../router/ebiz/YB_agentSign";
|
||||
|
||||
/**
|
||||
* 配置编译环境和线上环境之间的切换
|
||||
* 默认三套环境,可以增添
|
||||
@@ -15,7 +13,7 @@ import YB_agentSign from "../router/ebiz/YB_agentSign";
|
||||
*
|
||||
*/
|
||||
|
||||
let apiDomain, imgDomain, assetsUrl, mainUrl, payUrl, zssqUrl, REQ_PWD, CACHE_ENCRYP, API_VERSION, YB_agenturl, assetsUpUrl, YB_APP // 保融支付的收银台服务地址
|
||||
let apiDomain, imgDomain, assetsUrl, mainUrl, payUrl, zssqUrl, REQ_PWD, CACHE_ENCRYP, API_VERSION, assetsUpUrl, YB_APP // 保融支付的收银台服务地址
|
||||
function getSearchString (key) {
|
||||
var str = window.location.href.split('?')[1]
|
||||
str = str.substring(1, str.length) // 获取URL中?之后的字符(去掉第一位的问号)
|
||||
@@ -29,29 +27,29 @@ function getSearchString (key) {
|
||||
}
|
||||
return obj[key]
|
||||
}
|
||||
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)
|
||||
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)
|
||||
switch (process.env.VUE_APP_FLAG) {
|
||||
case 'dev':
|
||||
apiDomain = 'https://iagentsales-test2.e-guofu.com:5200/api/' + apiVersion // 国富api ///api/v1
|
||||
@@ -70,7 +68,6 @@ switch (process.env.VUE_APP_FLAG) {
|
||||
// YB_APP = 'http://10.10.100.98:7001'
|
||||
// YB_APP = 'https://iagentsales-test2.e-guofu.com:5200/api/v1'
|
||||
YB_APP = 'https://iagentsales-test2.e-guofu.com:5200/api/' + apiVersion
|
||||
YB_agenturl ='https://iagentsales-test2.e-guofu.com:443'
|
||||
API_VERSION = apiVersion
|
||||
break
|
||||
case 'uat':
|
||||
@@ -94,7 +91,6 @@ switch (process.env.VUE_APP_FLAG) {
|
||||
// 上传影像地址 挂载共享盘 地址
|
||||
assetsUpUrl = 'https://iagentsales.e-guofu.com'
|
||||
mainUrl = 'https://iagentsales.e-guofu.com'
|
||||
YB_agenturl = 'https://iagentsales.e-guofu.com'
|
||||
payUrl = 'https://uns3.e-guofu.com/s3-modules-gateway/embed/gateway.action'
|
||||
zssqUrl = ''
|
||||
REQ_PWD = '41424344454631323334353637383930'
|
||||
@@ -134,7 +130,6 @@ export default {
|
||||
assetsUpUrl,
|
||||
mainUrl,
|
||||
payUrl,
|
||||
YB_agenturl,
|
||||
zssqUrl, //知识社区地址
|
||||
REQ_PWD, //报文加密密码
|
||||
CACHE_ENCRYP, //缓存加密密码
|
||||
|
||||
42
src/main.js
@@ -38,16 +38,8 @@ import {
|
||||
PullRefresh,
|
||||
List,
|
||||
Image as VanImage,
|
||||
Sticky,
|
||||
Radio,
|
||||
RadioGroup,
|
||||
Checkbox,
|
||||
CheckboxGroup,
|
||||
Collapse,
|
||||
CollapseItem,
|
||||
Sticky
|
||||
} from 'vant'
|
||||
;[Collapse, CollapseItem, RadioGroup, Radio].forEach(component => Vue.use(component))
|
||||
|
||||
Vue.use(Cell)
|
||||
Vue.use(CellGroup)
|
||||
Vue.use(DatetimePicker)
|
||||
@@ -73,13 +65,7 @@ Vue.use(PullRefresh)
|
||||
Vue.use(List)
|
||||
Vue.use(VanImage)
|
||||
Vue.use(Sticky)
|
||||
Vue.use(Checkbox)
|
||||
Vue.use(CheckboxGroup)
|
||||
Vue.use(animated)
|
||||
Vue.use(Radio)
|
||||
Vue.use(RadioGroup)
|
||||
Vue.use(Checkbox)
|
||||
Vue.use(CheckboxGroup)
|
||||
|
||||
Vue.prototype.$assetsUrl = config.assetsUrl
|
||||
Vue.prototype.$assetsUpUrl = config.assetsUpUrl
|
||||
@@ -89,6 +75,7 @@ Vue.prototype.$MD5 = md5
|
||||
Vue.prototype.$CryptoJs = cryptoJs
|
||||
Vue.prototype.$CacheUtils = cacheUtils
|
||||
|
||||
|
||||
// 全局 防重复点击
|
||||
Vue.directive('no-more-click', noMoreClick)
|
||||
//解决ios移动端input调软键盘问题
|
||||
@@ -144,37 +131,22 @@ Object.keys(Filters).forEach(function(k) {
|
||||
|
||||
//权限控制
|
||||
import { permission } from '@/assets/js/utils/permission'
|
||||
import { newProducts } from '@/api/ebiz/sale/sale'
|
||||
|
||||
permission()
|
||||
|
||||
//ios点击300毫秒时延
|
||||
FastClick.attach(document.body)
|
||||
// 监听input弹窗滚动到可视区域
|
||||
window.addEventListener('resize', function() {
|
||||
if (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA') {
|
||||
window.setTimeout(function() {
|
||||
window.addEventListener('resize', function () {
|
||||
if (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA') {
|
||||
window.setTimeout(function () {
|
||||
document.activeElement.scrollIntoViewIfNeeded()
|
||||
}, 0)
|
||||
}
|
||||
})
|
||||
|
||||
Vue.config.productionTip = false
|
||||
export const vm = new Vue({
|
||||
new Vue({
|
||||
router,
|
||||
store,
|
||||
render: h => h(App)
|
||||
})
|
||||
fetchNewSaleProducts()
|
||||
function fetchNewSaleProducts() {
|
||||
newProducts()
|
||||
.then(({ content, result }) => {
|
||||
if (result === '0') localStorage.setItem('newProducts', JSON.stringify(content))
|
||||
else return new Error('获取最新产品列表信息错误')
|
||||
|
||||
if (window.fetchNewProductstimer) clearTimeout(window.fetchNewProductstimer)
|
||||
else vm.$mount('#app')
|
||||
window.fetchNewProductstimer = setTimeout(fetchNewSaleProducts, 1000000)
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
}).$mount('#app')
|
||||
|
||||
@@ -1,64 +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')
|
||||
const GBC_InsuredInfo = () => import('@/views/GBC/InsuredInfo')
|
||||
const GBC_submitResult = () => import('@/views/GBC/submitResult')
|
||||
|
||||
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
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/GBC/InsuredInfo',
|
||||
name: 'GBC_InsuredInfo',
|
||||
component: GBC_InsuredInfo,
|
||||
meta: {
|
||||
title: '信息录入',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/GBC/submitResult',
|
||||
name: 'GBC_submitResult',
|
||||
component: GBC_submitResult,
|
||||
meta: {
|
||||
title: '提交结果',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
]
|
||||
@@ -1,22 +0,0 @@
|
||||
//电子投保 定义相关组件
|
||||
const step1 = () => import('@/views/ebiz/YB_agentSign/step1')
|
||||
const step2 = () => import('@/views/ebiz/YB_agentSign/step2')
|
||||
let riskName = localStorage.riskName
|
||||
export default [
|
||||
{
|
||||
path: '/YB_agentSign/step1',
|
||||
name: 'step1',
|
||||
component: step1,
|
||||
meta: {
|
||||
title: '银保代理人电子化合同签署'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/YB_agentSign/step2',
|
||||
name: 'step2',
|
||||
component: step2,
|
||||
meta: {
|
||||
title: '银保代理人电子化合同签署'
|
||||
}
|
||||
},
|
||||
]
|
||||
@@ -229,7 +229,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/agentEenter/ShowPDF',
|
||||
name: 'agentEenterShowPDF',
|
||||
name: 'ShowPDF',
|
||||
component: ShowPDF,
|
||||
meta: {
|
||||
title: '个险销售人员代理合同',
|
||||
|
||||
@@ -1,32 +1,14 @@
|
||||
const billingDetail = () => import('@/views/ebiz/billingDetail/billingDetail')
|
||||
const generateImg = () => import('@/views/ebiz/generateImg/generateImg')
|
||||
const policyDetails = () => import('@/views/ebiz/billingDetail/policyDetails')
|
||||
|
||||
|
||||
export default [
|
||||
{
|
||||
path: '/billingDetail',
|
||||
name: 'billingDetail',
|
||||
component: billingDetail,
|
||||
meta: {
|
||||
title: '出单详情',
|
||||
index: 1
|
||||
{
|
||||
path: '/billingDetail',
|
||||
name: 'billingDetail',
|
||||
component: billingDetail,
|
||||
meta: {
|
||||
title: '出单详情',
|
||||
index: 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/generateImg',
|
||||
name: 'generateImg',
|
||||
component: generateImg,
|
||||
meta: {
|
||||
title: '业绩贺报'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/policyDetails',
|
||||
name: 'policyDetails',
|
||||
component: policyDetails,
|
||||
meta: {
|
||||
title: '保单详情',
|
||||
}
|
||||
},
|
||||
]
|
||||
]
|
||||
@@ -57,7 +57,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/cardList/payResult',
|
||||
name: 'cardListPayResult',
|
||||
name: 'payResult',
|
||||
component: payResult,
|
||||
meta: {
|
||||
title: '支付结果',
|
||||
@@ -84,7 +84,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/cardList/ShowPDF',
|
||||
name: 'cardListShowPDF',
|
||||
name: 'ShowPDF',
|
||||
component: ShowPDF,
|
||||
meta: {
|
||||
title: '',
|
||||
@@ -111,7 +111,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/cardList/SignatureConfirmation',
|
||||
name: 'cardListSignatureConfirmation',
|
||||
name: 'SignatureConfirmation',
|
||||
component: SignatureConfirmation,
|
||||
meta: {
|
||||
title: '阅读确认',
|
||||
@@ -120,7 +120,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/cardList/Result',
|
||||
name: 'cardListResult',
|
||||
name: 'Result',
|
||||
component: Result,
|
||||
meta: {
|
||||
title: '核保结果',
|
||||
|
||||
@@ -93,7 +93,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/claims/insuredInfo',
|
||||
name: 'claimsInsuredInfo',
|
||||
name: 'insuredInfo',
|
||||
component: insuredInfo,
|
||||
meta: {
|
||||
title: '被保人信息',
|
||||
@@ -120,7 +120,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/claims/signatureConfirmation',
|
||||
name: 'claimsSignatureConfirmation',
|
||||
name: 'signatureConfirmation',
|
||||
component: signatureConfirmation,
|
||||
meta: {
|
||||
title: '签字确认',
|
||||
|
||||
@@ -5,9 +5,6 @@ const addRiskList = () => import('@/views/ebiz/common/AddRiskList')
|
||||
const calculatePremium = () => import('@/views/ebiz/common/CalculatePremium')
|
||||
const defalut = () => import('@/views/ebiz/common/Defalut')
|
||||
const companyIntroduce = () => import('@/views/ebiz/common/CompanyIntroduce')
|
||||
const evaluateResult = () => import('@/views/ebiz/common/EvaluateResult')
|
||||
const productEvaResult = () => import('@/views/ebiz/common/productEvaResult')
|
||||
|
||||
|
||||
export default [
|
||||
{
|
||||
@@ -69,23 +66,5 @@ export default [
|
||||
title: '关于国富',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/common/evaluateResult',
|
||||
name: 'EvaluateResult',
|
||||
component: evaluateResult,
|
||||
meta: {
|
||||
title: '评估结果',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/common/productEvaResult',
|
||||
name: 'productEvaResult',
|
||||
component: productEvaResult,
|
||||
meta: {
|
||||
title: '评估结果',
|
||||
index: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -50,7 +50,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/eqiVisit/historyDetail/:id',
|
||||
name: 'VisitHistoryWithID',
|
||||
name: 'VisitHistory',
|
||||
component: HistoryDetail,
|
||||
props: true,
|
||||
meta: {
|
||||
|
||||
@@ -20,10 +20,10 @@ const spreadParams = function(route) {
|
||||
export default [
|
||||
{
|
||||
path: '/goodStart/performanceReport',
|
||||
name: 'performanceReport',
|
||||
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: '开门红实时贺报'
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
//健康险续保 定义相关组件
|
||||
const healthInsuranceRenewalList = () => import('@/views/ebiz/healthInsuranceRenewal/list')
|
||||
const healthInsuranceRenewalDetail = () => import('@/views/ebiz/healthInsuranceRenewal/detail')
|
||||
export default [
|
||||
{
|
||||
path: '/healthInsuranceRenewal/list',
|
||||
name: 'healthInsuranceRenewalList',
|
||||
component: healthInsuranceRenewalList,
|
||||
meta: {
|
||||
title: '健康险续保清单',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/healthInsuranceRenewal/detail',
|
||||
name: 'healthInsuranceRenewalDetail',
|
||||
component: healthInsuranceRenewalDetail,
|
||||
meta: {
|
||||
title: '保单详情',
|
||||
index: 1
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -2,7 +2,6 @@
|
||||
import proposal from './proposal'
|
||||
import question from './question'
|
||||
import sale from './sale'
|
||||
import YB_agentSign from './YB_agentSign'
|
||||
import customer from './customer'
|
||||
import my from './my'
|
||||
import serve from './serve'
|
||||
@@ -49,19 +48,9 @@ import allowance from './allowance'
|
||||
import cooperativeUnit from './cooperativeUnit'
|
||||
// YB_APP
|
||||
import YB_APP from '../YB_APP/index'
|
||||
// GBC
|
||||
import GBC from '../GBC/index'
|
||||
//健康险续保
|
||||
import healthInsuranceRenewal from './healthInsuranceRenewal'
|
||||
// // 电子投保流程优化
|
||||
import saleFlowImprove from './saleFlowImprove'
|
||||
// // 产品流程优化
|
||||
import {improveProduct as productFlowImprove} from './productFlowImprove'
|
||||
|
||||
export default [
|
||||
...proposal,
|
||||
...sale,
|
||||
...YB_agentSign,
|
||||
...customer,
|
||||
...my,
|
||||
...serve,
|
||||
@@ -95,9 +84,5 @@ export default [
|
||||
...laurelClub,
|
||||
...allowance,
|
||||
...cooperativeUnit,
|
||||
...YB_APP,
|
||||
...GBC,
|
||||
...healthInsuranceRenewal,
|
||||
...saleFlowImprove,
|
||||
...productFlowImprove
|
||||
...YB_APP
|
||||
] //根据需要进行删减
|
||||
|
||||
@@ -83,7 +83,7 @@ export default [
|
||||
{
|
||||
// 签名确认
|
||||
path: '/insureAgain/SignatureConfirmation',
|
||||
name: 'insureAgainSignatureConfirmation',
|
||||
name: 'SignatureConfirmation',
|
||||
component: SignatureConfirmation,
|
||||
meta: {
|
||||
title: '签名确认'
|
||||
@@ -110,7 +110,7 @@ export default [
|
||||
{
|
||||
// 支付失败
|
||||
path: '/insureAgain/payResultFail',
|
||||
name: 'insureAgainPayResultFail',
|
||||
name: 'payResultFail',
|
||||
component: payResultFail,
|
||||
meta: {
|
||||
title: '支付失败'
|
||||
@@ -174,7 +174,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/insureAgain/Result',
|
||||
name: 'insureAgainResult',
|
||||
name: 'Result',
|
||||
component: Result,
|
||||
meta: {
|
||||
title: '核保结果'
|
||||
|
||||
@@ -244,7 +244,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/preserve/wt/imageUpload',
|
||||
name: 'WtImageUpload',
|
||||
name: 'CtImageUpload',
|
||||
component: WtImageUpload,
|
||||
meta: {
|
||||
title: '影像资料上传',
|
||||
|
||||
@@ -18,26 +18,6 @@ export default [
|
||||
path: '/product/productDetail/:productDetailCode',
|
||||
name: 'productDetail',
|
||||
component: productDetail,
|
||||
async beforeEnter(to, from, next) {
|
||||
const newPrd = localStorage.getItem('newProducts')
|
||||
if (newPrd) {
|
||||
try {
|
||||
/**@type Array<string>*/
|
||||
const newProducts = JSON.parse(newPrd)
|
||||
if (newProducts.includes(to.params.productDetailCode)) {
|
||||
next({
|
||||
name: 'fiProductDetail',
|
||||
params: {
|
||||
productDetailCode: to.params.productDetailCode
|
||||
}
|
||||
})
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('处理新产品路由过程中出现错误\n', e)
|
||||
}
|
||||
}
|
||||
next()
|
||||
},
|
||||
meta: {
|
||||
title: '产品详情',
|
||||
index: 2
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
//产品列表 定义相关组件
|
||||
const productDocument = () => import('@/views/ebiz/product/ProductDocument')
|
||||
const homeProduct = () => import('@/views/ebiz/product/HomeProduct')
|
||||
|
||||
/**@type {import("vue-router").RouteRecord}*/
|
||||
export const improveProduct = [
|
||||
{
|
||||
path: '/flow-improve/product/productList',
|
||||
name: 'fiProductList',
|
||||
component: () =>import('@/views/ebiz/productFlowImprove/ProductList.vue'),
|
||||
meta: {
|
||||
title: '产品列表',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/product/productDetail/:productDetailCode',
|
||||
name: 'fiProductDetail',
|
||||
component: () => import('@/views/ebiz/productFlowImprove/ProductDetail.vue'),
|
||||
meta: {
|
||||
title: '产品详情',
|
||||
index: 2
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/product/productDocument',
|
||||
name: 'fiProductDocument',
|
||||
component: productDocument,
|
||||
meta: {
|
||||
title: '产品资料',
|
||||
index: 3
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/product/homeProduct',
|
||||
name: 'fiHomeProduct',
|
||||
component: homeProduct,
|
||||
meta: {
|
||||
title: '首页产品',
|
||||
index: 4
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -21,7 +21,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/questions/result/:result',
|
||||
name: 'questionsResult',
|
||||
name: 'result',
|
||||
component: g('Result'),
|
||||
meta: {
|
||||
title: '提交结果',
|
||||
|
||||
@@ -18,7 +18,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/renewalManage/customerList',
|
||||
name: 'renewalCustomerList',
|
||||
name: 'customerList',
|
||||
component: customerList,
|
||||
meta: {
|
||||
title: '客户清单',
|
||||
@@ -27,7 +27,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/renewalManage/policyList',
|
||||
name: 'renewalPolicyList',
|
||||
name: 'policyList',
|
||||
component: policyList,
|
||||
meta: {
|
||||
title: '保单列表',
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
//电子投保 定义相关组件
|
||||
const list = () => import('@/views/ebiz/sale/List')
|
||||
const insuredPerson = () => import('@/views/ebiz/sale/InsuredPerson')
|
||||
const insuredInfo = () => import('@/views/ebiz/sale/InsuredInfo.vue')
|
||||
const insuredInfo = () => import('@/views/ebiz/sale/InsuredInfo')
|
||||
const result = () => import('@/views/ebiz/sale/Result')
|
||||
const beneficiary = () => import('@/views/ebiz/sale/Beneficiary')
|
||||
const attachmentManagement = () => import('@/views/ebiz/sale/AttachmentManagement')
|
||||
|
||||
const addBeneficiaryInfo = () => import('@/views/ebiz/sale/AddBeneficiaryInfo')
|
||||
|
||||
const signatureConfirmation = () => import('@/views/ebiz/sale/SignatureConfirmation')
|
||||
const notifyingMessage = () => import('@/views/ebiz/sale/NotifyingMessage')
|
||||
const universalRiskNotifyingMessage = () => import('@/views/ebiz/sale/universalRiskNotifyingMessage')
|
||||
@@ -13,7 +15,6 @@ const answerPage = () => import('@/views/ebiz/sale/answerPage')
|
||||
const answerSuccess = () => import('@/views/ebiz/sale/answerSuccess')
|
||||
const accountInformation = () => import('@/views/ebiz/sale/AccountInformation')
|
||||
const insuranceInformation = () => import('@/views/ebiz/sale/InsuranceInformation')
|
||||
const insuranceInformation_0081 = () => import('@/views/ebiz/sale/InsuranceInformation_0081')
|
||||
const insuranceClauses = () => import('@/views/ebiz/sale/insuranceClauses')
|
||||
const insuranceTip = () => import('@/views/ebiz/sale/InsuranceTip')
|
||||
const universalRiskNotifyingMessageTip = () => import('@/views/ebiz/sale/universalRiskNotifyingMessageTip')
|
||||
@@ -35,14 +36,8 @@ 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')
|
||||
const questionEvaluate = () => import('@/views/ebiz/sale/questionEvaluate')
|
||||
const productEvaluate = () => import('@/views/ebiz/sale/productEvaluate')
|
||||
|
||||
|
||||
let riskName = localStorage.riskName
|
||||
/**@type {import("vue-router").RouteRecord[]} */
|
||||
console.log('sale/riskName==', riskName)
|
||||
export default [
|
||||
{
|
||||
path: '/sale/list',
|
||||
@@ -81,7 +76,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/sale/result',
|
||||
name: 'saleResult',
|
||||
name: 'result',
|
||||
component: result,
|
||||
meta: {
|
||||
title: '核保结果',
|
||||
@@ -115,7 +110,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: '/sale/signatureConfirmation',
|
||||
name: 'saleSignatureConfirmation',
|
||||
name: 'signatureConfirmation',
|
||||
component: signatureConfirmation,
|
||||
meta: {
|
||||
title: '签名确认'
|
||||
@@ -169,14 +164,6 @@ export default [
|
||||
title: '投保须知'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/sale/insuranceInformation_0081',
|
||||
name: 'insuranceInformation_0081',
|
||||
component: insuranceInformation_0081,
|
||||
meta: {
|
||||
title: '投保须知'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/sale/insuranceClauses',
|
||||
name: 'insuranceClauses',
|
||||
@@ -332,37 +319,5 @@ export default [
|
||||
meta: {
|
||||
title: '国富人寿投保风险承受能力测评表'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/sale/readDocuments',
|
||||
name: 'readDocuments',
|
||||
component: readDocuments,
|
||||
meta: {
|
||||
title: '阅读文件'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/sale/signDocuments',
|
||||
name: 'signDocuments',
|
||||
component: signDocuments,
|
||||
meta: {
|
||||
title: '签名页面'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/sale/questionEvaluate',
|
||||
name: 'questionEvaluate',
|
||||
component: questionEvaluate,
|
||||
meta: {
|
||||
title: '保险产品适当性评估问卷'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/sale/productEvaluate',
|
||||
name: 'productEvaluate',
|
||||
component: productEvaluate,
|
||||
meta: {
|
||||
title: '保险产品适当性评估问卷'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,372 +0,0 @@
|
||||
//电子投保 定义相关组件
|
||||
const list = () => import('@/views/ebiz/sale/List')
|
||||
const insuredPerson = () => import('@/views/ebiz/sale/InsuredPerson')
|
||||
const insuredInfo = () => import('@/views/ebiz/sale/InsuredInfo.vue')
|
||||
const result = () => import('@/views/ebiz/sale/Result')
|
||||
const beneficiary = () => import('@/views/ebiz/sale/Beneficiary')
|
||||
const attachmentManagement = () => import('@/views/ebiz/sale/AttachmentManagement')
|
||||
const addBeneficiaryInfo = () => import('@/views/ebiz/sale/AddBeneficiaryInfo')
|
||||
const notifyingMessage = () => import('@/views/ebiz/sale/NotifyingMessage')
|
||||
const universalRiskNotifyingMessage = () => import('@/views/ebiz/sale/universalRiskNotifyingMessage')
|
||||
const answerPage = () => import('@/views/ebiz/sale/answerPage')
|
||||
const answerSuccess = () => import('@/views/ebiz/sale/answerSuccess')
|
||||
const accountInformation = () => import('@/views/ebiz/sale/AccountInformation')
|
||||
const insuranceInformation = () => import('@/views/ebiz/sale/InsuranceInformation')
|
||||
const insuranceInformation_0081 = () => import('@/views/ebiz/sale/InsuranceInformation_0081')
|
||||
const insuranceClauses = () => import('@/views/ebiz/sale/insuranceClauses')
|
||||
const insuranceTip = () => import('@/views/ebiz/sale/InsuranceTip')
|
||||
const universalRiskNotifyingMessageTip = () => import('@/views/ebiz/sale/universalRiskNotifyingMessageTip')
|
||||
const InsuranceRiskReminder = () => import('@/views/ebiz/sale/InsuranceRiskReminder')
|
||||
const signatureOfElectronic = () => import('@/views/ebiz/sale/SignatureOfElectronic')
|
||||
const PersonalInformation = () => import('@/views/ebiz/sale/PersonalInformation')
|
||||
const AnswerTip = () => import('@/views/ebiz/sale/AnswerTip')
|
||||
const payResult = () => import('@/views/ebiz/sale/PayResult')
|
||||
const cardScan = () => import('@/views/ebiz/sale/CardScan')
|
||||
const identitycardScan = () => import('@/views/ebiz/sale/identityCardScan')
|
||||
const payMent = () => import('@/views/ebiz/sale/PayMent')
|
||||
const backShow = () => import('@/views/ebiz/sale/BackShow')
|
||||
const Test = () => import('@/views/ebiz/sale/test')
|
||||
const detail = () => import('@/views/ebiz/sale/Detail')
|
||||
const productTip = () => import('@/views/ebiz/sale/productTip')
|
||||
const avoidDutyTip = () => import('@/views/ebiz/sale/AvoidDutyTip')
|
||||
const doubleRecordTip = () => import('@/views/ebiz/sale/DoubleRecordTip')
|
||||
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 insureNotifyReplenishImage = () => import('@/views/ebiz/saleFlowProImprove/insureNotifyReplenishImage')
|
||||
const signatureConfirmation = () => import('@/views/ebiz/saleFlowProImprove/SignatureConfirmation')
|
||||
const readDocuments = () => import('@/views/ebiz/saleFlowProImprove/readDocuments')
|
||||
const signDocuments = () => import('@/views/ebiz/saleFlowProImprove/signDocuments')
|
||||
|
||||
let riskName = localStorage.riskName
|
||||
// console.log('sale/riskName==', riskName)
|
||||
/**@type {import("vue-router").RouteRecord[]} */
|
||||
export default [
|
||||
{
|
||||
path: '/flow-improve/sale/insuranceApplicationFlow',
|
||||
name: 'flowImproveSaleInsuranceApplicationFlow',
|
||||
component: () => import('@/views/ebiz/saleFlowProImprove/InsuranceApplicationFlow.vue'),
|
||||
meta: {
|
||||
title: '保险申请流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/list',
|
||||
name: 'flowImproveSaleList',
|
||||
component: list,
|
||||
meta: {
|
||||
title: '电子投保单列表',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/detail',
|
||||
name: 'flowImproveSaleDetail',
|
||||
component: detail,
|
||||
meta: {
|
||||
title: '电子投保单详情'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/insuredInfo',
|
||||
name: 'flowImproveSaleInsuredInfo',
|
||||
component: insuredInfo,
|
||||
meta: {
|
||||
title: '投保人信息',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/insuredPerson',
|
||||
name: 'flowImproveSaleInsuredPerson',
|
||||
component: insuredPerson,
|
||||
meta: {
|
||||
title: '被保险人信息',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/result',
|
||||
name: 'flowImproveSaleResult',
|
||||
component: result,
|
||||
meta: {
|
||||
title: '核保结果',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/beneficiary',
|
||||
name: 'flowImproveSaleBeneficiary',
|
||||
component: beneficiary,
|
||||
meta: {
|
||||
title: '受益人',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/attachmentManagement',
|
||||
name: 'flowImproveSaleAttachmentManagement',
|
||||
component: attachmentManagement,
|
||||
meta: {
|
||||
title: '附件管理'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/addBeneficiaryInfo',
|
||||
name: 'flowImproveSaleAddBeneficiaryInfo',
|
||||
component: addBeneficiaryInfo,
|
||||
meta: {
|
||||
title: '指定受益人信息'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/insureNotifyReplenishImage',
|
||||
name: 'flowImproveSaleInsureNotifyReplenishImage',
|
||||
component: insureNotifyReplenishImage,
|
||||
meta: {
|
||||
title: '投保告知及补充影像'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/signatureConfirmation',
|
||||
name: 'flowImproveSaleSignatureConfirmation',
|
||||
component: signatureConfirmation,
|
||||
meta: {
|
||||
title: '签名确认'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/notifyingMessage',
|
||||
name: 'flowImproveSaleNotifyingMessage',
|
||||
component: notifyingMessage,
|
||||
meta: {
|
||||
title: '告知信息'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/universalRiskNotifyingMessage',
|
||||
name: 'flowImproveSaleUniversalRiskNotifyingMessage',
|
||||
component: universalRiskNotifyingMessage,
|
||||
meta: {
|
||||
title: '风险告知'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/answerPage',
|
||||
name: 'flowImproveSaleAnswerPage',
|
||||
component: answerPage,
|
||||
meta: {
|
||||
title: '风险测评'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/answerSuccess',
|
||||
name: 'flowImproveSaleAnswerSuccess',
|
||||
component: answerSuccess,
|
||||
meta: {
|
||||
title: '风险测评结果'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/accountInformation',
|
||||
name: 'flowImproveSaleAccountInformation',
|
||||
component: accountInformation,
|
||||
meta: {
|
||||
title: '账户信息'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/insuranceInformation',
|
||||
name: 'flowImproveSaleInsuranceInformation',
|
||||
component: insuranceInformation,
|
||||
meta: {
|
||||
title: '投保须知'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/insuranceInformation_0081',
|
||||
name: 'flowImproveSaleInsuranceInformation0081',
|
||||
component: insuranceInformation_0081,
|
||||
meta: {
|
||||
title: '投保须知'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/insuranceClauses',
|
||||
name: 'flowImproveSaleInsuranceClauses',
|
||||
component: insuranceClauses,
|
||||
meta: {
|
||||
title: '保险条款'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/insuranceTip',
|
||||
name: 'flowImproveSaleInsuranceTip',
|
||||
component: insuranceTip,
|
||||
meta: {
|
||||
title: '阅读人身保险投保提示书'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/universalRiskNotifyingMessageTip',
|
||||
name: 'flowImproveSaleUniversalRiskNotifyingMessageTip',
|
||||
component: universalRiskNotifyingMessageTip,
|
||||
meta: {
|
||||
title: '万能型人身保险产品风险告知问卷'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/insuranceRiskReminder',
|
||||
name: 'flowImproveSaleInsuranceRiskReminder',
|
||||
component: InsuranceRiskReminder,
|
||||
meta: {
|
||||
title: '投保风险提示书'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/productTip',
|
||||
name: 'flowImproveSaleProductTip',
|
||||
component: productTip,
|
||||
meta: {
|
||||
title: `${riskName}产品说明书`
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/signatureOfElectronic',
|
||||
name: 'flowImproveSaleSignatureOfElectronic',
|
||||
component: signatureOfElectronic,
|
||||
meta: {
|
||||
title: '电子投保单签名'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/avoidDutyTip',
|
||||
name: 'flowImproveSaleAvoidDutyTip',
|
||||
component: avoidDutyTip,
|
||||
meta: {
|
||||
title: '免除保险人责任条款说明书'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/apointValidDoc',
|
||||
name: 'flowImproveSaleApointValidDoc',
|
||||
component: apointValidDoc,
|
||||
meta: {
|
||||
title: '免除保险人责任条款说明书'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/doubleRecordTip',
|
||||
name: 'flowImproveSaleDoubleRecordTip',
|
||||
component: doubleRecordTip,
|
||||
meta: {
|
||||
title: '保险销售行为双录说明'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/payMent',
|
||||
name: 'flowImproveSalePayMent',
|
||||
component: payMent,
|
||||
meta: {
|
||||
title: '支付'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/payResult',
|
||||
name: 'flowImproveSalePayResult',
|
||||
component: payResult,
|
||||
meta: {
|
||||
title: '支付结果'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/cardScan',
|
||||
name: 'flowImproveSaleCardScan',
|
||||
component: cardScan,
|
||||
meta: {
|
||||
title: '银行卡扫描'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/identitycardScan',
|
||||
name: 'flowImproveSaleIdentitycardScan',
|
||||
component: identitycardScan,
|
||||
meta: {
|
||||
title: '身份证扫描'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/backShow',
|
||||
name: 'flowImproveSaleBackShow',
|
||||
component: backShow,
|
||||
meta: {
|
||||
title: '回显页面'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/test',
|
||||
name: 'flowImproveSaleTest',
|
||||
component: Test,
|
||||
meta: {
|
||||
title: '测试页面'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/payResultFail',
|
||||
name: 'flowImproveSalePayResultFail',
|
||||
component: PayResultFail,
|
||||
meta: {
|
||||
title: '支付结果'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/shortPeriodProduct',
|
||||
name: 'flowImproveSaleShortPeriodProduct',
|
||||
component: shortPeriodProduct,
|
||||
meta: {
|
||||
title: '国富人寿短期健康险投保须知'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/commitmentSelfProtect',
|
||||
name: 'flowImproveSaleCommitmentSelfProtect',
|
||||
component: commitmentSelfProtect,
|
||||
meta: {
|
||||
title: '国富人寿自保件承诺书'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/personalInformation',
|
||||
name: 'flowImproveSalePersonalInformation',
|
||||
component: PersonalInformation,
|
||||
meta: {
|
||||
title: '个人信息使用授权'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/answerTip',
|
||||
name: 'flowImproveSaleAnswerTip',
|
||||
component: AnswerTip,
|
||||
meta: {
|
||||
title: '国富人寿投保风险承受能力测评表'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/readDocuments',
|
||||
name: 'flowImproveSaleReadDocuments',
|
||||
component: readDocuments,
|
||||
meta: {
|
||||
title: '阅读文件'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/flow-improve/sale/signDocuments',
|
||||
name: 'flowImproveSaleSignDocuments',
|
||||
component: signDocuments,
|
||||
meta: {
|
||||
title: '签名页面'
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -31,8 +31,8 @@ export default new Vuex.Store({
|
||||
YBidNo: '', //银保代理人电子化合同签署证件号码
|
||||
YBname: '', //银保代理人电子化合同签署姓名
|
||||
YBuuid: '', //银保代理人电子化合同签署代理人uuid
|
||||
appntSign: '', //投保人阅读签署文件
|
||||
insuredSign: '', //被保人阅读签署文件
|
||||
uploadImgType: '',
|
||||
uploadImgOrderNo: '',
|
||||
},
|
||||
mutations: {
|
||||
setOrderDetail (state, data) {
|
||||
@@ -80,8 +80,11 @@ export default new Vuex.Store({
|
||||
state.pcList = val
|
||||
},
|
||||
//更新 风险测评是否显示状态
|
||||
updateAnswerType (state, val) {
|
||||
state.answerType = val
|
||||
updateUploadImgType (state, val) {
|
||||
state.uploadImgType = val
|
||||
},
|
||||
updateUploadImgOrderNo (state, val) {
|
||||
state.uploadImgOrderNo = val
|
||||
},
|
||||
//更新 银保代理人电子化合同签署证件号码
|
||||
updateYBidNo (state, val) {
|
||||
@@ -95,14 +98,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) {
|
||||
@@ -129,6 +124,12 @@ export default new Vuex.Store({
|
||||
getAnswerType (state) {
|
||||
return state.answerType
|
||||
},
|
||||
getUploadImgType (state) {
|
||||
return state.uploadImgType
|
||||
},
|
||||
getUploadImgOrderNo (state) {
|
||||
return state.uploadImgOrderNo
|
||||
},
|
||||
getYBidNo (state) {
|
||||
return state.YBidNo
|
||||
},
|
||||
@@ -138,12 +139,6 @@ export default new Vuex.Store({
|
||||
getYBuuid (state) {
|
||||
return state.YBuuid
|
||||
},
|
||||
getappntSign (state) {
|
||||
return state.appntSign
|
||||
},
|
||||
getinsuredSign (state) {
|
||||
return state.insuredSign
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -1,409 +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: 2px;font-weight: bold;">{{infoContent.contSize}}</span>
|
||||
<span>份</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: 2px;font-weight: bold;">{{infoContent.members.length}}</span>
|
||||
<span>人</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: 2px;font-weight: bold;">{{infoContent.totalAmt}}</span>
|
||||
<span>万元</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: 2px;font-weight: bold;">{{infoContent.totalPrem}}</span>
|
||||
<span>万元</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: 25%;color: #666;">投保人:</p>
|
||||
<p style="width: 25%;color: #000;">{{item.appntName}}</p>
|
||||
<p style="width: 25%;color: #666;">被保险人:</p>
|
||||
<p style="width: 25%;color: #000;">{{item.insuredName}}</p>
|
||||
</div>
|
||||
<div style="display: flex;line-height: 30px;align-items: center;">
|
||||
<p style="width: 25%;color: #666;">保额(元):</p>
|
||||
<p style="width: 25%;color: #000;">{{Number(item.amt).toFixed(2)}}</p>
|
||||
<p style="width: 25%;color: #666;">保费(元):</p>
|
||||
<p style="width: 25%;color: #000;">{{Number(item.prem).toFixed(2)}}</p>
|
||||
</div>
|
||||
<div style="display: flex;line-height: 30px;align-items: center;">
|
||||
<p style="width: 25%;color: #666;">交费期间:</p>
|
||||
<p style="width: 25%;color: #000;">{{item.paymentPeriod}}</p>
|
||||
<p style="width: 25%;color: #666;">保险期间:</p>
|
||||
<p style="width: 25%;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,
|
||||
activeAppntId:'',
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
mounted(){
|
||||
this.activeAppntId = this.$route.query.appntId
|
||||
this.getGBCappntDetail()
|
||||
},
|
||||
methods: {
|
||||
activeMembers(thisData,thisIndex) {
|
||||
this.activeMembersIndex = thisIndex
|
||||
this.infoContent.appntName = thisData.name
|
||||
this.infoContent.age = thisData.age
|
||||
this.activeAppntId = thisData.appntId
|
||||
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.activeAppntId,
|
||||
"connectContent": this.connectContent
|
||||
}
|
||||
getGBCappntConnectSave(params).then(res=>{
|
||||
if(res.result == 0) {
|
||||
this.$toast('保存成功')
|
||||
this.connectContent = ''
|
||||
this.activeConnectRecords = false
|
||||
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.activeAppntId,
|
||||
"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>
|
||||
@@ -1,475 +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">
|
||||
<template slot="title">
|
||||
<p style="color: #e9332e">请选择项目</p>
|
||||
</template>
|
||||
<template>
|
||||
<div class="search-project-warpper">
|
||||
<van-search
|
||||
v-model="searchProjectName"
|
||||
shape="round"
|
||||
background="#fff"
|
||||
@focus="handleFocus"
|
||||
@blur="handleBlur"
|
||||
@search="searchProject"
|
||||
placeholder="请输入项目名称"
|
||||
/>
|
||||
<van-dropdown-menu :overlay="false" active-color="#e9332e">
|
||||
<van-dropdown-item v-model="searchProjectYear" :options="searchProjectYearOptions" get-container="body" @change="searchProject" />
|
||||
</van-dropdown-menu>
|
||||
</div>
|
||||
<div class="chooseProjectDialog">
|
||||
<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 v-if="item.projectState" style="margin-left: 10px; color: #a7a7a7"> 状态:{{ item.projectState === '1' ? '正常' : '失效' }} </span>
|
||||
</span>
|
||||
</van-radio>
|
||||
</van-radio-group>
|
||||
</div>
|
||||
<div style="text-align: center; margin-top: 20px; margin-bottom: 20px">
|
||||
<van-button round type="danger" size="small" style="padding: 0px 80px; font-size: 14px" @click="chooseProjectList"> 确定 </van-button>
|
||||
</div>
|
||||
</template>
|
||||
</van-dialog>
|
||||
|
||||
<!-- 选择过期项目弹窗提示 -->
|
||||
<van-dialog v-model="enableProjectDialogShow" :showConfirmButton="false">
|
||||
<div slot="title">
|
||||
<p style="color: #e9332e">提示</p>
|
||||
</div>
|
||||
<div style="padding: 30px; font-size: 14px">{{ chooseProjectName }}项目服务时间已结束!</div>
|
||||
<div style="text-align: center; margin-bottom: 20px">
|
||||
<van-button round type="danger" size="small" style="padding: 0px 80px; 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, Search, DropdownMenu, DropdownItem } 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,
|
||||
[Search.name]: Search,
|
||||
[DropdownMenu.name]: DropdownMenu,
|
||||
[DropdownItem.name]: DropdownItem
|
||||
},
|
||||
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,
|
||||
searchProjectName: '', // 搜索项目名称
|
||||
searchProjectYear: '' // 搜索项目年份
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
searchProjectYearOptions() {
|
||||
let currentYear = new Date().getFullYear()
|
||||
let options = [
|
||||
{
|
||||
text: '全部',
|
||||
value: ''
|
||||
}
|
||||
]
|
||||
// 从2024年开始,到当前年份结束
|
||||
for (let i = 2024; i <= currentYear; i++) {
|
||||
options.push({
|
||||
text: i + '年',
|
||||
value: i
|
||||
})
|
||||
}
|
||||
return options
|
||||
}
|
||||
},
|
||||
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)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
searchProject() {
|
||||
let params = {
|
||||
projectName: this.searchProjectName,
|
||||
projectYear: this.searchProjectYear
|
||||
}
|
||||
gbcProjectList(params).then((res) => {
|
||||
if (res.result == '0') {
|
||||
this.chooseTeamCode = ''
|
||||
this.chooseProjectCode = ''
|
||||
this.chooseProjectName = ''
|
||||
this.projectList = res.content
|
||||
} 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/ .van-dialog {
|
||||
// top: calc(100vh - 300px);
|
||||
top: 55%;
|
||||
|
||||
&__header {
|
||||
padding-top: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
/deep/ .chooseProjectDialog {
|
||||
height: calc(100vh - 400px);
|
||||
min-height: 300px;
|
||||
padding: 0 15px;
|
||||
font-size: 14px;
|
||||
overflow-y: auto;
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
.search-project-warpper {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 10px 15px 0;
|
||||
|
||||
/deep/ .van-search {
|
||||
flex-grow: 1;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/deep/ .van-dropdown-menu {
|
||||
min-width: 60px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/deep/ .van-hairline--top-bottom::after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/deep/ .van-dropdown-item--down {
|
||||
top: calc(50px + 56px) !important; // 标题栏+搜索框
|
||||
}
|
||||
|
||||
/deep/ .van-button--small {
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||