提交 d4ce4531 编写于 作者: 张平's avatar 张平

Merge branch 'dev-optimization-1223' into 'release'

code reviewer:  张平:修复几个UI bug等

code reviewer:  张平:修复几个UI bug等

See merge request !1
......@@ -18,9 +18,9 @@ export default {
pieData: {
type: Array,
default: () => [
{ value: 335, name: "优秀证书" },
{ value: 310, name: "及格证书" },
{ value: 234, name: "未获证" }
{ value: 0, name: "优秀证书" },
{ value: 0, name: "及格证书" },
{ value: 0, name: "未获证" }
]
}
},
......@@ -28,6 +28,7 @@ export default {
return {
pieId: 'certPieId',
chartHeight: "1000px",
legendDataNotSelected: {},
handledData: {},
legendData: [],
seriesData: {}
......@@ -48,18 +49,30 @@ export default {
},
methods: {
handlePieData(pieData) {
this.legendData = pieData.map( item => {
return item.certName
})
this.seriesData = pieData.map( item => {
return { name: item.certName, value: item.doneCount}
let legendDataNotSelected = {}, legendData = [], seriesData = [];
pieData.forEach( (item, i) => {
if(!pieData[i].doneCount) {
legendDataNotSelected[pieData[i].certName] = false
}
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() {
let chartPie = vm.$echarts.init(document.getElementById(vm.pieId));
let options = {
color: echartColors,
// color: echartColors,
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b} : {c} ({d}%)"
......@@ -71,6 +84,7 @@ export default {
top: '30%',
left: '60%',
bottom: 20,
selected: this.legendDataNotSelected,
data: vm.legendData, // ["优秀证书", "及格证书", "未获证"],
textStyle: {
fontSize: 12,
......@@ -112,7 +126,7 @@ export default {
let item = this.pieData.find(item => {
return item.certName === name;
});
return (item && item.doneCount) || "";
return (item && item.doneCount) || 0;
}
}
};
......
......@@ -19,9 +19,9 @@ export default {
dataList: {
type: Array,
default: () => [
{ value: 335, name: "优秀证书" },
{ value: 310, name: "及格证书" },
{ value: 234, name: "未获证" }
{ value: 0, name: "优秀证书" },
{ value: 0, name: "及格证书" },
{ value: 0, name: "未获证" }
]
},
......@@ -31,6 +31,7 @@ export default {
chartWidth: '320px',
pieId: 'eduPieId',
chartHeight: "1000px",
legendDataNotSelected: {},
handledData: {},
legendData: [],
seriesData: {},
......@@ -68,23 +69,37 @@ export default {
mounted() {},
methods: {
handlePieData(pieData) {
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 => {
let count = 0, legendDataNotSelected = {}, legendData = [], seriesData = [];
pieData.forEach( (item, i) => {
if(!pieData[i].value) {
legendDataNotSelected[pieData[i].name] = false
}
legendData.push(item.name);
seriesData.push({ name: item.name, value: item.value});
count += item.value;
})
this.legendDataNotSelected = legendDataNotSelected;
this.legendData = legendData;
this.seriesData = seriesData;
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() {
let chartPie = vm.$echarts.init(document.getElementById(vm.pieId));
let options = {
color: echartColors,
// color: echartColors,
title: {
text: "总人数: " + vm.count,
top: '10%',
......@@ -111,6 +126,7 @@ export default {
top: '20%',
left: '60%',
bottom: 20,
selected: this.legendDataNotSelected,
data: vm.legendData, // ["优秀证书", "及格证书", "未获证"],
textStyle: {
fontSize: 12,
......@@ -152,7 +168,7 @@ export default {
let item = this.dataList.find(item => {
return item.name === name;
});
return (item && item.value) || "";
return (item && item.value) || 0;
}
}
};
......
......@@ -19,17 +19,17 @@ export default {
pieData: {
type: Array,
default: () => [
{ value: 335, name: "优秀证书" },
{ value: 310, name: "及格证书" },
{ value: 234, name: "未获证" }
{ value: 0, name: "优秀证书" },
{ value: 0, name: "及格证书" },
{ value: 0, name: "未获证" }
]
},
dataList: {
type: Array,
default: () => [
{ value: 335, name: "优秀证书" },
{ value: 310, name: "及格证书" },
{ value: 234, name: "未获证" }
{ value: 0, name: "优秀证书" },
{ value: 0, name: "及格证书" },
{ value: 0, name: "未获证" }
]
},
},
......@@ -38,6 +38,7 @@ export default {
chartWidth: '320px',
pieId: "titlePieId",
chartHeight: "1000px",
legendDataNotSelected: {},
handledData: {},
legendData: [],
seriesData: {},
......@@ -74,23 +75,37 @@ export default {
mounted() {},
methods: {
handlePieData(pieData) {
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 => {
let count = 0, legendDataNotSelected = {}, legendData = [], seriesData = [];
pieData.forEach( (item, i) => {
if(!pieData[i].value) {
legendDataNotSelected[pieData[i].name] = false
}
legendData.push(item.name);
seriesData.push({ name: item.name, value: item.value});
count += item.value;
})
this.legendDataNotSelected = legendDataNotSelected;
this.legendData = legendData;
this.seriesData = seriesData;
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() {
let chartPie = vm.$echarts.init(document.getElementById(vm.pieId));
let options = {
color: echartColors,
// color: echartColors,
title: {
text: "总人数: " + vm.count,
top: '10%',
......@@ -118,6 +133,7 @@ export default {
top: '20%',
left: "60%",
bottom: 20,
selected: this.legendDataNotSelected,
data: vm.legendData, // ["优秀证书", "及格证书", "未获证"],
textStyle: {
fontSize: 12,
......@@ -159,7 +175,7 @@ export default {
let item = this.dataList.find(item => {
return item.name === name;
});
return (item && item.value) || "";
return (item && item.value) || 0;
}
}
};
......
......@@ -45,6 +45,7 @@ export default {
return {
chartHeight: "1000px",
handledData: {},
legendDataNotSelected: {},
legendData: [],
seriesData: {},
isShow: true
......@@ -78,12 +79,23 @@ export default {
},
methods: {
handlePieData(pieData) {
this.legendData = pieData.map( item => {
return item.certName
})
this.seriesData = pieData.map( item => {
return { name: item.certName, value: item.doneCount}
let legendDataNotSelected = {}, legendData = [], seriesData = [];
pieData.forEach( (item, i) => {
if(!pieData[i].doneCount) {
legendDataNotSelected[pieData[i].certName] = false
}
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() {
......@@ -91,7 +103,7 @@ export default {
chartPie = vm.$echarts.init(document.getElementById(vm.id));
}
options = {
color: echartColors,
// color: echartColors,
tooltip: {
trigger: "item",
// formatter: "{a} <br/>{b} : {c} ({d}%)"
......@@ -102,9 +114,10 @@ export default {
type: "scroll",
orient: "vertical",
// orient:'horizontal',
top: '30%',
top: '25%',
left: '60%',
bottom: 20,
selected: this.legendDataNotSelected,
data: vm.legendData, // ["优秀证书", "及格证书", "未获证"],
textStyle: {
fontSize: 12,
......@@ -145,7 +158,7 @@ export default {
let item = this.pieData.find(item => {
return item.certName === name;
});
return (item && item.doneCount) || "";
return (item && item.doneCount) || 0;
}
}
};
......
......@@ -6,17 +6,22 @@
<li>课程时长</li>
<li>人均学习时长</li>
</ul>
<ul class="list">
<ul v-if="dataList.length" class="list">
<li v-for="(item, index) in dataList" :key="index">
<span>{{item.courseName | shortName}}</span>
<span>{{item.courseTime | convert}}</span>
<span>{{item.averageTime | convert}}</span>
</li>
</ul>
<NoContent v-show="!dataList.length"></NoContent>
</div>
</template>
<script>
import NoContent from "@/components/bussiness/no-content";
export default {
components: {
NoContent
},
props: {
dataList: {
type: Array,
......
......@@ -5,16 +5,21 @@
<li>考试名</li>
<li>参与通过率</li>
</ul>
<ul class="list">
<ul v-if="dataList.length" class="list">
<li v-for="(item, index) in dataList" :key="index">
<span>{{item.examName | shortName}}</span>
<span>{{(item.joinRate * 100).toFixed(1)}}%</span>
</li>
</ul>
<NoContent v-show="!dataList.length"></NoContent>
</div>
</template>
<script>
import NoContent from "@/components/bussiness/no-content";
export default {
components: {
NoContent
},
props: {
dataList: {
type: Array,
......
......@@ -6,19 +6,22 @@
<li>考试分数(分)</li>
<li>考试人数(个)</li>
</ul>
<ul class="list">
<ul v-if="dataList.length" class="list">
<li v-for="(item, index) in dataList" :key="index">
<span>{{item.timesStr}}</span>
<span>{{item.count}}</span>
</li>
</ul>
<NoContent v-show="!dataList.length"></NoContent>
</div>
</template>
<script>
import TipsInfo from '@/components/bussiness/tips-info'
import NoContent from "@/components/bussiness/no-content";
export default {
components: {
TipsInfo
TipsInfo,
NoContent
},
props: {
dataList: {
......
......@@ -6,19 +6,22 @@
<li>考试次数(次)</li>
<li>考试人数(个)</li>
</ul>
<ul class="list">
<ul v-if="dataList.length" class="list">
<li v-for="(item, index) in dataList" :key="index">
<span>{{item.times}}</span>
<span>{{item.count}}</span>
</li>
</ul>
<NoContent v-show="!dataList.length"></NoContent>
</div>
</template>
<script>
import TipsInfo from '@/components/bussiness/tips-info'
import NoContent from "@/components/bussiness/no-content";
export default {
components: {
TipsInfo
TipsInfo,
NoContent
},
props: {
dataList: {
......
<!-- 完成天数排名组件 -->
<template>
<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="">
<span v-else>{{index + 1}}</span>
</div>
<div class="content">
<p class="desc-3">{{item.subName | shortName}}</p>
<!-- <p class="desc-2">完成人数 8860 | 参与人数 101</p> -->
</div>
<div class="ratio">
<p class="desc-1">{{(item.costTime || 0).toFixed(1) }}</p>
<p class="desc-2">完成天数</p>
</div>
</li>
</ul>
<div>
<ul v-if="rankList.length" 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="">
<span v-else>{{index + 1}}</span>
</div>
<div class="content">
<p class="desc-3">{{item.subName | shortName}}</p>
<!-- <p class="desc-2">完成人数 8860 | 参与人数 101</p> -->
</div>
<div class="ratio">
<p class="desc-1">{{(item.costTime || 0).toFixed(1) }}</p>
<p class="desc-2">完成天数</p>
</div>
</li>
</ul>
<NoContent v-show="!rankList.length"></NoContent>
</div>
</template>
<script>
import NoContent from "@/components/bussiness/no-content";
export default {
components: {
NoContent
},
props: {
rankList: {
type: Array,
......
<!-- 培训情况排名组件 -->
<template>
<div>
<ul class="rank-item">
<ul v-if="rankList.length" class="rank-item">
<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 />
......@@ -17,10 +17,15 @@
</div>
</li>
</ul>
<NoContent v-if="!rankList.length"></NoContent>
</div>
</template>
<script>
import NoContent from "@/components/bussiness/no-content";
export default {
components: {
NoContent
},
props: {
rankList: {
type: Array,
......
<template>
<section class="container" >
<CommonHeader :title="projectInfo.projectName | shortName"></CommonHeader>
<CommonAreaSelect
v-show="!isScroll"
@areaClick="areaTabClick"
@orgClick="orgTabClick"
:areaName="areaName"
:orgName="orgName"
:showArea="isShowArea"
:showOrg="isShowOrg">
</CommonAreaSelect>
<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"
: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>
<section class="container">
<CommonHeader :title="projectInfo.projectName | shortName"></CommonHeader>
<CommonAreaSelect v-show="!isScroll" @areaClick="areaTabClick" @orgClick="orgTabClick" :areaName="areaName" :orgName="orgName" :showArea="isShowArea" :showOrg="isShowOrg">
</CommonAreaSelect>
<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" :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>
<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>
<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>
<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>
<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>
<div v-if="projectInfo.containOfficialFlag">
<CommonTitle title="完成项目考试次数情况"></CommonTitle>
<ChartColumnVerticalTimes :dataList="(generalExamData.examTimesList || []).slice(0, 5)" id="chartCourseTimesId" :colors="colors"></ChartColumnVerticalTimes>
<!-- <ShowAll v-show="generalExamData.examTimesList.length" @action="gotoPage('/examtimes')" class="mt-10"></ShowAll> -->
<ShowAll v-show="generalExamData && generalExamData.examTimesList.length > 5" @action="gotoPage('/examtimes')" class="mt-10"></ShowAll>
<CommonSplitLine></CommonSplitLine>
<div v-if="projectInfo.containOfficialFlag">
<CommonTitle title="完成项目考试次数情况"></CommonTitle>
<ChartColumnVerticalTimes :dataList="(generalExamData.examTimesList || []).slice(0, 5)" id="chartCourseTimesId" :colors="colors"></ChartColumnVerticalTimes>
<!-- <ShowAll v-show="generalExamData.examTimesList.length" @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 v-show="generalExamData.examScoreList & generalExamData.examScoreList.length > 5" @action="gotoPage('/examscore')" class="mt-10"></ShowAll>
<CommonSplitLine></CommonSplitLine>
</div>
<CommonTitle title="考试列表"></CommonTitle>
<ExamList :dataList="examInfoList"></ExamList>
<CommonBottomInfo :class="{'fixed-bottom-info': !projectInfo.containOfficialFlag && examInfoList.length < 4}"></CommonBottomInfo>
</article>
<!-- 学习效果分析 -->
<article v-show="(cIndex === 4) && (projectInfo.existEffect == 1)">
<CommonCard :needBG="needBG" :cardList="effectCardList"></CommonCard>
<CommonTitle title="完成项目考试分数情况"></CommonTitle>
<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>
<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 v-show="studyEffect.knowledgeEffectList && studyEffect.knowledgeEffectList.length > 5" @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>
</div>
<CommonTitle title="考试列表"></CommonTitle>
<ExamList :dataList="examInfoList"></ExamList>
<CommonBottomInfo :class="{'fixed-bottom-info': !projectInfo.containOfficialFlag && examInfoList.length < 4}"></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 || []).slice(0, 5)" id="ChartColumnVerticalTC2"></ChartColumnHorizontalTC>
<ShowAll v-show="studyEffect.knowledgeEffectList && studyEffect.knowledgeEffectList.length > 5" @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 {
goPageByNative
} from "@/utils";
import {
mapGetters,
mapActions
} from "vuex";
import {
getProvinceList,
getUserAnalysis,
......@@ -160,7 +140,9 @@ 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";
import {
getGeneralData
} from "@/service/index";
let timeOutId = null;
export default {
components: {
......@@ -209,8 +191,7 @@ export default {
cIndex: 0,
colors: ["#39AF9A", "#FF9A4B", "#abb7bb", "#76d2d2"],
needBG: true,
effectCardList: [
{
effectCardList: [{
count: 65,
unitName: "%",
description: "培训前正确率"
......@@ -225,8 +206,7 @@ export default {
studyRankList: [],
costRankList: [],
projectId: "",
token:
"2DEF4802111943C49A98A1429095A876" ||
token: "2DEF4802111943C49A98A1429095A876" ||
"79A005DB585C45C389ED1DD0C76E3633" ||
"A220943B006347799F277CC524EBB662",
isOrgStat: false,
......@@ -253,8 +233,14 @@ export default {
},
echartsData: null,
analysisData: {
eduList: { join: [], finish: []},
titleList: { join: [], finish: []},
eduList: {
join: [],
finish: []
},
titleList: {
join: [],
finish: []
},
},
analysisEduData: [],
analysisTitleData: [],
......@@ -338,7 +324,7 @@ export default {
this.setProjectId(this.projectId);
} else {
this.getUserInfo();
}
}
}
// this.$store.dispatch('searchHospital', { name: '测试' });
},
......@@ -366,16 +352,16 @@ export default {
);
},
methods: {
handleScroll() {
var scrollTop =
window.pageYOffset ||
document.documentElement.scrollTop ||
document.body.scrollTop;
if (scrollTop > 5) {
this.isScroll = true;
} else {
this.isScroll = false;
}
handleScroll() {
var scrollTop =
window.pageYOffset ||
document.documentElement.scrollTop ||
document.body.scrollTop;
if (scrollTop > 5) {
this.isScroll = true;
} else {
this.isScroll = false;
}
},
// 获取可区域高度
......@@ -398,11 +384,13 @@ export default {
// 查询用户信息和权限
getProjectInfo(params) {
getProjectInfo({ projectId: this.projectId }).then(res => {
getProjectInfo({
projectId: this.projectId
}).then(res => {
if (res.code === "000000") {
this.projectInfo = res.data;
getProvinceList(params).then(res => {
if (res.code === "000000") {
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 && res.data.list) || []);
......@@ -478,7 +466,7 @@ export default {
if (res.code === "000000") {
this.analysisData = res.data;
this.analysisEduData = res.data.eduList.join;
this.analysisTitleData = res.data.titleList.join;
this.analysisTitleData = res.data.titleList.join;
}
});
},
......@@ -488,11 +476,11 @@ export default {
// 上面三个图标数据
getGeneralExam(queryData).then(res => {
if (res.code === "000000") {
debugger
this.generalExamData = res.data;
this.setExamTimesList(res.data.examTimesList)
this.setExamScoreList(res.data.examScoreList)
this.examCardList = [
{
this.examCardList = [{
count: res.data.afterExamCount,
unitName: "门",
description: "正式考试数"
......@@ -532,7 +520,7 @@ export default {
let viewportHeight = this.getViewportHeight();
let courseLength = res.data.pCourseList.length;
// 上面的高度 468 每一条数据的高度 60
if(viewportHeight > (468 + (courseLength - 1) * 60)) {
if (viewportHeight > (468 + (courseLength - 1) * 60)) {
this.needFixedBottomInfo = true;
}
}
......@@ -569,7 +557,7 @@ export default {
this.getHospitalsCNT(this.CNTParams);
this.isShowArea = false;
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)
}
},
......@@ -595,7 +583,7 @@ export default {
this.isShowOrg = false;
this.orgName = this.shortName(hospitalNames[0] || '全部机构', 6);
this.queryGDParams.hospitalIdList = hospitalIds;
if(hospitalIds.length == 0) {
if (hospitalIds.length == 0) {
this.getHospitalsCNT(this.CNTParams);
return;
}
......@@ -620,7 +608,7 @@ export default {
// 弹出选择区域控件
areaTabClick() {
if(this.isShowOrg) {
if (this.isShowOrg) {
this.isShowOrg = false;
}
this.isShowArea = !this.isShowArea;
......@@ -628,22 +616,22 @@ export default {
// 弹出选择机构控件
orgTabClick() {
if(this.areaDegree !== 3 && this.areaDegree !== 4) {
if (this.areaDegree !== 3 && this.areaDegree !== 4) {
this.$toast('选择区/县后才可选择机构');
return;
}
if(this.orgList.length === 0) {
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}&regionId=${this.queryGDParams.regionId}&hospitalIdList=${this.queryGDParams.hospitalIdList.join(',')}`
if(hasCert) {
if (hasCert) {
subUrlAndParams += `&certFlag=${this.projectInfo.certFlag}`
}
if (this.$rocNative.isWeb) {
......@@ -657,7 +645,7 @@ export default {
// 人员学历情况切换按钮
analysisEduClick(index) {
this.analysisEduData = this.analysisData.eduList[
index ? "finish" : "join"
index ? "finish" : "join"
] || [];
this.$forceUpdate();
},
......@@ -674,7 +662,7 @@ export default {
getUserInfo() {
this.$rocNative.getUserInfo &&
this.$rocNative.getUserInfo().then(params => {
this.token = params.userToken; // 测试用时注释掉
this.token = params.userToken; // 测试用时注释掉
// cookies.remove("token");
cookies.set("lreporttoken", this.token);
this.setUserToken(this.token);
......@@ -727,24 +715,30 @@ export default {
.container {
margin: 0 auto;
font-size: 17px;
h1 {
font-size: 36px;
text-align: center;
}
.m1 {
width: 100%;
> div {
>div {
width: 100%;
}
}
.mt-10 {
margin-top: 0;
}
.fixed-bottom-info {
position: fixed;
bottom: 0;
left: 0;
}
.pd-top-60 {
padding-top: 40px;
}
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册