Преглед изворни кода

增加对用户删除的审批操作

xusl пре 2 година
родитељ
комит
d3587cde68
19 измењених фајлова са 652 додато и 17 уклоњено
  1. 30 0
      backend/src/main/java/com/jiayue/ssi/backenum/ApproveOperaterEnum.java
  2. 26 0
      backend/src/main/java/com/jiayue/ssi/backenum/ApproveResultEnum.java
  3. 26 0
      backend/src/main/java/com/jiayue/ssi/backenum/ApproveStatusEnum.java
  4. 13 0
      backend/src/main/java/com/jiayue/ssi/constant/ApproveConstants.java
  5. 1 3
      backend/src/main/java/com/jiayue/ssi/constant/CacheConstants.java
  6. 98 0
      backend/src/main/java/com/jiayue/ssi/controller/SysApproveController.java
  7. 22 2
      backend/src/main/java/com/jiayue/ssi/controller/SysUserController.java
  8. 51 0
      backend/src/main/java/com/jiayue/ssi/entity/SysApprove.java
  9. 1 1
      backend/src/main/java/com/jiayue/ssi/filter/InterfaceLimitFilter.java
  10. 16 0
      backend/src/main/java/com/jiayue/ssi/mapper/SysApproveMapper.java
  11. 21 0
      backend/src/main/java/com/jiayue/ssi/service/SysApproveService.java
  12. 2 2
      backend/src/main/java/com/jiayue/ssi/service/SysUserService.java
  13. 55 0
      backend/src/main/java/com/jiayue/ssi/service/impl/SysApproveServiceImpl.java
  14. 1 1
      backend/src/main/java/com/jiayue/ssi/service/impl/SysBlacklistServiceImpl.java
  15. 26 5
      backend/src/main/java/com/jiayue/ssi/service/impl/SysUserServiceImpl.java
  16. 1 1
      backend/src/main/resources/mapper/system/SysMenuMapper.xml
  17. 259 0
      ui/src/views/examineManager/sysApprove/index.vue
  18. 2 1
      ui/src/views/sysManager/roleManager/index.vue
  19. 1 1
      ui/src/views/sysManager/userManager/index.vue

+ 30 - 0
backend/src/main/java/com/jiayue/ssi/backenum/ApproveOperaterEnum.java

@@ -0,0 +1,30 @@
+package com.jiayue.ssi.backenum;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+* 审批操作枚举
+*
+* @author xsl
+* @since 2023/04/13
+*/
+@Getter
+@AllArgsConstructor
+public enum ApproveOperaterEnum {
+    /**
+     * 新增
+     */
+    INSERT(0, "新增"),
+    /**
+     * 已连接
+     */
+    UPDATE(1, "修改"),
+    /**
+     * 删除
+     */
+    DELETE(2, "删除");
+
+    private Integer code;
+    private String message;
+}

+ 26 - 0
backend/src/main/java/com/jiayue/ssi/backenum/ApproveResultEnum.java

@@ -0,0 +1,26 @@
+package com.jiayue.ssi.backenum;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+* 审批结果枚举
+*
+* @author xsl
+* @since 2023/04/13
+*/
+@Getter
+@AllArgsConstructor
+public enum ApproveResultEnum {
+    /**
+     * 通过
+     */
+    TG(0, "通过"),
+    /**
+     * 未通过
+     */
+    WTG(1, "未通过");
+
+    private Integer code;
+    private String message;
+}

+ 26 - 0
backend/src/main/java/com/jiayue/ssi/backenum/ApproveStatusEnum.java

@@ -0,0 +1,26 @@
+package com.jiayue.ssi.backenum;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+* 审批状态枚举
+*
+* @author xsl
+* @since 2023/04/13
+*/
+@Getter
+@AllArgsConstructor
+public enum ApproveStatusEnum {
+    /**
+     * 待审批
+     */
+    DSP(0, "待审批"),
+    /**
+     * 已审批
+     */
+    YSP(1, "已审批");
+
+    private Integer code;
+    private String message;
+}

