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> |
||||
<div class="container"> |
||||
<div class="title">河南机电学院比赛综组委会报告</div> |
||||
<p class="description" |
||||
>我是比赛综述:全面落实立德树人根本任务,依据CDI0工程教育理念,培养德、智、体、美、劳全面发展,掌握软件工程专业所需的数学与自然科学基础知识、专业基础理论知识;在企业级软件开发和工业智能软件开发方向,能承担软件分析、设计、开发、项目管理等任务,具备解决复杂工程问题的能力;具有终身学习和创新创业意识、国际交流能力、团队合作精神等良好案养,能适应产业与社会变革的国际化应用型人才。<br />本专业毕业生经过五年左右的实际工作,能够达到以下目标:</p |
||||
> |
||||
<div class="card-content"> |
||||
<div class="item" v-for="(item,index) in 4" :key="item"> |
||||
<div class="top-title">{{ formatTitle(index) }}</div> |
||||
<div class="sum">{{ index === 0 ? '第八届': '88' }}</div> |
||||
</div> |
||||
<div class="container"> |
||||
<div class="title">河南机电学院比赛 {{data.annualCompName}} 组委会报告</div> |
||||
<p class="description" |
||||
>我是比赛综述:全面落实立德树人根本任务,依据CDI0工程教育理念,培养德、智、体、美、劳全面发展,掌握软件工程专业所需的数学与自然科学基础知识、专业基础理论知识;在企业级软件开发和工业智能软件开发方向,能承担软件分析、设计、开发、项目管理等任务,具备解决复杂工程问题的能力;具有终身学习和创新创业意识、国际交流能力、团队合作精神等良好案养,能适应产业与社会变革的国际化应用型人才。<br />本专业毕业生经过五年左右的实际工作,能够达到以下目标:</p |
||||
> |
||||
<div class="card-content"> |
||||
<div class="item"> |
||||
<div class="top-title">当前届数</div> |
||||
<div class="sum">第{{data.sum}}届</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 class="item"> |
||||
<div class="top-title">参赛报名数</div> |
||||
<div class="sum">{{ data.bmNumber }}</div> |
||||
</div> |
||||
<cardTitle title="比赛学生获奖情况分析" /> |
||||
<p class="description" |
||||
>我是比赛综述:全面落实立德树人根本任务,依据CDI0工程教育理念,培养德、智、体、美、劳全面发展,掌握软件工程专业所需的数学与自然科学基础知识、专业基础理论知识;在企业级软件开发和工业智能软件开发方向,能承担软件分析、设计、开发、项目管理等任务,具备解决复杂工程问题的能力;具有终身学习和创新创业意识、国际交流能力、团队合作精神等良好案养,能适应产业与社会变革的国际化应用型人才。<br />本专业毕业生经过五年左右的实际工作,能够达到以下目标:</p |
||||
> |
||||
<div class="participation-status-content"> |
||||
<div class="right border-000"> |
||||
<cardList7 /> |
||||
|
||||
</div> |
||||
|
||||
<div class="item"> |
||||
<div class="top-title">参赛人数</div> |
||||
<div class="sum">{{ data.csNumber }}</div> |
||||
</div> |
||||
<cardTitle title="部门参赛情况分析" /> |
||||
<p class="description" |
||||
>我是比赛综述:全面落实立德树人根本任务,依据CDI0工程教育理念,培养德、智、体、美、劳全面发展,掌握软件工程专业所需的数学与自然科学基础知识、专业基础理论知识;在企业级软件开发和工业智能软件开发方向,能承担软件分析、设计、开发、项目管理等任务,具备解决复杂工程问题的能力;具有终身学习和创新创业意识、国际交流能力、团队合作精神等良好案养,能适应产业与社会变革的国际化应用型人才。<br />本专业毕业生经过五年左右的实际工作,能够达到以下目标:</p |
||||
> |
||||
<div class="participation-status-content"> |
||||
<div class="right border-000"> |
||||
<cardList8 /> |
||||
</div> |
||||
|
||||
<div class="item"> |
||||
<div class="top-title">比赛项目数</div> |
||||
<div class="sum">{{ data.bsxmSum }}</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="比赛学生获奖情况分析" /> |
||||
<p class="description" |
||||
>我是比赛综述:全面落实立德树人根本任务,依据CDI0工程教育理念,培养德、智、体、美、劳全面发展,掌握软件工程专业所需的数学与自然科学基础知识、专业基础理论知识;在企业级软件开发和工业智能软件开发方向,能承担软件分析、设计、开发、项目管理等任务,具备解决复杂工程问题的能力;具有终身学习和创新创业意识、国际交流能力、团队合作精神等良好案养,能适应产业与社会变革的国际化应用型人才。<br />本专业毕业生经过五年左右的实际工作,能够达到以下目标:</p |
||||
> |
||||
<div class="participation-status-content"> |
||||
<div class="right border-000"> |
||||
<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> |
||||
</template> |
||||
</div> |
||||
</template> |
||||
|
||||
<script lang="ts" setup> |
||||
import cardTitle from './components/cardTitle.vue'; |
||||
import cardList from './components/cardList.vue'; |
||||
import cardList7 from './components/cardList7.vue'; |
||||
import cardList8 from './components/cardList8.vue'; |
||||
import randerChart from './components/randerChart.vue'; |
||||
<script lang="ts" setup> |
||||
import cardTitle from './components/cardTitle.vue'; |
||||
import cardList from './components/cardList.vue'; |
||||
import cardList7 from './components/cardList7.vue'; |
||||
import cardList8 from './components/cardList8.vue'; |
||||
import randerChart from './components/randerChart.vue'; |
||||
import { getOrganizingCommitteeReport } from '/@/api/common/api'; |
||||
import {ref} from 'vue' |
||||
const data = ref<any>({}) |
||||
const getOrganizingCommitteeReportEvent = async () => { |
||||
const res = await getOrganizingCommitteeReport() |
||||
data.value = res |
||||
console.log(res); |
||||
|
||||
// import { onMounted, reactive, ref, toRefs, watch } from 'vue' |
||||
const formatTitle = (index:number) => { |
||||
const arr:any = ['当前届数','参赛人数','参赛队伍数','比赛项目数'] |
||||
return arr[index] |
||||
} |
||||
</script> |
||||
} |
||||
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; |
||||
} |
||||
.description { |
||||
text-indent: 2em; |
||||
margin: 30px 0; |
||||
} |
||||
.card-content { |
||||
<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; |
||||
} |
||||
.description { |
||||
text-indent: 2em; |
||||
margin: 30px 0; |
||||
} |
||||
.card-content { |
||||
display: flex; |
||||
.item { |
||||
width: 25%; |
||||
height: 100px; |
||||
border: 1px solid #000; |
||||
margin-right: 10px; |
||||
display: flex; |
||||
.item { |
||||
width: 25%; |
||||
height: 100px; |
||||
border: 1px solid #000; |
||||
margin-right: 10px; |
||||
flex-direction: column; |
||||
justify-content: space-between; |
||||
padding: 10px 15px; |
||||
.top-title { |
||||
font-size: 12px; |
||||
color: #aaa; |
||||
} |
||||
.sum { |
||||
font-size: 36px; |
||||
font-weight: 700; |
||||
} |
||||
.content { |
||||
display: flex; |
||||
flex-direction: column; |
||||
width: 100%; |
||||
justify-content: space-between; |
||||
padding: 10px 15px; |
||||
.top-title { |
||||
font-size: 12px; |
||||
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; |
||||
align-items: center; |
||||
font-size: 12px; |
||||
color: #999; |
||||
} |
||||
} |
||||
.year-content { |
||||
width: 100%; |
||||
height: auto; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
.left { |
||||
width: 500px; |
||||
height: 500px; |
||||
} |
||||
.right { |
||||
flex: 1; |
||||
height: auto; |
||||
margin-left: 50px; |
||||
} |
||||
.item:nth-child(4) { |
||||
margin: 0; |
||||
} |
||||
.participation-status-content { |
||||
width: 100%; |
||||
height: auto; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
.left { |
||||
width: 500px; |
||||
height: 500px; |
||||
margin-left: 50px; |
||||
} |
||||
.right { |
||||
flex: 1; |
||||
height: auto; |
||||
} |
||||
} |
||||
.year-content { |
||||
width: 100%; |
||||
height: auto; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
.left { |
||||
width: 500px; |
||||
height: 500px; |
||||
} |
||||
.footer{ |
||||
width: 100%; |
||||
margin: 30px 0; |
||||
.right { |
||||
flex: 1; |
||||
height: auto; |
||||
margin-left: 50px; |
||||
} |
||||
} |
||||
.border-000 { |
||||
border: 1px solid #000; |
||||
.participation-status-content { |
||||
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%; |
||||
border-bottom: 1px solid #000; |
||||
height: 50px; |
||||
line-height: 50px; |
||||
font-size: 14px; |
||||
padding: 0 20px; |
||||
margin: 30px 0; |
||||
} |
||||
</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