提交 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 { ...@@ -18,9 +18,9 @@ export default {
pieData: { pieData: {
type: Array, type: Array,
default: () => [ default: () => [
{ value: 335, name: "优秀证书" }, { value: 0, name: "优秀证书" },
{ value: 310, 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;
} }
} }
}; };
......
...@@ -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: 310, 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;
} }
} }
}; };
......
...@@ -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: 310, 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: 310, 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;
} }
} }
}; };
......
...@@ -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;
} }
} }
}; };
......
...@@ -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,
......
...@@ -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,
......
...@@ -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: {
......
...@@ -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: {
......
<!-- 完成天数排名组件 --> <!-- 完成天数排名组件 -->
<template> <template>
<ul class="rank-item-days"> <div>
<li v-for="(item, index) in rankList" :key="index"> <ul v-if="rankList.length" class="rank-item-days">
<div class="order"> <li v-for="(item, index) in rankList" :key="index">
<img v-if="index === 0 || index === 1 || index === 2" :src="getRankImgUrl(index)" alt=""> <div class="order">
<span v-else>{{index + 1}}</span> <img v-if="index === 0 || index === 1 || index === 2" :src="getRankImgUrl(index)" alt="">
</div> <span v-else>{{index + 1}}</span>
<div class="content"> </div>
<p class="desc-3">{{item.subName | shortName}}</p> <div class="content">
<!-- <p class="desc-2">完成人数 8860 | 参与人数 101</p> --> <p class="desc-3">{{item.subName | shortName}}</p>
</div> <!-- <p class="desc-2">完成人数 8860 | 参与人数 101</p> -->
<div class="ratio"> </div>
<p class="desc-1">{{(item.costTime || 0).toFixed(1) }}</p> <div class="ratio">
<p class="desc-2">完成天数</p> <p class="desc-1">{{(item.costTime || 0).toFixed(1) }}</p>
</div> <p class="desc-2">完成天数</p>
</li> </div>
</ul> </li>
</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,
......
<!-- 培训情况排名组件 --> <!-- 培训情况排名组件 -->
<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,
......
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册