Merge remote-tracking branch 'origin/main'

main
王家东 3 months ago
commit a610e2c359
  1. 16
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annualCompPoint/controller/AnnualCompPointController.java
  2. 28
      jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/annualcompetitionprojectregistration/controller/AnnualCompetitionProjectRegistrationController.java
  3. 24
      jeecgboot-vue3-master/src/api/common/api.ts
  4. 12
      jeecgboot-vue3-master/src/api/demo/depart.ts
  5. 27
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/individual.vue
  6. 431
      jeecgboot-vue3-master/src/views/comprehensiveEvaluation/organizingCommittee.vue
  7. 22
      jeecgboot-vue3-master/src/views/depart/workbench/components/chExpert/index.vue

@ -50,6 +50,7 @@ import org.jeecg.modules.demo.expert.entity.Expert;
import org.jeecg.modules.demo.expert.service.IExpertService; import org.jeecg.modules.demo.expert.service.IExpertService;
import org.jeecg.modules.demo.expscore.entity.ExpScore; import org.jeecg.modules.demo.expscore.entity.ExpScore;
import org.jeecg.modules.demo.expscore.service.IExpScoreService; import org.jeecg.modules.demo.expscore.service.IExpScoreService;
import org.jeecg.modules.demo.projectlevel.service.IProjectlevelService;
import org.jeecg.modules.demo.score_management.entity.ScoreManagement; import org.jeecg.modules.demo.score_management.entity.ScoreManagement;
import org.jeecg.modules.demo.scorepersion.entity.ScorePersion; import org.jeecg.modules.demo.scorepersion.entity.ScorePersion;
import org.jeecg.modules.demo.scorepersion.service.IScorePersionService; import org.jeecg.modules.demo.scorepersion.service.IScorePersionService;
@ -143,6 +144,9 @@ public class AnnualCompPointController extends JeecgController<AnnualCompPoint,
@Autowired @Autowired
private IInstructorSheetService instructorSheetService; private IInstructorSheetService instructorSheetService;
@Autowired
private IProjectlevelService projectlevelService;
/** /**
* 分页列表查询 * 分页列表查询
@ -1406,6 +1410,9 @@ public class AnnualCompPointController extends JeecgController<AnnualCompPoint,
mapall1.put("xh",p+1); mapall1.put("xh",p+1);
mapall1.put("ndbs",annualCompService.getById(listacp.get(p).getAnnualCompId()).getName()); mapall1.put("ndbs",annualCompService.getById(listacp.get(p).getAnnualCompId()).getName());
mapall1.put("ndbsxm",listacp.get(p).getObjName()); mapall1.put("ndbsxm",listacp.get(p).getObjName());
//加上年度和层次
mapall1.put("nd",annualService.getById(annualCompService.getById(listacp.get(p).getAnnualCompId()).getAnnualid()).getAnnualName());
mapall1.put("cc",projectlevelService.getById(listacp.get(p).getObjLevel()).getName());
jxzListMap.add(mapall1); jxzListMap.add(mapall1);
} }
}else{ }else{
@ -1414,6 +1421,9 @@ public class AnnualCompPointController extends JeecgController<AnnualCompPoint,
mapall2.put("xh",o+1); mapall2.put("xh",o+1);
mapall2.put("ndbs",annualCompService.getById(listacp.get(o).getAnnualCompId()).getName()); mapall2.put("ndbs",annualCompService.getById(listacp.get(o).getAnnualCompId()).getName());
mapall2.put("ndbsxm",listacp.get(o).getObjName()); mapall2.put("ndbsxm",listacp.get(o).getObjName());
//加上年度和层次
mapall2.put("nd",annualService.getById(annualCompService.getById(listacp.get(o).getAnnualCompId()).getAnnualid()).getAnnualName());
mapall2.put("cc",projectlevelService.getById(listacp.get(o).getObjLevel()).getName());
jxzListMap.add(mapall2); jxzListMap.add(mapall2);
} }
} }
@ -1431,6 +1441,9 @@ public class AnnualCompPointController extends JeecgController<AnnualCompPoint,
mapall3.put("xh",q+1); mapall3.put("xh",q+1);
mapall3.put("ndbs",annualCompService.getById(listacpls.get(q).getAnnualCompId()).getName()); mapall3.put("ndbs",annualCompService.getById(listacpls.get(q).getAnnualCompId()).getName());
mapall3.put("ndbsxm",listacpls.get(q).getObjName()); mapall3.put("ndbsxm",listacpls.get(q).getObjName());
//加上年度和层次
mapall3.put("nd",annualService.getById(annualCompService.getById(listacpls.get(q).getAnnualCompId()).getAnnualid()).getAnnualName());
mapall3.put("cc",projectlevelService.getById(listacpls.get(q).getObjLevel()).getName());
lsListMap.add(mapall3); lsListMap.add(mapall3);
} }
}else{ }else{
@ -1439,6 +1452,9 @@ public class AnnualCompPointController extends JeecgController<AnnualCompPoint,
mapall4.put("xh",w+1); mapall4.put("xh",w+1);
mapall4.put("ndbs",annualCompService.getById(listacpls.get(w).getAnnualCompId()).getName()); mapall4.put("ndbs",annualCompService.getById(listacpls.get(w).getAnnualCompId()).getName());
mapall4.put("ndbsxm",listacpls.get(w).getObjName()); mapall4.put("ndbsxm",listacpls.get(w).getObjName());
//加上年度和层次
mapall4.put("nd",annualService.getById(annualCompService.getById(listacpls.get(w).getAnnualCompId()).getAnnualid()).getAnnualName());
mapall4.put("cc",projectlevelService.getById(listacpls.get(w).getObjLevel()).getName());
lsListMap.add(mapall4); lsListMap.add(mapall4);
} }
} }

@ -1741,7 +1741,7 @@ public class AnnualCompetitionProjectRegistrationController {
*/ */
@ApiOperation(value="学生角色分析报告数据接口", notes="学生角色分析报告数据接口") @ApiOperation(value="学生角色分析报告数据接口", notes="学生角色分析报告数据接口")
@GetMapping(value = "/xsfxbg") @GetMapping(value = "/xsfxbg")
public Result<?> xsfxbg( HttpServletRequest req,@RequestParam(name = "recreateFlag") boolean recreateFlag) { public Result<?> xsfxbg( HttpServletRequest req,@RequestParam(name = "recreateFlag") boolean recreateFlag,@RequestParam(name = "annualid") String annualid) {
final String XSFXBG = "xsfxbg"; final String XSFXBG = "xsfxbg";
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
@ -1762,6 +1762,22 @@ public class AnnualCompetitionProjectRegistrationController {
QueryWrapper<AnnualCompetitionProjectRegistration> queryWrapperbm = QueryGenerator.initQueryWrapper(annualCompetitionProjectRegistration, req.getParameterMap()); QueryWrapper<AnnualCompetitionProjectRegistration> queryWrapperbm = QueryGenerator.initQueryWrapper(annualCompetitionProjectRegistration, req.getParameterMap());
queryWrapperbm.in("enroll_code",bmbhs); queryWrapperbm.in("enroll_code",bmbhs);
queryWrapperbm.eq("enroll_static", "2"); queryWrapperbm.eq("enroll_static", "2");
//年度id传过来后需要根据年度id查询有哪些年度比赛,根据年度比赛查询年度比赛项目,然后把得到的年度比赛项目id加到条件中
if(!annualid.equals("")){
QueryWrapper<AnnualComp> queryWrapperAnnual = new QueryWrapper<>();
queryWrapperAnnual.eq("annualid",annualid);
List<AnnualComp> listac = annualCompService.list(queryWrapperAnnual);
if(listac.size()>0){
List<String> tjndbsids = listac.stream().map(AnnualComp::getId).collect(Collectors.toList());
QueryWrapper<AnnualCompPoint> queryWrapperacpt = new QueryWrapper<>();
queryWrapperacpt.in("annual_comp_id",tjndbsids);
List<AnnualCompPoint> listacpt = annualCompPointService.list(queryWrapperacpt);
if(listacpt.size()>0){
List<String> tjndbsxmids = listacpt.stream().map(AnnualCompPoint::getId).collect(Collectors.toList());
queryWrapperbm.in("annual_compid",tjndbsxmids);
}
}
}
List<AnnualCompetitionProjectRegistration> listbm = annualCompetitionProjectRegistrationService.list(queryWrapperbm); List<AnnualCompetitionProjectRegistration> listbm = annualCompetitionProjectRegistrationService.list(queryWrapperbm);
//参加比赛项目数量 //参加比赛项目数量
map.put("cjbsxmsl",listbm.size()); map.put("cjbsxmsl",listbm.size());
@ -2019,7 +2035,7 @@ public class AnnualCompetitionProjectRegistrationController {
if (hasKey) { if (hasKey) {
return Result.OK(redisUtil.get(XSFXBG)); return Result.OK(redisUtil.get(XSFXBG));
} else { } else {
return this.xsfxbg(req,true); return this.xsfxbg(req,true,annualid);
} }
} }
} }
@ -2033,7 +2049,7 @@ public class AnnualCompetitionProjectRegistrationController {
*/ */
@ApiOperation(value="组委会角色分析报告比赛数据接口", notes="组委会角色分析报告比赛数据接口") @ApiOperation(value="组委会角色分析报告比赛数据接口", notes="组委会角色分析报告比赛数据接口")
@GetMapping(value = "/zwhfxbg") @GetMapping(value = "/zwhfxbg")
public Result<?> zwhfxbg( HttpServletRequest req,@RequestParam(name = "recreateFlag") boolean recreateFlag) { public Result<?> zwhfxbg( HttpServletRequest req,@RequestParam(name = "recreateFlag") boolean recreateFlag,@RequestParam(name = "annualid") String annualid) {
final String ZWHFXBG = "zwhfxbg"; final String ZWHFXBG = "zwhfxbg";
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
if (recreateFlag) { if (recreateFlag) {
@ -2048,6 +2064,10 @@ public class AnnualCompetitionProjectRegistrationController {
List<String> ids = list.stream().map(Comp::getId).collect(Collectors.toList()); List<String> ids = list.stream().map(Comp::getId).collect(Collectors.toList());
QueryWrapper<AnnualComp> queryWrapperAnnual = new QueryWrapper<>(); QueryWrapper<AnnualComp> queryWrapperAnnual = new QueryWrapper<>();
queryWrapperAnnual.in(ids.size() != 0, "compid", ids); queryWrapperAnnual.in(ids.size() != 0, "compid", ids);
//加上判断如果年度id传过来就加上条件
if(!annualid.equals("")){
queryWrapperAnnual.eq("annualid",annualid);
}
queryWrapperAnnual.orderByDesc("create_time"); queryWrapperAnnual.orderByDesc("create_time");
List<AnnualComp> annualCompList = annualCompService.list(queryWrapperAnnual); List<AnnualComp> annualCompList = annualCompService.list(queryWrapperAnnual);
if (annualCompList.size() > 0) { if (annualCompList.size() > 0) {
@ -2395,7 +2415,7 @@ public class AnnualCompetitionProjectRegistrationController {
if (hasKey) { if (hasKey) {
return Result.OK(redisUtil.get(ZWHFXBG)); return Result.OK(redisUtil.get(ZWHFXBG));
} else { } else {
return this.zwhfxbg(req,true); return this.zwhfxbg(req,true,annualid);
} }
} }
} }

@ -170,41 +170,43 @@ export const uploadMyFile = (url, data) => {
return defHttp.uploadMyFile(url, data); return defHttp.uploadMyFile(url, data);
}; };
// 组委会首页 // 组委会首页
export const getOrganizingCommittee = (params={recreateFlag:false}) => { export const getOrganizingCommittee = (params = { recreateFlag: false }) => {
return defHttp.get({ return defHttp.get({
url:'/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/zwhsybsjs', url: '/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/zwhsybsjs',
params params
}) })
} }
// 学生首页 // 学生首页
export const getStudent = (params={recreateFlag:false}) => { export const getStudent = (params = { recreateFlag: false }) => {
return defHttp.get({ return defHttp.get({
url:'/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/xssybsjs', url: '/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/xssybsjs',
params params
}) })
} }
// 组委会报告 // 组委会报告
// /annualcompetitionprojectregistration/annualCompetitionProjectRegistration/zwhfxbg // /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({ return defHttp.get({
url:'/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/zwhfxbg', url: '/annualcompetitionprojectregistration/annualCompetitionProjectRegistration/zwhfxbg',
params params: par
}) })
} }
// /user/login/homepage/report4School // /user/login/homepage/report4School
// 学校综合报告 // 学校综合报告
export const getComprehensiveReport = (params={}) => { export const getComprehensiveReport = (params = {}) => {
return defHttp.get({ return defHttp.get({
url:'/user/login/homepage/report4School', url: '/user/login/homepage/report4School',
params params
}) })
} }
// 部门 // 部门
// http://localhost:18083/jeecg-boot/user/login/homepage/report4Depart // http://localhost:18083/jeecg-boot/user/login/homepage/report4Depart
export const getdepartmentReport = (params:any={}) => { export const getdepartmentReport = (params: any = {}) => {
return defHttp.get({ return defHttp.get({
url:'/user/login/homepage/report4School', url: '/user/login/homepage/report4School',
params params
}) })
} }

