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
eb5a516b
Commit
eb5a516b
authored
Oct 17, 2025
by
yuzhenWang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改流程2
parent
aa8cecef
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
714 additions
and
610 deletions
+714
-610
src/formJson/appointmentInfo.js
+1
-1
src/formJson/beneficiary.js
+1
-1
src/formJson/customer.js
+63
-63
src/formJson/fnaForm.js
+143
-362
src/views/sign/FnaList/components/customer.vue
+57
-6
src/views/sign/FnaList/components/fanForm.vue
+352
-93
src/views/sign/FnaList/edit.vue
+15
-2
src/views/sign/FnaList/index.vue
+10
-15
src/views/sign/appointment/appointmentEdit.vue
+5
-3
src/views/sign/appointment/components/appointmentInfo.vue
+21
-0
src/views/sign/appointment/components/insuredInfo.vue
+8
-5
src/views/sign/appointment/components/policyHolderInfo.vue
+8
-2
src/views/sign/appointment/components/secondHolderInfo.vue
+30
-57
No files found.
src/formJson/appointmentInfo.js
View file @
eb5a516b
...
@@ -24,7 +24,7 @@ const appointmentInfo = [
...
@@ -24,7 +24,7 @@ const appointmentInfo = [
label
:
'预约时间'
,
label
:
'预约时间'
,
key
:
'confirmAppointmentTime'
,
key
:
'confirmAppointmentTime'
,
domType
:
'datetimePicker'
,
domType
:
'datetimePicker'
,
required
:
tru
e
,
required
:
fals
e
,
disabled
:
true
,
disabled
:
true
,
placeholder
:
'请选择'
,
placeholder
:
'请选择'
,
show
:
false
,
show
:
false
,
...
...
src/formJson/beneficiary.js
View file @
eb5a516b
...
@@ -377,7 +377,7 @@ const beneficiary = [
...
@@ -377,7 +377,7 @@ const beneficiary = [
showMoudle
:
true
,
//模块是否展示
showMoudle
:
true
,
//模块是否展示
data
:
[
data
:
[
{
{
label
:
'受益比
列
'
,
label
:
'受益比
例
'
,
key
:
'benefitRatio'
,
key
:
'benefitRatio'
,
customerKey
:
'idCard'
,
customerKey
:
'idCard'
,
domType
:
'Input'
,
domType
:
'Input'
,
...
...
src/formJson/customer.js
View file @
eb5a516b
...
@@ -4,36 +4,36 @@ const customer = [
...
@@ -4,36 +4,36 @@ const customer = [
type
:
'object'
,
type
:
'object'
,
key
:
'personInfo'
,
key
:
'personInfo'
,
data
:
[
data
:
[
{
//
{
label
:
'姓氏'
,
//
label: '姓氏',
key
:
'lastName'
,
//
key: 'lastName',
type
:
'Input'
,
//
type: 'Input',
inputType
:
'text'
,
//
inputType: 'text',
required
:
false
,
//
required: false,
maxLength
:
5
,
//
maxLength: 5,
disabled
:
false
,
//
disabled: false,
placeholder
:
'请输入'
,
//
placeholder: '请输入',
show
:
true
,
//
show: true,
labelPosition
:
'top'
,
//标签的位置
//
labelPosition: 'top', //标签的位置
labelWidth
:
'120px'
,
//标签宽度
//
labelWidth: '120px', //标签宽度
sm
:
8
,
//栅格布局份数
//
sm: 8, //栅格布局份数
lg
:
8
//栅格布局份数
//
lg: 8 //栅格布局份数
},
//
},
{
//
{
label
:
'名字'
,
//
label: '名字',
key
:
'firstName'
,
//
key: 'firstName',
type
:
'Input'
,
//
type: 'Input',
inputType
:
'text'
,
//
inputType: 'text',
required
:
false
,
//
required: false,
maxLength
:
10
,
//
maxLength: 10,
disabled
:
false
,
//
disabled: false,
placeholder
:
'请输入'
,
//
placeholder: '请输入',
show
:
true
,
//
show: true,
labelPosition
:
'top'
,
//标签的位置
//
labelPosition: 'top', //标签的位置
labelWidth
:
'120px'
,
//标签宽度
//
labelWidth: '120px', //标签宽度
sm
:
8
,
//栅格布局份数
//
sm: 8, //栅格布局份数
lg
:
8
//栅格布局份数
//
lg: 8 //栅格布局份数
},
//
},
{
{
label
:
'姓名'
,
label
:
'姓名'
,
key
:
'name'
,
key
:
'name'
,
...
@@ -49,36 +49,36 @@ const customer = [
...
@@ -49,36 +49,36 @@ const customer = [
sm
:
8
,
//栅格布局份数
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
lg
:
8
//栅格布局份数
},
},
{
//
{
label
:
'姓氏拼音'
,
//
label: '姓氏拼音',
key
:
'lastNamePinyin'
,
//
key: 'lastNamePinyin',
type
:
'Input'
,
//
type: 'Input',
inputType
:
'text'
,
//
inputType: 'text',
required
:
false
,
//
required: false,
maxLength
:
30
,
//
maxLength: 30,
disabled
:
false
,
//
disabled: false,
placeholder
:
'请输入'
,
//
placeholder: '请输入',
show
:
true
,
//
show: true,
labelPosition
:
'top'
,
//标签的位置
//
labelPosition: 'top', //标签的位置
labelWidth
:
'120px'
,
//标签宽度
//
labelWidth: '120px', //标签宽度
sm
:
8
,
//栅格布局份数
//
sm: 8, //栅格布局份数
lg
:
8
//栅格布局份数
//
lg: 8 //栅格布局份数
},
//
},
{
//
{
label
:
'姓名拼音'
,
//
label: '姓名拼音',
key
:
'pinyin'
,
//
key: 'pinyin',
type
:
'Input'
,
//
type: 'Input',
inputType
:
'text'
,
//
inputType: 'text',
required
:
false
,
//
required: false,
maxLength
:
30
,
//
maxLength: 30,
disabled
:
false
,
//
disabled: false,
placeholder
:
'请输入'
,
//
placeholder: '请输入',
show
:
true
,
//
show: true,
labelPosition
:
'top'
,
//标签的位置
//
labelPosition: 'top', //标签的位置
labelWidth
:
'120px'
,
//标签宽度
//
labelWidth: '120px', //标签宽度
sm
:
8
,
//栅格布局份数
//
sm: 8, //栅格布局份数
lg
:
8
//栅格布局份数
//
lg: 8 //栅格布局份数
},
//
},
{
{
label
:
'名字-英文'
,
label
:
'名字-英文'
,
key
:
'firstNamePinyin'
,
key
:
'firstNamePinyin'
,
...
@@ -126,7 +126,7 @@ const customer = [
...
@@ -126,7 +126,7 @@ const customer = [
label
:
'生日'
,
label
:
'生日'
,
key
:
'birthdate'
,
key
:
'birthdate'
,
type
:
'DatePicker'
,
type
:
'DatePicker'
,
required
:
fals
e
,
required
:
tru
e
,
disabled
:
false
,
disabled
:
false
,
placeholder
:
'请选择'
,
placeholder
:
'请选择'
,
show
:
true
,
show
:
true
,
...
@@ -142,7 +142,7 @@ const customer = [
...
@@ -142,7 +142,7 @@ const customer = [
inputType
:
'number'
,
inputType
:
'number'
,
maxLength
:
30
,
maxLength
:
30
,
required
:
true
,
required
:
true
,
disabled
:
fals
e
,
disabled
:
tru
e
,
placeholder
:
'请输入'
,
placeholder
:
'请输入'
,
show
:
true
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelPosition
:
'top'
,
//标签的位置
...
@@ -251,7 +251,7 @@ const customer = [
...
@@ -251,7 +251,7 @@ const customer = [
type
:
'Input'
,
type
:
'Input'
,
inputType
:
'text'
,
inputType
:
'text'
,
maxLength
:
300
,
maxLength
:
300
,
required
:
tru
e
,
required
:
fals
e
,
disabled
:
false
,
disabled
:
false
,
placeholder
:
'请输入'
,
placeholder
:
'请输入'
,
show
:
true
,
show
:
true
,
...
...
src/formJson/fnaForm.js
View file @
eb5a516b
...
@@ -164,12 +164,11 @@ const fnaForm = [
...
@@ -164,12 +164,11 @@ const fnaForm = [
}
}
]
]
},
},
//家庭状况
{
{
fatherTitle
:
'家庭状况'
,
fatherTitle
:
'家庭状况'
,
keyType
:
'Array'
,
//用于表单收集值时,判断是数组还是对象
keyType
:
'Array'
,
//用于表单收集值时,判断是数组还是对象
showTable
:
true
,
//以table的形式展示
key
:
'familyMembers'
,
key
:
'familyMembers'
,
child
:
'yes'
,
//有子级dom,需要循环展示
addFamilyChildren
:
true
,
//是否可以新增子级dom
addFamilyChildren
:
true
,
//是否可以新增子级dom
fatherRequired
:
false
,
//父级必填,代表个人资料这个模块有必填项
fatherRequired
:
false
,
//父级必填,代表个人资料这个模块有必填项
data
:
[
data
:
[
...
@@ -177,426 +176,208 @@ const fnaForm = [
...
@@ -177,426 +176,208 @@ const fnaForm = [
type
:
'1'
,
type
:
'1'
,
childTitle
:
'父亲'
,
childTitle
:
'父亲'
,
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
span
:
24
,
//栅格布局份数
age
:
''
,
children
:
[
needProvide
:
''
,
{
disabled
:
false
,
label
:
'年龄'
,
dictType
:
'sys_no_yes'
,
key
:
'age'
,
options
:
[]
domType
:
'Input'
,
inputType
:
'number'
,
required
:
false
,
maxLength
:
30
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'是否需要供养'
,
key
:
'needProvide'
,
domType
:
'Select'
,
required
:
false
,
maxLength
:
30
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
dictType
:
'sys_no_yes'
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
}
]
},
},
{
{
type
:
'2'
,
type
:
'2'
,
childTitle
:
'母亲'
,
childTitle
:
'母亲'
,
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
span
:
24
,
//栅格布局份数
span
:
24
,
//栅格布局份数
children
:
[
age
:
''
,
{
needProvide
:
''
,
label
:
'年龄'
,
disabled
:
false
,
key
:
'age'
,
dictType
:
'sys_no_yes'
,
domType
:
'Input'
,
options
:
[]
inputType
:
'number'
,
required
:
false
,
maxLength
:
30
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'是否需要供养'
,
key
:
'needProvide'
,
domType
:
'Select'
,
required
:
false
,
maxLength
:
30
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
dictType
:
'sys_no_yes'
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
}
]
},
},
{
{
type
:
'3'
,
type
:
'3'
,
childTitle
:
'配偶'
,
childTitle
:
'配偶'
,
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
span
:
24
,
//栅格布局份数
span
:
24
,
//栅格布局份数
children
:
[
age
:
''
,
{
needProvide
:
''
,
label
:
'年龄'
,
disabled
:
false
,
key
:
'age'
,
dictType
:
'sys_no_yes'
,
domType
:
'Input'
,
options
:
[]
inputType
:
'number'
,
required
:
false
,
maxLength
:
30
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'是否需要供养'
,
key
:
'needProvide'
,
domType
:
'Select'
,
required
:
false
,
maxLength
:
30
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
dictType
:
'sys_no_yes'
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
}
]
}
}
]
]
},
},
//财务需要分析
//财务需要分析
{
{
fatherTitle
:
'财务需要分析'
,
fatherTitle
:
'财务需要分析'
,
subTitle
:
'保单持有人个人已有保障'
,
keyType
:
'Array'
,
//用于表单收集值时,判断是数组还是对象
keyType
:
'Array'
,
//用于表单收集值时,判断是数组还是对象
key
:
'existingSecurityOwner'
,
key
:
'existingSecurityOwner'
,
showTable
:
true
,
dataLength
:
5
,
//设置dataLength,用于控制子级dom的个数,子级保存一个样例数据,便于加子级数据
dataLength
:
5
,
//设置dataLength,用于控制子级dom的个数,子级保存一个样例数据,便于加子级数据
child
:
'yes'
,
//有子级dom,需要循环展示
fatherRequired
:
false
,
//父级必填,代表个人资料这个模块有必填项
fatherRequired
:
false
,
//父级必填,代表个人资料这个模块有必填项
data
:
[
data
:
[
{
{
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
span
:
24
,
//栅格布局份数
span
:
24
,
//栅格布局份数
childTitle
:
'保单持有人个人已有保障'
,
childTitle
:
'保单持有人个人已有保障'
,
children
:
[
insurer
:
''
,
{
insuranceType
:
''
,
label
:
'保险公司'
,
sumInsured
:
''
,
key
:
'insurer'
,
policyIssueDate
:
''
,
domType
:
'Input'
,
currency
:
''
,
inputType
:
'text'
,
dictType
:
'bx_currency_type'
,
required
:
false
,
options
:
[]
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'保障类型'
,
key
:
'insuranceType'
,
domType
:
'Input'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'保额'
,
key
:
'sumInsured'
,
domType
:
'Input'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'币种'
,
key
:
'currency'
,
domType
:
'Select'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
dictType
:
'bx_currency_type'
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'保单签发日期'
,
key
:
'policyIssueDate'
,
domType
:
'DatePicker'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
}
]
}
}
]
]
},
},
//受保人个人已有保障
//受保人个人已有保障
{
{
keyType
:
'Array'
,
//用于表单收集值时,判断是数组还是对象
keyType
:
'Array'
,
//用于表单收集值时,判断是数组还是对象
subTitle
:
'受保人个人已有保障'
,
key
:
'existingSecurityInsured'
,
key
:
'existingSecurityInsured'
,
dataLength
:
5
,
//设置dataLength,用于控制子级dom的个数,子级保存一个样例数据,便于加子级数据
dataLength
:
5
,
//设置dataLength,用于控制子级dom的个数,子级保存一个样例数据,便于加子级数据
child
:
'yes'
,
//有子级dom,需要循环展示
showTable
:
true
,
fatherRequired
:
false
,
//父级必填,代表个人资料这个模块有必填项
fatherRequired
:
false
,
//父级必填,代表个人资料这个模块有必填项
data
:
[
data
:
[
{
{
childTitle
:
'受保人个人已有保障'
,
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
span
:
24
,
//栅格布局份数
span
:
24
,
//栅格布局份数
children
:
[
subTitle
:
'受保人个人已有保障'
,
{
insurer
:
''
,
label
:
'保险公司'
,
insuranceType
:
''
,
key
:
'insurer'
,
sumInsured
:
''
,
domType
:
'Input'
,
policyIssueDate
:
''
,
inputType
:
'text'
,
currency
:
''
,
required
:
false
,
dictType
:
'bx_currency_type'
,
maxLength
:
300
,
options
:
[]
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'保障类型'
,
key
:
'insuranceType'
,
domType
:
'Input'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'保额'
,
key
:
'sumInsured'
,
domType
:
'Input'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'币种'
,
key
:
'currency'
,
domType
:
'Select'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
dictType
:
'bx_currency_type'
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'保单签发日期'
,
key
:
'policyIssueDate'
,
domType
:
'DatePicker'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
}
]
}
}
]
]
// data: [
// {
// childTitle: '受保人个人已有保障',
// id: Date.now() + Math.floor(Math.random() * 1000), //唯一标识
// span: 24, //栅格布局份数
// children: [
// {
// label: '保险公司',
// key: 'insurer',
// domType: 'Input',
// inputType: 'text',
// required: false,
// maxLength: 300,
// disabled: false,
// placeholder: '请输入',
// show: true,
// labelPosition: 'top', //标签的位置
// labelWidth: '120px', //标签宽度
// sm: 8, //栅格布局份数
// lg: 8 //栅格布局份数
// },
// {
// label: '保障类型',
// key: 'insuranceType',
// domType: 'Input',
// inputType: 'text',
// required: false,
// maxLength: 300,
// disabled: false,
// placeholder: '请输入',
// show: true,
// labelPosition: 'top', //标签的位置
// labelWidth: '120px', //标签宽度
// sm: 8, //栅格布局份数
// lg: 8 //栅格布局份数
// },
// {
// label: '保额',
// key: 'sumInsured',
// domType: 'Input',
// inputType: 'text',
// required: false,
// maxLength: 300,
// disabled: false,
// placeholder: '请输入',
// show: true,
// labelPosition: 'top', //标签的位置
// labelWidth: '120px', //标签宽度
// sm: 8, //栅格布局份数
// lg: 8 //栅格布局份数
// },
// {
// label: '币种',
// key: 'currency',
// domType: 'Select',
// inputType: 'text',
// required: false,
// maxLength: 300,
// disabled: false,
// placeholder: '请输入',
// show: true,
// dictType: 'bx_currency_type',
// labelPosition: 'top', //标签的位置
// labelWidth: '120px', //标签宽度
// sm: 8, //栅格布局份数
// lg: 8 //栅格布局份数
// },
// {
// label: '保单签发日期',
// key: 'policyIssueDate',
// domType: 'DatePicker',
// required: false,
// maxLength: 300,
// disabled: false,
// placeholder: '请输入',
// show: true,
// labelPosition: 'top', //标签的位置
// labelWidth: '120px', //标签宽度
// sm: 8, //栅格布局份数
// lg: 8 //栅格布局份数
// }
// ]
// }
// ]
},
},
//
保单持有人资
产
//
投资房地
产
{
{
keyType
:
'Array'
,
//用于表单收集值时,判断是数组还是对象
keyType
:
'Array'
,
//用于表单收集值时,判断是数组还是对象
key
:
'primaryResidence'
,
key
:
'investment'
,
dataLength
:
1
,
//设置dataLength,用于控制子级dom的个数,子级保存一个样例数据,便于加子级数据
subTitle
:
'投资房地产'
,
child
:
'yes'
,
//有子级dom,需要循环展示
showTable
:
true
,
subTitle
:
'保单持有人资产'
,
dataLength
:
2
,
//设置dataLength,用于控制子级dom的个数,子级保存一个样例数据,便于加子级数据
fatherRequired
:
false
,
//父级必填,代表个人资料这个模块有必填项
fatherRequired
:
false
,
//父级必填,代表个人资料这个模块有必填项
data
:
[
data
:
[
{
{
childTitle
:
'
自住用途之
房地产'
,
childTitle
:
'
投资
房地产'
,
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
span
:
24
,
//栅格布局份数
span
:
24
,
//栅格布局份数
children
:
[
address
:
''
,
{
currency
:
''
,
label
:
'自住用途之房地产地址'
,
dictType
:
'bx_currency_type'
,
key
:
'address'
,
marketValue
:
''
domType
:
'Input'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'180px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'币种'
,
key
:
'currency'
,
domType
:
'Select'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
dictType
:
'bx_currency_type'
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'自住用途之房地产市值(HKD)'
,
key
:
'marketValue'
,
domType
:
'Input'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'220px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
}
]
}
}
]
]
},
},
//保单持有人资产
{
{
keyType
:
'Array'
,
//用于表单收集值时,判断是数组还是对象
keyType
:
'Array'
,
//用于表单收集值时,判断是数组还是对象
key
:
'investment'
,
key
:
'primaryResidence'
,
dataLength
:
2
,
//设置dataLength,用于控制子级dom的个数,子级保存一个样例数据,便于加子级数据
dataLength
:
1
,
//设置dataLength,用于控制子级dom的个数,子级保存一个样例数据,便于加子级数据
child
:
'yes'
,
//有子级dom,需要循环展示
showTable
:
true
,
subTitle
:
'保单持有人资产'
,
fatherRequired
:
false
,
//父级必填,代表个人资料这个模块有必填项
fatherRequired
:
false
,
//父级必填,代表个人资料这个模块有必填项
data
:
[
data
:
[
{
{
childTitle
:
'
投资
房地产'
,
childTitle
:
'
自住用途之
房地产'
,
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
span
:
24
,
//栅格布局份数
span
:
24
,
//栅格布局份数
children
:
[
address
:
''
,
{
currency
:
''
,
label
:
'地址'
,
dictType
:
'bx_currency_type'
,
key
:
'address'
,
marketValue
:
''
domType
:
'Input'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'币种'
,
key
:
'currency'
,
domType
:
'Select'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
dictType
:
'bx_currency_type'
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
},
{
label
:
'市值(HKD)'
,
key
:
'marketValue'
,
domType
:
'Input'
,
inputType
:
'text'
,
required
:
false
,
maxLength
:
300
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
}
]
}
}
]
]
},
},
...
...
src/views/sign/FnaList/components/customer.vue
View file @
eb5a516b
...
@@ -41,6 +41,7 @@
...
@@ -41,6 +41,7 @@
:placeholder=
"child.placeholder"
:placeholder=
"child.placeholder"
maxlength=
"30"
maxlength=
"30"
:disabled=
"child.disabled"
:disabled=
"child.disabled"
@
change=
"handleInputChange(child)"
/>
/>
<el-select
<el-select
v-if=
"child.type === 'Select'"
v-if=
"child.type === 'Select'"
...
@@ -63,6 +64,9 @@
...
@@ -63,6 +64,9 @@
type=
"date"
type=
"date"
:placeholder=
"child.placeholder"
:placeholder=
"child.placeholder"
:disabled=
"child.disabled"
:disabled=
"child.disabled"
:disabled-date=
"time => disabledDate(time, child)"
:default-value=
"defaultDisplayDate"
@
change=
"handleDateChange(child)"
/>
/>
<el-input
<el-input
...
@@ -180,6 +184,8 @@
...
@@ -180,6 +184,8 @@
</div>
</div>
</template>
</template>
<
script
setup
name=
"customer"
>
<
script
setup
name=
"customer"
>
import
{
calculateExactAge
}
from
'@/utils/date'
import
dayjs
from
'dayjs'
import
{
ArrowRight
}
from
'@element-plus/icons-vue'
import
{
ArrowRight
}
from
'@element-plus/icons-vue'
import
customerDomData
from
'@/formJson/customer'
import
customerDomData
from
'@/formJson/customer'
import
Country
from
'@/views/components/country'
import
Country
from
'@/views/components/country'
...
@@ -211,6 +217,10 @@ const oldObjInfo = ref({}) // 修改时存储原始数据,便于撤销操作
...
@@ -211,6 +217,10 @@ const oldObjInfo = ref({}) // 修改时存储原始数据,便于撤销操作
const
tableLoading
=
ref
(
false
)
const
tableLoading
=
ref
(
false
)
const
tableData
=
ref
([])
const
tableData
=
ref
([])
const
total
=
ref
(
0
)
const
total
=
ref
(
0
)
const
customerRef
=
ref
(
null
)
// / 计算默认显示的日期(18年前的今天)
const
defaultDisplayDate
=
ref
(
dayjs
().
subtract
(
18
,
'year'
).
toDate
())
// 地址组件菜单数据
// 地址组件菜单数据
const
addressMenuList
=
ref
([
const
addressMenuList
=
ref
([
{
{
...
@@ -281,6 +291,34 @@ const data = reactive({
...
@@ -281,6 +291,34 @@ const data = reactive({
}
}
})
})
const
{
form
,
rules
,
processedCustomerData
,
queryParams
,
oldCustomerData
}
=
toRefs
(
data
)
const
{
form
,
rules
,
processedCustomerData
,
queryParams
,
oldCustomerData
}
=
toRefs
(
data
)
const
handleInputChange
=
child
=>
{
if
(
(
child
.
key
==
'lastName'
||
child
.
key
==
'firstName'
)
&&
form
.
value
[
'lastName'
]
&&
form
.
value
[
'firstName'
]
)
{
form
.
value
[
'name'
]
=
form
.
value
[
'lastName'
]
+
form
.
value
[
'firstName'
]
}
}
const
handleDateChange
=
child
=>
{
let
age
=
null
if
(
child
.
key
==
'birthdate'
)
{
age
=
calculateExactAge
(
proxy
.
formatToDate
(
form
.
value
.
birthdate
))
if
(
age
>=
18
)
{
form
.
value
.
age
=
age
}
}
}
const
disabledDate
=
(
time
,
child
)
=>
{
if
(
child
.
key
==
'birthdate'
)
{
// 计算18年前的今天
const
eighteenYearsAgo
=
dayjs
().
subtract
(
18
,
'year'
)
// 禁用今天之后的日期和18年前的今天之后的日期
return
time
.
getTime
()
>
Date
.
now
()
||
time
.
getTime
()
>
eighteenYearsAgo
.
valueOf
()
}
else
{
return
time
.
getTime
()
>
Date
.
now
()
}
}
const
resetCustomerList
=
()
=>
{
const
resetCustomerList
=
()
=>
{
queryParams
.
value
=
{
queryParams
.
value
=
{
pageNo
:
1
,
pageNo
:
1
,
...
@@ -369,7 +407,7 @@ const processFormData = async () => {
...
@@ -369,7 +407,7 @@ const processFormData = async () => {
}
}
if
(
props
.
customerBizId
)
{
if
(
props
.
customerBizId
)
{
field
.
disabled
=
true
field
.
disabled
=
true
}
else
{
}
else
if
(
field
.
key
!==
'age'
)
{
field
.
disabled
=
false
field
.
disabled
=
false
}
}
}
}
...
@@ -437,6 +475,7 @@ const handleCloseDrawer = () => {
...
@@ -437,6 +475,7 @@ const handleCloseDrawer = () => {
showCountryDrawer
.
value
=
false
showCountryDrawer
.
value
=
false
drawerInfo
.
value
=
{}
drawerInfo
.
value
=
{}
}
}
// 点击了抽屉的确定
const
confirmDrawer
=
info
=>
{
const
confirmDrawer
=
info
=>
{
// info 为抽屉返回的值
// info 为抽屉返回的值
if
(
drawerInfo
.
value
.
type
==
'arrowRight'
&&
drawerInfo
.
value
.
drawerType
)
{
if
(
drawerInfo
.
value
.
type
==
'arrowRight'
&&
drawerInfo
.
value
.
drawerType
)
{
...
@@ -465,8 +504,13 @@ const confirmDrawer = info => {
...
@@ -465,8 +504,13 @@ const confirmDrawer = info => {
default
:
default
:
break
break
}
}
// 手动触发表单验证
nextTick
(()
=>
{
// 根据不同的drawerType确定要验证的字段key
const
validateField
=
drawerInfo
.
value
.
key
customerRef
.
value
.
clearValidate
(
validateField
)
})
}
}
console
.
log
(
'saveKey.value'
,
saveKey
.
value
)
handleCloseDrawer
()
handleCloseDrawer
()
}
}
...
@@ -505,8 +549,6 @@ const handleSelectChange = child => {
...
@@ -505,8 +549,6 @@ const handleSelectChange = child => {
// 改变编辑状态
// 改变编辑状态
const
handleEditStatus
=
()
=>
{
const
handleEditStatus
=
()
=>
{
editStatus
.
value
=
!
editStatus
.
value
editStatus
.
value
=
!
editStatus
.
value
console
.
log
(
'触发了编辑状态'
,
editStatus
.
value
)
// 深拷贝原始数据
// 深拷贝原始数据
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
processedCustomerData
.
value
))
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
processedCustomerData
.
value
))
for
(
const
section
of
processedData
)
{
for
(
const
section
of
processedData
)
{
...
@@ -514,7 +556,7 @@ const handleEditStatus = () => {
...
@@ -514,7 +556,7 @@ const handleEditStatus = () => {
for
(
const
field
of
section
.
data
)
{
for
(
const
field
of
section
.
data
)
{
if
(
editStatus
.
value
)
{
if
(
editStatus
.
value
)
{
field
.
disabled
=
true
field
.
disabled
=
true
}
else
{
}
else
if
(
field
.
key
!==
'age'
)
{
field
.
disabled
=
false
field
.
disabled
=
false
}
}
}
}
...
@@ -627,6 +669,15 @@ const setFormValue = (obj, formData, exportValue) => {
...
@@ -627,6 +669,15 @@ const setFormValue = (obj, formData, exportValue) => {
}
}
}
}
})
})
if
(
form
.
value
[
'birthdate'
])
{
let
age
=
calculateExactAge
(
proxy
.
formatToDate
(
form
.
value
.
birthdate
))
if
(
age
>=
18
)
{
form
.
value
.
age
=
age
}
}
else
{
form
.
value
.
age
=
null
}
console
.
log
(
'form.value回填'
,
form
.
value
)
phoneQuickList
.
value
=
removeDuplicates
(
tempPhoneList
,
'phoneString'
)
phoneQuickList
.
value
=
removeDuplicates
(
tempPhoneList
,
'phoneString'
)
addressQuickList
.
value
=
removeDuplicates
(
tempAddressList
,
'addressString'
)
addressQuickList
.
value
=
removeDuplicates
(
tempAddressList
,
'addressString'
)
...
@@ -760,7 +811,7 @@ const resetForm = () => {
...
@@ -760,7 +811,7 @@ const resetForm = () => {
.
catch
(()
=>
{})
.
catch
(()
=>
{})
}
}
// 获取
流程
详情
// 获取
客户
详情
function
getCustomerInfo
(
customerBizId
,
formData
)
{
function
getCustomerInfo
(
customerBizId
,
formData
)
{
getCustomerDetail
(
customerBizId
).
then
(
async
res
=>
{
getCustomerDetail
(
customerBizId
).
then
(
async
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
...
...
src/views/sign/FnaList/components/fanForm.vue
View file @
eb5a516b
...
@@ -198,6 +198,226 @@
...
@@ -198,6 +198,226 @@
>
>
<
/el-col
>
<
/el-col
>
<
/el-row
>
<
/el-row
>
<
el
-
row
v
-
if
=
"father.showTable"
>
<
template
><
div
class
=
"subTitle"
v
-
if
=
"father.subTitle"
>
{{
father
.
subTitle
}}
<
/div></
template
>
<
el
-
table
:
data
=
"father.data"
border
>
<
template
v
-
if
=
"father.key == 'familyMembers' && form[father.key].length > 0"
>
<
el
-
table
-
column
label
=
"亲属"
prop
=
"childTitle"
width
=
"100px"
align
=
"center"
>
<
template
#
default
=
"scope"
>
{{
scope
.
row
.
type
==
'4'
?
`${scope.row.childTitle
}
-${scope.$index - 2
}
`
:
scope
.
row
.
childTitle
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"年龄"
prop
=
"age"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
input
v
-
model
=
"scope.row.age"
size
=
"default"
placeholder
=
"请输入"
:
disabled
=
"editStatus"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"是否需要供养"
prop
=
"needProvide"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
select
v
-
model
=
"scope.row.needProvide"
placeholder
=
"请选择"
:
disabled
=
"editStatus"
>
<
el
-
option
v
-
for
=
"item in scope.row.options"
:
key
=
"item.value"
:
label
=
"item.label"
:
value
=
"item.value"
/>
<
/el-select
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
width
=
"50px"
v
-
if
=
"father.data && father.data.some(item => item.type === '4')"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
icon
v
-
if
=
"scope.row.type == '4'"
@
click
=
"deleteChildren(father, scope.$index)"
class
=
"deleteIcon"
><
Delete
/><
/el-icon
>
<
/template
>
<
/el-table-column
>
<
/template
>
<
template
v
-
if
=
"
(father.key == 'existingSecurityOwner' ||
father.key == 'existingSecurityInsured') &&
form[father.key].length > 0
"
>
<
el
-
table
-
column
label
=
"保险公司"
prop
=
"insurer"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
input
size
=
"default"
placeholder
=
"请输入"
v
-
model
=
"scope.row.insurer"
:
disabled
=
"editStatus"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"保障类型"
prop
=
"insuranceType"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
input
v
-
model
=
"scope.row.insuranceType"
size
=
"default"
placeholder
=
"请输入"
:
disabled
=
"editStatus"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"保额"
prop
=
"sumInsured"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
input
v
-
model
=
"scope.row.sumInsured"
size
=
"default"
placeholder
=
"请输入"
:
disabled
=
"editStatus"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"币种"
prop
=
"currency"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
select
v
-
model
=
"scope.row.currency"
placeholder
=
"请选择"
:
disabled
=
"editStatus"
>
<
el
-
option
v
-
for
=
"item in scope.row.options"
:
key
=
"item.value"
:
label
=
"item.label"
:
value
=
"item.value"
/>
<
/el-select
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"保单签发日期"
prop
=
"policyIssueDate"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
date
-
picker
style
=
"width: 100%"
v
-
model
=
"scope.row.policyIssueDate"
type
=
"date"
placeholder
=
"请输入"
:
disabled
=
"editStatus"
:
disabled
-
date
=
"disabledDate"
/>
<
/template
>
<
/el-table-column
>
<
/template
>
<
template
v
-
if
=
"father.key == 'investment' && form[father.key].length > 0"
>
<
el
-
table
-
column
label
=
"地址"
prop
=
"address"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
input
size
=
"default"
placeholder
=
"请输入"
v
-
model
=
"scope.row.address"
:
disabled
=
"editStatus"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"市值(HKD)"
prop
=
"marketValue"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
input
v
-
model
=
"scope.row.marketValue"
size
=
"default"
placeholder
=
"请输入"
:
disabled
=
"editStatus"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"币种"
prop
=
"currency"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
select
v
-
model
=
"scope.row.currency"
placeholder
=
"请选择"
:
disabled
=
"editStatus"
>
<
el
-
option
v
-
for
=
"item in scope.row.options"
:
key
=
"item.value"
:
label
=
"item.label"
:
value
=
"item.value"
/>
<
/el-select
>
<
/template
>
<
/el-table-column
>
<
/template
>
<
template
v
-
if
=
"father.key == 'primaryResidence'"
>
<
el
-
table
-
column
label
=
"自住用途之房地产地址"
prop
=
"address"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
input
size
=
"default"
placeholder
=
"请输入"
v
-
model
=
"scope.row.address"
:
disabled
=
"editStatus"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"自住用途之房地产市值(HKD)"
prop
=
"marketValue"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
input
v
-
model
=
"scope.row.marketValue"
size
=
"default"
placeholder
=
"请输入"
:
disabled
=
"editStatus"
/>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"币种"
prop
=
"currency"
align
=
"center"
>
<
template
#
default
=
"scope"
>
<
el
-
select
v
-
model
=
"scope.row.currency"
placeholder
=
"请选择"
:
disabled
=
"editStatus"
>
<
el
-
option
v
-
for
=
"item in scope.row.options"
:
key
=
"item.value"
:
label
=
"item.label"
:
value
=
"item.value"
/>
<
/el-select
>
<
/template
>
<
/el-table-column
>
<
/template
>
<
/el-table
>
<
el
-
col
:
span
=
"24"
v
-
if
=
"father.addFamilyChildren"
style
=
"display: flex; justify-content: center"
>
<
el
-
button
:
disabled
=
"editStatus"
style
=
"margin-top: 10px"
type
=
"primary"
icon
=
"Plus"
@
click
=
"addChildren(father)"
>
添加儿女
<
/el-butto
n
>
<
/el-col
>
<
/el-row
>
<
/div
>
<
/div
>
<
/el-row
>
<
/el-row
>
...
@@ -225,19 +445,21 @@
...
@@ -225,19 +445,21 @@
<
/el-row
>
<
/el-row
>
<
/el-form
>
<
/el-form
>
<
/div
>
<
/div
>
<
div
v
-
else
class
=
"domEmpty"
v
-
loading
=
"loading"
><
/div
>
<
/div
>
<
/div
>
<
/template
>
<
/template
>
<
script
setup
name
=
"
customer
"
>
<
script
setup
name
=
"
fanForm
"
>
import
useDictStore
from
'@/store/modules/dict'
import
useDictStore
from
'@/store/modules/dict'
import
fanFormDomData
from
'@/formJson/fnaForm'
import
fanFormDomData
from
'@/formJson/fnaForm'
import
{
getDicts
}
from
'@/api/system/dict/data'
import
{
getDicts
}
from
'@/api/system/dict/data'
import
{
watch
}
from
'vue'
import
{
watch
,
nextTick
}
from
'vue'
import
{
addfanForm
,
getfanFormDetail
,
editFanForm
,
getCustomerList
}
from
'@/api/sign/fna'
import
{
addfanForm
,
getfanFormDetail
,
editFanForm
,
getCustomerList
}
from
'@/api/sign/fna'
import
{
listTenantUser
}
from
'@/api/common'
import
{
listTenantUser
}
from
'@/api/common'
import
useUserStore
from
'@/store/modules/user'
import
useUserStore
from
'@/store/modules/user'
const
userStore
=
useUserStore
()
const
userStore
=
useUserStore
()
const
dictStore
=
useDictStore
()
//获取字典数据
const
dictStore
=
useDictStore
()
//获取字典数据
const
props
=
defineProps
({
const
props
=
defineProps
({
customerInfo
:
{
type
:
Object
,
default
:
()
=>
{
}
}
,
//客户详情
activeName
:
{
type
:
String
,
default
:
''
}
,
//tab名称
activeName
:
{
type
:
String
,
default
:
''
}
,
//tab名称
fearthStatus
:
{
type
:
String
,
default
:
''
}
,
//父组件状态,新增、修改
fearthStatus
:
{
type
:
String
,
default
:
''
}
,
//父组件状态,新增、修改
fnaFormBizId
:
{
type
:
String
,
default
:
''
}
,
//提交状态,新增、修改
fnaFormBizId
:
{
type
:
String
,
default
:
''
}
,
//提交状态,新增、修改
...
@@ -247,17 +469,19 @@ const props = defineProps({
...
@@ -247,17 +469,19 @@ const props = defineProps({
const
emit
=
defineEmits
([
'handleSuccess'
])
const
emit
=
defineEmits
([
'handleSuccess'
])
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
loading
=
ref
(
false
)
const
fanFormRef
=
ref
(
null
)
const
errorFields
=
ref
([])
// 存储校验失败的字段信息
const
errorFields
=
ref
([])
// 存储校验失败的字段信息
const
editStatus
=
ref
(
true
)
// 表单是否可编辑,若是修改初始不可编辑
const
editStatus
=
ref
(
true
)
// 表单是否可编辑,若是修改初始不可编辑
const
openList
=
ref
(
false
)
// 客户列表弹窗
const
openList
=
ref
(
false
)
// 客户列表弹窗
const
oldObjInfo
=
ref
({
}
)
// 修改时存储原始数据,便于撤销操作
const
noYesList
=
ref
([])
// 是否列表
const
noYesList
=
ref
([])
// 是否列表
const
searchOptions
=
ref
({
}
)
// 存储不同key对应的选项
const
searchOptions
=
ref
({
}
)
// 存储不同key对应的选项
const
searchLoadingStates
=
ref
({
}
)
// 存储不同key对应的加载状态
const
searchLoadingStates
=
ref
({
}
)
// 存储不同key对应的加载状态
const
data
=
reactive
({
const
data
=
reactive
({
form
:
{
}
,
form
:
{
}
,
processedFanFormData
:
[],
// 处理后的表单数据
processedFanFormData
:
[],
// 处理后的表单数据
tempFanFormValue
:
{
}
,
// 切换tab得时候保存临时填写得值
tempFanFormData
:
[],
// 处理后的表单数据
oldFanFormData
:
[],
// 保存旧的表单Dom,便于撤销操作
oldFanFormData
:
[],
// 保存旧的表单Dom,便于撤销操作
rules
:
{
}
,
//表单验证规则,
rules
:
{
}
,
//表单验证规则,
queryParams
:
{
queryParams
:
{
...
@@ -266,8 +490,18 @@ const data = reactive({
...
@@ -266,8 +490,18 @@ const data = reactive({
name
:
undefined
name
:
undefined
}
}
}
)
}
)
const
{
form
,
rules
,
processedFanFormData
,
queryParams
,
oldFanFormData
}
=
toRefs
(
data
)
const
{
// 下拉框搜索方法
form
,
rules
,
processedFanFormData
,
queryParams
,
oldFanFormData
,
tempFanFormValue
,
tempFanFormData
}
=
toRefs
(
data
)
const
disabledDate
=
time
=>
{
return
time
.
getTime
()
>
Date
.
now
()
}
// 搜索方法
// 搜索方法
const
searchSelectList
=
async
(
query
,
fieldKey
)
=>
{
const
searchSelectList
=
async
(
query
,
fieldKey
)
=>
{
// 设置该字段的加载状态
// 设置该字段的加载状态
...
@@ -315,6 +549,7 @@ const fetchDictData = dictType => {
...
@@ -315,6 +549,7 @@ const fetchDictData = dictType => {
}
}
// 处理表单配置,添加字典数据
// 处理表单配置,添加字典数据
const
processFormData
=
async
()
=>
{
const
processFormData
=
async
()
=>
{
loading
.
value
=
true
// 深拷贝原始数据
// 深拷贝原始数据
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
fanFormDomData
))
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
fanFormDomData
))
...
@@ -325,6 +560,9 @@ const processFormData = async () => {
...
@@ -325,6 +560,9 @@ const processFormData = async () => {
//给表单赋值各模块key,对应表单的father.key便于收集值
//给表单赋值各模块key,对应表单的father.key便于收集值
if
(
section
.
keyType
==
'Array'
)
{
if
(
section
.
keyType
==
'Array'
)
{
form
.
value
[
section
.
key
]
=
[]
form
.
value
[
section
.
key
]
=
[]
if
(
section
.
key
==
'familyMembers'
)
{
form
.
value
[
section
.
key
]
=
section
.
data
}
}
else
if
(
section
.
keyType
==
'Object'
)
{
}
else
if
(
section
.
keyType
==
'Object'
)
{
form
.
value
[
section
.
key
]
=
{
}
form
.
value
[
section
.
key
]
=
{
}
}
}
...
@@ -334,6 +572,7 @@ const processFormData = async () => {
...
@@ -334,6 +572,7 @@ const processFormData = async () => {
if
(
section
.
dataLength
)
{
if
(
section
.
dataLength
)
{
for
(
let
i
=
1
;
i
<
section
.
dataLength
;
i
++
)
{
for
(
let
i
=
1
;
i
<
section
.
dataLength
;
i
++
)
{
section
.
data
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
section
.
data
[
0
])))
section
.
data
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
section
.
data
[
0
])))
form
.
value
[
formKey
].
push
(
JSON
.
parse
(
JSON
.
stringify
(
section
.
data
[
0
])))
}
}
}
}
for
(
const
field
of
section
.
data
)
{
for
(
const
field
of
section
.
data
)
{
...
@@ -361,6 +600,9 @@ const processFormData = async () => {
...
@@ -361,6 +600,9 @@ const processFormData = async () => {
if
(
field
.
dictType
)
{
if
(
field
.
dictType
)
{
// 获取字典数据
// 获取字典数据
field
.
options
=
fetchDictData
(
field
.
dictType
)
field
.
options
=
fetchDictData
(
field
.
dictType
)
if
(
field
.
dictType
==
'sys_no_yes'
)
{
noYesList
.
value
=
field
.
options
}
}
}
//
//
/*
/*
...
@@ -375,6 +617,9 @@ const processFormData = async () => {
...
@@ -375,6 +617,9 @@ const processFormData = async () => {
if
(
props
.
fnaFormBizId
)
{
if
(
props
.
fnaFormBizId
)
{
field
.
disabled
=
true
field
.
disabled
=
true
}
else
{
}
else
{
if
(
field
.
key
==
'customerName'
&&
section
.
key
==
'personalData'
)
{
form
.
value
[
'personalData'
][
field
.
key
]
=
props
.
customerInfo
.
firstNamePinyin
}
field
.
disabled
=
false
field
.
disabled
=
false
}
}
}
}
...
@@ -385,13 +630,23 @@ const processFormData = async () => {
...
@@ -385,13 +630,23 @@ const processFormData = async () => {
}
}
}
}
}
}
if
(
props
.
fnaFormBizId
)
{
if
(
props
.
fnaFormBizId
)
{
getFanformInfo
(
props
.
fnaFormBizId
,
processedData
)
getFanformInfo
(
props
.
fnaFormBizId
,
processedData
)
editStatus
.
value
=
true
editStatus
.
value
=
true
}
else
{
}
else
{
processedFanFormData
.
value
=
oldFanFormData
.
value
=
processedData
// tab切走在切回来时,表单会重置,所以这里需要把表单的值赋回去
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
}
editStatus
.
value
=
false
editStatus
.
value
=
false
loading
.
value
=
false
}
}
}
}
// 添加表单子级dom
// 添加表单子级dom
...
@@ -404,44 +659,11 @@ const addChildren = father => {
...
@@ -404,44 +659,11 @@ const addChildren = father => {
let
obj
=
{
let
obj
=
{
type
:
'4'
,
type
:
'4'
,
childTitle
:
'儿女'
,
childTitle
:
'儿女'
,
span
:
24
,
//栅格布局份数
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
id
:
Date
.
now
()
+
Math
.
floor
(
Math
.
random
()
*
1000
),
//唯一标识
delete
:
true
,
//是否显示删除按钮
delete
:
true
,
//是否显示删除按钮
age
:
''
,
age
:
''
,
needProvide
:
''
,
needProvide
:
''
,
children
:
[
options
:
noYesList
.
value
{
label
:
'年龄'
,
key
:
'age'
,
domType
:
'Input'
,
inputType
:
'number'
,
required
:
false
,
maxLength
:
30
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
}
,
{
label
:
'是否需要供养'
,
key
:
'needProvide'
,
domType
:
'Select'
,
required
:
false
,
maxLength
:
30
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
dictType
:
'sys_no_yes'
,
options
:
noYesList
.
value
,
labelPosition
:
'top'
,
//标签的位置
labelWidth
:
'120px'
,
//标签宽度
sm
:
8
,
//栅格布局份数
lg
:
8
//栅格布局份数
}
]
}
}
for
(
const
section
of
processedData
)
{
for
(
const
section
of
processedData
)
{
if
(
father
.
key
==
'familyMembers'
&&
section
.
key
==
father
.
key
)
{
if
(
father
.
key
==
'familyMembers'
&&
section
.
key
==
father
.
key
)
{
...
@@ -453,6 +675,9 @@ const addChildren = father => {
...
@@ -453,6 +675,9 @@ const addChildren = father => {
processedFanFormData
.
value
=
processedData
processedFanFormData
.
value
=
processedData
}
}
const
deleteChildren
=
(
father
,
childIndex
)
=>
{
const
deleteChildren
=
(
father
,
childIndex
)
=>
{
if
(
editStatus
.
value
)
{
proxy
.
$modal
.
confirm
(
`请先点击编辑再删除儿女`
,
{
showCancel
:
'0'
,
title
:
'填写提示'
}
)
}
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
processedFanFormData
.
value
))
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
processedFanFormData
.
value
))
for
(
const
section
of
processedData
)
{
for
(
const
section
of
processedData
)
{
if
(
father
.
key
==
'familyMembers'
&&
section
.
key
==
father
.
key
)
{
if
(
father
.
key
==
'familyMembers'
&&
section
.
key
==
father
.
key
)
{
...
@@ -528,7 +753,8 @@ const handleEditStatus = () => {
...
@@ -528,7 +753,8 @@ const handleEditStatus = () => {
}
}
//给表单赋值 方便表单回显 obj 为表单数据
//给表单赋值 方便表单回显 obj 为表单数据
const
setFormValue
=
(
obj
,
formData
)
=>
{
const
setFormValue
=
(
obj
,
formData
)
=>
{
// 写到给家人赋值了,家人传值也不太对
loading
.
value
=
true
let
newForm
=
JSON
.
parse
(
JSON
.
stringify
(
form
.
value
))
let
newForm
=
JSON
.
parse
(
JSON
.
stringify
(
form
.
value
))
// 1.先正确的拿到表单的回显值
// 1.先正确的拿到表单的回显值
for
(
const
key
in
newForm
)
{
for
(
const
key
in
newForm
)
{
...
@@ -545,41 +771,10 @@ const setFormValue = (obj, formData) => {
...
@@ -545,41 +771,10 @@ const setFormValue = (obj, formData) => {
let
newChildren
=
{
let
newChildren
=
{
type
:
'4'
,
type
:
'4'
,
childTitle
:
'儿女'
,
childTitle
:
'儿女'
,
span
:
24
,
//栅格布局份数
delete
:
true
,
//是否显示删除按钮
delete
:
true
,
//是否显示删除按钮
age
:
''
,
age
:
''
,
needProvide
:
''
,
needProvide
:
''
,
children
:
[
options
:
noYesList
.
value
{
label
:
'年龄'
,
key
:
'age'
,
domType
:
'Input'
,
inputType
:
'number'
,
required
:
false
,
maxLength
:
30
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
labelWidth
:
'120px'
,
//标签宽度
sm
:
10
,
//栅格布局份数
lg
:
8
//栅格布局份数
}
,
{
label
:
'是否需要供养'
,
key
:
'needProvide'
,
domType
:
'Select'
,
required
:
false
,
maxLength
:
30
,
disabled
:
false
,
placeholder
:
'请输入'
,
show
:
true
,
dictType
:
'sys_no_yes'
,
options
:
noYesList
.
value
,
labelWidth
:
'120px'
,
//标签宽度
sm
:
10
,
//栅格布局份数
lg
:
8
//栅格布局份数
}
]
}
}
// 深拷贝原始表单dom数据
// 深拷贝原始表单dom数据
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
formData
))
const
processedData
=
JSON
.
parse
(
JSON
.
stringify
(
formData
))
...
@@ -672,17 +867,44 @@ const setFormValue = (obj, formData) => {
...
@@ -672,17 +867,44 @@ const setFormValue = (obj, formData) => {
}
}
}
}
}
}
console
.
log
(
'===================================='
)
for
(
const
section
of
processedData
)
{
console
.
log
(
'回显form.value'
,
form
.
value
)
for
(
const
key1
in
obj
)
{
console
.
log
(
'===================================='
)
if
(
section
.
data
)
{
// if (!exportValue)
{
//key1 !== 'familyMembers' &&
// // 保存一份就得表单数据便于做撤销操作
if
(
key1
!==
'familyMembers'
&&
key1
==
section
.
key
&&
section
.
keyType
==
'Array'
)
{
// oldObjInfo.value = JSON.parse(JSON.stringify(form.value))
section
.
data
=
obj
[
key1
].
map
(
item
=>
{
//
}
for
(
const
key2
in
item
)
{
if
(
key2
==
'currency'
)
{
item
.
options
=
fetchDictData
(
'bx_currency_type'
)
}
else
if
(
key2
==
'needProvide'
)
{
item
.
options
=
fetchDictData
(
'sys_no_yes'
)
}
}
return
{
...
item
}
}
)
}
else
if
(
key1
==
'familyMembers'
&&
key1
==
section
.
key
&&
section
.
keyType
==
'Array'
)
{
section
.
data
=
form
.
value
[
key1
].
map
(
item
=>
{
for
(
const
key2
in
item
)
{
if
(
key2
==
'needProvide'
)
{
item
.
options
=
fetchDictData
(
'sys_no_yes'
)
}
}
return
{
...
item
}
}
)
}
}
}
}
processedFanFormData
.
value
=
processedData
processedFanFormData
.
value
=
processedData
console
.
log
(
'===================================='
)
loading
.
value
=
false
console
.
log
(
'processedFanFormData.value'
,
processedFanFormData
.
value
)
nextTick
(()
=>
{
console
.
log
(
'===================================='
)
fanFormRef
.
value
.
clearValidate
()
}
)
}
}
// 获取校验失败的字段信息
// 获取校验失败的字段信息
...
@@ -710,13 +932,23 @@ const isObject = value => {
...
@@ -710,13 +932,23 @@ const isObject = value => {
// 表单提交
// 表单提交
const
submitForm
=
saveType
=>
{
const
submitForm
=
saveType
=>
{
console
.
log
(
'form.value'
,
form
.
value
)
console
.
log
(
'dom'
,
processedFanFormData
.
value
)
console
.
log
(
'表单值'
,
form
.
value
)
// 深拷贝原始数据
// 深拷贝原始数据
let
result
=
JSON
.
parse
(
JSON
.
stringify
(
form
.
value
))
let
result
=
JSON
.
parse
(
JSON
.
stringify
(
form
.
value
))
let
resDom
=
JSON
.
parse
(
JSON
.
stringify
(
processedFanFormData
.
value
))
// return
// return
proxy
.
$refs
[
'fanFormRef'
].
validate
((
valid
,
fields
)
=>
{
proxy
.
$refs
[
'fanFormRef'
].
validate
((
valid
,
fields
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
for
(
const
section
of
resDom
)
{
for
(
const
key1
in
result
)
{
// key1 !== 'familyMembers' &&
if
(
section
.
key
==
key1
&&
section
.
keyType
==
'Array'
)
{
result
[
key1
]
=
section
.
data
}
}
}
for
(
const
key
in
result
)
{
for
(
const
key
in
result
)
{
if
(
isObject
(
result
[
key
]))
{
if
(
isObject
(
result
[
key
]))
{
for
(
const
key2
in
result
[
key
])
{
for
(
const
key2
in
result
[
key
])
{
...
@@ -734,6 +966,10 @@ const submitForm = saveType => {
...
@@ -734,6 +966,10 @@ const submitForm = saveType => {
delete
item
.
disabled
delete
item
.
disabled
delete
item
.
id
delete
item
.
id
delete
item
.
span
delete
item
.
span
delete
item
.
dictType
delete
item
.
options
delete
item
.
delete
delete
item
.
subTitle
if
(
item
.
policyIssueDate
)
{
if
(
item
.
policyIssueDate
)
{
item
.
policyIssueDate
=
proxy
.
formatToDate
(
item
.
policyIssueDate
)
item
.
policyIssueDate
=
proxy
.
formatToDate
(
item
.
policyIssueDate
)
}
}
...
@@ -752,6 +988,7 @@ const submitForm = saveType => {
...
@@ -752,6 +988,7 @@ const submitForm = saveType => {
console
.
log
(
'===================================='
)
console
.
log
(
'===================================='
)
console
.
log
(
'提交的数据'
,
result
)
console
.
log
(
'提交的数据'
,
result
)
console
.
log
(
'===================================='
)
console
.
log
(
'===================================='
)
// return
if
(
props
.
fnaFormBizId
)
{
if
(
props
.
fnaFormBizId
)
{
result
.
fnaFormBizId
=
props
.
fnaFormBizId
result
.
fnaFormBizId
=
props
.
fnaFormBizId
editFanForm
(
result
).
then
(
res
=>
{
editFanForm
(
result
).
then
(
res
=>
{
...
@@ -797,17 +1034,41 @@ function getFanformInfo(fnaFormBizId, formData) {
...
@@ -797,17 +1034,41 @@ function getFanformInfo(fnaFormBizId, 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
=>
{
tempFanFormValue
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
form
.
value
))
tempFanFormData
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
processedFanFormData
.
value
))
if
(
newVal
===
'fnaform'
)
{
if
(
newVal
===
'fnaform'
)
{
openList
.
value
=
false
openList
.
value
=
false
processFormData
()
setTimeout
(()
=>
{
processFormData
()
}
,
500
)
}
}
}
}
)
)
<
/script
>
<
/script
>
<
style
lang
=
"scss"
scoped
>
<
style
lang
=
"scss"
scoped
>
.
domEmpty
{
width
:
100
%
;
height
:
100
%
;
display
:
flex
;
align
-
items
:
center
;
justify
-
content
:
center
;
height
:
100
%
;
font
-
size
:
16
px
;
color
:
#
a8abb2
;
margin
-
top
:
100
px
;
}
.
topBtn
{
.
topBtn
{
width
:
100
%
;
width
:
100
%
;
display
:
flex
;
display
:
flex
;
...
@@ -823,7 +1084,7 @@ watch(
...
@@ -823,7 +1084,7 @@ watch(
margin
-
bottom
:
5
px
;
margin
-
bottom
:
5
px
;
}
}
.
subTitle
{
.
subTitle
{
font
-
size
:
1
6
px
;
font
-
size
:
1
5
px
;
/* padding-left: 8px; */
/* padding-left: 8px; */
margin
-
bottom
:
10
px
;
margin
-
bottom
:
10
px
;
}
}
...
@@ -855,7 +1116,7 @@ watch(
...
@@ -855,7 +1116,7 @@ watch(
.
deleteIcon
{
.
deleteIcon
{
color
:
red
;
color
:
red
;
font
-
size
:
18
px
;
font
-
size
:
18
px
;
padding
-
top
:
1
5
px
;
padding
-
top
:
1
0
px
;
}
}
}
}
.
tabButton
{
.
tabButton
{
...
@@ -920,15 +1181,13 @@ watch(
...
@@ -920,15 +1181,13 @@ watch(
}
}
@
media
only
screen
and
(
min
-
width
:
768
px
)
{
@
media
only
screen
and
(
min
-
width
:
768
px
)
{
.
formInput
,
.
formInput
{
.
deleteIcon
{
margin
-
top
:
30
px
!
important
;
margin
-
top
:
30
px
!
important
;
}
}
}
}
@
media
only
screen
and
(
min
-
width
:
1200
px
)
{
@
media
only
screen
and
(
min
-
width
:
1200
px
)
{
.
formInput
,
.
formInput
{
.
deleteIcon
{
margin
-
top
:
30
px
!
important
;
margin
-
top
:
30
px
!
important
;
}
}
}
}
...
...
src/views/sign/FnaList/edit.vue
View file @
eb5a516b
...
@@ -106,6 +106,7 @@
...
@@ -106,6 +106,7 @@
:fnaFormBizId=
"processInfo.fnaFormBizId"
:fnaFormBizId=
"processInfo.fnaFormBizId"
:customerBizId=
"processInfo.customerBizId"
:customerBizId=
"processInfo.customerBizId"
:dictTypeLists=
"dictTypeLists"
:dictTypeLists=
"dictTypeLists"
:customerInfo=
"customerInfo"
@
handleSuccess=
"handleSuccess"
@
handleSuccess=
"handleSuccess"
/>
/>
</div>
</div>
...
@@ -130,7 +131,7 @@
...
@@ -130,7 +131,7 @@
import
AppointmentEdit
from
'@/views/sign/appointment/appointmentEdit'
import
AppointmentEdit
from
'@/views/sign/appointment/appointmentEdit'
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
}
from
'@/api/sign/fna'
import
{
addFna
,
getProcessDetail
,
updateProcess
,
getCustomerDetail
}
from
'@/api/sign/fna'
import
{
listTenantUser
,
getInsuranceProductList
,
getAdditionalProductList
}
from
'@/api/common'
import
{
listTenantUser
,
getInsuranceProductList
,
getAdditionalProductList
}
from
'@/api/common'
import
Customer
from
'./components/customer'
import
Customer
from
'./components/customer'
import
FanForm
from
'./components/fanForm'
import
FanForm
from
'./components/fanForm'
...
@@ -151,6 +152,7 @@ const processInfo = ref({
...
@@ -151,6 +152,7 @@ const processInfo = ref({
})
// 流程详情信息
})
// 流程详情信息
const
updateStatus
=
ref
(
false
)
const
updateStatus
=
ref
(
false
)
const
dictTypeLists
=
ref
([])
const
dictTypeLists
=
ref
([])
const
customerInfo
=
ref
({})
const
tabsList
=
ref
([
const
tabsList
=
ref
([
{
{
label
:
'总览'
,
label
:
'总览'
,
...
@@ -314,6 +316,9 @@ function getProcessInfo(fnaBizId, changeTab) {
...
@@ -314,6 +316,9 @@ function getProcessInfo(fnaBizId, changeTab) {
}
}
// Tab切换前的验证
// Tab切换前的验证
const
beforeTabLeave
=
(
activeTabName
,
oldTabName
)
=>
{
const
beforeTabLeave
=
(
activeTabName
,
oldTabName
)
=>
{
if
(
processInfo
.
value
.
customerBizId
)
{
getCustomerInfo
(
processInfo
.
value
.
customerBizId
)
}
// 如果切换到总览,始终允许
// 如果切换到总览,始终允许
if
(
activeTabName
===
'overview'
||
activeTabName
===
'customer'
)
{
if
(
activeTabName
===
'overview'
||
activeTabName
===
'customer'
)
{
return
true
return
true
...
@@ -372,6 +377,14 @@ if (route.query.type == 'add') {
...
@@ -372,6 +377,14 @@ if (route.query.type == 'add') {
getProcessInfo
(
route
.
query
.
fnaBizId
)
getProcessInfo
(
route
.
query
.
fnaBizId
)
},
100
)
},
100
)
}
}
// 获取客户详情
function
getCustomerInfo
(
customerBizId
)
{
getCustomerDetail
(
customerBizId
).
then
(
async
res
=>
{
if
(
res
.
code
==
200
)
{
customerInfo
.
value
=
res
.
data
}
})
}
const
handleSuccess
=
info
=>
{
const
handleSuccess
=
info
=>
{
switch
(
info
.
tab
)
{
switch
(
info
.
tab
)
{
case
'customer'
:
case
'customer'
:
...
@@ -384,7 +397,7 @@ const handleSuccess = info => {
...
@@ -384,7 +397,7 @@ const handleSuccess = info => {
}
else
{
}
else
{
processUpdate
({
fnaBizId
:
processInfo
.
value
.
fnaBizId
,
customerBizId
:
info
.
customerBizId
})
processUpdate
({
fnaBizId
:
processInfo
.
value
.
fnaBizId
,
customerBizId
:
info
.
customerBizId
})
}
}
getCustomerInfo
(
info
.
customerBizId
)
break
break
case
'fnaform'
:
case
'fnaform'
:
if
(
info
.
type
==
'add'
)
{
if
(
info
.
type
==
'add'
)
{
...
...
src/views/sign/FnaList/index.vue
View file @
eb5a516b
...
@@ -80,15 +80,9 @@
...
@@ -80,15 +80,9 @@
@
selection-change=
"tableSelect"
@
selection-change=
"tableSelect"
@
sort-change=
"sortChange"
@
sort-change=
"sortChange"
>
>
<el-table-column
type=
"selection"
width=
"55"
/>
<!--
<el-table-column
type=
"selection"
width=
"55"
/>
-->
<el-table-column
type=
"index"
width=
"50"
/>
<el-table-column
type=
"index"
width=
"50"
label=
"序号"
/>
<el-table-column
label=
"流程编号"
align=
"center"
prop=
"fnaNo"
width=
"200"
/>
<el-table-column
label=
"预约编号"
align=
"center"
prop=
"appointmentNo"
width=
"200"
/>
<el-table-column
label=
"新单编号"
align=
"center"
prop=
"policyId"
/>
<el-table-column
label=
"保单号"
align=
"center"
prop=
"policyNo"
width=
"150"
/>
<el-table-column
label=
"客户姓名"
align=
"center"
prop=
"customerName"
width=
"100"
/>
<el-table-column
label=
"客户姓名"
align=
"center"
prop=
"customerName"
width=
"100"
/>
<el-table-column
label=
"状态"
align=
"center"
width=
"150"
>
<el-table-column
label=
"状态"
align=
"center"
width=
"150"
>
<template
#
default=
"scope"
>
<template
#
default=
"scope"
>
<span
v-if=
"scope.row.status == 'UNCOMPLETED'"
>
<span
v-if=
"scope.row.status == 'UNCOMPLETED'"
>
...
@@ -102,6 +96,11 @@
...
@@ -102,6 +96,11 @@
</span>
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"流程编号"
align=
"center"
prop=
"fnaNo"
width=
"200"
/>
<el-table-column
label=
"预约编号"
align=
"center"
prop=
"appointmentNo"
width=
"200"
/>
<el-table-column
label=
"新单编号"
align=
"center"
prop=
"policyId"
/>
<el-table-column
label=
"保单号"
align=
"center"
prop=
"policyNo"
width=
"150"
/>
<el-table-column
label=
"创建时间"
sortable
align=
"center"
prop=
"createTime"
width=
"200"
>
<el-table-column
label=
"创建时间"
sortable
align=
"center"
prop=
"createTime"
width=
"200"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
...
@@ -115,13 +114,9 @@
...
@@ -115,13 +114,9 @@
fixed=
"right"
fixed=
"right"
>
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<el-button
type=
"primary"
@
click=
"handleUpdate(scope.row)"
>
修改
</el-button>
<el-button
type=
"primary"
link
@
click=
"handleUpdate(scope.row)"
>
修改
</el-button>
<el-button
type=
"success"
@
click=
"handleCopy(scope.row)"
>
生成副本
</el-button>
<el-button
type=
"success"
link
@
click=
"handleCopy(scope.row)"
>
生成副本
</el-button>
<!-- v-if="scope.row.status == 'COMPLETED'" -->
<el-button
v-if=
"!scope.row.policyNo"
type=
"danger"
link
@
click=
"handleDelete(scope.row)"
<el-button
v-if=
"scope.row.status == 'COMPLETED'"
type=
"danger"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button
>
删除
</el-button
>
>
</
template
>
</
template
>
...
...
src/views/sign/appointment/appointmentEdit.vue
View file @
eb5a516b
...
@@ -124,6 +124,7 @@
...
@@ -124,6 +124,7 @@
:idsObj=
"idsObj"
:idsObj=
"idsObj"
:apiSecondHolderInfoDto=
"appointmentSummeryInfo.apiSecondHolderInfoDto"
:apiSecondHolderInfoDto=
"appointmentSummeryInfo.apiSecondHolderInfoDto"
:appointmentStatus=
"appointmentSummeryInfo.status"
:appointmentStatus=
"appointmentSummeryInfo.status"
:customerInfo=
"customerInfo"
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
@
handleSuccessEdit=
"getAppointmentInfo(idsObj.appointmentBizId)"
ref=
"secondHolderInfoRef"
ref=
"secondHolderInfoRef"
/>
/>
...
@@ -468,6 +469,7 @@ function getAppointmentInfo(appointmentBizId, changeTab) {
...
@@ -468,6 +469,7 @@ function getAppointmentInfo(appointmentBizId, changeTab) {
processInfo
.
value
.
status
=
item
.
label
processInfo
.
value
.
status
=
item
.
label
}
}
})
})
getCustomerInfo
(
res
.
data
.
apiAppointmentInfoDto
.
customerBizId
)
if
(
!
appointmentSummeryInfo
.
value
.
apiAppointmentInfoDto
.
appointmentBizId
)
{
if
(
!
appointmentSummeryInfo
.
value
.
apiAppointmentInfoDto
.
appointmentBizId
)
{
showStorage
.
value
=
true
showStorage
.
value
=
true
}
}
...
@@ -744,9 +746,7 @@ watch(
...
@@ -744,9 +746,7 @@ watch(
if
(
!
idsObj
.
value
.
appointmentBizId
)
{
if
(
!
idsObj
.
value
.
appointmentBizId
)
{
formStatus
.
value
=
'appointmentAdd'
formStatus
.
value
=
'appointmentAdd'
getCustomerInfo
(
props
.
processDetail
.
customerBizId
)
getCustomerInfo
(
props
.
processDetail
.
customerBizId
)
// if (idsObj.value.appointmentBizId) {
// getAppointmentInfo(idsObj.value.appointmentBizId)
// }
tabsList
.
value
=
[
tabsList
.
value
=
[
{
{
label
:
'预约信息'
,
label
:
'预约信息'
,
...
@@ -867,12 +867,14 @@ watch(
...
@@ -867,12 +867,14 @@ watch(
}
}
]
]
}
}
nextTick
(()
=>
{
nextTick
(()
=>
{
activeName
.
value
=
'appointmentInfo'
activeName
.
value
=
'appointmentInfo'
})
})
}
}
}
}
)
)
onUnmounted
(()
=>
{
onUnmounted
(()
=>
{
console
.
log
(
'预约编辑页面完全销毁'
)
console
.
log
(
'预约编辑页面完全销毁'
)
...
...
src/views/sign/appointment/components/appointmentInfo.vue
View file @
eb5a516b
...
@@ -64,6 +64,7 @@
...
@@ -64,6 +64,7 @@
:placeholder=
"child.placeholder"
:placeholder=
"child.placeholder"
:disabled=
"child.disabled"
:disabled=
"child.disabled"
@
change=
"handleDateChange(child)"
@
change=
"handleDateChange(child)"
:disabled-date=
"time => disabledDate(time, child)"
format=
"YYYY-MM-DD HH:mm"
format=
"YYYY-MM-DD HH:mm"
value-format=
"YYYY-MM-DD HH:mm:ss"
value-format=
"YYYY-MM-DD HH:mm:ss"
/>
/>
...
@@ -151,6 +152,7 @@
...
@@ -151,6 +152,7 @@
</div>
</div>
</template>
</template>
<
script
setup
name=
"appointmentInfo"
>
<
script
setup
name=
"appointmentInfo"
>
import
dayjs
from
'dayjs'
import
{
ArrowRight
}
from
'@element-plus/icons-vue'
import
{
ArrowRight
}
from
'@element-plus/icons-vue'
import
appointmentDomData
from
'@/formJson/appointmentInfo'
import
appointmentDomData
from
'@/formJson/appointmentInfo'
import
Country
from
'@/views/components/country'
import
Country
from
'@/views/components/country'
...
@@ -256,6 +258,25 @@ const data = reactive({
...
@@ -256,6 +258,25 @@ const data = reactive({
}
}
})
})
const
{
form
,
rules
,
processedAppointmentData
,
queryParams
,
oldAppointmentData
}
=
toRefs
(
data
)
const
{
form
,
rules
,
processedAppointmentData
,
queryParams
,
oldAppointmentData
}
=
toRefs
(
data
)
const
disabledDate
=
(
time
,
child
)
=>
{
// 获取“今天”的日期,并将其时间部分设置为 00:00:00
const
today
=
dayjs
().
startOf
(
'day'
)
// :cite[7]
// 将传入的 timestamp 转换为 dayjs 对象
const
inputDate
=
dayjs
(
time
)
// 可以根据参数调整逻辑
if
(
child
.
key
==
'intentionAppointmentTime'
)
{
// 默认禁用今天及今天之前 (使用 isBefore 或 isSame)
return
inputDate
.
isBefore
(
today
,
'day'
)
||
inputDate
.
isSame
(
today
,
'day'
)
// :cite[3]
// 如果允许选择今天,只禁用今天之前的日期 (使用 isBefore)
// return inputDate.isBefore(today, 'day') // :cite[3]
}
else
{
// 如果允许选择今天,只禁用今天之前的日期 (使用 isBefore)
return
inputDate
.
isBefore
(
today
,
'day'
)
// :cite[3]
// return time.getTime() > Date.now()
}
}
const
handleButtonClick
=
child
=>
{
const
handleButtonClick
=
child
=>
{
if
(
child
.
key
==
'newPolicyButton'
)
{
if
(
child
.
key
==
'newPolicyButton'
)
{
let
obj
=
{
let
obj
=
{
...
...
src/views/sign/appointment/components/insuredInfo.vue
View file @
eb5a516b
...
@@ -218,6 +218,7 @@ const props = defineProps({
...
@@ -218,6 +218,7 @@ const props = defineProps({
const
emit
=
defineEmits
([
'handleSuccessEdit'
])
const
emit
=
defineEmits
([
'handleSuccessEdit'
])
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
showPhoneDrawer
=
ref
(
false
)
//电话抽屉开关
const
showPhoneDrawer
=
ref
(
false
)
//电话抽屉开关
const
showAddressDrawer
=
ref
(
false
)
//地址抽屉开关
const
showAddressDrawer
=
ref
(
false
)
//地址抽屉开关
const
showCountryDrawer
=
ref
(
false
)
//国家/地区抽屉开关
const
showCountryDrawer
=
ref
(
false
)
//国家/地区抽屉开关
...
@@ -665,11 +666,7 @@ const confirmDrawer = info => {
...
@@ -665,11 +666,7 @@ const confirmDrawer = info => {
// info 为抽屉返回的值
// info 为抽屉返回的值
if
(
drawerInfo
.
value
.
domType
==
'arrowRight'
&&
drawerInfo
.
value
.
drawerType
)
{
if
(
drawerInfo
.
value
.
domType
==
'arrowRight'
&&
drawerInfo
.
value
.
drawerType
)
{
let
newObj
=
info
[
drawerInfo
.
value
.
key
]
let
newObj
=
info
[
drawerInfo
.
value
.
key
]
// if (form.value['customerType'] == 'COMPANY') {
// newObj.fatherKey = 'company'
// } else if (form.value['customerType'] == 'INDIVIDUAL') {
// newObj.fatherKey = 'person'
// }
//要判断drawerType
//要判断drawerType
switch
(
drawerInfo
.
value
.
drawerType
)
{
switch
(
drawerInfo
.
value
.
drawerType
)
{
case
'phone'
:
case
'phone'
:
...
@@ -692,6 +689,12 @@ const confirmDrawer = info => {
...
@@ -692,6 +689,12 @@ const confirmDrawer = info => {
default
:
default
:
break
break
}
}
// 手动触发表单验证
nextTick
(()
=>
{
// 根据不同的drawerType确定要验证的字段key
const
validateField
=
drawerInfo
.
value
.
key
insuredInfoFormRef
.
value
.
clearValidate
(
validateField
)
})
}
}
handleCloseDrawer
()
handleCloseDrawer
()
...
...
src/views/sign/appointment/components/policyHolderInfo.vue
View file @
eb5a516b
...
@@ -218,6 +218,7 @@ const props = defineProps({
...
@@ -218,6 +218,7 @@ const props = defineProps({
const
emit
=
defineEmits
([
'handleSuccessEdit'
])
const
emit
=
defineEmits
([
'handleSuccessEdit'
])
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
showPhoneDrawer
=
ref
(
false
)
//电话抽屉开关
const
showPhoneDrawer
=
ref
(
false
)
//电话抽屉开关
const
showAddressDrawer
=
ref
(
false
)
//地址抽屉开关
const
showAddressDrawer
=
ref
(
false
)
//地址抽屉开关
const
showCountryDrawer
=
ref
(
false
)
//国家/地区抽屉开关
const
showCountryDrawer
=
ref
(
false
)
//国家/地区抽屉开关
...
@@ -609,10 +610,9 @@ const processFormData = async obj => {
...
@@ -609,10 +610,9 @@ const processFormData = async obj => {
//弹出右侧抽屉
//弹出右侧抽屉
const
handleFoucs
=
child
=>
{
const
handleFoucs
=
child
=>
{
if
(
child
.
disabled
)
return
if
(
child
.
disabled
)
return
console
.
log
(
'saveKey.value'
,
saveKey
.
value
)
console
.
log
(
'child'
,
child
)
drawerInfo
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
child
))
drawerInfo
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
child
))
switch
(
child
.
drawerType
)
{
switch
(
child
.
drawerType
)
{
case
'phone'
:
case
'phone'
:
phoneMenuList
.
value
[
0
].
key
=
child
.
code
phoneMenuList
.
value
[
0
].
key
=
child
.
code
...
@@ -687,6 +687,12 @@ const confirmDrawer = info => {
...
@@ -687,6 +687,12 @@ const confirmDrawer = info => {
default
:
default
:
break
break
}
}
// 手动触发表单验证
nextTick
(()
=>
{
// 根据不同的drawerType确定要验证的字段key
const
validateField
=
drawerInfo
.
value
.
key
policyholderInfoFormRef
.
value
.
clearValidate
(
validateField
)
})
}
}
handleCloseDrawer
()
handleCloseDrawer
()
...
...
src/views/sign/appointment/components/secondHolderInfo.vue
View file @
eb5a516b
...
@@ -42,6 +42,7 @@
...
@@ -42,6 +42,7 @@
:placeholder=
"child.placeholder"
:placeholder=
"child.placeholder"
maxlength=
"30"
maxlength=
"30"
:disabled=
"child.disabled"
:disabled=
"child.disabled"
@
input=
"handleInputChange(father, child)"
/>
/>
<el-select
<el-select
v-if=
"child.domType === 'Select'"
v-if=
"child.domType === 'Select'"
...
@@ -200,6 +201,7 @@ const props = defineProps({
...
@@ -200,6 +201,7 @@ const props = defineProps({
appointmentStatus
:
{
type
:
Number
},
//父组件传递过来的预约的状态
appointmentStatus
:
{
type
:
Number
},
//父组件传递过来的预约的状态
customerInfo
:
{
type
:
Object
,
default
:
()
=>
({})
}
//客户详情回显表单用
customerInfo
:
{
type
:
Object
,
default
:
()
=>
({})
}
//客户详情回显表单用
})
})
const
emit
=
defineEmits
([
'handleSuccessEdit'
])
const
emit
=
defineEmits
([
'handleSuccessEdit'
])
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')
...
@@ -208,7 +210,6 @@ const showAddressDrawer = ref(false) //地址抽屉开关
...
@@ -208,7 +210,6 @@ const showAddressDrawer = ref(false) //地址抽屉开关
const
showCountryDrawer
=
ref
(
false
)
//国家/地区抽屉开关
const
showCountryDrawer
=
ref
(
false
)
//国家/地区抽屉开关
const
drawerInfo
=
ref
({})
// 用于存储所有arrowRight类型的输入框输入值
const
drawerInfo
=
ref
({})
// 用于存储所有arrowRight类型的输入框输入值
const
saveKey
=
ref
({})
// 用于存储当前点击的drawer框返回的对象,修改的时候回显值也要存key
const
saveKey
=
ref
({})
// 用于存储当前点击的drawer框返回的对象,修改的时候回显值也要存key
const
tempSaveKey
=
ref
({})
// 用于tab切换的时候保存一份临时的值,防止切换的时候数据丢失
const
errorFields
=
ref
([])
// 存储校验失败的字段信息
const
errorFields
=
ref
([])
// 存储校验失败的字段信息
const
editStatus
=
ref
(
true
)
// 表单是否可编辑,若是修改初始不可编辑
const
editStatus
=
ref
(
true
)
// 表单是否可编辑,若是修改初始不可编辑
const
openList
=
ref
(
false
)
// 客户列表弹窗
const
openList
=
ref
(
false
)
// 客户列表弹窗
...
@@ -366,13 +367,11 @@ const fetchDictData = dictType => {
...
@@ -366,13 +367,11 @@ const fetchDictData = dictType => {
}
}
}
}
// 添加英文校验函数
// 添加英文校验函数
const
validateEnglish
=
(
rule
,
value
,
callback
)
=>
{
const
validateEnglish
=
(
value
,
key
)
=>
{
if
(
value
&&
!
/^
[
A-Za-z
]
*$/
.
test
(
value
))
{
if
(
value
&&
!
/^
[
A-Za-z
]
*$/
.
test
(
value
))
{
// 清空非英文字符
// 清空非英文字符
form
.
value
.
firstNamePinyin
=
''
form
.
value
[
key
]
=
''
callback
(
new
Error
(
'只能输入英文字母'
))
proxy
.
$modal
.
msgError
(
'请输入英文字符'
)
}
else
{
callback
()
}
}
}
}
...
@@ -420,12 +419,6 @@ const processFormData = async obj => {
...
@@ -420,12 +419,6 @@ const processFormData = async obj => {
if
(
props
.
idsObj
.
appointmentBizId
)
{
if
(
props
.
idsObj
.
appointmentBizId
)
{
field
.
disabled
=
true
field
.
disabled
=
true
}
else
{
if
(
field
.
key
==
'age'
)
{
field
.
disabled
=
true
}
else
{
field
.
disabled
=
false
}
}
}
}
}
}
}
...
@@ -558,53 +551,37 @@ const resetShow = obj => {
...
@@ -558,53 +551,37 @@ const resetShow = obj => {
}
}
}
}
const
handleSelectChange
=
(
father
,
child
)
=>
{
const
handleSelectChange
=
(
father
,
child
)
=>
{
switch
(
child
.
key
)
{
const
processData
=
JSON
.
parse
(
JSON
.
stringify
(
processedSecondHolderData
.
value
))
case
'customerType'
:
for
(
const
section
of
processData
)
{
if
(
form
.
value
[
child
.
key
]
==
'COMPANY'
)
{
switch
(
child
.
key
)
{
showContacts
.
value
=
false
case
'insurantRel'
:
for
(
const
section
of
processedSecondHolderData
.
value
)
{
for
(
const
field
of
section
.
data
)
{
if
(
section
.
key
==
'company'
)
{
for
(
const
key1
in
field
)
{
for
(
const
key1
in
saveKey
.
value
)
{
for
(
const
key2
in
props
.
customerInfo
)
{
for
(
const
key2
in
commonObj
.
value
)
{
//当选择得关系是本人 用dom得key和用户信息得key做对比,给表单赋值
if
(
key1
==
key2
)
{
if
(
key1
==
'customerKey'
&&
field
[
key1
]
==
key2
)
{
saveKey
.
value
[
key1
][
'fatherKey'
]
=
section
.
key
form
.
value
[
field
.
key
]
=
props
.
customerInfo
[
key2
]
}
}
}
}
}
section
.
showMoudle
=
true
}
else
if
(
section
.
key
!==
'customer'
)
{
section
.
showMoudle
=
false
}
}
}
}
}
else
{
if
(
form
.
value
[
'birthTime'
])
{
showContacts
.
value
=
true
let
age
=
calculateExactAge
(
proxy
.
formatToDate
(
form
.
value
.
birthTime
))
for
(
const
section
of
processedSecondHolderData
.
value
)
{
if
(
age
>=
0
)
{
if
(
section
.
key
==
'company'
)
{
form
.
value
.
age
=
age
section
.
showMoudle
=
false
}
else
{
section
.
showMoudle
=
true
}
}
}
}
}
break
break
case
'smokingAllowed'
:
// 选择吸烟,展示吸烟数量
if
(
form
.
value
[
child
.
key
]
==
'1'
)
{
resetShow
({
type
:
'child'
,
key
:
'smokingVolume'
,
status
:
true
})
}
else
{
resetShow
({
type
:
'child'
,
key
:
'smokingVolume'
,
status
:
false
})
}
break
case
'isVip'
:
// 选择vip,展示vip备注
if
(
form
.
value
[
child
.
key
]
==
'1'
)
{
resetShow
({
type
:
'child'
,
key
:
'vipRemark'
,
status
:
true
})
}
else
{
resetShow
({
type
:
'child'
,
key
:
'vipRemark'
,
status
:
false
})
}
default
:
break
}
}
}
const
handleInputChange
=
(
father
,
child
)
=>
{
switch
(
child
.
key
)
{
case
'nameEn'
:
validateEnglish
(
form
.
value
[
child
.
key
],
child
.
key
)
break
break
default
:
default
:
...
@@ -623,7 +600,7 @@ const handleEditStatus = status => {
...
@@ -623,7 +600,7 @@ const handleEditStatus = status => {
for
(
const
field
of
section
.
data
)
{
for
(
const
field
of
section
.
data
)
{
if
(
editStatus
.
value
)
{
if
(
editStatus
.
value
)
{
field
.
disabled
=
true
field
.
disabled
=
true
}
else
{
}
else
if
(
field
.
key
!==
'age'
)
{
field
.
disabled
=
false
field
.
disabled
=
false
}
}
}
}
...
@@ -732,10 +709,6 @@ watch(
...
@@ -732,10 +709,6 @@ watch(
exportValue
:
null
exportValue
:
null
})
})
},
500
)
},
500
)
// processFormData({
// domdata: secondHolderDomData,
// exportValue: null
// })
}
}
}
}
)
)
...
...
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