提交 0214b3bb 编写于 作者: guangjun.yang's avatar guangjun.yang

提示信息等

上级 a43fcd3e
<!-- 课程列表组件 -->
<template>
<div class="corse-times-list">
<TipsInfo></TipsInfo>
<ul class="title">
<li>课程名</li>
<li>课程时长</li>
......@@ -16,14 +17,17 @@
</div>
</template>
<script>
import TipsInfo from '@/components/bussiness/tips-info'
export default {
components: {
TipsInfo
},
props: {
dataList: {
type: Array,
default: () => []
}
}
},
};
</script>
<style scoped lang="scss">
......
<!-- 完成项目考试分数情况 -->
<template>
<div class="exam-times-wrapper">
<TipsInfo></TipsInfo>
<ul class="title">
<li>考试分数(分)</li>
<li>考试人数(个)</li>
......@@ -14,7 +15,11 @@
</div>
</template>
<script>
import TipsInfo from '@/components/bussiness/tips-info'
export default {
components: {
TipsInfo
},
props: {
dataList: {
type: Array,
......
<!-- 完成项目考试分数情况 -->
<template>
<div class="exam-times-wrapper">
<TipsInfo></TipsInfo>
<ul class="title">
<li>考试次数(次)</li>
<li>考试人数(个)</li>
......@@ -14,14 +15,17 @@
</div>
</template>
<script>
import TipsInfo from '@/components/bussiness/tips-info'
export default {
components: {
TipsInfo
},
props: {
dataList: {
type: Array,
default: () => []
}
},
};
</script>
<style scoped lang="scss">
......
<template>
<div class="pop-notice-wrapper">
<div class="mask"></div>
<div class="content">
<div class="top">
<!-- <span class="title">{{noticeData.noticeTitle | shortName(20)}}</span> -->
<span class="body">
<!-- 该项目已于2019年12月1日
<span class="b">停止发放项目证书</span>,但仍可以继续学习该项目 -->
{{ tipsContent }}
</span>
</div>
<div class="line"></div>
<div class="bottom">
<span @click="clickTips">我知道了</span>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {};
},
props: {
popText: {
type: String,
default: ""
},
btnText: {
type: String,
default: ""
},
tipsContent: {
type: String,
default: "是已获证人数/应参与人数*100%"
}
},
filters: {
shortContent(value, maxLength = 18) {
if(value && value.length > maxLength) {
return value.substr(0, maxLength) + '...'
}
}
},
methods: {
clickTips() {
this.$emit("clickTips");
}
}
};
</script>
<style lang="scss" scoped>
.pop-notice-wrapper {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
z-index: 110;
font-size: 20px;
.mask {
position: absolute;
background: rgba(0, 0, 0, 0.5);
width: 100%;
height: 100%;
z-index: 111;
}
.content {
position: absolute;
left: 50%;
top: 50%;
z-index: 112;
width: 300px;
// height: 185px;
margin: -150px 0 0 -150px;
border-radius: 7px;
text-align: center;
background: #fff;
.top {
padding: 30px;
.title {
display: inline-block;
font-size: 18px;
line-height: 18px;
font-weight: 400;
color: #333333;
}
.body {
text-align: left;
display: inline-block;
// margin: 14px 0;
font-size: 14px;
height: 21px;
line-height: 21px;
font-weight: 400;
color: #676869;
.b {
font-weight: 700;
}
}
}
.line {
width: 300px;
height: 1px;
background: rgba(240, 241, 242, 1);
}
.bottom {
text-align: center;
font-size: 17px;
height: 50px;
line-height: 50px;
font-weight: 400;
span {
color: #449284;
}
}
}
}
</style>
<!-- 完成天数排名组件 -->
<template>
<ul class="rank-item">
<ul class="rank-item-days">
<li v-for="(item, index) in rankList" :key="index">
<div class="order">
<img v-if="index === 0 || index === 1 || index === 2" :src="getRankImgUrl(index)" alt="">
......@@ -30,19 +30,7 @@ export default {
props: {
rankList: {
type: Array,
default: () => [{
province: '福建省',
order: 1,
},{
province: '福建省',
order: 1,
},{
province: '福建省',
order: 1,
},{
province: '福建省',
order: 1,
},]
default: () => []
}
},
methods: {
......@@ -53,8 +41,9 @@ export default {
}
</script>
<style scoped lang="scss">
.rank-item {
margin: 20px 15px;
.rank-item-days {
// margin: 20px 15px;
margin: 0 15px;
li {
height: 78px;
display: flex;
......
......@@ -2,7 +2,7 @@
<template>
<div>
<ul class="rank-item">
<li v-for="(item, index) in studyRank" :key="index">
<li v-for="(item, index) in rankList" :key="index">
<div class="order">
<img v-if="index === 0 || index === 1 || index === 2" :src="getRankImgUrl(index)" alt />
<span v-else>{{index + 1}}</span>
......@@ -22,60 +22,19 @@
<script>
export default {
props: {
studyRank: {
rankList: {
type: Array,
default: () => [
{
subId: 10000,
subName: "福建省",
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
},
{
subId: 10000,
subName: "上海市",
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
},
{
subId: 10000,
subName: "浙江省",
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
},
{
subId: 10000,
subName: "江苏省",
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
},
{
subId: 10000,
subName: "安徽省",
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
}
]
}
},
watch: {
studyRank: {
handler(newValue, oldValue) {
return newValue;
},
deep: true
default: () => []
}
},
// watch: {
// studyRank: {
// handler(newValue, oldValue) {
// return newValue;
// },
// deep: true
// }
// },
methods: {
getRankImgUrl(index) {
return require(`../../assets/images/rank-${index + 1}.png`);
......
<template>
<div>
eeee
</div>
</template>
\ No newline at end of file
<template>
<div class="tips-info-wrapper">
<span>报表数据来源包括用户参加正式考试,不包含摸底考试</span>
</div>
</template>
<style lang="less" scoped>
.tips-info-wrapper {
height: 44px;
line-height: 44px;
font-size: 20px;
padding: 0 15px;
span {
display: inline-block;
width: 100%;
font-size: 13px;
font-weight: 400;
color: #676869;
border-bottom: 1px solid #F0F1F2;
}
}
</style>
\ No newline at end of file
<template>
<section :class="isFixNavbar ? 'nav-top fixed' : 'nav-top'" :style="'height:' + navHeight">
<div
class="nav-part"
:style="'background:' + bgColor + ';'
+ 'padding-top:' + paddingTop + ';border-bottom:' + borderStyle"
>
<div class="nav-title">
<span class="nav-back" @click="goBack">
<img v-show="isBlack" src="../../assets/images/left-arrow-black.png" alt="">
<img v-show="!isBlack" src="../../assets/images/left-arrow-black.png" alt="">
</span>
<span class="nav-title-title" v-show="bgColor!=='none'">{{title}}</span>
<span v-show="isShowShare" class="nav-share" @click="goShare">
<img
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/courses/Group17_hover%403x.png"
>
</span>
</div>
</div>
</section>
</template>
<script>
export default {
name: "common-navbar",
data() {
return {
navbarHeight: 28,
contentHeight: 35,
fontSize: 37.5,
content: "",
shareImageUrl:
"https://file.yunqueyi.com/logo.png?version=" + new Date().getTime()
};
},
props: {
bgColor: {
type: String,
default: ""
},
title: {
type: String,
default: "暂无数据"
},
isFixNavbar: {
//是否fix定位
type: Boolean,
default: false
},
burialPoint: {
default: "",
type: String
},
backMethod: {
type: String,
default: "native" // inner native
},
isShowShare: {
type: Boolean,
default: false
},
borderStyle: {
type: String,
default: "1px solid #e7e7e7"
},
isBlack: {
type: Boolean,
default: true
}
},
computed: {
navHeight() {
if (this.isFixNavbar) {
return 0;
} else {
return (this.navbarHeight + this.contentHeight) / this.fontSize + "rem";
}
},
paddingTop() {
return this.navbarHeight / this.fontSize + "rem";
}
},
mounted() {
let htmlDom = document.getElementsByTagName("html")[0].style.fontSize;
this.fontSize = htmlDom;
},
methods: {
//返回
goBack() {
rocNative.goBack();
},
//分享
goShare() {
let url = location.href,
_this = this;
rocNative.shareWechat({
type: 6,
shareId: 0,
shareUrl: 'shareUrl',
title1: "this.shareTitle1",
title2: "this.shareTitle2",
shareImageUrl: "https://file.yunqueyi.com/logo.png?version=" + new Date().getTime()
});
}
}
};
</script>
<style lang="scss" scoped>
.back {
position: absolute;
left: 0px;
top: 15px;
display: inline-block;
width: 50px;
height: 50px;
img {
padding: 10px;
width: 20px;
height: 20px;
}
}
.nav-top {
// height: 65px;
background: #fff;
color: #333;
position: relative;
z-index: 109;
.nav-back {
display: inline-block;
position: absolute;
left: 0px;
top: 0;
height: 25px;
width: 55px;
padding-left: 15px;
padding-right: 15px;
// -ms-transform: translate(180deg);
// -webkit-transform: (180deg);
// transform: rotate(180deg);
}
img {
display: block;
height: 25px;
width: 25px;
}
.nav-icon {
display: inline-block;
width: 50px;
height: 50px;
svg {
stroke: #000;
fill: #0000ff;
}
}
.nav-share {
position: absolute;
right: 16px;
top: 0;
height: 25px;
width: 25px;
}
.nav-title {
position: relative;
top: 10px;
left: 0;
display: inline-block;
width: 100%;
/* padding:0 33px;*/
height: 36px;
&-title {
height: 18px;
font-size: 18px;
font-weight: 700;
color: rgba(51, 51, 51, 1);
line-height: 26px;
}
}
.nav-part {
width: 100%;
font-size: 18px;
text-align: center;
padding: 0 0 10px 0;
/* height: 25px;*/
}
}
.nav-part {
position: fixed;
top: 0;
left: 0;
border-bottom: 1px solid #e7e7e7;
/* height: 25px;*/
}
</style>
\ No newline at end of file
<!-- Tabs组件 -->
<template>
<div class="common-header">
<span class="left" @click="back">
<img style="width:20px;height:20px;" src="../../assets/images/left-arrow-black.png" />
</span>
<span class="center">{{title}}</span>
<span v-show="needRightBtn" class="right" @click="back">
<!-- <img src="../../assets/images/left-array-black.png" /> -->
</span>
</div>
</template>
<script>
export default {
props: {
title: {
type: String,
default: "2019基础高血压管理"
},
needRightBtn: {
type: Boolean,
default: true
}
},
methods: {
back() {
if(this.$rocNative.isWeb) {
this.$router.back(-1);
} else {
this.$rocNative.goBack();
}
}
}
};
</script>
<style lang="scss" scoped>
.common-header {
display: flex;
margin-top: 45px;
width: 100%;
height: 90px;
line-height: 44px;
flex-direction: row nowrap;
align-content: center;
align-items: center;
text-align: center;
justify-content: center; /* 水平居中 */
font-size: 17px;
// span {
// display: block;
// }
.left {
width: 60px;
box-sizing: border-box;
text-align: left;
// padding-top: 10px;
padding-left: 15px;
height: 44px;
line-height: 44px;
font-size: 17px;
img {
font-size: 17px;
// display: inherit;
width: 20px;
height: 20px;
}
}
.center {
flex: 1;
font-size: 17px;
font-weight: 700;
color: #030303;
}
.right {
width: 60px;
}
img {
font-size: 17px;
// display: inherit;
width: 20px;
height: 20px;
}
}
</style>
<!-- Tabs组件 -->
<template>
<div class="common-header">
<span class="left" @click="back">
<img src="../../assets/images/left-arrow-black.png" />
<section :class="isFixNavbar ? 'nav-top fixed' : 'nav-top'" :style="'height:' + navHeight">
<div
class="nav-part"
:style="'background:' + bgColor + ';'
+ 'padding-top:' + paddingTop + ';border-bottom:' + borderStyle"
>
<div class="nav-title">
<span class="nav-back" @click="goBack">
<img v-show="isBlack" src="../../assets/images/left-arrow-black.png" alt="">
<img v-show="!isBlack" src="../../assets/images/left-arrow-black.png" alt="">
</span>
<span class="center">{{title}}</span>
<span v-show="needRightBtn" class="right" @click="back">
<!-- <img src="../../assets/images/left-array-black.png" /> -->
<span class="nav-title-title" v-show="bgColor!=='none'">{{title}}</span>
<span v-show="isShowShare" class="nav-share" @click="goShare">
<img
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/eagle_plan/courses/Group17_hover%403x.png"
>
</span>
</div>
</div>
</section>
</template>
<script>
export default {
name: "common-navbar",
data() {
return {
navbarHeight: 28,
contentHeight: 35,
fontSize: 37.5,
content: "",
shareImageUrl:
"https://file.yunqueyi.com/logo.png?version=" + new Date().getTime()
};
},
props: {
bgColor: {
type: String,
default: ""
},
title: {
type: String,
default: "2019基础高血压管理"
default: "暂无数据"
},
isFixNavbar: {
//是否fix定位
type: Boolean,
default: true
},
burialPoint: {
default: "",
type: String
},
backMethod: {
type: String,
default: "native" // inner native
},
isShowShare: {
type: Boolean,
default: false
},
borderStyle: {
type: String,
default: "0px solid #e7e7e7"
},
needRightBtn: {
isBlack: {
type: Boolean,
default: true
}
},
computed: {
navHeight() {
if (this.isFixNavbar) {
return '54px';
} else {
return (this.navbarHeight + this.contentHeight) / this.fontSize + "rem";
}
},
paddingTop() {
return this.navbarHeight / this.fontSize + "rem";
}
},
mounted() {
let htmlDom = document.getElementsByTagName("html")[0].style.fontSize;
this.fontSize = htmlDom;
},
methods: {
back() {
//返回
goBack() {
if(this.$rocNative.isWeb) {
this.$router.back(-1);
} else {
this.$rocNative.goBack();
}
// rocNative.goBack();
},
//分享
goShare() {
let url = location.href,
_this = this;
rocNative.shareWechat({
type: 6,
shareId: 0,
shareUrl: 'shareUrl',
title1: "this.shareTitle1",
title2: "this.shareTitle2",
shareImageUrl: "https://file.yunqueyi.com/logo.png?version=" + new Date().getTime()
});
}
}
};
</script>
<style lang="scss" scoped>
.common-header {
padding-top: 45px;
display: flex;
width: 100%;
height: 44px;
line-height: 44px;
flex-direction: row nowrap;
align-content: center;
align-items: center;
text-align: center;
justify-content: center; /* 水平居中 */
font-size: 17px;
span {
display: block;
.back {
position: absolute;
left: 0px;
top: 15px;
display: inline-block;
width: 50px;
height: 60px;
img {
padding: 10px;
width: 20px;
height: 20px;
}
.left {
box-sizing: border-box;
text-align: left;
// padding-top: 10px;
}
.nav-top {
height: 56px;
// margin-top: 20px;
padding-top: 20px;
background: #fff;
color: #333;
position: relative;
z-index: 109;
.nav-back {
display: inline-block;
position: absolute;
left: 0px;
top: 0;
height: 25px;
width: 55px;
padding-left: 15px;
// height: 44px;
// line-height: 44px;
width: 60px;
}
.center {
flex: 1;
font-size: 17px;
font-weight: 700;
color: #030303;
}
.right {
width: 60px;
padding-right: 15px;
// -ms-transform: translate(180deg);
// -webkit-transform: (180deg);
// transform: rotate(180deg);
}
img {
display: block;
padding-top: 2px;
height: 20px;
width: 20px;
}
.nav-icon {
display: inline-block;
width: 50px;
height: 50px;
svg {
stroke: #000;
fill: #0000ff;
}
}
.nav-share {
position: absolute;
right: 16px;
top: 0;
height: 20px;
width: 20px;
}
.nav-title {
position: relative;
top: 10px;
left: 0;
display: inline-block;
width: 100%;
/* padding:0 33px;*/
height: 36px;
&-title {
height: 18px;
font-size: 18px;
font-weight: 700;
color: rgba(51, 51, 51, 1);
line-height: 26px;
}
}
.nav-part {
// margin-top: 10px;
width: 100%;
font-size: 18px;
text-align: center;
padding: 0 0 10px 0;
/* height: 25px;*/
}
}
.nav-part {
position: fixed;
top: 0;
left: 0;
border-bottom: 0px solid #e7e7e7;
background: #fff;
/* height: 25px;*/
}
</style>
\ No newline at end of file
<!-- Tabs组件 -->
<template>
<div class="common-header" @click.prevent="action">
<div class="common-show-all" @click.prevent="action">
<span>
查看全部
<img src="../../assets/images/right-arrow-grey.png"/>
......@@ -28,13 +28,14 @@ export default {
</script>
<style lang="scss" scoped>
.common-header {
.common-show-all {
display: flex;
width: 100%;
height: 14px;
line-height: 14px;
margin: 20px 0;
text-align: center;
font-weight: 17px;
span {
flex: 1;
display: inline-block;
......
......@@ -3,7 +3,9 @@
<section class="common-swiper-item">
<article class="middle">
<div class="title">
<span>{{certFlag ? '获证率' : '完成率'}}</span>
<span class="ratio">{{certFlag ? '获证率' : '完成率'}}
<img @click="tipsClick" v-show="!certFlag" src="../../assets/images/what-icon-2.png" />
</span>
<span>
<img src="../../assets/images/tips-1.png" />
</span>
......@@ -92,7 +94,11 @@ export default {
deep: true
}
},
methods: {}
methods: {
tipsClick() {
this.$emit('tipsClick')
}
}
};
</script>
......@@ -143,6 +149,18 @@ export default {
color: #fff;
font-size: 14px;
}
.ratio {
position: relative;
top: -16px;
left: 0;
img {
position: absolute;
top: 5px;
left: 46px;
width: 14px;
height: 14px;
}
}
img {
width: 30px;
height: 30px;
......
<!-- 标题组件 -->
<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>
export default {
props: {
title: {
type: String,
default: "证书分布情况"
},
needRightBtn: {
type: Boolean,
default: false
}
},
methods: {
tipsClick() {
this.$emit('tipsClick')
}
}
};
</script>
<style lang="scss" scoped>
.common-title-with-what {
// margin: 15px;
font-size: 18px;
margin: 30px 15px 20px;
li {
display: inline-block;
font-size: 18px;
&.left {
// width: 216px;
display: block;
height: 18px;
line-height: 18px;
font-size: 18px;
font-weight: 700;
color: rgba(55, 56, 57, 1);
img {
margin-left: 6px;
width: 14px;
height: 14px;
}
}
}
}
</style>
......@@ -23,17 +23,19 @@ export default {
token: "",
// 查询概况数据
queryGDParams: {
appSelectType: 2,
beginDate: "",
endDate: "",
hospitalIdList: [],
originalFlag: 1, // 默认值0:0不查看原始数据
projectId: 256,
regionId: "",
timeFlag: 0,
pageCfg: {
type: 1,
timeFlag: 1,
pageNo: 0,
pageSize: 0
pageSize: 0,
sourceType: 1,
pageCfg: {
type: 1
}
},
dataList: []
......@@ -50,22 +52,13 @@ export default {
if (process.client) {
if(this.$route && this.$route.query) {
let cQuery = this.$route.query
// this.token = cQuery.token || '';
this.queryGDParams.projectId = cQuery.projectId || '';
this.queryGDParams.regionId = cQuery.regionId || '';
this.queryGDParams.hospitalIdList = (cQuery.hospitalIdList || '').split(',') || [];
let hospitalIdList = cQuery.hospitalIdList || ''
this.queryGDParams.hospitalIdList = hospitalIdList && hospitalIdList.split(',') || [];
cookies.set("token", cQuery.token || '');
this.getGeneralExam(this.queryGDParams);
}
// this.token = (this.$route && this.$route.query && this.$route.query.token) || '';
// this.projectId = (this.$route && this.$route.query && this.$route.query.projectId) || 256;
// this.regionId = (this.$route && this.$route.query && this.$route.query.regionId) || '000';
// this.hospitalIdList = (this.$route && this.$route.query && this.$route.query.hospitalIdList) || '';
// this.queryGDParams.projectId = this.projectId;
// this.queryGDParams.regionId = this.regionId;
// this.queryGDParams.hospitalIdList = (this.hospitalIdList && this.hospitalIdList.split(',')) || [];
// cookies.set("token", this.token);
// this.getGeneralExam(this.queryGDParams);
}
},
mounted() {
......
......@@ -2,7 +2,7 @@
<section>
<CommonHeader title="完成项目考试次数情况"></CommonHeader>
<CommonTitleMini :title="title" :needRightBtn="needRightBtn"></CommonTitleMini>
<ExamScoreList :dataList="dataList"></ExamScoreList>
<ExamTimesList :dataList="dataList"></ExamTimesList>
<CommonNoMore class="mt-10"></CommonNoMore>
</section>
</template>
......@@ -13,7 +13,7 @@ import { getGeneralExam } from "@/service";
import CommonHeader from "@/components/common/common-header";
import CommonTitleMini from "@/components/common/common-title-mini";
import CommonNoMore from "@/components/common/common-no-more";
import ExamScoreList from "@/components/bussiness/exam-score-list";
import ExamTimesList from "@/components/bussiness/exam-times-list";
export default {
data() {
......@@ -21,19 +21,20 @@ export default {
title: "共0条数据",
needRightBtn: false,
token: "",
// 查询概况数据
queryGDParams: {
appSelectType: 1,
beginDate: "",
endDate: "",
hospitalIdList: [],
originalFlag: 1, // 默认值0:0不查看原始数据
projectId: 256,
regionId: "",
timeFlag: 0,
pageCfg: {
type: 1,
timeFlag: 1,
pageNo: 0,
pageSize: 0
pageSize: 0,
sourceType: 1,
pageCfg: {
type: 1
}
},
dataList: []
......@@ -43,29 +44,20 @@ export default {
CommonHeader,
CommonTitleMini,
CommonNoMore,
ExamScoreList
ExamTimesList
},
created() {
if (process.client) {
if(this.$route && this.$route.query) {
let cQuery = this.$route.query
// this.token = cQuery.token || '';
let hospitalIdList = cQuery.hospitalIdList || ''
this.queryGDParams.projectId = cQuery.projectId || '';
this.queryGDParams.regionId = cQuery.regionId || '';
this.queryGDParams.hospitalIdList = (cQuery.hospitalIdList || '').split(',') || [];
this.queryGDParams.hospitalIdList = hospitalIdList && hospitalIdList.split(',') || [];
cookies.set("token", cQuery.token || '');
this.getGeneralExam(this.queryGDParams);
}
// this.token = (this.$router && this.$route.query && this.$route.query.token) || '';
// this.projectId = (this.$router && this.$route.query && this.$route.query.projectId) || 256;
// this.regionId = (this.$router && this.$route.query && this.$route.query.regionId) || '000';
// this.hospitalIdList = (this.$router && this.$route.query && this.$route.query.hospitalIdList) || '';
// this.queryGDParams.projectId = this.projectId;
// this.queryGDParams.regionId = this.regionId;
// this.queryGDParams.hospitalIdList = (this.hospitalIdList && this.hospitalIdList.split(',')) || [];
// cookies.set("token", this.token);
// this.getGeneralExam(this.queryGDParams);
}
},
mounted() {
......@@ -76,7 +68,7 @@ export default {
async getGeneralExam(queryData) {
await getGeneralExam(queryData).then(res => {
if (res.code === "000000") {
this.dataList = res.data.examScoreList;
this.dataList = res.data.examTimesList;
this.title = `共${this.dataList.length}条数据`
}
});
......
<template>
<section class="container">
<CommonHeader></CommonHeader>
<CommonHeader title="2019年基础高血压管理"></CommonHeader>
<CommonAreaSelect
@areaClick="areaTabClick"
@orgClick="orgTabClick"
......@@ -14,8 +14,9 @@
<article v-show="cIndex === 0">
<CommonSwiperItem
:isSingleOrg="isSingleOrg"
:percentData="allData.percentData"
:percentData="allData.percentData || {}"
:certFlag="projectInfo.certFlag"
@tipsClick="tipsSwiperClick"
></CommonSwiperItem>
<div v-show="!isSingleOrg">
<CommonTitle title="证书分布情况"></CommonTitle>
......@@ -24,10 +25,10 @@
<ChartColumnStack :echartsData="echartsData"></ChartColumnStack>
<CommonSplitLine></CommonSplitLine>
<CommonTitle title="项目情况排名"></CommonTitle>
<RankingList :studyRank="(allData && allData.studyRank)"></RankingList>
<RankingList :rankList="(allData && allData.studyRank)"></RankingList>
<ShowAll @action="gotoPage('/rank-edu')"></ShowAll>
<CommonSplitLine></CommonSplitLine>
<CommonTitle title="完成天数排名"></CommonTitle>
<CommonTitleWithWhat @tipsClick="tipsRankingItemClick" title="完成天数排名"></CommonTitleWithWhat>
<RankingItemDays :rankList="(allData && allData.costRank)"></RankingItemDays>
<ShowAll @action="gotoPage('/rank-days')"></ShowAll>
</div>
......@@ -99,6 +100,7 @@
></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>
......@@ -120,6 +122,7 @@ import {
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";
......@@ -146,6 +149,7 @@ 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";
......@@ -180,12 +184,17 @@ export default {
CommonTitleWithBtn,
OrgDoctorList,
ChartColumnVerticalTimes,
ChartColumnVerticalScore
ChartColumnVerticalScore,
PopTips,
CommonTitleWithWhat
},
data() {
return {
isShowArea: false,
isShowOrg: false,
isShowTips: false,
isShowRankingItemTips: false,
tipsContent: '',
areaName: '全部',
orgName: '全部机构',
// :areaTitle="areaTitle"
......@@ -208,7 +217,7 @@ export default {
allData: {},
projectId: "",
token:
"95D386B4AFA944098CC57C987F4AB877" ||
"F24CD42F1CFA46829639228E9CFE1E3D" ||
"A62E9F92365547A29724F21F29BED4F6" ||
"4556EDEAAE134FE1B6E1356BF9C1B8F9",
isOrgStat: false,
......@@ -225,13 +234,12 @@ export default {
originalFlag: 1, // 默认值0:0不查看原始数据
projectId: 256,
regionId: "",
timeFlag: 0,
timeFlag: 1,
pageNo: 0,
pageSize: 0,
sourceType: 1,
pageCfg: {
type: 1,
pageNo: 0,
pageSize: 0
type: 1
}
},
examSingleParams: {
......@@ -554,6 +562,17 @@ export default {
this.getProvinceData(this.queryParams);
});
},
tipsRankingItemClick() {
this.tipsContent = '在线项目完成天数=完成项目时间-开始参与项目时间'
this.isShowTips = true
},
tipsSwiperClick() {
this.tipsContent = '是已获证人数/应参与人数*100%'
this.isShowTips = true
},
clickTips() {
this.isShowTips = false
},
// 映射Store中的Actions
...mapActions({
setProjectId: "setProjectId",
......@@ -569,8 +588,10 @@ export default {
<style lang="less" scoped>
.container {
// margin-top: 45px;
margin: 0 auto;
min-height: 100vh;
// min-height: 100vh;
font-size: 17px;
h1 {
font-size: 36px;
text-align: center;
......@@ -580,9 +601,9 @@ export default {
> div {
width: 100%;
}
img {
width: 100%;
}
// img {
// width: 100%;
// }
}
.mt-10 {
margin-top: 0;
......
......@@ -21,19 +21,19 @@ export default {
listTitle: "共10知识点",
token: '',
queryGDParams: {
appSelectType: 2, //考试分析(1考试次数全部2考试分数全部) 学习效果分析(1正确率对比全部2知识点对比全部)
beginDate: "",
endDate: "",
hospitalIdList: [],
originalFlag: 1, // 默认值0:0不查看原始数据
projectId: 256,
regionId: "",
timeFlag: 0,
timeFlag: 1,
pageNo: 0,
pageSize: 0,
sourceType: 1,
pageCfg: {
type: 1,
pageNo: 0,
pageSize: 0
type: 1
}
},
knowledgeEffectList: []
......@@ -51,7 +51,6 @@ export default {
if (this.$route && this.$route.query) {
let cQuery = this.$route.query;
let hospitalIdList = cQuery.hospitalIdList || ''
// this.token = cQuery.token || '';
this.queryGDParams.projectId = cQuery.projectId || "";
this.queryGDParams.regionId = cQuery.regionId || "";
this.queryGDParams.hospitalIdList = hospitalIdList && hospitalIdList.split(',') || [];
......@@ -66,9 +65,6 @@ export default {
await getStudyEffect(params).then(res => {
if (res.code === "000000") {
this.knowledgeEffectList = res.data.knowledgeEffectList;
console.log('^^^^^^^^^', this.knowledgeEffectList);
// this.effectCardList[0].count = (res.data.beforeRate * 100).toFixed(0);
// this.effectCardList[1].count = (res.data.afterRate * 100).toFixed(0);
}
});
}
......
......@@ -7,7 +7,8 @@
</section>
</template>
<script>
import { mapGetters } from "vuex";
const cookies = require("cookie-universal")();
import { getStudyTimeData } from "@/service";
import CommonHeader from "@/components/common/common-header";
import CommonTitleMini from "@/components/common/common-title-mini";
......@@ -15,58 +16,26 @@ import RankingItemDays from "@/components/bussiness/ranking-item-days";
import CommonNoMore from "@/components/common/common-no-more";
export default {
props: {
rankList: {
type: Array,
default: () => [
{
subId: 10000,
subName: '福建省',
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
},
{
subId: 10000,
subName: '上海市',
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
},
{
subId: 10000,
subName: '浙江省',
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
},
{
subId: 10000,
subName: '江苏省',
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
},
{
subId: 10000,
subName: '安徽省',
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
}
]
}
},
data() {
return {
listTitle: '共34个省',
// projectId: '',
// token: ''
listTitle: "共34个省",
rankList: [],
queryGDParams: {
// appSelectType: 1,
beginDate: "",
endDate: "",
hospitalIdList: [],
originalFlag: 1, // 默认值0:0不查看原始数据
projectId: 256,
regionId: "",
timeFlag: 1,
pageNo: 0,
pageSize: 0,
sourceType: 1,
pageCfg: {
type: 1
}
},
};
},
components: {
......@@ -75,24 +44,33 @@ export default {
RankingItemDays,
CommonNoMore
},
computed: {
...mapGetters({
userToken: 'userToken',
projectId: 'projectId'
}),
},
created() {
if(process.client) {
// let projectId = this.$route.query.projectId;
// this.projectId = (this.$route && this.$route.query && this.$route.query.projectId) || "";
// this.token = (this.$route && this.$route.query && this.$route.query.token) || "";
console.log('rank-days', this.projectId, this.userToken)
if (process.client) {
let cQuery = this.$route.query;
let hospitalIdList = cQuery.hospitalIdList || "";
this.queryGDParams.projectId = cQuery.projectId || "";
this.queryGDParams.regionId = cQuery.regionId || "";
this.queryGDParams.hospitalIdList =
(hospitalIdList && hospitalIdList.split(",")) || [];
cookies.set("token", cQuery.token || "");
this.getStudyTimeData(this.queryGDParams);
}
},
methods: {
// 完成天数排名
async getStudyTimeData(params) {
await getStudyTimeData(params).then(res => {
if (res.code === "000000") {
this.rankList = res.data.costRank;
}
});
}
}
};
</script>
<style lang="less" scoped>
.mt-10 {
.mt-10 {
margin-top: -10px !important;
}
}
</style>
\ No newline at end of file
......@@ -2,12 +2,13 @@
<section>
<CommonHeader title="项目情况排名"></CommonHeader>
<CommonTitleMini :title="listTitle" :needRightBtn="needRightBtn"></CommonTitleMini>
<RankingList></RankingList>
<RankingList :rankList="rankList"></RankingList>
<CommonNoMore class="mt-10"></CommonNoMore>
</section>
</template>
<script>
import { mapGetters } from "vuex";
const cookies = require("cookie-universal")();
import { getStudyRankData } from "@/service";
import CommonHeader from "@/components/common/common-header";
import CommonTitleMini from "@/components/common/common-title-mini";
......@@ -15,59 +16,27 @@ import CommonNoMore from "@/components/common/common-no-more";
import RankingList from "@/components/bussiness/ranking-item";
export default {
props: {
rankList: {
type: Array,
default: () => [
{
subId: 10000,
subName: '福建省',
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
},
{
subId: 10000,
subName: '上海市',
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
},
{
subId: 10000,
subName: '浙江省',
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
},
{
subId: 10000,
subName: '江苏省',
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
},
{
subId: 10000,
subName: '安徽省',
certCount: 0,
joinCount: 0,
certRate: 0,
costTime: 2000
}
]
}
},
data() {
return {
listTitle: '共34个省',
rankList: [],
needRightBtn: false,
// projectId: '',
// token: ''
queryGDParams: {
// appSelectType: 1,
beginDate: "",
endDate: "",
hospitalIdList: [],
originalFlag: 1, // 默认值0:0不查看原始数据
projectId: 256,
regionId: "",
timeFlag: 1,
pageNo: 0,
pageSize: 0,
sourceType: 1,
pageCfg: {
type: 1
}
},
};
},
components: {
......@@ -76,19 +45,31 @@ export default {
CommonNoMore,
RankingList
},
computed: {
...mapGetters({
userToken: 'userToken',
projectId: 'projectId'
}),
},
created() {
if(process.client) {
// let projectId = this.$route.query.projectId;
// this.projectId = (this.$route && this.$route.query && this.$route.query.projectId) || "";
// this.token = (this.$router && this.$route.query && this.$route.query.token) || "";
console.log('rank-edu', this.projectId, this.userToken)
if(this.$route && this.$route.query) {
let cQuery = this.$route.query
let hospitalIdList = cQuery.hospitalIdList || ''
this.queryGDParams.projectId = cQuery.projectId || '';
this.queryGDParams.regionId = cQuery.regionId || '';
this.queryGDParams.hospitalIdList = hospitalIdList && hospitalIdList.split(',') || [];
cookies.set("token", cQuery.token || '');
this.getStudyRankData(this.queryGDParams);
console.log(this.queryGDParams)
}
}
},
methods: {
// 项目情况排名
async getStudyRankData(params) {
await getStudyRankData(params).then(res => {
if (res.code === "000000") {
this.rankList = res.data.studyRank;
// this.knowledgeEffectList = res.data.knowledgeEffectList;
}
});
}
},
};
</script>
......
<template>
<div class="container">
<CommonHeader></CommonHeader>
<CommonAreaSelect @areaClick="areaTabClick" @orgClick="orgTabClick"></CommonAreaSelect>
<CommonTaps></CommonTaps>
<CommonSwiperItem></CommonSwiperItem>
<CommonTitle title="证书分布情况"></CommonTitle>
<ChartPie></ChartPie>
<!-- <CommonSplitLine></CommonSplitLine> -->
<CommonTitle title="证书级别按学历分布情况"></CommonTitle>
<ChartColumn></ChartColumn>
<!-- <CommonTitle></CommonTitle> -->
<!-- <CommonLoading></CommonLoading> -->
<!-- <CommonTaps></CommonTaps>
<CommonSwiperItem></CommonSwiperItem>
<CommonTitle></CommonTitle> -->
<!-- <CommonTitle title="证书级别按学历分布情况"></CommonTitle> -->
<!-- <div style="padding: 0 15px;">
<ve-line :data="chartData1"></ve-line>
</div> -->
<!-- <CommonSplitLine></CommonSplitLine>
<CommonTitle title="培训情况排名"></CommonTitle>
<CommonSplitLine></CommonSplitLine>
<CommonTitle title="完成天数排名"></CommonTitle> -->
<CommonSplitLine></CommonSplitLine>
<CommonTitle title="培训情况排名"></CommonTitle>
<RankingList></RankingList>
<ShowAll></ShowAll>
<CommonSplitLine></CommonSplitLine>
<CommonTitle title="完成天数排名"></CommonTitle>
<RankingItemDays></RankingItemDays>
<ShowAll></ShowAll>
<!-- <CommonSplitLine></CommonSplitLine> -->
<CommonBottomInfo></CommonBottomInfo>
<PicaArea v-show="isShowArea" @confirm="areaConfirm" @cancel="areaCancel"></PicaArea>
<PicaOrg v-show="isShowOrg" @confirm="orgConfirm" @cancel="orgCancel"></PicaOrg>
</div>
</template>
<script>
// import VePie from "v-charts/lib/pie";
// import VeLine from "v-charts/lib/line";
import CommonHeader from "../components/common/common-header";
import CommonTitle from "../components/common/common-title";
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 ChartColumn from "../components/bussiness/charts/chart-column";
import PicaArea from "../components/common/pica-area";
import PicaOrg from "../components/common/pica-org";
import CommonAreaSelect from "../components/common/common-area-select";
export default {
components: {
CommonHeader,
CommonTitle,
// VePie,
// VeLine,
CommonLoading,
CommonTaps,
CommonSwiperItem,
CommonSplitLine,
RankingList,
ChartPie,
ShowAll,
CommonBottomInfo,
RankingItemDays,
ChartColumn,
PicaArea,
PicaOrg,
CommonAreaSelect
},
data() {
// this.chartSetting = {
// width: "1000px",
// height: "800px"
// };
return {
chartData1: {
columns: ["date", "PV"],
rows: [
{ date: "01-01", PV: 1231 },
{ date: "01-02", PV: 1223 },
{ date: "01-03", PV: 2123 },
{ date: "01-04", PV: 4123 },
]
},
echartsSettings: {
height: '500px'
},
// 重置颜色,图标如果需要颜色,优先从用户提供的colors中依次提取,用户不提供,则根据默认的颜色进行选取
options: {
colors: [
"#6ab58f",
"#80c5d8",
"#c8abda",
"#dcdb5e",
"#e89b84",
"#abb7bb",
"#76d2d2"
]
},
isShowArea: false,
isShowOrg: false
};
},
async asyncData() {
return {};
},
created() {
// this.$store.dispatch('searchHospital', { name: '测试' });
},
mounted() {
// window.addEventListener("resize", this.resizeTheChart);
},
methods: {
areaConfirm(selData) {
console.log(selData)
this.isShowArea = false
},
areaCancel() {
this.isShowArea = false
},
orgConfirm(selData) {
this.isShowOrg = false
},
orgCancel() {
this.isShowOrg = false
},
areaTabClick() {
this.isShowArea = true
},
orgTabClick() {
this.isShowOrg = true
},
resizeTheChart() {
if (this.$refs.runTimes_creditChart) {
this.$refs.runTimes_creditChart.resize();
}
}
}
};
</script>
<style lang="less">
.container {
margin: 0 auto;
min-height: 100vh;
h1 {
font-size: 36px;
text-align: center;
}
.m1 {
width: 100%;
> div {
width: 100%;
}
img {
width: 100%;
}
}
}
</style>
......@@ -20,7 +20,7 @@ Axios.interceptors.request.use(
if (method === 'post' || method === 'put' || method === 'delete') {}
if (config.withCredentials) {
// config.headers.token = '3EB9111164E84A45B5B00428D52BC966';
config.headers.token = cookies.get('token') || 'C284B868425D494386EAEF6C9AE99937';
config.headers.token = cookies.get('token') || 'F24CD42F1CFA46829639228E9CFE1E3D' || 'C284B868425D494386EAEF6C9AE99937';
}
return config;
},
......
......@@ -13,6 +13,7 @@ export const getHospital = async (params) => {
*/
export const getProvinceList = async params => {
return request({
// baseURL: 'http://10.177.11.156:10443/',
method: 'get',
params: params,
withCredentials: true,
......@@ -73,7 +74,6 @@ export const getOrgListByTownId = async params => {
*/
export const getGeneralData = async data => {
return request({
// baseURL: 'http://10.177.11.156:10443/',
method: 'post',
data: data,
withCredentials: true,
......@@ -205,3 +205,27 @@ export const getStudyEffect = async data => {
url: `stats/report/studyEffect`
});
};
/**
* 总体情况-项目情况排名
*/
export const getStudyRankData = async data => {
return request({
method: 'post',
data: data,
withCredentials: true,
url: `stats/report/studyRank/1`
});
};
/**
* 总体情况-完成天数排名
*/
export const getStudyTimeData = async data => {
return request({
method: 'post',
data: data,
withCredentials: true,
url: `stats/report/studyTime/1`
});
};
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册