From 1fa8407d4d8cd412339d76e3f1304d6ca6cc93f2 Mon Sep 17 00:00:00 2001
From: miaojiale <1123971748@qq.com>
Date: Mon, 30 Jan 2023 17:30:40 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=8A=A8=E8=AE=A1?=
=?UTF-8?q?=E7=AE=97=E7=94=9F=E6=97=A5=20=E5=A2=9E=E5=8A=A0=E8=83=83?=
=?UTF-8?q?=E9=95=9C=E6=A3=80=E6=9F=A5=E7=9A=84=E8=81=94=E5=8A=A8=E6=A0=A1?=
=?UTF-8?q?=E9=AA=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../CustomForm/FormItemSelf.vue | 192 ++++++++++--------
1 file changed, 104 insertions(+), 88 deletions(-)
diff --git a/src/components/FormComponents/CustomForm/FormItemSelf.vue b/src/components/FormComponents/CustomForm/FormItemSelf.vue
index 31d79c8..65b2043 100644
--- a/src/components/FormComponents/CustomForm/FormItemSelf.vue
+++ b/src/components/FormComponents/CustomForm/FormItemSelf.vue
@@ -265,16 +265,22 @@
@change="handleChange"
>
-
+
+
+ {{ age + (age ? "岁" : "") }}
+
0) {
this.$watch(
`form.${prop}`,
- function (val) {
+ (val) => {
//! val 表单的当前属性值
const columns = this.columns || []
const group = this.group || []
const dyMap = {} //! 显示数据集合
+ let filterArr = [
+ "early_esophagus_cancer",
+ "period_esophagus_cancer",
+ "early_gastric_cancer",
+ "pathology_path",
+ "esophagus_level",
+ ]
dynamicshSet.forEach((dy) => {
if (dyMap[dy.target]) {
dyMap[dy.target].push(dy.value)
@@ -647,42 +678,49 @@ export default {
const values = dyMap[key]
let display = false
if (Array.isArray(val)) {
- // 胃癌和进展性胃癌控制显隐+自定义规则
- if (
- prop == "early_gastric_cancer" ||
- prop == "period_gastric_cancer"
- ) {
- let flag = false
+ display = values.filter((v) => val.includes(v)).length > 0
+ } else {
+ display = values.includes(val)
+ }
+ //! 胃上皮瘤变(高级别)胃癌和进展性胃癌控制显隐+自定义规则
+ if (
+ prop == "early_gastric_cancer" ||
+ prop == "period_gastric_cancer" ||
+ prop == "esophagus_level"
+ ) {
+ let flag = false
+ this.form.esophagus_level == "high"
+ ? (flag = true)
+ : (flag = false)
+ if (!flag) {
if (this.form.early_gastric_cancer) {
this.form.early_gastric_cancer.length > 0
? (flag = true)
: (flag = false)
}
- if (!flag) {
- if (this.form.period_gastric_cancer) {
- this.form.period_gastric_cancer.length > 0
- ? (flag = true)
- : (flag = false)
- }
+ }
+ if (!flag) {
+ if (this.form.period_gastric_cancer) {
+ this.form.period_gastric_cancer.length > 0
+ ? (flag = true)
+ : (flag = false)
}
- display = flag
- if (display) {
- targetItem.rules[0] = {
+ }
+ console.log(flag, targetItem)
+ display = flag
+ if (display) {
+ targetItem.rules = [
+ {
required: true,
message: "请上传病理报告",
- }
- } else {
- if (targetItem.rules.length > 0) {
- targetItem.rules[0].required = false
- }
- }
+ },
+ ]
} else {
- display = values.filter((v) => val.includes(v)).length > 0
+ if (targetItem.rules.length > 0) {
+ targetItem.rules[0].required = false
+ }
}
- } else {
- display = values.includes(val)
}
-
if (!display && targetItem) {
// 清空数据
const newVal = Array.isArray(this.form[targetItem.prop])
@@ -699,40 +737,47 @@ export default {
}, 200)
} else {
// ! 设置每个表单中每项显隐的rules
- if (targetItem.rules && Boolean(display)) {
- console.log(targetItem)
- if (targetItem.type == "checkbox") {
- targetItem.rules = [
- {
- required: true,
- message: "请选择" + targetItem.label,
- },
- ]
- } else {
- targetItem.rules = [
- {
- required: true,
- message: "请输入" + targetItem.label,
- },
- ]
+
+ if (!filterArr.includes(targetItem.prop)) {
+ if (targetItem.rules && Boolean(display)) {
+ if (targetItem.type == "checkbox") {
+ targetItem.rules = [
+ {
+ required: true,
+ message: "请选择" + targetItem.label,
+ },
+ ]
+ } else {
+ targetItem.rules = [
+ {
+ required: true,
+ message: "请输入" + targetItem.label,
+ },
+ ]
+ }
+ } else if (targetItem.rules && !Boolean(display)) {
+ targetItem.rules = []
}
- } else if (targetItem.rules && !Boolean(display)) {
- targetItem.rules = []
}
+
// !设置大表单里的每个小表单显隐rules
if (targetItem.prop == "1669874397313_56690") {
- console.log(targetItem.column)
// !只能写死,当前情况下,定义一个字段用来缓存是否回显,根据val
// if (val == 0) {
// this.showChildren = false
+
targetItem.column.forEach((e, index) => {
// 去除esd报告
if (e.prop == "esd_path") {
return
}
+ console.log(e.label, ":", e.rules)
if (e.rules && val == 0) {
targetItem.column[index].rules = []
} else if (e.rules && val == 1) {
+ if (filterArr.includes(targetItem.column[index].prop)) {
+ return
+ }
if (targetItem.column[index].type == "checkbox") {
targetItem.column[index].rules = [
{
@@ -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))
}
})
@@ -801,6 +813,10 @@ export default {
handleChange(val) {
this.checkboxRepel(val)
this.handleAlgorithm()
+ // !设置年龄
+ if (this.item.prop == "birthday") {
+ this.getAge()
+ }
// 该操作判断是否符合筛查条件
this.$emit("formChange")
// ['is_one_year','is_subtotal_history','is_ppi','is_symptom','is_subtotal_history','is_disease','is_tumour']
--
2.22.0