新增参数annualid

main
significative 3 months ago
parent 8819bd3c33
commit e3cc8e5ac2
  1. 6
      jeecgboot-vue3-master/src/api/common/api.ts
  2. 12
      jeecgboot-vue3-master/src/api/demo/depart.ts
  3. 25
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/individual.vue
  4. 65
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/organizingCommittee.vue
  5. 22
      jeecgboot-vue3-master/src/views/depart/workbench/components/chExpert/index.vue

@ -186,10 +186,12 @@ export const getStudent = (params={recreateFlag:false}) => {
// 组委会报告
// /annualcompetitionprojectregistration/annualCompetitionProjectRegistration/zwhfxbg
export const getOrganizingCommitteeReport = (params={recreateFlag:false}) => {
export const getOrganizingCommitteeReport = (params = {}) => {
const par = { recreateFlag: false, annualid: '' };
Object.assign(par, params);
return defHttp.get({
url: '/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/zwhfxbg',
params
params: par
})
}
// /user/login/homepage/report4School

@ -10,6 +10,14 @@ enum Api {
// Get personal center-basic settings
export const pageSchoolApi = () => defHttp.get<GetAccountInfoModel>({ url: Api.PAGE_SCHOOL });
export const pageDepartmentApi = (orgCode: string) => defHttp.get<GetAccountInfoModel>({ url: Api.PAGE_DEPARTMENT, params: { orgCode } });
export const getZjsybsjs = (params = { recreateFlag: false }) => defHttp.get({ url: Api.PAGE_ZJSYBSJS, params });
export const getXsfxbg = (params = { recreateFlag: false }) => defHttp.get({ url: Api.PAGE_XSFXBG, params });
export const getZjsybsjs = (params = {}) => {
const par = { recreateFlag: false };
Object.assign(par, params);
return defHttp.get({ url: Api.PAGE_ZJSYBSJS, params: par });
};
export const getXsfxbg = (params = {}) => {
const par = { recreateFlag: false, annualid: '' };
Object.assign(par, params);
return defHttp.get({ url: Api.PAGE_XSFXBG, params: par });
};

@ -1,6 +1,8 @@
<template>
<div style="padding: 30px 18.6vw 0; width: 100%;margin: auto;">
年度<j-dict-select-tag placeholder="请选择年度" v-model:value="annualid" dictCode="annual,annual_name,id" />
</div>
<div class="personage" v-if="isLoading">
<h1 class="title">机电学院比赛个人报告</h1>
<div class="rebuild">
<div @click="Rebuild">重新生成报告</div>
@ -130,13 +132,17 @@
</div>
</div>
<div class="loading" v-else>
<a-spin />
</div>
</template>
<script lang='ts' setup>
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import cardList from './components/cardList.vue';
import randerChart from './components/randerChart.vue';
import { getXsfxbg } from '/@/api/demo/depart';
import { ref } from 'vue';
import { ref, watch } from 'vue';
type allApList = {
jxname: string
@ -168,13 +174,26 @@ getXsfxbg().then(res => {
})
const Rebuild = async () => {
isLoading.value = false
const res = await getXsfxbg({ recreateFlag: true })
const res = await getXsfxbg({ recreateFlag: true, annualid: annualid.value })
data.value = res
isLoading.value = true
}
const annualid = ref('')
watch(() => annualid.value, () => {
Rebuild()
})
</script>
<style lang='less' scoped>
.loading {
width: 100%;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
.rebuild {
display: flex;
justify-content: center;

@ -1,10 +1,15 @@
<template>
<div style="padding: 30px 18.6vw 0; width: 100%;margin: auto;">
年度<j-dict-select-tag placeholder="请选择年度" v-model:value="annualid" dictCode="annual,annual_name,id" />
</div>
<div class="container" v-if="loading">
<div class="title">河南机电学院比赛 {{ data.annualCompName }} 组委会报告</div>
<div class="rebuild" ><div @click="Rebuild">重新生成报告</div></div>
<p class="description"
>我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:</p
>
<div class="rebuild">
<div @click="Rebuild">重新生成报告</div>
</div>
<p class="description">
我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:
</p>
<div class="card-content">
<div class="item">
<div class="top-title">当前届数</div>
@ -24,9 +29,9 @@
</div>
</div>
<cardTitle title="参赛学生综合能力评价分析" />
<p class="description"
>我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:</p
>
<p class="description">
我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:
</p>
<div class="year-content">
<div class="left border-000">
<div class="border-title">年度维度分析</div>
@ -37,18 +42,18 @@
</div>
</div>
<cardTitle title="比赛学生获奖情况分析" />
<p class="description"
>我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:</p
>
<p class="description">
我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:
</p>
<div class="participation-status-content">
<div class="right border-000">
<cardList7 :data="data.allApList" />
</div>
</div>
<cardTitle title="部门参赛情况分析" />
<p class="description"
>我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:</p
>
<p class="description">
我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:
</p>
<div class="participation-status-content">
<div class="right border-000">
<cardList8 :data="data.csyxbmpm" />
@ -68,7 +73,8 @@
import cardList8 from './components/cardList8.vue';
import randerChart from './components/randerChart.vue';
import { getOrganizingCommitteeReport } from '/@/api/common/api';
import {ref} from 'vue'
import { ref, watch } from 'vue'
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
const data = ref<any>({})
const loading = ref<any>(false)
const getOrganizingCommitteeReportEvent = async () => {
@ -82,12 +88,21 @@
const Rebuild = async () => {
loading.value = false
const res = await getOrganizingCommitteeReport({recreateFlag:true
const res = await getOrganizingCommitteeReport({
recreateFlag: true,
annualid: annualid.value
})
console.log(res);
data.value = res
loading.value = true
}
// ===============
const annualid = ref('')
watch(() => annualid.value, () => {
Rebuild()
})
// ===============
const formatTitle = (index: number) => {
const arr: any = ['当前届数', '参赛人数', '参赛队伍数', '比赛项目数'];
return arr[index];
@ -164,23 +179,28 @@
align-items: center;
justify-content: center;
}
.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;
@ -190,14 +210,17 @@
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;
width: 100%;
@ -207,48 +230,58 @@
color: #999;
}
}
.item:nth-child(4) {
margin: 0;
}
}
.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;
}
}
.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;
}
}
.footer {
width: 100%;
margin: 30px 0;
}
}
.border-000 {
border: 1px solid #000;
}
.border-title {
width: 100%;
border-bottom: 1px solid #000;
@ -257,9 +290,11 @@
font-size: 14px;
padding: 0 20px;
}
.rebuild {
display: flex;
justify-content: center;
div {
cursor: pointer;
}

@ -56,15 +56,19 @@
<div class="table">
<div class="t_item t_head">
<div class="ranking">序号</div>
<div class="nd">年度</div>
<div class="name">年度比赛名称</div>
<div class="newp">年度比赛项目</div>
<div class="cc">项目层次</div>
</div>
<div class="t_item t_con" v-for="o, i in data.jxzndbsxmList" :key="i">
<div class="ranking">
<div class="ol">{{ o.xh }}</div>
</div>
<div class="nd">{{ o.nd }}</div>
<div class="name">{{ o.ndbs }}</div>
<div class="newp">{{ o.ndbsxm }}</div>
<div class="cc">{{ o.cc }}</div>
</div>
<a-empty v-if="!data.jxzndbsxmList.length" style="margin-top: 50px;" />
@ -85,15 +89,19 @@
<div class="table">
<div class="t_item t_head">
<div class="ranking">序号</div>
<div class="nd">年度</div>
<div class="name">年度比赛名称</div>
<div class="newp">年度比赛项目</div>
<div class="cc">项目层次</div>
</div>
<div class="t_item t_con" v-for="o, i in data.lsndbsxmList" :key="i">
<div class="ranking">
<div class="ol">{{ o.xh }}</div>
</div>
<div class="nd">{{ o.nd }}</div>
<div class="name">{{ o.ndbs }}</div>
<div class="newp">{{ o.ndbsxm }}</div>
<div class="cc">{{ o.cc }}</div>
</div>
<a-empty v-if="!data.lsndbsxmList.length" style="margin-top: 50px;" />
</div>
@ -112,7 +120,9 @@ import { ref } from 'vue'
type o = {
xh: string,
ndbs: string,
ndbsxm: string
ndbsxm: string,
nd: string,
cc: string,
}
type ob = {
jxzndbsxmNumber: number;
@ -270,13 +280,21 @@ function reset() {
}
.name {
width: calc((542 / 756) * 100%);
width: calc((208 / 756) * 100%);
}
.newp {
width: calc((134 / 756) * 100%);
}
.nd {
width: calc((174 / 756) * 100%);
}
.cc {
width: calc((160 / 756) * 100%);
}
//.total {
// width: calc((74 / 756) * 100%);
//}

Loading…
Cancel
Save