Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a09c6ae2c9 | ||
|
|
d197c78b9c | ||
|
|
dbca87f09c | ||
|
|
38b1a09e11 | ||
|
|
5cecb3b185 | ||
|
|
48ebcc148d | ||
|
|
50f82e05e5 | ||
|
|
94fa74af53 | ||
|
|
3c3e64f2be | ||
|
|
a18f77cd68 |
+16
-1
@@ -12,6 +12,7 @@ import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.sys.services.SysMsgService;
|
||||
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;
|
||||
@@ -63,6 +64,7 @@ public class ClubUserJoinApplyController {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
cua.*,
|
||||
club.clubName,
|
||||
u.loginname AS loginName,
|
||||
u.username AS userName,
|
||||
u.sex,
|
||||
@@ -74,6 +76,7 @@ public class ClubUserJoinApplyController {
|
||||
FROM
|
||||
club_user_apply cua
|
||||
LEFT JOIN vw_user u ON u.id = cua.userId
|
||||
LEFT JOIN sys_club club ON club.id = cua.clubId
|
||||
WHERE cua.id = @id
|
||||
""").setParam("id", id);
|
||||
sql.setCallback(Sqls.callback.map());
|
||||
@@ -87,10 +90,22 @@ public class ClubUserJoinApplyController {
|
||||
@SaCheckPermission("club.join.apply")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Result submit(ClubUserApply clubUserApply) {
|
||||
if (StrUtil.isNotBlank(clubUserApply.getId())) {
|
||||
ClubUserApply existingApply = dao.fetch(ClubUserApply.class, clubUserApply.getId());
|
||||
if (existingApply == null || !StrUtil.equals(existingApply.getUserId(), clubUserApply.getUserId())
|
||||
|| (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name()) && !StrUtil.equals(existingApply.getUserId(), SecurityUtil.getUserId()))) {
|
||||
return Result.error("申请不存在或无权编辑!");
|
||||
}
|
||||
BpmProcessInstance existingInstance = dao.fetch(BpmProcessInstance.class, Cnd.where(BpmProcessInstance::getProcessInstanceBusinessId, "=", existingApply.getId()));
|
||||
if (existingInstance == null || existingInstance.getProcessInstanceNodeCode() == null
|
||||
|| !List.of(10, 40, 70).contains(existingInstance.getProcessInstanceNodeCode())) {
|
||||
return Result.error("当前申请状态不允许编辑提交!");
|
||||
}
|
||||
}
|
||||
Sys_user user = dao.fetch(Sys_user.class, Cnd.where("id", "=", clubUserApply.getUserId()));
|
||||
if (!user.getMember() && !("劳务派遣一类".equals(user.getPreparedBy()) || "劳务派遣二类".equals(user.getPreparedBy()))) return Result.error("暂无申请加入协会资格!");
|
||||
|
||||
ClubUserApply userApply = dao.fetch(ClubUserApply.class, Cnd.where("userId", "=", clubUserApply.getUserId()).and("clubId", "=", clubUserApply.getClubId()).and("mode", "=", 1).desc(ClubUserApply::getApplyDate));
|
||||
ClubUserApply userApply = dao.fetch(ClubUserApply.class, Cnd.where("userId", "=", clubUserApply.getUserId()).and("clubId", "=", clubUserApply.getClubId()).and("mode", "=", 1).andEX("id", "!=", clubUserApply.getId()).desc(ClubUserApply::getApplyDate));
|
||||
if (ObjectUtil.isNotEmpty(userApply) && StrUtil.isNotBlank(userApply.getId())) {
|
||||
BpmProcessInstance processInstance = dao.fetch(BpmProcessInstance.class, Cnd.where(BpmProcessInstance::getProcessInstanceBusinessId, "=", userApply.getId()));
|
||||
if (!processInstance.getProcessInstanceStatus().equals(BpmProcessInstanceStatusEnum.COMPLETED.name())) {
|
||||
|
||||
+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()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
INSERT INTO sys_menu (id, parentId, path, name, aliasName, type, href, target, icon, showit, disabled, permission, note, location, hasChildren, createdBy, createdAt, updatedBy, updatedAt, delFlag, processKey, platform, moduleId, isQuickEntry) VALUES ('56e0941221324d04bea7329cb8f549c4', '', '0079', '协会审核', null, 'menu', '/platform/h5/club/audit', null, '/platform/sys/file/download?id=19cl7j298kj3logm5qlb0vslhi', 1, 0, 'h5.club.audit', null, 223, 0, '17a7f8ad3ee947b4a26175049a9c253d', 1790154555839, '17a7f8ad3ee947b4a26175049a9c253d', 1790155973918, 0, null, 'H5', '5710401a805645d59060f888eb863b60', 0);
|
||||
|
||||
INSERT INTO sys_role_menu (roleId, menuId) VALUES ('7f4a820d5a394bb8a0a92d6699afe7c8', '56e0941221324d04bea7329cb8f549c4');
|
||||
INSERT INTO sys_role_menu (roleId, menuId) VALUES ('53650479ee954e748fda6cceabdd2918', '56e0941221324d04bea7329cb8f549c4');
|
||||
INSERT INTO sys_role_menu (roleId, menuId) VALUES ('419844ad90f34ca58807e84224905f27', '56e0941221324d04bea7329cb8f549c4');
|
||||
INSERT INTO sys_role_menu (roleId, menuId) VALUES ('d8d30588c356492ebb8645bc2b593270', '56e0941221324d04bea7329cb8f549c4');
|
||||
INSERT INTO sys_role_menu (roleId, menuId) VALUES ('cf0a07b773f444d3800bc18216d8cffb', '56e0941221324d04bea7329cb8f549c4');
|
||||
@@ -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>
|
||||
|
||||
@@ -203,7 +203,7 @@ layout("/layouts/platform_h5.html"){
|
||||
|
||||
<!-- 提交按钮 -->
|
||||
<div class="submit-btn">
|
||||
<van-button round block type="info">提交申请</van-button>
|
||||
<van-button round block type="info" :disabled="formLoading">提交申请</van-button>
|
||||
</div>
|
||||
</van-form>
|
||||
<van-popup :style="{ height: '100%',width: '100%'}" position="right" safe-area-inset-bottom v-model="viewShow">
|
||||
@@ -227,6 +227,7 @@ layout("/layouts/platform_h5.html"){
|
||||
data() {
|
||||
return {
|
||||
viewShow: false,
|
||||
formLoading: false,
|
||||
formData: {
|
||||
clubId: "",
|
||||
clubName: "",
|
||||
@@ -284,6 +285,22 @@ layout("/layouts/platform_h5.html"){
|
||||
});
|
||||
},
|
||||
init() {
|
||||
const id = GetQueryString("id");
|
||||
if (id) {
|
||||
this.formLoading = true;
|
||||
this.$axios.post("/platform/club/join/apply/info", { id }).then(res => {
|
||||
if (res.code === 0 && res.data) {
|
||||
this.formData = { ...this.formData, ...res.data };
|
||||
this.isAgree = true;
|
||||
this.formLoading = false;
|
||||
} else {
|
||||
this.$toast.fail(res.msg || "申请信息加载失败");
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$toast.fail("申请信息加载失败");
|
||||
});
|
||||
return;
|
||||
}
|
||||
const user = this.$store.state.user;
|
||||
this.formData.userId = user.id;
|
||||
this.formData.userName = user.username;
|
||||
@@ -298,6 +315,7 @@ layout("/layouts/platform_h5.html"){
|
||||
this.formData.governmentPosition = user.governmentPosition;
|
||||
},
|
||||
doSubmit() {
|
||||
if (this.formLoading) return;
|
||||
if (!this.isAgree) {
|
||||
this.$toast.fail("请先阅读并同意协议");
|
||||
return;
|
||||
@@ -309,7 +327,9 @@ layout("/layouts/platform_h5.html"){
|
||||
this.$axios.post("/platform/club/join/apply/submit", this.formData).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast(res.msg);
|
||||
this.$pjaxReplace("/platform/club/join/mine")
|
||||
this.$pjaxReplace("/platform/h5/club/mine")
|
||||
} else {
|
||||
this.$toast.fail(res.msg);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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 get-container="body" :overlay="true" :overlay-style="{ backgroundColor: 'rgba(0, 0, 0, 0.5)' }" :lazy-render="false" :before-close="beforeAuditClose">
|
||||
<van-field v-model="approvalOpinion" type="textarea" placeholder="请输入审核意见" :error-message="approvalOpinionError" @input="approvalOpinionError = ''"></van-field>
|
||||
</van-dialog>
|
||||
</div>
|
||||
|
||||
@@ -84,19 +62,21 @@ layout("/layouts/platform_h5.html"){
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
showAction: true,
|
||||
payedShow: false,
|
||||
payed: false,
|
||||
auditShow: false,
|
||||
approvalOpinion: "",
|
||||
approvalOpinionError: "",
|
||||
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 +84,83 @@ 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.approvalOpinionError = ""
|
||||
this.auditShow = true
|
||||
},
|
||||
async beforeAuditClose(action, done) {
|
||||
if (action !== 'confirm') {
|
||||
done()
|
||||
return
|
||||
}
|
||||
if (!this.approvalOpinion.trim()) {
|
||||
this.approvalOpinionError = "请输入审核意见"
|
||||
done(false)
|
||||
return
|
||||
}
|
||||
done(await this.doAudit() === 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.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.doSearch()
|
||||
return true
|
||||
} 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 +168,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()
|
||||
}
|
||||
})
|
||||
|
||||
@@ -29,6 +29,24 @@ const clubUserJoin = {
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
<div v-for="nodeTask in viewData.nodeTasks" :key="nodeTask.id">
|
||||
<van-cell-group :title="nodeTask.nodeName">
|
||||
<div v-for="task in nodeTask.tasks" :key="task.id">
|
||||
<van-cell title="审核人">{{ task.actualOwnerLoginName }}-{{ task.actualOwnerUserName }}</van-cell>
|
||||
<van-cell title="审核时间">{{ task.endOn }}</van-cell>
|
||||
<van-cell title="审核结果">
|
||||
<template v-if="task.extVariable">
|
||||
<van-tag type="success" v-if="task.extVariable.bpmTaskApprovalType === 'PASS'">同意</van-tag>
|
||||
<van-tag type="danger" v-if="task.extVariable.bpmTaskApprovalType === 'BACK'">退回重新填写</van-tag>
|
||||
<van-tag type="danger" v-if="task.extVariable.bpmTaskApprovalType === 'REJECT'">拒绝</van-tag>
|
||||
</template>
|
||||
</van-cell>
|
||||
<van-cell title="审核意见">
|
||||
<div style="white-space: pre-wrap; overflow-wrap: anywhere; text-align: right">{{ task.extVariable && task.extVariable.approvalOpinion }}</div>
|
||||
</van-cell>
|
||||
</div>
|
||||
</van-cell-group>
|
||||
</div>
|
||||
</div>
|
||||
`,
|
||||
data() {
|
||||
|
||||
@@ -81,6 +81,9 @@ layout("/layouts/platform_h5.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openEdit(row) {
|
||||
this.$pjaxReplace("/platform/h5/club/apply?id=" + encodeURIComponent(row.id))
|
||||
},
|
||||
onOpen(row) {
|
||||
this.viewShow = true
|
||||
this.$nextTick(() => {
|
||||
|
||||
Reference in New Issue
Block a user