Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
agcs2.0-web
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liang
agcs2.0-web
Commits
beedb484
Commit
beedb484
authored
Jan 31, 2023
by
刘予佳
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'remotes/origin/dev' into dev_lyj
parents
d2a678ee
1fa8407d
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
238 additions
and
167 deletions
+238
-167
top20.png
src/assets/img/Home/top20.png
+0
-0
FormItemSelf.vue
src/components/FormComponents/CustomForm/FormItemSelf.vue
+104
-88
index.vue
src/components/layout/index.vue
+7
-1
index.js
src/router/index.js
+2
-2
index.vue
src/views/Home/Solution/index.vue
+14
-0
index.vue
src/views/Home/index.vue
+111
-76
No files found.
src/assets/img/Home/top20.png
0 → 100644
View file @
beedb484
6.5 KB
src/components/FormComponents/CustomForm/FormItemSelf.vue
View file @
beedb484
...
...
@@ -265,16 +265,22 @@
@
change=
"handleChange"
></el-time-picker>
<!-- 日期 -->
<el-date-picker
v-else-if=
"item.type === 'date'"
v-model=
"form[item.prop]"
:placeholder=
"item.placeholder ? item.placeholder : '请选择'"
:value-format=
"item.valueFormat"
:format=
"item.format"
:disabled=
"item.disabled"
clearable
@
change=
"handleChange"
></el-date-picker>
<div
class=
"flex"
v-else-if=
"item.type === 'date'"
>
<el-date-picker
v-model=
"form[item.prop]"
:placeholder=
"item.placeholder ? item.placeholder : '请选择'"
:value-format=
"item.valueFormat"
:format=
"item.format"
:disabled=
"item.disabled"
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,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
=
fals
e
)
}
}
if
(
!
flag
)
{
if
(
this
.
form
.
period_gastric_cancer
)
{
this
.
form
.
period_gastric_cancer
.
length
>
0
?
(
flag
=
tru
e
)
:
(
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']
...
...
src/components/layout/index.vue
View file @
beedb484
...
...
@@ -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
)
=>
{})
this
.
loading
=
false
setTimeout
(()
=>
{
this
.
loading
=
false
},
800
)
})
.
catch
((
e
)
=>
{
this
.
loading
=
false
...
...
src/router/index.js
View file @
beedb484
...
...
@@ -29,8 +29,8 @@ export const constantRoutes = [
component
:
()
=>
import
(
"
@/views/Home/ScientificResearch/index
"
),
},
{
path
:
"
/
healthpopulariza
tion
"
,
component
:
()
=>
import
(
"
@/views/Home/
HealthPopulariza
tion/index
"
),
path
:
"
/
solu
tion
"
,
component
:
()
=>
import
(
"
@/views/Home/
Solu
tion/index
"
),
},
],
},
...
...
src/views/Home/Solution/index.vue
0 → 100644
View file @
beedb484
<
template
>
<div>
解决方案
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{}
},
methods
:
{},
mounted
()
{},
watch
:
{},
}
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
src/views/Home/index.vue
View file @
beedb484
...
...
@@ -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=
"top
1
0"
></div>
<div
class=
"top
2
0"
></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,36 +103,32 @@
</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
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=
"title_box"
>
...
...
@@ -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
:
6
px
;
margin-top
:
24
px
;
height
:
408px
;
background
:
rgba
(
78
,
104
,
255
,
0
.0
6
);
background
:
rgba
(
78
,
104
,
255
,
0
.0
4
);
border-radius
:
4px
;
padding
:
8
px
;
padding
:
24px
32
px
;
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
:
4
3%
;
width
:
2
3%
;
margin-bottom
:
24px
;
height
:
188px
;
display
:
flex
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment