Commit 1fa8407d authored by miaojiale's avatar miaojiale

增加自动计算生日

增加胃镜检查的联动校验
parent 32048369
...@@ -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']
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment