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
提交
d4ce4531
提交
d4ce4531
编写于
12月 30, 2019
作者:
张平
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev-optimization-1223' into 'release'
code reviewer: 张平:修复几个UI bug等 code reviewer: 张平:修复几个UI bug等 See merge request
!1
上级
7c4318b8
a59defcb
变更
11
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
297 行增加
和
215 行删除
+297
-215
chart-pie-cert.vue
components/bussiness/charts/chart-pie-cert.vue
+24
-10
chart-pie-edu.vue
components/bussiness/charts/chart-pie-edu.vue
+29
-13
chart-pie-title.vue
components/bussiness/charts/chart-pie-title.vue
+32
-16
chart-pie.vue
components/bussiness/charts/chart-pie.vue
+21
-8
course-times-list.vue
components/bussiness/course-times-list.vue
+6
-1
exam-list.vue
components/bussiness/exam-list.vue
+6
-1
exam-score-list.vue
components/bussiness/exam-score-list.vue
+5
-2
exam-times-list.vue
components/bussiness/exam-times-list.vue
+5
-2
ranking-item-days.vue
components/bussiness/ranking-item-days.vue
+24
-16
ranking-item.vue
components/bussiness/ranking-item.vue
+6
-1
index.vue
pages/index.vue
+139
-145
未找到文件。
components/bussiness/charts/chart-pie-cert.vue
浏览文件 @
d4ce4531
...
@@ -18,9 +18,9 @@ export default {
...
@@ -18,9 +18,9 @@ export default {
pieData
:
{
pieData
:
{
type
:
Array
,
type
:
Array
,
default
:
()
=>
[
default
:
()
=>
[
{
value
:
335
,
name
:
"优秀证书"
},
{
value
:
0
,
name
:
"优秀证书"
},
{
value
:
31
0
,
name
:
"及格证书"
},
{
value
:
0
,
name
:
"及格证书"
},
{
value
:
234
,
name
:
"未获证"
}
{
value
:
0
,
name
:
"未获证"
}
]
]
}
}
},
},
...
@@ -28,6 +28,7 @@ export default {
...
@@ -28,6 +28,7 @@ export default {
return
{
return
{
pieId
:
'certPieId'
,
pieId
:
'certPieId'
,
chartHeight
:
"1000px"
,
chartHeight
:
"1000px"
,
legendDataNotSelected
:
{},
handledData
:
{},
handledData
:
{},
legendData
:
[],
legendData
:
[],
seriesData
:
{}
seriesData
:
{}
...
@@ -48,18 +49,30 @@ export default {
...
@@ -48,18 +49,30 @@ export default {
},
},
methods
:
{
methods
:
{
handlePieData
(
pieData
)
{
handlePieData
(
pieData
)
{
this
.
legendData
=
pieData
.
map
(
item
=>
{
let
legendDataNotSelected
=
{},
legendData
=
[],
seriesData
=
[];
return
item
.
certName
pieData
.
forEach
(
(
item
,
i
)
=>
{
})
if
(
!
pieData
[
i
].
doneCount
)
{
this
.
seriesData
=
pieData
.
map
(
item
=>
{
legendDataNotSelected
[
pieData
[
i
].
certName
]
=
false
return
{
name
:
item
.
certName
,
value
:
item
.
doneCount
}
}
legendData
.
push
(
item
.
certName
);
seriesData
.
push
({
name
:
item
.
certName
,
value
:
item
.
doneCount
});
})
})
this
.
legendDataNotSelected
=
legendDataNotSelected
;
this
.
legendData
=
legendData
;
this
.
seriesData
=
seriesData
;
// this.legendData = pieData.map( item => {
// return item.certName
// })
// this.seriesData = pieData.map( item => {
// return { name: item.certName, value: item.doneCount}
// })
},
},
// 绘制图表
// 绘制图表
drawPie
()
{
drawPie
()
{
let
chartPie
=
vm
.
$echarts
.
init
(
document
.
getElementById
(
vm
.
pieId
));
let
chartPie
=
vm
.
$echarts
.
init
(
document
.
getElementById
(
vm
.
pieId
));
let
options
=
{
let
options
=
{
color
:
echartColors
,
//
color: echartColors,
tooltip
:
{
tooltip
:
{
trigger
:
"item"
,
trigger
:
"item"
,
formatter
:
"{a} <br/>{b} : {c} ({d}%)"
formatter
:
"{a} <br/>{b} : {c} ({d}%)"
...
@@ -71,6 +84,7 @@ export default {
...
@@ -71,6 +84,7 @@ export default {
top
:
'30%'
,
top
:
'30%'
,
left
:
'60%'
,
left
:
'60%'
,
bottom
:
20
,
bottom
:
20
,
selected
:
this
.
legendDataNotSelected
,
data
:
vm
.
legendData
,
// ["优秀证书", "及格证书", "未获证"],
data
:
vm
.
legendData
,
// ["优秀证书", "及格证书", "未获证"],
textStyle
:
{
textStyle
:
{
fontSize
:
12
,
fontSize
:
12
,
...
@@ -112,7 +126,7 @@ export default {
...
@@ -112,7 +126,7 @@ export default {
let
item
=
this
.
pieData
.
find
(
item
=>
{
let
item
=
this
.
pieData
.
find
(
item
=>
{
return
item
.
certName
===
name
;
return
item
.
certName
===
name
;
});
});
return
(
item
&&
item
.
doneCount
)
||
""
;
return
(
item
&&
item
.
doneCount
)
||
0
;
}
}
}
}
};
};
...
...
components/bussiness/charts/chart-pie-edu.vue
浏览文件 @
d4ce4531
...
@@ -19,9 +19,9 @@ export default {
...
@@ -19,9 +19,9 @@ export default {
dataList
:
{
dataList
:
{
type
:
Array
,
type
:
Array
,
default
:
()
=>
[
default
:
()
=>
[
{
value
:
335
,
name
:
"优秀证书"
},
{
value
:
0
,
name
:
"优秀证书"
},
{
value
:
31
0
,
name
:
"及格证书"
},
{
value
:
0
,
name
:
"及格证书"
},
{
value
:
234
,
name
:
"未获证"
}
{
value
:
0
,
name
:
"未获证"
}
]
]
},
},
...
@@ -31,6 +31,7 @@ export default {
...
@@ -31,6 +31,7 @@ export default {
chartWidth
:
'320px'
,
chartWidth
:
'320px'
,
pieId
:
'eduPieId'
,
pieId
:
'eduPieId'
,
chartHeight
:
"1000px"
,
chartHeight
:
"1000px"
,
legendDataNotSelected
:
{},
handledData
:
{},
handledData
:
{},
legendData
:
[],
legendData
:
[],
seriesData
:
{},
seriesData
:
{},
...
@@ -68,23 +69,37 @@ export default {
...
@@ -68,23 +69,37 @@ export default {
mounted
()
{},
mounted
()
{},
methods
:
{
methods
:
{
handlePieData
(
pieData
)
{
handlePieData
(
pieData
)
{
this
.
legendData
=
pieData
.
map
(
item
=>
{
let
count
=
0
,
legendDataNotSelected
=
{},
legendData
=
[],
seriesData
=
[];
return
item
.
name
pieData
.
forEach
(
(
item
,
i
)
=>
{
})
if
(
!
pieData
[
i
].
value
)
{
this
.
seriesData
=
pieData
.
map
(
item
=>
{
legendDataNotSelected
[
pieData
[
i
].
name
]
=
false
return
{
name
:
item
.
name
,
value
:
item
.
value
}
}
})
legendData
.
push
(
item
.
name
);
let
count
=
0
seriesData
.
push
({
name
:
item
.
name
,
value
:
item
.
value
});
pieData
.
forEach
(
item
=>
{
count
+=
item
.
value
;
count
+=
item
.
value
;
})
})
this
.
legendDataNotSelected
=
legendDataNotSelected
;
this
.
legendData
=
legendData
;
this
.
seriesData
=
seriesData
;
this
.
count
=
count
;
this
.
count
=
count
;
// this.legendData = pieData.map( item => {
// return item.name
// })
// this.seriesData = pieData.map( item => {
// return { name: item.name, value: item.value}
// })
// let count = 0
// pieData.forEach( item => {
// count += item.value;
// })
// this.count = count;
},
},
// 绘制图表
// 绘制图表
drawPie
()
{
drawPie
()
{
let
chartPie
=
vm
.
$echarts
.
init
(
document
.
getElementById
(
vm
.
pieId
));
let
chartPie
=
vm
.
$echarts
.
init
(
document
.
getElementById
(
vm
.
pieId
));
let
options
=
{
let
options
=
{
color
:
echartColors
,
//
color: echartColors,
title
:
{
title
:
{
text
:
"总人数: "
+
vm
.
count
,
text
:
"总人数: "
+
vm
.
count
,
top
:
'10%'
,
top
:
'10%'
,
...
@@ -111,6 +126,7 @@ export default {
...
@@ -111,6 +126,7 @@ export default {
top: '20%',
top: '20%',
left: '60%',
left: '60%',
bottom: 20,
bottom: 20,
selected: this.legendDataNotSelected,
data: vm.legendData, // ["
优秀证书
", "
及格证书
", "
未获证
"],
data: vm.legendData, // ["
优秀证书
", "
及格证书
", "
未获证
"],
textStyle: {
textStyle: {
fontSize: 12,
fontSize: 12,
...
@@ -152,7 +168,7 @@ export default {
...
@@ -152,7 +168,7 @@ export default {
let
item
=
this
.
dataList
.
find
(
item
=>
{
let
item
=
this
.
dataList
.
find
(
item
=>
{
return
item
.
name
===
name
;
return
item
.
name
===
name
;
});
});
return
(
item
&&
item
.
value
)
||
""
;
return
(
item
&&
item
.
value
)
||
0
;
}
}
}
}
};
};
...
...
components/bussiness/charts/chart-pie-title.vue
浏览文件 @
d4ce4531
...
@@ -19,17 +19,17 @@ export default {
...
@@ -19,17 +19,17 @@ export default {
pieData
:
{
pieData
:
{
type
:
Array
,
type
:
Array
,
default
:
()
=>
[
default
:
()
=>
[
{
value
:
335
,
name
:
"优秀证书"
},
{
value
:
0
,
name
:
"优秀证书"
},
{
value
:
31
0
,
name
:
"及格证书"
},
{
value
:
0
,
name
:
"及格证书"
},
{
value
:
234
,
name
:
"未获证"
}
{
value
:
0
,
name
:
"未获证"
}
]
]
},
},
dataList
:
{
dataList
:
{
type
:
Array
,
type
:
Array
,
default
:
()
=>
[
default
:
()
=>
[
{
value
:
335
,
name
:
"优秀证书"
},
{
value
:
0
,
name
:
"优秀证书"
},
{
value
:
31
0
,
name
:
"及格证书"
},
{
value
:
0
,
name
:
"及格证书"
},
{
value
:
234
,
name
:
"未获证"
}
{
value
:
0
,
name
:
"未获证"
}
]
]
},
},
},
},
...
@@ -38,6 +38,7 @@ export default {
...
@@ -38,6 +38,7 @@ export default {
chartWidth
:
'320px'
,
chartWidth
:
'320px'
,
pieId
:
"titlePieId"
,
pieId
:
"titlePieId"
,
chartHeight
:
"1000px"
,
chartHeight
:
"1000px"
,
legendDataNotSelected
:
{},
handledData
:
{},
handledData
:
{},
legendData
:
[],
legendData
:
[],
seriesData
:
{},
seriesData
:
{},
...
@@ -74,23 +75,37 @@ export default {
...
@@ -74,23 +75,37 @@ export default {
mounted
()
{},
mounted
()
{},
methods
:
{
methods
:
{
handlePieData
(
pieData
)
{
handlePieData
(
pieData
)
{
this
.
legendData
=
pieData
.
map
(
item
=>
{
let
count
=
0
,
legendDataNotSelected
=
{},
legendData
=
[],
seriesData
=
[];
return
item
.
name
;
pieData
.
forEach
(
(
item
,
i
)
=>
{
});
if
(
!
pieData
[
i
].
value
)
{
this
.
seriesData
=
pieData
.
map
(
item
=>
{
legendDataNotSelected
[
pieData
[
i
].
name
]
=
false
return
{
name
:
item
.
name
,
value
:
item
.
value
};
}
});
legendData
.
push
(
item
.
name
);
let
count
=
0
seriesData
.
push
({
name
:
item
.
name
,
value
:
item
.
value
});
pieData
.
forEach
(
item
=>
{
count
+=
item
.
value
;
count
+=
item
.
value
;
})
})
this
.
legendDataNotSelected
=
legendDataNotSelected
;
this
.
legendData
=
legendData
;
this
.
seriesData
=
seriesData
;
this
.
count
=
count
;
this
.
count
=
count
;
// this.legendData = pieData.map(item => {
// return item.name;
// });
// this.seriesData = pieData.map(item => {
// return { name: item.name, value: item.value };
// });
// let count = 0
// pieData.forEach( item => {
// count += item.value;
// })
// this.count = count;
},
},
// 绘制图表
// 绘制图表
drawPie
()
{
drawPie
()
{
let
chartPie
=
vm
.
$echarts
.
init
(
document
.
getElementById
(
vm
.
pieId
));
let
chartPie
=
vm
.
$echarts
.
init
(
document
.
getElementById
(
vm
.
pieId
));
let
options
=
{
let
options
=
{
color
:
echartColors
,
//
color: echartColors,
title
:
{
title
:
{
text
:
"总人数: "
+
vm
.
count
,
text
:
"总人数: "
+
vm
.
count
,
top
:
'10%'
,
top
:
'10%'
,
...
@@ -118,6 +133,7 @@ export default {
...
@@ -118,6 +133,7 @@ export default {
top: '20%',
top: '20%',
left: "
60
%
",
left: "
60
%
",
bottom: 20,
bottom: 20,
selected: this.legendDataNotSelected,
data: vm.legendData, // ["
优秀证书
", "
及格证书
", "
未获证
"],
data: vm.legendData, // ["
优秀证书
", "
及格证书
", "
未获证
"],
textStyle: {
textStyle: {
fontSize: 12,
fontSize: 12,
...
@@ -159,7 +175,7 @@ export default {
...
@@ -159,7 +175,7 @@ export default {
let item = this.dataList.find(item => {
let item = this.dataList.find(item => {
return item.name === name;
return item.name === name;
});
});
return (item && item.value) ||
""
;
return (item && item.value) ||
0
;
}
}
}
}
};
};
...
...
components/bussiness/charts/chart-pie.vue
浏览文件 @
d4ce4531
...
@@ -45,6 +45,7 @@ export default {
...
@@ -45,6 +45,7 @@ export default {
return
{
return
{
chartHeight
:
"1000px"
,
chartHeight
:
"1000px"
,
handledData
:
{},
handledData
:
{},
legendDataNotSelected
:
{},
legendData
:
[],
legendData
:
[],
seriesData
:
{},
seriesData
:
{},
isShow
:
true
isShow
:
true
...
@@ -78,12 +79,23 @@ export default {
...
@@ -78,12 +79,23 @@ export default {
},
},
methods
:
{
methods
:
{
handlePieData
(
pieData
)
{
handlePieData
(
pieData
)
{
this
.
legendData
=
pieData
.
map
(
item
=>
{
let
legendDataNotSelected
=
{},
legendData
=
[],
seriesData
=
[];
return
item
.
certName
pieData
.
forEach
(
(
item
,
i
)
=>
{
})
if
(
!
pieData
[
i
].
doneCount
)
{
this
.
seriesData
=
pieData
.
map
(
item
=>
{
legendDataNotSelected
[
pieData
[
i
].
certName
]
=
false
return
{
name
:
item
.
certName
,
value
:
item
.
doneCount
}
}
legendData
.
push
(
item
.
certName
);
seriesData
.
push
({
name
:
item
.
certName
,
value
:
item
.
doneCount
});
})
})
this
.
legendDataNotSelected
=
legendDataNotSelected
;
this
.
legendData
=
legendData
;
this
.
seriesData
=
seriesData
;
// this.legendData = pieData.map( item => {
// return item.certName
// })
// this.seriesData = pieData.map( item => {
// return { name: item.certName, value: item.doneCount}
// })
},
},
// 绘制图表
// 绘制图表
drawPie
()
{
drawPie
()
{
...
@@ -91,7 +103,7 @@ export default {
...
@@ -91,7 +103,7 @@ export default {
chartPie
=
vm
.
$echarts
.
init
(
document
.
getElementById
(
vm
.
id
));
chartPie
=
vm
.
$echarts
.
init
(
document
.
getElementById
(
vm
.
id
));
}
}
options
=
{
options
=
{
color
:
echartColors
,
//
color: echartColors,
tooltip
:
{
tooltip
:
{
trigger
:
"item"
,
trigger
:
"item"
,
// formatter: "{a}
<
br
/>
{
b
}
:
{
c
}
({
d
}
%
)
"
// formatter: "{a}
<
br
/>
{
b
}
:
{
c
}
({
d
}
%
)
"
...
@@ -102,9 +114,10 @@ export default {
...
@@ -102,9 +114,10 @@ export default {
type: "
scroll
",
type: "
scroll
",
orient: "
vertical
",
orient: "
vertical
",
// orient:'horizontal',
// orient:'horizontal',
top: '
30
%',
top: '
25
%',
left: '60%',
left: '60%',
bottom: 20,
bottom: 20,
selected: this.legendDataNotSelected,
data: vm.legendData, // ["
优秀证书
", "
及格证书
", "
未获证
"],
data: vm.legendData, // ["
优秀证书
", "
及格证书
", "
未获证
"],
textStyle: {
textStyle: {
fontSize: 12,
fontSize: 12,
...
@@ -145,7 +158,7 @@ export default {
...
@@ -145,7 +158,7 @@ export default {
let item = this.pieData.find(item => {
let item = this.pieData.find(item => {
return item.certName === name;
return item.certName === name;
});
});
return (item && item.doneCount) ||
""
;
return (item && item.doneCount) ||
0
;
}
}
}
}
};
};
...
...
components/bussiness/course-times-list.vue
浏览文件 @
d4ce4531
...
@@ -6,17 +6,22 @@
...
@@ -6,17 +6,22 @@
<li>
课程时长
</li>
<li>
课程时长
</li>
<li>
人均学习时长
</li>
<li>
人均学习时长
</li>
</ul>
</ul>
<ul
class=
"list"
>
<ul
v-if=
"dataList.length"
class=
"list"
>
<li
v-for=
"(item, index) in dataList"
:key=
"index"
>
<li
v-for=
"(item, index) in dataList"
:key=
"index"
>
<span>
{{
item
.
courseName
|
shortName
}}
</span>
<span>
{{
item
.
courseName
|
shortName
}}
</span>
<span>
{{
item
.
courseTime
|
convert
}}
</span>
<span>
{{
item
.
courseTime
|
convert
}}
</span>
<span>
{{
item
.
averageTime
|
convert
}}
</span>
<span>
{{
item
.
averageTime
|
convert
}}
</span>
</li>
</li>
</ul>
</ul>
<NoContent
v-show=
"!dataList.length"
></NoContent>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
NoContent
from
"@/components/bussiness/no-content"
;
export
default
{
export
default
{
components
:
{
NoContent
},
props
:
{
props
:
{
dataList
:
{
dataList
:
{
type
:
Array
,
type
:
Array
,
...
...
components/bussiness/exam-list.vue
浏览文件 @
d4ce4531
...
@@ -5,16 +5,21 @@
...
@@ -5,16 +5,21 @@
<li>
考试名
</li>
<li>
考试名
</li>
<li>
参与通过率
</li>
<li>
参与通过率
</li>
</ul>
</ul>
<ul
class=
"list"
>
<ul
v-if=
"dataList.length"
class=
"list"
>
<li
v-for=
"(item, index) in dataList"
:key=
"index"
>
<li
v-for=
"(item, index) in dataList"
:key=
"index"
>
<span>
{{
item
.
examName
|
shortName
}}
</span>
<span>
{{
item
.
examName
|
shortName
}}
</span>
<span>
{{
(
item
.
joinRate
*
100
).
toFixed
(
1
)
}}
%
</span>
<span>
{{
(
item
.
joinRate
*
100
).
toFixed
(
1
)
}}
%
</span>
</li>
</li>
</ul>
</ul>
<NoContent
v-show=
"!dataList.length"
></NoContent>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
NoContent
from
"@/components/bussiness/no-content"
;
export
default
{
export
default
{
components
:
{
NoContent
},
props
:
{
props
:
{
dataList
:
{
dataList
:
{
type
:
Array
,
type
:
Array
,
...
...
components/bussiness/exam-score-list.vue
浏览文件 @
d4ce4531
...
@@ -6,19 +6,22 @@
...
@@ -6,19 +6,22 @@
<li>
考试分数(分)
</li>
<li>
考试分数(分)
</li>
<li>
考试人数(个)
</li>
<li>
考试人数(个)
</li>
</ul>
</ul>
<ul
class=
"list"
>
<ul
v-if=
"dataList.length"
class=
"list"
>
<li
v-for=
"(item, index) in dataList"
:key=
"index"
>
<li
v-for=
"(item, index) in dataList"
:key=
"index"
>
<span>
{{
item
.
timesStr
}}
</span>
<span>
{{
item
.
timesStr
}}
</span>
<span>
{{
item
.
count
}}
</span>
<span>
{{
item
.
count
}}
</span>
</li>
</li>
</ul>
</ul>
<NoContent
v-show=
"!dataList.length"
></NoContent>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
TipsInfo
from
'@/components/bussiness/tips-info'
import
TipsInfo
from
'@/components/bussiness/tips-info'
import
NoContent
from
"@/components/bussiness/no-content"
;
export
default
{
export
default
{
components
:
{
components
:
{
TipsInfo
TipsInfo
,
NoContent
},
},
props
:
{
props
:
{
dataList
:
{
dataList
:
{
...
...
components/bussiness/exam-times-list.vue
浏览文件 @
d4ce4531
...
@@ -6,19 +6,22 @@
...
@@ -6,19 +6,22 @@
<li>
考试次数(次)
</li>
<li>
考试次数(次)
</li>
<li>
考试人数(个)
</li>
<li>
考试人数(个)
</li>
</ul>
</ul>
<ul
class=
"list"
>
<ul
v-if=
"dataList.length"
class=
"list"
>
<li
v-for=
"(item, index) in dataList"
:key=
"index"
>
<li
v-for=
"(item, index) in dataList"
:key=
"index"
>
<span>
{{
item
.
times
}}
</span>
<span>
{{
item
.
times
}}
</span>
<span>
{{
item
.
count
}}
</span>
<span>
{{
item
.
count
}}
</span>
</li>
</li>
</ul>
</ul>
<NoContent
v-show=
"!dataList.length"
></NoContent>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
TipsInfo
from
'@/components/bussiness/tips-info'
import
TipsInfo
from
'@/components/bussiness/tips-info'
import
NoContent
from
"@/components/bussiness/no-content"
;
export
default
{
export
default
{
components
:
{
components
:
{
TipsInfo
TipsInfo
,
NoContent
},
},
props
:
{
props
:
{
dataList
:
{
dataList
:
{
...
...
components/bussiness/ranking-item-days.vue
浏览文件 @
d4ce4531
<!-- 完成天数排名组件 -->
<!-- 完成天数排名组件 -->
<
template
>
<
template
>
<ul
class=
"rank-item-days"
>
<div>
<ul
v-if=
"rankList.length"
class=
"rank-item-days"
>
<li
v-for=
"(item, index) in rankList"
:key=
"index"
>
<li
v-for=
"(item, index) in rankList"
:key=
"index"
>
<div
class=
"order"
>
<div
class=
"order"
>
<img
v-if=
"index === 0 || index === 1 || index === 2"
:src=
"getRankImgUrl(index)"
alt=
""
>
<img
v-if=
"index === 0 || index === 1 || index === 2"
:src=
"getRankImgUrl(index)"
alt=
""
>
...
@@ -16,9 +17,16 @@
...
@@ -16,9 +17,16 @@
</div>
</div>
</li>
</li>
</ul>
</ul>
<NoContent
v-show=
"!rankList.length"
></NoContent>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
NoContent
from
"@/components/bussiness/no-content"
;
export
default
{
export
default
{
components
:
{
NoContent
},
props
:
{
props
:
{
rankList
:
{
rankList
:
{
type
:
Array
,
type
:
Array
,
...
...
components/bussiness/ranking-item.vue
浏览文件 @
d4ce4531
<!-- 培训情况排名组件 -->
<!-- 培训情况排名组件 -->
<
template
>
<
template
>
<div>
<div>
<ul
class=
"rank-item"
>
<ul
v-if=
"rankList.length"
class=
"rank-item"
>
<li
v-for=
"(item, index) in rankList"
:key=
"index"
>
<li
v-for=
"(item, index) in rankList"
:key=
"index"
>
<div
class=
"order"
>
<div
class=
"order"
>
<img
v-if=
"index === 0 || index === 1 || index === 2"
:src=
"getRankImgUrl(index)"
alt
/>
<img
v-if=
"index === 0 || index === 1 || index === 2"
:src=
"getRankImgUrl(index)"
alt
/>
...
@@ -17,10 +17,15 @@
...
@@ -17,10 +17,15 @@
</div>
</div>
</li>
</li>
</ul>
</ul>
<NoContent
v-if=
"!rankList.length"
></NoContent>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
NoContent
from
"@/components/bussiness/no-content"
;
export
default
{
export
default
{
components
:
{
NoContent
},
props
:
{
props
:
{
rankList
:
{
rankList
:
{
type
:
Array
,
type
:
Array
,
...
...
pages/index.vue
浏览文件 @
d4ce4531
<
template
>
<
template
>
<section
class=
"container"
>
<section
class=
"container"
>
<CommonHeader
:title=
"projectInfo.projectName | shortName"
></CommonHeader>
<CommonHeader
:title=
"projectInfo.projectName | shortName"
></CommonHeader>
<CommonAreaSelect
<CommonAreaSelect
v-show=
"!isScroll"
@
areaClick=
"areaTabClick"
@
orgClick=
"orgTabClick"
:areaName=
"areaName"
:orgName=
"orgName"
:showArea=
"isShowArea"
:showOrg=
"isShowOrg"
>
v-show=
"!isScroll"
@
areaClick=
"areaTabClick"
@
orgClick=
"orgTabClick"
:areaName=
"areaName"
:orgName=
"orgName"
:showArea=
"isShowArea"
:showOrg=
"isShowOrg"
>
</CommonAreaSelect>
</CommonAreaSelect>
<CommonTaps
:needFixed=
"isScroll"
:projectInfo=
"projectInfo"
@
tabClicked=
"tabClicked"
></CommonTaps>
<CommonTaps
:needFixed=
"isScroll"
:projectInfo=
"projectInfo"
@
tabClicked=
"tabClicked"
></CommonTaps>
<!-- 总体概况 -->
<!-- 总体概况 -->
<div
v-show=
"isScroll"
class=
"pd-top-60"
></div>
<div
v-show=
"isScroll"
class=
"pd-top-60"
></div>
<article
v-show=
"cIndex === 0"
>
<article
v-show=
"cIndex === 0"
>
<CommonSwiperItem
<CommonSwiperItem
:isSingleOrg=
"isSingleOrg"
:percentData=
"allData.percentData ||
{}" :certFlag="projectInfo.certFlag" @tipsClick="tipsSwiperClick">
</CommonSwiperItem>
:isSingleOrg=
"isSingleOrg"
:percentData=
"allData.percentData ||
{}"
:certFlag="projectInfo.certFlag"
@tipsClick="tipsSwiperClick"
>
</CommonSwiperItem>
<div
v-show=
"!isSingleOrg"
>
<div
v-show=
"!isSingleOrg"
>
<CommonTitle
v-if=
"projectInfo.certFlag"
title=
"证书分布情况"
></CommonTitle>
<CommonTitle
v-if=
"projectInfo.certFlag"
title=
"证书分布情况"
></CommonTitle>
<ChartPie
v-if=
"projectInfo.certFlag"
:certFlag=
"projectInfo.certFlag"
id=
"certPieId2"
:pieData=
"(allData && allData.certData)"
></ChartPie>
<ChartPie
v-if=
"projectInfo.certFlag"
:certFlag=
"projectInfo.certFlag"
id=
"certPieId2"
:pieData=
"(allData && allData.certData)"
></ChartPie>
...
@@ -36,14 +24,7 @@
...
@@ -36,14 +24,7 @@
</div>
</div>
<div
v-show=
"isSingleOrg"
>
<div
v-show=
"isSingleOrg"
>
<CommonTitle
title=
"培训机构情况"
></CommonTitle>
<CommonTitle
title=
"培训机构情况"
></CommonTitle>
<OrgDoctorList
<OrgDoctorList
@
orgDoctorTabChange=
"orgDoctorTabChange"
:certUserList=
"orgDoctorTabData.certUserList"
:noCertUserList=
"orgDoctorTabData.noCertUserList"
:noJoinList=
"orgDoctorTabData.noJoinList"
:certFlag=
"projectInfo.certFlag"
:containOfficialFlag=
"projectInfo.containOfficialFlag"
></OrgDoctorList>
@
orgDoctorTabChange=
"orgDoctorTabChange"
:certUserList=
"orgDoctorTabData.certUserList"
:noCertUserList=
"orgDoctorTabData.noCertUserList"
:noJoinList=
"orgDoctorTabData.noJoinList"
:certFlag=
"projectInfo.certFlag"
:containOfficialFlag=
"projectInfo.containOfficialFlag"
></OrgDoctorList>
</div>
</div>
<CommonBottomInfo></CommonBottomInfo>
<CommonBottomInfo></CommonBottomInfo>
</article>
</article>
...
@@ -79,8 +60,8 @@
...
@@ -79,8 +60,8 @@
<ShowAll
v-show=
"generalExamData && generalExamData.examTimesList.length > 5"
@
action=
"gotoPage('/examtimes')"
class=
"mt-10"
></ShowAll>
<ShowAll
v-show=
"generalExamData && generalExamData.examTimesList.length > 5"
@
action=
"gotoPage('/examtimes')"
class=
"mt-10"
></ShowAll>
<CommonSplitLine></CommonSplitLine>
<CommonSplitLine></CommonSplitLine>
<CommonTitle
title=
"完成项目考试分数情况"
></CommonTitle>
<CommonTitle
title=
"完成项目考试分数情况"
></CommonTitle>
<ChartColumnVerticalScore
id=
"chartCourseScoreId"
:dataList=
"generalExamData.examScoreList
"
></ChartColumnVerticalScore>
<ChartColumnVerticalScore
id=
"chartCourseScoreId"
:dataList=
"(generalExamData.examScoreList || []).slice(0, 5)
"
></ChartColumnVerticalScore>
<ShowAll
v-show=
"generalExamData.examScoreList
& generalExamData.examScoreList.length > 5"
@
action=
"gotoPage('/examscore')"
class=
"mt-10"
></ShowAll>
<ShowAll
v-show=
"generalExamData.examScoreList &
& generalExamData.examScoreList.length > 5"
@
action=
"gotoPage('/examscore')"
class=
"mt-10"
></ShowAll>
<CommonSplitLine></CommonSplitLine>
<CommonSplitLine></CommonSplitLine>
</div>
</div>
<CommonTitle
title=
"考试列表"
></CommonTitle>
<CommonTitle
title=
"考试列表"
></CommonTitle>
...
@@ -96,28 +77,27 @@
...
@@ -96,28 +77,27 @@
<ChartColumnVerticalTC
:dataList=
"studyEffect.educationEffectList || []"
id=
"chartColumnVerticalTC"
></ChartColumnVerticalTC>
<ChartColumnVerticalTC
:dataList=
"studyEffect.educationEffectList || []"
id=
"chartColumnVerticalTC"
></ChartColumnVerticalTC>
<CommonSplitLine
style=
"margin-top: 10px;"
></CommonSplitLine>
<CommonSplitLine
style=
"margin-top: 10px;"
></CommonSplitLine>
<CommonTitle
title=
"培训前后知识点掌握情况"
></CommonTitle>
<CommonTitle
title=
"培训前后知识点掌握情况"
></CommonTitle>
<ChartColumnHorizontalTC
:dataList=
"studyEffect.knowledgeEffectList || []
"
id=
"ChartColumnVerticalTC2"
></ChartColumnHorizontalTC>
<ChartColumnHorizontalTC
:dataList=
"(studyEffect.knowledgeEffectList || []).slice(0, 5)
"
id=
"ChartColumnVerticalTC2"
></ChartColumnHorizontalTC>
<ShowAll
v-show=
"studyEffect.knowledgeEffectList && studyEffect.knowledgeEffectList.length > 5"
@
action=
"gotoPage('/klgpoint')"
class=
"mt-10"
></ShowAll>
<ShowAll
v-show=
"studyEffect.knowledgeEffectList && studyEffect.knowledgeEffectList.length > 5"
@
action=
"gotoPage('/klgpoint')"
class=
"mt-10"
></ShowAll>
<CommonBottomInfo></CommonBottomInfo>
<CommonBottomInfo></CommonBottomInfo>
</article>
</article>
<PicaArea
<PicaArea
v-show=
"isShowArea"
@
confirm=
"areaConfirm"
@
cancel=
"areaCancel"
:projectId=
"projectId"
:token=
"token"
></PicaArea>
v-show=
"isShowArea"
@
confirm=
"areaConfirm"
@
cancel=
"areaCancel"
:projectId=
"projectId"
:token=
"token"
></PicaArea>
<PicaOrg
v-show=
"isShowOrg"
@
confirm=
"orgConfirm"
@
cancel=
"orgCancel"
></PicaOrg>
<PicaOrg
v-show=
"isShowOrg"
@
confirm=
"orgConfirm"
@
cancel=
"orgCancel"
></PicaOrg>
<CommonLoading
v-show=
"false"
></CommonLoading>
<CommonLoading
v-show=
"false"
></CommonLoading>
<PopTips
:tipsContent=
"tipsContent"
@
clickTips=
"clickTips"
v-show=
"isShowTips"
></PopTips>
<PopTips
:tipsContent=
"tipsContent"
@
clickTips=
"clickTips"
v-show=
"isShowTips"
></PopTips>
</section>
</section>
</
template
>
</
template
>
<
script
>
<
script
>
const
cookies
=
require
(
"cookie-universal"
)();
const
cookies
=
require
(
"cookie-universal"
)();
import
{
goPageByNative
}
from
"@/utils"
;
import
{
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
goPageByNative
}
from
"@/utils"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
import
{
import
{
getProvinceList
,
getProvinceList
,
getUserAnalysis
,
getUserAnalysis
,
...
@@ -160,7 +140,9 @@ import OrgDoctorList from "@/components/bussiness/org-doctor-list";
...
@@ -160,7 +140,9 @@ import OrgDoctorList from "@/components/bussiness/org-doctor-list";
import
ExamList
from
"@/components/bussiness/exam-list"
;
import
ExamList
from
"@/components/bussiness/exam-list"
;
import
PopTips
from
"@/components/bussiness/pop-tips"
;
import
PopTips
from
"@/components/bussiness/pop-tips"
;
import
CommonCard
from
"@/components/common/common-card"
;
import
CommonCard
from
"@/components/common/common-card"
;
import
{
getGeneralData
}
from
"@/service/index"
;
import
{
getGeneralData
}
from
"@/service/index"
;
let
timeOutId
=
null
;
let
timeOutId
=
null
;
export
default
{
export
default
{
components
:
{
components
:
{
...
@@ -209,8 +191,7 @@ export default {
...
@@ -209,8 +191,7 @@ export default {
cIndex
:
0
,
cIndex
:
0
,
colors
:
[
"#39AF9A"
,
"#FF9A4B"
,
"#abb7bb"
,
"#76d2d2"
],
colors
:
[
"#39AF9A"
,
"#FF9A4B"
,
"#abb7bb"
,
"#76d2d2"
],
needBG
:
true
,
needBG
:
true
,
effectCardList
:
[
effectCardList
:
[{
{
count
:
65
,
count
:
65
,
unitName
:
"%"
,
unitName
:
"%"
,
description
:
"培训前正确率"
description
:
"培训前正确率"
...
@@ -225,8 +206,7 @@ export default {
...
@@ -225,8 +206,7 @@ export default {
studyRankList
:
[],
studyRankList
:
[],
costRankList
:
[],
costRankList
:
[],
projectId
:
""
,
projectId
:
""
,
token
:
token
:
"2DEF4802111943C49A98A1429095A876"
||
"2DEF4802111943C49A98A1429095A876"
||
"79A005DB585C45C389ED1DD0C76E3633"
||
"79A005DB585C45C389ED1DD0C76E3633"
||
"A220943B006347799F277CC524EBB662"
,
"A220943B006347799F277CC524EBB662"
,
isOrgStat
:
false
,
isOrgStat
:
false
,
...
@@ -253,8 +233,14 @@ export default {
...
@@ -253,8 +233,14 @@ export default {
},
},
echartsData
:
null
,
echartsData
:
null
,
analysisData
:
{
analysisData
:
{
eduList
:
{
join
:
[],
finish
:
[]},
eduList
:
{
titleList
:
{
join
:
[],
finish
:
[]},
join
:
[],
finish
:
[]
},
titleList
:
{
join
:
[],
finish
:
[]
},
},
},
analysisEduData
:
[],
analysisEduData
:
[],
analysisTitleData
:
[],
analysisTitleData
:
[],
...
@@ -398,7 +384,9 @@ export default {
...
@@ -398,7 +384,9 @@ export default {
// 查询用户信息和权限
// 查询用户信息和权限
getProjectInfo
(
params
)
{
getProjectInfo
(
params
)
{
getProjectInfo
({
projectId
:
this
.
projectId
}).
then
(
res
=>
{
getProjectInfo
({
projectId
:
this
.
projectId
}).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
if
(
res
.
code
===
"000000"
)
{
this
.
projectInfo
=
res
.
data
;
this
.
projectInfo
=
res
.
data
;
getProvinceList
(
params
).
then
(
res
=>
{
getProvinceList
(
params
).
then
(
res
=>
{
...
@@ -488,11 +476,11 @@ export default {
...
@@ -488,11 +476,11 @@ export default {
// 上面三个图标数据
// 上面三个图标数据
getGeneralExam
(
queryData
).
then
(
res
=>
{
getGeneralExam
(
queryData
).
then
(
res
=>
{
if
(
res
.
code
===
"000000"
)
{
if
(
res
.
code
===
"000000"
)
{
debugger
this
.
generalExamData
=
res
.
data
;
this
.
generalExamData
=
res
.
data
;
this
.
setExamTimesList
(
res
.
data
.
examTimesList
)
this
.
setExamTimesList
(
res
.
data
.
examTimesList
)
this
.
setExamScoreList
(
res
.
data
.
examScoreList
)
this
.
setExamScoreList
(
res
.
data
.
examScoreList
)
this
.
examCardList
=
[
this
.
examCardList
=
[{
{
count
:
res
.
data
.
afterExamCount
,
count
:
res
.
data
.
afterExamCount
,
unitName
:
"门"
,
unitName
:
"门"
,
description
:
"正式考试数"
description
:
"正式考试数"
...
@@ -532,7 +520,7 @@ export default {
...
@@ -532,7 +520,7 @@ export default {
let
viewportHeight
=
this
.
getViewportHeight
();
let
viewportHeight
=
this
.
getViewportHeight
();
let
courseLength
=
res
.
data
.
pCourseList
.
length
;
let
courseLength
=
res
.
data
.
pCourseList
.
length
;
// 上面的高度 468 每一条数据的高度 60
// 上面的高度 468 每一条数据的高度 60
if
(
viewportHeight
>
(
468
+
(
courseLength
-
1
)
*
60
))
{
if
(
viewportHeight
>
(
468
+
(
courseLength
-
1
)
*
60
))
{
this
.
needFixedBottomInfo
=
true
;
this
.
needFixedBottomInfo
=
true
;
}
}
}
}
...
@@ -569,7 +557,7 @@ export default {
...
@@ -569,7 +557,7 @@ export default {
this
.
getHospitalsCNT
(
this
.
CNTParams
);
this
.
getHospitalsCNT
(
this
.
CNTParams
);
this
.
isShowArea
=
false
;
this
.
isShowArea
=
false
;
this
.
setAreaDegree
(
selData
.
areaDegree
);
this
.
setAreaDegree
(
selData
.
areaDegree
);
if
(
selData
.
townName
||
selData
.
countyName
||
selData
.
cityName
||
selData
.
provinceName
)
{
if
(
selData
.
townName
||
selData
.
countyName
||
selData
.
cityName
||
selData
.
provinceName
)
{
this
.
areaName
=
this
.
shortName
(
selData
.
townName
||
selData
.
countyName
||
selData
.
cityName
||
selData
.
provinceName
,
6
)
this
.
areaName
=
this
.
shortName
(
selData
.
townName
||
selData
.
countyName
||
selData
.
cityName
||
selData
.
provinceName
,
6
)
}
}
},
},
...
@@ -595,7 +583,7 @@ export default {
...
@@ -595,7 +583,7 @@ export default {
this
.
isShowOrg
=
false
;
this
.
isShowOrg
=
false
;
this
.
orgName
=
this
.
shortName
(
hospitalNames
[
0
]
||
'全部机构'
,
6
);
this
.
orgName
=
this
.
shortName
(
hospitalNames
[
0
]
||
'全部机构'
,
6
);
this
.
queryGDParams
.
hospitalIdList
=
hospitalIds
;
this
.
queryGDParams
.
hospitalIdList
=
hospitalIds
;
if
(
hospitalIds
.
length
==
0
)
{
if
(
hospitalIds
.
length
==
0
)
{
this
.
getHospitalsCNT
(
this
.
CNTParams
);
this
.
getHospitalsCNT
(
this
.
CNTParams
);
return
;
return
;
}
}
...
@@ -620,7 +608,7 @@ export default {
...
@@ -620,7 +608,7 @@ export default {
// 弹出选择区域控件
// 弹出选择区域控件
areaTabClick
()
{
areaTabClick
()
{
if
(
this
.
isShowOrg
)
{
if
(
this
.
isShowOrg
)
{
this
.
isShowOrg
=
false
;
this
.
isShowOrg
=
false
;
}
}
this
.
isShowArea
=
!
this
.
isShowArea
;
this
.
isShowArea
=
!
this
.
isShowArea
;
...
@@ -628,11 +616,11 @@ export default {
...
@@ -628,11 +616,11 @@ export default {
// 弹出选择机构控件
// 弹出选择机构控件
orgTabClick
()
{
orgTabClick
()
{
if
(
this
.
areaDegree
!==
3
&&
this
.
areaDegree
!==
4
)
{
if
(
this
.
areaDegree
!==
3
&&
this
.
areaDegree
!==
4
)
{
this
.
$toast
(
'选择区/县后才可选择机构'
);
this
.
$toast
(
'选择区/县后才可选择机构'
);
return
;
return
;
}
}
if
(
this
.
orgList
.
length
===
0
)
{
if
(
this
.
orgList
.
length
===
0
)
{
this
.
$toast
(
'此区域下无机构'
);
this
.
$toast
(
'此区域下无机构'
);
return
;
return
;
}
}
...
@@ -643,7 +631,7 @@ export default {
...
@@ -643,7 +631,7 @@ export default {
// 通用跳转页面
// 通用跳转页面
gotoPage
(
subUrl
,
hasCert
)
{
gotoPage
(
subUrl
,
hasCert
)
{
let
subUrlAndParams
=
`
${
subUrl
}
?token=
${
this
.
token
}
&projectId=
${
this
.
queryGDParams
.
projectId
}
®ionId=
${
this
.
queryGDParams
.
regionId
}
&hospitalIdList=
${
this
.
queryGDParams
.
hospitalIdList
.
join
(
','
)}
`
let
subUrlAndParams
=
`
${
subUrl
}
?token=
${
this
.
token
}
&projectId=
${
this
.
queryGDParams
.
projectId
}
®ionId=
${
this
.
queryGDParams
.
regionId
}
&hospitalIdList=
${
this
.
queryGDParams
.
hospitalIdList
.
join
(
','
)}
`
if
(
hasCert
)
{
if
(
hasCert
)
{
subUrlAndParams
+=
`&certFlag=
${
this
.
projectInfo
.
certFlag
}
`
subUrlAndParams
+=
`&certFlag=
${
this
.
projectInfo
.
certFlag
}
`
}
}
if
(
this
.
$rocNative
.
isWeb
)
{
if
(
this
.
$rocNative
.
isWeb
)
{
...
@@ -727,24 +715,30 @@ export default {
...
@@ -727,24 +715,30 @@ export default {
.container {
.container {
margin: 0 auto;
margin: 0 auto;
font-size: 17px;
font-size: 17px;
h1 {
h1 {
font-size: 36px;
font-size: 36px;
text-align: center;
text-align: center;
}
}
.m1 {
.m1 {
width: 100%;
width: 100%;
> div {
>div {
width: 100%;
width: 100%;
}
}
}
}
.mt-10 {
.mt-10 {
margin-top: 0;
margin-top: 0;
}
}
.fixed-bottom-info {
.fixed-bottom-info {
position: fixed;
position: fixed;
bottom: 0;
bottom: 0;
left: 0;
left: 0;
}
}
.pd-top-60 {
.pd-top-60 {
padding-top: 40px;
padding-top: 40px;
}
}
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录