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

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

parents beedb484 97252180
src/assets/img/Home/map.png

90.5 KB | W: | H:

src/assets/img/Home/map.png

243 KB | W: | H:

src/assets/img/Home/map.png
src/assets/img/Home/map.png
src/assets/img/Home/map.png
src/assets/img/Home/map.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -214,12 +214,22 @@ ...@@ -214,12 +214,22 @@
:multiple-limit="item.limit" :multiple-limit="item.limit"
@change="handleChange" @change="handleChange"
> >
<template v-if="item.prop == 'union_id'">
<el-option
v-for="(opt, optIndex) in unionList"
:key="optIndex"
:label="opt.label"
:value="opt.value"
></el-option>
</template>
<template v-else>
<el-option <el-option
v-for="(opt, optIndex) in item.dicData" v-for="(opt, optIndex) in item.dicData"
:key="optIndex" :key="optIndex"
:label="opt.label" :label="opt.label"
:value="opt.value" :value="opt.value"
></el-option> ></el-option>
</template>
</el-select> </el-select>
</template> </template>
<!-- 级联 --> <!-- 级联 -->
...@@ -440,6 +450,7 @@ export default { ...@@ -440,6 +450,7 @@ export default {
age: "", age: "",
pickerOptions, pickerOptions,
rangeOptions, rangeOptions,
unionList: [],
showChildren: false, // 用来控制不同表单 showChildren: false, // 用来控制不同表单
} }
}, },
...@@ -471,6 +482,9 @@ export default { ...@@ -471,6 +482,9 @@ export default {
this.timerangeReset() this.timerangeReset()
this.numberReset() this.numberReset()
this.checkboxReset() this.checkboxReset()
if (this.item.prop == "union_id") {
this.unionList = [{ label: "嗡嗡嗡", value: 1 }]
}
}, },
mounted() { mounted() {
this.showFormItem() this.showFormItem()
...@@ -611,6 +625,7 @@ export default { ...@@ -611,6 +625,7 @@ export default {
} }
val && this.$set(this.form, ruleTarget, val) val && this.$set(this.form, ruleTarget, val)
}, },
// 根据生日设置年龄回显
getAge() { getAge() {
if (this.form.birthday) { if (this.form.birthday) {
var birthday = new Date(this.form.birthday.replace(/-/g, "/")) var birthday = new Date(this.form.birthday.replace(/-/g, "/"))
...@@ -686,12 +701,10 @@ export default { ...@@ -686,12 +701,10 @@ export default {
if ( if (
prop == "early_gastric_cancer" || prop == "early_gastric_cancer" ||
prop == "period_gastric_cancer" || prop == "period_gastric_cancer" ||
prop == "esophagus_level" prop == "inogm_level"
) { ) {
let flag = false let flag = false
this.form.esophagus_level == "high" this.form.inogm_level == "high" ? (flag = true) : (flag = false)
? (flag = true)
: (flag = false)
if (!flag) { 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
...@@ -810,6 +823,7 @@ export default { ...@@ -810,6 +823,7 @@ export default {
handleBlur() { handleBlur() {
this.handleAlgorithm() this.handleAlgorithm()
}, },
// 每个表单值改变的方法
handleChange(val) { handleChange(val) {
this.checkboxRepel(val) this.checkboxRepel(val)
this.handleAlgorithm() this.handleAlgorithm()
......
...@@ -53,6 +53,7 @@ export default { ...@@ -53,6 +53,7 @@ export default {
async () => { async () => {
const fullPath = this.$route.fullPath const fullPath = this.$route.fullPath
await this.$store.dispatch("user/logout") await this.$store.dispatch("user/logout")
this.$store.commit("table/removeSelectedIndex")
this.$router.push(`/home?redirect=${fullPath}`) this.$router.push(`/home?redirect=${fullPath}`)
} }
) )
......
...@@ -8,16 +8,27 @@ ...@@ -8,16 +8,27 @@
<error-log></error-log> <error-log></error-log>
<!-- <avatar></avatar> --> <!-- <avatar></avatar> -->
<div class="fontSelect"> <div class="fontSelect">
<div v-for="(item, index) in fontList" :key="index" class="font" @click="changeFont(index)"> <div
v-for="(item, index) in fontList"
:key="index"
class="font"
@click="changeFont(index)"
>
<div class="label">{{ item.label }}</div> <div class="label">{{ item.label }}</div>
</div> </div>
</div> </div>
<div v-show="curSelectedIndex != -1" class="community" @click="openModalFlag"> <div
v-show="curSelectedIndex != -1"
class="community"
@click="openModalFlag"
>
<img src="~@/assets/img/DataCenter/shift.png" alt /> <img src="~@/assets/img/DataCenter/shift.png" alt />
{{ {{
curSelectedIndex != -1 curSelectedIndex != -1
? screeningList[curSelectedIndex - 1] ? screeningList[curSelectedIndex - 1].title ? screeningList[curSelectedIndex - 1]
: "" :'' ? screeningList[curSelectedIndex - 1].title
: ""
: ""
}} }}
</div> </div>
...@@ -25,8 +36,17 @@ ...@@ -25,8 +36,17 @@
<img src="~@/assets/img/DataCenter/user.png" alt /> <img src="~@/assets/img/DataCenter/user.png" alt />
<avatar></avatar> <avatar></avatar>
</div> </div>
<el-popover placement="top-start" width="200" trigger="click" popper-class="message-pop"> <el-popover
<div v-for="(item, index) in messageList" :key="index" class="message-box mb-24"> placement="top-start"
width="200"
trigger="click"
popper-class="message-pop"
>
<div
v-for="(item, index) in messageList"
:key="index"
class="message-box mb-24"
>
<div class="top-box mb-12"> <div class="top-box mb-12">
<span class="blue-dot mt-5 mr-8"></span> <span class="blue-dot mt-5 mr-8"></span>
<span class="top-text">{{ item.date }}</span> <span class="top-text">{{ item.date }}</span>
...@@ -80,14 +100,17 @@ export default { ...@@ -80,14 +100,17 @@ export default {
screeningList: [ screeningList: [
{ {
title: "社区筛查", title: "社区筛查",
src: require("@/assets/img/DataCenter/shequ.png"), src: require("@/assets/img/DataCenter/shequ.png"),
}, },
{ {
title: "医院筛查", title: "医院筛查",
src: require("@/assets/img/DataCenter/yiyuan.png"), src: require("@/assets/img/DataCenter/yiyuan.png"),
}, },
{ {
title: "体检筛查", title: "体检筛查",
src: require("@/assets/img/DataCenter/tijian.png"), src: require("@/assets/img/DataCenter/tijian.png"),
}, },
], ],
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
:close-on-press-escape="false" :close-on-press-escape="false"
:show-close="false" :show-close="false"
width="70%" width="70%"
top="10vh"
> >
<div class="modalContent"> <div class="modalContent">
<div class="title">请选择您的筛查填报场景</div> <div class="title">请选择您的筛查填报场景</div>
...@@ -77,6 +78,9 @@ ...@@ -77,6 +78,9 @@
</div> </div>
<div class="itemTitle">{{ item.title }}</div> <div class="itemTitle">{{ item.title }}</div>
</div> </div>
<div class="desc">
{{ item.desc }}
</div>
<div class="ItemIamge"> <div class="ItemIamge">
<img :src="item.src" alt /> <img :src="item.src" alt />
</div> </div>
...@@ -84,10 +88,91 @@ ...@@ -84,10 +88,91 @@
</ul> </ul>
<div class="submit"> <div class="submit">
<el-button type="primary" class="btn" @click="setSelectedIndex" <el-button type="primary" class="btn" @click="setSelectedIndex"
>保存</el-button >确定</el-button
>
</div>
<div class="tips">
注意,本系统筛查对象为:<br />
无消化道症状(腹痛,腹泻,消化道出血等)的一般人群,住院及胃癌术后患者切勿上传至本系统,详细条件见入排标准。<br />
<el-button type="text" @click="innerVisible = true"
>点击查看详情</el-button
>
</div>
</div>
<el-dialog
width="70%"
custom-class="homeDialog"
:title="''"
:close-on-click-modal="false"
:close-on-press-escape="false"
:show-close="false"
:visible.sync="innerVisible"
append-to-body
top="10vh"
>
<div class="innerBody">
<div class="title">入排标准</div>
<div class="innerTable">
<div
v-for="(item, index) in innerTable"
:key="index"
class="col_item"
>
<div
class="left"
:style="{ borderBottom: index == 0 ? '1px solid #eff0f3' : '' }"
> >
{{ item.title }}
</div> </div>
<div class="right">
<div
v-for="(listItem, i) in item.list"
:key="i"
class="r_col_item"
:style="{
borderBottom:
index == innerTable.length - 1 &&
i == item.list.length - 1
? ''
: '1px solid #eff0f3',
}"
>
<img
v-if="index == 0"
src="@/assets/img/DataCenter/right.png"
alt=""
/>
<img v-else src="@/assets/img/DataCenter/wrong.png" alt="" />
<template v-if="listItem.type == 'text'">
<span class="r_text">{{ listItem.value }}</span>
</template>
<template v-if="listItem.type == 'list'">
<div class="r_list">
<div class="r_list_title r_text">
{{ listItem.value.value }}
</div> </div>
<ul>
<li
v-for="listItem_item in listItem.value.list"
:key="listItem_item"
>
{{ listItem_item }}
</li>
</ul>
</div>
</template>
</div>
</div>
</div>
</div>
</div>
<div class="submit">
<el-button type="primary" class="btn" @click="innerVisible = false"
>返回</el-button
>
</div>
</el-dialog>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -119,25 +204,74 @@ export default { ...@@ -119,25 +204,74 @@ export default {
data() { data() {
return { return {
modalFlag: false, modalFlag: false,
innerVisible: false,
screeningList: [ screeningList: [
{ {
title: "社区筛查", title: "社区筛查",
value: "1", value: "1",
desc: "在社区对该地区居民进行招募与筛查",
src: require("@/assets/img/DataCenter/shequ.png"), src: require("@/assets/img/DataCenter/shequ.png"),
}, },
{ {
title: "医院筛查", title: "医院筛查",
value: "2", value: "2",
desc: "无消化道症状的门诊人群",
src: require("@/assets/img/DataCenter/yiyuan.png"), src: require("@/assets/img/DataCenter/yiyuan.png"),
}, },
{ {
title: "体检筛查", title: "体检筛查",
value: "3", value: "3",
desc: "参加单位或个人体检的人群",
src: require("@/assets/img/DataCenter/tijian.png"), src: require("@/assets/img/DataCenter/tijian.png"),
}, },
], ],
selectedIndex: "1", selectedIndex: "1",
curSelectedIndex: "", curSelectedIndex: "",
innerTable: [
{
title: "纳入标准(同时满足2条)",
list: [{ type: "text", value: "男性年龄40~79岁,女性50~79岁;" }],
},
{
title: "排除标准(任意一条符合即排除)",
list: [
{ type: "text", value: "距上次胃镜检查间隔时间一年内;" },
{ type: "text", value: "胃大部切除术手术史;" },
{
type: "text",
value:
"两周内服用PPI(埃索美拉唑、泮托拉唑、雷贝拉唑、兰索拉唑等)或H2受体拮抗剂(法莫替丁等);",
},
{
type: "list",
value: {
value: "有下列一种或多种症状:",
list: [
"6个月内缺铁性贫血;",
"12个月内消化道出血(黑便、血便等);",
"体重减轻(非减肥原因6个月内体重减轻≥4.5Kg);",
"经常性腹泻;",
"吞咽困难或哽噎感;",
"腹部肿块。",
],
},
},
{
type: "text",
value:
"有以下任何一种疾病史:食管癌、胃癌、结直肠肿瘤、息肉病、炎症性肠病、其它器官恶性肿瘤(乳腺、卵巢、子宫及泌尿系统等);",
},
{
type: "text",
value: "影像、肿瘤标志物等检查高度怀疑罹患肿瘤可能;",
},
{
type: "text",
value: "严重心、肺、肝、肾功能不全,或严重精神疾患。",
},
],
},
],
} }
}, },
computed: { computed: {
...@@ -156,7 +290,7 @@ export default { ...@@ -156,7 +290,7 @@ export default {
}, },
}, },
created() { created() {
this.selectedIndex = localStorage.getItem("selectedIndex") || "" this.selectedIndex = sessionStorage.getItem("selectedIndex") || ""
this.curSelectedIndex = String(this.selectedIndex) ? this.selectedIndex : "" this.curSelectedIndex = String(this.selectedIndex) ? this.selectedIndex : ""
}, },
mounted() { mounted() {
...@@ -335,6 +469,9 @@ export default { ...@@ -335,6 +469,9 @@ export default {
box-shadow: none; box-shadow: none;
} }
} }
::v-deep .homeDialog {
min-width: 1036px;
}
::v-deep .homeDialog .el-dialog__header { ::v-deep .homeDialog .el-dialog__header {
display: none; display: none;
} }
...@@ -355,6 +492,12 @@ export default { ...@@ -355,6 +492,12 @@ export default {
li { li {
cursor: pointer; cursor: pointer;
} }
.desc {
font-size: 14px;
font-family: AlibabaPuHuiTiR;
color: #666666;
text-indent: 38px;
}
.screeningItem { .screeningItem {
display: flex; display: flex;
.circle { .circle {
...@@ -385,13 +528,84 @@ export default { ...@@ -385,13 +528,84 @@ export default {
} }
} }
} }
.submit {
.tips {
width: 100%;
background: #f5f5f5;
border-radius: 4px;
line-height: 22px;
padding: 20px;
margin-top: 40px;
}
}
.innerBody {
padding: 0 40px;
.title {
font-size: 24px;
font-family: AlibabaPuHuiTiM;
color: #333333;
text-align: center;
margin-bottom: 40px;
}
.innerTable {
border-radius: 4px;
border: 1px solid #dddddd;
border-radius: 4px;
.col_item {
display: flex;
.left {
width: 35%;
min-height: 72px;
display: flex;
justify-content: flex-start;
padding-left: 20px;
align-items: center;
font-size: 18px;
font-family: AlibabaPuHuiTiM;
font-weight: bold;
color: #333333;
border-right: 1px solid #eff0f3;
// border-bottom: 1px solid #eff0f3;
}
.right {
flex: 1;
.r_col_item {
min-height: 72px;
display: flex;
justify-content: flex-start;
align-items: center;
padding: 20px 0 20px 20px;
img {
width: 26px;
height: 26px;
}
.r_text {
font-size: 16px;
font-family: AlibabaPuHuiTiR;
color: #333333;
font-weight: bold;
}
ul {
li {
height: 30px;
font-size: 16px;
font-family: AlibabaPuHuiTiR;
color: #666666;
line-height: 30px;
}
}
}
}
}
}
}
.submit {
margin-top: 60px; margin-top: 60px;
text-align: center; text-align: center;
.btn { .btn {
width: 100px; width: 100px;
border-radius: 4px;
height: 32px; height: 32px;
} }
}
} }
</style> </style>
...@@ -20,6 +20,10 @@ export const constantRoutes = [ ...@@ -20,6 +20,10 @@ export const constantRoutes = [
path: "/allianceintroduction", path: "/allianceintroduction",
component: () => import("@/views/Home/AllianceIntroduction/index"), component: () => import("@/views/Home/AllianceIntroduction/index"),
}, },
{
path: "/healthpopularization",
component: () => import("@/views/Home/HealthPopularization/index"),
},
{ {
path: "/casesharing", path: "/casesharing",
component: () => import("@/views/Home/CaseSharing/index"), component: () => import("@/views/Home/CaseSharing/index"),
......
const state = { const state = {
fontSize: localStorage.getItem("fontSize") || 1, fontSize: localStorage.getItem("fontSize") || 1,
selectedIndex: localStorage.getItem("selectedIndex") || "", selectedIndex: sessionStorage.getItem("selectedIndex") || "",
} }
const getters = { const getters = {
fontSize: (state) => state.fontSize, fontSize: (state) => state.fontSize,
...@@ -12,7 +12,11 @@ const mutations = { ...@@ -12,7 +12,11 @@ const mutations = {
}, },
setSelectedIndex(state, selectedIndex) { setSelectedIndex(state, selectedIndex) {
state.selectedIndex = selectedIndex state.selectedIndex = selectedIndex
localStorage.setItem("selectedIndex", selectedIndex) sessionStorage.setItem("selectedIndex", selectedIndex)
},
removeSelectedIndex() {
state.selectedIndex = ""
sessionStorage.removeItem("selectedIndex")
}, },
} }
const actions = {} const actions = {}
......
This diff is collapsed.
...@@ -40,7 +40,7 @@ export default { ...@@ -40,7 +40,7 @@ export default {
return { return {
listLoading: false, listLoading: false,
selectedIndex: sessionStorage.getItem("homeSelectedIndex") - 0 || 0, selectedIndex: sessionStorage.getItem("homeSelectedIndex") - 0 || 0,
headList: ["社区筛查", "医院筛查", "体检筛查"], headList: ["筛查概览", "社区筛查", "医院筛查", "体检筛查"],
columns: [ columns: [
{ {
label: "医联体", label: "医联体",
...@@ -109,7 +109,7 @@ export default { ...@@ -109,7 +109,7 @@ export default {
}, },
getPatientPage() { getPatientPage() {
this.listLoading = true this.listLoading = true
let data = { patientFrom: this.selectedIndex - 0 + 1 } let data = { patientFrom: this.selectedIndex }
getPatientPage(data).then((res) => { getPatientPage(data).then((res) => {
this.listLoading = false this.listLoading = false
if (res.code === 1) { if (res.code === 1) {
......
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