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
e480df9e
Commit
e480df9e
authored
Nov 04, 2025
by
yuzhenWang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进详情发布测试
parent
ec72c02e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
665 additions
and
510 deletions
+665
-510
src/api/sign/underwritingMain.js
+61
-0
src/formJson/policyInfo.js
+109
-110
src/formJson/policyMailing.js
+17
-1
src/formJson/verifyPolicyInfo.js
+2
-2
src/utils/dict.js
+5
-1
src/views/sign/appointment/appointmentEdit.vue
+83
-25
src/views/sign/appointment/components/beneficiaryInfo.vue
+62
-32
src/views/sign/appointment/components/fileUpload.vue
+32
-19
src/views/sign/appointment/components/fnaInfo.vue
+1
-9
src/views/sign/appointment/components/insuredInfo.vue
+38
-18
src/views/sign/appointment/components/policyHolderInfo.vue
+40
-23
src/views/sign/appointment/components/policyTransferInfo.vue
+36
-6
src/views/sign/appointment/components/productPlan.vue
+57
-26
src/views/sign/appointment/components/secondHolderInfo.vue
+31
-18
src/views/sign/underwritingMain/components/brokerInfo.vue
+30
-87
src/views/sign/underwritingMain/components/policyInfo.vue
+0
-0
src/views/sign/underwritingMain/components/policyMailing.vue
+0
-0
src/views/sign/underwritingMain/components/verifyPolicyInfo.vue
+20
-93
src/views/sign/underwritingMain/followUpDetail.vue
+28
-36
src/views/sign/underwritingMain/index.vue
+13
-4
No files found.
src/api/sign/underwritingMain.js
View file @
e480df9e
...
@@ -42,6 +42,13 @@ export function getPolicyfollow(policyBizId) {
...
@@ -42,6 +42,13 @@ export function getPolicyfollow(policyBizId) {
method
:
'get'
method
:
'get'
})
})
}
}
// 获取新单跟进详情
export
function
getPolicyInfo
(
policyBizId
)
{
return
request
({
url
:
`/csf/api/policy_follow/detail/
${
policyBizId
}
`
,
method
:
'get'
})
}
// 获取新单跟进状态
// 获取新单跟进状态
export
function
getPolicyStatus
(
policyBizId
)
{
export
function
getPolicyStatus
(
policyBizId
)
{
return
request
({
return
request
({
...
@@ -73,3 +80,57 @@ export function uploadPolicyfollow(data) {
...
@@ -73,3 +80,57 @@ export function uploadPolicyfollow(data) {
data
:
data
data
:
data
})
})
}
}
// 新单跟进详情中的产品计划提交
export
function
updatePolicyProduct
(
data
)
{
return
request
({
url
:
'/csf/api/policy/update'
,
method
:
'post'
,
data
:
data
})
}
// 删除附加险
export
function
delPolicyAdditional
(
id
)
{
return
request
({
url
:
'/csf/api/policy_additional/delete?id='
+
id
,
method
:
'delete'
})
}
// 新单跟进详情中的投保人提交
export
function
updatePolicyholder
(
data
)
{
return
request
({
url
:
'/csf/api/policy/update_policyholder'
,
method
:
'post'
,
data
:
data
})
}
// 新单跟进详情中的受保人提交
export
function
updatePolicyInsurant
(
data
)
{
return
request
({
url
:
'/csf/api/policy/update_policy_insurant'
,
method
:
'post'
,
data
:
data
})
}
// 新单跟进详情中的第二持有人提交
export
function
updatePolicySecondHolder
(
data
)
{
return
request
({
url
:
'/csf/api/policy/update_policy_second_holder'
,
method
:
'post'
,
data
:
data
})
}
// 新单跟进详情中的受益人提交
export
function
updatePolicyBeneficiary
(
data
)
{
return
request
({
url
:
'/csf/api/policy_beneficiary/update/list'
,
method
:
'post'
,
data
:
data
})
}
// 删除单个受益人
export
function
delPolicyBeneficiary
(
policyBeneficiaryBizId
)
{
return
request
({
url
:
'/csf/api/policy_beneficiary/delete?policyBeneficiaryBizId='
+
policyBeneficiaryBizId
,
method
:
'delete'
})
}
src/formJson/policyInfo.js
View file @
e480df9e
...
@@ -7,39 +7,38 @@ const policyInfo = [
...
@@ -7,39 +7,38 @@ const policyInfo = [
child
:
'no'
,
//没有子级dom,直接展示
child
:
'no'
,
//没有子级dom,直接展示
fatherrequired
:
false
,
//父级必填,代表个人资料这个模块有必填项
fatherrequired
:
false
,
//父级必填,代表个人资料这个模块有必填项
data
:
[
data
:
[
{
// {
label
:
'客户姓名'
,
// label: '客户姓名',
key
:
'customerName'
,
// key: 'customerName',
domType
:
'Input'
,
// domType: 'Input',
inputType
:
'text'
,
// inputType: 'text',
required
:
false
,
// required: false,
maxLength
:
30
,
// maxLength: 30,
disabled
:
false
,
// disabled: false,
placeholder
:
'请输入'
,
// placeholder: '请输入',
show
:
true
,
// show: true,
value
:
''
,
// value: '',
labelPosition
:
'top'
,
//标签的位置
// labelPosition: 'top', //标签的位置
labelWidth
:
'120px'
,
//标签宽度
// labelWidth: '120px', //标签宽度
sm
:
8
,
//栅格布局份数
// sm: 8, //栅格布局份数
lg
:
8
//栅格布局份数
// lg: 8 //栅格布局份数
},
// },
{
// {
label
:
'客户编号'
,
// label: '客户编号',
key
:
'customerBizId'
,
// key: 'customerBizId',
domType
:
'Input'
,
// domType: 'Input',
inputType
:
'text'
,
// inputType: 'text',
required
:
false
,
// required: false,
maxLength
:
30
,
// maxLength: 30,
disabled
:
false
,
// disabled: false,
placeholder
:
'请输入'
,
// placeholder: '请输入',
show
:
true
,
// show: true,
// value: '',
value
:
''
,
// labelPosition: 'top', //标签的位置
labelPosition
:
'top'
,
//标签的位置
// labelWidth: '140px', //标签宽度
labelWidth
:
'140px'
,
//标签宽度
// sm: 8, //栅格布局份数
sm
:
8
,
//栅格布局份数
// lg: 8 //栅格布局份数
lg
:
8
//栅格布局份数
// },
},
{
{
label
:
'保单号'
,
label
:
'保单号'
,
key
:
'policyNo'
,
key
:
'policyNo'
,
...
@@ -114,53 +113,53 @@ const policyInfo = [
...
@@ -114,53 +113,53 @@ const policyInfo = [
sm
:
8
,
//栅格布局份数
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
lg
:
8
//栅格布局份数
},
},
{
//
{
label
:
'产品名称'
,
//
label: '产品名称',
key
:
'productName'
,
//
key: 'productName',
domType
:
'SearchSelect'
,
//
domType: 'SearchSelect',
required
:
false
,
//
required: false,
maxLength
:
30
,
//
maxLength: 30,
disabled
:
false
,
//
disabled: false,
placeholder
:
'请输入'
,
//
placeholder: '请输入',
show
:
true
,
//
show: true,
value
:
''
,
//
value: '',
labelWidth
:
'120px'
,
//标签宽度
//
labelWidth: '120px', //标签宽度
sm
:
8
,
//栅格布局份数
//
sm: 8, //栅格布局份数
labelPosition
:
'top'
,
//标签的位置
//
labelPosition: 'top', //标签的位置
lg
:
8
//栅格布局份数
//
lg: 8 //栅格布局份数
},
//
},
{
//
{
label
:
'产品类别'
,
//
label: '产品类别',
key
:
'productCate'
,
//
key: 'productCate',
domType
:
'Input'
,
//
domType: 'Input',
inputType
:
'text'
,
//
inputType: 'text',
required
:
false
,
//
required: false,
maxLength
:
30
,
//
maxLength: 30,
disabled
:
false
,
//
disabled: false,
placeholder
:
'请输入'
,
//
placeholder: '请输入',
show
:
true
,
//
show: true,
value
:
''
,
//
value: '',
labelPosition
:
'top'
,
//标签的位置
//
labelPosition: 'top', //标签的位置
labelWidth
:
'130px'
,
//标签宽度
//
labelWidth: '130px', //标签宽度
sm
:
8
,
//栅格布局份数
//
sm: 8, //栅格布局份数
lg
:
8
//栅格布局份数
//
lg: 8 //栅格布局份数
},
//
},
{
//
{
label
:
'供款年期'
,
//
label: '供款年期',
key
:
'paymentTerm'
,
//
key: 'paymentTerm',
domType
:
'Select'
,
//
domType: 'Select',
required
:
false
,
//
required: false,
disabled
:
false
,
//
disabled: false,
placeholder
:
'请选择'
,
//
placeholder: '请选择',
dictType
:
'paymentTerm'
,
//
dictType: 'paymentTerm',
show
:
true
,
//
show: true,
value
:
''
,
//
value: '',
labelPosition
:
'top'
,
//标签的位置
//
labelPosition: 'top', //标签的位置
labelWidth
:
'120px'
,
//标签宽度
//
labelWidth: '120px', //标签宽度
sm
:
8
,
//栅格布局份数
//
sm: 8, //栅格布局份数
lg
:
8
//栅格布局份数
//
lg: 8 //栅格布局份数
},
//
},
{
{
label
:
'期交保费'
,
label
:
'期交保费'
,
key
:
'paymentPremium'
,
key
:
'paymentPremium'
,
...
@@ -255,37 +254,37 @@ const policyInfo = [
...
@@ -255,37 +254,37 @@ const policyInfo = [
sm
:
8
,
//栅格布局份数
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
lg
:
8
//栅格布局份数
},
},
{
//
{
label
:
'受保人'
,
//
label: '受保人',
key
:
'insured'
,
//
key: 'insured',
domType
:
'Input'
,
//
domType: 'Input',
inputType
:
'text'
,
//
inputType: 'text',
required
:
false
,
//
required: false,
maxLength
:
30
,
//
maxLength: 30,
disabled
:
false
,
//
disabled: false,
placeholder
:
'请输入'
,
//
placeholder: '请输入',
show
:
true
,
//
show: true,
value
:
''
,
//
value: '',
labelPosition
:
'top'
,
//标签的位置
//
labelPosition: 'top', //标签的位置
labelWidth
:
'120px'
,
//标签宽度
//
labelWidth: '120px', //标签宽度
sm
:
8
,
//栅格布局份数
//
sm: 8, //栅格布局份数
lg
:
8
//栅格布局份数
//
lg: 8 //栅格布局份数
},
//
},
{
//
{
label
:
'币种'
,
//
label: '币种',
key
:
'currency'
,
//
key: 'currency',
domType
:
'Select'
,
//
domType: 'Select',
required
:
false
,
//
required: false,
disabled
:
false
,
//
disabled: false,
placeholder
:
'请选择'
,
//
placeholder: '请选择',
dictType
:
'bx_currency_type'
,
//
dictType: 'bx_currency_type',
show
:
true
,
//
show: true,
value
:
''
,
//
value: '',
labelPosition
:
'top'
,
//标签的位置
//
labelPosition: 'top', //标签的位置
labelWidth
:
'120px'
,
//标签宽度
//
labelWidth: '120px', //标签宽度
sm
:
8
,
//栅格布局份数
//
sm: 8, //栅格布局份数
lg
:
8
//栅格布局份数
//
lg: 8 //栅格布局份数
},
//
},
{
{
label
:
'首期保费'
,
label
:
'首期保费'
,
key
:
'initialPremium'
,
key
:
'initialPremium'
,
...
...
src/formJson/policyMailing.js
View file @
e480df9e
...
@@ -9,7 +9,23 @@ const policyMailing = [
...
@@ -9,7 +9,23 @@ const policyMailing = [
data
:
[
data
:
[
{
{
label
:
'寄送方式'
,
label
:
'寄送方式'
,
key
:
'productCate'
,
key
:
'mailingMethod'
,
domType
:
'Select'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
30
,
disabled
:
false
,
placeholder
:
'请输入'
,
dictType
:
'csf_policy_follow_mailing_method'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'快递单号'
,
key
:
'deliveryNo'
,
domType
:
'Input'
,
domType
:
'Input'
,
inputType
:
'text'
,
inputType
:
'text'
,
required
:
false
,
required
:
false
,
...
...
src/formJson/verifyPolicyInfo.js
View file @
e480df9e
...
@@ -10,13 +10,13 @@ const verifyPolicyInfo = [
...
@@ -10,13 +10,13 @@ const verifyPolicyInfo = [
{
{
label
:
'保险种类'
,
label
:
'保险种类'
,
key
:
'productCate'
,
key
:
'productCate'
,
domType
:
'Input'
,
domType
:
'Select'
,
inputType
:
'text'
,
required
:
false
,
required
:
false
,
maxLength
:
30
,
maxLength
:
30
,
disabled
:
false
,
disabled
:
false
,
placeholder
:
'请输入'
,
placeholder
:
'请输入'
,
show
:
true
,
show
:
true
,
dictType
:
'bx_product_type'
,
labelPosition
:
'top'
,
//标签的位置
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
sm
:
8
,
//栅格布局份数
...
...
src/utils/dict.js
View file @
e480df9e
...
@@ -39,7 +39,11 @@ export function useDictLists(typeLists) {
...
@@ -39,7 +39,11 @@ export function useDictLists(typeLists) {
dictArray
=
resp
.
data
.
map
(
item
=>
{
dictArray
=
resp
.
data
.
map
(
item
=>
{
item
.
dictItemList
.
forEach
(
dict
=>
{
item
.
dictItemList
.
forEach
(
dict
=>
{
dict
.
label
=
dict
.
itemLabel
dict
.
label
=
dict
.
itemLabel
dict
.
value
=
dict
.
itemValue
if
(
item
.
dictType
==
'sys_no_yes'
)
{
dict
.
value
=
Number
(
dict
.
itemValue
)
}
else
{
dict
.
value
=
dict
.
itemValue
}
})
})
return
item
return
item
})
})
...
...
src/views/sign/appointment/appointmentEdit.vue
View file @
e480df9e
...
@@ -98,6 +98,7 @@
...
@@ -98,6 +98,7 @@
:appointmentStatus=
"appointmentSummeryInfo.status"
:appointmentStatus=
"appointmentSummeryInfo.status"
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
ref=
"productPlanRef"
ref=
"productPlanRef"
@
policyEditSuccess=
"getPolicyDetail"
:pageSource=
"pageSource"
:pageSource=
"pageSource"
:showSubmitBtn=
"showSubmitBtn"
:showSubmitBtn=
"showSubmitBtn"
/>
/>
...
@@ -113,6 +114,8 @@
...
@@ -113,6 +114,8 @@
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
ref=
"policyHolderInfoRef"
ref=
"policyHolderInfoRef"
:pageSource=
"pageSource"
:pageSource=
"pageSource"
:showSubmitBtn=
"showSubmitBtn"
@
policyEditSuccess=
"getPolicyDetail"
/>
/>
</div>
</div>
<div
v-if=
"tab.name === 'insurantInfo'"
>
<div
v-if=
"tab.name === 'insurantInfo'"
>
...
@@ -126,6 +129,8 @@
...
@@ -126,6 +129,8 @@
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
ref=
"insuredInfoRef"
ref=
"insuredInfoRef"
:pageSource=
"pageSource"
:pageSource=
"pageSource"
:showSubmitBtn=
"showSubmitBtn"
@
policyEditSuccess=
"getPolicyDetail"
/>
/>
</div>
</div>
<div
v-if=
"tab.name === 'secondHolder'"
>
<div
v-if=
"tab.name === 'secondHolder'"
>
...
@@ -139,6 +144,8 @@
...
@@ -139,6 +144,8 @@
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
ref=
"secondHolderInfoRef"
ref=
"secondHolderInfoRef"
:pageSource=
"pageSource"
:pageSource=
"pageSource"
:showSubmitBtn=
"showSubmitBtn"
@
policyEditSuccess=
"getPolicyDetail"
/>
/>
</div>
</div>
<div
v-if=
"tab.name === 'beneficiary'"
>
<div
v-if=
"tab.name === 'beneficiary'"
>
...
@@ -151,6 +158,8 @@
...
@@ -151,6 +158,8 @@
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
ref=
"beneficiaryInfoRef"
ref=
"beneficiaryInfoRef"
:pageSource=
"pageSource"
:pageSource=
"pageSource"
:showSubmitBtn=
"showSubmitBtn"
@
policyEditSuccess=
"getPolicyDetail"
/>
/>
</div>
</div>
<div
v-if=
"tab.name === 'questionnaires'"
>
<div
v-if=
"tab.name === 'questionnaires'"
>
...
@@ -162,6 +171,7 @@
...
@@ -162,6 +171,7 @@
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
ref=
"questionnairesInfoRef"
ref=
"questionnairesInfoRef"
:pageSource=
"pageSource"
:pageSource=
"pageSource"
:showSubmitBtn=
"showSubmitBtn"
/>
/>
</div>
</div>
<div
v-if=
"tab.name === 'fna'"
>
<div
v-if=
"tab.name === 'fna'"
>
...
@@ -182,33 +192,50 @@
...
@@ -182,33 +192,50 @@
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
ref=
"policyTransferRef"
ref=
"policyTransferRef"
:pageSource=
"pageSource"
:pageSource=
"pageSource"
:showSubmitBtn=
"showSubmitBtn"
@
policyEditSuccess=
"getPolicyDetail"
/>
/>
</div>
</div>
<div
v-if=
"tab.name === 'accessories'"
>
<div
v-if=
"tab.name === 'accessories'"
>
<FileUpload
<FileUpload
:activeName=
"activeName"
:activeName=
"activeName"
:formStatus=
"formStatus"
:idsObj=
"idsObj"
:idsObj=
"idsObj"
:apiAppointmentInfoDto=
"appointmentSummeryInfo.apiAppointmentInfoDto"
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
:pageSource=
"pageSource"
:pageSource=
"pageSource"
:showSubmitBtn=
"showSubmitBtn"
/>
/>
</div>
</div>
<div
v-if=
"tab.name === 'policyInfo'"
>
<div
v-if=
"tab.name === 'policyInfo'"
>
<PolicyInfo
:activeName=
"activeName"
:policyBizId=
"route.query.policyBizId"
/>
<PolicyInfo
:activeName=
"activeName"
:policyBizId=
"route.query.policyBizId"
:policyFollowUpdateDto=
"policyDetailInfo.policyFollowUpdateDto"
/>
</div>
</div>
<div
v-if=
"tab.name === 'policyAccessories'"
>
<div
v-if=
"tab.name === 'policyAccessories'"
>
<PolicyFileUpload
:activeName=
"activeName"
:policyBizId=
"route.query.policyBizId"
/>
<PolicyFileUpload
:activeName=
"activeName"
:policyBizId=
"route.query.policyBizId"
/>
</div>
</div>
<div
v-if=
"tab.name === 'policyBroker'"
>
<div
v-if=
"tab.name === 'policyBroker'"
>
<PolicyBrokerInfo
:activeName=
"activeName"
:policyBizId=
"route.query.policyBizId"
/>
<PolicyBrokerInfo
:activeName=
"activeName"
:policyBizId=
"route.query.policyBizId"
:brokerList=
"policyDetailInfo.brokerList"
/>
</div>
</div>
<div
v-if=
"tab.name === 'policyMailing'"
>
<div
v-if=
"tab.name === 'policyMailing'"
>
<PolicyMailing
:activeName=
"activeName"
:policyBizId=
"route.query.policyBizId"
/>
<PolicyMailing
:activeName=
"activeName"
:policyBizId=
"route.query.policyBizId"
:policyMailing=
"policyDetailInfo.policyMailing"
/>
</div>
</div>
<div
v-if=
"tab.name === 'newpolicyTodo'"
>
新单事项
</div>
<div
v-if=
"tab.name === 'newpolicyTodo'"
>
新单事项
</div>
<div
v-if=
"tab.name === 'verifyPolicyInfo'"
>
<div
v-if=
"tab.name === 'verifyPolicyInfo'"
>
<VerifyPolicyInfo
:activeName=
"activeName"
:policyBizId=
"route.query.policyBizId"
/>
<VerifyPolicyInfo
:activeName=
"activeName"
:policyBizId=
"route.query.policyBizId"
:verifyPolicyInfo=
"policyDetailInfo.verifyPolicyInfo"
/>
</div>
</div>
</div>
</div>
</el-tab-pane>
</el-tab-pane>
...
@@ -273,6 +300,7 @@ import {
...
@@ -273,6 +300,7 @@ import {
editAppointmentDetail
,
editAppointmentDetail
,
uploadExcel
uploadExcel
}
from
'@/api/sign/appointment'
}
from
'@/api/sign/appointment'
import
{
getPolicyfollow
,
getPolicyInfo
}
from
'@/api/sign/underwritingMain'
import
{
listTenantUser
,
getInsuranceProductList
,
getAdditionalProductList
}
from
'@/api/common'
import
{
listTenantUser
,
getInsuranceProductList
,
getAdditionalProductList
}
from
'@/api/common'
import
{
Check
}
from
'@element-plus/icons-vue'
import
{
Check
}
from
'@element-plus/icons-vue'
import
{
ref
,
nextTick
,
onUnmounted
}
from
'vue'
import
{
ref
,
nextTick
,
onUnmounted
}
from
'vue'
...
@@ -286,9 +314,9 @@ const props = defineProps({
...
@@ -286,9 +314,9 @@ const props = defineProps({
source
:
{
type
:
String
,
default
:
''
},
//页面来源,不一样的页面会有不一样的操作
source
:
{
type
:
String
,
default
:
''
},
//页面来源,不一样的页面会有不一样的操作
tabName
:
{
type
:
String
,
default
:
''
},
//父组件的tab名称
tabName
:
{
type
:
String
,
default
:
''
},
//父组件的tab名称
processDetail
:
{
type
:
Object
,
default
:
()
=>
({})
},
//新增预约单时,传入的流程详情信息
processDetail
:
{
type
:
Object
,
default
:
()
=>
({})
},
//新增预约单时,传入的流程详情信息
policyDetailInfo
:
{
type
:
Object
,
default
:
()
=>
({})
}
//新单跟进传递的参数
policyDetailInfo
:
{
type
:
Object
,
default
:
()
=>
({})
},
//新单跟进传递关于保单的详情信息
policyId
:
{
type
:
Object
,
default
:
()
=>
({})
}
//新单跟进传递的Id
})
})
console
.
log
(
'props'
,
props
.
policyDetailInfo
)
const
userStore
=
useUserStore
()
const
userStore
=
useUserStore
()
const
dictStore
=
useDictStore
()
const
dictStore
=
useDictStore
()
...
@@ -308,7 +336,6 @@ const policyTransferRef = ref(null)
...
@@ -308,7 +336,6 @@ const policyTransferRef = ref(null)
const
questionnairesInfoRef
=
ref
(
null
)
const
questionnairesInfoRef
=
ref
(
null
)
const
customerInfo
=
ref
({})
const
customerInfo
=
ref
({})
const
idsObj
=
ref
({})
//各个模块的bizId
const
idsObj
=
ref
({})
//各个模块的bizId
// const appointmentSummeryInfo = ref({ apiAppointmentInfoDto: { appointmentBizId: '' } }) //预约详情总信息
const
appointmentSummeryInfo
=
ref
({})
//预约详情总信息
const
appointmentSummeryInfo
=
ref
({})
//预约详情总信息
const
currentFile
=
ref
(
null
)
const
currentFile
=
ref
(
null
)
const
processInfo
=
ref
({
const
processInfo
=
ref
({
...
@@ -736,7 +763,7 @@ const handleSubmit = type => {
...
@@ -736,7 +763,7 @@ const handleSubmit = type => {
// 编辑预约单
// 编辑预约单
editAppointmentDetail
(
submitAppointmentObj
.
value
).
then
(
res
=>
{
editAppointmentDetail
(
submitAppointmentObj
.
value
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
getAppointmentInfo
(
idsObj
.
value
.
appointmentBizId
)
//
getAppointmentInfo(idsObj.value.appointmentBizId)
appointmentInfoRef
.
value
[
0
].
handleEditStatus
(
true
)
appointmentInfoRef
.
value
[
0
].
handleEditStatus
(
true
)
productPlanRef
.
value
[
0
].
handleEditStatus
(
true
)
productPlanRef
.
value
[
0
].
handleEditStatus
(
true
)
policyHolderInfoRef
.
value
[
0
].
handleEditStatus
(
true
)
policyHolderInfoRef
.
value
[
0
].
handleEditStatus
(
true
)
...
@@ -762,6 +789,7 @@ const handleSubmit = type => {
...
@@ -762,6 +789,7 @@ const handleSubmit = type => {
}
}
})
})
}
}
getAppointmentInfo
(
idsObj
.
value
.
appointmentBizId
)
}
}
//修改预约数据
//修改预约数据
...
@@ -939,10 +967,40 @@ watch(
...
@@ -939,10 +967,40 @@ watch(
}
}
}
}
)
)
// 获取新单跟进详情数据
const
getPolicyDetail
=
()
=>
{
// 使用 Promise.all 并行发送请求
Promise
.
all
([
getPolicyfollow
(
route
.
query
.
policyBizId
),
getPolicyInfo
(
route
.
query
.
policyBizId
)])
.
then
(([
followRes
,
infoRes
])
=>
{
// 只有当两个请求都成功时才执行后续操作
if
(
followRes
.
code
===
200
&&
infoRes
.
code
===
200
)
{
// 合并两个响应数据,infoRes.data 会覆盖 followRes.data 中的同名属性
appointmentSummeryInfo
.
value
=
{
...
followRes
.
data
,
...
infoRes
.
data
}
if
(
route
.
query
.
source
==
'policyList'
)
{
appointmentSummeryInfo
.
value
.
apiAppointmentInfoDto
=
JSON
.
parse
(
JSON
.
stringify
(
appointmentSummeryInfo
.
value
.
apiProductPlanInfoDto
.
apiProductPlanMainInfoDto
)
)
}
}
})
.
catch
(
error
=>
{
// 统一错误处理(可选)
console
.
error
(
'请求失败:'
,
error
)
})
}
if
(
route
.
query
.
source
==
'policyList'
)
{
if
(
route
.
query
.
source
==
'policyList'
)
{
idsObj
.
value
.
policyBizId
=
route
.
query
.
policyBizId
idsObj
.
value
.
policyBizId
=
route
.
query
.
policyBizId
// idsObj.value.appointmentNo = route.query.appointmentNo
getCustomerInfo
(
props
.
policyDetailInfo
.
customerBizId
)
// idsObj.value.appointmentBizId = route.query.appointmentBizId
appointmentSummeryInfo
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
props
.
policyDetailInfo
))
appointmentSummeryInfo
.
value
.
apiAppointmentInfoDto
=
JSON
.
parse
(
JSON
.
stringify
(
appointmentSummeryInfo
.
value
.
apiProductPlanInfoDto
.
apiProductPlanMainInfoDto
)
)
idsObj
.
value
.
appointmentBizId
=
route
.
query
.
appointmentBizId
isEmbed
.
value
=
route
.
query
.
embed
isEmbed
.
value
=
route
.
query
.
embed
tabsList
.
value
=
[
tabsList
.
value
=
[
{
{
...
@@ -975,12 +1033,12 @@ if (route.query.source == 'policyList') {
...
@@ -975,12 +1033,12 @@ if (route.query.source == 'policyList') {
id
:
5
,
id
:
5
,
key
:
'verifyPolicyInfo'
key
:
'verifyPolicyInfo'
},
},
{
//
{
label
:
'新单事项'
,
//
label: '新单事项',
name
:
'newpolicyTodo'
,
//
name: 'newpolicyTodo',
id
:
6
,
//
id: 6,
key
:
'newpolicyTodo'
//
key: 'newpolicyTodo'
},
//
},
{
{
label
:
'产品计划'
,
label
:
'产品计划'
,
name
:
'productPlan'
,
name
:
'productPlan'
,
...
@@ -1023,13 +1081,13 @@ if (route.query.source == 'policyList') {
...
@@ -1023,13 +1081,13 @@ if (route.query.source == 'policyList') {
status
:
'0'
,
status
:
'0'
,
key
:
'questionnaireBizId'
key
:
'questionnaireBizId'
},
},
{
//
{
label
:
'关联FNA'
,
//
label: '关联FNA',
name
:
'fna'
,
//
name: 'fna',
id
:
13
,
//
id: 13,
status
:
'0'
,
//
status: '0',
key
:
'fnaBizId'
//
key: 'fnaBizId'
},
//
},
{
{
label
:
'转保声明'
,
label
:
'转保声明'
,
name
:
'policyTransfer'
,
name
:
'policyTransfer'
,
...
...
src/views/sign/appointment/components/beneficiaryInfo.vue
View file @
e480df9e
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
>
新增受益人
</el-button
>
新增受益人
</el-button
>
>
<el-button
<el-button
v-if=
"props.
idsObj.appointmentBizId
"
v-if=
"props.
showSubmitBtn
"
type=
"primary"
type=
"primary"
icon=
"EditPen"
icon=
"EditPen"
@
click=
"handleEditStatus(!editStatus)"
@
click=
"handleEditStatus(!editStatus)"
...
@@ -111,7 +111,7 @@
...
@@ -111,7 +111,7 @@
</div>
</div>
</el-row>
</el-row>
</div>
</div>
<el-row
v-if=
"props.
idsObj.appointmentBizId
"
>
<el-row
v-if=
"props.
showSubmitBtn
"
>
<el-col>
<el-col>
<div
class=
"tabButton"
>
<div
class=
"tabButton"
>
<!-- <el-button
<!-- <el-button
...
@@ -210,7 +210,8 @@ import Phone from '@/views/components/phone'
...
@@ -210,7 +210,8 @@ import Phone from '@/views/components/phone'
import
Address
from
'@/views/components/address'
import
Address
from
'@/views/components/address'
import
{
watch
,
nextTick
}
from
'vue'
import
{
watch
,
nextTick
}
from
'vue'
import
{
addCustomer
,
getCustomerDetail
,
editCustomer
,
getCustomerList
}
from
'@/api/sign/fna'
import
{
getCustomerList
}
from
'@/api/sign/fna'
import
{
updatePolicyBeneficiary
,
delPolicyBeneficiary
}
from
'@/api/sign/underwritingMain'
import
{
editBeneficiaryInfo
,
delBeneficiary
}
from
'@/api/sign/appointment'
import
{
editBeneficiaryInfo
,
delBeneficiary
}
from
'@/api/sign/appointment'
import
useDictStore
from
'@/store/modules/dict'
import
useDictStore
from
'@/store/modules/dict'
...
@@ -222,9 +223,11 @@ const props = defineProps({
...
@@ -222,9 +223,11 @@ const props = defineProps({
idsObj
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的id对象
idsObj
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的id对象
apiBeneficiaryInfoDtoList
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的预约信息的详情
apiBeneficiaryInfoDtoList
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的预约信息的详情
appointmentStatus
:
{
type
:
Number
},
//父组件传递过来的预约的状态
appointmentStatus
:
{
type
:
Number
},
//父组件传递过来的预约的状态
customerInfo
:
{
type
:
Object
,
default
:
()
=>
({})
}
//客户详情回显表单用
customerInfo
:
{
type
:
Object
,
default
:
()
=>
({})
},
//客户详情回显表单用
showSubmitBtn
:
{
type
:
Boolean
,
default
:
false
},
//父组件状态,新增、修改
pageSource
:
{
type
:
String
,
default
:
false
}
//页面来源
})
})
const
emit
=
defineEmits
([
'handleSuccessEdit'
])
const
emit
=
defineEmits
([
'handleSuccessEdit'
,
'policyEditSuccess'
])
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
// const { sys_gender } = proxy.useDict('sys_gender')
// const { sys_gender } = proxy.useDict('sys_gender')
const
showPhoneDrawer
=
ref
(
false
)
//电话抽屉开关
const
showPhoneDrawer
=
ref
(
false
)
//电话抽屉开关
...
@@ -364,6 +367,9 @@ const addBeneficiary = () => {
...
@@ -364,6 +367,9 @@ const addBeneficiary = () => {
}
}
// 删除受益人
// 删除受益人
const
deleteBeneficiary
=
(
l1
,
level1
)
=>
{
const
deleteBeneficiary
=
(
l1
,
level1
)
=>
{
console
.
log
(
'===================================='
)
console
.
log
(
'l1'
,
form
.
value
.
apiBeneficiaryInfoDtoList
[
l1
])
console
.
log
(
'===================================='
)
if
(
editStatus
.
value
)
{
if
(
editStatus
.
value
)
{
proxy
.
$modal
.
confirm
(
`编辑状态下才能删除`
,
{
showCancel
:
'0'
,
title
:
'填写提示'
})
proxy
.
$modal
.
confirm
(
`编辑状态下才能删除`
,
{
showCancel
:
'0'
,
title
:
'填写提示'
})
return
return
...
@@ -372,12 +378,25 @@ const deleteBeneficiary = (l1, level1) => {
...
@@ -372,12 +378,25 @@ const deleteBeneficiary = (l1, level1) => {
proxy
.
$modal
.
confirm
(
`至少保留一个受益人`
,
{
showCancel
:
'0'
,
title
:
'填写提示'
})
proxy
.
$modal
.
confirm
(
`至少保留一个受益人`
,
{
showCancel
:
'0'
,
title
:
'填写提示'
})
return
return
}
}
if
(
level1
.
beneficiaryBizId
)
{
if
(
level1
.
beneficiaryBizId
&&
(
props
.
pageSource
==
'fnaList'
||
props
.
pageSource
==
'appointmentList'
)
)
{
delBeneficiary
(
level1
.
beneficiaryBizId
).
then
(
res
=>
{
delBeneficiary
(
level1
.
beneficiaryBizId
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
proxy
.
$message
.
success
(
'受益人删除成功'
)
proxy
.
$message
.
success
(
'预约-受益人删除成功'
)
processedBeneficiaryData
.
value
.
splice
(
l1
,
1
)
form
.
value
.
apiBeneficiaryInfoDtoList
.
splice
(
l1
,
1
)
emit
(
'handleSuccessEdit'
)
}
})
}
else
if
(
form
.
value
.
apiBeneficiaryInfoDtoList
[
l1
].
policyBeneficiaryBizId
&&
props
.
pageSource
==
'policyList'
)
{
delPolicyBeneficiary
(
form
.
value
.
apiBeneficiaryInfoDtoList
[
l1
].
policyBeneficiaryBizId
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
proxy
.
$message
.
success
(
'新单跟进-受益人删除成功'
)
processedBeneficiaryData
.
value
.
splice
(
l1
,
1
)
processedBeneficiaryData
.
value
.
splice
(
l1
,
1
)
form
.
value
.
apiBeneficiaryInfoDtoList
.
splice
(
l1
,
1
)
form
.
value
.
apiBeneficiaryInfoDtoList
.
splice
(
l1
,
1
)
emit
(
'policyEditSuccess'
)
}
}
})
})
}
else
{
}
else
{
...
@@ -480,7 +499,11 @@ const processFormData = async obj => {
...
@@ -480,7 +499,11 @@ const processFormData = async obj => {
}
}
}
}
}
}
if
(
tempBeneficiaryDomData
.
value
.
length
>
0
&&
!
props
.
idsObj
.
appointmentBizId
)
{
if
(
tempBeneficiaryDomData
.
value
.
length
>
0
&&
!
props
.
idsObj
.
appointmentBizId
&&
props
.
pageSource
==
'fnaList'
)
{
form
.
value
=
{
...
tempBeneficiaryForm
.
value
}
form
.
value
=
{
...
tempBeneficiaryForm
.
value
}
saveKey
.
value
=
{
...
tempSaveKey
.
value
}
saveKey
.
value
=
{
...
tempSaveKey
.
value
}
addressQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempAddressQuickList
.
value
))
addressQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempAddressQuickList
.
value
))
...
@@ -489,7 +512,7 @@ const processFormData = async obj => {
...
@@ -489,7 +512,7 @@ const processFormData = async obj => {
}
else
{
}
else
{
processedBeneficiaryData
.
value
=
oldAppointmentData
.
value
=
processedData
processedBeneficiaryData
.
value
=
oldAppointmentData
.
value
=
processedData
}
}
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
showSubmitBtn
)
{
editStatus
.
value
=
true
editStatus
.
value
=
true
}
else
{
}
else
{
editStatus
.
value
=
false
editStatus
.
value
=
false
...
@@ -798,7 +821,7 @@ const setFormValue = () => {
...
@@ -798,7 +821,7 @@ const setFormValue = () => {
field
.
options
=
fetchDictData
(
field
.
dictType
)
field
.
options
=
fetchDictData
(
field
.
dictType
)
}
}
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
showSubmitBtn
)
{
field
.
disabled
=
true
field
.
disabled
=
true
}
}
}
}
...
@@ -900,14 +923,6 @@ const setFormValue = () => {
...
@@ -900,14 +923,6 @@ const setFormValue = () => {
}
else
{
}
else
{
processedBeneficiaryData
.
value
.
push
(
oldDom
[
0
])
// 详情中没有数据 ,dom应该根据默认数据来渲染
processedBeneficiaryData
.
value
.
push
(
oldDom
[
0
])
// 详情中没有数据 ,dom应该根据默认数据来渲染
}
}
// if (tempBeneficiaryDomData.value.length > 0) {
// form.value = { ...tempBeneficiaryForm.value }
// saveKey.value = { ...tempSaveKey.value }
// addressQuickList.value = JSON.parse(JSON.stringify(tempAddressQuickList.value))
// phoneQuickList.value = JSON.parse(JSON.stringify(tempPhoneQuickList.value))
// processedBeneficiaryData.value = JSON.parse(JSON.stringify(tempBeneficiaryDomData.value))
// }
// editStatus.value = true
}
}
// 获取校验失败的字段信息
// 获取校验失败的字段信息
const
getInvalidFields
=
fields
=>
{
const
getInvalidFields
=
fields
=>
{
...
@@ -936,10 +951,17 @@ const handleFormValues = () => {
...
@@ -936,10 +951,17 @@ const handleFormValues = () => {
result
=
JSON
.
parse
(
JSON
.
stringify
(
tempBeneficiaryForm
.
value
))
result
=
JSON
.
parse
(
JSON
.
stringify
(
tempBeneficiaryForm
.
value
))
}
}
const
pattern
=
/Time$/
// 以Time结尾
const
pattern
=
/Time$/
// 以Time结尾
console
.
log
(
'result'
,
result
)
for
(
const
section
of
result
[
'apiBeneficiaryInfoDtoList'
])
{
for
(
const
section
of
result
[
'apiBeneficiaryInfoDtoList'
])
{
let
submitObj
=
{}
let
submitObj
=
{}
if
(
props
.
pageSource
==
'policyList'
&&
props
.
idsObj
.
policyBizId
&&
section
.
policyBeneficiaryBizId
)
{
submitObj
[
'policyBeneficiaryBizId'
]
=
section
.
policyBeneficiaryBizId
submitObj
[
'policyBizId'
]
=
section
.
policyBizId
}
if
(
phoneOraddressKey
.
value
.
length
>
0
)
{
if
(
phoneOraddressKey
.
value
.
length
>
0
)
{
submitObj
.
addressList
=
[]
submitObj
.
addressList
=
[]
}
}
...
@@ -988,9 +1010,7 @@ const handleFormValues = () => {
...
@@ -988,9 +1010,7 @@ const handleFormValues = () => {
})
})
}
}
})
})
console
.
log
(
'===================================='
)
console
.
log
(
'受益人'
,
submitObj
)
console
.
log
(
'===================================='
)
deleteKeyList
.
value
.
forEach
(
item
=>
{
deleteKeyList
.
value
.
forEach
(
item
=>
{
delete
submitObj
[
item
]
delete
submitObj
[
item
]
})
})
...
@@ -1002,7 +1022,7 @@ const handleFormValues = () => {
...
@@ -1002,7 +1022,7 @@ const handleFormValues = () => {
}
}
console
.
log
(
'===================================='
)
console
.
log
(
'===================================='
)
console
.
log
(
'受益人'
,
submitForm
)
console
.
log
(
'
提交
受益人'
,
submitForm
)
console
.
log
(
'===================================='
)
console
.
log
(
'===================================='
)
// 删除多余字段
// 删除多余字段
...
@@ -1010,17 +1030,16 @@ const handleFormValues = () => {
...
@@ -1010,17 +1030,16 @@ const handleFormValues = () => {
}
}
// 表单提交
// 表单提交
const
submitForm
=
()
=>
{
const
submitForm
=
()
=>
{
console
.
log
(
'form.value'
,
form
.
value
)
proxy
.
$refs
[
'beneficiaryInfoFormRef'
].
validate
((
valid
,
fields
)
=>
{
proxy
.
$refs
[
'beneficiaryInfoFormRef'
].
validate
((
valid
,
fields
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
let
submitObj
=
handleFormValues
()
let
submitObj
=
handleFormValues
()
console
.
log
(
'===================================='
)
console
.
log
(
'submitObj'
,
submitObj
)
console
.
log
(
'===================================='
)
// return
// return
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
idsObj
.
appointmentBizId
&&
(
props
.
pageSource
==
'fnaList'
||
props
.
pageSource
==
'appointmentList'
)
)
{
editBeneficiaryInfo
({
editBeneficiaryInfo
({
appointmentBizId
:
props
.
idsObj
.
appointmentBizId
,
appointmentBizId
:
props
.
idsObj
.
appointmentBizId
,
apiBeneficiaryInfoDtoList
:
submitObj
apiBeneficiaryInfoDtoList
:
submitObj
...
@@ -1032,7 +1051,18 @@ const submitForm = () => {
...
@@ -1032,7 +1051,18 @@ const submitForm = () => {
}
}
})
})
}
}
if
(
props
.
idsObj
.
policyBizId
&&
props
.
pageSource
==
'policyList'
)
{
updatePolicyBeneficiary
({
policyBizId
:
props
.
idsObj
.
policyBizId
,
policyBeneficiaryList
:
submitObj
}).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
handleEditStatus
(
true
)
proxy
.
$message
.
success
(
'新单跟进-受益人修改成功'
)
emit
(
'policyEditSuccess'
)
}
})
}
errorFields
.
value
=
[]
// 清空错误信息
errorFields
.
value
=
[]
// 清空错误信息
}
else
{
}
else
{
// 获取校验失败的字段信息
// 获取校验失败的字段信息
...
@@ -1069,12 +1099,12 @@ watch(
...
@@ -1069,12 +1099,12 @@ watch(
tempAddressQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
addressQuickList
.
value
))
tempAddressQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
addressQuickList
.
value
))
tempPhoneQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
phoneQuickList
.
value
))
tempPhoneQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
phoneQuickList
.
value
))
tempBeneficiaryDomData
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
processedBeneficiaryData
.
value
))
tempBeneficiaryDomData
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
processedBeneficiaryData
.
value
))
if
(
newVal
===
'beneficiary'
)
{
if
(
newVal
===
'beneficiary'
)
{
openList
.
value
=
false
openList
.
value
=
false
setTimeout
(()
=>
{
setTimeout
(()
=>
{
// 修改状态
// 修改状态
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
showSubmitBtn
)
{
setFormValue
()
setFormValue
()
}
else
{
}
else
{
// 新增状态
// 新增状态
...
...
src/views/sign/appointment/components/fileUpload.vue
View file @
e480df9e
<
template
>
<
template
>
<!-- :limit="limit" :on-exceed="handleExceed"-->
<!-- :limit="limit" :on-exceed="handleExceed"-->
<div>
<div>
<div
class=
"fileUploadBox"
>
<!-- 来自新单跟进的不需要上传预约附件,只能看预约附件 -->
<el-upload
<div
v-if=
"props.pageSource !== 'policyList'"
>
:action=
"uploadImgUrl"
<div
class=
"fileUploadBox"
>
:headers=
"headers"
<el-upload
:show-file-list=
"false"
:action=
"uploadImgUrl"
:on-success=
"uploadSuccess"
:headers=
"headers"
:before-upload=
"handleBeforeUpload"
:show-file-list=
"false"
>
:on-success=
"uploadSuccess"
<div
class=
"uploadBox"
>
:before-upload=
"handleBeforeUpload"
<el-icon
size=
"20"
><DocumentAdd
/></el-icon>
>
<div
class=
"file"
>
选择文件
</div>
<div
class=
"uploadBox"
>
</div>
<el-icon
size=
"20"
><DocumentAdd
/></el-icon>
</el-upload>
<div
class=
"file"
>
选择文件
</div>
</div>
</el-upload>
</div>
<div
class=
"tip"
>
(支持Word,Excel,PDF,图片格式)
</div>
</div>
</div>
<div
class=
"tip"
>
(支持Word,Excel,PDF,图片格式)
</div>
<el-table
v-loading=
"loading"
:data=
"fileTableList"
>
<el-table
v-loading=
"loading"
:data=
"fileTableList"
>
<!--
<el-table-column
type=
"selection"
width=
"55"
/>
-->
<!--
<el-table-column
type=
"selection"
width=
"55"
/>
-->
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
/>
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
/>
...
@@ -45,8 +48,20 @@
...
@@ -45,8 +48,20 @@
>
>
查看
查看
</el-button>
</el-button>
<el-button
type=
"primary"
link
@
click=
"handleUpdate(scope.row)"
>
修改
</el-button>
<el-button
<el-button
type=
"danger"
link
@
click=
"handleDetele(scope.row)"
>
删除
</el-button>
v-if=
"props.pageSource !== 'policyList'"
type=
"primary"
link
@
click=
"handleUpdate(scope.row)"
>
修改
</el-button
>
<el-button
v-if=
"props.pageSource !== 'policyList'"
type=
"danger"
link
@
click=
"handleDetele(scope.row)"
>
删除
</el-button
>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -89,10 +104,8 @@ import { getToken } from '@/utils/auth'
...
@@ -89,10 +104,8 @@ import { getToken } from '@/utils/auth'
import
{
addFile
,
getAppointmentFile
,
delFile
,
editAppointmentFile
}
from
'@/api/sign/appointment'
import
{
addFile
,
getAppointmentFile
,
delFile
,
editAppointmentFile
}
from
'@/api/sign/appointment'
const
props
=
defineProps
({
const
props
=
defineProps
({
activeName
:
{
type
:
String
,
default
:
''
},
//tab名称
activeName
:
{
type
:
String
,
default
:
''
},
//tab名称
formStatus
:
{
type
:
String
,
default
:
''
},
//父组件状态,新增、修改
idsObj
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的id对象
idsObj
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的id对象
apiAppointmentInfoDto
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的预约信息的详情
pageSource
:
{
type
:
String
,
default
:
''
}
//页面来源
appointmentStatus
:
{
type
:
Number
}
//父组件传递过来的预约的状态
})
})
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
const
editVisible
=
ref
(
false
)
const
editVisible
=
ref
(
false
)
...
...
src/views/sign/appointment/components/fnaInfo.vue
View file @
e480df9e
...
@@ -178,15 +178,7 @@ const handleLian = () => {
...
@@ -178,15 +178,7 @@ const handleLian = () => {
}
}
getList
()
getList
()
}
}
const
handleCopy
=
row
=>
{
// { fnaBizId: row.fnaBizId }
subProcess
({
fnaBizId
:
row
.
fnaBizId
}).
then
(
response
=>
{
if
(
response
.
code
===
200
)
{
getList
()
proxy
.
$modal
.
msgSuccess
(
'生成副本成功'
)
}
})
}
const
rowClick
=
row
=>
{
const
rowClick
=
row
=>
{
let
data
=
{
let
data
=
{
fnaBizId
:
row
.
fnaBizId
,
fnaBizId
:
row
.
fnaBizId
,
...
...
src/views/sign/appointment/components/insuredInfo.vue
View file @
e480df9e
<!-- 新单跟进的修改提交还没写 -->
<
template
>
<
template
>
<div>
<div>
<div
v-if=
"processedinsuredData.length > 0"
>
<div
v-if=
"processedinsuredData.length > 0"
>
...
@@ -12,8 +13,9 @@
...
@@ -12,8 +13,9 @@
:disabled=
"editStatus"
:disabled=
"editStatus"
>
导入联系人
</el-button
>
导入联系人
</el-button
>
>
<!-- v-if="props.idsObj.appointmentBizId" -->
<el-button
<el-button
v-if=
"props.
idsObj.appointmentBizId
"
v-if=
"props.
showSubmitBtn
"
type=
"primary"
type=
"primary"
icon=
"EditPen"
icon=
"EditPen"
@
click=
"handleEditStatus(!editStatus)"
@
click=
"handleEditStatus(!editStatus)"
...
@@ -107,7 +109,7 @@
...
@@ -107,7 +109,7 @@
</div>
</div>
</el-row>
</el-row>
</div>
</div>
<el-row
v-if=
"props.
idsObj.appointmentBizId
"
>
<el-row
v-if=
"props.
showSubmitBtn
"
>
<el-col>
<el-col>
<div
class=
"tabButton"
>
<div
class=
"tabButton"
>
<!-- <el-button
<!-- <el-button
...
@@ -206,7 +208,7 @@ import policyDomData from '@/formJson/insured'
...
@@ -206,7 +208,7 @@ import policyDomData from '@/formJson/insured'
import
Country
from
'@/views/components/country'
import
Country
from
'@/views/components/country'
import
Phone
from
'@/views/components/phone'
import
Phone
from
'@/views/components/phone'
import
Address
from
'@/views/components/address'
import
Address
from
'@/views/components/address'
import
{
updatePolicyInsurant
}
from
'@/api/sign/underwritingMain'
import
{
watch
,
nextTick
}
from
'vue'
import
{
watch
,
nextTick
}
from
'vue'
import
{
getCustomerList
}
from
'@/api/sign/fna'
import
{
getCustomerList
}
from
'@/api/sign/fna'
import
{
editInsurantInfo
}
from
'@/api/sign/appointment'
import
{
editInsurantInfo
}
from
'@/api/sign/appointment'
...
@@ -220,9 +222,11 @@ const props = defineProps({
...
@@ -220,9 +222,11 @@ const props = defineProps({
idsObj
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的id对象
idsObj
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的id对象
apiInsurantInfoDto
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的预约信息的详情
apiInsurantInfoDto
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的预约信息的详情
appointmentStatus
:
{
type
:
Number
},
//父组件传递过来的预约的状态
appointmentStatus
:
{
type
:
Number
},
//父组件传递过来的预约的状态
customerInfo
:
{
type
:
Object
,
default
:
()
=>
({})
}
//客户详情回显表单用
customerInfo
:
{
type
:
Object
,
default
:
()
=>
({})
},
//客户详情回显表单用
showSubmitBtn
:
{
type
:
Boolean
,
default
:
false
},
//父组件状态,新增、修改
pageSource
:
{
type
:
String
,
default
:
''
}
//页面来源
})
})
const
emit
=
defineEmits
([
'handleSuccessEdit'
])
const
emit
=
defineEmits
([
'handleSuccessEdit'
,
'policyEditSuccess'
])
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
// const { csf_id_type, sys_gender } = proxy.useDict('csf_id_type', 'sys_gender')
// const { csf_id_type, sys_gender } = proxy.useDict('csf_id_type', 'sys_gender')
const
insuredInfoFormRef
=
ref
(
null
)
const
insuredInfoFormRef
=
ref
(
null
)
...
@@ -616,7 +620,11 @@ const processFormData = async obj => {
...
@@ -616,7 +620,11 @@ const processFormData = async obj => {
}
}
}
}
//当tab切换走,在切换回来的时候,需要把之前保存的值赋值回来
//当tab切换走,在切换回来的时候,需要把之前保存的值赋值回来
if
(
JSON
.
stringify
(
tempPolicyForm
.
value
)
!==
'{}'
&&
!
props
.
idsObj
.
appointmentBizId
)
{
if
(
JSON
.
stringify
(
tempPolicyForm
.
value
)
!==
'{}'
&&
!
props
.
idsObj
.
appointmentBizId
&&
props
.
pageSource
==
'fnaList'
)
{
// 客户类型为公司时,隐藏非公司信息
// 客户类型为公司时,隐藏非公司信息
if
(
if
(
tempPolicyForm
.
value
[
'customerType'
]
&&
tempPolicyForm
.
value
[
'customerType'
]
&&
...
@@ -640,7 +648,7 @@ const processFormData = async obj => {
...
@@ -640,7 +648,7 @@ const processFormData = async obj => {
}
}
}
}
}
}
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
showSubmitBtn
)
{
field
.
disabled
=
true
field
.
disabled
=
true
}
else
{
}
else
{
if
(
field
.
key
==
'age'
)
{
if
(
field
.
key
==
'age'
)
{
...
@@ -671,14 +679,19 @@ const processFormData = async obj => {
...
@@ -671,14 +679,19 @@ const processFormData = async obj => {
phoneQuickList
.
value
=
removeDuplicates
(
tempPhoneList
,
'phoneString'
)
phoneQuickList
.
value
=
removeDuplicates
(
tempPhoneList
,
'phoneString'
)
addressQuickList
.
value
=
removeDuplicates
(
tempAddressList
,
'addressString'
)
addressQuickList
.
value
=
removeDuplicates
(
tempAddressList
,
'addressString'
)
//当tab切换走,在切换回来的时候,需要把之前保存的值赋值回来
//当tab切换走,在切换回来的时候,新增情况下需要把之前保存的值赋值回来
if
(
JSON
.
stringify
(
tempPolicyForm
.
value
)
!==
'{}'
&&
!
props
.
idsObj
.
appointmentBizId
)
{
if
(
JSON
.
stringify
(
tempPolicyForm
.
value
)
!==
'{}'
&&
!
props
.
idsObj
.
appointmentBizId
&&
props
.
pageSource
==
'fnaList'
)
{
form
.
value
=
{
...
tempPolicyForm
.
value
}
form
.
value
=
{
...
tempPolicyForm
.
value
}
saveKey
.
value
=
{
...
tempSaveKey
.
value
}
saveKey
.
value
=
{
...
tempSaveKey
.
value
}
addressQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempAddressQuickList
.
value
))
addressQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempAddressQuickList
.
value
))
phoneQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempPhoneQuickList
.
value
))
phoneQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempPhoneQuickList
.
value
))
}
}
if
(
props
.
idsObj
.
appointmentBizId
)
{
// props.idsObj.appointmentBizId
if
(
props
.
showSubmitBtn
)
{
form
.
value
=
mergeObjects
(
form
.
value
,
obj
.
customerInfo
)
form
.
value
=
mergeObjects
(
form
.
value
,
obj
.
customerInfo
)
if
(
form
.
value
.
smokingAllowed
)
{
if
(
form
.
value
.
smokingAllowed
)
{
form
.
value
.
smokingAllowed
=
Number
(
form
.
value
.
smokingAllowed
)
form
.
value
.
smokingAllowed
=
Number
(
form
.
value
.
smokingAllowed
)
...
@@ -1064,12 +1077,8 @@ const submitForm = () => {
...
@@ -1064,12 +1077,8 @@ const submitForm = () => {
proxy
.
$refs
[
'insuredInfoFormRef'
].
validate
((
valid
,
fields
)
=>
{
proxy
.
$refs
[
'insuredInfoFormRef'
].
validate
((
valid
,
fields
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
let
submitObj
=
handleFormValues
()
let
submitObj
=
handleFormValues
()
console
.
log
(
'===================================='
)
if
(
props
.
idsObj
.
appointmentBizId
&&
console
.
log
(
'submitObj'
,
submitObj
)
(
props
.
pageSource
==
'fnaList'
||
props
.
pageSource
==
'appointmentList'
))
{
console
.
log
(
'===================================='
)
// return
if
(
props
.
idsObj
.
appointmentBizId
)
{
submitObj
[
'appointmentBizId'
]
=
props
.
apiInsurantInfoDto
.
appointmentBizId
submitObj
[
'appointmentBizId'
]
=
props
.
apiInsurantInfoDto
.
appointmentBizId
submitObj
[
'id'
]
=
props
.
apiInsurantInfoDto
.
id
submitObj
[
'id'
]
=
props
.
apiInsurantInfoDto
.
id
submitObj
[
'insurantBizId'
]
=
props
.
apiInsurantInfoDto
.
insurantBizId
submitObj
[
'insurantBizId'
]
=
props
.
apiInsurantInfoDto
.
insurantBizId
...
@@ -1081,7 +1090,18 @@ const submitForm = () => {
...
@@ -1081,7 +1090,18 @@ const submitForm = () => {
}
}
})
})
}
}
if
(
props
.
idsObj
.
policyBizId
&&
props
.
pageSource
==
'policyList'
)
{
submitObj
[
'policyInsurantBizId'
]
=
props
.
apiInsurantInfoDto
.
policyInsurantBizId
submitObj
[
'policyBizId'
]
=
props
.
apiInsurantInfoDto
.
policyBizId
submitObj
[
'id'
]
=
props
.
apiInsurantInfoDto
.
id
updatePolicyInsurant
(
submitObj
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
handleEditStatus
(
true
)
proxy
.
$message
.
success
(
'新单跟进-受保人修改成功'
)
emit
(
'policyEditSuccess'
)
}
})
}
errorFields
.
value
=
[]
// 清空错误信息
errorFields
.
value
=
[]
// 清空错误信息
}
else
{
}
else
{
// 获取校验失败的字段信息
// 获取校验失败的字段信息
...
@@ -1120,7 +1140,7 @@ watch(
...
@@ -1120,7 +1140,7 @@ watch(
if
(
newVal
===
'insurantInfo'
)
{
if
(
newVal
===
'insurantInfo'
)
{
openList
.
value
=
false
openList
.
value
=
false
setTimeout
(()
=>
{
setTimeout
(()
=>
{
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
showSubmitBtn
)
{
processFormData
({
processFormData
({
domdata
:
policyDomData
,
domdata
:
policyDomData
,
customerInfo
:
props
.
apiInsurantInfoDto
,
customerInfo
:
props
.
apiInsurantInfoDto
,
...
...
src/views/sign/appointment/components/policyHolderInfo.vue
View file @
e480df9e
...
@@ -12,8 +12,9 @@
...
@@ -12,8 +12,9 @@
:disabled=
"editStatus"
:disabled=
"editStatus"
>
导入联系人
</el-button
>
导入联系人
</el-button
>
>
<!-- v-if="props.idsObj.appointmentBizId" -->
<el-button
<el-button
v-if=
"props.
idsObj.appointmentBizId
"
v-if=
"props.
showSubmitBtn
"
type=
"primary"
type=
"primary"
icon=
"EditPen"
icon=
"EditPen"
@
click=
"handleEditStatus(!editStatus)"
@
click=
"handleEditStatus(!editStatus)"
...
@@ -34,17 +35,6 @@
...
@@ -34,17 +35,6 @@
<template
v-for=
"child in father.data"
:key=
"child.key"
>
<template
v-for=
"child in father.data"
:key=
"child.key"
>
<el-col
:sm=
"child.sm"
:lg=
"child.lg"
class=
"formItem"
v-if=
"child.show"
>
<el-col
:sm=
"child.sm"
:lg=
"child.lg"
class=
"formItem"
v-if=
"child.show"
>
<div>
<div>
<!-- :rules="
child.required
? [
{
required: true,
message: `${child.label}不能为空`,
trigger: 'blur'
}
]
: []
" -->
<el-form-item
<el-form-item
:label-width=
"child.labelWidth"
:label-width=
"child.labelWidth"
:label=
"child.label"
:label=
"child.label"
...
@@ -53,7 +43,6 @@
...
@@ -53,7 +43,6 @@
:label-position=
"child.labelPosition"
:label-position=
"child.labelPosition"
:rules=
"getRules(child)"
:rules=
"getRules(child)"
>
>
<!-- @input="handleInputChange(father, child)" -->
<el-input
<el-input
v-if=
"child.domType === 'Input'"
v-if=
"child.domType === 'Input'"
:type=
"child.inputType"
:type=
"child.inputType"
...
@@ -108,7 +97,7 @@
...
@@ -108,7 +97,7 @@
</div>
</div>
</el-row>
</el-row>
</div>
</div>
<el-row
v-if=
"props.
idsObj.appointmentBizId
"
>
<el-row
v-if=
"props.
showSubmitBtn
"
>
<el-col>
<el-col>
<div
class=
"tabButton"
>
<div
class=
"tabButton"
>
<!-- <el-button
<!-- <el-button
...
@@ -211,6 +200,7 @@ import Address from '@/views/components/address'
...
@@ -211,6 +200,7 @@ import Address from '@/views/components/address'
import
{
watch
,
nextTick
}
from
'vue'
import
{
watch
,
nextTick
}
from
'vue'
import
{
getCustomerList
}
from
'@/api/sign/fna'
import
{
getCustomerList
}
from
'@/api/sign/fna'
import
{
editPolicyholderInfo
}
from
'@/api/sign/appointment'
import
{
editPolicyholderInfo
}
from
'@/api/sign/appointment'
import
{
updatePolicyholder
}
from
'@/api/sign/underwritingMain'
import
useDictStore
from
'@/store/modules/dict'
import
useDictStore
from
'@/store/modules/dict'
const
dictStore
=
useDictStore
()
//获取字典数据
const
dictStore
=
useDictStore
()
//获取字典数据
...
@@ -221,12 +211,15 @@ const props = defineProps({
...
@@ -221,12 +211,15 @@ const props = defineProps({
idsObj
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的id对象
idsObj
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的id对象
apiPolicyholderInfoDto
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的预约信息的详情
apiPolicyholderInfoDto
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的预约信息的详情
appointmentStatus
:
{
type
:
Number
},
//父组件传递过来的预约的状态
appointmentStatus
:
{
type
:
Number
},
//父组件传递过来的预约的状态
customerInfo
:
{
type
:
Object
,
default
:
()
=>
({})
}
//客户详情回显表单用
customerInfo
:
{
type
:
Object
,
default
:
()
=>
({})
},
//客户详情回显表单用
showSubmitBtn
:
{
type
:
Boolean
,
default
:
false
},
//父组件状态,新增、修改
pageSource
:
{
type
:
String
,
default
:
''
}
//页面来源
})
})
//计算默认显示的日期(18年前的今天)
//计算默认显示的日期(18年前的今天)
const
defaultDisplayDate
=
ref
(
dayjs
().
subtract
(
18
,
'year'
).
toDate
())
const
defaultDisplayDate
=
ref
(
dayjs
().
subtract
(
18
,
'year'
).
toDate
())
const
emit
=
defineEmits
([
'handleSuccessEdit'
])
const
emit
=
defineEmits
([
'handleSuccessEdit'
,
'policyEditSuccess'
])
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
// const { csf_id_type, sys_gender } = proxy.useDict('csf_id_type', 'sys_gender')
// const { csf_id_type, sys_gender } = proxy.useDict('csf_id_type', 'sys_gender')
const
policyholderInfoFormRef
=
ref
(
null
)
const
policyholderInfoFormRef
=
ref
(
null
)
...
@@ -620,7 +613,11 @@ const processFormData = async obj => {
...
@@ -620,7 +613,11 @@ const processFormData = async obj => {
}
}
}
}
//当tab切换走,在切换回来的时候,需要把之前保存的值赋值回来
//当tab切换走,在切换回来的时候,需要把之前保存的值赋值回来
if
(
JSON
.
stringify
(
tempPolicyForm
.
value
)
!==
'{}'
&&
!
props
.
idsObj
.
appointmentBizId
)
{
if
(
JSON
.
stringify
(
tempPolicyForm
.
value
)
!==
'{}'
&&
!
props
.
idsObj
.
appointmentBizId
&&
props
.
pageSource
==
'fnaList'
)
{
// 客户类型为公司时,隐藏非公司信息
// 客户类型为公司时,隐藏非公司信息
if
(
if
(
tempPolicyForm
.
value
[
'customerType'
]
&&
tempPolicyForm
.
value
[
'customerType'
]
&&
...
@@ -644,8 +641,8 @@ const processFormData = async obj => {
...
@@ -644,8 +641,8 @@ const processFormData = async obj => {
}
}
}
}
}
}
// props.idsObj.appointmentBizId
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
showSubmitBtn
)
{
field
.
disabled
=
true
field
.
disabled
=
true
}
else
{
}
else
{
if
(
field
.
key
==
'age'
)
{
if
(
field
.
key
==
'age'
)
{
...
@@ -677,13 +674,18 @@ const processFormData = async obj => {
...
@@ -677,13 +674,18 @@ const processFormData = async obj => {
addressQuickList
.
value
=
removeDuplicates
(
tempAddressList
,
'addressString'
)
addressQuickList
.
value
=
removeDuplicates
(
tempAddressList
,
'addressString'
)
//当tab切换走,在切换回来的时候,需要把之前保存的值赋值回来
//当tab切换走,在切换回来的时候,需要把之前保存的值赋值回来
if
(
JSON
.
stringify
(
tempPolicyForm
.
value
)
!==
'{}'
&&
!
props
.
idsObj
.
appointmentBizId
)
{
if
(
JSON
.
stringify
(
tempPolicyForm
.
value
)
!==
'{}'
&&
!
props
.
idsObj
.
appointmentBizId
&&
props
.
pageSource
==
'fnaList'
)
{
form
.
value
=
{
...
tempPolicyForm
.
value
}
form
.
value
=
{
...
tempPolicyForm
.
value
}
saveKey
.
value
=
{
...
tempSaveKey
.
value
}
saveKey
.
value
=
{
...
tempSaveKey
.
value
}
addressQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempAddressQuickList
.
value
))
addressQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempAddressQuickList
.
value
))
phoneQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempPhoneQuickList
.
value
))
phoneQuickList
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempPhoneQuickList
.
value
))
}
}
if
(
props
.
idsObj
.
appointmentBizId
)
{
// props.idsObj.appointmentBizId
if
(
props
.
showSubmitBtn
)
{
form
.
value
=
mergeObjects
(
form
.
value
,
obj
.
customerInfo
)
form
.
value
=
mergeObjects
(
form
.
value
,
obj
.
customerInfo
)
if
(
form
.
value
.
smokingAllowed
)
{
if
(
form
.
value
.
smokingAllowed
)
{
form
.
value
.
smokingAllowed
=
Number
(
form
.
value
.
smokingAllowed
)
form
.
value
.
smokingAllowed
=
Number
(
form
.
value
.
smokingAllowed
)
...
@@ -1060,7 +1062,10 @@ const submitForm = () => {
...
@@ -1060,7 +1062,10 @@ const submitForm = () => {
if
(
valid
)
{
if
(
valid
)
{
let
submitObj
=
handleFormValues
()
let
submitObj
=
handleFormValues
()
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
idsObj
.
appointmentBizId
&&
(
props
.
pageSource
==
'fnaList'
||
props
.
pageSource
==
'appointmentList'
)
)
{
submitObj
[
'appointmentBizId'
]
=
props
.
apiPolicyholderInfoDto
.
appointmentBizId
submitObj
[
'appointmentBizId'
]
=
props
.
apiPolicyholderInfoDto
.
appointmentBizId
submitObj
[
'id'
]
=
props
.
apiPolicyholderInfoDto
.
id
submitObj
[
'id'
]
=
props
.
apiPolicyholderInfoDto
.
id
submitObj
[
'policyholderBizId'
]
=
props
.
apiPolicyholderInfoDto
.
policyholderBizId
submitObj
[
'policyholderBizId'
]
=
props
.
apiPolicyholderInfoDto
.
policyholderBizId
...
@@ -1072,6 +1077,18 @@ const submitForm = () => {
...
@@ -1072,6 +1077,18 @@ const submitForm = () => {
}
}
})
})
}
}
if
(
props
.
idsObj
.
policyBizId
&&
props
.
pageSource
==
'policyList'
)
{
submitObj
[
'policyPolicyholderBizId'
]
=
props
.
apiPolicyholderInfoDto
.
policyPolicyholderBizId
submitObj
[
'policyBizId'
]
=
props
.
apiPolicyholderInfoDto
.
policyBizId
submitObj
[
'id'
]
=
props
.
apiPolicyholderInfoDto
.
id
updatePolicyholder
(
submitObj
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
handleEditStatus
(
true
)
proxy
.
$message
.
success
(
'新单跟进-投保人修改成功'
)
emit
(
'policyEditSuccess'
)
}
})
}
errorFields
.
value
=
[]
// 清空错误信息
errorFields
.
value
=
[]
// 清空错误信息
}
else
{
}
else
{
// 获取校验失败的字段信息
// 获取校验失败的字段信息
...
@@ -1110,7 +1127,7 @@ watch(
...
@@ -1110,7 +1127,7 @@ watch(
if
(
newVal
===
'policyholder'
)
{
if
(
newVal
===
'policyholder'
)
{
openList
.
value
=
false
openList
.
value
=
false
setTimeout
(()
=>
{
setTimeout
(()
=>
{
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
showSubmitBtn
)
{
processFormData
({
processFormData
({
domdata
:
policyDomData
,
domdata
:
policyDomData
,
customerInfo
:
props
.
apiPolicyholderInfoDto
,
customerInfo
:
props
.
apiPolicyholderInfoDto
,
...
...
src/views/sign/appointment/components/policyTransferInfo.vue
View file @
e480df9e
...
@@ -65,6 +65,7 @@
...
@@ -65,6 +65,7 @@
import
policyTransferDomData
from
'@/formJson/policyTransferInfo'
import
policyTransferDomData
from
'@/formJson/policyTransferInfo'
import
{
watch
}
from
'vue'
import
{
watch
}
from
'vue'
import
{
editPolicytransfer
}
from
'@/api/sign/appointment'
import
{
editPolicytransfer
}
from
'@/api/sign/appointment'
import
{
updatePolicyProduct
}
from
'@/api/sign/underwritingMain'
import
useDictStore
from
'@/store/modules/dict'
import
useDictStore
from
'@/store/modules/dict'
const
dictStore
=
useDictStore
()
//获取字典数据
const
dictStore
=
useDictStore
()
//获取字典数据
...
@@ -75,9 +76,11 @@ const props = defineProps({
...
@@ -75,9 +76,11 @@ const props = defineProps({
formStatus
:
{
type
:
String
,
default
:
''
},
//父组件状态,新增、修改
formStatus
:
{
type
:
String
,
default
:
''
},
//父组件状态,新增、修改
idsObj
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的id对象
idsObj
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的id对象
apiAppointmentInfoDto
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的预约信息的详情
apiAppointmentInfoDto
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的预约信息的详情
appointmentStatus
:
{
type
:
Number
}
//父组件传递过来的预约的状态
appointmentStatus
:
{
type
:
Number
},
//父组件传递过来的预约的状态
showSubmitBtn
:
{
type
:
Boolean
,
default
:
false
},
//父组件状态,新增、修改
pageSource
:
{
type
:
String
,
default
:
''
}
//页面来源
})
})
const
emit
=
defineEmits
([
'handleSuccessEdit'
])
const
emit
=
defineEmits
([
'handleSuccessEdit'
,
'policyEditSuccess'
])
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
// const { csf_id_type, sys_gender } = proxy.useDict('csf_id_type', 'sys_gender')
// const { csf_id_type, sys_gender } = proxy.useDict('csf_id_type', 'sys_gender')
const
loading
=
ref
(
false
)
const
loading
=
ref
(
false
)
...
@@ -132,6 +135,9 @@ const validateEnglish = (rule, value, callback) => {
...
@@ -132,6 +135,9 @@ const validateEnglish = (rule, value, callback) => {
const
processFormData
=
async
obj
=>
{
const
processFormData
=
async
obj
=>
{
form
.
value
=
{}
form
.
value
=
{}
loading
.
value
=
true
loading
.
value
=
true
// console.log('====================================')
// console.log('传值', props.apiAppointmentInfoDto)
// console.log('====================================')
// 深拷贝原始数据
// 深拷贝原始数据
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
obj
.
domdata
))
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
obj
.
domdata
))
...
@@ -141,11 +147,17 @@ const processFormData = async obj => {
...
@@ -141,11 +147,17 @@ const processFormData = async obj => {
section
.
options
=
fetchDictData
(
section
.
dictType
)
section
.
options
=
fetchDictData
(
section
.
dictType
)
}
}
}
}
if
(
props
.
idsObj
.
appointmentBizId
)
{
// debugger
if
(
props
.
showSubmitBtn
)
{
if
(
props
.
apiAppointmentInfoDto
.
policyTransfer
)
{
if
(
props
.
apiAppointmentInfoDto
.
policyTransfer
)
{
form
.
value
.
policyTransfer
=
props
.
apiAppointmentInfoDto
.
policyTransfer
form
.
value
.
policyTransfer
=
props
.
apiAppointmentInfoDto
.
policyTransfer
console
.
log
(
'===================================='
)
console
.
log
(
'表单数据'
,
form
.
value
)
console
.
log
(
'===================================='
)
}
}
}
}
console
.
log
(
'转报form'
,
form
.
value
)
policyTransferData
.
value
=
processedData
policyTransferData
.
value
=
processedData
loading
.
value
=
false
loading
.
value
=
false
}
}
...
@@ -207,17 +219,35 @@ const submitForm = () => {
...
@@ -207,17 +219,35 @@ const submitForm = () => {
if
(
valid
)
{
if
(
valid
)
{
let
submitObj
=
JSON
.
parse
(
JSON
.
stringify
(
props
.
apiAppointmentInfoDto
))
let
submitObj
=
JSON
.
parse
(
JSON
.
stringify
(
props
.
apiAppointmentInfoDto
))
submitObj
.
policyTransfer
=
form
.
value
.
policyTransfer
submitObj
.
policyTransfer
=
form
.
value
.
policyTransfer
submitObj
.
appointmentBizId
=
props
.
idsObj
.
appointmentBizId
if
(
if
(
props
.
idsObj
.
appointmentBizId
)
{
props
.
idsObj
.
appointmentBizId
&&
(
props
.
pageSource
==
'fnaList'
||
props
.
pageSource
==
'appointmentList'
)
)
{
submitObj
.
appointmentBizId
=
props
.
idsObj
.
appointmentBizId
editPolicytransfer
(
submitObj
).
then
(
res
=>
{
editPolicytransfer
(
submitObj
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
// handleEditStatus(true)
// handleEditStatus(true)
proxy
.
$message
.
success
(
'转保声明修改成功'
)
proxy
.
$message
.
success
(
'
预约-
转保声明修改成功'
)
emit
(
'handleSuccessEdit'
)
emit
(
'handleSuccessEdit'
)
}
}
})
})
}
}
if
(
props
.
idsObj
.
policyBizId
&&
props
.
pageSource
==
'policyList'
)
{
// submitObj.policyBizId = props.idsObj.policyBizId
// console.log('转包声明', submitObj)
// return
updatePolicyProduct
({
policyBizId
:
props
.
idsObj
.
policyBizId
,
apiProductPlanMainInfoDto
:
submitObj
}).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
// handleEditStatus(true)
proxy
.
$message
.
success
(
'新单跟进-转保声明修改成功'
)
emit
(
'policyEditSuccess'
)
}
})
}
errorFields
.
value
=
[]
// 清空错误信息
errorFields
.
value
=
[]
// 清空错误信息
}
else
{
}
else
{
// 获取校验失败的字段信息
// 获取校验失败的字段信息
...
...
src/views/sign/appointment/components/productPlan.vue
View file @
e480df9e
...
@@ -4,8 +4,9 @@
...
@@ -4,8 +4,9 @@
<el-row>
<el-row>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<div
class=
"topBtn"
>
<div
class=
"topBtn"
>
<!-- v-if="props.idsObj.appointmentBizId" -->
<el-button
<el-button
v-if=
"props.
idsObj.appointmentBizId
"
v-if=
"props.
showSubmitBtn
"
type=
"primary"
type=
"primary"
icon=
"EditPen"
icon=
"EditPen"
@
click=
"handleEditStatus(!editStatus)"
@
click=
"handleEditStatus(!editStatus)"
...
@@ -221,9 +222,10 @@
...
@@ -221,9 +222,10 @@
import
useDictStore
from
'@/store/modules/dict'
import
useDictStore
from
'@/store/modules/dict'
import
productDomData
from
'@/formJson/productPlan'
import
productDomData
from
'@/formJson/productPlan'
import
{
watch
}
from
'vue'
import
{
watch
}
from
'vue'
import
{
addfanForm
,
getfanFormDetail
,
editFanForm
,
getCustomerList
}
from
'@/api/sign/fna'
import
{
getInsuranceProductList
,
getAdditionalProductList
}
from
'@/api/common'
import
{
getInsuranceProductList
,
getAdditionalProductList
}
from
'@/api/common'
import
{
editProductPlanInfo
,
delAdditional
}
from
'@/api/sign/appointment'
import
{
editProductPlanInfo
,
delAdditional
}
from
'@/api/sign/appointment'
import
{
updatePolicyProduct
,
delPolicyAdditional
}
from
'@/api/sign/underwritingMain'
import
useUserStore
from
'@/store/modules/user'
import
useUserStore
from
'@/store/modules/user'
const
userStore
=
useUserStore
()
const
userStore
=
useUserStore
()
const
dictStore
=
useDictStore
()
//获取字典数据
const
dictStore
=
useDictStore
()
//获取字典数据
...
@@ -235,12 +237,12 @@ const props = defineProps({
...
@@ -235,12 +237,12 @@ const props = defineProps({
dictTypeLists
:
{
type
:
Array
,
default
:
()
=>
[]
}
,
//多个字典值数据
dictTypeLists
:
{
type
:
Array
,
default
:
()
=>
[]
}
,
//多个字典值数据
formStatus
:
{
type
:
String
,
default
:
''
}
,
//父组件状态,新增、修改
formStatus
:
{
type
:
String
,
default
:
''
}
,
//父组件状态,新增、修改
showSubmitBtn
:
{
type
:
Boolean
,
default
:
false
}
,
//父组件状态,新增、修改
showSubmitBtn
:
{
type
:
Boolean
,
default
:
false
}
,
//父组件状态,新增、修改
pageSource
:
{
type
:
String
,
default
:
false
}
,
//页面来源
pageSource
:
{
type
:
String
,
default
:
''
}
,
//页面来源
idsObj
:
{
type
:
Object
,
default
:
()
=>
({
}
)
}
,
//父组件传递过来的id对象
idsObj
:
{
type
:
Object
,
default
:
()
=>
({
}
)
}
,
//父组件传递过来的id对象
apiProductPlanInfoDto
:
{
type
:
Object
,
default
:
()
=>
({
}
)
}
,
//父组件传递过来的预约信息的详情
apiProductPlanInfoDto
:
{
type
:
Object
,
default
:
()
=>
({
}
)
}
,
//父组件传递过来的预约信息的详情
appointmentStatus
:
{
type
:
Number
}
//父组件传递过来的预约的状态
appointmentStatus
:
{
type
:
Number
}
//父组件传递过来的预约的状态
}
)
}
)
const
emit
=
defineEmits
([
'handleSuccessEdit'
])
const
emit
=
defineEmits
([
'handleSuccessEdit'
,
'policyEditSuccess'
])
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
// const
{
sys_no_yes
}
=
proxy
.
useDict
(
'sys_no_yes'
)
// const
{
sys_no_yes
}
=
proxy
.
useDict
(
'sys_no_yes'
)
const
saveKey
=
ref
({
}
)
// 用于存储当前点击的drawer框返回的对象,修改的时候回显值也要存key
const
saveKey
=
ref
({
}
)
// 用于存储当前点击的drawer框返回的对象,修改的时候回显值也要存key
...
@@ -469,8 +471,12 @@ const processFormData = async () => {
...
@@ -469,8 +471,12 @@ const processFormData = async () => {
// 证明是修改
// 证明是修改
if
(
props
.
showSubmitBtn
)
{
if
(
props
.
showSubmitBtn
)
{
editStatus
.
value
=
true
editStatus
.
value
=
true
processedProductData
.
value
=
processedData
// processedProductData.value = processedData
// setFormValue(props.apiProductPlanInfoDto, processedData)
//在流程和预约的时候要调用这个方法回显修改数据
console
.
log
(
'===================================='
)
console
.
log
(
'props.apiProductPlanInfoDto'
,
props
.
apiProductPlanInfoDto
)
console
.
log
(
'===================================='
)
setFormValue
(
props
.
apiProductPlanInfoDto
,
processedData
)
}
else
{
}
else
{
editStatus
.
value
=
false
editStatus
.
value
=
false
processedProductData
.
value
=
processedData
processedProductData
.
value
=
processedData
...
@@ -484,7 +490,7 @@ const addChildren = father => {
...
@@ -484,7 +490,7 @@ const addChildren = father => {
}
}
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
processedProductData
.
value
))
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
processedProductData
.
value
))
let
obj
=
{
let
obj
=
{
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
//
id: Date.now() + Math.floor(Math.random() * 1000), //唯一标识
span
:
24
,
//栅格布局份数
span
:
24
,
//栅格布局份数
childTitle
:
'附加险'
,
childTitle
:
'附加险'
,
deleteBtn
:
true
,
deleteBtn
:
true
,
...
@@ -628,7 +634,11 @@ const deleteChildren = (father, childIndex) => {
...
@@ -628,7 +634,11 @@ const deleteChildren = (father, childIndex) => {
return
return
}
}
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
processedProductData
.
value
))
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
processedProductData
.
value
))
if
(
props
.
idsObj
.
appointmentBizId
&&
form
.
value
[
father
.
key
][
childIndex
].
additionalBizId
)
{
if
(
props
.
idsObj
.
appointmentBizId
&&
form
.
value
[
father
.
key
][
childIndex
].
additionalBizId
&&
(
props
.
pageSource
==
'appointmentList'
||
props
.
pageSource
==
'fnaList'
)
)
{
delAdditional
(
form
.
value
[
father
.
key
][
childIndex
].
additionalBizId
).
then
(
res
=>
{
delAdditional
(
form
.
value
[
father
.
key
][
childIndex
].
additionalBizId
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
proxy
.
$message
.
success
(
'附加险删除成功'
)
proxy
.
$message
.
success
(
'附加险删除成功'
)
...
@@ -639,6 +649,25 @@ const deleteChildren = (father, childIndex) => {
...
@@ -639,6 +649,25 @@ const deleteChildren = (father, childIndex) => {
}
}
//更新form表单对应的数据,以便收集填写的值
//更新form表单对应的数据,以便收集填写的值
form
.
value
[
father
.
key
].
splice
(
childIndex
,
1
)
form
.
value
[
father
.
key
].
splice
(
childIndex
,
1
)
emit
(
'handleSuccessEdit'
)
}
}
)
}
else
if
(
props
.
idsObj
.
policyBizId
&&
form
.
value
[
father
.
key
][
childIndex
].
id
&&
props
.
pageSource
==
'policyList'
)
{
delPolicyAdditional
(
form
.
value
[
father
.
key
][
childIndex
].
id
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
proxy
.
$message
.
success
(
'附加险删除成功'
)
for
(
const
section
of
processedData
)
{
if
(
father
.
key
==
'apiProductPlanAdditionalInfoDtoList'
&&
section
.
key
==
father
.
key
)
{
section
.
data
.
splice
(
childIndex
,
1
)
}
}
//更新form表单对应的数据,以便收集填写的值
form
.
value
[
father
.
key
].
splice
(
childIndex
,
1
)
emit
(
'policyEditSuccess'
)
}
}
}
)
}
)
}
else
{
}
else
{
...
@@ -741,7 +770,7 @@ const setFormValue = (obj, formData) => {
...
@@ -741,7 +770,7 @@ const setFormValue = (obj, formData) => {
}
}
// 2.根据最新的表单数据更新processedProductData的值,因为有些模块是多项的,所以表单数据要和dom对应上,防止dom有form表单里没有对应的数据会报错
// 2.根据最新的表单数据更新processedProductData的值,因为有些模块是多项的,所以表单数据要和dom对应上,防止dom有form表单里没有对应的数据会报错
let
newChildren
=
{
let
newChildren
=
{
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
//
id: Date.now() + Math.floor(Math.random() * 1000), //唯一标识
span
:
24
,
//栅格布局份数
span
:
24
,
//栅格布局份数
childTitle
:
'附加险'
,
childTitle
:
'附加险'
,
deleteBtn
:
true
,
deleteBtn
:
true
,
...
@@ -889,7 +918,9 @@ const setFormValue = (obj, formData) => {
...
@@ -889,7 +918,9 @@ const setFormValue = (obj, formData) => {
key
==
'apiProductPlanAdditionalInfoDtoList'
&&
key
==
'apiProductPlanAdditionalInfoDtoList'
&&
newForm
[
section
.
key
].
length
>
0
newForm
[
section
.
key
].
length
>
0
)
{
)
{
section
.
data
.
push
(
newChildren
)
for
(
let
i
=
0
;
i
<
newForm
[
section
.
key
].
length
;
i
++
)
{
section
.
data
.
push
(
newChildren
)
}
}
}
for
(
const
field
of
section
.
data
)
{
for
(
const
field
of
section
.
data
)
{
if
(
key
==
'apiProductPlanMainInfoDto'
)
{
if
(
key
==
'apiProductPlanMainInfoDto'
)
{
...
@@ -906,7 +937,7 @@ const setFormValue = (obj, formData) => {
...
@@ -906,7 +937,7 @@ const setFormValue = (obj, formData) => {
if
(
section
.
child
==
'yes'
&&
field
.
children
&&
field
.
children
.
length
>
0
)
{
if
(
section
.
child
==
'yes'
&&
field
.
children
&&
field
.
children
.
length
>
0
)
{
for
(
const
child
of
field
.
children
)
{
for
(
const
child
of
field
.
children
)
{
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
showSubmitBtn
)
{
child
.
disabled
=
true
child
.
disabled
=
true
}
else
{
}
else
{
child
.
disabled
=
false
child
.
disabled
=
false
...
@@ -917,7 +948,9 @@ const setFormValue = (obj, formData) => {
...
@@ -917,7 +948,9 @@ const setFormValue = (obj, formData) => {
}
}
}
}
}
}
form
.
value
=
newForm
form
.
value
=
newForm
processedProductData
.
value
=
oldProductDomData
.
value
=
processedData
processedProductData
.
value
=
oldProductDomData
.
value
=
processedData
// 保存一份就得表单数据便于做撤销操作
// 保存一份就得表单数据便于做撤销操作
oldObjInfo
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
obj
))
oldObjInfo
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
obj
))
...
@@ -1000,6 +1033,7 @@ const handleSubmitForm = () => {
...
@@ -1000,6 +1033,7 @@ const handleSubmitForm = () => {
}
}
}
}
}
}
console
.
log
(
'新单提交产品计划'
,
result
)
return
result
return
result
}
}
...
@@ -1011,10 +1045,7 @@ const submitForm = saveType => {
...
@@ -1011,10 +1045,7 @@ const submitForm = saveType => {
proxy
.
$refs
[
'productFormRef'
].
validate
((
valid
,
fields
)
=>
{
proxy
.
$refs
[
'productFormRef'
].
validate
((
valid
,
fields
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
let
result
=
handleSubmitForm
()
let
result
=
handleSubmitForm
()
console
.
log
(
'===================================='
)
console
.
log
(
'提交的数据'
,
result
)
console
.
log
(
'===================================='
)
// return
if
(
if
(
props
.
idsObj
.
appointmentBizId
&&
props
.
idsObj
.
appointmentBizId
&&
(
props
.
pageSource
==
'fnaList'
||
props
.
pageSource
==
'appointmentList'
)
(
props
.
pageSource
==
'fnaList'
||
props
.
pageSource
==
'appointmentList'
)
...
@@ -1022,11 +1053,21 @@ const submitForm = saveType => {
...
@@ -1022,11 +1053,21 @@ const submitForm = saveType => {
editProductPlanInfo
(
result
).
then
(
res
=>
{
editProductPlanInfo
(
result
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
handleEditStatus
(
true
)
handleEditStatus
(
true
)
proxy
.
$message
.
success
(
'产品计划修改成功'
)
proxy
.
$message
.
success
(
'
预约-
产品计划修改成功'
)
emit
(
'handleSuccessEdit'
)
emit
(
'handleSuccessEdit'
)
}
}
}
)
}
)
}
}
if
(
props
.
idsObj
.
policyBizId
&&
props
.
pageSource
==
'policyList'
)
{
result
.
policyBizId
=
props
.
idsObj
.
policyBizId
updatePolicyProduct
(
result
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
handleEditStatus
(
true
)
proxy
.
$message
.
success
(
'新单跟进-产品计划修改成功'
)
emit
(
'policyEditSuccess'
)
}
}
)
}
errorFields
.
value
=
[]
// 清空错误信息
errorFields
.
value
=
[]
// 清空错误信息
}
else
{
}
else
{
// 获取校验失败的字段信息
// 获取校验失败的字段信息
...
@@ -1038,16 +1079,6 @@ const submitForm = saveType => {
...
@@ -1038,16 +1079,6 @@ const submitForm = saveType => {
}
)
}
)
}
}
// 获取流程详情
function
getFanformInfo
(
fnaFormBizId
,
formData
)
{
getfanFormDetail
(
fnaFormBizId
).
then
(
async
res
=>
{
if
(
res
.
code
==
200
)
{
// 回显值
setFormValue
(
res
.
data
,
formData
)
}
}
)
}
watch
(
watch
(
()
=>
props
.
activeName
,
()
=>
props
.
activeName
,
newVal
=>
{
newVal
=>
{
...
...
src/views/sign/appointment/components/secondHolderInfo.vue
View file @
e480df9e
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
>
导入联系人
</el-button
>
导入联系人
</el-button
>
-->
>
-->
<el-button
<el-button
v-if=
"props.
idsObj.appointmentBizId
"
v-if=
"props.
showSubmitBtn
"
type=
"primary"
type=
"primary"
icon=
"EditPen"
icon=
"EditPen"
@
click=
"handleEditStatus(!editStatus)"
@
click=
"handleEditStatus(!editStatus)"
...
@@ -89,7 +89,7 @@
...
@@ -89,7 +89,7 @@
</div>
</div>
</el-row>
</el-row>
</div>
</div>
<el-row
v-if=
"props.
idsObj.appointmentBizId
"
>
<el-row
v-if=
"props.
showSubmitBtn
"
>
<el-col>
<el-col>
<div
class=
"tabButton"
>
<div
class=
"tabButton"
>
<!-- <el-button
<!-- <el-button
...
@@ -189,6 +189,7 @@ import Address from '@/views/components/address'
...
@@ -189,6 +189,7 @@ import Address from '@/views/components/address'
import
{
watch
,
nextTick
}
from
'vue'
import
{
watch
,
nextTick
}
from
'vue'
import
{
getCustomerList
}
from
'@/api/sign/fna'
import
{
getCustomerList
}
from
'@/api/sign/fna'
import
{
editSecondHolderInfo
}
from
'@/api/sign/appointment'
import
{
editSecondHolderInfo
}
from
'@/api/sign/appointment'
import
{
updatePolicySecondHolder
}
from
'@/api/sign/underwritingMain'
import
useDictStore
from
'@/store/modules/dict'
import
useDictStore
from
'@/store/modules/dict'
const
dictStore
=
useDictStore
()
//获取字典数据
const
dictStore
=
useDictStore
()
//获取字典数据
...
@@ -199,10 +200,12 @@ const props = defineProps({
...
@@ -199,10 +200,12 @@ const props = defineProps({
idsObj
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的id对象
idsObj
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的id对象
apiSecondHolderInfoDto
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的预约信息的详情
apiSecondHolderInfoDto
:
{
type
:
Object
,
default
:
()
=>
({})
},
//父组件传递过来的预约信息的详情
appointmentStatus
:
{
type
:
Number
},
//父组件传递过来的预约的状态
appointmentStatus
:
{
type
:
Number
},
//父组件传递过来的预约的状态
customerInfo
:
{
type
:
Object
,
default
:
()
=>
({})
}
//客户详情回显表单用
customerInfo
:
{
type
:
Object
,
default
:
()
=>
({})
},
//客户详情回显表单用
showSubmitBtn
:
{
type
:
Boolean
,
default
:
false
},
//父组件状态,新增、修改
pageSource
:
{
type
:
String
,
default
:
false
}
//页面来源
})
})
const
emit
=
defineEmits
([
'handleSuccessEdit'
])
const
emit
=
defineEmits
([
'handleSuccessEdit'
,
'policyEditSuccess'
])
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
// const { csf_id_type, sys_gender } = proxy.useDict('csf_id_type', 'sys_gender')
// const { csf_id_type, sys_gender } = proxy.useDict('csf_id_type', 'sys_gender')
const
showPhoneDrawer
=
ref
(
false
)
//电话抽屉开关
const
showPhoneDrawer
=
ref
(
false
)
//电话抽屉开关
...
@@ -417,7 +420,7 @@ const processFormData = async obj => {
...
@@ -417,7 +420,7 @@ const processFormData = async obj => {
}
}
}
}
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
showSubmitBtn
)
{
field
.
disabled
=
true
field
.
disabled
=
true
}
}
}
}
...
@@ -425,10 +428,14 @@ const processFormData = async obj => {
...
@@ -425,10 +428,14 @@ const processFormData = async obj => {
}
}
//当tab切换走,在切换回来的时候,需要把之前保存的值赋值回来
//当tab切换走,在切换回来的时候,需要把之前保存的值赋值回来
if
(
JSON
.
stringify
(
tempSecondHolderForm
.
value
)
!==
'{}'
&&
!
props
.
idsObj
.
appointmentBizId
)
{
if
(
JSON
.
stringify
(
tempSecondHolderForm
.
value
)
!==
'{}'
&&
!
props
.
idsObj
.
appointmentBizId
&&
props
.
pageSource
==
'fnaList'
)
{
form
.
value
=
{
...
tempSecondHolderForm
.
value
}
form
.
value
=
{
...
tempSecondHolderForm
.
value
}
}
}
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
showSubmitBtn
)
{
form
.
value
=
{
...
props
.
apiSecondHolderInfoDto
}
form
.
value
=
{
...
props
.
apiSecondHolderInfoDto
}
editStatus
.
value
=
true
editStatus
.
value
=
true
}
else
{
}
else
{
...
@@ -652,15 +659,7 @@ const handleFormValues = () => {
...
@@ -652,15 +659,7 @@ const handleFormValues = () => {
submitObj
[
key1
]
=
proxy
.
formatToDateTime
(
submitObj
[
key1
])
submitObj
[
key1
]
=
proxy
.
formatToDateTime
(
submitObj
[
key1
])
}
}
}
}
// if (Object.keys(submitObj).length > 0) {
// if (submitForm['documentType'] && !submitForm['idNumber']) {
// proxy.$message.error('请输入证件号码')
// return
// } else if(submitForm['idNumber'] && !submitForm['documentType']){
// proxy.$message.error('请输入证件类型')
// return
// }
// }
return
submitObj
return
submitObj
}
}
// 表单提交
// 表单提交
...
@@ -668,7 +667,10 @@ const submitForm = () => {
...
@@ -668,7 +667,10 @@ const submitForm = () => {
proxy
.
$refs
[
'secondHolderFormRef'
].
validate
((
valid
,
fields
)
=>
{
proxy
.
$refs
[
'secondHolderFormRef'
].
validate
((
valid
,
fields
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
let
submitObj
=
handleFormValues
()
let
submitObj
=
handleFormValues
()
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
idsObj
.
appointmentBizId
&&
(
props
.
pageSource
==
'fnaList'
||
props
.
pageSource
==
'appointmentList'
)
)
{
editSecondHolderInfo
(
submitObj
).
then
(
res
=>
{
editSecondHolderInfo
(
submitObj
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
handleEditStatus
(
true
)
handleEditStatus
(
true
)
...
@@ -677,7 +679,18 @@ const submitForm = () => {
...
@@ -677,7 +679,18 @@ const submitForm = () => {
}
}
})
})
}
}
if
(
props
.
idsObj
.
policyBizId
&&
props
.
pageSource
==
'policyList'
)
{
// submitObj['policySecondHolderBizId'] = props.apiInsurantInfoDto.policySecondHolderBizId
// submitObj['policyBizId'] = props.apiInsurantInfoDto.policyBizId
// submitObj['id'] = props.apiInsurantInfoDto.id
updatePolicySecondHolder
(
submitObj
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
handleEditStatus
(
true
)
proxy
.
$message
.
success
(
'新单跟进-受保人修改成功'
)
emit
(
'policyEditSuccess'
)
}
})
}
errorFields
.
value
=
[]
// 清空错误信息
errorFields
.
value
=
[]
// 清空错误信息
}
else
{
}
else
{
// 获取校验失败的字段信息
// 获取校验失败的字段信息
...
...
src/views/sign/underwritingMain/components/brokerInfo.vue
View file @
e480df9e
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<div
class=
"topBtn"
>
<div
class=
"topBtn"
>
<el-button
<el-button
v-if=
"props.
fnaForm
BizId"
v-if=
"props.
policy
BizId"
type=
"primary"
type=
"primary"
icon=
"EditPen"
icon=
"EditPen"
@
click=
"handleEditStatus"
@
click=
"handleEditStatus"
...
@@ -21,7 +21,6 @@
...
@@ -21,7 +21,6 @@
<div
class=
"subTitle"
v-if=
"father.subTitle"
>
{{
father
.
subTitle
}}
</div>
-->
<div
class=
"subTitle"
v-if=
"father.subTitle"
>
{{
father
.
subTitle
}}
</div>
-->
<el-row
v-if=
"father.showTable"
>
<el-row
v-if=
"father.showTable"
>
<el-table
:data=
"father.data"
border
>
<el-table
:data=
"father.data"
border
>
<!-- && form[father.key].length > 0 -->
<template
v-if=
"father.key == 'brokerList'"
>
<template
v-if=
"father.key == 'brokerList'"
>
<el-table-column
label=
"转介人比例"
prop=
"brokerRatio"
align=
"center"
>
<el-table-column
label=
"转介人比例"
prop=
"brokerRatio"
align=
"center"
>
<template
#
default=
"scope"
>
<template
#
default=
"scope"
>
...
@@ -153,7 +152,7 @@ import {
...
@@ -153,7 +152,7 @@ import {
getAllCompanys
,
getAllCompanys
,
getClientUser
getClientUser
}
from
'@/api/common'
}
from
'@/api/common'
import
{
updatePolicyfollow
}
from
'@/api/sign/underwritingMain'
import
{
updatePolicyfollow
,
getPolicyfollow
}
from
'@/api/sign/underwritingMain'
import
useUserStore
from
'@/store/modules/user'
import
useUserStore
from
'@/store/modules/user'
const
userStore
=
useUserStore
()
const
userStore
=
useUserStore
()
const
dictStore
=
useDictStore
()
//获取字典数据
const
dictStore
=
useDictStore
()
//获取字典数据
...
@@ -163,7 +162,8 @@ const props = defineProps({
...
@@ -163,7 +162,8 @@ const props = defineProps({
fearthStatus
:
{
type
:
String
,
default
:
''
},
//父组件状态,新增、修改
fearthStatus
:
{
type
:
String
,
default
:
''
},
//父组件状态,新增、修改
policyBizId
:
{
type
:
String
,
default
:
''
},
//提交状态,新增、修改
policyBizId
:
{
type
:
String
,
default
:
''
},
//提交状态,新增、修改
customerBizId
:
{
type
:
String
,
default
:
''
},
//提交状态,新增、修改
customerBizId
:
{
type
:
String
,
default
:
''
},
//提交状态,新增、修改
dictTypeLists
:
{
type
:
Array
,
default
:
()
=>
[]
}
//多个字典值数据
dictTypeLists
:
{
type
:
Array
,
default
:
()
=>
[]
},
//多个字典值数据
brokerList
:
{
type
:
Array
,
default
:
()
=>
[]
}
//详情数据
})
})
const
emit
=
defineEmits
([
'handleSuccess'
])
const
emit
=
defineEmits
([
'handleSuccess'
])
...
@@ -331,6 +331,9 @@ const processFormData = () => {
...
@@ -331,6 +331,9 @@ const processFormData = () => {
if
(
section
.
keyType
==
'Array'
)
{
if
(
section
.
keyType
==
'Array'
)
{
form
.
value
[
section
.
key
]
=
[]
form
.
value
[
section
.
key
]
=
[]
if
(
section
.
key
==
'brokerList'
)
{
if
(
section
.
key
==
'brokerList'
)
{
if
(
props
.
policyBizId
&&
props
.
brokerList
.
length
>
0
)
{
section
.
data
=
JSON
.
parse
(
JSON
.
stringify
(
props
.
brokerList
))
}
form
.
value
[
section
.
key
]
=
section
.
data
form
.
value
[
section
.
key
]
=
section
.
data
}
}
}
else
if
(
section
.
keyType
==
'Object'
)
{
}
else
if
(
section
.
keyType
==
'Object'
)
{
...
@@ -382,11 +385,11 @@ const processFormData = () => {
...
@@ -382,11 +385,11 @@ const processFormData = () => {
processedFanFormData
.
value
=
oldFanFormData
.
value
=
processedData
processedFanFormData
.
value
=
oldFanFormData
.
value
=
processedData
}
}
if
(
props
.
policyBizId
)
{
if
(
props
.
policyBizId
)
{
//
editStatus.value = true
editStatus
.
value
=
true
}
else
{
}
else
{
editStatus
.
value
=
false
editStatus
.
value
=
false
loading
.
value
=
false
}
}
loading
.
value
=
false
console
.
log
(
'form'
,
form
.
value
)
console
.
log
(
'form'
,
form
.
value
)
}
}
// 添加表单子级dom
// 添加表单子级dom
...
@@ -519,92 +522,41 @@ const isObject = value => {
...
@@ -519,92 +522,41 @@ const isObject = value => {
// 处理表单填写得数据
// 处理表单填写得数据
const
handleFormValues
=
()
=>
{
const
handleFormValues
=
()
=>
{
// 提交要从dom中拿数据,因为收集到dom中了
// 提交要从dom中拿数据,因为收集到dom中了
console
.
log
(
'processedFanFormData.value'
,
processedFanFormData
.
value
)
let
domData
=
JSON
.
parse
(
JSON
.
stringify
(
processedFanFormData
.
value
))
// let submitObj = JSON.parse(JSON.stringify(form.value))
let
submitObj
=
JSON
.
parse
(
JSON
.
stringify
(
form
.
value
))
let
submitObj
=
{
policyBizId
:
props
.
policyBizId
,
brokerList
:
[]
}
const
pattern
=
/Date$/
// 以Time结尾
// debugger
// debugger
//处理表单数据
if
(
domData
[
0
].
data
.
length
>
0
)
{
for
(
const
key1
in
form
.
value
)
{
domData
[
0
].
data
.
forEach
(
item1
=>
{
// 对象数据格式
if
(
item1
.
brokerName
)
{
if
(
isObject
(
form
.
value
[
key1
])
&&
Object
.
keys
(
form
.
value
[
key1
]).
length
>
0
)
{
dictStore
.
clientUserList
.
forEach
(
item
=>
{
for
(
const
key2
in
form
.
value
[
key1
])
{
if
(
item
.
clientUserBizId
==
item1
.
brokerName
)
{
if
(
pattern
.
test
(
key2
)
&&
form
.
value
[
key1
][
key2
])
{
item1
.
brokerName
=
item
.
name
submitObj
[
key1
][
key2
]
=
proxy
.
formatToDate
(
form
.
value
[
key1
][
key2
])
item1
[
'brokerBizId'
]
=
item
.
clientUserBizId
}
}
// 处理搜索下拉框数据需要返回的各种业务ID
})
if
((
key2
==
'insurer'
||
key2
===
'reconciliationCompany'
)
&&
form
.
value
[
key1
][
key2
])
{
dictStore
.
insureCompanyList
.
forEach
(
item
=>
{
if
(
item
.
deptBizId
==
form
.
value
[
key1
][
key2
])
{
submitObj
[
key1
][
key2
]
=
item
.
deptName
submitObj
[
key1
][
`
${
key2
}
BizId`
]
=
item
.
deptBizId
}
})
}
else
if
(
key2
==
'productName'
&&
form
.
value
[
key1
][
key2
])
{
dictStore
.
insureProductList
.
forEach
(
item
=>
{
if
(
item
.
productBizId
==
form
.
value
[
key1
][
key2
])
{
submitObj
[
key1
][
key2
]
=
item
.
productName
submitObj
[
key1
][
'productBizId'
]
=
item
.
productBizId
}
})
}
}
}
}
submitObj
.
brokerList
.
push
(
item1
)
// 数组数据格式
})
if
(
isArray
(
form
.
value
[
key1
])
&&
form
.
value
[
key1
].
length
>
0
)
{
submitObj
[
key1
]
=
form
.
value
[
key1
].
map
(
item1
=>
{
if
(
item1
.
brokerName
)
{
dictStore
.
clientUserList
.
forEach
(
item
=>
{
if
(
item
.
clientUserBizId
==
item1
.
brokerName
)
{
item1
.
brokerName
=
item
.
name
item1
[
'brokerBizId'
]
=
item
.
clientUserBizId
}
})
}
delete
item1
.
id
return
item1
})
}
}
}
return
submitObj
return
submitObj
}
}
// 表单提交
// 表单提交
const
submitForm
=
saveType
=>
{
const
submitForm
=
saveType
=>
{
let
submitObj
=
handleFormValues
()
let
submitObj
=
handleFormValues
()
// return
proxy
.
$refs
[
'fanFormRef'
].
validate
((
valid
,
fields
)
=>
{
proxy
.
$refs
[
'fanFormRef'
].
validate
((
valid
,
fields
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
console
.
log
(
'===================================='
)
console
.
log
(
' props.policyBizId'
,
submitObj
)
console
.
log
(
'===================================='
)
// return
if
(
props
.
policyBizId
)
{
if
(
props
.
policyBizId
)
{
// submitObj.PolicyFollowUpdateDto.policyBizId = props.policyBizId
updatePolicyfollow
(
submitObj
).
then
(
res
=>
{
updatePolicyfollow
(
submitObj
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
handleEditStatus
()
handleEditStatus
()
proxy
.
$message
.
success
(
'提交成功'
)
proxy
.
$message
.
success
(
'提交成功'
)
// emit('handleSuccess', {
// 提交成功后,在获取详情信息,防止数据丢失
// tab: 'fnaform',
getPolicyDetail
()
// fnaFormBizId: props.fnaFormBizId,
// type: 'edit'
// })
}
}
})
})
}
else
{
}
else
{
// addfanForm(result).then(res => {
// if (res.code == 200) {
// proxy.$message.success('fnaForm新增成功')
// emit('handleSuccess', {
// tab: 'fnaform',
// fnaFormBizId: res.data.fnaFormBizId,
// type: 'add'
// })
// }
// })
}
}
errorFields
.
value
=
[]
// 清空错误信息
errorFields
.
value
=
[]
// 清空错误信息
}
else
{
}
else
{
...
@@ -617,24 +569,15 @@ const submitForm = saveType => {
...
@@ -617,24 +569,15 @@ const submitForm = saveType => {
})
})
}
}
// 获取
流程详情
// 获取
新单跟进详情数据
function
getFanformInfo
(
fnaFormBizId
,
formData
)
{
const
getPolicyDetail
=
()
=>
{
get
fanFormDetail
(
fnaFormBizId
).
then
(
async
res
=>
{
get
Policyfollow
(
props
.
policyBizId
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
// 回显值
processedFanFormData
.
value
.
brokerList
=
res
.
data
.
brokerList
setFormValue
(
res
.
data
,
formData
)
}
}
})
})
}
}
watch
(
fanFormRef
,
newVal
=>
{
if
(
newVal
)
{
for
(
const
key
in
rules
.
value
)
{
for
(
const
key2
in
rules
.
value
[
key
])
{
fanFormRef
.
value
.
clearValidate
(
key2
)
}
}
}
})
watch
(
watch
(
()
=>
props
.
activeName
,
()
=>
props
.
activeName
,
newVal
=>
{
newVal
=>
{
...
...
src/views/sign/underwritingMain/components/policyInfo.vue
View file @
e480df9e
This diff is collapsed.
Click to expand it.
src/views/sign/underwritingMain/components/policyMailing.vue
View file @
e480df9e
This diff is collapsed.
Click to expand it.
src/views/sign/underwritingMain/components/verifyPolicyInfo.vue
View file @
e480df9e
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<div
class=
"topBtn"
>
<div
class=
"topBtn"
>
<el-button
<el-button
v-if=
"props.
fnaForm
BizId"
v-if=
"props.
policy
BizId"
type=
"primary"
type=
"primary"
icon=
"EditPen"
icon=
"EditPen"
@
click=
"handleEditStatus"
@
click=
"handleEditStatus"
...
@@ -244,7 +244,7 @@ import {
...
@@ -244,7 +244,7 @@ import {
getAllCompanys
,
getAllCompanys
,
getClientUser
getClientUser
}
from
'@/api/common'
}
from
'@/api/common'
import
{
updatePolicyfollow
}
from
'@/api/sign/underwritingMain'
import
{
updatePolicyfollow
,
getPolicyfollow
}
from
'@/api/sign/underwritingMain'
import
useUserStore
from
'@/store/modules/user'
import
useUserStore
from
'@/store/modules/user'
const
userStore
=
useUserStore
()
const
userStore
=
useUserStore
()
const
dictStore
=
useDictStore
()
//获取字典数据
const
dictStore
=
useDictStore
()
//获取字典数据
...
@@ -254,7 +254,8 @@ const props = defineProps({
...
@@ -254,7 +254,8 @@ const props = defineProps({
fearthStatus
:
{
type
:
String
,
default
:
''
},
//父组件状态,新增、修改
fearthStatus
:
{
type
:
String
,
default
:
''
},
//父组件状态,新增、修改
policyBizId
:
{
type
:
String
,
default
:
''
},
//提交状态,新增、修改
policyBizId
:
{
type
:
String
,
default
:
''
},
//提交状态,新增、修改
customerBizId
:
{
type
:
String
,
default
:
''
},
//提交状态,新增、修改
customerBizId
:
{
type
:
String
,
default
:
''
},
//提交状态,新增、修改
dictTypeLists
:
{
type
:
Array
,
default
:
()
=>
[]
}
//多个字典值数据
dictTypeLists
:
{
type
:
Array
,
default
:
()
=>
[]
},
//多个字典值数据
verifyPolicyInfo
:
{
type
:
Object
,
default
:
()
=>
{}
}
//多个字典值数据
})
})
const
emit
=
defineEmits
([
'handleSuccess'
])
const
emit
=
defineEmits
([
'handleSuccess'
])
...
@@ -431,13 +432,6 @@ const processFormData = () => {
...
@@ -431,13 +432,6 @@ const processFormData = () => {
for
(
const
formKey
in
form
.
value
)
{
for
(
const
formKey
in
form
.
value
)
{
if
(
section
.
key
==
formKey
)
{
if
(
section
.
key
==
formKey
)
{
for
(
const
field
of
section
.
data
)
{
for
(
const
field
of
section
.
data
)
{
// 为下拉搜索框加options
if
(
field
.
domType
==
'SearchSelect'
)
{
if
(
field
.
key
==
'accountName'
)
{
searchOptions
.
value
[
field
.
key
]
=
dictStore
.
tenantUserList
}
}
if
(
field
.
dictType
)
{
if
(
field
.
dictType
)
{
// 获取字典数据
// 获取字典数据
field
.
options
=
fetchDictData
(
field
.
dictType
)
field
.
options
=
fetchDictData
(
field
.
dictType
)
...
@@ -452,7 +446,7 @@ const processFormData = () => {
...
@@ -452,7 +446,7 @@ const processFormData = () => {
{
required
:
true
,
message
:
`
${
field
.
label
}
不能为空`
,
trigger
:
'blur'
}
{
required
:
true
,
message
:
`
${
field
.
label
}
不能为空`
,
trigger
:
'blur'
}
]
]
}
}
if
(
props
.
fnaForm
BizId
)
{
if
(
props
.
policy
BizId
)
{
field
.
disabled
=
true
field
.
disabled
=
true
}
else
{
}
else
{
field
.
disabled
=
false
field
.
disabled
=
false
...
@@ -462,23 +456,20 @@ const processFormData = () => {
...
@@ -462,23 +456,20 @@ const processFormData = () => {
}
}
}
}
}
}
if
(
Object
.
keys
(
tempFanFormValue
.
value
).
length
>
0
)
{
form
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempFanFormValue
.
value
))
}
if
(
tempFanFormData
.
value
.
length
>
0
)
{
processedFanFormData
.
value
=
oldFanFormData
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempFanFormData
.
value
)
)
}
else
{
processedFanFormData
.
value
=
oldFanFormData
.
value
=
processedData
}
if
(
props
.
policyBizId
)
{
if
(
props
.
policyBizId
)
{
form
.
value
.
verifyPolicyInfo
=
JSON
.
parse
(
JSON
.
stringify
(
props
.
verifyPolicyInfo
))
form
.
value
.
policyBizId
=
props
.
policyBizId
editStatus
.
value
=
true
editStatus
.
value
=
true
}
else
{
}
else
{
// tab切走在切回来时,表单会重置,所以这里需要把表单的值赋回去
// tab切走在切回来时,表单会重置,所以这里需要把表单的值赋回去
editStatus
.
value
=
false
editStatus
.
value
=
false
loading
.
value
=
false
}
}
if
(
Object
.
keys
(
tempFanFormValue
.
value
).
length
>
0
)
{
form
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
tempFanFormValue
.
value
))
}
processedFanFormData
.
value
=
processedData
loading
.
value
=
false
console
.
log
(
'form'
,
form
.
value
)
console
.
log
(
'form'
,
form
.
value
)
}
}
// 添加表单子级dom
// 添加表单子级dom
...
@@ -621,39 +612,8 @@ const handleFormValues = () => {
...
@@ -621,39 +612,8 @@ const handleFormValues = () => {
if
(
pattern
.
test
(
key2
)
&&
form
.
value
[
key1
][
key2
])
{
if
(
pattern
.
test
(
key2
)
&&
form
.
value
[
key1
][
key2
])
{
submitObj
[
key1
][
key2
]
=
proxy
.
formatToDate
(
form
.
value
[
key1
][
key2
])
submitObj
[
key1
][
key2
]
=
proxy
.
formatToDate
(
form
.
value
[
key1
][
key2
])
}
}
// 处理搜索下拉框数据需要返回的各种业务ID
if
((
key2
==
'insurer'
||
key2
===
'reconciliationCompany'
)
&&
form
.
value
[
key1
][
key2
])
{
dictStore
.
insureCompanyList
.
forEach
(
item
=>
{
if
(
item
.
deptBizId
==
form
.
value
[
key1
][
key2
])
{
submitObj
[
key1
][
key2
]
=
item
.
deptName
submitObj
[
key1
][
`
${
key2
}
BizId`
]
=
item
.
deptBizId
}
})
}
else
if
(
key2
==
'productName'
&&
form
.
value
[
key1
][
key2
])
{
dictStore
.
insureProductList
.
forEach
(
item
=>
{
if
(
item
.
productBizId
==
form
.
value
[
key1
][
key2
])
{
submitObj
[
key1
][
key2
]
=
item
.
productName
submitObj
[
key1
][
'productBizId'
]
=
item
.
productBizId
}
})
}
}
}
}
}
// 数组数据格式
if
(
isArray
(
form
.
value
[
key1
])
&&
form
.
value
[
key1
].
length
>
0
)
{
submitObj
[
key1
]
=
form
.
value
[
key1
].
map
(
item1
=>
{
if
(
item1
.
brokerName
)
{
dictStore
.
clientUserList
.
forEach
(
item
=>
{
if
(
item
.
clientUserBizId
==
item1
.
brokerName
)
{
item1
.
brokerName
=
item
.
name
item1
[
'brokerBizId'
]
=
item
.
clientUserBizId
}
})
}
delete
item1
.
id
return
item1
})
}
}
}
return
submitObj
return
submitObj
...
@@ -662,38 +622,17 @@ const handleFormValues = () => {
...
@@ -662,38 +622,17 @@ const handleFormValues = () => {
const
submitForm
=
saveType
=>
{
const
submitForm
=
saveType
=>
{
let
submitObj
=
handleFormValues
()
let
submitObj
=
handleFormValues
()
// return
proxy
.
$refs
[
'fanFormRef'
].
validate
((
valid
,
fields
)
=>
{
proxy
.
$refs
[
'fanFormRef'
].
validate
((
valid
,
fields
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
console
.
log
(
'===================================='
)
console
.
log
(
' props.policyBizId'
,
submitObj
)
console
.
log
(
'===================================='
)
// return
if
(
props
.
policyBizId
)
{
if
(
props
.
policyBizId
)
{
// submitObj.PolicyFollowUpdateDto.policyBizId = props.policyBizId
updatePolicyfollow
(
submitObj
).
then
(
res
=>
{
updatePolicyfollow
(
submitObj
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
handleEditStatus
()
handleEditStatus
()
proxy
.
$message
.
success
(
'提交成功'
)
proxy
.
$message
.
success
(
'提交成功'
)
// emit('handleSuccess', {
// 提交成功后,在获取详情信息,防止数据丢失
// tab: 'fnaform',
getPolicyDetail
()
// fnaFormBizId: props.fnaFormBizId,
// type: 'edit'
// })
}
}
})
})
}
else
{
// addfanForm(result).then(res => {
// if (res.code == 200) {
// proxy.$message.success('fnaForm新增成功')
// emit('handleSuccess', {
// tab: 'fnaform',
// fnaFormBizId: res.data.fnaFormBizId,
// type: 'add'
// })
// }
// })
}
}
errorFields
.
value
=
[]
// 清空错误信息
errorFields
.
value
=
[]
// 清空错误信息
}
else
{
}
else
{
...
@@ -705,25 +644,15 @@ const submitForm = saveType => {
...
@@ -705,25 +644,15 @@ const submitForm = saveType => {
}
}
})
})
}
}
// 获取新单跟进详情数据
// 获取流程详情
const
getPolicyDetail
=
()
=>
{
function
getFanformInfo
(
fnaFormBizId
,
formData
)
{
getPolicyfollow
(
props
.
policyBizId
).
then
(
res
=>
{
getfanFormDetail
(
fnaFormBizId
).
then
(
async
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
// 回显值
processedFanFormData
.
value
.
brokerList
=
res
.
data
.
brokerList
setFormValue
(
res
.
data
,
formData
)
}
}
})
})
}
}
watch
(
fanFormRef
,
newVal
=>
{
if
(
newVal
)
{
for
(
const
key
in
rules
.
value
)
{
for
(
const
key2
in
rules
.
value
[
key
])
{
fanFormRef
.
value
.
clearValidate
(
key2
)
}
}
}
})
watch
(
watch
(
()
=>
props
.
activeName
,
()
=>
props
.
activeName
,
newVal
=>
{
newVal
=>
{
...
@@ -736,8 +665,6 @@ watch(
...
@@ -736,8 +665,6 @@ watch(
}
}
}
}
)
)
processFormData
()
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.domEmpty
{
.domEmpty
{
...
...
src/views/sign/underwritingMain/followUpDetail.vue
View file @
e480df9e
...
@@ -35,13 +35,18 @@
...
@@ -35,13 +35,18 @@
</el-tabs>
</el-tabs>
</div>
</div>
</el-card>
-->
</el-card>
-->
<AppointmentEdit
source=
'policyList'
:policyDetailInfo=
"route.query"
/>
<AppointmentEdit
source=
"policyList"
:policyId=
"route.query"
v-if=
"showTab"
:policyDetailInfo=
"policyInfo"
/>
</div>
</div>
</
template
>
</
template
>
<
script
setup
name=
"FollowUpDetail"
>
<
script
setup
name=
"FollowUpDetail"
>
import
AppointmentEdit
from
'@/views/sign/appointment/appointmentEdit'
import
AppointmentEdit
from
'@/views/sign/appointment/appointmentEdit'
import
{
onUnmounted
}
from
'vue'
import
{
onUnmounted
}
from
'vue'
import
{
getPolicyfollow
,
getPolicy
Status
}
from
'@/api/sign/underwritingMain'
import
{
getPolicyfollow
,
getPolicy
Info
}
from
'@/api/sign/underwritingMain'
import
useUserStore
from
'@/store/modules/user'
import
useUserStore
from
'@/store/modules/user'
import
useDictStore
from
'@/store/modules/dict'
import
useDictStore
from
'@/store/modules/dict'
import
{
addFna
,
getProcessDetail
,
updateProcess
,
getCustomerDetail
}
from
'@/api/sign/fna'
import
{
addFna
,
getProcessDetail
,
updateProcess
,
getCustomerDetail
}
from
'@/api/sign/fna'
...
@@ -63,6 +68,7 @@ const { proxy } = getCurrentInstance()
...
@@ -63,6 +68,7 @@ const { proxy } = getCurrentInstance()
const
route
=
useRoute
()
const
route
=
useRoute
()
const
router
=
useRouter
()
const
router
=
useRouter
()
const
activeName
=
ref
(
'status'
)
const
activeName
=
ref
(
'status'
)
const
showTab
=
ref
(
false
)
const
processInfo
=
ref
({
const
processInfo
=
ref
({
fnaNo
:
'--'
,
fnaNo
:
'--'
,
status
:
'未保存'
,
status
:
'未保存'
,
...
@@ -204,23 +210,30 @@ const getDictsData = async () => {
...
@@ -204,23 +210,30 @@ const getDictsData = async () => {
'wj_question_first_category'
,
'wj_question_first_category'
,
'wj_question_second_category'
,
'wj_question_second_category'
,
'csf_ap_policy_transfer'
,
'csf_ap_policy_transfer'
,
'md_bank'
'md_bank'
,
'bx_product_type'
,
'csf_policy_follow_mailing_method'
])
])
}
}
// 获取新单跟进详情数据
// 获取新单跟进详情数据
const
getPolicyDetail
=
()
=>
{
const
getPolicyDetail
=
()
=>
{
getPolicyfollow
(
route
.
query
.
policyBizId
).
then
(
res
=>
{
// 使用 Promise.all 并行发送请求
if
(
res
.
code
==
200
)
{
Promise
.
all
([
getPolicyfollow
(
route
.
query
.
policyBizId
),
getPolicyInfo
(
route
.
query
.
policyBizId
)])
console
.
log
(
'新单跟进详情'
,
res
)
.
then
(([
followRes
,
infoRes
])
=>
{
policyInfo
.
value
=
res
.
data
// 只有当两个请求都成功时才执行后续操作
}
if
(
followRes
.
code
===
200
&&
infoRes
.
code
===
200
)
{
})
// 合并两个响应数据,infoRes.data 会覆盖 followRes.data 中的同名属性
getPolicyStatus
(
route
.
query
.
policyBizId
).
then
(
res
=>
{
policyInfo
.
value
=
{
if
(
res
.
code
==
200
)
{
...
followRes
.
data
,
console
.
log
(
'新单跟进状态'
,
res
)
...
infoRes
.
data
policyStatusList
.
value
=
res
.
data
}
}
showTab
.
value
=
true
})
}
})
.
catch
(
error
=>
{
// 统一错误处理(可选)
console
.
error
(
'请求失败:'
,
error
)
})
}
}
// 更新流程
// 更新流程
...
@@ -289,28 +302,7 @@ const beforeTabLeave = (activeTabName, oldTabName) => {
...
@@ -289,28 +302,7 @@ const beforeTabLeave = (activeTabName, oldTabName) => {
return
true
return
true
}
}
// 处理步骤点击
const
handleStep
=
item
=>
{
// 总览页可以直接切换
if
(
item
.
id
===
-
1
||
item
.
name
===
'customer'
)
{
activeName
.
value
=
item
.
name
return
}
// 检查前一项状态
const
prevTabIndex
=
tabsList
.
value
.
findIndex
(
tab
=>
tab
.
id
===
item
.
id
)
-
1
if
(
prevTabIndex
>=
0
)
{
const
prevTab
=
tabsList
.
value
[
prevTabIndex
]
// 如果前一项存在且未完成,阻止切换
if
(
prevTab
.
status
===
'0'
)
{
proxy
.
$modal
.
confirm
(
`请先填写
${
prevTab
.
label
}
`
,
{
showCancel
:
false
})
return
}
}
// 允许切换
activeName
.
value
=
item
.
name
}
const
handleBack
=
()
=>
{
const
handleBack
=
()
=>
{
router
.
go
(
-
1
)
router
.
go
(
-
1
)
}
}
...
...
src/views/sign/underwritingMain/index.vue
View file @
e480df9e
...
@@ -138,7 +138,11 @@
...
@@ -138,7 +138,11 @@
</el-table-column>
</el-table-column>
<el-table-column
prop=
"policyNo"
label=
"保单号"
width=
"150"
align=
"center"
sortable
/>
<el-table-column
prop=
"policyNo"
label=
"保单号"
width=
"150"
align=
"center"
sortable
/>
<el-table-column
prop=
"customerName"
label=
"客户名称"
width=
"100"
align=
"center"
sortable
/>
<el-table-column
prop=
"customerName"
label=
"客户名称"
width=
"100"
align=
"center"
sortable
/>
<el-table-column
prop=
"signDate"
label=
"签单日期"
width=
"150"
align=
"center"
sortable
/>
<el-table-column
prop=
"signDate"
label=
"签单日期"
width=
"150"
align=
"center"
sortable
>
<
template
#
default=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
signDate
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"signer"
label=
"签单人"
width=
"100"
align=
"center"
sortable
/>
<el-table-column
prop=
"signer"
label=
"签单人"
width=
"100"
align=
"center"
sortable
/>
<el-table-column
prop=
"paymentTerm"
label=
"供款年期"
width=
"100"
align=
"center"
sortable
/>
<el-table-column
prop=
"paymentTerm"
label=
"供款年期"
width=
"100"
align=
"center"
sortable
/>
<el-table-column
prop=
"productName"
label=
"产品名称"
width=
"150"
align=
"center"
sortable
/>
<el-table-column
prop=
"productName"
label=
"产品名称"
width=
"150"
align=
"center"
sortable
/>
...
@@ -592,13 +596,18 @@ const formatFileSize = bytes => {
...
@@ -592,13 +596,18 @@ const formatFileSize = bytes => {
}
}
// 新单跟进详情
// 新单跟进详情
const
handleStatus
=
row
=>
{
const
handleStatus
=
row
=>
{
router
.
push
({
router
.
push
({
path
:
'/sign/underwritingMain/followUpDetail'
,
path
:
'/sign/underwritingMain/followUpDetail'
,
query
:
{
policyBizId
:
row
.
policyBizId
,
type
:
'edit'
,
source
:
'policyList'
,
embed
:
true
,
appointmentNo
:
row
.
appointmentNo
,
appointmentBizId
:
row
.
appointmentBizId
}
query
:
{
policyBizId
:
row
.
policyBizId
,
type
:
'edit'
,
source
:
'policyList'
,
embed
:
true
,
appointmentNo
:
row
.
appointmentNo
,
appointmentBizId
:
row
.
appointmentBizId
}
})
})
}
}
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
...
...
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