修改基本制度建设功能
This commit is contained in:
parent
516c5b9753
commit
20c2211deb
|
@ -60,16 +60,16 @@ public class BlJbzdjs implements Serializable {
|
||||||
@Excel(name = "制度名称", width = 15)
|
@Excel(name = "制度名称", width = 15)
|
||||||
@ApiModelProperty(value = "制度名称")
|
@ApiModelProperty(value = "制度名称")
|
||||||
private java.lang.String zdmc;
|
private java.lang.String zdmc;
|
||||||
/**执行时间*/
|
/**修订时间*/
|
||||||
@Excel(name = "执行时间", width = 15, format = "yyyy-MM-dd")
|
@Excel(name = "修订时间", width = 15, format = "yyyy-MM-dd")
|
||||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||||
@ApiModelProperty(value = "执行时间")
|
@ApiModelProperty(value = "修订时间")
|
||||||
private java.util.Date zxsj;
|
private java.util.Date zxsj;
|
||||||
/**与教学管理文件汇编不一致说明*/
|
/**对应的学校上位文件*/
|
||||||
@Excel(name = "与教学管理文件汇编不一致说明", width = 15, dicCode = "yn")
|
@Excel(name = "对应的学校上位文件", width = 15, dicCode = "yn")
|
||||||
@Dict(dicCode = "yn")
|
@Dict(dicCode = "zd_swwj")
|
||||||
@ApiModelProperty(value = "与教学管理文件汇编不一致说明")
|
@ApiModelProperty(value = "对应的学校上位文件")
|
||||||
private java.lang.String sfyz;
|
private java.lang.String sfyz;
|
||||||
/**状态*/
|
/**状态*/
|
||||||
@Excel(name = "状态", width = 15, dicCode = "zd_status")
|
@Excel(name = "状态", width = 15, dicCode = "zd_status")
|
||||||
|
|
|
@ -74,7 +74,7 @@ public class CasClientController {
|
||||||
log.info("-------token----username---"+principal);
|
log.info("-------token----username---"+principal);
|
||||||
//1. 校验用户是否有效
|
//1. 校验用户是否有效
|
||||||
SysUser sysUser = sysUserService.getUserByName(principal);
|
SysUser sysUser = sysUserService.getUserByName(principal);
|
||||||
result = sysUserService.checkUserIsEffective(sysUser);
|
result = sysUserService.checkUserIsEffective(sysUser, res);
|
||||||
if(!result.isSuccess()) {
|
if(!result.isSuccess()) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -543,7 +543,7 @@ public class SysUserController {
|
||||||
SysUser sysUserExcel = listSysUsers.get(i);
|
SysUser sysUserExcel = listSysUsers.get(i);
|
||||||
if (StringUtils.isBlank(sysUserExcel.getPassword())) {
|
if (StringUtils.isBlank(sysUserExcel.getPassword())) {
|
||||||
// 密码默认为 “123456”
|
// 密码默认为 “123456”
|
||||||
sysUserExcel.setPassword("123456");
|
sysUserExcel.setPassword("Zjpt123456");
|
||||||
}
|
}
|
||||||
// 密码加密加盐
|
// 密码加密加盐
|
||||||
String salt = oConvertUtils.randomGen(8);
|
String salt = oConvertUtils.randomGen(8);
|
||||||
|
|
|
@ -257,6 +257,13 @@ public interface ISysUserService extends IService<SysUser> {
|
||||||
*/
|
*/
|
||||||
Result checkUserIsEffective(SysUser sysUser);
|
Result checkUserIsEffective(SysUser sysUser);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统一身份认证专用
|
||||||
|
* @param sysUser
|
||||||
|
* @param res
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Result checkUserIsEffective(SysUser sysUser, String res);
|
||||||
/**
|
/**
|
||||||
* 查询被逻辑删除的用户
|
* 查询被逻辑删除的用户
|
||||||
* @return List<SysUser>
|
* @return List<SysUser>
|
||||||
|
|
|
@ -106,7 +106,7 @@ public class SysThirdAccountServiceImpl extends ServiceImpl<SysThirdAccountMappe
|
||||||
//设置初始密码
|
//设置初始密码
|
||||||
String salt = oConvertUtils.randomGen(8);
|
String salt = oConvertUtils.randomGen(8);
|
||||||
user.setSalt(salt);
|
user.setSalt(salt);
|
||||||
String passwordEncode = PasswordUtil.encrypt(user.getUsername(), "123456", salt);
|
String passwordEncode = PasswordUtil.encrypt(user.getUsername(), "Zjpt@123456", salt);
|
||||||
user.setPassword(passwordEncode);
|
user.setPassword(passwordEncode);
|
||||||
user.setRealname(account.getRealname());
|
user.setRealname(account.getRealname());
|
||||||
user.setAvatar(account.getAvatar());
|
user.setAvatar(account.getAvatar());
|
||||||
|
|
|
@ -34,11 +34,13 @@ import org.jeecg.common.system.vo.SysUserCacheInfo;
|
||||||
import org.jeecg.common.util.*;
|
import org.jeecg.common.util.*;
|
||||||
import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
|
import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
|
||||||
import org.jeecg.modules.base.service.BaseCommonService;
|
import org.jeecg.modules.base.service.BaseCommonService;
|
||||||
|
import org.jeecg.modules.cas.util.XmlUtils;
|
||||||
import org.jeecg.modules.message.handle.impl.SystemSendMsgHandle;
|
import org.jeecg.modules.message.handle.impl.SystemSendMsgHandle;
|
||||||
import org.jeecg.modules.system.entity.*;
|
import org.jeecg.modules.system.entity.*;
|
||||||
import org.jeecg.modules.system.mapper.*;
|
import org.jeecg.modules.system.mapper.*;
|
||||||
import org.jeecg.modules.system.model.SysUserSysDepartModel;
|
import org.jeecg.modules.system.model.SysUserSysDepartModel;
|
||||||
import org.jeecg.modules.system.service.ISysRoleIndexService;
|
import org.jeecg.modules.system.service.ISysRoleIndexService;
|
||||||
|
import org.jeecg.modules.system.service.ISysRoleService;
|
||||||
import org.jeecg.modules.system.service.ISysThirdAccountService;
|
import org.jeecg.modules.system.service.ISysThirdAccountService;
|
||||||
import org.jeecg.modules.system.service.ISysUserService;
|
import org.jeecg.modules.system.service.ISysUserService;
|
||||||
import org.jeecg.modules.system.vo.SysUserDepVo;
|
import org.jeecg.modules.system.vo.SysUserDepVo;
|
||||||
|
@ -48,6 +50,8 @@ import org.jeecg.modules.system.vo.lowapp.AppExportUserVo;
|
||||||
import org.jeecg.modules.system.vo.lowapp.DepartAndUserInfo;
|
import org.jeecg.modules.system.vo.lowapp.DepartAndUserInfo;
|
||||||
import org.jeecg.modules.system.vo.lowapp.DepartInfo;
|
import org.jeecg.modules.system.vo.lowapp.DepartInfo;
|
||||||
import org.jeecg.modules.system.vo.lowapp.UpdateDepartInfo;
|
import org.jeecg.modules.system.vo.lowapp.UpdateDepartInfo;
|
||||||
|
import org.jeecg.modules.xxhbuser.entity.Xxhbuser;
|
||||||
|
import org.jeecg.modules.xxhbuser.service.IXxhbuserService;
|
||||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||||
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
||||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||||
|
@ -128,6 +132,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisUtil redisUtil;
|
private RedisUtil redisUtil;
|
||||||
|
@Autowired
|
||||||
|
private ISysRoleService sysRoleService;
|
||||||
|
@Autowired
|
||||||
|
private IXxhbuserService xxhbuserService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result<IPage<SysUser>> queryPageList(HttpServletRequest req, QueryWrapper<SysUser> queryWrapper, Integer pageSize, Integer pageNo) {
|
public Result<IPage<SysUser>> queryPageList(HttpServletRequest req, QueryWrapper<SysUser> queryWrapper, Integer pageSize, Integer pageNo) {
|
||||||
|
@ -648,7 +656,77 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public Result<?> checkUserIsEffective(SysUser sysUser, String res){
|
||||||
|
final String username = XmlUtils.getTextForElement(res, "user");
|
||||||
|
final String realname = XmlUtils.getTextForElement(res, "cn");
|
||||||
|
final String containerId = XmlUtils.getTextForElement(res, "containerId");
|
||||||
|
|
||||||
|
System.out.println("------------------1--------------------------"+containerId);
|
||||||
|
String roles = "";
|
||||||
|
int userIdentity = 1;
|
||||||
|
//判断是否为教师
|
||||||
|
if(StringUtils.indexOf(containerId,"ou=jzg") != -1){
|
||||||
|
System.out.println("------------------2--------------------------"+containerId);
|
||||||
|
roles = "jwms";//教师角色
|
||||||
|
userIdentity = 2;//允许进入后台
|
||||||
|
}else if(StringUtils.indexOf(containerId,"ou=bzks") != -1){
|
||||||
|
throw new JeecgBootException("学生不可以登录此平台");
|
||||||
|
}else{
|
||||||
|
System.out.println("------------------4--------------------------"+containerId);
|
||||||
|
return checkUserIsEffective(sysUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QueryWrapper<SysRole> sysRoleQw = new QueryWrapper<>();
|
||||||
|
System.out.println("------------------7--------------------------"+roles);
|
||||||
|
sysRoleQw.in("role_code",roles);
|
||||||
|
sysRoleQw.last("limit 1");
|
||||||
|
SysRole sysRole = sysRoleService.getOne(sysRoleQw);
|
||||||
|
if(sysRole != null){
|
||||||
|
System.out.println("------------------8--------------------------"+roles);
|
||||||
|
roles = sysRole.getId();
|
||||||
|
}else{
|
||||||
|
System.out.println("------------------9--------------------------"+roles);
|
||||||
|
log.error("创建用户出现错误,未找到["+roles+"]角色,请添加");
|
||||||
|
throw new JeecgBootException("创建用户出现错误,未找到["+roles+"]角色,请添加");
|
||||||
|
}
|
||||||
|
|
||||||
|
StringUtils.split(containerId,",");
|
||||||
|
//情况1:根据用户信息查询,该用户不存在
|
||||||
|
if (sysUser == null) {
|
||||||
|
|
||||||
|
QueryWrapper<Xxhbuser> xxhbuserQueryWrapper = new QueryWrapper<>();
|
||||||
|
xxhbuserQueryWrapper.eq("gh",username);
|
||||||
|
xxhbuserQueryWrapper.last("limit 1");
|
||||||
|
Xxhbuser xxhbuser = xxhbuserService.getOne(xxhbuserQueryWrapper);
|
||||||
|
|
||||||
|
System.out.println("------------------10--------------------------user null");
|
||||||
|
//创建用户
|
||||||
|
SysUser user = new SysUser();
|
||||||
|
user.setUsername(username);
|
||||||
|
user.setRealname(realname);
|
||||||
|
user.setActivitiSync(1);
|
||||||
|
String salt = oConvertUtils.randomGen(8);
|
||||||
|
user.setSalt(salt);
|
||||||
|
String passwordEncode = PasswordUtil.encrypt(user.getUsername(), "Zjpt@123456", salt);
|
||||||
|
user.setPassword(passwordEncode);
|
||||||
|
user.setPhone(username);
|
||||||
|
user.setUserIdentity(userIdentity);
|
||||||
|
user.setWorkNo(username);
|
||||||
|
user.setStatus(1);
|
||||||
|
user.setDelFlag(0);
|
||||||
|
if(xxhbuser!=null){
|
||||||
|
user.setDepartIds(xxhbuser.getDwmc());
|
||||||
|
}
|
||||||
|
saveUser(user,roles,"","");
|
||||||
|
Result result = checkUserIsEffective(user);
|
||||||
|
result.setCode(999);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return checkUserIsEffective(sysUser);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验用户是否有效
|
* 校验用户是否有效
|
||||||
|
|
|
@ -0,0 +1,178 @@
|
||||||
|
package org.jeecg.modules.xxhbuser.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.xxhbuser.entity.Xxhbuser;
|
||||||
|
import org.jeecg.modules.xxhbuser.service.IXxhbuserService;
|
||||||
|
|
||||||
|
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: xxhbuser
|
||||||
|
* @Author: jeecg-boot
|
||||||
|
* @Date: 2024-12-12
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Api(tags="xxhbuser")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/xxhbuser/xxhbuser")
|
||||||
|
@Slf4j
|
||||||
|
public class XxhbuserController extends JeecgController<Xxhbuser, IXxhbuserService> {
|
||||||
|
@Autowired
|
||||||
|
private IXxhbuserService xxhbuserService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页列表查询
|
||||||
|
*
|
||||||
|
* @param xxhbuser
|
||||||
|
* @param pageNo
|
||||||
|
* @param pageSize
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
//@AutoLog(value = "xxhbuser-分页列表查询")
|
||||||
|
@ApiOperation(value="xxhbuser-分页列表查询", notes="xxhbuser-分页列表查询")
|
||||||
|
@GetMapping(value = "/list")
|
||||||
|
public Result<IPage<Xxhbuser>> queryPageList(Xxhbuser xxhbuser,
|
||||||
|
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||||
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||||
|
HttpServletRequest req) {
|
||||||
|
QueryWrapper<Xxhbuser> queryWrapper = QueryGenerator.initQueryWrapper(xxhbuser, req.getParameterMap());
|
||||||
|
Page<Xxhbuser> page = new Page<Xxhbuser>(pageNo, pageSize);
|
||||||
|
IPage<Xxhbuser> pageList = xxhbuserService.page(page, queryWrapper);
|
||||||
|
return Result.OK(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加
|
||||||
|
*
|
||||||
|
* @param xxhbuser
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "xxhbuser-添加")
|
||||||
|
@ApiOperation(value="xxhbuser-添加", notes="xxhbuser-添加")
|
||||||
|
@RequiresPermissions("xxhbuser:xxhbuser:add")
|
||||||
|
@PostMapping(value = "/add")
|
||||||
|
public Result<String> add(@RequestBody Xxhbuser xxhbuser) {
|
||||||
|
xxhbuserService.save(xxhbuser);
|
||||||
|
return Result.OK("添加成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
*
|
||||||
|
* @param xxhbuser
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "xxhbuser-编辑")
|
||||||
|
@ApiOperation(value="xxhbuser-编辑", notes="xxhbuser-编辑")
|
||||||
|
@RequiresPermissions("xxhbuser:xxhbuser:edit")
|
||||||
|
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
|
||||||
|
public Result<String> edit(@RequestBody Xxhbuser xxhbuser) {
|
||||||
|
xxhbuserService.updateById(xxhbuser);
|
||||||
|
return Result.OK("编辑成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id删除
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "xxhbuser-通过id删除")
|
||||||
|
@ApiOperation(value="xxhbuser-通过id删除", notes="xxhbuser-通过id删除")
|
||||||
|
@RequiresPermissions("xxhbuser:xxhbuser:delete")
|
||||||
|
@DeleteMapping(value = "/delete")
|
||||||
|
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
|
||||||
|
xxhbuserService.removeById(id);
|
||||||
|
return Result.OK("删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除
|
||||||
|
*
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@AutoLog(value = "xxhbuser-批量删除")
|
||||||
|
@ApiOperation(value="xxhbuser-批量删除", notes="xxhbuser-批量删除")
|
||||||
|
@RequiresPermissions("xxhbuser:xxhbuser:deleteBatch")
|
||||||
|
@DeleteMapping(value = "/deleteBatch")
|
||||||
|
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
||||||
|
this.xxhbuserService.removeByIds(Arrays.asList(ids.split(",")));
|
||||||
|
return Result.OK("批量删除成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过id查询
|
||||||
|
*
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
//@AutoLog(value = "xxhbuser-通过id查询")
|
||||||
|
@ApiOperation(value="xxhbuser-通过id查询", notes="xxhbuser-通过id查询")
|
||||||
|
@GetMapping(value = "/queryById")
|
||||||
|
public Result<Xxhbuser> queryById(@RequestParam(name="id",required=true) String id) {
|
||||||
|
Xxhbuser xxhbuser = xxhbuserService.getById(id);
|
||||||
|
if(xxhbuser==null) {
|
||||||
|
return Result.error("未找到对应数据");
|
||||||
|
}
|
||||||
|
return Result.OK(xxhbuser);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出excel
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param xxhbuser
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("xxhbuser:xxhbuser:exportXls")
|
||||||
|
@RequestMapping(value = "/exportXls")
|
||||||
|
public ModelAndView exportXls(HttpServletRequest request, Xxhbuser xxhbuser) {
|
||||||
|
return super.exportXls(request, xxhbuser, Xxhbuser.class, "xxhbuser");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过excel导入数据
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param response
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("xxhbuser:xxhbuser:importExcel")
|
||||||
|
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||||
|
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
return super.importExcel(request, response, Xxhbuser.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,83 @@
|
||||||
|
package org.jeecg.modules.xxhbuser.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: xxhbuser
|
||||||
|
* @Author: jeecg-boot
|
||||||
|
* @Date: 2024-12-12
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("xxhbuser")
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@ApiModel(value="xxhbuser对象", description="xxhbuser")
|
||||||
|
public class Xxhbuser implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**id*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@ApiModelProperty(value = "id")
|
||||||
|
private java.lang.String id;
|
||||||
|
/**工号*/
|
||||||
|
@Excel(name = "工号", width = 15)
|
||||||
|
@ApiModelProperty(value = "工号")
|
||||||
|
private java.lang.String gh;
|
||||||
|
/**spxldm*/
|
||||||
|
@Excel(name = "spxldm", width = 15)
|
||||||
|
@ApiModelProperty(value = "spxldm")
|
||||||
|
private java.lang.String spxldm;
|
||||||
|
/**xbm*/
|
||||||
|
@Excel(name = "xbm", width = 15)
|
||||||
|
@ApiModelProperty(value = "xbm")
|
||||||
|
private java.lang.String xbm;
|
||||||
|
/**姓名*/
|
||||||
|
@Excel(name = "姓名", width = 15)
|
||||||
|
@ApiModelProperty(value = "姓名")
|
||||||
|
private java.lang.String xm;
|
||||||
|
/**单位号*/
|
||||||
|
@Excel(name = "单位号", width = 15)
|
||||||
|
@ApiModelProperty(value = "单位号")
|
||||||
|
private java.lang.String dwh;
|
||||||
|
/**单位名称*/
|
||||||
|
@Excel(name = "单位名称", width = 15)
|
||||||
|
@ApiModelProperty(value = "单位名称")
|
||||||
|
private java.lang.String dwmc;
|
||||||
|
/**csrq*/
|
||||||
|
@Excel(name = "csrq", width = 15)
|
||||||
|
@ApiModelProperty(value = "csrq")
|
||||||
|
private java.lang.String csrq;
|
||||||
|
/**sfzxm*/
|
||||||
|
@Excel(name = "sfzxm", width = 15)
|
||||||
|
@ApiModelProperty(value = "sfzxm")
|
||||||
|
private java.lang.String sfzxm;
|
||||||
|
/**zdxms*/
|
||||||
|
@Excel(name = "zdxms", width = 15)
|
||||||
|
@ApiModelProperty(value = "zdxms")
|
||||||
|
private java.lang.String zdxms;
|
||||||
|
/**zzzt*/
|
||||||
|
@Excel(name = "zzzt", width = 15)
|
||||||
|
@ApiModelProperty(value = "zzzt")
|
||||||
|
private java.lang.String zzzt;
|
||||||
|
/**时间戳*/
|
||||||
|
@Excel(name = "时间戳", width = 15)
|
||||||
|
@ApiModelProperty(value = "时间戳")
|
||||||
|
private java.lang.String timestamps;
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
package org.jeecg.modules.xxhbuser.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.jeecg.modules.xxhbuser.entity.Xxhbuser;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: xxhbuser
|
||||||
|
* @Author: jeecg-boot
|
||||||
|
* @Date: 2024-12-12
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
public interface XxhbuserMapper extends BaseMapper<Xxhbuser> {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.jeecg.modules.xxhbuser.mapper.XxhbuserMapper">
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -0,0 +1,14 @@
|
||||||
|
package org.jeecg.modules.xxhbuser.service;
|
||||||
|
|
||||||
|
import org.jeecg.modules.xxhbuser.entity.Xxhbuser;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: xxhbuser
|
||||||
|
* @Author: jeecg-boot
|
||||||
|
* @Date: 2024-12-12
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
public interface IXxhbuserService extends IService<Xxhbuser> {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
package org.jeecg.modules.xxhbuser.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import org.jeecg.modules.xxhbuser.entity.Xxhbuser;
|
||||||
|
import org.jeecg.modules.xxhbuser.mapper.XxhbuserMapper;
|
||||||
|
import org.jeecg.modules.xxhbuser.service.IXxhbuserService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: xxhbuser
|
||||||
|
* @Author: jeecg-boot
|
||||||
|
* @Date: 2024-12-12
|
||||||
|
* @Version: V1.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@DS("multi-datasource1")
|
||||||
|
public class XxhbuserServiceImpl extends ServiceImpl<XxhbuserMapper, Xxhbuser> implements IXxhbuserService {
|
||||||
|
|
||||||
|
}
|
|
@ -16,7 +16,7 @@ export const columns: BasicColumn[] = [
|
||||||
dataIndex: 'zdmc'
|
dataIndex: 'zdmc'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '执行时间',
|
title: '修订时间',
|
||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: 'zxsj',
|
dataIndex: 'zxsj',
|
||||||
customRender:({text}) =>{
|
customRender:({text}) =>{
|
||||||
|
@ -25,7 +25,7 @@ export const columns: BasicColumn[] = [
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '与教学管理文件汇编不一致说明',
|
title: '对应的学校上位文件',
|
||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: 'sfyz_dictText'
|
dataIndex: 'sfyz_dictText'
|
||||||
},
|
},
|
||||||
|
@ -34,15 +34,15 @@ export const columns: BasicColumn[] = [
|
||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: 'status_dictText'
|
dataIndex: 'status_dictText'
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: '当年度修订情况',
|
// title: '当年度修订情况',
|
||||||
align: "center",
|
// align: "center",
|
||||||
dataIndex: 'years',
|
// dataIndex: 'years',
|
||||||
customRender:({text,record}) =>{
|
// customRender:({text,record}) =>{
|
||||||
text = text+"年"+record.yearsType_dictText;
|
// text = text+"年"+record.yearsType_dictText;
|
||||||
return text;
|
// return text;
|
||||||
},
|
// },
|
||||||
},
|
// },
|
||||||
// {
|
// {
|
||||||
// title: '修订情况',
|
// title: '修订情况',
|
||||||
// align: "center",
|
// align: "center",
|
||||||
|
@ -64,8 +64,8 @@ export const columns: BasicColumn[] = [
|
||||||
export const superQuerySchema = {
|
export const superQuerySchema = {
|
||||||
dwmc: {title: '学院',order: 0,view: 'list', type: 'string',dictCode: '',},
|
dwmc: {title: '学院',order: 0,view: 'list', type: 'string',dictCode: '',},
|
||||||
zdmc: {title: '制度名称',order: 1,view: 'text', type: 'string',},
|
zdmc: {title: '制度名称',order: 1,view: 'text', type: 'string',},
|
||||||
zxsj: {title: '执行时间',order: 2,view: 'date', type: 'string',},
|
zxsj: {title: '修订时间',order: 2,view: 'date', type: 'string',},
|
||||||
sfyz: {title: '与教学管理文件汇编不一致说明',order: 3,view: 'list', type: 'string',dictCode: 'yn',},
|
sfyz: {title: '对应的学校上位文件',order: 3,view: 'list', type: 'string',dictCode: 'yn',},
|
||||||
status: {title: '状态',order: 4,view: 'list', type: 'string',dictCode: 'zd_status',},
|
status: {title: '状态',order: 4,view: 'list', type: 'string',dictCode: 'zd_status',},
|
||||||
years: {title: '年度',order: 5,view: 'text', type: 'string',},
|
years: {title: '年度',order: 5,view: 'text', type: 'string',},
|
||||||
yearsType: {title: '修订情况',order: 6,view: 'list', type: 'string',dictCode: 'zd_xdqk',},
|
yearsType: {title: '修订情况',order: 6,view: 'list', type: 'string',dictCode: 'zd_xdqk',},
|
||||||
|
|
|
@ -4,12 +4,12 @@
|
||||||
<div class="jeecg-basic-table-form-container">
|
<div class="jeecg-basic-table-form-container">
|
||||||
<a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :lg="6">
|
<!-- <a-col :lg="6">
|
||||||
<a-form-item name="dwmc">
|
<a-form-item name="dwmc">
|
||||||
<template #label><span title="学院">学院</span></template>
|
<template #label><span title="学院">学院</span></template>
|
||||||
<j-dict-select-tag placeholder="请选择状态" v-model:value="queryParam.dwmc" dictCode="bl_kkdw,kkdw,kkdw" allow-clear />
|
<j-dict-select-tag placeholder="请选择状态" v-model:value="queryParam.dwmc" dictCode="bl_kkdw,kkdw,kkdw" allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col> -->
|
||||||
<a-col :lg="6">
|
<a-col :lg="6">
|
||||||
<a-form-item name="zdmc">
|
<a-form-item name="zdmc">
|
||||||
<template #label><span title="制度名称">制度名称</span></template>
|
<template #label><span title="制度名称">制度名称</span></template>
|
||||||
|
@ -18,8 +18,8 @@
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="6">
|
<a-col :lg="6">
|
||||||
<a-form-item name="zxsj">
|
<a-form-item name="zxsj">
|
||||||
<template #label><span title="执行时间">执行时间</span></template>
|
<template #label><span title="修订时间">修订时间</span></template>
|
||||||
<a-date-picker valueFormat="YYYY-MM-DD" placeholder="请选择执行时间" v-model:value="queryParam.zxsj" allow-clear />
|
<a-date-picker valueFormat="YYYY-MM-DD" placeholder="请选择修订时间" v-model:value="queryParam.zxsj" allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="6">
|
<a-col :lg="6">
|
||||||
|
@ -31,15 +31,15 @@
|
||||||
<a-col :lg="6">
|
<a-col :lg="6">
|
||||||
<a-form-item name="years">
|
<a-form-item name="years">
|
||||||
<template #label><span title="年度">年度</span></template>
|
<template #label><span title="年度">年度</span></template>
|
||||||
<a-date-picker placeholder="请选择执行时间" v-model:value="queryParam.years" value-format="YYYY" picker="year" style="width: 100%" allow-clear />
|
<a-date-picker placeholder="请选择修订时间" v-model:value="queryParam.years" value-format="YYYY" picker="year" style="width: 100%" allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="6">
|
<!-- <a-col :lg="6">
|
||||||
<a-form-item name="yearsType">
|
<a-form-item name="yearsType">
|
||||||
<template #label><span title="修订情况">修订情况</span></template>
|
<template #label><span title="修订情况">修订情况</span></template>
|
||||||
<j-dict-select-tag placeholder="请选择修订情况" v-model:value="queryParam.yearsType" dictCode="zd_xdqk" allow-clear />
|
<j-dict-select-tag placeholder="请选择修订情况" v-model:value="queryParam.yearsType" dictCode="zd_xdqk" allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col> -->
|
||||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||||
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
||||||
<a-col :lg="6">
|
<a-col :lg="6">
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
<template v-if="column.dataIndex==='filePath'">
|
<template v-if="column.dataIndex==='filePath'">
|
||||||
<!--文件字段回显插槽-->
|
<!--文件字段回显插槽-->
|
||||||
<span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
|
<span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
|
||||||
<a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
|
<a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">{{dqnd}}下载</a-button>
|
||||||
<a-button :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="handleYulan(text)">预览</a-button>
|
<a-button :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="handleYulan(text)">预览</a-button>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="column.dataIndex==='ftpPath'">
|
<template v-if="column.dataIndex==='ftpPath'">
|
||||||
|
@ -90,15 +90,17 @@
|
||||||
import BlJbzdjsModal from './components/BlJbzdjsModal.vue'
|
import BlJbzdjsModal from './components/BlJbzdjsModal.vue'
|
||||||
import { useUserStore } from '/@/store/modules/user';
|
import { useUserStore } from '/@/store/modules/user';
|
||||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
import { getFileAccessHttpUrl } from '@/utils/common/compUtils';
|
import { getFileAccessHttpUrl } from '@/utils/common/compUtils';
|
||||||
import { encryptByBase64 } from '@/utils/cipher';
|
import { encryptByBase64 } from '@/utils/cipher';
|
||||||
import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
||||||
|
import dayjs from 'dayjs';
|
||||||
|
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
const queryParam = reactive<any>({});
|
const queryParam = reactive<any>({});
|
||||||
const toggleSearchStatus = ref<boolean>(false);
|
const toggleSearchStatus = ref<boolean>(false);
|
||||||
const registerModal = ref();
|
const registerModal = ref();
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
|
const dqnd = dayjs().format('YYYY');
|
||||||
//注册table数据
|
//注册table数据
|
||||||
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
||||||
tableProps: {
|
tableProps: {
|
||||||
|
@ -136,18 +138,6 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
||||||
sm: 20,
|
sm: 20,
|
||||||
});
|
});
|
||||||
|
|
||||||
// 高级查询配置
|
|
||||||
const superQueryConfig = reactive(superQuerySchema);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 高级查询事件
|
|
||||||
*/
|
|
||||||
function handleSuperQuery(params) {
|
|
||||||
Object.keys(params).map((k) => {
|
|
||||||
queryParam[k] = params[k];
|
|
||||||
});
|
|
||||||
searchQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增事件
|
* 新增事件
|
||||||
|
@ -166,10 +156,11 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 详情
|
* 只修改状态字段
|
||||||
*/
|
*/
|
||||||
function handleDetail(record: Recordable) {
|
function handleZtEdit(record: Recordable) {
|
||||||
registerModal.value.disableSubmit = true;
|
registerModal.value.disableSubmit = false;
|
||||||
|
record.ztSfxg = '1';//只修改状态字段标识
|
||||||
registerModal.value.edit(record);
|
registerModal.value.edit(record);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,13 +171,6 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
||||||
await deleteOne({ id: record.id }, handleSuccess);
|
await deleteOne({ id: record.id }, handleSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除事件
|
|
||||||
*/
|
|
||||||
async function batchHandleDelete() {
|
|
||||||
await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 成功回调
|
* 成功回调
|
||||||
*/
|
*/
|
||||||
|
@ -194,6 +178,9 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
||||||
(selectedRowKeys.value = []) && reload();
|
(selectedRowKeys.value = []) && reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预览
|
||||||
|
*/
|
||||||
function handleYulan(record){
|
function handleYulan(record){
|
||||||
var file = record.filePath;
|
var file = record.filePath;
|
||||||
console.log("🚀 ~ handleChakan ~ record.ktbg:", file)
|
console.log("🚀 ~ handleChakan ~ record.ktbg:", file)
|
||||||
|
@ -202,6 +189,9 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
||||||
window.open(url,"_blank");
|
window.open(url,"_blank");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载
|
||||||
|
*/
|
||||||
function handleXiazai(record){
|
function handleXiazai(record){
|
||||||
var file = record.filePath;
|
var file = record.filePath;
|
||||||
downloadFile(file);
|
downloadFile(file);
|
||||||
|
@ -212,29 +202,43 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
||||||
*/
|
*/
|
||||||
function getTableAction(record) {
|
function getTableAction(record) {
|
||||||
return [
|
return [
|
||||||
|
{
|
||||||
|
label: '更新状态',
|
||||||
|
onClick: handleZtEdit.bind(null, record),
|
||||||
|
ifShow: () => {
|
||||||
|
return record.years < dqnd; // 判断数据的年度如果小于当前年度,只允许修改状态字段
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: '编辑',
|
label: '编辑',
|
||||||
onClick: handleEdit.bind(null, record),
|
onClick: handleEdit.bind(null, record),
|
||||||
},{
|
ifShow: () => {
|
||||||
|
return record.years === dqnd; // 判断当前年度的数据可以有编辑权限
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
label: '删除',
|
label: '删除',
|
||||||
popConfirm: {
|
popConfirm: {
|
||||||
title: '是否确认删除',
|
title: '是否确认删除',
|
||||||
confirm: handleDelete.bind(null, record),
|
confirm: handleDelete.bind(null, record),
|
||||||
placement: 'topLeft',
|
placement: 'topLeft',
|
||||||
},
|
},
|
||||||
|
ifShow: () => {
|
||||||
|
return record.years === dqnd; // 判断当前年度的数据可以有删除权限
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '下载',
|
label: '下载',
|
||||||
onClick: handleXiazai.bind(null, record),
|
onClick: handleXiazai.bind(null, record),
|
||||||
ifShow: () => {
|
ifShow: () => {
|
||||||
return record.filePath; // 根据业务控制是否显示: enable状态的显示禁用按钮
|
return record.filePath; // 判断有附件的才显示下载功能
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '预览',
|
label: '预览',
|
||||||
onClick: handleYulan.bind(null, record),
|
onClick: handleYulan.bind(null, record),
|
||||||
ifShow: () => {
|
ifShow: () => {
|
||||||
return record.filePath; // 根据业务控制是否显示: enable状态的显示禁用按钮
|
return record.filePath; // 判断有附件的才显示预览功能
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -18,8 +18,8 @@
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="6">
|
<a-col :lg="6">
|
||||||
<a-form-item name="zxsj">
|
<a-form-item name="zxsj">
|
||||||
<template #label><span title="执行时间">执行时间</span></template>
|
<template #label><span title="修订时间">修订时间</span></template>
|
||||||
<a-date-picker valueFormat="YYYY-MM-DD" placeholder="请选择执行时间" v-model:value="queryParam.zxsj" allow-clear />
|
<a-date-picker valueFormat="YYYY-MM-DD" placeholder="请选择修订时间" v-model:value="queryParam.zxsj" allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="6">
|
<a-col :lg="6">
|
||||||
|
@ -31,13 +31,7 @@
|
||||||
<a-col :lg="6">
|
<a-col :lg="6">
|
||||||
<a-form-item name="years">
|
<a-form-item name="years">
|
||||||
<template #label><span title="年度">年度</span></template>
|
<template #label><span title="年度">年度</span></template>
|
||||||
<a-date-picker placeholder="请选择执行时间" v-model:value="queryParam.years" value-format="YYYY" picker="year" style="width: 100%" allow-clear />
|
<a-date-picker placeholder="请选择修订时间" v-model:value="queryParam.years" value-format="YYYY" picker="year" style="width: 100%" allow-clear />
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :lg="6">
|
|
||||||
<a-form-item name="yearsType">
|
|
||||||
<template #label><span title="修订情况">修订情况</span></template>
|
|
||||||
<j-dict-select-tag placeholder="请选择修订情况" v-model:value="queryParam.yearsType" dictCode="zd_xdqk" allow-clear />
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||||
|
@ -119,57 +113,6 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
||||||
sm: 20,
|
sm: 20,
|
||||||
});
|
});
|
||||||
|
|
||||||
// 高级查询配置
|
|
||||||
const superQueryConfig = reactive(superQuerySchema);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 高级查询事件
|
|
||||||
*/
|
|
||||||
function handleSuperQuery(params) {
|
|
||||||
Object.keys(params).map((k) => {
|
|
||||||
queryParam[k] = params[k];
|
|
||||||
});
|
|
||||||
searchQuery();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增事件
|
|
||||||
*/
|
|
||||||
function handleAdd() {
|
|
||||||
registerModal.value.disableSubmit = false;
|
|
||||||
registerModal.value.add();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 编辑事件
|
|
||||||
*/
|
|
||||||
function handleEdit(record: Recordable) {
|
|
||||||
registerModal.value.disableSubmit = false;
|
|
||||||
registerModal.value.edit(record);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 详情
|
|
||||||
*/
|
|
||||||
function handleDetail(record: Recordable) {
|
|
||||||
registerModal.value.disableSubmit = true;
|
|
||||||
registerModal.value.edit(record);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除事件
|
|
||||||
*/
|
|
||||||
async function handleDelete(record) {
|
|
||||||
await deleteOne({ id: record.id }, handleSuccess);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除事件
|
|
||||||
*/
|
|
||||||
async function batchHandleDelete() {
|
|
||||||
await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 成功回调
|
* 成功回调
|
||||||
*/
|
*/
|
||||||
|
@ -177,6 +120,9 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
||||||
(selectedRowKeys.value = []) && reload();
|
(selectedRowKeys.value = []) && reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预览文件
|
||||||
|
*/
|
||||||
function handleYulan(record){
|
function handleYulan(record){
|
||||||
var file = record.filePath;
|
var file = record.filePath;
|
||||||
console.log("🚀 ~ handleChakan ~ record.ktbg:", file)
|
console.log("🚀 ~ handleChakan ~ record.ktbg:", file)
|
||||||
|
@ -185,6 +131,9 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
||||||
window.open(url,"_blank");
|
window.open(url,"_blank");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载文件
|
||||||
|
*/
|
||||||
function handleXiazai(record){
|
function handleXiazai(record){
|
||||||
var file = record.filePath;
|
var file = record.filePath;
|
||||||
downloadFile(file);
|
downloadFile(file);
|
||||||
|
@ -199,14 +148,14 @@ import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
||||||
label: '下载',
|
label: '下载',
|
||||||
onClick: handleXiazai.bind(null, record),
|
onClick: handleXiazai.bind(null, record),
|
||||||
ifShow: () => {
|
ifShow: () => {
|
||||||
return record.filePath; // 根据业务控制是否显示: enable状态的显示禁用按钮
|
return record.filePath; // 判断如果有文件才显示下载按钮
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '预览',
|
label: '预览',
|
||||||
onClick: handleYulan.bind(null, record),
|
onClick: handleYulan.bind(null, record),
|
||||||
ifShow: () => {
|
ifShow: () => {
|
||||||
return record.filePath; // 根据业务控制是否显示: enable状态的显示禁用按钮
|
return record.filePath; // 判断如果有文件才显示预览按钮
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -6,38 +6,27 @@
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="制度名称" v-bind="validateInfos.zdmc" id="BlJbzdjsForm-zdmc" name="zdmc">
|
<a-form-item label="制度名称" v-bind="validateInfos.zdmc" id="BlJbzdjsForm-zdmc" name="zdmc">
|
||||||
<a-input v-model:value="formData.zdmc" placeholder="请输入制度名称" allow-clear ></a-input>
|
<a-input v-model:value="formData.zdmc" placeholder="请输入制度名称" allow-clear :disabled="ztSfxg"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="执行时间" v-bind="validateInfos.zxsj" id="BlJbzdjsForm-zxsj" name="zxsj">
|
<a-form-item label="修订时间" v-bind="validateInfos.zxsj" id="BlJbzdjsForm-zxsj" name="zxsj">
|
||||||
<a-date-picker placeholder="请选择执行时间" v-model:value="formData.zxsj" value-format="YYYY-MM-DD" style="width: 100%" allow-clear />
|
<a-date-picker placeholder="请选择修订时间" v-model:value="formData.zxsj" value-format="YYYY-MM-DD" style="width: 100%" allow-clear :disabled="ztSfxg"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="与教学管理文件汇编不一致说明" v-bind="validateInfos.sfyz" id="BlJbzdjsForm-sfyz" name="sfyz">
|
<a-form-item label="对应的学校上位文件" v-bind="validateInfos.sfyz" id="BlJbzdjsForm-sfyz" name="sfyz">
|
||||||
<j-dict-select-tag v-model:value="formData.sfyz" dictCode="yn" placeholder="请选择与教学管理文件汇编不一致说明" allow-clear />
|
<j-dict-select-tag show-search v-model:value="formData.sfyz" dictCode="zd_swwj" placeholder="请选择对应的学校上位文件" allow-clear :disabled="ztSfxg"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="状态" v-bind="validateInfos.status" id="BlJbzdjsForm-status" name="status">
|
<a-form-item label="状态" v-bind="validateInfos.status" id="BlJbzdjsForm-status" name="status">
|
||||||
<j-dict-select-tag v-model:value="formData.status" dictCode="zd_status" placeholder="请选择状态" allow-clear />
|
<j-dict-select-tag type="radio" v-model:value="formData.status" dictCode="zd_status" placeholder="请选择状态" allow-clear />
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="24">
|
|
||||||
<a-form-item label="年度" v-bind="validateInfos.years" id="BlJbzdjsForm-years" name="years">
|
|
||||||
<!-- <a-input v-model:value="formData.years" placeholder="请输入年度" allow-clear ></a-input> -->
|
|
||||||
<a-date-picker placeholder="请选择执行时间" v-model:value="formData.years" value-format="YYYY" picker="year" style="width: 100%" allow-clear />
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="24">
|
|
||||||
<a-form-item label="修订情况" v-bind="validateInfos.yearsType" id="BlJbzdjsForm-yearsType" name="yearsType">
|
|
||||||
<j-dict-select-tag v-model:value="formData.yearsType" dictCode="zd_xdqk" placeholder="请选择修订情况" allow-clear />
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="附件" v-bind="validateInfos.filePath" id="BlJbzdjsForm-filePath" name="filePath">
|
<a-form-item label="附件" v-bind="validateInfos.filePath" id="BlJbzdjsForm-filePath" name="filePath">
|
||||||
<j-upload v-model:value="formData.filePath" :bizPath="dqnd" :max-count="1" ></j-upload>
|
<j-upload v-model:value="formData.filePath" :bizPath="dqnd" :max-count="1" :disabled="ztSfxg"></j-upload>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
@ -66,6 +55,7 @@
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
const useForm = Form.useForm;
|
const useForm = Form.useForm;
|
||||||
const emit = defineEmits(['register', 'ok']);
|
const emit = defineEmits(['register', 'ok']);
|
||||||
|
const ztSfxg = ref<boolean>(false);
|
||||||
const formData = reactive<Record<string, any>>({
|
const formData = reactive<Record<string, any>>({
|
||||||
id: '',
|
id: '',
|
||||||
zdmc: '',
|
zdmc: '',
|
||||||
|
@ -73,7 +63,6 @@
|
||||||
sfyz: '',
|
sfyz: '',
|
||||||
status: '',
|
status: '',
|
||||||
years: '',
|
years: '',
|
||||||
yearsType: '',
|
|
||||||
filePath: '',
|
filePath: '',
|
||||||
});
|
});
|
||||||
const { createMessage } = useMessage();
|
const { createMessage } = useMessage();
|
||||||
|
@ -84,11 +73,9 @@
|
||||||
//表单验证
|
//表单验证
|
||||||
const validatorRules = reactive({
|
const validatorRules = reactive({
|
||||||
zdmc: [{ required: true, message: '请输入制度名称!' }],
|
zdmc: [{ required: true, message: '请输入制度名称!' }],
|
||||||
zxsj: [{ required: true, message: '请选择执行时间!' }],
|
zxsj: [{ required: true, message: '请选择修订时间!' }],
|
||||||
sfyz: [{ required: true, message: '请选择与教学管理文件汇编不一致说明!' }],
|
sfyz: [{ required: true, message: '请选择对应的学校上位文件!' }],
|
||||||
status: [{ required: true, message: '请选择状态!' }],
|
status: [{ required: true, message: '请选择状态!' }],
|
||||||
years: [{ required: true, message: '请选择年度!' }],
|
|
||||||
yearsType: [{ required: true, message: '请选择修订情况!' }],
|
|
||||||
filePath: [{ required: true, message: '请选择附件!' }],
|
filePath: [{ required: true, message: '请选择附件!' }],
|
||||||
});
|
});
|
||||||
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
|
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
|
||||||
|
@ -110,7 +97,7 @@
|
||||||
* 新增
|
* 新增
|
||||||
*/
|
*/
|
||||||
function add() {
|
function add() {
|
||||||
edit({});
|
edit({status:'1'});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -125,8 +112,18 @@
|
||||||
tmpData[key] = record[key]
|
tmpData[key] = record[key]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
//赋值
|
//赋值
|
||||||
Object.assign(formData, tmpData);
|
Object.assign(formData, tmpData);
|
||||||
|
|
||||||
|
console.log("🚀 ~ nextTick ~ record:", record)
|
||||||
|
if(record.ztSfxg == '1'){
|
||||||
|
ztSfxg.value = true;//只允许修改状态字段
|
||||||
|
}else{
|
||||||
|
ztSfxg.value = false;//默认给false,可以修改任何字段
|
||||||
|
}
|
||||||
|
console.log("🚀 ~ nextTick ~ ztSfxg:", ztSfxg)
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,6 +161,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//根据修订时间赋值对应的年份数据,修订时间的年份就是数据存储的年份,用于区分是否允许只修改状态
|
||||||
|
var zxsj = model.zxsj;
|
||||||
|
var nd = zxsj.substring(0,4);
|
||||||
|
model.years = nd;
|
||||||
|
|
||||||
await saveOrUpdate(model, isUpdate.value)
|
await saveOrUpdate(model, isUpdate.value)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<j-modal :title="title" :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
|
<j-modal :title="title" :width="width" style="top:30px;" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
|
||||||
<BlJbzdjsForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></BlJbzdjsForm>
|
<BlJbzdjsForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></BlJbzdjsForm>
|
||||||
</j-modal>
|
</j-modal>
|
||||||
</template>
|
</template>
|
||||||
|
|
Loading…
Reference in New Issue