commit
This commit is contained in:
+1
-1
@@ -49,7 +49,7 @@ public class ExecutiveCommitteeFormalPushController {
|
|||||||
@Inject
|
@Inject
|
||||||
private BaseService baseService;
|
private BaseService baseService;
|
||||||
|
|
||||||
@At("/index")
|
@At("")
|
||||||
@SaCheckPermission("executiveCommittee.formalPush")
|
@SaCheckPermission("executiveCommittee.formalPush")
|
||||||
@Ok("beetl:/platform/zhgh/democratic/executiveCommittee/formalPush/index.html")
|
@Ok("beetl:/platform/zhgh/democratic/executiveCommittee/formalPush/index.html")
|
||||||
public void index() {
|
public void index() {
|
||||||
|
|||||||
+105
-68
@@ -1,22 +1,21 @@
|
|||||||
package com.budwk.app.zhgh.democratic.executiveCommittee.controller;
|
package com.budwk.app.zhgh.democratic.executiveCommittee.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.lang.Validator;
|
import cn.hutool.core.lang.Validator;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.extra.pinyin.PinyinUtil;
|
import cn.hutool.extra.pinyin.PinyinUtil;
|
||||||
import com.budwk.app.base.annotation.SLog;
|
import com.budwk.app.base.annotation.SLog;
|
||||||
import com.budwk.app.base.constant.RoleConstant;
|
|
||||||
import com.budwk.app.base.param.PageForm;
|
import com.budwk.app.base.param.PageForm;
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
import com.budwk.app.base.service.BaseService;
|
import com.budwk.app.base.service.BaseService;
|
||||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
import com.budwk.app.zhgh.democratic.executiveCommittee.models.ExecutiveCommitteeTwoPush;
|
import com.budwk.app.zhgh.democratic.executiveCommittee.models.ExecutiveCommitteeConfig;
|
||||||
|
import com.budwk.app.zhgh.democratic.executiveCommittee.models.ExecutiveCommitteeOnePush;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nutz.dao.Chain;
|
|
||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
import org.nutz.dao.Dao;
|
import org.nutz.dao.Dao;
|
||||||
import org.nutz.dao.Sqls;
|
import org.nutz.dao.Sqls;
|
||||||
@@ -30,8 +29,10 @@ import org.nutz.mvc.annotation.Ok;
|
|||||||
import org.nutz.mvc.annotation.Param;
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zhf
|
* @author zhf
|
||||||
@@ -42,7 +43,7 @@ import java.util.Map;
|
|||||||
@At("/platform/executiveCommittee/preparatoryGroupPush")
|
@At("/platform/executiveCommittee/preparatoryGroupPush")
|
||||||
@Ok("json:full")
|
@Ok("json:full")
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Api(tags = "执委会推选-正式委员录入")
|
@Api(tags = "执委会推选-筹备组推选")
|
||||||
public class ExecutiveCommitteePushController {
|
public class ExecutiveCommitteePushController {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -62,49 +63,38 @@ public class ExecutiveCommitteePushController {
|
|||||||
public Result pageData(PageForm pageForm,
|
public Result pageData(PageForm pageForm,
|
||||||
String teacherMeetId,
|
String teacherMeetId,
|
||||||
String delegationId,
|
String delegationId,
|
||||||
String unionId,
|
String unionId) {
|
||||||
String roleCode) {
|
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
t1.*,
|
t1.*,
|
||||||
t2.loginName,
|
t2.name AS unitName,
|
||||||
t2.userName,
|
t3.name unionName,
|
||||||
t3.name AS unitName,
|
t4.sex,
|
||||||
t4.name unionName,
|
|
||||||
t5.sex,
|
|
||||||
TIMESTAMPDIFF(
|
TIMESTAMPDIFF(
|
||||||
YEAR,
|
YEAR,
|
||||||
t5.birthday,
|
t4.birthday,
|
||||||
CURDATE()) AS age,
|
CURDATE()) AS age,
|
||||||
t6.name AS delegationName
|
t5.name AS delegationName
|
||||||
FROM
|
FROM
|
||||||
`executive_committee_two_push` t1
|
`executive_committee_one_push` t1
|
||||||
LEFT JOIN executive_committee_one_push t2 on t2.userId=t1.userId and t2.teacherMeetId=t1.teacherMeetId
|
LEFT JOIN sys_unit t2 ON t1.unitId = t2.id
|
||||||
LEFT JOIN sys_unit t3 ON t2.unitId = t3.id
|
LEFT JOIN `sys_union` t3 ON t3.id = t2.unionid
|
||||||
LEFT JOIN `sys_union` t4 ON t4.id = t3.unionid
|
LEFT JOIN `vw_user` t4 ON t4.id = t1.userId
|
||||||
LEFT JOIN `vw_user` t5 ON t5.id = t1.userId
|
LEFT JOIN teacher_congress_delegation t5 ON t5.id = t1.delegationId
|
||||||
LEFT JOIN teacher_congress_delegation t6 ON t6.id = t2.delegationId
|
|
||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
cnd.andEX("t1.teacherMeetId", "=", teacherMeetId);
|
cnd.andEX("t1.teacherMeetId", "=", teacherMeetId);
|
||||||
cnd.andEX("t2.delegationId", "=", delegationId);
|
cnd.andEX("t1.delegationId", "=", delegationId);
|
||||||
cnd.andEX("t1.roleCode", "=", roleCode);
|
cnd.andEX("t3.id", "=", unionId);
|
||||||
cnd.andEX("t1.isFormal", "=", true);
|
cnd.andEX("t1.addType", "=", 2);
|
||||||
if (StpUtil.hasRole(RoleConstant.SYSADMIN.name()) ||
|
|
||||||
StpUtil.hasRole(RoleConstant.SCHOOL_UNION_ADMIN.name()) ||
|
|
||||||
StpUtil.hasRole(RoleConstant.BRANCH_UNION_CHAIRMAN.name())) {
|
|
||||||
cnd.andEX("t4.id", "=", unionId);
|
|
||||||
} else {
|
|
||||||
cnd.andEX("t4.id", "=", SecurityUtil.getUnionId());
|
|
||||||
}
|
|
||||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||||
SqlExpressionGroup group = new SqlExpressionGroup();
|
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||||
group.orLike("t2.userName", pageForm.getSearchKeyword());
|
group.orLike("t1.userName", pageForm.getSearchKeyword());
|
||||||
group.orLike("t2.loginName", pageForm.getSearchKeyword());
|
group.orLike("t1.loginName", pageForm.getSearchKeyword());
|
||||||
cnd.and(group);
|
cnd.and(group);
|
||||||
}
|
}
|
||||||
cnd.asc("t6.code").asc("t2.firstLetter");
|
cnd.asc("t5.code").asc("t1.firstLetter");
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
return Result.success(baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql));
|
return Result.success(baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql));
|
||||||
}
|
}
|
||||||
@@ -114,53 +104,93 @@ public class ExecutiveCommitteePushController {
|
|||||||
@SaCheckPermission("executiveCommittee.preparatoryGroupPush")
|
@SaCheckPermission("executiveCommittee.preparatoryGroupPush")
|
||||||
@ApiOperation("查询可以推选委员和已经推选的人员")
|
@ApiOperation("查询可以推选委员和已经推选的人员")
|
||||||
public Result getDelegationUser(String teacherMeetId) {
|
public Result getDelegationUser(String teacherMeetId) {
|
||||||
List<ExecutiveCommitteeTwoPush> twoPushList = dao.query(ExecutiveCommitteeTwoPush.class,
|
List<ExecutiveCommitteeOnePush> userValue = dao.query(ExecutiveCommitteeOnePush.class,
|
||||||
Cnd.where("teacherMeetId", "=", teacherMeetId).and(ExecutiveCommitteeTwoPush::getRoleCode, "is not", null));
|
Cnd.where("teacherMeetId", "=", teacherMeetId)
|
||||||
|
.and("addType", "=", 2));
|
||||||
List<ExecutiveCommitteeTwoPush> userValue = twoPushList.stream().filter(ExecutiveCommitteeTwoPush::getIsFormal).toList();
|
List<ExecutiveCommitteeOnePush> onePushList = dao.query(ExecutiveCommitteeOnePush.class, Cnd.NEW());
|
||||||
List<String> userIds = userValue.stream().map(ExecutiveCommitteeTwoPush::getUserId).toList();
|
List<String> userIds = onePushList.stream().map(ExecutiveCommitteeOnePush::getUserId).collect(Collectors.toList());
|
||||||
|
ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class,
|
||||||
|
Cnd.where("teacherMeetId", "=", teacherMeetId));
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.andEX("db.sessionId", "=", teacherMeetId);
|
||||||
|
cnd.andEX("db.userId", "not in", userIds);
|
||||||
|
cnd.andEX("db.userId", "!=", SecurityUtil.getUserId());
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
t2.id userId,
|
db.*,
|
||||||
t2.username userName,
|
u.professionalTitle,
|
||||||
t2.loginname loginName,
|
u.professionalLevel,
|
||||||
t2.unitName,
|
TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) AS age
|
||||||
t2.sex,
|
|
||||||
t2.professionalTitle,
|
|
||||||
t2.professionalLevel,
|
|
||||||
t1.roleCode,
|
|
||||||
TIMESTAMPDIFF(
|
|
||||||
YEAR,
|
|
||||||
t2.birthday,
|
|
||||||
CURDATE()) age
|
|
||||||
FROM
|
FROM
|
||||||
executive_committee_two_push t1
|
teacher_congress_delegate db
|
||||||
LEFT JOIN `vw_user` t2 ON t1.userId = t2.id
|
LEFT JOIN `vw_user` u ON db.userId = u.id
|
||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
|
||||||
cnd.andEX("t1.teacherMeetId", "=", teacherMeetId);
|
|
||||||
cnd.andEX("t1.userId", "not in", userIds);
|
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
List<NutMap> userData = baseService.listMap(sql);
|
List<NutMap> userData = baseService.listMap(sql);
|
||||||
return Result.success(Map.of("userData", userData, "userValue", userValue));
|
return Result.success(Map.of("userData", userData, "userValue", userValue,"prepareGroupQuotaCount",config.getPrepareGroupQuotaCount()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@SaCheckPermission("executiveCommittee.preparatoryGroupPush")
|
@SaCheckPermission("executiveCommittee.preparatoryGroupPush")
|
||||||
@SLog(tag = "执委会推选-正式委员录入", msg = "推选委员")
|
@SLog(tag = "执委会推选-筹备组推选", msg = "推选委员")
|
||||||
public Result addOnePush(@Param("userValue") String[] userValue,
|
public Result addOnePush(@Param("userValue") String[] userValue,
|
||||||
String teacherMeetId) {
|
String teacherMeetId) {
|
||||||
try {
|
try {
|
||||||
if (ObjectUtil.isEmpty(userValue)) {
|
|
||||||
return Result.error("请选择要录入的委员!");
|
ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class,
|
||||||
|
Cnd.where("teacherMeetId", "=", teacherMeetId));
|
||||||
|
if (ObjectUtil.isEmpty(config)) {
|
||||||
|
return Result.error("请先配置基础信息");
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isEmpty(teacherMeetId)) {
|
if (config.getFirstStartTime().getTime() > System.currentTimeMillis()) {
|
||||||
return Result.error("请选择教代会!");
|
return Result.error("请等待一次预选开始时间");
|
||||||
}
|
}
|
||||||
List<ExecutiveCommitteeTwoPush> twoPushList = dao.query(ExecutiveCommitteeTwoPush.class, Cnd.where(ExecutiveCommitteeTwoPush::getTeacherMeetId, "=", teacherMeetId).and(ExecutiveCommitteeTwoPush::getUserId, "in", userValue));
|
if (config.getFirstEndTime().getTime() < System.currentTimeMillis()) {
|
||||||
List<String> ids = twoPushList.stream().map(ExecutiveCommitteeTwoPush::getId).toList();
|
return Result.error("一次预选已结束");
|
||||||
dao.update(ExecutiveCommitteeTwoPush.class, Chain.make("isFormal", true), Cnd.where("id", "in", ids));
|
}
|
||||||
|
|
||||||
|
int dbCount = dao.count(ExecutiveCommitteeOnePush.class,
|
||||||
|
Cnd.where("teacherMeetId", "=", teacherMeetId)
|
||||||
|
.and("addType", "=", 2));
|
||||||
|
if (dbCount + userValue.length > config.getPrepareGroupQuotaCount()) {
|
||||||
|
return Result.error("推选人数限制" + config.getPrepareGroupQuotaCount() + "人");
|
||||||
|
}
|
||||||
|
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
t1.*
|
||||||
|
FROM
|
||||||
|
teacher_congress_delegate t1
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.and("t1.sessionId", "=", teacherMeetId);
|
||||||
|
cnd.andEX("t1.userId", "in", userValue);
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
List<NutMap> dbList = baseService.listMap(sql);
|
||||||
|
|
||||||
|
List<ExecutiveCommitteeOnePush> list = new ArrayList<>();
|
||||||
|
for (String id : userValue) {
|
||||||
|
NutMap jdhDb = dbList.stream().filter(v -> v.getString("userId").equals(id)).findFirst().orElse(null);
|
||||||
|
if (ObjectUtil.isEmpty(jdhDb)) {
|
||||||
|
return Result.error("请选择正确的代表!");
|
||||||
|
}
|
||||||
|
ExecutiveCommitteeOnePush onePush = new ExecutiveCommitteeOnePush();
|
||||||
|
onePush.setPushDate(DateUtil.date());
|
||||||
|
onePush.setUserId(jdhDb.getString("userId"));
|
||||||
|
onePush.setUserName(jdhDb.getString("userName"));
|
||||||
|
onePush.setLoginName(jdhDb.getString("loginName"));
|
||||||
|
onePush.setDelegationId(jdhDb.getString("delegationId"));
|
||||||
|
onePush.setUnionId(jdhDb.getString("unionId"));
|
||||||
|
onePush.setUnitId(jdhDb.getString("unitId"));
|
||||||
|
onePush.setTeacherMeetId(teacherMeetId);
|
||||||
|
String firstLetter = String.valueOf(getFirstLetter(jdhDb.getString("userName")));
|
||||||
|
onePush.setFirstLetter(firstLetter);
|
||||||
|
onePush.setAddType(2);
|
||||||
|
list.add(onePush);
|
||||||
|
}
|
||||||
|
dao.insert(list);
|
||||||
return Result.success("添加成功!");
|
return Result.success("添加成功!");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -172,9 +202,16 @@ public class ExecutiveCommitteePushController {
|
|||||||
@SaCheckPermission("executiveCommittee.preparatoryGroupPush")
|
@SaCheckPermission("executiveCommittee.preparatoryGroupPush")
|
||||||
@SLog(tag = "执委会推选-筹备组推选", msg = "删除推选的人")
|
@SLog(tag = "执委会推选-筹备组推选", msg = "删除推选的人")
|
||||||
public Result doDelete(@Valid String id, @Valid String teacherMeetId) {
|
public Result doDelete(@Valid String id, @Valid String teacherMeetId) {
|
||||||
dao.update(ExecutiveCommitteeTwoPush.class, Chain.make("isFormal", false), Cnd.where("id", "=", id));
|
ExecutiveCommitteeConfig config = dao.fetch(ExecutiveCommitteeConfig.class,
|
||||||
return Result.success("删除成功!");
|
Cnd.where("teacherMeetId", "=", teacherMeetId));
|
||||||
|
if (ObjectUtil.isEmpty(config)) {
|
||||||
|
return Result.error("请先配置基础信息");
|
||||||
|
}
|
||||||
|
int num = dao.clear(ExecutiveCommitteeOnePush.class, Cnd.where("id", "=", id));
|
||||||
|
return num >= 0 ? Result.success() : Result.error();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static char getFirstLetter(String str) {
|
public static char getFirstLetter(String str) {
|
||||||
if (str == null || str.isEmpty()) {
|
if (str == null || str.isEmpty()) {
|
||||||
throw new IllegalArgumentException("字符串不能为空");
|
throw new IllegalArgumentException("字符串不能为空");
|
||||||
|
|||||||
+1
@@ -40,6 +40,7 @@ public class ExecutiveCommitteeMemberServiceImpl extends BaseServiceImpl impleme
|
|||||||
( SELECT count( 1 ) FROM executive_committee_two_push tp WHERE tp.userId = op.userId ) as pushCount,
|
( SELECT count( 1 ) FROM executive_committee_two_push tp WHERE tp.userId = op.userId ) as pushCount,
|
||||||
CASE op.addType
|
CASE op.addType
|
||||||
WHEN 1 THEN '执委会委员'
|
WHEN 1 THEN '执委会委员'
|
||||||
|
WHEN 2 THEN '筹备组推选'
|
||||||
WHEN 3 THEN '工会委员会委员'
|
WHEN 3 THEN '工会委员会委员'
|
||||||
ELSE '未知'
|
ELSE '未知'
|
||||||
END AS addTypeName
|
END AS addTypeName
|
||||||
|
|||||||
+88
@@ -1,22 +1,30 @@
|
|||||||
package com.budwk.app.zhgh.democratic.proposal.controller.transact;
|
package com.budwk.app.zhgh.democratic.proposal.controller.transact;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import cn.hutool.core.lang.Dict;
|
import cn.hutool.core.lang.Dict;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.budwk.app.base.constant.RoleConstant;
|
import com.budwk.app.base.constant.RoleConstant;
|
||||||
import com.budwk.app.base.page.Pagination;
|
import com.budwk.app.base.page.Pagination;
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
import com.budwk.app.flow.constant.FlowConst;
|
import com.budwk.app.flow.constant.FlowConst;
|
||||||
|
import com.budwk.app.flow.entity.ProcessTask;
|
||||||
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
||||||
import com.budwk.app.flow.service.FlowCommonService;
|
import com.budwk.app.flow.service.FlowCommonService;
|
||||||
|
import com.budwk.app.flow.service.ProcessTaskService;
|
||||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
|
import com.budwk.app.zhgh.democratic.proposal.models.ProposalInfo;
|
||||||
import com.budwk.app.zhgh.democratic.proposal.models.ProposalMerge;
|
import com.budwk.app.zhgh.democratic.proposal.models.ProposalMerge;
|
||||||
import com.budwk.app.zhgh.democratic.proposal.param.ProposalSearchParam;
|
import com.budwk.app.zhgh.democratic.proposal.param.ProposalSearchParam;
|
||||||
import com.budwk.app.zhgh.democratic.proposal.service.ProposalCommitteeFilingService;
|
import com.budwk.app.zhgh.democratic.proposal.service.ProposalCommitteeFilingService;
|
||||||
|
import com.budwk.app.zhgh.democratic.proposal.service.common.ProposalCommonService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
|
import org.nutz.dao.Chain;
|
||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
import org.nutz.dao.Dao;
|
import org.nutz.dao.Dao;
|
||||||
import org.nutz.dao.Sqls;
|
import org.nutz.dao.Sqls;
|
||||||
@@ -26,12 +34,14 @@ import org.nutz.ioc.loader.annotation.Inject;
|
|||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
import org.nutz.json.Json;
|
import org.nutz.json.Json;
|
||||||
import org.nutz.lang.random.R;
|
import org.nutz.lang.random.R;
|
||||||
|
import org.nutz.lang.util.NutMap;
|
||||||
import org.nutz.mvc.annotation.At;
|
import org.nutz.mvc.annotation.At;
|
||||||
import org.nutz.mvc.annotation.Ok;
|
import org.nutz.mvc.annotation.Ok;
|
||||||
import org.nutz.mvc.annotation.Param;
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
@IocBean
|
@IocBean
|
||||||
@At("/platform/proposal/committeeFiling")
|
@At("/platform/proposal/committeeFiling")
|
||||||
@@ -47,6 +57,12 @@ public class ProposalCommitteeFilingController {
|
|||||||
@Inject
|
@Inject
|
||||||
private FlowCommonService flowCommonService;
|
private FlowCommonService flowCommonService;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private ProposalCommonService proposalCommonService;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private ProcessTaskService processTaskService;
|
||||||
|
|
||||||
|
|
||||||
@At("")
|
@At("")
|
||||||
@Ok("beetl:/platform/zhgh/democratic/proposal/transact/committeeFiling/index.html")
|
@Ok("beetl:/platform/zhgh/democratic/proposal/transact/committeeFiling/index.html")
|
||||||
@@ -121,6 +137,7 @@ public class ProposalCommitteeFilingController {
|
|||||||
|
|
||||||
List<Integer> taskIds = (List<Integer>) args.get("processTaskIds");
|
List<Integer> taskIds = (List<Integer>) args.get("processTaskIds");
|
||||||
List<String> proposalIds = (List<String>) args.get("proposalIds");
|
List<String> proposalIds = (List<String>) args.get("proposalIds");
|
||||||
|
List<NutMap> proposals = (List<NutMap>) args.get("proposals");
|
||||||
|
|
||||||
// 记录提案并案
|
// 记录提案并案
|
||||||
dao.clear(ProposalMerge.class, Cnd.where(ProposalMerge::getProposalId, "in", proposalIds));
|
dao.clear(ProposalMerge.class, Cnd.where(ProposalMerge::getProposalId, "in", proposalIds));
|
||||||
@@ -136,10 +153,81 @@ public class ProposalCommitteeFilingController {
|
|||||||
for (Integer taskId : taskIds) {
|
for (Integer taskId : taskIds) {
|
||||||
Dict taskArgs = args.clone();
|
Dict taskArgs = args.clone();
|
||||||
taskArgs.put(FlowConst.PROCESS_TASK_ID_KEY, taskId);
|
taskArgs.put(FlowConst.PROCESS_TASK_ID_KEY, taskId);
|
||||||
|
NutMap proposal = proposals.stream().filter(v -> v.getInt("taskId") == taskId).findFirst().orElse(null);
|
||||||
|
taskArgs.put("tf_proposalId", proposal.getString("id"));
|
||||||
|
taskArgs.put("tf_code", proposal.getString("tf_code"));
|
||||||
|
taskArgs.put("tf_oldCode", proposal.getString("tf_oldCode"));
|
||||||
|
taskArgs.put("tf_typeId", proposal.getString("tf_typeId"));
|
||||||
|
taskArgs.put("tf_oldTypeId", proposal.getString("tf_oldTypeId"));
|
||||||
|
if (!proposal.getString("tf_code").equals(proposal.getString("tf_oldCode"))) {
|
||||||
|
dao.update(ProposalInfo.class, Chain.make("code", proposal.getString("tf_code")), Cnd.where(ProposalInfo::getId, "=", proposal.getString("id")));
|
||||||
|
}
|
||||||
|
if (!proposal.getString("tf_typeId").equals(proposal.getString("tf_oldTypeId"))) {
|
||||||
|
dao.update(ProposalInfo.class, Chain.make("typeId", proposal.getString("tf_typeId")), Cnd.where(ProposalInfo::getId, "=", proposal.getString("id")));
|
||||||
|
}
|
||||||
flowCommonService.executeTask(taskArgs);
|
flowCommonService.executeTask(taskArgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@At
|
||||||
|
@SaCheckLogin
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
@SaCheckPermission("proposal.committeeFiling")
|
||||||
|
@ApiOperation("撤销任务")
|
||||||
|
public Result revokeTask(@Param("taskId") Long taskId, @Param("proposalId") String proposalId) {
|
||||||
|
// 单条撤回
|
||||||
|
List<String> mergeProposalIds = proposalCommonService.mergeProposal(proposalId);
|
||||||
|
if (ObjectUtil.isEmpty(mergeProposalIds)) {
|
||||||
|
//撤回要把修改的提案编号和提案类型同步改回来
|
||||||
|
ProcessTask processTask = dao.fetch(ProcessTask.class, taskId);
|
||||||
|
Dict processTaskArgs = JSONUtil.toBean(processTask.getVariable(), Dict.class);
|
||||||
|
String tfOldCode = processTaskArgs.getStr("tf_oldCode");
|
||||||
|
String tfOldTypeId = processTaskArgs.getStr("tf_oldTypeId");
|
||||||
|
dao.update(ProposalInfo.class,
|
||||||
|
Chain.make("code", tfOldCode).add("typeId", tfOldTypeId),
|
||||||
|
Cnd.where(ProposalInfo::getId, "=", proposalId));
|
||||||
|
|
||||||
|
flowCommonService.revokeTask(taskId);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
// 并案撤回
|
||||||
|
ProcessTask thisTask = dao.fetch(ProcessTask.class, taskId);
|
||||||
|
List<ProcessTask> mergeTasks = processTaskService.getDoneTaskByBizIdTaskName(mergeProposalIds, thisTask.getTaskName());
|
||||||
|
for (ProcessTask mergeTask : mergeTasks) {
|
||||||
|
//撤回要把修改的提案编号和提案类型同步改回来
|
||||||
|
Dict processTaskArgs = JSONUtil.toBean(mergeTask.getVariable(), Dict.class);
|
||||||
|
String tfOldCode = processTaskArgs.getStr("tf_oldCode");
|
||||||
|
String tfOldTypeId = processTaskArgs.getStr("tf_oldTypeId");
|
||||||
|
dao.update(ProposalInfo.class,
|
||||||
|
Chain.make("code", tfOldCode).add("typeId", tfOldTypeId),
|
||||||
|
Cnd.where(ProposalInfo::getId, "=", processTaskArgs.getStr("tf_proposalId")));
|
||||||
|
flowCommonService.revokeTask(mergeTask.getId());
|
||||||
|
}
|
||||||
|
// 删除并案信息
|
||||||
|
dao.clear(ProposalMerge.class, Cnd.where(ProposalMerge::getProposalId, "in", mergeProposalIds));
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ApiOperation("执行任务")
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
@SaCheckPermission("proposal.committeeFiling")
|
||||||
|
public Result executeTask(@Param("data") String data) {
|
||||||
|
Dict args = Json.fromJson(Dict.class, data);
|
||||||
|
|
||||||
|
if (Objects.isNull(args.getStr("proposalId"))) {
|
||||||
|
return Result.error("参数错误!");
|
||||||
|
}
|
||||||
|
// 审核修改提案编号和提案类型
|
||||||
|
dao.update(
|
||||||
|
ProposalInfo.class,
|
||||||
|
Chain.make("code", args.getStr("tf_code")).add("typeId", args.getStr("tf_typeId")),
|
||||||
|
Cnd.where(ProposalInfo::getId, "=", args.getStr("proposalId")));
|
||||||
|
flowCommonService.executeTask(args);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-12
@@ -17,7 +17,7 @@ import com.budwk.app.flow.service.FlowCommonService;
|
|||||||
import com.budwk.app.flow.service.ProcessTaskService;
|
import com.budwk.app.flow.service.ProcessTaskService;
|
||||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
import com.budwk.app.zhgh.democratic.proposal.models.ProposalInfo;
|
import com.budwk.app.zhgh.democratic.proposal.models.ProposalMerge;
|
||||||
import com.budwk.app.zhgh.democratic.proposal.param.ProposalSearchParam;
|
import com.budwk.app.zhgh.democratic.proposal.param.ProposalSearchParam;
|
||||||
import com.budwk.app.zhgh.democratic.proposal.service.ProposalCommitteeFilingUnitService;
|
import com.budwk.app.zhgh.democratic.proposal.service.ProposalCommitteeFilingUnitService;
|
||||||
import com.budwk.app.zhgh.democratic.proposal.service.common.ProposalCommonService;
|
import com.budwk.app.zhgh.democratic.proposal.service.common.ProposalCommonService;
|
||||||
@@ -148,8 +148,7 @@ public class ProposalCommitteeFilingUnitController {
|
|||||||
flowCommonService.executeTask(cloneArgs);
|
flowCommonService.executeTask(cloneArgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
ProposalInfo info = proposalCommonService.fetch(proposalId);
|
baseService.dao().clear(ProposalMerge.class, Cnd.where(ProposalMerge::getProposalId, "in", mergeProposalIds));
|
||||||
info.setCaseFilingResult(args.getStr("caseFilingResult"));
|
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,30 +177,30 @@ public class ProposalCommitteeFilingUnitController {
|
|||||||
@At
|
@At
|
||||||
@SaCheckPermission("proposal.committeeFilingUnit")
|
@SaCheckPermission("proposal.committeeFilingUnit")
|
||||||
public Result doUpData(){
|
public Result doUpData(){
|
||||||
List<ProcessTask> tasks = baseService.dao().query(ProcessTask.class, Cnd.where("taskName", "=", "personnelOffice"));
|
List<ProcessTask> tasks = baseService.dao().query(ProcessTask.class, Cnd.where("taskName", "=", "committee"));
|
||||||
List<Long> list = tasks.stream().map(ProcessTask::getId).toList();
|
List<Long> list = tasks.stream().map(ProcessTask::getId).toList();
|
||||||
|
|
||||||
List<ProcessTaskActor> actorList = baseService.dao().query(ProcessTaskActor.class, Cnd.where(ProcessTaskActor::getProcessTaskId, "in", list));
|
List<ProcessTaskActor> actorList = baseService.dao().query(ProcessTaskActor.class, Cnd.where(ProcessTaskActor::getProcessTaskId, "in", list));
|
||||||
|
|
||||||
List<ProcessInstance> instanceList = baseService.dao().query(ProcessInstance.class, Cnd.where(ProcessInstance::getProcessDefineId, "=", 396));
|
List<ProcessInstance> instanceList = baseService.dao().query(ProcessInstance.class, Cnd.where(ProcessInstance::getProcessDefineId, "=", 399));
|
||||||
|
|
||||||
for (ProcessTask task : tasks) {
|
for (ProcessTask task : tasks) {
|
||||||
task.setTaskName("committee");
|
task.setTaskName("committee");
|
||||||
task.setDisplayName("提案委员会立案");
|
task.setDisplayName("人事处审核");
|
||||||
task.setFormKey("/platform/proposal/committee");
|
task.setFormKey("/platform/proposal/committee");
|
||||||
task.setH5FormKey("");
|
task.setH5FormKey("");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ProcessTaskActor actor : actorList) {
|
for (ProcessTaskActor actor : actorList) {
|
||||||
actor.setActorId("1fb89886bf4c43dcb48409c83d3363c3");
|
actor.setActorId("a2e5874eb28e42e9811f1af4d4bcb5a5");
|
||||||
actor.setActorAccount("018054");
|
actor.setActorAccount("001094");
|
||||||
actor.setActorName("赵丽霞");
|
actor.setActorName("郑胜水");
|
||||||
actor.setActorUnitName("工会");
|
actor.setActorUnitName("人事处(党委教师工作部、人才工作办公室)");
|
||||||
actor.setActorUnitId("0011");
|
actor.setActorUnitId("1001");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ProcessInstance instance : instanceList) {
|
for (ProcessInstance instance : instanceList) {
|
||||||
instance.setProcessDefineId(399L);
|
instance.setProcessDefineId(400L);
|
||||||
}
|
}
|
||||||
|
|
||||||
baseService.update(tasks);
|
baseService.update(tasks);
|
||||||
|
|||||||
+1
@@ -67,6 +67,7 @@ layout("/layouts/platform.html"){
|
|||||||
:data="tableData"
|
:data="tableData"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
@sort-change="pageOrder"
|
@sort-change="pageOrder"
|
||||||
|
v-loading="tableLoading"
|
||||||
>
|
>
|
||||||
<el-table-column :index="indexMethod" align="center" header-align="center"
|
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||||
label="序号"
|
label="序号"
|
||||||
|
|||||||
+1
-21
@@ -41,19 +41,6 @@ layout("/layouts/platform.html"){
|
|||||||
v-for="item in delegations"></el-option>
|
v-for="item in delegations"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="委员类别">
|
|
||||||
<el-select
|
|
||||||
v-model="pageForm.roleCode"
|
|
||||||
filterable
|
|
||||||
placeholder="请选择委员类别"
|
|
||||||
clearable
|
|
||||||
style="width:100%;"
|
|
||||||
>
|
|
||||||
<el-option label="执委会委员" value="1"></el-option>
|
|
||||||
<el-option label="工会委员会委员" value="2"></el-option>
|
|
||||||
<el-option label="经审委员会委员" value="3"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</search-item>
|
|
||||||
</search>
|
</search>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card shadow="never" class="mt10">
|
<el-card shadow="never" class="mt10">
|
||||||
@@ -63,7 +50,7 @@ layout("/layouts/platform.html"){
|
|||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="$refs.onePushFormalRef.onOpen(pageForm.teacherMeetId)"
|
@click="$refs.onePushFormalRef.onOpen(pageForm.teacherMeetId)"
|
||||||
>正式委员录入
|
>委员推选
|
||||||
</el-button>
|
</el-button>
|
||||||
</table-tool>
|
</table-tool>
|
||||||
|
|
||||||
@@ -86,13 +73,6 @@ layout("/layouts/platform.html"){
|
|||||||
<el-table-column align="center" label="代表团" prop="delegationName"></el-table-column>
|
<el-table-column align="center" label="代表团" prop="delegationName"></el-table-column>
|
||||||
<el-table-column align="center" label="所属工会" prop="unionName"></el-table-column>
|
<el-table-column align="center" label="所属工会" prop="unionName"></el-table-column>
|
||||||
<el-table-column align="center" label="所属单位" prop="unitName"></el-table-column>
|
<el-table-column align="center" label="所属单位" prop="unitName"></el-table-column>
|
||||||
<el-table-column label="委员类别" prop="roleCode">
|
|
||||||
<template scope="{row}">
|
|
||||||
<el-tag v-if="row.roleCode === '1'">执委会委员</el-tag>
|
|
||||||
<el-tag v-if="row.roleCode === '2'">工会委员会委员</el-tag>
|
|
||||||
<el-tag v-if="row.roleCode === '3'">经审委员会委员</el-tag>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column align="center" label="操作" width="100" fixed="right">
|
<el-table-column align="center" label="操作" width="100" fixed="right">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
<el-button
|
<el-button
|
||||||
|
|||||||
@@ -29,9 +29,9 @@ const PROPOSAL_INFO = {
|
|||||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT"
|
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT"
|
||||||
:value="viewData.caseFilingResult"></dict-tag>
|
:value="viewData.caseFilingResult"></dict-tag>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="调研情况" :span="3">
|
<!--<el-descriptions-item label="调研情况" :span="3">
|
||||||
<div class="text-left">{{viewData.researchFindings}}</div>
|
<div class="text-left">{{viewData.researchFindings}}</div>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>-->
|
||||||
<el-descriptions-item label="提案案由" :span="3">
|
<el-descriptions-item label="提案案由" :span="3">
|
||||||
<div class="text-left" v-html="viewData.brief"></div>
|
<div class="text-left" v-html="viewData.brief"></div>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|||||||
+125
-73
@@ -24,24 +24,24 @@ layout("/layouts/platform.html"){
|
|||||||
<search-item label="姓名/工号">
|
<search-item label="姓名/工号">
|
||||||
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.createUserKeyword"></el-input>
|
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.createUserKeyword"></el-input>
|
||||||
</search-item>
|
</search-item>
|
||||||
<!-- <search-item label="提案人姓名">-->
|
<!-- <search-item label="提案人姓名">-->
|
||||||
<!-- <el-input-->
|
<!-- <el-input-->
|
||||||
<!-- @keyup.enter.native="doSearch"-->
|
<!-- @keyup.enter.native="doSearch"-->
|
||||||
<!-- clearable-->
|
<!-- clearable-->
|
||||||
<!-- placeholder="请输入提案人姓名"-->
|
<!-- placeholder="请输入提案人姓名"-->
|
||||||
<!-- v-model="pageForm.createUserName"-->
|
<!-- v-model="pageForm.createUserName"-->
|
||||||
<!-- style="width: 100%"-->
|
<!-- style="width: 100%"-->
|
||||||
<!-- ></el-input>-->
|
<!-- ></el-input>-->
|
||||||
<!-- </search-item>-->
|
<!-- </search-item>-->
|
||||||
<!-- <search-item label="提案人工号">-->
|
<!-- <search-item label="提案人工号">-->
|
||||||
<!-- <el-input-->
|
<!-- <el-input-->
|
||||||
<!-- @keyup.enter.native="doSearch"-->
|
<!-- @keyup.enter.native="doSearch"-->
|
||||||
<!-- clearable-->
|
<!-- clearable-->
|
||||||
<!-- placeholder="请输入提案人工号"-->
|
<!-- placeholder="请输入提案人工号"-->
|
||||||
<!-- v-model="pageForm.createUserLoginName"-->
|
<!-- v-model="pageForm.createUserLoginName"-->
|
||||||
<!-- style="width: 100%"-->
|
<!-- style="width: 100%"-->
|
||||||
<!-- ></el-input>-->
|
<!-- ></el-input>-->
|
||||||
<!-- </search-item>-->
|
<!-- </search-item>-->
|
||||||
</search>
|
</search>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
@@ -53,9 +53,10 @@ layout("/layouts/platform.html"){
|
|||||||
<el-radio-button :label="false">未审核</el-radio-button>
|
<el-radio-button :label="false">未审核</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</table-tool>
|
</table-tool>
|
||||||
<el-table :data="tableData" @sort-change="pageOrder" ref="tableRef" row-key="id" style="width: 100%">
|
<el-table :data="tableData" @sort-change="pageOrder" ref="tableRef" row-key="id" style="width: 100%" v-loading="tableLoading">
|
||||||
<el-table-column type="selection" width="50" fixed="left" v-if="!pageForm.approval"></el-table-column>
|
<el-table-column type="selection" width="50" fixed="left" v-if="!pageForm.approval"></el-table-column>
|
||||||
<el-table-column label="序号" width="50" type="index" :index="indexMethod" fixed="left"></el-table-column>
|
<el-table-column label="序号" width="50" type="index" :index="indexMethod"
|
||||||
|
fixed="left"></el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
:label="column.label"
|
:label="column.label"
|
||||||
:prop="column.prop"
|
:prop="column.prop"
|
||||||
@@ -99,54 +100,81 @@ layout("/layouts/platform.html"){
|
|||||||
{{formData.taskName}}
|
{{formData.taskName}}
|
||||||
</div>
|
</div>
|
||||||
<el-form :model="formData" ref="formRef" label-width="120px" :rules="formRules" label-suffix="">
|
<el-form :model="formData" ref="formRef" label-width="120px" :rules="formRules" label-suffix="">
|
||||||
<el-form-item label="立案结果" prop="tf_caseFilingResult"
|
<el-row :gutter="10">
|
||||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
<el-col :span="12">
|
||||||
<el-radio-group v-model="formData.tf_caseFilingResult" size="small">
|
<el-form-item label="提案编号" prop="tf_code"
|
||||||
<el-radio v-for="item in dict.type.PROPOSAL_CASE_FILING_RESULT" :label="item.code"
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||||
border>{{item.label}}
|
<el-input placeholder="提案编号" v-model="formData.tf_code"
|
||||||
</el-radio>
|
style="width: 100%;"></el-input>
|
||||||
</el-radio-group>
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
<el-form-item v-if="['CONFIRM_FILING'].includes(formData.tf_caseFilingResult)" label="立案类型"
|
<el-col :span="12">
|
||||||
prop="tf_caseFilingType"
|
<el-form-item label="提案类别" prop="tf_typeId"
|
||||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||||
<el-radio-group v-model="formData.tf_caseFilingType" size="small">
|
<el-select filterable placeholder="提案类别" v-model="formData.tf_typeId"
|
||||||
<el-radio v-for="item in dict.type.PROPOSAL_CASE_FILING_TYPE" :label="item.code" border>
|
style="width: 100%;">
|
||||||
{{item.label}}
|
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||||
</el-radio>
|
v-for="item in typeOptions"></el-option>
|
||||||
</el-radio-group>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
</el-col>
|
||||||
label="主办单位"
|
</el-row>
|
||||||
v-if="['CONFIRM_FILING','SUGGESTION'].includes(formData.tf_caseFilingResult)"
|
|
||||||
:rules="[{required:['CONFIRM_FILING','SUGGESTION'].includes(formData.tf_caseFilingResult),message:'必填',trigger:['change','blur']}]"
|
<!-- <el-form-item label="立案结果" prop="tf_caseFilingResult"
|
||||||
prop="tf_masterUnitId"
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||||
>
|
<el-radio-group v-model="formData.tf_caseFilingResult" size="small">
|
||||||
<el-select v-model="formData.tf_masterUnitId" filterable clearable style="width: 100%">
|
<el-radio v-for="item in dict.type.PROPOSAL_CASE_FILING_RESULT" :label="item.code"
|
||||||
<el-option
|
border>{{item.label}}
|
||||||
v-for="item in underTakeOptions"
|
</el-radio>
|
||||||
:label="item.name"
|
</el-radio-group>
|
||||||
:value="item.id"
|
</el-form-item>
|
||||||
:key="item.id"
|
<el-form-item v-if="['CONFIRM_FILING'].includes(formData.tf_caseFilingResult)" label="立案类型"
|
||||||
:disabled="formData && formData.tf_slaveUnitIds.includes(item.id)"
|
prop="tf_caseFilingType"
|
||||||
></el-option>
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||||
</el-select>
|
<el-radio-group v-model="formData.tf_caseFilingType" size="small">
|
||||||
</el-form-item>
|
<el-radio v-for="item in dict.type.PROPOSAL_CASE_FILING_TYPE" :label="item.code" border>
|
||||||
<el-form-item label="协办单位"
|
{{item.label}}
|
||||||
v-if="['CONFIRM_FILING','SUGGESTION'].includes(formData.tf_caseFilingResult)"
|
</el-radio>
|
||||||
prop="tf_slaveUnitIds"
|
</el-radio-group>
|
||||||
>
|
</el-form-item>-->
|
||||||
<el-select v-model="formData.tf_slaveUnitIds" filterable clearable multiple
|
|
||||||
style="width: 100%">
|
<template>
|
||||||
<el-option
|
|
||||||
v-for="item in underTakeOptions"
|
<!--
|
||||||
:label="item.name"
|
:rules="[{required:['CONFIRM_FILING','SUGGESTION'].includes(formData.tf_caseFilingResult),message:'必填',trigger:['change','blur']}]"
|
||||||
:value="item.id"
|
v-if="['CONFIRM_FILING','SUGGESTION'].includes(formData.tf_caseFilingResult)"
|
||||||
:key="item.id"
|
|
||||||
:disabled="item.id===formData.tf_masterUnitId"
|
-->
|
||||||
></el-option>
|
<el-form-item
|
||||||
</el-select>
|
label="主办单位"
|
||||||
</el-form-item>
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"
|
||||||
|
prop="tf_masterUnitId"
|
||||||
|
>
|
||||||
|
<el-select v-model="formData.tf_masterUnitId" filterable clearable style="width: 100%">
|
||||||
|
<el-option
|
||||||
|
v-for="item in underTakeOptions"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
:key="item.id"
|
||||||
|
:disabled="formData && formData.tf_slaveUnitIds.includes(item.id)"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="协办单位"
|
||||||
|
prop="tf_slaveUnitIds"
|
||||||
|
>
|
||||||
|
<el-select v-model="formData.tf_slaveUnitIds" filterable clearable multiple
|
||||||
|
style="width: 100%">
|
||||||
|
<el-option
|
||||||
|
v-for="item in underTakeOptions"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
:key="item.id"
|
||||||
|
:disabled="item.id===formData.tf_masterUnitId"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</template>
|
||||||
<el-form-item label="审核意见" prop="tf_opinion"
|
<el-form-item label="审核意见" prop="tf_opinion"
|
||||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||||
@@ -162,7 +190,7 @@ layout("/layouts/platform.html"){
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #public>
|
<template #public>
|
||||||
<merge ref="mergeRef" @close="$refs.guava.index()"></merge>
|
<merge ref="mergeRef" @close="mergeClose"></merge>
|
||||||
</template>
|
</template>
|
||||||
</guava>
|
</guava>
|
||||||
</div>
|
</div>
|
||||||
@@ -174,6 +202,7 @@ layout("/layouts/platform.html"){
|
|||||||
new Vue({
|
new Vue({
|
||||||
el: "#app",
|
el: "#app",
|
||||||
store,
|
store,
|
||||||
|
|
||||||
dicts: ["PROPOSAL_CASE_FILING_RESULT", "PROPOSAL_CASE_FILING_TYPE"],
|
dicts: ["PROPOSAL_CASE_FILING_RESULT", "PROPOSAL_CASE_FILING_TYPE"],
|
||||||
mixins: [initTableMixins],
|
mixins: [initTableMixins],
|
||||||
components: {
|
components: {
|
||||||
@@ -202,10 +231,16 @@ layout("/layouts/platform.html"){
|
|||||||
showApprovalForm: false,
|
showApprovalForm: false,
|
||||||
sessionOptions: [],
|
sessionOptions: [],
|
||||||
delegationOptions: [],
|
delegationOptions: [],
|
||||||
underTakeOptions: []
|
underTakeOptions: [],
|
||||||
|
typeOptions: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
mergeClose() {
|
||||||
|
this.doSearch()
|
||||||
|
this.$refs.guava.index()
|
||||||
|
this.$refs.tableRef.clearSelection();
|
||||||
|
},
|
||||||
openView(row) {
|
openView(row) {
|
||||||
this.$refs.guava.edit(() => {
|
this.$refs.guava.edit(() => {
|
||||||
this.showApprovalForm = false
|
this.showApprovalForm = false
|
||||||
@@ -216,7 +251,12 @@ layout("/layouts/platform.html"){
|
|||||||
this.$refs.guava.edit(() => {
|
this.$refs.guava.edit(() => {
|
||||||
this.showApprovalForm = true
|
this.showApprovalForm = true
|
||||||
this.formData = {
|
this.formData = {
|
||||||
|
tf_code: row.code,
|
||||||
|
tf_oldCode: row.code,
|
||||||
|
tf_typeId: row.typeId,
|
||||||
|
tf_oldTypeId: row.typeId,
|
||||||
processTaskId: row.taskId,
|
processTaskId: row.taskId,
|
||||||
|
proposalId: row.id,
|
||||||
taskName: row.curTaskName,
|
taskName: row.curTaskName,
|
||||||
tf_masterUnitId: null,
|
tf_masterUnitId: null,
|
||||||
tf_slaveUnitIds: []
|
tf_slaveUnitIds: []
|
||||||
@@ -242,7 +282,7 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
|
|
||||||
const loading = createLoading('提交中')
|
const loading = createLoading('提交中')
|
||||||
this.$axios.post("/flow/common/executeTask", {
|
this.$axios.post("/platform/proposal/committeeFiling/executeTask", {
|
||||||
data: JSON.stringify({
|
data: JSON.stringify({
|
||||||
...this.formData,
|
...this.formData,
|
||||||
submitType: val,
|
submitType: val,
|
||||||
@@ -287,7 +327,10 @@ layout("/layouts/platform.html"){
|
|||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
type: "info"
|
type: "info"
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
this.$axios.post("/platform/proposal/committeeFiling/revokeTask", {
|
||||||
|
taskId: row.taskId,
|
||||||
|
proposalId: row.id
|
||||||
|
}).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$message.success(res.msg)
|
this.$message.success(res.msg)
|
||||||
this.doSearch()
|
this.doSearch()
|
||||||
@@ -321,12 +364,21 @@ layout("/layouts/platform.html"){
|
|||||||
this.underTakeOptions = res.data
|
this.underTakeOptions = res.data
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
},
|
||||||
|
// 获取提案类别
|
||||||
|
listProposalType() {
|
||||||
|
this.$axios.post("/platform/proposal/common/listProposalType").then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.typeOptions = res.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.pageData()
|
this.pageData()
|
||||||
this.listOpenSession()
|
this.listOpenSession()
|
||||||
this.listUnderTake()
|
this.listUnderTake()
|
||||||
|
this.listProposalType()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
+95
-53
@@ -6,13 +6,26 @@ const merge = {
|
|||||||
</div>
|
</div>
|
||||||
<el-table :data="selection" ref="tableRef" row-key="id" style="width: 100%">
|
<el-table :data="selection" ref="tableRef" row-key="id" style="width: 100%">
|
||||||
<el-table-column label="序号" width="50" type="index"></el-table-column>
|
<el-table-column label="序号" width="50" type="index"></el-table-column>
|
||||||
<el-table-column label="提案编号" prop="code"></el-table-column>
|
<el-table-column label="提案编号" prop="code">
|
||||||
|
<template slot-scope="{row}">
|
||||||
|
<el-input placeholder="提案编号" v-model="row.tf_code"
|
||||||
|
style="width: 100%;"></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="提案名称" prop="name" show-overflow-tooltip></el-table-column>
|
<el-table-column label="提案名称" prop="name" show-overflow-tooltip></el-table-column>
|
||||||
<el-table-column label="提案类别" prop="typeName"></el-table-column>
|
<el-table-column label="提案类别" prop="typeName">
|
||||||
|
<template slot-scope="{row}">
|
||||||
|
<el-select filterable placeholder="提案类别" v-model="row.tf_typeId"
|
||||||
|
style="width: 100%;">
|
||||||
|
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||||
|
v-for="item in typeOptions"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="届次" prop="sessionName"></el-table-column>
|
<el-table-column label="届次" prop="sessionName"></el-table-column>
|
||||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||||
<el-table-column label="操作" fixed="right" width="100px">
|
<el-table-column label="操作" fixed="right" width="100px">
|
||||||
<template scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button @click="onRemove(scope.$index)" size="mini" type="danger">移除</el-button>
|
<el-button @click="onRemove(scope.$index)" size="mini" type="danger">移除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -22,55 +35,61 @@ const merge = {
|
|||||||
<div class="process-title">
|
<div class="process-title">
|
||||||
{{formData.taskName}}
|
{{formData.taskName}}
|
||||||
</div>
|
</div>
|
||||||
<el-form :model="formData" ref="formRef" label-width="120px" :rules="formRules" label-suffix="">
|
<el-form :model="formData" ref="formRef" label-width="120px" label-suffix="">
|
||||||
<el-form-item label="立案结果" prop="tf_caseFilingResult"
|
<!-- <el-form-item label="立案结果" prop="tf_caseFilingResult"
|
||||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||||
<el-radio-group v-model="formData.tf_caseFilingResult" size="small">
|
<el-radio-group v-model="formData.tf_caseFilingResult" size="small">
|
||||||
<el-radio v-for="item in dict.type.PROPOSAL_CASE_FILING_RESULT" :label="item.code"
|
<el-radio v-for="item in dict.type.PROPOSAL_CASE_FILING_RESULT" :label="item.code"
|
||||||
border>{{item.label}}
|
border>{{item.label}}
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="['CONFIRM_FILING'].includes(formData.tf_caseFilingResult)" label="立案类型"
|
<el-form-item v-if="['CONFIRM_FILING'].includes(formData.tf_caseFilingResult)" label="立案类型"
|
||||||
prop="tf_caseFilingType"
|
prop="tf_caseFilingType"
|
||||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||||
<el-radio-group v-model="formData.tf_caseFilingType" size="small">
|
<el-radio-group v-model="formData.tf_caseFilingType" size="small">
|
||||||
<el-radio v-for="item in dict.type.PROPOSAL_CASE_FILING_TYPE" :label="item.code" border>
|
<el-radio v-for="item in dict.type.PROPOSAL_CASE_FILING_TYPE" :label="item.code" border>
|
||||||
{{item.label}}
|
{{item.label}}
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>-->
|
||||||
<el-form-item
|
|
||||||
label="主办单位"
|
|
||||||
v-if="['CONFIRM_FILING','SUGGESTION'].includes(formData.tf_caseFilingResult)"
|
<!--
|
||||||
:rules="[{required:['CONFIRM_FILING','SUGGESTION'].includes(formData.tf_caseFilingResult),message:'必填',trigger:['change','blur']}]"
|
v-if="['CONFIRM_FILING','SUGGESTION'].includes(formData.tf_caseFilingResult)"
|
||||||
prop="tf_masterUnitId"
|
:rules="[{required:['CONFIRM_FILING','SUGGESTION'].includes(formData.tf_caseFilingResult),message:'必填',trigger:['change','blur']}]"
|
||||||
>
|
-->
|
||||||
<el-select v-model="formData.tf_masterUnitId" filterable clearable style="width: 100%">
|
<template>
|
||||||
<el-option
|
<el-form-item
|
||||||
v-for="item in underTakeOptions"
|
label="主办单位"
|
||||||
:label="item.name"
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"
|
||||||
:value="item.id"
|
prop="tf_masterUnitId"
|
||||||
:key="item.id"
|
>
|
||||||
:disabled="formData && formData.tf_slaveUnitIds.includes(item.id)"
|
<el-select v-model="formData.tf_masterUnitId" filterable clearable style="width: 100%">
|
||||||
></el-option>
|
<el-option
|
||||||
</el-select>
|
v-for="item in underTakeOptions"
|
||||||
</el-form-item>
|
:label="item.name"
|
||||||
<el-form-item label="协办单位"
|
:value="item.id"
|
||||||
v-if="['CONFIRM_FILING','SUGGESTION'].includes(formData.tf_caseFilingResult)"
|
:key="item.id"
|
||||||
prop="tf_slaveUnitIds"
|
:disabled="formData && formData.tf_slaveUnitIds.includes(item.id)"
|
||||||
>
|
></el-option>
|
||||||
<el-select v-model="formData.tf_slaveUnitIds" filterable clearable multiple
|
</el-select>
|
||||||
style="width: 100%">
|
</el-form-item>
|
||||||
<el-option
|
<el-form-item label="协办单位"
|
||||||
v-for="item in underTakeOptions"
|
prop="tf_slaveUnitIds"
|
||||||
:label="item.name"
|
>
|
||||||
:value="item.id"
|
<el-select v-model="formData.tf_slaveUnitIds" filterable clearable multiple
|
||||||
:key="item.id"
|
style="width: 100%">
|
||||||
:disabled="item.id===formData.tf_masterUnitId"
|
<el-option
|
||||||
></el-option>
|
v-for="item in underTakeOptions"
|
||||||
</el-select>
|
:label="item.name"
|
||||||
</el-form-item>
|
:value="item.id"
|
||||||
|
:key="item.id"
|
||||||
|
:disabled="item.id===formData.tf_masterUnitId"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</template>
|
||||||
<el-form-item label="审核意见" prop="tf_opinion"
|
<el-form-item label="审核意见" prop="tf_opinion"
|
||||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||||
@@ -92,14 +111,30 @@ const merge = {
|
|||||||
tf_masterUnitId: null,
|
tf_masterUnitId: null,
|
||||||
tf_slaveUnitIds: []
|
tf_slaveUnitIds: []
|
||||||
},
|
},
|
||||||
underTakeOptions: []
|
underTakeOptions: [],
|
||||||
|
typeOptions: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onOpen(selection, formData) {
|
onOpen(selection, formData) {
|
||||||
|
selection.map(row => {
|
||||||
|
this.$set(row, 'tf_code', row.code)
|
||||||
|
this.$set(row, 'tf_oldCode', row.code)
|
||||||
|
this.$set(row, 'tf_typeId', row.typeId)
|
||||||
|
this.$set(row, 'tf_oldTypeId', row.typeId)
|
||||||
|
})
|
||||||
this.selection = selection
|
this.selection = selection
|
||||||
this.formData = formData
|
this.formData = formData
|
||||||
this.listUnderTake()
|
this.listUnderTake()
|
||||||
|
this.listProposalType()
|
||||||
|
},
|
||||||
|
// 获取提案类别
|
||||||
|
listProposalType() {
|
||||||
|
this.$axios.post("/platform/proposal/common/listProposalType").then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.typeOptions = res.data
|
||||||
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 移除
|
// 移除
|
||||||
onRemove(index) {
|
onRemove(index) {
|
||||||
@@ -118,6 +153,12 @@ const merge = {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleTaskAction(val) {
|
handleTaskAction(val) {
|
||||||
|
|
||||||
|
const names=this.selection.filter(row => !row.tf_code).map(row => row.name).join(',')
|
||||||
|
if (names){
|
||||||
|
this.$message.warning(names+"必须要填写提案编号!")
|
||||||
|
return
|
||||||
|
}
|
||||||
this.$confirm("您确定要提交吗?", "提示", {
|
this.$confirm("您确定要提交吗?", "提示", {
|
||||||
confirmButtonText: "确定",
|
confirmButtonText: "确定",
|
||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
@@ -136,6 +177,7 @@ const merge = {
|
|||||||
data: JSON.stringify({
|
data: JSON.stringify({
|
||||||
...this.formData,
|
...this.formData,
|
||||||
proposalIds: this.selection.map(v => v.id),
|
proposalIds: this.selection.map(v => v.id),
|
||||||
|
proposals:this.selection,
|
||||||
submitType: val,
|
submitType: val,
|
||||||
tf_masterUnitName: this.formData.tf_masterUnitId ? this.underTakeOptions.find(v => v.id === this.formData.tf_masterUnitId)?.name : null,
|
tf_masterUnitName: this.formData.tf_masterUnitId ? this.underTakeOptions.find(v => v.id === this.formData.tf_masterUnitId)?.name : null,
|
||||||
tf_slaveUnitNames: this.formData.tf_slaveUnitIds.map(v => this.underTakeOptions.find(v2 => v2.id === v)?.name),
|
tf_slaveUnitNames: this.formData.tf_slaveUnitIds.map(v => this.underTakeOptions.find(v2 => v2.id === v)?.name),
|
||||||
|
|||||||
+5
-5
@@ -48,14 +48,14 @@ layout("/layouts/platform.html"){
|
|||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<table-tool :columns.sync="tableColumns">
|
<table-tool :columns.sync="tableColumns">
|
||||||
<!-- <el-button type="primary" icon="el-icon-plus" size="small" @click="openMerge">并案审核</el-button>-->
|
<!-- <el-button type="primary" icon="el-icon-plus" size="small" @click="openMerge">并案审核</el-button>-->
|
||||||
<el-button type="primary" icon="el-icon-plus" size="small" @click="doUpData">更新</el-button>
|
<!-- <el-button type="primary" icon="el-icon-plus" size="small" @click="doUpData">更新</el-button>-->
|
||||||
<el-radio-group v-model="pageForm.approval" size="small" @change="doSearch">
|
<el-radio-group v-model="pageForm.approval" size="small" @change="doSearch">
|
||||||
<el-radio-button :label="true">已审核</el-radio-button>
|
<el-radio-button :label="true">已审核</el-radio-button>
|
||||||
<el-radio-button :label="false">未审核</el-radio-button>
|
<el-radio-button :label="false">未审核</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</table-tool>
|
</table-tool>
|
||||||
<el-table :data="tableData" @sort-change="pageOrder" ref="tableRef" row-key="id" style="width: 100%">
|
<el-table :data="tableData" @sort-change="pageOrder" ref="tableRef" row-key="id" style="width: 100%" v-loading="tableLoading">
|
||||||
<el-table-column type="selection" width="50" fixed="left" v-if="!pageForm.approval"></el-table-column>
|
<!-- <el-table-column type="selection" width="50" fixed="left" v-if="!pageForm.approval"></el-table-column>-->
|
||||||
<el-table-column label="序号" width="50" type="index" :index="indexMethod"
|
<el-table-column label="序号" width="50" type="index" :index="indexMethod"
|
||||||
fixed="left"></el-table-column>
|
fixed="left"></el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
@@ -124,7 +124,7 @@ layout("/layouts/platform.html"){
|
|||||||
:rules="[{required:['CONFIRM_FILING','SUGGESTION'].includes(formData.tf_caseFilingResult),message:'必填',trigger:['change','blur']}]"
|
:rules="[{required:['CONFIRM_FILING','SUGGESTION'].includes(formData.tf_caseFilingResult),message:'必填',trigger:['change','blur']}]"
|
||||||
prop="tf_masterUnitId"
|
prop="tf_masterUnitId"
|
||||||
>
|
>
|
||||||
<el-select v-model="formData.tf_masterUnitId" filterable clearable style="width: 100%">
|
<el-select v-model="formData.tf_masterUnitId" filterable clearable style="width: 100%" disabled>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in underTakeOptions"
|
v-for="item in underTakeOptions"
|
||||||
:label="item.name"
|
:label="item.name"
|
||||||
@@ -139,7 +139,7 @@ layout("/layouts/platform.html"){
|
|||||||
prop="tf_slaveUnitIds"
|
prop="tf_slaveUnitIds"
|
||||||
>
|
>
|
||||||
<el-select v-model="formData.tf_slaveUnitIds" filterable clearable multiple
|
<el-select v-model="formData.tf_slaveUnitIds" filterable clearable multiple
|
||||||
style="width: 100%">
|
style="width: 100%" disabled>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in underTakeOptions"
|
v-for="item in underTakeOptions"
|
||||||
:label="item.name"
|
:label="item.name"
|
||||||
|
|||||||
Reference in New Issue
Block a user