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

课程、考试跳转人员

上级 bdc6e2fd
...@@ -342,5 +342,14 @@ const vueFilter = { ...@@ -342,5 +342,14 @@ const vueFilter = {
return '不及格'; return '不及格';
} }
}, },
finishFlagType: (value) => {
if(value == 0) {
return '未参与';
} else if(value == 1) {
return '未完成';
} else if(value == 2) {
return '已完成';
}
},
} }
export default vueFilter export default vueFilter
\ No newline at end of file
...@@ -313,7 +313,7 @@ export function durationOption(xAxisData, seriesData) { ...@@ -313,7 +313,7 @@ export function durationOption(xAxisData, seriesData) {
return option; return option;
} }
export function educationEffect(xAxisData, seriesBefore ,seriesAfter) { export function educationEffect(xAxisData, seriesBefore, seriesAfter) {
let option = { let option = {
title: { title: {
text: "" text: ""
...@@ -405,7 +405,7 @@ export function educationEffect(xAxisData, seriesBefore ,seriesAfter) { ...@@ -405,7 +405,7 @@ export function educationEffect(xAxisData, seriesBefore ,seriesAfter) {
return option; return option;
} }
export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) { export function knowledgeEffect(xAxisData, seriesBefore, seriesAfter) {
let option = { let option = {
title: { title: {
text: "" text: ""
...@@ -429,7 +429,7 @@ export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) { ...@@ -429,7 +429,7 @@ export function knowledgeEffect(xAxisData, seriesBefore ,seriesAfter) {
": " + params[j].value + "%"; ": " + params[j].value + "%";
} }
return relVal; return relVal;
} }
}, },
color: ["#FFB01B", "#5D7092"], color: ["#FFB01B", "#5D7092"],
dataZoom: { dataZoom: {
...@@ -638,4 +638,55 @@ export function examScore(xAxisData, seriesData) { ...@@ -638,4 +638,55 @@ export function examScore(xAxisData, seriesData) {
] ]
}; };
return option; return option;
}
export function ringOption(num , color) {
let option = {
title: {
text: num+'%',
x: 'center',
y: 'center',
textStyle: {
fontSize: 24,
fontWeight: 'normal',
color: '#000000',
},
subtextStyle: {
color: "#000000",
fontWeight: 'normal'
}
},
series: [{
type: 'pie',
radius: ['100%', '80%'],
// silent: true,
labelLine: {
show: false
},
data: [{
hoverOffset: 1,
value: num,
itemStyle: {
color: color
},
label: {
show: false
}
},
{
markArea: {
silent: true,
},
value: 100 - num,
itemStyle: {
color: '#F0F2F5'
},
label: {
show: false
}
}
]
}]
};
return option;
} }
\ No newline at end of file
...@@ -121,7 +121,7 @@ export default { ...@@ -121,7 +121,7 @@ export default {
value: "0分钟" value: "0分钟"
} }
]; ];
cardData[0].value = data.pCourseCount+'门'; cardData[0].value = data.totalSize+'门';
cardData[1].value = data.pCourseTotalTime+"分钟"; cardData[1].value = data.pCourseTotalTime+"分钟";
cardData[2].value = operationData.getAvgTime(data.pCourseAvg); cardData[2].value = operationData.getAvgTime(data.pCourseAvg);
vm.cardData = cardData; vm.cardData = cardData;
...@@ -186,13 +186,12 @@ export default { ...@@ -186,13 +186,12 @@ export default {
); );
routerData.tableType = 1; routerData.tableType = 1;
routerData.courseId = data.courseId; routerData.courseId = data.courseId;
routerData.ids = operationData.getIds( routerData.beginDate = operationData.setDuringTime(vm.formInline.during, "begin"),
vm.formInline, routerData.endDate = operationData.setDuringTime(vm.formInline.during, "end"),
vm.organizationList, routerData.regionId = vm.formInline.region[vm.formInline.region.length - 1];
checkAll
);
routerData.type = operationData.getSearchType(vm.formInline, checkAll);
routerData.originalFlag = vm.formInline.checked == false ? 0 : 1; routerData.originalFlag = vm.formInline.checked == false ? 0 : 1;
routerData.timeFlag = vm.formInline.timeFlag;
routerData.hospitalIdList = vm.formInline.organization;
// this.$router.push({ path: '/name-list', query: routerData}); // this.$router.push({ path: '/name-list', query: routerData});
let routeData = this.$router.resolve({ let routeData = this.$router.resolve({
......
...@@ -18,7 +18,10 @@ ...@@ -18,7 +18,10 @@
<div class="sex"> <div class="sex">
<div class="sex-item" v-for="(item , index) in sexData" :key="index"> <div class="sex-item" v-for="(item , index) in sexData" :key="index">
<!-- <img class="sex-img" v-bind:src="item.src" /> --> <!-- <img class="sex-img" v-bind:src="item.src" /> -->
<el-progress class="sex-img" :color="item.color" :stroke-width=12 type="circle" :percentage="item.rate"></el-progress> <!-- <el-progress class="sex-img" :color="item.color" :stroke-width=12 type="circle" :percentage="item.rate"></el-progress> -->
<div v-if="index == 0" class="sex-img" id="ring0" ref="ring0"></div>
<div v-if="index == 1" class="sex-img" id="ring1" ref="ring1"></div>
<div v-if="index == 2" class="sex-img" id="ring2" ref="ring2"></div>
<p class="sex-num">{{ item.num }}</p> <p class="sex-num">{{ item.num }}</p>
<p class="sex-type">{{ item.type }}</p> <p class="sex-type">{{ item.type }}</p>
</div> </div>
...@@ -35,6 +38,7 @@ import { mapGetters } from "vuex"; ...@@ -35,6 +38,7 @@ import { mapGetters } from "vuex";
import { openLoading, closeLoading } from "../../utils/utils"; import { openLoading, closeLoading } from "../../utils/utils";
import * as commonUtil from "../../utils/utils"; import * as commonUtil from "../../utils/utils";
import * as operationData from "../../utils/operation"; import * as operationData from "../../utils/operation";
import * as chartData from "../../utils/learning/chartData";
import echarts from "echarts"; import echarts from "echarts";
import { setTimeout } from "timers"; import { setTimeout } from "timers";
let vm = null; let vm = null;
...@@ -56,7 +60,26 @@ export default { ...@@ -56,7 +60,26 @@ export default {
data() { data() {
return { return {
radio: 0, radio: 0,
sexData: [], sexData: [
{
color: '#1890FF',
type: "男性",
num: 0,
rate: 0,
},
{
color: '#FB5B52',
type: "女性",
num: 0,
rate: 0,
},
{
color: '#5D7092',
type: "未完善信息",
num: 0,
rate: 0,
}
],
projectId: "", projectId: "",
crowdData: {}, crowdData: {},
showData: true, showData: true,
...@@ -171,15 +194,37 @@ export default { ...@@ -171,15 +194,37 @@ export default {
} }
]; ];
let sum = 0; let sum = 0;
for(let i = 0 ; i<sexList.length; i++) {
sum += sexList[i].value; if(sexList.length > 0) {
sexData[i].num = sexList[i].value for(let i = 0 ; i<sexList.length; i++) {
sum += sexList[i].value;
// sexData[i].num = sexList[i].value;
}
sexData[0].num = sexList[1].value;
sexData[1].num = sexList[2].value;
sexData[2].num = sexList[0].value;
sexData[0].rate = Math.floor(sexList[1].value / sum *10000) / 100;
sexData[1].rate = Math.floor(sexList[2].value / sum *10000) / 100;
sexData[2].rate = Math.floor(sexList[0].value / sum *10000) / 100;
} }
sexData[0].rate = Math.floor(sexList[0].value / sum *10000) / 100;
sexData[1].rate = Math.floor(sexList[1].value / sum *10000) / 100; // console.log('this.$refs.ring0',this.$refs.ring0[0]);
let myChartRing0 = echarts.init(this.$refs.ring0[0]);
let option0 = chartData.ringOption(sexData[0].rate, sexData[0].color);
myChartRing0.setOption(option0);
let myChartRing1 = echarts.init(this.$refs.ring1[0]);
let option1 = chartData.ringOption(sexData[1].rate, sexData[1].color);
myChartRing1.setOption(option1);
let myChartRing2 = echarts.init(this.$refs.ring2[0]);
let option2 = chartData.ringOption(sexData[2].rate, sexData[2].color);
myChartRing2.setOption(option2);
vm.sexData = sexData; vm.sexData = sexData;
}, },
educationDivision(data) { educationDivision(data) {
console.log('this.$refs.education',this.$refs.education)
let myChart = echarts.init(this.$refs.education); let myChart = echarts.init(this.$refs.education);
let educationList = this.crowdData.eduList; let educationList = this.crowdData.eduList;
let legendData = []; let legendData = [];
...@@ -303,11 +348,11 @@ export default { ...@@ -303,11 +348,11 @@ export default {
left: 0; left: 0;
.sex-item { .sex-item {
float: left; float: left;
width: 33.33%; width: 184px;
.sex-img { .sex-img {
margin: 0 auto; margin: 0 auto;
position: relative; position: relative;
left: 16%; // left: 16%;
height: 125px; height: 125px;
width: 125px; width: 125px;
} }
......
...@@ -274,13 +274,13 @@ export default { ...@@ -274,13 +274,13 @@ export default {
); );
routerData.tableType = 2; routerData.tableType = 2;
routerData.examId = data.examId; routerData.examId = data.examId;
routerData.ids = operationData.getIds( routerData.beginDate = operationData.setDuringTime(vm.formInline.during, "begin"),
vm.formInline, routerData.endDate = operationData.setDuringTime(vm.formInline.during, "end"),
vm.organizationList, routerData.regionId = vm.formInline.region[vm.formInline.region.length - 1];
checkAll routerData.originalFlag = vm.formInline.checked == false ? 0 : 1;
); routerData.timeFlag = vm.formInline.timeFlag;
(routerData.type = operationData.getSearchType(vm.formInline, checkAll)), routerData.hospitalIdList = vm.formInline.organization;
(routerData.originalFlag = vm.formInline.checked == false ? 0 : 1);
// this.$router.push({ path: '/name-list', query: routerData}); // this.$router.push({ path: '/name-list', query: routerData});
let routeData = this.$router.resolve({ let routeData = this.$router.resolve({
......
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
<div class="button-group"> <div class="button-group">
<el-button v-if="roleType == 1 || roleType == 2" type="default" size="small" @click="changeDate">数据修改</el-button> <el-button v-if="roleType == 1 || roleType == 2" type="default" size="small" @click="changeDate">数据修改</el-button>
<!-- <el-button type="default" size="small" @click="update" v-else>修改范围</el-button> --> <!-- <el-button type="default" size="small" @click="update" v-else>修改范围</el-button> -->
<el-button type="default" size="small" :disabled="exportStatus" @click="exportPDF">导出PDF</el-button> <el-button type="default" size="small" @click="exportPDF">导出PDF</el-button>
<el-button type="default" size="small" :disabled="exportStatus" @click="exportExcel">导出明细</el-button> <el-button type="default" size="small" :disabled="exportStatus" @click="exportExcel">导出明细</el-button>
</div> </div>
<div class="item-tab"></div> <div class="item-tab"></div>
...@@ -242,13 +242,13 @@ export default { ...@@ -242,13 +242,13 @@ export default {
}, },
organizationNotice: '选择地区筛选到区才能选择机构', organizationNotice: '选择地区筛选到区才能选择机构',
dialogData: { dialogData: {
region: "", region: "全部",
// regionData: "", // regionData: "",
organization: "" organization: ""
// organizationData: "", // organizationData: "",
}, },
tags: [], tags: [],
activeName: "zero", activeName: "second",
organizationNum: 0, organizationNum: 0,
dialogVisible: false, dialogVisible: false,
dialogUpdate: false, dialogUpdate: false,
...@@ -331,7 +331,7 @@ export default { ...@@ -331,7 +331,7 @@ export default {
this.formInline.organization = []; this.formInline.organization = [];
this.tags = []; this.tags = [];
setTimeout(function() { setTimeout(function() {
// console.log(vm.$refs["cascaderRegion"].inputValue); console.log('行政区域改变',vm.$refs["cascaderRegion"].inputValue);
vm.dialogData.region = vm.$refs["cascaderRegion"].inputValue; vm.dialogData.region = vm.$refs["cascaderRegion"].inputValue;
// vm.dialogData.regionData = value[value.length-1]; // vm.dialogData.regionData = value[value.length-1];
// console.log('vm.dialogData.region',vm.dialogData.region) // console.log('vm.dialogData.region',vm.dialogData.region)
...@@ -430,10 +430,10 @@ export default { ...@@ -430,10 +430,10 @@ export default {
vm.GET("stats/region", req).then(res => { vm.GET("stats/region", req).then(res => {
closeLoading(vm); closeLoading(vm);
if (res.code == "000000") { if (res.code == "000000") {
vm.formInline.region[0] = res.data.list[0].id;
vm.optionsRegion = operationData.setRegionOptionNew( vm.optionsRegion = operationData.setRegionOptionNew(
res.data.list res.data.list
); );
vm.formInline.region[0] = res.data.list[0].id;
vm.search(); vm.search();
} }
}); });
...@@ -522,13 +522,6 @@ export default { ...@@ -522,13 +522,6 @@ export default {
} }
}, },
exportExcel() { exportExcel() {
if (vm.formInline.region.length == 0) {
const h = this.$createElement;
vm.$message({
message: h('p', { style: 'color: #FF3399' }, '请先选择地区后再进行导出 ')
});
return;
}
//按钮置灰三秒 //按钮置灰三秒
vm.exportStatus = true; vm.exportStatus = true;
setTimeout(function() { setTimeout(function() {
......
...@@ -31,8 +31,8 @@ ...@@ -31,8 +31,8 @@
<el-option <el-option
v-for="(item,index) in rankList" v-for="(item,index) in rankList"
:key="index" :key="index"
:label="item.gradeName" :label="item.label"
:value="item.gradeFlag" :value="item.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -46,25 +46,29 @@ ...@@ -46,25 +46,29 @@
</div> </div>
<el-table :data="tableData" class="course-table"> <el-table :data="tableData" class="course-table">
<el-table-column prop="doctorName" 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">
<template slot-scope="scope">
<span>{{ scope.row.sex | sexValue}}</span>
</template>
</el-table-column>
<el-table-column prop="age" label="年龄" align="center"></el-table-column> <el-table-column prop="age" label="年龄" align="center"></el-table-column>
<el-table-column prop="titleName" label="职称" align="center"></el-table-column> <el-table-column prop="titleName" label="职称" align="center"></el-table-column>
<el-table-column prop="hospitalName" label="机构" align="center"></el-table-column> <el-table-column prop="hospitalName" label="机构" align="center"></el-table-column>
<el-table-column prop="addressName" label="地区" align="center"></el-table-column> <el-table-column prop="addressName" label="地区" align="center"></el-table-column>
<el-table-column v-if="tableType == 1" prop="learnStatus" label="参与课程状态" align="center"> <el-table-column v-if="tableType == 1" prop="finishFlag" label="参与课程状态" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.learnStatus }}</span> <span>{{ scope.row.finishFlag | finishFlagType }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
v-if="tableType == 1" v-if="tableType == 1"
prop="finishedTime" prop="finishTime"
label="完成培训日期" label="完成培训日期"
align="center" align="center"
min-width="150" min-width="150"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.finishedTime }}</span> <span>{{ scope.row.finishTime }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -102,7 +106,7 @@ ...@@ -102,7 +106,7 @@
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:current-page="formData.pageNo" :current-page="formData.pageNo"
:page-sizes="[20, 50 ,100]" :page-sizes="[20, 50 ,100, 200]"
:page-size="formData.pageSize" :page-size="formData.pageSize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="totalRows" :total="totalRows"
...@@ -159,14 +163,47 @@ export default { ...@@ -159,14 +163,47 @@ export default {
}, },
{ {
value: 1, value: 1,
label: "参与中" label: "未完成"
}, },
{ {
value: 2, value: 2,
label: "已完成" label: "已完成"
} }
], ],
rankList: [], rankList: [
{
value: -1,
label: "全部"
},
{
value: 0,
label: "无成绩"
},
{
value: 1,
label: "优秀"
},
{
value: 2,
label: "良好"
},
{
value: 3,
label: "及格"
},
{
value: 4,
label: "不及格"
},
{
value: 5,
label: "通过"
},
{
value: 6,
label: "不通过"
},
],
queryData: {} queryData: {}
}; };
}, },
...@@ -200,9 +237,9 @@ export default { ...@@ -200,9 +237,9 @@ export default {
vm.curmbThird = vm.getUrlSearch(window.location.href, "projectName"); vm.curmbThird = vm.getUrlSearch(window.location.href, "projectName");
vm.jumPathFouth = '/item-list?id=' + vm.queryData.projectId + '&projectName=' + vm.queryData.projectName; vm.jumPathFouth = '/item-list?id=' + vm.queryData.projectId + '&projectName=' + vm.queryData.projectName;
console.log("queryData", vm.queryData); console.log("queryData", vm.queryData);
if(vm.queryData.type == 4) { // if(vm.queryData.hospitalIdList.length > 0) {
vm.getHostital(); // vm.getHostital();
} // }
}, },
searchData() { searchData() {
vm.formData.pageNo = 1; vm.formData.pageNo = 1;
...@@ -216,18 +253,22 @@ export default { ...@@ -216,18 +253,22 @@ export default {
// console.log('this.tableType',this.tableType) // console.log('this.tableType',this.tableType)
let req = { let req = {
projectId: query.projectId, projectId: query.projectId,
beginDate: query.beginDate,
endDate: query.endDate,
// hospitalIdList: query.hospitalIdList,
hospitalIdList: [],
originalFlag: query.originalFlag, originalFlag: query.originalFlag,
ids: query.ids, regionId: query.regionId,
type: query.type, timeFlag: query.timeFlag,
courseId: query.courseId, courseId: query.courseId,
learnFlag: vm.formData.learnFlag, type: vm.formData.learnFlag,
doctorName: vm.formData.doctorName, name: vm.formData.doctorName,
pageNo: vm.formData.pageNo, pageNo: vm.formData.pageNo,
pageSize: vm.formData.pageSize, pageSize: vm.formData.pageSize,
}; };
console.log("course req", req); console.log("course req", req);
openLoading(vm); openLoading(vm);
vm.reportGET("report/portalProjectCourse/getUserList", req).then(res => { vm.POST("stats/report/courseDetail", req).then(res => {
closeLoading(vm); closeLoading(vm);
if (res.code == "000000") { if (res.code == "000000") {
if(res.data.totalCount == 0 ) { if(res.data.totalCount == 0 ) {
...@@ -242,28 +283,32 @@ export default { ...@@ -242,28 +283,32 @@ export default {
} else if (this.tableType == 2) { } else if (this.tableType == 2) {
vm.curmbFouth = "考试培训情况"; vm.curmbFouth = "考试培训情况";
//考试分析 //考试分析
let reqRank = { // let reqRank = {
projectId: query.projectId, // }
} // vm.GET("stats/constants/certGrade", reqRank).then(res => {
vm.reportGET("report/portalProjectExam/getGradeList", reqRank).then(res => { // if (res.code == "000000") {
if (res.code == "000000") { // vm.rankList = operationData.initRank(res.data.list);
vm.rankList = operationData.initRank(res.data.list); // }
} // });
});
let req = { let req = {
projectId: query.projectId, projectId: query.projectId,
beginDate: query.beginDate,
endDate: query.endDate,
// hospitalIdList: query.hospitalIdList,
hospitalIdList: [],
originalFlag: query.originalFlag, originalFlag: query.originalFlag,
ids: query.ids, regionId: query.regionId,
type: query.type, timeFlag: query.timeFlag,
examId: query.examId, examId: query.examId,
gradeFlag: vm.formData.gradeFlag, gradeFlag: vm.formData.gradeFlag,
doctorName: vm.formData.doctorName, doctorName: vm.formData.doctorName,
pageNo: vm.formData.pageNo, pageNo: vm.formData.pageNo,
pageSize: vm.formData.pageSize, pageSize: vm.formData.pageSize,
}; };
console.log("exam req", req); // console.log("exam req", req);
openLoading(vm); openLoading(vm);
vm.reportGET("report/portalProjectExam/getUserList", req).then(res => { vm.POST("stats/report/getUserList", req).then(res => {
closeLoading(vm); closeLoading(vm);
if (res.code == "000000") { if (res.code == "000000") {
if(res.data.totalCount == 0 ) { if(res.data.totalCount == 0 ) {
...@@ -275,6 +320,8 @@ export default { ...@@ -275,6 +320,8 @@ export default {
vm.$message(res.message); vm.$message(res.message);
} }
}); });
} }
}, },
resetForm() { resetForm() {
...@@ -293,6 +340,7 @@ export default { ...@@ -293,6 +340,7 @@ export default {
handleSizeChange(val) { handleSizeChange(val) {
console.log(`每页 ${val} 条`); console.log(`每页 ${val} 条`);
this.formData.pageSize = val; this.formData.pageSize = val;
this.formData.pageNo = 1;
this.search(); this.search();
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册