This commit is contained in:
lijiaqi 2023-06-15 14:26:03 +08:00
parent aa97d4fa65
commit 91592146a4
266 changed files with 887 additions and 20 deletions

View File

@ -66,4 +66,5 @@ public interface UrlConstant {
String APP_PRIVATE_KEY = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAL5VDvlBzzvFZzMiLPLx83IH65f/1tQs8GMXfHAMDTsEczogqkt6W3KQ0G9B2L7Kvp470GHgYf+reTHL65Oblt90CogYdr4ulm0/K9+iMrdbmGu4B5qSMVzs6E+up6OOgdwp+zqItQ2fies5j2twqYcxJKxdv4xEN9ApBFwu8XcxAgMBAAECgYBwpd8K30xLz/XYaa24zEKNhuqFN8JqKX7M5yWbG0bpWyTnjlW7/lsJX3Q9pPcnVM+kzznx89+MdmxwcISpBDkyWh7MOVg3Y3F3ChSO6B/Gap33YeinYcUGn2PQ/q6yh4Wpj5BuGkSo7sMPeGuM+NrO0KwLOa39XJ+jkMNsFt3D0QJBAOFiyPl5BAW8tEdQJTfhyXhKhsU894BN7V5kfAzDd7/oQmKY6lIzgizhp3DVLOav6js6nLiQ3PO0m3TTgKpS0LsCQQDYL1+1+CbnMDE5Cth0MspI98O89j27Ira6ZuPMjjs8gGh0qPLRj5hBcqiA0hMAuSxQylQ/TAxAWWMcvb+LoT8DAkEA0Y8u/D5XzhnJqXDMWiwWTkFFE8j++w35wUU+zgNEqWuDpfc2D54S0DYzoEalTAyOhemWZElVF0d7L2GkBTmhFwJASzCe72Fx1nLyi85z3mZT6PETyUMz0USPnWFv1ZOakr5uljS0z6JL6GeCp9to9JVzDl5w0tsWX8M3L6XnWx8oFQJBAKPr9X/v9o/qpIg6wsJvtWVpjXMWdFxFDIXQpbmS5ovwjnIjSh2ExGnwzOexO3oZGGCOdz7+6eshliVXYMTDjw8=";
String MEETING = API + "/meeting";
}

View File

@ -1,5 +1,6 @@
package com.ydool.common.utils;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.ydool.common.data.dto.OptionResult;
@ -92,7 +93,7 @@ public class TreeMapUtil {
}
} else {
if (parent.get(ID) != null && model.get(PID) != null && parent.get(ID).toString().equals(model.get(PID).toString())) {
List children = parent.containsKey("children") ? (ArrayList) parent.get("children") : new ArrayList();
List children = parent.containsKey("children") && ObjUtil.isNotNull(parent.get("children")) ? (ArrayList) parent.get("children") : new ArrayList();
children.add(model);
parent.put("children", children);
tree(tlist, null, model);

View File

@ -0,0 +1,132 @@
package com.ydool.integrated.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.github.xiaoymin.knife4j.annotations.DynamicParameter;
import com.github.xiaoymin.knife4j.annotations.DynamicResponseParameters;
import com.ydool.common.base.BaseController;
import com.ydool.common.constant.UrlConstant;
import com.ydool.common.data.dto.AjaxResult;
import com.ydool.integrated.dto.MeetingDto;
import com.ydool.integrated.service.MeetingService;
import com.ydool.integrated.vo.IdsVo;
import com.ydool.integrated.vo.MeetingVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(UrlConstant.MEETING)
@Api(tags = "会议管理", value = "会议管理")
@ApiSupport(order = 5)
public class MeetingController extends BaseController {
@Autowired
private MeetingService meetingService;
/**
* 保存
*
* @param vo
* @return
*/
@PostMapping(value = "save")
@ApiOperation(value = "保存")
@ApiOperationSupport(order = 1)
public AjaxResult saveMeeting(@Validated @RequestBody MeetingVo vo) {
return meetingService.save(vo);
}
/**
* 编辑
*
* @param id
* @param vo
* @return
*/
@PutMapping(value = "edit")
@ApiOperation(value = "编辑")
@ApiImplicitParam(name = "id", value = "Id")
@ApiOperationSupport(order = 2)
public AjaxResult editMeeting(String id, @Validated @RequestBody MeetingVo vo) {
return meetingService.edit(id, vo);
}
/**
* 删除
*
* @param id
* @return
*/
@DeleteMapping(value = "remove")
@ApiOperation(value = "删除")
@ApiImplicitParam(name = "id", value = "Id")
@ApiOperationSupport(order = 3)
public AjaxResult removeMeeting(String id) {
return meetingService.remove(id);
}
/**
* 批量删除
*
* @param vo
* @return
*/
@PutMapping(value = "removeBatch")
@ApiOperation(value = "批量删除")
@ApiOperationSupport(order = 4)
public AjaxResult removeMeetings(@Validated @RequestBody IdsVo vo) {
return meetingService.removeBatch(vo);
}
/**
* 详情
*
* @param id
* @return
*/
@GetMapping(value = "detail")
@ApiOperation(value = "详情")
@ApiOperationSupport(
responses = @DynamicResponseParameters(properties = {
@DynamicParameter(name = "data", dataTypeClass = MeetingDto.class)
}), order = 5
)
public AjaxResult meetingDetails(String id) {
return meetingService.details(id);
}
/**
* 分页列表
*
* @param value
* @param column
* @param orderBy
* @return
*/
@GetMapping(value = "page")
@ApiOperation(value = "列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "current", value = "当前页", dataType = "Integer"),
@ApiImplicitParam(name = "size", value = "每页条数", dataType = "Integer"),
@ApiImplicitParam(name = "value", value = "搜索框中的内容(只支持字符串类型)"),
@ApiImplicitParam(name = "column", value = "排序字段 字段名"),
@ApiImplicitParam(name = "orderBy", value = "排序顺序 降序desc升序asc")
})
@ApiOperationSupport(
responses = @DynamicResponseParameters(properties = {
@DynamicParameter(name = "data", dataTypeClass = MeetingDto.class)
}),
order = 6
)
public AjaxResult MeetingPages(String value, String column, String orderBy) {
return meetingService.pageList(getPage(), value, column, orderBy);
}
}

View File

@ -0,0 +1,20 @@
package com.ydool.integrated.dto;
import com.ydool.integrated.entity.Meeting;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class MeetingDto extends Meeting {
@ApiModelProperty(value = "参会人员")
private String userList;
@ApiModelProperty(value = "创建人")
private String createdName;
@ApiModelProperty(value = "更新人")
private String updatedName;
}

View File

@ -0,0 +1,57 @@
package com.ydool.integrated.entity;
import java.time.LocalDateTime;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ydool.common.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* 会议管理(Meeting)表实体类
*
* @author makejava
* @since 2023-06-15 09:34:39
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("t_integrated_meeting")
@ApiModel(value="Meeting对象", description="会议管理")
public class Meeting extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "会议主题")
private String title;
@ApiModelProperty(value = "参加人员")
private String userIds;
@ApiModelProperty(value = "会议内容")
private String content;
@ApiModelProperty(value = "相关附件")
private String files;
@ApiModelProperty(value = "开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") // 表示返回时间类型
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // 表示接收时间类型
private LocalDateTime startTime;
@ApiModelProperty(value = "结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") // 表示返回时间类型
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // 表示接收时间类型
private LocalDateTime endTime;
}

View File

@ -0,0 +1,18 @@
package com.ydool.integrated.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.ydool.integrated.entity.Meeting;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 会议管理 Mapper 接口
* </p>
*
* @author zhouyuan
* @since 2023-05-06
*/
@Mapper
public interface MeetingMapper extends MPJBaseMapper<Meeting> {
}

View File

@ -0,0 +1,161 @@
package com.ydool.integrated.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ydool.common.base.BaseService;
import com.ydool.common.data.dto.AjaxResult;
import com.ydool.integrated.entity.Meeting;
import com.ydool.integrated.mapper.MeetingMapper;
import com.ydool.integrated.vo.IdsVo;
import com.ydool.integrated.vo.MeetingVo;
import com.ydool.integrated.wrapper.MeetingWrapper;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 会议管理 服务类
* </p>
*
* @author zhouyuan
* @since 2023-05-06
*/
@Service
public class MeetingService extends BaseService<MeetingMapper, Meeting> {
/**
* 校验
*
* @param id
* @param vo
* @return
*/
private String check(String id, MeetingVo vo) {
List<String> userIds = JSONUtil.toList(vo.getUserIds(), String.class);
if (CollUtil.isEmpty(userIds)) return "参加人员不能为空";
return null;
}
/**
* 保存
*
* @param vo
* @return
*/
public AjaxResult save(MeetingVo vo) {
String message = check("", vo);
if (StrUtil.isNotBlank(message)) return AjaxResult.fail(message);
Meeting meeting = BeanUtil.copyProperties(vo, Meeting.class);
boolean flag = save(meeting);
return flag ? AjaxResult.ok().msg("保存成功") : AjaxResult.fail("保存失败");
}
/**
* 编辑
*
* @param id
* @param vo
* @return
*/
public AjaxResult edit(String id, MeetingVo vo) {
if (StrUtil.isBlank(id)) return AjaxResult.fail("id不能为空");
String message = check(id, vo);
if (StrUtil.isNotBlank(message)) return AjaxResult.fail(message);
Meeting meeting = getById(id);
if (ObjectUtil.isNull(meeting)) return AjaxResult.fail("该数据不存在");
BeanUtil.copyProperties(vo, meeting);
boolean flag = updateById(meeting);
return flag ? AjaxResult.ok().msg("编辑成功") : AjaxResult.fail("编辑失败");
}
/**
* 删除
*
* @param id
* @return
*/
public AjaxResult remove(String id) {
if (StrUtil.isBlank(id)) return AjaxResult.fail("id不能为空");
Meeting meeting = getById(id);
if (ObjectUtil.isNull(meeting)) return AjaxResult.fail("该数据不存在");
return removeById(id) ? AjaxResult.ok().msg("删除成功") : AjaxResult.fail("删除失败");
}
/**
* 批量删除
*
* @param vo
* @return
*/
public AjaxResult removeBatch(IdsVo vo) {
List<String> idList = vo.getIds();
if (CollUtil.isEmpty(idList)) {
return AjaxResult.fail("Id集合不能为空");
}
List<Meeting> meetingList = listByIds(idList);
if (CollUtil.isEmpty(meetingList)) {
return AjaxResult.fail("该数据集合全部不存在");
}
return removeByIds(idList) ? AjaxResult.ok().msg("批量删除成功") : AjaxResult.fail("批量删除失败");
}
/**
* 详情
*
* @param id
* @return
*/
public AjaxResult details(String id) {
if (StrUtil.isBlank(id)) return AjaxResult.fail("id不能为空");
Meeting meeting = getById(id);
if (ObjectUtil.isNull(meeting)) return AjaxResult.fail("该数据不存在");
return AjaxResult.ok().data(MeetingWrapper.INSTANCE.toDto(meeting));
}
/**
* 分页列表
*
* @param page
* @param value
* @param column
* @param orderBy
* @return
*/
public AjaxResult pageList(Page page, String value, String column, String orderBy) {
QueryWrapper<Meeting> qw = new QueryWrapper<Meeting>();
qw.lambda().and(
StrUtil.isNotBlank(value), query -> {
query.like(Meeting::getTitle, value)
.or().like(Meeting::getContent, value);
}
);
if (StrUtil.isBlank(column)) {
qw.lambda().orderByDesc(Meeting::getCreatedAt);
} else {
if ("desc".equals(orderBy)) {
qw.orderByDesc(StrUtil.toUnderlineCase(column));
}
if ("asc".equals(orderBy)) {
qw.orderByAsc(StrUtil.toUnderlineCase(column));
}
}
Page<Meeting> pageList = page(page, qw);
return AjaxResult.ok().data(MeetingWrapper.INSTANCE.toDto(pageList));
}
}

View File

@ -0,0 +1,43 @@
package com.ydool.integrated.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
@Data
public class MeetingVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "会议主题", required = true)
@NotBlank(message = "会议主题不能为空")
private String title;
@ApiModelProperty(value = "参加人员", required = true)
@NotBlank(message = "参加人员 为空请传[]")
private String userIds;
@ApiModelProperty(value = "会议内容")
@NotBlank(message = "会议内容不能为空")
private String content;
@ApiModelProperty(value = "相关附件 为空请传[]", required = true)
@NotBlank(message = "相关附件 为空请传[]")
private String files;
@ApiModelProperty(value = "开始时间", required = true)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") // 表示返回时间类型
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // 表示接收时间类型
@NotNull(message = "开始时间不能为空")
private LocalDateTime startTime;
@ApiModelProperty(value = "结束时间", required = true)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") // 表示返回时间类型
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // 表示接收时间类型
@NotNull(message = "结束时间不能为空")
private LocalDateTime endTime;
}

