diff --git a/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java b/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java index 722093f..682890c 100644 --- a/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java +++ b/jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/query/QueryGenerator.java @@ -2,6 +2,7 @@ package org.jeecg.common.system.query; import java.beans.PropertyDescriptor; import java.io.UnsupportedEncodingException; +import java.lang.reflect.Field; import java.math.BigDecimal; import java.net.URLDecoder; import java.text.ParseException; @@ -11,6 +12,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import com.baomidou.mybatisplus.annotation.TableField; import org.apache.commons.beanutils.PropertyUtils; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.DataBaseConstant; @@ -113,6 +115,187 @@ public class QueryGenerator { } //update-end---author:chenrui ---date:20240527 for:[TV360X-378]增加自定义字段查询规则功能------------ + /** + * 获取查询条件构造器QueryWrapper实例 通用查询条件已被封装完成 + * @param searchObj 查询实体 + * @param parameterMap request.getParameterMap() + * @return QueryWrapper实例 + */ + public static QueryWrapper initQueryWrapper(String columnPrefix,T searchObj,Map parameterMap){ + long start = System.currentTimeMillis(); + QueryWrapper queryWrapper = new QueryWrapper(); + installMplus(queryWrapper, columnPrefix, searchObj, parameterMap); + log.debug("---查询条件构造器初始化完成,耗时:"+(System.currentTimeMillis()-start)+"毫秒----"); + return queryWrapper; + } + + /** + * 组装Mybatis Plus 查询条件 + *

使用此方法 需要有如下几点注意: + *
1.使用QueryWrapper 而非LambdaQueryWrapper; + *
2.实例化QueryWrapper时不可将实体传入参数 + *
错误示例:如QueryWrapper queryWrapper = new QueryWrapper(jeecgDemo); + *
正确示例:QueryWrapper queryWrapper = new QueryWrapper(); + *
3.也可以不使用这个方法直接调用 {@link #initQueryWrapper}直接获取实例 + */ + private static void installMplus(QueryWrapper queryWrapper,String columnPrefix,Object searchObj,Map parameterMap) { + + /* + * 注意:权限查询由前端配置数据规则 当一个人有多个所属部门时候 可以在规则配置包含条件 orgCode 包含 #{sys_org_code} + 但是不支持在自定义SQL中写orgCode in #{sys_org_code} + 当一个人只有一个部门 就直接配置等于条件: orgCode 等于 #{sys_org_code} 或者配置自定义SQL: orgCode = '#{sys_org_code}' + */ + + //区间条件组装 模糊查询 高级查询组装 简单排序 权限查询 + PropertyDescriptor[] origDescriptors = PropertyUtils.getPropertyDescriptors(searchObj); + Map ruleMap = getRuleMap(); + + //权限规则自定义SQL表达式 + for (String c : ruleMap.keySet()) { + if(oConvertUtils.isNotEmpty(c) && c.startsWith(SQL_RULES_COLUMN)){ + queryWrapper.and(i ->i.apply(getSqlRuleValue(ruleMap.get(c).getRuleValue()))); + } + } + + String name, type, column; + // update-begin--Author:taoyan Date:20200923 for:issues/1671 如果字段加注解了@TableField(exist = false),不走DB查询------- + //定义实体字段和数据库字段名称的映射 高级查询中 只能获取实体字段 如果设置TableField注解 那么查询条件会出问题 + Map fieldColumnMap = new HashMap<>(5); + for (int i = 0; i < origDescriptors.length; i++) { + //aliasName = origDescriptors[i].getName(); mybatis 不存在实体属性 不用处理别名的情况 + name = origDescriptors[i].getName(); + type = origDescriptors[i].getPropertyType().toString(); + try { + if (judgedIsUselessField(name)|| !PropertyUtils.isReadable(searchObj, name)) { + continue; + } + + Object value = PropertyUtils.getSimpleProperty(searchObj, name); + column = getTableFieldName(searchObj.getClass(), name); + if(column==null){ + //column为null只有一种情况 那就是 添加了注解@TableField(exist = false) 后续都不用处理了 + continue; + } + //二开项目组新增,为了支持多表,添加别名 + if(oConvertUtils.isNotEmpty(columnPrefix)){ + column = columnPrefix + "." + column; + } + fieldColumnMap.put(name,column); + //数据权限查询 + if(ruleMap.containsKey(name)) { + addRuleToQueryWrapper(ruleMap.get(name), column, origDescriptors[i].getPropertyType(), queryWrapper); + } + //区间查询 + doIntervalQuery(queryWrapper, parameterMap, type, name, column); + //判断单值 参数带不同标识字符串 走不同的查询 + //TODO 这种前后带逗号的支持分割后模糊查询(多选字段查询生效) 示例:,1,3, + if (null != value && value.toString().startsWith(COMMA) && value.toString().endsWith(COMMA)) { + String multiLikeval = value.toString().replace(",,", COMMA); + String[] vals = multiLikeval.substring(1, multiLikeval.length()).split(COMMA); + final String field = oConvertUtils.camelToUnderline(column); + if(vals.length>1) { + queryWrapper.and(j -> { + log.info("---查询过滤器,Query规则---field:{}, rule:{}, value:{}", field, "like", vals[0]); + j = j.like(field,vals[0]); + for (int k=1;k j.like(field,vals[0])); + } + }else { + //根据参数值带什么关键字符串判断走什么类型的查询 + QueryRuleEnum rule = convert2Rule(value); + value = replaceValue(rule,value); + // add -begin 添加判断为字符串时设为全模糊查询 + //if( (rule==null || QueryRuleEnum.EQ.equals(rule)) && "class java.lang.String".equals(type)) { + // 可以设置左右模糊或全模糊,因人而异 + //rule = QueryRuleEnum.LIKE; + //} + // add -end 添加判断为字符串时设为全模糊查询 + addEasyQuery(queryWrapper, column, rule, value); + } + + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } + // 排序逻辑 处理 + doMultiFieldsOrder(queryWrapper, parameterMap, fieldColumnMap); + + //高级查询 + doSuperQuery(queryWrapper, parameterMap, fieldColumnMap); + // update-end--Author:taoyan Date:20200923 for:issues/1671 如果字段加注解了@TableField(exist = false),不走DB查询------- + + } + /** + * 获取表字段名 + * @param clazz + * @param name + * @return + */ + private static String getTableFieldName(Class clazz, String name) { + try { + //如果字段加注解了@TableField(exist = false),不走DB查询 + Field field = null; + try { + field = clazz.getDeclaredField(name); + } catch (NoSuchFieldException e) { + //e.printStackTrace(); + } + + //如果为空,则去父类查找字段 + if (field == null) { + List allFields = getClassFields(clazz); + List searchFields = allFields.stream().filter(a -> a.getName().equals(name)).collect(Collectors.toList()); + if(searchFields!=null && searchFields.size()>0){ + field = searchFields.get(0); + } + } + + if (field != null) { + TableField tableField = field.getAnnotation(TableField.class); + if (tableField != null){ + if(tableField.exist() == false){ + //如果设置了TableField false 这个字段不需要处理 + return null; + }else{ + String column = tableField.value(); + //如果设置了TableField value 这个字段是实体字段 + if(!"".equals(column)){ + return column; + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return name; + } + + /** + * 获取class的 包括父类的 + * @param clazz + * @return + */ + private static List getClassFields(Class clazz) { + List list = new ArrayList(); + Field[] fields; + do{ + fields = clazz.getDeclaredFields(); + for(int i = 0;i使用此方法 需要有如下几点注意: diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/controller/BlJbzdjsController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/controller/BlJbzdjsController.java index 6bf1b28..a32e27f 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/controller/BlJbzdjsController.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/controller/BlJbzdjsController.java @@ -190,6 +190,14 @@ public class BlJbzdjsController extends JeecgController-1){ + + }else{ + blJbzdjs.setDwmc(loginUser.getDepartIds()); + } + return super.exportXls(request, blJbzdjs, BlJbzdjs.class, "bl_jbzdjs"); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/entity/BlJbzdjs.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/entity/BlJbzdjs.java index b779e9c..18724e7 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/entity/BlJbzdjs.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blJbzdjs/entity/BlJbzdjs.java @@ -81,16 +81,19 @@ public class BlJbzdjs implements Serializable { @ApiModelProperty(value = "年度") private java.lang.String years; /**修订情况*/ - @Excel(name = "修订情况", width = 15, dicCode = "zd_xdqk") @Dict(dicCode = "zd_xdqk") @ApiModelProperty(value = "修订情况") private java.lang.String yearsType; /**附件*/ - @Excel(name = "附件", width = 15) @ApiModelProperty(value = "附件") private java.lang.String filePath; /**文件服务器*/ - @Excel(name = "文件服务器", width = 15) @ApiModelProperty(value = "文件服务器") private java.lang.String ftpPath; + /**修订情况说明*/ + @ApiModelProperty(value = "修订情况说明") + private java.lang.String xdqksmPath; + /**文件服务器修订情况说明位置*/ + @ApiModelProperty(value = "文件服务器修订情况说明位置") + private java.lang.String ftpXdqksmPath; } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/controller/BlKckhclblController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/controller/BlKckhclblController.java new file mode 100644 index 0000000..ed1f42b --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/controller/BlKckhclblController.java @@ -0,0 +1,176 @@ +package org.jeecg.modules.demo.blKckhclbl.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.demo.blKckhclbl.entity.BlKckhclbl; +import org.jeecg.modules.demo.blKckhclbl.service.IBlKckhclblService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.apache.shiro.authz.annotation.RequiresPermissions; + + /** + * @Description: 课程考核材料补录信息 + * @Author: jeecg-boot + * @Date: 2024-12-25 + * @Version: V1.0 + */ +@Api(tags="课程考核材料补录信息") +@RestController +@RequestMapping("/blKckhclbl/blKckhclbl") +@Slf4j +public class BlKckhclblController extends JeecgController { + @Autowired + private IBlKckhclblService blKckhclblService; + + /** + * 分页列表查询 + * + * @param blKckhclbl + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "课程考核材料补录信息-分页列表查询") + @ApiOperation(value="课程考核材料补录信息-分页列表查询", notes="课程考核材料补录信息-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(BlKckhclbl blKckhclbl, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(blKckhclbl, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = blKckhclblService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param blKckhclbl + * @return + */ + @AutoLog(value = "课程考核材料补录信息-添加") + @ApiOperation(value="课程考核材料补录信息-添加", notes="课程考核材料补录信息-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody BlKckhclbl blKckhclbl) { + blKckhclblService.save(blKckhclbl); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param blKckhclbl + * @return + */ + @AutoLog(value = "课程考核材料补录信息-编辑") + @ApiOperation(value="课程考核材料补录信息-编辑", notes="课程考核材料补录信息-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody BlKckhclbl blKckhclbl) { + blKckhclblService.updateById(blKckhclbl); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "课程考核材料补录信息-通过id删除") + @ApiOperation(value="课程考核材料补录信息-通过id删除", notes="课程考核材料补录信息-通过id删除") + @RequiresPermissions("blKckhclbl:bl_kckhclbl:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + blKckhclblService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "课程考核材料补录信息-批量删除") + @ApiOperation(value="课程考核材料补录信息-批量删除", notes="课程考核材料补录信息-批量删除") + @RequiresPermissions("blKckhclbl:bl_kckhclbl:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.blKckhclblService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "课程考核材料补录信息-通过id查询") + @ApiOperation(value="课程考核材料补录信息-通过id查询", notes="课程考核材料补录信息-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + BlKckhclbl blKckhclbl = blKckhclblService.getById(id); + if(blKckhclbl==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(blKckhclbl); + } + + /** + * 导出excel + * + * @param request + * @param blKckhclbl + */ + @RequiresPermissions("blKckhclbl:bl_kckhclbl:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, BlKckhclbl blKckhclbl) { + return super.exportXls(request, blKckhclbl, BlKckhclbl.class, "课程考核材料补录信息"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("blKckhclbl:bl_kckhclbl:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, BlKckhclbl.class); + } + +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/entity/BlKckhclbl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/entity/BlKckhclbl.java new file mode 100644 index 0000000..9103f99 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/entity/BlKckhclbl.java @@ -0,0 +1,68 @@ +package org.jeecg.modules.demo.blKckhclbl.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 课程考核材料补录信息 + * @Author: jeecg-boot + * @Date: 2024-12-25 + * @Version: V1.0 + */ +@Data +@TableName("bl_kckhclbl") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="bl_kckhclbl对象", description="课程考核材料补录信息") +public class BlKckhclbl implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.String id; + /**createBy*/ + @ApiModelProperty(value = "createBy") + private java.lang.String createBy; + /**createTime*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "createTime") + private java.util.Date createTime; + /**updateBy*/ + @ApiModelProperty(value = "updateBy") + private java.lang.String updateBy; + /**updateTime*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "updateTime") + private java.util.Date updateTime; + /**课程任务代码*/ + @Excel(name = "课程任务代码", width = 15) + @ApiModelProperty(value = "课程任务代码") + private java.lang.String kcrwdm; + /**补录类型*/ + @Excel(name = "补录类型", width = 15, dicCode = "kckhcl_bltype") + @Dict(dicCode = "kckhcl_bltype") + @ApiModelProperty(value = "补录类型") + private java.lang.String blType; + /**补录附件*/ + @Excel(name = "补录附件", width = 15) + @ApiModelProperty(value = "补录附件") + private java.lang.String blFilePath; +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/BlKckhclblMapper.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/BlKckhclblMapper.java new file mode 100644 index 0000000..7599c3c --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/BlKckhclblMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.demo.blKckhclbl.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.demo.blKckhclbl.entity.BlKckhclbl; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 课程考核材料补录信息 + * @Author: jeecg-boot + * @Date: 2024-12-25 + * @Version: V1.0 + */ +public interface BlKckhclblMapper extends BaseMapper { + +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/xml/BlKckhclblMapper.xml b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/xml/BlKckhclblMapper.xml new file mode 100644 index 0000000..f7cb8f4 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/mapper/xml/BlKckhclblMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/IBlKckhclblService.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/IBlKckhclblService.java new file mode 100644 index 0000000..ddb8c24 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/IBlKckhclblService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.demo.blKckhclbl.service; + +import org.jeecg.modules.demo.blKckhclbl.entity.BlKckhclbl; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 课程考核材料补录信息 + * @Author: jeecg-boot + * @Date: 2024-12-25 + * @Version: V1.0 + */ +public interface IBlKckhclblService extends IService { + +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/impl/BlKckhclblServiceImpl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/impl/BlKckhclblServiceImpl.java new file mode 100644 index 0000000..074c692 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blKckhclbl/service/impl/BlKckhclblServiceImpl.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.demo.blKckhclbl.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import org.jeecg.modules.demo.blKckhclbl.entity.BlKckhclbl; +import org.jeecg.modules.demo.blKckhclbl.mapper.BlKckhclblMapper; +import org.jeecg.modules.demo.blKckhclbl.service.IBlKckhclblService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 课程考核材料补录信息 + * @Author: jeecg-boot + * @Date: 2024-12-25 + * @Version: V1.0 + */ +@Service +@DS("multi-datasource1") +public class BlKckhclblServiceImpl extends ServiceImpl implements IBlKckhclblService { + +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/controller/XxhbjwxtjxrwController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/controller/XxhbjwxtjxrwController.java index b287b7b..44f2ccc 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/controller/XxhbjwxtjxrwController.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/controller/XxhbjwxtjxrwController.java @@ -107,6 +107,20 @@ public class XxhbjwxtjxrwController extends JeecgController> listbl(Xxhbjwxtjxrw xxhbjwxtjxrw, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper("a",xxhbjwxtjxrw, req.getParameterMap()); + + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String xnxq = "0"; + + if(StringUtils.isNotBlank(xxhbjwxtjxrw.getZjxnxq())){ + queryWrapper.eq(StringUtils.isNotBlank(xxhbjwxtjxrw.getZjxnxq()),"concat(a.xn,a.xqmc)",xxhbjwxtjxrw.getZjxnxq()); + }else if(StringUtils.equals(xnxq,"0")){ + String dqxq = commonApi.translateDict("dqxq","1"); + queryWrapper.eq("concat(a.xn,a.xqmc)",dqxq); + } + + if(StringUtils.isNotBlank(xxhbjwxtjxrw.getSfxybl())){ + if(StringUtils.equals("0",xxhbjwxtjxrw.getSfxybl())){ + queryWrapper.apply(" b.bl_type is not null"); + }else{ + queryWrapper.apply(" b.bl_type is null"); + } + } + + + queryWrapper.eq( "a.file_shztmc","审核通过"); + + queryWrapper.like(StringUtils.isNotBlank(xxhbjwxtjxrw.getZhuanye()),"a.zymc",xxhbjwxtjxrw.getZhuanye()); + queryWrapper.apply(StringUtils.isNotBlank(xxhbjwxtjxrw.getZhicheng()),"SUBSTRING(a.TEAXM,LOCATE('[',a.TEAXM)+1,locate(']',a.TEAXM)-locate('[',a.TEAXM)-1) = '"+xxhbjwxtjxrw.getZhicheng()+"'"); + + + Page page = new Page(pageNo, pageSize); + IPage pageList = xxhbjwxtjxrwService.listbl(page, queryWrapper); + + + return Result.OK(pageList); + } + } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/entity/Xxhbjwxtjxrw.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/entity/Xxhbjwxtjxrw.java index 04fb99d..2810e3a 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/entity/Xxhbjwxtjxrw.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/entity/Xxhbjwxtjxrw.java @@ -101,4 +101,13 @@ public class Xxhbjwxtjxrw implements Serializable { private java.lang.String zjxnxq;//专家展示学年学期 @TableField(exist = false) private java.lang.String sfxk;//是否选课 0未选 1已选 + + @TableField(exist = false) + private java.lang.String blFilePath;//补录材料地址 + @TableField(exist = false) + private java.lang.String blType;//补录类型 + @TableField(exist = false) + private java.lang.String sfxybl;//是否需要补录 + + } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/XxhbjwxtjxrwMapper.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/XxhbjwxtjxrwMapper.java index ed97c3b..15e95fd 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/XxhbjwxtjxrwMapper.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/XxhbjwxtjxrwMapper.java @@ -2,6 +2,10 @@ package org.jeecg.modules.demo.xxhbjwxtjxrw.mapper; import java.util.List; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.demo.xxhbjwxtjxrw.entity.Xxhbjwxtjxrw; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -14,4 +18,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface XxhbjwxtjxrwMapper extends BaseMapper { + IPage listbl(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/xml/XxhbjwxtjxrwMapper.xml b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/xml/XxhbjwxtjxrwMapper.xml index 2c20999..f6f423c 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/xml/XxhbjwxtjxrwMapper.xml +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/mapper/xml/XxhbjwxtjxrwMapper.xml @@ -6,4 +6,12 @@ select *,concat(xn,xqmc) as zjxnxq from xxhbjwxtjxrw ${ew.customSqlSegment} + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/IXxhbjwxtjxrwService.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/IXxhbjwxtjxrwService.java index cc1914c..0038391 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/IXxhbjwxtjxrwService.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/IXxhbjwxtjxrwService.java @@ -1,5 +1,8 @@ package org.jeecg.modules.demo.xxhbjwxtjxrw.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.demo.xxhbjwxtjxrw.entity.Xxhbjwxtjxrw; import com.baomidou.mybatisplus.extension.service.IService; @@ -14,4 +17,6 @@ import java.util.List; public interface IXxhbjwxtjxrwService extends IService { void syncList(List outDataList); + + IPage listbl(Page page, QueryWrapper queryWrapper); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/impl/XxhbjwxtjxrwServiceImpl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/impl/XxhbjwxtjxrwServiceImpl.java index 5f44091..7e7c1fd 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/impl/XxhbjwxtjxrwServiceImpl.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtjxrw/service/impl/XxhbjwxtjxrwServiceImpl.java @@ -2,6 +2,8 @@ package org.jeecg.modules.demo.xxhbjwxtjxrw.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.demo.xxhbjwxtjxrw.entity.Xxhbjwxtjxrw; import org.jeecg.modules.demo.xxhbjwxtjxrw.mapper.XxhbjwxtjxrwMapper; import org.jeecg.modules.demo.xxhbjwxtjxrw.service.IXxhbjwxtjxrwService; @@ -29,6 +31,11 @@ public class XxhbjwxtjxrwServiceImpl extends ServiceImpl listbl(Page page, QueryWrapper queryWrapper) { + return baseMapper.listbl(page,queryWrapper); + } + @Transactional(rollbackFor = {Exception.class}) public boolean syncList(Collection entityList, boolean isDelete) { QueryWrapper dqw = new QueryWrapper(); diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/controller/XxhbjwxtscwjxxController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/controller/XxhbjwxtscwjxxController.java index b5ba760..59bb793 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/controller/XxhbjwxtscwjxxController.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/controller/XxhbjwxtscwjxxController.java @@ -102,7 +102,7 @@ public class XxhbjwxtscwjxxController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(xxhbjwxtscwjxx, req.getParameterMap()); Page page = new Page(pageNo, pageSize); - IPage pageList = xxhbjwxtscwjxxService.page(page, queryWrapper); + IPage pageList = xxhbjwxtscwjxxService.khcllist(page, queryWrapper); pageList.getRecords().forEach(item->{ item.setId(item.getPath()); }); @@ -111,7 +111,7 @@ public class XxhbjwxtscwjxxController extends JeecgController list = pageList.getRecords(); if(list.size()>0){ List list2 = new ArrayList<>(); - String sorts[] = ("历次过程性考核-评分标准,历次过程性考核-内容及要求(或试题),课程考核合理性审核记录单,期末考试-评分标准,期未考试-试题(或内容及要求),课程考核质量评价单,课程目标达成情况评价报告").split(","); + String sorts[] = ("历次过程性考核-评分标准,历次过程性考核-内容及要求(或试题),课程考核合理性审核记录单,期末考试-评分标准,期未考试-试题(或内容及要求),课程考核质量评价单,课程目标达成情况评价报告,课程教学大纲").split(","); for (String par : sorts){ list2.add(list.stream().filter(item->item.getFjtype().equals(par)).findFirst().orElse(null)); diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/XxhbjwxtscwjxxMapper.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/XxhbjwxtscwjxxMapper.java index 5223a66..fcbea40 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/XxhbjwxtscwjxxMapper.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/XxhbjwxtscwjxxMapper.java @@ -2,6 +2,10 @@ package org.jeecg.modules.demo.xxhbjwxtscwjxx.mapper; import java.util.List; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.demo.xxhbjwxtscwjxx.entity.Xxhbjwxtscwjxx; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -14,4 +18,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface XxhbjwxtscwjxxMapper extends BaseMapper { + IPage khclList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/xml/XxhbjwxtscwjxxMapper.xml b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/xml/XxhbjwxtscwjxxMapper.xml index 752159b..bf53b65 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/xml/XxhbjwxtscwjxxMapper.xml +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/mapper/xml/XxhbjwxtscwjxxMapper.xml @@ -2,4 +2,14 @@ + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/IXxhbjwxtscwjxxService.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/IXxhbjwxtscwjxxService.java index 711d258..e266209 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/IXxhbjwxtscwjxxService.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/IXxhbjwxtscwjxxService.java @@ -1,5 +1,8 @@ package org.jeecg.modules.demo.xxhbjwxtscwjxx.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.demo.xxhbjwxtjxrw.entity.Xxhbjwxtjxrw; import org.jeecg.modules.demo.xxhbjwxtscwjxx.entity.Xxhbjwxtscwjxx; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +21,6 @@ public interface IXxhbjwxtscwjxxService extends IService { void syncList(List outDataList); Xxhbjwxtscwjxx getBatchDown(Xxhbjwxtscwjxx xxhbjwxtscwjxx, HttpServletResponse response); + + IPage khcllist(Page page, QueryWrapper queryWrapper); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/impl/XxhbjwxtscwjxxServiceImpl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/impl/XxhbjwxtscwjxxServiceImpl.java index e866920..688f39c 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/impl/XxhbjwxtscwjxxServiceImpl.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/xxhbjwxtscwjxx/service/impl/XxhbjwxtscwjxxServiceImpl.java @@ -2,6 +2,8 @@ package org.jeecg.modules.demo.xxhbjwxtscwjxx.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.demo.xxhbjwxtjxrw.entity.Xxhbjwxtjxrw; import org.jeecg.modules.demo.xxhbjwxtscwjxx.entity.Xxhbjwxtscwjxx; import org.jeecg.modules.demo.xxhbjwxtscwjxx.mapper.XxhbjwxtscwjxxMapper; @@ -134,6 +136,11 @@ public class XxhbjwxtscwjxxServiceImpl extends ServiceImpl khcllist(Page page, QueryWrapper queryWrapper) { + return baseMapper.khclList(page,queryWrapper); + } + private String getDownloadPath(String path){ String filePath = ""; // if(StringUtils.isNotBlank(path)){ diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tjbb/tjbb16/controller/TjbbController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tjbb/tjbb16/controller/TjbbController.java index 088e492..e67e5e2 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tjbb/tjbb16/controller/TjbbController.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tjbb/tjbb16/controller/TjbbController.java @@ -20,9 +20,11 @@ import org.jeecg.common.util.oConvertUtils; import org.jeecg.config.JeecgBaseConfig; import org.jeecg.modules.tjbb.tjbb141.entity.Tjbb_141; import org.jeecg.modules.tjbb.tjbb141.service.ITjbb_141Service; +import org.jeecg.modules.tjbb.tjbb151.entity.Tjbb_151; import org.jeecg.modules.tjbb.tjbb151.service.ITjbb_151Service; import org.jeecg.modules.tjbb.tjbb152.entity.Tjbb_152; import org.jeecg.modules.tjbb.tjbb152.service.ITjbb_152Service; +import org.jeecg.modules.tjbb.tjbb153.entity.Tjbb_153; import org.jeecg.modules.tjbb.tjbb153.service.ITjbb_153Service; import org.jeecg.modules.tjbb.tjbb16.entity.Tjbb_16; import org.jeecg.modules.tjbb.tjbb16.service.ITjbb_16Service; @@ -123,6 +125,68 @@ public class TjbbController extends JeecgController { map.put("tsf8",tsf8); map.put("tsf9",tsf9); map.put("tsf11",tsf11); + + + QueryWrapper queryWrapper1 = new QueryWrapper<>(); + queryWrapper1.last("limit 1"); + Tjbb_16 tjbb_16 = tjbb_16Service.getOne(queryWrapper1); + map.put("t16time",tjbb_16.getCreateTime()); + + QueryWrapper queryWrapper2 = new QueryWrapper<>(); + queryWrapper2.last("limit 1"); + Tjbb_24 tjbb_24 = tjbb_24Service.getOne(queryWrapper2); + map.put("t24time",tjbb_24.getCreateTime()); + + QueryWrapper queryWrapper3 = new QueryWrapper<>(); + queryWrapper3.last("limit 1"); + Tjbb_141 tjbb_141 = tjbb_141Service.getOne(queryWrapper3); + map.put("t141time",tjbb_141.getCreateTime()); + + QueryWrapper queryWrapper4 = new QueryWrapper<>(); + queryWrapper4.last("limit 1"); + Tjbb_151 tjbb_151 = tjbb_151Service.getOne(queryWrapper4); + map.put("t151time",tjbb_151.getCreateTime()); + + QueryWrapper queryWrapper5 = new QueryWrapper<>(); + queryWrapper5.last("limit 1"); + Tjbb_152 tjbb_152 = tjbb_152Service.getOne(queryWrapper5); + map.put("t152time",tjbb_152.getCreateTime()); + + QueryWrapper queryWrapper6 = new QueryWrapper<>(); + queryWrapper6.last("limit 1"); + Tjbb_153 tjbb_153 = tjbb_153Service.getOne(queryWrapper6); + map.put("t153time",tjbb_153.getCreateTime()); + + QueryWrapper queryWrapper7 = new QueryWrapper<>(); + queryWrapper7.last("limit 1"); + TjbbSf3 tjbbSf3 = tjbbSf3Service.getOne(queryWrapper7); + map.put("tsf3time",tjbbSf3.getCreateTime()); + + QueryWrapper queryWrapper8 = new QueryWrapper<>(); + queryWrapper8.last("limit 1"); + TjbbSf5 tjbbSf5 = tjbbSf5Service.getOne(queryWrapper8); + map.put("tsf5time",tjbbSf5.getCreateTime()); + + QueryWrapper queryWrapper9 = new QueryWrapper<>(); + queryWrapper9.last("limit 1"); + TjbbSf6 TjbbSf6 = tjbbSf6Service.getOne(queryWrapper9); + map.put("tsf6time",TjbbSf6.getCreateTime()); + + QueryWrapper queryWrapper10 = new QueryWrapper<>(); + queryWrapper10.last("limit 1"); + TjbbSf8 TjbbSf8 = tjbbSf8Service.getOne(queryWrapper10); + map.put("tsf8time",TjbbSf8.getCreateTime()); + + QueryWrapper queryWrapper11 = new QueryWrapper<>(); + queryWrapper11.last("limit 1"); + TjbbSf9 TjbbSf9 = tjbbSf9Service.getOne(queryWrapper11); + map.put("tsf9time",TjbbSf9.getCreateTime()); + + QueryWrapper queryWrapper12 = new QueryWrapper<>(); + queryWrapper12.last("limit 1"); + TjbbSf11 TjbbSf11 = tjbbSf11Service.getOne(queryWrapper12); + map.put("tsf11time",TjbbSf11.getCreateTime()); + return Result.OK(map); } diff --git a/jeecgboot-vue3/.env b/jeecgboot-vue3/.env index 67c8f25..1856990 100644 --- a/jeecgboot-vue3/.env +++ b/jeecgboot-vue3/.env @@ -11,7 +11,7 @@ VITE_GLOB_APP_SHORT_NAME = 智慧教学服务中心 VITE_GLOB_APP_CAS_BASE_URL=https://authserver.nenu.edu.cn/authserver # 是否开启单点登录 -VITE_GLOB_APP_OPEN_SSO = false +VITE_GLOB_APP_OPEN_SSO = true # 开启微前端模式 VITE_GLOB_APP_OPEN_QIANKUN=true diff --git a/jeecgboot-vue3/public/download/xdqksm.docx b/jeecgboot-vue3/public/download/xdqksm.docx new file mode 100644 index 0000000..7a152df --- /dev/null +++ b/jeecgboot-vue3/public/download/xdqksm.docx @@ -0,0 +1,11 @@ + 修订情况说明 +1.修订内容说明 +(标题黑体加粗小三号;正文宋体四号1.5倍行距) + +2.修订过程说明 +(标题黑体加粗小三号;正文宋体四号1.5倍行距) + +3.修订过程中形成的调研和论证材料 +(标题黑体加粗小三号;正文宋体四号1.5倍行距) + + diff --git a/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjs.data.ts b/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjs.data.ts index 1a52235..68594b0 100644 --- a/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjs.data.ts +++ b/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjs.data.ts @@ -35,28 +35,16 @@ export const columns: BasicColumn[] = [ dataIndex: 'status_dictText' }, // { - // title: '当年度修订情况', - // align: "center", - // dataIndex: 'years', - // customRender:({text,record}) =>{ - // text = text+"年"+record.yearsType_dictText; - // return text; - // }, - // }, - // { - // title: '修订情况', - // align: "center", - // dataIndex: 'yearsType_dictText' - // }, - // { - // title: '附件', + // title: '文件原文', // align: "center", // dataIndex: 'filePath', + // width: 180, // }, // { - // title: '文件服务器', + // title: '修订情况说明', // align: "center", - // dataIndex: 'ftpPath', + // dataIndex: 'xdqksmPath', + // width: 180, // }, ]; diff --git a/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsList.vue b/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsList.vue index b9911f5..a24427c 100644 --- a/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsList.vue +++ b/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsList.vue @@ -1,5 +1,6 @@ @@ -97,6 +116,10 @@ const formRef = ref(); const queryParam = reactive({}); + const ylxxInfo = ref({}); + const wjywUrl = ref(''); + const xdqkUrl = ref(''); + const showType = ref('1'); const toggleSearchStatus = ref(false); const registerModal = ref(); const userStore = useUserStore(); @@ -110,9 +133,10 @@ canResize:false, useSearchForm: false, actionColumn: { - width: 220, + width: 260, }, beforeFetch: async (params) => { + params.column = 'status,createTime',params.order = 'desc'; return Object.assign(params, queryParam); }, }, @@ -179,21 +203,55 @@ } /** - * 预览 + * 返回 */ - function handleYulan(record){ + function handleFanhui(){ + showType.value = '1'; + wjywUrl.value = ''; + xdqkUrl.value = ''; + } + + /** + * 文件原文预览 + */ + function handleWjywYulan(record){ + showType.value='2' + ylxxInfo.value = record var file = record.filePath; console.log("🚀 ~ handleChakan ~ record.ktbg:", file) var file1 = getFileAccessHttpUrl(file); var url = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1)); - window.open(url,"_blank"); + wjywUrl.value = url; + // window.open(url,"_blank"); + } + + + /** + * 修订说明预览 + */ + function handleXdsmYulan(record){ + showType.value='3' + ylxxInfo.value = record + var file = record.xdqksmPath; + console.log("🚀 ~ handleChakan ~ record.ktbg:", file) + var file1 = getFileAccessHttpUrl(file); + var url = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1)); + xdqkUrl.value = url; } /** - * 下载 + * 原文下载 */ - function handleXiazai(record){ - var file = record.filePath; + function handleYwxiazai(){ + var file = ylxxInfo.value.filePath; + downloadFile(file); + } + + /** + * 修订下载 + */ + function handleXdxiazai(){ + var file = ylxxInfo.value.xdqksmPath; downloadFile(file); } @@ -202,19 +260,19 @@ */ function getTableAction(record) { return [ - { - label: '更新状态', - onClick: handleZtEdit.bind(null, record), - ifShow: () => { - return record.years < dqnd; // 判断数据的年度如果小于当前年度,只允许修改状态字段 - }, - }, + // { + // label: '更新状态', + // onClick: handleZtEdit.bind(null, record), + // ifShow: () => { + // return record.years < dqnd; // 判断数据的年度如果小于当前年度,只允许修改状态字段 + // }, + // }, { label: '编辑', onClick: handleEdit.bind(null, record), - ifShow: () => { - return record.years === dqnd; // 判断当前年度的数据可以有编辑权限 - }, + // ifShow: () => { + // return record.years === dqnd; // 判断当前年度的数据可以有编辑权限 + // }, }, { label: '删除', @@ -223,24 +281,24 @@ confirm: handleDelete.bind(null, record), placement: 'topLeft', }, - ifShow: () => { - return record.years === dqnd; // 判断当前年度的数据可以有删除权限 - }, + // ifShow: () => { + // return record.years === dqnd; // 判断当前年度的数据可以有删除权限 + // }, }, { - label: '下载', - onClick: handleXiazai.bind(null, record), - ifShow: () => { - return record.filePath; // 判断有附件的才显示下载功能 - }, - }, - { - label: '预览', - onClick: handleYulan.bind(null, record), + label: '文件原文', + onClick: handleWjywYulan.bind(null, record), ifShow: () => { return record.filePath; // 判断有附件的才显示预览功能 }, }, + { + label: '修订说明', + onClick: handleXdsmYulan.bind(null, record), + ifShow: () => { + return record.xdqksmPath; // 判断有附件的才显示预览功能 + }, + }, ]; } diff --git a/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsZjList.vue b/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsZjList.vue index b0c978a..22273da 100644 --- a/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsZjList.vue +++ b/jeecgboot-vue3/src/views/bl/blJbzdjs/BlJbzdjsZjList.vue @@ -1,5 +1,6 @@ @@ -68,31 +99,39 @@ import BlJbzdjsModal from './components/BlJbzdjsModal.vue' import { useUserStore } from '/@/store/modules/user'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; -import { getFileAccessHttpUrl } from '@/utils/common/compUtils'; -import { encryptByBase64 } from '@/utils/cipher'; -import JInput from '/@/components/Form/src/jeecg/components/JInput.vue'; + import { getFileAccessHttpUrl } from '@/utils/common/compUtils'; + import { encryptByBase64 } from '@/utils/cipher'; + import JInput from '/@/components/Form/src/jeecg/components/JInput.vue'; + import dayjs from 'dayjs'; const formRef = ref(); const queryParam = reactive({}); + const ylxxInfo = ref({}); + const wjywUrl = ref(''); + const xdqkUrl = ref(''); + const showType = ref('1'); const toggleSearchStatus = ref(false); const registerModal = ref(); const userStore = useUserStore(); + const dqnd = dayjs().format('YYYY'); //注册table数据 const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({ tableProps: { + title: 'bl_jbzdjs', api: zjList, columns, canResize:false, useSearchForm: false, actionColumn: { - width: 220, + width: 260, }, beforeFetch: async (params) => { + params.column = 'status,createTime',params.order = 'desc'; return Object.assign(params, queryParam); }, }, exportConfig: { - name: "bl_jbzdjs", + name: "基本制度建设", url: getExportUrl, params: queryParam, }, @@ -112,6 +151,39 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue'; xs: 24, sm: 20, }); + + + /** + * 新增事件 + */ + function handleAdd() { + registerModal.value.disableSubmit = false; + registerModal.value.add(); + } + + /** + * 编辑事件 + */ + function handleEdit(record: Recordable) { + registerModal.value.disableSubmit = false; + registerModal.value.edit(record); + } + + /** + * 只修改状态字段 + */ + function handleZtEdit(record: Recordable) { + registerModal.value.disableSubmit = false; + record.ztSfxg = '1';//只修改状态字段标识 + registerModal.value.edit(record); + } + + /** + * 删除事件 + */ + async function handleDelete(record) { + await deleteOne({ id: record.id }, handleSuccess); + } /** * 成功回调 @@ -120,22 +192,57 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue'; (selectedRowKeys.value = []) && reload(); } + /** - * 预览文件 + * 返回 */ - function handleYulan(record){ + function handleFanhui(){ + showType.value = '1'; + wjywUrl.value = ''; + xdqkUrl.value = ''; + } + + /** + * 文件原文预览 + */ + function handleWjywYulan(record){ + showType.value='2' + ylxxInfo.value = record var file = record.filePath; console.log("🚀 ~ handleChakan ~ record.ktbg:", file) var file1 = getFileAccessHttpUrl(file); var url = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1)); - window.open(url,"_blank"); + wjywUrl.value = url; + // window.open(url,"_blank"); + } + + + /** + * 修订说明预览 + */ + function handleXdsmYulan(record){ + showType.value='3' + ylxxInfo.value = record + var file = record.xdqksmPath; + console.log("🚀 ~ handleChakan ~ record.ktbg:", file) + var file1 = getFileAccessHttpUrl(file); + var url = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1)); + xdqkUrl.value = url; } /** - * 下载文件 + * 原文下载 */ - function handleXiazai(record){ - var file = record.filePath; + function handleYwxiazai(){ + var file = ylxxInfo.value.filePath; + downloadFile(file); + } + + /** + * 修订下载 + */ + function handleXdxiazai(){ + var file = ylxxInfo.value.xdqksmPath; downloadFile(file); } @@ -145,17 +252,17 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue'; function getTableAction(record) { return [ { - label: '下载', - onClick: handleXiazai.bind(null, record), + label: '文件原文', + onClick: handleWjywYulan.bind(null, record), ifShow: () => { - return record.filePath; // 判断如果有文件才显示下载按钮 + return record.filePath; // 判断有附件的才显示预览功能 }, }, { - label: '预览', - onClick: handleYulan.bind(null, record), + label: '修订说明', + onClick: handleXdsmYulan.bind(null, record), ifShow: () => { - return record.filePath; // 判断如果有文件才显示预览按钮 + return record.xdqksmPath; // 判断有附件的才显示预览功能 }, }, ]; diff --git a/jeecgboot-vue3/src/views/bl/blJbzdjs/components/BlJbzdjsForm.vue b/jeecgboot-vue3/src/views/bl/blJbzdjs/components/BlJbzdjsForm.vue index 4de3ad8..2b61c58 100644 --- a/jeecgboot-vue3/src/views/bl/blJbzdjs/components/BlJbzdjsForm.vue +++ b/jeecgboot-vue3/src/views/bl/blJbzdjs/components/BlJbzdjsForm.vue @@ -11,7 +11,7 @@ - + @@ -25,10 +25,20 @@ - + + + +

+ + + @@ -46,6 +56,7 @@ import { saveOrUpdate } from '../BlJbzdjs.api'; import { Form } from 'ant-design-vue'; import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue'; + import { downloadByUrl } from '/@/utils/file/download'; import dayjs from 'dayjs'; const props = defineProps({ formDisabled: { type: Boolean, default: false }, @@ -64,19 +75,23 @@ status: '', years: '', filePath: '', + xdqksmPath: '', }); const { createMessage } = useMessage(); const labelCol = ref({ xs: { span: 24 }, sm: { span: 8 } }); const wrapperCol = ref({ xs: { span: 24 }, sm: { span: 14 } }); const confirmLoading = ref(false); const dqnd = ref(''); + const xdnf = ref(''); + const xdnfDisabled = ref(false); //表单验证 const validatorRules = reactive({ zdmc: [{ required: true, message: '请输入制度名称!' }], zxsj: [{ required: true, message: '请选择修订时间!' }], sfyz: [{ required: true, message: '请选择对应的学校上位文件!' }], status: [{ required: true, message: '请选择状态!' }], - filePath: [{ required: true, message: '请选择附件!' }], + filePath: [{ required: true, message: '请选择文件原文!' }], + xdqksmPath: [{ required: xdnfDisabled, message: '请选择修订说明!' }], }); const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false }); @@ -92,11 +107,25 @@ return props.formDisabled; }); + /** + * 修订时间变更 + */ + function handleXdsj(record){ + console.log("🚀 ~ handleXdsj ~ record:", record) + const dqnf = dayjs().format('YYYY'); + xdnf.value = record.substring(0,4); + if(dqnf == xdnf.value){ + xdnfDisabled.value = true; + }else{ + xdnfDisabled.value = false; + } + } /** * 新增 */ function add() { + xdnfDisabled.value = false; edit({status:'1'}); } @@ -124,6 +153,13 @@ } console.log("🚀 ~ nextTick ~ ztSfxg:", ztSfxg) + + if(record.xdqksmPath){ + xdnfDisabled.value = true;//判断是否有修订情况说明文件 + }else{ + handleXdsj(record.zxsj) + } + }); } @@ -167,6 +203,12 @@ var nd = zxsj.substring(0,4); model.years = nd; + // if(!model.id && xdnfDisabled && !model.xdqksmPath){ + // createMessage.error("请上传修订情况说明"); + // confirmLoading.value = false; + // return ; + // } + await saveOrUpdate(model, isUpdate.value) .then((res) => { if (res.success) { diff --git a/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.api.ts b/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.api.ts new file mode 100644 index 0000000..2ae6c63 --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.api.ts @@ -0,0 +1,72 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/blKckhclbl/blKckhclbl/list', + save='/blKckhclbl/blKckhclbl/add', + edit='/blKckhclbl/blKckhclbl/edit', + deleteOne = '/blKckhclbl/blKckhclbl/delete', + deleteBatch = '/blKckhclbl/blKckhclbl/deleteBatch', + importExcel = '/blKckhclbl/blKckhclbl/importExcel', + exportXls = '/blKckhclbl/blKckhclbl/exportXls', +} + +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; + +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; + +/** + * 列表接口 + * @param params + */ +export const list = (params) => defHttp.get({ url: Api.list, params }); + +/** + * 删除单个 + * @param params + * @param handleSuccess + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} + +/** + * 批量删除 + * @param params + * @param handleSuccess + */ +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} + +/** + * 保存或者更新 + * @param params + * @param isUpdate + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url: url, params }, { isTransformResponse: false }); +} diff --git a/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.data.ts b/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.data.ts new file mode 100644 index 0000000..5e16c52 --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclbl.data.ts @@ -0,0 +1,30 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +import { getWeekMonthQuarterYear } from '/@/utils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '课程任务代码', + align: "center", + dataIndex: 'kcrwdm' + }, + { + title: '补录类型', + align: "center", + dataIndex: 'blType_dictText' + }, + { + title: '补录附件', + align: "center", + dataIndex: 'blFilePath', + }, +]; + +// 高级查询数据 +export const superQuerySchema = { + kcrwdm: {title: '课程任务代码',order: 0,view: 'text', type: 'string',}, + blType: {title: '补录类型',order: 1,view: 'radio', type: 'string',dictCode: 'kckhcl_bltype',}, + blFilePath: {title: '补录附件',order: 2,view: 'file', type: 'string',}, +}; diff --git a/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclblList.vue b/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclblList.vue new file mode 100644 index 0000000..580c0ef --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/blKckhclbl/BlKckhclblList.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblForm.vue b/jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblForm.vue new file mode 100644 index 0000000..498ba6e --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblForm.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblModal.vue b/jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblModal.vue new file mode 100644 index 0000000..f846846 --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/blKckhclbl/components/BlKckhclblModal.vue @@ -0,0 +1,81 @@ + + + + + + diff --git a/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/BlkhclList.vue b/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/BlkhclList.vue new file mode 100644 index 0000000..94f70e6 --- /dev/null +++ b/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/BlkhclList.vue @@ -0,0 +1,295 @@ + + + + + diff --git a/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.api.ts b/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.api.ts index ba3379f..211c455 100644 --- a/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.api.ts +++ b/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.api.ts @@ -5,6 +5,7 @@ const { createConfirm } = useMessage(); enum Api { list = '/xxhbjwxtjxrw/xxhbjwxtjxrw/list', + listbl = '/xxhbjwxtjxrw/xxhbjwxtjxrw/listbl', zjList = '/xxhbjwxtjxrw/xxhbjwxtjxrw/zjList', save='/xxhbjwxtjxrw/xxhbjwxtjxrw/add', edit='/xxhbjwxtjxrw/xxhbjwxtjxrw/edit', @@ -32,6 +33,7 @@ export const getImportUrl = Api.importExcel; */ export const list = (params) => defHttp.get({ url: Api.list, params }); export const zjList = (params) => defHttp.get({ url: Api.zjList, params }); +export const listbl = (params) => defHttp.get({ url: Api.listbl, params }); /** * 删除单个 diff --git a/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.data.ts b/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.data.ts index c4548f3..810c3c0 100644 --- a/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.data.ts +++ b/jeecgboot-vue3/src/views/bl/xxhbjwxtjxrw/Xxhbjwxtjxrw.data.ts @@ -94,6 +94,52 @@ export const columns: BasicColumn[] = [ ]; +export const columnsBl: BasicColumn[] = [ + { + title: '学年学期', + align: "center", + dataIndex: 'zjxnxq' + }, + { + title: '课程名称', + align: "center", + dataIndex: 'kcmc' + }, + { + title: '课程类别', + align: "center", + dataIndex: 'kclb' + }, + { + title: '开课单位', + align: "center", + dataIndex: 'kkyxmc' + }, + { + title: '专业名称', + align: "center", + dataIndex: 'zymc', + width: 220 + }, + { + title: '任课教师[职称]', + align: "center", + dataIndex: 'teaxm' + }, + { + title: '是否需要补录', + align: "center", + dataIndex: 'blType', + customRender: function ({ text }) { + if (text) { + return '否'; + } else { + return '是'; + } + }, + }, +]; + //列表数据 export const columns2: BasicColumn[] = [ { diff --git a/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/KhpjclList.vue b/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/KhpjclList.vue index 460feff..791e145 100644 --- a/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/KhpjclList.vue +++ b/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/KhpjclList.vue @@ -225,8 +225,7 @@ function searchReset() { function init(record) { queryParam.kcrwdm = record.kcrwdm; - // queryParam.fjtype = '课程考核合理性审核记录单,课程目标达成情况评价报告,课程考核质量评价单,期未考试-试题(或内容及要求),期末考试-评分标准,历次过程性考核-内容及要求(或试题),历次过程性考核-评分标准'; - queryParam.fjtype = '历次过程性考核-评分标准,历次过程性考核-内容及要求(或试题),课程考核合理性审核记录单,期末考试-评分标准,期未考试-试题(或内容及要求),课程考核质量评价单,课程目标达成情况评价报告'; + queryParam.fjtype = '历次过程性考核-评分标准,历次过程性考核-内容及要求(或试题),课程考核合理性审核记录单,期末考试-评分标准,期未考试-试题(或内容及要求),课程考核质量评价单,课程目标达成情况评价报告,课程教学大纲'; // 平时成绩 // 期末成绩 // 期中成绩 diff --git a/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/XxhbjwxtscwjxxList.vue b/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/XxhbjwxtscwjxxList.vue index 4ee3383..947b879 100644 --- a/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/XxhbjwxtscwjxxList.vue +++ b/jeecgboot-vue3/src/views/bl/xxhbjwxtscwjxx/XxhbjwxtscwjxxList.vue @@ -272,8 +272,7 @@ function searchReset() { function init(record) { queryParam.kcrwdm = record.kcrwdm; - // queryParam.fjtype = '课程考核合理性审核记录单,课程目标达成情况评价报告,课程考核质量评价单,期未考试-试题(或内容及要求),期末考试-评分标准,历次过程性考核-内容及要求(或试题),历次过程性考核-评分标准'; - queryParam.fjtype = '历次过程性考核-评分标准,历次过程性考核-内容及要求(或试题),课程考核合理性审核记录单,期末考试-评分标准,期未考试-试题(或内容及要求),课程考核质量评价单,课程目标达成情况评价报告'; + queryParam.fjtype = '历次过程性考核-评分标准,历次过程性考核-内容及要求(或试题),课程考核合理性审核记录单,期末考试-评分标准,期未考试-试题(或内容及要求),课程考核质量评价单,课程目标达成情况评价报告,课程教学大纲'; // 平时成绩 // 期末成绩 // 期中成绩 diff --git a/jeecgboot-vue3/src/views/bl/zjSqxx/ZjSqxx.data.ts b/jeecgboot-vue3/src/views/bl/zjSqxx/ZjSqxx.data.ts index 545285b..e366d42 100644 --- a/jeecgboot-vue3/src/views/bl/zjSqxx/ZjSqxx.data.ts +++ b/jeecgboot-vue3/src/views/bl/zjSqxx/ZjSqxx.data.ts @@ -48,11 +48,11 @@ export const columns: BasicColumn[] = [ align: "center", dataIndex: 'xnxq' }, - // { - // title: '课程所属专业', - // align: "center", - // dataIndex: 'zydl' - // }, + { + title: '所属专业', + align: "center", + dataIndex: 'zydl' + }, { title: '课程名称', align: "center", diff --git a/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxEditForm.vue b/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxEditForm.vue index 0c674b6..dec448b 100644 --- a/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxEditForm.vue +++ b/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxEditForm.vue @@ -51,11 +51,11 @@ - + diff --git a/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxForm.vue b/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxForm.vue index b73728f..1aa6013 100644 --- a/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxForm.vue +++ b/jeecgboot-vue3/src/views/bl/zjSqxx/components/ZjSqxxForm.vue @@ -55,11 +55,11 @@ - + diff --git a/jeecgboot-vue3/src/views/tjbbVue/TjbbList.vue b/jeecgboot-vue3/src/views/tjbbVue/TjbbList.vue index f99cae5..a6ce388 100644 --- a/jeecgboot-vue3/src/views/tjbbVue/TjbbList.vue +++ b/jeecgboot-vue3/src/views/tjbbVue/TjbbList.vue @@ -9,7 +9,7 @@

第1步

导入表1-4-1专业基本情况数据 - 成功导入数据:{{dataList.t141}} + 成功导入数据:{{dataList.t141}}{{dataList.t141time}}
@@ -18,7 +18,7 @@

第2步

导入表1-5-1教职工基本信息数据 - 成功导入数据:{{dataList.t151}} + 成功导入数据:{{dataList.t151}}{{dataList.t151time}}
@@ -27,7 +27,7 @@

第3步

导入表1-5-2教职工其他信息数据 - 成功导入数据:{{dataList.t152}} + 成功导入数据:{{dataList.t152}}{{dataList.t152time}}
@@ -36,7 +36,7 @@

第4步

导入表1-5-3外聘和兼职教师基本信息数据 - 成功导入数据:{{dataList.t153}} + 成功导入数据:{{dataList.t153}}{{dataList.t153time}}
@@ -45,7 +45,7 @@

第5步

导入表1-6本科生基本情况数据 - 成功导入数据:{{dataList.t16}} + 成功导入数据:{{dataList.t16}}{{dataList.t16time}}
@@ -54,7 +54,7 @@

第6步

导入表2-4校内外实习、实践、实训基地数据 - 成功导入数据:{{dataList.t24}} + 成功导入数据:{{dataList.t24}}{{dataList.t24time}}
@@ -63,7 +63,7 @@

第7步

导入表SF-3师范-3:师范类专业办学基本条件数据 - 成功导入数据:{{dataList.tsf3}} + 成功导入数据:{{dataList.tsf3}}{{dataList.tsf3time}}
@@ -72,7 +72,7 @@

第8步

导入表SF-5师范-5:师范类专业培养情况数据 - 成功导入数据:{{dataList.tsf5}} + 成功导入数据:{{dataList.tsf5}}{{dataList.tsf5time}}
@@ -81,7 +81,7 @@

第9步

表SF-6师范-6:教师教育课程情况表数据 - 成功导入数据: {{dataList.tsf6}} + 成功导入数据: {{dataList.tsf6}}{{dataList.tsf6time}}
@@ -90,7 +90,7 @@

第10步

表SF-8师范-8:教育实践情况数据 - 成功导入数据: {{dataList.tsf8}} + 成功导入数据: {{dataList.tsf8}}{{dataList.tsf8time}}
@@ -99,7 +99,7 @@

第11步

表SF-9师范-9:师范类专业非本科学生数量基本情况 - 成功导入数据:{{dataList.tsf9}} + 成功导入数据:{{dataList.tsf9}}{{dataList.tsf9time}}
@@ -108,7 +108,7 @@

第12步

导入表SF-11师范-11:师范类专业应届毕业生情况 - 成功导入数据:{{dataList.tsf11}} + 成功导入数据:{{dataList.tsf11}}{{dataList.tsf11time}}