Commit 3f5ee310 by yuzhenWang

做到了fnaForm的保险公司

parent f43a9d6e
<template>
<el-watermark :font="font" :content="content">
<router-view />
</el-watermark>
......@@ -10,10 +9,10 @@ import useSettingsStore from '@/store/modules/settings'
import { handleThemeStyle } from '@/utils/theme'
import { reactive } from 'vue'
const font = reactive({
color: 'rgba(0, 0, 0, .15)',
color: 'rgba(0, 0, 0, .15)'
})
const content = reactive('csf')
const content = ref('')
onMounted(() => {
nextTick(() => {
......
......@@ -111,3 +111,35 @@ export function getUserSaleExpandList(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 @@
<template #header>
<div class="cardOneheader">
<div class="cardOneLeft">
<div class="mainTitle">{{ title }}</div>
<div class="mainTitle">
{{ title }}
<slot name="mainTitCustom"></slot>
</div>
<slot name="headerRight"></slot>
</div>
<div class="subTitle" v-if="desTitle">{{ desTitle }}</div>
......@@ -60,6 +63,7 @@ const props = defineProps({
padding-left: 5px;
display: flex;
align-items: center;
margin-right: 20px;
/* border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
......@@ -69,7 +73,7 @@ const props = defineProps({
content: '';
display: inline-block;
width: 4px;
height: 22px;
height: 18px;
background: #0052d9;
margin-right: 5px;
border-radius: 4px;
......
......@@ -142,6 +142,10 @@ const appointmentInfo = [
label: '到港时间',
key: 'arrivalTime',
domType: 'datetimePicker',
dateValue: '', //YYYY-MM-DD
timeValue: '', //HH:mm
compositionTime: true, //是否组合时间
required: false,
disabled: false,
placeholder: '请选择',
......@@ -155,6 +159,9 @@ const appointmentInfo = [
label: '离港时间(离港时间必须晚于到港时间)',
key: 'departureTime',
domType: 'datetimePicker',
dateValue: '', //YYYY-MM-DD
timeValue: '', //HH:mm
compositionTime: true, //是否组合时间
required: false,
disabled: false,
placeholder: '请选择',
......@@ -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: '开户信息',
......
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: '基础信息',
......@@ -6,6 +31,7 @@ const customer = [
key: 'personInfo',
anchorKey: 'personInfo',
showTable: false,
showMoudle: true,
data: [
{
label: '名字(中文)',
......@@ -40,20 +66,7 @@ const customer = [
sm: 12, //栅格布局份数
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: '证件类型',
key: 'documentType',
......@@ -183,21 +196,7 @@ const customer = [
sm: 12, //栅格布局份数
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: '婚姻状况',
key: 'maritalStatus',
......@@ -325,6 +324,7 @@ const customer = [
anchorKey: 'apiTaxationDtoList',
moudleType: 'apiTaxationDtoList',
dataLength: 1, //设置dataLength,用于控制子级dom的个数,子级保存一个样例数据,便于加子级数据
showMoudle: true,
showTable: true,
addChildren: true, //是否可以新增子级dom
addChildrenTxt: '税务', //新增按钮得文本
......@@ -335,7 +335,7 @@ const customer = [
// id: Date.now() + Math.floor(Math.random() * 1000), //唯一标识
// span: 24, //栅格布局份数
// taxCountry: '',
// taxNumber: ''
// taxId: ''
// }
]
},
......@@ -346,6 +346,7 @@ const customer = [
key: 'contactInfo',
anchorKey: 'contactInfo',
showTable: false,
showMoudle: true,
data: [
{
label: '移动电话',
......@@ -403,7 +404,7 @@ const customer = [
domType: 'Input',
inputType: 'text',
maxLength: 30,
required: true,
required: false,
disabled: false,
placeholder: '请输入',
show: true,
......@@ -421,7 +422,7 @@ const customer = [
maxLength: 20,
disabled: false,
placeholder: '请输入',
show: false,
show: true,
labelPosition: 'top', //标签的位置
labelWidth: '120px', //标签宽度
sm: 12, //栅格布局份数
......@@ -483,6 +484,7 @@ const customer = [
key: 'companyInfo',
anchorKey: 'companyInfo',
showTable: false,
showMoudle: true,
data: [
{
label: '就业情况',
......@@ -649,6 +651,7 @@ const customer = [
key: 'financeInfo',
anchorKey: 'financeInfo',
showTable: false,
showMoudle: true,
data: [
{
label: '平均每月收入',
......
......@@ -10,7 +10,6 @@ const insured = [
{
label: '与投保人关系',
key: 'policyholderRel',
// customerKey: 'customerType',
domType: 'Select',
required: true,
disabled: false,
......@@ -498,7 +497,7 @@ const insured = [
sm: 12, //栅格布局份数
lg: 8 //栅格布局份数
},
{
label: '总负债额',
key: 'totalDebt',
......
......@@ -286,7 +286,7 @@ const productPlan = [
//附加险
{
showMoudle: true, //模块是否展示
fatherTitle: '附加',
fatherTitle: '附加计划',
keyType: 'Array', //用于表单收集值时,判断是数组还是对象
key: 'apiProductPlanAdditionalInfoDtoList',
anchorKey: 'apiProductPlanAdditionalInfoDtoList',
......@@ -429,7 +429,7 @@ const productPlan = [
{
label: '产品名称',
value: '',
key: 'addProductName',
key: 'productLaunchName',
domType: 'SearchSelect',
required: false,
maxLength: 30,
......@@ -443,13 +443,13 @@ const productPlan = [
},
{
label: '供款期数',
key: 'paymentTerm',
key: 'issueNumber',
value: '',
domType: 'Select',
required: false,
disabled: false,
placeholder: '请选择',
dictType: 'paymentTerm',
dictType: 'issueNumber',
show: true,
labelPosition: 'top', //标签的位置
labelWidth: '120px', //标签宽度
......@@ -458,7 +458,7 @@ const productPlan = [
},
{
label: '保障年期(若是终身,输入999)',
key: 'sumInsured',
key: 'guaranteePeriod',
value: '',
domType: 'Input',
inputType: 'number',
......@@ -474,7 +474,7 @@ const productPlan = [
},
{
label: '保单币种',
key: 'currency',
key: 'policyCurrency',
value: '',
domType: 'Select',
inputType: 'text',
......@@ -507,7 +507,7 @@ const productPlan = [
},
{
label: '每期保费',
key: 'premium',
key: 'eachIssuePremium',
value: '',
domType: 'Input',
inputType: 'number',
......@@ -541,7 +541,7 @@ const productPlan = [
{
label: '保障级别',
value: '',
key: 'insuranceType',
key: 'protectionLevel',
domType: 'Input',
inputType: 'text',
required: false,
......
......@@ -11,7 +11,11 @@ const useDictStore = defineStore('dict', {
dictTypeLists: [], //字典列表,根据请求得不同会变化,所以使用之前需要使用useDictLists请求数据
signNameList: [],
bankList: [], //银行列表
userSaleExpandList: [] //最新转介人列表
userSaleExpandList: [], //最新转介人列表
productAdditionalList: [], //附加险产品列表对应的是产品计划
signPeopleList: [], //所有签单员
allTeaList: [], //所有团队
allInsuranceCompanyList: [] //最新的保险公司列表
}),
actions: {
// 获取字典
......@@ -94,6 +98,22 @@ const useDictStore = defineStore('dict', {
//设置最新转介人列表
setUserSaleExpandList(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 @@
<Customer
v-if="tab.name === 'customer'"
:activeName="activeName"
:fearthStatus="route.query.type"
:customerBizId="processInfo.customerBizId"
@handleSuccess="handleSuccess"
:tabPaneRef="tabPaneRef"
:tabIndex="tabsList.findIndex(t => t.name === 'customer')"
anchorContainer=".tabPaneBox"
tabSource="customer"
/>
<div v-if="tab.name === 'fnaform'">
<FanForm
:activeName="activeName"
:fearthStatus="route.query.type"
:fnaFormBizId="processInfo.fnaFormBizId"
:customerBizId="processInfo.customerBizId"
:dictTypeLists="dictTypeLists"
:customerInfo="customerInfo"
@handleSuccess="handleSuccess"
:tabIndex="tabsList.findIndex(t => t.name === 'fnaform')"
anchorContainer=".tabPaneBox"
/>
</div>
<div v-if="tab.name === 'appointment'">
......@@ -133,7 +133,11 @@ import {
getInsuranceProductList,
getAdditionalProductList,
getBankList,
getUserSaleExpandList
getUserSaleExpandList,
secondAdditonalList,
getAllSignList,
getAllTeam,
getInsuranceCompany
} from '@/api/common'
import Customer from './components/customer'
import FanForm from './components/fanForm'
......@@ -258,7 +262,6 @@ const getDictsData = async () => {
}
const response4 = await getBankList(params4)
if (response4.code == 200) {
response4.data.records = response4.data.records.map(item => {
return {
...item,
......@@ -274,7 +277,6 @@ const getDictsData = async () => {
}
const response5 = await getUserSaleExpandList(params5)
if (response5.code == 200) {
response5.data.records = response5.data.records.map(item => {
return {
...item,
......@@ -284,6 +286,70 @@ const getDictsData = async () => {
})
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([
'csf_employment',
......@@ -311,7 +377,8 @@ const getDictsData = async () => {
'wj_question_first_category',
'wj_question_second_category',
'csf_ap_policy_transfer',
'md_bank'
'md_bank',
'csf_property_type'
])
}
......@@ -354,7 +421,7 @@ function getProcessInfo(fnaBizId, changeTab) {
// Tab切换前的验证
const beforeTabLeave = (activeTabName, oldTabName) => {
if (processInfo.value.customerBizId) {
getCustomerInfo(processInfo.value.customerBizId)
// getCustomerInfo(processInfo.value.customerBizId)
}
// 如果切换到总览,始终允许
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