'对接剩余三个报告'

main
JayChou 4 months ago
parent 112b09b2ea
commit 1e75ec486d
  1. 15
      jeecgboot-vue3-master/src/api/common/api.ts
  2. 18
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/components/cakeChart.vue
  3. 71
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/components/cardList.vue
  4. 12
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/components/cardList2.vue
  5. 22
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/components/cardList3.vue
  6. 16
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/components/cardList4.vue
  7. 2
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/components/cardList5.vue
  8. 16
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/components/cardList6.vue
  9. 23
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/components/cardList8.vue
  10. 126
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/components/randerChart.vue
  11. 19
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/components/ringChart.vue
  12. 98
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/comprehensiveReport.vue
  13. 80
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/department.vue
  14. 2
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/organizingCommittee.vue

@ -188,4 +188,19 @@ export const getOrganizingCommitteeReport = () => {
return defHttp.get({ return defHttp.get({
url:'/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/zwhfxbg' url:'/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/zwhfxbg'
}) })
}
// /user/login/homepage/report4School
// 学校综合报告
export const getComprehensiveReport = () => {
return defHttp.get({
url:'/user/login/homepage/report4School'
})
}
// 部门
// http://localhost:18083/jeecg-boot/user/login/homepage/report4Depart
export const getdepartmentReport = (params:any) => {
return defHttp.get({
url:'/user/login/homepage/report4School',
params
})
} }

