Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-csf-front
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yuzhenWang
yd-csf-front
Commits
d10bafcd
Commit
d10bafcd
authored
Jan 14, 2026
by
Sweet Zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进对接
parent
0ba0e888
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
194 additions
and
90 deletions
+194
-90
src/api/financial/commission.js
+2
-3
src/api/sign/underwritingMain.js
+27
-1
src/views/financialCenter/financialIncome.vue
+6
-7
src/views/sign/underwritingMain/index.vue
+3
-4
src/views/sign/underwritingMain/policyDetail.vue
+156
-75
No files found.
src/api/financial/commission.js
View file @
d10bafcd
...
@@ -415,8 +415,7 @@ export function exportPayRecord(data) {
...
@@ -415,8 +415,7 @@ export function exportPayRecord(data) {
// 入账检核重新比对
// 入账检核重新比对
export
function
compareCommissionEntry
(
data
){
export
function
compareCommissionEntry
(
data
){
return
request
({
return
request
({
url
:
'/csf/api/commission/compare'
,
url
:
'/csf/api/commission/compare?commissionBizId='
+
data
,
method
:
'post'
,
method
:
'get'
,
data
:
data
})
})
}
}
src/api/sign/underwritingMain.js
View file @
d10bafcd
...
@@ -27,7 +27,7 @@ export function updateToPolicyLib(data) {
...
@@ -27,7 +27,7 @@ export function updateToPolicyLib(data) {
data
:
data
data
:
data
})
})
}
}
// 更新新单跟进
// 更新新单跟进
-基本信息
export
function
updatePolicyfollow
(
data
)
{
export
function
updatePolicyfollow
(
data
)
{
return
request
({
return
request
({
url
:
'/csf/api/policy_follow/update'
,
url
:
'/csf/api/policy_follow/update'
,
...
@@ -221,3 +221,29 @@ export function signName(data) {
...
@@ -221,3 +221,29 @@ export function signName(data) {
data
:
data
data
:
data
})
})
}
}
// 保存首期缴费
export
function
saveInitialPayment
(
data
)
{
return
request
({
url
:
'/csf/api/policy_follow/save_initial_payment'
,
method
:
'post'
,
data
:
data
})
}
// 保存邮寄信息
export
function
saveMailingInfo
(
data
)
{
return
request
({
url
:
'/csf/api/policy_follow/save_mailing_info'
,
method
:
'post'
,
data
:
data
})
}
// 批量保存介绍人
export
function
batchSaveBrokers
(
data
)
{
return
request
({
url
:
'/csf/api/policy_follow/batch_save_brokers'
,
method
:
'post'
,
data
:
data
})
}
src/views/financialCenter/financialIncome.vue
View file @
d10bafcd
...
@@ -206,18 +206,19 @@
...
@@ -206,18 +206,19 @@
<el-table-column
prop=
"commissionName"
label=
"入账项目"
width=
"120"
/>
<el-table-column
prop=
"commissionName"
label=
"入账项目"
width=
"120"
/>
<el-table-column
prop=
"reconciliationCompany"
label=
"对账公司"
width=
"120"
/>
<el-table-column
prop=
"reconciliationCompany"
label=
"对账公司"
width=
"120"
/>
<!-- <el-table-column prop="zip" label="入账状态" width="120" /> -->
<!-- <el-table-column prop="zip" label="入账状态" width="120" /> -->
<el-table-column
fixed=
"right"
label=
"操作"
min-width=
"
18
0"
>
<el-table-column
fixed=
"right"
label=
"操作"
min-width=
"
24
0"
>
<
template
#
default=
"{ row }"
>
<
template
#
default=
"{ row }"
>
<el-button
type=
"primary"
size=
"default
"
@
click=
"compareCommissionEntryapi(row)"
>
<el-button
type=
"primary"
text
size=
"small
"
@
click=
"compareCommissionEntryapi(row)"
>
重新比对
重新比对
</el-button>
</el-button>
<el-button
type=
"primary"
size=
"default
"
@
click=
"checkRecordEdit(row)"
>
<el-button
type=
"primary"
text
size=
"small
"
@
click=
"checkRecordEdit(row)"
>
修改
修改
</el-button>
</el-button>
<el-popconfirm
confirm-button-text=
"Yes"
cancel-button-text=
"No"
:icon=
"InfoFilled"
icon-color=
"#626AEF"
<el-popconfirm
confirm-button-text=
"Yes"
cancel-button-text=
"No"
:icon=
"InfoFilled"
icon-color=
"#626AEF"
title=
"确认要删除吗?"
@
confirm=
"deletePolicyCommissionApi(row)"
>
title=
"确认要删除吗?"
@
confirm=
"deletePolicyCommissionApi(row)"
>
<template
#
reference
>
<template
#
reference
>
<el-button>
删除
</el-button>
<el-button
text
type=
"danger"
size=
"small"
>
删除
</el-button>
</
template
>
</
template
>
</el-popconfirm>
</el-popconfirm>
</template>
</template>
...
@@ -921,9 +922,7 @@ const closthDialog = () => {
...
@@ -921,9 +922,7 @@ const closthDialog = () => {
// 重新比对
// 重新比对
const
compareCommissionEntryapi
=
async
(
row
)
=>
{
const
compareCommissionEntryapi
=
async
(
row
)
=>
{
try
{
try
{
const
res
=
await
compareCommissionEntry
({
const
res
=
await
compareCommissionEntry
(
row
.
commissionBizId
)
commissionBizId
:
row
.
commissionBizId
})
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
ElMessage
.
success
(
'重新比对成功'
)
ElMessage
.
success
(
'重新比对成功'
)
checkRecordQuery
()
checkRecordQuery
()
...
...
src/views/sign/underwritingMain/index.vue
View file @
d10bafcd
...
@@ -18,9 +18,9 @@
...
@@ -18,9 +18,9 @@
</el-table-column>
</el-table-column>
<el-table-column
prop=
"appointmentNo"
label=
"预约编号"
width=
"200"
sortable
/>
<el-table-column
prop=
"appointmentNo"
label=
"预约编号"
width=
"200"
sortable
/>
<el-table-column
prop=
"signDate"
label=
"签单日"
width=
"200"
sortable
/>
<el-table-column
prop=
"signDate"
label=
"签单日"
width=
"200"
sortable
/>
<el-table-column
prop=
"
policyBizId
"
label=
"最晚缴费日"
width=
"200"
sortable
/>
<el-table-column
prop=
"
latestPaymentDate
"
label=
"最晚缴费日"
width=
"200"
sortable
/>
<el-table-column
prop=
"policyHolder"
label=
"投保人"
width=
"150"
sortable
/>
<el-table-column
prop=
"policyHolder"
label=
"投保人"
width=
"150"
sortable
/>
<el-table-column
prop=
"
policyNo
"
label=
"受保人"
width=
"150"
sortable
/>
<el-table-column
prop=
"
insured
"
label=
"受保人"
width=
"150"
sortable
/>
<el-table-column
prop=
"insuranceCompany"
label=
"保险公司"
width=
"200"
sortable
/>
<el-table-column
prop=
"insuranceCompany"
label=
"保险公司"
width=
"200"
sortable
/>
<el-table-column
prop=
"productName"
label=
"产品计划"
width=
"200"
sortable
/>
<el-table-column
prop=
"productName"
label=
"产品计划"
width=
"200"
sortable
/>
<el-table-column
prop=
"paymentTerm"
label=
"缴费年期"
width=
"120"
sortable
/>
<el-table-column
prop=
"paymentTerm"
label=
"缴费年期"
width=
"120"
sortable
/>
...
@@ -339,12 +339,11 @@ const mode = ref('viewDetail')
...
@@ -339,12 +339,11 @@ const mode = ref('viewDetail')
const
handleSelect
=
async
(
e
,
row
)
=>
{
const
handleSelect
=
async
(
e
,
row
)
=>
{
selectedRow
.
value
=
{
...
row
}
selectedRow
.
value
=
{
...
row
}
mode
.
value
=
e
mode
.
value
=
e
console
.
log
(
e
,
row
)
switch
(
e
)
{
switch
(
e
)
{
case
'viewDetail'
:
case
'viewDetail'
:
// ElMessage.info('查看详情')
// ElMessage.info('查看详情')
viewDetailDialogFlag
.
value
=
true
viewDetailDialogFlag
.
value
=
true
// viewDetailFormData.value = JSON.parse(JSON.stringify(mockEditData
))
policyDetailFormData
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
selectedRow
.
value
))
// 赋值已有数据(深拷贝避免引用问题)
// 赋值已有数据(深拷贝避免引用问题)
// Object.assign(formData, JSON.parse(JSON.stringify(mockEditData)))
// Object.assign(formData, JSON.parse(JSON.stringify(mockEditData)))
break
break
...
...
src/views/sign/underwritingMain/policyDetail.vue
View file @
d10bafcd
...
@@ -197,9 +197,10 @@
...
@@ -197,9 +197,10 @@
</template>
</template>
<
script
setup
>
<
script
setup
>
import
{
ref
,
reactive
,
watch
,
nextTick
}
from
'vue'
import
{
ref
,
reactive
,
watch
,
nextTick
,
onMounted
}
from
'vue'
import
SearchForm
from
'@/components/SearchForm/SearchForm.vue'
import
SearchForm
from
'@/components/SearchForm/SearchForm.vue'
import
{
Delete
,
Edit
,
Search
,
Share
,
Upload
}
from
'@element-plus/icons-vue'
import
{
Delete
,
Edit
,
Search
,
Share
,
Upload
}
from
'@element-plus/icons-vue'
import
{
getPolicyfollow
,
updatePolicyfollow
,
saveMailingInfo
,
batchSaveBrokers
,
saveInitialPayment
}
from
'@/api/sign/underwritingMain'
const
basicInfoFormRef
=
ref
()
const
basicInfoFormRef
=
ref
()
const
basicInfoFormData
=
ref
({})
const
basicInfoFormData
=
ref
({})
const
basicInfoFormConfig
=
ref
([
const
basicInfoFormConfig
=
ref
([
...
@@ -209,9 +210,26 @@ const basicInfoFormConfig = ref([
...
@@ -209,9 +210,26 @@ const basicInfoFormConfig = ref([
label
:
'签单日'
,
label
:
'签单日'
,
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
currency
'
,
prop
:
'
signerBizId
'
,
label
:
'签单员'
,
label
:
'签单员'
,
dictType
:
'bx_currency_type'
,
api
:
'/insurance/base/api/userSignExpand/page'
,
keywordField
:
'realName'
,
requestParams
:
{
pageNo
:
1
,
pageSize
:
20
},
placeholder
:
'输入签单员姓名搜索'
,
debounceWait
:
500
,
// 自定义防抖时间
onChangeExtraFields
:
{
signer
:
'realName'
,
// 自动同步 raw.name 到 reconciliationCompany
},
valueKey
:
'userSignBizId'
,
labelKey
:
'realName'
,
transform
:
(
res
)
=>
{
console
.
log
(
res
)
return
res
?.
data
.
records
||
[]
},
rules
:
[
{
required
:
true
,
message
:
'请选择签单员'
,
trigger
:
'blur'
},
]
},
{
},
{
type
:
'input'
,
type
:
'input'
,
prop
:
'policyNo'
,
prop
:
'policyNo'
,
...
@@ -219,7 +237,7 @@ const basicInfoFormConfig = ref([
...
@@ -219,7 +237,7 @@ const basicInfoFormConfig = ref([
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
currency
'
,
prop
:
'
signLocation
'
,
label
:
'签单地点'
,
label
:
'签单地点'
,
dictType
:
'bx_currency_type'
dictType
:
'bx_currency_type'
},
},
...
@@ -231,8 +249,8 @@ const policyInfoFormRef = ref()
...
@@ -231,8 +249,8 @@ const policyInfoFormRef = ref()
const
policyInfoFormData
=
ref
({})
const
policyInfoFormData
=
ref
({})
const
policyInfoFormConfig
=
ref
([
const
policyInfoFormConfig
=
ref
([
{
{
type
:
'
date
'
,
type
:
'
input
'
,
prop
:
'
endDate
'
,
prop
:
'
policyNo
'
,
label
:
'保单号'
,
label
:
'保单号'
,
},
{
},
{
type
:
'date'
,
type
:
'date'
,
...
@@ -240,7 +258,7 @@ const policyInfoFormConfig = ref([
...
@@ -240,7 +258,7 @@ const policyInfoFormConfig = ref([
label
:
'保单生效日'
,
label
:
'保单生效日'
,
},
{
},
{
type
:
'date'
,
type
:
'date'
,
prop
:
'
effective
Date'
,
prop
:
'
policyExpiration
Date'
,
label
:
'保单截止日'
,
label
:
'保单截止日'
,
},
{
},
{
type
:
'date'
,
type
:
'date'
,
...
@@ -248,36 +266,38 @@ const policyInfoFormConfig = ref([
...
@@ -248,36 +266,38 @@ const policyInfoFormConfig = ref([
label
:
'保单核保日'
,
label
:
'保单核保日'
,
},
{
},
{
type
:
'date'
,
type
:
'date'
,
prop
:
'
underwriting
Date'
,
prop
:
'
receipt
Date'
,
label
:
'保单回执日'
,
label
:
'保单回执日'
,
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
receiptStatus
'
,
label
:
'回执状态'
,
label
:
'回执状态'
,
dictType
:
'receipt_status'
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
directPaymentEnabled
'
,
label
:
'是否开通直接支付'
,
label
:
'是否开通直接支付'
,
},
{
},
{
type
:
'input'
,
type
:
'input'
,
prop
:
'
insur
er'
,
prop
:
'
policyHold
er'
,
label
:
'保单持有人'
,
label
:
'保单持有人'
,
},
{
},
{
type
:
'input'
,
type
:
'input'
,
prop
:
'insure
r
'
,
prop
:
'insure
d
'
,
label
:
'保单受保人'
,
label
:
'保单受保人'
,
},
{
},
{
type
:
'
selec
t'
,
type
:
'
inpu
t'
,
prop
:
'insur
anceTyp
e'
,
prop
:
'insur
edAg
e'
,
label
:
'受保人年龄'
,
label
:
'受保人年龄'
,
},
{
},
{
type
:
'
selec
t'
,
type
:
'
inpu
t'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
gracePeriod
'
,
label
:
'宽限期'
,
label
:
'宽限期'
,
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
isJoin
'
,
label
:
'是否参加递增保障权益'
,
label
:
'是否参加递增保障权益'
,
dictType
:
'sys_no_yes'
},
},
])
])
...
@@ -287,68 +307,101 @@ const basicPlanFormData = ref({})
...
@@ -287,68 +307,101 @@ const basicPlanFormData = ref({})
const
basicPlanFormConfig
=
ref
([
const
basicPlanFormConfig
=
ref
([
{
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
insuranceCompanyBizIdList
'
,
label
:
'保险公司'
,
label
:
'保险公司'
,
api
:
'/insurance/base/api/insuranceCompany/page'
,
keywordField
:
'queryContent'
,
requestParams
:
{
pageNo
:
1
,
pageSize
:
20
},
placeholder
:
'输入保险公司名称搜索'
,
debounceWait
:
500
,
// 自定义防抖时间
multiple
:
true
,
valueKey
:
'insuranceCompanyBizId'
,
labelKey
:
'abbreviation'
,
transform
:
(
res
)
=>
{
console
.
log
(
res
)
return
res
?.
data
.
records
||
[]
}
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'paymentFrequency'
,
prop
:
'paymentFrequency'
,
label
:
'保险险种'
,
label
:
'保险险种'
,
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'p
aymentFrequency
'
,
prop
:
'p
roductName
'
,
label
:
'产品名称'
,
label
:
'产品名称'
,
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'paymentFrequency'
,
prop
:
'paymentFrequency'
,
label
:
'付款频率'
,
label
:
'付款频率'
,
dictType
:
'csf_ap_frequency'
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
guaranteePeriod
'
,
label
:
'保障期限'
,
label
:
'保障期限'
,
},
{
},
{
type
:
'
selec
t'
,
type
:
'
inpu
t'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
sumInsured
'
,
label
:
'保额(重疾险)'
,
label
:
'保额(重疾险)'
,
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
issueNumber
'
,
label
:
'供款期数'
,
label
:
'供款期数'
,
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'p
aymentFrequ
ency'
,
prop
:
'p
olicyCurr
ency'
,
label
:
'保单币种'
,
label
:
'保单币种'
,
dictType
:
'bx_currency_type'
},
{
},
{
type
:
'
selec
t'
,
type
:
'
inpu
t'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
initialPremium
'
,
label
:
'每期保费'
,
label
:
'每期保费'
,
inputType
:
'decimal'
,
decimalDigits
:
2
,
visible
:
(
formData
)
=>
formData
.
commissionBizType
==
'R'
,
rules
:
[
{
required
:
true
,
message
:
'请输入金额'
,
trigger
:
'blur'
},
{
pattern
:
/^
\d
+
(\.\d{1,2})?
$/
,
message
:
'最多两位小数'
,
trigger
:
'blur'
}
]
},
{
},
{
type
:
'
selec
t'
,
type
:
'
inpu
t'
,
prop
:
'p
aymentFrequenc
y'
,
prop
:
'p
olicyLev
y'
,
label
:
'保单征费'
,
label
:
'保单征费'
,
inputType
:
'decimal'
,
decimalDigits
:
2
,
visible
:
(
formData
)
=>
formData
.
commissionBizType
==
'R'
,
rules
:
[
{
required
:
true
,
message
:
'请输入金额'
,
trigger
:
'blur'
},
{
pattern
:
/^
\d
+
(\.\d{1,2})?
$/
,
message
:
'最多两位小数'
,
trigger
:
'blur'
}
]
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
paymentFrequenc
y'
,
prop
:
'
isPrepa
y'
,
label
:
'是否预缴'
,
label
:
'是否预缴'
,
dictType
:
'sys_no_yes'
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
isTraceable
'
,
label
:
'是否追溯'
,
label
:
'是否追溯'
,
dictType
:
'sys_no_yes'
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
retroactiveDate
'
,
label
:
'回溯日期'
,
label
:
'回溯日期'
,
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
initialPaymentMethod
'
,
label
:
'首期付款方式'
,
label
:
'首期付款方式'
,
dictType
:
'csf_ap_first_issue'
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
renewalPaymentMethod
'
,
label
:
'续期付款方式'
,
label
:
'续期付款方式'
,
dictType
:
'csf_ap_first_issue'
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
paymentFrequency
'
,
prop
:
'
dividendPaymentMethod
'
,
label
:
'红利付款方式'
,
label
:
'红利付款方式'
,
dictType
:
'csf_ap_dividend'
},
},
])
])
...
@@ -359,7 +412,7 @@ const firstPremiumFormData = ref({})
...
@@ -359,7 +412,7 @@ const firstPremiumFormData = ref({})
const
firstPremiumFormConfig
=
ref
([
const
firstPremiumFormConfig
=
ref
([
{
{
type
:
'input'
,
type
:
'input'
,
prop
:
'
amount
'
,
prop
:
'
initialPremium
'
,
label
:
'首期保费'
,
label
:
'首期保费'
,
inputType
:
'decimal'
,
inputType
:
'decimal'
,
decimalDigits
:
2
,
decimalDigits
:
2
,
...
@@ -369,7 +422,7 @@ const firstPremiumFormConfig = ref([
...
@@ -369,7 +422,7 @@ const firstPremiumFormConfig = ref([
]
]
},
{
},
{
type
:
'input'
,
type
:
'input'
,
prop
:
'
amount
'
,
prop
:
'
policyLevy
'
,
label
:
'保单征费'
,
label
:
'保单征费'
,
inputType
:
'decimal'
,
inputType
:
'decimal'
,
decimalDigits
:
2
,
decimalDigits
:
2
,
...
@@ -379,12 +432,12 @@ const firstPremiumFormConfig = ref([
...
@@ -379,12 +432,12 @@ const firstPremiumFormConfig = ref([
]
]
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
currency
'
,
prop
:
'
initialPaymentMethod
'
,
label
:
'首期缴费方式'
,
label
:
'首期缴费方式'
,
dictType
:
'
bx_currency_typ
e'
dictType
:
'
csf_ap_first_issu
e'
},
{
},
{
type
:
'input'
,
type
:
'input'
,
prop
:
'
amount
'
,
prop
:
'
initialPremiumPaid
'
,
label
:
'首期已缴保费'
,
label
:
'首期已缴保费'
,
inputType
:
'decimal'
,
inputType
:
'decimal'
,
decimalDigits
:
2
,
decimalDigits
:
2
,
...
@@ -394,7 +447,7 @@ const firstPremiumFormConfig = ref([
...
@@ -394,7 +447,7 @@ const firstPremiumFormConfig = ref([
]
]
},
{
},
{
type
:
'input'
,
type
:
'input'
,
prop
:
'
amount
'
,
prop
:
'
initialPremiumDue
'
,
label
:
'首期待缴保费'
,
label
:
'首期待缴保费'
,
inputType
:
'decimal'
,
inputType
:
'decimal'
,
decimalDigits
:
2
,
decimalDigits
:
2
,
...
@@ -404,7 +457,7 @@ const firstPremiumFormConfig = ref([
...
@@ -404,7 +457,7 @@ const firstPremiumFormConfig = ref([
]
]
},
{
},
{
type
:
'input'
,
type
:
'input'
,
prop
:
'
amount
'
,
prop
:
'
initialPremiumTotal
'
,
label
:
'首期缴费总额'
,
label
:
'首期缴费总额'
,
inputType
:
'decimal'
,
inputType
:
'decimal'
,
decimalDigits
:
2
,
decimalDigits
:
2
,
...
@@ -414,19 +467,25 @@ const firstPremiumFormConfig = ref([
...
@@ -414,19 +467,25 @@ const firstPremiumFormConfig = ref([
]
]
},
{
},
{
type
:
'select'
,
type
:
'select'
,
prop
:
'
statusList
'
,
prop
:
'
initialPaymentStatus
'
,
label
:
'缴费状态'
,
label
:
'缴费状态'
,
multiple
:
true
,
multiple
:
true
,
dictType
:
'csf_fortune_status'
dictType
:
'csf_fortune_status'
},
{
},
{
type
:
'date'
,
type
:
'date'
,
prop
:
'
commission
Date'
,
prop
:
'
latestPayment
Date'
,
label
:
'最晚缴费日'
,
label
:
'最晚缴费日'
,
placeholder
:
'请选择'
placeholder
:
'请选择'
},
{
},
{
type
:
'textarea'
,
type
:
'input'
,
prop
:
'policyNo'
,
prop
:
'initialPremiumDiscount'
,
label
:
'首期保费优惠'
label
:
'首期保费优惠金额'
,
inputType
:
'decimal'
,
decimalDigits
:
2
,
rules
:
[
{
required
:
true
,
message
:
'请输入金额'
,
trigger
:
'blur'
},
{
pattern
:
/^
\d
+
(\.\d{1,2})?
$/
,
message
:
'最多两位小数'
,
trigger
:
'blur'
}
]
},
},
])
])
...
@@ -436,24 +495,23 @@ const postalFormData = ref({})
...
@@ -436,24 +495,23 @@ const postalFormData = ref({})
const
postalFormConfig
=
ref
([
const
postalFormConfig
=
ref
([
{
{
type
:
'input'
,
type
:
'input'
,
prop
:
'
postalCode
'
,
prop
:
'
mailingMethod
'
,
label
:
'寄送方式'
,
label
:
'寄送方式'
,
dictType
:
'csf_ap_mailing_method'
},
{
},
{
type
:
'input'
,
type
:
'input'
,
prop
:
'address'
,
prop
:
'deliveryNo'
,
label
:
'快递单号'
,
label
:
'快递单号'
},
{
},
{
type
:
'date'
,
type
:
'date'
,
prop
:
'
address
'
,
prop
:
'
brokerSignDate
'
,
label
:
'我司签收日'
,
label
:
'我司签收日'
,
rules
:
[
rules
:
[
{
required
:
true
,
message
:
'请输入我司签收日'
,
trigger
:
'blur'
}
{
required
:
true
,
message
:
'请输入我司签收日'
,
trigger
:
'blur'
}
]
]
},
{
},
{
type
:
'date'
,
type
:
'date'
,
prop
:
'
address
'
,
prop
:
'
customerSignDate
'
,
label
:
'客户签收日'
,
label
:
'客户签收日'
,
rules
:
[
rules
:
[
{
required
:
true
,
message
:
'请输入客户签收日'
,
trigger
:
'blur'
}
{
required
:
true
,
message
:
'请输入客户签收日'
,
trigger
:
'blur'
}
...
@@ -478,18 +536,6 @@ const emit = defineEmits(['update:modelValue', 'submit', 'cancel'])
...
@@ -478,18 +536,6 @@ const emit = defineEmits(['update:modelValue', 'submit', 'cancel'])
// ===== 本地响应式数据 =====
// ===== 本地响应式数据 =====
const
defaultFormData
=
()
=>
({
const
defaultFormData
=
()
=>
({
signDate
:
''
,
agentId
:
''
,
location
:
''
,
policyNo
:
''
,
effectiveDate
:
''
,
endDate
:
''
,
underwritingDate
:
''
,
insurer
:
''
,
insuranceType
:
''
,
productName
:
''
,
paymentFrequency
:
''
,
additionalPlans
:
[]
})
})
...
@@ -518,15 +564,7 @@ const activeTab = ref('basic')
...
@@ -518,15 +564,7 @@ const activeTab = ref('basic')
// ===== 添加附加险计划方法 =====
// ===== 添加附加险计划方法 =====
const
addAdditionalPlan
=
()
=>
{
const
addAdditionalPlan
=
()
=>
{
localData
.
additionalPlans
.
push
({
localData
.
additionalPlans
.
push
({})
product
:
''
,
frequency
:
''
,
term
:
''
,
periods
:
''
,
currency
:
''
,
premium
:
''
,
fee
:
''
})
}
}
const
deleteRow
=
(
index
)
=>
{
const
deleteRow
=
(
index
)
=>
{
...
@@ -563,6 +601,48 @@ watch(
...
@@ -563,6 +601,48 @@ watch(
},
},
{
deep
:
true
}
{
deep
:
true
}
)
)
// 查询新单跟进详情
// /csf/api/policy_follow/get/vo?policyBizId=${policyBizId}
const
getPolicyfollowDetail
=
(
policyBizId
)
=>
{
getPolicyfollow
(
policyBizId
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
Object
.
assign
(
localData
,
defaultFormData
(),
res
.
data
)
policyInfoFormData
.
value
=
transformToFormData
(
res
.
data
,
policyInfoFormConfig
.
value
);
basicPlanFormData
.
value
=
transformToFormData
(
res
.
data
,
basicPlanFormConfig
.
value
);
basicInfoFormData
.
value
=
transformToFormData
(
res
.
data
,
basicInfoFormConfig
.
value
);
firstPremiumFormData
.
value
=
transformToFormData
(
res
.
data
,
firstPremiumFormConfig
.
value
);
}
})
}
// 组装表单数据
const
transformToFormData
=
(
apiData
,
formConfig
)
=>
{
const
formData
=
{};
// 遍历表单配置,逐个赋值
formConfig
.
forEach
(
item
=>
{
const
{
prop
}
=
item
;
// 根据 prop 决定如何从 apiData 取值
switch
(
prop
)
{
case
'signLocation'
:
formData
[
prop
]
=
apiData
.
signLocation
||
null
;
break
;
default
:
// 如果 prop 和后端字段同名,可以直接赋值
formData
[
prop
]
=
apiData
[
prop
]
??
null
;
}
});
return
formData
;
}
// 页面加载时调用
onMounted
(()
=>
{
getPolicyfollowDetail
(
localData
.
value
.
policyBizId
)
})
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
...
@@ -601,13 +681,14 @@ watch(
...
@@ -601,13 +681,14 @@ watch(
background-color
:
#007bff
;
background-color
:
#007bff
;
border-radius
:
5px
;
border-radius
:
5px
;
}
}
.section
h5
{
.section
h5
{
margin
:
0
0
15px
0
;
margin
:
0
0
15px
0
;
font-size
:
14px
;
font-size
:
14px
;
line-height
:
1
;
line-height
:
1
;
position
:
relative
;
position
:
relative
;
background-color
:
rgba
(
0
,
119
,
238
,
0.05
);
background-color
:
rgba
(
0
,
119
,
238
,
0.05
);
color
:
#383838
;
color
:
#383838
;
padding
:
15px
10px
;
padding
:
15px
10px
;
border-radius
:
4px
;
border-radius
:
4px
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment