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

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

parents d2a678ee 1fa8407d
...@@ -265,16 +265,22 @@ ...@@ -265,16 +265,22 @@
@change="handleChange" @change="handleChange"
></el-time-picker> ></el-time-picker>
<!-- 日期 --> <!-- 日期 -->
<el-date-picker <div class="flex" v-else-if="item.type === 'date'">
v-else-if="item.type === 'date'" <el-date-picker
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"
:format="item.format" :format="item.format"
:disabled="item.disabled" :disabled="item.disabled"
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,42 +678,49 @@ export default { ...@@ -647,42 +678,49 @@ 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
if ( } else {
prop == "early_gastric_cancer" || display = values.includes(val)
prop == "period_gastric_cancer" }
) { //! 胃上皮瘤变(高级别)胃癌和进展性胃癌控制显隐+自定义规则
let flag = false 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) { 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 (this.form.period_gastric_cancer) { if (!flag) {
this.form.period_gastric_cancer.length > 0 if (this.form.period_gastric_cancer) {
? (flag = true) this.form.period_gastric_cancer.length > 0
: (flag = false) ? (flag = true)
} : (flag = false)
} }
display = flag }
if (display) { console.log(flag, targetItem)
targetItem.rules[0] = { display = flag
if (display) {
targetItem.rules = [
{
required: true, required: true,
message: "请上传病理报告", message: "请上传病理报告",
} },
} else { ]
if (targetItem.rules.length > 0) {
targetItem.rules[0].required = false
}
}
} else { } 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) { if (!display && targetItem) {
// 清空数据 // 清空数据
const newVal = Array.isArray(this.form[targetItem.prop]) const newVal = Array.isArray(this.form[targetItem.prop])
...@@ -699,40 +737,47 @@ export default { ...@@ -699,40 +737,47 @@ export default {
}, 200) }, 200)
} else { } else {
// ! 设置每个表单中每项显隐的rules // ! 设置每个表单中每项显隐的rules
if (targetItem.rules && Boolean(display)) {
console.log(targetItem) if (!filterArr.includes(targetItem.prop)) {
if (targetItem.type == "checkbox") { if (targetItem.rules && Boolean(display)) {
targetItem.rules = [ if (targetItem.type == "checkbox") {
{ targetItem.rules = [
required: true, {
message: "请选择" + targetItem.label, required: true,
}, message: "请选择" + targetItem.label,
] },
} else { ]
targetItem.rules = [ } else {
{ targetItem.rules = [
required: true, {
message: "请输入" + targetItem.label, required: true,
}, message: "请输入" + targetItem.label,
] },
]
}
} else if (targetItem.rules && !Boolean(display)) {
targetItem.rules = []
} }
} else if (targetItem.rules && !Boolean(display)) {
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']
......
...@@ -108,6 +108,10 @@ export default { ...@@ -108,6 +108,10 @@ export default {
route: "/casesharing", route: "/casesharing",
name: "案例分享", name: "案例分享",
}, },
{
route: "/solution",
name: "解决方案",
},
], ],
loading: false, loading: false,
rules: { rules: {
...@@ -159,7 +163,9 @@ export default { ...@@ -159,7 +163,9 @@ export default {
const routerPath = const routerPath =
!this.redirect || this.redirect === "/404" ? "/" : this.redirect !this.redirect || this.redirect === "/404" ? "/" : this.redirect
this.$router.push({ path: routerPath }).catch((e) => {}) this.$router.push({ path: routerPath }).catch((e) => {})
this.loading = false setTimeout(() => {
this.loading = false
}, 800)
}) })
.catch((e) => { .catch((e) => {
this.loading = false this.loading = false
......
...@@ -29,8 +29,8 @@ export const constantRoutes = [ ...@@ -29,8 +29,8 @@ export const constantRoutes = [
component: () => import("@/views/Home/ScientificResearch/index"), component: () => import("@/views/Home/ScientificResearch/index"),
}, },
{ {
path: "/healthpopularization", path: "/solution",
component: () => import("@/views/Home/HealthPopularization/index"), 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 @@ ...@@ -35,7 +35,7 @@
<div class="box_title text-center">联盟地图</div> <div class="box_title text-center">联盟地图</div>
<img class="map" src="~@/assets/img/Home/map.png" alt="" /> <img class="map" src="~@/assets/img/Home/map.png" alt="" />
</div> </div>
<div class="right box tabbox"> <div class="right box tabbox" style="height: 458px">
<el-tabs v-model="exTab"> <el-tabs v-model="exTab">
<el-tab-pane <el-tab-pane
v-for="(e, index) in example" v-for="(e, index) in example"
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
:label="e.title" :label="e.title"
:name="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"> <li v-for="(item, index) in exampleList" :key="index">
<div class="left"> <div class="left">
<div class="circle"></div> <div class="circle"></div>
...@@ -59,19 +59,22 @@ ...@@ -59,19 +59,22 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 健康科普 --> <!-- 机构排名 -->
<div class="dataAnalysis"> <div class="dataAnalysis">
<div class="flex" style="margin-bottom: 0px"> <div class="flex" style="margin-bottom: 0px">
<div class="left box cenbox cenboxs" style="background: transparent"> <div class="box cenbox cenboxs">
<div class="range"> <div class="range left_range">
<div class="box_title text-center">累计上报量机构排名</div> <div class="box_title text-center">累计上报量机构排名</div>
<div class="rangecontent"> <div class="rangecontent">
<div class="top10"></div> <div class="top20"></div>
<ul class="rangeList"> <ul class="rangeList">
<li <li
v-for="(item, index) in rangeList" v-for="(item, index) in rangeList"
:key="index" :key="index"
:style="{ color: index < 3 ? '#4E68FF' : '#333333' }" :style="{
color: index < 3 ? '#4E68FF' : '#333333',
alignSelf: index > 9 ? 'flex-end' : '',
}"
> >
<div>{{ index + 1 }}</div> <div>{{ index + 1 }}</div>
<div>{{ item.unionName }}</div> <div>{{ item.unionName }}</div>
...@@ -88,7 +91,9 @@ ...@@ -88,7 +91,9 @@
<li <li
v-for="(item, index) in curQuarterList" v-for="(item, index) in curQuarterList"
:key="index" :key="index"
:style="{ color: index < 3 ? '#4E68FF' : '#333333' }" :style="{
color: index < 3 ? '#4E68FF' : '#333333',
}"
> >
<div>{{ index + 1 }}</div> <div>{{ index + 1 }}</div>
<div>{{ item.unionName }}</div> <div>{{ item.unionName }}</div>
...@@ -98,36 +103,32 @@ ...@@ -98,36 +103,32 @@
</div> </div>
</div> </div>
</div> </div>
<div
class="right box tabbox"
style="background: transparent; padding-top: 0px"
>
<!-- 健康科普 -->
<div class="healthPopularization">
<div class="title_box">
<div class="title">健康科普</div>
<div class="empty"></div>
</div>
<ul class="typeList">
<li
v-for="(item, index) in typeList"
:key="index"
:style="{ backgroundImage: 'url(' + item.src + ')' }"
@click="
$router.push({
path: '/healthpopularization',
query: { tabIndex: index },
})
"
>
{{ item.name }}
</li>
</ul>
</div>
</div>
</div> </div>
</div> </div>
<!-- 健康科普 -->
<div class="healthPopularization">
<div class="title_box">
<div class="title">健康科普</div>
<div class="empty"></div>
</div>
<ul class="typeList">
<li
v-for="(item, index) in typeList"
:key="index"
:style="{ backgroundImage: 'url(' + item.src + ')' }"
@click="
$router.push({
path: '/healthpopularization',
query: { tabIndex: index },
})
"
>
{{ item.name }}
</li>
</ul>
</div>
<!-- 科学研究 --> <!-- 科学研究 -->
<div class="scientificresearch"> <div class="scientificresearch">
<div class="title_box"> <div class="title_box">
...@@ -205,34 +206,6 @@ export default { ...@@ -205,34 +206,6 @@ export default {
title: "典型案例小标题典型案例小标题", title: "典型案例小标题典型案例小标题",
date: "2022-09-26", 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: "新闻会议", curTab: "新闻会议",
rangeList: [], // 上报排名 rangeList: [], // 上报排名
...@@ -297,14 +270,42 @@ export default { ...@@ -297,14 +270,42 @@ export default {
getRankTotal() { getRankTotal() {
getRankTotal().then((res) => { getRankTotal().then((res) => {
if (res.code == 1) { 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() {
getCurrentQuarter().then((res) => { getCurrentQuarter().then((res) => {
if (res.code == 1) { 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 { ...@@ -319,7 +320,7 @@ export default {
margin-bottom: 38px; margin-bottom: 38px;
.box { .box {
width: 48%; width: 48%;
// height: 300px; height: 300px;
// background: blue; // background: blue;
background: #fff; background: #fff;
.video { .video {
...@@ -364,6 +365,9 @@ export default { ...@@ -364,6 +365,9 @@ export default {
} }
} }
.dataAnalysis { .dataAnalysis {
background: #fff;
margin-bottom: 32px;
padding: 32px;
.box_title { .box_title {
width: 180px; width: 180px;
height: 36px; height: 36px;
...@@ -377,8 +381,6 @@ export default { ...@@ -377,8 +381,6 @@ export default {
} }
.cenbox { .cenbox {
height: 458px; height: 458px;
// background: url("~@/assets/img/Home/map.png") no-repeat center center;
// background-size: cover;
.map { .map {
width: 100%; width: 100%;
height: 422px; height: 422px;
...@@ -386,21 +388,20 @@ export default { ...@@ -386,21 +388,20 @@ export default {
} }
} }
.cenboxs { .cenboxs {
width: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.range { .range {
width: 46%; width: 32%;
background: #ffffff; background: #ffffff;
border-radius: 4px; border-radius: 4px;
border: 1px solid #d2d7f5;
padding: 0 7px; padding: 0 7px;
.rangecontent { .rangecontent {
margin-top: 6px; margin-top: 24px;
height: 408px; height: 408px;
background: rgba(78, 104, 255, 0.06); background: rgba(78, 104, 255, 0.04);
border-radius: 4px; border-radius: 4px;
padding: 8px; padding: 24px 32px;
font-size: 14px; font-size: 14px;
font-family: AlibabaPuHuiTiM; font-family: AlibabaPuHuiTiM;
// color: #4e68ff; // color: #4e68ff;
...@@ -426,7 +427,41 @@ export default { ...@@ -426,7 +427,41 @@ export default {
background: url("~@/assets/img/Home/top10.png") no-repeat center background: url("~@/assets/img/Home/top10.png") no-repeat center
center; center;
background-size: contain; 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 { ...@@ -438,7 +473,7 @@ export default {
justify-content: space-between; justify-content: space-between;
li { li {
cursor: pointer; cursor: pointer;
width: 43%; width: 23%;
margin-bottom: 24px; margin-bottom: 24px;
height: 188px; height: 188px;
display: flex; 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