Commit b567c4f0 by Sweet Zhang

新单跟进对接

parent d1d8bca2
...@@ -247,3 +247,12 @@ export function batchSaveBrokers(data) { ...@@ -247,3 +247,12 @@ export function batchSaveBrokers(data) {
data: data data: data
}) })
} }
// 通过保险公司、险种查询产品列表及参数
export function getProductList(data) {
return request({
url: '/csf/prodcut/api/relProjectProductLaunch/parameter/page',
method: 'post',
data: data
})
}
<template> <template>
<div class="editable-table"> <div class="editable-table">
<el-form <el-form ref="formRef" :model="{}" label-width="120px" size="small">
ref="formRef" <el-button type="primary" size="default" style="margin: 12px 0" @click="addRow" :disabled="disabled">
:model="{}" 添加一行
label-width="120px" </el-button>
size="small" <el-table :data="internalData" border style="width: 100%" :row-style="{ height: '48px' }"
> :cell-style="{ padding: '6px 0' }">
<el-table <el-table-column v-for="field in rowConfig" :key="field.prop" :label="field.label" :width="field.width"
:data="internalData" :min-width="field.minWidth">
border
style="width: 100%"
:row-style="{ height: '48px' }"
:cell-style="{ padding: '6px 0' }"
>
<el-table-column
v-for="field in rowConfig"
:key="field.prop"
:label="field.label"
:width="field.width"
:min-width="field.minWidth"
>
<template #default="{ row }"> <template #default="{ row }">
<component <component :is="getFieldComponent(field.type)" v-bind="getFieldProps(field, row.data)"
:is="getFieldComponent(field.type)"
v-bind="getFieldProps(field, row.data)"
@update:model-value="val => handleFieldChange(val, field, row)" @update:model-value="val => handleFieldChange(val, field, row)"
@option-change="option => handleOptionChange(option, field, row)" @option-change="option => handleOptionChange(option, field, row)"
@focus="() => loadRemoteOptions(field)" @focus="() => loadRemoteOptions(field)"
@filter-change="keyword => handleFilterChange(keyword, field)" @filter-change="keyword => handleFilterChange(keyword, field)"
:disabled="!!field.disabled || disabled" :disabled="!!field.disabled || disabled" />
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="100" fixed="right"> <el-table-column label="操作" width="100" fixed="right">
<template #default="{ $index }"> <template #default="{ $index }">
<el-button <el-button type="danger" size="small" link @click="removeRow($index)" :disabled="disabled">
type="danger"
size="small"
link
@click="removeRow($index)"
:disabled="disabled"
>
删除 删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-button
type="primary"
size="small"
style="margin-top: 12px"
@click="addRow"
:disabled="disabled"
>
添加一行
</el-button>
<!-- <el-button <!-- <el-button
type="success" type="success"
size="small" size="small"
......
...@@ -75,19 +75,12 @@ ...@@ -75,19 +75,12 @@
border border
max-height="380px" max-height="380px"
> >
<el-table-column type="index" width="50" label="序号" /> <el-table-column type="index" width="60" label="序号" />
<el-table-column label="客户姓名" align="center" prop="customerName" width="100" /> <el-table-column label="客户姓名" align="center" prop="customerName" width="100" />
<el-table-column label="状态" align="center" width="150"> <!-- <el-table-column label="状态" align="center" prop="status" width="100" :formatter="getDictLabel('csf_fna_status')"/> -->
<el-table-column label="状态" sortable align="center" prop="status" width="200">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.status == 'UNCOMPLETED'"> <span>{{ selectDictLabel(csf_fna_status, scope.row.status) }}</span>
<span style="color: #ff7d00" class="iconfont icon-yanqiweiwancheng"></span> 未完成
</span>
<span v-if="scope.row.status == 'COMPLETED'"
><span style="color: #43cf7c" class="iconfont icon-yiwancheng"></span> 已完成
</span>
<span v-if="scope.row.status == 'DRAFT'"
><span style="color: #86909c" class="iconfont icon-genjinjilu"></span> 草稿
</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
......
...@@ -71,8 +71,9 @@ ...@@ -71,8 +71,9 @@
<CommonDialog :dialogTitle='mode === "viewDetail" ? "查看详情" : "更新数据"' dialogWidth='80%' <CommonDialog :dialogTitle='mode === "viewDetail" ? "查看详情" : "更新数据"' dialogWidth='80%'
:openDialog=viewDetailDialogFlag :showAction='false' :showClose='true' @close='viewDetailDialogFlag = false' :openDialog=viewDetailDialogFlag :showAction='false' :showClose='true' @close='viewDetailDialogFlag = false'
@confirm='handleUpdateSubmit'> @confirm='handleUpdateSubmit'>
<PolicyDetail v-model="policyDetailFormData" ref="policyDetailFormRef" @submit="onSubmit" <PolicyDetail v-model="policyDetailFormData" :policyBizId="selectedRow.policyBizId" :mode="mode"
@cancel="viewDetailDialogFlag = false" /> ref="policyDetailFormRef" @submit="onSubmit" @cancel="viewDetailDialogFlag = false"
v-if="viewDetailDialogFlag" />
</CommonDialog> </CommonDialog>
...@@ -172,7 +173,6 @@ const onSubmit = async (data) => { ...@@ -172,7 +173,6 @@ const onSubmit = async (data) => {
const res = await saveMailingInfo(params) const res = await saveMailingInfo(params)
if (res.code === 200) { if (res.code === 200) {
ElMessage.success('保存邮寄信息成功') ElMessage.success('保存邮寄信息成功')
// viewDetailDialogFlag.value = false
} else { } else {
ElMessage.error(res.msg || '保存邮寄信息失败') ElMessage.error(res.msg || '保存邮寄信息失败')
} }
...@@ -184,10 +184,10 @@ const onSubmit = async (data) => { ...@@ -184,10 +184,10 @@ const onSubmit = async (data) => {
} }
const res = await updatePolicyfollow(params) const res = await updatePolicyfollow(params)
if (res.code === 200) { if (res.code === 200) {
ElMessage.success('保存基本信息成功') ElMessage.success(data.activeTab === 'basic' ? '保存基本信息成功' : '保存产品计划成功')
// viewDetailDialogFlag.value = false // viewDetailDialogFlag.value = false
} else { } else {
ElMessage.error(res.msg || '保存基本信息失败') ElMessage.error(res.msg || (data.activeTab === 'basic' ? '保存基本信息失败' : '保存产品计划失败'))
} }
} else if (data.activeTab === 'introducer') { } else if (data.activeTab === 'introducer') {
params = { params = {
...@@ -228,10 +228,7 @@ const onSubmit = async (data) => { ...@@ -228,10 +228,7 @@ const onSubmit = async (data) => {
} }
const handleClose = () => { // 处理转介人数据格式
// 可选:清空数据
}
const normalizeIntroducerData = (data) => { const normalizeIntroducerData = (data) => {
if (Array.isArray(data)) return data if (Array.isArray(data)) return data
if (data && typeof data === 'object') { if (data && typeof data === 'object') {
...@@ -407,44 +404,40 @@ const dropdownItems = [ ...@@ -407,44 +404,40 @@ const dropdownItems = [
{ label: '更新数据', value: 'updateData' }, { label: '更新数据', value: 'updateData' },
{ label: '生成签单报告', value: 'generateReport' }, { label: '生成签单报告', value: 'generateReport' },
{ label: '设置新单状态', value: 'setNewSingleStatus' }, { label: '设置新单状态', value: 'setNewSingleStatus' },
{ label: '查看关联', value: 'viewRelated' }, // { label: '查看关联', value: 'viewRelated' },
// { label: '查看记录', value: 'viewRecord' }, // { label: '查看记录', value: 'viewRecord' },
] ]
const mode = ref('viewDetail') const mode = ref('viewDetail')
const handleSelect = async (e, row) => { const handleSelect = async (e, row) => {
selectedRow.value = { ...row } selectedRow.value = { ...row }
console.log('列表点击操作', e, selectedRow.value)
mode.value = e mode.value = e
switch (e) { switch (e) {
case 'viewDetail': case 'viewDetail':
// ElMessage.info('查看详情')
viewDetailDialogFlag.value = true viewDetailDialogFlag.value = true
// 等待 DOM 更新完成
await nextTick()
if (policyDetailFormRef.value) {
// 调用子组件详情查询接口
const data = await policyDetailFormRef.value.getPolicyfollowDetail(row.policyBizId)
}
break break
case 'updateData': case 'updateData':
ElMessage.info('更新数据') if (selectedRow.value.status === '生效') {
ElMessage.warning('非新单状态,不能更新数据')
return
}
viewDetailDialogFlag.value = true
break break
case 'setNewSingleStatus': case 'setNewSingleStatus':
// ElMessage.info('设置新单状态')
editStatusDialogFlag.value = true editStatusDialogFlag.value = true
editStatusFormData.value = { editStatusFormData.value = {
status: row.status status: row.status
} }
break break
case 'viewRelated': case 'viewRelated':
// ElMessage.info('查看关联')
viewRelatedDialogFlag.value = true viewRelatedDialogFlag.value = true
break break
case 'generateReport': case 'generateReport':
generateReport(row) generateReport(row)
break break
case 'viewRecord': case 'viewRecord':
ElMessage.info('查看记录') // ElMessage.info('查看记录')
break break
default: default:
break break
...@@ -465,10 +458,15 @@ const generateReport = async (row) => { ...@@ -465,10 +458,15 @@ const generateReport = async (row) => {
fileName, fileName,
'application/pdf;charset=utf-8' 'application/pdf;charset=utf-8'
) )
if (res.code === 200) {
ElMessage.success('报告生成成功') ElMessage.success('报告生成成功')
}else{
ElMessage.error(res.msg || '报告生成失败')
}
// 可以添加下载报告的逻辑 // 可以添加下载报告的逻辑
} catch (error) { } catch (error) {
ElMessage.error(error.message || '报告生成失败') console.error(error.message || '报告生成失败')
} }
} }
......
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