Commit 3f5ee310 by yuzhenWang

做到了fnaForm的保险公司

parent f43a9d6e
<template> <template>
<el-watermark :font="font" :content="content"> <el-watermark :font="font" :content="content">
<router-view /> <router-view />
</el-watermark> </el-watermark>
...@@ -10,10 +9,10 @@ import useSettingsStore from '@/store/modules/settings' ...@@ -10,10 +9,10 @@ import useSettingsStore from '@/store/modules/settings'
import { handleThemeStyle } from '@/utils/theme' import { handleThemeStyle } from '@/utils/theme'
import { reactive } from 'vue' import { reactive } from 'vue'
const font = reactive({ const font = reactive({
color: 'rgba(0, 0, 0, .15)', color: 'rgba(0, 0, 0, .15)'
}) })
const content = reactive('csf') const content = ref('')
onMounted(() => { onMounted(() => {
nextTick(() => { nextTick(() => {
......
...@@ -111,3 +111,35 @@ export function getUserSaleExpandList(data) { ...@@ -111,3 +111,35 @@ export function getUserSaleExpandList(data) {
data: data data: data
}) })
} }
// 第二个附加险列表
export function secondAdditonalList(data) {
return request({
url: '/product/api/relProjectProductLaunch/parameter/page',
method: 'post',
data: data
})
}
// 获取签单员列表
export function getAllSignList(data) {
return request({
url: '/insurance/base/api/userSignExpand/page',
method: 'post',
data: data
})
}
// 获取团队列表
export function getAllTeam(data) {
return request({
url: '/csf/api/team/page',
method: 'post',
data: data
})
}
// 获取保险公司列表
export function getInsuranceCompany(data) {
return request({
url: '/insurance/base/api/insuranceCompany/page',
data: data,
method: 'post'
})
}
...@@ -4,7 +4,10 @@ ...@@ -4,7 +4,10 @@
<template #header> <template #header>
<div class="cardOneheader"> <div class="cardOneheader">
<div class="cardOneLeft"> <div class="cardOneLeft">
<div class="mainTitle">{{ title }}</div> <div class="mainTitle">
{{ title }}
<slot name="mainTitCustom"></slot>
</div>
<slot name="headerRight"></slot> <slot name="headerRight"></slot>
</div> </div>
<div class="subTitle" v-if="desTitle">{{ desTitle }}</div> <div class="subTitle" v-if="desTitle">{{ desTitle }}</div>
...@@ -60,6 +63,7 @@ const props = defineProps({ ...@@ -60,6 +63,7 @@ const props = defineProps({
padding-left: 5px; padding-left: 5px;
display: flex; display: flex;
align-items: center; align-items: center;
margin-right: 20px;
/* border-top-left-radius: 2px; /* border-top-left-radius: 2px;
border-bottom-left-radius: 2px; border-bottom-left-radius: 2px;
...@@ -69,7 +73,7 @@ const props = defineProps({ ...@@ -69,7 +73,7 @@ const props = defineProps({
content: ''; content: '';
display: inline-block; display: inline-block;
width: 4px; width: 4px;
height: 22px; height: 18px;
background: #0052d9; background: #0052d9;
margin-right: 5px; margin-right: 5px;
border-radius: 4px; border-radius: 4px;
......
...@@ -142,6 +142,10 @@ const appointmentInfo = [ ...@@ -142,6 +142,10 @@ const appointmentInfo = [
label: '到港时间', label: '到港时间',
key: 'arrivalTime', key: 'arrivalTime',
domType: 'datetimePicker', domType: 'datetimePicker',
dateValue: '', //YYYY-MM-DD
timeValue: '', //HH:mm
compositionTime: true, //是否组合时间
required: false, required: false,
disabled: false, disabled: false,
placeholder: '请选择', placeholder: '请选择',
...@@ -155,6 +159,9 @@ const appointmentInfo = [ ...@@ -155,6 +159,9 @@ const appointmentInfo = [
label: '离港时间(离港时间必须晚于到港时间)', label: '离港时间(离港时间必须晚于到港时间)',
key: 'departureTime', key: 'departureTime',
domType: 'datetimePicker', domType: 'datetimePicker',
dateValue: '', //YYYY-MM-DD
timeValue: '', //HH:mm
compositionTime: true, //是否组合时间
required: false, required: false,
disabled: false, disabled: false,
placeholder: '请选择', placeholder: '请选择',
...@@ -213,6 +220,31 @@ const appointmentInfo = [ ...@@ -213,6 +220,31 @@ const appointmentInfo = [
} }
] ]
}, },
// 陪同转介人信息
{
fatherTitle: '签单员',
keyType: 'Array', //用于表单收集值时,判断是数组还是对象
key: 'userSignDtoList',
anchorKey: 'userSignDtoList',
moudleType: 'userSignDtoList',
dataLength: 1, //设置dataLength,用于控制子级dom的个数,子级保存一个样例数据,便于加子级数据
showTable: true,
showMoudle: true, //模块是否展示
addChildren: true, //是否可以新增子级dom
addChildrenTxt: '签单员', //新增按钮得文本
fatherRequired: false, //父级必填,代表个人资料这个模块有必填项
isOpen: false, //dom是否展开
data: [
// {
// name: '', //姓名
// practiceCode: '', //执业编码
// phone: '', //手机号
// cardType: '', //证件类型
// cardNo: '', //证件号码
// email: '' //邮箱
// }
]
},
// 开户信息 // 开户信息
{ {
fatherTitle: '开户信息', fatherTitle: '开户信息',
......
const customer = [ const customer = [
// 与投保人关系-在受保人中显示
{
fatherTitle: '与投保人关系',
type: 'object',
key: 'policyholderRel',
anchorKey: 'policyholderRel',
showTable: false,
showMoudle: false,
data: [
{
label: '与投保人关系',
key: 'policyholderRel',
domType: 'Select',
required: false,
disabled: false,
placeholder: '请选择',
dictType: 'csf_ap_rel',
show: true,
labelPosition: 'top', //标签的位置
labelWidth: '120px', //标签宽度
sm: 12, //栅格布局份数
lg: 8 //栅格布局份数
}
]
},
// 基础信息 // 基础信息
{ {
fatherTitle: '基础信息', fatherTitle: '基础信息',
...@@ -6,6 +31,7 @@ const customer = [ ...@@ -6,6 +31,7 @@ const customer = [
key: 'personInfo', key: 'personInfo',
anchorKey: 'personInfo', anchorKey: 'personInfo',
showTable: false, showTable: false,
showMoudle: true,
data: [ data: [
{ {
label: '名字(中文)', label: '名字(中文)',
...@@ -40,20 +66,7 @@ const customer = [ ...@@ -40,20 +66,7 @@ const customer = [
sm: 12, //栅格布局份数 sm: 12, //栅格布局份数
lg: 8 //栅格布局份数 lg: 8 //栅格布局份数
}, },
// {
// label: '称谓',
// key: 'title',
// domType: 'Select',
// required: true,
// disabled: false,
// placeholder: '请选择',
// dictType: 'csf_customer_title',
// show: true,
// labelPosition: 'top', //标签的位置
// labelWidth: '120px', //标签宽度
// sm: 12, //栅格布局份数
// lg: 8 //栅格布局份数
// },
{ {
label: '证件类型', label: '证件类型',
key: 'documentType', key: 'documentType',
...@@ -183,21 +196,7 @@ const customer = [ ...@@ -183,21 +196,7 @@ const customer = [
sm: 12, //栅格布局份数 sm: 12, //栅格布局份数
lg: 8 //栅格布局份数 lg: 8 //栅格布局份数
}, },
// {
// label: '吸烟数量(支/天)',
// key: 'smokeQuantity',
// domType: 'Input',
// inputType: 'number',
// maxLength: 30,
// required: false,
// disabled: false,
// placeholder: '请输入',
// show: false,
// labelPosition: 'top', //标签的位置
// labelWidth: '120px', //标签宽度
// sm: 12, //栅格布局份数
// lg: 8 //栅格布局份数
// },
{ {
label: '婚姻状况', label: '婚姻状况',
key: 'maritalStatus', key: 'maritalStatus',
...@@ -325,6 +324,7 @@ const customer = [ ...@@ -325,6 +324,7 @@ const customer = [
anchorKey: 'apiTaxationDtoList', anchorKey: 'apiTaxationDtoList',
moudleType: 'apiTaxationDtoList', moudleType: 'apiTaxationDtoList',
dataLength: 1, //设置dataLength,用于控制子级dom的个数,子级保存一个样例数据,便于加子级数据 dataLength: 1, //设置dataLength,用于控制子级dom的个数,子级保存一个样例数据,便于加子级数据
showMoudle: true,
showTable: true, showTable: true,
addChildren: true, //是否可以新增子级dom addChildren: true, //是否可以新增子级dom
addChildrenTxt: '税务', //新增按钮得文本 addChildrenTxt: '税务', //新增按钮得文本
...@@ -335,7 +335,7 @@ const customer = [ ...@@ -335,7 +335,7 @@ const customer = [
// id: Date.now() + Math.floor(Math.random() * 1000), //唯一标识 // id: Date.now() + Math.floor(Math.random() * 1000), //唯一标识
// span: 24, //栅格布局份数 // span: 24, //栅格布局份数
// taxCountry: '', // taxCountry: '',
// taxNumber: '' // taxId: ''
// } // }
] ]
}, },
...@@ -346,6 +346,7 @@ const customer = [ ...@@ -346,6 +346,7 @@ const customer = [
key: 'contactInfo', key: 'contactInfo',
anchorKey: 'contactInfo', anchorKey: 'contactInfo',
showTable: false, showTable: false,
showMoudle: true,
data: [ data: [
{ {
label: '移动电话', label: '移动电话',
...@@ -403,7 +404,7 @@ const customer = [ ...@@ -403,7 +404,7 @@ const customer = [
domType: 'Input', domType: 'Input',
inputType: 'text', inputType: 'text',
maxLength: 30, maxLength: 30,
required: true, required: false,
disabled: false, disabled: false,
placeholder: '请输入', placeholder: '请输入',
show: true, show: true,
...@@ -421,7 +422,7 @@ const customer = [ ...@@ -421,7 +422,7 @@ const customer = [
maxLength: 20, maxLength: 20,
disabled: false, disabled: false,
placeholder: '请输入', placeholder: '请输入',
show: false, show: true,
labelPosition: 'top', //标签的位置 labelPosition: 'top', //标签的位置
labelWidth: '120px', //标签宽度 labelWidth: '120px', //标签宽度
sm: 12, //栅格布局份数 sm: 12, //栅格布局份数
...@@ -483,6 +484,7 @@ const customer = [ ...@@ -483,6 +484,7 @@ const customer = [
key: 'companyInfo', key: 'companyInfo',
anchorKey: 'companyInfo', anchorKey: 'companyInfo',
showTable: false, showTable: false,
showMoudle: true,
data: [ data: [
{ {
label: '就业情况', label: '就业情况',
...@@ -649,6 +651,7 @@ const customer = [ ...@@ -649,6 +651,7 @@ const customer = [
key: 'financeInfo', key: 'financeInfo',
anchorKey: 'financeInfo', anchorKey: 'financeInfo',
showTable: false, showTable: false,
showMoudle: true,
data: [ data: [
{ {
label: '平均每月收入', label: '平均每月收入',
......
...@@ -10,7 +10,6 @@ const insured = [ ...@@ -10,7 +10,6 @@ const insured = [
{ {
label: '与投保人关系', label: '与投保人关系',
key: 'policyholderRel', key: 'policyholderRel',
// customerKey: 'customerType',
domType: 'Select', domType: 'Select',
required: true, required: true,
disabled: false, disabled: false,
......
...@@ -286,7 +286,7 @@ const productPlan = [ ...@@ -286,7 +286,7 @@ const productPlan = [
//附加险 //附加险
{ {
showMoudle: true, //模块是否展示 showMoudle: true, //模块是否展示
fatherTitle: '附加', fatherTitle: '附加计划',
keyType: 'Array', //用于表单收集值时,判断是数组还是对象 keyType: 'Array', //用于表单收集值时,判断是数组还是对象
key: 'apiProductPlanAdditionalInfoDtoList', key: 'apiProductPlanAdditionalInfoDtoList',
anchorKey: 'apiProductPlanAdditionalInfoDtoList', anchorKey: 'apiProductPlanAdditionalInfoDtoList',
...@@ -429,7 +429,7 @@ const productPlan = [ ...@@ -429,7 +429,7 @@ const productPlan = [
{ {
label: '产品名称', label: '产品名称',
value: '', value: '',
key: 'addProductName', key: 'productLaunchName',
domType: 'SearchSelect', domType: 'SearchSelect',
required: false, required: false,
maxLength: 30, maxLength: 30,
...@@ -443,13 +443,13 @@ const productPlan = [ ...@@ -443,13 +443,13 @@ const productPlan = [
}, },
{ {
label: '供款期数', label: '供款期数',
key: 'paymentTerm', key: 'issueNumber',
value: '', value: '',
domType: 'Select', domType: 'Select',
required: false, required: false,
disabled: false, disabled: false,
placeholder: '请选择', placeholder: '请选择',
dictType: 'paymentTerm', dictType: 'issueNumber',
show: true, show: true,
labelPosition: 'top', //标签的位置 labelPosition: 'top', //标签的位置
labelWidth: '120px', //标签宽度 labelWidth: '120px', //标签宽度
...@@ -458,7 +458,7 @@ const productPlan = [ ...@@ -458,7 +458,7 @@ const productPlan = [
}, },
{ {
label: '保障年期(若是终身,输入999)', label: '保障年期(若是终身,输入999)',
key: 'sumInsured', key: 'guaranteePeriod',
value: '', value: '',
domType: 'Input', domType: 'Input',
inputType: 'number', inputType: 'number',
...@@ -474,7 +474,7 @@ const productPlan = [ ...@@ -474,7 +474,7 @@ const productPlan = [
}, },
{ {
label: '保单币种', label: '保单币种',
key: 'currency', key: 'policyCurrency',
value: '', value: '',
domType: 'Select', domType: 'Select',
inputType: 'text', inputType: 'text',
...@@ -507,7 +507,7 @@ const productPlan = [ ...@@ -507,7 +507,7 @@ const productPlan = [
}, },
{ {
label: '每期保费', label: '每期保费',
key: 'premium', key: 'eachIssuePremium',
value: '', value: '',
domType: 'Input', domType: 'Input',
inputType: 'number', inputType: 'number',
...@@ -541,7 +541,7 @@ const productPlan = [ ...@@ -541,7 +541,7 @@ const productPlan = [
{ {
label: '保障级别', label: '保障级别',
value: '', value: '',
key: 'insuranceType', key: 'protectionLevel',
domType: 'Input', domType: 'Input',
inputType: 'text', inputType: 'text',
required: false, required: false,
......
...@@ -11,7 +11,11 @@ const useDictStore = defineStore('dict', { ...@@ -11,7 +11,11 @@ const useDictStore = defineStore('dict', {
dictTypeLists: [], //字典列表,根据请求得不同会变化,所以使用之前需要使用useDictLists请求数据 dictTypeLists: [], //字典列表,根据请求得不同会变化,所以使用之前需要使用useDictLists请求数据
signNameList: [], signNameList: [],
bankList: [], //银行列表 bankList: [], //银行列表
userSaleExpandList: [] //最新转介人列表 userSaleExpandList: [], //最新转介人列表
productAdditionalList: [], //附加险产品列表对应的是产品计划
signPeopleList: [], //所有签单员
allTeaList: [], //所有团队
allInsuranceCompanyList: [] //最新的保险公司列表
}), }),
actions: { actions: {
// 获取字典 // 获取字典
...@@ -94,6 +98,22 @@ const useDictStore = defineStore('dict', { ...@@ -94,6 +98,22 @@ const useDictStore = defineStore('dict', {
//设置最新转介人列表 //设置最新转介人列表
setUserSaleExpandList(list) { setUserSaleExpandList(list) {
this.userSaleExpandList = list this.userSaleExpandList = list
},
//设置最新的附加险产品列表
setProductAdditionalList(list) {
this.productAdditionalList = list
},
//设置签单员列表
setSignPeopleList(list) {
this.signPeopleList = list
},
//设置团队列表
setAllTeaList(list) {
this.allTeaList = list
},
//设置最新的保险公司列表
setAllInsuranceCompanyList(list) {
this.allInsuranceCompanyList = list
} }
} }
}) })
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -86,22 +86,22 @@ ...@@ -86,22 +86,22 @@
<Customer <Customer
v-if="tab.name === 'customer'" v-if="tab.name === 'customer'"
:activeName="activeName" :activeName="activeName"
:fearthStatus="route.query.type"
:customerBizId="processInfo.customerBizId" :customerBizId="processInfo.customerBizId"
@handleSuccess="handleSuccess" @handleSuccess="handleSuccess"
:tabPaneRef="tabPaneRef"
:tabIndex="tabsList.findIndex(t => t.name === 'customer')" :tabIndex="tabsList.findIndex(t => t.name === 'customer')"
anchorContainer=".tabPaneBox" anchorContainer=".tabPaneBox"
tabSource="customer"
/> />
<div v-if="tab.name === 'fnaform'"> <div v-if="tab.name === 'fnaform'">
<FanForm <FanForm
:activeName="activeName" :activeName="activeName"
:fearthStatus="route.query.type"
:fnaFormBizId="processInfo.fnaFormBizId" :fnaFormBizId="processInfo.fnaFormBizId"
:customerBizId="processInfo.customerBizId" :customerBizId="processInfo.customerBizId"
:dictTypeLists="dictTypeLists" :dictTypeLists="dictTypeLists"
:customerInfo="customerInfo" :customerInfo="customerInfo"
@handleSuccess="handleSuccess" @handleSuccess="handleSuccess"
:tabIndex="tabsList.findIndex(t => t.name === 'fnaform')"
anchorContainer=".tabPaneBox"
/> />
</div> </div>
<div v-if="tab.name === 'appointment'"> <div v-if="tab.name === 'appointment'">
...@@ -133,7 +133,11 @@ import { ...@@ -133,7 +133,11 @@ import {
getInsuranceProductList, getInsuranceProductList,
getAdditionalProductList, getAdditionalProductList,
getBankList, getBankList,
getUserSaleExpandList getUserSaleExpandList,
secondAdditonalList,
getAllSignList,
getAllTeam,
getInsuranceCompany
} from '@/api/common' } from '@/api/common'
import Customer from './components/customer' import Customer from './components/customer'
import FanForm from './components/fanForm' import FanForm from './components/fanForm'
...@@ -258,7 +262,6 @@ const getDictsData = async () => { ...@@ -258,7 +262,6 @@ const getDictsData = async () => {
} }
const response4 = await getBankList(params4) const response4 = await getBankList(params4)
if (response4.code == 200) { if (response4.code == 200) {
response4.data.records = response4.data.records.map(item => { response4.data.records = response4.data.records.map(item => {
return { return {
...item, ...item,
...@@ -274,7 +277,6 @@ const getDictsData = async () => { ...@@ -274,7 +277,6 @@ const getDictsData = async () => {
} }
const response5 = await getUserSaleExpandList(params5) const response5 = await getUserSaleExpandList(params5)
if (response5.code == 200) { if (response5.code == 200) {
response5.data.records = response5.data.records.map(item => { response5.data.records = response5.data.records.map(item => {
return { return {
...item, ...item,
...@@ -284,6 +286,70 @@ const getDictsData = async () => { ...@@ -284,6 +286,70 @@ const getDictsData = async () => {
}) })
dictStore.setUserSaleExpandList(response5.data.records) dictStore.setUserSaleExpandList(response5.data.records)
} }
const params6 = {
pageNo: 1,
pageSize: 99999,
projectBizId: userStore.projectInfo.projectBizId,
tenantBizId: userStore.projectInfo.tenantBizId,
fieldBizId: 'field_olk1qZe81qHHKXbw',
fieldValueBizId: 'field_value_yXzTigvgUdRMFpoR'
}
const response6 = await secondAdditonalList(params6)
if (response6.code == 200) {
response6.data.records = response6.data.records.map(item => {
return {
...item,
label: item.title,
value: item.productLaunchBizId
}
})
dictStore.setProductAdditionalList(response6.data.records)
}
const params7 = {
pageNo: 1,
pageSize: 99999
}
const response7 = await getAllSignList(params7)
if (response7.code == 200) {
response7.data.records = response7.data.records.map(item => {
return {
...item,
label: item.realName,
value: item.userSignBizId
}
})
dictStore.setSignPeopleList(response7.data.records)
}
const params8 = {
pageNo: 1,
pageSize: 99999
}
const response8 = await getAllTeam(params8)
if (response8.code == 200) {
response8.data.records = response8.data.records.map(item => {
return {
...item,
label: item.teamName,
value: item.teamBizId
}
})
dictStore.setAllTeaList(response8.data.records)
}
const params9 = {
pageNo: 1,
pageSize: 99999
}
const response9 = await getInsuranceCompany(params9)
if (response9.code == 200) {
response9.data.records = response9.data.records.map(item => {
return {
...item,
label: item.fullName,
value: item.insuranceCompanyBizId
}
})
dictStore.setAllInsuranceCompanyList(response9.data.records)
}
// 请求每个流程中所涉及到的字典值数据 // 请求每个流程中所涉及到的字典值数据
proxy.useDictLists([ proxy.useDictLists([
'csf_employment', 'csf_employment',
...@@ -311,7 +377,8 @@ const getDictsData = async () => { ...@@ -311,7 +377,8 @@ const getDictsData = async () => {
'wj_question_first_category', 'wj_question_first_category',
'wj_question_second_category', 'wj_question_second_category',
'csf_ap_policy_transfer', 'csf_ap_policy_transfer',
'md_bank' 'md_bank',
'csf_property_type'
]) ])
} }
...@@ -354,7 +421,7 @@ function getProcessInfo(fnaBizId, changeTab) { ...@@ -354,7 +421,7 @@ function getProcessInfo(fnaBizId, changeTab) {
// Tab切换前的验证 // Tab切换前的验证
const beforeTabLeave = (activeTabName, oldTabName) => { const beforeTabLeave = (activeTabName, oldTabName) => {
if (processInfo.value.customerBizId) { if (processInfo.value.customerBizId) {
getCustomerInfo(processInfo.value.customerBizId) // getCustomerInfo(processInfo.value.customerBizId)
} }
// 如果切换到总览,始终允许 // 如果切换到总览,始终允许
if (activeTabName === 'overview' || activeTabName === 'customer') { if (activeTabName === 'overview' || activeTabName === 'customer') {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment