diff --git a/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/awardpersion/controller/AwardPersionController.java b/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/awardpersion/controller/AwardPersionController.java index 638dcb14..9ddfbcf6 100644 --- a/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/awardpersion/controller/AwardPersionController.java +++ b/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/awardpersion/controller/AwardPersionController.java @@ -422,6 +422,38 @@ public class AwardPersionController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(awardPersion, request.getParameterMap()); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + // 过滤选中数据 + queryWrapper.eq("tj","1"); + // Step.2 获取导出数据 + List exportList = awardPersionService.list(queryWrapper); + + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(NormalExcelConstants.FILE_NAME, "获奖推荐"); + mv.addObject(NormalExcelConstants.CLASS, AwardPersion.class); + //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- + ExportParams exportParams=new ExportParams("获奖推荐" + "报表", "导出人:" + sysUser.getRealname(), "获奖推荐"); + exportParams.setImageBasePath(jeecgBaseConfig.getPath().getUpload()); + //update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置---------------------- + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, exportList); + return mv; + } /** * 导出excel模板 * @@ -613,4 +645,36 @@ public class AwardPersionController extends JeecgController tj(@RequestParam(name="id",required=true) String id) { + AwardPersion awardPersion = awardPersionService.getById(id); + awardPersion.setTj("1"); + awardPersionService.updateById(awardPersion); + return Result.OK("成功!"); + } + + /** + * 撤销 + * + * @param + * @return + */ + @AutoLog(value = "撤销") + @ApiOperation(value="撤销", notes="撤销") + @GetMapping(value = "/cx") + public Result cx(@RequestParam(name="id",required=true) String id) { + AwardPersion awardPersion = awardPersionService.getById(id); + awardPersion.setTj("0"); + awardPersionService.updateById(awardPersion); + return Result.OK("成功!"); + } + } diff --git a/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/awardpersion/entity/AwardPersion.java b/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/awardpersion/entity/AwardPersion.java index ab248c03..6c9d1a4d 100644 --- a/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/awardpersion/entity/AwardPersion.java +++ b/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/awardpersion/entity/AwardPersion.java @@ -77,16 +77,16 @@ public class AwardPersion implements Serializable { @ApiModelProperty(value = "奖项名称") private java.lang.String awardname; /**状态*/ - @Excel(name = "状态", width = 15, dicCode = "sh_status") + /*@Excel(name = "状态", width = 15, dicCode = "sh_status")*/ @Dict(dicCode = "sh_status") @ApiModelProperty(value = "状态") private java.lang.Integer status; /**奖项顺序*/ - @Excel(name = "奖项顺序", width = 15) + /*@Excel(name = "奖项顺序", width = 15)*/ @ApiModelProperty(value = "奖项顺序") private java.lang.Integer awardsort; /**奖项*/ - @Excel(name = "奖项", width = 15) + /*@Excel(name = "奖项", width = 15)*/ @ApiModelProperty(value = "奖项") private java.lang.String awardid; /**学生姓名*/ @@ -117,5 +117,10 @@ public class AwardPersion implements Serializable { @ApiModelProperty(value = "上传证书") private String sczs; + /**推荐*/ + @Excel(name = "是否推荐", width = 15, dicCode = "yn") + @Dict(dicCode = "yn") + @ApiModelProperty(value = "推荐") + private String tj; } diff --git a/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/bigScreen/service/CompSystemBigScreenServiceImpl.java b/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/bigScreen/service/CompSystemBigScreenServiceImpl.java index 15ef2f2b..feb158b2 100644 --- a/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/bigScreen/service/CompSystemBigScreenServiceImpl.java +++ b/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/bigScreen/service/CompSystemBigScreenServiceImpl.java @@ -1,6 +1,8 @@ package org.jeecg.modules.demo.bigScreen.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.jeecg.common.util.ComputeUtils; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.demo.abilityEvaluation.entity.DepartAbilityEvaluation; @@ -15,11 +17,12 @@ import org.jeecg.modules.demo.annualCompPoint.entity.AnnualCompPoint; import org.jeecg.modules.demo.annualCompPoint.service.IAnnualCompPointService; import org.jeecg.modules.demo.annualScore.entity.PersonalCompScore; import org.jeecg.modules.demo.annualScore.entity.PersonalCompTotalScore; -import org.jeecg.modules.demo.annualScore.service.IDepartCompTotalScoreService; import org.jeecg.modules.demo.annualScore.service.IPersonalCompScoreService; import org.jeecg.modules.demo.annualScore.service.IPersonalCompTotalScoreService; import org.jeecg.modules.demo.annualcomp.entity.AnnualComp; import org.jeecg.modules.demo.annualcomp.service.IAnnualCompService; +import org.jeecg.modules.demo.annualcompaward.entity.AnnualCompAward; +import org.jeecg.modules.demo.annualcompaward.service.IAnnualCompAwardService; import org.jeecg.modules.demo.annualcompetitionprojectregistration.entity.AnnualCompetitionProjectRegistration; import org.jeecg.modules.demo.annualcompetitionprojectregistration.entity.TeamManagement; import org.jeecg.modules.demo.annualcompetitionprojectregistration.service.IAnnualCompetitionProjectRegistrationService; @@ -30,6 +33,8 @@ import org.jeecg.modules.demo.bigScreen.vo.CompVo; import org.jeecg.modules.demo.bigScreen.vo.Last5YearDataVo; import org.jeecg.modules.demo.comp.entity.Comp; import org.jeecg.modules.demo.comp.service.ICompService; +import org.jeecg.modules.demo.comptype.entity.CompType; +import org.jeecg.modules.demo.comptype.service.ICompTypeService; import org.jeecg.modules.system.entity.SysDepart; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.service.ISysDepartService; @@ -54,6 +59,7 @@ import java.util.stream.Collectors; * @Version: 1.0 */ @Service +@Slf4j public class CompSystemBigScreenServiceImpl implements CompSystemBigScreenService { @Autowired @@ -65,11 +71,14 @@ public class CompSystemBigScreenServiceImpl implements CompSystemBigScreenServic @Autowired private ICompService iCompService; + @Autowired + private ICompTypeService iCompTypeService; + @Autowired private ISysDepartService iSysDepartService; @Autowired - private IDepartCompTotalScoreService iDepartCompTotalScoreService; + private IAnnualCompAwardService iAnnualCompAwardService; @Autowired private IAnnualCompetitionProjectRegistrationService iAnnualCompetitionProjectRegistrationService; @@ -104,6 +113,10 @@ public class CompSystemBigScreenServiceImpl implements CompSystemBigScreenServic //二级部门id private final String BASE_PARENT_ID = "1693446350597038081"; + private static final Integer ONE_HUNDRED = 100; + private static final Double ZERO_POINT_FIVE = 0.5; + private static final Double ZERO_POINT_TWO = 0.2; + @Override public List> canSai() { @@ -231,35 +244,112 @@ public class CompSystemBigScreenServiceImpl implements CompSystemBigScreenServic List departList = iSysDepartService.list(new LambdaQueryWrapper().eq(SysDepart::getParentId, BASE_PARENT_ID)); Optional.ofNullable(departList).orElse(new LinkedList<>()).stream().forEach(depart -> { Map resultMap = new LinkedHashMap<>(); - List compList = iCompService.list(new LambdaQueryWrapper().eq(Comp::getCompOrgan, depart.getParentId())); + List compList = iCompService.list(new LambdaQueryWrapper().eq(Comp::getCompOrgan, depart.getId())); //比赛类型 Map> compTypeListMap = Optional.ofNullable(compList).orElse(new LinkedList<>()).stream() .collect(Collectors.groupingBy(Comp::getCompTypeId)); - //TODO - //遍历分组后的结果 -// DecimalFormat decimalFormat = new DecimalFormat(); -// decimalFormat.setMaximumFractionDigits(2); // 保留两位小数 -// decimalFormat.setRoundingMode(RoundingMode.HALF_UP); // 设置具体的进位机制 -// List vos = new ArrayList<>(); -// Optional.ofNullable(compTypeListMap).orElse(new LinkedHashMap<>()).forEach((key, value) -> { -// -// double ratio = ComputeUtils.div2(value.size(), registrationList.size()); -// CompVo vo = new CompVo(); -// vo.setCompOrganId(depart.getId()); -// vo.setCompOrganName(depart.getDepartName()); -// vo.setNumber(registrationList.size()); -// vo.setAwardName(key); -// vo.setAwardNumber(value.size()); -// vo.setAwardRatio(ratio + ""); -// vos.add(vo); -// }); - resultMap.put(depart.getDepartName(), null); + List> vos = new ArrayList<>(); + Optional.ofNullable(compTypeListMap).orElse(new LinkedHashMap<>()).forEach((key, comps) -> { + AtomicReference score4CompType = new AtomicReference<>(new BigDecimal(0)); + CompType compType = iCompTypeService.getById(key.toString()); + Optional.ofNullable(comps).orElse(new ArrayList<>()).stream().forEach(comp -> { + List annualComps = iAnnualCompService.list(new LambdaQueryWrapper().eq(AnnualComp::getCompid, comp.getId())); + Set annualCompIds = Optional.ofNullable(annualComps).orElse(new ArrayList<>()).stream().map(bo -> bo.getAnnualid()).collect(Collectors.toSet()); + if (!ObjectUtils.isEmpty(annualCompIds)) { + List annualCompPointList = iAnnualCompPointService.list(new LambdaQueryWrapper().in(AnnualCompPoint::getAnnualCompId, annualCompIds)); + Optional.ofNullable(annualCompPointList).orElse(new ArrayList<>()).stream().forEach(annualCompPoint -> { + BigDecimal score = convertScore(annualCompPoint, comp); + score4CompType.getAndUpdate(val -> val.add(new BigDecimal(score.toString()))); + }); + } + }); + Map typeMap = new LinkedHashMap<>(); + typeMap.put(compType.getTypeName(), score4CompType.get()); + vos.add(typeMap); + }); + resultMap.put(depart.getDepartName(), vos); resultList.add(resultMap); }); return resultList; } + BigDecimal convertScore(AnnualCompPoint annualCompPoint, Comp comp) { + AtomicReference score4Point = new AtomicReference<>(new BigDecimal(0)); + if (!ObjectUtils.isEmpty(annualCompPoint) && !ObjectUtils.isEmpty(comp)) { + //年度比赛项目 奖项设置 + AnnualCompAward annualCompAward = iAnnualCompAwardService.getOne(new LambdaQueryWrapper() + .eq(AnnualCompAward::getAnnucompid, annualCompPoint.getId())); + + if (ObjectUtils.isEmpty(annualCompAward)) return score4Point.get(); + + //1、根据年度比赛项目id,查询获取管理(award_persion)列表,即参赛人员及获取奖项顺序号 + List awardPersionList = iAwardPersionService.list(new LambdaQueryWrapper() + .eq(AwardPersion::getAnnualCompP, annualCompPoint.getId())); + + //项目分值 + double compweight_val = comp.getCompweight().doubleValue(); + + //2、遍历获奖管理(award_persion)列表,根据奖项id查询比赛奖项设置表(annual_comp_award) + Optional.ofNullable(awardPersionList).orElse(new LinkedList<>()).forEach(en -> { + + //2.1、比赛奖项设置 根据awardsort奖项顺序,获取对应的奖项权重值 + //奖项顺序与奖项权重值映射关系: wardsort(1:first_weight,2:second_weight,3:third_weight,4:fourth_weight,5:fifth_weight) + //奖项权重值 百分比 + String weightVal; + switch (en.getAwardsort()) { + case 1: + weightVal = annualCompAward.getFirstWeight(); + break; + case 2: + weightVal = annualCompAward.getSecondWeight(); + break; + case 3: + weightVal = annualCompAward.getThirdWeight(); + break; + case 4: + weightVal = annualCompAward.getFourthWeight(); + break; + case 5: + weightVal = annualCompAward.getFifthWeight(); + break; + default: + weightVal = "100"; + } + //参与形式 个人、团队,键值对 N-个人 Y-团队 + String entryForm = annualCompPoint.getEntryForm(); + + //2.2 根据报名编号查询参赛者信息 + List managementList = iTeamManagementService.list(new LambdaQueryWrapper() + .eq(TeamManagement::getEnrollCode, en.getEnrollCode()) + ); + if (ObjectUtils.isEmpty(managementList)) return; + + //3、计算积分 项目分值*项目奖项权重值/100 + log.info("***************年度比赛项目-{},项目分值:{},奖项权重值:{}", annualCompPoint.getObjName(), compweight_val, weightVal); + double baseScore = ComputeUtils.mul(compweight_val, ComputeUtils.div2(new Double(weightVal), ONE_HUNDRED)); + AtomicReference score = new AtomicReference<>((double) 0); + if (StringUtils.equals("Y", entryForm)) { //团队赛 + Optional.ofNullable(managementList).orElse(new ArrayList<>()).forEach(e -> { + // 参与形式是团队时,队长积分*0.5,职员积分*0.2 + //captain 是否队长 + if (StringUtils.equals("0", e.getCaptain())) { +// score.set(ComputeUtils.mul(baseScore, ZERO_POINT_FIVE)); + score4Point.getAndUpdate(val -> val.add(new BigDecimal(ComputeUtils.mul(baseScore, ZERO_POINT_FIVE)))); + } else { +// score.set(ComputeUtils.mul(baseScore, ZERO_POINT_TWO)); + score4Point.getAndUpdate(val -> val.add(new BigDecimal(ComputeUtils.mul(baseScore, ZERO_POINT_TWO)))); + } + }); + } else { //个人赛 +// score.set(baseScore); + score4Point.getAndUpdate(val -> val.add(new BigDecimal(baseScore))); + } + }); + } + return score4Point.get(); + } + /** * @description: 单项比赛数据展示 * 使用大数据页面的形式全面展示某项比赛的各种综合数据,包括年度比赛列表、比赛项目数、参赛人数统计、多维度能力评价分析数据、近五年比赛人数对比,比赛获奖列表,参赛人员积分列表。需要提供功能截图。 @@ -459,7 +549,7 @@ public class CompSystemBigScreenServiceImpl implements CompSystemBigScreenServic // compCounts.put("pointCount", pointCount); //总报名数 long count = Optional.ofNullable(compVoList).orElse(new LinkedList<>()).stream().mapToInt(vo -> vo.getNumber()).sum(); - //总报名数 + //总报名人数 compCounts.put("count", count); Long personCount = iAnnualCompetitionProjectRegistrationService.count(new LambdaQueryWrapper() .eq(AnnualCompetitionProjectRegistration::getEntryFormat, "0") @@ -467,8 +557,12 @@ public class CompSystemBigScreenServiceImpl implements CompSystemBigScreenServic //学生人数 compCounts.put("personCompCount", personCount); Long teamCount = count - personCount; - //队伍数 - compCounts.put("teamCompCount", teamCount); + if (count < personCount) { + compCounts.put("teamCompCount", 0);//队伍数 + } else { + //队伍数 + compCounts.put("teamCompCount", teamCount); + } //比赛统计 resultMap.put("compCounts", compCounts); diff --git a/jeecgboot-vue3-master/src/hooks/system/useListPage.ts b/jeecgboot-vue3-master/src/hooks/system/useListPage.ts index ed47739d..c175d58c 100644 --- a/jeecgboot-vue3-master/src/hooks/system/useListPage.ts +++ b/jeecgboot-vue3-master/src/hooks/system/useListPage.ts @@ -8,7 +8,7 @@ import { useMessage } from '/@/hooks/web/useMessage'; import { useMethods } from '/@/hooks/system/useMethods'; import { useDesign } from '/@/hooks/web/useDesign'; import { filterObj } from '/@/utils/common/compUtils'; -const { handleExportXls, handleImportXls,handleExportXlsMb } = useMethods(); +const { handleExportXls, handleImportXls,handleExportXlsMb,handleExportXlstj } = useMethods(); // 定义 useListPage 方法所需参数 interface ListPageOptions { @@ -33,6 +33,13 @@ interface ListPageOptions { //导出参数 params?: object; }; + exportConfigtj?: { + url: string | (() => string); + // 导出文件名 + name?: string | (() => string); + //导出参数 + params?: object; + }; // 导入配置 importConfig?: { //update-begin-author:taoyan date:20220507 for: erp代码生成 子表 导入地址是动态的 @@ -158,6 +165,51 @@ export function useListPage(options: ListPageOptions) { } } + // 导出奖项推荐数据 excel + async function onExportXlstj() { + //update-begin---author:wangshuai ---date:20220411 for:导出新增自定义参数------------ + let { url, name, params } = options?.exportConfigtj ?? {}; + let realUrl = typeof url === 'function' ? url() : url; + if (realUrl) { + let title = typeof name === 'function' ? name() : name; + //update-begin-author:taoyan date:20220507 for: erp代码生成 子表 导出报错,原因未知- + let paramsForm:any = {}; + try { + paramsForm = await getForm().validate(); + } catch (e) { + console.error(e); + } + //update-end-author:taoyan date:20220507 for: erp代码生成 子表 导出报错,原因未知- + + //update-begin-author:liusq date:20230410 for:[/issues/409]导出功能没有按排序结果导出,设置导出默认排序,创建时间倒序 + if(!paramsForm?.column){ + Object.assign(paramsForm,{column:'createTime',order:'desc'}); + } + //update-begin-author:liusq date:20230410 for: [/issues/409]导出功能没有按排序结果导出,设置导出默认排序,创建时间倒序 + + //如果参数不为空,则整合到一起 + //update-begin-author:taoyan date:20220507 for: erp代码生成 子表 导出动态设置mainId + if (params) { + Object.keys(params).map((k) => { + let temp = (params as object)[k]; + if (temp) { + paramsForm[k] = unref(temp); + } + }); + } + //update-end-author:taoyan date:20220507 for: erp代码生成 子表 导出动态设置mainId + if (selectedRowKeys.value && selectedRowKeys.value.length > 0) { + paramsForm['selections'] = selectedRowKeys.value.join(','); + } + console.log() + return handleExportXlstj(title as string, realUrl, filterObj(paramsForm)); + //update-end---author:wangshuai ---date:20220411 for:导出新增自定义参数-------------- + } else { + $message.createMessage.warn('没有传递 exportConfig.url 参数'); + return Promise.reject(); + } + } + // 导入 excel function onImportXls(file) { let { url, success } = options?.importConfig ?? {}; @@ -220,6 +272,7 @@ export function useListPage(options: ListPageOptions) { ...$message, onExportXls, onExportXlsMb, + onExportXlstj, onImportXls, doRequest, doDeleteRecord, diff --git a/jeecgboot-vue3-master/src/hooks/system/useMethods.ts b/jeecgboot-vue3-master/src/hooks/system/useMethods.ts index dfdd7dac..e4a8909a 100644 --- a/jeecgboot-vue3-master/src/hooks/system/useMethods.ts +++ b/jeecgboot-vue3-master/src/hooks/system/useMethods.ts @@ -49,6 +49,41 @@ export function useMethods() { window.URL.revokeObjectURL(url); //释放掉blob对象 } } + + /** + * 奖项推荐导出xls + * @param name + * @param url + */ + async function exportXlstj(name, url, params, isXlsx = false) { + const data = await defHttp.get({ url: url, params: params, responseType: 'blob' }, { isTransformResponse: false }); + if (!data) { + createMessage.warning('文件下载失败'); + return; + } + if (!name || typeof name != 'string') { + name = '导出文件'; + } + let blobOptions = { type: 'application/vnd.ms-excel' }; + let fileSuffix = '.xls'; + if (isXlsx === true) { + blobOptions['type'] = XLSX_MIME_TYPE; + fileSuffix = XLSX_FILE_SUFFIX; + } + if (typeof window.navigator.msSaveBlob !== 'undefined') { + window.navigator.msSaveBlob(new Blob([data], blobOptions), name + fileSuffix); + } else { + let url = window.URL.createObjectURL(new Blob([data], blobOptions)); + let link = document.createElement('a'); + link.style.display = 'none'; + link.href = url; + link.setAttribute('download', name + fileSuffix); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); //下载完成移除元素 + window.URL.revokeObjectURL(url); //释放掉blob对象 + } + } /** * 导出模板xls * @param name @@ -128,5 +163,6 @@ export function useMethods() { handleImportXls: (data, url, success) => importXls(data, url, success), handleExportXlsx: (name: string, url: string, params?: object) => exportXls(name, url, params, true), handleExportXlsMb: (name: string, url: string, params?: object) => exportXlsMb(name, url, params), + handleExportXlstj: (name: string, url: string, params?: object) => exportXlstj(name, url, params), }; } diff --git a/jeecgboot-vue3-master/src/views/awardpersion/AwardPersion.api.ts b/jeecgboot-vue3-master/src/views/awardpersion/AwardPersion.api.ts index 7cf35623..dbea3a36 100644 --- a/jeecgboot-vue3-master/src/views/awardpersion/AwardPersion.api.ts +++ b/jeecgboot-vue3-master/src/views/awardpersion/AwardPersion.api.ts @@ -17,7 +17,9 @@ enum Api { queryOptions = '/awardpersion/awardPersion/queryOptions', personalAbilityEvaluation = '/abilityEvaluation/personalAbilityEvaluation/personalAbilityEvaluation2', sczs='/awardpersion/awardPersion/sczs', - + exportXlstj = '/awardpersion/awardPersion/exportXlstj', + tj = '/awardpersion/awardPersion/tj', + qxtj = '/awardpersion/awardPersion/cx', } /** @@ -26,6 +28,7 @@ enum Api { */ export const getExportUrl = Api.exportXls; export const getExportUrlMb = Api.exportXlsMb; +export const getExportUrltj = Api.exportXlstj; /** * 导入api @@ -51,6 +54,28 @@ export const deleteOne = (params,handleSuccess) => { }); } +/** + * 推荐 + * @param params + * @param handleSuccess + */ +export const tj = (params,handleSuccess) => { + return defHttp.get({url: Api.tj, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} + +/** + * 取消推荐 + * @param params + * @param handleSuccess + */ +export const qxtj = (params,handleSuccess) => { + return defHttp.get({url: Api.qxtj, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} + /** * 批量删除 * @param params diff --git a/jeecgboot-vue3-master/src/views/awardpersion/AwardPersion.data.ts b/jeecgboot-vue3-master/src/views/awardpersion/AwardPersion.data.ts index 9e125b4f..5659744a 100644 --- a/jeecgboot-vue3-master/src/views/awardpersion/AwardPersion.data.ts +++ b/jeecgboot-vue3-master/src/views/awardpersion/AwardPersion.data.ts @@ -45,6 +45,11 @@ export const columns: BasicColumn[] = [ dataIndex: 'sczs', customRender: render.renderImagezs, }, + { + title: '是否推荐', + align: "center", + dataIndex: 'tj_dictText' + }, /* { title: '状态', align: "center", diff --git a/jeecgboot-vue3-master/src/views/awardpersion/AwardPersionList.vue b/jeecgboot-vue3-master/src/views/awardpersion/AwardPersionList.vue index e91b4f5a..93071035 100644 --- a/jeecgboot-vue3-master/src/views/awardpersion/AwardPersionList.vue +++ b/jeecgboot-vue3-master/src/views/awardpersion/AwardPersionList.vue @@ -40,6 +40,7 @@ 重新获取 导出 导出模板 + 导出推荐 导入