提交 c9a22f5f 编写于 作者: zhentian.jia's avatar zhentian.jia

多张页面api对接

上级 a22cb9e9
...@@ -232,6 +232,28 @@ const vueFilter = { ...@@ -232,6 +232,28 @@ const vueFilter = {
} }
return avgTime; return avgTime;
}, },
learnTimeValue: (value) => {
let s = parseInt(value),m = 0, h = 0;//秒,分,小时
if(s==NaN){//错误error
return '';
}
if(s > 60) {
m = parseInt(s/60);
s = parseInt(s%60);
if(m > 60) {
h = parseInt(m/60);
m = parseInt(m%60);
}
}
let result = ""+parseInt(s)+"秒";
if(m > 0) {
result = ""+parseInt(m)+"分"+result;
}
if(h > 0) {
result = ""+parseInt(h)+"小时"+result;
}
return result;
},
getTotalTime: (value) => { getTotalTime: (value) => {
let time = value +'分钟'; let time = value +'分钟';
return time; return time;
...@@ -286,5 +308,39 @@ const vueFilter = { ...@@ -286,5 +308,39 @@ const vueFilter = {
let rate = num + '%'; let rate = num + '%';
return rate; return rate;
}, },
sexValue: (value) => {
if(value == 1) {
return '男';
} else if(value == 2) {
return '女';
} else if(value == 0) {
return '未知';
}
},
joinFlagValue: (value) => {
if(value == 1) {
return '已参与';
} else if(value == 2) {
return '未参与';
}
},
finishFlagValue: (value) => {
if(value == 1) {
return '已完成';
} else if(value == 2) {
return '未完成';
}
},
certGradeValue: (value) => {
if(value == 1) {
return '优秀';
} else if(value == 2) {
return '良好';
} else if(value == 3) {
return '及格';
} else if(value == 4) {
return '不及格';
}
},
} }
export default vueFilter export default vueFilter
\ No newline at end of file
...@@ -37,7 +37,7 @@ export function dustributeOption(legendData, seriesData) { ...@@ -37,7 +37,7 @@ export function dustributeOption(legendData, seriesData) {
}; };
return option; return option;
} }
export function recordOption() { export function recordOption(legendData, xAxisData, seriesData) {
let option = { let option = {
title: { title: {
text: "", text: "",
...@@ -62,12 +62,14 @@ export function recordOption() { ...@@ -62,12 +62,14 @@ export function recordOption() {
} }
relVal += value + "人"; relVal += value + "人";
let divList = []; let divList = [];
divList[0] = "<div style='background: #FFB01B;height: 12px;width: 20px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"; divList[0] = "<div style='background: #3BA0FF;height: 12px;width: 20px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>";
divList[1] = "<div style='background: #39AF9A;height: 12px;width: 20px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"; divList[1] = "<div style='background: #FF9A4B;height: 12px;width: 20px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>";
divList[2] = "<div style='background: #5D7092;height: 12px;width: 20px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>"; divList[2] = "<div style='background: #FFB01B;height: 12px;width: 20px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>";
divList[3] = "<div style='background: #39AF9A;height: 12px;width: 20px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>";
divList[4] = "<div style='background: #5D7092;height: 12px;width: 20px;margin: 5px 5px 0 2px;float: left;border-radius:2px;'></div>";
for (let j = params.length - 1; j >= 0; j--) { for (let j = params.length - 1; j >= 0; j--) {
relVal += relVal +=
"<br/>" + divList[j % 3] + "<br/>" + divList[j] +
params[j].seriesName + params[j].seriesName +
"占比: " + "占比: " +
( (
...@@ -79,9 +81,9 @@ export function recordOption() { ...@@ -79,9 +81,9 @@ export function recordOption() {
return relVal; return relVal;
} }
}, },
color: ['#FFB01B', '#39AF9A', '#5D7092'], color: ['#3BA0FF', '#FF9A4B', '#FFB01B', '#39AF9A', '#5D7092'],
legend: { legend: {
data: ["未获证人数", "获优秀人数", "获及格人数"] data: legendData,
}, },
grid: { grid: {
left: "3%", left: "3%",
...@@ -91,57 +93,29 @@ export function recordOption() { ...@@ -91,57 +93,29 @@ export function recordOption() {
}, },
xAxis: { xAxis: {
type: "category", type: "category",
data: ["博士", "硕士", "本科", "大专", "中专及以下", "其他"] data: xAxisData,
}, axisLine: { //隐藏轴线
yAxis: { show: false
type: "value",
name: "人数 (个)"
},
series: [
{
name: "获及格人数",
type: "bar",
stack: "总量",
barWidth: 18,
label: {
normal: {
show: true,
rotate: -90,
}
}, },
data: [220, 182, 191, 234, 290, 330] axisTick: { // 隐藏刻度
show: false
}, },
{
name: "获优秀人数",
type: "bar",
stack: "总量",
barWidth: 18,
label: {
normal: {
show: true,
rotate: -90,
}
}, },
data: [120, 132, 101, 134, 90, 230] yAxis: {
type: "value",
name: "人数 (个)",
axisLine: { //隐藏轴线
show: false
}, },
{ axisTick: { // 隐藏刻度
name: "未获证人数", show: false
type: "bar",
stack: "总量",
barWidth: 18,
label: {
normal: {
show: true,
rotate: -90,
}
}, },
data: [1, 302, 301, 334, 390, 330]
}, },
] series: seriesData,
}; };
return option; return option;
} }
export function certificateOption() { export function certificateOption(xAxisData, seriesJoin, seriesCert, seriesRate) {
let option = { let option = {
title: { title: {
text: "", text: "",
...@@ -177,7 +151,7 @@ export function certificateOption() { ...@@ -177,7 +151,7 @@ export function certificateOption() {
dataZoom: { dataZoom: {
show: true, show: true,
start: 0, start: 0,
end: 60 end: 100
}, },
legend: { legend: {
data: ["参与人数", "获证人数", "获证比例"] data: ["参与人数", "获证人数", "获证比例"]
...@@ -189,42 +163,16 @@ export function certificateOption() { ...@@ -189,42 +163,16 @@ export function certificateOption() {
rotate: 45 rotate: 45
}, },
type: "category", type: "category",
data: [ data: xAxisData,
"北京市",
"天津市",
"河北省",
"山西省",
"内蒙古自治区",
"辽宁省",
"吉林省",
"黑龙江省",
"上海市",
"江苏省",
"浙江省",
"安徽省",
"福建省",
"江西省",
"山东省",
"河南省",
"湖北省",
"湖南省",
"广东省",
"广西壮族自治区",
"海南省",
"重庆市",
"四川省",
"贵州省",
"云南省",
"西藏自治区",
"陕西省",
"甘肃省",
"青海省",
"宁夏回族自治区",
"新疆维吾尔自治区"
],
axisPointer: { axisPointer: {
type: "shadow" type: "shadow"
} },
axisLine: { //隐藏轴线
show: false
},
axisTick: { // 隐藏刻度
show: false
},
} }
], ],
yAxis: [ yAxis: [
...@@ -233,15 +181,31 @@ export function certificateOption() { ...@@ -233,15 +181,31 @@ export function certificateOption() {
name: "人数(个)", name: "人数(个)",
axisLabel: { axisLabel: {
formatter: "{value} " formatter: "{value} "
} },
axisLine: { //隐藏轴线
show: false
},
axisTick: { // 隐藏刻度
show: false
},
}, },
{ {
type: "value", type: "value",
name: "比例", name: "比例",
min: 0, min: 0,
max: 100, max: 100,
show: false,
axisLabel: { axisLabel: {
formatter: "{value} %" formatter: "{value} %"
},
axisLine: { //隐藏轴线
show: false
},
axisTick: { // 隐藏刻度
show: false
},
splitLine: {
show: false
} }
} }
], ],
...@@ -250,41 +214,7 @@ export function certificateOption() { ...@@ -250,41 +214,7 @@ export function certificateOption() {
name: "参与人数", name: "参与人数",
barWidth: 10, barWidth: 10,
type: "bar", type: "bar",
data: [ data: seriesJoin,
10,
52,
200,
334,
390,
330,
220,
10,
52,
200,
334,
390,
330,
220,
10,
52,
200,
334,
390,
330,
220,
10,
52,
200,
334,
390,
330,
220,
10,
52,
200,
334,
390
],
label: { label: {
show: true, show: true,
position: "top", position: "top",
...@@ -297,7 +227,7 @@ export function certificateOption() { ...@@ -297,7 +227,7 @@ export function certificateOption() {
name: "获证人数", name: "获证人数",
barWidth: 10, barWidth: 10,
type: "bar", type: "bar",
data: [9, 8, 100, 200, 200, 55, 10, 9, 8, 100, 200, 200, 55, 10, 9, 8, 100, 200, 200, 55, 10], data: seriesCert,
label: { label: {
show: true, show: true,
position: "top", position: "top",
...@@ -310,32 +240,7 @@ export function certificateOption() { ...@@ -310,32 +240,7 @@ export function certificateOption() {
name: "获证比例", name: "获证比例",
type: "line", type: "line",
yAxisIndex: 1, yAxisIndex: 1,
data: [ data: seriesRate,
2,
22,
32,
41,
61,
10,
20,
23,
55,
67,
91,
6,
2,
22,
32,
41,
61,
10,
20,
23,
55,
67,
91,
6
],
label: { label: {
show: true, show: true,
position: "top", position: "top",
...@@ -346,7 +251,7 @@ export function certificateOption() { ...@@ -346,7 +251,7 @@ export function certificateOption() {
}; };
return option; return option;
} }
export function durationOption() { export function durationOption(xAxisData, seriesData) {
let option = { let option = {
title: { title: {
text: "", text: "",
...@@ -368,7 +273,7 @@ export function durationOption() { ...@@ -368,7 +273,7 @@ export function durationOption() {
dataZoom: { dataZoom: {
show: true, show: true,
start: 0, start: 0,
end: 66 end: 100
}, },
xAxis: [ xAxis: [
{ {
...@@ -377,39 +282,7 @@ export function durationOption() { ...@@ -377,39 +282,7 @@ export function durationOption() {
rotate: 35 rotate: 35
}, },
type: "category", type: "category",
data: [ data: xAxisData,
"北京市",
"天津市",
"河北省",
"山西省",
"内蒙古自治区",
"辽宁省",
"吉林省",
"黑龙江省",
"上海市",
"江苏省",
"浙江省",
"安徽省",
"福建省",
"江西省",
"山东省",
"河南省",
"湖北省",
"湖南省",
"广东省",
"广西壮族自治区",
"海南省",
"重庆市",
"四川省",
"贵州省",
"云南省",
"西藏自治区",
"陕西省",
"甘肃省",
"青海省",
"宁夏回族自治区",
"新疆维吾尔自治区"
],
axisTick: { axisTick: {
alignWithLabel: true alignWithLabel: true
} }
...@@ -425,48 +298,14 @@ export function durationOption() { ...@@ -425,48 +298,14 @@ export function durationOption() {
{ {
name: "时长", name: "时长",
type: "bar", type: "bar",
barWidth: 17, barWidth: 18,
data: [ data: seriesData,
10,
52,
200,
334,
390,
330,
220,
10,
52,
200,
334,
390,
330,
220,
10,
52,
200,
334,
390,
330,
220,
10,
52,
200,
334,
390,
330,
220,
10,
52,
200,
334,
390
],
label: { label: {
show: true, show: true,
position: "top", position: "top",
formatter: "{c}", //这是关键,在需要的地方加上就行了 formatter: "{c}", //这是关键,在需要的地方加上就行了
rotate: -90, rotate: -90,
offset: [-5, -15] offset: [-5, -17]
} }
} }
] ]
...@@ -500,7 +339,7 @@ export function educationEffect(xAxisData, seriesBefore ,seriesAfter) { ...@@ -500,7 +339,7 @@ export function educationEffect(xAxisData, seriesBefore ,seriesAfter) {
return relVal; return relVal;
} }
}, },
color: ["#5D7092", "#FFB01B"], color: ["#FEBB3C", "#39AF9A"],
legend: { legend: {
data: ["项目前总正确率", "项目后总正确率"] data: ["项目前总正确率", "项目后总正确率"]
}, },
...@@ -512,7 +351,13 @@ export function educationEffect(xAxisData, seriesBefore ,seriesAfter) { ...@@ -512,7 +351,13 @@ export function educationEffect(xAxisData, seriesBefore ,seriesAfter) {
}, },
xAxis: { xAxis: {
type: "category", type: "category",
data: xAxisData data: xAxisData,
axisLine: { //隐藏轴线
show: false
},
axisTick: { // 隐藏刻度
show: false
},
}, },
yAxis: { yAxis: {
min: 0, min: 0,
...@@ -520,13 +365,19 @@ export function educationEffect(xAxisData, seriesBefore ,seriesAfter) { ...@@ -520,13 +365,19 @@ export function educationEffect(xAxisData, seriesBefore ,seriesAfter) {
type: "value", type: "value",
axisLabel: { axisLabel: {
formatter: "{value} %" formatter: "{value} %"
} },
axisLine: { //隐藏轴线
show: false
},
axisTick: { // 隐藏刻度
show: false
},
}, },
series: [ series: [
{ {
name: "项目前总正确率", name: "项目前总正确率",
type: "bar", type: "bar",
barWidth: 10, barWidth: 18,
data: seriesBefore, data: seriesBefore,
label: { label: {
show: true, show: true,
...@@ -539,7 +390,7 @@ export function educationEffect(xAxisData, seriesBefore ,seriesAfter) { ...@@ -539,7 +390,7 @@ export function educationEffect(xAxisData, seriesBefore ,seriesAfter) {
{ {
name: "项目后总正确率", name: "项目后总正确率",
type: "bar", type: "bar",
barWidth: 10, barWidth: 18,
data: seriesAfter, data: seriesAfter,
label: { label: {
show: true, show: true,
...@@ -580,7 +431,12 @@ export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) { ...@@ -580,7 +431,12 @@ export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) {
return relVal; return relVal;
} }
}, },
color: ["#5D7092", "#FFB01B"], color: ["#FFB01B", "#5D7092"],
dataZoom: {
show: true,
start: 0,
end: 100
},
legend: { legend: {
data: ["培训前正确率", "培训后正确率"] data: ["培训前正确率", "培训后正确率"]
}, },
...@@ -595,6 +451,12 @@ export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) { ...@@ -595,6 +451,12 @@ export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) {
interval: 0, interval: 0,
rotate: 45 rotate: 45
}, },
axisLine: { //隐藏轴线
show: false
},
axisTick: { // 隐藏刻度
show: false
},
type: "category", type: "category",
data: xAxisData, data: xAxisData,
}, },
...@@ -602,6 +464,12 @@ export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) { ...@@ -602,6 +464,12 @@ export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) {
min: 0, min: 0,
max: 100, max: 100,
type: "value", type: "value",
axisLine: { //隐藏轴线
show: false
},
axisTick: { // 隐藏刻度
show: false
},
axisLabel: { axisLabel: {
formatter: "{value} %" formatter: "{value} %"
} }
...@@ -610,7 +478,7 @@ export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) { ...@@ -610,7 +478,7 @@ export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) {
{ {
name: "培训前正确率", name: "培训前正确率",
type: "bar", type: "bar",
barWidth: 10, barWidth: 18,
data: seriesBefore, data: seriesBefore,
label: { label: {
show: true, show: true,
...@@ -623,7 +491,7 @@ export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) { ...@@ -623,7 +491,7 @@ export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) {
{ {
name: "培训后正确率", name: "培训后正确率",
type: "bar", type: "bar",
barWidth: 10, barWidth: 18,
data: seriesAfter, data: seriesAfter,
label: { label: {
show: true, show: true,
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
<el-table-column prop="finishCount" label="完成培训人数" align="center"></el-table-column> <el-table-column prop="finishCount" label="完成培训人数" align="center"></el-table-column>
<el-table-column fixed="right" label="操作" min-width="50" align="center"> <el-table-column fixed="right" label="操作" min-width="50" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="checkName(scope.row)" type="text" size="small">查看名单</el-button> <el-button class="button-jump" @click="checkName(scope.row)" type="text" size="small">查看名单</el-button>
</template> </template>
</el-table-column> </el-table-column>
<div slot="empty"> <div slot="empty">
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
</el-table> </el-table>
<div class="pagination"> <div class="pagination">
<el-pagination <el-pagination
class="pagination"
background background
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
...@@ -146,10 +147,12 @@ export default { ...@@ -146,10 +147,12 @@ export default {
originalFlag: vm.formInline.checked == false ? 0 : 1, originalFlag: vm.formInline.checked == false ? 0 : 1,
regionId: vm.formInline.region[vm.formInline.region.length - 1], regionId: vm.formInline.region[vm.formInline.region.length - 1],
timeFlag: vm.formInline.timeFlag, timeFlag: vm.formInline.timeFlag,
pageNo: vm.pageNo,
pageSize: vm.pageSize,
}; };
// console.log("3 req", req); // console.log("3 req", req);
openLoading(vm); openLoading(vm);
vm.POST("stats/report/course/"+vm.pageNo+'/'+vm.pageSize, req).then(res => { vm.POST("stats/report/course", req).then(res => {
closeLoading(vm); closeLoading(vm);
if (res.code == "000000") { if (res.code == "000000") {
if (type !== 2) { if (type !== 2) {
...@@ -273,8 +276,16 @@ export default { ...@@ -273,8 +276,16 @@ export default {
} }
.course-table { .course-table {
top: 20px; top: 20px;
padding: 0 10px 0 10px; padding: 0;
margin-bottom: 20px; width: 95%;
margin:0 auto 20px auto;
.button-jump {
color: #449284;
}
}
.pagination {
margin-top: 30px;
margin-right: 13px;
} }
} }
</style> </style>
\ No newline at end of file
...@@ -24,36 +24,41 @@ ...@@ -24,36 +24,41 @@
</div> </div>
</div> </div>
<div class="date-table"> <div class="date-table">
<el-radio-group class="change-range" v-model="checkRange"> <el-tabs class="change-range" v-model="checkRange" type="card" @tab-click="handleCheckRange">
<el-radio-button label=1>累计</el-radio-button> <el-tab-pane label="累计" name="1"></el-tab-pane>
<el-radio-button label=2>新增</el-radio-button> <el-tab-pane label="新增" name="2"></el-tab-pane>
</el-radio-group> </el-tabs>
<el-radio-group class="change-date" v-model="checkTime" size="medium"> <el-radio-group class="change-date" v-model="checkTime" size="medium" @change="handleCheckTime">
<el-radio-button label=1></el-radio-button> <el-radio-button label="1"></el-radio-button>
<el-radio-button label=2></el-radio-button> <el-radio-button label="2"></el-radio-button>
<el-radio-button label=3></el-radio-button> <el-radio-button label="3"></el-radio-button>
<el-radio-button label=4></el-radio-button> <el-radio-button label="4"></el-radio-button>
</el-radio-group> </el-radio-group>
<el-table :data="tableDateTime" style="width: 100%"> <el-table :data="tableDateTime" style="width: 100%">
<el-table-column prop="date" label="日期" align="center" min-width="100"></el-table-column> <el-table-column prop="date" label="日期" align="center" min-width="100"></el-table-column>
<el-table-column prop="shouldOrgan" label="应参与机构数" align="center"></el-table-column> <el-table-column prop="hospitalCount" label="应参与机构数" align="center"></el-table-column>
<el-table-column prop="joinOrgan" label="已参与机构数" align="center"></el-table-column> <el-table-column prop="hospitalJoinCount" label="已参与机构数" align="center"></el-table-column>
<el-table-column prop="shouldPeople" label="应参与人数" align="center"></el-table-column> <el-table-column prop="doctorCount" label="应参与人数" align="center"></el-table-column>
<el-table-column prop="joinPeople" label="已参与人数" align="center"></el-table-column> <el-table-column prop="doctorJoinCount" label="已参与人数" align="center"></el-table-column>
<el-table-column prop="getPeople" label="获证人数" align="center"></el-table-column> <el-table-column prop="finishCount" label="获证人数" align="center"></el-table-column>
<el-table-column v-if="gradeFlag[0] == true" prop="grade1Count" label="优秀" align="center"></el-table-column>
<el-table-column v-if="gradeFlag[1] == true" prop="grade2Count" label="良好" align="center"></el-table-column>
<el-table-column v-if="gradeFlag[2] == true" prop="grade3Count" label="及格" align="center"></el-table-column>
<el-table-column v-if="gradeFlag[3] == true" prop="grade4Count" label="不及格" align="center"></el-table-column>
</el-table> </el-table>
<!-- <div class="pagination"> <div class="pagination">
<el-pagination <el-pagination
background background
@size-change="handleSizeDate" @size-change="handleSizeDwmy"
@current-change="handleCurrentDate" @current-change="handleCurrentDwmy"
:current-page="formTable.pageNo" :current-page="formDwmy.pageNo"
:page-sizes="[10, 20, 30, 100]" :page-sizes="[20, 30, 100 ,200]"
:page-size="formTable.pageSize" :page-size="formDwmy.pageSize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="totalRows" :total="totalCount"
></el-pagination> ></el-pagination>
</div> --> </div>
</div> </div>
<div class="spacing"></div> <div class="spacing"></div>
<div class="chart-title">证历分布情况</div> <div class="chart-title">证历分布情况</div>
...@@ -71,27 +76,29 @@ ...@@ -71,27 +76,29 @@
<div class="recordChart" id="recordChart" ref="recordChart"></div> <div class="recordChart" id="recordChart" ref="recordChart"></div>
<div class="data-text"> <div class="data-text">
<div class="content-text"> <div class="content-text">
<p v-for="item in recordList" :key="item.value">{{item.label}}{{item.value}}</p> <p v-for="item in recordList" >{{item.label}}{{item.value}}</p>
</div> </div>
</div> </div>
</div> </div>
<!-- <el-select class="chart-select" v-model="rankType" placeholder="请选择"> <div class="spacing"></div>
<el-option <div class="chart-title-more">
v-for="item in rankOptions" <p>项目排名情况</p>
:key="item.value" <el-radio-group class="rank-radio" size="medium" v-model="rankType" @change="changeRank">
:label="item.label" <el-radio-button label="1">按获证人数排名</el-radio-button>
:value="item.value" <el-radio-button label="2">按获证比例排名</el-radio-button>
></el-option> <el-radio-button label="3">按参与人数排名</el-radio-button>
</el-select>--> </el-radio-group>
<div class="chart-title">培训情况排名</div> </div>
<div class="chart" id="certificateChart" ref="certificateChart"></div> <div class="chartCert" id="certificateChart" ref="certificateChart"></div>
<div class="spacing"></div>
<div class="chart-title">在线培训完成时长情况</div> <div class="chart-title">在线培训完成时长情况</div>
<div class="chart" id="durationChart" ref="durationChart"></div> <div class="chartDuration" id="durationChart" ref="durationChart"></div>
<div class="chart-remarks">注:在线培训完成时长=完成项目时间-开始参与项目时间</div>
</div> </div>
<div v-if="dataType == 1" class="data-table"> <div v-if="dataType == 1" class="data-table">
<div class="box-list"> <div class="box-list">
<div v-for="(item , index) in cardData" :key="index" class="box"> <div v-for="(item , index) in cardData" :key="index" class="box">
<el-card class="box-card box-card2"> <el-card class="box-card box-card2" v-bind:class="{ 'box-last': index == 1 }">
<el-tooltip class="item-tool" placement="bottom-end" effect="light"> <el-tooltip class="item-tool" placement="bottom-end" effect="light">
<div slot="content"> <div slot="content">
<p v-for="text in item.content">{{ text }}</p> <p v-for="text in item.content">{{ text }}</p>
...@@ -108,35 +115,94 @@ ...@@ -108,35 +115,94 @@
<p class="should">{{ item.shouldKey }}:{{ item.shouldNum }}</p> <p class="should">{{ item.shouldKey }}:{{ item.shouldNum }}</p>
</div> </div>
</el-card> </el-card>
<!-- <div v-if="index+1 !== cardData.length" class="line"></div> -->
</div> </div>
</div> </div>
<div class="date-table">
<el-tabs class="change-range" v-model="checkRange" type="card" @tab-click="handleCheckRange">
<el-tab-pane label="累计" name="1"></el-tab-pane>
<el-tab-pane label="新增" name="2"></el-tab-pane>
</el-tabs>
<el-radio-group class="change-date" v-model="checkTime" size="medium" @change="handleCheckTime">
<el-radio-button label="1"></el-radio-button>
<el-radio-button label="2"></el-radio-button>
<el-radio-button label="3"></el-radio-button>
<el-radio-button label="4"></el-radio-button>
</el-radio-group>
<el-table :data="tableDateTime" style="width: 100%">
<el-table-column prop="date" label="日期" align="center" min-width="100"></el-table-column>
<el-table-column prop="hospitalCount" label="应参与机构数" align="center"></el-table-column>
<el-table-column prop="hospitalJoinCount" label="已参与机构数" align="center"></el-table-column>
<el-table-column prop="doctorCount" label="应参与人数" align="center"></el-table-column>
<el-table-column prop="doctorJoinCount" label="已参与人数" align="center"></el-table-column>
<el-table-column prop="finishCount" label="获证人数" align="center"></el-table-column>
<el-table-column v-if="gradeFlag[0] == true" prop="grade1Count" label="优秀" align="center"></el-table-column>
<el-table-column v-if="gradeFlag[1] == true" prop="grade2Count" label="良好" align="center"></el-table-column>
<el-table-column v-if="gradeFlag[2] == true" prop="grade3Count" label="及格" align="center"></el-table-column>
<el-table-column v-if="gradeFlag[3] == true" prop="grade4Count" label="不及格" align="center"></el-table-column>
</el-table>
<div class="pagination">
<el-pagination
background
@size-change="handleSizeDwmy"
@current-change="handleCurrentDwmy"
:current-page="formDwmy.pageNo"
:page-sizes="[20, 30, 100 ,200]"
:page-size="formDwmy.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalCount"
></el-pagination>
</div>
</div>
<div class="spacing"></div>
<div class="person"> <div class="person">
<div class="person-title">项目人员情况</div> <div class="person-title">项目人员情况</div>
<!-- <el-radio-group class="person-radio" v-model="tableType" @change="change"> <el-tabs class="tabs-person" v-model="tableType" type="card" @tab-click="handlePerson">
<el-radio-button label="0">已获证</el-radio-button> <el-tab-pane label="已获证" name="1"></el-tab-pane>
<el-radio-button label="1">未获证</el-radio-button> <el-tab-pane label="未获证" name="2"></el-tab-pane>
<el-radio-button label="2">未参与</el-radio-button> <el-tab-pane label="未参与" name="3"></el-tab-pane>
</el-radio-group> --> </el-tabs>
<el-table :data="tableData" style="width: 100%"> <el-table :data="tableData" class="person-table">
<el-table-column prop="rank" label="排名" align="center"></el-table-column> <el-table-column prop="certGrade" label="排名" align="center"></el-table-column>
<el-table-column prop="name" label="姓名" align="center"></el-table-column> <el-table-column prop="doctorName" label="姓名" align="center"></el-table-column>
<el-table-column prop="sex" label="性别" align="center"></el-table-column> <el-table-column prop="sex" label="性别" align="center">
<el-table-column prop="department" label="科室" align="center"></el-table-column> <template slot-scope="scope">
<el-table-column prop="join" label="是否参与项目" align="center"></el-table-column> <span>{{ scope.row.sex | sexValue}}</span>
<el-table-column prop="complete" label="是否完成项目" align="center"></el-table-column> </template>
<el-table-column prop="grade" label="证书级别" align="center"></el-table-column> </el-table-column>
<el-table-column prop="certificateDate" label="获证日期" align="center"></el-table-column> <el-table-column prop="departmentName" label="科室" align="center"></el-table-column>
<el-table-column prop="record" label="成绩" align="center"></el-table-column> <el-table-column prop="joinFlag" label="是否参与项目" align="center">
<el-table-column prop="learnTime" label="学习时长" align="center"></el-table-column> <template slot-scope="scope">
<span>{{ scope.row.joinFlag | joinFlagValue}}</span>
</template>
</el-table-column>
<el-table-column prop="finishFlag" label="是否完成项目" align="center">
<template slot-scope="scope">
<span>{{ scope.row.finishFlag | finishFlagValue}}</span>
</template>
</el-table-column>
<el-table-column prop="certGrade" label="证书级别" align="center">
<template slot-scope="scope">
<span>{{ scope.row.certGrade | certGradeValue}}</span>
</template>
</el-table-column>
<el-table-column prop="finishDate" label="获证日期" align="center"></el-table-column>
<el-table-column prop="score" label="成绩" align="center"></el-table-column>
<el-table-column prop="learnTime" min-width="150" label="学习时长" align="center">
<template slot-scope="scope">
<span>{{ scope.row.learnTime | learnTimeValue}}</span>
</template>
</el-table-column>
</el-table> </el-table>
<div class="chart-remarks">注:本报表数据来源仅包括有摸底考的课程培训。</div>
<div class="pagination"> <div class="pagination">
<el-pagination <el-pagination
class="pagination"
background background
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:current-page="formTable.pageNo" :current-page="formTable.pageNo"
:page-sizes="[10, 20, 30, 100]" :page-sizes="[10, 20, 30, 100 ,200]"
:page-size="formTable.pageSize" :page-size="formTable.pageSize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="totalRows" :total="totalRows"
...@@ -167,14 +233,14 @@ export default { ...@@ -167,14 +233,14 @@ export default {
}, },
organizationList: { organizationList: {
type: Array type: Array
} },
}, },
data() { data() {
return { return {
roleType: "L1", roleType: "L1",
projectId: "", projectId: "",
dataType: 0, dataType: 0,
tableType: "0", tableType: "1",
echartsData: { echartsData: {
chart0: {}, chart0: {},
chart1: {}, chart1: {},
...@@ -184,7 +250,7 @@ export default { ...@@ -184,7 +250,7 @@ export default {
distributeList: [], distributeList: [],
recordList: [], recordList: [],
cardData: [], cardData: [],
rankType: 1, rankType: "1",
rankOptions: [ rankOptions: [
{ {
value: 1, value: 1,
...@@ -198,38 +264,102 @@ export default { ...@@ -198,38 +264,102 @@ export default {
tableData: [], tableData: [],
tableDateTime: [], tableDateTime: [],
totalRows: 0, totalRows: 0,
formDwmy: {
pageNo: 1,
pageSize: 20,
},
formTable: { formTable: {
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 20,
}, },
checkRange: 1, checkRange: "1",
checkTime: 1, checkTime: "1",
totalCount: 0,
gradeFlag: [false, false, false, false],
hospitalCnt: '',
hospitalId: [],
}; };
}, },
created() { created() {
vm = this; vm = this;
vm.projectId = vm.getUrlSearch(window.location.href, "id"); vm.projectId = vm.getUrlSearch(window.location.href, "id");
// vm.initCard();
// if(vm.dataType == 0) {
// vm.setTableDate();
// setTimeout(function() {
// vm.setDistributeChart();
// vm.setRecordChart();
// vm.setDurationChart();
// vm.setCertificateChart();
// }, 500);
// } else {
// vm.setTable();
// }
}, },
mounted: function() { mounted: function() {
this.$on("search", () => { this.$on("search", () => {
vm.checkRange = 1; vm.gethHspitalsCnt();
vm.checkTime = 1,
this.search();
}); });
}, },
methods: { methods: {
gethHspitalsCnt() {
let req = {
projectId: vm.projectId,
regionId: vm.formInline.region[vm.formInline.region.length - 1]
};
vm.GET("stats/region/hospitals/cnt", req).then(res => {
if (res.code == "000000") {
vm.hospitalCnt = res.data.hospitalCnt;
vm.hospitalCnt = 1;
if(vm.hospitalCnt == 1) {
vm.hospitalId[0] = res.data.list[0].hospitalId;
}
vm.searchType();
}
});
},
searchType() {
if(vm.formInline.organization.length == 1) {
vm.dataType = 1;
} else {
if(vm.hospitalCnt == 1) {
vm.dataType = 1;
} else {
vm.dataType = 0;
}
}
console.log('vm.hospitalCnt',vm.hospitalCnt);
if(vm.dataType == 0) {
vm.checkRange = "1";
vm.checkTime = "1",
this.search();
this.searchDwmy();
} else {
this.searchDwmy();
this.searchPerson();
}
},
searchPerson(type) {
let req = {
projectId: vm.projectId,
beginDate: operationData.setDuringTime(vm.formInline.during,'begin'),
endDate: operationData.setDuringTime(vm.formInline.during,'end'),
hospitalIdList: vm.formInline.organization,
originalFlag: vm.formInline.checked == false ? 0 : 1,
regionId: vm.formInline.region[vm.formInline.region.length - 1],
timeFlag: vm.formInline.timeFlag,
pageNo: vm.formTable.pageNo,
pageSize: vm.formTable.pageSize,
};
openLoading(vm);
if(req.regionId == "000") {
req.regionId = "310";
}
// console.log("0 req", req);
vm.POST("stats/report/generalPersonal/"+vm.tableType, req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
if(type != 1) {
vm.initCard(res.data.percentData);
}
vm.totalRows = res.data.totalSize;
vm.tableData = res.data.personData;
}
});
},
handlePerson(tab, event) {
vm.tableType = tab.name;
vm.formTable.pageNo = 1;
vm.searchPerson(1);
},
search() { search() {
let req = { let req = {
projectId: vm.projectId, projectId: vm.projectId,
...@@ -251,11 +381,47 @@ export default { ...@@ -251,11 +381,47 @@ export default {
vm.initCard(res.data.percentData); vm.initCard(res.data.percentData);
vm.setDistributeChart(res.data.certData); vm.setDistributeChart(res.data.certData);
vm.setRecordChart(res.data.eduData); vm.setRecordChart(res.data.eduData);
vm.setDurationChart(); vm.setCertificateChart(res.data.studyRank);
vm.setCertificateChart(); vm.setDurationChart(res.data.costRank);
} }
}); });
}, },
searchDwmy() {
let req = {
projectId: vm.projectId,
beginDate: operationData.setDuringTime(vm.formInline.during,'begin'),
endDate: operationData.setDuringTime(vm.formInline.during,'end'),
hospitalIdList: vm.formInline.organization,
originalFlag: vm.formInline.checked == false ? 0 : 1,
regionId: vm.formInline.region[vm.formInline.region.length - 1],
timeFlag: vm.formInline.timeFlag,
timeType: parseInt(vm.checkTime),
dataType: parseInt(vm.checkRange),
pageNo: vm.formDwmy.pageNo,
pageSize: vm.formDwmy.pageSize,
};
openLoading(vm);
vm.POST("stats/dwmy/", req).then(res => {
closeLoading(vm);
if (res.code == "000000") {
vm.tableDateTime = res.data.list;
vm.totalCount = res.data.totalCount;
for(let i=0 ; i < res.data.title.length ; i++) {
vm.gradeFlag[i] = res.data.title[i].show;
}
}
});
},
handleCheckRange(tab, event) {
vm.formDwmy.pageNo = 1;
vm.checkRange = tab.name;
vm.searchDwmy();
},
handleCheckTime(value) {
vm.formDwmy.pageNo = 1;
vm.timeType = value;
vm.searchDwmy();
},
initCard(data) { initCard(data) {
let cardData = [ let cardData = [
{ {
...@@ -298,8 +464,6 @@ export default { ...@@ -298,8 +464,6 @@ export default {
] ]
} }
]; ];
if(vm.dataType == 0) {
cardData[0].value = data.hospitalRate*100 + '%'; cardData[0].value = data.hospitalRate*100 + '%';
cardData[0].hasNum = data.hospitalJoinCount; cardData[0].hasNum = data.hospitalJoinCount;
cardData[0].shouldNum = data.hospitalCount; cardData[0].shouldNum = data.hospitalCount;
...@@ -307,7 +471,7 @@ export default { ...@@ -307,7 +471,7 @@ export default {
cardData[1].value = data.doctorRate*100 + '%'; cardData[1].value = data.doctorRate*100 + '%';
cardData[1].hasNum = data.joinCount; cardData[1].hasNum = data.joinCount;
cardData[1].shouldNum = data.doctorCount; cardData[1].shouldNum = data.doctorCount;
if(vm.dataType == 0) {
cardData[2].value = data.certificateRate*100 + '%'; cardData[2].value = data.certificateRate*100 + '%';
cardData[2].hasNum = data.finishCount; cardData[2].hasNum = data.finishCount;
cardData[2].shouldNum = data.doctorCount; cardData[2].shouldNum = data.doctorCount;
...@@ -317,18 +481,6 @@ export default { ...@@ -317,18 +481,6 @@ export default {
vm.cardData = cardData.slice(0,2); vm.cardData = cardData.slice(0,2);
} }
}, },
setTableDate() {
vm.tableDateTime = [
{
date: '2019-11-15',
shouldOrgan: 7900,
joinOrgan: 7900,
shouldPeople: 8000,
joinPeople: 8000,
getPeople: 8000,
}
];
},
updateResize() { updateResize() {
setTimeout(function() { setTimeout(function() {
window.onresize = function() { window.onresize = function() {
...@@ -339,8 +491,6 @@ export default { ...@@ -339,8 +491,6 @@ export default {
}; };
},100); },100);
}, },
setInitWidth() {
},
setDistributeChart(data) { setDistributeChart(data) {
let keyName = ['未获证人数','优秀人数','良好人数','及格人数','不及格人数']; let keyName = ['未获证人数','优秀人数','良好人数','及格人数','不及格人数'];
let keyName2 = ['未获证人数占比','优秀人数占比','良好人数占比','及格人数占比','不及格人数占比']; let keyName2 = ['未获证人数占比','优秀人数占比','良好人数占比','及格人数占比','不及格人数占比'];
...@@ -370,6 +520,10 @@ export default { ...@@ -370,6 +520,10 @@ export default {
}, },
setRecordChart(data) { setRecordChart(data) {
let recordList = [ let recordList = [
{
label: '博士后',
value: 0,
},
{ {
label: '博士', label: '博士',
value: 0, value: 0,
...@@ -395,62 +549,128 @@ export default { ...@@ -395,62 +549,128 @@ export default {
value: 0, value: 0,
}, },
] ]
let sum = []; let keyName = ['未获证人数','获优秀人数','获良好人数','获及格人数','获不及格人数'];
let legendData = [];
let xAxisData = ["博士后","博士", "硕士", "本科", "大专", "中专及以下", "其他"];
for(let i = 0; i<data.length; i++) { for(let i = 0; i<data.length; i++) {
console.log('data[i]',data[i].certList.length); // console.log('data[i]',data[i].certList);
let certList = data[i].certList; let certList = data[i].certList;
for(let j = 0; j < certList.length; i++) { legendData.push(keyName[data[i].certId]);
recordList[j].value += certList[j].value; for(let a = 0; a < certList.length ; a++) {
recordList[a].value += certList[a].value;
}
}
let seriesData = [];
let seriesArr = [];
let seriesName = [];
let index = 0;
for(let x = data.length - 1 ; x >= 0 ; x--) {
let certList = data[x].certList;
seriesArr[index] = [];
seriesName.push(keyName[data[x].certId]);
for(let y = 0; y < certList.length ; y++) {
seriesArr[index].push(certList[y].value);
}
index++;
}
for(let z = 0; z < seriesArr.length ; z++) {
let seriesObj = {
name: seriesName[z],
type: "bar",
stack: "总量",
barWidth: 18,
label: {
normal: {
show: true,
rotate: -90,
} }
},
data: seriesArr[z],
};
seriesData.push(seriesObj);
} }
// console.log('data',legendData,seriesArr,seriesData);
vm.recordList = recordList; vm.recordList = recordList;
let myChart = echarts.init(this.$refs.recordChart); let myChart = echarts.init(this.$refs.recordChart);
let option = chartData.recordOption(); let option = chartData.recordOption(legendData, xAxisData, seriesData);
myChart.setOption(option); myChart.setOption(option);
vm.echartsData.chart1 = myChart; vm.echartsData.chart1 = myChart;
vm.updateResize(); vm.updateResize();
}, },
setCertificateChart() { changeRank(value) {
let req = {
projectId: vm.projectId,
beginDate: operationData.setDuringTime(vm.formInline.during,'begin'),
endDate: operationData.setDuringTime(vm.formInline.during,'end'),
hospitalIdList: vm.formInline.organization,
originalFlag: vm.formInline.checked == false ? 0 : 1,
regionId: vm.formInline.region[vm.formInline.region.length - 1],
timeFlag: vm.formInline.timeFlag,
};
openLoading(vm);
if(req.regionId == "000") {
req.regionId = "310";
}
vm.POST("stats/report/studyRank/"+value, req).then(res => {
closeLoading(vm);
vm.setCertificateChart(res.data.studyRank);
});
},
setCertificateChart(data) {
let xAxisData = [];
let seriesJoin = [];
let seriesCert = [];
let seriesRate = [];
for(let i = 0 ; i < data.length ; i++) {
xAxisData.push(data[i].subName);
seriesJoin.push(data[i].joinCount);
seriesCert.push(data[i].certCount);
seriesRate.push(data[i].certRate);
}
let myChart = echarts.init(this.$refs.certificateChart); let myChart = echarts.init(this.$refs.certificateChart);
let option = chartData.certificateOption(); let option = chartData.certificateOption(xAxisData, seriesJoin, seriesCert, seriesRate);
myChart.setOption(option); myChart.setOption(option);
vm.echartsData.chart2 = myChart; vm.echartsData.chart2 = myChart;
vm.updateResize(); vm.updateResize();
}, },
setDurationChart() { setDurationChart(data) {
let xAxisData = [];
let seriesData = [];
for(let i = 0 ; i<data.length ; i++) {
xAxisData.push(data[i].subName);
seriesData.push(data[i].costTime);
}
let myChart = echarts.init(this.$refs.durationChart); let myChart = echarts.init(this.$refs.durationChart);
let option = chartData.durationOption(); let option = chartData.durationOption(xAxisData, seriesData);
myChart.setOption(option); myChart.setOption(option);
vm.echartsData.chart3 = myChart; vm.echartsData.chart3 = myChart;
vm.updateResize(); vm.updateResize();
}, },
//日周月年分页
handleSizeDwmy(val) {
console.log(`每页 ${val} 条`);
vm.formDwmy.pageSize = val;
vm.formDwmy.pageNo = 1;
vm.searchDwmy();
},
handleCurrentDwmy(val) {
console.log(`当前页: ${val}`);
vm.formDwmy.pageNo = val;
vm.searchDwmy();
},
//机构人员分页
handleSizeChange(val) { handleSizeChange(val) {
console.log(`每页 ${val} 条`); console.log(`每页 ${val} 条`);
vm.formTable.pageSize = val; vm.formTable.pageSize = val;
vm.formTable.pageNo = 1; vm.formTable.pageNo = 1;
vm.searchPerson(1);
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
console.log(`当前页: ${val}`); console.log(`当前页: ${val}`);
vm.formTable.pageNo = val; vm.formTable.pageNo = val;
vm.searchPerson(1);
}, },
setTable() {
vm.tableData = [
{
id: 1,
rank: 1,
name: '伊娟',
sex: '女',
department: '内科',
join: 1,
complete: 1,
grade: '1级',
certificateDate: '2019-10-11',
record: 100,
learnTime: '4小时23分34秒',
}
];
}
} }
}; };
</script> </script>
...@@ -544,8 +764,8 @@ export default { ...@@ -544,8 +764,8 @@ export default {
} }
} }
.box-card2 { .box-card2 {
width: 48%; width: 49%;
margin-right: 1%; margin-right: 2%;
} }
.box-last { .box-last {
margin-right: 0; margin-right: 0;
...@@ -562,13 +782,21 @@ export default { ...@@ -562,13 +782,21 @@ export default {
width: 100%; width: 100%;
margin-top: 20px; margin-top: 20px;
padding: 0 30px 0 30px; padding: 0 30px 0 30px;
.change-range {
.el-tabs__header {
margin-bottom: 0px;
}
.el-tabs__nav-scroll {
margin-left: 0px;
}
}
.change-date { .change-date {
position: relative; position: absolute;
float: right; top: 0px;
margin-bottom: 5px; right: 30px;
} }
} }
.chart-select { .rank-radio {
position: relative; position: relative;
} }
.chart-title { .chart-title {
...@@ -581,11 +809,51 @@ export default { ...@@ -581,11 +809,51 @@ export default {
line-height: 25px; line-height: 25px;
color: #000000; color: #000000;
} }
.chart { .chart-title-more {
position: relative;
width: 100%;
height: 70px;
p {
position: relative;
float: left;
width: 400px;
margin-top: 30px;
margin-left: 30px;
height: 25px;
font-size:18px;
font-weight:600;
line-height: 25px;
color: #000000;
}
.rank-radio {
position: relative;
margin: 30px 30px 0 0;
float: right;
.el-radio-button__inner {
padding: 7px 11px;
}
}
}
.chart-remarks {
position: relative;
height: 66px;
padding: 20px 0 30px 30px;
font-size: 16px;
font-weight: 400;
line-height: 16px;
color: #666666;
}
.chartCert {
position: relative; position: relative;
margin: 20px auto 0 auto; margin: 20px auto 0 auto;
width: 860px; width: 1064px;
height: 350px; height: 462px;
}
.chartDuration {
position: relative;
margin: 20px auto 0 auto;
width: 1064px;
height: 380px;
} }
.chart-distributeChart { .chart-distributeChart {
position: relative; position: relative;
...@@ -660,10 +928,24 @@ export default { ...@@ -660,10 +928,24 @@ export default {
position: relative; position: relative;
margin-top: 20px; margin-top: 20px;
width: 100%; width: 100%;
.tabs-person {
margin: 0 auto;
width: 95%;
.el-tabs__header {
margin-bottom: 0px;
}
.el-tabs__nav-scroll {
margin-left: 0px;
}
}
.person-title { .person-title {
position: relative;
margin: 30px 0 25px 30px;
height: 25px;
font-size:18px; font-size:18px;
font-weight:700; font-weight:600;
margin-bottom: 20px; line-height: 25px;
color: #000000;
} }
.person-radio { .person-radio {
margin-top: 10px; margin-top: 10px;
...@@ -684,6 +966,15 @@ export default { ...@@ -684,6 +966,15 @@ export default {
} }
} }
} }
.person-table {
padding: 0;
width: 95%;
margin:0 auto 20px auto;
}
.pagination {
margin-top: 30px;
margin-right: 13px;
}
} }
} }
</style> </style>
\ No newline at end of file
...@@ -13,13 +13,21 @@ ...@@ -13,13 +13,21 @@
<div class="spacing"></div> <div class="spacing"></div>
<div class="chart-title">完成项目考试次数情况</div> <div class="chart-title">完成项目考试次数情况</div>
<div class="chart" id="examTimes" ref="examTimes"></div> <div class="chart" id="examTimes" ref="examTimes"></div>
<div class="chart-remarks">注:本报表数据来源包括用户参加正式考试,不包含摸底考试</div> <div class="chart-remarks">注:本报表数据来源包括用户参加正式考试次数,不包含摸底考试次数</div>
<div class="spacing"></div> <div class="spacing"></div>
<div class="chart-title">完成项目考试分数情况</div> <!-- <div class="chart-title">完成项目考试分数情况</div> -->
<div class="chart-title-more">
<p>完成项目考试分数情况</p>
<el-radio-group class="rank-radio" size="medium" v-model="rankType" @change="changeRank">
<el-radio-button label="1">1分</el-radio-button>
<el-radio-button label="5">5分</el-radio-button>
<el-radio-button label="10">10分</el-radio-button>
</el-radio-group>
</div>
<div class="chart" id="examScore" ref="examScore"></div> <div class="chart" id="examScore" ref="examScore"></div>
<div class="chart-remarks">注:本报表数据来源包括用户参加正式考试,不包含摸底考试。</div>
<div class="spacing"></div> <div class="spacing"></div>
<div class="table"> <el-table :data="tableData" border class="exam-table">
<el-table :data="tableData" style="width: 100%" border>
<el-table-column prop="examType" label="类型" align="center"></el-table-column> <el-table-column prop="examType" label="类型" align="center"></el-table-column>
<el-table-column prop="examName" label="考试名" min-width="150" align="center"></el-table-column> <el-table-column prop="examName" label="考试名" min-width="150" align="center"></el-table-column>
<el-table-column prop="doctorCount" label="应参与考试人数" align="center"></el-table-column> <el-table-column prop="doctorCount" label="应参与考试人数" align="center"></el-table-column>
...@@ -33,7 +41,7 @@ ...@@ -33,7 +41,7 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="center" min-width="100"> <el-table-column label="操作" fixed="right" align="center" min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="goPage(scope.row)">查看名单</el-button> <el-button class="button-jump" type="text" size="small" @click="goPage(scope.row)">查看名单</el-button>
</template> </template>
</el-table-column> </el-table-column>
<div slot="empty"> <div slot="empty">
...@@ -43,10 +51,10 @@ ...@@ -43,10 +51,10 @@
</div> </div>
</div> </div>
</el-table> </el-table>
</div>
<!-- 分页 --> <!-- 分页 -->
<div class="pagination"> <div class="pagination">
<el-pagination <el-pagination
class="pagination"
background background
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
...@@ -97,7 +105,8 @@ export default { ...@@ -97,7 +105,8 @@ export default {
chart0: {}, chart0: {},
chart1: {} chart1: {}
}, },
scoreData: {} examData: {},
rankType: '1',
}; };
}, },
created() { created() {
...@@ -145,7 +154,7 @@ export default { ...@@ -145,7 +154,7 @@ export default {
vm.POST("stats/report/exam", req).then(res => { vm.POST("stats/report/exam", req).then(res => {
closeLoading(vm); closeLoading(vm);
if (res.code == "000000") { if (res.code == "000000") {
vm.scoreData = res.data; vm.examData = res.data;
vm.setCardData(res.data); vm.setCardData(res.data);
vm.setExamTimes(res.data.examTimesList); vm.setExamTimes(res.data.examTimesList);
vm.setExamScore(res.data.examScoreList); vm.setExamScore(res.data.examScoreList);
...@@ -230,6 +239,16 @@ export default { ...@@ -230,6 +239,16 @@ export default {
vm.echartsData.chart0 = myChart; vm.echartsData.chart0 = myChart;
vm.updateResize(); vm.updateResize();
}, },
changeRank(value) {
console.log(value);
if(value == '1') {
vm.setExamScore(vm.examData.examScoreList);
} else if(value == '5') {
vm.setExamScore(vm.examData.fiveExamScoreList);
} else if(value == '10') {
vm.setExamScore(vm.examData.tenExamScoreList);
}
},
setExamScore(data) { setExamScore(data) {
let myChart = echarts.init(this.$refs.examScore); let myChart = echarts.init(this.$refs.examScore);
let xAxisData = []; let xAxisData = [];
...@@ -356,23 +375,66 @@ export default { ...@@ -356,23 +375,66 @@ export default {
} }
.chart-title { .chart-title {
position: relative; position: relative;
margin-top: 17px; margin-top: 30px;
margin-left: 30px; margin-left: 30px;
height: 25px;
font-size:18px;
font-weight:600;
line-height: 25px;
color: #000000;
}
.chart-title-more {
position: relative;
width: 100%; width: 100%;
height: 60px; height: 70px;
font-size: 18px; p {
font-weight: 600; position: relative;
line-height: 60px; float: left;
width: 400px;
margin-top: 30px;
margin-left: 30px;
height: 25px;
font-size:18px;
font-weight:600;
line-height: 25px;
color: #000000; color: #000000;
} }
.rank-radio {
position: relative;
margin: 30px 30px 0 0;
float: right;
.el-radio-button__inner {
padding: 7px 29px;
}
}
}
.chart { .chart {
position: relative; position: relative;
margin: 20px auto 0 auto; margin: 0 auto 0 auto;
width: 860px; width: 1064px;
height: 350px; height: 380px;
} }
.chart-remarks { .chart-remarks {
position: relative; position: relative;
height: 66px;
padding: 20px 0 30px 30px;
font-size: 16px;
font-weight: 400;
line-height: 16px;
color: #666666;
}
.exam-table {
top: 20px;
padding: 0;
width: 95%;
margin:0 auto 20px auto;
.button-jump {
color: #449284;
}
}
.pagination {
margin-top: 30px;
margin-right: 13px;
} }
} }
</style> </style>
...@@ -12,10 +12,12 @@ ...@@ -12,10 +12,12 @@
</div> </div>
<div class="spacing"></div> <div class="spacing"></div>
<div class="chart-title">不同学历完成项目前后正确率对比</div> <div class="chart-title">不同学历完成项目前后正确率对比</div>
<div class="chart" ref="education"></div> <div class="chartEdu" ref="education"></div>
<div class="chart-remarks">注:本报表数据来源仅仅统计同时包含摸底考和正式考的课程培训。</div>
<div class="spacing"></div> <div class="spacing"></div>
<div class="chart-title">培训前后知识点掌握情况</div> <div class="chart-title">培训前后知识点掌握情况</div>
<div class="chart" ref="learning"></div> <div class="chartLearn" ref="learning"></div>
<div class="chart-remarks">注:本报表数据来源仅包括有摸底考的课程培训。</div>
</div> </div>
</template> </template>
...@@ -190,21 +192,34 @@ export default { ...@@ -190,21 +192,34 @@ export default {
} }
.chart-title { .chart-title {
position: relative; position: relative;
margin-top: 17px; margin-top: 30px;
margin-left: 30px; margin-left: 30px;
width: 100%; height: 25px;
height: 60px; font-size:18px;
font-size: 18px; font-weight:600;
font-weight: 600; line-height: 25px;
line-height: 60px;
color: #000000; color: #000000;
} }
.chart { .chartEdu {
position: relative;
margin: 20px auto 0 auto;
width: 1064px;
height: 380px;
}
.chartLearn {
position: relative; position: relative;
margin: 20px auto 0 auto; margin: 20px auto 0 auto;
// width: 100%; width: 1064px;
width: 860px; height: 462px;
height: 350px; }
.chart-remarks {
position: relative;
height: 66px;
padding: 20px 0 30px 30px;
font-size: 16px;
font-weight: 400;
line-height: 16px;
color: #666666;
} }
} }
</style> </style>
...@@ -261,6 +261,8 @@ export default { ...@@ -261,6 +261,8 @@ export default {
} }
], ],
areaLen: 1, areaLen: 1,
hospitalCnt: 0,
hospitalId: [],
}; };
}, },
computed: { computed: {
...@@ -285,21 +287,6 @@ export default { ...@@ -285,21 +287,6 @@ export default {
}, },
methods: { methods: {
getDisplay(type) { getDisplay(type) {
// let req = {
// projectId: vm.projectId,
// projectName: vm.projectName,
// };
// openLoading(vm);
// vm.reportGET("report/portal/display", req).then(res => {
// closeLoading(vm);
// if (res.code == "000000") {
// vm.showOriginal = res.data.status;
// vm.roleType = res.data.roleType;
// vm.displayExam = res.data.existExam;
// vm.flag = res.data.flag;
// }
// });
let reqInfo = { let reqInfo = {
projectId: vm.projectId, projectId: vm.projectId,
}; };
...@@ -436,6 +423,23 @@ export default { ...@@ -436,6 +423,23 @@ export default {
vm.optionsRegion = operationData.setRegionOptionNew( vm.optionsRegion = operationData.setRegionOptionNew(
res.data.list res.data.list
); );
// vm.gethHspitalsCnt();
vm.search();
}
});
},
gethHspitalsCnt() {
let req = {
projectId: vm.projectId,
regionId: vm.formInline.region[vm.formInline.region.length - 1]
};
vm.GET("stats/region/hospitals/cnt", req).then(res => {
if (res.code == "000000") {
vm.hospitalCnt = res.data.hospitalCnt;
vm.hospitalCnt = 1;
if(vm.hospitalCnt == 1) {
vm.hospitalId[0] = res.data.list[0].hospitalId;
}
vm.search(); vm.search();
} }
}); });
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册