Commit beedb484 authored by 刘予佳's avatar 刘予佳

Merge remote-tracking branch 'remotes/origin/dev' into dev_lyj

parents d2a678ee 1fa8407d
......@@ -265,8 +265,8 @@
@change="handleChange"
></el-time-picker>
<!-- 日期 -->
<div class="flex" v-else-if="item.type === 'date'">
<el-date-picker
v-else-if="item.type === 'date'"
v-model="form[item.prop]"
:placeholder="item.placeholder ? item.placeholder : '请选择'"
:value-format="item.valueFormat"
......@@ -275,6 +275,12 @@
clearable
@change="handleChange"
></el-date-picker>
<span
v-if="item.prop == 'birthday'"
style="margin-left: 12px"
>{{ age + (age ? "岁" : "") }}</span
>
</div>
<!-- 年 -->
<el-date-picker
v-else-if="item.type === 'year'"
......@@ -431,6 +437,7 @@ export default {
},
data() {
return {
age: "",
pickerOptions,
rangeOptions,
showChildren: false, // 用来控制不同表单
......@@ -604,6 +611,23 @@ export default {
}
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 以{}包裹
getProp(value) {
if (!value) return ""
......@@ -624,11 +648,18 @@ export default {
if (dynamicshSet && dynamicshSet.length > 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,17 +678,27 @@ export default {
const values = dyMap[key]
let display = false
if (Array.isArray(val)) {
// 胃癌和进展性胃癌控制显隐+自定义规则
display = values.filter((v) => val.includes(v)).length > 0
} else {
display = values.includes(val)
}
//! 胃上皮瘤变(高级别)胃癌和进展性胃癌控制显隐+自定义规则
if (
prop == "early_gastric_cancer" ||
prop == "period_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
......@@ -665,24 +706,21 @@ export default {
: (flag = false)
}
}
console.log(flag, targetItem)
display = flag
if (display) {
targetItem.rules[0] = {
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
}
} else {
display = values.includes(val)
}
if (!display && targetItem) {
// 清空数据
const newVal = Array.isArray(this.form[targetItem.prop])
......@@ -699,8 +737,9 @@ export default {
}, 200)
} else {
// ! 设置每个表单中每项显隐的rules
if (!filterArr.includes(targetItem.prop)) {
if (targetItem.rules && Boolean(display)) {
console.log(targetItem)
if (targetItem.type == "checkbox") {
targetItem.rules = [
{
......@@ -719,20 +758,26 @@ export default {
} 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']
......
......@@ -108,6 +108,10 @@ export default {
route: "/casesharing",
name: "案例分享",
},
{
route: "/solution",
name: "解决方案",
},
],
loading: false,
rules: {
......@@ -159,7 +163,9 @@ export default {
const routerPath =
!this.redirect || this.redirect === "/404" ? "/" : this.redirect
this.$router.push({ path: routerPath }).catch((e) => {})
setTimeout(() => {
this.loading = false
}, 800)
})
.catch((e) => {
this.loading = false
......
......@@ -29,8 +29,8 @@ export const constantRoutes = [
component: () => import("@/views/Home/ScientificResearch/index"),
},
{
path: "/healthpopularization",
component: () => import("@/views/Home/HealthPopularization/index"),
path: "/solution",
component: () => import("@/views/Home/Solution/index"),
},
],
},
......
<template>
<div>解决方案</div>
</template>
<script>
export default {
data() {
return {}
},
methods: {},
mounted() {},
watch: {},
}
</script>
<style lang="scss" scoped></style>
......@@ -35,7 +35,7 @@
<div class="box_title text-center">联盟地图</div>
<img class="map" src="~@/assets/img/Home/map.png" alt="" />
</div>
<div class="right box tabbox">
<div class="right box tabbox" style="height: 458px">
<el-tabs v-model="exTab">
<el-tab-pane
v-for="(e, index) in example"
......@@ -43,7 +43,7 @@
:label="e.title"
:name="e.title"
>
<ul class="tabslist" style="height: 100%">
<ul class="tabslist" style="height: 380px">
<li v-for="(item, index) in exampleList" :key="index">
<div class="left">
<div class="circle"></div>
......@@ -59,19 +59,22 @@
</div>
</div>
</div>
<!-- 健康科普 -->
<!-- 机构排名 -->
<div class="dataAnalysis">
<div class="flex" style="margin-bottom: 0px">
<div class="left box cenbox cenboxs" style="background: transparent">
<div class="range">
<div class="box cenbox cenboxs">
<div class="range left_range">
<div class="box_title text-center">累计上报量机构排名</div>
<div class="rangecontent">
<div class="top10"></div>
<div class="top20"></div>
<ul class="rangeList">
<li
v-for="(item, index) in rangeList"
:key="index"
:style="{ color: index < 3 ? '#4E68FF' : '#333333' }"
:style="{
color: index < 3 ? '#4E68FF' : '#333333',
alignSelf: index > 9 ? 'flex-end' : '',
}"
>
<div>{{ index + 1 }}</div>
<div>{{ item.unionName }}</div>
......@@ -88,7 +91,9 @@
<li
v-for="(item, index) in curQuarterList"
:key="index"
:style="{ color: index < 3 ? '#4E68FF' : '#333333' }"
:style="{
color: index < 3 ? '#4E68FF' : '#333333',
}"
>
<div>{{ index + 1 }}</div>
<div>{{ item.unionName }}</div>
......@@ -98,10 +103,9 @@
</div>
</div>
</div>
<div
class="right box tabbox"
style="background: transparent; padding-top: 0px"
>
</div>
</div>
<!-- 健康科普 -->
<div class="healthPopularization">
<div class="title_box">
......@@ -124,9 +128,6 @@
</li>
</ul>
</div>
</div>
</div>
</div>
<!-- 科学研究 -->
<div class="scientificresearch">
......@@ -205,34 +206,6 @@ export default {
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
],
curTab: "新闻会议",
rangeList: [], // 上报排名
......@@ -297,14 +270,42 @@ export default {
getRankTotal() {
getRankTotal().then((res) => {
if (res.code == 1) {
this.rangeList = res.data
// this.rangeList = res.data
this.rangeList = [
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
]
}
})
},
getCurrentQuarter() {
getCurrentQuarter().then((res) => {
if (res.code == 1) {
this.curQuarterList = res.data
// this.curQuarterList = res.data
this.curQuarterList = [
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
{ unionName: "包头医学院第二附属医院", nums: 12311 },
]
}
})
},
......@@ -319,7 +320,7 @@ export default {
margin-bottom: 38px;
.box {
width: 48%;
// height: 300px;
height: 300px;
// background: blue;
background: #fff;
.video {
......@@ -364,6 +365,9 @@ export default {
}
}
.dataAnalysis {
background: #fff;
margin-bottom: 32px;
padding: 32px;
.box_title {
width: 180px;
height: 36px;
......@@ -377,8 +381,6 @@ export default {
}
.cenbox {
height: 458px;
// background: url("~@/assets/img/Home/map.png") no-repeat center center;
// background-size: cover;
.map {
width: 100%;
height: 422px;
......@@ -386,21 +388,20 @@ export default {
}
}
.cenboxs {
width: 100%;
display: flex;
justify-content: space-between;
.range {
width: 46%;
width: 32%;
background: #ffffff;
border-radius: 4px;
border: 1px solid #d2d7f5;
padding: 0 7px;
.rangecontent {
margin-top: 6px;
margin-top: 24px;
height: 408px;
background: rgba(78, 104, 255, 0.06);
background: rgba(78, 104, 255, 0.04);
border-radius: 4px;
padding: 8px;
padding: 24px 32px;
font-size: 14px;
font-family: AlibabaPuHuiTiM;
// color: #4e68ff;
......@@ -426,7 +427,41 @@ export default {
background: url("~@/assets/img/Home/top10.png") no-repeat center
center;
background-size: contain;
margin-bottom: 8px;
margin-bottom: 18px;
}
.top20 {
height: 32px;
background: url("~@/assets/img/Home/top20.png") no-repeat center
center;
background-size: contain;
margin-bottom: 18px;
}
}
.left_range {
width: 60%;
.rangecontent {
.rangeList {
height: 100%;
display: flex;
flex-direction: column;
flex-wrap: wrap;
li {
width: 40%;
margin-bottom: 14px;
display: flex;
justify-content: space-between;
div:nth-child(1) {
width: 20px;
}
div:nth-child(2) {
flex: 1;
}
div:nth-child(3) {
text-align: right;
}
}
}
}
}
}
......@@ -438,7 +473,7 @@ export default {
justify-content: space-between;
li {
cursor: pointer;
width: 43%;
width: 23%;
margin-bottom: 24px;
height: 188px;
display: flex;
......
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