View File

@ -0,0 +1,44 @@
package com.ydool.integrated.wrapper;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.extra.spring.SpringUtil;
import cn.hutool.json.JSONUtil;
import com.ydool.common.base.BaseWrapper;
import com.ydool.integrated.dto.MeetingDto;
import com.ydool.integrated.entity.Meeting;
import com.ydool.system.entity.User;
import com.ydool.system.service.impl.UserServiceImpl;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.AfterMapping;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper
public interface MeetingWrapper extends BaseWrapper<Meeting, MeetingDto> {
MeetingWrapper INSTANCE = Mappers.getMapper(MeetingWrapper.class);
@AfterMapping
default void setOtherField(@Param("obj") Meeting obj, @MappingTarget @Param("dto") MeetingDto dto) {
UserServiceImpl userService = SpringUtil.getBean(UserServiceImpl.class);
User createdUser = userService.getById(obj.getCreatedId());
if (ObjUtil.isNotNull(createdUser)) {
dto.setCreatedName(createdUser.getUserName());
}
User updatedUser = userService.getById(obj.getUpdatedId());
if (ObjUtil.isNotNull(updatedUser)) {
dto.setUpdatedName(updatedUser.getUserName());
}
List<String> userIds = JSONUtil.toList(obj.getUserIds(), String.class);
if (CollUtil.isNotEmpty(userIds)) {
List<User> users = userService.listByIds(userIds);
if (CollUtil.isNotEmpty(users)) {
dto.setUserList(JSONUtil.toJsonStr(users));
}
}
}
}

View File

@ -1,5 +1,6 @@
package com.ydool.integrated.wrapper;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.extra.spring.SpringUtil;
import cn.hutool.json.JSONUtil;
@ -33,8 +34,12 @@ public interface NoticeWrapper extends BaseWrapper<Notice, NoticeDto> {
}
List<String> userIds = JSONUtil.toList(obj.getUserIds(), String.class);
if (CollUtil.isNotEmpty(userIds)) {
List<User> users = userService.listByIds(userIds);
if (CollUtil.isNotEmpty(users)) {
dto.setUserList(JSONUtil.toJsonStr(users));
}
}
}
}

View File

@ -15,6 +15,7 @@ import com.ydool.oa.workFlow.data.vo.WorkFlowStepVo;
import com.ydool.oa.workFlow.data.vo.WorkFlowVo;
import com.ydool.oa.workFlow.service.WorkFlowNoticeService;
import com.ydool.oa.workFlow.service.WorkFlowService;
import com.ydool.system.entity.Job;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@ -218,4 +219,37 @@ public class WorkFlowController extends BaseController {
return workFlowNoticeService.getUnReadCount();
}
/**
* 获取所有流程记录
* @param value
* @param column
* @param orderBy
* @param type
* @param userId
* @param status
* @return
*/
@GetMapping(value = "getAllWorkFlowList")
@ApiOperation(value = "获取所有流程记录")
@ApiImplicitParams({
@ApiImplicitParam(name = "current", value = "当前页", dataType = "Integer"),
@ApiImplicitParam(name = "size", value = "每页条数", dataType = "Integer"),
@ApiImplicitParam(name = "value", value = "搜索框中的内容(只支持字符串类型)"),
@ApiImplicitParam(name = "column", value = "排序字段 字段名"),
@ApiImplicitParam(name = "orderBy", value = "排序顺序 降序desc升序asc"),
@ApiImplicitParam(name = "type", value = "流程类型"),
@ApiImplicitParam(name = "userId", value = "发起人"),
@ApiImplicitParam(name = "status", value = "状态"),
})
@ApiOperationSupport(
responses = @DynamicResponseParameters(properties = {
@DynamicParameter(name = "data", dataTypeClass = WorkFlowDto.class)
}),
order = 12
)
public AjaxResult getAllWorkFlowList(String value, String column, String orderBy, String type,
String userId, String status) {
return workFlowService.getAllWorkFlowList(getPage(), value, column, orderBy, type, userId, status);
}
}

View File

@ -18,7 +18,6 @@ import com.ydool.oa.workFlow.service.WorkFlowService;
import com.ydool.oa.workFlow.service.WorkFlowStepLogService;
import com.ydool.oa.workFlow.service.WorkFlowStepService;
import com.ydool.system.entity.Config;
import com.ydool.system.entity.Job;
import com.ydool.system.entity.User;
import com.ydool.system.service.impl.ConfigServiceImpl;
import com.ydool.system.service.impl.JobServiceImpl;

View File

@ -18,7 +18,6 @@ import com.ydool.oa.workFlow.service.WorkFlowService;
import com.ydool.oa.workFlow.service.WorkFlowStepLogService;
import com.ydool.oa.workFlow.service.WorkFlowStepService;
import com.ydool.system.entity.Config;
import com.ydool.system.entity.Job;
import com.ydool.system.entity.User;
import com.ydool.system.service.impl.ConfigServiceImpl;
import com.ydool.system.service.impl.JobServiceImpl;

View File

@ -2,6 +2,7 @@ package com.ydool.oa.workFlow.service;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -289,6 +290,42 @@ public class WorkFlowService extends BaseService<WorkFlowMapper, WorkFlow> {
return AjaxResult.ok().data(workFlowCountDto);
}
/**
* 获取所有流程记录
*
* @param page
* @param value
* @param column
* @param orderBy
* @param type
* @param userId
* @return
*/
public AjaxResult getAllWorkFlowList(Page page, String value, String column, String orderBy, String type,
String userId, String status) {
QueryWrapper<WorkFlow> qw = new QueryWrapper<WorkFlow>();
if (StrUtil.isNotBlank(value)) {
qw.lambda().like(WorkFlow::getData, value);
}
qw.lambda()
.eq(StrUtil.isNotBlank(status), WorkFlow::getStatus, status)
.eq(StrUtil.isNotBlank(type), WorkFlow::getType, type)
.eq(StrUtil.isNotBlank(userId), WorkFlow::getUserId, userId);
if ("desc".equals(orderBy) && StrUtil.isNotBlank(column)) {
qw.orderByDesc(StrUtil.toUnderlineCase(column));
}
if ("asc".equals(orderBy) && StrUtil.isNotBlank(column)) {
qw.orderByAsc(StrUtil.toUnderlineCase(column));
}
Page<WorkFlow> pageList = page(page, qw);
return AjaxResult.ok().data(WorkFlowWrapper.INSTANCE.toDto(pageList));
}
}

View File

