Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
agcs2.0-web
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liang
agcs2.0-web
Commits
1fa8407d
Commit
1fa8407d
authored
Jan 30, 2023
by
miaojiale
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加自动计算生日
增加胃镜检查的联动校验
parent
32048369
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
104 additions
and
88 deletions
+104
-88
FormItemSelf.vue
src/components/FormComponents/CustomForm/FormItemSelf.vue
+104
-88
No files found.
src/components/FormComponents/CustomForm/FormItemSelf.vue
View file @
1fa8407d
...
@@ -265,8 +265,8 @@
...
@@ -265,8 +265,8 @@
@
change=
"handleChange"
@
change=
"handleChange"
></el-time-picker>
></el-time-picker>
<!-- 日期 -->
<!-- 日期 -->
<div
class=
"flex"
v-else-if=
"item.type === 'date'"
>
<el-date-picker
<el-date-picker
v-else-if=
"item.type === 'date'"
v-model=
"form[item.prop]"
v-model=
"form[item.prop]"
:placeholder=
"item.placeholder ? item.placeholder : '请选择'"
:placeholder=
"item.placeholder ? item.placeholder : '请选择'"
:value-format=
"item.valueFormat"
:value-format=
"item.valueFormat"
...
@@ -275,6 +275,12 @@
...
@@ -275,6 +275,12 @@
clearable
clearable
@
change=
"handleChange"
@
change=
"handleChange"
></el-date-picker>
></el-date-picker>
<span
v-if=
"item.prop == 'birthday'"
style=
"margin-left: 12px"
>
{{ age + (age ? "岁" : "") }}
</span
>
</div>
<!-- 年 -->
<!-- 年 -->
<el-date-picker
<el-date-picker
v-else-if=
"item.type === 'year'"
v-else-if=
"item.type === 'year'"
...
@@ -431,6 +437,7 @@ export default {
...
@@ -431,6 +437,7 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
age
:
""
,
pickerOptions
,
pickerOptions
,
rangeOptions
,
rangeOptions
,
showChildren
:
false
,
// 用来控制不同表单
showChildren
:
false
,
// 用来控制不同表单
...
@@ -604,6 +611,23 @@ export default {
...
@@ -604,6 +611,23 @@ export default {
}
}
val
&&
this
.
$set
(
this
.
form
,
ruleTarget
,
val
)
val
&&
this
.
$set
(
this
.
form
,
ruleTarget
,
val
)
},
},
getAge
()
{
if
(
this
.
form
.
birthday
)
{
var
birthday
=
new
Date
(
this
.
form
.
birthday
.
replace
(
/-/g
,
"
/
"
))
var
d
=
new
Date
()
var
age
=
d
.
getFullYear
()
-
birthday
.
getFullYear
()
-
(
d
.
getMonth
()
<
birthday
.
getMonth
()
||
(
d
.
getMonth
()
==
birthday
.
getMonth
()
&&
d
.
getDate
()
<
birthday
.
getDate
())
?
1
:
0
)
this
.
age
=
age
+
""
}
else
{
this
.
age
=
""
}
},
// 获取prop prop 以{}包裹
// 获取prop prop 以{}包裹
getProp
(
value
)
{
getProp
(
value
)
{
if
(
!
value
)
return
""
if
(
!
value
)
return
""
...
@@ -624,11 +648,18 @@ export default {
...
@@ -624,11 +648,18 @@ export default {
if
(
dynamicshSet
&&
dynamicshSet
.
length
>
0
)
{
if
(
dynamicshSet
&&
dynamicshSet
.
length
>
0
)
{
this
.
$watch
(
this
.
$watch
(
`form.
${
prop
}
`
,
`form.
${
prop
}
`
,
function
(
val
)
{
(
val
)
=>
{
//! val 表单的当前属性值
//! val 表单的当前属性值
const
columns
=
this
.
columns
||
[]
const
columns
=
this
.
columns
||
[]
const
group
=
this
.
group
||
[]
const
group
=
this
.
group
||
[]
const
dyMap
=
{}
//! 显示数据集合
const
dyMap
=
{}
//! 显示数据集合
let
filterArr
=
[
"
early_esophagus_cancer
"
,
"
period_esophagus_cancer
"
,
"
early_gastric_cancer
"
,
"
pathology_path
"
,
"
esophagus_level
"
,
]
dynamicshSet
.
forEach
((
dy
)
=>
{
dynamicshSet
.
forEach
((
dy
)
=>
{
if
(
dyMap
[
dy
.
target
])
{
if
(
dyMap
[
dy
.
target
])
{
dyMap
[
dy
.
target
].
push
(
dy
.
value
)
dyMap
[
dy
.
target
].
push
(
dy
.
value
)
...
@@ -647,17 +678,27 @@ export default {
...
@@ -647,17 +678,27 @@ export default {
const
values
=
dyMap
[
key
]
const
values
=
dyMap
[
key
]
let
display
=
false
let
display
=
false
if
(
Array
.
isArray
(
val
))
{
if
(
Array
.
isArray
(
val
))
{
// 胃癌和进展性胃癌控制显隐+自定义规则
display
=
values
.
filter
((
v
)
=>
val
.
includes
(
v
)).
length
>
0
}
else
{
display
=
values
.
includes
(
val
)
}
//! 胃上皮瘤变(高级别)胃癌和进展性胃癌控制显隐+自定义规则
if
(
if
(
prop
==
"
early_gastric_cancer
"
||
prop
==
"
early_gastric_cancer
"
||
prop
==
"
period_gastric_cancer
"
prop
==
"
period_gastric_cancer
"
||
prop
==
"
esophagus_level
"
)
{
)
{
let
flag
=
false
let
flag
=
false
this
.
form
.
esophagus_level
==
"
high
"
?
(
flag
=
true
)
:
(
flag
=
false
)
if
(
!
flag
)
{
if
(
this
.
form
.
early_gastric_cancer
)
{
if
(
this
.
form
.
early_gastric_cancer
)
{
this
.
form
.
early_gastric_cancer
.
length
>
0
this
.
form
.
early_gastric_cancer
.
length
>
0
?
(
flag
=
true
)
?
(
flag
=
true
)
:
(
flag
=
false
)
:
(
flag
=
false
)
}
}
}
if
(
!
flag
)
{
if
(
!
flag
)
{
if
(
this
.
form
.
period_gastric_cancer
)
{
if
(
this
.
form
.
period_gastric_cancer
)
{
this
.
form
.
period_gastric_cancer
.
length
>
0
this
.
form
.
period_gastric_cancer
.
length
>
0
...
@@ -665,24 +706,21 @@ export default {
...
@@ -665,24 +706,21 @@ export default {
:
(
flag
=
false
)
:
(
flag
=
false
)
}
}
}
}
console
.
log
(
flag
,
targetItem
)
display
=
flag
display
=
flag
if
(
display
)
{
if
(
display
)
{
targetItem
.
rules
[
0
]
=
{
targetItem
.
rules
=
[
{
required
:
true
,
required
:
true
,
message
:
"
请上传病理报告
"
,
message
:
"
请上传病理报告
"
,
}
},
]
}
else
{
}
else
{
if
(
targetItem
.
rules
.
length
>
0
)
{
if
(
targetItem
.
rules
.
length
>
0
)
{
targetItem
.
rules
[
0
].
required
=
false
targetItem
.
rules
[
0
].
required
=
false
}
}
}
}
}
else
{
display
=
values
.
filter
((
v
)
=>
val
.
includes
(
v
)).
length
>
0
}
}
else
{
display
=
values
.
includes
(
val
)
}
}
if
(
!
display
&&
targetItem
)
{
if
(
!
display
&&
targetItem
)
{
// 清空数据
// 清空数据
const
newVal
=
Array
.
isArray
(
this
.
form
[
targetItem
.
prop
])
const
newVal
=
Array
.
isArray
(
this
.
form
[
targetItem
.
prop
])
...
@@ -699,8 +737,9 @@ export default {
...
@@ -699,8 +737,9 @@ export default {
},
200
)
},
200
)
}
else
{
}
else
{
// ! 设置每个表单中每项显隐的rules
// ! 设置每个表单中每项显隐的rules
if
(
!
filterArr
.
includes
(
targetItem
.
prop
))
{
if
(
targetItem
.
rules
&&
Boolean
(
display
))
{
if
(
targetItem
.
rules
&&
Boolean
(
display
))
{
console
.
log
(
targetItem
)
if
(
targetItem
.
type
==
"
checkbox
"
)
{
if
(
targetItem
.
type
==
"
checkbox
"
)
{
targetItem
.
rules
=
[
targetItem
.
rules
=
[
{
{
...
@@ -719,20 +758,26 @@ export default {
...
@@ -719,20 +758,26 @@ export default {
}
else
if
(
targetItem
.
rules
&&
!
Boolean
(
display
))
{
}
else
if
(
targetItem
.
rules
&&
!
Boolean
(
display
))
{
targetItem
.
rules
=
[]
targetItem
.
rules
=
[]
}
}
}
// !设置大表单里的每个小表单显隐rules
// !设置大表单里的每个小表单显隐rules
if
(
targetItem
.
prop
==
"
1669874397313_56690
"
)
{
if
(
targetItem
.
prop
==
"
1669874397313_56690
"
)
{
console
.
log
(
targetItem
.
column
)
// !只能写死,当前情况下,定义一个字段用来缓存是否回显,根据val
// !只能写死,当前情况下,定义一个字段用来缓存是否回显,根据val
// if (val == 0) {
// if (val == 0) {
// this.showChildren = false
// this.showChildren = false
targetItem
.
column
.
forEach
((
e
,
index
)
=>
{
targetItem
.
column
.
forEach
((
e
,
index
)
=>
{
// 去除esd报告
// 去除esd报告
if
(
e
.
prop
==
"
esd_path
"
)
{
if
(
e
.
prop
==
"
esd_path
"
)
{
return
return
}
}
console
.
log
(
e
.
label
,
"
:
"
,
e
.
rules
)
if
(
e
.
rules
&&
val
==
0
)
{
if
(
e
.
rules
&&
val
==
0
)
{
targetItem
.
column
[
index
].
rules
=
[]
targetItem
.
column
[
index
].
rules
=
[]
}
else
if
(
e
.
rules
&&
val
==
1
)
{
}
else
if
(
e
.
rules
&&
val
==
1
)
{
if
(
filterArr
.
includes
(
targetItem
.
column
[
index
].
prop
))
{
return
}
if
(
targetItem
.
column
[
index
].
type
==
"
checkbox
"
)
{
if
(
targetItem
.
column
[
index
].
type
==
"
checkbox
"
)
{
targetItem
.
column
[
index
].
rules
=
[
targetItem
.
column
[
index
].
rules
=
[
{
{
...
@@ -750,40 +795,7 @@ export default {
...
@@ -750,40 +795,7 @@ export default {
}
}
}
}
})
})
// } else {
// this.showChildren = true
// }
}
}
// 家族史动态规则
// if (
// (prop == "is_first_degree" || prop == "is_other_sickness") &&
// Boolean(display)
// ) {
// targetItem.rules = [
// {
// required: true,
// message: "请输入" + targetItem.label,
// },
// ]
// } else if (
// prop == "is_first_degree" ||
// prop == "is_other_sickness"
// ) {
// this.$nextTick(() => {
// targetItem.rules = []
// })
// }
// // 内镜报告动态上传
// if (prop == "check_type" && Boolean(display)) {
// targetItem.rules[0] = {
// required: true,
// message: "请上传内镜报告",
// }
// } else if (prop == "check_type") {
// targetItem.rules = []
// }
this
.
$set
(
targetItem
,
"
display
"
,
Boolean
(
display
))
this
.
$set
(
targetItem
,
"
display
"
,
Boolean
(
display
))
}
}
})
})
...
@@ -801,6 +813,10 @@ export default {
...
@@ -801,6 +813,10 @@ export default {
handleChange
(
val
)
{
handleChange
(
val
)
{
this
.
checkboxRepel
(
val
)
this
.
checkboxRepel
(
val
)
this
.
handleAlgorithm
()
this
.
handleAlgorithm
()
// !设置年龄
if
(
this
.
item
.
prop
==
"
birthday
"
)
{
this
.
getAge
()
}
// 该操作判断是否符合筛查条件
// 该操作判断是否符合筛查条件
this
.
$emit
(
"
formChange
"
)
this
.
$emit
(
"
formChange
"
)
// ['is_one_year','is_subtotal_history','is_ppi','is_symptom','is_subtotal_history','is_disease','is_tumour']
// ['is_one_year','is_subtotal_history','is_ppi','is_symptom','is_subtotal_history','is_disease','is_tumour']
...
...
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