+ 13 - 0
backend/src/main/java/com/jiayue/ssi/constant/ApproveConstants.java

@@ -0,0 +1,13 @@
+package com.jiayue.ssi.constant;/**
+* 审批常量类
+*
+* @author xsl
+* @since 2023/04/13
+*/
+public class ApproveConstants {
+    /**
+     * 模块名称
+     */
+    public static final String MODULE_NAME_USER = "用户管理";
+
+}

+ 1 - 3
backend/src/main/java/com/jiayue/ssi/constant/CacheConstants.java

@@ -1,6 +1,5 @@
 package com.jiayue.ssi.constant;
 
-import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
@@ -10,8 +9,7 @@ import java.util.concurrent.ConcurrentMap;
  *
  * @author ruoyi
  */
-public class CacheConstants
-{
+public class CacheConstants {
     /**
      * 登录用户 redis key
      */

+ 98 - 0
backend/src/main/java/com/jiayue/ssi/controller/SysApproveController.java

@@ -0,0 +1,98 @@
+package com.jiayue.ssi.controller;
+
+import cn.hutool.core.lang.Validator;
+import cn.hutool.crypto.SmUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jiayue.ssi.annotation.AgainVerify;
+import com.jiayue.ssi.annotation.OperateLog;
+import com.jiayue.ssi.backenum.ApproveResultEnum;
+import com.jiayue.ssi.backenum.ApproveStatusEnum;
+import com.jiayue.ssi.backenum.AuditType;
+import com.jiayue.ssi.backenum.BusinessType;
+import com.jiayue.ssi.config.SendMailUtil;
+import com.jiayue.ssi.entity.SysApprove;
+import com.jiayue.ssi.entity.SysUser;
+import com.jiayue.ssi.entity.SysUserRole;
+import com.jiayue.ssi.service.SysApproveService;
+import com.jiayue.ssi.service.SysUserRoleService;
+import com.jiayue.ssi.service.SysUserService;
+import com.jiayue.ssi.service.impl.SysPermissionService;
+import com.jiayue.ssi.util.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+/**
+ * 审批接口
+ *
+ * @author xsl
+ * @since 2023/03/13
+ */
+@RestController
+@RequestMapping("/sysApproveController")
+@Slf4j
+public class SysApproveController {
+    @Autowired
+    SysApproveService sysApproveService;
+
+    /**
+     * 获取用户分页信息
+     *
+     * @return 用户信息
+     */
+    @GetMapping(value = "/getAll")
+    @PreAuthorize("@ss.hasPermi('approveManager:approve:list')")
+    public ResponseVO getAll(Integer currentPage, Integer pageSize, String approveStatus, String approveResult) {
+        try {
+            QueryWrapper<SysApprove> wrapper = new QueryWrapper<>();
+            if (StringUtils.isNotEmpty(approveStatus)) {
+                wrapper.eq("approve_status", approveStatus);
+            }
+            if (StringUtils.isNotEmpty(approveResult)) {
+                wrapper.eq("approve_result", approveResult);
+            }
+            Page<SysApprove> result = sysApproveService.page(new Page<>(currentPage, pageSize), wrapper);
+            return ResponseVO.success(result);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("获取所有审批异常");
+            return ResponseVO.error(null);
+        }
+    }
+
+    /**
+     * 审批结果提交
+     */
+    @PostMapping(value = "/submitApprove")
+    @OperateLog(title = "审批管理", businessType = BusinessType.UPDATE, auditType = AuditType.SYS)
+    @PreAuthorize("@ss.hasPermi('approveManager:approve:submitApprove')")
+    public ResponseVO submitApprove(@RequestBody SysApprove sysApprove) {
+        sysApprove.setApproveStatus(ApproveStatusEnum.YSP.getCode()+"");
+        try {
+            boolean bo = sysApproveService.updateById(sysApprove);
+            if (bo){
+                // 执行业务操作
+                boolean bizBo = sysApproveService.executeBizSql(sysApprove);
+                if (bizBo) {
+                    return ResponseVO.success("审批提交成功");
+                } else {
+                    log.error("审批提交失败");
+                    return ResponseVO.fail("审批提交失败");
+                }
+            }
+            else {
+                log.error("审批提交失败");
+                return ResponseVO.fail("审批提交失败");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("审批提交异常");
+            return ResponseVO.error(e);
+        }
+    }
+}

+ 22 - 2
backend/src/main/java/com/jiayue/ssi/controller/SysUserController.java

@@ -2,17 +2,22 @@ package com.jiayue.ssi.controller;
 
 import cn.hutool.core.lang.Validator;
 import cn.hutool.crypto.SmUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jiayue.ssi.annotation.AgainVerify;
 import com.jiayue.ssi.annotation.InterfaceLimit;
 import com.jiayue.ssi.annotation.OperateLog;
+import com.jiayue.ssi.backenum.ApproveOperaterEnum;
+import com.jiayue.ssi.backenum.ApproveStatusEnum;
 import com.jiayue.ssi.backenum.AuditType;
 import com.jiayue.ssi.backenum.BusinessType;
 import com.jiayue.ssi.config.SendMailUtil;
 import com.jiayue.ssi.constant.SecretKeyConstants;
+import com.jiayue.ssi.entity.SysApprove;
 import com.jiayue.ssi.entity.SysUser;
 import com.jiayue.ssi.entity.SysUserRole;
+import com.jiayue.ssi.service.SysApproveService;
 import com.jiayue.ssi.service.SysUserRoleService;
 import com.jiayue.ssi.service.SysUserService;
 import com.jiayue.ssi.service.impl.SysPermissionService;
@@ -43,6 +48,8 @@ public class SysUserController {
     SysPermissionService sysPermissionService;
     @Autowired
     SysUserRoleService sysUserRoleService;
+    @Autowired
+    SysApproveService sysApproveService;
 
     /**
      * 获取用户分页信息
@@ -302,9 +309,22 @@ public class SysUserController {
             return ResponseVO.fail("不能删除用户!");
         }
         try {
-            boolean bo = sysUserService.removeUserById(Integer.parseInt(id));
+            // 获取审批表是否存在此操作
+            QueryWrapper<SysApprove> wrapper = new QueryWrapper<>();
+            // 条件:待审批
+            wrapper.eq("approve_status", ApproveStatusEnum.DSP.getCode());
+            // 条件:删除操作
+            wrapper.eq("master_id", id);
+            // 条件:实体名
+            wrapper.eq("entity_name", "SysUser");
+            List<SysApprove> list = sysApproveService.list(wrapper);
+            if (list.size()>0){
+                return ResponseVO.fail("此记录存在未审批的操作,不能进行删除!");
+            }
+
+            boolean bo = sysUserService.removeUserById(sysUser);
             if (bo) {
-                return ResponseVO.success("删除用户信息成功");
+                return ResponseVO.success("【删除用户】已进入审批,审批通过后实现真正删除!");
             } else {
                 log.error("删除用户信息失败");
                 return ResponseVO.fail("删除用户信息失败");

+ 51 - 0
backend/src/main/java/com/jiayue/ssi/entity/SysApprove.java

@@ -0,0 +1,51 @@
+package com.jiayue.ssi.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 审批表
+ *
+ * @author xsl
+ * @version 3.0
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName(value = "sys_approve")
+public class SysApprove extends BaseEntity{
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 模块名称
+     */
+    private String moduleName;
+    /**
+     * 操作
+     */
+    private String operation;
+    /**
+     * 审批状态(0待审批 1已审批)
+     */
+    private String approveStatus;
+    /**
+     * 审批结果(0通过 1未通过)
+     */
+    private String approveResult;
+    /**
+     * 实体名称
+     */
+    private String entityName;
+    /**
+     * 实体内容
+     */
+    private String parameterContent;
+    /**
+     * 主键ID号
+     */
+    private String masterId;
+
+}

+ 1 - 1
backend/src/main/java/com/jiayue/ssi/filter/InterfaceLimitFilter.java

@@ -46,7 +46,7 @@ public class InterfaceLimitFilter extends OncePerRequestFilter {
             return;
         }
         else{
-            if (!InterfaceLimitUtil.checkInterface(request, 1000, 1)) {
+            if (!InterfaceLimitUtil.checkInterface(request, 1000, 10)) {
                 log.info("接口拦截:{} 请求超过限制频率【{}次/{}ms】,IP为{}", request.getRequestURI(), 10,1000, remoteIp);
                 // 锁定ip黑名单
                 SysBlacklist sysBlacklist = new SysBlacklist();

+ 16 - 0
backend/src/main/java/com/jiayue/ssi/mapper/SysApproveMapper.java

@@ -0,0 +1,16 @@
+package com.jiayue.ssi.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jiayue.ssi.entity.SysApprove;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *  审批Mapper
+ *
+ * @author xsl
+ * @since 2023-03-10
+ */
+@Mapper
+public interface SysApproveMapper extends BaseMapper<SysApprove> {
+
+}

+ 21 - 0
backend/src/main/java/com/jiayue/ssi/service/SysApproveService.java

@@ -0,0 +1,21 @@
+package com.jiayue.ssi.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jiayue.ssi.entity.SysApprove;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+
+/**
+ * 审批服务类
+ * @author xsl
+ * @date 2023/2/16
+ */
+public interface SysApproveService extends IService<SysApprove> {
+    /**
+     * 执行业务sql
+     * @param sysApprove
+     * @return
+     */
+    boolean executeBizSql(SysApprove sysApprove);
+}

+ 2 - 2
backend/src/main/java/com/jiayue/ssi/service/SysUserService.java

@@ -48,10 +48,10 @@ public interface SysUserService extends IService<SysUser> {
     SysUser queryMailBox(String mailbox);
     /**
      * 删除用户
-     * @param id
+     * @param sysUser
      * @return
      */
-    boolean removeUserById(Integer id);
+    boolean removeUserById(SysUser sysUser);
     /**
      * 初始/重置密码
      * @param id            主键id

+ 55 - 0
backend/src/main/java/com/jiayue/ssi/service/impl/SysApproveServiceImpl.java

@@ -0,0 +1,55 @@
+package com.jiayue.ssi.service.impl;
+
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ssi.backenum.ApproveOperaterEnum;
+import com.jiayue.ssi.backenum.ApproveResultEnum;
+import com.jiayue.ssi.backenum.ApproveStatusEnum;
+import com.jiayue.ssi.constant.ApproveConstants;
+import com.jiayue.ssi.entity.SysApprove;
+import com.jiayue.ssi.entity.SysUser;
+import com.jiayue.ssi.mapper.SysApproveMapper;
+import com.jiayue.ssi.mapper.SysUserMapper;
+import com.jiayue.ssi.service.SysApproveService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+* 审批实现类
+*
+* @author xsl
+* @since 2023/03/29
+*/
+@Service
+public class SysApproveServiceImpl extends ServiceImpl<SysApproveMapper, SysApprove> implements SysApproveService {
+    @Autowired
+    SysUserMapper sysUserMapper;
+
+    /**
+     * 执行业务sql
+     * @param sysApprove
+     * @return
+     */
+    @Override
+    @Transactional(propagation= Propagation.REQUIRED, rollbackFor = Exception.class)
+    public boolean executeBizSql(SysApprove sysApprove) {
+        // 通过的状态执行sql
+        if (sysApprove.getModuleName().equals(ApproveConstants.MODULE_NAME_USER)){
+            SysUser sysUser = JSONUtil.toBean(sysApprove.getParameterContent(),SysUser.class);
+            if (sysApprove.getOperation().equals(String.valueOf(ApproveOperaterEnum.DELETE.getCode()))){
+                // 用户管理删除操作
+                LambdaUpdateWrapper<SysUser> updateWrapper = new UpdateWrapper<SysUser>().lambda();
+                updateWrapper.eq(SysUser::getId, sysUser.getId()).set(SysUser::getDelFlag, 1);
+                int count = sysUserMapper.update(new SysUser(), updateWrapper);
+                if (count > 0) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+}

+ 1 - 1
backend/src/main/java/com/jiayue/ssi/service/impl/SysBlacklistServiceImpl.java

@@ -7,7 +7,7 @@ import com.jiayue.ssi.service.SysBlacklistService;
 import org.springframework.stereotype.Service;
 
 /**
-*
+* 黑名单实现类
 *
 * @author xsl
 * @since 2023/03/29

+ 26 - 5
backend/src/main/java/com/jiayue/ssi/service/impl/SysUserServiceImpl.java

@@ -1,12 +1,18 @@
 package com.jiayue.ssi.service.impl;
 
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jiayue.ssi.backenum.ApproveOperaterEnum;
+import com.jiayue.ssi.backenum.ApproveStatusEnum;
+import com.jiayue.ssi.constant.ApproveConstants;
+import com.jiayue.ssi.entity.SysApprove;
 import com.jiayue.ssi.entity.SysRole;
 import com.jiayue.ssi.entity.SysUser;
 import com.jiayue.ssi.entity.SysUserRole;
+import com.jiayue.ssi.mapper.SysApproveMapper;
 import com.jiayue.ssi.mapper.SysUserMapper;
 import com.jiayue.ssi.mapper.SysUserRoleMapper;
 import com.jiayue.ssi.service.SysUserService;
@@ -30,6 +36,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     SysUserMapper sysUserMapper;
     @Autowired
     SysUserRoleMapper sysUserRoleMapper;
+    @Autowired
+    SysApproveMapper sysApproveMapper;
 
     /**
      * 获取所有用户
@@ -95,19 +103,32 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
     /**
      * 删除用户
-     * @param id
+     * @param sysUser
      * @return
      */
     @Override
     @Transactional(propagation= Propagation.REQUIRED, rollbackFor = Exception.class)
-    public boolean removeUserById(Integer id) {
-        LambdaUpdateWrapper<SysUser> updateWrapper = new UpdateWrapper<SysUser>().lambda();
-        updateWrapper.eq(SysUser::getId, id).set(SysUser::getDelFlag, 1);
-        int count = sysUserMapper.update(new SysUser(), updateWrapper);
+    public boolean removeUserById(SysUser sysUser) {
+        // 插入审批表
+        SysApprove sysApprove = new SysApprove();
+        sysApprove.setModuleName(ApproveConstants.MODULE_NAME_USER);
+        sysApprove.setOperation(String.valueOf(ApproveOperaterEnum.DELETE.getCode()));
+        sysApprove.setApproveStatus(String.valueOf(ApproveStatusEnum.DSP.getCode()));
+        sysApprove.setEntityName("SysUser");
+        sysApprove.setParameterContent(JSONUtil.parse(sysUser).toString());
+        sysApprove.setMasterId(String.valueOf(sysUser.getId()));
+        int count = sysApproveMapper.insert(sysApprove);
         if (count > 0) {
             return true;
         }
         return false;
+
+//        LambdaUpdateWrapper<SysUser> updateWrapper = new UpdateWrapper<SysUser>().lambda();
+//        updateWrapper.eq(SysUser::getId, id).set(SysUser::getDelFlag, 1);
+//        int count = sysUserMapper.update(new SysUser(), updateWrapper);
+//        if (count > 0) {
+//            return true;
+//        }
     }
     /**
      * 初始/重置密码

+ 1 - 1
backend/src/main/resources/mapper/system/SysMenuMapper.xml

@@ -82,7 +82,7 @@
 			 left join sys_user_role ur on rm.role_id = ur.role_id
 			 left join sys_role ro on ur.role_id = ro.role_id
 			 left join sys_user u on ur.user_id = u.id
-		where u.id = #{userId} and m.menu_type in ('M', 'C') and m.status = 0  AND ro.status = 0 and m.del_flag=0 and u.del_flag=0
+		where u.id = #{userId} and m.menu_type in ('M', 'C') and m.status = 0  AND ro.status = 0 and m.del_flag=0 and u.del_flag=0 and rm.del_flag=0 and ur.del_flag=0 and ro.del_flag=0
 		order by m.parent_id, m.order_num
 	</select>
 

+ 259 - 0
ui/src/views/examineManager/sysApprove/index.vue

@@ -0,0 +1,259 @@
+<template>
+  <div class="app-container">
+    <el-row :gutter="24">
+      <!--用户数据-->
+      <el-col :span="24" :xs="24">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
+          <el-form-item label="审批状态" prop="approveStatus">
+            <el-select
+            v-model="queryParams.approveStatus"
+            placeholder="请选择审批状态"
+            clearable
+            style="width: 240px"
+          >
+            <el-option
+              v-for="item in approveStatusOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
+          </el-form-item>
+          <el-form-item label="审批结果" prop="approveResult">
+            <el-select
+              v-model="queryParams.approveResult"
+              placeholder="请选择审批结果"
+              clearable
+              style="width: 240px"
+            >
+              <el-option
+                v-for="item in approveResultOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+          </el-form-item>
+        </el-form>
+        <div style="padding-top: 10px">
+          <vxe-table
+            ref="xTable"
+            align="center"
+            :loading="loading"
+            class="mytable-style"
+            auto-resize
+            border
+            resizable
+            export-config
+            highlight-current-row
+            show-overflow
+            max-height="700"
+            :data="approveList"
+            :radio-config="{trigger: 'row'}"
+          >
+            <vxe-table-column field="moduleName" title="模块名称"/>
+            <vxe-table-column field="operation" title="执行操作" :formatter="operationFormat"/>
+            <vxe-table-column field="approveStatus" title="审批状态" :formatter="approveStatusFormat"/>
+            <vxe-table-column field="approveResult" title="审批结果" :formatter="approveResultFormat"/>
+            <vxe-table-column field="parameterContent" title="操作内容"/>
+            <vxe-table-column title="操作" width="320">
+              <template slot-scope="scope" v-if="scope.row.approveStatus == 0">
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-check"
+                  @click="handleApprove(scope.row,0)"
+                  v-hasPermi="['approveManager:approve:submitApprove']"
+                >通过
+                </el-button>
+
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-close"
+                  @click="handleApprove(scope.row,1)"
+                  v-hasPermi="['approveManager:approve:submitApprove']"
+                >未通过
+                </el-button>
+              </template>
+            </vxe-table-column>
+          </vxe-table>
+          <vxe-pager
+            v-show="showTable"
+            perfect
+            :current-page.sync="currentPage"
+            :page-size.sync="pageSize"
+            :total="total"
+            :page-sizes="[10,50,100]"
+            :layouts="['PrevJump', 'PrevPage','JumpNumber', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'Total']"
+            @page-change="handlePageChange"
+          >
+          </vxe-pager>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { debounce } from 'lodash'
+export default {
+  name: "User",
+  data() {
+    return {
+      approveStatusOptions: [
+        {value: '0', label: '待审批'},
+        {value: '1', label: '已审批'}
+      ],
+      approveResultOptions: [
+        {value: '0', label: '通过'},
+        {value: '1', label: '未通过'}
+      ],
+      operationOptions: [
+        {value: '0', label: '新增'},
+        {value: '1', label: '修改'},
+        {value: '2', label: '删除'}
+      ],
+      // 遮罩层
+      loading: true,
+      showTable: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      currentPage: 1,
+      pageSize: 10,
+      // 总条数
+      total: 0,
+      // 表格数据
+      approveList: null,
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 表单参数
+      form: {},
+      // 查询参数
+      queryParams: {
+        approveStatus: undefined,
+        approveResult: undefined
+      },
+      edit:false
+    };
+  },
+  watch: {},
+  created() {
+    this.getList()
+  },
+  methods: {
+    handlePageChange({currentPage, pageSize}) {
+      this.currentPage = currentPage
+      this.pageSize = pageSize
+      this.getList()
+    },
+    // 列表状态格式化
+    operationFormat({cellValue}) {
+      let belongTo = '未知的类型'
+      for (let i = 0; i < this.operationOptions.length; i++) {
+        if (cellValue == "0") {
+          belongTo = "新增"
+        } else if (cellValue == "1") {
+          belongTo = "修改"
+        }else if (cellValue == "2") {
+          belongTo = "删除"
+        }
+      }
+      return belongTo
+    },
+    approveStatusFormat({cellValue}) {
+      let belongTo = '未知的类型'
+      for (let i = 0; i < this.approveStatusOptions.length; i++) {
+        if (cellValue == "0") {
+          belongTo = "待审批"
+        } else if (cellValue == "1") {
+          belongTo = "已审批"
+        }
+      }
+      return belongTo
+    },
+    approveResultFormat({cellValue}) {
+      let belongTo = ''
+      for (let i = 0; i < this.approveResultOptions.length; i++) {
+        if (cellValue == "0") {
+          belongTo = "通过"
+        } else if (cellValue == "1") {
+          belongTo = "未通过"
+        }
+      }
+      return belongTo
+    },
+    /** 查询用户列表 */
+    getList(){
+      this.loading = true;
+      var searchParams = {
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        approveStatus: this.queryParams.approveStatus,
+        approveResult: this.queryParams.approveResult
+      }
+      this.$axios.get('/sysApproveController/getAll',
+        {params: searchParams}).then((res) => {
+        this.approveList = res.data.records
+        this.total = res.data.total
+
+        if (res.data.records == '') {
+          this.showTable = false
+        } else {
+          this.showTable = true
+        }
+        this.loading = false
+      }).catch((error) => {
+        // this.$message.error(error)
+      })
+    },
+    /** 搜索按钮操作 */
+    handleQuery:debounce(function(){
+      this.getList()
+    },1000),
+    handleApprove(row,val){
+      let tips=''
+      if (val==0){
+        tips = '【通过】'
+      }
+      else{
+        tips = '【未通过】'
+      }
+      this.$confirm('确认审批结果'+tips+'?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        row.approveResult = val
+        this.submitApprove(row)
+      }).catch(() => {
+      });
+    },
+    /** 提交按钮 */
+    submitApprove:debounce(function(row){
+        this.$axios.post('/sysApproveController/submitApprove', row).then((res) => {
+          if (res.code == 0) {
+            this.$message.success('审批成功')
+            this.getList();
+          }
+          if (res.code == 1) {
+            this.$message.error(res.data)
+            this.getList();
+          }
+        }).catch((error) => {
+          // this.$message.error(error)
+          this.getList();
+        })
+    },1000)
+  }
+};
+</script>

+ 2 - 1
ui/src/views/sysManager/roleManager/index.vue

@@ -127,7 +127,7 @@
         </el-form-item>
         <el-form-item label="类型">
           <el-select
-            v-model="form.status"
+            v-model="form.roleType"
             placeholder="请选择角色类型"
             clearable
             style="width: 240px"
@@ -454,6 +454,7 @@ export default {
           roleKey: undefined,
           roleSort: 0,
           status: "0",
+          roleType: "0",
           menuIds: [],
           deptIds: [],
           menuCheckStrictly: true,

+ 1 - 1
ui/src/views/sysManager/userManager/index.vue

@@ -567,7 +567,7 @@ export default {
         if (res.code == 0) {
           this.$message({
             type: 'success',
-            message: '删除成功!'
+            message: res.data
           });
           this.getList();
         } else {