疗休养
This commit is contained in:
@@ -2,8 +2,8 @@ package io.v.nutz.zhgh.lxy.controller;
|
||||
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyBmService;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyBmService;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.entity.Record;
|
||||
@@ -40,7 +40,7 @@ public class LxyAgentController {
|
||||
final String title = "【疗休养】";
|
||||
List<NutMap> result = new ArrayList<>();
|
||||
if (ShiroUtil.hasAnyRoles("sysadmin")) {
|
||||
result.add(new NutMap().setv("title", title).setv("url", FGHSH).setv("iconClass", vi.getIconByPath(FGHSH)).setv("label", "待基层工会审核").setv("number", getFghshCount()));
|
||||
result.add(new NutMap().setv("title", title).setv("url", FGHSH).setv("iconClass", vi.getIconByPath(FGHSH)).setv("label", "待院级工会审核").setv("number", getFghshCount()));
|
||||
result.add(new NutMap().setv("title", title).setv("url", XGHSH).setv("iconClass", vi.getIconByPath(XGHSH)).setv("label", "待校工会审核").setv("number", getXghshCount().size()));
|
||||
}
|
||||
return result;
|
||||
|
||||
@@ -40,30 +40,36 @@ public class LxyCommon {
|
||||
Record record = lxyHdService.list(Sqls.create("SELECT * FROM `lxy_hd` WHERE id = @id").setParam("id", id)).get(0);
|
||||
record.set("files", baseService.dao().query("sys_file", Cnd.where("reid", "=", id)));
|
||||
record.set("mefp", lxyHdService.list(Sqls.create("SELECT fp.*,unionname,unioncode from lxy_mefp fp left join sys_union un on fp.ghid = un.id WHERE fp.hdid = @id ORDER BY un.unioncode").setParam("id", id)));
|
||||
record.set("bm", lxyBmService.list(Sqls.create("SELECT\n" +
|
||||
"\tu.id,\n" +
|
||||
"\tu.loginname,\n" +
|
||||
"\tu.username,\n" +
|
||||
"\tu.sex,\n" +
|
||||
"\tu.mobile,\n" +
|
||||
"\tTIMESTAMPDIFF(\n" +
|
||||
"\t\tYEAR,\n" +
|
||||
"\t\tu.birthday,\n" +
|
||||
"\tCURDATE()) age,\n" +
|
||||
"\tbm.bmzt \n" +
|
||||
"FROM\n" +
|
||||
"\tsys_user u\n" +
|
||||
"\tLEFT JOIN lxy_bm bm ON u.id = bm.userid \n" +
|
||||
"WHERE\n" +
|
||||
"\tbm.hdid = @hdid \n" +
|
||||
"\tAND u.id IN (\n" +
|
||||
"\tSELECT\n" +
|
||||
"\t\tbm.userid \n" +
|
||||
"\tFROM\n" +
|
||||
"\t\tlxy_bm bm \n" +
|
||||
"\tWHERE\n" +
|
||||
"\tbm.bmzt IN (3,5,6) AND\n" +
|
||||
"\tbm.hdid =@hdid) ORDER BY bm.bmzt DESC").setParam("hdid", id)));
|
||||
record.set("bm", lxyBmService.list(Sqls.create("""
|
||||
SELECT
|
||||
u.id,
|
||||
u.loginname,
|
||||
u.username,
|
||||
u.sex,
|
||||
bm.mobile,
|
||||
bm.nation,
|
||||
bm.zyhj,
|
||||
bm.idcard,
|
||||
bm.talent,
|
||||
TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) age,
|
||||
bm.bmzt
|
||||
FROM
|
||||
sys_user u
|
||||
LEFT JOIN lxy_bm bm ON u.id = bm.userid
|
||||
WHERE
|
||||
bm.hdid = @hdid
|
||||
AND u.id IN (
|
||||
SELECT
|
||||
bm.userid
|
||||
FROM
|
||||
lxy_bm bm
|
||||
WHERE
|
||||
bm.bmzt IN (3, 5, 6)
|
||||
AND bm.hdid = @hdid
|
||||
)
|
||||
ORDER BY
|
||||
bm.bmzt DESC
|
||||
""").setParam("hdid", id)));
|
||||
return record;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,13 +4,12 @@ import cn.wizzer.framework.base.service.BaseService;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.utils.PageUtil;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.lxy.model.Lxy_bm;
|
||||
import io.v.nutz.zhgh.lxy.model.Lxy_grxx;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyBmService;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyGrxxService;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyHdService;
|
||||
import io.v.nutz.sys.models.Sys_file;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import org.apache.shiro.authz.annotation.Logical;
|
||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
@@ -28,12 +27,10 @@ import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: Aaron
|
||||
* @create: 2020-09-01 16:08
|
||||
* @description: 疗修养基层工会审核
|
||||
* @description: 疗修养分工会审核
|
||||
**/
|
||||
@At("/platform/zgfw/lxy/fghsh")
|
||||
@Ok("json")
|
||||
@@ -65,13 +62,13 @@ public class LxyFghShController {
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("zgfw.lxy.fghsh")
|
||||
public Object pageData(@Param(value = "year",required = false) Integer year,
|
||||
@Param(value = "hdid",required = false) String hdid,
|
||||
@Param(value = "searchName",required = false) String searchName,
|
||||
@Param(value = "searchKeyword",required = false) String searchKeyword,
|
||||
public Object pageData(@Param(value = "year", required = false) Integer year,
|
||||
@Param(value = "hdid", required = false) String hdid,
|
||||
@Param(value = "searchName", required = false) String searchName,
|
||||
@Param(value = "searchKeyword", required = false) String searchKeyword,
|
||||
@Param("pageNumber") int pageNumber, @Param("pageSize") int pageSize,
|
||||
@Param(value = "pageOrderName",required = false) String pageOrderName,
|
||||
@Param(value = "pageOrderBy",required = false) String pageOrderBy) {
|
||||
@Param(value = "pageOrderName", required = false) String pageOrderName,
|
||||
@Param(value = "pageOrderBy", required = false) String pageOrderBy) {
|
||||
Sql sql = Sqls.create("SELECT\n" +
|
||||
"\tunit.name unitname,\n" +
|
||||
"\tl.id,\n" +
|
||||
@@ -141,17 +138,24 @@ public class LxyFghShController {
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions(value = {"zgfw.lxy.xghsh","zgfw.lxy.fghsh"},logical = Logical.OR)
|
||||
@RequiresPermissions(value = {"zgfw.lxy.xghsh", "zgfw.lxy.fghsh"}, logical = Logical.OR)
|
||||
public Object getBmInfo(String id) {
|
||||
Lxy_grxx grxx = lxyGrxxService.fetch(id);
|
||||
List<Sys_file> files = baseService.dao().query(Sys_file.class, Cnd.where("reid", "=", id));
|
||||
grxx.setFiles(files);
|
||||
// List<Sys_file> files = baseService.dao().query(Sys_file.class, Cnd.where("reid", "=", id));
|
||||
// grxx.setFiles(files);
|
||||
|
||||
Lxy_bm lxyBm = lxyBmService.dao().fetch(Lxy_bm.class, Cnd.where("hdid", "=", grxx.getHdid())
|
||||
.and("userid", "=", grxx.getUserid()));
|
||||
|
||||
NutMap nutMap = Lang.obj2nutmap(grxx);
|
||||
nutMap.put("bmFiles", lxyBm.getFiles());
|
||||
NutMap nutMap = Lang.obj2nutmap(lxyBm);
|
||||
nutMap.put("username", grxx.getUsername());
|
||||
nutMap.put("loginname", grxx.getLoginname());
|
||||
nutMap.put("sex", grxx.getSex());
|
||||
// nutMap.put("bmFiles", lxyBm.getFiles());
|
||||
// nutMap.put("mobile", lxyBm.getMobile());
|
||||
// nutMap.put("idcard", lxyBm.getIdcard());
|
||||
// nutMap.put("zyhj", lxyBm.getZyhj());
|
||||
// nutMap.put("bz", lxyBm.getBz());
|
||||
return nutMap;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,36 +1,46 @@
|
||||
package io.v.nutz.zhgh.lxy.controller;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import cn.wizzer.framework.page.Pagination;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.utils.DateUtil;
|
||||
import io.v.nutz.base.utils.PageUtil;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.base.utils.ViTool;
|
||||
import io.v.nutz.sys.services.SysUserService;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.lxy.model.Lxy_bm;
|
||||
import io.v.nutz.zhgh.lxy.model.Lxy_grxx;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyBmService;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyGrxxService;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyHdService;
|
||||
import io.v.nutz.sys.services.SysUserService;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.lxy.template.LxyImportTemp;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.entity.Record;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.dao.util.cri.Static;
|
||||
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.util.NutMap;
|
||||
import org.nutz.mvc.annotation.AdaptBy;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
import org.nutz.mvc.upload.UploadAdaptor;
|
||||
import org.nutz.trans.Trans;
|
||||
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -45,14 +55,15 @@ import java.util.List;
|
||||
@RequiresAuthentication
|
||||
public class LxyGhbmController {
|
||||
|
||||
@Inject
|
||||
private LxyHdService lxyHdService;
|
||||
|
||||
@Inject
|
||||
private Vi vi;
|
||||
@Inject
|
||||
private Dao dao;
|
||||
@Inject
|
||||
private LxyBmService lxyBmService;
|
||||
@Inject
|
||||
private LxyHdService lxyHdService;
|
||||
@Inject
|
||||
private SysUserService sysUserService;
|
||||
@Inject
|
||||
private LxyGrxxService lxyGrxxService;
|
||||
@@ -66,15 +77,15 @@ public class LxyGhbmController {
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("zgfw.lxy.ghbm")
|
||||
public Object pageData(@Param(value = "year",required = false) Integer year,
|
||||
@Param(value = "hdid",required = false) String hdid,
|
||||
@Param(value = "unionId",required = false)String unionId,
|
||||
@Param(value = "searchName",required = false) String searchName,
|
||||
@Param(value = "searchKeyword",required = false) String searchKeyword,
|
||||
@Param(value = "pageNumber",required = false) int pageNumber,
|
||||
@Param(value = "pageSize",required = false) int pageSize,
|
||||
@Param(value = "pageOrderName",required = false) String pageOrderName,
|
||||
@Param(value = "pageOrderBy",required = false) String pageOrderBy) {
|
||||
public Object pageData(@Param(value = "year", required = false) Integer year,
|
||||
@Param(value = "hdid", required = false) String hdid,
|
||||
@Param(value = "unionId", required = false) String unionId,
|
||||
@Param(value = "searchName", required = false) String searchName,
|
||||
@Param(value = "searchKeyword", required = false) String searchKeyword,
|
||||
@Param(value = "pageNumber", required = false) int pageNumber,
|
||||
@Param(value = "pageSize", required = false) int pageSize,
|
||||
@Param(value = "pageOrderName", required = false) String pageOrderName,
|
||||
@Param(value = "pageOrderBy", required = false) String pageOrderBy) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
mefp.*,
|
||||
@@ -101,7 +112,7 @@ public class LxyGhbmController {
|
||||
cnd.and(new Static("now() < hd.bmjzsj"));
|
||||
|
||||
cnd.and("mefp.hdid", "=", hdid);
|
||||
cnd.andEX("un.id","=",unionId);
|
||||
cnd.andEX("un.id", "=", unionId);
|
||||
if (!ShiroUtil.hasAnyRoles(new String[]{"sysadmin", "SchoolUnionAdmin"})) {
|
||||
cnd.and(new Static("mefp.ghid in " + vi.getMangeUnionStr()));
|
||||
//工会管理员查看分配名额大于0的
|
||||
@@ -131,14 +142,15 @@ public class LxyGhbmController {
|
||||
@ViReturn
|
||||
@RequiresPermissions("zgfw.lxy.ghbm")
|
||||
public Object getNotApply(String unionid, String hdid,
|
||||
@Param(value = "query",required = false) String query,
|
||||
@Param(value = "checks",required = false) String[] checks) {
|
||||
@Param(value = "query", required = false) String query,
|
||||
@Param(value = "checks", required = false) String[] checks) {
|
||||
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
u.id,
|
||||
u.sex,
|
||||
u.mobile,
|
||||
u.unitid,
|
||||
TIMESTAMPDIFF(
|
||||
YEAR,
|
||||
u.birthday,
|
||||
@@ -146,7 +158,8 @@ public class LxyGhbmController {
|
||||
u.username,
|
||||
u.loginname,
|
||||
unit.`name` unitname,
|
||||
un.unionname
|
||||
un.unionname,
|
||||
u.idcard
|
||||
FROM
|
||||
sys_user u
|
||||
LEFT JOIN lxy_bm bm ON bm.userid = u.id
|
||||
@@ -178,20 +191,25 @@ public class LxyGhbmController {
|
||||
@ViReturn
|
||||
@RequiresPermissions("zgfw.lxy.ghbm")
|
||||
public Object getHasApply(String unionid, String hdid,
|
||||
@Param(value = "query",required = false) String query,
|
||||
@Param(value = "checks",required = false) String[] checks) {
|
||||
@Param(value = "query", required = false) String query,
|
||||
@Param(value = "checks", required = false) String[] checks) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
u.id,
|
||||
u.loginname,
|
||||
u.username,
|
||||
u.unitname,
|
||||
bm.bmzt,
|
||||
TIMESTAMPDIFF(
|
||||
YEAR,
|
||||
u.birthday,
|
||||
CURDATE()) age,
|
||||
bm.files
|
||||
bm.age,
|
||||
bm.files,
|
||||
bm.zyhj,
|
||||
bm.bz,
|
||||
bm.mobile,
|
||||
bm.idcard,
|
||||
bm.unitid,
|
||||
bm.unitname,
|
||||
bm.unionname,
|
||||
bm.nation,
|
||||
bm.talent
|
||||
FROM
|
||||
lxy_bm bm
|
||||
LEFT JOIN `user` u ON u.id = bm.userid
|
||||
@@ -203,101 +221,25 @@ public class LxyGhbmController {
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("zgfw.lxy.ghbm")
|
||||
public Object getUser(@Param(value = "sign",required = false) Integer sign,
|
||||
@Param(value = "unionid",required = false) String unionid,
|
||||
@Param(value = "hdid",required = false) String hdid,
|
||||
@Param(value = "hdid",required = false) String query,
|
||||
@Param(value = "checks",required = false) String[] checks,
|
||||
@Param("pageNumber") int pageNumber,@Param("pageSize") int pageSize,
|
||||
@Param(value = "pageOrderName",required = false) String pageOrderName,
|
||||
@Param(value = "pageOrderBy",required = false) String pageOrderBy) {
|
||||
Sql sql = Sqls.create("SELECT\n" +
|
||||
"\tu.id,\n" +
|
||||
"\tu.sex,u.mobile, TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) age,\n" +
|
||||
"\tu.username,\n" +
|
||||
"\tu.loginname,\n" +
|
||||
"\tunit.`name` unitname,\n" +
|
||||
"\tun.unionname \n" +
|
||||
"FROM\n" +
|
||||
"\tsys_user u\n" +
|
||||
"\tLEFT JOIN lxy_bm bm ON bm.userid = u.id \n" +
|
||||
"\tLEFT JOIN sys_unit unit ON u.unitid = unit.id\n" +
|
||||
"\tLEFT JOIN ry_rygl_gr ry ON ry.userid = u.id\n" +
|
||||
"\tLEFT JOIN sys_union un ON unit.unionid = un.id $condition");
|
||||
|
||||
Cnd cnd = Cnd.NEW();
|
||||
|
||||
cnd.and("unit.unionid", "=", unionid);
|
||||
cnd.and("bm.hdid","=",hdid);
|
||||
if (sign == 0) {
|
||||
cnd.and(new Static("u.id not in (SELECT bm.userid from lxy_bm bm WHERE bm.hdid = '" + hdid + "')"));
|
||||
}
|
||||
|
||||
if (checks.length > 0) {
|
||||
for (String check : checks) {
|
||||
if (check.equals("honer")) {
|
||||
cnd.and(new Static("ry.zyxjsj is not null"));
|
||||
}
|
||||
|
||||
if (check.equals("five")) {
|
||||
cnd.and(new Static(" u.id not in (SELECT bm.userid from lxy_bm bm WHERE YEAR (NOW())- 5 < YEAR ( bm.bmsj ) )"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Strings.isNotBlank(query)) {
|
||||
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||
group.orLike("u.username", query).orLike("u.loginname", query);
|
||||
cnd.and(group);
|
||||
}
|
||||
|
||||
if (Strings.isNotBlank(pageOrderName) && Strings.isNotBlank(pageOrderName)) {
|
||||
cnd.orderBy(pageOrderName, PageUtil.getOrder(pageOrderBy));
|
||||
}
|
||||
|
||||
cnd.desc("bm.bmzt");
|
||||
|
||||
sql.setCondition(cnd);
|
||||
Pagination pagination = lxyHdService.listPage(pageNumber, pageSize, sql);
|
||||
return pagination;
|
||||
}
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("zgfw.lxy.ghbm")
|
||||
public Object getNumberData(String unionid, String hdid) {
|
||||
Sql sql = Sqls.create("SELECT\n" +
|
||||
"\tun.unionname,\n" +
|
||||
"\tmefp.number sum,\n" +
|
||||
"\t( SELECT count( 1 ) FROM lxy_bm bm WHERE bm.hdid = mefp.hdid AND bm.ghid = mefp.ghid and bm.bmzt = 5) ybm,\n" +
|
||||
"\t( SELECT count( 1 ) FROM lxy_bm bm WHERE bm.hdid = mefp.hdid AND bm.ghid = mefp.ghid and bm.bmzt in (1,3)) dsh ,\n" +
|
||||
"\t( SELECT count( 1 ) FROM lxy_bm bm WHERE bm.hdid = mefp.hdid AND bm.ghid = mefp.ghid and bm.bmzt in (2,4)) btg ,\n" +
|
||||
"\t(mefp.number - (SELECT count( 1 ) FROM lxy_bm bm WHERE bm.hdid = mefp.hdid AND bm.ghid = mefp.ghid and bm.bmzt not in (2,4))) kxz\n" +
|
||||
"FROM\n" +
|
||||
"\tlxy_mefp mefp\n" +
|
||||
"\tLEFT JOIN sys_union un ON mefp.ghid = un.id WHERE mefp.hdid=@hdid and mefp.ghid=@unionid").setParam("hdid", hdid).setParam("unionid", unionid);
|
||||
Record record = lxyHdService.list(sql).get(0);
|
||||
record.set("multiple", lxyBmService.list(Sqls.create("SELECT bm.userid id from lxy_bm bm WHERE bm.hdid = '" + hdid + "' AND bm.ghid = '" + unionid + "'")));
|
||||
return record;
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresAuthentication
|
||||
@RequiresPermissions("zgfw.lxy.ghbm")
|
||||
public Object bm(@Param("::data") List<NutMap> bmMapList, @Param("flag") boolean flag) {
|
||||
|
||||
Trans.exec(() -> {
|
||||
List<Lxy_bm> bmList = Lang.collection2list(bmMapList, Lxy_bm.class);
|
||||
if (Lang.isNotEmpty(bmList)) {
|
||||
lxyBmService.clear(Cnd
|
||||
.where("bmzt", "is", null)
|
||||
.NEW().and(Cnd.exps("bmzt", "is", null).or("bmzt", "=", 4))
|
||||
.and("ghid", "=", bmList.get(0).getGhid())
|
||||
.and("hdid", "=", bmList.get(0).getHdid()));
|
||||
|
||||
List<Lxy_grxx> grxxList = new ArrayList<>();
|
||||
for (Lxy_bm bm : bmList) {
|
||||
lxyBmService.clear(Cnd
|
||||
.where("userid","=",bm.getUserid())
|
||||
.and("ghid", "=", bmList.get(0).getGhid())
|
||||
.and("hdid", "=", bmList.get(0).getHdid()));
|
||||
|
||||
// NutMap nutMap = bmMapList.stream().filter(item -> item.getString("id").equals(bm.getId())).findFirst().orElse(NutMap.NEW());
|
||||
|
||||
Lxy_bm fetch = lxyBmService.fetch(Cnd.where("hdid", "=", bm.getGhid()).and("userid", "=", bm.getUserid()).and("bmzt", "=", 3));
|
||||
if (Lang.isNotEmpty(fetch)) {
|
||||
continue;
|
||||
@@ -305,6 +247,8 @@ public class LxyGhbmController {
|
||||
bm.setBmzt(flag ? 3 : null);
|
||||
bm.setBmlx(1);
|
||||
bm.setBmsj(DateUtil.getDate());
|
||||
// bm.setNation(nutMap.getString("nation"));
|
||||
// bm.setTalent(nutMap.getString("talent"));
|
||||
|
||||
if (flag) {
|
||||
Sql sql = Sqls.create("SELECT u.loginname,u.username,u.mobile,TIMESTAMPDIFF(YEAR,u.birthday,CURDATE()) age,u.sex,u.position,u.personType,u.nation,u.idcard FROM sys_user u WHERE u.id = '" + bm.getUserid() + "'");
|
||||
@@ -313,13 +257,13 @@ public class LxyGhbmController {
|
||||
Lxy_grxx lxy_grxx = new Lxy_grxx();
|
||||
lxy_grxx.setLoginname(item.getString("loginname"));
|
||||
lxy_grxx.setUsername(item.getString("username"));
|
||||
lxy_grxx.setMobile(item.getString("mobile"));
|
||||
lxy_grxx.setAge(item.getString("age"));
|
||||
lxy_grxx.setMobile(bm.getMobile());
|
||||
lxy_grxx.setAge(bm.getAge());
|
||||
lxy_grxx.setSex(item.getString("sex"));
|
||||
lxy_grxx.setZw(item.getString("position"));
|
||||
lxy_grxx.setRsbz(item.getString("personType"));
|
||||
lxy_grxx.setMz(item.getString("nation"));
|
||||
lxy_grxx.setIdcard(item.getString("idcard"));
|
||||
lxy_grxx.setIdcard(bm.getIdcard());
|
||||
lxy_grxx.setChry(new ArrayList());
|
||||
lxy_grxx.setUserid(bm.getUserid());
|
||||
lxy_grxx.setHdid(bm.getHdid());
|
||||
@@ -335,85 +279,76 @@ public class LxyGhbmController {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("zgfw.lxy.ghbm")
|
||||
public Object doEdit(@Param("::data") List<NutMap> bmMapList) {
|
||||
if (Lang.isEmpty(bmMapList)) {
|
||||
return Result.success();
|
||||
}
|
||||
public Object findBm(String ghId, String hdId) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
l.id,
|
||||
hd.id hdid,
|
||||
u.id uid,
|
||||
u.loginname,
|
||||
u.username,
|
||||
u.sex,
|
||||
bm.age,
|
||||
bm.mobile,
|
||||
bm.idcard,
|
||||
bm.unitname,
|
||||
bm.bmzt,
|
||||
bm.zyhj,
|
||||
bm.nation,
|
||||
bm.talent,
|
||||
bm.bz,
|
||||
bm.ghid
|
||||
FROM
|
||||
lxy_bm bm
|
||||
LEFT JOIN lxy_hd hd ON hd.id = bm.hdid
|
||||
LEFT JOIN sys_user u ON u.id = bm.userid
|
||||
LEFT JOIN sys_unit unit ON u.unitid = unit.id
|
||||
LEFT JOIN Lxy_grxx l ON l.loginname = u.loginname
|
||||
$condition
|
||||
""");
|
||||
|
||||
List<Lxy_bm> bmList = Lang.collection2list(bmMapList, Lxy_bm.class);
|
||||
lxyBmService.clear(Cnd.where("hdid", "=", bmList.get(0).getHdid()).and("ghid", "=", bmList.get(0).getGhid()).and("bmlx", "=", 1));
|
||||
lxyGrxxService.clear(Cnd.where("hdid", "=", bmList.get(0).getHdid()).and("ghid", "=", bmList.get(0).getGhid()));
|
||||
List<Lxy_grxx> grxxList = new ArrayList<>();
|
||||
for (Lxy_bm bm : bmList) {
|
||||
Lxy_bm fetch = lxyBmService.fetch(Cnd.where("hdid", "=", bm.getGhid()).and("userid", "=", bm.getUserid()).and("bmzt", "=", 3));
|
||||
if (Lang.isNotEmpty(fetch)) {
|
||||
continue;
|
||||
}
|
||||
bm.setBmzt(3);
|
||||
bm.setBmlx(1);
|
||||
bm.setBmsj(DateUtil.getDate());
|
||||
|
||||
Sql sql = Sqls.create("SELECT u.loginname,u.username,u.mobile,TIMESTAMPDIFF(YEAR,u.birthday,CURDATE()) age,u.sex,u.position,u.preparedBy,u.nation,u.idcard FROM sys_user u WHERE u.id = '" + bm.getUserid() + "'");
|
||||
List<Record> records = sysUserService.list(sql);
|
||||
records.forEach(item -> {
|
||||
Lxy_grxx lxy_grxx = new Lxy_grxx();
|
||||
lxy_grxx.setLoginname(item.getString("loginname"));
|
||||
lxy_grxx.setUsername(item.getString("username"));
|
||||
lxy_grxx.setMobile(item.getString("mobile"));
|
||||
lxy_grxx.setAge(item.getString("age"));
|
||||
lxy_grxx.setSex(item.getString("sex"));
|
||||
lxy_grxx.setZw(item.getString("position"));
|
||||
lxy_grxx.setRsbz(item.getString("preparedBy"));
|
||||
lxy_grxx.setMz(item.getString("nation"));
|
||||
lxy_grxx.setIdcard(item.getString("idcard"));
|
||||
lxy_grxx.setChry(new ArrayList());
|
||||
lxy_grxx.setUserid(bm.getUserid());
|
||||
lxy_grxx.setHdid(bm.getHdid());
|
||||
lxy_grxx.setGhid(bm.getGhid());
|
||||
grxxList.add(lxy_grxx);
|
||||
});
|
||||
}
|
||||
lxyBmService.insert(bmList);
|
||||
lxyGrxxService.insert(grxxList);
|
||||
return null;
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("bm.bmzt","NOT IN",List.of(2,4,6));
|
||||
cnd.and("bm.hdid","=",hdId);
|
||||
cnd.and("bm.ghid","=",ghId);
|
||||
cnd.groupBy("u.loginname");
|
||||
cnd.desc("bm.bmzt");
|
||||
sql.setCondition(cnd);
|
||||
return lxyBmService.list(sql);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@RequiresPermissions("zgfw.lxy.ghbm")
|
||||
public void downloadImportTemp(HttpServletResponse response) {
|
||||
try {
|
||||
ViTool.excelResponse(response, "疗休养导入模版.xlsx");
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
Workbook sheets = ExcelExportUtil.exportExcel(exportParams, LxyImportTemp.class, new ArrayList<>());
|
||||
ServletOutputStream outputStream = response.getOutputStream();
|
||||
sheets.write(outputStream);
|
||||
outputStream.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RequiresPermissions("zgfw.lxy.ghbm")
|
||||
public Object findBm(String ghId, String hdId) {
|
||||
try {
|
||||
Sql sql = Sqls.create("SELECT\n" +
|
||||
"unit.`name` unitname,\n" +
|
||||
"l.id,\n" +
|
||||
"hd.id hdid,\n" +
|
||||
"u.id uid,\n" +
|
||||
"u.loginname,\n" +
|
||||
"u.username,\n" +
|
||||
"u.sex,\n" +
|
||||
"u.mobile,\n" +
|
||||
"TIMESTAMPDIFF(YEAR,u.birthday,CURDATE()) age,\n" +
|
||||
"bm.bmzt,\n" +
|
||||
"bm.ghid\n" +
|
||||
"FROM lxy_bm bm\n" +
|
||||
"LEFT JOIN lxy_hd hd ON hd.id = bm.hdid\n" +
|
||||
"LEFT JOIN sys_user u ON u.id = bm.userid\n" +
|
||||
"LEFT JOIN sys_unit unit ON u.unitid = unit.id\n" +
|
||||
"LEFT JOIN Lxy_grxx l ON l.loginname = u.loginname \n" +
|
||||
"WHERE bm.bmzt NOT IN (2,4,6) AND bm.hdid = @hdid \n" +
|
||||
"AND bm.ghid = @ghid \n" +
|
||||
"GROUP BY u.loginname\n" +
|
||||
"ORDER BY bm.bmzt DESC");
|
||||
sql.setParam("hdid", hdId);
|
||||
sql.setParam("ghid", ghId);
|
||||
List<Record> list = lxyBmService.list(sql);
|
||||
return Result.success().addData(list);
|
||||
} catch (Exception e) {
|
||||
return Result.error();
|
||||
}
|
||||
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
|
||||
public Result doImport(TempFile file, String projectId){
|
||||
String unionId = Vi.getUnionId();
|
||||
// 已经报名的人
|
||||
int count = dao.count(Lxy_bm.class, Cnd.where("hdid", "=", projectId).and("ghid", "=", unionId)
|
||||
.and("bmzt", "in", List.of("1", "2", "3", "4", "5", "6")));
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -4,13 +4,13 @@ import cn.wizzer.framework.base.service.BaseService;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.utils.PageUtil;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.sys.models.Sys_file;
|
||||
import io.v.nutz.sys.services.SysUserService;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.lxy.model.Lxy_grxx;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyBmService;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyGrxxService;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyHdService;
|
||||
import io.v.nutz.sys.models.Sys_file;
|
||||
import io.v.nutz.sys.services.SysUserService;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
|
||||
@@ -2,13 +2,13 @@ package io.v.nutz.zhgh.lxy.controller;
|
||||
|
||||
import cn.wizzer.framework.base.service.BaseService;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.utils.PageUtil;
|
||||
import io.v.nutz.base.dao.CndPlus;
|
||||
import io.v.nutz.base.utils.PageUtil;
|
||||
import io.v.nutz.sys.models.Sys_file;
|
||||
import io.v.nutz.zhgh.lxy.model.Lxy_hd;
|
||||
import io.v.nutz.zhgh.lxy.model.Lxy_mefp;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyHdService;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyMefpService;
|
||||
import io.v.nutz.sys.models.Sys_file;
|
||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.boot.starter.ftp.FtpService;
|
||||
@@ -195,7 +195,7 @@ public class LxyHdCon {
|
||||
FROM
|
||||
sys_union gh
|
||||
LEFT JOIN `user` u ON u.unionid = gh.id
|
||||
GROUP BY gh.id
|
||||
GROUP BY gh.id ORDER BY gh.unioncode asc
|
||||
""");
|
||||
return lxyHdService.list(sql);
|
||||
}
|
||||
|
||||
@@ -3,8 +3,10 @@ package io.v.nutz.zhgh.lxy.controller;
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.utils.MsgApi;
|
||||
import io.v.nutz.base.utils.OfficeTemplateUtil;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.zhgh.lxy.model.Lxy_bm;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyGrxxService;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyHdService;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
@@ -53,6 +55,10 @@ public class LxyHdTjController {
|
||||
@Inject
|
||||
private OfficeTemplateUtil officeTemplateUtil;
|
||||
|
||||
|
||||
@Inject
|
||||
private MsgApi msgApi;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zgfw/lxy/HdTj.html")
|
||||
@RequiresPermissions("zgfw.lxy.hdtj")
|
||||
@@ -62,9 +68,9 @@ public class LxyHdTjController {
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("zgfw.lxy.hdtj")
|
||||
public Object pageData(@Param(value = "hdid",required = false) String hdid,
|
||||
@Param(value = "ghid",required = false) String ghid,
|
||||
@Param(value = "searchKey",required = false) String searchKey,
|
||||
public Object pageData(@Param(value = "hdid", required = false) String hdid,
|
||||
@Param(value = "ghid", required = false) String ghid,
|
||||
@Param(value = "searchKey", required = false) String searchKey,
|
||||
@Param("pageNumber") int pageNumber, @Param("pageSize") int pageSize) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
Sql sql = Sqls.create("SELECT gr.* ,u.unionname,u.unioncode,u.unitname unitname,u.unitcode FROM `lxy_grxx` gr \n" +
|
||||
@@ -96,13 +102,23 @@ public class LxyHdTjController {
|
||||
@At
|
||||
@Ok("void")
|
||||
@RequiresPermissions("zgfw.lxy.hdtj")
|
||||
public void doExport(@Param(value = "hdid",required = false) String hdid,
|
||||
@Param(value = "hdname",required = false) String hdname,
|
||||
@Param(value = "ghid",required = false) String ghid, HttpServletResponse response) throws IOException {
|
||||
public void doExport(@Param(value = "hdid", required = false) String hdid,
|
||||
@Param(value = "hdname", required = false) String hdname,
|
||||
@Param(value = "ghid", required = false) String ghid, HttpServletResponse response) throws IOException {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
Sql sql = Sqls.create("SELECT gr.* ,u.unionname,u.unioncode,u.unitname unitname,u.unitcode FROM `lxy_grxx` gr \n" +
|
||||
"LEFT JOIN lxy_bm bm ON bm.userid = gr.userid \n" +
|
||||
"LEFT JOIN `user` u ON u.id=bm.userid $condition");
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
gr.*,
|
||||
bm.unionname,
|
||||
bm.unitname,
|
||||
bm.zyhj,
|
||||
bm.bz
|
||||
FROM
|
||||
`lxy_grxx` gr
|
||||
LEFT JOIN lxy_bm bm ON bm.userid = gr.userid
|
||||
LEFT JOIN `user` u ON u.id = bm.userid
|
||||
$condition
|
||||
""");
|
||||
|
||||
cnd.and(new Static("bm.bmzt = 5"));
|
||||
cnd.and("gr.hdid", "=", hdid);
|
||||
@@ -111,7 +127,7 @@ public class LxyHdTjController {
|
||||
cnd.and("gr.ghid", "=", ghid);
|
||||
}
|
||||
cnd.groupBy("bm.userid");
|
||||
cnd.asc("u.unionname").asc("u.unitcode").asc("gr.age");
|
||||
cnd.asc("bm.unionname").asc("bm.unitname").asc("gr.age");
|
||||
sql.setCondition(cnd);
|
||||
List<Record> list = lxyGrxxService.list(sql);
|
||||
int i = 1;
|
||||
@@ -132,7 +148,7 @@ public class LxyHdTjController {
|
||||
String fileName = "疗休养人员名单汇总表.xls";
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "ISO8859-1"));
|
||||
//TemplateExportParams params = new TemplateExportParams("templates/lxy/lxyrymd.xls");
|
||||
// TemplateExportParams params = new TemplateExportParams("C:\\Users\\mayn\\Desktop\\lxyrymd.xls");
|
||||
TemplateExportParams params = new TemplateExportParams(officeTemplateUtil.getPath("lxy_lxyrymd"));
|
||||
// Workbook workbook = ExcelExportUtil.exportExcel(params, map);
|
||||
// workbook.write(response.getOutputStream());
|
||||
@@ -141,4 +157,20 @@ public class LxyHdTjController {
|
||||
workbook.write(outputStream);
|
||||
outputStream.close();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RequiresPermissions("zgfw.lxy.hdtj")
|
||||
public Object openSendMessage(String hdid,
|
||||
@Param("sendTypes") String[] sendTypes,
|
||||
@Param("content") String content) {
|
||||
List<Lxy_bm> grxxes = lxyGrxxService.dao().query(Lxy_bm.class, Cnd.where("hdid", "=", hdid).and("bmzt", "=", 5));
|
||||
// List<String> loginnames = grxxes.stream().map(Lxy_bm::getLoginname).collect(Collectors.toList());
|
||||
// loginnames.forEach(loginname -> {
|
||||
// msgApi.sendMsg(content, "", "", "", "4", new ArrayList<>() {{
|
||||
// add(NutMap.NEW().addv("userId", loginname));
|
||||
// }});
|
||||
// });
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@ import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.utils.DateUtil;
|
||||
import io.v.nutz.base.utils.PageUtil;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.sys.services.SysUserService;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.lxy.model.Lxy_bm;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyBmService;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyHdService;
|
||||
import io.v.nutz.sys.services.SysUserService;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.dao.Cnd;
|
||||
|
||||
@@ -8,14 +8,15 @@ import io.v.nutz.base.service.BaseService;
|
||||
import io.v.nutz.base.utils.PageUtil;
|
||||
import io.v.nutz.base.utils.Roles;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.sys.models.Sys_file;
|
||||
import io.v.nutz.web.commons.utils.FileUtil;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.lxy.model.Lxy_grxx;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyBmService;
|
||||
import io.v.nutz.zhgh.lxy.service.LxyHdService;
|
||||
import io.v.nutz.sys.models.Sys_file;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import org.apache.commons.net.ftp.FTPClient;
|
||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.boot.starter.ftp.FtpService;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
@@ -26,6 +27,7 @@ import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.json.Json;
|
||||
import org.nutz.lang.Strings;
|
||||
import org.nutz.lang.random.R;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
@@ -33,15 +35,14 @@ import org.nutz.mvc.annotation.Param;
|
||||
import org.nutz.trans.Trans;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.List;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
import static org.nutz.boot.starter.ftp.FtpStarter.*;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author: 1V
|
||||
@@ -69,6 +70,9 @@ public class LxyXghshController {
|
||||
@Inject
|
||||
protected PropertiesProxy conf;
|
||||
|
||||
@Inject
|
||||
private FtpService ftpService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zgfw/lxy/HdXghsh.html")
|
||||
@RequiresPermissions("zgfw.lxy.xghsh")
|
||||
@@ -78,14 +82,14 @@ public class LxyXghshController {
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("zgfw.lxy.xghsh")
|
||||
public Object pageData(@Param(value = "hdid",required = false) String hdid,
|
||||
@Param(value = "year",required = false) Integer year,
|
||||
@Param(value = "isAudit",required = false) Integer isAudit,
|
||||
@Param(value = "searchName",required = false) String searchName,
|
||||
@Param(value = "unionId",required = false) String unionId,
|
||||
@Param("pageNumber") int pageNumber,@Param("pageSize") int pageSize,
|
||||
@Param(value = "pageOrderName",required = false) String pageOrderName,
|
||||
@Param(value = "pageOrderBy",required = false) String pageOrderBy) {
|
||||
public Object pageData(@Param(value = "hdid", required = false) String hdid,
|
||||
@Param(value = "year", required = false) Integer year,
|
||||
@Param(value = "isAudit", required = false) Integer isAudit,
|
||||
@Param(value = "searchName", required = false) String searchName,
|
||||
@Param(value = "unionId", required = false) String unionId,
|
||||
@Param("pageNumber") int pageNumber, @Param("pageSize") int pageSize,
|
||||
@Param(value = "pageOrderName", required = false) String pageOrderName,
|
||||
@Param(value = "pageOrderBy", required = false) String pageOrderBy) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
mefp.*,
|
||||
@@ -94,6 +98,7 @@ public class LxyXghshController {
|
||||
hd.*,
|
||||
(mefp.number - ( SELECT count( 1 ) FROM lxy_bm bm WHERE bm.hdid = mefp.hdid AND bm.ghid = mefp.ghid AND bm.bmzt NOT IN (2,4)) ) remain,
|
||||
(SELECT count( 1 ) FROM lxy_bm bm WHERE bm.hdid = mefp.hdid AND bm.ghid = mefp.ghid AND bm.bmzt = 3) dsh,
|
||||
(SELECT count( 1 ) FROM lxy_bm bm WHERE bm.hdid = mefp.hdid AND bm.ghid = mefp.ghid AND bm.bmzt = 5) ysh,
|
||||
(SELECT GROUP_CONCAT(u.username) FROM lxy_bm bm LEFT JOIN `user` u on u.id=bm.userid WHERE bm.hdid=@hdid AND bm.ghid=mefp.ghid AND bm.bmzt != 4) username ,
|
||||
(SELECT GROUP_CONCAT(DISTINCT concat(u.username,'(',u.mobile,')') ) FROM `user` u LEFT JOIN sys_user_role ur ON u.id = ur.userId WHERE u.unionid = mefp.ghid AND ur.roleId = @roleId ) fglyname
|
||||
FROM
|
||||
@@ -108,7 +113,7 @@ public class LxyXghshController {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
|
||||
cnd.andEX("mefp.ghid", "=", unionId);
|
||||
cnd.and(new Static("now()<hd.bmjzsj"));
|
||||
// cnd.and(new Static("now()<hd.bmjzsj"));
|
||||
cnd.and("mefp.number", ">", 0);
|
||||
cnd.and("mefp.hdid", "=", hdid);
|
||||
cnd.and(new Static("(select count(1) from lxy_bm lb where lb.hdid = '" + hdid + "' and lb.ghid = mefp.ghid AND lb.bmzt is NOT null) > 0 "));
|
||||
@@ -148,40 +153,46 @@ public class LxyXghshController {
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("zgfw.lxy.xghsh")
|
||||
public Object findBm(String ghId, String hdId, Integer pageNumber, Integer pageSize) {
|
||||
try {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
l.id,
|
||||
hd.id hdid,
|
||||
u.id uid,
|
||||
u.loginname,
|
||||
u.username,
|
||||
u.unitname,
|
||||
u.unionname,
|
||||
u.sex,
|
||||
u.mobile,
|
||||
TIMESTAMPDIFF(YEAR,u.birthday,CURDATE()) age,
|
||||
bm.bmzt,
|
||||
bm.ghid
|
||||
FROM lxy_bm bm
|
||||
LEFT JOIN lxy_hd hd ON hd.id = bm.hdid
|
||||
LEFT JOIN Lxy_grxx l ON l.userid = bm.userid
|
||||
LEFT JOIN `user` u ON u.id = bm.userid
|
||||
WHERE bm.bmzt IN (3,4,5) AND bm.hdid = @hdid
|
||||
AND bm.ghid = @ghid
|
||||
GROUP BY u.username
|
||||
ORDER BY bm.bmzt ASC
|
||||
""");
|
||||
sql.setParam("hdid", hdId);
|
||||
sql.setParam("ghid", ghId);
|
||||
// List<Record> list = lxyBmService.list(sql);
|
||||
Pagination pagination = lxyBmService.listPage(pageNumber, pageSize, sql);
|
||||
return Result.success().addData(pagination);
|
||||
} catch (Exception e) {
|
||||
return Result.error();
|
||||
}
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
l.id,
|
||||
hd.id hdid,
|
||||
u.id uid,
|
||||
u.loginname,
|
||||
u.username,
|
||||
u.sex,
|
||||
bm.age,
|
||||
bm.mobile,
|
||||
bm.idcard,
|
||||
bm.unitname,
|
||||
bm.bmzt,
|
||||
bm.zyhj,
|
||||
bm.nation,
|
||||
bm.talent,
|
||||
bm.bz,
|
||||
bm.ghid
|
||||
FROM
|
||||
lxy_bm bm
|
||||
LEFT JOIN lxy_hd hd ON hd.id = bm.hdid
|
||||
LEFT JOIN sys_user u ON u.id = bm.userid
|
||||
LEFT JOIN sys_unit unit ON u.unitid = unit.id
|
||||
LEFT JOIN Lxy_grxx l ON l.loginname = u.loginname
|
||||
$condition
|
||||
""");
|
||||
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("bm.bmzt", "NOT IN", List.of(2, 4, 6));
|
||||
cnd.and("bm.hdid", "=", hdId);
|
||||
cnd.and("bm.ghid", "=", ghId);
|
||||
cnd.groupBy("u.loginname");
|
||||
cnd.desc("bm.bmzt");
|
||||
sql.setCondition(cnd);
|
||||
Pagination pagination = lxyBmService.listPage(pageNumber, pageSize, sql);
|
||||
return Result.success().addData(pagination);
|
||||
|
||||
}
|
||||
|
||||
@At
|
||||
@@ -226,16 +237,12 @@ public class LxyXghshController {
|
||||
}
|
||||
|
||||
@At
|
||||
@RequiresAuthentication
|
||||
@RequiresPermissions("zgfw.lxy.xghsh")
|
||||
public void downLoadAll(@Param(value = "year",required = false) Integer year,
|
||||
@Param(value = "hdid",required = false) String hdid,
|
||||
@Param(value = "unionId",required = false) String unionId,
|
||||
@Param(value = "isAudit",required = false) Integer isAudit, HttpServletResponse response) throws IOException {
|
||||
public void downLoadAll(@Param(value = "year", required = false) Integer year,
|
||||
@Param(value = "hdid", required = false) String hdid,
|
||||
@Param(value = "unionId", required = false) String unionId,
|
||||
@Param(value = "isAudit", required = false) Integer isAudit, HttpServletResponse response) throws IOException {
|
||||
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("content-disposition", "attachment;filename="
|
||||
+ URLEncoder.encode("报名人员材料.zip", "UTF-8"));
|
||||
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
@@ -262,45 +269,70 @@ public class LxyXghshController {
|
||||
sql.setCondition(cnd);
|
||||
List<NutMap> list = baseService.listMap(sql);
|
||||
|
||||
//连接ftp
|
||||
FTPClient ftpClient = new FTPClient();
|
||||
ftpClient.connect(conf.get(PROP_SERVER_HOST, ""), conf.getInt(PROP_SERVER_PORT, 21));
|
||||
ftpClient.login(conf.get(PROP_SERVER_USERNAME, ""), conf.get(PROP_SERVER_PASSWORD, ""));
|
||||
ftpClient.enterLocalPassiveMode();
|
||||
try {
|
||||
ZipOutputStream zipOutputStream = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream()));
|
||||
|
||||
list.forEach(item -> {
|
||||
if (StrUtil.isNotBlank(item.getString("files"))) {
|
||||
List<Sys_file> fileList = Json.fromJsonAsList(Sys_file.class, item.getString("files"));
|
||||
try {
|
||||
for (int i = 0; i < fileList.size(); i++) {
|
||||
Sys_file file = fileList.get(0);
|
||||
String fileName = item.getString("username");
|
||||
if (fileList.size() > 1) {
|
||||
fileName = fileName + (i + 1);
|
||||
response.reset();
|
||||
response.setContentType("application/x-msdownload;charset=utf-8");
|
||||
|
||||
/**
|
||||
* 创建临时文件夹
|
||||
*/
|
||||
String tmpPath = "tmp/" + R.UU32();
|
||||
File tmpDir = new File(tmpPath + "/报名人员材料");
|
||||
tmpDir.mkdirs();
|
||||
|
||||
Map<String, List<NutMap>> unionNameMap = list.stream()
|
||||
.collect(Collectors.groupingBy(l -> l.getString("unionname")));
|
||||
|
||||
|
||||
unionNameMap.forEach((k, v) -> {
|
||||
File unionTmpDir = new File(tmpDir + "/" + k);
|
||||
unionTmpDir.mkdirs();
|
||||
List<NutMap> unionNameList = list.stream().filter(li -> li.getString("unionname").equals(k)).collect(Collectors.toList());
|
||||
|
||||
unionNameList.forEach(item -> {
|
||||
|
||||
File tDir = new File(unionTmpDir + "/" + item.getString("username"));
|
||||
tDir.mkdirs();
|
||||
|
||||
if (StrUtil.isNotBlank(item.getString("files"))) {
|
||||
List<Sys_file> fileList = Json.fromJsonAsList(Sys_file.class, item.getString("files"));
|
||||
fileList.forEach(file -> {
|
||||
try {
|
||||
FileOutputStream outputStream = new FileOutputStream(tDir.getPath() + "/" + file.getFilename());
|
||||
ftpService.download(file.getFilepath(), outputStream);
|
||||
outputStream.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
fileName = fileName + "--" + file.getFilename();
|
||||
zipOutputStream.putNextEntry(new ZipEntry(item.getString("unionname") + "/" + fileName));
|
||||
//读取ftp文件
|
||||
InputStream inputStream = ftpClient.retrieveFileStream(file.getFilepath());
|
||||
org.apache.commons.io.IOUtils.copy(inputStream, zipOutputStream);
|
||||
inputStream.close();
|
||||
zipOutputStream.closeEntry();
|
||||
ftpClient.completePendingCommand();
|
||||
response.flushBuffer();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
zipOutputStream.flush();
|
||||
zipOutputStream.close();
|
||||
ftpClient.logout();
|
||||
|
||||
String aimsDir = "zipTmp/" + R.UU32();
|
||||
String aimsName = "报名人员材料.zip";
|
||||
String aimsPath = aimsDir + "/" + aimsName;
|
||||
FileUtil.compressToZip(tmpDir.getPath(), aimsDir, aimsName);
|
||||
|
||||
response.setHeader("content-disposition", "attachment;filename="
|
||||
+ URLEncoder.encode(aimsName, "UTF-8"));
|
||||
|
||||
File aimsFile = new File(aimsPath);
|
||||
FileInputStream inputStream = new FileInputStream(aimsFile);
|
||||
org.apache.commons.io.IOUtils.copy(inputStream, response.getOutputStream());
|
||||
inputStream.close();
|
||||
aimsFile.delete();
|
||||
|
||||
FileUtil.deleteDir(new File(tmpPath));
|
||||
FileUtil.deleteDir(new File(aimsDir));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -32,6 +32,11 @@ public class Lxy_bm {
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String userid;
|
||||
|
||||
@Column
|
||||
@Comment("工号")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String loginname;
|
||||
|
||||
@Column
|
||||
@Comment("工会id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@@ -43,15 +48,64 @@ public class Lxy_bm {
|
||||
private String bmsj;
|
||||
|
||||
@Column
|
||||
@Comment("报名状态(1.待基层工会审核 2.基层工会审核不通过 3.待校工会审核 4 校工会审核不通过 5 报名成功 6 待填写个人资料)")
|
||||
@Comment("报名状态(1.待分工会审核 2.分工会审核不通过 3.待校工会审核 4 校工会审核不通过 5 报名成功 6 待填写个人资料)")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer bmzt;
|
||||
|
||||
@Column
|
||||
@Comment("报名类型(1.基层工会统一报名 2.个人报名)")
|
||||
@Comment("报名类型(1.分工会统一报名 2.个人报名)")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer bmlx;
|
||||
|
||||
@Column
|
||||
@Comment("单位")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String unitname;
|
||||
@Column
|
||||
@Comment("单位id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String unitid;
|
||||
|
||||
@Column
|
||||
@Comment("年龄")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private String age;
|
||||
|
||||
@Column
|
||||
@Comment("民族")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String nation;
|
||||
|
||||
@Column
|
||||
@Comment("疗休养身份")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 1000)
|
||||
private String zyhj;
|
||||
|
||||
@Column
|
||||
@Comment("工会")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String unionname;
|
||||
|
||||
@Column
|
||||
@Comment("身份证号码")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String idcard;
|
||||
|
||||
@Column
|
||||
@Comment("手机号")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 11)
|
||||
private String mobile;
|
||||
|
||||
@Column
|
||||
@Comment("是否为ABCDE类高层次人才")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
private String talent;
|
||||
|
||||
@Column
|
||||
@Comment("备注")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 1000)
|
||||
private String bz;
|
||||
|
||||
@Column
|
||||
@Comment("附件")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package io.v.nutz.zhgh.lxy.template;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:LxyImportTemp
|
||||
* @Date 2025/6/11 16:16
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
public class LxyImportTemp {
|
||||
|
||||
@Excel(name = "工号")
|
||||
String loginname;
|
||||
|
||||
@Excel(name = "姓名")
|
||||
String username;
|
||||
|
||||
@Excel(name = "民族")
|
||||
String nation;
|
||||
|
||||
@Excel(name = "疗休养员身份")
|
||||
String zyhj;
|
||||
|
||||
@Excel(name = "身份证号")
|
||||
String idcard;
|
||||
|
||||
@Excel(name = "联系电话")
|
||||
String mobile;
|
||||
|
||||
@Excel(name = "是否为ABCDE类高层次人才")
|
||||
String talent;
|
||||
|
||||
String remark;
|
||||
|
||||
}
|
||||
@@ -1,220 +1,220 @@
|
||||
<template>
|
||||
<div style="padding: 20px 50px">
|
||||
<el-timeline>
|
||||
<el-timeline-item timestamp="下载模板" placement="top">
|
||||
<el-card>
|
||||
<el-button size="medium" style="width: 200px"
|
||||
@click="location.href=temp_url"
|
||||
icon="el-icon-download">下载模板
|
||||
</el-button>
|
||||
<div style="padding: 20px 50px">
|
||||
<el-timeline>
|
||||
<el-timeline-item timestamp="下载模板" placement="top">
|
||||
<el-card>
|
||||
<el-button size="medium" style="width: 200px" @click="location.href = temp_url" icon="el-icon-download">下载模板</el-button>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
<el-timeline-item timestamp="上传文件" placement="top">
|
||||
<el-card>
|
||||
<el-form>
|
||||
<el-form-item label="请选择更新模式" v-if="is_show_radio">
|
||||
<el-radio-group v-model="importData.isFlag">
|
||||
<el-radio-button label="true">清空更新</el-radio-button>
|
||||
<el-radio-button label="false">追加</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
<el-timeline-item timestamp="上传文件" placement="top">
|
||||
<el-card>
|
||||
<el-form>
|
||||
<el-form-item label="请选择更新模式" v-if="is_show_radio">
|
||||
<el-radio-group v-model="importData.isFlag">
|
||||
<el-radio-button label="true">清空更新</el-radio-button>
|
||||
<el-radio-button label="false">追加</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
<el-upload
|
||||
name="file"
|
||||
ref="upload"
|
||||
:on-remove="(file, fileList) => {
|
||||
importData.fileList = fileHandleRemove(file, fileList);
|
||||
importResult={
|
||||
errorCount:0,
|
||||
successCount:0,
|
||||
totalCount:0,
|
||||
errorList:[]
|
||||
}
|
||||
}"
|
||||
:on-change="(file, fileList) => {
|
||||
importData.fileList = fileHandleChange(file, fileList,{type:['xls','xlsx']})
|
||||
}"
|
||||
:auto-upload="false"
|
||||
:limit="1"
|
||||
:file-list="importData.fileList">
|
||||
<el-button size="medium" type="" icon="el-icon-upload"
|
||||
style="width: 200px">选择文件
|
||||
</el-button>
|
||||
<div class="el-upload__tip" slot="tip" style="color: #F56C6C">
|
||||
只能上传 xls/xlsx 文件
|
||||
</div>
|
||||
</el-upload>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
<el-timeline-item placement="top" timestamp="导入结果">
|
||||
<el-card shadow="never">
|
||||
<p>总记录数:{{ errorInfoData.totalCount }}</p>
|
||||
<p>成功数:<span class="text-success">{{ errorInfoData.successCount }}</span></p>
|
||||
<p>错误数:<span class="text-danger">{{ errorInfoData.errorCount }}</span></p>
|
||||
<el-link @click="exportErrors" type="primary" v-if="errorInfoData.errorCount>0">下载错误记录
|
||||
</el-link>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
<div style="text-align: right">
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<!-- <el-button @click="importVisible = false" :disabled="importLoading">取 消</el-button>-->
|
||||
<el-button type="primary" @click="doImport" :loading="importLoading">确 定</el-button>
|
||||
</span>
|
||||
<el-upload
|
||||
name="file"
|
||||
ref="upload"
|
||||
:on-remove="
|
||||
(file, fileList) => {
|
||||
importData.fileList = fileHandleRemove(file, fileList)
|
||||
importResult = {
|
||||
errorCount: 0,
|
||||
successCount: 0,
|
||||
totalCount: 0,
|
||||
errorList: []
|
||||
}
|
||||
}
|
||||
"
|
||||
:on-change="
|
||||
(file, fileList) => {
|
||||
importData.fileList = fileHandleChange(file, fileList, { type: ['xls', 'xlsx'] })
|
||||
}
|
||||
"
|
||||
:auto-upload="false"
|
||||
:limit="1"
|
||||
:file-list="importData.fileList"
|
||||
>
|
||||
<el-button size="medium" type="" icon="el-icon-upload" style="width: 200px">选择文件</el-button>
|
||||
<div class="el-upload__tip" slot="tip" style="color: #f56c6c">只能上传 xls/xlsx 文件</div>
|
||||
</el-upload>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
<el-timeline-item placement="top" timestamp="导入结果">
|
||||
<el-card shadow="never">
|
||||
<p>总记录数:{{ errorInfoData.totalCount }}</p>
|
||||
<p>
|
||||
成功数:
|
||||
<span class="text-success">{{ errorInfoData.successCount }}</span>
|
||||
</p>
|
||||
<p>
|
||||
错误数:
|
||||
<span class="text-danger">{{ errorInfoData.errorCount }}</span>
|
||||
</p>
|
||||
<el-link @click="exportErrors" type="primary" v-if="errorInfoData.errorCount > 0">下载错误记录</el-link>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
<div style="text-align: right">
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<!-- <el-button @click="importVisible = false" :disabled="importLoading">取 消</el-button>-->
|
||||
<el-button type="primary" @click="doImport" :loading="importLoading">确 定</el-button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
props: {
|
||||
temp_url: {type: String},
|
||||
post_url: {type: String},
|
||||
project_id: {type: String, default: ''},
|
||||
is_show_radio: {type: Boolean, default: false}
|
||||
},
|
||||
mounted() {
|
||||
const s = document.createElement('script');
|
||||
s.type = 'text/javascript';
|
||||
s.src = '/assets/platform/js/xlsx.full.min.js';
|
||||
document.body.appendChild(s);
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// importVisible: false,
|
||||
importLoading: false,
|
||||
importData: {
|
||||
fileList: [],
|
||||
isFlag: false
|
||||
},
|
||||
errorInfoData: {
|
||||
totalCount: 0,
|
||||
successCount: 0,
|
||||
errorCount: 0,
|
||||
errorList: 0,
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
resetImportData() {
|
||||
this.importData = {
|
||||
fileList: [],
|
||||
isFlag: false
|
||||
}
|
||||
this.errorInfoData = {
|
||||
totalCount: 0,
|
||||
successCount: 0,
|
||||
errorCount: 0,
|
||||
errorList: 0,
|
||||
}
|
||||
this.importLoading = false
|
||||
props: {
|
||||
temp_url: { type: String },
|
||||
post_url: { type: String },
|
||||
project_id: { type: String, default: "" },
|
||||
is_show_radio: { type: Boolean, default: false }
|
||||
},
|
||||
doImport() {
|
||||
if (this.importData.fileList.length === 0) {
|
||||
this.$notify.error({
|
||||
title: '错误',
|
||||
message: '请选择文件!'
|
||||
});
|
||||
// this.notifyWarning("请选择文件!")
|
||||
return
|
||||
}
|
||||
const data = new FormData();
|
||||
data.append("isFlag", this.importData.isFlag)
|
||||
data.append("projectId", this.project_id)
|
||||
this.importData.fileList.forEach((val) => {
|
||||
data.append("file", val.raw, val.raw.name);
|
||||
});
|
||||
this.importLoading = true
|
||||
$.ajax({
|
||||
url: this.post_url,
|
||||
type: "post",
|
||||
data: data,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success: (data) => {
|
||||
this.importLoading = false
|
||||
if (data.code === 0 && data.data === null) {
|
||||
this.$notify.success("导入成功")
|
||||
this.importVisible = false
|
||||
this.$emit("flush")
|
||||
} else {
|
||||
this.$notify.warning("导入失败")
|
||||
this.errorInfoData = data.data
|
||||
}
|
||||
},
|
||||
error: (data) => {
|
||||
this.$notify.warning("导入失败")
|
||||
this.importLoading = false
|
||||
mounted() {
|
||||
const s = document.createElement("script")
|
||||
s.type = "text/javascript"
|
||||
s.src = "/assets/platform/js/xlsx.full.min.js"
|
||||
document.body.appendChild(s)
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// importVisible: false,
|
||||
importLoading: false,
|
||||
importData: {
|
||||
fileList: [],
|
||||
isFlag: false
|
||||
},
|
||||
errorInfoData: {
|
||||
totalCount: 0,
|
||||
successCount: 0,
|
||||
errorCount: 0,
|
||||
errorList: 0
|
||||
}
|
||||
}
|
||||
});
|
||||
this.importLoading = false
|
||||
},
|
||||
exportErrors() {
|
||||
const data = this.errorInfoData.errorList
|
||||
methods: {
|
||||
resetImportData() {
|
||||
this.importData = {
|
||||
fileList: [],
|
||||
isFlag: false
|
||||
}
|
||||
this.errorInfoData = {
|
||||
totalCount: 0,
|
||||
successCount: 0,
|
||||
errorCount: 0,
|
||||
errorList: 0
|
||||
}
|
||||
this.importLoading = false
|
||||
},
|
||||
doImport() {
|
||||
if (this.importData.fileList.length === 0) {
|
||||
this.$notify.error({
|
||||
title: "错误",
|
||||
message: "请选择文件!"
|
||||
})
|
||||
// this.notifyWarning("请选择文件!")
|
||||
return
|
||||
}
|
||||
const data = new FormData()
|
||||
data.append("isFlag", this.importData.isFlag)
|
||||
data.append("projectId", this.project_id)
|
||||
this.importData.fileList.forEach((val) => {
|
||||
data.append("file", val.raw, val.raw.name)
|
||||
})
|
||||
this.importLoading = true
|
||||
$.ajax({
|
||||
url: this.post_url,
|
||||
type: "post",
|
||||
data: data,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success: (data) => {
|
||||
this.importLoading = false
|
||||
if (data.code === 0 && data.data === null) {
|
||||
this.$notify.success("导入成功")
|
||||
this.importVisible = false
|
||||
this.$emit("flush")
|
||||
} else {
|
||||
this.$notify.warning("导入失败")
|
||||
this.errorInfoData = data.data
|
||||
}
|
||||
},
|
||||
error: (data) => {
|
||||
this.$notify.warning(data.msg)
|
||||
this.importLoading = false
|
||||
}
|
||||
})
|
||||
this.importLoading = false
|
||||
},
|
||||
exportErrors() {
|
||||
const data = this.errorInfoData.errorList
|
||||
|
||||
// 创建工作簿
|
||||
const workbook = XLSX.utils.book_new();
|
||||
// 创建工作簿
|
||||
const workbook = XLSX.utils.book_new()
|
||||
|
||||
// 创建工作表
|
||||
const worksheet = XLSX.utils.json_to_sheet(data);
|
||||
// 创建工作表
|
||||
const worksheet = XLSX.utils.json_to_sheet(data)
|
||||
|
||||
// 将工作表添加到工作簿
|
||||
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
|
||||
// 将工作表添加到工作簿
|
||||
XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1")
|
||||
|
||||
// 将工作簿转换为二进制对象
|
||||
const excelBuffer = XLSX.write(workbook, {bookType: 'xlsx', type: 'array'});
|
||||
// 将工作簿转换为二进制对象
|
||||
const excelBuffer = XLSX.write(workbook, { bookType: "xlsx", type: "array" })
|
||||
|
||||
// 将二进制对象转换为Blob对象
|
||||
const blob = new Blob([excelBuffer], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
|
||||
// 将二进制对象转换为Blob对象
|
||||
const blob = new Blob([excelBuffer], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" })
|
||||
|
||||
// 创建下载链接并设置相关属性
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
const link = document.createElement('a');
|
||||
link.href = url;
|
||||
link.download = '错误记录.xlsx';
|
||||
// 创建下载链接并设置相关属性
|
||||
const url = window.URL.createObjectURL(blob)
|
||||
const link = document.createElement("a")
|
||||
link.href = url
|
||||
link.download = "错误记录.xlsx"
|
||||
|
||||
// 模拟点击下载链接
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
// 清理下载链接
|
||||
document.body.removeChild(link);
|
||||
window.URL.revokeObjectURL(url);
|
||||
// 模拟点击下载链接
|
||||
document.body.appendChild(link)
|
||||
link.click()
|
||||
// 清理下载链接
|
||||
document.body.removeChild(link)
|
||||
window.URL.revokeObjectURL(url)
|
||||
},
|
||||
fileHandleRemove(file, fileList) {
|
||||
return fileList
|
||||
},
|
||||
fileHandleChange(file, fileList, { type, size }) {
|
||||
const removeFile = () => {
|
||||
fileList.splice(fileList.findIndex((v) => v === file))
|
||||
}
|
||||
|
||||
},
|
||||
fileHandleRemove(file, fileList) {
|
||||
return fileList;
|
||||
},
|
||||
fileHandleChange(file, fileList, {type, size}) {
|
||||
const removeFile = () => {
|
||||
fileList.splice(fileList.findIndex(v => v === file))
|
||||
}
|
||||
if (!file.size) {
|
||||
this.$notify.warning("您选择的是空文件!")
|
||||
removeFile()
|
||||
}
|
||||
|
||||
if (!file.size) {
|
||||
this.$notify.warning('您选择的是空文件!')
|
||||
removeFile()
|
||||
}
|
||||
if (type && type.length && !type.includes(file.name.split(".").pop().toLowerCase())) {
|
||||
this.$notify.warning(`文件只能是 ${type.map((v) => v.toUpperCase()).join("/")} 格式!`)
|
||||
removeFile()
|
||||
}
|
||||
|
||||
if (type && type.length && !type.includes(file.name.split('.').pop().toLowerCase())) {
|
||||
this.$notify.warning(`文件只能是 ${type.map(v => v.toUpperCase()).join('/')} 格式!`)
|
||||
removeFile()
|
||||
}
|
||||
if (size && !file.size < size) {
|
||||
this.$notify.warning(`文件大小不能超过 ${size / 1024 / 1024}MB!`)
|
||||
removeFile()
|
||||
}
|
||||
|
||||
if (size && !file.size < size) {
|
||||
this.$notify.warning(`文件大小不能超过 ${size / 1024 / 1024}MB!`)
|
||||
removeFile()
|
||||
}
|
||||
|
||||
return fileList;
|
||||
},
|
||||
}
|
||||
return fileList
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.el-card__body {
|
||||
padding: 25px;
|
||||
padding: 25px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -3,7 +3,7 @@ layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
input[type="file"] {
|
||||
display: none;
|
||||
display: none
|
||||
}
|
||||
|
||||
.w-e-text-container {
|
||||
@@ -25,16 +25,28 @@ layout("/layouts/platform.html"){
|
||||
.el-picker-panel {
|
||||
z-index: 99999999 !important;
|
||||
}
|
||||
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
|
||||
<el-row class="header navbar bg-white shadow">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-select v-model="pageForm.hdid" filterable clearable placeholder="请选择活动" @change="pageData">
|
||||
<el-option v-for="item in lxyHd" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||||
<el-option
|
||||
v-for="item in lxyHd"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-date-picker v-model="pageForm.year" type="year" value-format="yyyy" placeholder="选择年度"></el-date-picker>
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="选择年度">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
|
||||
@@ -42,43 +54,53 @@ layout("/layouts/platform.html"){
|
||||
</el-row>
|
||||
|
||||
<el-row class="el-table-container">
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder" v-loading="tabLoading">
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
|
||||
v-loading="tabLoading">
|
||||
<el-table-column align="center" header-align="center" label="序号" width="100px">
|
||||
<template scope="scope">
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}}</span>
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="报名人" prop="username" header-align="center" align="center"></el-table-column>
|
||||
|
||||
<el-table-column label="活动名称" prop="name" header-align="center" width="300px" align="center">
|
||||
<el-table-column label="活动名称" prop="name" header-align="center" width="300px"
|
||||
align="center">
|
||||
<template scope="scope">
|
||||
<el-link type="primary" @click="lxy_app.openView(scope.row.hdid)">{{scope.row.name}}</el-link>
|
||||
<el-link type="primary" @click="lxy_app.openView(scope.row.hdid)">
|
||||
{{scope.row.name}}
|
||||
</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="活动场地" prop="hdcd" header-align="center" show-overflow-tooltip align="center"></el-table-column>
|
||||
<el-table-column label="活动场地" prop="hdcd" header-align="center" show-overflow-tooltip
|
||||
align="center"></el-table-column>
|
||||
|
||||
<el-table-column label="活动时间" prop="hdkssj" header-align="center" sortable align="center">
|
||||
<template scope="scope">{{scope.row.hdkssj}} 至 {{scope.row.hdjssj}}</template>
|
||||
<el-table-column label="活动时间" prop="hdkssj" header-align="center" sortable
|
||||
align="center">
|
||||
<template scope="scope">
|
||||
{{scope.row.hdkssj}} 至 {{scope.row.hdjssj}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="报名截止时间" prop="bmjzsj" header-align="center" sortable align="center"></el-table-column>
|
||||
<el-table-column label="报名截止时间" prop="bmjzsj" header-align="center" sortable
|
||||
align="center"></el-table-column>
|
||||
|
||||
<el-table-column label="报名状态" prop="bmzt" header-align="center" align="center">
|
||||
<template scope="scope">
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==6">待填写报名资料</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==1">待基层工会审核</span>
|
||||
<span style="color: #f56c6c" v-if="scope.row.bmzt==2">基层工会审核未通过</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==3">待校工会审核</span>
|
||||
<span style="color: #f56c6c" v-if="scope.row.bmzt==4">校工会审核未通过</span>
|
||||
<span style="color: #67c23a" v-if="scope.row.bmzt==5">审核已通过</span>
|
||||
<span style="color: #E6A23C" v-if="scope.row.bmzt==6">待填写报名资料</span>
|
||||
<span style="color: #E6A23C" v-if="scope.row.bmzt==1">待分工会审核</span>
|
||||
<span style="color: #F56C6C" v-if="scope.row.bmzt==2">分工会审核未通过</span>
|
||||
<span style="color: #E6A23C" v-if="scope.row.bmzt==3">待校工会审核</span>
|
||||
<span style="color: #F56C6C" v-if="scope.row.bmzt==4">校工会审核未通过</span>
|
||||
<span style="color: #67C23A" v-if="scope.row.bmzt==5">审核已通过</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="120px">
|
||||
<template scope="scope">
|
||||
<el-button size="mini" type="primary" @click="openSh(scope.row)" plain>审 核</el-button>
|
||||
<el-button size="mini" type="primary" @click="openSh(scope.row)" plain>审 核
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -86,44 +108,47 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-row class="el-pagination-container">
|
||||
<el-pagination
|
||||
@size-change="pageSizeChange"
|
||||
@current-change="pageNumberChange"
|
||||
:current-page="pageForm.pageNumber"
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:page-size="pageForm.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="pageForm.totalCount"
|
||||
></el-pagination>
|
||||
@size-change="pageSizeChange"
|
||||
@current-change="pageNumberChange"
|
||||
:current-page="pageForm.pageNumber"
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:page-size="pageForm.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="pageForm.totalCount">
|
||||
</el-pagination>
|
||||
</el-row>
|
||||
|
||||
<el-dialog title="基层工会审核" top="3%" :visible.sync="viewDialogSh" custom-class="ViewDialogClass" :close-on-click-modal="false" width="60%">
|
||||
<el-dialog title="分工会审核" top="3%" :visible.sync="viewDialogSh" custom-class="ViewDialogClass"
|
||||
:close-on-click-modal="false" width="60%">
|
||||
|
||||
<table class="tabInfo">
|
||||
<tr>
|
||||
<td class="title" colspan="4" style="font-size: 16px; color: rgb(100, 100, 100); font-weight: bolder; padding: 20px 50px">
|
||||
<td class="title" colspan="4"
|
||||
style="font-size: 16px;color: rgb(100,100,100);font-weight: bolder;padding: 20px 50px">
|
||||
个人信息
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">工号</td>
|
||||
<td class="content">{{viewData.loginname}}</td>
|
||||
<td class="content"> {{viewData.loginname}}</td>
|
||||
<td class="title">姓名</td>
|
||||
<td class="content">{{viewData.username}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">职务</td>
|
||||
<td class="content">{{viewData.zw}}</td>
|
||||
<td class="content"> {{viewData.zw}}</td>
|
||||
<td class="title">人事编制</td>
|
||||
<td class="content">{{viewData.rsbz}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">性别</td>
|
||||
<td class="content">{{viewData.sex}}</td>
|
||||
<td class="content"> {{viewData.sex}}</td>
|
||||
<td class="title">年龄</td>
|
||||
<td class="content">{{viewData.age}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">所在单位</td>
|
||||
<td class="content">{{viewData.unitname}}</td>
|
||||
<td class="content"> {{viewData.unitname}}</td>
|
||||
<td class="title">手机号</td>
|
||||
<td class="content">{{viewData.mobile}}</td>
|
||||
</tr>
|
||||
@@ -133,9 +158,11 @@ layout("/layouts/platform.html"){
|
||||
<tr>
|
||||
<td class="content" colspan="4" style="text-align: left">
|
||||
<el-table :data="viewData.chry" size="mini" style="width: 100%" show-header="false">
|
||||
<el-table-column prop="hdsj" label="获得时间" align="center" header-align="center" width="250px">
|
||||
<el-table-column prop="hdsj" label="获得时间" align="center" header-align="center"
|
||||
width="250px">
|
||||
<template slot-scope="{row}">
|
||||
<el-date-picker v-model="row.hdsj" type="date" readonly format="yyyy-MM-dd"></el-date-picker>
|
||||
<el-date-picker v-model="row.hdsj" type="date" readonly
|
||||
format="yyyy-MM-dd"></el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -150,35 +177,17 @@ layout("/layouts/platform.html"){
|
||||
<div class="file-down-span" @click="dd3s.download(row.ryfj,row.filename)">
|
||||
<i class="el-icon-download"></i>
|
||||
</div>
|
||||
<el-image
|
||||
fit="cover"
|
||||
v-if="dd3s.isPic(row.ryfj)"
|
||||
style="width: 100px; height: 100px; box-shadow: 0 0 5px rgb(200, 200, 200)"
|
||||
:src="'${AppFileDomain!}'+row.ryfj"
|
||||
@click="dd3s.showpic(row.ryfj)"
|
||||
></el-image>
|
||||
<el-image v-else style="width: 100px; height: 100px; box-shadow: 0 0 5px rgb(200, 200, 200)" src="***">
|
||||
<div
|
||||
slot="error"
|
||||
class="image-slot"
|
||||
style="width: 100%; height: 100%; display: flex; align-items: center; text-align: center"
|
||||
>
|
||||
<span
|
||||
style="
|
||||
font-size: 12px;
|
||||
color: rgb(180, 180, 180);
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
padding: 0 10px;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
"
|
||||
>
|
||||
{{row.ryfj}}
|
||||
</span>
|
||||
<el-image fit="cover" v-if="dd3s.isPic(row.ryfj)"
|
||||
style="width: 100px;height: 100px;box-shadow: 0 0 5px rgb(200,200,200)"
|
||||
:src="'${AppFileDomain!}'+row.ryfj" @click="dd3s.showpic(row.ryfj)">
|
||||
</el-image>
|
||||
<el-image v-else
|
||||
style="width: 100px;height: 100px;box-shadow: 0 0 5px rgb(200,200,200)"
|
||||
src="***">
|
||||
<div slot="error" class="image-slot"
|
||||
style="width: 100%;height: 100%; display:flex;align-items: center;text-align: center">
|
||||
<span style="font-size: 12px;color: rgb(180,180,180);width: 100%;text-align: center;overflow: hidden;padding: 0 10px;
|
||||
text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical">{{row.ryfj}}</span>
|
||||
</div>
|
||||
</el-image>
|
||||
</template>
|
||||
@@ -187,46 +196,33 @@ layout("/layouts/platform.html"){
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<template v-if="viewData.files&&viewData.files.length">
|
||||
<tr>
|
||||
<td class="title" colspan="4">身份证复印件</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="content" colspan="4" style="text-align: left">
|
||||
<div style="text-align: left">
|
||||
<div v-for="item in viewData.files" style="display: inline-block; width: 100px; margin-right: 10px">
|
||||
<div style="text-align: left;">
|
||||
<div v-for="item in viewData.files"
|
||||
style="display: inline-block;width: 100px;margin-right:10px">
|
||||
<div class="file-down-span" @click="dd3s.download(item.filepath,item.filename)">
|
||||
<i class="el-icon-download"></i>
|
||||
</div>
|
||||
<el-image
|
||||
fit="cover"
|
||||
v-if="dd3s.isPic(item.filepath)"
|
||||
style="width: 100px; height: 100px; box-shadow: 0 0 5px rgb(200, 200, 200)"
|
||||
:src="'${AppFileDomain!}'+item.filepath"
|
||||
@click="dd3s.showpic(item.filepath)"
|
||||
></el-image>
|
||||
<el-image v-else style="width: 100px; height: 100px; box-shadow: 0 0 5px rgb(200, 200, 200)" src="***">
|
||||
<div
|
||||
slot="error"
|
||||
class="image-slot"
|
||||
style="width: 100%; height: 100%; display: flex; align-items: center; text-align: center"
|
||||
>
|
||||
<span
|
||||
style="
|
||||
font-size: 12px;
|
||||
color: rgb(180, 180, 180);
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
padding: 0 10px;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
"
|
||||
>
|
||||
{{item.filename}}
|
||||
</span>
|
||||
<el-image fit="cover" v-if="dd3s.isPic(item.filepath)"
|
||||
style="width: 100px;height: 100px;box-shadow: 0 0 5px rgb(200,200,200)"
|
||||
:src="'${AppFileDomain!}'+item.filepath" @click="dd3s.showpic(item.filepath)">
|
||||
</el-image>
|
||||
<el-image v-else
|
||||
style="width: 100px;height: 100px;box-shadow: 0 0 5px rgb(200,200,200)"
|
||||
src="***">
|
||||
<div slot="error" class="image-slot"
|
||||
style="width: 100%;height: 100%; display:flex;align-items: center;text-align: center">
|
||||
<span style="font-size: 12px;color: rgb(180,180,180);width: 100%;text-align: center;overflow: hidden;padding: 0 10px;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical">{{item.filename}}</span>
|
||||
</div>
|
||||
</el-image>
|
||||
</div>
|
||||
@@ -237,14 +233,15 @@ layout("/layouts/platform.html"){
|
||||
</table>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="viewDialogSh = false" plain>关 闭</el-button>
|
||||
<el-button type="danger" @click="sh(2)" plain>不通过</el-button>
|
||||
<el-button type="danger" @click="sh(2)" plain>不通过</el-button>
|
||||
<el-button type="success" @click="sh(3)" plain>通 过</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
data() {
|
||||
return {
|
||||
lxyHd: [],
|
||||
@@ -264,12 +261,12 @@ layout("/layouts/platform.html"){
|
||||
pageOrderName: "",
|
||||
pageOrderBy: "",
|
||||
hdid: ""
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async getLxyBmInfo(id) {
|
||||
const { data } = await $.get(base + "/platform/zgfw/lxy/fghsh/getBmInfo", { id })
|
||||
const {data} = await $.get(base + "/platform/zgfw/lxy/fghsh/getBmInfo", {id})
|
||||
return data
|
||||
},
|
||||
async openSh(row) {
|
||||
@@ -283,36 +280,32 @@ layout("/layouts/platform.html"){
|
||||
sh(zt) {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: "数据提交中...",
|
||||
spinner: "el-icon-loading",
|
||||
background: "rgba(0, 0, 0, 0.7)"
|
||||
})
|
||||
text: '数据提交中...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
|
||||
$.post(base + "/platform/zgfw/lxy/fghsh/sh", {
|
||||
hdid: this.pageForm.hdid,
|
||||
uid: this.pageForm.uid,
|
||||
bmzt: zt,
|
||||
}, (data) => {
|
||||
loading.close()
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '提交成功',
|
||||
type: 'success'
|
||||
});
|
||||
this.viewDialogSh = false
|
||||
this.pageData()
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}, "json");
|
||||
|
||||
$.post(
|
||||
base + "/platform/zgfw/lxy/fghsh/sh",
|
||||
{
|
||||
hdid: this.pageForm.hdid,
|
||||
uid: this.pageForm.uid,
|
||||
bmzt: zt
|
||||
},
|
||||
(data) => {
|
||||
loading.close()
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: "提交成功",
|
||||
type: "success"
|
||||
})
|
||||
this.viewDialogSh = false
|
||||
this.pageData()
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: "error"
|
||||
})
|
||||
}
|
||||
},
|
||||
"json"
|
||||
)
|
||||
},
|
||||
|
||||
doSearch() {
|
||||
@@ -320,49 +313,41 @@ layout("/layouts/platform.html"){
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
},
|
||||
pageOrder(column) {
|
||||
//按字段排序
|
||||
this.pageForm.pageOrderName = column.prop
|
||||
this.pageForm.pageOrderBy = column.order
|
||||
this.pageData()
|
||||
pageOrder(column) {//按字段排序
|
||||
this.pageForm.pageOrderName = column.prop;
|
||||
this.pageForm.pageOrderBy = column.order;
|
||||
this.pageData();
|
||||
},
|
||||
pageNumberChange(val) {
|
||||
//页码更新操作
|
||||
this.pageForm.pageNumber = val
|
||||
this.pageData()
|
||||
pageNumberChange(val) {//页码更新操作
|
||||
this.pageForm.pageNumber = val;
|
||||
this.pageData();
|
||||
},
|
||||
pageSizeChange(val) {
|
||||
//分页大小更新操作
|
||||
this.pageForm.pageSize = val
|
||||
this.pageData()
|
||||
pageSizeChange(val) {//分页大小更新操作
|
||||
this.pageForm.pageSize = val;
|
||||
this.pageData();
|
||||
},
|
||||
|
||||
pageData() {
|
||||
sublime.showLoadingbar()
|
||||
sublime.showLoadingbar();
|
||||
this.tabLoading = true
|
||||
$.post(
|
||||
base + "/platform/zgfw/lxy/fghsh/pageData",
|
||||
this.pageForm,
|
||||
(data) => {
|
||||
sublime.closeLoadingbar()
|
||||
this.tabLoading = false
|
||||
if (data.code == 0) {
|
||||
this.tableData = data.data.list
|
||||
this.pageForm.totalCount = data.data.totalCount
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: "error"
|
||||
})
|
||||
}
|
||||
},
|
||||
"json"
|
||||
)
|
||||
}
|
||||
$.post(base + "/platform/zgfw/lxy/fghsh/pageData", this.pageForm, (data) => {
|
||||
sublime.closeLoadingbar();
|
||||
this.tabLoading = false
|
||||
if (data.code == 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.lxyHd = await getNowLxyHd()
|
||||
this.pageData()
|
||||
this.pageData();
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -56,7 +56,7 @@ layout("/layouts/platform.html"){
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-select @change="doSearch" clearable filterable placeholder="请选择基层工会" v-model="pageForm.unionId">
|
||||
<el-select @change="doSearch" clearable filterable placeholder="请选择分工会" v-model="pageForm.unionId">
|
||||
<el-option :key="item.id" :label="item.unionname" :value="item.id" v-for="item in unionList"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
@@ -92,7 +92,7 @@ layout("/layouts/platform.html"){
|
||||
<template scope="scope">{{scope.row.bmkssj}} 至 {{scope.row.bmjzsj}}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="基层工会" prop="unionname" show-overflow-tooltip>
|
||||
<el-table-column align="center" header-align="center" label="分工会" prop="unionname" show-overflow-tooltip>
|
||||
<template scope="scope">
|
||||
<span>({{scope.row.unioncode}}){{scope.row.unionname}}</span>
|
||||
</template>
|
||||
@@ -121,6 +121,7 @@ layout("/layouts/platform.html"){
|
||||
<el-button @click="openView(scope.row)" size="mini" type="primary">查看报名</el-button>
|
||||
<!--# } #-->
|
||||
<!--# if(@shiro.hasRole('H04')){ #-->
|
||||
<el-button @click="openImport(scope.row)" size="mini" type="primary">导入</el-button>
|
||||
<el-button @click="openBm2(scope.row)" size="mini" type="primary">报名</el-button>
|
||||
<!--# } #-->
|
||||
</template>
|
||||
@@ -192,75 +193,98 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-table :data="hasApplyUserTableData" border height="480" size="mini">
|
||||
<el-table-column align="center" header-align="center" label="序号" type="index" width="70"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="姓名" prop="username" width="100"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工号" prop="loginname" width="120"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="姓名" prop="username" width="100"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="单位" prop="unitname" width="120"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="年龄" prop="age" width="70"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="手机号码" width="150">
|
||||
<el-table-column align="center" header-align="center" label="民族" prop="nation" width="150">
|
||||
<template scope="{row}">
|
||||
<div>
|
||||
<el-select
|
||||
:disabled="row.bmzt&&row.bmzt!=4"
|
||||
placeholder="请选择民族"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 100%"
|
||||
v-model="row.nation"
|
||||
>
|
||||
<el-option v-for="item in nationList" :key="item" :label="item" :value="item"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="疗休养员身份" width="250">
|
||||
<template scope="{row}">
|
||||
<div class="tableInput">
|
||||
<el-input
|
||||
:disabled="row.bmzt&&row.bmzt!=4"
|
||||
:rows="2"
|
||||
placeholder="请输入手机号码"
|
||||
placeholder="请输入疗休养员身份"
|
||||
style="width: 100%"
|
||||
v-model="row.mobile"
|
||||
type="text"
|
||||
clearable
|
||||
maxlength="500"
|
||||
v-model="row.zyhj"
|
||||
></el-input>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="身份证号" width="200">
|
||||
<el-table-column align="center" header-align="center" label="身份证号" width="250">
|
||||
<template scope="{row}">
|
||||
<div>
|
||||
<el-input
|
||||
:disabled="row.bmzt&&row.bmzt!=4"
|
||||
:rows="2"
|
||||
placeholder="请输入身份证号"
|
||||
type="text"
|
||||
show-word-limit
|
||||
clearable
|
||||
style="width: 100%"
|
||||
v-model="row.idcard"
|
||||
></el-input>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="获奖名称">
|
||||
<el-table-column align="center" header-align="center" label="联系电话" width="180">
|
||||
<template scope="{row}">
|
||||
<div class="tableInput">
|
||||
<div>
|
||||
<el-input
|
||||
:disabled="row.bmzt&&row.bmzt!=4"
|
||||
:rows="2"
|
||||
placeholder="请输入获奖名称"
|
||||
type="text"
|
||||
maxlength="11"
|
||||
clearable
|
||||
placeholder="请输入联系电话"
|
||||
style="width: 100%"
|
||||
type="textarea"
|
||||
v-model="row.zyhj"
|
||||
v-model="row.mobile"
|
||||
></el-input>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="备注">
|
||||
|
||||
<el-table-column align="center" header-align="center" label="是否为ABCDE类高层次人才">
|
||||
<template scope="{row}">
|
||||
<div class="tableInput">
|
||||
<el-input
|
||||
<div>
|
||||
<el-select
|
||||
:disabled="row.bmzt&&row.bmzt!=4"
|
||||
:rows="2"
|
||||
placeholder="请输入备注"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="请选择人才类型"
|
||||
style="width: 100%"
|
||||
type="textarea"
|
||||
v-model="row.bz"
|
||||
></el-input>
|
||||
v-model="row.talent"
|
||||
>
|
||||
<el-option v-for="item in talentList" :key="item" :label="item" :value="item"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="是否审核通过" width="100">
|
||||
<!--<el-table-column align="center" header-align="center" label="是否审核通过" width="100">
|
||||
<template scope="{row}">
|
||||
<span class="text-primary" v-if="row.bmzt==1">待基层工会审核</span>
|
||||
<span class="text-danger" v-else-if="row.bmzt==2">基层工会审核不通过</span>
|
||||
<span class="text-primary" v-if="row.bmzt==1">待分工会审核</span>
|
||||
<span class="text-danger" v-else-if="row.bmzt==2">分工会审核不通过</span>
|
||||
<span class="text-primary" v-else-if="row.bmzt==3">待校工会审核</span>
|
||||
<span class="text-danger" v-else-if="row.bmzt==4">校工会审核不通过</span>
|
||||
<span class="text-success" v-else-if="row.bmzt==5">报名成功</span>
|
||||
<span class="text-muted" v-else>预选</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column header-align="center" label="操作" width="200">
|
||||
</el-table-column>-->
|
||||
<el-table-column header-align="center" label="操作" width="80">
|
||||
<template scope="scope">
|
||||
<el-button
|
||||
@click="hasApplyUserTableData.splice(scope.$index,1)"
|
||||
@@ -271,10 +295,10 @@ layout("/layouts/platform.html"){
|
||||
移除
|
||||
</el-button>
|
||||
|
||||
<el-button @click="viewInfo(scope.row)" size="mini" type="primary" v-if="scope.row.bmzt&&scope.row.files">查看</el-button>
|
||||
<!--<el-button @click="viewInfo(scope.row)" size="mini" type="primary" v-if="scope.row.bmzt&&scope.row.files">查看</el-button>
|
||||
<el-button @click="uploadMaterial(scope.row)" size="mini" type="primary" v-if="scope.row.bmzt===4||!scope.row.bmzt">
|
||||
上传材料
|
||||
</el-button>
|
||||
</el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -283,30 +307,37 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<template #view>
|
||||
<el-table :data="bmTableData" ref="multipleTableRy" row-key="id" style="width: 100%" tooltip-effect="dark">
|
||||
<el-table-column label="序号" type="index" width="50" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工号" prop="loginname"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="姓名" prop="username"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="性别" prop="sex" sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="年龄" prop="age" sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="联系电话" prop="mobile"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="民族" prop="nation" sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="疗休养员身份" prop="zyhj" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="身份证号" prop="idcard"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="获奖名称" prop="zyhj" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="备注" prop="bz" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="联系电话" prop="mobile"></el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
label="是否为ABCDE类高层次人才"
|
||||
prop="talent"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="报名状态" prop="bmzt">
|
||||
<template scope="scope">
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==1">待基层工会审核</span>
|
||||
<span style="color: #f56c6c" v-if="scope.row.bmzt==2">基层工会审核未通过</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==1">待分工会审核</span>
|
||||
<span style="color: #f56c6c" v-if="scope.row.bmzt==2">分工会审核未通过</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==3">待校工会审核</span>
|
||||
<span style="color: #f56c6c" v-if="scope.row.bmzt==4">校工会审核未通过</span>
|
||||
<span style="color: #67c23a" v-if="scope.row.bmzt==5">报名成功</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==6">待填写个人资料</span>
|
||||
<!-- <span style="color: #e6a23c" v-if="scope.row.bmzt==6">待填写个人资料</span>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" fixed="right" header-align="center" label="操作" width="120px">
|
||||
<!--<el-table-column align="center" fixed="right" header-align="center" label="操作" width="120px">
|
||||
<template scope="scope">
|
||||
<el-button @click="openViewXx(scope.row)" size="mini" type="primary">详细信息</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>-->
|
||||
</el-table>
|
||||
</template>
|
||||
</guava>
|
||||
@@ -449,6 +480,16 @@ display: -webkit-box;
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog :close-on-click-modal="false" title="人员导入" :visible.sync="importDialog" top="3%" width="60%">
|
||||
<file-import
|
||||
ref="viewImport"
|
||||
temp_url="/platform/zgfw/lxy/ghbm/downloadImportTemp"
|
||||
post_url="/platform/zgfw/lxy/ghbm/doImport"
|
||||
:project_id="pageForm.hdid"
|
||||
@flush="successImport"
|
||||
></file-import>
|
||||
</el-dialog>
|
||||
</div>
|
||||
<!--#layout("/platform/zgfw/lxy/dialogView.html"){}#-->
|
||||
<script>
|
||||
@@ -511,10 +552,20 @@ display: -webkit-box;
|
||||
importLoading: false,
|
||||
uploadForm: {},
|
||||
fileList: [],
|
||||
viewDataFgh: []
|
||||
viewDataFgh: [],
|
||||
|
||||
nationList: [],
|
||||
talentList: ["A", "B", "C", "D", "E", "否"],
|
||||
|
||||
// 导入相关
|
||||
importDialog: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"file-import": httpVueLoader("/components/plugins/FileImport.vue")
|
||||
},
|
||||
methods: {
|
||||
openImport() {},
|
||||
openBm2(row) {
|
||||
this.checkTableRowData = row
|
||||
this.tabKey = new Date().getTime()
|
||||
@@ -601,10 +652,6 @@ display: -webkit-box;
|
||||
}
|
||||
if (flag) {
|
||||
for (let i = 0; i < array.length; i++) {
|
||||
if (array[i].files === undefined) {
|
||||
this.$message.warning("请选择上传材料!")
|
||||
return
|
||||
}
|
||||
if (!array[i].idcard) {
|
||||
this.$message.warning("请填写身份证号!")
|
||||
return
|
||||
@@ -742,6 +789,7 @@ display: -webkit-box;
|
||||
this.pageForm.hdid = this.lxyHd[0].id
|
||||
this.pageData()
|
||||
this.unionList = await getUnions()
|
||||
this.nationList = nation
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -3,7 +3,7 @@ layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
input[type="file"] {
|
||||
display: none;
|
||||
display: none
|
||||
}
|
||||
|
||||
.w-e-text-container {
|
||||
@@ -26,6 +26,7 @@ layout("/layouts/platform.html"){
|
||||
z-index: 99999999 !important;
|
||||
}
|
||||
|
||||
|
||||
.el-transfer {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -41,17 +42,28 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
|
||||
<el-row class="transition-row">
|
||||
<transition name="el-zoom-in-center">
|
||||
<div v-show="v=='index'" class="transition-item">
|
||||
<el-row class="header navbar bg-white shadow">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-select v-model="pageForm.hdid" filterable clearable placeholder="请选择活动" @change="pageData">
|
||||
<el-option v-for="item in lxyHd" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||||
<el-option
|
||||
v-for="item in lxyHd"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-date-picker v-model="pageForm.year" type="year" value-format="yyyy" placeholder="选择年度"></el-date-picker>
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="选择年度">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
|
||||
@@ -59,44 +71,60 @@ layout("/layouts/platform.html"){
|
||||
</el-row>
|
||||
|
||||
<el-row class="el-table-container">
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder" v-loading="tabLoading">
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
|
||||
v-loading="tabLoading">
|
||||
<el-table-column align="center" header-align="center" label="序号" width="100px">
|
||||
<template scope="scope">
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}}</span>
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="报名人" prop="username" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="报名人" prop="username" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
|
||||
<el-table-column label="活动名称" prop="name" header-align="center" width="300px" align="center">
|
||||
<el-table-column label="活动名称" prop="name" header-align="center" width="300px"
|
||||
align="center">
|
||||
<template scope="scope">
|
||||
<el-link type="primary" @click="lxy_app.openView(scope.row.hdid)">{{scope.row.name}}</el-link>
|
||||
<el-link type="primary" @click="lxy_app.openView(scope.row.hdid)">
|
||||
{{scope.row.name}}
|
||||
</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="活动场地" prop="hdcd" header-align="center" show-overflow-tooltip align="center"></el-table-column>
|
||||
<el-table-column label="活动场地" prop="hdcd" header-align="center" show-overflow-tooltip
|
||||
align="center"></el-table-column>
|
||||
|
||||
<el-table-column label="活动时间" prop="hdkssj" header-align="center" sortable align="center">
|
||||
<template scope="scope">{{scope.row.hdkssj}} 至 {{scope.row.hdjssj}}</template>
|
||||
<el-table-column label="活动时间" prop="hdkssj" header-align="center" sortable
|
||||
align="center">
|
||||
<template scope="scope">
|
||||
{{scope.row.hdkssj}} 至 {{scope.row.hdjssj}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="报名截止时间" prop="bmjzsj" header-align="center" sortable align="center"></el-table-column>
|
||||
<el-table-column label="报名截止时间" prop="bmjzsj" header-align="center" sortable
|
||||
align="center"></el-table-column>
|
||||
|
||||
<el-table-column label="报名状态" prop="bmzt" header-align="center" align="center">
|
||||
<template scope="scope">
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==6">待填写报名资料</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==1">待基层工会审核</span>
|
||||
<span style="color: #f56c6c" v-if="scope.row.bmzt==2">基层工会审核未通过</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==3">待校工会审核</span>
|
||||
<span style="color: #f56c6c" v-if="scope.row.bmzt==4">校工会审核未通过</span>
|
||||
<span style="color: #67c23a" v-if="scope.row.bmzt==5">审核已通过</span>
|
||||
<span style="color: #E6A23C" v-if="scope.row.bmzt==6">待填写报名资料</span>
|
||||
<span style="color: #E6A23C" v-if="scope.row.bmzt==1">待分工会审核</span>
|
||||
<span style="color: #F56C6C" v-if="scope.row.bmzt==2">分工会审核未通过</span>
|
||||
<span style="color: #E6A23C" v-if="scope.row.bmzt==3">待校工会审核</span>
|
||||
<span style="color: #F56C6C" v-if="scope.row.bmzt==4">校工会审核未通过</span>
|
||||
<span style="color: #67C23A" v-if="scope.row.bmzt==5">审核已通过</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="240px">
|
||||
<template scope="scope">
|
||||
<el-button :disabled="scope.row.bmzt==6" size="mini" @click="openEdit(scope.row)" plain>修改</el-button>
|
||||
<el-button :disabled="scope.row.bmzt!=6" size="mini" type="primary" @click="openBm(scope.row)" plain>报名</el-button>
|
||||
<el-button :disabled="scope.row.bmzt==6" size="mini"
|
||||
@click="openEdit(scope.row)" plain>
|
||||
修改
|
||||
</el-button>
|
||||
<el-button :disabled="scope.row.bmzt!=6" size="mini" type="primary"
|
||||
@click="openBm(scope.row)" plain>
|
||||
报名
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -104,14 +132,14 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-row class="el-pagination-container">
|
||||
<el-pagination
|
||||
@size-change="pageSizeChange"
|
||||
@current-change="pageNumberChange"
|
||||
:current-page="pageForm.pageNumber"
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:page-size="pageForm.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="pageForm.totalCount"
|
||||
></el-pagination>
|
||||
@size-change="pageSizeChange"
|
||||
@current-change="pageNumberChange"
|
||||
:current-page="pageForm.pageNumber"
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:page-size="pageForm.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="pageForm.totalCount">
|
||||
</el-pagination>
|
||||
</el-row>
|
||||
</div>
|
||||
</transition>
|
||||
@@ -120,12 +148,16 @@ layout("/layouts/platform.html"){
|
||||
<div v-show="v=='bm'||v=='edit'" class="transition-item">
|
||||
<el-row class="header navbar bg-white shadow">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button icon="el-icon-back" type="text" @click="v='index'" style="font-size: 18px">返回</el-button>
|
||||
<el-button icon="el-icon-back" type="text" @click="v='index'" style="font-size: 18px">返回
|
||||
</el-button>
|
||||
</div>
|
||||
</el-row>
|
||||
<el-card class="box-card" style="margin-top: 50px; padding: 0 200px">
|
||||
<el-divider content-position="left"><span style="color: rgb(121, 187, 255)">请填写以下个人信息</span></el-divider>
|
||||
<el-form :model="formData" ref="bmForm" :rules="formRules" label-width="120px" style="padding: 0 30px">
|
||||
<el-card class="box-card" style="margin-top: 50px;padding: 0 200px">
|
||||
<el-divider content-position="left"><span style="color: rgb(121, 187, 255)">请填写以下个人信息</span>
|
||||
</el-divider>
|
||||
<el-form :model="formData" ref="bmForm" :rules="formRules" label-width="120px"
|
||||
style="padding: 0 30px">
|
||||
|
||||
<el-form-item label="工号" prop="loginname">
|
||||
<el-input readonly v-model="formData.loginname"></el-input>
|
||||
</el-form-item>
|
||||
@@ -184,23 +216,17 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-form-item label="所获荣誉" prop="chry">
|
||||
<el-form-item label-width="0" label="">
|
||||
<el-button
|
||||
style="float: right; margin-bottom: 10px"
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="formData.chry.push({hdsj:'',shry:'',ryfj:''});ryfj.push([])"
|
||||
>
|
||||
<el-button style="float: right;margin-bottom: 10px" icon="el-icon-plus" size="mini"
|
||||
@click="formData.chry.push({hdsj:'',shry:'',ryfj:''});ryfj.push([])">
|
||||
添加
|
||||
</el-button>
|
||||
<el-table :data="formData.chry" border size="mini" style="width: 100%">
|
||||
<el-table-column prop="hdsj" label="获得时间" align="center" header-align="center" width="250px">
|
||||
<el-table :data="formData.chry" border
|
||||
size="mini" style="width: 100%">
|
||||
<el-table-column prop="hdsj" label="获得时间" align="center" header-align="center"
|
||||
width="250px">
|
||||
<template slot-scope="{row}">
|
||||
<el-date-picker
|
||||
v-model="row.hdsj"
|
||||
type="date"
|
||||
placeholder="选择日期"
|
||||
format="yyyy-MM-dd"
|
||||
></el-date-picker>
|
||||
<el-date-picker v-model="row.hdsj" type="date"
|
||||
placeholder="选择日期" format="yyyy-MM-dd"></el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -210,15 +236,14 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="ryfj" label="荣誉附件" align="center" header-align="center" width="200px">
|
||||
<el-table-column prop="ryfj" label="荣誉附件" align="center" header-align="center"
|
||||
width="200px">
|
||||
<template slot-scope="{$index,row}">
|
||||
<tab-upload
|
||||
:resfile.sync="row.ryfj"
|
||||
:filex="row.ryfj?'${AppFileDomain!}'+row.ryfj:''"
|
||||
:allowfiles="['png','jpg','jpeg','svg','doc','docx','xls']"
|
||||
maxnum="1"
|
||||
></tab-upload>
|
||||
<!-- <table-upload :files.sync="row.ryfj"></table-upload>-->
|
||||
<tab-upload :resfile.sync="row.ryfj"
|
||||
:filex="row.ryfj?'${AppFileDomain!}'+row.ryfj:''"
|
||||
:allowfiles="['png','jpg','jpeg','svg','doc','docx','xls']"
|
||||
maxnum="1"></tab-upload>
|
||||
<!-- <table-upload :files.sync="row.ryfj"></table-upload>-->
|
||||
<!-- <el-upload-->
|
||||
<!-- class="upload-demo"-->
|
||||
<!-- ref="upload"-->
|
||||
@@ -237,15 +262,13 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" fixed="right" align="center" header-align="center" width="80px" fixed="right">
|
||||
<el-table-column label="操作" fixed="right" align="center" header-align="center"
|
||||
width="80px"
|
||||
fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="danger"
|
||||
icon="el-icon-delete"
|
||||
circle
|
||||
:disabled="formData.chry.length==0"
|
||||
@click="delNotesItem(scope.$index)"
|
||||
></el-button>
|
||||
<el-button type="danger" icon="el-icon-delete" circle
|
||||
:disabled="formData.chry.length==0"
|
||||
@click="delNotesItem(scope.$index)"></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -254,22 +277,21 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-form-item prop="accessory" label="身份证复印件">
|
||||
<el-upload
|
||||
name="file"
|
||||
ref="upload"
|
||||
action="**"
|
||||
:on-remove="handleRemove"
|
||||
:on-change="handleChange"
|
||||
:auto-upload="false"
|
||||
limit="1"
|
||||
:file-list="fileList"
|
||||
list-type="picture"
|
||||
>
|
||||
name="file"
|
||||
ref="upload"
|
||||
action="**"
|
||||
:on-remove="handleRemove"
|
||||
:on-change="handleChange"
|
||||
:auto-upload="false"
|
||||
limit="1"
|
||||
:file-list="fileList"
|
||||
list-type="picture">
|
||||
<el-button size="small" type="primary">选择文件</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div style="float: right; margin: 20px 0">
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="v='index'">取 消</el-button>
|
||||
<el-button type="primary" @click="doBm">确 定</el-button>
|
||||
</div>
|
||||
@@ -417,11 +439,12 @@ layout("/layouts/platform.html"){
|
||||
<!-- </el-card>-->
|
||||
<!-- </div>-->
|
||||
<!-- </transition>-->
|
||||
|
||||
</el-row>
|
||||
</div>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
data() {
|
||||
return {
|
||||
lxyHd: [],
|
||||
@@ -463,31 +486,31 @@ layout("/layouts/platform.html"){
|
||||
hdid: "",
|
||||
uid: "",
|
||||
formRules: {
|
||||
loginname: [{ required: false, message: "必填", trigger: ["blur", "change"] }],
|
||||
username: [{ required: true, message: "必填", trigger: ["blur", "change"] }],
|
||||
age: [{ required: true, message: "必填", trigger: ["blur", "change"] }],
|
||||
sex: [{ required: true, message: "必填", trigger: ["blur", "change"] }],
|
||||
mobile: [{ required: true, message: "必填", trigger: ["blur", "change"] }]
|
||||
loginname: [{required: false, message: '必填', trigger: ['blur', 'change']}],
|
||||
username: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
age: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
sex: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
mobile: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"tab-upload": httpVueLoader("/components/plugins/TabUpload.vue"),
|
||||
"table-upload": httpVueLoader("/components/plugins/TableUpload.vue")
|
||||
'tab-upload': httpVueLoader('/components/plugins/TabUpload.vue'),
|
||||
'table-upload': httpVueLoader('/components/plugins/TableUpload.vue')
|
||||
},
|
||||
methods: {
|
||||
async getLxyGrInfo(id) {
|
||||
const { data } = await $.get(base + "/platform/zgfw/lxy/grbm/findOne", { id })
|
||||
const {data} = await $.get(base + "/platform/zgfw/lxy/grbm/findOne", {id})
|
||||
return data
|
||||
},
|
||||
delNotesItem(index) {
|
||||
if (this.formData.chry[index].filepath) {
|
||||
$.post("/platform/Common/deleteFile", { filepath: this.formData.chry[index].filepath })
|
||||
$.post('/platform/Common/deleteFile', {filepath: this.formData.chry[index].filepath})
|
||||
}
|
||||
|
||||
// this.ryfj[index] = []
|
||||
// this.ryfj.splice(index, 1)
|
||||
this.formData.chry[index].ryfj = ""
|
||||
this.formData.chry[index].ryfj = ''
|
||||
this.formData.chry.splice(index, 1)
|
||||
},
|
||||
async openEdit(row) {
|
||||
@@ -495,24 +518,22 @@ layout("/layouts/platform.html"){
|
||||
this.fileList = []
|
||||
this.ryfj = []
|
||||
let data = await this.getLxyGrInfo(row.gid)
|
||||
data.chry.forEach((v) => {
|
||||
data.chry.forEach(v => {
|
||||
if (v.filepath) {
|
||||
this.ryfj.push([
|
||||
{
|
||||
status: "success",
|
||||
name: v.filename,
|
||||
url: "${AppFileDomain!}" + v.filepath
|
||||
}
|
||||
])
|
||||
this.ryfj.push([{
|
||||
status: 'success',
|
||||
name: v.filename,
|
||||
url: '${AppFileDomain!}' + v.filepath,
|
||||
}])
|
||||
} else {
|
||||
this.ryfj.push([])
|
||||
}
|
||||
})
|
||||
data.files.forEach((v) => {
|
||||
data.files.forEach(v => {
|
||||
this.fileList.push({
|
||||
id: v.id,
|
||||
name: v.filename,
|
||||
url: "${AppFileDomain!}" + v.filepath,
|
||||
url: '${AppFileDomain!}' + v.filepath,
|
||||
status: "success"
|
||||
})
|
||||
})
|
||||
@@ -611,15 +632,15 @@ layout("/layouts/platform.html"){
|
||||
if (valid) {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: "数据提交中...",
|
||||
spinner: "el-icon-loading",
|
||||
background: "rgba(0,0,0,0.7)"
|
||||
})
|
||||
text: '数据提交中...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0,0,0,0.7)'
|
||||
});
|
||||
|
||||
let formData = new FormData()
|
||||
|
||||
this.fileList.forEach(function (val) {
|
||||
formData.append("fileList", val.raw, val.raw.name)
|
||||
formData.append("fileList", val.raw, val.raw.name);
|
||||
})
|
||||
|
||||
formData.append("delFiles", this.delFiles)
|
||||
@@ -627,7 +648,7 @@ layout("/layouts/platform.html"){
|
||||
this.formData.chry = JSON.stringify(this.formData.chry)
|
||||
|
||||
for (let key in this.formData) {
|
||||
formData.append(key, this.formData[key] ? this.formData[key] : "")
|
||||
formData.append(key, this.formData[key] ? this.formData[key] : '');
|
||||
}
|
||||
|
||||
console.log(this.v)
|
||||
@@ -650,84 +671,84 @@ layout("/layouts/platform.html"){
|
||||
if (data.code === 0) {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: "success"
|
||||
})
|
||||
type: 'success'
|
||||
});
|
||||
|
||||
this.pageData()
|
||||
this.pageData();
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: "error"
|
||||
})
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
},
|
||||
error: (data) => {
|
||||
error: data => {
|
||||
this.v = "index"
|
||||
loading.close()
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: "error"
|
||||
})
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
handleRemove(file, fileList) {
|
||||
this.fileList = fileList
|
||||
this.fileList = fileList;
|
||||
if (file.status === "success") {
|
||||
this.delFiles.push(file.id)
|
||||
this.delFiles.push(file.id);
|
||||
}
|
||||
},
|
||||
handleChange(file, fileList) {
|
||||
const delFile = () => {
|
||||
for (let i = 0; i < fileList.length; i++) {
|
||||
if (file === fileList[i]) {
|
||||
fileList.splice(i, 1)
|
||||
fileList.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.size === 0) {
|
||||
this.$message.warning("您选择的是空文件!")
|
||||
this.$message.warning("您选择的是空文件!");
|
||||
delFile()
|
||||
}
|
||||
if (!uploadFileType.includes(file.name.split(".")[1])) {
|
||||
this.$message.warning("文件格式不支持!")
|
||||
if (!uploadFileType.includes(file.name.split('.')[1])) {
|
||||
this.$message.warning("文件格式不支持!");
|
||||
delFile()
|
||||
}
|
||||
this.fileList = fileList
|
||||
this.fileList = fileList;
|
||||
},
|
||||
|
||||
ryfjHandleRemove(index, file, fileList) {
|
||||
if (this.formData.chry[index].filepath) {
|
||||
$.post("/platform/Common/deleteFile", { filepath: this.formData.chry[index].filepath })
|
||||
$.post('/platform/Common/deleteFile', {filepath: this.formData.chry[index].filepath})
|
||||
}
|
||||
this.$set(this.formData.chry[index], "filename", "")
|
||||
this.$set(this.formData.chry[index], "filepath", "")
|
||||
this.$set(this.formData.chry[index], 'filename', '')
|
||||
this.$set(this.formData.chry[index], 'filepath', '')
|
||||
},
|
||||
ryfjHandleChange(index, file, fileList) {
|
||||
const delFile = () => {
|
||||
for (let i = 0; i < fileList.length; i++) {
|
||||
if (file === fileList[i]) {
|
||||
fileList.splice(i, 1)
|
||||
fileList.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.size === 0) {
|
||||
this.$message.warning("您选择的是空文件!")
|
||||
this.$message.warning("您选择的是空文件!");
|
||||
delFile()
|
||||
}
|
||||
if (!uploadFileType.includes(file.name.split(".")[1])) {
|
||||
this.$message.warning("文件格式不支持!")
|
||||
if (!uploadFileType.includes(file.name.split('.')[1])) {
|
||||
this.$message.warning("文件格式不支持!");
|
||||
delFile()
|
||||
}
|
||||
|
||||
let formData = new FormData()
|
||||
formData.append("file", file.raw, file.raw.name)
|
||||
formData.append("file", file.raw, file.raw.name);
|
||||
|
||||
this.$set(this.formData.chry[index], "filename", file.name)
|
||||
this.$set(this.formData.chry[index], "filepath", "")
|
||||
this.$set(this.formData.chry[index], 'filename', file.name)
|
||||
this.$set(this.formData.chry[index], 'filepath', '')
|
||||
|
||||
$.ajax({
|
||||
url: "/platform/Common/uploadFile",
|
||||
@@ -736,71 +757,64 @@ layout("/layouts/platform.html"){
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success: (res) => {
|
||||
const { code, data } = res
|
||||
const {code, data} = res
|
||||
if (code == 0) {
|
||||
this.$set(this.formData.chry[index], "filename", data.filename)
|
||||
this.$set(this.formData.chry[index], "filepath", data.filepath)
|
||||
this.$set(this.formData.chry[index], 'filename', data.filename)
|
||||
this.$set(this.formData.chry[index], 'filepath', data.filepath)
|
||||
}
|
||||
},
|
||||
error: (data) => {
|
||||
this.$set(this.formData.chry[index], "filename", "")
|
||||
this.$set(this.formData.chry[index], "filepath", "")
|
||||
error: data => {
|
||||
this.$set(this.formData.chry[index], 'filename', '')
|
||||
this.$set(this.formData.chry[index], 'filepath', '')
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
},
|
||||
pageOrder(column) {
|
||||
//按字段排序
|
||||
this.pageForm.pageOrderName = column.prop
|
||||
this.pageForm.pageOrderBy = column.order
|
||||
this.pageData()
|
||||
pageOrder(column) {//按字段排序
|
||||
this.pageForm.pageOrderName = column.prop;
|
||||
this.pageForm.pageOrderBy = column.order;
|
||||
this.pageData();
|
||||
},
|
||||
pageNumberChange(val) {
|
||||
//页码更新操作
|
||||
this.pageForm.pageNumber = val
|
||||
this.pageData()
|
||||
pageNumberChange(val) {//页码更新操作
|
||||
this.pageForm.pageNumber = val;
|
||||
this.pageData();
|
||||
},
|
||||
pageSizeChange(val) {
|
||||
//分页大小更新操作
|
||||
this.pageForm.pageSize = val
|
||||
this.pageData()
|
||||
pageSizeChange(val) {//分页大小更新操作
|
||||
this.pageForm.pageSize = val;
|
||||
this.pageData();
|
||||
},
|
||||
pageData() {
|
||||
//加载分页数据
|
||||
sublime.showLoadingbar() //显示loading
|
||||
pageData() {//加载分页数据
|
||||
sublime.showLoadingbar();//显示loading
|
||||
this.tabLoading = true
|
||||
$.post(
|
||||
base + "/platform/zgfw/lxy/grbm/pageData",
|
||||
this.pageForm,
|
||||
(data) => {
|
||||
sublime.closeLoadingbar() //关闭loading
|
||||
this.tabLoading = false
|
||||
if (data.code == 0) {
|
||||
this.tableData = data.data.list
|
||||
this.pageForm.totalCount = data.data.totalCount
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: "error"
|
||||
})
|
||||
}
|
||||
},
|
||||
"json"
|
||||
)
|
||||
}
|
||||
$.post(base + "/platform/zgfw/lxy/grbm/pageData", this.pageForm, (data) => {
|
||||
sublime.closeLoadingbar();//关闭loading
|
||||
this.tabLoading = false
|
||||
if (data.code == 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.unions = await getUnions()
|
||||
this.lxyHd = await getNowLxyHd()
|
||||
this.pageData()
|
||||
this.pageData();
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#layout("/platform/zgfw/lxy/dialogView.html"){}#-->
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
@@ -50,11 +50,18 @@ layout("/layouts/platform.html"){
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in lxyHd"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-select class="d-select" clearable filterable placeholder="请选择场地" v-model="pageForm.hdcd" width="300px">
|
||||
<el-option :key="item.id" :label="item.hdcd" :value="item.id" v-for="item in lxyHdCd"></el-option>
|
||||
<!--<div class="btn-group tool-button mt5">
|
||||
<el-select class="d-select" clearable filterable placeholder="请选择场地"
|
||||
v-model="pageForm.hdcd"
|
||||
width="300px">
|
||||
<el-option
|
||||
:key="item.id"
|
||||
:label="item.hdcd"
|
||||
:value="item.id"
|
||||
v-for="item in lxyHdCd">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>-->
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary"></el-button>
|
||||
</div>
|
||||
@@ -231,7 +238,7 @@ layout("/layouts/platform.html"){
|
||||
<el-table :data="unions_" height="70vh" size="medium">
|
||||
<el-table-column align="center" header-align="center" label="序号" type="index"></el-table-column>
|
||||
|
||||
<el-table-column label="基层工会" prop="unionname" sortable>
|
||||
<el-table-column label="分工会" prop="unionname" sortable>
|
||||
<template scope="{row}">{{isDisPlayCode?'('+row.unioncode+')':null}}{{row.unionname}}</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -363,7 +370,7 @@ layout("/layouts/platform.html"){
|
||||
<el-table :data="unions_" height="70vh" size="medium">
|
||||
<el-table-column align="center" header-align="center" label="序号" type="index"></el-table-column>
|
||||
|
||||
<el-table-column label="基层工会" prop="unionname" sortable>
|
||||
<el-table-column label="分工会" prop="unionname" sortable>
|
||||
<template scope="{row}">{{isDisPlayCode?'('+row.unioncode+')':null}}{{row.unionname}}</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
input[type="file"] {
|
||||
display: none;
|
||||
display: none
|
||||
}
|
||||
|
||||
.w-e-text-container {
|
||||
@@ -26,6 +26,7 @@ layout("/layouts/platform.html"){
|
||||
z-index: 99999999 !important;
|
||||
}
|
||||
|
||||
|
||||
.el-transfer {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -63,17 +64,28 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
|
||||
<el-row class="transition-row">
|
||||
<transition name="el-zoom-in-center">
|
||||
<div v-show="v=='index'" class="transition-item">
|
||||
<el-row class="header navbar bg-white shadow">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-select v-model="pageForm.hdid" filterable clearable placeholder="请选择活动" @change="pageData">
|
||||
<el-option v-for="item in lxyHd" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||||
<el-option
|
||||
v-for="item in lxyHd"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-date-picker v-model="pageForm.year" type="year" value-format="yyyy" placeholder="选择年度"></el-date-picker>
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="选择年度">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
|
||||
@@ -81,43 +93,59 @@ layout("/layouts/platform.html"){
|
||||
</el-row>
|
||||
|
||||
<el-row class="el-table-container">
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder" v-loading="tabLoading">
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
|
||||
v-loading="tabLoading">
|
||||
<el-table-column align="center" header-align="center" label="序号" width="100px">
|
||||
<template scope="scope">
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}}</span>
|
||||
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="活动名称" prop="name" header-align="center" width="300px" align="center">
|
||||
<el-table-column label="活动名称" prop="name" header-align="center" width="300px"
|
||||
align="center">
|
||||
<template scope="scope">
|
||||
<el-link type="primary" @click="lxy_app.openView(scope.row.id)">{{scope.row.name}}</el-link>
|
||||
<el-link type="primary" @click="lxy_app.openView(scope.row.id)">
|
||||
{{scope.row.name}}
|
||||
</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="活动场地" prop="hdcd" header-align="center" show-overflow-tooltip align="center"></el-table-column>
|
||||
<el-table-column label="活动场地" prop="hdcd" header-align="center" show-overflow-tooltip
|
||||
align="center"></el-table-column>
|
||||
|
||||
<el-table-column label="活动时间" prop="hdkssj" header-align="center" sortable align="center" width="200px">
|
||||
<template scope="scope">{{scope.row.hdkssj}} 至 {{scope.row.hdjssj}}</template>
|
||||
<el-table-column label="活动时间" prop="hdkssj" header-align="center" sortable
|
||||
align="center" width="200px">
|
||||
<template scope="scope">
|
||||
{{scope.row.hdkssj}} 至 {{scope.row.hdjssj}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="报名时间" prop="bmsj" header-align="center" sortable align="center" width="300px">
|
||||
<template scope="scope">{{scope.row.bmkssj}} 至 {{scope.row.bmjzsj}}</template>
|
||||
<el-table-column label="报名时间" prop="bmsj" header-align="center" sortable
|
||||
align="center" width="300px">
|
||||
|
||||
<template scope="scope">
|
||||
{{scope.row.bmkssj}} 至 {{scope.row.bmjzsj}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="状态" prop="name" header-align="center" align="center">
|
||||
<el-table-column label="状态" prop="name" header-align="center"
|
||||
align="center">
|
||||
<template scope="scope">
|
||||
<span :class="lxy_app.getStatus(scope.row).class">{{lxy_app.getStatus(scope.row).name}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="基层工会" prop="unionname" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="分工会" prop="unionname" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
|
||||
<el-table-column label="总名额" prop="number" header-align="center" align="center" width="100px">
|
||||
<el-table-column label="总名额" prop="number" header-align="center"
|
||||
align="center" width="100px">
|
||||
<template scope="scope">
|
||||
<span style="color: tomato">{{scope.row.number}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="剩余名额" prop="remain" header-align="center" align="center" width="100px">
|
||||
<el-table-column label="剩余名额" prop="remain" header-align="center"
|
||||
align="center" width="100px">
|
||||
<template scope="scope">
|
||||
<span style="color: tomato">{{scope.row.remain}}</span>
|
||||
</template>
|
||||
@@ -127,12 +155,13 @@ layout("/layouts/platform.html"){
|
||||
<template scope="scope">
|
||||
<!-- <el-button size="mini" @click="openView(scope.row)">查看-->
|
||||
<!-- </el-button>-->
|
||||
<el-button size="mini" @click="openEdit(scope.row)" :disabled="scope.row.number == scope.row.remain" plain>
|
||||
修改
|
||||
<el-button size="mini" @click="openEdit(scope.row)"
|
||||
:disabled="scope.row.number == scope.row.remain" plain>修改
|
||||
</el-button>
|
||||
<el-button size="mini" type="primary" @click="openTj(scope.row)" :disabled="scope.row.remain<=0" plain>
|
||||
推荐
|
||||
<el-button size="mini" type="primary" @click="openTj(scope.row)"
|
||||
:disabled="scope.row.remain<=0" plain>推荐
|
||||
</el-button>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -140,14 +169,14 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-row class="el-pagination-container">
|
||||
<el-pagination
|
||||
@size-change="pageSizeChange"
|
||||
@current-change="pageNumberChange"
|
||||
:current-page="pageForm.pageNumber"
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:page-size="pageForm.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="pageForm.totalCount"
|
||||
></el-pagination>
|
||||
@size-change="pageSizeChange"
|
||||
@current-change="pageNumberChange"
|
||||
:current-page="pageForm.pageNumber"
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:page-size="pageForm.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="pageForm.totalCount">
|
||||
</el-pagination>
|
||||
</el-row>
|
||||
</div>
|
||||
</transition>
|
||||
@@ -156,22 +185,27 @@ layout("/layouts/platform.html"){
|
||||
<div v-show="v=='bm'" class="transition-item">
|
||||
<el-card class="box-card v-box" shadow="never">
|
||||
<div slot="header" class="clearfix">
|
||||
<el-button icon="el-icon-back" type="text" @click="v='index'" style="font-size: 18px">返回</el-button>
|
||||
<el-button icon="el-icon-back" type="text" @click="v='index'" style="font-size: 18px">返回
|
||||
</el-button>
|
||||
</div>
|
||||
<el-row style="padding: 0 15%" v-loading="loading">
|
||||
<el-row style="padding: 0 15%;" v-loading="loading">
|
||||
|
||||
<el-steps :active="stepActive" finish-status="success" simple>
|
||||
<el-step title="选择人员"></el-step>
|
||||
<el-step title="确定名单"></el-step>
|
||||
</el-steps>
|
||||
|
||||
<transition name="el-zoom-in-top">
|
||||
<div v-show="stepActive==0" class="transition-box" style="margin-top: 20px">
|
||||
<div v-show="stepActive==0" class="transition-box" style="margin-top: 20px;">
|
||||
|
||||
<el-row class="navbar">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-input v-model="userPageForm.query" placeholder="请输入姓名或工号查询"></el-input>
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doUserSearch"></el-button>
|
||||
<el-button type="primary" icon="el-icon-search"
|
||||
@click="doUserSearch">
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button mt5">
|
||||
@@ -183,66 +217,75 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<div class="pull-right offscreen-right mt5">
|
||||
<div class="text-primary" style="line-height: 40px">
|
||||
{{numData.unionname}} 共有
|
||||
<span class="text-danger">{{numData.sum}}</span>
|
||||
个名额, 可选择
|
||||
<span class="text-danger">{{numData.kxz}}</span>
|
||||
个, 已选择
|
||||
<span class="text-danger">{{multipleSelection.length}}</span>
|
||||
个。
|
||||
{{numData.unionname}} 共有 <span class="text-danger">{{numData.sum}}</span>个名额,
|
||||
可选择 <span
|
||||
class="text-danger">{{numData.kxz}}</span>
|
||||
个,
|
||||
已选择<span class="text-danger">{{multipleSelection.length}}</span>个。
|
||||
</div>
|
||||
</div>
|
||||
</el-row>
|
||||
|
||||
<el-row class="">
|
||||
<el-table
|
||||
ref="userTable"
|
||||
:key="tabKey"
|
||||
@selection-change="handleSelectionChange"
|
||||
:data="userData"
|
||||
style="width: 100%"
|
||||
row-key="id"
|
||||
v-loading="userTableLoading"
|
||||
size="medium"
|
||||
@sort-change="userPageOrder"
|
||||
>
|
||||
<el-table-column :reserve-selection="true" type="selection" width="55"></el-table-column>
|
||||
<el-table ref="userTable" :key="tabKey"
|
||||
@selection-change="handleSelectionChange"
|
||||
:data="userData"
|
||||
style="width: 100%" row-key="id" v-loading="userTableLoading"
|
||||
size="medium"
|
||||
@sort-change="userPageOrder">
|
||||
<el-table-column
|
||||
:reserve-selection="true"
|
||||
type="selection"
|
||||
width="55">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="工号" prop="loginname" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="姓名" prop="username" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="性别" prop="sex" header-align="center" sortable align="center"></el-table-column>
|
||||
<el-table-column label="年龄" prop="age" header-align="center" sortable align="center"></el-table-column>
|
||||
<el-table-column label="联系电话" prop="mobile" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="工号" prop="loginname" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="姓名" prop="username" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="性别" prop="sex" header-align="center" sortable
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="年龄" prop="age" header-align="center" sortable
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="联系电话" prop="mobile" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
</el-table>
|
||||
</el-row>
|
||||
|
||||
<el-row class="el-pagination-container" style="margin-top: 20px">
|
||||
<el-pagination
|
||||
@size-change="userPageSizeChange"
|
||||
@current-change="userPageNumberChange"
|
||||
:current-page="userPageForm.pageNumber"
|
||||
:page-size="userPageForm.pageSize"
|
||||
layout="total, prev, pager, next"
|
||||
:total="userPageForm.totalCount"
|
||||
></el-pagination>
|
||||
@size-change="userPageSizeChange"
|
||||
@current-change="userPageNumberChange"
|
||||
:current-page="userPageForm.pageNumber"
|
||||
:page-size="userPageForm.pageSize"
|
||||
layout="total, prev, pager, next"
|
||||
:total="userPageForm.totalCount">
|
||||
</el-pagination>
|
||||
</el-row>
|
||||
|
||||
<div style="float: right; margin: 0px 0">
|
||||
<div style="float: right;margin: 0px 0">
|
||||
<el-button type="primary" @click="next">下一步</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</transition>
|
||||
<transition name="el-zoom-in-bottom">
|
||||
<div v-show="stepActive==1" class="transition-box" style="margin-top: 20px">
|
||||
<el-table :key="tabKey" :data="multipleSelection" style="width: 100%" row-key="id" size="medium">
|
||||
<el-table-column label="工号" prop="loginname" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="姓名" prop="username" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="性别" prop="sex" header-align="center" sortable align="center"></el-table-column>
|
||||
<el-table-column label="年龄" prop="age" header-align="center" sortable align="center"></el-table-column>
|
||||
<el-table-column label="联系电话" prop="mobile" header-align="center" align="center"></el-table-column>
|
||||
<div v-show="stepActive==1" class="transition-box" style="margin-top: 20px;">
|
||||
<el-table :key="tabKey" :data="multipleSelection" style="width: 100%" row-key="id"
|
||||
size="medium">
|
||||
|
||||
<el-table-column label="工号" prop="loginname" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="姓名" prop="username" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="性别" prop="sex" header-align="center" sortable
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="年龄" prop="age" header-align="center" sortable
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="联系电话" prop="mobile" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
</el-table>
|
||||
|
||||
<div style="float: right; margin: 20px 0">
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="stepActive=0">上一步</el-button>
|
||||
<el-button type="primary" @click="doTj">提交</el-button>
|
||||
</div>
|
||||
@@ -257,68 +300,46 @@ layout("/layouts/platform.html"){
|
||||
<div v-show="v=='view'" class="transition-item">
|
||||
<el-row class="header navbar bg-white shadow">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-button icon="el-icon-back" type="text" @click="v='index'" style="font-size: 18px">返回</el-button>
|
||||
<el-button icon="el-icon-back" type="text" @click="v='index'" style="font-size: 18px">返回
|
||||
</el-button>
|
||||
</div>
|
||||
</el-row>
|
||||
<el-row class="el-table-container">
|
||||
<el-table :data="bmTableData" tooltip-effect="dark" row-key="id" ref="multipleTableRy" style="width: 100%">
|
||||
<el-table :data="bmTableData" tooltip-effect="dark" row-key="id" ref="multipleTableRy"
|
||||
style="width: 100%">
|
||||
|
||||
<el-table-column type="expand">
|
||||
<template slot-scope="props">
|
||||
<el-form label-position="left" inline class="demo-table-expand">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所获荣誉">
|
||||
<el-input
|
||||
v-if="props.row.chry"
|
||||
readonly
|
||||
type="textarea"
|
||||
style="width: 600px; margin-left: 90px"
|
||||
:rows="9"
|
||||
v-model="props.row.shry"
|
||||
></el-input>
|
||||
<el-input v-if="!props.row.chry" readonly type="textarea" :rows="9" value="暂无荣誉"></el-input>
|
||||
<el-input v-if="props.row.chry" readonly type="textarea"
|
||||
style="width: 600px;margin-left: 90px" :rows="9"
|
||||
v-model="props.row.shry">
|
||||
</el-input>
|
||||
<el-input v-if="!props.row.chry" readonly type="textarea" :rows="9"
|
||||
value="暂无荣誉">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="身份证相片">
|
||||
<div
|
||||
v-for="item in bmTableData.files"
|
||||
style="display: inline-block; width: 100px; margin-right: 10px"
|
||||
>
|
||||
<el-image
|
||||
fit="cover"
|
||||
v-if="dd3s.isPic(item.filepath)"
|
||||
style="width: 100px; height: 100px; box-shadow: 0 0 5px rgb(200, 200, 200)"
|
||||
:src="'${AppFileDomain!}'+item.filepath"
|
||||
@click="dd3s.showpic(item.filepath)"
|
||||
></el-image>
|
||||
<div v-for="item in bmTableData.files"
|
||||
style="display: inline-block;width: 100px;margin-right:10px">
|
||||
<el-image fit="cover" v-if="dd3s.isPic(item.filepath)"
|
||||
style="width: 100px;height: 100px;box-shadow: 0 0 5px rgb(200,200,200)"
|
||||
:src="'${AppFileDomain!}'+item.filepath"
|
||||
@click="dd3s.showpic(item.filepath)">
|
||||
</el-image>
|
||||
|
||||
<el-image
|
||||
v-else
|
||||
style="width: 100px; height: 100px; box-shadow: 0 0 5px rgb(200, 200, 200)"
|
||||
src="***"
|
||||
>
|
||||
<div
|
||||
slot="error"
|
||||
class="image-slot"
|
||||
style="width: 100%; height: 100%; display: flex; align-items: center; text-align: center"
|
||||
>
|
||||
<span
|
||||
style="
|
||||
font-size: 12px;
|
||||
color: rgb(180, 180, 180);
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
padding: 0 10px;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
"
|
||||
>
|
||||
{{item.filename}}
|
||||
</span>
|
||||
<el-image v-else
|
||||
style="width: 100px;height: 100px;box-shadow: 0 0 5px rgb(200,200,200)"
|
||||
src="***">
|
||||
<div slot="error" class="image-slot"
|
||||
style="width: 100%;height: 100%; display:flex;align-items: center;text-align: center">
|
||||
<span style="font-size: 12px;color: rgb(180,180,180);width: 100%;text-align: center;overflow: hidden;padding: 0 10px;
|
||||
text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical">{{item.filename}}</span>
|
||||
</div>
|
||||
</el-image>
|
||||
</div>
|
||||
@@ -329,16 +350,21 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="工号" prop="loginname" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="姓名" prop="username" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="性别" prop="sex" header-align="center" sortable align="center"></el-table-column>
|
||||
<el-table-column label="年龄" prop="age" header-align="center" sortable align="center"></el-table-column>
|
||||
<el-table-column label="联系电话" prop="mobile" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="工号" prop="loginname" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="姓名" prop="username" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="性别" prop="sex" header-align="center" sortable
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="年龄" prop="age" header-align="center" sortable
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="联系电话" prop="mobile" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column label="报名状态" prop="bmzt" header-align="center" align="center">
|
||||
<template scope="scope">
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==3">待校工会审核</span>
|
||||
<span style="color: #f56c6c" v-if="scope.row.bmzt==4">审核未通过</span>
|
||||
<span style="color: #67c23a" v-if="scope.row.bmzt==5">审核已通过</span>
|
||||
<span style="color: #E6A23C" v-if="scope.row.bmzt==3">待校工会审核</span>
|
||||
<span style="color: #F56C6C" v-if="scope.row.bmzt==4">审核未通过</span>
|
||||
<span style="color: #67C23A" v-if="scope.row.bmzt==5">审核已通过</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -349,10 +375,10 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
el: '#app',
|
||||
data() {
|
||||
return {
|
||||
unionname: "",
|
||||
unionname: '',
|
||||
viewDialogSh: false,
|
||||
bmTableData: [],
|
||||
lxyHd: [],
|
||||
@@ -392,7 +418,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
multipleSelection: [],
|
||||
userTableLoading: false,
|
||||
numData: {}
|
||||
numData: {},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -406,67 +432,62 @@ layout("/layouts/platform.html"){
|
||||
doTj() {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: "数据提交中...",
|
||||
spinner: "el-icon-loading",
|
||||
background: "rgba(0, 0, 0, 0.7)"
|
||||
})
|
||||
text: '数据提交中...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
|
||||
let arr = []
|
||||
this.multipleSelection.map((v) => {
|
||||
this.multipleSelection.map(v => {
|
||||
arr.push(v.id)
|
||||
})
|
||||
let url
|
||||
let url;
|
||||
if (this.userPageForm.sign == 0) {
|
||||
url = base + "/platform/zgfw/lxy/metj/tj"
|
||||
url = base + "/platform/zgfw/lxy/metj/tj";
|
||||
} else if (this.userPageForm.sign == 1) {
|
||||
url = base + "/platform/zgfw/lxy/metj/doEdit"
|
||||
url = base + "/platform/zgfw/lxy/metj/doEdit";
|
||||
}
|
||||
|
||||
$.post(
|
||||
url,
|
||||
{
|
||||
hdid: this.userPageForm.hdid,
|
||||
unionid: this.userPageForm.unionid,
|
||||
users: JSON.stringify(arr)
|
||||
},
|
||||
(data) => {
|
||||
loading.close()
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: "提交成功",
|
||||
type: "success"
|
||||
})
|
||||
this.v = "index"
|
||||
this.pageData()
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: "error"
|
||||
})
|
||||
}
|
||||
},
|
||||
"json"
|
||||
)
|
||||
$.post(url, {
|
||||
hdid: this.userPageForm.hdid,
|
||||
unionid: this.userPageForm.unionid,
|
||||
users: JSON.stringify(arr)
|
||||
}, (data) => {
|
||||
loading.close()
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '提交成功',
|
||||
type: 'success'
|
||||
});
|
||||
this.v = 'index'
|
||||
this.pageData()
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
next() {
|
||||
if (this.multipleSelection.length == 0) {
|
||||
this.$message({
|
||||
message: "请选择人员!",
|
||||
type: "warning"
|
||||
})
|
||||
message: '请选择人员!',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
if (this.userPageForm.sign == 0 && this.numData.num - this.multipleSelection.length < 0) {
|
||||
this.$message({
|
||||
message: "选择人数已达上限!",
|
||||
type: "warning"
|
||||
})
|
||||
message: '选择人数已达上限!',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
} else if (this.userPageForm.sign == 1 && this.multipleSelection.length > this.numData.sum) {
|
||||
this.$message({
|
||||
message: "选择人数已达上限!",
|
||||
type: "warning"
|
||||
})
|
||||
message: '选择人数已达上限!',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
|
||||
@@ -480,83 +501,69 @@ layout("/layouts/platform.html"){
|
||||
this.userPageForm.pageNumber = 1
|
||||
this.userPageData()
|
||||
},
|
||||
userPageOrder(column) {
|
||||
//按字段排序
|
||||
this.userPageForm.pageOrderName = column.prop
|
||||
this.userPageForm.pageOrderBy = column.order
|
||||
this.userPageData()
|
||||
userPageOrder(column) {//按字段排序
|
||||
this.userPageForm.pageOrderName = column.prop;
|
||||
this.userPageForm.pageOrderBy = column.order;
|
||||
this.userPageData();
|
||||
},
|
||||
userPageNumberChange(val) {
|
||||
//页码更新操作
|
||||
this.userPageForm.pageNumber = val
|
||||
this.userPageData()
|
||||
userPageNumberChange(val) {//页码更新操作
|
||||
this.userPageForm.pageNumber = val;
|
||||
this.userPageData();
|
||||
},
|
||||
userPageSizeChange(val) {
|
||||
//分页大小更新操作
|
||||
this.userPageForm.pageSize = val
|
||||
this.userPageData()
|
||||
userPageSizeChange(val) {//分页大小更新操作
|
||||
this.userPageForm.pageSize = val;
|
||||
this.userPageData();
|
||||
},
|
||||
userPageData() {
|
||||
//加载分页数据
|
||||
sublime.showLoadingbar() //显示loading
|
||||
userPageData() {//加载分页数据
|
||||
sublime.showLoadingbar();//显示loading
|
||||
this.userTableLoading = true
|
||||
this.userPageForm.checks = JSON.stringify(this.userPageForm.check)
|
||||
$.post(
|
||||
base + "/platform/zgfw/lxy/metj/getUser",
|
||||
this.userPageForm,
|
||||
(data) => {
|
||||
sublime.closeLoadingbar() //关闭loading
|
||||
this.userTableLoading = false
|
||||
if (data.code == 0) {
|
||||
this.userData = data.data.list
|
||||
this.userPageForm.totalCount = data.data.totalCount
|
||||
this.$nextTick(() => {
|
||||
const arr = JSON.parse(JSON.stringify(this.multipleSelection))
|
||||
this.userData.forEach((v) => {
|
||||
if (arr.includes(v.id)) {
|
||||
this.$refs.userTable.toggleRowSelection(v)
|
||||
}
|
||||
})
|
||||
$.post(base + "/platform/zgfw/lxy/metj/getUser", this.userPageForm, (data) => {
|
||||
sublime.closeLoadingbar();//关闭loading
|
||||
this.userTableLoading = false
|
||||
if (data.code == 0) {
|
||||
this.userData = data.data.list;
|
||||
this.userPageForm.totalCount = data.data.totalCount;
|
||||
this.$nextTick(() => {
|
||||
const arr = JSON.parse(JSON.stringify(this.multipleSelection))
|
||||
this.userData.forEach(v => {
|
||||
if (arr.includes(v.id)) {
|
||||
this.$refs.userTable.toggleRowSelection(v)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: "error"
|
||||
})
|
||||
}
|
||||
},
|
||||
"json"
|
||||
)
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val
|
||||
this.multipleSelection = val;
|
||||
},
|
||||
filterMethod(query, item) {
|
||||
return item.username.indexOf(query) > -1 || item.loginname.indexOf(query) > -1
|
||||
return item.username.indexOf(query) > -1 || item.loginname.indexOf(query) > -1;
|
||||
},
|
||||
openView(row) {
|
||||
this.unionname = row.unionname
|
||||
this.pageForm.hdid = row.hdid
|
||||
this.pageForm.ghid = row.ghid
|
||||
this.v = "view"
|
||||
$.post(
|
||||
base + "/platform/zgfw/lxy/xghsh/findBm",
|
||||
{ ghId: row.ghid, hdId: row.hdid },
|
||||
(data) => {
|
||||
sublime.closeLoadingbar()
|
||||
this.tabLoading = false
|
||||
if (data.code == 0) {
|
||||
this.bmTableData = data.data
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: "error"
|
||||
})
|
||||
}
|
||||
},
|
||||
"json"
|
||||
)
|
||||
$.post(base + "/platform/zgfw/lxy/xghsh/findBm", {ghId: row.ghid, hdId: row.hdid}, (data) => {
|
||||
sublime.closeLoadingbar();
|
||||
this.tabLoading = false
|
||||
if (data.code == 0) {
|
||||
this.bmTableData = data.data;
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
openTj(row) {
|
||||
this.tabKey = new Date().getTime()
|
||||
@@ -574,7 +581,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
$.post(base + "/platform/zgfw/lxy/metj/getNumberData", this.userPageForm, (data) => {
|
||||
this.numData = data.data
|
||||
this.v = "bm"
|
||||
this.v = 'bm'
|
||||
this.multipleSelection = []
|
||||
this.userData = []
|
||||
this.userPageData()
|
||||
@@ -597,11 +604,11 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
$.post(base + "/platform/zgfw/lxy/metj/getNumberData", this.userPageForm, (data) => {
|
||||
this.numData = data.data
|
||||
this.multipleSelection = data.data.multiple.map((v) => {
|
||||
this.multipleSelection = data.data.multiple.map(v => {
|
||||
return v.id
|
||||
})
|
||||
this.userData = []
|
||||
this.v = "bm"
|
||||
this.v = 'bm'
|
||||
|
||||
this.userPageData()
|
||||
})
|
||||
@@ -611,51 +618,42 @@ layout("/layouts/platform.html"){
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
},
|
||||
pageOrder(column) {
|
||||
//按字段排序
|
||||
this.pageForm.pageOrderName = column.prop
|
||||
this.pageForm.pageOrderBy = column.order
|
||||
this.pageData()
|
||||
pageOrder(column) {//按字段排序
|
||||
this.pageForm.pageOrderName = column.prop;
|
||||
this.pageForm.pageOrderBy = column.order;
|
||||
this.pageData();
|
||||
},
|
||||
pageNumberChange(val) {
|
||||
//页码更新操作
|
||||
this.pageForm.pageNumber = val
|
||||
this.pageData()
|
||||
pageNumberChange(val) {//页码更新操作
|
||||
this.pageForm.pageNumber = val;
|
||||
this.pageData();
|
||||
},
|
||||
pageSizeChange(val) {
|
||||
//分页大小更新操作
|
||||
this.pageForm.pageSize = val
|
||||
this.pageData()
|
||||
pageSizeChange(val) {//分页大小更新操作
|
||||
this.pageForm.pageSize = val;
|
||||
this.pageData();
|
||||
},
|
||||
pageData() {
|
||||
//加载分页数据
|
||||
sublime.showLoadingbar() //显示loading
|
||||
pageData() {//加载分页数据
|
||||
sublime.showLoadingbar();//显示loading
|
||||
this.tabLoading = true
|
||||
$.post(
|
||||
base + "/platform/zgfw/lxy/metj/pageData",
|
||||
this.pageForm,
|
||||
(data) => {
|
||||
sublime.closeLoadingbar() //关闭loading
|
||||
this.tabLoading = false
|
||||
if (data.code == 0) {
|
||||
this.tableData = data.data.list
|
||||
this.pageForm.totalCount = data.data.totalCount
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: "error"
|
||||
})
|
||||
}
|
||||
},
|
||||
"json"
|
||||
)
|
||||
}
|
||||
$.post(base + "/platform/zgfw/lxy/metj/pageData", this.pageForm, (data) => {
|
||||
sublime.closeLoadingbar();//关闭loading
|
||||
this.tabLoading = false
|
||||
if (data.code == 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.unions = await getUnions()
|
||||
this.lxyHd = await getNowLxyHd()
|
||||
this.pageForm.hdid = this.lxyHd[0].id
|
||||
this.pageData()
|
||||
this.pageData();
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -39,7 +39,7 @@ layout("/layouts/platform.html"){
|
||||
<template #func>
|
||||
<el-button @click="yjTg" size="small" type="primary">一键通过</el-button>
|
||||
|
||||
<el-button @click="downLoadAll" size="small" type="primary">一键下载材料</el-button>
|
||||
<!-- <el-button @click="downLoadAll" size="small" type="primary">一键下载材料</el-button>-->
|
||||
</template>
|
||||
</vi-title2>
|
||||
<el-table
|
||||
@@ -58,7 +58,7 @@ layout("/layouts/platform.html"){
|
||||
<el-link @click="lxy_app.openView(scope.row.id)" type="primary">{{scope.row.name}}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="基层工会" prop="unionname"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="分工会" prop="unionname"></el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="活动场地" prop="hdcd" show-overflow-tooltip></el-table-column>
|
||||
|
||||
@@ -132,23 +132,29 @@ layout("/layouts/platform.html"){
|
||||
tooltip-effect="dark"
|
||||
>
|
||||
<el-table-column :reserve-selection="true" :selectable="checkboxT" disabled type="selection" width="55"></el-table-column>
|
||||
|
||||
<el-table-column label="序号" type="index" width="50" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工号" prop="loginname"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="姓名" prop="username"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="性别" prop="sex" sortable width="80"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="年龄" prop="age" sortable width="80"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="手机号码" prop="mobile"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="民族" prop="nation" sortable width="80"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="疗休养员身份" prop="zyhj" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="身份证号" prop="idcard"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="获奖名称" prop="zyhj" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="备注" prop="bz" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="联系电话" prop="mobile"></el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
label="是否为ABCDE类高层次人才"
|
||||
prop="talent"
|
||||
show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="报名状态" prop="bmzt">
|
||||
<template scope="scope">
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==1">待基层工会审核</span>
|
||||
<span style="color: #f56c6c" v-if="scope.row.bmzt==2">基层工会审核未通过</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==1">待分工会审核</span>
|
||||
<span style="color: #f56c6c" v-if="scope.row.bmzt==2">分工会审核未通过</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==3">待校工会审核</span>
|
||||
<span style="color: #f56c6c" v-if="scope.row.bmzt==4">校工会审核未通过</span>
|
||||
<span style="color: #67c23a" v-if="scope.row.bmzt==5">报名成功</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==6">待填写个人资料</span>
|
||||
<!-- <span style="color: #E6A23C" v-if="scope.row.bmzt==6">待填写个人资料</span>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -160,7 +166,7 @@ layout("/layouts/platform.html"){
|
||||
<span class="ti-angle-down"></span>
|
||||
</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item :command="{type:'view',data:row}">查看</el-dropdown-item>
|
||||
<!-- <el-dropdown-item :command="{type:'view',data:row}">查看</el-dropdown-item>-->
|
||||
<el-dropdown-item :command="{type:'Review',data:row}" :disabled="row.bmzt==5">审核</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
@@ -182,9 +188,8 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
<el-dialog :close-on-click-modal="false" :visible.sync="viewDialogSh" custom-class="ViewDialogClass" top="3%" width="60%">
|
||||
<el-dialog :close-on-click-modal="false" title="校工会审核" :visible.sync="viewDialogSh" custom-class="ViewDialogClass" top="3%" width="60%">
|
||||
<el-form label-position="right" label-width="120px" style="padding: 20px 0">
|
||||
<vi-title title="个人信息"></vi-title>
|
||||
<el-row gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="工号:">{{ viewData.loginname }}</el-form-item>
|
||||
@@ -192,83 +197,28 @@ layout("/layouts/platform.html"){
|
||||
<el-col :span="8">
|
||||
<el-form-item label="姓名:">{{ viewData.username }}</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="职务:">{{ viewData.zw }}</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="人事编制:">{{ viewData.rsbz }}</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="性别:">{{ viewData.sex }}</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="年龄:">{{ viewData.age }}</el-form-item>
|
||||
<el-form-item label="民族:">{{ viewData.nation }}</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="所在单位:">{{ viewData.unitname }}</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="身份证号:">{{ viewData.idcard }}</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="手机号:">{{ viewData.mobile }}</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="身份证号:">{{ viewData.idcard }}</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="获奖名称:">{{ viewData.zyhj }}</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注:">{{ viewData.bz }}</el-form-item>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="是否为ABCDE类高层次人才:">{{ viewData.talent }}</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<template v-if="viewData.files&&viewData.files.length">
|
||||
<vi-title title="身份证复印件"></vi-title>
|
||||
<div style="text-align: left">
|
||||
<div style="display: inline-block; width: 100px; margin-right: 10px" v-for="item in viewData.files">
|
||||
<div @click="dd3s.download(item.filepath,item.filename)" class="file-down-span">
|
||||
<i class="el-icon-download"></i>
|
||||
</div>
|
||||
<el-image
|
||||
:src="'${AppFileDomain!}'+item.filepath"
|
||||
@click="dd3s.showpic(item.filepath)"
|
||||
fit="cover"
|
||||
style="width: 100px; height: 100px; box-shadow: 0 0 5px rgb(200, 200, 200)"
|
||||
v-if="dd3s.isPic(item.filepath)"
|
||||
></el-image>
|
||||
<el-image src="***" style="width: 100px; height: 100px; box-shadow: 0 0 5px rgb(200, 200, 200)" v-else>
|
||||
<div
|
||||
class="image-slot"
|
||||
slot="error"
|
||||
style="width: 100%; height: 100%; display: flex; align-items: center; text-align: center"
|
||||
>
|
||||
<span
|
||||
style="
|
||||
font-size: 12px;
|
||||
color: rgb(180, 180, 180);
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
padding: 0 10px;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
"
|
||||
>
|
||||
{{item.filename}}
|
||||
</span>
|
||||
</div>
|
||||
</el-image>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<vi-title style="margin-top: 10px" title="个人材料"></vi-title>
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="附件">
|
||||
<file-upload :files="viewData.bmFiles" :view="true" v-if="viewData.bmFiles && viewData.bmFiles.length > 0"></file-upload>
|
||||
<span v-else>暂无个人材料</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-form>
|
||||
<span class="dialog-footer" slot="footer" v-if="this.viewData.num==2">
|
||||
<el-button @click="grsh(4)" type="danger">不通过</el-button>
|
||||
@@ -639,7 +589,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
async created() {
|
||||
this.unions = await getUnions()
|
||||
this.lxyHd = await getNowLxyHd()
|
||||
this.lxyHd = await getLxyHd()
|
||||
this.pageForm.hdid = this.lxyHd[0].id
|
||||
this.pageData()
|
||||
}
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
<el-table :data="viewData.bm" size="medium" height="70vh">
|
||||
<el-table-column label="序号" type="index" width="50" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="工号" prop="loginname" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="姓名" prop="username" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="性别" prop="sex" header-align="center" sortable align="center"></el-table-column>
|
||||
<el-table-column label="年龄" prop="age" header-align="center" sortable align="center"></el-table-column>
|
||||
<el-table-column label="民族" prop="nation" header-align="center" sortable align="center"></el-table-column>
|
||||
<el-table-column label="疗休养员身份" prop="zyhj" header-align="center" sortable align="center"></el-table-column>
|
||||
<el-table-column label="身份证号" prop="idcard" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="联系电话" prop="mobile" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="报名状态" prop="bmzt" header-align="center" align="center">
|
||||
<el-table-column label="是否为ABCDE类高层次人才" prop="talent" header-align="center" align="center">
|
||||
<template scope="scope">
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==1">待基层工会审核</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==1">待分工会审核</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==3">待校工会审核</span>
|
||||
<span style="color: #67c23a" v-if="scope.row.bmzt==5">审核已通过</span>
|
||||
<span style="color: #e6a23c" v-if="scope.row.bmzt==6">待填写报名资料</span>
|
||||
<!-- <span style="color: #e6a23c" v-if="scope.row.bmzt==6">待填写报名资料</span>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
<el-table :data="viewData.mefp" size="medium">
|
||||
<el-table-column align="center" type="index" header-align="center" label="序号"></el-table-column>
|
||||
<el-table-column align="center" type="index" header-align="center"
|
||||
label="序号"></el-table-column>
|
||||
|
||||
<el-table-column label="基层工会" prop="unionname" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="分工会" prop="unionname" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
|
||||
<el-table-column label="名额" prop="number" header-align="center" width="200px" align="center"></el-table-column>
|
||||
<el-table-column label="名额" prop="number" header-align="center" width="200px"
|
||||
align="center"></el-table-column>
|
||||
</el-table>
|
||||
|
||||
Reference in New Issue
Block a user