Commit a596fc56 by yuzhenWang

预约修改发布测试

parent ca481729
......@@ -187,7 +187,7 @@ const productPlan = [
required: true,
disabled: false,
placeholder: '请选择',
show: true,
show: false,
labelPosition: 'top', //标签的位置
labelWidth: '120px', //标签宽度
sm: 12, //栅格布局份数
......
......@@ -11,6 +11,7 @@
<!-- -->
<el-anchor-link
v-for="item in anchorList"
:key="item.title"
:href="'#' + item.title"
:title="item.name"
@click="e => handleLinkClick(e, item.title)"
......
......@@ -754,7 +754,7 @@ const setFormValue = (obj, formData) => {
// 重疾险要加上row.showSumInsured = true便于控制重疾险保额输入框的显示
for (const section of processedData) {
if (section.keyType == 'Array') {
if (section.key == 'existingSecurityOwner') {
if (section.key == 'existingSecurityOwner' && obj[section.key]) {
obj[section.key].forEach(item => {
if (item.insuranceCategoryBizId == 'CI') {
item.showSumInsured = true
......
......@@ -73,6 +73,7 @@
@selection-change="tableSelect"
@sort-change="sortChange"
border
max-height="380px"
>
<el-table-column type="index" width="50" label="序号" />
<el-table-column label="客户姓名" align="center" prop="customerName" width="100" />
......
......@@ -441,7 +441,6 @@ const idsObj = ref({}) //各个模块的bizId
const appointmentSummeryInfo = ref({}) //预约详情总信息
const currentFile = ref(null)
const foldInsurantInfo = ref(false) //健康信息中得受保人信息是否隐藏
const showCancelApply = ref(false) //是否显示取消申请按钮
const processInfo = ref({
fnaNo: '暂无',
status: '未完成',
......@@ -525,6 +524,7 @@ const tabsList = ref([
key: 'fnaBizId'
}
])
const assetVerification = () => {
proxy.$message.warning('此功能等待开放')
}
......@@ -670,6 +670,10 @@ function getAppointmentInfo(appointmentBizId, changeTab) {
appointmentSummeryInfo.value.apiSecondHolderInfoDto.isSecond =
res.data.apiAppointmentInfoDto.isSecond
}
// 如果受保人中与投保人关系选择得是本人,那么健康信息中问卷只要填写投保人得问卷
// if (res.data.apiInsurantInfoDto && res.data.apiInsurantInfoDto.policyholderRel == 'MYSELF') {
// foldInsurantInfo.value = true
// }
let options = fetchDictData('csf_ap_status')
options.forEach(item => {
if (item.value == appointmentSummeryInfo.value.status) {
......@@ -848,8 +852,44 @@ const getDictsData = async () => {
// ])
}
// Tab切换前的验证
const beforeTabLeave = (activeTabName, oldTabName) => {
return true
const beforeTabLeave = async (activeTabName, oldTabName) => {
foldInsurantInfo.value = false
// 获取受保人数据
let insuredData = null
if (insuredInfoRef.value) {
insuredData = await insuredInfoRef.value[0].handleFormValues('insuredInfoRef')
// 健康信息得展示内容要根据受保人与投保人得关系展示
if (activeTabName == 'questionnaires') {
// 编辑状态下
if (idsObj.value.appointmentBizId) {
// 已经点过受保人这个tab
if (insuredData && insuredData.policyholderRel && insuredData.policyholderRel == 'MYSELF') {
foldInsurantInfo.value = true
} else if (
!insuredData &&
appointmentSummeryInfo.value.apiInsurantInfoDto.policyholderRel == 'MYSELF'
) {
foldInsurantInfo.value = true
} else {
foldInsurantInfo.value = false
}
} else {
// 新增状态下
if (!insuredData) {
proxy.$message.error('请完善受保人信息')
foldInsurantInfo.value = false
return false
}
// 已经点过受保人这个tab
if (insuredData && insuredData.policyholderRel && insuredData.policyholderRel == 'MYSELF') {
foldInsurantInfo.value = true
} else {
foldInsurantInfo.value = false
}
}
}
return true
}
}
// 判断是否为数组
......
......@@ -241,7 +241,7 @@
/>
</template>
</el-table-column>
<el-table-column width="60px" align="center" label="操作">
<!-- <el-table-column width="60px" align="center" label="操作">
<template #default="scope">
<el-icon
class="deleteIcon"
......@@ -249,7 +249,7 @@
><Delete
/></el-icon>
</template>
</el-table-column>
</el-table-column> -->
</template>
<template v-if="father.key == 'userSignDtoList'">
<el-table-column label="姓名" prop="name" align="center">
......@@ -341,7 +341,7 @@
/>
</template>
</el-table-column>
<el-table-column width="60px" align="center" label="操作">
<!-- <el-table-column width="60px" align="center" label="操作">
<template #default="scope">
<el-icon
@click="deleteChildren(father, scope.$index)"
......@@ -349,7 +349,7 @@
><Delete
/></el-icon>
</template>
</el-table-column>
</el-table-column> -->
</template>
</el-table>
</el-row>
......@@ -1232,14 +1232,21 @@ const setFormValue = (obj, formData) => {
}
// 给表单表格赋值
for (const objKey in obj) {
if (objKey == section.key && section.keyType == 'Array') {
console.log('key', section.key, obj[section.key])
if (
objKey == section.key &&
section.keyType == 'Array' &&
obj[section.key] &&
obj[section.key].length > 0
) {
section.data = obj[section.key]
}
}
if (section.data) {
for (const field of section.data) {
if (field.dictType) {
// 获取字典数据
field.options = fetchDictData(field.dictType)
}
if (field.key == 'confirmAppointmentTime' && props.appointmentStatus !== 0) {
field.show = true
}
......@@ -1548,8 +1555,16 @@ watch(
}
}
)
watch(
() => props.detailInfo,
newVal => {
if (newVal) {
setFormValue(props.detailInfo, appointmentDomData)
}
}
)
if (Object.keys(props.detailInfo).length > 0) {
// processFormData()
setFormValue(props.detailInfo, appointmentDomData)
}
// 暴露给父组件
......
<template>
<div v-if="processedAppointmentData.length > 0">
<div ref="appointmentRef">
<!-- 预约为父组件得第一个tab,初次渲染得时候锚点没正常显示,先这样解决有空再解决 -->
<div style="position: relative; top: -100%; left: -100%">{{ appointmentRef }}</div>
<CommonForm
:anchorList="anchorList"
:affixOffset="affixOffset"
......@@ -386,7 +388,7 @@
:showOperationBtn="false"
>
<template #table>
<el-table v-loading="tableLoading" :data="tableData" border>
<el-table v-loading="tableLoading" :data="tableData" border height="350px">
<el-table-column label="创建人" align="center" prop="creatorName" />
<el-table-column label="创建时间" align="center" prop="createTime">
......@@ -600,6 +602,7 @@ const deleteKeyList = ref([
const searchOptions = ref({}) // 存储不同key对应的选项
const searchLoadingStates = ref({}) // 存储不同key对应的加载状态
const total = ref(0)
const anchorListReady = ref(false)
const data = reactive({
form: {},
processedAppointmentData: [], // 处理后的表单数据
......@@ -1125,6 +1128,7 @@ const processFormData = async () => {
}
console.log('processedAppointmentData.value', processedAppointmentData.value)
console.log('form.value', form.value)
anchorListReady.value = true
}
//弹出右侧抽屉
......@@ -1349,7 +1353,12 @@ const setFormValue = (obj, formData) => {
}
// 给表单表格赋值
for (const objKey in obj) {
if (objKey == section.key && section.keyType == 'Array' && obj[section.key].length > 0) {
if (
objKey == section.key &&
section.keyType == 'Array' &&
obj[section.key] &&
obj[section.key].length > 0
) {
section.data = obj[section.key]
}
}
......@@ -1578,7 +1587,7 @@ const handleFormValues = () => {
if (item.key == 'referrerDtoList') {
if (form.value['isReferrerAccompany'] == 1 && item.data.length > 0) {
item.data.forEach((item1, index) => {
for (const key in item1) {
for (const key in obj) {
if (!item1[key]) {
errorFields.value.push({
message: `陪同转介人-第${index + 1}${obj[key]}不能为空`
......@@ -1602,7 +1611,7 @@ const handleFormValues = () => {
}
if (item.key == 'userSignDtoList' && item.data.length > 0) {
item.data.forEach((item1, index) => {
for (const key in item1) {
for (const key in obj1) {
if (!item1[key]) {
errorFields.value.push({
message: `签单员-第${index + 1}${obj1[key]}不能为空`
......@@ -1651,6 +1660,8 @@ const anchorList = computed(() => {
data.push({ title: section.anchorKey, name: section.fatherTitle })
}
}
console.log('锚点', data)
return data
})
// 关闭弹窗时清空弹窗历史签约表格
......@@ -1699,14 +1710,7 @@ watch(
}
}
)
watch(
() => props.formStatus,
newVal => {
if (newVal === 'appointmentEdit') {
processFormData()
}
}
)
// 暴露给父组件
defineExpose({
handleFormValues,
......
......@@ -92,6 +92,7 @@
:on-exceed="handleExceed"
:on-success="uploadSuccess"
:before-upload="handleBeforeUpload"
ref="uploadRef"
>
<div class="uploadBox">
<el-icon size="20"><DocumentAdd /></el-icon>
......@@ -151,7 +152,7 @@ const props = defineProps({
idsObj: { type: Object, default: () => ({}) }, //父组件传递过来的id对象
pageSource: { type: String, default: '' } //页面来源
})
const uploadRef = ref(null)
const dictStore = useDictStore() //获取字典数据
const { proxy } = getCurrentInstance()
const editVisible = ref(false)
......@@ -186,11 +187,7 @@ const handleSubmitUpload = () => {
fileBizIdList: uploadedFiles.value.map(item => item.fileBizId)
}).then(response => {
getFileList()
// fileTableList.value.forEach(item => {
// if (item.materialBizId == currentUploadRow.value.materialBizId) {
// item.status = 'YSC'
// }
// })
editVisible.value = false
})
} catch (error) {
......@@ -206,7 +203,6 @@ const handleSubmitUpload = () => {
item.status = 'YSC'
}
})
console.log('fileTableList.value', fileTableList.value)
}
}
editVisible.value = false
......@@ -234,6 +230,9 @@ const fetchDictData = dictType => {
// 重置上传列表(比如关闭弹窗时清空)
const resetUploadedList = () => {
uploadedFiles.value = []
if (uploadRef.value) {
uploadRef.value.clearFiles()
}
}
const handleUploadFile = row => {
currentUploadRow.value = JSON.parse(JSON.stringify(row))
......@@ -447,6 +446,7 @@ const handleFormValues = () => {
watch(editVisible, newVal => {
if (!newVal) {
resetUploadedList()
limit.value = 10
}
})
const hasLoaded = ref(false) // 新增:是否已加载过数据
......
......@@ -225,7 +225,7 @@ const props = defineProps({
customerInfo: { type: Object, default: () => ({}) },
//客户详情回显表单用
showSubmitBtn: { type: Boolean, default: false }, //父组件状态,新增、修改
foldInsurantInfo: { type: Boolean, default: false }, //是否隐藏受保人信息
foldInsurantInfo: { type: Boolean }, //是否隐藏受保人信息
pageSource: { type: String, default: '' }, //页面来源
anchorContainer: { type: String, default: '' }, //锚点滚动容器
tabIndex: { type: [String, Number], default: '' }, //tab索引
......@@ -585,9 +585,7 @@ const hasLoaded = ref(false) // 新增:是否已加载过数据
watch(
() => props.activeName,
newVal => {
// 切换tab的时侯把表单值保存在临时变量里,方便切换回来的时候回显
tempSecondHolderForm.value = { ...form.value }
questionRef.value = null
if (newVal === 'questionnaires') {
if (!hasLoaded.value) {
getQuestionnairesInfo()
......@@ -597,6 +595,17 @@ watch(
}
)
// 受保人模块,与投保人关系改变这里要重新获取问卷信息
watch(
() => props.foldInsurantInfo,
newVal => {
questionnairesDom.value = []
getQuestionnairesInfo()
console.log('newVal', newVal)
}
)
console.log('foldInsurantInfo', props.foldInsurantInfo)
// 暴露给父组件
defineExpose({
handleFormValues,
......
......@@ -724,12 +724,12 @@ const handleSelectChange = (father, child) => {
}
break
case 'isBacktrack':
case 'isTraceable':
// 选是,展示日期
if (form.value[father.key][child.key] == '1') {
resetShow('policyEffectiveDate', true)
resetShow('backtrackDate', true)
} else {
resetShow('policyEffectiveDate', false)
resetShow('backtrackDate', false)
}
break
......@@ -795,6 +795,15 @@ const setFormValue = (obj, formData) => {
}
}
if (section.data) {
for (const filed of section.data) {
if (
filed.key == 'backtrackDate' &&
obj.apiProductPlanMainInfoDto.isTraceable &&
obj.apiProductPlanMainInfoDto.isTraceable == '1'
) {
filed.show = true
}
}
// 为附加险增加dom
if (
section.key == 'apiProductPlanAdditionalInfoDtoList' &&
......@@ -868,7 +877,12 @@ const handleSubmitForm = () => {
}
}
})
if (
submitObj.apiProductPlanMainInfoDto.isTraceable &&
submitObj.apiProductPlanMainInfoDto.isTraceable == '0'
) {
delete submitObj.apiProductPlanMainInfoDto.backtrackDate
}
if (errorFields.value.length > 0) {
proxy.$message.error(errorFields.value[0].message)
return undefined
......
......@@ -61,58 +61,58 @@
:data="tenantList"
@selection-change="tableSelect"
@sort-change="sortChange"
max-height="380px"
>
<el-table-column type="index" label="序号" width="50" />
<el-table-column label="预约编号" align="center" prop="appointmentNo" width="200" />
<el-table-column label="预约状态" align="center">
<el-table-column type="index" label="序号" width="60" fixed="left" />
<el-table-column
label="预约编号"
align="center"
prop="appointmentNo"
width="200"
fixed="left"
/>
<el-table-column label="预约状态" align="center" prop="status" fixed="left" width="100">
<template #default="scope">
<dict-tag :options="csf_ap_status" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="最终预约时间" align="center" width="180">
<el-table-column
label="产品名称"
align="center"
prop="productName"
width="200"
show-overflow-tooltip
/>
<el-table-column label="签单日" align="center" width="180" prop="signDate">
<template #default="scope">
<span>{{
scope.row.confirmAppointmentTime
? parseTime(scope.row.confirmAppointmentTime)
: '--'
}}</span>
<span>{{ scope.row.signDate ? formatToDate(scope.row.signDate) : '--' }}</span>
</template>
</el-table-column>
<el-table-column label="产品名称" align="center" prop="productName" width="150" />
<el-table-column label="保险公司" align="center" prop="companyName" width="150" />
<el-table-column
label="业务员"
align="center"
prop="businessRepresentName1"
width="150"
/>
<el-table-column label="签单员" align="center" prop="signName" width="150" />
<el-table-column label="投保人" align="center" prop="policyholder" width="150" />
<el-table-column label="受保人" align="center" prop="insurant" width="150" />
<el-table-column label="供款年期" align="center" prop="paymentTerm" width="100" />
<el-table-column label="每期保费" align="center" prop="eachIssuePremium" width="100" />
<el-table-column label="货币" align="center" width="150">
<!-- <el-table-column label="供款频率" align="center" prop="paymentFrequency" width="100">
<template #default="scope">
<dict-tag :options="bx_currency_type" :value="scope.row.currency" />
<dict-tag :options="csf_ap_frequency" :value="scope.row.paymentFrequency" />
</template>
</el-table-column> -->
<el-table-column label="供款频率" align="center" width="150" prop="paymentFrequency">
<template #default="scope">
<dict-tag :options="csf_ap_frequency" :value="scope.row.paymentFrequency" />
</template>
</el-table-column>
<el-table-column label="供款期数" align="center" prop="paymentTerm" width="100" />
<el-table-column label="每期保费" align="center" prop="eachIssuePremium" width="100" />
<el-table-column
label="意向预约时间"
align="center"
prop="intentionAppointmentTime"
width="240"
show-overflow-tooltip
>
<el-table-column label="保单币种" align="center" width="150" prop="currency">
<template #default="scope">
<span>{{
scope.row.intentionAppointmentTime
? parseTime(scope.row.intentionAppointmentTime)
: '--'
}}</span>
<dict-tag :options="bx_currency_type" :value="scope.row.currency" />
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="150">
<template #default="scope">
<span>{{ formatToDate(scope.row.createTime) }}</span>
......@@ -260,10 +260,11 @@ const data = reactive({
})
const { queryParams, form, rules } = toRefs(data)
const { bx_currency_type, csf_ap_status, csf_ap_meeting_point } = proxy.useDict(
const { bx_currency_type, csf_ap_status, csf_ap_meeting_point, csf_ap_frequency } = proxy.useDict(
'bx_currency_type',
'csf_ap_status',
'csf_ap_meeting_point'
'csf_ap_meeting_point',
'csf_ap_frequency'
)
// 基础菜单项配置(不使用 ref,因为它是静态的)
const baseDropdownItems = [
......
......@@ -31,7 +31,12 @@
<el-table-column prop="currentIssueNumber" label="当前期数" width="80" fixed="left" />
<el-table-column prop="reconciliationType" label="对账类型" width="150">
<template #default="{ row }">
{{ getDictLabel('reconciliation_type', row.reconciliationType) }}
{{
row.currentIssueNumber && row.currentIssueNumber == '1'
? '首期保费对账'
: '续期保费对账'
}}
<!-- {{ getDictLabel('reconciliation_type', row.reconciliationType) }} -->
</template>
</el-table-column>
<el-table-column prop="insuranceCompany" label="保险公司" width="150" />
......@@ -695,13 +700,13 @@ const remittanceConfig = [
label: '保险公司',
disabled: true
},
{
type: 'select',
prop: 'reconciliationType',
label: '对账类型',
disabled: true,
dictType: 'reconciliation_type'
},
// {
// type: 'select',
// prop: 'reconciliationType',
// label: '对账类型',
// disabled: true,
// dictType: 'reconciliation_type'
// },
{
type: 'upload',
prop: 'paymentVoucherList',
......@@ -1024,13 +1029,13 @@ function removeRemittance(row, index) {
// ==============新增对账结束============
const addCheckRecordConfig = [
{
type: 'select',
prop: 'reconciliationType',
label: '对账类型',
dictType: 'reconciliation_type',
rules: [{ required: true, message: '请输入对账类型', trigger: 'blur' }]
},
// {
// type: 'select',
// prop: 'reconciliationType',
// label: '对账类型',
// dictType: 'reconciliation_type',
// rules: [{ required: true, message: '请输入对账类型', trigger: 'blur' }]
// },
{
type: 'input',
prop: 'applicant',
......@@ -1239,14 +1244,6 @@ const handleSelectionChange = val => {
// 完成检核按钮是否禁用
updatePayRollStatusDisable.value = val.length === 0
}
import FileUploadPreview from '@/components/fileUploadPreview/fileUploadPreview.vue'
const onSubmit = data => {
console.log('提交给后端的数据:', data)
// 调用保存 API
}
// 获取入账状态,字典值转化方法
onMounted(async () => {
try {
......@@ -1280,7 +1277,7 @@ watch(receiptsFlag, newVal => {
if (!newVal) {
isSubmitReceipts.value = false
tipTxt.value = ''
addCheckRecordFormModel.value = {}
addCheckRecordFormModel.value = { apiPremiumRemittanceDtoList: [] }
receiptsDialogTitle.value = ''
}
})
......
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