forked from wangjiadong/comp
commit
2d39b68515
16 changed files with 569 additions and 202 deletions
@ -0,0 +1,60 @@ |
|||||||
|
package org.jeecg.modules.demo.homepage.vo; |
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Description: TODO |
||||||
|
* @Author: Z.H.C |
||||||
|
* @CreateTime: 2024-07-28 17:10 |
||||||
|
* @Version: 1.0 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class ReportCompVo { |
||||||
|
|
||||||
|
@ApiModelProperty(value = "比赛id") |
||||||
|
private String compId; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "年度比赛项目名称") |
||||||
|
private String pointName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "比赛类型") |
||||||
|
private String typeName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "比赛层次") |
||||||
|
private String projectLevel; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "学生名称") |
||||||
|
private String stuName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 比赛名称 |
||||||
|
*/ |
||||||
|
@ApiModelProperty(value = "比赛名称") |
||||||
|
private String compName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "部门id") |
||||||
|
private String compOrganId; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "部门名称") |
||||||
|
private String compOrganName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "奖项名称") |
||||||
|
private java.lang.String awardName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "参数人数") |
||||||
|
private Integer number; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "年度比赛项目数") |
||||||
|
private Integer annualCompPointNumber; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "获取人数") |
||||||
|
private Integer awardNumber; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "获取比率") |
||||||
|
private String awardRatio; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "年度比赛状态") |
||||||
|
private String status; |
||||||
|
|
||||||
|
} |
@ -1,158 +1,175 @@ |
|||||||
<template> |
<template> |
||||||
<div class="container"> |
<div class="container"> |
||||||
<div class="title">河南机电学院比赛综组委会报告</div> |
<div class="title">河南机电学院比赛 {{data.annualCompName}} 组委会报告</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,index) in 4" :key="item"> |
<div class="item"> |
||||||
<div class="top-title">{{ formatTitle(index) }}</div> |
<div class="top-title">当前届数</div> |
||||||
<div class="sum">{{ index === 0 ? '第八届': '88' }}</div> |
<div class="sum">第{{data.sum}}届</div> |
||||||
</div> |
|
||||||
</div> |
</div> |
||||||
<cardTitle title="参赛学生综合能力评价分析" /> |
<div class="item"> |
||||||
<p class="description" |
<div class="top-title">参赛报名数</div> |
||||||
>我是比赛综述:全面落实立德树人根本任务,依据CDI0工程教育理念,培养德、智、体、美、劳全面发展,掌握软件工程专业所需的数学与自然科学基础知识、专业基础理论知识;在企业级软件开发和工业智能软件开发方向,能承担软件分析、设计、开发、项目管理等任务,具备解决复杂工程问题的能力;具有终身学习和创新创业意识、国际交流能力、团队合作精神等良好案养,能适应产业与社会变革的国际化应用型人才。<br />本专业毕业生经过五年左右的实际工作,能够达到以下目标:</p |
<div class="sum">{{ data.bmNumber }}</div> |
||||||
> |
|
||||||
<div class="year-content"> |
|
||||||
<div class="left border-000"> |
|
||||||
<div class="border-title">年度维度分析</div> |
|
||||||
<randerChart /> |
|
||||||
</div> |
|
||||||
<div class="right border-000"> |
|
||||||
<cardList /> |
|
||||||
</div> |
|
||||||
</div> |
</div> |
||||||
<cardTitle title="比赛学生获奖情况分析" /> |
<div class="item"> |
||||||
<p class="description" |
<div class="top-title">参赛人数</div> |
||||||
>我是比赛综述:全面落实立德树人根本任务,依据CDI0工程教育理念,培养德、智、体、美、劳全面发展,掌握软件工程专业所需的数学与自然科学基础知识、专业基础理论知识;在企业级软件开发和工业智能软件开发方向,能承担软件分析、设计、开发、项目管理等任务,具备解决复杂工程问题的能力;具有终身学习和创新创业意识、国际交流能力、团队合作精神等良好案养,能适应产业与社会变革的国际化应用型人才。<br />本专业毕业生经过五年左右的实际工作,能够达到以下目标:</p |
<div class="sum">{{ data.csNumber }}</div> |
||||||
> |
</div> |
||||||
<div class="participation-status-content"> |
<div class="item"> |
||||||
<div class="right border-000"> |
<div class="top-title">比赛项目数</div> |
||||||
<cardList7 /> |
<div class="sum">{{ data.bsxmSum }}</div> |
||||||
|
</div> |
||||||
</div> |
</div> |
||||||
|
<cardTitle title="参赛学生综合能力评价分析" /> |
||||||
|
<p class="description" |
||||||
|
>我是比赛综述:全面落实立德树人根本任务,依据CDI0工程教育理念,培养德、智、体、美、劳全面发展,掌握软件工程专业所需的数学与自然科学基础知识、专业基础理论知识;在企业级软件开发和工业智能软件开发方向,能承担软件分析、设计、开发、项目管理等任务,具备解决复杂工程问题的能力;具有终身学习和创新创业意识、国际交流能力、团队合作精神等良好案养,能适应产业与社会变革的国际化应用型人才。<br />本专业毕业生经过五年左右的实际工作,能够达到以下目标:</p |
||||||
|
> |
||||||
|
<div class="year-content"> |
||||||
|
<div class="left border-000"> |
||||||
|
<div class="border-title">年度维度分析</div> |
||||||
|
<randerChart /> |
||||||
|
</div> |
||||||
|
<div class="right border-000"> |
||||||
|
<cardList /> |
||||||
</div> |
</div> |
||||||
<cardTitle title="部门参赛情况分析" /> |
</div> |
||||||
<p class="description" |
<cardTitle title="比赛学生获奖情况分析" /> |
||||||
>我是比赛综述:全面落实立德树人根本任务,依据CDI0工程教育理念,培养德、智、体、美、劳全面发展,掌握软件工程专业所需的数学与自然科学基础知识、专业基础理论知识;在企业级软件开发和工业智能软件开发方向,能承担软件分析、设计、开发、项目管理等任务,具备解决复杂工程问题的能力;具有终身学习和创新创业意识、国际交流能力、团队合作精神等良好案养,能适应产业与社会变革的国际化应用型人才。<br />本专业毕业生经过五年左右的实际工作,能够达到以下目标:</p |
<p class="description" |
||||||
> |
>我是比赛综述:全面落实立德树人根本任务,依据CDI0工程教育理念,培养德、智、体、美、劳全面发展,掌握软件工程专业所需的数学与自然科学基础知识、专业基础理论知识;在企业级软件开发和工业智能软件开发方向,能承担软件分析、设计、开发、项目管理等任务,具备解决复杂工程问题的能力;具有终身学习和创新创业意识、国际交流能力、团队合作精神等良好案养,能适应产业与社会变革的国际化应用型人才。<br />本专业毕业生经过五年左右的实际工作,能够达到以下目标:</p |
||||||
<div class="participation-status-content"> |
> |
||||||
<div class="right border-000"> |
<div class="participation-status-content"> |
||||||
<cardList8 /> |
<div class="right border-000"> |
||||||
</div> |
<cardList7/> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<cardTitle title="部门参赛情况分析" /> |
||||||
|
<p class="description" |
||||||
|
>我是比赛综述:全面落实立德树人根本任务,依据CDI0工程教育理念,培养德、智、体、美、劳全面发展,掌握软件工程专业所需的数学与自然科学基础知识、专业基础理论知识;在企业级软件开发和工业智能软件开发方向,能承担软件分析、设计、开发、项目管理等任务,具备解决复杂工程问题的能力;具有终身学习和创新创业意识、国际交流能力、团队合作精神等良好案养,能适应产业与社会变革的国际化应用型人才。<br />本专业毕业生经过五年左右的实际工作,能够达到以下目标:</p |
||||||
|
> |
||||||
|
<div class="participation-status-content"> |
||||||
|
<div class="right border-000"> |
||||||
|
<cardList8 :data="data.csyxbmpm"/> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
</template> |
</div> |
||||||
|
</template> |
||||||
<script lang="ts" setup> |
|
||||||
import cardTitle from './components/cardTitle.vue'; |
<script lang="ts" setup> |
||||||
import cardList from './components/cardList.vue'; |
import cardTitle from './components/cardTitle.vue'; |
||||||
import cardList7 from './components/cardList7.vue'; |
import cardList from './components/cardList.vue'; |
||||||
import cardList8 from './components/cardList8.vue'; |
import cardList7 from './components/cardList7.vue'; |
||||||
import randerChart from './components/randerChart.vue'; |
import cardList8 from './components/cardList8.vue'; |
||||||
|
import randerChart from './components/randerChart.vue'; |
||||||
// import { onMounted, reactive, ref, toRefs, watch } from 'vue' |
import { getOrganizingCommitteeReport } from '/@/api/common/api'; |
||||||
const formatTitle = (index:number) => { |
import {ref} from 'vue' |
||||||
const arr:any = ['当前届数','参赛人数','参赛队伍数','比赛项目数'] |
const data = ref<any>({}) |
||||||
return arr[index] |
const getOrganizingCommitteeReportEvent = async () => { |
||||||
|
const res = await getOrganizingCommitteeReport() |
||||||
|
data.value = res |
||||||
|
console.log(res); |
||||||
|
|
||||||
|
} |
||||||
|
getOrganizingCommitteeReportEvent() |
||||||
|
const formatTitle = (index: number) => { |
||||||
|
const arr: any = ['当前届数', '参赛人数', '参赛队伍数', '比赛项目数']; |
||||||
|
return arr[index]; |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="less" scoped> |
||||||
|
.container { |
||||||
|
width: 1200px; |
||||||
|
margin: 0 auto; |
||||||
|
// height: 100vh; |
||||||
|
padding-bottom: 30px; |
||||||
|
.title { |
||||||
|
width: 100%; |
||||||
|
font-size: 36px; |
||||||
|
text-align: center; |
||||||
|
font-weight: 700; |
||||||
} |
} |
||||||
</script> |
.description { |
||||||
|
text-indent: 2em; |
||||||
<style lang="less" scoped> |
margin: 30px 0; |
||||||
.container { |
} |
||||||
width: 1200px; |
.card-content { |
||||||
margin: 0 auto; |
display: flex; |
||||||
// height: 100vh; |
.item { |
||||||
padding-bottom: 30px; |
width: 25%; |
||||||
.title { |
height: 100px; |
||||||
width: 100%; |
border: 1px solid #000; |
||||||
font-size: 36px; |
margin-right: 10px; |
||||||
text-align: center; |
|
||||||
font-weight: 700; |
|
||||||
} |
|
||||||
.description { |
|
||||||
text-indent: 2em; |
|
||||||
margin: 30px 0; |
|
||||||
} |
|
||||||
.card-content { |
|
||||||
display: flex; |
display: flex; |
||||||
.item { |
flex-direction: column; |
||||||
width: 25%; |
justify-content: space-between; |
||||||
height: 100px; |
padding: 10px 15px; |
||||||
border: 1px solid #000; |
.top-title { |
||||||
margin-right: 10px; |
font-size: 12px; |
||||||
|
color: #aaa; |
||||||
|
} |
||||||
|
.sum { |
||||||
|
font-size: 36px; |
||||||
|
font-weight: 700; |
||||||
|
} |
||||||
|
.content { |
||||||
display: flex; |
display: flex; |
||||||
flex-direction: column; |
width: 100%; |
||||||
justify-content: space-between; |
justify-content: space-between; |
||||||
padding: 10px 15px; |
align-items: center; |
||||||
.top-title { |
font-size: 12px; |
||||||
font-size: 12px; |
color: #999; |
||||||
color: #aaa; |
|
||||||
} |
|
||||||
.sum { |
|
||||||
font-size: 36px; |
|
||||||
font-weight: 700; |
|
||||||
} |
|
||||||
.content { |
|
||||||
display: flex; |
|
||||||
width: 100%; |
|
||||||
justify-content: space-between; |
|
||||||
align-items: center; |
|
||||||
font-size: 12px; |
|
||||||
color: #999; |
|
||||||
} |
|
||||||
} |
|
||||||
.item:nth-child(4) { |
|
||||||
margin: 0; |
|
||||||
} |
} |
||||||
} |
} |
||||||
.year-content { |
.item:nth-child(4) { |
||||||
width: 100%; |
margin: 0; |
||||||
height: auto; |
|
||||||
display: flex; |
|
||||||
justify-content: space-between; |
|
||||||
.left { |
|
||||||
width: 500px; |
|
||||||
height: 500px; |
|
||||||
} |
|
||||||
.right { |
|
||||||
flex: 1; |
|
||||||
height: auto; |
|
||||||
margin-left: 50px; |
|
||||||
} |
|
||||||
} |
} |
||||||
.participation-status-content { |
} |
||||||
width: 100%; |
.year-content { |
||||||
height: auto; |
width: 100%; |
||||||
display: flex; |
height: auto; |
||||||
justify-content: space-between; |
display: flex; |
||||||
.left { |
justify-content: space-between; |
||||||
width: 500px; |
.left { |
||||||
height: 500px; |
width: 500px; |
||||||
margin-left: 50px; |
height: 500px; |
||||||
} |
|
||||||
.right { |
|
||||||
flex: 1; |
|
||||||
height: auto; |
|
||||||
} |
|
||||||
} |
} |
||||||
.footer{ |
.right { |
||||||
width: 100%; |
flex: 1; |
||||||
margin: 30px 0; |
height: auto; |
||||||
|
margin-left: 50px; |
||||||
} |
} |
||||||
} |
} |
||||||
.border-000 { |
.participation-status-content { |
||||||
border: 1px solid #000; |
width: 100%; |
||||||
|
height: auto; |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
.left { |
||||||
|
width: 500px; |
||||||
|
height: 500px; |
||||||
|
margin-left: 50px; |
||||||
|
} |
||||||
|
.right { |
||||||
|
flex: 1; |
||||||
|
height: auto; |
||||||
|
} |
||||||
} |
} |
||||||
.border-title { |
.footer { |
||||||
width: 100%; |
width: 100%; |
||||||
border-bottom: 1px solid #000; |
margin: 30px 0; |
||||||
height: 50px; |
|
||||||
line-height: 50px; |
|
||||||
font-size: 14px; |
|
||||||
padding: 0 20px; |
|
||||||
} |
} |
||||||
</style> |
} |
||||||
|
.border-000 { |
||||||
|
border: 1px solid #000; |
||||||
|
} |
||||||
|
.border-title { |
||||||
|
width: 100%; |
||||||
|
border-bottom: 1px solid #000; |
||||||
|
height: 50px; |
||||||
|
line-height: 50px; |
||||||
|
font-size: 14px; |
||||||
|
padding: 0 20px; |
||||||
|
} |
||||||
|
</style> |
||||||
|
Loading…
Reference in new issue