@ -8,6 +8,7 @@ import com.ydool.common.base.BaseController;
import com.ydool.common.constant.UrlConstant;
import com.ydool.common.data.dto.AjaxResult;
import com.ydool.common.data.dto.OptionResult;
import com.ydool.system.dto.DeptDto;
import com.ydool.system.entity.Dept;
import com.ydool.system.request.DeptRequest;
import com.ydool.system.service.IDeptService;
@ -44,7 +45,7 @@ public class DeptController extends BaseController {
})
@ApiOperationSupport(
responses = @DynamicResponseParameters(properties = {
@DynamicParameter(name = "data", dataTypeClass = Dept.class)
@DynamicParameter(name = "data", dataTypeClass = DeptDto.class)
}),order = 1
)
public AjaxResult deptList(String value,
@ -64,7 +65,7 @@ public class DeptController extends BaseController {
@ApiOperation(value = "部门详情")
@ApiOperationSupport(
responses = @DynamicResponseParameters(properties = {
@DynamicParameter(name = "data", dataTypeClass = Dept.class)
@DynamicParameter(name = "data", dataTypeClass = DeptDto.class)
}),order = 2
)
@ApiImplicitParam(name = "id", value = "部门Id")

View File

@ -0,0 +1,12 @@
package com.ydool.system.dto;
import com.ydool.system.entity.Dept;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class DeptDto extends Dept {
@ApiModelProperty(value = "负责人名称")
private String userName;
}

View File

@ -31,6 +31,9 @@ public class Dept extends TreeEntity {
@ApiModelProperty(value = "备注")
private String remarks;
@ApiModelProperty(value = "负责人id")
private String userId;
@Override
public String getNamed() {

View File

@ -27,4 +27,8 @@ public class DeptRequest {
@ApiModelProperty(value = "备注")
private String remarks;
@ApiModelProperty(value = "负责人id")
@NotBlank(message = "负责人id不能为空")
private String userId;
}

View File

@ -2,6 +2,7 @@ package com.ydool.system.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
@ -11,10 +12,14 @@ import com.ydool.common.data.dto.AjaxResult;
import com.ydool.common.data.dto.OptionResult;
import com.ydool.common.utils.TreeMapUtil;
import com.ydool.common.utils.TreeSorterUtil;
import com.ydool.system.dto.DeptDto;
import com.ydool.system.entity.Dept;
import com.ydool.system.entity.User;
import com.ydool.system.mapper.DeptMapper;
import com.ydool.system.request.DeptRequest;
import com.ydool.system.service.IDeptService;
import com.ydool.system.wrapper.DeptWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@ -31,6 +36,9 @@ import java.util.*;
@Service
public class DeptServiceImpl extends BaseTreeService<DeptMapper, Dept> implements IDeptService {
@Autowired
private UserServiceImpl userService;
/**
* 删除部门
@ -95,7 +103,7 @@ public class DeptServiceImpl extends BaseTreeService<DeptMapper, Dept> implement
if (StrUtil.isBlank(id)) return AjaxResult.fail("id不能为空");
Dept dept = dept = getById(id);
if (ObjectUtil.isNull(dept)) return AjaxResult.fail("该部门不存在");
return AjaxResult.ok().data(dept);
return AjaxResult.ok().data(DeptWrapper.INSTANCE.toDto(dept));
}
/**
@ -136,11 +144,18 @@ public class DeptServiceImpl extends BaseTreeService<DeptMapper, Dept> implement
qw.orderByAsc(StrUtil.toUnderlineCase(column));
}
List<Map<String, Object>> deptMap = listMaps(qw);
List<Dept> deptList = list(qw);
List<DeptDto> deptDtoList = DeptWrapper.INSTANCE.toDto(deptList);
List<Map<String,Object>> deptDtoMapList = new ArrayList<Map<String,Object>>();
if (CollUtil.isNotEmpty(deptDtoList)) {
deptDtoList.forEach(deptDto -> {
Map<String, Object> deptDtoMap = BeanUtil.beanToMap(deptDto);
deptDtoMapList.add(deptDtoMap);
});
}
//树结构下搜索,如果子级符合条件,就把父级也放进去,确保其能显示
Iterator<Map<String, Object>> iterator = deptMap.iterator();
Iterator<Map<String, Object>> iterator = deptDtoMapList.iterator();
List<Map<String, Object>> parentList = new ArrayList<>();
@ -155,10 +170,18 @@ public class DeptServiceImpl extends BaseTreeService<DeptMapper, Dept> implement
}
//获取所有部门
List<Map<String, Object>> allDeptMap = listMaps(wrapper);
List<Dept> allDeptList = list(wrapper);
List<DeptDto> allDeptDtoList = DeptWrapper.INSTANCE.toDto(allDeptList);
List<Map<String,Object>> allDeptDtoMap = new ArrayList<Map<String,Object>>();
if (CollUtil.isNotEmpty(allDeptDtoList)) {
allDeptDtoList.forEach(deptDto -> {
Map<String, Object> deptDtoMap = BeanUtil.beanToMap(deptDto);
allDeptDtoMap.add(deptDtoMap);
});
}
Map<String, Object> allMap = new HashMap<String, Object>();
allDeptMap.forEach(item -> {
allDeptDtoMap.forEach(item -> {
HashMap map = (HashMap) item;
allMap.put(map.get("id").toString(), map);
});
@ -169,7 +192,7 @@ public class DeptServiceImpl extends BaseTreeService<DeptMapper, Dept> implement
if (!"0".equals(pid)) {
for (; ; ) {
Map pMap = (HashMap) allMap.get(pid);
if (pMap != null && !deptMap.contains(pMap) && !parentList.contains(pMap)) {
if (pMap != null && !deptDtoMapList.contains(pMap) && !parentList.contains(pMap)) {
parentList.add(pMap);
pid = pMap.get("pid").toString();
} else {
@ -178,13 +201,13 @@ public class DeptServiceImpl extends BaseTreeService<DeptMapper, Dept> implement
}
}
}
deptMap.addAll(parentList);
deptDtoMapList.addAll(parentList);
TreeMapUtil treeMapUtil = new TreeMapUtil();
treeMapUtil.tree(deptMap);
treeMapUtil.tree(deptDtoMapList);
//转换为集合对象
JSONArray jsonArray = new JSONArray();
jsonArray.addAll(deptMap);
List<Dept> depts = jsonArray.toList(Dept.class);
jsonArray.addAll(deptDtoMapList);
List<DeptDto> depts = jsonArray.toList(DeptDto.class);
return AjaxResult.ok().data(depts);
}
@ -204,6 +227,8 @@ public class DeptServiceImpl extends BaseTreeService<DeptMapper, Dept> implement
);
if (ObjectUtil.isNotNull(dept)) return "部门编码不能重复";
if (StrUtil.isNotBlank(id) && id.equals(deptRequest.getPid())) return "上级部门不能选择自己";
User user = userService.getById(deptRequest.getUserId());
if (ObjectUtil.isNull(user)) return "负责人不存在";
return null;
}
}

View File

@ -0,0 +1,29 @@
package com.ydool.system.wrapper;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.ydool.common.base.BaseWrapper;
import com.ydool.system.dto.DeptDto;
import com.ydool.system.entity.Dept;
import com.ydool.system.entity.User;
import com.ydool.system.service.impl.UserServiceImpl;
import org.mapstruct.AfterMapping;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
import org.mapstruct.factory.Mappers;
@Mapper
public interface DeptWrapper extends BaseWrapper<Dept, DeptDto> {
DeptWrapper INSTANCE = Mappers.getMapper(DeptWrapper.class);
@AfterMapping
default void setOtherField(Dept obj, @MappingTarget DeptDto dto) {
UserServiceImpl userService = SpringUtil.getBean(UserServiceImpl.class);
User user = userService.getById(obj.getUserId());
if (ObjUtil.isNotNull(user)) {
dto.setUserName(user.getUserName());
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{f as g,h,ag as v,o as n,S as D,T as w,a as e,U as _,Z as V,Y as r,c,a7 as b,F as k,a0 as B}from"./@vue-5dd246aa.js";import{h as x}from"./index-d94cb721.js";import{_ as C}from"./_plugin-vue_export-helper-c27b6911.js";import"./jspdf-28a20e90.js";import"./@babel-5a4b8c9a.js";import"./fflate-8981c52c.js";import"./vue-router-ab2ba79f.js";import"./tools-0351b48a.js";import"./pinia-6e226388.js";import"./vue-demi-71ba0ef2.js";import"./axios-46f5fd04.js";import"./form-data-d2a9677b.js";import"./element-plus-a215fcb5.js";import"./lodash-es-b9271f86.js";import"./@vueuse-77cc1d99.js";import"./@element-plus-ba666efa.js";import"./@popperjs-c75af06c.js";import"./@ctrl-1c80e935.js";import"./dayjs-88f1e3c5.js";import"./core-js-c6c47c20.js";import"./async-validator-a1293421.js";import"./memoize-one-297ddbcb.js";import"./escape-html-1d60d822.js";import"./normalize-wheel-es-ed76fb12.js";import"./@floating-ui-f831ca66.js";import"./js-cookie-40e39767.js";const L={class:"notification-detail"},y=["innerHTML"],T={class:"notification-detail-files"},U=["onClick"],F={__name:"DetailDialog",props:{dialogVisible:{type:Boolean},dialogData:{}},emits:["update:dialogVisible"],setup(a,{emit:m}){const d=a,l=g(!1),p=o=>{x.downloadFile("/api/alteration/download",{params:{fileName:o.name,path:o.path},responseType:"blob"}).then(i=>{const s=window.URL.createObjectURL(i),t=document.createElement("a");t.download=o.name,t.href=s,t.click()})},u=o=>{m("update:dialogVisible",!1),o()};return h(()=>d.dialogVisible,()=>{d.dialogVisible&&(l.value=!0)},{immediate:!0}),(o,i)=>{const s=v("el-dialog");return n(),D(s,{modelValue:l.value,"onUpdate:modelValue":i[0]||(i[0]=t=>l.value=t),title:"通知查看",width:"60%","before-close":u},{default:w(()=>[e("div",L,[_(e("div",{class:"notification-time"},r(a.dialogData.updatedAt),513),[[V,a.dialogData.updatedAt]]),e("h3",null,r(a.dialogData.title),1),e("div",{innerHTML:a.dialogData.content,class:"notification-detail-content"},null,8,y),e("div",T,[(n(!0),c(k,null,b(a.dialogData.files,(t,f)=>(n(),c("span",{class:"fileBox",key:f,onClick:B(M=>p(t),["stop"])},[e("span",null,r(t.name),1)],8,U))),128))])])]),_:1},8,["modelValue"])}}},lt=C(F,[["__scopeId","data-v-f20c7488"]]);export{lt as default};

View File

@ -0,0 +1 @@
System.register(["./@vue-legacy-4de3d5b5.js","./index-legacy-e532f47e.js","./_plugin-vue_export-helper-legacy-762b7923.js","./jspdf-legacy-62dde53b.js","./@babel-legacy-633f46ed.js","./fflate-legacy-e1443086.js","./vue-router-legacy-1e8e1d15.js","./tools-legacy-fa9cbc87.js","./pinia-legacy-99326f0e.js","./vue-demi-legacy-97cfbb01.js","./axios-legacy-6abb032a.js","./form-data-legacy-f3fd8c46.js","./element-plus-legacy-efe0366d.js","./lodash-es-legacy-19b348e6.js","./@vueuse-legacy-c8e81244.js","./@element-plus-legacy-bb874362.js","./@popperjs-legacy-16895e05.js","./@ctrl-legacy-79e027b8.js","./dayjs-legacy-b8c949e6.js","./core-js-legacy-b197ddf1.js","./async-validator-legacy-b9dd2ff7.js","./memoize-one-legacy-599ef04d.js","./escape-html-legacy-ae962a8c.js","./normalize-wheel-es-legacy-f7d8e481.js","./@floating-ui-legacy-212d790c.js","./js-cookie-legacy-c7672909.js"],(function(l,e){"use strict";var a,n,t,i,s,o,c,u,d,g,y,j,r,p,m,f;return{setters:[l=>{a=l.f,n=l.h,t=l.ag,i=l.o,s=l.S,o=l.T,c=l.a,u=l.U,d=l.Z,g=l.Y,y=l.c,j=l.a7,r=l.F,p=l.a0},l=>{m=l.h},l=>{f=l._},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],execute:function(){const e={class:"notification-detail"},v=["innerHTML"],h={class:"notification-detail-files"},b=["onClick"],w={__name:"DetailDialog",props:{dialogVisible:{type:Boolean},dialogData:{}},emits:["update:dialogVisible"],setup(l,{emit:f}){const w=l,D=a(!1),V=l=>{f("update:dialogVisible",!1),l()};return n((()=>w.dialogVisible),(()=>{w.dialogVisible&&(D.value=!0)}),{immediate:!0}),(a,n)=>{const f=t("el-dialog");return i(),s(f,{modelValue:D.value,"onUpdate:modelValue":n[0]||(n[0]=l=>D.value=l),title:"通知查看",width:"60%","before-close":V},{default:o((()=>[c("div",e,[u(c("div",{class:"notification-time"},g(l.dialogData.updatedAt),513),[[d,l.dialogData.updatedAt]]),c("h3",null,g(l.dialogData.title),1),c("div",{innerHTML:l.dialogData.content,class:"notification-detail-content"},null,8,v),c("div",h,[(i(!0),y(r,null,j(l.dialogData.files,((l,e)=>(i(),y("span",{class:"fileBox",key:e,onClick:p((e=>(l=>{m.downloadFile("/api/alteration/download",{params:{fileName:l.name,path:l.path},responseType:"blob"}).then((e=>{const a=window.URL.createObjectURL(e),n=document.createElement("a");n.download=l.name,n.href=a,n.click()}))})(l)),["stop"])},[c("span",null,g(l.name),1)],8,b)))),128))])])])),_:1},8,["modelValue"])}}};l("default",f(w,[["__scopeId","data-v-f20c7488"]]))}}}));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import T from"./Upload-c13f33ad.js";import{h as _}from"./index-d94cb721.js";import{c as $}from"./lodash.clonedeep-2f114c62.js";import{_ as I}from"./_plugin-vue_export-helper-c27b6911.js";import{E as f}from"./element-plus-a215fcb5.js";import{l as v,f as p,a1 as J,k as M,ag as d,o as x,S as D,T as o,a as g,X as C,W as j,d as t,u as b,O as z}from"./@vue-5dd246aa.js";/* empty css */import"./jspdf-28a20e90.js";import"./@babel-5a4b8c9a.js";import"./fflate-8981c52c.js";import"./vue-router-ab2ba79f.js";import"./tools-0351b48a.js";import"./pinia-6e226388.js";import"./vue-demi-71ba0ef2.js";import"./axios-46f5fd04.js";import"./form-data-d2a9677b.js";import"./lodash-es-b9271f86.js";import"./@vueuse-77cc1d99.js";import"./@element-plus-ba666efa.js";import"./@popperjs-c75af06c.js";import"./@ctrl-1c80e935.js";import"./dayjs-88f1e3c5.js";import"./core-js-c6c47c20.js";import"./async-validator-a1293421.js";import"./memoize-one-297ddbcb.js";import"./escape-html-1d60d822.js";import"./normalize-wheel-es-ed76fb12.js";import"./@floating-ui-f831ca66.js";import"./js-cookie-40e39767.js";const E={class:"tab-content"},P={class:"dialog-footer"},W={__name:"DocumentDialog",emits:["init"],setup(X,{expose:U,emit:V}){const c=v(()=>!["create","edit"].includes(u.value));v(()=>u==="create"),v(()=>u==="edit");const k=p();let N={files:[],remarks:void 0,serialNumber:"",title:""};const l=p({...N}),F=J({title:[{required:!0,message:"请输入标题",trigger:"blur"}],serialNumber:[{required:!0,message:"请输入编号",trigger:"blur"}],files:[{required:!0,message:"请上传文件",trigger:"blur"}]}),r=p(!1),u=p(""),y=p(""),S=(i,e)=>{i==="create"?(r.value=!r.value,u.value="create",l.value=$(N)):(i==="edit"||i==="check")&&_.get("/api/document/detail",{id:e}).then(s=>{r.value=!r.value,l.value={files:JSON.parse(s.data.files),remarks:s.data.remarks,serialNumber:s.data.serialNumber,title:s.data.title},y.value=e,u.value=i})},q=async i=>{i&&await i.validate(async(e,s)=>{if(e){let m={...l.value,files:JSON.stringify(l.value.files)};if(u.value==="create"){let n=await _.post("/api/document/save",m);n.code==200?(f({message:"新增成功",type:"success"}),r.value=!1,V("init")):f.error(n.message)}else{let n=await _.put(`/api/document/edit?id=${y.value}`,m);n.code==200?(f({message:"修改成功",type:"success"}),r.value=!1,V("init")):f.error(n.message)}}})};return M(()=>{}),U({changeDialog:S}),(i,e)=>{const s=d("el-input"),m=d("el-form-item"),n=d("el-col"),B=d("el-row"),O=d("el-form"),w=d("el-button"),R=d("el-dialog");return x(),D(R,{modelValue:r.value,"onUpdate:modelValue":e[6]||(e[6]=a=>r.value=a),title:"文件管理",width:"60%"},{footer:o(()=>[g("span",P,[g("div",null,[u.value!="check"?(x(),D(w,{key:0,type:"primary",onClick:e[4]||(e[4]=a=>q(k.value))},{default:o(()=>[C("保存")]),_:1})):j("",!0),t(w,{onClick:e[5]||(e[5]=a=>r.value=!1)},{default:o(()=>[C("关闭")]),_:1})])])]),default:o(()=>[g("div",E,[t(O,{ref_key:"ruleFormRef",ref:k,model:l.value,rules:F,"label-width":"180px",disabled:b(c),class:z(b(c)?"el-form-diabled":"")},{default:o(()=>[t(B,null,{default:o(()=>[t(n,{span:24},{default:o(()=>[t(m,{label:"标题:",prop:"title"},{default:o(()=>[t(s,{modelValue:l.value.title,"onUpdate:modelValue":e[0]||(e[0]=a=>l.value.title=a)},null,8,["modelValue"])]),_:1}),t(m,{label:"编号:",prop:"serialNumber"},{default:o(()=>[t(s,{modelValue:l.value.serialNumber,"onUpdate:modelValue":e[1]||(e[1]=a=>l.value.serialNumber=a)},null,8,["modelValue"])]),_:1}),t(m,{label:"备注:",prop:"remarks"},{default:o(()=>[t(s,{modelValue:l.value.remarks,"onUpdate:modelValue":e[2]||(e[2]=a=>l.value.remarks=a)},null,8,["modelValue"])]),_:1}),t(m,{label:"相关附件:",class:"form-item-upload",prop:"files"},{default:o(()=>[t(T,{modelValue:l.value.files,"onUpdate:modelValue":e[3]||(e[3]=a=>l.value.files=a),disabled:b(c)},null,8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model","rules","disabled","class"])])]),_:1},8,["modelValue"])}}},ke=I(W,[["__scopeId","data-v-a8454a5e"]]);export{ke as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{h as v}from"./index-d94cb721.js";import{c as g}from"./lodash.clonedeep-2f114c62.js";import{_ as R}from"./_plugin-vue_export-helper-c27b6911.js";import{f as r,h as I,k as L,ag as p,o as u,c as b,d as s,T as a,a as j,X as _,F as A,a7 as F,S as M,Y as q}from"./@vue-5dd246aa.js";import"./jspdf-28a20e90.js";import"./@babel-5a4b8c9a.js";import"./fflate-8981c52c.js";import"./vue-router-ab2ba79f.js";import"./tools-0351b48a.js";import"./pinia-6e226388.js";import"./vue-demi-71ba0ef2.js";import"./axios-46f5fd04.js";import"./form-data-d2a9677b.js";import"./element-plus-a215fcb5.js";import"./lodash-es-b9271f86.js";import"./@vueuse-77cc1d99.js";import"./@element-plus-ba666efa.js";import"./@popperjs-c75af06c.js";import"./@ctrl-1c80e935.js";import"./dayjs-88f1e3c5.js";import"./core-js-c6c47c20.js";import"./async-validator-a1293421.js";import"./memoize-one-297ddbcb.js";import"./escape-html-1d60d822.js";import"./normalize-wheel-es-ed76fb12.js";import"./@floating-ui-f831ca66.js";import"./js-cookie-40e39767.js";const z={class:"export"},G={class:"dialog-footer"},O={__name:"Export",props:{dialogVisible:[Boolean]},emits:["update:dialogVisible"],setup(k,{emit:x}){const C=k,d=r(!1),l=r([]),V=r({academy:"毕业院校",alterationSign:"变更标志",annualSalary:"年薪",birthday:"出生日期",companyName:"企业名称",contractModality:"合同形式",education:"学历",finalTrialRemark:"终审意见",firstTrialRemark:"初审意见",freshGraduate:"是否应届毕业生",gender:"性别",hireDate:"入职时间",hireType:"录用方式",jobTitle:"专业技术职称",nation:"民族",numberId:"身份证号",personnelCharacter:"人员性质",personnelType:"人员类型",politicsStatus:"政治面貌",position:"岗位职务",presentDept:"所在部门",qualification:"执业资格证书",receipts:"单据状态",recruitNumber:"人员招聘单号",remark:"备注",resignationTime:"离职时间",retirementTime:"退休时间",socialCreditCode:"统一社会信用代码",specialty:"专业",txfpEndTime:"退休返聘结束时间",txfpStartTime:"退休返聘开始时间",userName:"姓名",workState:"工作状态"}),c=r(),m=r(!1),n=r([]),f=()=>{d.value=!1,x("update:dialogVisible",!1),n.value=g(l.value),c.value=!1,m.value=!1},y=e=>{f(),e()},T=()=>{v.export("/api/person/export",{ids:n.value}).then(e=>{const t=window.URL.createObjectURL(e.data),i=document.createElement("a");i.download=decodeURIComponent(e.headers["content-disposition"].split(";")[1].split("=")[1]),i.href=t,i.click()})},w=e=>{n.value=e?l.value:[],m.value=!1},S=e=>{const t=e.length;c.value=t===l.value.length,m.value=t>0&&t<l.value.length};I(()=>C.dialogVisible,e=>{d.value=e,c.value=!0});const E=()=>{v.get("/api/person/getEntityParam").then(e=>{e.code===200&&(l.value=e.data,n.value=g(e.data))})};return L(()=>{E()}),(e,t)=>{const i=p("el-checkbox"),B=p("el-checkbox-group"),D=p("el-form"),h=p("el-button"),N=p("el-dialog");return u(),b("div",z,[s(N,{modelValue:d.value,"onUpdate:modelValue":t[2]||(t[2]=o=>d.value=o),title:"导出选项",width:"36%","before-close":y},{footer:a(()=>[j("span",G,[s(h,{onClick:T},{default:a(()=>[_("导出")]),_:1}),s(h,{onClick:f,type:"primary"},{default:a(()=>[_("关闭")]),_:1})])]),default:a(()=>[s(D,null,{default:a(()=>[s(i,{modelValue:c.value,"onUpdate:modelValue":t[0]||(t[0]=o=>c.value=o),label:"全选",class:"is-checked-all",size:"large",indeterminate:m.value,onChange:w},null,8,["modelValue","indeterminate"]),s(B,{modelValue:n.value,"onUpdate:modelValue":t[1]||(t[1]=o=>n.value=o),onChange:S},{default:a(()=>[(u(!0),b(A,null,F(l.value,(o,U)=>(u(),M(i,{class:"el-checkbox-width",label:o,key:U},{default:a(()=>[_(q(V.value[o]),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["modelValue"])])}}},ve=R(O,[["__scopeId","data-v-e0be88eb"]]);export{ve as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{h as v}from"./index-d94cb721.js";import{c as X}from"./lodash.clonedeep-2f114c62.js";/* empty css */import{_ as A}from"./_plugin-vue_export-helper-c27b6911.js";import{t as G}from"./tools-0351b48a.js";import{E as D}from"./element-plus-a215fcb5.js";import{l as y,f as i,a1 as H,k as J,ag as r,o as f,S as g,T as a,a as k,X as C,W as R,d as s,u,O as T,c as K,a7 as Q,F as Y}from"./@vue-5dd246aa.js";import"./jspdf-28a20e90.js";import"./@babel-5a4b8c9a.js";import"./fflate-8981c52c.js";import"./vue-router-ab2ba79f.js";import"./pinia-6e226388.js";import"./vue-demi-71ba0ef2.js";import"./axios-46f5fd04.js";import"./form-data-d2a9677b.js";import"./js-cookie-40e39767.js";import"./core-js-c6c47c20.js";import"./lodash-es-b9271f86.js";import"./@vueuse-77cc1d99.js";import"./@element-plus-ba666efa.js";import"./@popperjs-c75af06c.js";import"./@ctrl-1c80e935.js";import"./dayjs-88f1e3c5.js";import"./async-validator-a1293421.js";import"./memoize-one-297ddbcb.js";import"./escape-html-1d60d822.js";import"./normalize-wheel-es-ed76fb12.js";import"./@floating-ui-f831ca66.js";const Z={class:"tab-content"},ee={class:"dialog-footer"},te={__name:"FoodDialog",emits:["init"],setup(oe,{expose:B,emit:N}){const U=G.data.get("identity"),V=y(()=>!["create","edit","rk","ck"].includes(d.value));y(()=>d.value==="create");const _=y(()=>d.value==="ck"||d.value==="rk"),I=i();let F={deptId:void 0,foodTypeId:void 0,amount:0};const l=i({...F}),q=H({foodTypeId:[{required:!0,message:"请输入粮食类型",trigger:"blur"}],amount:[{required:!0,message:"请输入库存",trigger:"blur"}],deptId:[{required:!0,message:"请输入粮仓类型",trigger:"blur"}]}),n=i(!1),d=i(""),E=i(""),z=(t,e)=>{t==="create"?(n.value=!n.value,d.value="create",l.value=X(F)):(t==="rk"||t==="ck"||t==="check")&&v.get("/api/foodReserves/detail",{id:e}).then(p=>{n.value=!n.value,l.value={deptId:p.data.deptId,foodTypeId:p.data.foodTypeId,amount:t==="check"?p.data.amount:0},E.value=e,d.value=t})},L=async t=>{t&&await t.validate(async(e,p)=>{if(e){let m={...l.value},b={create:"add",rk:"warehousing",ck:"out_of_stock"};m.operationType=b[d.value];let c=await v.post("/api/foodReserves/operation",m);c.code==200?(D({message:c.message,type:"success"}),n.value=!1,N("init")):D.error(c.message)}})},h=i([]),M=()=>{v.get("/api/foodType/page",{size:999999,current:1}).then(t=>{t.code==200&&(h.value=t.data.records)})},w=i([]),P=()=>{v.get("/api/dept/tree").then(t=>{t.code==200&&(w.value=t.data.data)})};return J(()=>{M(),P()}),B({changeDialog:z}),(t,e)=>{const p=r("el-tree-select"),m=r("el-form-item"),b=r("el-option"),c=r("el-select"),S=r("el-input"),$=r("el-col"),j=r("el-row"),O=r("el-form"),x=r("el-button"),W=r("el-dialog");return f(),g(W,{modelValue:n.value,"onUpdate:modelValue":e[5]||(e[5]=o=>n.value=o),title:"粮食库存",width:"40%"},{footer:a(()=>[k("span",ee,[k("div",null,[d.value!="check"?(f(),g(x,{key:0,type:"primary",onClick:e[3]||(e[3]=o=>L(I.value))},{default:a(()=>[C("保存")]),_:1})):R("",!0),s(x,{onClick:e[4]||(e[4]=o=>n.value=!1)},{default:a(()=>[C("关闭")]),_:1})])])]),default:a(()=>[k("div",Z,[s(O,{ref_key:"ruleFormRef",ref:I,model:l.value,rules:q,"label-width":"180px",disabled:u(V),class:T(u(V)?"el-form-diabled":"")},{default:a(()=>[s(j,null,{default:a(()=>[s($,{span:24},{default:a(()=>[u(U).isLeader?(f(),g(m,{key:0,label:"粮仓类型:",prop:"deptId",class:T(u(_)?"form-item-diabled":"")},{default:a(()=>[s(p,{modelValue:l.value.deptId,"onUpdate:modelValue":e[0]||(e[0]=o=>l.value.deptId=o),data:w.value,clearable:"","check-strictly":"",placeholder:"请选择","render-after-expand":!1,disabled:u(_)},null,8,["modelValue","data","disabled"])]),_:1},8,["class"])):R("",!0),s(m,{label:"粮食类型:",prop:"foodTypeId",class:T(u(_)?"form-item-diabled":"")},{default:a(()=>[s(c,{modelValue:l.value.foodTypeId,"onUpdate:modelValue":e[1]||(e[1]=o=>l.value.foodTypeId=o),placeholder:"请选择",disabled:u(_)},{default:a(()=>[(f(!0),K(Y,null,Q(h.value,o=>(f(),g(b,{label:o.type,value:o.id},null,8,["label","value"]))),256))]),_:1},8,["modelValue","disabled"])]),_:1},8,["class"]),s(m,{label:d.value=="create"?"库存:":"变更库存:",prop:"amount"},{default:a(()=>[s(S,{modelValue:l.value.amount,"onUpdate:modelValue":e[2]||(e[2]=o=>l.value.amount=o),type:"number",oninput:"value=value.replace(/^0+(\\d)|[^\\d]+/g,'')",min:"0"},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})]),_:1})]),_:1},8,["model","rules","disabled","class"])])]),_:1},8,["modelValue"])}}},Be=A(te,[["__scopeId","data-v-9f2db06e"]]);export{Be as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{h as f}from"./index-d94cb721.js";import{c as M}from"./lodash.clonedeep-2f114c62.js";/* empty css */import{_ as S}from"./_plugin-vue_export-helper-c27b6911.js";import{E as c}from"./element-plus-a215fcb5.js";import{l as _,f as p,a1 as U,k as j,ag as s,o as T,S as x,T as l,a as v,X as F,W as q,d as n,u as C,O as z}from"./@vue-5dd246aa.js";import"./jspdf-28a20e90.js";import"./@babel-5a4b8c9a.js";import"./fflate-8981c52c.js";import"./vue-router-ab2ba79f.js";import"./tools-0351b48a.js";import"./pinia-6e226388.js";import"./vue-demi-71ba0ef2.js";import"./axios-46f5fd04.js";import"./form-data-d2a9677b.js";import"./js-cookie-40e39767.js";import"./core-js-c6c47c20.js";import"./lodash-es-b9271f86.js";import"./@vueuse-77cc1d99.js";import"./@element-plus-ba666efa.js";import"./@popperjs-c75af06c.js";import"./@ctrl-1c80e935.js";import"./dayjs-88f1e3c5.js";import"./async-validator-a1293421.js";import"./memoize-one-297ddbcb.js";import"./escape-html-1d60d822.js";import"./normalize-wheel-es-ed76fb12.js";import"./@floating-ui-f831ca66.js";const E={class:"tab-content"},O={class:"dialog-footer"},P={__name:"FoodTypeDialog",emits:["init"],setup(W,{expose:h,emit:g}){const y=_(()=>!["create","edit"].includes(a.value));_(()=>a.value==="create"),_(()=>a.value==="edit");const b=p();let V={type:""};const i=p({...V}),D=U({type:[{required:!0,message:"请输入粮食类型",trigger:"blur"}]}),t=p(!1),a=p(""),k=p(""),N=(o,e)=>{o==="create"?(t.value=!t.value,a.value="create",i.value=M(V)):(o==="edit"||o==="check")&&f.get("/api/foodType/detail",{id:e}).then(m=>{t.value=!t.value,i.value={type:m.data.type},k.value=e,a.value=o})},B=async o=>{o&&await o.validate(async(e,m)=>{if(e){let d={...i.value};if(a.value==="create"){let r=await f.post("/api/foodType/save",d);r.code==200?(c({message:"新增成功",type:"success"}),t.value=!1,g("init")):c.error(r.message)}else{let r=await f.put(`/api/foodType/edit?id=${k.value}`,d);r.code==200?(c({message:"修改成功",type:"success"}),t.value=!1,g("init")):c.error(r.message)}}})};return j(()=>{}),h({changeDialog:N}),(o,e)=>{const m=s("el-input"),d=s("el-form-item"),r=s("el-col"),R=s("el-row"),$=s("el-form"),w=s("el-button"),I=s("el-dialog");return T(),x(I,{modelValue:t.value,"onUpdate:modelValue":e[3]||(e[3]=u=>t.value=u),title:"粮食类型",width:"40%"},{footer:l(()=>[v("span",O,[v("div",null,[a.value!="check"?(T(),x(w,{key:0,type:"primary",onClick:e[1]||(e[1]=u=>B(b.value))},{default:l(()=>[F("保存")]),_:1})):q("",!0),n(w,{onClick:e[2]||(e[2]=u=>t.value=!1)},{default:l(()=>[F("关闭")]),_:1})])])]),default:l(()=>[v("div",E,[n($,{ref_key:"ruleFormRef",ref:b,model:i.value,rules:D,"label-width":"180px",disabled:C(y),class:z(C(y)?"el-form-diabled":"")},{default:l(()=>[n(R,null,{default:l(()=>[n(r,{span:24},{default:l(()=>[n(d,{label:"粮食类型:",prop:"type"},{default:l(()=>[n(m,{modelValue:i.value.type,"onUpdate:modelValue":e[0]||(e[0]=u=>i.value.type=u)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model","rules","disabled","class"])])]),_:1},8,["modelValue"])}}},ye=S(P,[["__scopeId","data-v-82a014d8"]]);export{ye as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{h as y}from"./index-d94cb721.js";import"./lodash.clonedeep-2f114c62.js";/* empty css */import{_ as x}from"./_plugin-vue_export-helper-c27b6911.js";import{a as S}from"./vue-router-ab2ba79f.js";import{f as b,k,ag as _,o as s,c as u,S as v,W as L,F as w,a7 as B,T as o,d as i,a as t,Y as r,ax as I,ay as q}from"./@vue-5dd246aa.js";import"./jspdf-28a20e90.js";import"./@babel-5a4b8c9a.js";import"./fflate-8981c52c.js";import"./tools-0351b48a.js";import"./pinia-6e226388.js";import"./vue-demi-71ba0ef2.js";import"./axios-46f5fd04.js";import"./form-data-d2a9677b.js";import"./element-plus-a215fcb5.js";import"./lodash-es-b9271f86.js";import"./@vueuse-77cc1d99.js";import"./@element-plus-ba666efa.js";import"./@popperjs-c75af06c.js";import"./@ctrl-1c80e935.js";import"./dayjs-88f1e3c5.js";import"./core-js-c6c47c20.js";import"./async-validator-a1293421.js";import"./memoize-one-297ddbcb.js";import"./escape-html-1d60d822.js";import"./normalize-wheel-es-ed76fb12.js";import"./@floating-ui-f831ca66.js";import"./js-cookie-40e39767.js";const p=e=>(I("data-v-16a0ab5c"),e=e(),q(),e),C={class:"tab-content"},N={class:"item-container"},T=p(()=>t("div",null,"处理人:",-1)),V={class:"item-container"},D=p(()=>t("div",null,"处理时间:",-1)),F={class:"item-container"},$=p(()=>t("div",null,"处理状态:",-1)),A={class:"item-container"},E=p(()=>t("div",null,"处理意见:",-1)),M={__name:"Log",setup(e){const d=S(),c=b([]),h=()=>{let m={edit:"personnel",change:"change",approve:"personnel",approve_change:"change"};y.get(`/api/alteration/audtiLog?id=${d.query.id}&personnelType=${m[d.query.type]}`).then(l=>{l.code===200&&(c.value=l.data)})};return k(()=>{h()}),(m,l)=>{const g=_("el-empty"),a=_("el-col"),f=_("el-row");return s(),u("div",C,[c.value.length===0?(s(),v(g,{key:0,description:"暂无"})):L("",!0),(s(!0),u(w,null,B(c.value,n=>(s(),v(f,null,{default:o(()=>[i(a,{span:8},{default:o(()=>[t("div",N,[T,t("div",null,r(n.approver),1)])]),_:2},1024),i(a,{span:8},{default:o(()=>[t("div",V,[D,t("div",null,r(n.createdAt),1)])]),_:2},1024),i(a,{span:8},{default:o(()=>[t("div",F,[$,t("div",null,r(n.auditState),1)])]),_:2},1024),i(a,{span:24},{default:o(()=>[t("div",A,[E,t("div",null,r(n.opinion),1)])]),_:2},1024)]),_:2},1024))),256))])}}},mt=x(M,[["__scopeId","data-v-16a0ab5c"]]);export{mt as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{_}from"./TableBody-da51fba3.js";import{h as c}from"./index-d94cb721.js";import{u as D}from"./vue-router-ab2ba79f.js";import w from"./FoodDialog-fb8ce9a6.js";import{t as x}from"./tools-0351b48a.js";import{E as m}from"./element-plus-a215fcb5.js";import{f as i,a1 as R,k as B,o as H,c as I,d as p,Q as L}from"./@vue-5dd246aa.js";import"./_plugin-vue_export-helper-c27b6911.js";import"./@element-plus-ba666efa.js";import"./jspdf-28a20e90.js";import"./@babel-5a4b8c9a.js";import"./fflate-8981c52c.js";import"./pinia-6e226388.js";import"./vue-demi-71ba0ef2.js";import"./axios-46f5fd04.js";import"./form-data-d2a9677b.js";import"./js-cookie-40e39767.js";import"./lodash.clonedeep-2f114c62.js";import"./core-js-c6c47c20.js";/* empty css */import"./lodash-es-b9271f86.js";import"./@vueuse-77cc1d99.js";import"./@popperjs-c75af06c.js";import"./@ctrl-1c80e935.js";import"./dayjs-88f1e3c5.js";import"./async-validator-a1293421.js";import"./memoize-one-297ddbcb.js";import"./escape-html-1d60d822.js";import"./normalize-wheel-es-ed76fb12.js";import"./@floating-ui-f831ca66.js";const P={class:"example"},ce={__name:"Manage",setup(N){const d=x.data.get("identity");D();const s=i(),u=i(),t=R({tableType:{selection:!0,tableLoading:!1,tableIndex:!1,changeHeight:302},tableHeader:[{buttons:[{type:"custom",name:"create",title:"新增",icon:"Plus",isOpen:"custom",disabled:!1,permission:"gxcc:lskcgl:create"},{type:"custom",name:"customCK",title:"出库",icon:"Upload",isOpen:"single",permission:"gxcc:lskcgl:ck"},{type:"custom",name:"customRK",title:"入库",icon:"Download",isOpen:"single",permission:"gxcc:lskcgl:rk"},{type:"custom",name:"check",title:"查看",icon:"View",isOpen:"single",permission:"gxcc:lskcgl:check"},{type:"popconfirm",name:"customDelete",title:"删除",icon:"Delete",isOpen:"single",permission:"gxcc:lskcgl:delete"}]},{buttons:[{name:"sort",options:[{label:"创建时间",value:"createdAt"},{label:"更新时间",value:"updatedAt"}]},"search"]}],tableList:[{name:"deptName",label:"粮仓类型",show:!0},{name:"foodTypeName",label:"粮食类型",show:!0},{name:"amount",label:"库存",show:!0},{name:"createdName",label:"创建人",show:!0},{name:"createdAt",label:"创建时间",show:!0},{name:"updatedName",label:"更新人",show:!0},{name:"updatedAt",label:"更新时间",show:!0}],tableData:[],pagination:{pageSize:10,current:1,total:0}}),g={current:t.pagination.current,size:t.pagination.pageSize,column:void 0,orderBy:void 0,value:void 0},o=i({...g}),n=()=>{t.tableType.tableLoading=!0,c.get("/api/foodReserves/page",o.value).then(e=>{e.code==200&&(t.tableData=e.data.records,t.tableType.tableLoading=!1,t.pagination.total=e.data.total)}).catch(()=>{t.tableType.tableLoading=!1})},f=({type:e,data:a})=>{switch(e){case"create":T();break;case"check":h(a);break;case"customCK":r(a,"ck");break;case"customRK":r(a,"rk");break;case"sort":v(a);break;case"search":y(a);break;case"customDelete":k(a);break}},b=e=>{t.pagination.current=e,o.value.current=e,n()},h=e=>{const a=e[0].id;s.value.changeDialog("check",a)},k=e=>{let a={deptId:d.isLeader?e[0].deptId:void 0,foodTypeId:e[0].foodTypeId,operationType:"delete",amount:0};c.post("/api/foodReserves/operation",a).then(l=>{l.code==200?(m({message:"删除成功",type:"success"}),n()):m({message:l.message,type:"success"})})},y=e=>{o.value.value=e.value,n()},v=e=>{e.name===""?(o.value.orderBy=void 0,o.value.column=void 0):(o.value.orderBy=e.sortType,o.value.column=e.name),n()},T=()=>{s.value.changeDialog("create")},r=(e,a)=>{const l=e[0].id;s.value.changeDialog(a,l)};return B(()=>{n()}),(e,a)=>(H(),I("div",P,[p(_,L(t,{onHandleTableHeader:f,onHandleTablePagination:b,ref_key:"TableBodyRef",ref:u}),null,16),p(w,{ref_key:"formDialog",ref:s,onInit:n},null,512)]))}};export{ce as default};

View File

@ -0,0 +1 @@
System.register(["./TableBody-legacy-b718e460.js","./index-legacy-e532f47e.js","./vue-router-legacy-1e8e1d15.js","./FoodDialog-legacy-35afa1c0.js","./tools-legacy-fa9cbc87.js","./element-plus-legacy-efe0366d.js","./@vue-legacy-4de3d5b5.js","./_plugin-vue_export-helper-legacy-762b7923.js","./@element-plus-legacy-bb874362.js","./jspdf-legacy-62dde53b.js","./@babel-legacy-633f46ed.js","./fflate-legacy-e1443086.js","./pinia-legacy-99326f0e.js","./vue-demi-legacy-97cfbb01.js","./axios-legacy-6abb032a.js","./form-data-legacy-f3fd8c46.js","./js-cookie-legacy-c7672909.js","./lodash.clonedeep-legacy-81abd881.js","./core-js-legacy-b197ddf1.js","./Upload.vue_vue_type_style_index_0_scoped_f028b45f_lang-legacy-a9aadf4b.js","./lodash-es-legacy-19b348e6.js","./@vueuse-legacy-c8e81244.js","./@popperjs-legacy-16895e05.js","./@ctrl-legacy-79e027b8.js","./dayjs-legacy-b8c949e6.js","./async-validator-legacy-b9dd2ff7.js","./memoize-one-legacy-599ef04d.js","./escape-html-legacy-ae962a8c.js","./normalize-wheel-es-legacy-f7d8e481.js","./@floating-ui-legacy-212d790c.js"],(function(e,a){"use strict";var l,s,t,o,n,c,i,u,g,d,r,p,y;return{setters:[e=>{l=e._},e=>{s=e.h},e=>{t=e.u},e=>{o=e.default},e=>{n=e.t},e=>{c=e.E},e=>{i=e.f,u=e.a1,g=e.k,d=e.o,r=e.c,p=e.d,y=e.Q},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],execute:function(){const a={class:"example"};e("default",{__name:"Manage",setup(e){const m=n.data.get("identity");t();const b=i(),j=i(),v=u({tableType:{selection:!0,tableLoading:!1,tableIndex:!1,changeHeight:302},tableHeader:[{buttons:[{type:"custom",name:"create",title:"新增",icon:"Plus",isOpen:"custom",disabled:!1,permission:"gxcc:lskcgl:create"},{type:"custom",name:"customCK",title:"出库",icon:"Upload",isOpen:"single",permission:"gxcc:lskcgl:ck"},{type:"custom",name:"customRK",title:"入库",icon:"Download",isOpen:"single",permission:"gxcc:lskcgl:rk"},{type:"custom",name:"check",title:"查看",icon:"View",isOpen:"single",permission:"gxcc:lskcgl:check"},{type:"popconfirm",name:"customDelete",title:"删除",icon:"Delete",isOpen:"single",permission:"gxcc:lskcgl:delete"}]},{buttons:[{name:"sort",options:[{label:"创建时间",value:"createdAt"},{label:"更新时间",value:"updatedAt"}]},"search"]}],tableList:[{name:"deptName",label:"粮仓类型",show:!0},{name:"foodTypeName",label:"粮食类型",show:!0},{name:"amount",label:"库存",show:!0},{name:"createdName",label:"创建人",show:!0},{name:"createdAt",label:"创建时间",show:!0},{name:"updatedName",label:"更新人",show:!0},{name:"updatedAt",label:"更新时间",show:!0}],tableData:[],pagination:{pageSize:10,current:1,total:0}}),h={current:v.pagination.current,size:v.pagination.pageSize,column:void 0,orderBy:void 0,value:void 0},f=i({...h}),k=()=>{v.tableType.tableLoading=!0,s.get("/api/foodReserves/page",f.value).then((e=>{200==e.code&&(v.tableData=e.data.records,v.tableType.tableLoading=!1,v.pagination.total=e.data.total)})).catch((()=>{v.tableType.tableLoading=!1}))},_=({type:e,data:a})=>{switch(e){case"create":L();break;case"check":w(a);break;case"customCK":B(a,"ck");break;case"customRK":B(a,"rk");break;case"sort":I(a);break;case"search":D(a);break;case"customDelete":x(a)}},T=e=>{console.log(e),v.pagination.current=e,f.value.current=e,k()},w=e=>{const a=e[0].id;b.value.changeDialog("check",a)},x=e=>{console.log(e[0]);let a={deptId:m.isLeader?e[0].deptId:void 0,foodTypeId:e[0].foodTypeId,operationType:"delete",amount:0};s.post("/api/foodReserves/operation",a).then((e=>{200==e.code?(c({message:"删除成功",type:"success"}),k()):c({message:e.message,type:"success"})}))},D=e=>{console.log(e.value),f.value.value=e.value,k()},I=e=>{""===e.name?(f.value.orderBy=void 0,f.value.column=void 0):(f.value.orderBy=e.sortType,f.value.column=e.name),k()},L=()=>{b.value.changeDialog("create")},B=(e,a)=>{const l=e[0].id;b.value.changeDialog(a,l)};return g((()=>{k()})),(e,s)=>(d(),r("div",a,[p(l,y(v,{onHandleTableHeader:_,onHandleTablePagination:T,ref_key:"TableBodyRef",ref:j}),null,16),p(o,{ref_key:"formDialog",ref:b,onInit:k},null,512)]))}})}}}));

View File

@ -0,0 +1 @@
import{a1 as x,aq as E,o as r,c as d,a as o,a0 as f,U as c,Z as b,d as m,u as i,O as N,Y as v,aj as S,S as u,F as $,a7 as q}from"./@vue-5dd246aa.js";import z from"./NodeType-3e857c6f.js";import{r as B,t as L}from"./optionConfig-cdce2392.js";import{a as D}from"./approver-8c13d8a1.js";import{C as M,E as V,P as W,a as j}from"./@icon-park-904b8974.js";import"./pinia-6e226388.js";import"./vue-demi-71ba0ef2.js";const O={class:"y-flow-middle"},F={class:"y-flow-insert-wrapper"},P={class:"y-flow-insert"},T={key:0,class:"text"},U={class:"span"},R=o("div",{class:"y-flow-apply-list y-flow-head"},"节点负责人:",-1),Y={class:"person-list"},Z={class:"y-flow-line"},te={__name:"NodeItem",props:{parentNode:{type:Object,default:{}},nodeItem:{type:Object,default:{}}},emits:["addApprover","addCondition","removeApprover"],setup(y,{emit:a}){const e=y,l=D(),p=x({roleArray:B,typeArray:L,defaultRole:"未知",activeIndex:-1}),I=(s,t)=>{a("addApprover",e.nodeItem,t)},w=()=>{a("addCondition",e.nodeItem,"add")},k=()=>{a("removeApprover",e.nodeItem,e.parentNode)},h=(s,t)=>{s.titleEdit=t},_=(s,t)=>{s.title||(s.title="审批节点"),l.editTtitle(s.title),s.titleEdit=t},A=s=>{l.changeApprover(s),l.toggleApproverVisible(!0)};return(s,t)=>{const C=E("focus");return r(),d("div",O,[o("div",F,[o("div",P,[o("div",{class:"y-flow-node-wrapper",onMouseenter:t[4]||(t[4]=f(n=>p.activeIndex=e.nodeItem.nodeId,["self"])),onMouseleave:t[5]||(t[5]=f(n=>p.activeIndex=-1,["self"]))},[c(o("div",{class:"y-flow-node-del",onClick:k},[m(i(M),{theme:"outline",size:"20",fill:"#fff",strokeWidth:3,strokeLinecap:"square"})],512),[[b,e.nodeItem.nodeId==p.activeIndex]]),o("div",{class:"y-flow-node",onClick:t[3]||(t[3]=n=>A(e.nodeItem))},[o("div",{class:N(["y-flow-node-head",[e.nodeItem.type==="approver"?"y-flow-actual-approverbg":"y-flow-actual-fillbg"]])},[o("div",{class:"y-flow-node-title",onClick:t[2]||(t[2]=f(n=>h(e.nodeItem,!0),["stop"]))},[e.nodeItem.titleEdit?c((r(),d("input",{key:1,class:"y-input",type:"text","onUpdate:modelValue":t[0]||(t[0]=n=>e.nodeItem.title=n),onBlur:t[1]||(t[1]=n=>_(e.nodeItem,!1))},null,544)),[[S,e.nodeItem.title],[C]]):(r(),d("div",T,[o("span",U,v(e.nodeItem.title||e.nodeItem.name),1),m(i(V),{theme:"outline",size:"18",fill:"#fff",strokeWidth:3,strokeLinecap:"square"})]))]),e.nodeItem.type==="approver"?(r(),u(i(W),{key:0,theme:"outline",size:"18",fill:"#fff",strokeWidth:3,strokeLinecap:"square"})):(r(),u(i(j),{key:1,theme:"outline",size:"18",fill:"#fff",strokeWidth:3,strokeLinecap:"square"}))],2),R,o("div",Y,[(r(!0),d($,null,q(e.nodeItem.properties.persons,(n,g)=>(r(),d("div",{class:"person-add-item",key:g},v(n.realName),1))),128))])]),o("div",Z,[m(z,{branchItem:e.nodeItem,onAddApprover:I,onChangeCondition:w},null,8,["branchItem"])])],32)])])])}}};export{te as default};

View File

@ -0,0 +1 @@
System.register(["./@vue-legacy-4de3d5b5.js","./NodeType-legacy-7db78d73.js","./optionConfig-legacy-708250f5.js","./approver-legacy-55837739.js","./@icon-park-legacy-d73df4b1.js","./pinia-legacy-99326f0e.js","./vue-demi-legacy-97cfbb01.js"],(function(e,t){"use strict";var o,l,n,d,a,i,s,r,p,c,f,u,v,m,y,I,k,g,w,h,j,A,C,b;return{setters:[e=>{o=e.a1,l=e.aq,n=e.o,d=e.c,a=e.a,i=e.a0,s=e.U,r=e.Z,p=e.d,c=e.u,f=e.O,u=e.Y,v=e.aj,m=e.S,y=e.F,I=e.a7},e=>{k=e.default},e=>{g=e.r,w=e.t},e=>{h=e.a},e=>{j=e.C,A=e.E,C=e.P,b=e.a},null,null],execute:function(){const t={class:"y-flow-middle"},x={class:"y-flow-insert-wrapper"},q={class:"y-flow-insert"},N={key:0,class:"text"},z={class:"span"},E=a("div",{class:"y-flow-apply-list y-flow-head"},"节点负责人:",-1),L={class:"person-list"},W={class:"y-flow-line"};e("default",{__name:"NodeItem",props:{parentNode:{type:Object,default:{}},nodeItem:{type:Object,default:{}}},emits:["addApprover","addCondition","removeApprover"],setup(e,{emit:O}){const B=e,M=h(),S=o({roleArray:g,typeArray:w,defaultRole:"未知",activeIndex:-1}),T=(e,t)=>{O("addApprover",B.nodeItem,t)},U=()=>{O("addCondition",B.nodeItem,"add")},V=()=>{O("removeApprover",B.nodeItem,B.parentNode)};return(e,o)=>{const g=l("focus");return n(),d("div",t,[a("div",x,[a("div",q,[a("div",{class:"y-flow-node-wrapper",onMouseenter:o[4]||(o[4]=i((e=>S.activeIndex=B.nodeItem.nodeId),["self"])),onMouseleave:o[5]||(o[5]=i((e=>S.activeIndex=-1),["self"]))},[s(a("div",{class:"y-flow-node-del",onClick:V},[p(c(j),{theme:"outline",size:"20",fill:"#fff",strokeWidth:3,strokeLinecap:"square"})],512),[[r,B.nodeItem.nodeId==S.activeIndex]]),a("div",{class:"y-flow-node",onClick:o[3]||(o[3]=e=>{return t=B.nodeItem,M.changeApprover(t),void M.toggleApproverVisible(!0);var t})},[a("div",{class:f(["y-flow-node-head",["approver"===B.nodeItem.type?"y-flow-actual-approverbg":"y-flow-actual-fillbg"]])},[a("div",{class:"y-flow-node-title",onClick:o[2]||(o[2]=i((e=>{return t=B.nodeItem,o=!0,void(t.titleEdit=o);var t,o}),["stop"]))},[B.nodeItem.titleEdit?s((n(),d("input",{key:1,class:"y-input",type:"text","onUpdate:modelValue":o[0]||(o[0]=e=>B.nodeItem.title=e),onBlur:o[1]||(o[1]=e=>{return t=B.nodeItem,o=!1,t.title||(t.title="审批节点"),M.editTtitle(t.title),void(t.titleEdit=o);var t,o})},null,544)),[[v,B.nodeItem.title],[g]]):(n(),d("div",N,[a("span",z,u(B.nodeItem.title||B.nodeItem.name),1),p(c(A),{theme:"outline",size:"18",fill:"#fff",strokeWidth:3,strokeLinecap:"square"})]))]),"approver"===B.nodeItem.type?(n(),m(c(C),{key:0,theme:"outline",size:"18",fill:"#fff",strokeWidth:3,strokeLinecap:"square"})):(n(),m(c(b),{key:1,theme:"outline",size:"18",fill:"#fff",strokeWidth:3,strokeLinecap:"square"}))],2),E,a("div",L,[(n(!0),d(y,null,I(B.nodeItem.properties.persons,((e,t)=>(n(),d("div",{class:"person-add-item",key:t},u(e.realName),1)))),128))])]),a("div",W,[p(k,{branchItem:B.nodeItem,onAddApprover:T,onChangeCondition:U},null,8,["branchItem"])])],32)])])])}}})}}}));

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{b as h,c as v,d as u,B as k}from"./@icon-park-904b8974.js";import{f as l,ag as b,o as C,S as g,T as d,a as e,d as t,u as o}from"./@vue-5dd246aa.js";const w={class:"y-flow-select"},y={class:"item-icon"},B=e("p",{class:"item-des"},"审批节点",-1),q={class:"item-icon"},x=e("p",{class:"item-des"},"填写节点",-1),z={class:"item-icon"},L=e("p",{class:"item-des"},"条件分支",-1),N={class:"add-btn"},A={__name:"NodeType",props:{branchItem:{type:Object,default:{}}},emits:["addApprover","changeCondition"],setup(p,{emit:i}){const n=p;l(!1);const a=l(),r=c=>{a.value.hide(),i("addApprover",n.branchItem,c)},_=()=>{a.value.hide(),i("changeCondition",n.branchItem,"add")};return(c,s)=>{const f=b("el-popover");return C(),g(f,{placement:"top-start",width:250,trigger:"click",title:"标题",ref_key:"popoverRef",ref:a},{reference:d(()=>[e("span",N,[t(o(h),{theme:"filled",size:"16",fill:"#f5bc21",strokeWidth:3,strokeLinecap:"square"})])]),default:d(()=>[e("div",w,[e("div",{class:"item-wrapper",onClick:s[0]||(s[0]=m=>r("approver"))},[e("span",y,[t(o(v),{theme:"filled",size:"30",fill:"#3296fa",strokeWidth:3,strokeLinecap:"square"})]),B]),e("div",{class:"item-wrapper",onClick:s[1]||(s[1]=m=>r("fill"))},[e("span",q,[t(o(u),{theme:"filled",size:"30",fill:"#324963",strokeWidth:3,strokeLinecap:"square"})]),x]),e("div",{class:"item-wrapper",onClick:_},[e("span",z,[t(o(k),{theme:"filled",size:"30",fill:"#15bc83",strokeWidth:3,strokeLinecap:"square"})]),L])])]),_:1},512)}}};export{A as default};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{_ as D}from"./index-0d322254.js";import O from"./Upload-c13f33ad.js";import{U as $}from"./index-2c244364.js";import h from"./DetailDialog-eed7b694.js";import{u as B,a as J}from"./vue-router-ab2ba79f.js";import{h as g}from"./index-d94cb721.js";import{_ as P}from"./_plugin-vue_export-helper-c27b6911.js";import{E as p}from"./element-plus-a215fcb5.js";import{l as y,f as n,k as R,ag as f,o as F,c as A,d as a,a as c,T as u,S as E,W as M,X as b,ax as T,ay as j}from"./@vue-5dd246aa.js";import"./@wangeditor-61a2cfac.js";import"./lodash.clonedeep-2f114c62.js";import"./core-js-c6c47c20.js";/* empty css */import"./jspdf-28a20e90.js";import"./@babel-5a4b8c9a.js";import"./fflate-8981c52c.js";import"./tools-0351b48a.js";import"./pinia-6e226388.js";import"./vue-demi-71ba0ef2.js";import"./axios-46f5fd04.js";import"./form-data-d2a9677b.js";import"./lodash-es-b9271f86.js";import"./@vueuse-77cc1d99.js";import"./@element-plus-ba666efa.js";import"./@popperjs-c75af06c.js";import"./@ctrl-1c80e935.js";import"./dayjs-88f1e3c5.js";import"./async-validator-a1293421.js";import"./memoize-one-297ddbcb.js";import"./escape-html-1d60d822.js";import"./normalize-wheel-es-ed76fb12.js";import"./@floating-ui-f831ca66.js";import"./js-cookie-40e39767.js";/* empty css */const q=d=>(T("data-v-73897fbf"),d=d(),j(),d),W={class:"card"},X=q(()=>c("div",{class:"line"},null,-1)),z={class:"page-content"},G=q(()=>c("p",{class:"page-content-title"},"通知新增",-1)),H={class:"bottom-item"},K={__name:"PageForm",setup(d){const w=B(),r=J();y(()=>!["create","edit"].includes(r.query.type)),y(()=>r.query.type==="create"),y(()=>r.query.type==="edit");const I=n(),t=n({userIds:[],content:"",files:[],title:""}),U=n({title:[{required:!0,message:"请输入",trigger:"blur"}]}),v=n(!1),V=n({}),N=()=>{v.value=!0,V.value={...t.value}},k=()=>{w.go(-1)},S=async i=>{i&&await i.validate(async(e,m)=>{if(e){if(!t.value.content)return p.warning("请填写通知内容");let o={...t.value,files:JSON.stringify(t.value.files),userIds:JSON.stringify(t.value.userIds)};if(r.query.type==="create"){let s=await g.post("/api/notice/save",o);s.code==200?(p({message:s.message,type:"success"}),k()):p.error(s.message)}else if(r.query.type==="edit"){let s=await g.put(`/api/notice/edit?id=${r.query.id}`,o);s.code==200?(p({message:s.message,type:"success"}),k()):p.error(s.message)}}})},_=n(!1),x=()=>{var i,e;if(((i=r.query)==null?void 0:i.type)==="check"||((e=r.query)==null?void 0:e.type)==="edit"){let m=r.query.id;g.get(`/api/notice/detail?id=${m}`).then(o=>{o.code==200&&(t.value={userIds:JSON.parse(o.data.userIds),content:o.data.content,files:JSON.parse(o.data.files),title:o.data.title,updatedAt:o.data.updatedAt},_.value=!0)})}else _.value=!0};return R(()=>{x()}),(i,e)=>{const m=f("el-input"),o=f("el-form-item"),s=f("el-button"),C=f("el-form");return F(),A("div",W,[a(D,{height:"60vh",value:t.value.content,"onUpdate:value":e[0]||(e[0]=l=>t.value.content=l)},null,8,["value"]),X,c("div",z,[G,a(C,{ref_key:"ruleFormRef",ref:I,"label-position":"top",model:t.value,rules:U.value,"label-width":"120px","status-icon":""},{default:u(()=>[a(o,{label:"标题",prop:"title"},{default:u(()=>[a(m,{modelValue:t.value.title,"onUpdate:modelValue":e[1]||(e[1]=l=>t.value.title=l)},null,8,["modelValue"])]),_:1}),a(o,{label:"接收人:不选默认全体",prop:"userIds"},{default:u(()=>[_.value?(F(),E($,{key:0,userIds:t.value.userIds,"onUpdate:userIds":e[2]||(e[2]=l=>t.value.userIds=l)},null,8,["userIds"])):M("",!0)]),_:1}),a(o,{label:"附件",prop:"files"},{default:u(()=>[a(O,{modelValue:t.value.files,"onUpdate:modelValue":e[3]||(e[3]=l=>t.value.files=l),type:"create",disabled:!1},null,8,["modelValue"])]),_:1}),c("div",H,[a(s,{type:"primary",onClick:N},{default:u(()=>[b(" 预览内容 ")]),_:1}),a(s,{type:"primary",onClick:e[4]||(e[4]=l=>S(I.value))},{default:u(()=>[b(" 保存 ")]),_:1}),a(s,{onClick:e[5]||(e[5]=l=>i.$router.back())},{default:u(()=>[b(" 返回 ")]),_:1})])]),_:1},8,["model","rules"])]),a(h,{dialogVisible:v.value,"onUpdate:dialogVisible":e[6]||(e[6]=l=>v.value=l),dialogData:V.value},null,8,["dialogVisible","dialogData"])])}}},Ce=P(K,[["__scopeId","data-v-73897fbf"]]);export{Ce as default};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{_ as P}from"./index-0d322254.js";import S from"./Upload-c13f33ad.js";import{u as U,a as I}from"./vue-router-ab2ba79f.js";import{h as g}from"./index-d94cb721.js";/* empty css */import{_ as R}from"./_plugin-vue_export-helper-c27b6911.js";import B from"./DetailDialog-eed7b694.js";import{E as u}from"./element-plus-a215fcb5.js";import{l as y,f as p,k as A,ag as c,o as E,c as J,d as a,u as b,a as f,T as n,X as V,ax as M,ay as O}from"./@vue-5dd246aa.js";import"./@wangeditor-61a2cfac.js";import"./lodash.clonedeep-2f114c62.js";import"./core-js-c6c47c20.js";/* empty css */import"./jspdf-28a20e90.js";import"./@babel-5a4b8c9a.js";import"./fflate-8981c52c.js";import"./tools-0351b48a.js";import"./pinia-6e226388.js";import"./vue-demi-71ba0ef2.js";import"./axios-46f5fd04.js";import"./form-data-d2a9677b.js";import"./lodash-es-b9271f86.js";import"./@vueuse-77cc1d99.js";import"./@element-plus-ba666efa.js";import"./@popperjs-c75af06c.js";import"./@ctrl-1c80e935.js";import"./dayjs-88f1e3c5.js";import"./async-validator-a1293421.js";import"./memoize-one-297ddbcb.js";import"./escape-html-1d60d822.js";import"./normalize-wheel-es-ed76fb12.js";import"./@floating-ui-f831ca66.js";import"./js-cookie-40e39767.js";const w=d=>(M("data-v-0e5e611e"),d=d(),O(),d),T={class:"card"},j=w(()=>f("div",{class:"line"},null,-1)),X={class:"page-content"},z=w(()=>f("p",{class:"page-content-title"},"制度新增",-1)),G={class:"bottom-item"},H={__name:"PageForm",setup(d){const x=U(),i=I(),_=y(()=>!["create","edit"].includes(i.query.type));y(()=>i.query.type==="create"),y(()=>i.query.type==="edit");const F=p(),t=p({content:"",files:[],title:""}),D=p({title:[{required:!0,message:"请输入",trigger:"blur"}]}),v=p(!1),q=p({}),h=()=>{v.value=!0,q.value={...t.value}},k=()=>{x.go(-1)},$=async r=>{r&&await r.validate(async(e,m)=>{if(e){if(!t.value.content)return u.warning("请填写内容");let o={...t.value,files:JSON.stringify(t.value.files)};if(i.query.type==="create"){let l=await g.post("/api/institution/save",o);l.code==200?(u({message:l.message,type:"success"}),k()):u.error(l.message)}else if(i.query.type==="edit"){let l=await g.put(`/api/institution/edit?id=${i.query.id}`,o);l.code==200?(u({message:l.message,type:"success"}),k()):u.error(l.message)}}})},C=()=>{var r,e;if(((r=i.query)==null?void 0:r.type)==="check"||((e=i.query)==null?void 0:e.type)==="edit"){let m=i.query.id;g.get(`/api/institution/detail?id=${m}`).then(o=>{o.code==200&&(t.value={content:o.data.content,files:JSON.parse(o.data.files),title:o.data.title,updatedAt:o.data.updatedAt})})}};return A(()=>{C()}),(r,e)=>{const m=c("el-input"),o=c("el-form-item"),l=c("el-button"),N=c("el-form");return E(),J("div",T,[a(P,{height:"60vh",value:t.value.content,"onUpdate:value":e[0]||(e[0]=s=>t.value.content=s),disabled:b(_)},null,8,["value","disabled"]),j,f("div",X,[z,a(N,{ref_key:"ruleFormRef",ref:F,"label-position":"top",model:t.value,rules:D.value,"label-width":"120px",disabled:b(_),"status-icon":""},{default:n(()=>[a(o,{label:"标题",prop:"title"},{default:n(()=>[a(m,{modelValue:t.value.title,"onUpdate:modelValue":e[1]||(e[1]=s=>t.value.title=s)},null,8,["modelValue"])]),_:1}),a(o,{label:"附件",prop:"files"},{default:n(()=>[a(S,{modelValue:t.value.files,"onUpdate:modelValue":e[2]||(e[2]=s=>t.value.files=s),type:"create",disabled:b(_)},null,8,["modelValue","disabled"])]),_:1}),f("div",G,[a(l,{type:"primary",onClick:h},{default:n(()=>[V(" 预览内容 ")]),_:1}),a(l,{type:"primary",onClick:e[3]||(e[3]=s=>$(F.value))},{default:n(()=>[V(" 保存 ")]),_:1}),a(l,{onClick:e[4]||(e[4]=s=>r.$router.back())},{default:n(()=>[V(" 返回 ")]),_:1})])]),_:1},8,["model","rules","disabled"])]),a(B,{dialogVisible:v.value,"onUpdate:dialogVisible":e[5]||(e[5]=s=>v.value=s),dialogData:q.value},null,8,["dialogVisible","dialogData"])])}}},he=R(H,[["__scopeId","data-v-0e5e611e"]]);export{he as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{_ as R}from"./TableBody-da51fba3.js";import{h as m}from"./index-d94cb721.js";import C from"./FoodDialog-fb8ce9a6.js";import{t as D}from"./tools-0351b48a.js";import{f as r,a1 as N,k as I,ag as i,o as s,c as p,d,T as b,u as P,S as f,W as S,F as A,a7 as z,Q as F}from"./@vue-5dd246aa.js";import"./_plugin-vue_export-helper-c27b6911.js";import"./element-plus-a215fcb5.js";import"./lodash-es-b9271f86.js";import"./@vueuse-77cc1d99.js";import"./@element-plus-ba666efa.js";import"./@popperjs-c75af06c.js";import"./@ctrl-1c80e935.js";import"./dayjs-88f1e3c5.js";import"./core-js-c6c47c20.js";import"./async-validator-a1293421.js";import"./memoize-one-297ddbcb.js";import"./escape-html-1d60d822.js";import"./normalize-wheel-es-ed76fb12.js";import"./@floating-ui-f831ca66.js";import"./jspdf-28a20e90.js";import"./@babel-5a4b8c9a.js";import"./fflate-8981c52c.js";import"./vue-router-ab2ba79f.js";import"./pinia-6e226388.js";import"./vue-demi-71ba0ef2.js";import"./axios-46f5fd04.js";import"./form-data-d2a9677b.js";import"./js-cookie-40e39767.js";import"./lodash.clonedeep-2f114c62.js";/* empty css */const q={class:"example"},ve={__name:"Record",setup(U){const g=D.data.get("identity"),u=r(),h=r(),o=N({tableType:{selection:!0,tableLoading:!1,tableIndex:!1,changeHeight:302},tableHeader:[{buttons:[]},{buttons:[{name:"sort",options:[{label:"创建时间",value:"createdAt"},{label:"更新时间",value:"updatedAt"}]},"search"]}],tableList:[{name:"deptName",label:"粮仓类型",show:!0},{name:"foodTypeName",label:"粮食类型",show:!0},{name:"type",label:"操作",show:!0},{name:"amount",label:"变更库存",show:!0},{name:"createdName",label:"创建人",show:!0},{name:"createdAt",label:"创建时间",show:!0},{name:"updatedName",label:"更新人",show:!0},{name:"updatedAt",label:"更新时间",show:!0}],tableData:[],pagination:{pageSize:10,current:1,total:0}}),v={current:o.pagination.current,size:o.pagination.pageSize,column:void 0,orderBy:void 0,value:void 0,type:void 0,deptId:void 0},a=r({...v}),l=()=>{o.tableType.tableLoading=!0,m.get("/api/foodReservesLog/page",a.value).then(e=>{e.code==200&&(o.tableData=e.data.records,o.tableType.tableLoading=!1,o.pagination.total=e.data.total)}).catch(()=>{o.tableType.tableLoading=!1})},_=({type:e,data:t})=>{switch(e){case"check":k(t);break;case"sort":w(t);break;case"search":T(t);break}},y=e=>{o.pagination.current=e,a.value.current=e,l()},k=e=>{const t=e[0].id;u.value.changeDialog("check",t)},T=e=>{a.value.value=e.value,l()},w=e=>{e.name===""?(a.value.orderBy=void 0,a.value.column=void 0):(a.value.orderBy=e.sortType,a.value.column=e.name),l()},B=r([{name:"新增",value:"add"},{name:"删除",value:"delete"},{name:"入库",value:"warehousing"},{name:"出库",value:"out_of_stock"}]),c=r([]),L=()=>{m.get("/api/dept/tree").then(e=>{e.code==200&&(c.value=e.data.data)})};return I(()=>{l(),L()}),(e,t)=>{const V=i("el-tree-select"),x=i("el-option"),H=i("el-select");return s(),p("div",q,[d(R,F(o,{onHandleTableHeader:_,onHandleTablePagination:y,ref_key:"TableBodyRef",ref:h}),{TableHeaderRight:b(({selectData:E})=>[P(g).isLeader?(s(),f(V,{key:0,modelValue:a.value.deptId,"onUpdate:modelValue":t[0]||(t[0]=n=>a.value.deptId=n),data:c.value,clearable:"","check-strictly":"",placeholder:"请选择粮仓类型","render-after-expand":!1,class:"status-select",onChange:l},null,8,["modelValue","data"])):S("",!0),d(H,{modelValue:a.value.type,"onUpdate:modelValue":t[1]||(t[1]=n=>a.value.type=n),placeholder:"请选择操作类型",onChange:l,clearable:"",class:"status-select"},{default:b(()=>[(s(!0),p(A,null,z(B.value,n=>(s(),f(x,{key:n.value,label:n.name,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1},16),d(C,{ref_key:"formDialog",ref:u,onInit:l},null,512)])}}};export{ve as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{h as i}from"./index-d94cb721.js";import{a as c}from"./vue-router-ab2ba79f.js";import{_ as m}from"./_plugin-vue_export-helper-c27b6911.js";import{f as s,ag as l,o as _,c as d,d as t,T as h}from"./@vue-5dd246aa.js";import"./jspdf-28a20e90.js";import"./@babel-5a4b8c9a.js";import"./fflate-8981c52c.js";import"./tools-0351b48a.js";import"./pinia-6e226388.js";import"./vue-demi-71ba0ef2.js";import"./axios-46f5fd04.js";import"./form-data-d2a9677b.js";import"./element-plus-a215fcb5.js";import"./lodash-es-b9271f86.js";import"./@vueuse-77cc1d99.js";import"./@element-plus-ba666efa.js";import"./@popperjs-c75af06c.js";import"./@ctrl-1c80e935.js";import"./dayjs-88f1e3c5.js";import"./core-js-c6c47c20.js";import"./async-validator-a1293421.js";import"./memoize-one-297ddbcb.js";import"./escape-html-1d60d822.js";import"./normalize-wheel-es-ed76fb12.js";import"./@floating-ui-f831ca66.js";import"./js-cookie-40e39767.js";const u={class:"tab-content"},b={__name:"Record",setup(f){const o=c(),a=s([]);return(()=>{let r=o.query.id,p={edit:"personnel",change:"change",approve:"personnel",approve_change:"change"};i.get(`/api/alteration/alterationPage?id=${r}&personnelType=${p[o.query.type]}`).then(e=>{e.code==200&&(a.value=e.data)})})(),(r,p)=>{const e=l("el-table-column"),n=l("el-table");return _(),d("div",u,[t(n,{data:a.value,style:{width:"100%"},"header-cell-style":{background:"#EEF1F4"}},{default:h(()=>[t(e,{type:"index",width:"80",align:"center",label:"序号"}),t(e,{prop:"details",label:"变更内容"}),t(e,{prop:"beforeChange",label:"变更前"}),t(e,{prop:"afterChange",label:"变更后"}),t(e,{prop:"createdName",label:"变更人"}),t(e,{prop:"createdAt",label:"变更时间"})]),_:1},8,["data"])])}}},L=m(b,[["__scopeId","data-v-cd583a47"]]);export{L as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{E as C}from"./jspdf-28a20e90.js";import{h as N}from"./@nidi-d5f71d77.js";import{f as y,h as R,ag as m,o as g,S as k,T as o,a as L,d as e,X as V,c as w,F as P,W as D,M as A,Y as v}from"./@vue-5dd246aa.js";function q(d,_,t){return new Promise(function(n,s){document.querySelector(`#${d}`).classList.add("derive"),N(document.querySelector(`#${d}`),{allowTaint:!1,taintTest:!1,logging:!1,useCORS:!0,dpi:window.devicePixelRatio*4,scale:4}).then(a=>{for(var p=new C(t,"mm","a4"),u=a.getContext("2d"),r=t=="p"?190:272,f=t=="p"?272:190,l=Math.floor(f*a.width/r),i=0;i<a.height;){var c=document.createElement("canvas");c.width=a.width,c.height=Math.min(l,a.height-i),c.getContext("2d").putImageData(u.getImageData(0,i,a.width,Math.min(l,a.height-i)),0,0),p.addImage(c.toDataURL("image/jpeg",1),"JPEG",10,10,r,Math.min(f,r*c.height/c.width)),i+=l,i<a.height&&p.addPage()}p.save(_+".pdf"),document.querySelector(`#${d}`).classList.remove("derive"),n()})})}const E={class:"dialog-footer"},F={__name:"ReportDialog",props:{ReportDialogData:{type:Object,default:()=>({title:"审批",type:"approve",data:{}})},modelValue:{}},emits:["update:modelValue","handleApprove"],setup(d,{emit:_}){const t=d,n=y(!1),s=y({}),a=()=>{n.value=!1,_("update:modelValue",!1)},p=()=>{_("handleApprove",s.value),a()};return R(()=>t.modelValue,u=>{t.modelValue&&(n.value=t.modelValue,t.ReportDialogData.type=="custom"?s.value=t.ReportDialogData.data:t.ReportDialogData.type=="approve"&&(s.value={status:"PASS"}))}),(u,r)=>{const f=m("el-input"),l=m("el-form-item"),i=m("el-radio"),c=m("el-radio-group"),S=m("el-form"),b=m("el-button"),x=m("el-dialog");return g(),k(x,{modelValue:n.value,"onUpdate:modelValue":r[2]||(r[2]=h=>n.value=h),title:"审批",width:"26%","before-close":a},{footer:o(()=>[L("span",E,[e(b,{onClick:a},{default:o(()=>[V("取消")]),_:1}),e(b,{type:"primary",onClick:p},{default:o(()=>[V(" 确认 ")]),_:1})])]),default:o(()=>[e(S,{model:s.value},{default:o(()=>[d.ReportDialogData.type=="approve"?(g(),w(P,{key:0},[e(l,{label:"审批意见"},{default:o(()=>[e(f,{modelValue:s.value.remarks,"onUpdate:modelValue":r[0]||(r[0]=h=>s.value.remarks=h),rows:4,type:"textarea"},null,8,["modelValue"])]),_:1}),e(l,{label:"审批状态"},{default:o(()=>[e(c,{modelValue:s.value.status,"onUpdate:modelValue":r[1]||(r[1]=h=>s.value.status=h)},{default:o(()=>[e(i,{label:"PASS"},{default:o(()=>[V("同意")]),_:1}),e(i,{label:"REFUSE"},{default:o(()=>[V("拒绝")]),_:1})]),_:1},8,["modelValue"])]),_:1})],64)):D("",!0),d.ReportDialogData.type=="custom"?A(u.$slots,"default",{key:1}):D("",!0)]),_:3},8,["model"])]),_:3},8,["modelValue"])}}};const U={key:0,style:{color:"#67c23a"}},$={key:1,style:{color:"#f56c6c"}},M={key:2},I={__name:"ReportLog",props:{ReportLogData:{type:Array,default:()=>[]},modelValue:{}},emits:["update:modelValue"],setup(d,{emit:_}){const t=d,n=y(!1),s=()=>{n.value=!1,_("update:modelValue",!1)};return R(()=>t.modelValue,a=>{t.modelValue&&(n.value=t.modelValue)}),(a,p)=>{const u=m("el-table-column"),r=m("el-table"),f=m("el-drawer");return g(),k(f,{modelValue:n.value,"onUpdate:modelValue":p[0]||(p[0]=l=>n.value=l),title:"日志","before-close":s,class:"report-drawer"},{default:o(()=>[e(r,{data:d.ReportLogData,stripe:"",border:"",style:{width:"100%"}},{default:o(()=>[e(u,{type:"index",width:"50"}),e(u,{prop:"createdName",label:"操作人"}),e(u,{prop:"createdAt",label:"时间"}),e(u,{label:"状态"},{default:o(l=>[l.row.statusName=="通过"?(g(),w("span",U,v(l.row.statusName),1)):l.row.statusName=="驳回"?(g(),w("span",$,v(l.row.statusName),1)):(g(),w("span",M,v(l.row.statusName),1))]),_:1}),e(u,{prop:"remarks",label:"建议"})]),_:1},8,["data"])]),_:1},8,["modelValue"])}}};export{F as _,I as a,q as h};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import"./index-d94cb721.js";import"./lodash.clonedeep-2f114c62.js";/* empty css */import{_ as d}from"./_plugin-vue_export-helper-c27b6911.js";/* empty css */import{l as _,o as s,c as n,a as i,F as u,a7 as m,M as p,P as v,u as f,O as b,Y as y}from"./@vue-5dd246aa.js";const h={class:"entDeclaration"},k={class:"entDeclaration-nav"},g=["onClick"],x={class:"entDeclaration-main"},A={__name:"Tab",props:{tabList:{type:Array,required:!0,default:()=>[]},isActive:{type:String,default:""}},emits:["clickItem"],setup(t,{emit:o}){const r=t,c=_(()=>e=>r.tabList.length-e);return(e,D)=>(s(),n("section",h,[i("nav",k,[(s(!0),n(u,null,m(t.tabList,(a,l)=>(s(),n("div",{style:v({zIndex:f(c)(l)}),class:b(["entDeclaration-nav-item",t.isActive===a?"active":""]),onClick:I=>o("clickItem",a)},y(a),15,g))),256))]),i("main",x,[p(e.$slots,"default",{isActive:t.isActive},void 0,!0)])]))}},F=d(A,[["__scopeId","data-v-02b21280"]]);export{F as T};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More