Commit 231d894f by yuzhenWang

导入发布测试

parent b3265ee8
......@@ -213,3 +213,11 @@ export function downloadCompressedFile(data) {
method: 'post'
})
}
// 获取保险对账公司列表
export function insuranceReconciliationCompany(data) {
return request({
url: '/insurance/base/api/insuranceReconciliationCompany/page',
data: data,
method: 'post'
})
}
......@@ -202,7 +202,7 @@ const customer = [
label: '婚姻状况',
key: 'maritalStatus',
domType: 'Select',
required: true,
required: false,
disabled: false,
placeholder: '请选择',
dictType: 'csf_marriage',
......@@ -216,7 +216,7 @@ const customer = [
label: '教育程度',
key: 'educationLevel',
domType: 'Select',
required: true,
required: false,
disabled: false,
placeholder: '请选择',
dictType: 'csf_education',
......@@ -230,7 +230,7 @@ const customer = [
label: '是否退休',
key: 'isRetirement',
domType: 'Select',
required: true,
required: false,
disabled: false,
placeholder: '请选择',
dictType: 'sys_no_yes',
......@@ -434,7 +434,7 @@ const customer = [
key: 'certificateAddress',
domType: 'Input',
inputType: 'text',
required: true,
required: false,
maxLength: 20,
disabled: false,
placeholder: '请输入',
......
......@@ -353,7 +353,8 @@ const props = defineProps({
tabSource: { type: String, default: '' },
idsObj: { type: Object, default: () => ({}) }, //引用这个组件的页面来源,用于逻辑判断
apiPolicyholderInfoDto: { type: Object, default: () => ({}) }, //投保人编辑状态详情
apiInsurantInfoDto: { type: Object, default: () => ({}) } //受保人编辑状态详情
apiInsurantInfoDto: { type: Object, default: () => ({}) }, //受保人编辑状态详情
isExportAppointment: { type: Boolean, default: false } //是否导入
})
const emit = defineEmits(['handleSuccess'])
const { proxy } = getCurrentInstance()
......@@ -692,7 +693,17 @@ const processFormData = async () => {
} else if (props.activeName !== 'insurantInfo' && section.key == 'policyholderRel') {
section.showMoudle = false
}
if (props.activeName == 'insurantInfo') {
if (form.value['policyholderRel'] && form.value['policyholderRel'] == 'MYSELF') {
if (section.key == 'policyholderRel') {
section.showMoudle = true
} else {
section.showMoudle = false
}
} else {
section.showMoudle = true
}
}
if (section.data) {
for (const field of section.data) {
if (field.dictType) {
......@@ -731,7 +742,8 @@ const processFormData = async () => {
} else if (
props.customerBizId &&
(props.tabSource == 'policyholder' || props.tabSource == 'insurantInfo') &&
!props.idsObj.appointmentBizId
!props.idsObj.appointmentBizId &&
!props.isExportAppointment
) {
//是投保人/受保人但是新增预约 需要引用客户资料的值
getCustomerInfo(props.customerBizId, processedData)
......@@ -742,6 +754,9 @@ const processFormData = async () => {
// 投保人回显值
setFormValue(props.apiInsurantInfoDto, processedData)
} else {
if (props.tabSource == 'customer') {
form.value.smokingStatus = '0'
}
processedCustomerData.value = oldCustomerData.value = processedData
}
}
......@@ -1031,9 +1046,8 @@ const setFormValue = (obj, formData, exportValue) => {
}
if (addressObj) {
form.value[
field.key
] = `${addressObj.region} ${addressObj.city} ${addressObj.street} ${addressObj.location}`
form.value[field.key] =
`${addressObj.region} ${addressObj.city} ${addressObj.street} ${addressObj.location}`
addressObj.addressString = `${addressObj.region}${addressObj.city}${addressObj.street}${addressObj.location}`
addressObj.objType = field.drawerType
saveKey.value[field.key] = addressObj
......@@ -1120,8 +1134,8 @@ const getInvalidFields = fields => {
props.activeName == 'policyHolderInfo'
? `投保人模块-${fields[field][0].message}`
: props.activeName == 'insuredInfo'
? `受保人模块-${fields[field][0].message}`
: fields[field][0].message
? `受保人模块-${fields[field][0].message}`
: fields[field][0].message
})
}
}
......@@ -1176,6 +1190,8 @@ const handleFormValues = source => {
} else {
submitObj = { ...form.value }
}
console.log('投保人form', submitObj)
let processedData = JSON.parse(JSON.stringify(processedCustomerData.value))
return new Promise(async resolve => {
// 如果没有点击受保人这个tab页就进行填写提醒,
......@@ -1190,11 +1206,6 @@ const handleFormValues = source => {
if (processedData.length > 0) {
customerFormRef.value.validate((valid, fields) => {
if (valid) {
if (source == 'insuredInfoRef') {
console.log('====================================')
console.log('submitObj', form.value['policyholderRel'])
console.log('====================================')
}
let addressList = []
if (submitObj['birthday']) {
if (source == 'insuredInfoRef' || source == 'policyHolderInfoRef') {
......@@ -1289,9 +1300,13 @@ const handleFormValues = source => {
resolve(errorFields.value.length == 0 ? submitObj : null)
} else {
errorFields.value = getInvalidFields(fields)
console.log('====================================')
console.log('222222', errorFields.value)
console.log('====================================')
if (errorFields.value.length > 0) {
proxy.$message.error(errorFields.value[0].message)
}
resolve(undefined)
}
})
......@@ -1306,6 +1321,8 @@ const handleFormValues = source => {
} else {
// 新增状态
// 因为这两个在同一个大提交里,所以要判断是哪个提交,方便这两个都有自己独立的提交验证
console.log('走这里了')
resolve(undefined)
}
}
......@@ -1330,6 +1347,8 @@ watch(
} else if (props.activeName == 'insurantInfo') {
insuredForm.value = JSON.parse(JSON.stringify(newVal))
}
console.log('form值变化policyholderForm', policyholderForm.value)
console.log('form值变化insuredForm', insuredForm.value)
},
{ immediate: true, deep: true }
)
......@@ -1364,11 +1383,28 @@ watch(
editStatus.value = newVal
}
)
//导入预约单成功后,要重新渲染页面回显值
watch(
() => props.isExportAppointment,
newVal => {
console.log('导入发生变化', newVal)
if (newVal) {
if (props.tabSource == 'policyholder') {
// 投保人回显值
setFormValue(props.apiPolicyholderInfoDto, processedCustomerData.value)
} else if (props.tabSource == 'insurantInfo') {
// 受保人回显值
setFormValue(props.apiInsurantInfoDto, processedCustomerData.value)
}
}
}
)
// 暴露给父组件
defineExpose({
handleFormValues,
handleEditStatus,
getRawForm: () => JSON.parse(JSON.stringify(form.value))
getInsuredForm: () => JSON.parse(JSON.stringify(insuredForm.value))
})
</script>
<style lang="scss" scoped>
......
......@@ -10,69 +10,114 @@
<div class="status">{{ processInfo.status || '--' }}</div>
<div class="time">
<span class="iconfont icon-yanqiweiwancheng"></span>
<span>{{ parseTime(processInfo.createTime) }}{{
processInfo.customerName || '--'
}}创建</span>
<span
>{{ parseTime(processInfo.createTime) }}{{
processInfo.customerName || '--'
}}创建</span
>
</div>
</div>
</div>
</div>
</div>
<div class="tabsBox">
<el-tabs v-model="activeName" class="demo-tabs" :before-leave="beforeTabLeave" ref="tabPaneRef">
<el-tab-pane v-for="(tab, tIndex) in tabsList" :key="tab.name" :label="tab.label" :name="tab.name">
<el-tabs
v-model="activeName"
class="demo-tabs"
:before-leave="beforeTabLeave"
ref="tabPaneRef"
>
<el-tab-pane
v-for="(tab, tIndex) in tabsList"
:key="tab.name"
:label="tab.label"
:name="tab.name"
>
<!-- 注意tabPaneBox这个类名与子组件的锚点定位相关,不能轻易改动 -->
<div :class="{ tabPaneBox: activeName !== 'appointment' }">
<div v-if="tab.name === 'overview'" class="overviewBox">
<div class="oneItem" v-for="item in tabsList.filter(item => item.id !== -1 && item.status)"
:key="item.id" @click="handleStep(item)">
<div class="circle" :class="{
finfishCircle: item.status == '1',
unFinishCircle: item.status == '0'
}">
<div
class="oneItem"
v-for="item in tabsList.filter(item => item.id !== -1 && item.status)"
:key="item.id"
@click="handleStep(item)"
>
<div
class="circle"
:class="{
finfishCircle: item.status == '1',
unFinishCircle: item.status == '0'
}"
>
<el-icon v-if="item.status == '1'">
<Check />
</el-icon>
<span v-else>{{ item.id }}</span>
</div>
<div class="title" :class="{
finfishTitle: item.status == '1',
unFinishTitle: item.status == '0'
}">
<div
class="title"
:class="{
finfishTitle: item.status == '1',
unFinishTitle: item.status == '0'
}"
>
{{ item.label }}
</div>
<div class="status" :class="{
finfishStatus: item.status == '1',
unFinishStatus: item.status == '0'
}">
<div
class="status"
:class="{
finfishStatus: item.status == '1',
unFinishStatus: item.status == '0'
}"
>
{{ item.status == '1' ? '已完成' : '未完成' }}
</div>
<div class="operation">
<el-icon class="editIcon" v-if="item.status == '0'">
<EditPen />
</el-icon>
<div :class="{
finfishOperation: item.status == '1',
unFinishOperation: item.status == '0'
}">
<div
:class="{
finfishOperation: item.status == '1',
unFinishOperation: item.status == '0'
}"
>
{{ item.status == '1' ? '点击查看详情' : '去填写' }}
</div>
</div>
</div>
</div>
<Customer v-if="tab.name === 'customer'" :activeName="activeName"
:customerBizId="processInfo.customerBizId" @handleSuccess="handleSuccess"
:tabIndex="tabsList.findIndex(t => t.name === 'customer')" anchorContainer=".tabPaneBox"
tabSource="customer" />
<Customer
v-if="tab.name === 'customer'"
:activeName="activeName"
:customerBizId="processInfo.customerBizId"
@handleSuccess="handleSuccess"
:tabIndex="tabsList.findIndex(t => t.name === 'customer')"
anchorContainer=".tabPaneBox"
tabSource="customer"
/>
<div v-if="tab.name === 'fnaform'">
<FanForm :activeName="activeName" :fnaFormBizId="processInfo.fnaFormBizId"
:customerBizId="processInfo.customerBizId" :dictTypeLists="dictTypeLists" :customerInfo="customerInfo"
@handleSuccess="handleSuccess" :tabIndex="tabsList.findIndex(t => t.name === 'fnaform')"
anchorContainer=".tabPaneBox" tabSource="fnaform" />
<FanForm
:activeName="activeName"
:fnaFormBizId="processInfo.fnaFormBizId"
:customerBizId="processInfo.customerBizId"
:dictTypeLists="dictTypeLists"
:customerInfo="customerInfo"
@handleSuccess="handleSuccess"
:tabIndex="tabsList.findIndex(t => t.name === 'fnaform')"
anchorContainer=".tabPaneBox"
tabSource="fnaform"
/>
</div>
<div v-if="tab.name === 'appointment'">
<AppointmentEdit :embed="true" editStatus="add" :tabName="activeName" :processDetail="processInfo"
@handleSuccess="handleSuccess" source="fnaList" />
<AppointmentEdit
:embed="true"
editStatus="add"
:tabName="activeName"
:processDetail="processInfo"
@handleSuccess="handleSuccess"
source="fnaList"
/>
</div>
<div v-if="tab.name === 'newpolicy'">关联新单内容</div>
</div>
......@@ -165,6 +210,40 @@ const tabsList = ref([
const { csf_fna_status } = proxy.useDict('csf_fna_status')
// 获取各个流程所需要得字典数据
const getDictsData = async () => {
// 请求每个流程中所涉及到的字典值数据,如果缓存中有,则不再请求
if (dictStore.dictTypeLists.length == 0) {
proxy.useDictLists([
'csf_employment',
'sys_no_yes',
'bx_currency_type',
'csf_liquid_asset_type',
'csf_premium_funding_source',
'csf_customer_type',
'csf_customer_title',
'sys_gender',
'csf_marriage',
'csf_education',
'csf_id_type',
'csf_ap_apply_type',
'csf_ap_meeting_point',
'csf_ap_first_issue',
'csf_ap_dividend',
'csf_ap_frequency',
'csf_ap_rel',
'csf_ap_registration',
'csf_ap_exercise',
'csf_ap_risk',
'csf_ap_movie',
'csf_ap_game',
'wj_question_first_category',
'wj_question_second_category',
'csf_ap_policy_transfer',
'md_bank',
'csf_property_type',
'oss_data_type',
'oss_data_person'
])
}
// 获取租户用户列表
const params1 = {
tenantBizId: userStore.projectInfo.tenantBizId,
......@@ -298,41 +377,6 @@ const getDictsData = async () => {
})
dictStore.setAllInsuranceCompanyList(response9.data.records)
}
// 请求每个流程中所涉及到的字典值数据,如果缓存中有,则不再请求
if (dictStore.dictTypeLists.length == 0) {
proxy.useDictLists([
'csf_employment',
'sys_no_yes',
'bx_currency_type',
'csf_liquid_asset_type',
'csf_premium_funding_source',
'csf_customer_type',
'csf_customer_title',
'sys_gender',
'csf_marriage',
'csf_education',
'csf_id_type',
'csf_ap_apply_type',
'csf_ap_meeting_point',
'csf_ap_first_issue',
'csf_ap_dividend',
'csf_ap_frequency',
'csf_ap_rel',
'csf_ap_registration',
'csf_ap_exercise',
'csf_ap_risk',
'csf_ap_movie',
'csf_ap_game',
'wj_question_first_category',
'wj_question_second_category',
'csf_ap_policy_transfer',
'md_bank',
'csf_property_type',
'oss_data_type',
'oss_data_person'
])
}
}
// 更新流程
......
<template>
<div style="padding-top: 10px">
<div ref="beneficiaryRef">
<CommonForm :showAnchor="false">
......@@ -277,6 +276,7 @@ const props = defineProps({
anchorContainer: { type: String, default: '' }, //锚点滚动容器
editStatus: { type: Boolean, default: true }, //编辑状态
affixOffset: { type: Number },
isExportAppointment: { type: Boolean, default: false }, //是否导入
tabIndex: { type: [String, Number], default: '' } //tab索引
})
const emit = defineEmits(['handleSuccessEdit', 'policyEditSuccess'])
......@@ -589,7 +589,7 @@ const processFormData = async obj => {
}
}
}
if (props.idsObj.appointmentBizId) {
if (props.idsObj.appointmentBizId ) {
setFormValue(processedData)
} else {
processedBeneficiaryData.value = oldAppointmentData.value = processedData
......@@ -681,9 +681,8 @@ const confirmDrawer = info => {
newObj.type = drawerInfo.value.key
newObj.id = drawerInfo.value.id
newObj.drawerType = drawerInfo.value.drawerType
form.value.apiBeneficiaryInfoDtoList[drawerInfo.value.l1][
drawerInfo.value.key
] = `${newObj.region} ${newObj.city} ${newObj.street} ${newObj.location}`
form.value.apiBeneficiaryInfoDtoList[drawerInfo.value.l1][drawerInfo.value.key] =
`${newObj.region} ${newObj.city} ${newObj.street} ${newObj.location}`
newObj.addressString = `${newObj.region} ${newObj.city} ${newObj.street} ${newObj.location}`
// 检查数组中是否已存在相同ID的地址
......@@ -858,7 +857,6 @@ const setFormValue = processedData => {
}
}
processedBeneficiaryData.value = oldDom
console.log('受益人表单', form.value)
console.log('dom', processedBeneficiaryData.value)
}
// 获取校验失败的字段信息
......@@ -954,7 +952,15 @@ watch(
}
}
)
//导入预约单成功后,要重新渲染页面回显值
watch(
() => props.isExportAppointment,
newVal => {
if (newVal) {
setFormValue(processedBeneficiaryData.value)
}
}
)
// 暴露给父组件
defineExpose({
handleFormValues,
......
......@@ -249,7 +249,8 @@ import {
getAdditionalProductList,
secondAdditonalList,
getInsuranceCategory,
getInsuranceCompany
getInsuranceCompany,
insuranceReconciliationCompany
} from '@/api/common'
import { editProductPlanInfo, delAdditional } from '@/api/sign/appointment'
import { updatePolicyProduct, delPolicyAdditional } from '@/api/sign/underwritingMain'
......@@ -272,6 +273,7 @@ const props = defineProps({
fatherTabName: { type: String, default: '' }, //一级tab名称
anchorContainer: { type: String, default: '' }, //锚点滚动容器
editStatus: { type: Boolean, default: true }, //编辑状态
isExportAppointment: { type: Boolean, default: false }, //是否导入
tabIndex: { type: [String, Number], default: '' } //tab索引
})
const emit = defineEmits(['handleSuccessEdit', 'policyEditSuccess'])
......@@ -475,6 +477,14 @@ const handleSearchSelectChange = (father, key) => {
}
})
}
if (key == 'reconciliationCompanyName') {
searchOptions.value['reconciliationCompanyName'].forEach(item => {
if (form.value[father.key][key] == item.value) {
form.value[father.key][key] = item.label
form.value[father.key].reconciliationCompanyId = item.value
}
})
}
}
// 下拉框搜索方法
// 搜索方法
......@@ -553,7 +563,7 @@ const searchSelectList = async (query, fieldKey) => {
showCancel: '0',
title: '填写提示'
})
// row.insuranceType = ''
return
}
const params1 = {
......@@ -572,6 +582,23 @@ const searchSelectList = async (query, fieldKey) => {
})
searchOptions.value[fieldKey] = response1.data.records
}
} else if (fieldKey == 'reconciliationCompanyName') {
const params1 = {
pageNo: 1,
pageSize: 10,
name: query.trim()
}
const response1 = await insuranceReconciliationCompany(params1)
if (response1.code == 200) {
response1.data.records = response1.data.records.map(item => {
return {
...item,
label: item.name,
value: item.reconciliationCompanyBizId
}
})
searchOptions.value[fieldKey] = response1.data.records
}
}
} catch (error) {
console.error(`${fieldKey} 搜索失败`, error)
......@@ -735,6 +762,15 @@ const handleSelectChange = (father, child) => {
}
break
case 'isPrepay':
// 选是,展示日期
if (form.value[father.key][child.key] == '1') {
resetShow('prepaymentPeriod', true)
} else {
resetShow('prepaymentPeriod', false)
}
break
default:
break
......@@ -805,6 +841,13 @@ const setFormValue = (obj, formData) => {
) {
filed.show = true
}
if (
filed.key == 'prepaymentPeriod' &&
obj.apiProductPlanMainInfoDto.isPrepay &&
obj.apiProductPlanMainInfoDto.isPrepay == '1'
) {
filed.show = true
}
}
// 为附加险增加dom
if (
......@@ -939,7 +982,15 @@ watch(
}
}
)
//导入预约单成功后,要重新渲染页面回显值
watch(
() => props.isExportAppointment,
newVal => {
if (newVal) {
setFormValue(props.apiProductPlanInfoDto, processedProductData.value)
}
}
)
// 暴露给父组件
defineExpose({
handleSubmitForm,
......
......@@ -246,7 +246,8 @@ const props = defineProps({
anchorContainer: { type: String, default: '' }, //锚点滚动容器
editStatus: { type: Boolean, default: false }, //编辑状态
affixOffset: { type: Number },
tabIndex: { type: [String, Number], default: '' } //tab索引
tabIndex: { type: [String, Number], default: '' }, //tab索引
isExportAppointment: { type: Boolean, default: false } //是否导入
})
const emit = defineEmits(['handleSuccessEdit', 'policyEditSuccess'])
......@@ -757,7 +758,6 @@ watch(
exportValue: null,
detailInfo: props.apiSecondHolderInfoDto
})
console.log(' props.apiSecondHolderInfoDto', props.apiSecondHolderInfoDto)
} else {
processFormData({
domdata: secondHolderDomData,
......@@ -769,7 +769,19 @@ watch(
}
}
)
//导入预约单成功后,要重新渲染页面回显值
watch(
() => props.isExportAppointment,
newVal => {
if (newVal) {
processFormData({
domdata: secondHolderDomData,
exportValue: null,
detailInfo: props.apiSecondHolderInfoDto
})
}
}
)
// 暴露给父组件
defineExpose({
handleFormValues,
......
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