commit
This commit is contained in:
@@ -153,7 +153,7 @@ public class SysUnionController {
|
|||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
gh.*,
|
gh.*,
|
||||||
GROUP_CONCAT( u.username,'(',u.mobile,')' ) AS chairman
|
GROUP_CONCAT( u.username,'(',u.loginname,')' ) AS chairman
|
||||||
FROM
|
FROM
|
||||||
sys_union gh
|
sys_union gh
|
||||||
LEFT JOIN sys_user_role sur ON sur.unionId = gh.id
|
LEFT JOIN sys_user_role sur ON sur.unionId = gh.id
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
|||||||
* 检查用户是否符合会员条件
|
* 检查用户是否符合会员条件
|
||||||
*
|
*
|
||||||
* @param userState 用户状态
|
* @param userState 用户状态
|
||||||
* @param preparedBy 聘用方式
|
* @param preparedBy 编制类别
|
||||||
* @param postDoctoralJoinDate 博士后进站时间
|
* @param postDoctoralJoinDate 博士后进站时间
|
||||||
* @return 是否符合会员条件
|
* @return 是否符合会员条件
|
||||||
*/
|
*/
|
||||||
|
|||||||
+1
-1
@@ -109,7 +109,7 @@ public class MemberChangeManageController {
|
|||||||
throw new BaseException("没有权限,或未设置工会小组");
|
throw new BaseException("没有权限,或未设置工会小组");
|
||||||
}
|
}
|
||||||
|
|
||||||
memberCommonService.validateChangeAndSetBasicData(record);
|
memberCommonService.validateChangeAndSetBasicData(record, changeOrigin);
|
||||||
dao.insertOrUpdate(record);
|
dao.insertOrUpdate(record);
|
||||||
|
|
||||||
// 开启流程实例
|
// 开启流程实例
|
||||||
|
|||||||
+107
@@ -0,0 +1,107 @@
|
|||||||
|
package com.budwk.app.zhgh.staffmanage.member.controller.check;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.budwk.app.base.annotation.SLog;
|
||||||
|
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.base.utils.ManyAddOrRenewUtil;
|
||||||
|
import com.budwk.app.sys.models.Sys_user;
|
||||||
|
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||||
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.models.check.MemberCheckTask;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.models.check.MemberCheckTaskUser;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberCheckPageForm;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.service.MemberCheckTaskService;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
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.SqlExpressionGroup;
|
||||||
|
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.lang.Lang;
|
||||||
|
import org.nutz.lang.Strings;
|
||||||
|
import org.nutz.lang.random.R;
|
||||||
|
import org.nutz.mvc.annotation.At;
|
||||||
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author zzr
|
||||||
|
* @name:MemberCheckTaskController
|
||||||
|
* @Date 2025/9/24 9:53
|
||||||
|
* @注释 会员核对任务创建
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@IocBean
|
||||||
|
@Ok("json")
|
||||||
|
@At("/platform/member/check/task")
|
||||||
|
public class MemberCheckTaskController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private Dao dao;
|
||||||
|
@Inject
|
||||||
|
private ManyAddOrRenewUtil renewUtil;
|
||||||
|
@Inject
|
||||||
|
private MemberCheckTaskService memberCheckTaskService;
|
||||||
|
|
||||||
|
@At("")
|
||||||
|
@Ok("beetl:/platform/zhgh/staffmanage/member/check/task/index.html")
|
||||||
|
@SaCheckPermission("member.check.task")
|
||||||
|
public void index() {}
|
||||||
|
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ApiOperation("页面数据")
|
||||||
|
@SaCheckPermission("member.check.task")
|
||||||
|
public Result pageData(MemberCheckPageForm pageForm) {
|
||||||
|
Sql sql = Sqls.create("select * from member_check_task $condition");
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.andEX("`year`", "=", pageForm.getYear());
|
||||||
|
cnd.andEX("checkTaskId", "=", pageForm.getCheckTaskId());
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
Pagination pagination = memberCheckTaskService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
|
return Result.success(pagination);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ApiOperation("添加或修改")
|
||||||
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
|
@SaCheckPermission("member.check.task")
|
||||||
|
@SLog(tag = "会员核对任务创建", msg = "添加或修改会员核对任务创建:${args[0].taskName}")
|
||||||
|
public Result doAddOrModify(MemberCheckTask memberCheckTask) {
|
||||||
|
dao.insertOrUpdate(memberCheckTask);
|
||||||
|
|
||||||
|
dao.clear(MemberCheckTaskUser.class, Cnd.where(MemberCheckTaskUser::getCheckTaskId, "=", memberCheckTask.getId()));
|
||||||
|
|
||||||
|
List<String> userStates = memberCheckTask.getUserStates();
|
||||||
|
|
||||||
|
List<Sys_user> query = dao.query(Sys_user.class, Cnd.where(Sys_user::getUserState, "in", userStates).or(Sys_user::getMember, "=", 1));
|
||||||
|
List<MemberCheckTaskUser> list = query.stream().map(v -> {
|
||||||
|
MemberCheckTaskUser memberCheckTaskUser = new MemberCheckTaskUser();
|
||||||
|
BeanUtil.copyProperties(v, memberCheckTaskUser);
|
||||||
|
memberCheckTaskUser.setId(R.UU32());
|
||||||
|
memberCheckTaskUser.setCheckTaskId(memberCheckTask.getId());
|
||||||
|
memberCheckTaskUser.setUserId(v.getId());
|
||||||
|
return memberCheckTaskUser;
|
||||||
|
}).toList();
|
||||||
|
|
||||||
|
renewUtil.asyncExecuteFastInsert(list, 200);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
}
|
||||||
+179
@@ -0,0 +1,179 @@
|
|||||||
|
package com.budwk.app.zhgh.staffmanage.member.controller.check;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
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.web.commons.auth.utils.AuthUtil;
|
||||||
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberCheckPageForm;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.service.MemberCheckTaskService;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
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.SqlExpressionGroup;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.lang.Lang;
|
||||||
|
import org.nutz.lang.Strings;
|
||||||
|
import org.nutz.mvc.annotation.At;
|
||||||
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author zzr
|
||||||
|
* @name:MemberCheckTaskUnionController
|
||||||
|
* @Date 2025/9/24 11:24
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@IocBean
|
||||||
|
@Ok("json")
|
||||||
|
@At("/platform/member/checkTask/union")
|
||||||
|
public class MemberCheckTaskUnionController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private Dao dao;
|
||||||
|
@Inject
|
||||||
|
private MemberCheckTaskService memberCheckTaskService;
|
||||||
|
|
||||||
|
@At("")
|
||||||
|
@Ok("beetl:/platform/zhgh/staffmanage/member/check/union/index.html")
|
||||||
|
@SaCheckPermission("member.checkTask.union")
|
||||||
|
public void index() {}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ApiOperation("页面数据")
|
||||||
|
@SaCheckPermission("member.checkTask.union")
|
||||||
|
public Result pageData(MemberCheckPageForm pageForm){
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
u.id,
|
||||||
|
u.loginname,
|
||||||
|
u.username,
|
||||||
|
u.sex,
|
||||||
|
u.birthday,
|
||||||
|
u.political,
|
||||||
|
u.joinPartyDate,
|
||||||
|
u.nation,
|
||||||
|
u.nativePlace,
|
||||||
|
u.nationality,
|
||||||
|
u.idCardType,
|
||||||
|
u.mobile,
|
||||||
|
u.education,
|
||||||
|
u.academicDegree,
|
||||||
|
u.position,
|
||||||
|
u.personType,
|
||||||
|
u.preparedBy,
|
||||||
|
u.identityType,
|
||||||
|
u.userState,
|
||||||
|
u.unionName,
|
||||||
|
u.unitName,
|
||||||
|
u.member,
|
||||||
|
u.postDoctoralJoinDate
|
||||||
|
FROM
|
||||||
|
`vw_user` u
|
||||||
|
$condition
|
||||||
|
""");
|
||||||
|
Cnd cnd = getCnd(pageForm);
|
||||||
|
if (StrUtil.isNotBlank(pageForm.getIsUnit())) {
|
||||||
|
cnd.and("u.unitId", "true".equals(pageForm.getIsUnit()) ? "is not" : "is", null);
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(pageForm.getIsUnion())) {
|
||||||
|
cnd.and("u.unionId", "true".equals(pageForm.getIsUnion()) ? "is not" : "is", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||||
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
|
seg.or("u.username", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||||
|
seg.or("u.loginname", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||||
|
cnd.and(seg);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||||
|
cnd.and(Cnd.exps("u.unionId", "=", SecurityUtil.getUnionId())
|
||||||
|
.or("u.unionId", "is", null).or("u.unionId", "=", ""));
|
||||||
|
}
|
||||||
|
cnd.desc("u.unionName,u.id");
|
||||||
|
cnd.groupBy("u.id");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
Pagination pagination = memberCheckTaskService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
|
return Result.success(pagination);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Cnd getCnd(MemberCheckPageForm pageForm) {
|
||||||
|
Boolean reverseSelection = pageForm.getReverseSelection();
|
||||||
|
String IN_OR_NIN_OP = reverseSelection ? "NOT IN" : "IN";
|
||||||
|
String EQ_OR_NEQ_OP = reverseSelection ? "!=" : "=";
|
||||||
|
//小于等于
|
||||||
|
String LE_OR_NLE_OP = reverseSelection ? ">=" : "<=";
|
||||||
|
//大于等于
|
||||||
|
String GE_OR_NGE_OP = reverseSelection ? "<=" : ">=";
|
||||||
|
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
if (StrUtil.isAllNotBlank(pageForm.getPageOrderBy(), pageForm.getPageOrderName())) {
|
||||||
|
cnd.orderBy(pageForm.getPageOrderName(), "ascending".equalsIgnoreCase(pageForm.getPageOrderBy()) ? "ASC" : "DESC");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Lang.isNotEmpty(pageForm.getUserTypes())) {
|
||||||
|
if (pageForm.getUserTypes().contains("工会会员")) {
|
||||||
|
cnd.and("u.member", EQ_OR_NEQ_OP, true);
|
||||||
|
}
|
||||||
|
if (pageForm.getUserTypes().contains("福利会员")) {
|
||||||
|
cnd.and("u.welfareMember", EQ_OR_NEQ_OP, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Lang.isNotEmpty(pageForm.getAge()) && !"0".equals(pageForm.getAge().get(1))) {
|
||||||
|
if (reverseSelection) {
|
||||||
|
cnd.andNot("TIMESTAMPDIFF(YEAR, u.birthday, CURDATE())", "between", pageForm.getAge().toArray());
|
||||||
|
} else {
|
||||||
|
cnd.and("TIMESTAMPDIFF(YEAR, u.birthday, CURDATE())", "between", pageForm.getAge().toArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Strings.isNotBlank(pageForm.getBirthdayStartDate()) && Strings.isNotBlank(pageForm.getBirthdayEndDate())) {
|
||||||
|
if (reverseSelection) {
|
||||||
|
cnd.andNot("DATE(u.birthday)", "between", new String[]{pageForm.getBirthdayStartDate(), pageForm.getBirthdayEndDate()});
|
||||||
|
} else {
|
||||||
|
cnd.and("DATE(u.birthday)", "between", new String[]{pageForm.getBirthdayStartDate(), pageForm.getBirthdayEndDate()});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Strings.isNotBlank(pageForm.getBirthdayStartDate()) && Strings.isBlank(pageForm.getBirthdayEndDate())) {
|
||||||
|
cnd.and("DATE(u.birthday)", GE_OR_NGE_OP, pageForm.getBirthdayStartDate());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Strings.isBlank(pageForm.getBirthdayStartDate()) && Strings.isNotBlank(pageForm.getBirthdayEndDate())) {
|
||||||
|
cnd.and("DATE(u.birthday)", LE_OR_NLE_OP, pageForm.getBirthdayEndDate());
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
handleField("id", pageForm.getUserInfos(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||||
|
handleField("unionId", pageForm.getUnionIds(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||||
|
handleField("unitId", pageForm.getUnitIds(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||||
|
handleField("personType", pageForm.getPersonTypes(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||||
|
handleField("preparedBy", pageForm.getPreparedBys(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||||
|
handleField("userState", pageForm.getUserStates(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||||
|
handleField("sex", pageForm.getSexTypes(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
return cnd;
|
||||||
|
}
|
||||||
|
|
||||||
|
void handleField(String fieldName, Object fieldValue, boolean reverseSelection, String IN_OR_NIN_OP, Cnd cnd) {
|
||||||
|
if (reverseSelection && Lang.isNotEmpty(fieldValue)) {
|
||||||
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
|
seg.or("u." + fieldName, "is", null);
|
||||||
|
seg.or("u." + fieldName, IN_OR_NIN_OP, fieldValue);
|
||||||
|
cnd.and(seg);
|
||||||
|
} else {
|
||||||
|
cnd.andEX("u." + fieldName, IN_OR_NIN_OP, fieldValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+15
-49
@@ -36,13 +36,17 @@ import org.nutz.dao.util.cri.SqlExpressionGroup;
|
|||||||
import org.nutz.ioc.aop.Aop;
|
import org.nutz.ioc.aop.Aop;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.lang.Lang;
|
||||||
import org.nutz.lang.util.NutMap;
|
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 javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
@@ -85,34 +89,12 @@ public class MemberBatchMakeController {
|
|||||||
unitName,
|
unitName,
|
||||||
mobile
|
mobile
|
||||||
from
|
from
|
||||||
`user`
|
`vw_user`
|
||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
cnd.and("member", "=", false);
|
cnd.and("member", "=", false);
|
||||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
pageForm.buildSearch(cnd, "");
|
||||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
|
||||||
seg.orLike("username", pageForm.getSearchKeyword());
|
|
||||||
seg.orLike("loginname", pageForm.getSearchKeyword());
|
|
||||||
cnd.and(seg);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 权限判断
|
|
||||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
|
||||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
|
||||||
seg.or("unionId", "=", SecurityUtil.getUnionId());
|
|
||||||
seg.or("unionId", "is", null);
|
|
||||||
seg.or("unionId", "=", "");
|
|
||||||
cnd.and(seg);
|
|
||||||
} else {
|
|
||||||
cnd.andEX("unionId", "=", pageForm.getUnionId());
|
|
||||||
cnd.andEX("unitId", "=", pageForm.getUnitId());
|
|
||||||
}
|
|
||||||
|
|
||||||
cnd.andEX("userState", "in", pageForm.getUserStates());
|
|
||||||
cnd.andEX("preparedBy", "in", pageForm.getPreparedBys());
|
|
||||||
cnd.andEX("personType", "in", pageForm.getPersonTypes());
|
|
||||||
|
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
|
|
||||||
Pagination pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
Pagination pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
@@ -126,7 +108,11 @@ public class MemberBatchMakeController {
|
|||||||
@SLog(tag = "会员信息", msg = "批量设置会员")
|
@SLog(tag = "会员信息", msg = "批量设置会员")
|
||||||
@SaCheckPermission("member.info.batchMake")
|
@SaCheckPermission("member.info.batchMake")
|
||||||
public Result batchMake(MemberBatchMakeParam param){
|
public Result batchMake(MemberBatchMakeParam param){
|
||||||
List<String> userIds = param.getUserIds();
|
List<String> userIds = Optional.ofNullable(param.getUserIds()).orElse(Collections.emptyList())
|
||||||
|
.stream().filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
||||||
|
if (Lang.isEmpty(userIds)) {
|
||||||
|
throw new BaseException("请传递数据");
|
||||||
|
}
|
||||||
// 查询会员角色
|
// 查询会员角色
|
||||||
Sys_role role = sysRoleService.getByCode(RoleConstant.MEMBER);
|
Sys_role role = sysRoleService.getByCode(RoleConstant.MEMBER);
|
||||||
if (role == null) {
|
if (role == null) {
|
||||||
@@ -153,7 +139,7 @@ public class MemberBatchMakeController {
|
|||||||
@At
|
@At
|
||||||
@Ok("void")
|
@Ok("void")
|
||||||
@SaCheckPermission("member.statistics.comprehensive")
|
@SaCheckPermission("member.statistics.comprehensive")
|
||||||
public void doExport(MemberStatisticsPageForm pageForm, HttpServletResponse response){
|
public void doExport(MemberInfoPageForm pageForm, HttpServletResponse response){
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
id,
|
id,
|
||||||
@@ -172,33 +158,13 @@ public class MemberBatchMakeController {
|
|||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
cnd.and("member", "=", false);
|
cnd.and("member", "=", false);
|
||||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
pageForm.buildSearch(cnd, "u.");
|
||||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
|
||||||
seg.orLike("username", pageForm.getSearchKeyword());
|
|
||||||
seg.orLike("loginname", pageForm.getSearchKeyword());
|
|
||||||
cnd.and(seg);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 权限判断
|
|
||||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
|
||||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
|
||||||
seg.or("unionId", "=", SecurityUtil.getUnionId());
|
|
||||||
seg.or("unionId", "is", null);
|
|
||||||
seg.or("unionId", "=", "");
|
|
||||||
cnd.and(seg);
|
|
||||||
} else {
|
|
||||||
cnd.andEX("unionId", "=", pageForm.getUnionId());
|
|
||||||
cnd.andEX("unitId", "=", pageForm.getUnitId());
|
|
||||||
}
|
|
||||||
|
|
||||||
cnd.andEX("userState", "in", pageForm.getUserStates());
|
|
||||||
cnd.andEX("preparedBy", "in", pageForm.getPreparedBys());
|
|
||||||
cnd.andEX("personType", "in", pageForm.getPersonTypes());
|
|
||||||
|
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
List<NutMap> list = memberCommonService.listMap(sql);
|
List<NutMap> list = memberCommonService.listMap(sql);
|
||||||
for (NutMap row : list) {
|
for (NutMap row : list) {
|
||||||
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
|
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
|
||||||
|
row.put("idCard", DesensitizedUtil.idCardNum(row.getString("idCard"), 3, 4));
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||||
@@ -207,7 +173,7 @@ public class MemberBatchMakeController {
|
|||||||
exportEntities.add(new ExcelExportEntity("性别", "sex", 20));
|
exportEntities.add(new ExcelExportEntity("性别", "sex", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20));
|
exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20));
|
exportEntities.add(new ExcelExportEntity("编制类别", "preparedBy", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20));
|
exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
|
exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30));
|
exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30));
|
||||||
|
|||||||
+4
-2
@@ -67,6 +67,7 @@ public class MemberInfoGroupController {
|
|||||||
Pagination<NutMap> pagination = memberInfoService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
Pagination<NutMap> pagination = memberInfoService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
for (NutMap row : pagination.getList()) {
|
for (NutMap row : pagination.getList()) {
|
||||||
row.put("mobile",DesensitizedUtil.mobilePhone(row.getString("mobile")));
|
row.put("mobile",DesensitizedUtil.mobilePhone(row.getString("mobile")));
|
||||||
|
row.put("idCard",DesensitizedUtil.idCardNum(row.getString("idCard"), 3, 4));
|
||||||
}
|
}
|
||||||
return Result.success(pagination);
|
return Result.success(pagination);
|
||||||
}
|
}
|
||||||
@@ -125,9 +126,10 @@ public class MemberInfoGroupController {
|
|||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@SaCheckPermission("member.info.group")
|
@SaCheckPermission("member.info.group")
|
||||||
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
|
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
|
||||||
public Result importMember(TempFile file) {
|
public Result importMember(TempFile file, Boolean isFlag) {
|
||||||
try {
|
try {
|
||||||
NutMap nutMap = memberInfoService.handlingMemberImport(file);
|
System.out.println(isFlag);
|
||||||
|
NutMap nutMap = memberInfoService.handlingMemberImport(file, isFlag);
|
||||||
if (Lang.isNotEmpty(nutMap)) {
|
if (Lang.isNotEmpty(nutMap)) {
|
||||||
return Result.success(nutMap);
|
return Result.success(nutMap);
|
||||||
}
|
}
|
||||||
|
|||||||
+24
-1
@@ -1,5 +1,9 @@
|
|||||||
package com.budwk.app.zhgh.staffmanage.member.controller.statistics;
|
package com.budwk.app.zhgh.staffmanage.member.controller.statistics;
|
||||||
|
|
||||||
|
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||||
|
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import cn.hutool.core.util.DesensitizedUtil;
|
import cn.hutool.core.util.DesensitizedUtil;
|
||||||
import com.budwk.app.base.page.Pagination;
|
import com.budwk.app.base.page.Pagination;
|
||||||
@@ -12,12 +16,16 @@ import org.apache.poi.ss.usermodel.Workbook;
|
|||||||
import org.nutz.dao.sql.Sql;
|
import org.nutz.dao.sql.Sql;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.lang.Lang;
|
||||||
import org.nutz.lang.util.NutMap;
|
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 javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
@@ -50,6 +58,7 @@ public class MemberComprehensiveController {
|
|||||||
Pagination<NutMap> pagination = memberStatisticsService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
Pagination<NutMap> pagination = memberStatisticsService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||||
for (NutMap row : pagination.getList()) {
|
for (NutMap row : pagination.getList()) {
|
||||||
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
|
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
|
||||||
|
row.put("idCard", DesensitizedUtil.idCardNum(row.getString("idCard"), 3, 4));
|
||||||
}
|
}
|
||||||
return Result.success(pagination);
|
return Result.success(pagination);
|
||||||
}
|
}
|
||||||
@@ -63,9 +72,23 @@ public class MemberComprehensiveController {
|
|||||||
List<NutMap> list = memberStatisticsService.listMap(sql);
|
List<NutMap> list = memberStatisticsService.listMap(sql);
|
||||||
for (NutMap row : list) {
|
for (NutMap row : list) {
|
||||||
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
|
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
|
||||||
|
row.put("idCard", DesensitizedUtil.idCardNum(row.getString("idCard"), 3, 4));
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
Workbook workbook = memberInfoService.setHistoryExcelData(list);
|
Workbook workbook = null;
|
||||||
|
if (Lang.isNotEmpty(pageForm.getColumns())) {
|
||||||
|
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||||
|
|
||||||
|
pageForm.getColumns().forEach(column -> {
|
||||||
|
exportEntities.add(new ExcelExportEntity(column.get("label"), column.get("prop"), 20));
|
||||||
|
});
|
||||||
|
ExportParams exportParams = new ExportParams();
|
||||||
|
exportParams.setType(ExcelType.XSSF);
|
||||||
|
|
||||||
|
workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
|
||||||
|
} else {
|
||||||
|
workbook = memberInfoService.setHistoryExcelData(list);
|
||||||
|
}
|
||||||
CommonDownloadUtil.download("会员综合统计表.xlsx", workbook, response);
|
CommonDownloadUtil.download("会员综合统计表.xlsx", workbook, response);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ import org.nutz.dao.interceptor.annotation.PrevInsert;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
@Table("member_list_verification_user")
|
@Table("member_list_verification_user")
|
||||||
@Comment("会员名单核对事项用户表")
|
@Comment("会员名单核对事项用户表")
|
||||||
public class MemberListVerificationUser extends MemberApplyRecord {
|
public class MemberListVerificationUser extends MemberChangeRecord {
|
||||||
|
|
||||||
@Name
|
@Name
|
||||||
@Comment("ID")
|
@Comment("ID")
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
package com.budwk.app.zhgh.staffmanage.member.models.check;
|
||||||
|
|
||||||
|
import com.budwk.app.base.model.BaseModel;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.nutz.dao.entity.annotation.*;
|
||||||
|
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author zzr
|
||||||
|
* @name:MemberCheckTask
|
||||||
|
* @Date 2025/9/24 11:03
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Table
|
||||||
|
@Comment("会员核对事项表")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class MemberCheckTask extends BaseModel {
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Name
|
||||||
|
@Comment("ID")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
@PrevInsert(uu32 = true)
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("年度")
|
||||||
|
@ColDefine(type = ColType.INT)
|
||||||
|
private Integer year;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("任务名称")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||||
|
private String taskName;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("说明")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("开始时间")
|
||||||
|
@ColDefine(type = ColType.DATETIME)
|
||||||
|
private Date startTime;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("结束时间")
|
||||||
|
@ColDefine(type = ColType.DATETIME)
|
||||||
|
private Date endTime;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("模式")
|
||||||
|
@ColDefine(type = ColType.INT)
|
||||||
|
private Integer taskMode;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("在职状态")
|
||||||
|
@ColDefine(type = ColType.MYSQL_JSON)
|
||||||
|
private List<String> userStates;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("是否开启")
|
||||||
|
@Default(value = "1")
|
||||||
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
|
private Boolean isEnabled;
|
||||||
|
}
|
||||||
+98
@@ -0,0 +1,98 @@
|
|||||||
|
package com.budwk.app.zhgh.staffmanage.member.models.check;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
|
import com.budwk.app.base.model.BaseModel;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.nutz.dao.entity.annotation.*;
|
||||||
|
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author zzr
|
||||||
|
* @name:MemberCheckTaskUnionFeedback
|
||||||
|
* @Date 2025/9/24 11:09
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Table
|
||||||
|
@Comment("核对分工会反馈表")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class MemberCheckTaskUnionFeedback extends BaseModel {
|
||||||
|
|
||||||
|
@Name
|
||||||
|
@Comment("ID")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
@PrevInsert(uu32 = true)
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("核对事项Id")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
private String checkTaskId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("分工会Id")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
private String unionId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("分工会编码")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
private String unionCode;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("分工会名称")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||||
|
private String unionName;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("分工会是否已提交")
|
||||||
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
|
@Default("0")
|
||||||
|
private Boolean branchUnionSubmit;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("校工会是否审核")
|
||||||
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
|
@Default("0")
|
||||||
|
private Boolean schoolUnionAudit;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("反馈人Id")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
private String feedbackUserId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("反馈人姓名")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||||
|
private String feedbackUserName;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("反馈人工号")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||||
|
private String feedbackLoginName;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("反馈文件")
|
||||||
|
@ColDefine(type = ColType.MYSQL_JSON)
|
||||||
|
private List<JSONObject> feedbackFiles;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("校工会是否退回")
|
||||||
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
|
private Boolean isRollback;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("退回原因")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 200)
|
||||||
|
private String rollbackReason;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("当前状态")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
}
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
package com.budwk.app.zhgh.staffmanage.member.models.check;
|
||||||
|
|
||||||
|
import com.budwk.app.base.model.BaseModel;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.models.MemberChangeRecord;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import org.nutz.dao.entity.annotation.*;
|
||||||
|
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author zzr
|
||||||
|
* @name:MemberCheckTaskUser
|
||||||
|
* @Date 2025/9/24 11:08
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Table
|
||||||
|
@Comment("会员核对人表")
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class MemberCheckTaskUser extends MemberChangeRecord {
|
||||||
|
|
||||||
|
@Name
|
||||||
|
@Comment("ID")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
@PrevInsert(uu32 = true)
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Comment("核对事项ID")
|
||||||
|
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||||
|
private String checkTaskId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Default("0")
|
||||||
|
@Comment("分工会是否已核对")
|
||||||
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
|
private Boolean branchUnionChecked;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Default("0")
|
||||||
|
@Comment("校工会是否已核对")
|
||||||
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
|
private Boolean schoolUnionChecked;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
@Default("0")
|
||||||
|
@Comment("是否变更")
|
||||||
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
|
private Boolean isChanged;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1,校工会拒绝 2,校工会通过
|
||||||
|
*/
|
||||||
|
@Column
|
||||||
|
@Comment("当前状态")
|
||||||
|
@ColDefine(type = ColType.INT)
|
||||||
|
private Integer currentState;
|
||||||
|
}
|
||||||
+1
-1
@@ -34,7 +34,7 @@ public class MemberChangePageForm extends PageForm {
|
|||||||
private List<String> userStates;
|
private List<String> userStates;
|
||||||
|
|
||||||
// 在职状态
|
// 在职状态
|
||||||
@ApiModelProperty("编制类型")
|
@ApiModelProperty("编制类别")
|
||||||
private List<String> preparedBys;
|
private List<String> preparedBys;
|
||||||
|
|
||||||
// 人员类型
|
// 人员类型
|
||||||
|
|||||||
+78
@@ -0,0 +1,78 @@
|
|||||||
|
package com.budwk.app.zhgh.staffmanage.member.param.pageform;
|
||||||
|
|
||||||
|
import com.budwk.app.base.param.PageForm;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author zzr
|
||||||
|
* @name:MemberCheckPageForm
|
||||||
|
* @Date 2025/9/24 9:59
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ApiModel("核对参数")
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class MemberCheckPageForm extends PageForm {
|
||||||
|
|
||||||
|
@ApiModelProperty("核对年份")
|
||||||
|
private Integer year;
|
||||||
|
|
||||||
|
@ApiModelProperty("是否有单位")
|
||||||
|
private String isUnit;
|
||||||
|
|
||||||
|
@ApiModelProperty("是否有工会")
|
||||||
|
private String isUnion;
|
||||||
|
|
||||||
|
@ApiModelProperty("核对任务id")
|
||||||
|
private String checkTaskId;
|
||||||
|
|
||||||
|
// 工会id
|
||||||
|
@ApiModelProperty("工会id")
|
||||||
|
private String unionIds;
|
||||||
|
|
||||||
|
// 单位id
|
||||||
|
@ApiModelProperty("单位id")
|
||||||
|
private String unitIds;
|
||||||
|
|
||||||
|
@ApiModelProperty("出生日期开始时间")
|
||||||
|
private String birthdayStartDate;
|
||||||
|
|
||||||
|
@ApiModelProperty("出生日期结束时间")
|
||||||
|
private String birthdayEndDate;
|
||||||
|
|
||||||
|
// 在职状态
|
||||||
|
@ApiModelProperty("在职状态")
|
||||||
|
private List<String> userStates;
|
||||||
|
|
||||||
|
// 在职状态
|
||||||
|
@ApiModelProperty("编制类别")
|
||||||
|
private List<String> preparedBys;
|
||||||
|
|
||||||
|
// 人员类型
|
||||||
|
@ApiModelProperty("人员类型")
|
||||||
|
private List<String> personTypes;
|
||||||
|
|
||||||
|
@ApiModelProperty("年龄区间")
|
||||||
|
private List<String> age;
|
||||||
|
|
||||||
|
@ApiModelProperty("性别")
|
||||||
|
private List<String> sexTypes;
|
||||||
|
|
||||||
|
@ApiModelProperty("人员类型(会员、福利会员之类的)")
|
||||||
|
private List<String> userTypes;
|
||||||
|
|
||||||
|
@ApiModelProperty("是否反选")
|
||||||
|
private Boolean reverseSelection;
|
||||||
|
|
||||||
|
@ApiModelProperty("导出字段")
|
||||||
|
private String props;
|
||||||
|
|
||||||
|
@ApiModelProperty("用户信息查询列表")
|
||||||
|
private List<String> userInfos;
|
||||||
|
}
|
||||||
+1
-1
@@ -52,7 +52,7 @@ public class MemberInfoPageForm extends PageForm {
|
|||||||
@ApiModelProperty("在职状态")
|
@ApiModelProperty("在职状态")
|
||||||
private String userState;
|
private String userState;
|
||||||
|
|
||||||
@ApiModelProperty("编制类型")
|
@ApiModelProperty("编制类别")
|
||||||
private String preparedBy;
|
private String preparedBy;
|
||||||
|
|
||||||
@ApiModelProperty("人员类型")
|
@ApiModelProperty("人员类型")
|
||||||
|
|||||||
+7
@@ -1,10 +1,12 @@
|
|||||||
package com.budwk.app.zhgh.staffmanage.member.param.pageform;
|
package com.budwk.app.zhgh.staffmanage.member.param.pageform;
|
||||||
|
|
||||||
import com.budwk.app.base.param.PageForm;
|
import com.budwk.app.base.param.PageForm;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
@@ -29,6 +31,9 @@ public class MemberStatisticsPageForm extends PageForm {
|
|||||||
|
|
||||||
private Integer year;
|
private Integer year;
|
||||||
|
|
||||||
|
@ApiModelProperty("人员Id")
|
||||||
|
private List<String> userIds;
|
||||||
|
|
||||||
private List<String> unionId;
|
private List<String> unionId;
|
||||||
|
|
||||||
private List<String> unitId;
|
private List<String> unitId;
|
||||||
@@ -59,4 +64,6 @@ public class MemberStatisticsPageForm extends PageForm {
|
|||||||
|
|
||||||
private String memberSearchKeyWord;
|
private String memberSearchKeyWord;
|
||||||
|
|
||||||
|
@ApiModelProperty("导出的数据")
|
||||||
|
private List<Map<String, String>> columns;
|
||||||
}
|
}
|
||||||
|
|||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
package com.budwk.app.zhgh.staffmanage.member.service;
|
||||||
|
|
||||||
|
import com.budwk.app.base.service.BaseService;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.models.check.MemberCheckTaskUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author zzr
|
||||||
|
* @name:MemberCheckTaskService
|
||||||
|
* @Date 2025/9/24 11:02
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
public interface MemberCheckTaskService extends BaseService<MemberCheckTaskUser> {
|
||||||
|
}
|
||||||
@@ -64,7 +64,8 @@ public interface MemberInfoService extends BaseService<Sys_user> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入会员数据处理
|
* 导入会员数据处理
|
||||||
* @param file
|
* @param file 文件
|
||||||
|
* @param isFlag 是否清空更新
|
||||||
*/
|
*/
|
||||||
NutMap handlingMemberImport(TempFile file);
|
NutMap handlingMemberImport(TempFile file, Boolean isFlag);
|
||||||
}
|
}
|
||||||
|
|||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
package com.budwk.app.zhgh.staffmanage.member.service.impl;
|
||||||
|
|
||||||
|
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.models.check.MemberCheckTask;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.models.check.MemberCheckTaskUser;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.member.service.MemberCheckTaskService;
|
||||||
|
import org.nutz.dao.Dao;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author zzr
|
||||||
|
* @name:MemberCheckTaskServiceImpl
|
||||||
|
* @Date 2025/9/24 11:22
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
@IocBean(args = {"refer:dao"})
|
||||||
|
public class MemberCheckTaskServiceImpl extends BaseServiceImpl<MemberCheckTaskUser> implements MemberCheckTaskService {
|
||||||
|
|
||||||
|
public MemberCheckTaskServiceImpl(Dao dao) {
|
||||||
|
super(dao);
|
||||||
|
}
|
||||||
|
}
|
||||||
+80
-64
@@ -5,6 +5,7 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
|
|||||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.util.DesensitizedUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.budwk.app.base.constant.RoleConstant;
|
import com.budwk.app.base.constant.RoleConstant;
|
||||||
@@ -23,6 +24,7 @@ import com.budwk.app.zhgh.staffmanage.member.vo.MemberImportVo;
|
|||||||
import org.apache.poi.ss.formula.functions.T;
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
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;
|
||||||
@@ -63,64 +65,49 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
|
|||||||
public Sql getSql(MemberInfoPageForm pageForm) {
|
public Sql getSql(MemberInfoPageForm pageForm) {
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
id,
|
u.id,
|
||||||
loginname,
|
u.loginname,
|
||||||
username,
|
u.username,
|
||||||
sex,
|
u.sex,
|
||||||
birthday,
|
DATE_FORMAT(u.birthday, '%Y-%m-%d') AS birthday,
|
||||||
mobile,
|
u.political,
|
||||||
personType,
|
DATE_FORMAT(u.joinPartyDate, '%Y-%m-%d') AS joinPartyDate,
|
||||||
userState,
|
u.nation,
|
||||||
preparedBy,
|
u.nativePlace,
|
||||||
unionId,
|
u.nationality,
|
||||||
unionName,
|
u.idCardType,
|
||||||
unitId,
|
u.mobile,
|
||||||
unitName,
|
u.idCard,
|
||||||
education,
|
u.marriage,
|
||||||
nation,
|
u.education,
|
||||||
postDoctoralJoinDate
|
u.academicDegree,
|
||||||
|
u.position,
|
||||||
|
u.jobCategory,
|
||||||
|
u.professionalTitle,
|
||||||
|
u.professionalLevel,
|
||||||
|
u.employeeSource,
|
||||||
|
u.administrativeLevel,
|
||||||
|
u.positionSeries,
|
||||||
|
u.positionLevel,
|
||||||
|
u.administrativePositionLevel,
|
||||||
|
u.arrivalAtSchoolDate,
|
||||||
|
u.personType,
|
||||||
|
u.preparedBy,
|
||||||
|
u.identityType,
|
||||||
|
u.userState,
|
||||||
|
u.unionName,
|
||||||
|
u.unitName,
|
||||||
|
DATE_FORMAT(u.teachingTime, '%Y-%m-%d') AS teachingTime,
|
||||||
|
DATE_FORMAT(u.expectedLeaveSchoolDate, '%Y-%m-%d') AS expectedLeaveSchoolDate,
|
||||||
|
u.member,
|
||||||
|
DATE_FORMAT(u.postDoctoralJoinDate, '%Y-%m-%d') AS postDoctoralJoinDate
|
||||||
FROM
|
FROM
|
||||||
vw_user
|
vw_user u
|
||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
cnd.andEX("unionId", "=", pageForm.getUnionId());
|
|
||||||
cnd.andEX("unitId", "=", pageForm.getUnitId());
|
|
||||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
|
||||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
|
||||||
seg.or("username", "like", "%" + pageForm.getSearchKeyword() + "%");
|
|
||||||
seg.or("loginname", "like", "%" + pageForm.getSearchKeyword() + "%");
|
|
||||||
cnd.and(seg);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StrUtil.isAllNotBlank(pageForm.getMemberSearchName(), pageForm.getMemberSearchKeyWord())) {
|
|
||||||
cnd.and(new SqlExpressionGroup().andLike(pageForm.getMemberSearchName(), pageForm.getMemberSearchKeyWord()));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Lang.isNotEmpty(pageForm.getPersonTypes())) {
|
|
||||||
cnd.andEX("personType", "in", pageForm.getPersonTypes());
|
|
||||||
}
|
|
||||||
if (Lang.isNotEmpty(pageForm.getPreparedBys())) {
|
|
||||||
cnd.andEX("preparedBy", "in", pageForm.getPreparedBys());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Lang.isNotEmpty(pageForm.getUserStates())) {
|
|
||||||
cnd.andEX("userState", "in", pageForm.getUserStates());
|
|
||||||
}
|
|
||||||
cnd.andEX("sex", "=", pageForm.getSex());
|
|
||||||
cnd.andEX("sex", "in", pageForm.getSexTypes());
|
|
||||||
|
|
||||||
cnd.and("member", "=", true);
|
cnd.and("member", "=", true);
|
||||||
|
pageForm.buildSearch(cnd, "u.");
|
||||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
|
||||||
cnd.and("unionId", "=", SecurityUtil.getUnionId());
|
|
||||||
}
|
|
||||||
|
|
||||||
if(StrUtil.isAllBlank(pageForm.getPageOrderName(),pageForm.getPageOrderBy())){
|
|
||||||
cnd.asc("unionCode").asc("unitCode");
|
|
||||||
}else{
|
|
||||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
|
||||||
}
|
|
||||||
sql.setCondition(cnd);
|
sql.setCondition(cnd);
|
||||||
return sql;
|
return sql;
|
||||||
}
|
}
|
||||||
@@ -237,7 +224,7 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
|
|||||||
exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20));
|
exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20));
|
||||||
// exportEntities.add(new ExcelExportEntity("身份证号", "idCard", 30));
|
// exportEntities.add(new ExcelExportEntity("身份证号", "idCard", 30));
|
||||||
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20));
|
exportEntities.add(new ExcelExportEntity("编制类别", "preparedBy", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20));
|
exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
|
exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
|
||||||
exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30));
|
exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30));
|
||||||
@@ -255,26 +242,58 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
|
|||||||
public void exportMember(MemberInfoPageForm pageForm, HttpServletResponse response) {
|
public void exportMember(MemberInfoPageForm pageForm, HttpServletResponse response) {
|
||||||
Sql sql = getSql(pageForm);
|
Sql sql = getSql(pageForm);
|
||||||
List<NutMap> list = listMap(sql);
|
List<NutMap> list = listMap(sql);
|
||||||
Workbook workbook = setHistoryExcelData(list);
|
for (NutMap row : list) {
|
||||||
|
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
|
||||||
|
row.put("idCard",DesensitizedUtil.idCardNum(row.getString("idCard"), 3, 4));
|
||||||
|
}
|
||||||
|
|
||||||
|
Workbook workbook = null;
|
||||||
|
if (Lang.isNotEmpty(pageForm.getColumns())) {
|
||||||
|
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||||
|
|
||||||
|
pageForm.getColumns().forEach(column -> {
|
||||||
|
exportEntities.add(new ExcelExportEntity(column.get("label"), column.get("prop"), 20));
|
||||||
|
});
|
||||||
|
ExportParams exportParams = new ExportParams();
|
||||||
|
exportParams.setType(ExcelType.XSSF);
|
||||||
|
|
||||||
|
workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
|
||||||
|
} else {
|
||||||
|
workbook = setHistoryExcelData(list);
|
||||||
|
}
|
||||||
|
|
||||||
CommonDownloadUtil.download("会员档案表.xlsx", workbook, response);
|
CommonDownloadUtil.download("会员档案表.xlsx", workbook, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@Override
|
@Override
|
||||||
public NutMap handlingMemberImport(TempFile file) {
|
public NutMap handlingMemberImport(TempFile file, Boolean isFlag) {
|
||||||
|
Sys_role memberRole = dao().fetch(Sys_role.class, Cnd.where("`code`", "=", RoleConstant.MEMBER.name()));
|
||||||
|
Sys_role publicRole = dao().fetch(Sys_role.class, Cnd.where("`code`", "=", RoleConstant.PUBLIC.name()));
|
||||||
|
|
||||||
List<T> ts = EasyExcelUtil.syncReadModel(file.getFile(), MemberImportVo.class, 0, 1);
|
List<T> ts = EasyExcelUtil.syncReadModel(file.getFile(), MemberImportVo.class, 0, 1);
|
||||||
List<MemberImportVo> list = JSONUtil.parseArray(JSONUtil.toJsonStr(ts)).toList(MemberImportVo.class);
|
List<MemberImportVo> list = JSONUtil.parseArray(JSONUtil.toJsonStr(ts)).toList(MemberImportVo.class);
|
||||||
|
|
||||||
|
// 如果flag为true,文件里面没有但是系统里面有的会员,需要清空
|
||||||
|
if (isFlag) {
|
||||||
|
List<String> loginNameList = list.stream().map(MemberImportVo::getLoginname).toList();
|
||||||
|
Sql sql = Sqls.create("select id from sys_user where member = 1 and loginname not in (@loginNameList)").setParam("loginNameList", loginNameList);
|
||||||
|
sql.setCallback(Sqls.callback.strList());
|
||||||
|
dao().execute(sql);
|
||||||
|
List<String> userIds = sql.getList(String.class);
|
||||||
|
if (Lang.isNotEmpty(userIds)) {
|
||||||
|
dao().clear(Sys_user_role.class, Cnd.where("userId", "in", userIds).and("roleId", "=", memberRole.getId()));
|
||||||
|
dao().update(Sys_user.class, Chain.make("member", false), Cnd.where("id", "in", userIds));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 获取系统用户
|
// 获取系统用户
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(),RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
|
||||||
cnd.and("unionId","=",SecurityUtil.getUnionId());
|
|
||||||
}
|
|
||||||
List<Sys_user> dataUserList = dao().query(Sys_user.class, cnd);
|
List<Sys_user> dataUserList = dao().query(Sys_user.class, cnd);
|
||||||
Map<String, Sys_user> userMap = dataUserList.stream().collect(Collectors.toMap(Sys_user::getLoginname, v -> v));
|
Map<String, Sys_user> userMap = dataUserList.stream().collect(Collectors.toMap(Sys_user::getLoginname, v -> v));
|
||||||
|
|
||||||
List<Sys_unit> unitList = dao().query(Sys_unit.class, Cnd.where("unitLevel", "is not", null).and("unitLevel", "!=", "").groupBy("name"));
|
List<Sys_unit> unitList = dao().query(Sys_unit.class, Cnd.where("unitTypeCode", "=", "1").groupBy("name"));
|
||||||
|
|
||||||
//单位名称,单位Id
|
//单位名称,单位Id
|
||||||
Map<String, String> unitNameLevelTwoMap = unitList.stream().filter(v -> v.getUnitLevel() == 2).collect(Collectors.toMap(Sys_unit::getName, Sys_unit::getId));
|
Map<String, String> unitNameLevelTwoMap = unitList.stream().filter(v -> v.getUnitLevel() == 2).collect(Collectors.toMap(Sys_unit::getName, Sys_unit::getId));
|
||||||
@@ -360,9 +379,6 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
|
|||||||
if (Lang.isNotEmpty(insertOrUpdateUserList)) {
|
if (Lang.isNotEmpty(insertOrUpdateUserList)) {
|
||||||
manyAddOrRenewUtil.asyncExecuteInsertOrUpdate(insertOrUpdateUserList,200);
|
manyAddOrRenewUtil.asyncExecuteInsertOrUpdate(insertOrUpdateUserList,200);
|
||||||
|
|
||||||
Sys_role memberRole = dao().fetch(Sys_role.class, Cnd.where("`code`", "=", RoleConstant.MEMBER.name()));
|
|
||||||
Sys_role publicRole = dao().fetch(Sys_role.class, Cnd.where("`code`", "=", RoleConstant.PUBLIC.name()));
|
|
||||||
|
|
||||||
dao().clear(Sys_user_role.class, Cnd.where("roleId","=", memberRole.getId()));
|
dao().clear(Sys_user_role.class, Cnd.where("roleId","=", memberRole.getId()));
|
||||||
|
|
||||||
//新增用户赋值普通角色
|
//新增用户赋值普通角色
|
||||||
@@ -372,7 +388,7 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
|
|||||||
newUserSql.setCallback(Sqls.callback.maps());
|
newUserSql.setCallback(Sqls.callback.maps());
|
||||||
dao().execute(newUserSql);
|
dao().execute(newUserSql);
|
||||||
List<NutMap> newUserSqlList = newUserSql.getList(NutMap.class);
|
List<NutMap> newUserSqlList = newUserSql.getList(NutMap.class);
|
||||||
List<String> newUserIds = newUserSqlList.stream().map(user -> user.getString("id")).collect(Collectors.toList());
|
List<String> newUserIds = newUserSqlList.stream().map(user -> user.getString("id")).toList();
|
||||||
|
|
||||||
List<Sys_user_role> newUserRoles = newUserIds.stream().map(userId -> {
|
List<Sys_user_role> newUserRoles = newUserIds.stream().map(userId -> {
|
||||||
Sys_user_role sysUserRole = new Sys_user_role();
|
Sys_user_role sysUserRole = new Sys_user_role();
|
||||||
|
|||||||
+1
-1
@@ -143,7 +143,7 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
|
|||||||
his.loginname,
|
his.loginname,
|
||||||
his.username,
|
his.username,
|
||||||
his.mobile,
|
his.mobile,
|
||||||
his.birthday,
|
DATE_FORMAT(his.birthday, '%Y-%m-%d') AS birthday,
|
||||||
his.userState,
|
his.userState,
|
||||||
his.preparedBy,
|
his.preparedBy,
|
||||||
his.personType,
|
his.personType,
|
||||||
|
|||||||
+16
-7
@@ -85,6 +85,7 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
handleField("id", pageForm.getUserIds(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||||
handleField("unionId", pageForm.getUnionId(), reverseSelection, IN_OR_NIN_OP, cnd);
|
handleField("unionId", pageForm.getUnionId(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||||
handleField("unitId", pageForm.getUnitId(), reverseSelection, IN_OR_NIN_OP, cnd);
|
handleField("unitId", pageForm.getUnitId(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||||
handleField("personType", pageForm.getPersonTypes(), reverseSelection, IN_OR_NIN_OP, cnd);
|
handleField("personType", pageForm.getPersonTypes(), reverseSelection, IN_OR_NIN_OP, cnd);
|
||||||
@@ -120,21 +121,27 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
|
|||||||
u.loginname,
|
u.loginname,
|
||||||
u.username,
|
u.username,
|
||||||
u.sex,
|
u.sex,
|
||||||
u.birthday,
|
DATE_FORMAT(u.birthday, '%Y-%m-%d') AS birthday,
|
||||||
u.political,
|
u.political,
|
||||||
u.joinPartyDate,
|
DATE_FORMAT(u.joinPartyDate, '%Y-%m-%d') AS joinPartyDate,
|
||||||
u.nation,
|
u.nation,
|
||||||
u.nativePlace,
|
u.nativePlace,
|
||||||
u.nationality,
|
u.nationality,
|
||||||
u.idCardType,
|
u.idCardType,
|
||||||
u.mobile,
|
u.mobile,
|
||||||
|
u.idCard,
|
||||||
|
u.marriage,
|
||||||
u.education,
|
u.education,
|
||||||
u.academicDegree,
|
u.academicDegree,
|
||||||
u.technicalTitle,
|
|
||||||
u.technicalTitleLevel,
|
|
||||||
u.position,
|
u.position,
|
||||||
|
u.jobCategory,
|
||||||
|
u.professionalTitle,
|
||||||
|
u.professionalLevel,
|
||||||
|
u.employeeSource,
|
||||||
|
u.administrativeLevel,
|
||||||
|
u.positionSeries,
|
||||||
u.positionLevel,
|
u.positionLevel,
|
||||||
u.employeeLevel,
|
u.administrativePositionLevel,
|
||||||
u.arrivalAtSchoolDate,
|
u.arrivalAtSchoolDate,
|
||||||
u.personType,
|
u.personType,
|
||||||
u.preparedBy,
|
u.preparedBy,
|
||||||
@@ -142,8 +149,10 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
|
|||||||
u.userState,
|
u.userState,
|
||||||
u.unionName,
|
u.unionName,
|
||||||
u.unitName,
|
u.unitName,
|
||||||
|
DATE_FORMAT(u.teachingTime, '%Y-%m-%d') AS teachingTime,
|
||||||
|
DATE_FORMAT(u.expectedLeaveSchoolDate, '%Y-%m-%d') AS expectedLeaveSchoolDate,
|
||||||
u.member,
|
u.member,
|
||||||
u.postDoctoralJoinDate
|
DATE_FORMAT(u.postDoctoralJoinDate, '%Y-%m-%d') AS postDoctoralJoinDate
|
||||||
FROM
|
FROM
|
||||||
$table
|
$table
|
||||||
$hisUser
|
$hisUser
|
||||||
@@ -188,7 +197,7 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||||
cnd.and("u.unionId", "in", SecurityUtil.getUnionId());
|
cnd.and("u.unionId", "=", SecurityUtil.getUnionId());
|
||||||
}
|
}
|
||||||
// cnd.desc("u.unitId");
|
// cnd.desc("u.unitId");
|
||||||
cnd.desc("u.unionName,u.id");
|
cnd.desc("u.unionName,u.id");
|
||||||
|
|||||||
+2
-4
@@ -109,7 +109,7 @@ public class SpecialStaffManageController {
|
|||||||
BeanUtil.copyProperties(specialStaffVo, staff);
|
BeanUtil.copyProperties(specialStaffVo, staff);
|
||||||
if (specialStaffVo.getIsManyUnit()!=null && specialStaffVo.getIsManyUnit()) {
|
if (specialStaffVo.getIsManyUnit()!=null && specialStaffVo.getIsManyUnit()) {
|
||||||
// 如果是多单位人员, 更改单位为工会关系
|
// 如果是多单位人员, 更改单位为工会关系
|
||||||
// user.setUnitid(specialStaffVo.getUnionRelationUnitId());
|
user.setUnitId(specialStaffVo.getUnionRelationUnitId());
|
||||||
// user.setThreeUnitId(specialStaffVo.getUnionRelationThreeUnitId());
|
// user.setThreeUnitId(specialStaffVo.getUnionRelationThreeUnitId());
|
||||||
// user.setIsManyUnit(true);
|
// user.setIsManyUnit(true);
|
||||||
dao.updateIgnoreNull(user);
|
dao.updateIgnoreNull(user);
|
||||||
@@ -136,9 +136,7 @@ public class SpecialStaffManageController {
|
|||||||
public Result removeSpecialStaff(@Valid String userId) {
|
public Result removeSpecialStaff(@Valid String userId) {
|
||||||
SpecialStaff staff = dao.fetch(SpecialStaff.class, Cnd.where("userId", "=", userId));
|
SpecialStaff staff = dao.fetch(SpecialStaff.class, Cnd.where("userId", "=", userId));
|
||||||
if (staff.getIsManyUnit()) {
|
if (staff.getIsManyUnit()) {
|
||||||
dao.update(Sys_user.class, Chain.make("unitId", staff.getPersonnelRelationUnitId())
|
dao.update(Sys_user.class, Chain.make("unitId", staff.getPersonnelRelationUnitId()), Cnd.where("id", "=", userId));
|
||||||
.add("threeUnitId", staff.getPersonnelRelationThreeUnitId())
|
|
||||||
.add("isManyUnit", null), Cnd.where("id", "=", userId));
|
|
||||||
SysUserPublisher.notify(SysUserEvent.builder().userId(userId).memberChangeType(MemberChangeType.UNIT_CHANGE).build());
|
SysUserPublisher.notify(SysUserEvent.builder().userId(userId).memberChangeType(MemberChangeType.UNIT_CHANGE).build());
|
||||||
}
|
}
|
||||||
dao.clear(SpecialStaff.class, Cnd.where("userId", "=", userId));
|
dao.clear(SpecialStaff.class, Cnd.where("userId", "=", userId));
|
||||||
|
|||||||
+3
-7
@@ -88,13 +88,9 @@ public class SpecialStaffManageServiceImpl extends BaseServiceImpl<SpecialStaff>
|
|||||||
id AS userId,
|
id AS userId,
|
||||||
username,
|
username,
|
||||||
loginname,
|
loginname,
|
||||||
unitid AS personnelRelationUnitId,
|
unitId AS personnelRelationUnitId,
|
||||||
unitname AS personnelRelationUnitName,
|
unitName AS personnelRelationUnitName,
|
||||||
unionname AS personnelRelationUnionName,
|
unionName AS personnelRelationUnionName,
|
||||||
threeUnitId AS personnelRelationThreeUnitId,
|
|
||||||
threeUnitName AS personnelRelationThreeUnitName,
|
|
||||||
unionGroupId AS personnelRelationUnionGroupId,
|
|
||||||
unionGroupName AS personnelRelationUnionGroupName,
|
|
||||||
userState,
|
userState,
|
||||||
personType,
|
personType,
|
||||||
mobile
|
mobile
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public class WelfareList extends BaseModel{
|
|||||||
private String userState;
|
private String userState;
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@Comment("聘用方式")
|
@Comment("编制类别")
|
||||||
@ColDefine(type = ColType.VARCHAR)
|
@ColDefine(type = ColType.VARCHAR)
|
||||||
private String preparedBy;
|
private String preparedBy;
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class WelfareFilterUserPageForm extends PageForm {
|
|||||||
@ApiModelProperty("人员类型")
|
@ApiModelProperty("人员类型")
|
||||||
private String[] personTypes;
|
private String[] personTypes;
|
||||||
|
|
||||||
@ApiModelProperty("聘用方式")
|
@ApiModelProperty("编制类别")
|
||||||
private String[] preparedBys;
|
private String[] preparedBys;
|
||||||
|
|
||||||
@ApiModelProperty("在职状态")
|
@ApiModelProperty("在职状态")
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class WelfareListPageForm extends PageForm {
|
|||||||
@ApiModelProperty("人员类型")
|
@ApiModelProperty("人员类型")
|
||||||
private String[] personTypes;
|
private String[] personTypes;
|
||||||
|
|
||||||
@ApiModelProperty("聘用方式")
|
@ApiModelProperty("编制类别")
|
||||||
private String[] preparedBys;
|
private String[] preparedBys;
|
||||||
|
|
||||||
@ApiModelProperty("在职状态")
|
@ApiModelProperty("在职状态")
|
||||||
|
|||||||
@@ -598,7 +598,7 @@ public class WelfareListServiceImpl extends BaseServiceImpl<WelfareList> impleme
|
|||||||
entities.add(new ExcelExportEntity("性别", "sex", 20));
|
entities.add(new ExcelExportEntity("性别", "sex", 20));
|
||||||
entities.add(new ExcelExportEntity("出生日期", "birthday", 20));
|
entities.add(new ExcelExportEntity("出生日期", "birthday", 20));
|
||||||
entities.add(new ExcelExportEntity("人员类型", "personType", 20));
|
entities.add(new ExcelExportEntity("人员类型", "personType", 20));
|
||||||
entities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20));
|
entities.add(new ExcelExportEntity("编制类别", "preparedBy", 20));
|
||||||
entities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
entities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
||||||
entities.add(new ExcelExportEntity("所属工会", "welfareUnionName", 20));
|
entities.add(new ExcelExportEntity("所属工会", "welfareUnionName", 20));
|
||||||
entities.add(new ExcelExportEntity("所属单位", "welfareUnitName", 20));
|
entities.add(new ExcelExportEntity("所属单位", "welfareUnitName", 20));
|
||||||
|
|||||||
+1
-1
@@ -201,7 +201,7 @@ public class WelfareStatisticsServiceImpl extends BaseServiceImpl<WelfareProject
|
|||||||
entities.add(new ExcelExportEntity("生日", "birthday", 20));
|
entities.add(new ExcelExportEntity("生日", "birthday", 20));
|
||||||
entities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
entities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
||||||
entities.add(new ExcelExportEntity("教职工类别", "personType", 20));
|
entities.add(new ExcelExportEntity("教职工类别", "personType", 20));
|
||||||
entities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20));
|
entities.add(new ExcelExportEntity("编制类别", "preparedBy", 20));
|
||||||
entities.add(new ExcelExportEntity("进站时间", "postDoctoralJoinDate", 20));
|
entities.add(new ExcelExportEntity("进站时间", "postDoctoralJoinDate", 20));
|
||||||
entities.add(new ExcelExportEntity("单位", "welfareUnitName", 20));
|
entities.add(new ExcelExportEntity("单位", "welfareUnitName", 20));
|
||||||
entities.add(new ExcelExportEntity("工会", "welfareUnionName", 20));
|
entities.add(new ExcelExportEntity("工会", "welfareUnionName", 20));
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
{{ viewData.arrivalAtSchoolDate ? $moment(viewData.arrivalAtSchoolDate).format("YYYY-MM-DD") : null }}
|
{{ viewData.arrivalAtSchoolDate ? $moment(viewData.arrivalAtSchoolDate).format("YYYY-MM-DD") : null }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="身份类别">{{ viewData.identityType }}</el-descriptions-item>
|
<el-descriptions-item label="身份类别">{{ viewData.identityType }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="聘用方式">{{ viewData.preparedBy }}</el-descriptions-item>
|
<el-descriptions-item label="编制类别">{{ viewData.preparedBy }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
|
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
|
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="预计离退休时间">
|
<el-descriptions-item label="预计离退休时间">
|
||||||
|
|||||||
@@ -128,7 +128,8 @@ module.exports = {
|
|||||||
const loading = this.$loading({
|
const loading = this.$loading({
|
||||||
lock: true,
|
lock: true,
|
||||||
text: "正在导入中,请稍后...",
|
text: "正在导入中,请稍后...",
|
||||||
spinner: "el-icon-loading"
|
spinner: "el-icon-loading",
|
||||||
|
background: "rgba(0, 0, 0, 0.7)"
|
||||||
})
|
})
|
||||||
this.$axios.post(this.post_url, data).then((res) => {
|
this.$axios.post(this.post_url, data).then((res) => {
|
||||||
loading.close()
|
loading.close()
|
||||||
|
|||||||
+1
-1
@@ -102,7 +102,7 @@ layout("/layouts/platform.html"){
|
|||||||
{ prop: "loginName", label: "工号", sortable: true },
|
{ prop: "loginName", label: "工号", sortable: true },
|
||||||
{ prop: "userName", label: "姓名", sortable: true },
|
{ prop: "userName", label: "姓名", sortable: true },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
{ prop: "preparedBy", label: "编制类别", sortable: true },
|
||||||
{ prop: "personType", label: "人员类型", sortable: true },
|
{ prop: "personType", label: "人员类型", sortable: true },
|
||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ layout("/layouts/platform.html"){
|
|||||||
{ prop: "loginName", label: "工号", sortable: true },
|
{ prop: "loginName", label: "工号", sortable: true },
|
||||||
{ prop: "userName", label: "姓名", sortable: true },
|
{ prop: "userName", label: "姓名", sortable: true },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
{ prop: "preparedBy", label: "编制类别", sortable: true },
|
||||||
{ prop: "personType", label: "人员类型", sortable: true },
|
{ prop: "personType", label: "人员类型", sortable: true },
|
||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||||
|
|||||||
+1
-1
@@ -120,7 +120,7 @@ layout("/layouts/platform.html"){
|
|||||||
{ prop: "loginName", label: "工号", sortable: true },
|
{ prop: "loginName", label: "工号", sortable: true },
|
||||||
{ prop: "userName", label: "姓名", sortable: true },
|
{ prop: "userName", label: "姓名", sortable: true },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
{ prop: "preparedBy", label: "编制类别", sortable: true },
|
||||||
{ prop: "personType", label: "人员类型", sortable: true },
|
{ prop: "personType", label: "人员类型", sortable: true },
|
||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||||
|
|||||||
+3
-3
@@ -42,8 +42,8 @@ layout("/layouts/platform.html"){
|
|||||||
<search-item label="在职状态">
|
<search-item label="在职状态">
|
||||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch" code="USER_STATE"></dict-select>
|
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch" code="USER_STATE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="聘用方式">
|
<search-item label="编制类别">
|
||||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch" code="USER_PREPARED_BY_TYPE"></dict-select>
|
<dict-select v-model="pageForm.preparedBy" placeholder="编制类别" @change="doSearch" code="USER_PREPARED_BY_TYPE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="人员类型">
|
<search-item label="人员类型">
|
||||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch" code="USER_PERSON_TYPE"></dict-select>
|
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch" code="USER_PERSON_TYPE"></dict-select>
|
||||||
@@ -245,7 +245,7 @@ layout("/layouts/platform.html"){
|
|||||||
{ prop: "username", label: "姓名", sortable: true },
|
{ prop: "username", label: "姓名", sortable: true },
|
||||||
{ prop: "sex", label: "性别", sortable: true, width: "100px" },
|
{ prop: "sex", label: "性别", sortable: true, width: "100px" },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
// {prop: "preparedBy", label: "聘用方式", sortable: true},
|
// {prop: "preparedBy", label: "编制类别", sortable: true},
|
||||||
// {prop: 'personType', label: '人员类型', sortable: true},
|
// {prop: 'personType', label: '人员类型', sortable: true},
|
||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ const COMMON_QUERY = {
|
|||||||
</search-item>
|
</search-item>
|
||||||
</search>
|
</search>
|
||||||
`,
|
`,
|
||||||
|
store,
|
||||||
mixins: [initTableMixins],
|
mixins: [initTableMixins],
|
||||||
data() {
|
data() {
|
||||||
return{
|
return{
|
||||||
|
|||||||
@@ -50,28 +50,30 @@ const INFO = {
|
|||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item></el-descriptions-item>
|
<el-descriptions-item></el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item label="家庭主要成员" :span="3">
|
<template v-if="viewData.loginname == $store.state.user.loginname">
|
||||||
<el-table v-if="viewData.families&&viewData.families.length"
|
<el-descriptions-item label="家庭主要成员" :span="3">
|
||||||
:data="viewData.families" size="mini" border
|
<el-table v-if="viewData.families&&viewData.families.length"
|
||||||
:header-cell-style="{background:'#eff3f6'}"
|
:data="viewData.families" size="mini" border
|
||||||
style="width: 100%">
|
:header-cell-style="{background:'#eff3f6'}"
|
||||||
<el-table-column prop="relation" label="与本人关系" align="center"
|
style="width: 100%">
|
||||||
header-align="center">
|
<el-table-column prop="relation" label="与本人关系" align="center"
|
||||||
</el-table-column>
|
header-align="center">
|
||||||
<el-table-column prop="name" label="姓名" align="center" header-align="center">
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column prop="name" label="姓名" align="center" header-align="center">
|
||||||
<el-table-column prop="unit" label="单位" align="center" header-align="center">
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column prop="unit" label="单位" align="center" header-align="center">
|
||||||
<el-table-column prop="remark" label="备注" align="center" header-align="center">
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column prop="remark" label="备注" align="center" header-align="center">
|
||||||
</el-table>
|
</el-table-column>
|
||||||
<el-empty v-else :image-size="50" description="暂无家庭成员信息"></el-empty>
|
</el-table>
|
||||||
</el-descriptions-item>
|
<el-empty v-else :image-size="50" description="暂无家庭成员信息"></el-empty>
|
||||||
<el-descriptions-item label="个人简况" :span="3">
|
</el-descriptions-item>
|
||||||
<template slot="label">个人简况</template>
|
<el-descriptions-item label="个人简况" :span="3">
|
||||||
<div v-if="viewData.vita" class="text-left" v-html="viewData.vita"></div>
|
<template slot="label">个人简况</template>
|
||||||
<span v-else>无数据</span>
|
<div v-if="viewData.personalData" class="text-left" v-html="viewData.personalData"></div>
|
||||||
</el-descriptions-item>
|
<span v-else>无数据</span>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</template>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="变更信息" name="changeInfo" v-if="viewData.changeInfos">
|
<el-tab-pane label="变更信息" name="changeInfo" v-if="viewData.changeInfos">
|
||||||
|
|||||||
+1
-1
@@ -139,7 +139,7 @@ const MEMBER_CHANGE = {
|
|||||||
:disabled="allowFields('userState')" style="width: 100%"></dict-select>
|
:disabled="allowFields('userState')" style="width: 100%"></dict-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="编制类型">
|
<el-descriptions-item label="编制类别">
|
||||||
<el-form-item prop="preparedBy">
|
<el-form-item prop="preparedBy">
|
||||||
<dict-select v-model="formData.preparedBy" code="USER_PREPARED_BY_TYPE"
|
<dict-select v-model="formData.preparedBy" code="USER_PREPARED_BY_TYPE"
|
||||||
:disabled="allowFields('preparedBy')" style="width: 100%"></dict-select>
|
:disabled="allowFields('preparedBy')" style="width: 100%"></dict-select>
|
||||||
|
|||||||
@@ -255,11 +255,15 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
|
|
||||||
async doSubmit(data) {
|
async doSubmit(data) {
|
||||||
const resp = this.$axios.post("/platform/member/change/manage/doSubmitChange", data)
|
const loading = createLoading('正在提交中')
|
||||||
|
const resp = await this.$axios.post("/platform/member/change/manage/doSubmitChange", data)
|
||||||
|
loading.close()
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
this.$message.success(resp.msg)
|
this.$message.success(resp.msg)
|
||||||
this.$refs.guava.index()
|
this.$refs.guava.index()
|
||||||
this.pageData()
|
this.pageData()
|
||||||
|
} else {
|
||||||
|
this.$message.error(resp.msg)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getChangeTypes(changeTypes){
|
getChangeTypes(changeTypes){
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column label="异动信息" header-align="center">
|
<el-table-column label="异动信息" header-align="center">
|
||||||
<el-table-column label="更新时间" prop="applyDateTime" min-width="145px"
|
<el-table-column label="更新时间" prop="changeTime" min-width="130px"
|
||||||
header-align="center"
|
header-align="center"
|
||||||
sortable
|
sortable
|
||||||
align="center" show-overflow-tooltip>
|
align="center" show-overflow-tooltip>
|
||||||
@@ -88,7 +88,7 @@ layout("/layouts/platform.html"){
|
|||||||
label="操作"
|
label="操作"
|
||||||
width="100px" fixed="right">
|
width="100px" fixed="right">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
<el-button size="mini" type="primary" @click="openView(row.userId)">查看</el-button>
|
<el-button size="mini" type="primary" @click="openView(row)">查看</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|||||||
+2
-2
@@ -27,8 +27,8 @@ const MEMBER_MANAGE_QUERY = {
|
|||||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||||
code="USER_STATE"></dict-select>
|
code="USER_STATE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="聘用方式">
|
<search-item label="编制类别">
|
||||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch"
|
<dict-select v-model="pageForm.preparedBy" placeholder="编制类别" @change="doSearch"
|
||||||
code="USER_PREPARED_BY_TYPE"></dict-select>
|
code="USER_PREPARED_BY_TYPE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="人员类型">
|
<search-item label="人员类型">
|
||||||
|
|||||||
+1
-1
@@ -154,7 +154,7 @@ const MEMBER_MANAGE_TABLE = {
|
|||||||
{ prop: "sex", label: "性别", sortable: true, width: "100px" },
|
{ prop: "sex", label: "性别", sortable: true, width: "100px" },
|
||||||
{ prop: "birthday", label: "出生年月", sortable: true },
|
{ prop: "birthday", label: "出生年月", sortable: true },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
{ prop: "preparedBy", label: "编制类别", sortable: true },
|
||||||
{ prop: "personType", label: "人员类型", sortable: true },
|
{ prop: "personType", label: "人员类型", sortable: true },
|
||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true }
|
{ prop: "unitName", label: "所属单位", sortable: true }
|
||||||
|
|||||||
+60
-10
@@ -8,8 +8,14 @@ layout("/layouts/platform.html"){
|
|||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-card shadow="never" class="mt10">
|
<el-card shadow="never" class="mt10">
|
||||||
<table-tool label="非会员列表"></table-tool>
|
<table-tool label="非会员列表">
|
||||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" ref="table" row-key="id" style="width: 100%">
|
<el-button @click="doExport" size="mini" type="primary">导出</el-button>
|
||||||
|
<el-button :disabled="!selection || selection.length == 0"
|
||||||
|
@click="batchMake" size="mini" type="primary">批量设置为会员</el-button>
|
||||||
|
</table-tool>
|
||||||
|
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" ref="table"
|
||||||
|
row-key="id" @selection-change="handleSelectionChange" style="width: 100%">
|
||||||
|
<el-table-column :reserve-selection="true" type="selection" width="55"></el-table-column>
|
||||||
<el-table-column :index="indexMethod" align="center" header-align="center"
|
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||||
label="序号" type="index" width="80px"></el-table-column>
|
label="序号" type="index" width="80px"></el-table-column>
|
||||||
<el-table-column :label="column.label"
|
<el-table-column :label="column.label"
|
||||||
@@ -30,6 +36,10 @@ layout("/layouts/platform.html"){
|
|||||||
</el-table>
|
</el-table>
|
||||||
<!--#include("/layouts/pagination.html"){}#-->
|
<!--#include("/layouts/pagination.html"){}#-->
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
|
<template #view>
|
||||||
|
<member-info ref="memberInfo"></member-info>
|
||||||
|
</template>
|
||||||
</guava>
|
</guava>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
@@ -44,29 +54,69 @@ layout("/layouts/platform.html"){
|
|||||||
return {
|
return {
|
||||||
pageForm: {},
|
pageForm: {},
|
||||||
tableColumns: [
|
tableColumns: [
|
||||||
{ prop: "loginName", label: "工号", sortable: true },
|
{ prop: "loginname", label: "工号", sortable: true },
|
||||||
{ prop: "userName", label: "姓名", sortable: true },
|
{ prop: "username", label: "姓名", sortable: true },
|
||||||
{ prop: "sex", label: "性别", sortable: true },
|
{ prop: "sex", label: "性别", sortable: true },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
{ prop: "personType", label: "人员类型", sortable: true },
|
{ prop: "personType", label: "人员类型", sortable: true },
|
||||||
{ prop: "preparedBy", label: "编制类型", sortable: true },
|
{ prop: "preparedBy", label: "编制类别", sortable: true },
|
||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||||
]
|
],
|
||||||
|
|
||||||
|
selection: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
"common-query": COMMON_QUERY,
|
||||||
|
"member-info": MEMBER_INFO
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 查看会员
|
// 查看信息
|
||||||
openView() {
|
openView(row) {
|
||||||
|
this.$refs.guava.view(() => {
|
||||||
|
this.$refs.memberInfo.onOpen(row.id)
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 单个设置会员
|
// 单个设置会员
|
||||||
singleMake(row) {
|
singleMake(row) {
|
||||||
|
const data = [row.id]
|
||||||
|
const msg = "确定将【" + row.username + "】设置为会员吗?"
|
||||||
|
this.setMemberFun(msg, data)
|
||||||
},
|
},
|
||||||
// 批量设置会员
|
// 批量设置会员
|
||||||
batchMake() {
|
batchMake() {
|
||||||
|
const msg = "确定将【" + this.selection.length + "】条数据设置为会员吗?"
|
||||||
|
const data = this.selection.map(item => item.id)
|
||||||
|
this.setMemberFun(msg, data)
|
||||||
|
},
|
||||||
|
setMemberFun(msg, data) {
|
||||||
|
this.$confirm(msg, "提示", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}).then(async () => {
|
||||||
|
debugger
|
||||||
|
const loading = createLoading('正在提交中')
|
||||||
|
const resp = await this.$axios.post("/platform/member/info/batchMake/batchMake", {
|
||||||
|
userIds: JSON.stringify(data)
|
||||||
|
})
|
||||||
|
loading.close()
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.$message.success(resp.msg)
|
||||||
|
this.pageData()
|
||||||
|
this.selection = []
|
||||||
|
this.$refs.table.clearSelection()
|
||||||
|
} else {
|
||||||
|
this.$message.error(resp.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
doExport() {
|
||||||
|
|
||||||
|
},
|
||||||
|
handleSelectionChange(val){
|
||||||
|
this.selection = val;
|
||||||
},
|
},
|
||||||
search(pageForm) {
|
search(pageForm) {
|
||||||
if (pageForm) {
|
if (pageForm) {
|
||||||
|
|||||||
+10
-4
@@ -18,20 +18,26 @@ const COMMON_QUERY = {
|
|||||||
v-for="item in units"></el-option>
|
v-for="item in units"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="在职状态">
|
<search-item label="在职状态" v-if="!query_disable">
|
||||||
<dict-select v-model="pageForm.userStates" placeholder="在职状态" @change="doSearch"
|
<dict-select v-model="pageForm.userStates" placeholder="在职状态" @change="doSearch"
|
||||||
code="USER_STATE" multiple collapse-tags></dict-select>
|
code="USER_STATE" multiple collapse-tags></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="人事编制">
|
<search-item label="人事编制">
|
||||||
<dict-select v-model="pageForm.preparedBys" placeholder="人事编制" @change="doSearch"
|
<dict-select v-model="pageForm.preparedBys" placeholder="人事编制" @change="doSearch"
|
||||||
code="USER_PREPARED_BY_TYPE" multiple collapse-tags></dict-select>
|
code="USER_PREPARED_BY_TYPE" multiple collapse-tags></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="人员类型">
|
<search-item label="人员类型" v-if="!query_disable">
|
||||||
<dict-select v-model="pageForm.personTypes" placeholder="人员类型" @change="doSearch"
|
<dict-select v-model="pageForm.personTypes" placeholder="人员类型" @change="doSearch"
|
||||||
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
|
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
</search>
|
</search>
|
||||||
`,
|
`,
|
||||||
|
props: {
|
||||||
|
query_disable: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
mixins: [initTableMixins],
|
mixins: [initTableMixins],
|
||||||
data() {
|
data() {
|
||||||
return{
|
return{
|
||||||
|
|||||||
+2
-2
@@ -59,7 +59,7 @@ layout("/layouts/platform.html"){
|
|||||||
<div id="app">
|
<div id="app">
|
||||||
<guava ref="guava">
|
<guava ref="guava">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<common-query ref="commonQueryRef" @search="search"></common-query>
|
<common-query ref="commonQueryRef" @search="search" query_disable></common-query>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
@@ -208,7 +208,7 @@ layout("/layouts/platform.html"){
|
|||||||
{ prop: "sex", label: "性别", sortable: true },
|
{ prop: "sex", label: "性别", sortable: true },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
{ prop: "personType", label: "人员类型", sortable: true },
|
{ prop: "personType", label: "人员类型", sortable: true },
|
||||||
{ prop: "preparedBy", label: "编制类型", sortable: true },
|
{ prop: "preparedBy", label: "编制类别", sortable: true },
|
||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -5,65 +5,7 @@ layout("/layouts/platform.html"){
|
|||||||
<guava ref="guava">
|
<guava ref="guava">
|
||||||
<template>
|
<template>
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<search @search="doSearch">
|
<common-query ref="commonQueryRef" @search="search"></common-query>
|
||||||
<search-item label="姓名/工号">
|
|
||||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"></el-input>
|
|
||||||
</search-item>
|
|
||||||
<search-item label="所属工会">
|
|
||||||
<el-select
|
|
||||||
@change="flushUnits"
|
|
||||||
@clear="flushUnits"
|
|
||||||
clearable
|
|
||||||
filterable
|
|
||||||
placeholder="所属工会"
|
|
||||||
style="width: 100%"
|
|
||||||
v-model="pageForm.unionId"
|
|
||||||
>
|
|
||||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in unions"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</search-item>
|
|
||||||
<search-item label="所属单位">
|
|
||||||
<el-select clearable filterable placeholder="请选择" style="width: 100%" v-model="pageForm.unitId">
|
|
||||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</search-item>
|
|
||||||
<search-item label="性别">
|
|
||||||
<el-select v-model="pageForm.sexTypes" clearable multiple placeholder="性别">
|
|
||||||
<el-option label="男" value="男"></el-option>
|
|
||||||
<el-option label="女" value="女"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</search-item>
|
|
||||||
<search-item label="在职状态">
|
|
||||||
<dict-select
|
|
||||||
clearable
|
|
||||||
code="USER_STATE"
|
|
||||||
multiple
|
|
||||||
collapse-tags
|
|
||||||
placeholder="请选择人员状态"
|
|
||||||
v-model="pageForm.userStates"
|
|
||||||
></dict-select>
|
|
||||||
</search-item>
|
|
||||||
<search-item label="人员类型">
|
|
||||||
<dict-select
|
|
||||||
clearable
|
|
||||||
code="USER_PERSON_TYPE"
|
|
||||||
multiple
|
|
||||||
collapse-tags
|
|
||||||
placeholder="请选择人员类型"
|
|
||||||
v-model="pageForm.personTypes"
|
|
||||||
></dict-select>
|
|
||||||
</search-item>
|
|
||||||
<search-item label="聘用方式">
|
|
||||||
<dict-select
|
|
||||||
clearable
|
|
||||||
code="USER_PREPARED_BY_TYPE"
|
|
||||||
multiple
|
|
||||||
collapse-tags
|
|
||||||
placeholder="请选择聘用方式"
|
|
||||||
v-model="pageForm.preparedBys"
|
|
||||||
></dict-select>
|
|
||||||
</search-item>
|
|
||||||
</search>
|
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-card shadow="never" class="mt10">
|
<el-card shadow="never" class="mt10">
|
||||||
@@ -79,6 +21,37 @@ layout("/layouts/platform.html"){
|
|||||||
备份历史会员
|
备份历史会员
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" size="small" icon="el-icon-download" @click="exportMember">会员档案导出</el-button>
|
<el-button type="primary" size="small" icon="el-icon-download" @click="exportMember">会员档案导出</el-button>
|
||||||
|
<el-popover
|
||||||
|
placement="bottom"
|
||||||
|
trigger="click"
|
||||||
|
width="200">
|
||||||
|
<!-- 点击外部/空白自动关闭,无需额外代码 -->
|
||||||
|
|
||||||
|
<div style="padding:4px 0;">
|
||||||
|
<el-button type="text" size="mini" @click="checkAll">全选</el-button>
|
||||||
|
<el-button type="text" size="mini" @click="invertCheck">反选</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-checkbox-group v-model="checkedFields">
|
||||||
|
<el-checkbox
|
||||||
|
v-for="f in tableColumns"
|
||||||
|
:key="f.prop"
|
||||||
|
:label="f.prop"
|
||||||
|
style="display:block;margin:6px 0;">
|
||||||
|
{{ f.label }}
|
||||||
|
</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
|
||||||
|
<!-- 触发器:文字按钮 -->
|
||||||
|
<el-button
|
||||||
|
slot="reference"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-s-operation"
|
||||||
|
size="small"
|
||||||
|
style="margin-left:12px;">
|
||||||
|
列设置
|
||||||
|
</el-button>
|
||||||
|
</el-popover>
|
||||||
</table-tool>
|
</table-tool>
|
||||||
|
|
||||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder" :size="tableSize" class="vi-table">
|
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder" :size="tableSize" class="vi-table">
|
||||||
@@ -86,6 +59,7 @@ layout("/layouts/platform.html"){
|
|||||||
align="center"
|
align="center"
|
||||||
header-align="center"
|
header-align="center"
|
||||||
type="index"
|
type="index"
|
||||||
|
fixed="left"
|
||||||
:index="indexMethod"
|
:index="indexMethod"
|
||||||
label="序号"
|
label="序号"
|
||||||
width="80px"
|
width="80px"
|
||||||
@@ -95,7 +69,9 @@ layout("/layouts/platform.html"){
|
|||||||
align="center"
|
align="center"
|
||||||
header-align="center"
|
header-align="center"
|
||||||
v-for="column in tableColumns"
|
v-for="column in tableColumns"
|
||||||
|
v-if="checkedFields.includes(column.prop)"
|
||||||
:label="column.label"
|
:label="column.label"
|
||||||
|
:fixed="column.fixed"
|
||||||
:prop="column.prop"
|
:prop="column.prop"
|
||||||
:sortable="column.sortable"
|
:sortable="column.sortable"
|
||||||
:width="column.width"
|
:width="column.width"
|
||||||
@@ -113,7 +89,7 @@ layout("/layouts/platform.html"){
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #view>
|
<template #view>
|
||||||
<member-info ref="applyInfoRef"></member-info>
|
<member-info ref="infoRef"></member-info>
|
||||||
</template>
|
</template>
|
||||||
</guava>
|
</guava>
|
||||||
|
|
||||||
@@ -122,6 +98,7 @@ layout("/layouts/platform.html"){
|
|||||||
<el-dialog title="会员导入" :visible.sync="importDialog" width="50%" :close-on-click-modal="false" :close-on-press-escape="false">
|
<el-dialog title="会员导入" :visible.sync="importDialog" width="50%" :close-on-click-modal="false" :close-on-press-escape="false">
|
||||||
<file-import
|
<file-import
|
||||||
ref="viewImport"
|
ref="viewImport"
|
||||||
|
is_show_radio
|
||||||
temp_url="/platform/member/info/group/downloadMemberTemplate"
|
temp_url="/platform/member/info/group/downloadMemberTemplate"
|
||||||
post_url="/platform/member/info/group/importMember"
|
post_url="/platform/member/info/group/importMember"
|
||||||
@flush="successImport"
|
@flush="successImport"
|
||||||
@@ -129,52 +106,57 @@ layout("/layouts/platform.html"){
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
<!--#include("archiveMember.js"){}#-->
|
||||||
|
<!--#include("../common/commonQuery.js"){}#-->
|
||||||
<!--#include("../../common/info/memberInfo.js"){}#-->
|
<!--#include("../../common/info/memberInfo.js"){}#-->
|
||||||
<!--#include("archiveMember.js"){}#-->
|
|
||||||
|
|
||||||
new Vue({
|
new Vue({
|
||||||
el: "#app",
|
el: "#app",
|
||||||
mixins: [initTableMixins],
|
mixins: [initTableMixins],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pageForm: {
|
pageForm: {},
|
||||||
searchKeyword: "",
|
tableColumns: [
|
||||||
unionId: "",
|
{ prop: "loginname", label: "工号", width: 120, fixed: "left"},
|
||||||
unitId: "",
|
{ prop: "username", label: "姓名", width: 120, fixed: "left" },
|
||||||
personTypes: [],
|
{ prop: "sex", label: "性别", width: 120},
|
||||||
preparedBys: [],
|
{ prop: "birthday", label: "出生年月", width: 120, sortable: true },
|
||||||
userStates: [],
|
{ prop: "nationality", label: "国籍", width: 120, sortable: true, checked: 0 },
|
||||||
sexTypes: [],
|
{ prop: "nation", label: "民族", width: 120, sortable: true},
|
||||||
totalCount: 0,
|
{ prop: "mobile", label: "联系电话", width: 120 },
|
||||||
cnd: ""
|
{ prop: "political", label: "政治面貌", width: 120, sortable: true},
|
||||||
},
|
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
|
||||||
userId: "",
|
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
|
||||||
unions: [],
|
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
|
||||||
units: [],
|
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true, checked: 0 },
|
||||||
tableColumns: [
|
{ prop: "unionName", label: "所属工会", width: 120, sortable: true },
|
||||||
{ prop: "loginname", label: "工号" },
|
{ prop: "unitName", label: "所属单位", width: 120, sortable: true },
|
||||||
{ prop: "username", label: "姓名" },
|
{ prop: "idCardType", label: "证件类型", width: 120, sortable: true, checked: 0 },
|
||||||
{ prop: "sex", label: "性别" },
|
{ prop: "idCard", label: "证件号码", width: 120, sortable: true, checked: 0 },
|
||||||
{ prop: "birthday", label: "出生年月", sortable: true },
|
{ prop: "marriage", label: "婚姻状况", width: 120, sortable: true, checked: 0 },
|
||||||
{ prop: "mobile", label: "联系电话" },
|
{ prop: "jobCategory", label: "岗位类别", width: 120, sortable: true, checked: 0 },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
|
||||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
{ prop: "professionalTitle", label: "职称", width: 120, sortable: true, checked: 0 },
|
||||||
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true },
|
{ prop: "professionalLevel", label: "职级", width: 120, sortable: true, checked: 0 },
|
||||||
{ prop: "personType", label: "人员类型", sortable: true },
|
{ prop: "employeeSource", label: "职工来源", width: 120, sortable: true, checked: 0 },
|
||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "administrativeLevel", label: "行政级别(管理岗位)", width: 120, sortable: true, checked: 0 },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true }
|
{ prop: "positionSeries", label: "岗位系列", width: 120, sortable: true, checked: 0 },
|
||||||
],
|
{ prop: "positionLevel", label: "岗级", width: 120, sortable: true, checked: 0 },
|
||||||
personTypeOptions: [],
|
{ prop: "administrativePositionLevel", label: "行政岗级", width: 120, sortable: true, checked: 0 },
|
||||||
preparedByOptions: [],
|
{ prop: "arrivalAtSchoolDate", label: "来校时间", width: 120, sortable: true, checked: 0 },
|
||||||
userStateOptions: [],
|
{ prop: "teachingTime", label: "从教年月", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "expectedLeaveSchoolDate", label: "预计/最后离校时间", width: 120, sortable: true, checked: 0 },
|
||||||
|
],
|
||||||
|
checkedFields: [],
|
||||||
|
|
||||||
importDialog: false
|
importDialog: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
"member-cnd": httpVueLoader("/components/module/member/MemberCnd.vue?v=" + new Date().getTime()),
|
|
||||||
"file-import": httpVueLoader("/components/plugins/sysImport/index.vue?v=" + new Date().getTime()),
|
"file-import": httpVueLoader("/components/plugins/sysImport/index.vue?v=" + new Date().getTime()),
|
||||||
"archive-member": ARCHIVE_MEMBER,
|
"archive-member": ARCHIVE_MEMBER,
|
||||||
"member-info": MEMBER_INFO
|
"member-info": MEMBER_INFO,
|
||||||
|
"common-query": COMMON_QUERY,
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
openImport() {
|
openImport() {
|
||||||
@@ -182,12 +164,14 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
successImport() {
|
successImport() {
|
||||||
this.importDialog = false
|
this.importDialog = false
|
||||||
|
this.pageData()
|
||||||
},
|
},
|
||||||
exportMember() {
|
exportMember() {
|
||||||
const pageForm = clone(this.pageForm)
|
const pageForm = clone(this.pageForm)
|
||||||
pageForm.userStates = JSON.stringify(this.pageForm.userStates)
|
pageForm.userStates = JSON.stringify(this.pageForm.userStates)
|
||||||
pageForm.personTypes = JSON.stringify(this.pageForm.personTypes)
|
pageForm.personTypes = JSON.stringify(this.pageForm.personTypes)
|
||||||
pageForm.preparedBys = JSON.stringify(this.pageForm.preparedBys)
|
pageForm.preparedBys = JSON.stringify(this.pageForm.preparedBys)
|
||||||
|
|
||||||
this.$downLoad(loc() + "/exportMember", pageForm)
|
this.$downLoad(loc() + "/exportMember", pageForm)
|
||||||
},
|
},
|
||||||
openArchive() {
|
openArchive() {
|
||||||
@@ -195,9 +179,16 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
openView(userId) {
|
openView(userId) {
|
||||||
this.$refs.guava.view(() => {
|
this.$refs.guava.view(() => {
|
||||||
this.$refs.applyInfoRef.onOpen(userId)
|
this.$refs.infoRef.onOpen(userId)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
search(pageForm) {
|
||||||
|
this.pageForm = {
|
||||||
|
...this.pageForm,
|
||||||
|
...pageForm,
|
||||||
|
}
|
||||||
|
this.pageData()
|
||||||
|
},
|
||||||
pageData() {
|
pageData() {
|
||||||
this.tableLoading = true
|
this.tableLoading = true
|
||||||
const pageForm = clone(this.pageForm)
|
const pageForm = clone(this.pageForm)
|
||||||
@@ -217,29 +208,23 @@ layout("/layouts/platform.html"){
|
|||||||
this.tableLoading = false
|
this.tableLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async initData() {
|
|
||||||
if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) {
|
checkAll() {
|
||||||
this.unions = await this.$businessTool.listUnion(this.pageForm.unionId)
|
this.checkedFields = this.tableColumns.map(c => c.prop);
|
||||||
this.units = await this.$businessTool.listUnit()
|
},
|
||||||
} else {
|
invertCheck() {
|
||||||
this.unions = await this.$businessTool.listUnion(store?.state.user.union.id)
|
const all = this.tableColumns.map(c => c.prop);
|
||||||
this.units = await this.$businessTool.listUnit(store?.state.user.union.id)
|
this.checkedFields = all.filter(p => !this.checkedFields.includes(p));
|
||||||
}
|
}
|
||||||
this.personTypeOptions = await this.$businessTool.getDictOptions("USER_STAFF_TYPE")
|
|
||||||
this.preparedByOptions = await this.$businessTool.getDictOptions("USER_EMPLOYMENT_TYPE")
|
|
||||||
this.userStateOptions = await this.$businessTool.getDictOptions("USER_STATE")
|
|
||||||
},
|
|
||||||
async flushUnits() {
|
|
||||||
this.$set(this.pageForm, "unitId", null)
|
|
||||||
this.units = []
|
|
||||||
if (this.pageForm.unionId) {
|
|
||||||
this.units = await this.$businessTool.listUnit(this.pageForm.unionId)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
showColumns() {
|
||||||
|
return this.tableColumns.filter(c => this.checkedFields.includes(c.prop));
|
||||||
|
}
|
||||||
|
},
|
||||||
created() {
|
created() {
|
||||||
|
this.checkedFields = this.tableColumns.filter(c => c.checked !== 0).map(c => c.prop);
|
||||||
this.pageData()
|
this.pageData()
|
||||||
this.initData()
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -43,10 +43,10 @@ layout("/layouts/platform.html"){
|
|||||||
<search-item label="在职状态">
|
<search-item label="在职状态">
|
||||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch" code="USER_STATE"></dict-select>
|
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch" code="USER_STATE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="聘用方式">
|
<search-item label="编制类别">
|
||||||
<dict-select
|
<dict-select
|
||||||
v-model="pageForm.preparedBy"
|
v-model="pageForm.preparedBy"
|
||||||
placeholder="聘用方式"
|
placeholder="编制类别"
|
||||||
@change="doSearch"
|
@change="doSearch"
|
||||||
code="USER_PREPARED_BY_TYPE"
|
code="USER_PREPARED_BY_TYPE"
|
||||||
></dict-select>
|
></dict-select>
|
||||||
@@ -120,7 +120,7 @@ layout("/layouts/platform.html"){
|
|||||||
{ prop: "sex", label: "性别" },
|
{ prop: "sex", label: "性别" },
|
||||||
{ prop: "mobile", label: "联系电话" },
|
{ prop: "mobile", label: "联系电话" },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
{ prop: "preparedBy", label: "编制类别", sortable: true },
|
||||||
{ prop: "personType", label: "人员类型", sortable: true },
|
{ prop: "personType", label: "人员类型", sortable: true },
|
||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true }
|
{ prop: "unitName", label: "所属单位", sortable: true }
|
||||||
|
|||||||
+3
-3
@@ -19,8 +19,8 @@ const SCHOOL_VIEW_AND_HANDLE = {
|
|||||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||||
code="USER_STATE"></dict-select>
|
code="USER_STATE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="聘用方式">
|
<search-item label="编制类别">
|
||||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch"
|
<dict-select v-model="pageForm.preparedBy" placeholder="编制类别" @change="doSearch"
|
||||||
code="USER_PREPARED_BY_TYPE"></dict-select>
|
code="USER_PREPARED_BY_TYPE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="人员类型">
|
<search-item label="人员类型">
|
||||||
@@ -140,7 +140,7 @@ const SCHOOL_VIEW_AND_HANDLE = {
|
|||||||
{ label: "工号", prop: "loginname" },
|
{ label: "工号", prop: "loginname" },
|
||||||
{ label: "性别", prop: "sex" },
|
{ label: "性别", prop: "sex" },
|
||||||
{ label: "在职状态", prop: "userState" },
|
{ label: "在职状态", prop: "userState" },
|
||||||
{ label: "聘用方式", prop: "preparedBy" },
|
{ label: "编制类别", prop: "preparedBy" },
|
||||||
{ label: "人员类型", prop: "personType" },
|
{ label: "人员类型", prop: "personType" },
|
||||||
{ label: "所属单位", prop: "unitName" },
|
{ label: "所属单位", prop: "unitName" },
|
||||||
{ label: "是否变更", prop: "isChanged" },
|
{ label: "是否变更", prop: "isChanged" },
|
||||||
|
|||||||
+3
-3
@@ -17,8 +17,8 @@ const VIEW_CHANGE_TYPE_USER = {
|
|||||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||||
code="USER_STATE"></dict-select>
|
code="USER_STATE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="聘用方式">
|
<search-item label="编制类别">
|
||||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch"
|
<dict-select v-model="pageForm.preparedBy" placeholder="编制类别" @change="doSearch"
|
||||||
code="USER_PREPARED_BY_TYPE"></dict-select>
|
code="USER_PREPARED_BY_TYPE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="人员类型">
|
<search-item label="人员类型">
|
||||||
@@ -76,7 +76,7 @@ const VIEW_CHANGE_TYPE_USER = {
|
|||||||
{ prop: "loginname", label: "工号", sortable: true },
|
{ prop: "loginname", label: "工号", sortable: true },
|
||||||
{ prop: "username", label: "姓名", sortable: true },
|
{ prop: "username", label: "姓名", sortable: true },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
{ prop: "preparedBy", label: "编制类别", sortable: true },
|
||||||
{ prop: "personType", label: "人员类型", sortable: true },
|
{ prop: "personType", label: "人员类型", sortable: true },
|
||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||||
|
|||||||
+2
-2
@@ -32,8 +32,8 @@ const VERIFICATION_SET_USER_LIST = {
|
|||||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
|
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
|
||||||
code="USER_PERSON_TYPE"></dict-select>
|
code="USER_PERSON_TYPE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="聘用方式">
|
<search-item label="编制类别">
|
||||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch"
|
<dict-select v-model="pageForm.preparedBy" placeholder="编制类别" @change="doSearch"
|
||||||
code="USER_PREPARED_BY_TYPE"></dict-select>
|
code="USER_PREPARED_BY_TYPE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="变更类型">
|
<search-item label="变更类型">
|
||||||
|
|||||||
+3
-3
@@ -26,8 +26,8 @@ const VERIFICATION_SHOW_SELECTION_USERS = {
|
|||||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||||
code="USER_STATE"></dict-select>
|
code="USER_STATE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="聘用方式">
|
<search-item label="编制类别">
|
||||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch"
|
<dict-select v-model="pageForm.preparedBy" placeholder="编制类别" @change="doSearch"
|
||||||
code="USER_PREPARED_BY_TYPE"></dict-select>
|
code="USER_PREPARED_BY_TYPE"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="人员类型">
|
<search-item label="人员类型">
|
||||||
@@ -43,7 +43,7 @@ const VERIFICATION_SHOW_SELECTION_USERS = {
|
|||||||
<el-table-column label="姓名" prop="username"></el-table-column>
|
<el-table-column label="姓名" prop="username"></el-table-column>
|
||||||
<el-table-column label="性别" prop="sex"></el-table-column>
|
<el-table-column label="性别" prop="sex"></el-table-column>
|
||||||
<el-table-column label="在职状态" prop="userState"></el-table-column>
|
<el-table-column label="在职状态" prop="userState"></el-table-column>
|
||||||
<el-table-column label="聘用方式" prop="preparedBy"></el-table-column>
|
<el-table-column label="编制类别" prop="preparedBy"></el-table-column>
|
||||||
<el-table-column label="人员类型" prop="personType"></el-table-column>
|
<el-table-column label="人员类型" prop="personType"></el-table-column>
|
||||||
<el-table-column label="所属工会" prop="unionName"></el-table-column>
|
<el-table-column label="所属工会" prop="unionName"></el-table-column>
|
||||||
<el-table-column label="所属单位" prop="unitName"></el-table-column>
|
<el-table-column label="所属单位" prop="unitName"></el-table-column>
|
||||||
|
|||||||
+85
-11
@@ -47,7 +47,39 @@ layout("/layouts/platform.html"){
|
|||||||
<el-option label="无工会" value="false"></el-option>
|
<el-option label="无工会" value="false"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<el-button icon="el-icon-printer" type="primary" style="float: right" size="small" @click="doExport">导出</el-button>
|
<el-button icon="el-icon-printer" type="primary" size="small" @click="doExport">导出</el-button>
|
||||||
|
|
||||||
|
<el-popover
|
||||||
|
placement="bottom"
|
||||||
|
trigger="click"
|
||||||
|
width="200">
|
||||||
|
<!-- 点击外部/空白自动关闭,无需额外代码 -->
|
||||||
|
|
||||||
|
<div style="padding:4px 0;">
|
||||||
|
<el-button type="text" size="mini" @click="checkAll">全选</el-button>
|
||||||
|
<el-button type="text" size="mini" @click="invertCheck">反选</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-checkbox-group v-model="checkedFields">
|
||||||
|
<el-checkbox
|
||||||
|
v-for="f in tableColumns"
|
||||||
|
:key="f.prop"
|
||||||
|
:label="f.prop"
|
||||||
|
style="display:block;margin:6px 0;">
|
||||||
|
{{ f.label }}
|
||||||
|
</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
|
||||||
|
<!-- 触发器:文字按钮 -->
|
||||||
|
<el-button
|
||||||
|
slot="reference"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-s-operation"
|
||||||
|
size="small"
|
||||||
|
style="margin-left:12px;">
|
||||||
|
列设置
|
||||||
|
</el-button>
|
||||||
|
</el-popover>
|
||||||
</table-tool>
|
</table-tool>
|
||||||
<el-table
|
<el-table
|
||||||
:data="tableData"
|
:data="tableData"
|
||||||
@@ -62,6 +94,7 @@ layout("/layouts/platform.html"){
|
|||||||
align="center"
|
align="center"
|
||||||
header-align="center"
|
header-align="center"
|
||||||
type="index"
|
type="index"
|
||||||
|
fixed="left"
|
||||||
:index="indexMethod"
|
:index="indexMethod"
|
||||||
label="序号"
|
label="序号"
|
||||||
width="80px"
|
width="80px"
|
||||||
@@ -71,9 +104,11 @@ layout("/layouts/platform.html"){
|
|||||||
header-align="center"
|
header-align="center"
|
||||||
v-for="column in tableColumns"
|
v-for="column in tableColumns"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
|
v-if="checkedFields.includes(column.prop)"
|
||||||
:label="column.label"
|
:label="column.label"
|
||||||
:prop="column.prop"
|
:prop="column.prop"
|
||||||
:width="column.width"
|
:width="column.width"
|
||||||
|
:fixed="column.fixed"
|
||||||
:sortable="column.sortable"
|
:sortable="column.sortable"
|
||||||
>
|
>
|
||||||
<template v-if="column.prop==='memberJoinTime'" scope="{row}">{{$moment(row.memberJoinTime).format('YYYY-MM-DD')}}</template>
|
<template v-if="column.prop==='memberJoinTime'" scope="{row}">{{$moment(row.memberJoinTime).format('YYYY-MM-DD')}}</template>
|
||||||
@@ -83,7 +118,7 @@ layout("/layouts/platform.html"){
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column align="center" header-align="center" label="操作" width="100px">
|
<el-table-column align="center" header-align="center" label="操作" width="100px" fixed="right">
|
||||||
<template scope="{row}">
|
<template scope="{row}">
|
||||||
<el-button size="mini" @click="openView(row.id)" type="primary">查看</el-button>
|
<el-button size="mini" @click="openView(row.id)" type="primary">查看</el-button>
|
||||||
</template>
|
</template>
|
||||||
@@ -114,20 +149,38 @@ layout("/layouts/platform.html"){
|
|||||||
units: [],
|
units: [],
|
||||||
childrenData: {},
|
childrenData: {},
|
||||||
tableColumns: [
|
tableColumns: [
|
||||||
{ prop: "loginname", label: "工号", fixed: "left" },
|
{ prop: "loginname", label: "工号", width: 120, fixed: "left"},
|
||||||
{ prop: "username", label: "姓名", fixed: "left" },
|
{ prop: "username", label: "姓名", width: 120, fixed: "left" },
|
||||||
{ prop: "sex", label: "性别" },
|
{ prop: "sex", label: "性别", width: 120},
|
||||||
{ prop: "birthday", label: "出生年月", width: 120, sortable: true },
|
{ prop: "birthday", label: "出生年月", width: 120, sortable: true },
|
||||||
{ prop: "mobile", label: "联系电话" },
|
{ prop: "nationality", label: "国籍", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "nation", label: "民族", width: 120, sortable: true},
|
||||||
|
{ prop: "mobile", label: "联系电话", width: 120 },
|
||||||
|
{ prop: "political", label: "政治面貌", width: 120, sortable: true},
|
||||||
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
|
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
|
||||||
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
|
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
|
||||||
{ prop: "preparedBy", label: "聘用方式", width: 120, sortable: true },
|
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
|
||||||
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true },
|
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true, checked: 0 },
|
||||||
{ prop: "identityType", label: "身份类型", width: 120, sortable: true },
|
|
||||||
{ prop: "unionName", label: "所属工会", width: 120, sortable: true },
|
{ prop: "unionName", label: "所属工会", width: 120, sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", width: 120, sortable: true },
|
{ prop: "unitName", label: "所属单位", width: 120, sortable: true },
|
||||||
{ prop: "arrivalAtSchoolDate", label: "来校年月", width: 120, sortable: true }
|
{ prop: "idCardType", label: "证件类型", width: 120, sortable: true, checked: 0 },
|
||||||
]
|
{ prop: "idCard", label: "证件号码", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "marriage", label: "婚姻状况", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "jobCategory", label: "岗位类别", width: 120, sortable: true, checked: 0 },
|
||||||
|
|
||||||
|
{ prop: "professionalTitle", label: "职称", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "professionalLevel", label: "职级", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "employeeSource", label: "职工来源", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "administrativeLevel", label: "行政级别(管理岗位)", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "positionSeries", label: "岗位系列", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "positionLevel", label: "岗级", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "administrativePositionLevel", label: "行政岗级", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "arrivalAtSchoolDate", label: "来校时间", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "teachingTime", label: "从教年月", width: 120, sortable: true, checked: 0 },
|
||||||
|
{ prop: "expectedLeaveSchoolDate", label: "预计/最后离校时间", width: 120, sortable: true, checked: 0 },
|
||||||
|
],
|
||||||
|
|
||||||
|
checkedFields: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -142,12 +195,17 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
doExport() {
|
doExport() {
|
||||||
const pageForm = clone(this.pageForm)
|
const pageForm = clone(this.pageForm)
|
||||||
|
pageForm.userIds = JSON.stringify(this.pageForm.userIds)
|
||||||
pageForm.unionId = JSON.stringify(this.pageForm.unionId)
|
pageForm.unionId = JSON.stringify(this.pageForm.unionId)
|
||||||
pageForm.unitId = JSON.stringify(this.pageForm.unitId)
|
pageForm.unitId = JSON.stringify(this.pageForm.unitId)
|
||||||
pageForm.sexTypes = JSON.stringify(this.pageForm.sexTypes)
|
pageForm.sexTypes = JSON.stringify(this.pageForm.sexTypes)
|
||||||
pageForm.memberTypes = JSON.stringify(this.pageForm.memberTypes)
|
pageForm.memberTypes = JSON.stringify(this.pageForm.memberTypes)
|
||||||
pageForm.personTypes = JSON.stringify(this.pageForm.personTypes)
|
pageForm.personTypes = JSON.stringify(this.pageForm.personTypes)
|
||||||
pageForm.userStates = JSON.stringify(this.pageForm.userStates)
|
pageForm.userStates = JSON.stringify(this.pageForm.userStates)
|
||||||
|
const data = this.tableColumns.filter(item => this.checkedFields.includes(item.prop)).map(item => {
|
||||||
|
return {prop: item.prop, label: item.label}
|
||||||
|
})
|
||||||
|
pageForm.columns = JSON.stringify(data)
|
||||||
this.$downLoad("/platform/member/statistics/comprehensive/doExport", pageForm)
|
this.$downLoad("/platform/member/statistics/comprehensive/doExport", pageForm)
|
||||||
},
|
},
|
||||||
search(pageForm) {
|
search(pageForm) {
|
||||||
@@ -159,6 +217,7 @@ layout("/layouts/platform.html"){
|
|||||||
},
|
},
|
||||||
pageData() {
|
pageData() {
|
||||||
const pageForm = clone(this.pageForm)
|
const pageForm = clone(this.pageForm)
|
||||||
|
pageForm.userIds = JSON.stringify(this.pageForm.userIds)
|
||||||
pageForm.age = JSON.stringify(this.pageForm.age)
|
pageForm.age = JSON.stringify(this.pageForm.age)
|
||||||
pageForm.unionId = JSON.stringify(this.pageForm.unionId)
|
pageForm.unionId = JSON.stringify(this.pageForm.unionId)
|
||||||
pageForm.unitId = JSON.stringify(this.pageForm.unitId)
|
pageForm.unitId = JSON.stringify(this.pageForm.unitId)
|
||||||
@@ -188,7 +247,22 @@ layout("/layouts/platform.html"){
|
|||||||
this.$message.error(res.msg)
|
this.$message.error(res.msg)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
checkAll() {
|
||||||
|
this.checkedFields = this.tableColumns.map(c => c.prop);
|
||||||
|
},
|
||||||
|
invertCheck() {
|
||||||
|
const all = this.tableColumns.map(c => c.prop);
|
||||||
|
this.checkedFields = all.filter(p => !this.checkedFields.includes(p));
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
showColumns() {
|
||||||
|
return this.tableColumns.filter(c => this.checkedFields.includes(c.prop));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.checkedFields = this.tableColumns.filter(c => c.checked !== 0).map(c => c.prop);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
+73
-73
@@ -1,59 +1,27 @@
|
|||||||
const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
|
const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
|
||||||
template: /*language=HTML*/ `
|
template: /*language=HTML*/ `
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<el-row type="flex" align="middle" class="query-row">
|
<el-row class="query-row">
|
||||||
<el-col class="query-row-title">年  度:</el-col>
|
|
||||||
<el-col class="query-row-content" :span="12">
|
|
||||||
<el-row style="margin-left: 3px">
|
|
||||||
<el-date-picker @change="doSearch()"
|
|
||||||
style="width: 85%"
|
|
||||||
:picker-options="pickerOptions"
|
|
||||||
v-model="pageForm.year"
|
|
||||||
type="year"
|
|
||||||
value-format="yyyy"
|
|
||||||
placeholder="选择年" :clearable="false">
|
|
||||||
</el-date-picker>
|
|
||||||
<el-link type="primary" style="margin-left: 10px"
|
|
||||||
:underline="false"
|
|
||||||
@click="setNowYear();doSearch()">
|
|
||||||
本年
|
|
||||||
</el-link>
|
|
||||||
</el-row>
|
|
||||||
</el-col>
|
|
||||||
<el-col class="query-row-title">姓名/工号:</el-col>
|
<el-col class="query-row-title">姓名/工号:</el-col>
|
||||||
<el-col class="query-row-content" :span="12">
|
|
||||||
<el-row style="width: 92%">
|
|
||||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"></el-input>
|
|
||||||
</el-row>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row type="flex" align="middle" class="query-row">
|
|
||||||
<el-col class="query-row-content">
|
<el-col class="query-row-content">
|
||||||
<el-row>
|
<el-select
|
||||||
<el-col :span="12">
|
clearable
|
||||||
<span>所属工会:</span>
|
v-model="pageForm.userIds"
|
||||||
<el-select placeholder="所属工会" v-model="pageForm.unionId"
|
filterable
|
||||||
clearable multiple style="margin-left: 33px;width: 80%"
|
remote
|
||||||
@change="flushUnits();doSearch()"
|
collapse-tags
|
||||||
@clear="flushUnits();doSearch()"
|
placeholder="输入工号或者姓名查找"
|
||||||
filterable>
|
:remote-method="queryUser"
|
||||||
<el-option v-for="item in unions" :label="item.name"
|
@change="doSearch"
|
||||||
:value="item.id"></el-option>
|
style="width: 100%"
|
||||||
</el-select>
|
multiple
|
||||||
</el-col>
|
>
|
||||||
<el-col :span="12">
|
<el-option v-for="o in userList" :label="o.username + '(' + o.loginname + ')'" :value="o.id"
|
||||||
<span>所属单位:</span>
|
:key="o.id"></el-option>
|
||||||
<el-select placeholder="所属单位" v-model="pageForm.unitId"
|
</el-select>
|
||||||
clearable multiple style="margin-left: 33px;width: 80%" filterable>
|
|
||||||
<el-option v-for="item in units" :label="item.name"
|
|
||||||
:value="item.id"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row class="query-row">
|
<el-row class="query-row">
|
||||||
<el-col class="query-row-title">性别:</el-col>
|
<el-col class="query-row-title">性别:</el-col>
|
||||||
<el-col class="query-row-content">
|
<el-col class="query-row-content">
|
||||||
@@ -69,6 +37,31 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
<el-row type="flex" align="middle" class="query-row query-row-tag">
|
||||||
|
<el-col class="query-row-title">在职状态:</el-col>
|
||||||
|
<el-col class="query-row-content query-row-content-tag">
|
||||||
|
<el-tag
|
||||||
|
style="margin-right: 10px;cursor: pointer"
|
||||||
|
v-for="item in userStateOptions"
|
||||||
|
:key="item.code"
|
||||||
|
:type="item.name"
|
||||||
|
:effect="pageForm.userStates.includes(item.name)?'dark':'plain'"
|
||||||
|
@click="tagClick('userStates',item.name)">
|
||||||
|
{{ item.name }}
|
||||||
|
</el-tag>
|
||||||
|
|
||||||
|
<el-link type="danger"
|
||||||
|
v-if="userStateOptions.length&&pageForm.userStates.length"
|
||||||
|
:underline="false"
|
||||||
|
@click="pageForm.userStates=[];doSearch()">清空
|
||||||
|
</el-link>
|
||||||
|
<el-link :underline="false"
|
||||||
|
@click="pageForm.userStates=userStateOptions.map(p=>p.code);doSearch()"
|
||||||
|
type="success">全部
|
||||||
|
</el-link>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
<el-row type="flex" align="middle" class="query-row query-row-tag">
|
<el-row type="flex" align="middle" class="query-row query-row-tag">
|
||||||
<el-col class="query-row-title">人员类型:</el-col>
|
<el-col class="query-row-title">人员类型:</el-col>
|
||||||
<el-col class="query-row-content query-row-content-tag">
|
<el-col class="query-row-content query-row-content-tag">
|
||||||
@@ -119,31 +112,32 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row type="flex" align="middle" class="query-row query-row-tag">
|
<el-row type="flex" align="middle" class="query-row">
|
||||||
<el-col class="query-row-title">在职状态:</el-col>
|
<el-col class="query-row-content">
|
||||||
<el-col class="query-row-content query-row-content-tag">
|
<el-row>
|
||||||
<el-tag
|
<el-col :span="12">
|
||||||
style="margin-right: 10px;cursor: pointer"
|
<span>所属工会:</span>
|
||||||
v-for="item in userStateOptions"
|
<el-select placeholder="所属工会" v-model="pageForm.unionId"
|
||||||
:key="item.code"
|
clearable multiple style="margin-left: 38px;width: 80%"
|
||||||
:type="item.name"
|
@change="flushUnits();doSearch()"
|
||||||
:effect="pageForm.userStates.includes(item.name)?'dark':'plain'"
|
@clear="flushUnits();doSearch()"
|
||||||
@click="tagClick('userStates',item.name)">
|
filterable>
|
||||||
{{ item.name }}
|
<el-option v-for="item in unions" :label="item.name"
|
||||||
</el-tag>
|
:value="item.id"></el-option>
|
||||||
|
</el-select>
|
||||||
<el-link type="danger"
|
</el-col>
|
||||||
v-if="userStateOptions.length&&pageForm.userStates.length"
|
<el-col :span="12">
|
||||||
:underline="false"
|
<span>所属单位:</span>
|
||||||
@click="pageForm.userStates=[];doSearch()">清空
|
<el-select placeholder="所属单位" v-model="pageForm.unitId"
|
||||||
</el-link>
|
clearable multiple style="margin-left: 33px;width: 80%" filterable>
|
||||||
<el-link :underline="false"
|
<el-option v-for="item in units" :label="item.name"
|
||||||
@click="pageForm.userStates=userStateOptions.map(p=>p.code);doSearch()"
|
:value="item.id"></el-option>
|
||||||
type="success">全部
|
</el-select>
|
||||||
</el-link>
|
</el-col>
|
||||||
|
</el-row>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row class="query-row" type="flex" align="middle">
|
<el-row class="query-row" type="flex" align="middle">
|
||||||
<el-col class="query-row-title">出生日期:</el-col>
|
<el-col class="query-row-title">出生日期:</el-col>
|
||||||
<el-col class="query-row-content">
|
<el-col class="query-row-content">
|
||||||
@@ -202,7 +196,9 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
|
|||||||
store,
|
store,
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
userList: [],
|
||||||
pageForm: {
|
pageForm: {
|
||||||
|
userIds: [],
|
||||||
isUnit: "",
|
isUnit: "",
|
||||||
isUnion: "",
|
isUnion: "",
|
||||||
unionId: [],
|
unionId: [],
|
||||||
@@ -247,6 +243,10 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
|
|||||||
"member-cnd": httpVueLoader("/components/module/member/MemberCnd.vue?v=" + new Date().getTime())
|
"member-cnd": httpVueLoader("/components/module/member/MemberCnd.vue?v=" + new Date().getTime())
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
async queryUser(val) {
|
||||||
|
const resp = await $.get("/open/common/userOptions", {query: val})
|
||||||
|
this.userList = resp.data
|
||||||
|
},
|
||||||
determineEndDate() {
|
determineEndDate() {
|
||||||
if (this.pageForm.startDate) {
|
if (this.pageForm.startDate) {
|
||||||
if (Date.parse(this.pageForm.startDate) > Date.parse(this.pageForm.endDate)) {
|
if (Date.parse(this.pageForm.startDate) > Date.parse(this.pageForm.endDate)) {
|
||||||
@@ -310,7 +310,7 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
|
|||||||
this.doSearch()
|
this.doSearch()
|
||||||
},
|
},
|
||||||
doReset() {
|
doReset() {
|
||||||
this.pageForm.userId = []
|
this.pageForm.userIds = []
|
||||||
this.pageForm.memberTypes = []
|
this.pageForm.memberTypes = []
|
||||||
this.pageForm.sexTypes = []
|
this.pageForm.sexTypes = []
|
||||||
this.pageForm.personTypes = []
|
this.pageForm.personTypes = []
|
||||||
|
|||||||
@@ -133,20 +133,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<template v-if="isThreeUnit">
|
|
||||||
<el-row :gutter="10">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="所属科室(人事关系)" prop="personnelRelationThreeUnitName">
|
|
||||||
<el-input v-model="formData.personnelRelationThreeUnitName" placeholder="请输入工号或姓名查询,查询后自动读取" readonly></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="工会小组(人事关系)" prop="personnelRelationUnionGroupName">
|
|
||||||
<el-input v-model="formData.personnelRelationUnionGroupName" placeholder="请输入工号或姓名查询,查询后自动读取" readonly></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</template>
|
|
||||||
<el-row :gutter="10">
|
<el-row :gutter="10">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="特殊人员类型" prop="specialStaffType">
|
<el-form-item label="特殊人员类型" prop="specialStaffType">
|
||||||
@@ -179,35 +166,6 @@ layout("/layouts/platform.html"){
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<template v-if="isThreeUnit">
|
|
||||||
<el-row :gutter="10">
|
|
||||||
<el-col :span=12>
|
|
||||||
<el-form-item label="所属科室(工会关系)" prop="unionRelationThreeUnitId">
|
|
||||||
<el-select
|
|
||||||
v-model="formData.unionRelationThreeUnitId"
|
|
||||||
filterable
|
|
||||||
clearable
|
|
||||||
:disabled="isView"
|
|
||||||
placeholder="请选择工会关系所属科室"
|
|
||||||
style="width: 100%"
|
|
||||||
@change="unionRelationThreeUnitChange"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="unit in threeUnits"
|
|
||||||
:key="unit.id"
|
|
||||||
:label="unit.name"
|
|
||||||
:value="unit.id"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span=12>
|
|
||||||
<el-form-item label="工会小组(工会关系)" prop="unionRelationUnionGroupName">
|
|
||||||
<el-input :value="formData.unionRelationUnionGroupName" placeholder="请选择工会关系所属科室,查询后自动读取" readonly></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -366,38 +324,18 @@ layout("/layouts/platform.html"){
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
unionRelationUnitChange(v) {
|
unionRelationUnitChange(v) {
|
||||||
this.$set(this.formData, 'unionRelationThreeUnitId', null)
|
|
||||||
this.$set(this.formData, 'unionRelationUnionGroupName', null)
|
|
||||||
this.threeUnits = []
|
|
||||||
if (v) {
|
|
||||||
this.getThreeUnits(v)
|
|
||||||
}
|
|
||||||
const unit = this.units.find((item) => item.id === v)
|
const unit = this.units.find((item) => item.id === v)
|
||||||
if (unit) {
|
if (unit) {
|
||||||
this.$set(this.formData, "unionRelationUnitId", unit.id)
|
this.$set(this.formData, "unionRelationUnitId", unit.id)
|
||||||
this.$set(this.formData, "unionRelationUnitName", unit.name)
|
this.$set(this.formData, "unionRelationUnitName", unit.name)
|
||||||
this.$set(this.formData, "unionRelationUnionId", unit.unionid)
|
this.$set(this.formData, "unionRelationUnionId", unit.unionId)
|
||||||
this.$set(this.formData, "unionRelationUnionName", unit.unionname)
|
this.$set(this.formData, "unionRelationUnionName", unit.unionName)
|
||||||
} else {
|
} else {
|
||||||
this.$set(this.formData, "unionRelationUnionId", null)
|
this.$set(this.formData, "unionRelationUnionId", null)
|
||||||
this.$set(this.formData, "unionRelationUnionName", null)
|
this.$set(this.formData, "unionRelationUnionName", null)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
unionRelationThreeUnitChange(val) {
|
|
||||||
if (val) {
|
|
||||||
const threeUnit = this.threeUnits.find(v => v.id === val)
|
|
||||||
const groupName = threeUnit.groupname ? threeUnit.groupname : null
|
|
||||||
this.$set(this.formData, 'unionRelationThreeUnitId', threeUnit.id)
|
|
||||||
this.$set(this.formData, 'unionRelationThreeUnitName', threeUnit.name)
|
|
||||||
this.$set(this.formData, 'unionRelationUnionGroupId', threeUnit.uniongroupid)
|
|
||||||
this.$set(this.formData, 'unionRelationUnionGroupName', groupName)
|
|
||||||
} else {
|
|
||||||
this.$set(this.formData, 'unionRelationUnionGroupName', null)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async getThreeUnits(val) {
|
|
||||||
this.threeUnits = await threeUnitsByUnionGroupOrUnitId(val)
|
|
||||||
},
|
|
||||||
queryUser(keyWord, flag = true) {
|
queryUser(keyWord, flag = true) {
|
||||||
if (!keyWord) {
|
if (!keyWord) {
|
||||||
return
|
return
|
||||||
@@ -428,7 +366,7 @@ layout("/layouts/platform.html"){
|
|||||||
this.$set(this.pageForm, "unitId", null)
|
this.$set(this.pageForm, "unitId", null)
|
||||||
this.units = []
|
this.units = []
|
||||||
if (this.pageForm.unionId) {
|
if (this.pageForm.unionId) {
|
||||||
this.unions = await getUnions()
|
this.units = this.$businessTool.listUnit(this.pageForm.unionId)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async initData() {
|
async initData() {
|
||||||
@@ -436,13 +374,10 @@ layout("/layouts/platform.html"){
|
|||||||
this.specialStaffTypeList = data
|
this.specialStaffTypeList = data
|
||||||
})
|
})
|
||||||
this.unionRelationUnionOptions = await this.$businessTool.listUnion()
|
this.unionRelationUnionOptions = await this.$businessTool.listUnion()
|
||||||
this.$businessTool.listUnit().then((data) => {
|
this.units = await this.$businessTool.listUnit()
|
||||||
this.units = data
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
// this.isThreeUnit = await getConfigKey('isThreeUnit') === 'true'
|
|
||||||
this.initData()
|
this.initData()
|
||||||
this.pageData()
|
this.pageData()
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ const filterUser = {
|
|||||||
v-model="pageForm.personTypes"></dict-select>
|
v-model="pageForm.personTypes"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
|
|
||||||
<search-item label="聘用方式:">
|
<search-item label="编制类别:">
|
||||||
<dict-select clearable code="USER_PREPARED_BY_TYPE"
|
<dict-select clearable code="USER_PREPARED_BY_TYPE"
|
||||||
multiple
|
multiple
|
||||||
collapse-tags
|
collapse-tags
|
||||||
@@ -169,7 +169,7 @@ const filterUser = {
|
|||||||
{ prop: "sex", label: "性别", sortable: true, checked: 0 },
|
{ prop: "sex", label: "性别", sortable: true, checked: 0 },
|
||||||
{ prop: "birthday", label: "出生日期", sortable: true, checked: 0 },
|
{ prop: "birthday", label: "出生日期", sortable: true, checked: 0 },
|
||||||
{ prop: "personType", label: "人员类型", sortable: true },
|
{ prop: "personType", label: "人员类型", sortable: true },
|
||||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
{ prop: "preparedBy", label: "编制类别", sortable: true },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true }
|
{ prop: "unitName", label: "所属单位", sortable: true }
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ const selectedUser = {
|
|||||||
{ label: "生日", prop: "birthday" },
|
{ label: "生日", prop: "birthday" },
|
||||||
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
|
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
|
||||||
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
|
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
|
||||||
{ prop: "preparedBy", label: "聘用方式", width: 120, sortable: true },
|
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
|
||||||
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true },
|
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true },
|
||||||
{ label: "单位", prop: "welfareUnitName" },
|
{ label: "单位", prop: "welfareUnitName" },
|
||||||
{ label: "手机号", prop: "mobile" },
|
{ label: "手机号", prop: "mobile" },
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ const unSelectedUser = {
|
|||||||
{ label: "生日", prop: "birthday" },
|
{ label: "生日", prop: "birthday" },
|
||||||
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
|
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
|
||||||
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
|
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
|
||||||
{ prop: "preparedBy", label: "聘用方式", width: 120, sortable: true },
|
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
|
||||||
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true },
|
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true },
|
||||||
{ label: "单位", prop: "welfareUnitName" }
|
{ label: "单位", prop: "welfareUnitName" }
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ const addUser = {
|
|||||||
v-model="pageForm.personTypes"></dict-select>
|
v-model="pageForm.personTypes"></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
|
|
||||||
<search-item label="聘用方式:">
|
<search-item label="编制类别:">
|
||||||
<dict-select clearable code="USER_PREPARED_BY_TYPE"
|
<dict-select clearable code="USER_PREPARED_BY_TYPE"
|
||||||
multiple
|
multiple
|
||||||
collapse-tags
|
collapse-tags
|
||||||
@@ -175,7 +175,7 @@ const addUser = {
|
|||||||
{ prop: "sex", label: "性别", sortable: true, checked: 0 },
|
{ prop: "sex", label: "性别", sortable: true, checked: 0 },
|
||||||
{ prop: "birthday", label: "出生日期", sortable: true, checked: 0 },
|
{ prop: "birthday", label: "出生日期", sortable: true, checked: 0 },
|
||||||
{ prop: "personType", label: "人员类型", sortable: true },
|
{ prop: "personType", label: "人员类型", sortable: true },
|
||||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
{ prop: "preparedBy", label: "编制类别", sortable: true },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "unitName", label: "所属单位", sortable: true }
|
{ prop: "unitName", label: "所属单位", sortable: true }
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ layout("/layouts/platform.html"){
|
|||||||
></dict-select>
|
></dict-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
|
|
||||||
<search-item label="聘用方式:">
|
<search-item label="编制类别:">
|
||||||
<dict-select
|
<dict-select
|
||||||
clearable
|
clearable
|
||||||
code="USER_PREPARED_BY_TYPE"
|
code="USER_PREPARED_BY_TYPE"
|
||||||
@@ -265,7 +265,7 @@ layout("/layouts/platform.html"){
|
|||||||
{ prop: "sex", label: "性别", sortable: true, checked: 0 },
|
{ prop: "sex", label: "性别", sortable: true, checked: 0 },
|
||||||
{ prop: "birthday", label: "出生日期", sortable: true, checked: 0 },
|
{ prop: "birthday", label: "出生日期", sortable: true, checked: 0 },
|
||||||
{ prop: "personType", label: "人员类型", sortable: true },
|
{ prop: "personType", label: "人员类型", sortable: true },
|
||||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
{ prop: "preparedBy", label: "编制类别", sortable: true },
|
||||||
{ prop: "userState", label: "在职状态", sortable: true },
|
{ prop: "userState", label: "在职状态", sortable: true },
|
||||||
{ prop: "welfareUnionName", label: "所属工会", sortable: true },
|
{ prop: "welfareUnionName", label: "所属工会", sortable: true },
|
||||||
{ prop: "welfareUnitName", label: "所属单位", sortable: true },
|
{ prop: "welfareUnitName", label: "所属单位", sortable: true },
|
||||||
|
|||||||
Reference in New Issue
Block a user