Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-learning-report
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.education.frontend
pica-learning-report
提交
c4665e61
提交
c4665e61
编写于
12月 17, 2019
作者:
guangjun.yang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改很多样式问题
上级
e13a6879
变更
16
隐藏空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
989 行增加
和
64 行删除
+989
-64
chart-column-horizontal-tc-long.vue
...ents/bussiness/charts/chart-column-horizontal-tc-long.vue
+1
-1
chart-column-horizontal-tc.vue
components/bussiness/charts/chart-column-horizontal-tc.vue
+1
-1
chart-column-stack.vue
components/bussiness/charts/chart-column-stack.vue
+13
-13
chart-column-vertical-tc.vue
components/bussiness/charts/chart-column-vertical-tc.vue
+1
-1
course-times-list.vue
components/bussiness/course-times-list.vue
+1
-1
common-area-select-old.vue
components/common/common-area-select-old.vue
+89
-0
common-area-select.vue
components/common/common-area-select.vue
+6
-1
common-header.vue
components/common/common-header.vue
+1
-1
common-swiper-item.vue
components/common/common-swiper-item.vue
+7
-14
common-tabs-old.vue
components/common/common-tabs-old.vue
+105
-0
common-tabs.vue
components/common/common-tabs.vue
+18
-7
common-title-with-what.vue
components/common/common-title-with-what.vue
+0
-1
package.json
package.json
+1
-2
index-old.vue
pages/index-old.vue
+709
-0
index.vue
pages/index.vue
+34
-7
vue-inject.js
plugins/vue-inject.js
+2
-14
未找到文件。
components/bussiness/charts/chart-column-horizontal-tc-long.vue
浏览文件 @
c4665e61
...
...
@@ -96,7 +96,7 @@ export default {
axisPointer
:
{
type
:
"shadow"
},
formatter
:
"{b}<br/>{a0}
: {c0}%<br/>{a1}:
{c1}%"
formatter
:
"{b}<br/>{a0}
{c0}%<br/>{a1}
{c1}%"
},
legend
:
{
show
:
false
,
...
...
components/bussiness/charts/chart-column-horizontal-tc.vue
浏览文件 @
c4665e61
...
...
@@ -93,7 +93,7 @@ export default {
axisPointer
:
{
type
:
"shadow"
},
formatter
:
"{b}<br/>{a0}
: {c0}%<br/>{a1}:
{c1}%"
formatter
:
"{b}<br/>{a0}
{c0}%<br/>{a1}
{c1}%"
},
legend
:
{
top
:
20
,
...
...
components/bussiness/charts/chart-column-stack.vue
浏览文件 @
c4665e61
...
...
@@ -142,24 +142,27 @@ export default {
type
:
"shadow"
// 默认为直线,可选为:'line' | 'shadow'
},
formatter
:
function
(
params
)
{
let
relVal
=
params
[
0
].
name
+
"人数:"
;
// let relVal = params[0].name + "人数:";
let
relVal
=
params
[
0
].
name
+
"人数"
;
let
value
=
0
;
for
(
let
i
=
0
,
l
=
params
.
length
;
i
<
l
;
i
++
)
{
value
+=
params
[
i
].
value
;
}
relVal
+=
value
+
"人"
;
let
divList
=
[];
divList
[
0
]
=
"<div style='background: #3BA0FF;height: 12px;width:
2
0px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"
;
divList
[
1
]
=
"<div style='background: #FF9A4B;height: 12px;width:
2
0px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"
;
divList
[
2
]
=
"<div style='background: #FFB01B;height: 12px;width:
2
0px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"
;
divList
[
3
]
=
"<div style='background: #39AF9A;height: 12px;width:
2
0px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"
;
divList
[
4
]
=
"<div style='background: #5D7092;height: 12px;width:
2
0px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"
;
divList
[
0
]
=
"<div style='background: #3BA0FF;height: 12px;width: 0px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"
;
divList
[
1
]
=
"<div style='background: #FF9A4B;height: 12px;width: 0px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"
;
divList
[
2
]
=
"<div style='background: #FFB01B;height: 12px;width: 0px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"
;
divList
[
3
]
=
"<div style='background: #39AF9A;height: 12px;width: 0px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"
;
divList
[
4
]
=
"<div style='background: #5D7092;height: 12px;width: 0px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"
;
for
(
let
j
=
params
.
length
-
1
;
j
>=
0
;
j
--
)
{
if
(
value
!=
0
)
{
relVal
+=
"<br/>"
+
divList
[
j
]
+
// "
<
br
/>
" + divList[j] +
"
<
br
/>
" +
params[j].seriesName +
"占比: "
+
"
占比
" +
// "
占比:
" +
(
(100 * parseFloat(params[j].value)) /
parseFloat(value)
...
...
@@ -169,15 +172,12 @@ export default {
relVal +=
"
<
br
/>
" + divList[j] +
params[j].seriesName +
"占比: "
+
"0%"
;
"
占比
"+ "
0
%
";
// "
占比:
"+ "
0
%
";
}
}
return relVal;
}
// formatter: "{b}
<
br
/>
{
a0
}:
{
c0
}
+
{
c1
}
%<
br
/>
{
a1
}:
{
c2
}
%
"
// formatter: function(config) {
// console.log('config', config);
// }
},
legend: {
top: 20,
...
...
components/bussiness/charts/chart-column-vertical-tc.vue
浏览文件 @
c4665e61
...
...
@@ -93,7 +93,7 @@ export default {
type
:
"shadow"
},
// formatter: '{a}
<
br
/>
{
b
}
<
br
/>
{
c
}
<
br
/>
{
a0
}
<
br
/>
{
a1
}
<
br
/>
{
b0
}
<
br
/>
{
b1
}
',
formatter: '
{
b
}
<
br
/>
{
a0
}
:
{
c0
}
%<
br
/>
{
a1
}:
{
c1
}
%
'
formatter: '
{
b
}
<
br
/>
{
a0
}
{
c0
}
%<
br
/>
{
a1
}
{
c1
}
%
'
},
legend: {
top: 20,
...
...
components/bussiness/course-times-list.vue
浏览文件 @
c4665e61
...
...
@@ -80,7 +80,7 @@ export default {
justify-content
:
space-between
;
border-bottom
:
1px
solid
#f0f1f2
;
span
{
font-weight
:
7
00
;
font-weight
:
4
00
;
color
:
#373839
;
}
span
:nth-child
(
1
)
{
...
...
components/common/common-area-select-old.vue
0 → 100644
浏览文件 @
c4665e61
<!-- 区域与机构选择(表头)组件 -->
<
template
>
<ul
class=
"common-area-select"
>
<li
class=
"center"
@
click=
"areaClick"
>
{{
areaName
}}
<img
v-show=
"!showArea"
src=
"../../assets/images/arr-down.png"
/><img
v-show=
"showArea"
src=
"../../assets/images/arr-up.png"
/>
</li>
<li
class=
"center"
:class=
"
{'gray': isNotVisible}" @click="orgClick">
{{
orgName
}}
<img
v-show=
"isNotVisible"
src=
"../../assets/images/arr-down-white.png"
/><img
v-show=
"!showOrg && !isNotVisible"
src=
"../../assets/images/arr-down.png"
/><img
v-show=
"showOrg && !isNotVisible"
src=
"../../assets/images/arr-up.png"
/>
</li>
</ul>
</
template
>
<
script
>
import
{
mapGetters
}
from
"vuex"
;
export
default
{
props
:
{
areaName
:
{
type
:
String
,
default
:
"全部"
},
orgName
:
{
type
:
String
,
default
:
"全部机构"
},
showArea
:
{
type
:
Boolean
,
default
:
false
,
},
showOrg
:
{
type
:
Boolean
,
default
:
false
}
},
computed
:
{
...
mapGetters
({
orgList
:
'orgList'
,
areaDegree
:
'areaDegree'
}),
isNotVisible
()
{
if
((
this
.
orgList
&&
this
.
orgList
.
length
==
0
)
||
this
.
areaDegree
==
0
||
this
.
areaDegree
==
1
||
this
.
areaDegree
==
2
)
{
return
true
;
}
else
{
return
false
;
}
}
},
methods
:
{
areaClick
()
{
this
.
$emit
(
"areaClick"
);
},
orgClick
()
{
this
.
$emit
(
"orgClick"
);
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.common-area-select
{
// padding-top: 50px;
display
:
flex
;
width
:
100%
;
height
:
35px
;
line-height
:
35px
;
margin
:
2px
0
10px
;
flex-direction
:
row
nowrap
;
align-content
:
center
;
align-items
:
center
;
text-align
:
center
;
justify-content
:
center
;
/* 水平居中 */
.center
{
flex
:
1
;
font-size
:
15px
;
font-weight
:
400
;
color
:
#676869
;
&
.gray
{
color
:
#C7C8C9
;
}
}
img
{
// padding-top: 10px;
position
:
relative
;
left
:
3px
;
top
:
1px
;
width
:
12px
;
height
:
12px
;
}
}
</
style
>
components/common/common-area-select.vue
浏览文件 @
c4665e61
...
...
@@ -57,12 +57,17 @@ export default {
<
style
lang=
"scss"
scoped
>
.common-area-select
{
&
.fixed
{
position
:
fixed
;
top
:
69px
;
z-index
:
10000000
;
}
// padding-top: 50px;
display
:
flex
;
width
:
100%
;
height
:
35px
;
line-height
:
35px
;
margin
:
2px
0
1
0px
;
margin
:
2px
0
0px
;
flex-direction
:
row
nowrap
;
align-content
:
center
;
align-items
:
center
;
...
...
components/common/common-header.vue
浏览文件 @
c4665e61
...
...
@@ -132,7 +132,7 @@ export default {
background
:
#fff
;
color
:
#333
;
position
:
relative
;
z-index
:
10000000
;
z-index
:
10000000
0
;
.nav-back
{
display
:
inline-block
;
position
:
absolute
;
...
...
components/common/common-swiper-item.vue
浏览文件 @
c4665e61
...
...
@@ -4,7 +4,7 @@
<article
class=
"middle"
>
<div
class=
"title"
>
<span
class=
"ratio"
>
{{
certFlag
?
'获证率'
:
'完成率'
}}
<img
@
click=
"tipsClick"
:class=
"
{'top-10': isAndroid}"
v-show="certFlag"
src="../../assets/images/what-icon-2.png" />
<img
@
click=
"tipsClick"
:class=
"
{'top-10': isAndroid}" src="../../assets/images/what-icon-2.png" />
</span>
<span>
<img
src=
"../../assets/images/tips-1.png"
/>
...
...
@@ -118,7 +118,11 @@ export default {
},
methods
:
{
tipsClick
()
{
this
.
$emit
(
'tipsClick'
)
let
tipsContent
=
'是已完成人数/应参与人数*100%'
;
if
(
this
.
certFlag
)
{
tipsContent
=
'是已获证人数/应参与人数*100%'
}
this
.
$emit
(
'tipsClick'
,
tipsContent
)
}
}
};
...
...
@@ -132,13 +136,10 @@ export default {
.middle
{
display
:
block
;
box-sizing
:
border-box
;
// width: 100%;
height
:
120px
;
margin
:
5px
15px
;
// width: 345px;
height
:
128px
;
padding
:
20px
15px
;
// background: #b4d4ce;
background
:
linear-gradient
(
180deg
,
rgba
(
6
,
190
,
182
,
1
)
0%
,
...
...
@@ -146,13 +147,11 @@ export default {
);
box-shadow
:
0px
5px
10px
0px
rgba
(
68
,
146
,
132
,
0
.1
);
border-radius
:
6px
;
// border: 1px solid rgba(180, 212, 206, 1);
.ratio
{
height
:
24px
;
line-height
:
24px
;
width
:
100px
;
margin
:
10px
0
24px
;
// height: 80px;
span
{
display
:
inline-block
;
height
:
24px
;
...
...
@@ -177,7 +176,7 @@ export default {
left
:
0
;
img
{
position
:
absolute
;
top
:
5
px
;
top
:
3
px
;
left
:
46px
;
width
:
14px
;
height
:
14px
;
...
...
@@ -195,10 +194,8 @@ export default {
.middle-org
{
display
:
block
;
box-sizing
:
border-box
;
// width: 100%;
height
:
120px
;
margin
:
5px
15px
;
// width: 345px;
height
:
98px
;
margin-top
:
10px
;
padding
:
15px
;
...
...
@@ -210,7 +207,6 @@ export default {
line-height
:
21px
;
width
:
100px
;
margin
:
7px
0
15px
;
// height: 80px;
span
{
display
:
inline-block
;
height
:
21px
;
...
...
@@ -287,8 +283,5 @@ export default {
}
}
}
.top-10
{
}
}
</
style
>
components/common/common-tabs-old.vue
0 → 100644
浏览文件 @
c4665e61
<!-- Tabs组件 -->
<
template
>
<div
class=
"common-tabs-wrapper"
>
<ul
class=
"common-tabs"
>
<li
v-show=
"(item === '总体概况'
|| item === '人群分析'
|| item === '课程分析' && projectInfo.existCourse === 1)
|| (item === '考试分析' && projectInfo.existExam === 1)
|| (item === '学习效果分析' && projectInfo.existEffect === 1)"
v-for=
"(item, index) in tapList"
:class=
"
{'active': index === cIndex}"
:key="index"
@click="clickTab(index)"
>
{{
item
}}
</li>
</ul>
<span
class=
"over"
></span>
<span
class=
"border"
></span>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
cIndex
:
0
,
tapList
:
[
"总体概况"
,
"人群分析"
,
"课程分析"
,
"考试分析"
,
"学习效果分析"
]
};
},
props
:
{
projectInfo
:
{
type
:
Object
}
},
mounted
()
{},
methods
:
{
clickTab
(
index
)
{
this
.
cIndex
=
index
;
this
.
$emit
(
"tabClicked"
,
index
);
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.common-tabs-wrapper
{
display
:
flex
;
position
:
relative
;
top
:
0
;
left
:
0
;
z-index
:
1
;
font-size
:
13px
;
.common-tabs
{
white-space
:
nowrap
;
overflow-x
:
auto
;
padding-bottom
:
6px
;
font-size
:
13px
;
li
{
display
:
inline-block
;
height
:
30px
;
line-height
:
30px
;
font-size
:
13px
;
font-weight
:
700
;
margin
:
0
6px
;
color
:
#979899
;
background
:
#f0f1f2
;
padding
:
0
12px
;
border-radius
:
30px
;
&
:first-child
{
margin-left
:
15px
;
}
&
.active
{
color
:
#449284
;
background
:
#e3efed
;
}
}
margin-top
:
0
;
}
.over
{
display
:
block
;
position
:
absolute
;
bottom
:
0px
;
left
:
0
;
width
:
100%
;
height
:
6px
;
z-index
:
2
;
background
:
#fff
;
}
.border
{
display
:
block
;
width
:
100%
;
height
:
1px
;
bottom
:
-3px
;
left
:
0
;
border-bottom
:
1px
solid
#f0f1f2
;
position
:
absolute
;
z-index
:
2
;
}
}
</
style
>
components/common/common-tabs.vue
浏览文件 @
c4665e61
<!-- Tabs组件 -->
<
template
>
<div
class=
"common-tabs-wrapper"
>
<div
class=
"common-tabs-wrapper"
:class=
"
{'fixed': needFixed}"
>
<ul
class=
"common-tabs"
>
<li
v-show=
"(item === '总体概况'
...
...
@@ -35,6 +35,10 @@ export default {
props
:
{
projectInfo
:
{
type
:
Object
},
needFixed
:
{
type
:
Boolean
,
default
:
false
}
},
mounted
()
{},
...
...
@@ -49,17 +53,24 @@ export default {
<
style
lang=
"scss"
scoped
>
.common-tabs-wrapper
{
&
.fixed
{
position
:
fixed
;
top
:
70px
;
z-index
:
10000000
;
background
:
#fff
;
}
display
:
flex
;
position
:
relative
;
top
:
0
;
left
:
0
;
z-index
:
1
;
font-size
:
13px
;
font-size
:
13px
;
.common-tabs
{
white-space
:
nowrap
;
overflow-x
:
auto
;
padding
-bottom
:
6px
;
padding
:
9px
0
;
font-size
:
13px
;
// padding: 5px 0;
li
{
display
:
inline-block
;
height
:
30px
;
...
...
@@ -87,19 +98,19 @@ export default {
bottom
:
0px
;
left
:
0
;
width
:
100%
;
height
:
6
px
;
z-index
:
2
;
height
:
9
px
;
z-index
:
10000000
;
background
:
#fff
;
}
.border
{
display
:
block
;
width
:
100%
;
height
:
1px
;
bottom
:
-3
px
;
bottom
:
0
px
;
left
:
0
;
border-bottom
:
1px
solid
#f0f1f2
;
position
:
absolute
;
z-index
:
2
;
z-index
:
10000000
;
}
}
</
style
>
components/common/common-title-with-what.vue
浏览文件 @
c4665e61
...
...
@@ -2,7 +2,6 @@
<
template
>
<ul
class=
"common-title-with-what"
>
<li
class=
"left"
>
{{
title
}}
<img
@
click=
"tipsClick"
src=
"../../assets/images/what-icon-1.png"
/></li>
<!--
<li
v-if=
"needRightBtn"
></li>
-->
</ul>
</
template
>
<
script
>
...
...
package.json
浏览文件 @
c4665e61
...
...
@@ -18,8 +18,7 @@
"
koa
"
:
"
^2.6.2
"
,
"
nuxt
"
:
"
^2.0.0
"
,
"
v-charts
"
:
"
^1.19.0
"
,
"
vant
"
:
"
^2.2.13
"
,
"
vconsole
"
:
"
^3.3.4
"
"
vant
"
:
"
^2.2.13
"
},
"devDependencies"
:
{
"
@nuxtjs/axios
"
:
"
^5.5.4
"
,
...
...
pages/index-old.vue
0 → 100644
浏览文件 @
c4665e61
<
template
>
<section
class=
"container"
>
<CommonHeader
:title=
"projectInfo.projectName | shortName"
></CommonHeader>
<CommonAreaSelect
@
areaClick=
"areaTabClick"
@
orgClick=
"orgTabClick"
:areaName=
"areaName"
:orgName=
"orgName"
:showArea=
"isShowArea"
:showOrg=
"isShowOrg"
>
</CommonAreaSelect>
<CommonTaps
:projectInfo=
"projectInfo"
@
tabClicked=
"tabClicked"
></CommonTaps>
<!-- 总体概况 -->
<article
v-show=
"cIndex === 0"
>
<CommonSwiperItem
:isSingleOrg=
"isSingleOrg"
:percentData=
"allData.percentData ||
{}"
:certFlag="projectInfo.certFlag"
@tipsClick="tipsSwiperClick"
>
</CommonSwiperItem>
<div
v-show=
"!isSingleOrg"
>
<CommonTitle
v-if=
"projectInfo.certFlag"
title=
"证书分布情况"
></CommonTitle>
<ChartPie
v-if=
"projectInfo.certFlag"
:certFlag=
"projectInfo.certFlag"
id=
"certPieId2"
:pieData=
"(allData && allData.certData)"
></ChartPie>
<CommonTitle
v-if=
"projectInfo.certFlag"
title=
"证书级别按学历分布情况"
></CommonTitle>
<ChartColumnStack
v-if=
"projectInfo.certFlag"
:certFlag=
"projectInfo.certFlag"
:echartsData=
"echartsData"
></ChartColumnStack>
<CommonSplitLine></CommonSplitLine>
<CommonTitle
title=
"项目情况排名"
></CommonTitle>
<RankingList
:certFlag=
"projectInfo.certFlag"
:rankList=
"studyRankList.slice(0, 5)"
></RankingList>
<ShowAll
v-show=
"studyRankList.length > 5"
@
action=
"gotoPage('/rankedu', true)"
></ShowAll>
<CommonSplitLine></CommonSplitLine>
<CommonTitleWithWhat
@
tipsClick=
"tipsRankingItemClick"
title=
"完成天数排名"
></CommonTitleWithWhat>
<RankingItemDays
:rankList=
"costRankList.slice(0, 5)"
></RankingItemDays>
<ShowAll
v-show=
"costRankList.length > 5"
@
action=
"gotoPage('/rankdays')"
></ShowAll>
</div>
<div
v-show=
"isSingleOrg"
>
<CommonTitle
title=
"培训机构情况"
></CommonTitle>
<OrgDoctorList
@
orgDoctorTabChange=
"orgDoctorTabChange"
:certUserList=
"orgDoctorTabData.certUserList"
:noCertUserList=
"orgDoctorTabData.noCertUserList"
:noJoinList=
"orgDoctorTabData.noJoinList"
:certFlag=
"projectInfo.certFlag"
:containOfficialFlag=
"projectInfo.containOfficialFlag"
></OrgDoctorList>
</div>
<CommonBottomInfo></CommonBottomInfo>
</article>
<!-- 人群分析 -->
<article
v-show=
"cIndex === 1"
>
<CommonTitleWithBtn
title=
"人员学历情况"
@
btnClick=
"analysisEduClick"
></CommonTitleWithBtn>
<ChartPieEdu
:dataList=
"analysisEduData"
></ChartPieEdu>
<CommonSplitLine></CommonSplitLine>
<CommonTitleWithBtn
title=
"人员职称情况"
@
btnClick=
"analysisTitleClick"
></CommonTitleWithBtn>
<ChartPieTitle
:dataList=
"analysisTitleData"
></ChartPieTitle>
<CommonBottomInfo></CommonBottomInfo>
</article>
<!-- 课程分析 -->
<article
ref=
"courseAnalysitRef"
v-show=
"(cIndex === 2) && (projectInfo.existCourse == 1)"
style=
"padding-top: 8px;"
>
<CourseTimesStat
:totalSize=
"courseInfo.totalSize"
:maxDuration=
"courseInfo.pCourseTotalTime"
:avgDuration=
"courseInfo.pCourseAvg"
:processDataObj=
"processDataObj"
></CourseTimesStat>
<CommonSplitLine></CommonSplitLine>
<CommonTitle
title=
"课程列表"
></CommonTitle>
<CourseTimesList
:dataList=
"courseInfo.pCourseList"
></CourseTimesList>
<CommonBottomInfo
:class=
"
{'fixed-bottom-info': needFixedBottomInfo}">
</CommonBottomInfo>
</article>
<!-- 考试分析 -->
<article
v-show=
"(cIndex === 3) && (projectInfo.existExam == 1)"
>
<CommonCard
:cardList=
"examCardList"
></CommonCard>
<CommonSplitLine></CommonSplitLine>
<CommonTitle
title=
"完成项目考试次数情况"
></CommonTitle>
<ChartColumnVerticalTimes
:dataList=
"(generalExamData.examTimesList || []).slice(0, 5)"
id=
"chartCourseTimesId"
:colors=
"colors"
></ChartColumnVerticalTimes>
<ShowAll
@
action=
"gotoPage('/examtimes')"
class=
"mt-10"
></ShowAll>
<!--
<ShowAll
v-show=
"generalExamData && generalExamData.examTimesList.length > 5"
@
action=
"gotoPage('/examtimes')"
class=
"mt-10"
></ShowAll>
-->
<CommonSplitLine></CommonSplitLine>
<CommonTitle
title=
"完成项目考试分数情况"
></CommonTitle>
<ChartColumnVerticalScore
id=
"chartCourseScoreId"
:dataList=
"generalExamData.examScoreList"
></ChartColumnVerticalScore>
<ShowAll
@
action=
"gotoPage('/examscore')"
class=
"mt-10"
></ShowAll>
<CommonSplitLine></CommonSplitLine>
<CommonTitle
title=
"考试列表"
></CommonTitle>
<ExamList
:dataList=
"examInfoList"
></ExamList>
<CommonBottomInfo></CommonBottomInfo>
</article>
<!-- 学习效果分析 -->
<article
v-show=
"(cIndex === 4) && (projectInfo.existEffect == 1)"
>
<CommonCard
:needBG=
"needBG"
:cardList=
"effectCardList"
></CommonCard>
<CommonSplitLine></CommonSplitLine>
<CommonTitle
title=
"不同学历培训前后正确率对比"
></CommonTitle>
<ChartColumnVerticalTC
:dataList=
"studyEffect.educationEffectList"
id=
"chartColumnVerticalTC"
></ChartColumnVerticalTC>
<CommonSplitLine
style=
"margin-top: 10px;"
></CommonSplitLine>
<CommonTitle
title=
"培训前后知识点掌握情况"
></CommonTitle>
<ChartColumnHorizontalTC
:dataList=
"studyEffect.knowledgeEffectList"
id=
"ChartColumnVerticalTC2"
></ChartColumnHorizontalTC>
<ShowAll
@
action=
"gotoPage('/klgpoint')"
class=
"mt-10"
></ShowAll>
<CommonBottomInfo></CommonBottomInfo>
</article>
<PicaArea
v-show=
"isShowArea"
@
confirm=
"areaConfirm"
@
cancel=
"areaCancel"
:projectId=
"projectId"
:token=
"token"
></PicaArea>
<PicaOrg
v-show=
"isShowOrg"
@
confirm=
"orgConfirm"
@
cancel=
"orgCancel"
></PicaOrg>
<CommonLoading
v-show=
"false"
></CommonLoading>
<PopTips
:tipsContent=
"tipsContent"
@
clickTips=
"clickTips"
v-show=
"isShowTips"
></PopTips>
</section>
</
template
>
<
script
>
const
cookies
=
require
(
"cookie-universal"
)();
import
{
goPageByNative
}
from
"@/utils"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
import
{
getProvinceList
,
getUserAnalysis
,
getHospitalsCNT
,
getGeneralPersonal
,
getGeneralCourse
,
getGeneralExam
,
getProjectInfo
,
getGeneralExamList
,
getStudyEffect
}
from
"@/service"
;
import
CommonHeader
from
"@/components/common/common-header"
;
import
CommonTitle
from
"@/components/common/common-title"
;
import
CommonTitleWithWhat
from
"@/components/common/common-title-with-what"
;
import
CommonTitleWithBtn
from
"@/components/common/common-title-with-btn"
;
import
CommonLoading
from
"@/components/common/common-loading"
;
import
CommonTaps
from
"@/components/common/common-tabs"
;
import
CommonSwiperItem
from
"@/components/common/common-swiper-item"
;
import
CommonSplitLine
from
"@/components/common/common-split-line"
;
import
RankingList
from
"@/components/bussiness/ranking-item"
;
import
ShowAll
from
"@/components/common/common-show-all"
;
import
CommonBottomInfo
from
"@/components/common/common-bottom-info"
;
import
RankingItemDays
from
"@/components/bussiness/ranking-item-days"
;
import
ChartPie
from
"@/components/bussiness/charts/chart-pie"
;
import
ChartPieEdu
from
"@/components/bussiness/charts/chart-pie-edu"
;
import
ChartPieTitle
from
"@/components/bussiness/charts/chart-pie-title"
;
import
ChartColumnStack
from
"@/components/bussiness/charts/chart-column-stack"
;
import
ChartColumnVerticalTimes
from
"@/components/bussiness/charts/chart-column-vertical-times"
;
import
ChartColumnVerticalScore
from
"@/components/bussiness/charts/chart-column-vertical-score"
;
import
ChartColumnVerticalTC
from
"@/components/bussiness/charts/chart-column-vertical-tc"
;
import
ChartColumnHorizontalTC
from
"@/components/bussiness/charts/chart-column-horizontal-tc"
;
import
PicaArea
from
"@/components/common/pica-area"
;
import
PicaOrg
from
"@/components/common/pica-org"
;
import
CommonAreaSelect
from
"@/components/common/common-area-select"
;
import
ProcessBar
from
"@/components/common/pica-process"
;
import
CourseTimesStat
from
"@/components/bussiness/course-times-stat"
;
import
CourseTimesList
from
"@/components/bussiness/course-times-list"
;
import
OrgDoctorList
from
"@/components/bussiness/org-doctor-list"
;
import
ExamList
from
"@/components/bussiness/exam-list"
;
import
PopTips
from
"@/components/bussiness/pop-tips"
;
import
CommonCard
from
"@/components/common/common-card"
;
import
{
getGeneralData
}
from
"@/service/index"
;
export
default
{
components
:
{
CommonHeader
,
CommonTitle
,
CommonLoading
,
CommonTaps
,
CommonSwiperItem
,
CommonSplitLine
,
RankingList
,
ChartPie
,
ChartPieEdu
,
ChartPieTitle
,
ShowAll
,
CommonBottomInfo
,
RankingItemDays
,
ChartColumnStack
,
PicaArea
,
PicaOrg
,
CommonAreaSelect
,
ProcessBar
,
CourseTimesStat
,
CourseTimesList
,
CommonCard
,
ExamList
,
// ChartColumnVertical,
ChartColumnVerticalTC
,
ChartColumnHorizontalTC
,
CommonTitleWithBtn
,
OrgDoctorList
,
ChartColumnVerticalTimes
,
ChartColumnVerticalScore
,
PopTips
,
CommonTitleWithWhat
,
},
data
()
{
return
{
isShowArea
:
false
,
isShowOrg
:
false
,
isShowTips
:
false
,
isShowRankingItemTips
:
false
,
tipsContent
:
''
,
areaName
:
'全部'
,
orgName
:
'全部机构'
,
cIndex
:
0
,
colors
:
[
"#39AF9A"
,
"#FF9A4B"
,
"#abb7bb"
,
"#76d2d2"
],
needBG
:
true
,
effectCardList
:
[
{
count
:
65
,
unitName
:
"%"
,
description
:
"培训前正确率"
},
{
count
:
80
,
unitName
:
"%"
,
description
:
"培训后正确率"
}
],
allData
:
{},
studyRankList
:
[],
costRankList
:
[],
projectId
:
""
,
token
:
// "C7AEA346BC6A4EE0B2F1F76CBD511AC9" ||
"79A005DB585C45C389ED1DD0C76E3633"
||
"A220943B006347799F277CC524EBB662"
,
isOrgStat
:
false
,
// 区域选择通用接口参数
queryParams
:
{
projectId
:
374
,
regionId
:
""
},
// 查询概况数据
queryGDParams
:
{
beginDate
:
""
,
endDate
:
""
,
hospitalIdList
:
[],
originalFlag
:
2
,
// 默认值2:1.查看原始数据 2.查看调整后的数据
projectId
:
374
,
regionId
:
""
,
timeFlag
:
1
,
pageNo
:
0
,
pageSize
:
0
,
sourceType
:
1
,
pageCfg
:
{
type
:
1
}
},
echartsData
:
null
,
analysisData
:
{
eduList
:
{
join
:
[],
finish
:
[]},
titleList
:
{
join
:
[],
finish
:
[]},
},
analysisEduData
:
[],
analysisTitleData
:
[],
CNTParams
:
{
projectId
:
374
,
regionId
:
""
},
hospitalCnt
:
2
,
isSingleOrg
:
false
,
orgDoctorTabData
:
{
certUserList
:
[],
noCertUserList
:
[],
noJoinList
:
[]
},
projectInfo
:
{
projectName
:
'项目名称'
,
certFlag
:
0
,
// 项目证书情况 0:无证;1:单证书;2:多证书
existCourse
:
2
,
// 是否显示课程分析 1:显示 2:不显示
existEffect
:
2
,
// 是否显示学习效果分析 1:显示 2:不显示
existExam
:
2
,
// 是否显示考试分析 1:显示 2:不显示
roleType
:
0
,
// 0:普通人 1:内部管理员 2:项目负责人 3:次级负责人
status
:
0
,
// 是否显示查看原始数据 1:显示 2:不显示
containOfficialFlag
:
0
// 0: 无正式考考试 1: 有正式考考试
},
courseInfo
:
{
pCourseTotalTime
:
0
,
pCourseAvg
:
0
,
pCourseList
:
[]
},
generalExamData
:
{
beforeExamCount
:
4
,
afterExamCount
:
4
,
examTitleCount
:
800
,
examTimesList
:
[],
examScoreList
:
[],
fiveExamScoreList
:
[],
tenExamScoreList
:
[]
},
examCardList
:
[],
examInfoList
:
[],
studyEffect
:
{
beforeRate
:
0
,
afterRate
:
0
,
educationEffectList
:
[],
knowledgeEffectList
:
[]
},
processDataObj
:
{
},
needFixedBottomInfo
:
false
,
};
},
filters
:
{
shortName
:
function
(
value
,
length
=
15
,
append
=
'...'
)
{
if
(
value
&&
value
.
length
>
length
)
{
return
value
.
substring
(
0
,
length
)
+
append
}
else
{
return
value
}
}
},
computed
:
{
...
mapGetters
({
orgList
:
"orgList"
,
areaDegree
:
"areaDegree"
}),
},
asyncData
()
{
return
{};
},
created
()
{
if
(
process
.
client
)
{
this
.
projectId
=
(
this
.
$route
&&
this
.
$route
.
query
&&
this
.
$route
.
query
.
projectId
)
||
374
;
this
.
queryGDParams
.
projectId
=
this
.
projectId
;
this
.
CNTParams
.
projectId
=
this
.
projectId
;
this
.
queryParams
.
projectId
=
this
.
projectId
;
if
(
this
.
$rocNative
.
isWeb
)
{
this
.
setUserToken
(
this
.
token
);
cookies
.
set
(
"lreporttoken"
,
this
.
token
);
this
.
setProjectId
(
this
.
projectId
);
}
else
{
this
.
getUserInfo
();
}
}
// this.$store.dispatch('searchHospital', { name: '测试' });
},
mounted
()
{
if
(
this
.
$rocNative
.
isWeb
)
{
this
.
getProjectInfo
(
this
.
queryParams
);
}
},
methods
:
{
// 获取可区域高度
getViewportHeight
()
{
var
doc
=
document
;
var
docE
=
doc
.
documentElement
;
var
body
=
doc
.
body
;
return
docE
&&
docE
.
clientHeight
||
body
&&
body
.
offsetHeight
||
window
.
innerHeight
||
0
;
// return {
// 'width': docE && docE.clientWidth || body && body.offsetWidth || window.innerWidth || 0,
// 'height': docE && docE.clientHeight || body && body.offsetHeight || window.innerHeight || 0
// };
},
// 切换机构人员列表中的tabs
orgDoctorTabChange
(
index
)
{
this
.
queryGDParams
.
pageCfg
.
type
=
index
+
1
;
this
.
getGeneralPersonal
(
this
.
queryGDParams
);
},
// 查询用户信息和权限
getProjectInfo
(
params
)
{
getProjectInfo
({
projectId
:
this
.
projectId
}).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
this
.
projectInfo
=
res
.
data
;
getProvinceList
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
this
.
queryGDParams
.
regionId
=
(
res
.
data
&&
res
.
data
.
list
[
0
]
&&
res
.
data
.
list
[
0
].
id
)
||
''
;
this
.
CNTParams
.
regionId
=
(
res
.
data
&&
res
.
data
.
list
[
0
]
&&
res
.
data
.
list
[
0
].
id
)
||
''
;
this
.
setProvinceList
(
res
.
data
.
list
);
this
.
getHospitalsCNT
(
this
.
CNTParams
);
}
});
}
});
},
// 异步延迟调用其它Tabs接口(除了数据概述)
otherInterface
()
{
setTimeout
(()
=>
{
this
.
getUserAnalysis
(
this
.
queryGDParams
);
this
.
projectInfo
.
existCourse
==
1
&&
this
.
getGeneralCourse
(
this
.
queryGDParams
);
this
.
projectInfo
.
existExam
==
1
&&
this
.
getGeneralExam
(
this
.
queryGDParams
);
this
.
projectInfo
.
existEffect
==
1
&&
this
.
getStudyEffect
(
this
.
queryGDParams
);
},
100
);
},
// 根据地区查询地区下是否有机构
getHospitalsCNT
(
params
)
{
getHospitalsCNT
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
this
.
hospitalCnt
=
res
.
data
.
hospitalCnt
;
this
.
isSingleOrg
=
res
.
data
.
hospitalCnt
===
1
;
if
(
this
.
isSingleOrg
)
{
// 只有一个机构,则调用另外一个接口(机构下人员)
this
.
queryGDParams
.
hospitalIdList
=
[];
this
.
queryGDParams
.
hospitalIdList
.
push
(
res
.
data
.
list
[
0
].
hospitalId
);
this
.
getGeneralPersonal
(
this
.
queryGDParams
);
}
else
{
this
.
getGeneralData
(
this
.
queryGDParams
);
}
this
.
otherInterface
();
}
});
},
// 请求单个机构下的数据(总体概述的数据)
getGeneralPersonal
(
params
)
{
getGeneralPersonal
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
this
.
allData
=
res
.
data
;
this
.
studyRankList
=
this
.
allData
.
studyRank
||
[];
this
.
costRankList
=
this
.
allData
.
costRank
||
[];
if
(
params
.
pageCfg
.
type
===
1
)
{
this
.
orgDoctorTabData
.
certUserList
=
res
.
data
.
personData
;
}
else
if
(
params
.
pageCfg
.
type
===
2
)
{
this
.
orgDoctorTabData
.
noCertUserList
=
res
.
data
.
personData
;
}
else
{
this
.
orgDoctorTabData
.
noJoinList
=
res
.
data
.
personData
;
}
}
});
},
// 请求多个机构下的数据
getGeneralData
(
queryData
)
{
getGeneralData
(
queryData
).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
this
.
allData
=
res
.
data
;
this
.
studyRankList
=
this
.
allData
.
studyRank
||
[]
this
.
costRankList
=
this
.
allData
.
costRank
||
[];
this
.
echartsData
=
res
.
data
.
eduData
;
}
});
},
// 人群分析
getUserAnalysis
(
queryData
)
{
getUserAnalysis
(
queryData
).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
this
.
analysisData
=
res
.
data
;
this
.
analysisEduData
=
res
.
data
.
eduList
.
join
;
this
.
analysisTitleData
=
res
.
data
.
titleList
.
join
;
}
});
},
// 考试分析
getGeneralExam
(
queryData
)
{
// 上面三个图标数据
getGeneralExam
(
queryData
).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
this
.
generalExamData
=
res
.
data
;
this
.
setExamTimesList
(
res
.
data
.
examTimesList
)
this
.
setExamScoreList
(
res
.
data
.
examScoreList
)
this
.
examCardList
=
[
{
count
:
res
.
data
.
afterExamCount
,
unitName
:
"门"
,
description
:
"正式考试数"
},
{
count
:
res
.
data
.
beforeExamCount
,
unitName
:
"门"
,
description
:
"模拟考试数"
},
{
count
:
res
.
data
.
examTitleCount
,
unitName
:
"道"
,
description
:
"所有考题数"
}
];
}
});
// 下面一个列表数据
getGeneralExamList
(
queryData
).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
this
.
examInfoList
=
res
.
data
.
examInfoList
||
[]
}
});
},
// 课程数据
getGeneralCourse
(
params
)
{
getGeneralCourse
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
this
.
processDataObj
=
{
maxDuration
:
res
.
data
.
pCourseTotalTime
,
avgDuration
:
res
.
data
.
pCourseAvg
}
this
.
processDataObj
.
maxDuration
=
res
.
data
.
pCourseTotalTime
;
this
.
processDataObj
.
avgDuration
=
res
.
data
.
pCourseAvg
;
this
.
courseInfo
=
res
.
data
;
let
viewportHeight
=
this
.
getViewportHeight
();
let
courseLength
=
res
.
data
.
pCourseList
.
length
;
// 上面的高度 468 每一条数据的高度 60
if
(
viewportHeight
>
(
468
+
(
courseLength
-
1
)
*
60
))
{
this
.
needFixedBottomInfo
=
true
;
}
}
});
},
// 学习效果分析
getStudyEffect
(
params
)
{
getStudyEffect
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
this
.
studyEffect
=
res
.
data
;
this
.
effectCardList
[
0
].
count
=
(
res
.
data
.
beforeRate
*
100
).
toFixed
(
1
);
this
.
effectCardList
[
1
].
count
=
(
res
.
data
.
afterRate
*
100
).
toFixed
(
1
);
}
});
},
// Tabs切换
tabClicked
(
index
)
{
this
.
cIndex
=
index
;
},
// 清空参数
clearParams
()
{
this
.
orgName
=
'全部机构'
;
this
.
queryGDParams
.
hospitalIdList
=
[];
},
// 确认选择区域
areaConfirm
(
selData
)
{
this
.
clearParams
();
this
.
queryGDParams
.
regionId
=
selData
.
regionId
;
this
.
CNTParams
.
regionId
=
selData
.
regionId
;
this
.
getHospitalsCNT
(
this
.
CNTParams
);
this
.
isShowArea
=
false
;
this
.
setAreaDegree
(
selData
.
areaDegree
);
if
(
selData
.
townName
||
selData
.
countyName
||
selData
.
cityName
||
selData
.
provinceName
)
{
this
.
areaName
=
this
.
shortName
(
selData
.
townName
||
selData
.
countyName
||
selData
.
cityName
||
selData
.
provinceName
,
6
)
}
},
// 取消选择区域
areaCancel
()
{
this
.
isShowArea
=
false
;
},
// 确认选择机构
orgConfirm
(
selData
)
{
let
hospitalIds
=
[];
let
hospitalNames
=
[];
let
orgName
=
''
;
selData
.
forEach
(
org
=>
{
if
(
org
.
selected
)
{
hospitalIds
.
push
(
org
.
hospitalId
);
hospitalNames
.
push
(
org
.
hospitalName
);
}
});
// 如果没有选择机构,则重新获取所有数据
this
.
isShowOrg
=
false
;
this
.
orgName
=
this
.
shortName
(
hospitalNames
[
0
]
||
'全部机构'
,
6
);
if
(
hospitalIds
.
length
==
0
)
{
this
.
getHospitalsCNT
(
this
.
CNTParams
);
return
;
}
this
.
queryGDParams
.
hospitalIdList
=
hospitalIds
;
if
(
hospitalIds
.
length
===
1
)
{
// this.hospitalCnt = 1
this
.
isSingleOrg
=
true
;
this
.
getGeneralPersonal
(
this
.
queryGDParams
);
}
else
{
this
.
isSingleOrg
=
false
;
this
.
getGeneralData
(
this
.
queryGDParams
);
}
this
.
otherInterface
();
},
// 取消选择机构
orgCancel
()
{
this
.
isShowOrg
=
false
;
},
// 弹出选择区域控件
areaTabClick
()
{
if
(
this
.
isShowOrg
)
{
this
.
isShowOrg
=
false
;
}
this
.
isShowArea
=
!
this
.
isShowArea
;
},
// 弹出选择机构控件
orgTabClick
()
{
if
(
this
.
areaDegree
!==
3
&&
this
.
areaDegree
!==
4
)
{
this
.
$toast
(
'选择区/县后才可选择机构'
);
return
;
}
if
(
this
.
orgList
.
length
===
0
)
{
this
.
$toast
(
'此区域下无机构'
);
return
;
}
this
.
isShowOrg
=
!
this
.
isShowOrg
;
},
// 通用跳转页面
gotoPage
(
subUrl
,
hasCert
)
{
let
subUrlAndParams
=
`
${
subUrl
}
?token=
${
this
.
token
}
&projectId=
${
this
.
queryGDParams
.
projectId
}
®ionId=
${
this
.
queryGDParams
.
regionId
}
&hospitalIdList=
${
this
.
queryGDParams
.
hospitalIdList
.
join
(
','
)}
`
if
(
hasCert
)
{
subUrlAndParams
+=
`&certFlag=
${
this
.
projectInfo
.
certFlag
}
`
}
if
(
this
.
$rocNative
.
isWeb
)
{
this
.
$router
.
push
(
subUrlAndParams
);
}
else
{
let
nativeUrl
=
`/lreport_ssr
${
subUrlAndParams
}
`
goPageByNative
(
this
,
nativeUrl
);
}
},
// 人员学历情况切换按钮
analysisEduClick
(
index
)
{
this
.
analysisEduData
=
this
.
analysisData
.
eduList
[
index
?
"finish"
:
"join"
]
||
[];
this
.
$forceUpdate
();
},
// 人员职称情况切换按钮
analysisTitleClick
(
index
)
{
this
.
analysisTitleData
=
this
.
analysisData
.
titleList
[
index
?
"finish"
:
"join"
]
||
[];
this
.
$forceUpdate
();
},
// 与原生交互,获取用户信息
getUserInfo
()
{
this
.
$rocNative
.
getUserInfo
&&
this
.
$rocNative
.
getUserInfo
().
then
(
params
=>
{
this
.
token
=
params
.
userToken
;
// cookies.remove("token");
cookies
.
set
(
"lreporttoken"
,
this
.
token
);
this
.
setUserToken
(
this
.
token
);
this
.
setProjectId
(
this
.
projectId
);
this
.
getProjectInfo
(
this
.
queryParams
);
});
},
// 弹出提示信息一
tipsRankingItemClick
()
{
this
.
tipsContent
=
'在线项目完成天数=完成项目时间-开始参与项目时间'
this
.
isShowTips
=
true
},
// 弹出提示信息二
tipsSwiperClick
(
tipsContent
)
{
this
.
tipsContent
=
tipsContent
;
//'是已获证人数/应参与人数*100%'
this
.
isShowTips
=
true
},
// 关闭提示信息
clickTips
()
{
this
.
isShowTips
=
false
},
// 文本截断
shortName
:
function
(
value
,
length
=
15
,
append
=
'...'
)
{
if
(
value
&&
value
.
length
>
length
)
{
return
value
.
substring
(
0
,
length
)
+
append
}
else
{
return
value
}
},
// 映射Store中的Actions
...
mapActions
({
setProjectId
:
"setProjectId"
,
setRegionId
:
"setRegionId"
,
setUserToken
:
"setUserToken"
,
setProvinceList
:
"setProvinceList"
,
setExamTimesList
:
"setExamTimesList"
,
setExamScoreList
:
"setExamScoreList"
,
setAreaDegree
:
"setAreaDegree"
})
}
};
</
script
>
<
style
lang=
"less"
scoped
>
.container {
margin: 0 auto;
font-size: 17px;
h1 {
font-size: 36px;
text-align: center;
}
.m1 {
width: 100%;
> div {
width: 100%;
}
}
.mt-10 {
margin-top: 0;
}
.fixed-bottom-info {
position: fixed;
bottom: 0;
left: 0;
}
}
</
style
>
pages/index.vue
浏览文件 @
c4665e61
...
...
@@ -2,15 +2,17 @@
<section
class=
"container"
>
<CommonHeader
:title=
"projectInfo.projectName | shortName"
></CommonHeader>
<CommonAreaSelect
@
areaClick=
"areaTabClick"
v-show=
"!isScroll"
@
areaClick=
"areaTabClick"
@
orgClick=
"orgTabClick"
:areaName=
"areaName"
:orgName=
"orgName"
:showArea=
"isShowArea"
:showArea=
"isShowArea"
:showOrg=
"isShowOrg"
>
</CommonAreaSelect>
<CommonTaps
:projectInfo=
"projectInfo"
@
tabClicked=
"tabClicked"
></CommonTaps>
<CommonTaps
:
needFixed=
"isScroll"
:
projectInfo=
"projectInfo"
@
tabClicked=
"tabClicked"
></CommonTaps>
<!-- 总体概况 -->
<div
v-show=
"isScroll"
class=
"pd-top-60"
></div>
<article
v-show=
"cIndex === 0"
>
<CommonSwiperItem
:isSingleOrg=
"isSingleOrg"
...
...
@@ -156,7 +158,7 @@ import ExamList from "@/components/bussiness/exam-list";
import
PopTips
from
"@/components/bussiness/pop-tips"
;
import
CommonCard
from
"@/components/common/common-card"
;
import
{
getGeneralData
}
from
"@/service/index"
;
let
timeOutId
=
null
;
export
default
{
components
:
{
CommonHeader
,
...
...
@@ -193,6 +195,7 @@ export default {
},
data
()
{
return
{
isScroll
:
false
,
isShowArea
:
false
,
isShowOrg
:
false
,
isShowTips
:
false
,
...
...
@@ -339,8 +342,30 @@ export default {
if
(
this
.
$rocNative
.
isWeb
)
{
this
.
getProjectInfo
(
this
.
queryParams
);
}
window
.
addEventListener
(
'scroll'
,
()
=>
{
if
(
timeOutId
)
{
clearTimeout
(
timeOutId
);
}
timeOutId
=
setTimeout
(
this
.
handleScroll
,
10
);
},
false
);
},
methods
:
{
handleScroll
()
{
var
scrollTop
=
window
.
pageYOffset
||
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
;
if
(
scrollTop
>
5
)
{
this
.
isScroll
=
true
;
}
else
{
this
.
isScroll
=
false
;
}
},
// 获取可区域高度
getViewportHeight
()
{
var
doc
=
document
;
...
...
@@ -498,7 +523,6 @@ export default {
if
(
viewportHeight
>
(
468
+
(
courseLength
-
1
)
*
60
))
{
this
.
needFixedBottomInfo
=
true
;
}
console
.
log
(
viewportHeight
,
(
468
+
(
courseLength
-
1
)
*
60
))
}
});
},
...
...
@@ -651,8 +675,8 @@ export default {
},
// 弹出提示信息二
tipsSwiperClick
()
{
this
.
tipsContent
=
'是已获证人数/应参与人数*100%'
tipsSwiperClick
(
tipsContent
)
{
this
.
tipsContent
=
tipsContent
;
//
'是已获证人数/应参与人数*100%'
this
.
isShowTips
=
true
},
...
...
@@ -706,5 +730,8 @@ export default {
bottom: 0;
left: 0;
}
.pd-top-60 {
padding-top: 40px;
}
}
</
style
>
plugins/vue-inject.js
浏览文件 @
c4665e61
import
Vue
from
'vue'
import
rocNative
from
'@/utils/jsbridge'
import
echarts
from
'echarts'
import
{
DropdownMenu
,
DropdownItem
}
from
'vant'
;
import
{
Toast
}
from
'vant'
;
// import picaArea from 'pica-area'
// Vue.use(picaArea)
Vue
.
use
(
Toast
);
// Vue.filter('formatNum',function(num, arg1, arg2){
// var str = num + '';
// return str.split("").reverse().reduce((prev, next, index) => {
// return ((index % 3) ? next : (next + ',')) + prev;
// })
// })
import
VConsole
from
'vconsole/dist/vconsole.min.js'
//import vconsole
let
vConsole
=
new
VConsole
()
// 初始化
Vue
.
use
(
DropdownMenu
).
use
(
DropdownItem
);
// import VConsole from 'vconsole/dist/vconsole.min.js' //import vconsole
// let vConsole = new VConsole() // 初始化
Vue
.
prototype
.
$echarts
=
echarts
Vue
.
prototype
.
$rocNative
=
new
rocNative
();
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录