@ -6,6 +6,9 @@
import echarts from '/@/utils/lib/echarts'; import echarts from '/@/utils/lib/echarts';
import { onMounted } from 'vue'; import { onMounted } from 'vue';
const props = defineProps(['data'])
console.log(props.data);
const throttle = (fn: any) => { const throttle = (fn: any) => {
let timer: any; let timer: any;
return function () { return function () {
@ -20,6 +23,12 @@
}; };
}; };
onMounted(() => { onMounted(() => {
let arr:any = []
for (const key in props.data) {
arr.push({value:props.data[key],name:key})
}
console.log(arr,props.data);
// @ts-ignore // @ts-ignore
const myChart = echarts.init(document.getElementById('cakeChart')); const myChart = echarts.init(document.getElementById('cakeChart'));
const option = { const option = {
@ -34,16 +43,11 @@
series: [ series: [
{ {
name: 'Access From', name: '国家ABC类比赛占比',
type: 'pie', type: 'pie',
radius: '60%', radius: '60%',
center:['50%','55%'], center:['50%','55%'],
data: [ data: arr,
{ value: 1048, name: '比赛一',itemStyle: {color: '#0052d9'} },
{ value: 735, name: '比赛二',itemStyle: {color: '#699ef5'} },
{ value: 580, name: '比赛三',itemStyle: {color: '#d9e1ff'} },
// { value: 484, name: '' ,itemStyle: {color: '#0052d9'}},
],
labelLine: { labelLine: {
show: false, show: false,
}, },

@ -6,13 +6,13 @@
<div class="table"> <div class="table">
<div class="t_item t_head"> <div class="t_item t_head">
<div class="name">能力名称</div> <div class="name">能力名称</div>
<div class="total">能力分数</div> <div class="operate">能力分数</div>
<div class="operate">达标情况</div> <!-- <div class="operate">达标情况</div> -->
</div> </div>
<div class="t_item t_con" v-for="(item,index) in props.data.splice(0,6)" :key="index"> <div class="t_item t_con" v-for="(item,index) in data.splice(0,6)" :key="index">
<div class="name">{{ item.text }}</div> <div class="name">{{ item.capacityName }}</div>
<div class="total">{{ item.max }}</div> <div class="operate">{{ item.value }}</div>
<div class="operate">达标</div> <!-- <div class="operate">达标</div> -->
</div> </div>
</div> </div>
<div class="table"> <div class="table">
@ -21,10 +21,10 @@
<div class="total">能力分数</div> <div class="total">能力分数</div>
<div class="operate">达标情况</div> <div class="operate">达标情况</div>
</div> </div>
<div class="t_item t_con" v-for="(item,index) in props.data.splice(-6)" :key="index"> <div class="t_item t_con" v-for="(item,index) in data.splice(-6)" :key="index">
<div class="name">{{ item.text }}</div> <div class="name">{{ item.capacityName }}</div>
<div class="total">{{ item.max }}</div> <div class="operate">{{ item.value }}</div>
<div class="operate">达标</div> <!-- <div class="operate">达标</div> -->
</div> </div>
</div> </div>
</div> </div>
@ -36,60 +36,61 @@
import { SvgIcon } from '/@/components/Icon'; import { SvgIcon } from '/@/components/Icon';
const props = defineProps({ const props = defineProps({
data: { DATA: {
type: Array, type: Array,
default: [ default: [
{ {
text: '前言探索', capacityName: '前言探索',
max: 100, value: 0,
}, },
{ {
text: '奠定基础', capacityName: '奠定基础',
max: 100, value: 0,
}, },
{ {
text: '知识分析', capacityName: '知识分析',
max: 100, value: 0,
}, },
{ {
text: '社会责任', capacityName: '社会责任',
max: 100, value: 0,
}, },
{ {
text: '独立思考', capacityName: '独立思考',
max: 100, value: 0,
}, },
{ {
text: '拓宽视野', capacityName: '拓宽视野',
max: 100, value: 0,
}, },
{ {
text: '激发兴趣', capacityName: '激发兴趣',
max: 100, value: 0,
}, },
{ {
text: '沟通协调', capacityName: '沟通协调',
max: 100, value: 0,
}, },
{ {
text: '设计开发', capacityName: '设计开发',
max: 100, value: 0,
}, },
{ {
text: '研判分析', capacityName: '研判分析',
max: 100, value: 0,
}, },
{ {
text: '创新能力', capacityName: '创新能力',
max: 100, value: 0,
}, },
{ {
text: '团队协作', capacityName: '团队协作',
max: 100, value: 0,
}, },
], ],
}, },
}); });
let data = JSON.parse(props.DATA)
let falg = false; let falg = false;
const unfold = () => { const unfold = () => {
const dom: any = document.querySelector('.foo_card') as Element; const dom: any = document.querySelector('.foo_card') as Element;

@ -11,12 +11,12 @@
<div class="total">比赛层次</div> <div class="total">比赛层次</div>
<div class="operate">参赛人数</div> <div class="operate">参赛人数</div>
</div> </div>
<div class="t_item t_con" v-for="(i) in 20" :key="i"> <div class="t_item t_con" v-for="(item,index) in props.data" :key="index">
<div class="name">国赛</div> <div class="name">{{ item.typeName }}</div>
<div class="total">全国高级计算机大赛</div> <div class="total">{{ item.compName }}</div>
<div class="total">计算机算法</div> <div class="total">{{item.pointName}}</div>
<div class="total">高级</div> <div class="total">{{ item.projectLevel }}</div>
<div class="operate">212</div> <div class="operate">{{ item.number }}</div>
</div> </div>
</div> </div>
</div> </div>

@ -10,17 +10,17 @@
<div class="name">比赛名称</div> <div class="name">比赛名称</div>
<div class="total">项目名称</div> <div class="total">项目名称</div>
<div class="total">层次</div> <div class="total">层次</div>
<div class="total">奖项数量</div> <div class="operate">奖项名称</div>
<div class="operate">数量</div> <!-- <div class="operate">数量</div> -->
</div> </div>
<div class="t_item t_con" v-for="i in 20" :key="i"> <div class="t_item t_con" v-for="(item,index) in props.data" :key="index">
<div class="name">国赛</div> <div class="name">{{ item.typeName }}</div>
<div class="name">全国高级计算机大赛</div> <div class="name">{{ item.pointName }}</div>
<div class="total">计算机比赛</div> <div class="total">{{ item.compName }}</div>
<div class="total">高级</div> <div class="total">{{ item.projectLevel }}</div>
<div class="total">100</div> <div class="operate">{{ item.awardName }}</div>
<div class="operate">76</div> <!-- <div class="operate">{{ item.number }}</div> -->
</div> </div>
</div> </div>
</div> </div>
@ -34,6 +34,8 @@
type: Array, type: Array,
}, },
}); });
console.log(props.data,'1121');
let falg = false; let falg = false;
const unfold = () => { const unfold = () => {
const dom: any = document.querySelector('.foo_card3') as Element; const dom: any = document.querySelector('.foo_card3') as Element;

@ -6,15 +6,15 @@
<div class="table"> <div class="table">
<div class="t_item t_head"> <div class="t_item t_head">
<div class="name">部门名称</div> <div class="name">部门名称</div>
<div class="total">参加比赛数</div> <div class="total">比赛总人</div>
<div class="operate">参加人数</div> <div class="total">个人赛人数</div>
<div class="operate">队伍</div> <div class="operate">团队赛人</div>
</div> </div>
<div class="t_item t_con" v-for="(i) in 20" :key="i"> <div class="t_item t_con" v-for="(item,index) in props.data" :key="index">
<div class="name">机电学院</div> <div class="name">{{ item.部门名称 }}</div>
<div class="total">1212</div> <div class="total">{{ item.比赛总人数 }}</div>
<div class="total">1212</div> <div class="total">{{ item.个人赛人数 }}</div>
<div class="operate">1212</div> <div class="operate">{{ item.团队赛人数 }}</div>
</div> </div>
</div> </div>
</div> </div>

@ -10,7 +10,7 @@
<!-- <div class="total">比赛状态</div> --> <!-- <div class="total">比赛状态</div> -->
<div class="operate">积分</div> <div class="operate">积分</div>
</div> </div>
<div class="t_item t_con" v-for="(i,index) in 20" :key="i"> <div class="t_item t_con" v-for="(i,index) in props.data" :key="i">
<div class="ranking"> <div class="ranking">
<div class="ol" :class="{ ac: index <= 3 }">{{ index +1 }}</div> <div class="ol" :class="{ ac: index <= 3 }">{{ index +1 }}</div>
</div> </div>

@ -7,21 +7,21 @@
<div class="t_item t_head"> <div class="t_item t_head">
<!-- <div class="ranking">排名</div> --> <!-- <div class="ranking">排名</div> -->
<div class="name">部门名称</div> <div class="name">部门名称</div>
<div class="total">获奖人数</div> <div class="operate">获奖人数</div>
<div class="total">一等奖</div> <!-- <div class="total">一等奖</div>
<div class="total">二等奖</div> <div class="total">二等奖</div>
<div class="operate">三等奖</div> <div class="operate">三等奖</div> -->
<!-- <div class="operate">积分</div> --> <!-- <div class="operate">积分</div> -->
</div> </div>
<div class="t_item t_con" v-for="(i,index) in 20" :key="i"> <div class="t_item t_con" v-for="(i,index) in props.data" :key="index">
<!-- <div class="ranking"> <!-- <div class="ranking">
<div class="ol" :class="{ ac: index <= 3 }">{{ index +1 }}</div> <div class="ol" :class="{ ac: index <= 3 }">{{ index +1 }}</div>
</div> --> </div> -->
<div class="name">机电学院</div> <div class="name">{{ i.部门名称 }}</div>
<div class="total">1212</div> <!-- <div class="total">1212</div>
<div class="total">4322</div> <div class="total">4322</div>
<div class="total">1212</div> <div class="total">1212</div> -->
<div class="operate">112</div> <div class="operate">{{ i.获取人数 }}</div>
</div> </div>
</div> </div>
</div> </div>

@ -1,20 +1,26 @@
<template> <template>
<div class="foo_card"> <div class="foo_card">
<!-- <div class="title"> 部门学生积分排名 </div> --> <div class="title"> 部门参赛情况分析 </div>
<div class="table"> <div class="table">
<div class="t_item t_head"> <div class="t_item t_head">
<div class="ranking">排名</div> <!-- <div class="ranking">排名</div> -->
<div class="name">参赛院系</div> <div class="name">部门名称</div>
<div class="name">团队赛人数</div>
<div class="name">个人赛人数</div>
<div class="operate">比赛总人数</div>
<!-- <div class="total">报名数</div> --> <!-- <div class="total">报名数</div> -->
<div class="operate">报名数</div> <!-- <div class="operate">报名数</div> -->
</div> </div>
<div class="t_item t_con" v-for="(i,index) in props.data" :key="index"> <div class="t_item t_con" v-for="(i,index) in props.data" :key="index">
<div class="ranking"> <!-- <div class="ranking">
<div class="ol" :class="{ ac: index <= 3 }">{{ i.pm}}</div> <div class="ol" :class="{ ac: index <= 3 }">{{ i.pm}}</div>
</div> </div> -->
<div class="name">{{ i.csyxname }}</div> <div class="name">{{ i.部门名称 }}</div>
<div class="operate">{{ i.bms }}</div> <div class="name">{{ i.团队赛人数 }}</div>
<div class="name">{{ i.个人赛人数 }}</div>
<div class="operate">{{ i.比赛总人数 }}</div>
<!-- <div class="operate">{{ i.bms }}</div> -->
</div> </div>
</div> </div>
</div> </div>
@ -47,6 +53,7 @@
font-size: 16px; font-size: 16px;
color: rgba(0, 0, 0, 0.85); color: rgba(0, 0, 0, 0.85);
position: relative; position: relative;
text-align: center;
&::before { &::before {
content: ''; content: '';

@ -7,7 +7,63 @@
<script lang='ts' setup> <script lang='ts' setup>
import echarts from '/@/utils/lib/echarts'; import echarts from '/@/utils/lib/echarts';
import { onMounted } from 'vue' import { onMounted,nextTick } from 'vue'
const props = defineProps({
data: {
type: Array,
default: [
{
text: '前言探索',
value: 0,
},
{
capacityName: '奠定基础',
value: 0,
},
{
capacityName: '知识分析',
value: 0,
},
{
capacityName: '社会责任',
value: 0,
},
{
capacityName: '独立思考',
value: 0,
},
{
capacityName: '拓宽视野',
value: 0,
},
{
capacityName: '激发兴趣',
value: 0,
},
{
capacityName: '沟通协调',
value: 0,
},
{
capacityName: '设计开发',
value: 0,
},
{
capacityName: '研判分析',
value: 0,
},
{
capacityName: '创新能力',
value: 0,
},
{
capacityName: '团队协作',
value: 0,
},
],
},
});
const throttle = (fn: any) => { const throttle = (fn: any) => {
let timer: any; let timer: any;
return function () { return function () {
@ -21,69 +77,21 @@ const throttle = (fn: any) => {
}, 1000); }, 1000);
}; };
}; };
onMounted(() => { let Data = props.data
console.log(Data, props.data);
nextTick(() => {
// @ts-ignore // @ts-ignore
const myChart = echarts.init(document.getElementById("rander-chart")); const myChart = echarts.init(document.getElementById("rander-chart"));
console.log(myChart); console.log(Data,1111);
// var legendData = ['']; // // var legendData = ['']; //
var indicator = [ var indicator =Data.map(item => {
{ return {name:item.capacityName,max:100}
text: "前言探索", });
max: 6000,
},
{
text: "奠定基础",
max: 5000,
},
{
text: "知识分析",
max: 5000,
},
{
text: "社会责任",
max: 5000,
},
{
text: "独立思考",
max: 5500,
},
{
text: "拓宽视野",
max: 5000,
},
{
text: "激发兴趣",
max: 5000,
},
{
text: "沟通协调",
max: 5000,
},
{
text: "设计开发",
max: 5000,
},
{
text: "研判分析",
max: 5000,
},
{
text: "创新能力",
max: 5000,
},
{
text: "团队协作",
max: 5000,
},
];
var dataArr = [ var dataArr = [
{ {
value: [ value:Data.map(item => item.value),
4000, 700, 3600, 3900, 1800, 4200, 700, 3600, 4200, 700, 3600, 4200,
700, 3600,
],
name: '年度维度分析', name: '年度维度分析',
itemStyle: { itemStyle: {
normal: { normal: {
@ -188,6 +196,10 @@ onMounted(() => {
myChart.resize(); myChart.resize();
}); });
window.addEventListener("resize", resize); window.addEventListener("resize", resize);
})
onMounted(() => {
}); });
</script> </script>

@ -8,6 +8,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import echarts from '/@/utils/lib/echarts'; import echarts from '/@/utils/lib/echarts';
import { SvgIcon } from '/@/components/Icon'; import { SvgIcon } from '/@/components/Icon';
const props = defineProps(['data'])
import { onMounted } from 'vue'; import { onMounted } from 'vue';
const throttle = (fn: any) => { const throttle = (fn: any) => {
@ -24,12 +25,19 @@
}; };
}; };
onMounted(() => { onMounted(() => {
let arr:any = []
for (const key in props.data) {
arr.push({value:props.data[key],name:key})
}
console.log(arr,props.data);
// @ts-ignore // @ts-ignore
const myChart = echarts.init(document.getElementById('ringChart')); const myChart = echarts.init(document.getElementById('ringChart'));
const option = { const option = {
title: { title: {
subtext: '线上渠道占比', subtext: '比赛获奖占比',
text: '78%', text: arr.reduce((accumulator, currentValue) => {
return accumulator + currentValue.value;
}, 0),
left: 'center', left: 'center',
top: '47%', top: '47%',
padding: [24, 0], padding: [24, 0],
@ -52,12 +60,7 @@
type: 'pie', type: 'pie',
center: ['50%', '55%'], center: ['50%', '55%'],
radius: ['30%', '45%'], radius: ['30%', '45%'],
data: [ data: arr,
{ value: 1048, name: '比赛一', itemStyle: { color: '#0052d9' } },
{ value: 735, name: '比赛二', itemStyle: { color: '#699ef5' } },
{ value: 580, name: '比赛三', itemStyle: { color: '#d9e1ff' } },
// { value: 484, name: '' ,itemStyle: {color: '#0052d9'}},
],
labelLine: { labelLine: {
show: false, show: false,
}, },

@ -1,17 +1,44 @@
<template> <template>
<div class="container"> <div class="container" v-if="isLoading">
<div class="title">河南机电学院比赛综合报告<div style="margin-left: 10px;cursor: pointer;"><SvgIcon name="log" @click="log"/></div></div> <div class="title">河南机电学院比赛综合报告<div style="margin-left: 10px;cursor: pointer;"><SvgIcon name="log" @click="log"/></div></div>
<p class="description" <p class="description"
>我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:</p >我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:</p
> >
<div class="card-content"> <div class="card-content">
<div class="item" v-for="item in 4" :key="item"> <div class="item">
<div class="top-title">本年度已开展比赛数</div> <div class="top-title">本年度已开展比赛数</div>
<div class="sum">88</div> <div class="sum">{{ data.本年度已开展比赛项目数 }}</div>
<div class="content"> <div class="content">
<div>国赛12</div> <div>国赛{{data.国赛}}</div>
<div>国赛12</div> <div>省赛{{ data.省赛 }}</div>
<div>国赛12</div> <div>校赛{{ data.校赛 }}</div>
</div>
</div>
<div class="item">
<div class="top-title">本年度已开展比赛数</div>
<div class="sum">{{ data.本年度已开展比赛数 }}</div>
<div class="content">
<div>国赛{{data.国赛}}</div>
<div>省赛{{ data.省赛 }}</div>
<div>校赛{{ data.校赛 }}</div>
</div>
</div>
<div class="item">
<div class="top-title">本年度参加比赛队伍数</div>
<div class="sum">{{ data.本年度参加比赛队伍数}}</div>
<div class="content">
<div>国赛{{data.国赛}}</div>
<div>省赛{{ data.省赛 }}</div>
<div>校赛{{ data.校赛 }}</div>
</div>
</div>
<div class="item">
<div class="top-title">已完成的比赛</div>
<div class="sum">{{ data.已完成的比赛 }}</div>
<div class="content">
<div>国赛{{data.国赛}}</div>
<div>省赛{{ data.省赛 }}</div>
<div>校赛{{ data.校赛 }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -23,10 +50,10 @@
<div class="year-content-top"> <div class="year-content-top">
<div class="left border-000"> <div class="left border-000">
<div class="border-title">年度维度分析</div> <div class="border-title">年度维度分析</div>
<randerChart /> <randerChart :data="data.学生能力平均值"/>
</div> </div>
<div class="right border-000"> <div class="right border-000">
<cardList /> <cardList :DATA="data12"/>
</div> </div>
</div> </div>
@ -69,11 +96,11 @@
<div class="left border-000"> <div class="left border-000">
<!-- <div class="border-title">年度维度分析</div> --> <!-- <div class="border-title">年度维度分析</div> -->
<cakeChart /> <cakeChart :data="data.比赛类型占比"/>
</div> </div>
</div> </div>
<div class="footer-edit border-000"> <div class="footer-edit border-000">
<cardList2 /> <cardList2 :data="data.学生参赛情况"/>
</div> </div>
</div> </div>
<cardTitle title="比赛学生获奖情况分析" /> <cardTitle title="比赛学生获奖情况分析" />
@ -87,11 +114,11 @@
</div> </div>
<div class="left border-000"> <div class="left border-000">
<!-- <div class="border-title">年度维度分析</div> --> <!-- <div class="border-title">年度维度分析</div> -->
<ringChart /> <ringChart :data="data.比赛获奖占比"/>
</div> </div>
</div> </div>
<div class="footer-edit border-000"> <div class="footer-edit border-000">
<cardList3 /> <cardList3 :data="data.比赛获奖情况列表"/>
</div> </div>
</div> </div>
<cardTitle title="部门参赛情况分析" /> <cardTitle title="部门参赛情况分析" />
@ -100,16 +127,16 @@
> >
<div class="participation-status-content"> <div class="participation-status-content">
<div class="right border-000"> <div class="right border-000">
<cardList4 /> <cardList4 :data="data.部门参赛情况列表"/>
</div> </div>
<div class="left border-000" style="height: auto"> <div class="left border-000" style="height: auto">
<!-- <div class="border-title">年度维度分析</div> --> <!-- <div class="border-title">年度维度分析</div> -->
<cardList5 /> <cardList5 :data="data.比赛学生积分况分析"/>
</div> </div>
</div> </div>
<div class="footer border-000"> <!-- <div class="footer border-000">
<cardList6 /> <cardList6 />
</div> </div> -->
</div> </div>
</template> </template>
@ -120,7 +147,7 @@
import cardList3 from './components/cardList3.vue'; import cardList3 from './components/cardList3.vue';
import cardList4 from './components/cardList4.vue'; import cardList4 from './components/cardList4.vue';
import cardList5 from './components/cardList5.vue'; import cardList5 from './components/cardList5.vue';
import cardList6 from './components/cardList6.vue'; // import cardList6 from './components/cardList6.vue';
import { SvgIcon } from '/@/components/Icon'; import { SvgIcon } from '/@/components/Icon';
import randerChart from './components/randerChart.vue'; import randerChart from './components/randerChart.vue';
@ -129,55 +156,68 @@
import pillarChart from './components/pillarChart.vue'; import pillarChart from './components/pillarChart.vue';
import { ref, onMounted, nextTick } from 'vue'; import { ref, onMounted, nextTick } from 'vue';
import { jsPDF } from 'jspdf'; import { jsPDF } from 'jspdf';
import {getComprehensiveReport} from '/@/api/common/api';
const data = ref<any>({})
const isLoading = ref<any>(false)
const data12 = ref<any>([])
const getComprehensiveReportEvent = async () => {
const res = await getComprehensiveReport()
data.value = res
console.log(res);
data12.value = JSON.stringify(res.学生能力平均值)
isLoading.value = true
}
getComprehensiveReportEvent()
const activeKey = ref('1'); const activeKey = ref('1');
var indicator = [ var indicator = [
{ {
text: '前言探索', text: '前言探索',
max: 6000, max: 0,
}, },
{ {
text: '奠定基础', text: '奠定基础',
max: 5000, max: 0,
}, },
{ {
text: '知识分析', text: '知识分析',
max: 5000, max: 0,
}, },
{ {
text: '社会责任', text: '社会责任',
max: 5000, max: 0,
}, },
{ {
text: '独立思考', text: '独立思考',
max: 5500, max: 0,
}, },
{ {
text: '拓宽视野', text: '拓宽视野',
max: 5000, max: 0,
}, },
{ {
text: '激发兴趣', text: '激发兴趣',
max: 5000, max: 0,
}, },
{ {
text: '沟通协调', text: '沟通协调',
max: 5000, max: 0,
}, },
{ {
text: '设计开发', text: '设计开发',
max: 5000, max: 0,
}, },
{ {
text: '研判分析', text: '研判分析',
max: 5000, max: 0,
}, },
{ {
text: '创新能力', text: '创新能力',
max: 5000, max: 0,
}, },
{ {
text: '团队协作', text: '团队协作',
max: 5000, max: 0,
}, },
]; ];
const log = async () => { const log = async () => {

@ -1,17 +1,44 @@
<template> <template>
<div class="container"> <div class="container" v-if="isLoading">
<div class="title">河南机电学院比赛部门报告</div> <div class="title">河南机电学院比赛部门报告</div>
<p class="description" <p class="description"
>我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:</p >我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:</p
> >
<div class="card-content"> <div class="card-content">
<div class="item" v-for="item in 4" :key="item"> <div class="item">
<div class="top-title">本年度已开展比赛数</div> <div class="top-title">本年度已开展比赛数</div>
<div class="sum">88</div> <div class="sum">{{ data.本年度已开展比赛项目数 }}</div>
<div class="content"> <div class="content">
<div>国赛12</div> <div>国赛{{data.国赛}}</div>
<div>国赛12</div> <div>省赛{{ data.省赛 }}</div>
<div>国赛12</div> <div>校赛{{ data.校赛 }}</div>
</div>
</div>
<div class="item">
<div class="top-title">本年度已开展比赛数</div>
<div class="sum">{{ data.本年度已开展比赛数 }}</div>
<div class="content">
<div>国赛{{data.国赛}}</div>
<div>省赛{{ data.省赛 }}</div>
<div>校赛{{ data.校赛 }}</div>
</div>
</div>
<div class="item">
<div class="top-title">本年度参加比赛队伍数</div>
<div class="sum">{{ data.本年度参加比赛队伍数}}</div>
<div class="content">
<div>国赛{{data.国赛}}</div>
<div>省赛{{ data.省赛 }}</div>
<div>校赛{{ data.校赛 }}</div>
</div>
</div>
<div class="item">
<div class="top-title">已完成的比赛</div>
<div class="sum">{{ data.已完成的比赛 }}</div>
<div class="content">
<div>国赛{{data.国赛}}</div>
<div>省赛{{ data.省赛 }}</div>
<div>校赛{{ data.校赛 }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -23,10 +50,10 @@
<div class="year-content-top"> <div class="year-content-top">
<div class="left border-000"> <div class="left border-000">
<div class="border-title">年度维度分析</div> <div class="border-title">年度维度分析</div>
<randerChart /> <randerChart :data="data.学生能力平均值"/>
</div> </div>
<div class="right border-000"> <div class="right border-000">
<cardList /> <cardList :DATA="data12"/>
</div> </div>
</div> </div>
@ -68,11 +95,11 @@
<div class="left border-000"> <div class="left border-000">
<!-- <div class="border-title">年度维度分析</div> --> <!-- <div class="border-title">年度维度分析</div> -->
<cakeChart /> <cakeChart :data="data.比赛类型占比"/>
</div> </div>
</div> </div>
<div class="footer-edit border-000"> <div class="footer-edit border-000">
<cardList2 /> <cardList2 :data="data.学生参赛情况"/>
</div> </div>
</div> </div>
<cardTitle title="比赛学生获奖情况分析" /> <cardTitle title="比赛学生获奖情况分析" />
@ -86,11 +113,12 @@
</div> </div>
<div class="left border-000"> <div class="left border-000">
<!-- <div class="border-title">年度维度分析</div> --> <!-- <div class="border-title">年度维度分析</div> -->
<ringChart /> <ringChart :data="data.比赛获奖占比"/>
</div> </div>
</div> </div>
<div class="footer-edit border-000"> <div class="footer-edit border-000">
<cardList3 /> <cardList3 :data="data.比赛获奖情况列表"/>
</div> </div>
</div> </div>
<cardTitle title="部门参赛情况分析" /> <cardTitle title="部门参赛情况分析" />
@ -99,13 +127,13 @@
> >
<div class="participation-status-content"> <div class="participation-status-content">
<div class="right border-000"> <div class="right border-000">
<cardList7 /> <cardList7 :data="data.部门参赛情况列表"/>
</div> </div>
</div> </div>
<div class="footer border-000"> <!-- <div class="footer border-000">
<cardList6 /> <cardList6 :data="data.部门获奖情况列表"/>
</div> </div> -->
</div> </div>
</template> </template>
@ -121,8 +149,25 @@
import cakeChart from './components/cakeChart.vue'; import cakeChart from './components/cakeChart.vue';
import ringChart from './components/ringChart.vue'; import ringChart from './components/ringChart.vue';
import pillarChart from './components/pillarChart.vue'; import pillarChart from './components/pillarChart.vue';
import {getdepartmentReport} from '/@/api/common/api';
import { ref } from 'vue'; import { ref } from 'vue';
import {useUserStore} from '/@/store/modules/user'
const userStore = useUserStore()
const activeKey = ref('1'); const activeKey = ref('1');
const data = ref<any>({})
const isLoading = ref<any>(false)
const data12 = ref<any>([])
const getdepartmentReportEvent = async() => {
const res = await getdepartmentReport({orgCode:userStore.userInfo.id
})
console.log(res);
data.value = res
data12.value = JSON.stringify(res.学生能力平均值)
isLoading.value = true
}
getdepartmentReportEvent()
var indicator = [ var indicator = [
{ {
text: '前言探索', text: '前言探索',
@ -347,4 +392,7 @@
font-size: 14px; font-size: 14px;
padding: 0 20px; padding: 0 20px;
} }
.tetx-style {
font-size: 24px;
}
</style> </style>

@ -41,7 +41,7 @@
> >
<div class="participation-status-content"> <div class="participation-status-content">
<div class="right border-000"> <div class="right border-000">
<cardList7/> <cardList7 :data="data.allApList"/>
</div> </div>
</div> </div>
<cardTitle title="部门参赛情况分析" /> <cardTitle title="部门参赛情况分析" />

Loading…
Cancel
Save