@ -10,6 +10,14 @@ enum Api {
// Get personal center-basic settings // Get personal center-basic settings
export const pageSchoolApi = () => defHttp.get<GetAccountInfoModel>({ url: Api.PAGE_SCHOOL }); 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 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 getZjsybsjs = (params = {}) => {
export const getXsfxbg = (params = { recreateFlag: false }) => defHttp.get({ url: Api.PAGE_XSFXBG, 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> <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"> <div class="personage" v-if="isLoading">
<h1 class="title">机电学院比赛个人报告</h1> <h1 class="title">机电学院比赛个人报告</h1>
<div class="rebuild"> <div class="rebuild">
<div @click="Rebuild">重新生成报告</div> <div @click="Rebuild">重新生成报告</div>
@ -130,13 +132,17 @@
</div> </div>
</div> </div>
<div class="loading" v-else>
<a-spin />
</div>
</template> </template>
<script lang='ts' setup> <script lang='ts' setup>
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import cardList from './components/cardList.vue'; import cardList from './components/cardList.vue';
import randerChart from './components/randerChart.vue'; import randerChart from './components/randerChart.vue';
import { getXsfxbg } from '/@/api/demo/depart'; import { getXsfxbg } from '/@/api/demo/depart';
import { ref } from 'vue'; import { ref, watch } from 'vue';
type allApList = { type allApList = {
jxname: string jxname: string
@ -161,20 +167,33 @@ const data = ref({
allApList: [] as allApList allApList: [] as allApList
}) })
const isLoading = ref<any>(false) const isLoading = ref<any>(false)
getXsfxbg().then(res => { getXsfxbg().then(res => {
data.value = res data.value = res
isLoading.value = true isLoading.value = true
}) })
const Rebuild = async () => { const Rebuild = async () => {
isLoading.value = false isLoading.value = false
const res = await getXsfxbg({ recreateFlag: true }) const res = await getXsfxbg({ recreateFlag: true, annualid: annualid.value })
data.value = res data.value = res
isLoading.value = true isLoading.value = true
} }
const annualid = ref('')
watch(() => annualid.value, () => {
Rebuild()
})
</script> </script>
<style lang='less' scoped> <style lang='less' scoped>
.loading {
width: 100%;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
.rebuild { .rebuild {
display: flex; display: flex;
justify-content: center; justify-content: center;

@ -1,14 +1,19 @@
<template> <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="container" v-if="loading">
<div class="title">河南机电学院比赛 {{data.annualCompName}} 组委会报告</div> <div class="title">河南机电学院比赛 {{ data.annualCompName }} 组委会报告</div>
<div class="rebuild" ><div @click="Rebuild">重新生成报告</div></div> <div class="rebuild">
<p class="description" <div @click="Rebuild">重新生成报告</div>
>我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:</p </div>
> <p class="description">
我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:
</p>
<div class="card-content"> <div class="card-content">
<div class="item"> <div class="item">
<div class="top-title">当前届数</div> <div class="top-title">当前届数</div>
<div class="sum">{{data.sum}}</div> <div class="sum">{{ data.sum }}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="top-title">参赛报名数</div> <div class="top-title">参赛报名数</div>
@ -24,244 +29,274 @@
</div> </div>
</div> </div>
<cardTitle title="参赛学生综合能力评价分析" /> <cardTitle title="参赛学生综合能力评价分析" />
<p class="description" <p class="description">
>我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:</p 我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:
> </p>
<div class="year-content"> <div class="year-content">
<div class="left border-000"> <div class="left border-000">
<div class="border-title">年度维度分析</div> <div class="border-title">年度维度分析</div>
<randerChart /> <randerChart />
</div> </div>
<div class="right border-000"> <div class="right border-000">
<cardList :DATA="data12"/> <cardList :DATA="data12" />
</div> </div>
</div> </div>
<cardTitle title="比赛学生获奖情况分析" /> <cardTitle title="比赛学生获奖情况分析" />
<p class="description" <p class="description">
>我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:</p 我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:
> </p>
<div class="participation-status-content"> <div class="participation-status-content">
<div class="right border-000"> <div class="right border-000">
<cardList7 :data="data.allApList"/> <cardList7 :data="data.allApList" />
</div> </div>
</div> </div>
<cardTitle title="部门参赛情况分析" /> <cardTitle title="部门参赛情况分析" />
<p class="description" <p class="description">
>我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:</p 我是比赛综述:全面落实立德树人根本任务依据CDI0工程教育理念培养德劳全面发展掌握软件工程专业所需的数学与自然科学基础知识专业基础理论知识;在企业级软件开发和工业智能软件开发方向能承担软件分析设计开发项目管理等任务具备解决复杂工程问题的能力;具有终身学习和创新创业意识国际交流能力团队合作精神等良好案养能适应产业与社会变革的国际化应用型人才<br />本专业毕业生经过五年左右的实际工作能够达到以下目标:
> </p>
<div class="participation-status-content"> <div class="participation-status-content">
<div class="right border-000"> <div class="right border-000">
<cardList8 :data="data.csyxbmpm"/> <cardList8 :data="data.csyxbmpm" />
</div> </div>
</div> </div>
</div> </div>
<div class="loading" v-else> <div class="loading" v-else>
<a-spin /> <a-spin />
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import cardTitle from './components/cardTitle.vue'; import cardTitle from './components/cardTitle.vue';
import cardList from './components/cardList.vue'; import cardList from './components/cardList.vue';
import cardList7 from './components/cardList7.vue'; import cardList7 from './components/cardList7.vue';
import cardList8 from './components/cardList8.vue'; import cardList8 from './components/cardList8.vue';
import randerChart from './components/randerChart.vue'; import randerChart from './components/randerChart.vue';
import { getOrganizingCommitteeReport } from '/@/api/common/api'; import { getOrganizingCommitteeReport } from '/@/api/common/api';
import {ref} from 'vue' import { ref, watch } from 'vue'
const data = ref<any>({}) import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
const loading = ref<any>(false) const data = ref<any>({})
const getOrganizingCommitteeReportEvent = async () => { const loading = ref<any>(false)
const res = await getOrganizingCommitteeReport() const getOrganizingCommitteeReportEvent = async () => {
data.value = res const res = await getOrganizingCommitteeReport()
console.log(res); data.value = res
loading.value = true console.log(res);
loading.value = true
}
getOrganizingCommitteeReportEvent() }
const Rebuild = async() => { getOrganizingCommitteeReportEvent()
loading.value = false const Rebuild = async () => {
loading.value = false
const res = await getOrganizingCommitteeReport({recreateFlag:true
}) const res = await getOrganizingCommitteeReport({
console.log(res); recreateFlag: true,
data.value = res annualid: annualid.value
loading.value = true })
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];
};
const data12 = JSON.stringify([
{
"capacityName": "职业规范",
"value": 1.87
},
{
"capacityName": "沟通",
"value": 0.94
},
{
"capacityName": "设计/开发解决方案",
"value": 1.87
},
{
"capacityName": "研究",
"value": 1.87
},
{
"capacityName": "环境和可持续发展",
"value": 1.87
},
{
"capacityName": "使用现代工具",
"value": 1.87
},
{
"capacityName": "终身学习",
"value": 0.94
},
{
"capacityName": "工程知识",
"value": 1.87
},
{
"capacityName": "项目管理",
"value": 0.94
},
{
"capacityName": "工程与社会",
"value": 1.87
},
{
"capacityName": "个人和团队",
"value": 0.94
},
{
"capacityName": "问题分析",
"value": 1.87
} }
const formatTitle = (index: number) => {
const arr: any = ['当前届数', '参赛人数', '参赛队伍数', '比赛项目数'];
return arr[index];
};
const data12 = JSON.stringify([
{
"capacityName": "职业规范",
"value": 1.87
},
{
"capacityName": "沟通",
"value": 0.94
},
{
"capacityName": "设计/开发解决方案",
"value": 1.87
},
{
"capacityName": "研究",
"value": 1.87
},
{
"capacityName": "环境和可持续发展",
"value": 1.87
},
{
"capacityName": "使用现代工具",
"value": 1.87
},
{
"capacityName": "终身学习",
"value": 0.94
},
{
"capacityName": "工程知识",
"value": 1.87
},
{
"capacityName": "项目管理",
"value": 0.94
},
{
"capacityName": "工程与社会",
"value": 1.87
},
{
"capacityName": "个人和团队",
"value": 0.94
},
{
"capacityName": "问题分析",
"value": 1.87
}
]) ])
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.loading{ .loading {
width: 100%; width: 100%;
height: 100vh; height: 100vh;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.container {
width: 1200px; .container {
margin: 0 auto; width: 1200px;
// height: 100vh; margin: 0 auto;
padding-bottom: 30px; // height: 100vh;
.title { padding-bottom: 30px;
width: 100%;
font-size: 36px; .title {
text-align: center; width: 100%;
font-weight: 700; font-size: 36px;
} text-align: center;
.description { font-weight: 700;
text-indent: 2em; }
margin: 30px 0;
} .description {
.card-content { text-indent: 2em;
margin: 30px 0;
}
.card-content {
display: flex;
.item {
width: 25%;
height: 100px;
border: 1px solid #000;
margin-right: 10px;
display: flex; display: flex;
.item { flex-direction: column;
width: 25%; justify-content: space-between;
height: 100px; padding: 10px 15px;
border: 1px solid #000;
margin-right: 10px; .top-title {
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 {
width: 100%; .item:nth-child(4) {
height: auto; margin: 0;
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; .year-content {
display: flex; width: 100%;
justify-content: space-between; height: auto;
.left { display: flex;
width: 500px; justify-content: space-between;
height: 500px;
margin-left: 50px; .left {
} width: 500px;
.right { height: 500px;
flex: 1;
height: auto;
}
} }
.footer {
width: 100%; .right {
margin: 30px 0; 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%; width: 100%;
border-bottom: 1px solid #000; margin: 30px 0;
height: 50px;
line-height: 50px;
font-size: 14px;
padding: 0 20px;
} }
.rebuild{ }
display: flex;
justify-content: center; .border-000 {
div{ border: 1px solid #000;
cursor: pointer; }
}
} .border-title {
width: 100%;
border-bottom: 1px solid #000;
height: 50px;
line-height: 50px;
font-size: 14px;
padding: 0 20px;
}
.rebuild {
display: flex;
justify-content: center;
div {
cursor: pointer;
}
}
</style> </style>

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

Loading…
Cancel
Save