feat: 移动端-协会审核
This commit is contained in:
+3
-117
@@ -1,32 +1,11 @@
|
||||
package com.budwk.app.zhgh.club.controller.apply;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum;
|
||||
import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum;
|
||||
import com.budwk.app.bpm.models.BpmProcessInstance;
|
||||
import com.budwk.app.bpm.models.BpmProcessTask;
|
||||
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.web.controllers.open.commons.service.CommonService;
|
||||
import com.budwk.app.zhgh.club.model.ClubUser;
|
||||
import com.budwk.app.zhgh.club.model.ClubUserApply;
|
||||
import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm;
|
||||
import com.budwk.app.zhgh.club.service.ClubUserJoinService;
|
||||
import com.budwk.app.zhgh.club.vo.ClubUserJoinPageVo;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.Static;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
@@ -34,23 +13,14 @@ import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@IocBean
|
||||
@At("/platform/club/join/clubApproval")
|
||||
@Ok("json:full")
|
||||
public class ClubUserJoinApprovalController {
|
||||
|
||||
@Inject
|
||||
private CommonService commonService;
|
||||
@Inject
|
||||
private BpmService bpmService;
|
||||
@Inject
|
||||
private ClubUserJoinService clubUserJoinService;
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@At("")
|
||||
@SaCheckPermission("club.join.clubApproval")
|
||||
@@ -62,106 +32,22 @@ public class ClubUserJoinApprovalController {
|
||||
@At
|
||||
@SaCheckPermission("club.join.clubApproval")
|
||||
public Result pageData(@Valid ClubUserJoinPageForm pageForm, boolean approval) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
info.*,
|
||||
u.loginname AS loginName,
|
||||
u.username AS userName,
|
||||
u.sex,
|
||||
u.unitName,
|
||||
u.unionName,
|
||||
club.clubName,
|
||||
inst.id processInstanceId,
|
||||
inst.processInstanceNodeId,
|
||||
inst.processInstanceNodeName,
|
||||
inst.processInstanceTaskIds,
|
||||
inst.processInstanceStatus,
|
||||
task.id processInstanceTaskId,
|
||||
task.taskStatus processInstanceTaskStatus,
|
||||
COUNT( nt.id ) OVER ( PARTITION BY task.id ) > 0 AS nextTaskIsComplete
|
||||
FROM
|
||||
bpm_process_task task
|
||||
INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId
|
||||
INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId
|
||||
INNER JOIN club_user_apply info ON info.id = inst.processInstanceBusinessId
|
||||
LEFT JOIN sys_club club ON club.id = info.clubId
|
||||
LEFT JOIN vw_user u on u.id = info.userId
|
||||
LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id
|
||||
AND nt.taskStatus = 'COMPLETE'
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){
|
||||
cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname())));
|
||||
}
|
||||
|
||||
cnd.and("nd.nodeCode","=",20);
|
||||
if(approval){
|
||||
cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE);
|
||||
}else{
|
||||
cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE);
|
||||
}
|
||||
|
||||
cnd.andEX("YEAR(info.applyDate)","=",pageForm.getYear());
|
||||
cnd.and(Cnd.likeEX("u.userName", pageForm.getUserName()));
|
||||
cnd.and(Cnd.likeEX("u.loginName", pageForm.getLoginName()));
|
||||
cnd.andEX("u.unionId","=",pageForm.getUnionId());
|
||||
cnd.andEX("u.unitId","=",pageForm.getUnitId());
|
||||
cnd.andEX("info.clubId","=",pageForm.getClubId());
|
||||
sql.setCondition(cnd);
|
||||
|
||||
Pagination<ClubUserJoinPageVo> pageVO = clubUserJoinService.listPageVO(pageForm, sql, ClubUserJoinPageVo.class);
|
||||
return Result.success(pageVO);
|
||||
return Result.success(clubUserJoinService.pageDataByClubApproval(pageForm, approval));
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("club.join.clubApproval")
|
||||
@ApiOperation("审核")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam){
|
||||
// approvalParam.getBpmTaskApprovalTypeEnum();
|
||||
// Map<String, Object> variables = BeanUtil.beanToMap(approvalParam);
|
||||
// List<String> assignments = new ArrayList<>();
|
||||
// if(approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)){
|
||||
// String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_CLUB_ADMIN);
|
||||
// assignments.add(approvalLoginName);
|
||||
// }
|
||||
// bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments);
|
||||
|
||||
|
||||
Map<String, Object> variables = BeanUtil.beanToMap(approvalParam);
|
||||
List<String> assignments = new ArrayList<>();
|
||||
bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments);
|
||||
|
||||
if (approvalParam.getBpmTaskApprovalTypeEnum() == BpmTaskApprovalTypeEnum.PASS) {
|
||||
String processInstanceBusinessId = approvalParam.getProcessInstanceBusinessId();
|
||||
ClubUserApply clubUserApply = dao.fetch(ClubUserApply.class, processInstanceBusinessId);
|
||||
if (clubUserApply != null) {
|
||||
ClubUser existUser = dao.fetch(ClubUser.class, Cnd.where("userId", "=", clubUserApply.getUserId()).and("clubId", "=", clubUserApply.getClubId()));
|
||||
if (existUser == null) {
|
||||
ClubUser clubUser = BeanUtil.copyProperties(clubUserApply, ClubUser.class);
|
||||
dao.insert(clubUser);
|
||||
}
|
||||
}
|
||||
}
|
||||
clubUserJoinService.clubApproval(approvalParam);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("club.join.clubApproval")
|
||||
@ApiOperation("撤回")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result revoke(@Valid String taskId){
|
||||
bpmService.revokeTask(taskId);
|
||||
|
||||
BpmProcessTask task = dao.fetch(BpmProcessTask.class, taskId);
|
||||
String processInstanceId = task.getProcessInstanceId();
|
||||
BpmProcessInstance processInstance = dao.fetch(BpmProcessInstance.class, processInstanceId);
|
||||
String businessId = processInstance.getProcessInstanceBusinessId();
|
||||
|
||||
ClubUserApply clubUserApply = dao.fetch(ClubUserApply.class, businessId);
|
||||
dao.clear(ClubUser.class, Cnd.where(ClubUser::getUserId, "=", clubUserApply.getUserId())
|
||||
.and(ClubUser::getClubId, "=", clubUserApply.getClubId()));
|
||||
clubUserJoinService.revokeClubApproval(taskId);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,18 @@
|
||||
package com.budwk.app.zhgh.club.h5controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||
import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm;
|
||||
import com.budwk.app.zhgh.club.service.ClubUserJoinService;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
@IocBean
|
||||
@At("/platform/h5/club/audit")
|
||||
@@ -12,10 +20,40 @@ import org.nutz.mvc.annotation.Ok;
|
||||
@Api("h5入会审核")
|
||||
public class H5ClubAuditController {
|
||||
|
||||
@Inject
|
||||
private ClubUserJoinService clubUserJoinService;
|
||||
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhghh5/club/audit/index.html")
|
||||
@SaCheckPermission("h5.club.audit")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("h5.club.audit")
|
||||
public Result pageData(@Valid ClubUserJoinPageForm pageForm, boolean approval, Integer auditType) {
|
||||
Boolean approvalStatus = approval;
|
||||
if (Integer.valueOf(1).equals(auditType)) {
|
||||
approvalStatus = null;
|
||||
} else if (auditType != null) {
|
||||
approvalStatus = Integer.valueOf(2).equals(auditType);
|
||||
}
|
||||
return Result.success(clubUserJoinService.pageDataByClubApproval(pageForm, approvalStatus));
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("h5.club.audit")
|
||||
public Result doAudit(@Valid @Param("approval") BpmTaskApprovalParam approvalParam) {
|
||||
clubUserJoinService.clubApproval(approvalParam);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("h5.club.audit")
|
||||
public Result revoke(@Valid String taskId){
|
||||
clubUserJoinService.revokeClubApproval(taskId);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,19 @@
|
||||
package com.budwk.app.zhgh.club.service;
|
||||
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||
import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm;
|
||||
import com.budwk.app.zhgh.club.vo.ClubUserJoinPageVo;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.club.model.ClubUserApply;
|
||||
|
||||
public interface ClubUserJoinService extends BaseService<ClubUserApply> {
|
||||
|
||||
Pagination<ClubUserJoinPageVo> pageDataByClubApproval(ClubUserJoinPageForm pageForm, boolean approval);
|
||||
|
||||
Pagination<ClubUserJoinPageVo> pageDataByClubApproval(ClubUserJoinPageForm pageForm, Boolean approval);
|
||||
|
||||
void clubApproval(BpmTaskApprovalParam approvalParam);
|
||||
|
||||
void revokeClubApproval(String taskId);
|
||||
}
|
||||
|
||||
@@ -1,14 +1,147 @@
|
||||
package com.budwk.app.zhgh.club.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum;
|
||||
import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum;
|
||||
import com.budwk.app.bpm.models.BpmProcessInstance;
|
||||
import com.budwk.app.bpm.models.BpmProcessTask;
|
||||
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.club.model.ClubUser;
|
||||
import com.budwk.app.zhgh.club.param.ClubUserJoinPageForm;
|
||||
import com.budwk.app.zhgh.club.vo.ClubUserJoinPageVo;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.Static;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.zhgh.club.model.ClubUserApply;
|
||||
import com.budwk.app.zhgh.club.service.ClubUserJoinService;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class ClubUserJoinServiceImpl extends BaseServiceImpl<ClubUserApply> implements ClubUserJoinService {
|
||||
@Inject
|
||||
private BpmService bpmService;
|
||||
|
||||
public ClubUserJoinServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pagination<ClubUserJoinPageVo> pageDataByClubApproval(ClubUserJoinPageForm pageForm, boolean approval) {
|
||||
return pageDataByClubApproval(pageForm, Boolean.valueOf(approval));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pagination<ClubUserJoinPageVo> pageDataByClubApproval(ClubUserJoinPageForm pageForm, Boolean approval) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
info.*,
|
||||
u.loginname AS loginName,
|
||||
u.username AS userName,
|
||||
u.sex,
|
||||
u.unitName,
|
||||
u.unionName,
|
||||
club.clubName,
|
||||
inst.id processInstanceId,
|
||||
inst.processInstanceNodeId,
|
||||
inst.processInstanceNodeName,
|
||||
inst.processInstanceTaskIds,
|
||||
inst.processInstanceStatus,
|
||||
task.id processInstanceTaskId,
|
||||
task.taskStatus processInstanceTaskStatus,
|
||||
COUNT( nt.id ) OVER ( PARTITION BY task.id ) > 0 AS nextTaskIsComplete
|
||||
FROM
|
||||
bpm_process_task task
|
||||
INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId
|
||||
INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId
|
||||
INNER JOIN club_user_apply info ON info.id = inst.processInstanceBusinessId
|
||||
LEFT JOIN sys_club club ON club.id = info.clubId
|
||||
LEFT JOIN vw_user u on u.id = info.userId
|
||||
LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id
|
||||
AND nt.taskStatus = 'COMPLETE'
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){
|
||||
cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname())));
|
||||
}
|
||||
|
||||
cnd.and("nd.nodeCode","=",20);
|
||||
if(approval == null){
|
||||
cnd.and("task.taskStatus", "in", List.of(BpmProcessTaskStatusEnum.ACTIVE.name(), BpmProcessTaskStatusEnum.COMPLETE.name()));
|
||||
}else if(approval){
|
||||
cnd.and("task.taskStatus","=", BpmProcessTaskStatusEnum.COMPLETE);
|
||||
}else{
|
||||
cnd.and("task.taskStatus","=",BpmProcessTaskStatusEnum.ACTIVE);
|
||||
}
|
||||
|
||||
cnd.andEX("YEAR(info.applyDate)","=",pageForm.getYear());
|
||||
cnd.and(Cnd.likeEX("u.userName", pageForm.getUserName()));
|
||||
cnd.and(Cnd.likeEX("u.loginName", pageForm.getLoginName()));
|
||||
cnd.andEX("u.unionId","=",pageForm.getUnionId());
|
||||
cnd.andEX("u.unitId","=",pageForm.getUnitId());
|
||||
cnd.andEX("info.clubId","=",pageForm.getClubId());
|
||||
sql.setCondition(cnd);
|
||||
|
||||
return listPageVO(pageForm, sql, ClubUserJoinPageVo.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void clubApproval(BpmTaskApprovalParam approvalParam) {
|
||||
// approvalParam.getBpmTaskApprovalTypeEnum();
|
||||
// Map<String, Object> variables = BeanUtil.beanToMap(approvalParam);
|
||||
// List<String> assignments = new ArrayList<>();
|
||||
// if(approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)){
|
||||
// String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_CLUB_ADMIN);
|
||||
// assignments.add(approvalLoginName);
|
||||
// }
|
||||
// bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments);
|
||||
|
||||
|
||||
Map<String, Object> variables = BeanUtil.beanToMap(approvalParam);
|
||||
List<String> assignments = new ArrayList<>();
|
||||
bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments);
|
||||
|
||||
if (approvalParam.getBpmTaskApprovalTypeEnum() == BpmTaskApprovalTypeEnum.PASS) {
|
||||
String processInstanceBusinessId = approvalParam.getProcessInstanceBusinessId();
|
||||
ClubUserApply clubUserApply = dao().fetch(ClubUserApply.class, processInstanceBusinessId);
|
||||
if (clubUserApply != null) {
|
||||
ClubUser existUser = dao().fetch(ClubUser.class, Cnd.where("userId", "=", clubUserApply.getUserId()).and("clubId", "=", clubUserApply.getClubId()));
|
||||
if (existUser == null) {
|
||||
ClubUser clubUser = BeanUtil.copyProperties(clubUserApply, ClubUser.class);
|
||||
dao().insert(clubUser);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void revokeClubApproval(String taskId) {
|
||||
bpmService.revokeTask(taskId);
|
||||
|
||||
BpmProcessTask task = dao().fetch(BpmProcessTask.class, taskId);
|
||||
String processInstanceId = task.getProcessInstanceId();
|
||||
BpmProcessInstance processInstance = dao().fetch(BpmProcessInstance.class, processInstanceId);
|
||||
String businessId = processInstance.getProcessInstanceBusinessId();
|
||||
|
||||
ClubUserApply clubUserApply = dao().fetch(ClubUserApply.class, businessId);
|
||||
dao().clear(ClubUser.class, Cnd.where(ClubUser::getUserId, "=", clubUserApply.getUserId())
|
||||
.and(ClubUser::getClubId, "=", clubUserApply.getClubId()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,14 +46,14 @@ layout("/layouts/platform.html"){
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder">
|
||||
<el-table v-loading="tableLoading" element-loading-text="加载中..." :data="tableData" @sort-change="pageOrder">
|
||||
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"></el-table-column>
|
||||
<el-table-column prop="userName" label="姓名"></el-table-column>
|
||||
<el-table-column prop="loginName" label="工号"></el-table-column>
|
||||
<el-table-column prop="sex" label="性别"></el-table-column>
|
||||
<el-table-column prop="unitName" label="单位" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="unionName" label="分工会" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="clubName" label="申请协会" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="clubName" label="申请协会" min-width="180px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="mode" label="申请模式">
|
||||
<template slot-scope="scope">
|
||||
<el-tag size="mini" v-if="scope.row.mode" type="success">加入</el-tag>
|
||||
@@ -62,7 +62,7 @@ layout("/layouts/platform.html"){
|
||||
</el-table-column>
|
||||
<el-table-column prop="applyDate" label="申请时间" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="当前节点" prop="processInstanceNodeName" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="操作" width="300px">
|
||||
<el-table-column label="操作" width="160px">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="row.processInstanceTaskStatus==='ACTIVE'" @click="openApproval(row)" size="mini" type="primary">
|
||||
@@ -131,6 +131,21 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
pageData(url = null, data = null) {
|
||||
this.tableLoading = true
|
||||
return this.$axios.post(url || loc() + "/pageData", data || this.pageForm).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = res.data.list
|
||||
this.pageForm.totalCount = res.data.totalCount
|
||||
} else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$message.error("审核列表加载失败")
|
||||
}).finally(() => {
|
||||
this.tableLoading = false
|
||||
})
|
||||
},
|
||||
openView(row) {
|
||||
this.$refs.guava.public(() => {
|
||||
this.$refs.infoRef.onOpen(row.id)
|
||||
@@ -178,10 +193,15 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.unitList = await this.$businessTool.listUnit()
|
||||
this.unionList = await this.$businessTool.listUnion()
|
||||
this.clubList = await this.$businessTool.listClub()
|
||||
this.pageData()
|
||||
this.tableLoading = true
|
||||
try {
|
||||
this.unitList = await this.$businessTool.listUnit()
|
||||
this.unionList = await this.$businessTool.listUnion()
|
||||
this.clubList = await this.$businessTool.listClub()
|
||||
await this.pageData()
|
||||
} finally {
|
||||
this.tableLoading = false
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -11,23 +11,17 @@ layout("/layouts/platform_h5.html"){
|
||||
<div id="app" v-cloak>
|
||||
<van-sticky>
|
||||
<van-nav-bar title="入会审核" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
:show-action="showAction"
|
||||
placeholder="请输入姓名/工号查询"
|
||||
@search="doSearch"
|
||||
@cancel="doSearch"
|
||||
></van-search>
|
||||
<van-search v-model="pageForm.loginName" placeholder="请输入工号查询" @search="doSearch" @clear="doSearch"></van-search>
|
||||
<van-dropdown-menu>
|
||||
<van-dropdown-item v-model="pageForm.applyType" :options="applyTypeOptions" @change="doSearch"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.year" :options="yearList" @change="doSearch"></van-dropdown-item>
|
||||
<van-dropdown-item v-model="pageForm.auditType" :options="auditTypeOptions" @change="doSearch"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
</van-sticky>
|
||||
|
||||
<div>
|
||||
<van-list v-if="tableData.length>0" v-model="tableLoading" :finished="tableFinished" finished-text="没有更多了" @load="pageData">
|
||||
<van-list v-if="tableData.length>0 || tableLoading" v-model="tableLoading" :immediate-check="false" :finished="tableFinished" loading-text="加载中..." finished-text="没有更多了" @load="pageData">
|
||||
<div class="table-list">
|
||||
<div class="table-card" v-for="row in tableData" :key="row.id">
|
||||
<div class="table-card" v-for="row in tableData" :key="row.processInstanceTaskId">
|
||||
<van-cell>
|
||||
<template slot="title">
|
||||
<div class="flex-align">
|
||||
@@ -39,23 +33,16 @@ layout("/layouts/platform_h5.html"){
|
||||
<van-cell title="工号" :value="row.loginName"></van-cell>
|
||||
<van-cell title="性别" :value="row.sex"></van-cell>
|
||||
<van-cell title="所属工会" :value="row.unionName"></van-cell>
|
||||
<van-cell v-if="pageForm.applyType === 1 && row.status" title="入会状态">
|
||||
<span v-if="row.status == 1">待协会审核</span>
|
||||
<span v-else-if="row.status == 2">协会不通过</span>
|
||||
<span v-else-if="row.status == 3">待校工会审核</span>
|
||||
<span v-else-if="row.status == 4">校工会不通过</span>
|
||||
<span v-else-if="row.status == 5">审核通过</span>
|
||||
<van-cell title="申请模式" :value="row.mode ? '加入' : '退出'"></van-cell>
|
||||
<van-cell title="当前节点" :value="row.processInstanceNodeName"></van-cell>
|
||||
<van-cell title="审核状态" :value="row.processInstanceTaskStatus === 'ACTIVE' ? '待审核' : '已审核'"></van-cell>
|
||||
<van-cell v-if="row.processInstanceTaskStatus === 'ACTIVE'" class="table-card-footer">
|
||||
<van-button size="small" @click="openAudit(row, 'BACK')" type="danger">退回重新申请</van-button>
|
||||
<van-button size="small" @click="openAudit(row, 'REJECT')" type="danger">拒绝申请</van-button>
|
||||
<van-button size="small" @click="openAudit(row, 'PASS')" type="info">同意申请</van-button>
|
||||
</van-cell>
|
||||
<van-cell v-if="pageForm.applyType === 2 && row.exitStatus" title="退会状态">
|
||||
<span v-if="row.exitStatus == 1">待协会审核</span>
|
||||
<span v-else-if="row.exitStatus == 2">协会不通过</span>
|
||||
<span v-else-if="row.exitStatus == 3">待校工会审核</span>
|
||||
<span v-else-if="row.exitStatus == 4">校工会不通过</span>
|
||||
<span v-else-if="row.exitStatus == 5">审核通过</span>
|
||||
</van-cell>
|
||||
<van-cell v-if="pageForm.auditType !== 2 && (row.status === 1 || row.exitStatus === 1)" class="table-card-footer">
|
||||
<van-button size="small" @click="openPayed(row, false)" type="danger">不通过</van-button>
|
||||
<van-button size="small" @click="openPayed(row, true)" type="info">通过</van-button>
|
||||
<van-cell v-if="row.processInstanceTaskStatus === 'COMPLETE' && !row.nextTaskIsComplete" class="table-card-footer">
|
||||
<van-button size="small" @click="openRevoke(row.processInstanceTaskId)" type="danger">撤回</van-button>
|
||||
</van-cell>
|
||||
</div>
|
||||
</div>
|
||||
@@ -63,17 +50,8 @@ layout("/layouts/platform_h5.html"){
|
||||
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
|
||||
</div>
|
||||
|
||||
<van-dialog v-model="payedShow" title="是否缴费" show-cancel-button :lazy-render="false" @confirm="doAudit">
|
||||
<van-radio-group v-model="payed">
|
||||
<van-cell-group>
|
||||
<van-cell title="已缴费" clickable @click="payed = true">
|
||||
<van-radio slot="right-icon" :name="true"></van-radio>
|
||||
</van-cell>
|
||||
<van-cell title="未缴费" clickable @click="payed = false">
|
||||
<van-radio slot="right-icon" :name="false"></van-radio>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</van-radio-group>
|
||||
<van-dialog v-model="auditShow" title="审核意见" show-cancel-button :lazy-render="false" @confirm="doAudit">
|
||||
<van-field v-model="approvalOpinion" type="textarea" placeholder="请输入审核意见"></van-field>
|
||||
</van-dialog>
|
||||
</div>
|
||||
|
||||
@@ -84,19 +62,20 @@ layout("/layouts/platform_h5.html"){
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
showAction: true,
|
||||
payedShow: false,
|
||||
payed: false,
|
||||
auditShow: false,
|
||||
approvalOpinion: "",
|
||||
tableLoading: false,
|
||||
tableFinished: false,
|
||||
submitting: false,
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
searchKeyword: ""
|
||||
loginName: "",
|
||||
year: new Date().getFullYear(),
|
||||
auditType: 3
|
||||
},
|
||||
applyTypeOptions: [
|
||||
{ text: "申请加入", value: 1 },
|
||||
{ text: "申请退会", value: 2 }
|
||||
],
|
||||
yearList: [],
|
||||
auditTypeOptions: [
|
||||
{ text: "全部", value: 1 },
|
||||
{ text: "已审核", value: 2 },
|
||||
@@ -104,54 +83,75 @@ layout("/layouts/platform_h5.html"){
|
||||
],
|
||||
typeOptions: [],
|
||||
tableData: [],
|
||||
auditResult: false,
|
||||
auditIdList: []
|
||||
approvalType: "",
|
||||
approvalParam: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openPayed(row, flag) {
|
||||
this.auditResult = flag
|
||||
this.auditIdList = [row.id]
|
||||
if (this.pageForm.applyType === 1) {
|
||||
this.payedShow = true
|
||||
} else {
|
||||
this.doAudit()
|
||||
}
|
||||
openAudit(row, approvalType) {
|
||||
this.approvalType = approvalType
|
||||
this.approvalParam = row.approvalParam
|
||||
this.approvalOpinion = ""
|
||||
this.auditShow = true
|
||||
},
|
||||
async doAudit() {
|
||||
const confirm = await this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要提交审核吗?"
|
||||
})
|
||||
if (confirm === "confirm") {
|
||||
const resp = await this.$axios.post("/platform/club/applyJoin/clubAudit/doAudit", {
|
||||
ids: JSON.stringify(this.auditIdList),
|
||||
auditResult: this.auditResult,
|
||||
auditType: 1,
|
||||
applyType: this.pageForm.applyType,
|
||||
payed: this.payed
|
||||
if (!this.approvalOpinion.trim()) {
|
||||
this.$toast.fail("请输入审核意见")
|
||||
this.$nextTick(() => { this.auditShow = true })
|
||||
return
|
||||
}
|
||||
if (this.submitting) return
|
||||
this.submitting = true
|
||||
try {
|
||||
const resp = await this.$axios.post("/platform/h5/club/audit/doAudit", {
|
||||
approval: JSON.stringify({
|
||||
...this.approvalParam,
|
||||
bpmTaskApprovalType: this.approvalType,
|
||||
approvalOpinion: this.approvalOpinion
|
||||
})
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.auditIdList = []
|
||||
this.payedShow = false
|
||||
this.auditShow = false
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast(resp.msg)
|
||||
}
|
||||
} catch (error) {
|
||||
this.$toast.fail("审核提交失败")
|
||||
} finally {
|
||||
this.submitting = false
|
||||
}
|
||||
},
|
||||
openRevoke(taskId) {
|
||||
this.$dialog.confirm({ title: "提示", message: "您确定要撤回吗?" }).then(async () => {
|
||||
const resp = await this.$axios.post("/platform/h5/club/audit/revoke", { taskId })
|
||||
if (resp.code === 0) {
|
||||
this.$toast.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$toast(resp.msg)
|
||||
}
|
||||
}).catch(() => {})
|
||||
},
|
||||
pageData() {
|
||||
this.tableLoading = true
|
||||
this.pageForm.source = 1
|
||||
this.$axios.post("/platform/club/applyJoin/clubAudit/pageData", this.pageForm).then((resp) => {
|
||||
this.$axios.post("/platform/h5/club/audit/pageData", this.pageForm).then((resp) => {
|
||||
if (resp.code !== 0) {
|
||||
this.tableFinished = true
|
||||
this.$toast(resp.msg)
|
||||
return
|
||||
}
|
||||
this.tableData = this.tableData.concat(resp.data.list)
|
||||
this.pageForm.totalCount = resp.data.totalCount
|
||||
if (this.tableData.length >= this.pageForm.totalCount) {
|
||||
this.tableFinished = true
|
||||
} else {
|
||||
this.tableFinished = this.tableData.length >= this.pageForm.totalCount
|
||||
if (!this.tableFinished) {
|
||||
this.pageForm.pageNumber++
|
||||
}
|
||||
}).catch(() => {
|
||||
this.tableFinished = true
|
||||
this.$toast.fail("审核列表加载失败")
|
||||
}).finally(() => {
|
||||
this.tableLoading = false
|
||||
})
|
||||
},
|
||||
@@ -159,12 +159,14 @@ layout("/layouts/platform_h5.html"){
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.tableData = []
|
||||
this.tableFinished = false
|
||||
this.pageData()
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.$set(this.pageForm, "applyType", 1)
|
||||
this.$set(this.pageForm, "auditType", 3)
|
||||
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
|
||||
this.yearList.unshift({ value: i, text: i + "年" })
|
||||
}
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user