This commit is contained in:
Paidax
2024-07-26 15:46:08 +08:00
parent eefb76c781
commit ddf52e5e86
109 changed files with 1384 additions and 1473 deletions
@@ -1,14 +1,14 @@
package io.v.nutz.zhgh.activity.controller.applets;
import io.v.nutz.zhgh.activity.models.ActivitySchoolApply;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.zhgh.activity.models.ActivitySchoolApply;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
@@ -5,16 +5,16 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.base.Result;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.SimpleService;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.utils.ViTool;
import io.v.nutz.sys.models.Sys_role;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivityUserCnd;
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
import io.v.nutz.zhgh.activity.services.ActivityBasicScopeService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.service.SimpleService;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.sys.models.Sys_role;
import io.v.nutz.web.commons.utils.ShiroUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.ArrayUtils;
import org.apache.poi.ss.usermodel.Workbook;
@@ -1,12 +1,12 @@
package io.v.nutz.zhgh.activity.controller.basic;
import cn.wizzer.framework.base.Result;
import io.v.nutz.zhgh.activity.models.ActivityBasicSettings;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.AsyncService;
import io.v.nutz.base.service.ViService;
import io.v.nutz.zhgh.activity.models.ActivityBasicSettings;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Chain;
@@ -47,8 +47,8 @@ public class ActivityBasicSettingsController {
@RequiresPermissions("activity.basic.settings")
public Object pageData(String parentId, PageForm pageForm) {
CndPlus cnd = CndPlus.create();
pageForm.setPageSize(50);
pageForm.setPageNumber(1);
/* pageForm.setPageSize(50);
pageForm.setPageNumber(1);*/
cnd.andEx("parentId", "=", parentId);
cnd.asc("code");
@@ -4,13 +4,13 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.service.SimpleService;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.SimpleService;
import io.v.nutz.base.utils.ViTool;
import io.v.nutz.sys.models.User;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.base.utils.ViTool;
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -1,12 +1,12 @@
package io.v.nutz.zhgh.activity.controller.basic;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.zhgh.activity.models.ActivityBasicSettings;
import io.v.nutz.zhgh.activity.models.ActivityEvent;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.zhgh.activity.models.ActivityBasicSettings;
import io.v.nutz.zhgh.activity.models.ActivityEvent;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
@@ -1,22 +1,22 @@
package io.v.nutz.zhgh.activity.controller.basic;
import cn.wizzer.framework.base.Result;
import io.v.nutz.sys.models.*;
import io.v.nutz.zhgh.activity.models.ActivityBasicUnion;
import io.v.nutz.zhgh.activity.models.ActivityBasicUnit;
import io.v.nutz.zhgh.activity.models.ActivitySchoolApply;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.lang.Lang;
import io.v.nutz.base.service.ViService;
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.base.lang.Lang;
import io.v.nutz.base.service.ViService;
import io.v.nutz.sys.models.*;
import io.v.nutz.sys.services.SysDictService;
import io.v.nutz.sys.services.SysRoleService;
import io.v.nutz.sys.services.SysUserRoleService;
import io.v.nutz.sys.services.SysUserService;
import io.v.nutz.web.commons.controller.ViCommonCon;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivityBasicUnion;
import io.v.nutz.zhgh.activity.models.ActivityBasicUnit;
import io.v.nutz.zhgh.activity.models.ActivitySchoolApply;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -1,16 +1,16 @@
package io.v.nutz.zhgh.activity.controller.basic;
import cn.wizzer.framework.base.Result;
import io.v.nutz.zhgh.activity.models.ActivityBasicUnit;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.AsyncService;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.sys.models.Sys_unit;
import io.v.nutz.sys.services.SysUnitClassService;
import io.v.nutz.sys.services.SysUserService;
import io.v.nutz.zhgh.activity.models.ActivityBasicUnit;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Chain;
@@ -1,21 +1,21 @@
package io.v.nutz.zhgh.activity.controller.school;
import cn.wizzer.framework.base.Result;
import io.v.nutz.zhgh.activity.models.*;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolTeamService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.service.SimpleService;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.SimpleService;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.sys.models.Sys_unit;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.sys.services.SysUserService;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.*;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolTeamService;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.aop.interceptor.async.Async;
@@ -1,8 +1,8 @@
package io.v.nutz.zhgh.activity.controller.school;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Sqls;
@@ -2,23 +2,23 @@ package io.v.nutz.zhgh.activity.controller.school;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.hutool.core.util.StrUtil;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
import io.v.nutz.zhgh.activity.models.*;
import io.v.nutz.zhgh.activity.services.ActivityPlanService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.OfficeTemplateUtil;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.utils.OfficeTemplateUtil;
import io.v.nutz.sys.models.Sys_union;
import io.v.nutz.sys.models.Sys_unit;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.sys.services.SysUnionService;
import io.v.nutz.web.commons.base.Globals;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.*;
import io.v.nutz.zhgh.activity.services.ActivityPlanService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.nutz.dao.Cnd;
@@ -29,6 +29,7 @@ import org.nutz.dao.util.cri.Static;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.json.Json;
import org.nutz.lang.Lang;
import org.nutz.lang.Strings;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
@@ -36,10 +37,14 @@ import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
* @author: Aaron
@@ -163,7 +168,7 @@ public class ActivityCommonController {
*/
@At
@ViReturn
public Object getSchoolActivityPlan(@Param(value = "type",required = false) Integer type) {
public Object getSchoolActivityPlan(@Param(value = "type", required = false) Integer type) {
return activityPlanService.listMap(Sqls.create("select * from activity_plan where type = @type").setParam("type", type));
}
@@ -350,191 +355,66 @@ public class ActivityCommonController {
@At
@Ok("void")
public void export(String id, String unionId, HttpServletResponse response) throws IOException {
ActivitySchool activity = activitySchoolService.fetch(id);
public void export(String id, String unionId, HttpServletResponse response) {
try {
ActivitySchool activity = activitySchoolService.fetch(id);
String fileName = Globals.MyConfig.getString("GxName") + activity.getName() + "报名表";
response.addHeader("Content-Type", "application/octet-stream");
response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1) + "\".zip");
Map map = new HashMap();
List list = new ArrayList();
List<ActivityBasicUnion> basicUnions = activitySchoolService.dao().query(ActivityBasicUnion.class, Cnd.NEW().asc("unioncode"));
ZipOutputStream zipOutputStream = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream()));
for (ActivityBasicUnion union : basicUnions) {
NutMap map = new NutMap();
map.setv("unionName", union.getUnionname());
CndPlus unionCnd = CndPlus.create();
Sql sql = Sqls.create("""
SELECT * FROM sys_union un $condition
""");
List<ActivitySchoolApply> schoolApplies = activitySchoolApplyService.query(Cnd.where("activityId", "=", id));
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
if (ShiroUtil.hasRole("H04")) {
Sys_user user = (Sys_user) ShiroUtil.getPrincipal();
Sys_unit unit = user.getUnit();
unionCnd.and("un.id", "=", unit.getUnionid());
}
} else {
unionCnd.andEx("un.id", "=", unionId);
}
unionCnd.and(new Static("(SELECT count(1) from activity_school_apply app WHERE app.unionId = un.id and app.status = 2 and app.activityId='%s') > 0".formatted(id)));
sql.setCondition(unionCnd);
List<Sys_union> unions = sysUnionService.listEntity(sql);
CndPlus cnd = CndPlus.create();
Sql sql1 = Sqls.create("""
SELECT
ae.allName,
app.*,
team.`name` teamName,
unit.`name` unitName,
gh.unionname AS unionName
FROM
activity_school_apply app
LEFT JOIN activity_event ae ON ae.id = app.eventId
LEFT JOIN activity_school_team team ON app.teamId = team.id
LEFT JOIN sys_unit unit ON app.unitId = unit.id
LEFT JOIN sys_union gh ON gh.id = unit.unionid
$condition
""");
cnd.andEx("app.activityId", "=", id);
cnd.andEx("app.unionId", "=", unionId);
cnd.desc("app.divisionLevelLeadership").asc("team.location").asc("app.sex");
sql1.setCondition(cnd);
List<ActivitySchoolApply> applies = activitySchoolApplyService.listEntity(sql1, ActivitySchoolApply.class);
List<NutMap> mapList = activitySchoolApplyService.listMap(sql1);
for (NutMap apply : mapList) {
String oldUsername = apply.getString("username");
String username = apply.getString("username");
String sex = apply.getString("sex");
boolean unionHead = apply.getBoolean("unionHead");
boolean coach = Json.fromJsonAsList(String.class, apply.getString("identity")).stream().anyMatch(v -> v.equals("2"));
boolean leader = Json.fromJsonAsList(String.class, apply.getString("identity")).stream().anyMatch(v -> v.equals("3"));
boolean substitute = Json.fromJsonAsList(String.class, apply.getString("identity")).stream().anyMatch(v -> v.equals("5"));
boolean divisionLevelLeadership = Json.fromJsonAsList(String.class, apply.getString("identity")).stream().anyMatch(v -> v.equals("4"));
boolean women = "女".equals(sex);
if (women || divisionLevelLeadership || coach || leader) {
username += "(";
if (women) {
username += "女 ";
}
if (coach && username.equals(oldUsername)) {
username += "教练 ";
}
if (leader && username.equals(oldUsername)) {
username += "领队 ";
List<ActivitySchoolApply> ydhUserList = schoolApplies.stream().filter(v -> v.getIdentity().contains("1")).collect(Collectors.toList());
ActivitySchoolApply jlUser = schoolApplies.stream().filter(v -> v.getIdentity().contains("2")).findFirst().orElse(null);
ActivitySchoolApply ldUser = schoolApplies.stream().filter(v -> v.getIdentity().contains("3")).findFirst().orElse(null);
ydhUserList.stream().forEach(y -> y.setSf("队员"));
for (int i = 0; i < ydhUserList.size(); i++) {
ydhUserList.get(i).setSf("队员");
ydhUserList.get(i).setIndex(i + 1);
}
if (unionHead && username.equals(oldUsername)) {
username += "团长 ";
map.setv("headName", fileName);
if (Lang.isNotEmpty(ldUser)) {
map.setv("ldUserName", ldUser.getUsername());
map.setv("ldMobile", ldUser.getMobile());
}
if (substitute && username.equals(oldUsername)) {
username += "替补 ";
if (Lang.isNotEmpty(jlUser)) {
map.setv("jlUserName", jlUser.getUsername());
}
if (divisionLevelLeadership && username.equals(oldUsername)) {
username += "处级领导 ";
}
username += ")";
String subUserName = username.substring(0, username.length() - 2);
if (!women && subUserName.equals(oldUsername)) {
apply.setv("username", oldUsername);
} else {
apply.setv("username", username);
}
// apply.setv("username", (!women && username.equals(oldUsername)) ? oldUsername : username);
map.setv("ydhUser", ydhUserList);
map.setv("applyDate", DateUtil.getDate());
String twoFileName = union.getUnionname() + "比赛报名表.docx";
zipOutputStream.putNextEntry(new ZipEntry(twoFileName));
HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
Configure config = Configure.newBuilder().bind("ydhUser", policy).build();
/* if (activity.getApplyType() == 1) {
templateUrl = officeTemplateUtil.getPath("activity_list1");
} else if (activity.getApplyType() == 2) {
templateUrl = officeTemplateUtil.getPath("activity_list");
}officeTemplateUtil.getPath("activity_user");
*/
String officeTemplateUtilPath = officeTemplateUtil.getPath("activity_user");
assert officeTemplateUtilPath != null;
XWPFTemplate.compile(officeTemplateUtilPath, config).render(map).write(zipOutputStream);
zipOutputStream.closeEntry();
}
zipOutputStream.flush();
zipOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
for (Sys_union union : unions) {
String union_id = union.getId();
Map m = new HashMap<>();
m.put("id", union_id);
m.put("name", union.getUnionname());
List<NutMap> users = mapList.stream().filter(v -> {
return v.getString("unionId").equals("2b113edb7e7d4494a9cdfd7672a0ed90");
}).collect(Collectors.toList());
/* List<NutMap> users = mapList.stream().filter(v -> {
return v.getString("unionId").equals(union_id);
}).collect(Collectors.toList());*/
List<NutMap> collect1 = users.stream().filter(v -> v.getString("team") != null).collect(Collectors.toList());
Map<String, List<NutMap>> allName = collect1.stream().collect(Collectors.groupingBy(all -> all.getString("allName"), Collectors.toList()));
LinkedHashMap<String, List<NutMap>> collect = collect1.stream().filter(v -> {
return Json.fromJsonAsList(String.class, v.getString("identity")).stream().anyMatch(x -> x.equals("1") || x.equals("2") || x.equals("3") || x.equals("4") || x.equals("5"));
}).collect(Collectors.groupingBy(record -> record.getString("team"), LinkedHashMap::new, Collectors.toList()));
List<Map> teams = new ArrayList();
List<NutMap> leaderList = new ArrayList<>();
collect.forEach((key, val) -> {
List<NutMap> ydy = val.stream().filter(v -> Json.fromJsonAsList(String.class, v.getString("identity")).stream().anyMatch(x -> x.equals("1") || x.equals("5"))).collect(Collectors.toList());
List<NutMap> coach = val.stream().filter(v -> Json.fromJsonAsList(String.class, v.getString("identity")).stream().anyMatch(x -> x.equals("2"))).collect(Collectors.toList());
List<NutMap> leader = val.stream().filter(v -> Json.fromJsonAsList(String.class, v.getString("identity")).stream().anyMatch(x -> x.equals("3"))).collect(Collectors.toList());
List<NutMap> divisionLevelLeadership = val.stream().filter(v -> Json.fromJsonAsList(String.class, v.getString("identity")).stream().anyMatch(x -> x.equals("4"))).collect(Collectors.toList());
Map mm = new HashMap<>();
mm.put("name", key);
mm.put("coach", coach);
mm.put("leader", leader);
mm.put("divisionLevelLeadership", divisionLevelLeadership);
mm.put("users", ydy);
if (key.equals("第1队") && leader.size() > 0) {
leaderList.add(leader.get(0));
}
teams.add(mm);
});
m.put("id1", teams);
if (activity.getApplyType() == 1) {
m.put("id3", leaderList);
} else {
//教练
List<NutMap> id2 = users.stream().filter(v -> StrUtil.isNotBlank(v.getString("unionCoach")) && v.getBoolean("unionCoach")).collect(Collectors.toList());
m.put("id2", id2);
if (id2.size() > 0) m.put("coachName", "基层工会教练:");
//领队
List<NutMap> id3 = users.stream().filter(v -> StrUtil.isNotBlank(v.getString("unionLeader")) && v.getBoolean("unionLeader")).collect(Collectors.toList());
m.put("id3", id3);
if (id3.size() > 0) m.put("leaderName", "基层工会领队:");
//领队
List<NutMap> id4 = users.stream().filter(v -> StrUtil.isNotBlank(v.getString("unionHead")) && v.getBoolean("unionHead")).collect(Collectors.toList());
m.put("id4", id4);
if (id4.size() > 0) m.put("unionHead", "基层工会团长:");
}
list.add(m);
}
map.put("list", list);
String fileName = activity.getName() + "人员名单";
response.addHeader("Content-Type", "application/octet-stream");
response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1) + "\".docx");
HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
Configure config = Configure.newBuilder().bind("users", policy).build();
String templateUrl = "";
if (activity.getApplyType() == 1) {
templateUrl = officeTemplateUtil.getPath("activity_list1");
} else if (activity.getApplyType() == 2) {
templateUrl = officeTemplateUtil.getPath("activity_list");
}
XWPFTemplate.compile(templateUrl, config).render(map).writeAndClose(response.getOutputStream());;
}
@@ -548,7 +428,7 @@ public class ActivityCommonController {
Cnd unionCnd = Cnd.NEW();
Sql sql = Sqls.create("""
SELECT * FROM sys_union un $condition
SELECT * FROM sys_union un $condition
""");
if (!ShiroUtil.hasAnyRoles("sysadmin,A06") && ShiroUtil.hasRole("H04")) {
@@ -3,14 +3,14 @@ package io.v.nutz.zhgh.activity.controller.school;
import cn.wizzer.framework.base.Result;
import cn.wizzer.framework.page.Pagination;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.sys.services.SysUnitService;
import io.v.nutz.zhgh.activity.models.ActivitySchoolApply;
import io.v.nutz.zhgh.activity.models.SchoolAssignGrades;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.service.ViService;
import io.v.nutz.sys.services.SysUnitService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls;
@@ -1,11 +1,11 @@
package io.v.nutz.zhgh.activity.controller.school;
import io.v.nutz.zhgh.activity.models.ActivityPlan;
import io.v.nutz.zhgh.activity.services.ActivityPlanService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.zhgh.activity.models.ActivityPlan;
import io.v.nutz.zhgh.activity.services.ActivityPlanService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.ioc.loader.annotation.Inject;
@@ -1,13 +1,13 @@
package io.v.nutz.zhgh.activity.controller.school;
import cn.wizzer.framework.base.Result;
import io.v.nutz.zhgh.activity.models.ActivityResults;
import io.v.nutz.zhgh.activity.models.ActivitySchoolEvent;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.service.ViService;
import io.v.nutz.sys.models.Sys_union;
import io.v.nutz.sys.services.SysUnionService;
import io.v.nutz.zhgh.activity.models.ActivityResults;
import io.v.nutz.zhgh.activity.models.ActivitySchoolEvent;
import lombok.Data;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -6,19 +6,19 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.wizzer.framework.base.Result;
import io.v.nutz.sys.models.*;
import io.v.nutz.zhgh.activity.controller.school.constant.SchoolActivityApplyExportEntity;
import io.v.nutz.zhgh.activity.models.*;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.service.BaseService;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.utils.ViTool;
import io.v.nutz.sys.models.*;
import io.v.nutz.sys.services.SysClubService;
import io.v.nutz.sys.services.SysUnionService;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.base.utils.ViTool;
import io.v.nutz.zhgh.activity.controller.school.constant.SchoolActivityApplyExportEntity;
import io.v.nutz.zhgh.activity.models.*;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -1,17 +1,17 @@
package io.v.nutz.zhgh.activity.controller.school;
import io.v.nutz.zhgh.activity.models.ActivitySchoolEvent;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.RCSCloudAPI;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.RCSCloudAPI;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.sys.services.SysUnionService;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivitySchoolEvent;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Cnd;
@@ -165,9 +165,9 @@ public class ActivityRemindController {
public Object sendRemind(@Param(value = "phone", required = false) String phone,
@Param(value = "unionname", required = false) String unionname) {
String[] pe = phone.split(",");
/*for (String p : pe) {
RCSCloudAPI.sendTplSms("399ac7a7901c49df9f5939d0f10d566b", p, "@1@=" + unionname + "", "");
}*/
for (String p : pe) {
// RCSCloudAPI.sendTplSms("399ac7a7901c49df9f5939d0f10d566b", p, "@1@=" + unionname + "", "");
}
return null;
}
@@ -203,9 +203,9 @@ public class ActivityRemindController {
return v.getInt("num") <= 0 && v.getString("telephone") != null;
}).collect(Collectors.toList());
/*collect.forEach(v -> {
RCSCloudAPI.sendTplSms("399ac7a7901c49df9f5939d0f10d566b", v.getString("telephone"), "@1@=" + v.getString("unionname") + "", "");
});*/
collect.forEach(v -> {
// RCSCloudAPI.sendTplSms("399ac7a7901c49df9f5939d0f10d566b", v.getString("telephone"), "@1@=" + v.getString("unionname") + "", "");
});
return null;
}
@@ -1,17 +1,17 @@
package io.v.nutz.zhgh.activity.controller.school;
import cn.wizzer.framework.base.Result;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.zhgh.activity.models.ActivityBasicUnion;
import io.v.nutz.zhgh.activity.models.ActivityBasicUnit;
import io.v.nutz.zhgh.activity.models.ActivityResults;
import io.v.nutz.zhgh.activity.models.ActivitySchoolApply;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.sys.models.Sys_user;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.crypto.hash.Sha256Hash;
@@ -1,10 +1,10 @@
package io.v.nutz.zhgh.activity.controller.school;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Chain;
@@ -7,16 +7,16 @@ import cn.wizzer.framework.base.Result;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.OfficeTemplateUtil;
import io.v.nutz.base.utils.ViTool;
import io.v.nutz.sys.models.Sys_union;
import io.v.nutz.sys.services.SysUnionService;
import io.v.nutz.zhgh.activity.models.ActivityResults;
import io.v.nutz.zhgh.activity.models.ActivitySchool;
import io.v.nutz.zhgh.activity.models.ActivitySchoolEvent;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.OfficeTemplateUtil;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.service.ViService;
import io.v.nutz.sys.models.Sys_union;
import io.v.nutz.sys.services.SysUnionService;
import io.v.nutz.base.utils.ViTool;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -4,13 +4,13 @@ package io.v.nutz.zhgh.activity.controller.school;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import io.v.nutz.zhgh.activity.models.ActivitySchool;
import io.v.nutz.zhgh.activity.models.ActivitySchoolEvent;
import io.v.nutz.base.service.BaseService;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.service.BaseService;
import io.v.nutz.base.utils.ViTool;
import io.v.nutz.sys.models.Sys_union;
import io.v.nutz.sys.services.SysUnionService;
import io.v.nutz.base.utils.ViTool;
import io.v.nutz.zhgh.activity.models.ActivitySchool;
import io.v.nutz.zhgh.activity.models.ActivitySchoolEvent;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.nutz.dao.Cnd;
@@ -2,9 +2,9 @@ package io.v.nutz.zhgh.activity.controller.site;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.result.Result;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.result.Result;
import io.v.nutz.web.commons.slog.annotation.SLog;
import io.v.nutz.zhgh.activity.models.ActivitySiteEquipment;
import io.v.nutz.zhgh.activity.services.ActivitySiteEquipmentService;
@@ -3,19 +3,16 @@ package io.v.nutz.zhgh.activity.controller.site;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.model.AuditState;
import io.v.nutz.base.result.Result;
import io.v.nutz.base.utils.MsgApi;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.model.AuditState;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.sys.models.Sys_user_role;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.web.commons.slog.annotation.SLog;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivitySiteEquipment;
import io.v.nutz.zhgh.activity.models.ActivitySiteInfo;
import io.v.nutz.zhgh.activity.models.ActivitySiteReserve;
@@ -39,9 +36,9 @@ import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@IocBean
@@ -133,7 +130,7 @@ public class SiteReserveApplyController {
// String content = siteInfo.getName() + ",您有一条场地预约待审核,请您通过门户网站或点击详情登录智慧工会平台进行审核。,"
// + activitySiteReserve.getReserve_person_username();
// //msgApi.sendWxMsg("智慧工会【场地预约】",auditUrl,"textcard",content,auditLoginNameList,"");
msgApi.sendWxMsg("智慧工会【场地预约】",auditUrl,"textcard",content,auditLoginNameList,"");
} else {
//离退休 祝鸿 审核
List<String> auditLoginNameList = Lang.list("1019981325");
@@ -142,7 +139,7 @@ public class SiteReserveApplyController {
String content = "离退休工作处的%s老师申请了一条%s的场地预约,请您通过门户网站或点击详情登录智慧工会平台进行审核"
.formatted(ShiroUtil.getPrincipalProperty("username"),
siteInfo.getName());
// //msgApi.sendWxMsg("智慧工会【场地预约(离退休)】",auditUrl,"textcard",content,auditLoginNameList,"");
msgApi.sendWxMsg("智慧工会【场地预约(离退休)】",auditUrl,"textcard",content,auditLoginNameList,"");
}
return null;
@@ -8,8 +8,8 @@ import cn.wizzer.framework.base.Result;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.page.Pagination;
import io.v.nutz.base.utils.MsgApi;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.utils.MsgApi;
import io.v.nutz.sys.services.SysUnitService;
import io.v.nutz.sys.services.SysUserService;
import io.v.nutz.web.commons.utils.ShiroUtil;
@@ -9,7 +9,6 @@ import io.v.nutz.base.page.Pagination;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.BaseService;
import io.v.nutz.base.utils.MsgApi;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.web.commons.slog.annotation.SLog;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivitySiteInfo;
@@ -159,14 +158,14 @@ public class SiteRetireProcessController {
.formatted(reserve_person,
siteInfo.getName());
// //msgApi.sendWxMsg("智慧工会【场地预约(离退休)】",auditUrl,"textcard",content,List.of("1019911404"),"");
msgApi.sendWxMsg("智慧工会【场地预约(离退休)】",auditUrl,"textcard",content,List.of("1019911404"),"");
} else {
//审核拒绝,发送短信给本人
String content = "%s老师您好!您预约的%s申请被离退休工作处处长拒绝,您可重新提交其他场地或时间段的申请"
.formatted(reserve_person,
siteInfo.getName());
System.out.println(content);
// //msgApi.sendWxMsg("智慧工会【场地预约(离退休)】","","text",content,List.of(reserve_person_login_name),"");
msgApi.sendWxMsg("智慧工会【场地预约(离退休)】","","text",content,List.of(reserve_person_login_name),"");
}
return null;
}
@@ -4,13 +4,13 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.page.Pagination;
import io.v.nutz.base.utils.MsgApi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.page.Pagination;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.base.utils.MsgApi;
import io.v.nutz.web.commons.slog.annotation.SLog;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivitySiteInfo;
import io.v.nutz.zhgh.activity.models.ActivitySiteReserve;
import io.v.nutz.zhgh.activity.services.SiteReserveService;
@@ -157,13 +157,13 @@ public class SiteReviewController {
String content = "%s老师您好!您预约的%s申请已通过审批,祝您使用愉快!"
.formatted(reserve_person,
siteInfo.getName());
////msgApi.sendWxMsg(siteReserve.getIsRetire() ? "智慧工会【场地预约(离退休)】" : "智慧工会【场地预约】","","text",content,List.of(reserve_person_login_name),"");
msgApi.sendWxMsg(siteReserve.getIsRetire() ? "智慧工会【场地预约(离退休)】" : "智慧工会【场地预约】","","text",content,List.of(reserve_person_login_name),"");
} else {
//审核拒绝,发送短信给本人
String content = "%s老师您好!您预约的%s申请被校工会拒绝,您可重新提交其他场地或时间段的申请"
.formatted(reserve_person,
siteInfo.getName());
////msgApi.sendWxMsg(siteReserve.getIsRetire() ? "智慧工会【场地预约(离退休)】" : "智慧工会【场地预约】","","text",content,List.of(reserve_person_login_name),"");
msgApi.sendWxMsg(siteReserve.getIsRetire() ? "智慧工会【场地预约(离退休)】" : "智慧工会【场地预约】","","text",content,List.of(reserve_person_login_name),"");
}
return null;
@@ -3,15 +3,15 @@ package io.v.nutz.zhgh.activity.controller.site;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.page.Pagination;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.BaseService;
import io.v.nutz.base.utils.MsgApi;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.web.commons.slog.annotation.SLog;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivitySiteInfo;
import io.v.nutz.zhgh.activity.models.ActivitySiteReserve;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -151,14 +151,14 @@ public class SiteUnionProcessController {
reserve_person,
siteInfo.getName());
////msgApi.sendWxMsg("智慧工会【场地预约】",auditUrl,"textcard",content,List.of("1019911404"),"");
msgApi.sendWxMsg("智慧工会【场地预约】",auditUrl,"textcard",content,List.of("1019911404"),"");
} else {
//审核拒绝,发送短信给本人
String content = "%s老师您好!您预约的%s申请被分工会拒绝,您可重新提交其他场地或时间段的申请"
.formatted(reserve_person,
siteInfo.getName());
System.out.println(content);
////msgApi.sendWxMsg("智慧工会【场地预约】","","text",content,List.of(reserve_person_login_name),"");
msgApi.sendWxMsg("智慧工会【场地预约】","","text",content,List.of(reserve_person_login_name),"");
}
return null;
}
@@ -1,76 +0,0 @@
package io.v.nutz.zhgh.activity.controller;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* @version 1.0
* @Author zzr
* @name:test
* @Date 2024/7/3 10:53
* @注释
*/
public class test extends JFrame {
public test() {
setTitle("QR Code Example");
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
// 设置抗锯齿
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// 绘制文本
g2d.drawString("添加企业微信与我联系", 50, 50);
// 绘制图像
try {
BufferedImage image = ImageIO.read(new File("C:/temp/01.jpg"));
g2d.drawImage(image, 50, 100, this);
} catch (IOException e) {
e.printStackTrace();
}
// 生成二维码
String qrCodeText = "https://www.baidu.com";
Map<EncodeHintType, Object> hints = new HashMap<>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix bitMatrix = null;
try {
bitMatrix = new MultiFormatWriter().encode(qrCodeText, BarcodeFormat.QR_CODE, 200, 200, hints);
} catch (WriterException e) {
e.printStackTrace();
}
// 将二维码转换为BufferedImage
BufferedImage qrCodeImage = MatrixToImageWriter.toBufferedImage(bitMatrix);
// 绘制二维码
g2d.drawImage(qrCodeImage, 50, 200, this);
}
public static void main(String[] args) {
test frame = new test();
frame.setVisible(true);
}
}
@@ -1,13 +1,13 @@
package io.v.nutz.zhgh.activity.controller.union;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.service.BaseService;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.BaseService;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Chain;
@@ -2,9 +2,9 @@ package io.v.nutz.zhgh.activity.controller.union;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.base.service.BaseService;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.service.SimpleService;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls;
@@ -7,20 +7,21 @@ import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.result.Result;
import io.v.nutz.base.utils.*;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.utils.OfficeTemplateUtil;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.utils.ViTool;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.sys.services.SysMsgService;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import io.v.nutz.zhgh.activity.models.ActivityTissuePerson;
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import io.v.nutz.zhgh.activity.services.ActivityTissueService;
import io.v.nutz.zhgh.mobileHome.service.MobileHomeService;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.sys.services.SysMsgService;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
@@ -47,7 +48,6 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author: Aaron
@@ -77,9 +77,6 @@ public class ActivityUnionManageController {
@Inject
private SysMsgService sysMsgService;
@Inject
private MsgApi msgApi;
@Inject("ActivityTissuePerson")
private ViService<ActivityTissuePerson> tissuePersonService;
@@ -178,9 +175,9 @@ public class ActivityUnionManageController {
});
tissue.getCover();
// if (tissue.getIsPushHome()!=0) {
// mobileHomeService.handle(tissue, "ActivityTissue", "/mobile/activity/unionActivity", tissue.getIsPushHome());
// }
if (tissue.getIsPushHome()!=0) {
mobileHomeService.handle(tissue, "ActivityTissue", "/mobile/activity/unionActivity", tissue.getIsPushHome());
}
activityTissueService.insertWith(tissue, "tissuePersonList");
activitySchoolService.dao().insert(tissue.getGoods());
@@ -323,36 +320,4 @@ public class ActivityUnionManageController {
activityTissueService.update(Chain.make("isDisabled", "1".equals(isDisabled)), Cnd.where("id", "=", id));
return null;
}
/**
* 活动发送短信
* @param activityId
* @param groupId
* @param msgUrl
* @return
*/
@At
@RequiresPermissions(value = {"activity.union.info", "activity.club.info", "activity.school.info2"}, logical = Logical.OR)
public Object doSendMsg(String activityId,String groupId,String msgUrl){
ActivityTissue activityTissue = sysUserService.dao().fetch(ActivityTissue.class, Cnd.where("id", "=", activityId));
List<ActivityUserScope> userScopeList = sysUserService.dao().query(ActivityUserScope.class, Cnd.where("groupId", "=", groupId));
List<String> userIds = userScopeList.stream().map(ActivityUserScope::getUserId).collect(Collectors.toList());
List<Sys_user> users = sysUserService.query(Cnd.where("id", "in", userIds));
List<String> userLoginNameList = users.stream().map(Sys_user::getLoginname).collect(Collectors.toList());
// //msgApi.sendWxMsg("会议通知", "", "text", "常熟理工学院五届二次教代会会议通知\\<a href=https://zhgh.cslg.edu.cn/1711354503398.jpg\\>查看更多</a>", List.of("17386049197"));
String msgText = ShiroUtil.getPrincipalProperty("username") + "邀请您参加【" + activityTissue.getName() + "】活动,请您点击卡片跳转至活动报名页";
try {
////msgApi.sendWxMsg("智慧工会【活动管理】", msgUrl, "textcard", msgText, userLoginNameList, "");
return Result.success();
} catch (Exception e){
e.printStackTrace();
return Result.error();
}
}
}
@@ -1,11 +1,11 @@
package io.v.nutz.zhgh.activity.controller.union;
import io.v.nutz.zhgh.activity.models.ActivityPlan;
import io.v.nutz.zhgh.activity.services.ActivityPlanService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.zhgh.activity.models.ActivityPlan;
import io.v.nutz.zhgh.activity.services.ActivityPlanService;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.ioc.loader.annotation.Inject;
@@ -64,6 +64,7 @@ public class ActivityUnionUserStatisticsController {
@Param(value = "type", required = false) Integer type,
@Param(value = "activityId", required = false) String activityId,
@Param(value = "unionId", required = false) String unionId) {
ActivityTissue tissue = baseService.dao().fetch(ActivityTissue.class, activityId);
Sql sql = Sqls.create("""
SELECT
@@ -74,6 +75,8 @@ public class ActivityUnionUserStatisticsController {
u.unionname,
u.sex,
u.mobile,
atp.applyUserId,
atp.id atpId ,
atp.applyDateTime
FROM
`activity_tissue_person` atp
@@ -84,10 +87,12 @@ public class ActivityUnionUserStatisticsController {
cnd.and("atp.tissueId", "=", activityId);
cnd.andEX("u.unionId", "=", unionId);
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
if (type == 40002) {
cnd.and("unionId", "=", Vi.getUnionId());
} else if (type == 40003) {
cnd.and("atp.id", "in", " SELECT userid FROM sys_club_user WHERE clubid = '%s' ".formatted(vi.getClubId()));
if (!tissue.getUserId().equals(ShiroUtil.getUserId())) {
if (type == 40002) {
cnd.and("unionId", "=", Vi.getUnionId());
} else if (type == 40003) {
cnd.and("u.id", "in", " SELECT userid FROM sys_club_user WHERE clubid = '%s' ".formatted(vi.getClubId()));
}
}
}
if (Strings.isNotBlank(page.getSearchName()) && Strings.isNotBlank(page.getSearchKeyword())) {
@@ -108,7 +113,11 @@ public class ActivityUnionUserStatisticsController {
@RequiresPermissions(value = {"activity.school.user.statistics", "activity.club.user.statistics", "activity.union.user.statistics"}, logical = Logical.OR)
public Object getActivityByYearOrType(@Param(value = "year", required = false) Integer year,
@Param(value = "type", required = false) Integer type) {
return baseService.dao().query(ActivityTissue.class, Cnd.where("type", "=", type).andEX("YEAR(startTime)", "=", year).desc("startTime"));
Cnd cnd = Cnd.NEW();
cnd.and("type", "=", type);
cnd.andEX("YEAR(startTime)", "=", year);
cnd.desc("startTime");
return baseService.dao().query(ActivityTissue.class, cnd);
}
@@ -3,12 +3,12 @@ package io.v.nutz.zhgh.activity.controller.union;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.base.Result;
import cn.wizzer.framework.base.service.BaseService;
import io.v.nutz.zhgh.activity.models.ActivityYearSummary;
import io.v.nutz.zhgh.activity.services.ActivityYearSummaryService;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivityYearSummary;
import io.v.nutz.zhgh.activity.services.ActivityYearSummaryService;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.boot.starter.ftp.FtpService;
@@ -184,6 +184,7 @@ public class ActivitySchoolApply implements Serializable {
@Excel(name = "身份", width = 40)
private String sf;
private int age;
private int index;
}
@@ -1,7 +1,7 @@
package io.v.nutz.zhgh.activity.services;
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
import io.v.nutz.base.service.ViService;
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
import org.nutz.dao.Cnd;
import org.nutz.dao.sql.Sql;
@@ -1,9 +1,9 @@
package io.v.nutz.zhgh.activity.services;
import io.v.nutz.zhgh.activity.models.ActivityPlan;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.zhgh.activity.models.ActivityPlan;
/**
* @author: Aaron
@@ -1,7 +1,7 @@
package io.v.nutz.zhgh.activity.services;
import io.v.nutz.zhgh.activity.models.ActivitySchoolApply;
import io.v.nutz.base.service.ViService;
import io.v.nutz.zhgh.activity.models.ActivitySchoolApply;
import java.util.List;
@@ -1,9 +1,9 @@
package io.v.nutz.zhgh.activity.services;
import io.v.nutz.base.service.ViService;
import io.v.nutz.zhgh.activity.models.ActivitySchool;
import io.v.nutz.zhgh.activity.models.ActivitySchoolEvent;
import io.v.nutz.base.service.ViService;
/**
* @author Aaron
@@ -1,8 +1,8 @@
package io.v.nutz.zhgh.activity.services;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
/**
* @author: Aaron
@@ -1,7 +1,7 @@
package io.v.nutz.zhgh.activity.services;
import io.v.nutz.zhgh.activity.models.ActivityType;
import io.v.nutz.base.service.ViService;
import io.v.nutz.zhgh.activity.models.ActivityType;
/**
* 会议类型 流程 service
@@ -1,7 +1,7 @@
package io.v.nutz.zhgh.activity.services;
import io.v.nutz.zhgh.activity.models.ActivityYearSummary;
import io.v.nutz.base.service.ViService;
import io.v.nutz.zhgh.activity.models.ActivityYearSummary;
/**
* @Author JyuHsin
@@ -1,11 +1,8 @@
package io.v.nutz.zhgh.activity.services;
import io.v.nutz.zhgh.activity.models.ActivitySiteReserve;
import io.v.nutz.base.service.BaseService;
import io.v.nutz.zhgh.activity.models.ActivitySiteReserve;
public interface SiteReserveService extends BaseService<ActivitySiteReserve> {
String getTimeStr(String time);
}
@@ -1,10 +1,10 @@
package io.v.nutz.zhgh.activity.services.impl;
import cn.hutool.core.collection.CollectionUtil;
import io.v.nutz.base.service.impl.ViServiceImpl;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
import io.v.nutz.zhgh.activity.services.ActivityBasicScopeService;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.service.impl.ViServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
@@ -1,13 +1,13 @@
package io.v.nutz.zhgh.activity.services.impl;
import io.v.nutz.zhgh.activity.models.ActivitySiteInfo;
import io.v.nutz.zhgh.activity.models.ActivityType;
import io.v.nutz.zhgh.activity.services.ActivityCommonService;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.enums.AuditTypeEnum;
import io.v.nutz.base.model.AuditState;
import io.v.nutz.base.service.impl.ViServiceImpl;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivitySiteInfo;
import io.v.nutz.zhgh.activity.models.ActivityType;
import io.v.nutz.zhgh.activity.services.ActivityCommonService;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
@@ -1,12 +1,12 @@
package io.v.nutz.zhgh.activity.services.impl;
import io.v.nutz.zhgh.activity.models.ActivityPlan;
import io.v.nutz.zhgh.activity.services.ActivityPlanService;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.impl.ViServiceImpl;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivityPlan;
import io.v.nutz.zhgh.activity.services.ActivityPlanService;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
@@ -1,9 +1,9 @@
package io.v.nutz.zhgh.activity.services.impl;
import io.v.nutz.base.service.impl.ViServiceImpl;
import io.v.nutz.zhgh.activity.models.ActivitySchoolApply;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.base.service.impl.ViServiceImpl;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
@@ -1,13 +1,13 @@
package io.v.nutz.zhgh.activity.services.impl;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.service.impl.ViServiceImpl;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.zhgh.activity.models.*;
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import io.v.nutz.zhgh.activity.services.ActivitySchoolTeamService;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.service.impl.ViServiceImpl;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
@@ -1,18 +1,18 @@
package io.v.nutz.zhgh.activity.services.impl;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.base.model.Goods;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import io.v.nutz.zhgh.activity.models.ActivityTissuePerson;
import io.v.nutz.zhgh.activity.services.ActivityTissueService;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.zhgh.jf.model.ActivityBx;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.model.Goods;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.service.impl.ViServiceImpl;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import io.v.nutz.zhgh.activity.models.ActivityTissuePerson;
import io.v.nutz.zhgh.activity.services.ActivityTissueService;
import io.v.nutz.zhgh.jf.model.ActivityBx;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
@@ -76,11 +76,12 @@ public class ActivityTissueServiceImpl extends ViServiceImpl<ActivityTissue> imp
}
if (!ShiroUtil.hasAnyRoles("sysadmin,H10,A06")) {
if (ShiroUtil.hasRole("H04")) {
cnd.and("tissue.userId", "=", ShiroUtil.getUserId());
/* if (ShiroUtil.hasRole("H04")) {
cnd.and("tissue.unionId", "in", vi.getMangeUnionStr());
} else if (ShiroUtil.hasRole("club01")) {
cnd.and("tissue.clubId", "in", vi.getMangeClubStr());
}
}*/
}
if (StrUtil.isNotBlank(page.getPageOrderName()) && StrUtil.isNotBlank(page.getPageOrderBy())) {
@@ -1,11 +1,11 @@
package io.v.nutz.zhgh.activity.services.impl;
import io.v.nutz.zhgh.activity.models.ActivityType;
import io.v.nutz.zhgh.activity.services.ActivityCommonService;
import io.v.nutz.zhgh.activity.services.ActivityTypeService;
import io.v.nutz.base.model.AuditState;
import io.v.nutz.base.model.AuditStateUser;
import io.v.nutz.base.service.impl.ViServiceImpl;
import io.v.nutz.zhgh.activity.models.ActivityType;
import io.v.nutz.zhgh.activity.services.ActivityCommonService;
import io.v.nutz.zhgh.activity.services.ActivityTypeService;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
@@ -1,8 +1,8 @@
package io.v.nutz.zhgh.activity.services.impl;
import io.v.nutz.base.service.impl.ViServiceImpl;
import io.v.nutz.zhgh.activity.models.ActivityYearSummary;
import io.v.nutz.zhgh.activity.services.ActivityYearSummaryService;
import io.v.nutz.base.service.impl.ViServiceImpl;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.IocBean;
@@ -1,15 +1,12 @@
package io.v.nutz.zhgh.activity.services.impl;
import io.v.nutz.base.service.impl.BaseServiceImpl;
import io.v.nutz.zhgh.activity.models.ActivitySiteReserve;
import io.v.nutz.zhgh.activity.services.SiteReserveService;
import io.v.nutz.base.service.impl.BaseServiceImpl;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.IocBean;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* @author: Aaron
* @create: 2020-12-13 14:32
@@ -20,15 +17,4 @@ public class SiteReserveServiceImpl extends BaseServiceImpl<ActivitySiteReserve>
public SiteReserveServiceImpl(Dao dao) {
super(dao);
}
@Override
public String getTimeStr(String time) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 解析字符串为LocalDateTime对象
LocalDateTime dateTime = LocalDateTime.parse(time, formatter);
// 只包含时分的格式化器
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm");
return dateTime.toLocalTime().format(timeFormatter);
}
}
@@ -1,23 +1,19 @@
package io.v.nutz.zhgh.evaluate.controller;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.result.Result;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.sys.models.Sys_union;
import io.v.nutz.sys.services.SysUnionService;
import io.v.nutz.web.commons.slog.annotation.SLog;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.evaluate.handler.EvaluateToDoHandler;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import io.v.nutz.zhgh.evaluate.service.EvaluateApplyService;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.sys.models.Sys_union;
import io.v.nutz.sys.models.Sys_unit;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.sys.services.SysUnionService;
import io.v.nutz.web.commons.slog.annotation.SLog;
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.aop.interceptor.ioc.TransAop;
@@ -25,15 +21,14 @@ import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Strings;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import org.nutz.trans.Trans;
import java.util.List;
import java.util.Map;
@@ -98,6 +93,12 @@ public class EvaluateApplyController {
if (Strings.isNotBlank(evaluateApply.getId())) {
evaluateApplyService.updateIgnoreNull(evaluateApply);
} else {
//判断有没有申请过
SqlExpressionGroup group = Cnd.exps("userId", "=", ShiroUtil.getPlatformUid()).or("userId", "=", ShiroUtil.getPlatformUsername());
int count = evaluateApplyService.count(Cnd.NEW().and("evaluateId", "=", evaluateApply.getEvaluateId()).and(group));
if(count > 0) {
return cn.wizzer.framework.base.Result.error("抱歉,您已申请过此评优评先,无法提交");
}
evaluateApply.setApplyTime(DateUtil.getDate());
evaluateApply.setStateId(1400);
evaluateApplyService.insert(evaluateApply);
@@ -112,6 +113,7 @@ public class EvaluateApplyController {
@RequiresPermissions("evaluate.apply")
@SLog(tag = "申请评优评先新增、修改", param = true, result = true)
public Object doSubmit(EvaluateApply evaluateApply) {
evaluateApply.setUserId(ShiroUtil.getPrincipalProperty("id").toString());
if (!"8a8b455b964a41f2bbf18a4896cbd83e".equals(evaluateApply.getHonorTypeId())) {
@@ -129,6 +131,20 @@ public class EvaluateApplyController {
evaluateApply.setSchoolAuditId(null);
evaluateApplyService.update(evaluateApply);
} else {
//判断时间有没有过
Evaluate eva = evaluateApplyService.dao().fetch(Evaluate.class, evaluateApply.getEvaluateId());
DateTime currentTime = cn.hutool.core.date.DateUtil.date();
DateTime targetTimeStr = cn.hutool.core.date.DateUtil.parse(eva.getEndTime());
if(cn.hutool.core.date.DateUtil.compare(currentTime, targetTimeStr) > 0) {
return cn.wizzer.framework.base.Result.error("抱歉,申请时间已过,无法提交");
}
//判断有没有申请过
SqlExpressionGroup group = Cnd.exps("userId", "=", ShiroUtil.getPlatformUid()).or("userId", "=", ShiroUtil.getPlatformUsername());
int count = evaluateApplyService.count(Cnd.NEW().and("evaluateId", "=", evaluateApply.getEvaluateId()).and(group));
if(count > 0) {
return cn.wizzer.framework.base.Result.error("抱歉,您已申请过此评优评先,无法提交");
}
evaluateApply.setApplyTime(DateUtil.getDate());
evaluateApply.setStateId("8a8b455b964a41f2bbf18a4896cbd83e".equals(evaluateApply.getHonorTypeId()) ? 1600 : 1800);
evaluateApplyService.insert(evaluateApply);
@@ -3,14 +3,14 @@ package io.v.nutz.zhgh.evaluate.controller;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.base.Result;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.sys.services.SysMsgService;
import io.v.nutz.web.commons.slog.annotation.SLog;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import io.v.nutz.zhgh.evaluate.service.EvaluateService;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.sys.services.SysMsgService;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.web.commons.slog.annotation.SLog;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -2,18 +2,17 @@ package io.v.nutz.zhgh.evaluate.controller;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.web.commons.slog.annotation.SLog;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
@@ -45,7 +44,7 @@ public class EvaluatePartyAuditController {
@Inject
private Dao dao;
@At("")
@RequiresPermissions("evaluate.audit.party")
@@ -5,24 +5,23 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.zhgh.evaluate.handler.EvaluateToDoHandler;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.utils.ViTool;
import io.v.nutz.sys.models.Sys_file;
import io.v.nutz.sys.models.Sys_union;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.sys.services.SysUnionService;
import io.v.nutz.sys.services.SysUserService;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.base.utils.ViTool;
import io.v.nutz.web.commons.slog.annotation.SLog;
import io.v.nutz.web.commons.utils.FileUtil;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.evaluate.handler.EvaluateToDoHandler;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import org.apache.commons.io.IOUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -208,6 +207,7 @@ public class EvaluateSchoolAuditController {
}
@At
@Ok("void")
@RequiresPermissions("evaluate.audit.school")
public void exportTableData(String data, HttpServletResponse response) {
NutMap map = Json.fromJson(NutMap.class, data);
@@ -5,14 +5,13 @@ import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.OfficeTemplateUtil;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.OfficeTemplateUtil;
import io.v.nutz.web.commons.slog.annotation.SLog;
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;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.ioc.loader.annotation.Inject;
@@ -26,7 +25,6 @@ import org.nutz.mvc.annotation.Param;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
@@ -64,14 +62,14 @@ public class EvaluateSummaryController {
@Param(value = "unitId", required = false) String unitId,
@Param(value = "honorType", required = false) String honorType,
@Param(value = "evaluateId", required = false) String evaluateId) {
CndPlus cnd = CndPlus.create();
Cnd cnd = Cnd.NEW();
Sql sql = Sqls.create("""
SELECT
ea.*,
e.NAME AS evaluateName,
unit.NAME AS unitName,
us.userName
us.userName as userName
FROM
evaluate_apply ea
LEFT JOIN evaluate e ON e.id = ea.evaluateId
@@ -81,11 +79,11 @@ public class EvaluateSummaryController {
$condition
""");
cnd.andEx("ea.evaluateId", "=", evaluateId);
cnd.andEx("YEAR(ea.applyTime)", "=", year);
cnd.andEx("ea.unionid", "=", unionId);
cnd.andEx("us.unitid", "=", unitId);
cnd.andEx("ea.honorTypeId", "=", honorType);
cnd.andEX("ea.evaluateId", "=", evaluateId);
cnd.andEX("YEAR(ea.applyTime)", "=", year);
cnd.andEX("ea.unionid", "=", unionId);
cnd.andEX("us.unitid", "=", unitId);
cnd.andEX("ea.honorTypeId", "=", honorType);
if(!ShiroUtil.hasAnyRoles("sysadmin") || ShiroUtil.hasAnyRoles("H10")) {
cnd.and("e.userid", "=", ShiroUtil.getPrincipalProperty("id"));
@@ -2,20 +2,17 @@ package io.v.nutz.zhgh.evaluate.controller;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.zhgh.evaluate.handler.EvaluateToDoHandler;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.sys.models.Sys_union;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.web.commons.slog.annotation.SLog;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.evaluate.handler.EvaluateToDoHandler;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Chain;
@@ -26,13 +23,10 @@ import org.nutz.dao.sql.Sql;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import java.util.List;
/**
* @author zhf
* @date 2021/11/19 14:36
@@ -156,7 +150,7 @@ public class EvaluateUnionAuditController {
// //sendMsg.pushWeChatMsg("评优评先", msg, map.getString("loginname"));
// }
// } else {
// String msg = "%s老师您好,您于%s申请的【%s】评优评先,在分工会审核时被驳回!"
// String msg = "%s老师您好,您于%s申请的【%s】评优评先,在院级工会审核时被驳回!"
// .formatted(applyUser.getUsername(), evaluateApply.getApplyTime(), evaluate.getName());
// //sendMsg.pushWeChatMsg("评优评先", msg, applyUser.getLoginname());
// }
@@ -181,7 +175,7 @@ public class EvaluateUnionAuditController {
//回到初始状态,审核记录可以不用清除,让申请人能看到是因为什么原因退回
evaluateApplyViService.update(Chain.make("stateId", 1400).add("unionAuditId", audit.getId()), Cnd.where("id", "=", id));
//退回发短信
String msg = "%s老师您好,您于%s申请的【%s】评优评先,在分工会审核时被退回!"
String msg = "%s老师您好,您于%s申请的【%s】评优评先,在院级工会审核时被退回!"
.formatted(applyUser.getUsername(), evaluateApply.getApplyTime(), evaluate.getName());
//sendMsg.pushWeChatMsg("评优评先", msg, applyUser.getLoginname());
@@ -2,20 +2,19 @@ package io.v.nutz.zhgh.evaluate.controller;
import cn.hutool.core.util.StrUtil;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.ViService;
import io.v.nutz.base.utils.Roles;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.sys.models.Sys_union;
import io.v.nutz.sys.models.Sys_unit;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.web.commons.slog.annotation.SLog;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
@@ -47,7 +46,7 @@ public class EvaluateUnitAuditController {
@Inject
private Dao dao;
@At("")
@RequiresPermissions("evaluate.audit.unit")
@@ -131,7 +130,7 @@ public class EvaluateUnitAuditController {
$condition
""");
cndPlus.andEx("ur.roleId", "=", Roles.UNION_MANGER);
cndPlus.andEx("ur.unionId", "=", ((Sys_union) io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("union")).getId());
cndPlus.andEx("ur.unionId", "=", ((Sys_union) ShiroUtil.getPrincipalProperty("union")).getId());
sql.setCondition(cndPlus);
List<NutMap> userList = evaluateApplyViService.listMap(sql);
for (NutMap map : userList) {
@@ -7,8 +7,6 @@ import io.v.nutz.sys.services.impl.SysLocalProcessServiceImpl;
import io.v.nutz.web.commons.base.Globals;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import io.v.nutz.zhgh.medicalMutualAidFund.constant.MedicalMutualAidFundAuditStateConstant;
import io.v.nutz.zhgh.medicalMutualAidFund.model.MedicalMutualAidFund;
import lombok.Getter;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
@@ -25,7 +23,7 @@ public enum EvaluateToDoHandler {
START_PROCESS() {
@Override
public void exec(EvaluateApply e) {
Sql sql = Sqls.fetchString(Sqls.create("select username from sys_user where id = @id").setParam("userId", e.getUserId()).toString());
Sql sql = Sqls.fetchString(Sqls.create("select username from sys_user where id = @id").setParam("id", e.getUserId()).toString());
dao.execute(sql);
String username = sql.getString();
@@ -34,8 +32,8 @@ public enum EvaluateToDoHandler {
"evaluate_apply@" + e.getId(),
"",
e.getUserId(),
Globals.AppDomain + "/platform/fw/difficulty/applylist",
Globals.AppDomain + "/platform/fw/difficulty/applylist"
Globals.AppDomain + "/platform/evaluate/apply",
Globals.AppDomain + "/platform/evaluate/apply"
);
}
@@ -120,7 +118,7 @@ public enum EvaluateToDoHandler {
"/platform/evaluate/audit/union"
);
localProcessService.updateProcessNodeName("medical_mutual_aid_fund@" + e.getId(), "分工会审核");
localProcessService.updateProcessNodeName("evaluate_apply@" + e.getId(), "分工会审核");
}
},
@@ -1,9 +1,9 @@
package io.v.nutz.zhgh.evaluate.service;
import io.v.nutz.base.page.Pagination;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.BaseService;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import io.v.nutz.base.query.PageForm;
import org.nutz.dao.Cnd;
/**
@@ -1,9 +1,9 @@
package io.v.nutz.zhgh.evaluate.service;
import io.v.nutz.base.page.Pagination;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.BaseService;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.base.query.PageForm;
import org.nutz.dao.Cnd;
import org.nutz.lang.util.NutMap;
@@ -1,6 +1,8 @@
package io.v.nutz.zhgh.evaluate.service.impl;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.page.Pagination;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.result.Result;
import io.v.nutz.base.service.impl.BaseServiceImpl;
import io.v.nutz.base.utils.FileService;
@@ -8,8 +10,6 @@ import io.v.nutz.base.utils.Vi;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.zhgh.evaluate.models.EvaluateApply;
import io.v.nutz.zhgh.evaluate.service.EvaluateApplyService;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.query.PageForm;
import lombok.extern.slf4j.Slf4j;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
@@ -1,12 +1,12 @@
package io.v.nutz.zhgh.evaluate.service.impl;
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
import io.v.nutz.base.page.Pagination;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.impl.BaseServiceImpl;
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
import io.v.nutz.zhgh.evaluate.models.Evaluate;
import io.v.nutz.zhgh.evaluate.models.EvaluateQuotaAllocation;
import io.v.nutz.zhgh.evaluate.service.EvaluateService;
import io.v.nutz.base.query.PageForm;
import lombok.extern.slf4j.Slf4j;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
@@ -84,6 +84,7 @@ public class HealthCheckupListController {
cnd.andEX("hcu.unitId", "=", unitId);
cnd.andEX("hcu.unionGroupId", "=", unionGroupId);
cnd.andEX("hcu.threeUnitId", "=", threeUnitId);
cnd.andEX("hcu.projectId","=",projectId);
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
cnd.andEX("hcu.unionId", "=", Vi.getUnionId());
@@ -184,9 +184,9 @@ public class HealthCheckupProjectMangeController {
List<String> userSelectionIds = list.stream().map(v->v.getString("id")).collect(Collectors.toList());
List<String> userIds = list.stream().map(v -> v.getString("selectUserId")).collect(Collectors.toList());
healthCheckupProjectService.dao().clear(HealthCheckupUser.class,Cnd.where("projectId","=",healthCheckupProject.getId()));
healthCheckupProjectService.dao().clear(HealthCheckupUserSelection.class,Cnd.where("selectUserId","in",userIds));
healthCheckupProjectService.dao().clear(HealthCheckupUserCompanion.class,Cnd.where("userSelectionId","in",userSelectionIds));
healthCheckupProjectService.dao().clear(HealthCheckupUser.class,Cnd.where("projectId","=",healthCheckupProject.getId()));
healthCheckupProjectService.addHealthCheckupUser(healthCheckupProject);
return null;
}
@@ -36,11 +36,11 @@ public class HealthCheckupSingleServiceImpl extends ViServiceImpl<HealthCheckupP
Sql sql = Sqls.create("""
SELECT
su.*,
(SELECT count( 1 ) FROM `health_checkup_user` hcu WHERE hcu.unionId = su.id $unionGroupIdCnd ) sumCount
(SELECT count( 1 ) FROM `health_checkup_user` hcu WHERE hcu.unionId = su.id and hcu.projectId = @projectId $unionGroupIdCnd ) sumCount
FROM
sys_union su
$condition
""");
""").setParam("projectId",projectId);
CndPlus cnd = CndPlus.create();
cnd.andEX("su.id","=",unionId);
cnd.asc("su.unioncode");
@@ -175,7 +175,7 @@ public class HealthCheckupSingleServiceImpl extends ViServiceImpl<HealthCheckupP
SELECT
GROUP_CONCAT( hcps.optionName )
FROM
welfare_project_user_selection hcus
health_checkup_user_selection hcus
LEFT JOIN `health_checkup_project_subject` hcps ON hcps.id = hcus.subjectId
WHERE
hcus.projectId = @projectId
@@ -203,11 +203,11 @@ public class HealthCheckupSingleServiceImpl extends ViServiceImpl<HealthCheckupP
u.idcard idCard,
u.mobile
FROM
`activity_user_scope` aus
`health_checkup_user` aus
LEFT JOIN `user` u ON u.id = aus.userId
$projectCnd $condition
""");
cnd.and("aus.groupId","=",project.getActivityGroupId());
// cnd.and("aus.groupId","=",project.getActivityGroupId());
sql.setVar("projectCnd", "AND u.id NOT IN ( SELECT selectUserId FROM `health_checkup_user_selection` WHERE projectId = '" + projectId + "' AND selectUserId IS NOT NULL )");
}
}
@@ -279,11 +279,11 @@ public class HealthCheckupSingleServiceImpl extends ViServiceImpl<HealthCheckupP
u.idcard idCard,
u.mobile
FROM
`activity_user_scope` aus
`health_checkup_user` aus
LEFT JOIN `user` u ON u.id = aus.userId
$projectCnd $condition
""");
cnd.and("aus.groupId","=",project.getActivityGroupId());
// cnd.and("aus.groupId","=",project.getActivityGroupId());
sql.setVar("projectCnd", "AND u.id NOT IN ( SELECT selectUserId FROM `health_checkup_user_selection` WHERE projectId = '" + projectId + "' AND selectUserId IS NOT NULL )");
}
}
@@ -103,7 +103,7 @@ public class ApplyController {
}
activityBxService.doAdd(activityBx);
if (Lang.isNotEmpty(loginNames)) {
////msgApi.sendWxMsg("活动申报", "", "text", activityBx.getUser_name() + "申请了一条活动申报【" + activityBx.getActivity_name() + "】,请前往智慧工会进行审核。", loginNames, null);
// msgApi.sendWxMsg("活动申报", "", "text", activityBx.getUser_name() + "申请了一条活动申报【" + activityBx.getActivity_name() + "】,请前往智慧工会进行审核。", loginNames, null);
NutMap map = new NutMap();
map.setv("userId",activityBx.getUser_id());
@@ -130,7 +130,7 @@ public class ActivityBxServiceImpl extends ViServiceImpl<ActivityBx> implements
sql.setCallback(Sqls.callback.map());
dao().execute(sql);
NutMap record = (NutMap) sql.getResult();
record.setv("Goods", dao().query("Goods", Cnd.where("reid", "=", record.getString("id"))));
record.setv("Goods", dao().query(Goods.class, Cnd.where("reid", "=", record.getString("id"))));
if (record.size() == 0) {
return null;
@@ -3,12 +3,12 @@ package io.v.nutz.zhgh.mobile.activity.site;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.page.Pagination;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.enums.AuditTypeEnum;
import io.v.nutz.base.utils.MsgApi;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.dao.CndPlus;
import io.v.nutz.base.enums.AuditTypeEnum;
import io.v.nutz.base.model.Audit;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.utils.MsgApi;
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.activity.services.ActivityCommonService;
@@ -1,8 +1,8 @@
package io.v.nutz.zhgh.mobile.activity.site;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.web.commons.slog.annotation.SLog;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivitySiteReserve;
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
@@ -3,8 +3,8 @@ package io.v.nutz.zhgh.mobile.activity.site;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.page.Pagination;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.MsgApi;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.utils.MsgApi;
import io.v.nutz.sys.services.SysUserService;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivitySiteInfo;
@@ -1,11 +1,11 @@
package io.v.nutz.zhgh.mobile.activity.unionActivity;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.SimpleService;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
@@ -2,17 +2,17 @@ package io.v.nutz.zhgh.mobile.activity.unionActivity;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.base.Result;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import io.v.nutz.zhgh.activity.models.ActivityTissuePerson;
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.base.service.SimpleService;
import io.v.nutz.base.utils.DateUtil;
import io.v.nutz.base.utils.Vi;
import io.v.nutz.base.query.PageForm;
import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.sys.models.User;
import io.v.nutz.web.commons.utils.ShiroUtil;
import io.v.nutz.zhgh.activity.models.ActivityTissue;
import io.v.nutz.zhgh.activity.models.ActivityTissuePerson;
import io.v.nutz.zhgh.activity.models.ActivityUserScope;
import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
@@ -31,7 +31,6 @@ import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import org.nutz.trans.Trans;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.locks.Lock;
@@ -121,9 +120,9 @@ public class UnionActivityRegisterController {
@ViReturn
@RequiresAuthentication
public Object pageData(PageForm pageForm,
@Param(value = "year",required = false) Integer year,
@Param(value = "activityStatus",required = false)int activityStatus,
@Param(value = "activityLevel",required = false)String activityLevel) {
@Param(value = "year", required = false) Integer year,
@Param(value = "activityStatus", required = false) int activityStatus,
@Param(value = "activityLevel", required = false) String activityLevel) {
Sql sql = Sqls.create("""
SELECT
id,
@@ -164,7 +163,7 @@ public class UnionActivityRegisterController {
allCnd.andEX("projectTypeCode", "!=", "50004");
allCnd.andEX("signUpMethod", "is not", null);
allCnd.andEX("state", "=", 3);
allCnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId= ti.groupId AND userId='%s') >0".formatted(io.v.nutz.web.commons.utils.ShiroUtil.getUserId())));
allCnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId= ti.groupId AND userId='%s') >0".formatted(ShiroUtil.getUserId())));
if (!ShiroUtil.hasAnyRoles(Lang.list("sysadmin", "A06"))) {
if (ShiroUtil.hasRole("H04")) {
allCnd.andEX("signUpMethod", "in", Lang.array(1, 2, 3));
@@ -177,7 +176,7 @@ public class UnionActivityRegisterController {
YEAR ( startTime )= %s
AND ( SELECT COUNT( 1 ) FROM activity_user_scope WHERE groupId = activityGroupId AND userId = '%s' ) > 0
AND JSON_CONTAINS(applyWay -> '$[*]','1','$' )
""".formatted(year, io.v.nutz.web.commons.utils.ShiroUtil.getUserId()));
""".formatted(year, ShiroUtil.getUserId()));
switch (activityStatus) {
case 2 -> {
allCnd.and(new Static("applyStartTime < now()"));
@@ -195,12 +194,12 @@ public class UnionActivityRegisterController {
sql.setVar("schoolTime", "AND endTime < now()");
}
case 5->{
case 5 -> {
allCnd.and(new Static("applyStartTime > now()"));
sql.setVar("schoolTime", "AND applyStartTime > now()");
}
}
allCnd.and("isDisabled","=",1);
allCnd.and("isDisabled", "=", 1);
// allCnd.desc("endTime");
if (Strings.isNotBlank(activityLevel)) {
sql.setVar("schoolLevel", "AND activityLevel='%s'".formatted(activityLevel));
@@ -496,9 +495,18 @@ public class UnionActivityRegisterController {
@At
@ViReturn
@RequiresAuthentication
public Object doSingleCancelRegister(String activityId) {
public Object doSingleCancelRegister(String activityId, String applyUserId, String id) {
ActivityTissue tissue = simpleService.dao().fetch(ActivityTissue.class, activityId);
if (!tissue.isEnrollSystem()) {
simpleService.dao().delete(ActivityTissuePerson.class, id);
return Result.success().addMsg("取消成功!");
}
if (StrUtil.isBlank(applyUserId)) {
applyUserId = ShiroUtil.getPrincipalProperty("id").toString();
}
simpleService.dao().clear(ActivityTissuePerson.class, Cnd.where("tissueId", "=", activityId)
.and("userId", "=", ShiroUtil.getPrincipalProperty("id")));
.and("applyUserId", "=", applyUserId));
return Result.success().addMsg("取消成功!");
}
@@ -60,7 +60,7 @@ public class MHealthCheckupListController {
public Object pageData(PageForm pageForm, @Param(value = "tabName", required = false) String tabName) {
Sql sql = Sqls.create("""
select
*,
p.*,
(select count(*) from health_checkup_user_selection s where s.projectId=p.id and s.selectUserId=@userId) as selectCount
from
health_checkup_project p
@@ -80,13 +80,13 @@ public class ZgfwZcZhcxController {
LEFT JOIN sys_union us ON us.id = xx.zclydwhid
$condition
""");
CndPlus cndPlus = CndPlus.create();
cndPlus.andEx(searchName, "like", "%" + searchKeyword + "%");
cndPlus.andEx("xx.zczt", "=", zczt);
cndPlus.andEx("xx.zcghlx", "=", zcghlx);
cndPlus.andEx("xx.zczt", "=", zczt);
cndPlus.andEx("xx.zcrksj", "=", zcrksj);
cndPlus.andEx("us.id", "=", ghid);
Cnd cndPlus = Cnd.NEW();
cndPlus.andEX(searchName, "like", "%" + searchKeyword + "%");
cndPlus.andEX("xx.zczt", "=", zczt);
cndPlus.andEX("xx.zcghlx", "=", zcghlx);
cndPlus.andEX("xx.zczt", "=", zczt);
cndPlus.andEX("xx.zcrksj", "=", zcrksj);
cndPlus.andEX("us.id", "=", ghid);
if (StrUtil.isNotBlank(pageOrderName) && StrUtil.isNotBlank(pageOrderBy)) {
cndPlus.orderBy(pageOrderName, pageOrderBy.equals("desc") ? "desc" : "asc");
} else {
Binary file not shown.
Binary file not shown.
@@ -166,7 +166,7 @@
:max="1000000000"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-col :span="8">
<el-form-item prop="xlFlag" label="活动提醒">
<el-switch
v-model="form.xlFlag"
@@ -174,7 +174,7 @@
inactive-color="#ff4949">
</el-switch>
</el-form-item>
</el-col>
</el-col>-->
<el-col v-if="form.activityLevel===40003||(form.activityLevel===40001&&is_club)"
:span="8">
<el-form-item prop="belongClubId" label="活动所属协会">
@@ -1191,12 +1191,6 @@ module.exports = {
keys.forEach(key => {
$("#" + key).html("")
editors[key] = new E('#' + key)
editors[key].config.excludeMenus = [
'video',
'image',
'link',
'code',
]
editors[key].config.onchange = (html) => {
this.form[key] = html
}
@@ -1293,4 +1287,4 @@ module.exports = {
.restrictTotalTeam .el-form-item__label {
color: red;
}
</style>
</style>
@@ -116,7 +116,7 @@ module.exports = {
{prop: 'identity', label: '身份', sortable: true},
// {prop: 'divisionLevelLeadership', label: '是否处级领导', sortable: true},
{prop: 'status', label: '状态', sortable: true},
{prop: 'awardsMode', label: '项目类型'},
// {prop: 'awardsMode', label: '项目类型'},
{prop: 'allName', label: '报名项目'},
],
}
@@ -4,7 +4,9 @@
<el-form label-suffix=":" style="padding: 20px 0" label-width="120px">
<el-form-item class="item-center">{{ viewData.name }}</el-form-item>
<el-row gutter="60">
<el-col :span="12">
<el-form-item label="联系人">
<span v-if="viewData.username">
@@ -60,7 +62,18 @@
</el-col>
<el-col :span="24">
<el-form-item label="活动内容">{{ viewData.activityContent }}</el-form-item>
<el-form-item label="活动内容">
<span style="white-space: pre-line">
{{ viewData.activityContent }}
</span>
</el-form-item>
</el-col>
<el-col :span="24" v-if="!viewData.isEnrollSystem">
<el-form-item label="活动考核内容">
<span style="white-space: pre-line">
{{ viewData.activityExamineContent }}
</span>
</el-form-item>
</el-col>
<el-col :span="24">
@@ -197,32 +210,7 @@
</el-form>
</el-tab-pane>
<el-tab-pane label="新闻稿件" name="4" v-if="!viewData.isEnrollSystem">
<el-descriptions class="margin-top" :column="3" border>
<el-descriptions-item span="3">
<template slot="label">新闻稿件说明</template>
{{ viewData.newsRemark }}
</el-descriptions-item>
<el-descriptions-item span="3">
<template slot="label">图片</template>
<file-upload v-if="viewData.picFiles && viewData.picFiles.length > 0"
:files="viewData.picFiles"
:view="true"></file-upload>
<span v-else>暂无</span>
</el-descriptions-item>
<el-descriptions-item span="3">
<template slot="label">附件</template>
<file-upload v-if="viewData.newsFiles && viewData.newsFiles.length > 0"
:files="viewData.newsFiles"
:view="true"></file-upload>
<span v-else>暂无</span>
</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="活动总结" name="5" v-if="!viewData.isEnrollSystem">
<el-tab-pane label="活动总结" name="4" v-if="!viewData.isEnrollSystem">
<el-form ref="form" label-width="120px">
<el-form-item prop="activitySummary" label="活动总结">
{{ viewData.activitySummary }}
@@ -320,8 +308,6 @@ module.exports = {
data.billFiles = JSON.parse(data.billFiles)
data.photoFiles = JSON.parse(data.photoFiles)
data.otherFiles = JSON.parse(data.otherFiles)
data.picFiles = JSON.parse(data.picFiles)
data.newsFiles = JSON.parse(data.newsFiles)
this.userData = clone(data.tissuePersonList)
data.unionUserNumberLimit = JSON.parse(data.unionUserNumberLimit)
data.location = JSON.parse(data.location)
@@ -53,7 +53,6 @@ module.exports = {
},
methods: {
async openView(welfareId, userId) {
this.dialogVisible = true
this.loading = true
const {
code,
@@ -67,6 +66,12 @@ module.exports = {
this.$message.warning('您还没有选择福利套餐')
return
}
if (Object.keys(data).length === 0){
this.dialogVisible = false
this.$message.warning('暂无物流信息')
return
}
this.dialogVisible = true
this.courierNumberInfoData = data
const keys = Object.keys(this.courierNumberInfoData)
this.activeName = keys && keys[0]
@@ -1,7 +1,21 @@
<!--#
layout("/mobile/platform.html"){
#-->
<style>
.tag {
position: absolute;
display: inline-block;
background-color: #1867b0;
color: #fff;
font-size: 10px;
top: 1px;
border-radius: 6px;
right: -8px;
padding: 1px 7px;
transform: rotate(17deg);
/*z-index: 999;*/
}
</style>
<div id="app" v-cloak>
<m-page-loading v-if="mLoading"></m-page-loading>
<van-nav-bar title="活动列表" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
@@ -15,7 +29,6 @@ layout("/mobile/platform.html"){
</van-dropdown-menu>
</div>
<div style="margin: 60px auto 0 auto">
<van-list :finished="finished" :finished-text="tableData.length>0?'没有更多了':''">
<div v-for="o in tableData" class="list-card" @click="openInfo(o.id,o.applyEndTime,o.applyType)">
@@ -31,20 +44,18 @@ layout("/mobile/platform.html"){
{{moment(o.applyStartTime).format('YYYY/MM/DD HH:mm')}} 至
{{moment(o.applyEndTime).format('YYYY/MM/DD HH:mm')}}
</span>
</van-cell>
<van-cell :border="false" title="活动时间">
<span style="font-size: 12px">
{{moment(o.startTime).format('YYYY/MM/DD HH:mm')}} 至
{{moment(o.endTime).format('YYYY/MM/DD HH:mm')}}
</span>
</van-cell>
<van-cell :border="false" title="活动状态">
<van-tag type="danger" v-if="moment(o.applyEndTime).valueOf() <moment().valueOf()">报名结束
</van-tag>
<van-tag type="success" v-else-if="moment(o.applyEndTime).valueOf() >moment().valueOf()">报名中
</van-tag>
<van-tag type="warning" v-if="moment(o.applyStartTime).valueOf() > moment().valueOf()">未开始</van-tag>
<van-tag type="primary" v-else-if="moment(o.applyEndTime).valueOf() > moment().valueOf() && moment().valueOf() > moment(o.applyStartTime).valueOf()">报名中</van-tag>
<van-tag type="success" v-else-if="moment(o.startTime).valueOf() < moment().valueOf() && moment().valueOf() < moment(o.endTime).valueOf()">进行中</van-tag>
<van-tag type="danger" v-else-if="moment().valueOf() > moment(o.endTime).valueOf()">活动结束</van-tag>
</van-cell>
</van-cell-group>
</div>
@@ -55,7 +66,6 @@ layout("/mobile/platform.html"){
description="暂无数据">
</van-empty>
</div>
<script>
@@ -66,7 +76,9 @@ layout("/mobile/platform.html"){
return {
activityList: [
{text: '全部', value: 1},
{text: '未开始', value: 5},
{text: '报名中', value: 2},
{text: '进行中', value: 4},
{text: '已结束', value: 3},
],
pageForm: {
@@ -76,6 +88,11 @@ layout("/mobile/platform.html"){
}
},
methods: {
formChange() {
this.pageForm.pageNumber = 1
this.tableData = []
this.pageData()
},
async getActivityData() {
const {data} = await $.post("/platform/activity/apply/activityData", {
year: this.pageForm.year,
@@ -94,7 +111,7 @@ layout("/mobile/platform.html"){
async created() {
this.mLoading = true
this.$set(this.pageForm, "year", this.yearList[0].value)
this.$set(this.pageForm, "isActivity", 2)
this.$set(this.pageForm, "isActivity", 1)
await this.getActivityData()
this.mLoading = false
@@ -105,4 +122,4 @@ layout("/mobile/platform.html"){
<!--#
}
#-->
#-->
@@ -62,7 +62,9 @@
<van-cell title="活动内容" v-if="o.projectTypeCode!=='50004'">
<template #label>
{{o.activityContent}}
<span style="white-space: pre-line">
{{o.activityContent}}
</span>
</template>
</van-cell>
<van-cell title="签到点位" v-if="o.needSign">
@@ -73,4 +75,4 @@
</div>
</template>
</van-cell>
</van-cell-group>
</van-cell-group>
@@ -83,27 +83,61 @@ layout("/mobile/platform.html"){
height="200"
:src="FILE_DOMAIN + '/fileStreamPreview?id=' + o.cover"
></van-image>
<!-- <van-image-->
<!-- fit="cover"-->
<!-- width="100%"-->
<!-- height="200"-->
<!-- :src="'https://zhghydd.cpu.edu.cn/file_server/fileStreamPreview?id=' + o.cover"-->
<!-- ></van-image>-->
<div class="activity_content">
<div class="activity_name van-ellipsis">
<van-icon name="fire" color="red"></van-icon>
<span style="margin-left: 10px;">{{o.name}}</span>
<div style="margin-left: 10px;width: calc(100% - 26px);text-overflow: ellipsis;overflow: hidden;white-space: nowrap">
{{o.name}}
</div>
</div>
<div class="activity_bottom">
<div class="left" style="width: 100%">
<van-icon name="clock" size="1em"></van-icon>
<span style="margin-left: 10px;">
报名时间:{{o.applyStartTime}}至{{o.applyEndTime}}
<!-- {{moment(o.activityStartTime).format('YYYY/MM/DD HH:mm')}} 至-->
<!-- {{moment(o.activityEndTime).format('YYYY/MM/DD HH:mm')}}-->
</span>
</div>
<!-- <div class="right">-->
<!-- <span v-if="moment(o.applyEndTime).valueOf() > moment().valueOf() && moment().valueOf() > moment(o.applyStartTime).valueOf()"-->
<!-- style="color: forestgreen">-->
<!-- 报名中-->
<!-- </span>-->
<!-- <span v-else-if="moment(o.applyEndTime).valueOf() < moment().valueOf() && moment().valueOf() < moment(o.startTime).valueOf()"-->
<!-- style="color: #ee1919">-->
<!-- 报名结束-->
<!-- </span>-->
<!-- <span v-else-if="moment(o.startTime).valueOf() < moment().valueOf() && moment().valueOf() < moment(o.endTime).valueOf()"-->
<!-- style="color: forestgreen">-->
<!-- 活动进行中-->
<!-- </span>-->
<!-- <span v-else-if="moment().valueOf() > moment(o.endTime).valueOf()"-->
<!-- style="color: #ee1919">-->
<!-- 活动结束-->
<!-- </span>-->
<!-- </div>-->
</div>
<div class="activity_bottom">
<div class="left">
<van-icon name="clock" size="1em"></van-icon>
<span style="margin-left: 10px;">
{{moment(o.startTime).format('YYYY/MM/DD HH:mm')}} 至
{{moment(o.endTime).format('YYYY/MM/DD HH:mm')}}
</span>
活动时间:{{o.startTime}}
<!-- {{moment(o.activityStartTime).format('YYYY/MM/DD HH:mm')}} 至-->
<!-- {{moment(o.activityEndTime).format('YYYY/MM/DD HH:mm')}}-->
</span>
</div>
<div class="right">
<span v-if="moment(o.applyEndTime).valueOf() > moment().valueOf() && moment().valueOf() > moment(o.applyStartTime).valueOf()"
<span v-if="moment(o.applyStartTime).valueOf() > moment().valueOf()"
style="color: forestgreen">
未开始报名
</span>
<span v-else-if="moment(o.applyEndTime).valueOf() > moment().valueOf() && moment().valueOf() > moment(o.applyStartTime).valueOf()"
style="color: forestgreen">
报名中
</span>
@@ -121,6 +155,19 @@ layout("/mobile/platform.html"){
</span>
</div>
</div>
<!-- <div class="activity_content" style="font-size: 12px; color: #c4bebe;">-->
<!-- <div class="left">-->
<!-- <van-icon name="clock" size="1em"></van-icon>-->
<!-- <span style="margin-left: 5px;">-->
<!-- {{moment(o.startTime).format('YYYY/MM/DD HH:mm')}} 至-->
<!-- {{moment(o.endTime).format('YYYY/MM/DD HH:mm')}}-->
<!-- </span>-->
<!-- </div>-->
<!-- </div>-->
</div>
</div>
</div>
@@ -157,6 +204,7 @@ layout("/mobile/platform.html"){
activityLevelList: [],
activityStatusList: [
{text: '全部', value: 1},
{text: '未开始', value: 5},
{text: '报名中', value: 2},
{text: '进行中', value: 3},
{text: '已结束', value: 4}
@@ -196,6 +244,11 @@ layout("/mobile/platform.html"){
},
//跳转页面
openReg(o) {
console.log(o)
if (moment(o.applyStartTime).valueOf() > moment().valueOf()) {
this.$toast('活动未开始报名')
return;
}
if (o.projectTypeCode === '50004') {
window.location.href = '/mobile/activity/Sports/list/activityEventList?id=' + o.id
} else {
@@ -203,9 +256,10 @@ layout("/mobile/platform.html"){
}
},
async init() {
this.$set(this.pageForm, "activityStatus", 2)
this.$set(this.pageForm, "activityStatus", 1)
this.$set(this.pageForm, "year", new Date().getFullYear())
const {data} = await $.get("/platform/activity/basic/basic/settings/getActivityTwoLevelType", {code: 40000})
this.activityLevelList = []
this.activityLevelList.push({value: null, text: "全部类别"})
data.forEach(v => {
this.activityLevelList.push({value: v.code, text: v.name})
@@ -221,10 +275,9 @@ layout("/mobile/platform.html"){
window.addEventListener('pageshow', e => {
if (e.persisted || (window.performance && window.performance.navigation.type === 2)) {
vue.init()
vue.onRefresh()
}
})
</script>
<!--#
}
#-->
#-->
@@ -42,13 +42,13 @@ layout("/mobile/platform.html"){
</style>
<div id="app" v-cloak>
<van-nav-bar :title="title" left-arrow placeholder fixed
@click-left="history.back()"></van-nav-bar>
<van-nav-bar :title="title" @click-left="history.back()" fixed left-arrow
placeholder></van-nav-bar>
<!--#include("/mobile/activity/unionActivity/common/activityInfo.html"){}#-->
<van-cell-group inset class="mt5">
<van-cell title="报名人员" class="regCell">
<van-cell-group class="mt5" inset>
<van-cell class="regCell" title="报名人员">
<template #label>
<div>
<span v-if="o.userNumberLimit===1">
@@ -61,9 +61,10 @@ layout("/mobile/platform.html"){
<div class="mt5" v-loading="tagCloseable">
<div v-if="registerList && registerList.length>0">
<template v-for="item in registerList">
<van-tag type="primary" :closeable="tagCloseable" size="medium"
:color="themeColor"
@close="removeRegUser(item)">
<van-tag :closeable="tagCloseable" :color="themeColor"
@close="removeRegUser(item)"
size="medium"
type="primary">
{{item.userName}}
</van-tag>
</template>
@@ -76,17 +77,17 @@ layout("/mobile/platform.html"){
</div>
<div class="mt5" style="text-align: right"
v-if="moment(o.applyStartTime).valueOf() < moment().valueOf() && moment().valueOf() < moment(o.applyEndTime).valueOf()">
<van-button v-if="tagCloseable" size="mini" type="info"
@click="openUserActionSheet" :color="themeColor">选择报名人员
<van-button :color="themeColor" @click="openUserActionSheet" size="mini"
type="info" v-if="tagCloseable">选择报名人员
</van-button>
</div>
</template>
</van-cell>
</van-cell-group>
<van-action-sheet v-model="userActionSheet" title="选择报名人员" class="userActionPopup">
<van-search v-model="searchKey" @search="onSearchUser" show-action
placeholder="请输入姓名搜索">
<van-action-sheet class="userActionPopup" title="选择报名人员" v-model="userActionSheet">
<van-search @search="onSearchUser" placeholder="请输入姓名搜索" show-action
v-model="searchKey">
<template #action>
<div @click="onSearchUser(searchKey)">搜索</div>
</template>
@@ -123,16 +124,25 @@ layout("/mobile/platform.html"){
<div style="margin: 20px 20px 10px 20px"
v-if="moment(o.applyStartTime).valueOf() < moment().valueOf() && moment().valueOf() < moment(o.applyEndTime).valueOf()">
<van-button v-if="tagCloseable" @click="doSave()" style="border-radius: 10px" block
<van-button :color="themeColor" @click="doSave()" block style="border-radius: 10px"
type="info"
:color="themeColor">
v-if="tagCloseable">
提 交
</van-button>
<van-button v-else="!tagCloseable" @click="tagCloseable = true" style="border-radius: 10px"
block type="info"
:color="themeColor">
修 改
</van-button>
<template v-else="!tagCloseable">
<van-button :color="themeColor" @click="tagCloseable = true"
block style="border-radius: 10px"
type="info">
修 改
</van-button>
<van-button
@click="doCancel"
block color="red" style="border-radius: 10px;margin-top: 10px"
type="info">
取消报名
</van-button>
</template>
</div>
<!-- <div style="margin: 20px 20px 10px 20px" v-if="tagCloseable">-->
@@ -169,6 +179,32 @@ layout("/mobile/platform.html"){
}
},
methods: {
async doCancel() {
const confirm = await this.$dialog.confirm({
title: '提示',
message: '您确认要取消报名吗?',
})
const loading = this.$toast.loading({
message: '取消中...',
forbidClick: true,
overlay: true,
duration: 0
})
if (confirm === 'confirm') {
const resp = await $.post('/mobile/activity/unionActivity/doSingleCancelRegister', {activityId: this.activityId})
if (resp.code === 0) {
setTimeout(() => {
loading.close()
this.$toast.success(resp.msg)
setTimeout(() => {
window.history.back()
}, 400)
}, 1000)
} else {
this.$toast.fail(resp.msg)
}
}
},
async getRegisterUser() {
const resp = await $.get('/mobile/activity/myActivity/selectRegisterList', {activityId: this.activityId})
if (resp.code === 0) {
@@ -209,6 +245,7 @@ layout("/mobile/platform.html"){
searchUserAdd(item) {
const {id, userName} = item
this.registerList.push({id, userName})
this.$toast.success("添加成功")
},
async removeRegUser(item) {
if (this.userId === item.id) {
@@ -304,11 +341,14 @@ layout("/mobile/platform.html"){
personIds: JSON.stringify(this.registerList.map(v => v.id))
}
const resp = await $.post('/mobile/activity/unionActivity/doSaveUnionRegister', params)
loading.close()
if (resp.code === 0) {
await this.getRegisterUser()
await this.getHasRegUserNum()
this.$toast.success(resp.msg)
setTimeout(() => {
loading.close()
this.$toast.success(resp.msg)
}, 1000)
} else {
this.$toast.fail(resp.msg)
}
@@ -337,4 +377,4 @@ layout("/mobile/platform.html"){
<!--#
}
#-->
#-->
@@ -135,15 +135,14 @@ layout("/layouts/platform.html"){
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="(val)=>{pageForm.pageSize = val;pageData()}"
@current-change="(val)=>{pageForm.pageNumber = val;pageData()}"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next"
:total="pageForm.totalCount">
:page-sizes="[10, 20, 30, 50]"
:total="pageForm.totalCount"
@current-change="pageNumberChange"
@size-change="pageSizeChange"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
</el-card>
</div>
@@ -166,7 +165,7 @@ layout("/layouts/platform.html"){
<el-form-item label="基础类型代码" prop="code" label-width="110px">
<el-input maxlength="100" placeholder="请输入基础类型名称" v-model="formData.code"
type="text"
></el-input>
:disabled="checkData.code==50000||checkData.code==40000||checkData.code=='jcsjgl'"></el-input>
</el-form-item>
<el-form-item label="基础类型备注" prop="note" label-width="110px">
<el-input maxlength="100" placeholder="请输入基础类型备注" v-model="formData.note"
@@ -262,8 +261,7 @@ layout("/layouts/platform.html"){
async handleNodeClick(data, node) {
this.checkData = data
this.checkNode = node
console.log(this.checkData)
this.pageData()
this.doSearch()
},
async loadTree(flush) {
this.treeLoading = true
@@ -277,7 +275,7 @@ layout("/layouts/platform.html"){
}
if (flush && resp.code === 0) {
this.checkData = resp.data[0]
this.pageData();
this.doSearch();
}
},
async openBasicType() {
@@ -298,7 +296,7 @@ layout("/layouts/platform.html"){
this.loading = false
if(resp.code===0){
this.basicTypeDialog = false
this.pageData();
this.doSearch();
this.loadTree(true)
}else{
this.notifyWarning(resp.msg)
@@ -314,7 +312,7 @@ layout("/layouts/platform.html"){
this.loading = false
this.basicTypeDialog = false
if(resp.code===0){
this.pageData();
this.doSearch();
}else{
this.notifyWarning(resp.msg)
}
@@ -340,7 +338,7 @@ layout("/layouts/platform.html"){
const resp = await $.post(loc() + "/doDelete", {id: id})
if(resp.code===0){
this.notifySuccess(resp.msg)
this.pageData()
this.doSearch()
this.loadTree(true)
}else{
this.notifyWarning(resp.msg)
@@ -359,4 +357,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
#-->
@@ -49,6 +49,11 @@ layout("/layouts/platform.html"){
</el-select>
</div>
<div class="d-search-item btn-group tool-button mr10">
<el-input placeholder="请输入名称/编号" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch" style="width:100%"></el-input>
</div>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索
@@ -407,23 +412,25 @@ layout("/layouts/platform.html"){
return
}
let msg = "确定要勾选的项目赋年龄限制吗?"
if (this.pageForm.ageDate == null) {
this.$notify({
title: '警告',
message: '请选择需要赋值的时间段',
type: 'warning'
});
return
msg = "您没有在左侧填写年龄限制,现将您勾选的项目年龄清空,请确认"
/* this.$notify({
title: '警告',
message: '请选择需要赋值的时间段',
type: 'warning'
});
return*/
}
const confirm = await this.$confirm('确定要勾选的项目赋年龄限制吗?', '提示', {
const confirm = await this.$confirm(msg, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === "confirm") {
const data = await $.post(loc() + "/doAssignmentDate", {
startAgeDate: this.pageForm.ageDate[0],
endAgeDate: this.pageForm.ageDate[1],
startAgeDate: this.pageForm.ageDate ? this.pageForm.ageDate[0] : '',
endAgeDate: this.pageForm.ageDate ? this.pageForm.ageDate[1] : '',
eventIds: JSON.stringify(this.multipleSelection.map(v => v.id))
})
this.$notify.success({title: '成功', message: data.msg});
@@ -452,19 +459,19 @@ layout("/layouts/platform.html"){
//查询比赛组别
async focusGroup() {
const resp = await $.post(loc() + "/focusGroup")
if(resp.code===0){
if (resp.code === 0) {
this.groupList = resp.data
}else{
this.notifyWarning(resp.msg)
} else {
this.notifyWarning(resp.msg)
}
},
//查询运动类型
async exerciseType() {
const resp = await $.post(loc() + "/exerciseType")
if(resp.code===0){
if (resp.code === 0) {
this.exerciseTypeList = resp.data
}else{
} else {
this.notifyWarning(resp.msg)
}
},
@@ -472,9 +479,9 @@ layout("/layouts/platform.html"){
//查询距离
async focusDistance() {
const resp = await $.post(loc() + "/focusDistance")
if(resp.code===0){
if (resp.code === 0) {
this.distanceList = resp.data;
}else{
} else {
this.notifyWarning(resp.msg)
}
},
@@ -482,9 +489,9 @@ layout("/layouts/platform.html"){
//根据运动id查询下面有哪些具体的运动项目
async changeExercise_typeList() {
const resp = await $.post(loc() + "/changeExercise_typeList", {exerciseType: this.formData.exerciseType})
if(resp.code===0){
if (resp.code === 0) {
this.exerciseTypeList2 = resp.data
}else{
} else {
this.notifyWarning(resp.msg)
}
},
@@ -546,10 +553,10 @@ layout("/layouts/platform.html"){
this.loading = true
const resp = await $.post(loc() + "/doAdd", this.formData)
this.loading = false
if(resp.code===0){
if (resp.code === 0) {
this.pageData();
this.$refs.guava.index()
}else{
} else {
this.notifyWarning(resp.msg)
}
}
@@ -577,10 +584,10 @@ layout("/layouts/platform.html"){
async switchChange(data) {
this.formData = data
const resp = await $.post(loc() + "/doEdit", this.formData)
if(resp.code===0){
if (resp.code === 0) {
this.notifySuccess(resp.msg)
this.pageData()
}else{
} else {
this.notifyWarning(resp.msg)
}
},
@@ -644,10 +651,10 @@ layout("/layouts/platform.html"){
this.loading = true
const resp = await $.post(loc() + "/doEdit", this.formData)
this.loading = true
if(resp.code===0){
if (resp.code === 0) {
this.pageData();
this.$refs.guava.index()
}else{
} else {
this.notifyWarning(resp.msg)
}
}
@@ -690,9 +697,9 @@ layout("/layouts/platform.html"){
this.$set(row, "loading", true)
const resp = await $.post(loc() + "/doDelete", {id: id});
this.$set(row, "loading", false)
if(resp.code===0){
if (resp.code === 0) {
this.pageData()
}else{
} else {
this.notifyWarning(resp.msg)
}
}
@@ -102,7 +102,7 @@ layout("/layouts/platform.html"){
<el-tabs v-model="indexActive" type="card" style="box-shadow: none">
<el-tab-pane :name="0">
<span slot="label"><i class="el-icon-school"></i> 院级工会信息</span>
<span slot="label"><i class="el-icon-school"></i> 分工会信息</span>
<el-card shadow="never" style="width: 100%;">
<div class="btn-group tool-button mt5">
@@ -405,7 +405,7 @@ layout("/layouts/platform.html"){
label="单位"
show-overflow-tooltip></el-table-column>
<el-table-column align="center" header-align="center" prop="unionname"
label="院级工会"
label="分工会"
show-overflow-tooltip></el-table-column>
<el-table-column align="center" header-align="center" prop="rolename"
label="用户角色"
@@ -497,7 +497,7 @@ layout("/layouts/platform.html"){
<!--新建工会-->
<el-dialog
title="新建院级工会"
title="新建分工会"
:visible.sync="addDialogVisible" width="40%">
<el-form :model="formData" ref="addForm" :rules="formRules" size="small" label-width="100px">
@@ -511,8 +511,8 @@ layout("/layouts/platform.html"){
v-model="formData.unioncode"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
<!-- <el-form-item prop="dwcode" label="院级工会编号">-->
<!-- <el-input maxlength="100" placeholder="院级工会编号"-->
<!-- <el-form-item prop="dwcode" label="分工会编号">-->
<!-- <el-input maxlength="100" placeholder="分工会编号"-->
<!-- v-model="formData.dwcode" clearable-->
<!-- auto-complete="off" tabindex="4" type="text"></el-input>-->
<!-- </el-form-item>-->
@@ -551,7 +551,7 @@ layout("/layouts/platform.html"){
<!--编辑工会-->
<el-dialog
title="修改院级工会"
title="修改分工会"
:visible.sync="editDialogVisible" width="40%">
<el-form :model="formData" ref="editForm" :rules="formRules" size="small" label-width="100px">
@@ -566,8 +566,8 @@ layout("/layouts/platform.html"){
v-model="formData.unioncode"
auto-complete="off" tabindex="4" type="text"></el-input>
</el-form-item>
<!-- <el-form-item prop="dwcode" label="院级工会编号">-->
<!-- <el-input maxlength="100" placeholder="院级工会编号"-->
<!-- <el-form-item prop="dwcode" label="分工会编号">-->
<!-- <el-input maxlength="100" placeholder="分工会编号"-->
<!-- v-model="formData.dwcode" clearable-->
<!-- auto-complete="off" tabindex="4" type="text"></el-input>-->
<!-- </el-form-item>-->
@@ -1477,4 +1477,4 @@ layout("/layouts/platform.html"){
</div>
<!--#
}
#-->
#-->
@@ -114,7 +114,7 @@ layout("/layouts/platform.html"){
</template>
<template>
<div v-if="checkNode.level===1 || checkNode.level===2" style="padding:0 10px">
<div v-if="checkNode.level===1" style="padding:0 10px">
<el-card shadow="never">
<div class="btn-group tool-button mt5">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@@ -203,7 +203,7 @@ layout("/layouts/platform.html"){
</div>
<div v-if="checkNode.level===3 || checkNode.level===4" style="padding:0 10px">
<div v-if="checkNode.level===2" style="padding:0 10px">
<el-card shadow="never">
<div class="btn-group tool-button mt5">
<el-input placeholder="请输入内容" clearable v-model="userPageForm.searchKeyword"
@@ -379,6 +379,7 @@ layout("/layouts/platform.html"){
pageOrderName: "",
pageOrderBy: ""
},
loading: false,
filterText: '',
defaultProps: {
children: 'child',
@@ -450,7 +451,7 @@ layout("/layouts/platform.html"){
this.checkNode = node
if (node.level === 1) {
this.doSearch()
} else if (node.level === 3) {
} else if (node.level === 2) {
this.doUserSearch()
}
},
File diff suppressed because it is too large Load Diff
@@ -5,7 +5,7 @@ layout("/layouts/platform.html"){
</style>
<div id="app" class="platform" v-cloak>
<div class="platform" id="app" v-cloak>
<guava ref="guava">
<template>
<el-card shadow="never">
@@ -15,10 +15,10 @@ layout("/layouts/platform.html"){
<div class="search-item-label">年&emsp;&emsp;度</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
placeholder="选择年"
style="width: 100%"
type="year" v-model="pageForm.year"
value-format="yyyy">
</el-date-picker>
</div>
</div>
@@ -27,14 +27,14 @@ layout("/layouts/platform.html"){
<div class="search-item-label">活动名称</div>
<div class="search-item-option">
<!--<el-input v-model="pageForm.name" placeholder="请输入活动名称" clearable></el-input>-->
<el-select v-model="pageForm.activityId" placeholder="请选择活动名称"
filterable clearable
style="width: 100%">
<el-select clearable filterable
placeholder="请选择活动名称" style="width: 100%"
v-model="pageForm.activityId">
<el-option
v-for="item in activities"
:key="item.id"
:label="item.name"
:value="item.id">
:value="item.id"
v-for="item in activities">
</el-option>
</el-select>
</div>
@@ -52,30 +52,30 @@ layout("/layouts/platform.html"){
:value="v">
</el-option>
</el-select>-->
<el-select v-model="pageForm.activityLevel" placeholder="请选择活动级别"
clearable
style="width: 100%">
<el-select clearable placeholder="请选择活动级别"
style="width: 100%"
v-model="pageForm.activityLevel">
<el-option
v-for="item in activityTypeList"
:key="item.code"
:label="item.name"
:value="item.code">
:value="item.code"
v-for="item in activityTypeList">
</el-option>
</el-select>
</div>
</div>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索
</el-button>
</div>
<div class="search-item" style="width: 80vw">
<div class="search-item-label">一键查询</div>
<div class="search-item-option">
<el-radio-group v-model="pageForm.query" @change="doSearch">
<el-radio-button v-for="it in queryOptions" :label="it.key"
:key="it.key">
<el-radio-group @change="doSearch" v-model="pageForm.query">
<el-radio-button :key="it.key" :label="it.key"
v-for="it in queryOptions">
{{it.value}}
</el-radio-button>
</el-radio-group>
@@ -84,64 +84,74 @@ layout("/layouts/platform.html"){
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="活动列表" :app="this">
<el-card class="mt10" shadow="never">
<table-tool :app="this" label="活动列表">
<template #func>
<el-button type="primary" icon="el-icon-edit-outline" size="small"
@click="openAdd">
<el-button @click="openAdd" icon="el-icon-edit-outline" size="small"
type="primary">
创建活动
</el-button>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%;margin-bottom: 20px" row-key="id"
@sort-change="pageOrder" v-loading="tableLoading" :size="tableSize"
class="vi-table">
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
class="vi-table" row-key="id" style="width: 100%;margin-bottom: 20px"
v-loading="tableLoading">
<el-table-column align="center" header-align="center" type="index"
:index="indexMethod" label="序号"
<el-table-column :index="indexMethod" align="center" header-align="center"
label="序号" type="index"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
align="center"
header-align="center"
show-overflow-tooltip
:sortable="column.sortable">
v-for="column in tableColumns">
<template v-if="column.prop=='events'" scope="{row}">
<template scope="{row}" v-if="column.prop=='events'">
<span>{{row.allName}}</span>
</template>
<template v-else-if="column.prop=='gameStyle'" scope="{row}">
<template scope="{row}" v-else-if="column.prop=='gameStyle'">
<span>{{activity.school.gameStyle[row.gameStyle]}}</span>
</template>
<template v-else-if="column.prop=='foundUnit'" scope="{row}">
<template scope="{row}" v-else-if="column.prop=='foundUnit'">
<span v-if="row.activityLevel===40001">校工会</span>
<span v-if="row.activityLevel===40002">{{row.unionname}}</span>
<span v-if="row.activityLevel===40003">{{row.clubName}}</span>
</template>
<template v-else-if="column.prop=='startTime'" scope="{row}">
<template scope="{row}" v-else-if="column.prop=='startTime'">
{{moment(row.startTime).format('YYYY-MM-DD')}} -
{{moment(row.endTime).format('YYYY-MM-DD')}}
</template>
<template v-else-if="column.prop=='state'"
scope="{row:{close,applyStartTime,applyEndTime,startTime,endTime,isSave}}">
<template scope="{row}" v-else-if="column.prop=='isDisabled'">
<el-switch
@change="(val)=>{activityStatusChange(row,val)}"
active-color="#13ce66"
inactive-color="#ff4949"
v-model="row.isDisabled">
</el-switch>
</template>
<template
scope="{row:{close,applyStartTime,applyEndTime,startTime,endTime,isSave}}"
v-else-if="column.prop=='state'">
<div v-html="activity.school.getStatus(close,applyStartTime,applyEndTime,startTime,endTime,isSave)"></div>
</template>
</el-table-column>
<el-table-column prop="userOnline" align="center" header-align="center"
label="操作" width="150px">
<el-table-column align="center" header-align="center" label="操作"
prop="userOnline" width="150px">
<template scope="{row}">
<el-dropdown @command="dropdownCommand">
<el-button size="mini" :loading="row.loading">
<el-button :loading="row.loading" size="mini">
<i class="ti-settings"></i>
<span class="ti-angle-down"></span>
</el-button>
@@ -155,9 +165,9 @@ layout("/layouts/platform.html"){
<el-dropdown-item :command="{type:'view',row}">
查看
</el-dropdown-item>
<!-- <el-dropdown-item :command="{type:'export',row}">
导出名单docx
</el-dropdown-item>-->
<el-dropdown-item :command="{type:'export',row}" v-if="row.applyType===1">
导出名单docx
</el-dropdown-item>
<el-dropdown-item :command="{type:'exportXlsx',row}">
导出名单
</el-dropdown-item>
@@ -178,25 +188,27 @@ layout("/layouts/platform.html"){
</template>
<template #edit_func>
<el-button type="primary" @click="doSave">保 存</el-button>
<el-button type="primary" @click="doOperate">提 交</el-button>
<el-button @click="doSave" type="primary">保 存</el-button>
<el-button @click="doOperate" type="primary">提 交</el-button>
</template>
<template #edit>
<add-activity :form="formData" ref="activity" @flip="flip" @flush="flush"
:is_club="is_club"
:is_union="is_union" :is_sysadmin="is_sysadmin" :is_a06="is_A06"
:is_h10="is_h10"
:unionid="'${@shiro.getPrincipalProperty('unit').getUnionid()}'"></add-activity>
<add-activity :form="formData" :is_a06="is_A06" :is_club="is_club" :is_h10="is_h10"
:is_sysadmin="is_sysadmin"
:is_union="is_union"
:unionid="'${@shiro.getPrincipalProperty('unit').getUnionid()}'"
@flip="flip"
@flush="flush"
ref="activity"></add-activity>
</template>
<template #view>
<info ref="info"></info>
</template>
<send-msg ref="sendMsg" :url="url"></send-msg>
<send-msg :url="url" ref="sendMsg"></send-msg>
<open-qr-code ref="openQRCode" :url="url"></open-qr-code>
<open-qr-code :url="url" ref="openQRCode"></open-qr-code>
</guava>
</div>
@@ -241,6 +253,7 @@ layout("/layouts/platform.html"){
{prop: 'startTime', label: '活动日期', sortable: true},
{prop: 'state', label: '活动状态', sortable: true},
{prop: 'applyNum', label: '已报名人数', sortable: true},
{prop: 'isDisabled', label: '是否开启', sortable: true},
{prop: 'foundDate', label: '创建时间', sortable: true},
],
pageForm: {
@@ -264,6 +277,18 @@ layout("/layouts/platform.html"){
'open-qr-code': httpVueLoader('/components/plugins/OpenQRCode.vue'),
},
methods: {
async activityStatusChange(row, val) {
const resp = await $.get('/platform/activity/school/info/mange/activityStatusChange', {
id: row.id,
isDisabled: val
})
if (resp.code === 0) {
this.pageData();
this.notifySuccess(resp.msg)
} else {
this.notifyError(resp.msg)
}
},
flip() {
this.pageData()
this.$refs.guava.index()
@@ -69,7 +69,7 @@ layout("/layouts/platform.html"){
<div class="search-item">
<div class="search-item-label" v-if="pageForm.activityLevel!=='40003'">
院级工会
分工会
</div>
<div class="search-item-label" v-if="pageForm.activityLevel==='40003'">
协会名称
@@ -77,7 +77,7 @@ layout("/layouts/platform.html"){
<div class="search-item-option">
<el-select style="width: 100%;font-weight:bold;"
v-model="pageForm.unionid"
placeholder="院级工会筛选"
placeholder="分工会筛选"
filterable clearable
@change="changeVVV" @clear="changeVVV">
<el-option
@@ -319,12 +319,6 @@ layout("/layouts/platform.html"){
keys.forEach(key => {
$("#" + key).html("")
editors[key] = new E('#' + key)
editors[key].config.excludeMenus = [
'video',
'image',
'link',
'code',
]
editors[key].config.onchange = (html) => {
this.formData[key] = html
}
@@ -102,12 +102,6 @@ layout("/layouts/platform.html"){
keys.forEach(key => {
$("#" + key).html("")
editors[key] = new E('#' + key)
editors[key].config.excludeMenus = [
'video',
'image',
'link',
'code',
]
editors[key].config.onchange = (html) => {
this.formData[key] = html
}
@@ -102,12 +102,6 @@ layout("/layouts/platform.html"){
keys.forEach(key => {
$("#" + key).html("")
editors[key] = new E('#' + key)
editors[key].config.excludeMenus = [
'video',
'image',
'link',
'code',
]
editors[key].config.onchange = (html) => {
this.formData[key] = html
}
@@ -102,12 +102,6 @@ layout("/layouts/platform.html"){
keys.forEach(key => {
$("#" + key).html("")
editors[key] = new E('#' + key)
editors[key].config.excludeMenus = [
'video',
'image',
'link',
'code',
]
editors[key].config.onchange = (html) => {
this.formData[key] = html
}
@@ -38,45 +38,45 @@
<div id="app" v-cloak>
<guava ref="guava">
<el-card shadow="never" style="min-height: calc(100vh - 70px);position: relative">
<el-form :model="formData" ref="addForm" :rules="formRules" label-width="130px"
label-suffix=":">
<el-form :model="formData" :rules="formRules" label-suffix=":" label-width="170px"
ref="addForm">
<el-tabs tab-position="top" v-model="activeName">
<el-tab-pane label="活动基础信息" name="1">
<vi-title title="填写活动信息"></vi-title>
<el-row :gutter="40">
<el-col :xs="24" :lg="12" :xl="12">
<el-form-item prop="name" label="活动名称">
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item label="活动名称" prop="name">
<el-input maxlength="50" placeholder="请填写活动名称"
v-model="formData.name"
type="text"></el-input>
type="text"
v-model="formData.name"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" :xl="12">
<el-form-item prop="activityCode" label="活动编号">
<el-input maxlength="50" disabled
v-model="formData.activityCode"
type="text"></el-input>
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item label="活动编号" prop="activityCode">
<el-input disabled maxlength="50"
type="text"
v-model="formData.activityCode"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" :xl="12">
<el-form-item prop="projectTypeCode" label="活动项目类型">
<el-select v-model="formData.projectTypeCode"
placeholder="请选择活动类型"
style="width: 100%;">
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item label="活动项目类型" prop="projectTypeCode">
<el-select placeholder="请选择活动类型"
style="width: 100%;"
v-model="formData.projectTypeCode">
<el-option
v-for="item in projectType"
:key="item.id"
:label="item.name+' ('+item.code+')'"
:value="item.code">
:value="item.code"
v-for="item in projectType">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" :xl="12">
<el-form-item prop="isEnrollSystem" label="是否用于报名">
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item label="是否用于报名" prop="isEnrollSystem">
<el-radio-group v-model="formData.isEnrollSystem">
<el-radio-button :label="true">活动报名</el-radio-button>
<el-radio-button :label="false">活动管理</el-radio-button>
@@ -84,108 +84,109 @@
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" :xl="12">
<el-form-item prop="address" label="活动地址">
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item label="活动地址" prop="address">
<el-input maxlength="50" placeholder="请填写活动地址"
v-model="formData.address"
type="text"></el-input>
type="text"
v-model="formData.address"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" :xl="12">
<el-form-item prop="userId" label="联系人">
<el-select v-model="formData.userId" placeholder="请选择联系人"
filterable
remote
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item label="联系人" prop="userId">
<el-select :loading="selectLoading" :remote-method="remoteMethod"
@change="userChang"
clearable
filterable
placeholder="请选择联系人"
remote
reserve-keyword
:remote-method="remoteMethod"
:loading="selectLoading"
style="width: 100%" @change="userChang">
style="width: 100%" v-model="formData.userId">
<el-option
v-for="item in userList"
:key="item.userId"
:label="item.userName+'-'+item.loginName+'-'+item.unitName"
:value="item.userId">
:value="item.userId"
v-for="item in userList">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" :xl="12">
<el-form-item prop="mobile" label="联系方式">
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item label="联系方式" prop="mobile">
<el-input maxlength="50" placeholder="请填写联系方式"
v-model="formData.mobile"
type="text"></el-input>
type="text"
v-model="formData.mobile"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" :xl="12" v-if="formData.isEnrollSystem === true">
<el-form-item prop="plannedDate" label="活动计划时间">
<el-col :lg="12" :xl="12" :xs="24"
v-if="formData.isEnrollSystem === true">
<el-form-item label="活动计划时间" prop="plannedDate">
<!--<el-input maxlength="50" placeholder="活动计划时间"
v-model="formData.plannedDate"></el-input>-->
<el-date-picker
@change="plannedDateChange"
end-placeholder="结束日期"
range-separator="-"
start-placeholder="开始日期"
style="width: 100%"
v-model="formData.plannedDate"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期" @change="plannedDateChange">
v-model="formData.plannedDate" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" :xl="12">
<el-form-item prop="time" label="实际活动时间">
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item label="实际活动时间" prop="time">
<el-date-picker
style="width: 100%"
v-model="formData.time"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm"
end-placeholder="结束日期"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期">
style="width: 100%"
type="daterange"
v-model="formData.time"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" :xl="12">
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item
:rules="[{required:[1,2].includes(formData.signUpMethod),message:'请选择报名日期',trigger:['change','blur']}]"
label="报名日期"
prop="applyTime2">
<el-date-picker
style="width: 100%"
v-model="formData.applyTime2"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm"
end-placeholder="结束时间"
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间">
style="width: 100%"
type="datetimerange"
v-model="formData.applyTime2"
value-format="yyyy-MM-dd HH:mm">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" :xl="12">
<el-form-item prop="peopleNum" label="活动人数">
<el-input maxlength="10" placeholder="请填写活动人数"
:disabled="[1,2].includes(formData.signUpMethod)"
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item label="活动人数" prop="peopleNum">
<el-input :disabled="[1,2].includes(formData.signUpMethod)" maxlength="10"
placeholder="请填写活动人数"
v-model="formData.peopleNum"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" :xl="12">
<el-form-item prop="groupId" label="参加人员范围">
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item label="参加人员范围" prop="groupId">
<div style="display: flex; justify-content: space-between">
<div style="width: 99%">
<el-select prop="groupId" placeholder="参加人员范围"
v-model="formData.groupId"
<el-select clearable filterable
placeholder="参加人员范围"
prop="groupId"
style="width: 99%;"
clearable
filterable>
<el-option v-for="item in activityGroupList"
:label="item.groupName"
:value="item.groupId"></el-option>
v-model="formData.groupId">
<el-option :label="item.groupName"
:value="item.groupId"
v-for="item in activityGroupList"></el-option>
</el-select>
</div>
<div>
@@ -199,11 +200,25 @@
</el-col>
<el-col :lg="12" :xl="12" :xs="24" v-if="formData.isEnrollSystem === true">
<el-form-item prop="signUpMethod" label="报名方式">
<el-radio-group v-model="formData.signUpMethod"
@change="signUpMethodChange">
<!-- <el-radio :label="null">无需报名</el-radio>-->
<el-col :lg="12" :xl="12" :xs="12">
<el-form-item label="是否推送移动端" prop="isPushHome">
<el-radio-group size="medium" v-model="formData.isPushHome">
<el-radio-button :label="0">不推送</el-radio-button>
<el-radio-button :label="1">推送列表</el-radio-button>
<el-radio-button :label="2">推送大图</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :lg="12" :xl="12" :xs="12"
v-if="formData.isEnrollSystem === true">
<el-form-item label="报名方式" prop="signUpMethod">
<el-radio-group @change="signUpMethodChange"
v-model="formData.signUpMethod">
<!--<el-radio :label="null">无需报名</el-radio>-->
<el-radio :label="1">个人报名</el-radio>
<el-radio :label="3">组队报名</el-radio>
<el-radio :label="2" v-if="type===40001">分工会报名</el-radio>
@@ -211,23 +226,12 @@
</el-form-item>
</el-col>
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item prop="xlFlag" label="活动提醒">
<el-switch
v-model="formData.xlFlag"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</el-form-item>
</el-col>
<el-col :xs="12" :lg="12" :xl="12"
<el-col :lg="12" :xl="12" :xs="12"
v-if="[1,2,3].includes(formData.signUpMethod)">
<el-form-item prop="userNumberLimit" label="报名人数限制">
<el-form-item label="报名人数限制" prop="userNumberLimit">
<el-radio-group v-model="formData.userNumberLimit">
<el-radio :label="1"
:disabled="formData.signUpMethod===2">
<el-radio :disabled="formData.signUpMethod===2"
:label="1">
总人数限制
</el-radio>
<el-radio :label="2" v-if="type===40001">分工会人数限制
@@ -236,93 +240,105 @@
</el-radio-group>
</el-form-item>
</el-col>
<el-col :xs="12" :lg="12" :xl="12"
<el-col :lg="12" :xl="12" :xs="12"
v-if="[3].includes(formData.signUpMethod)">
<el-form-item prop="totalUserNumberLimit" label="组队人数">
<el-input-number v-model="formData.teamNum" :min="1"
:max="2000"
<el-form-item label="组队人数" prop="totalUserNumberLimit">
<el-input-number :max="2000" :min="1"
:precision="0"
v-model="formData.teamNum"
></el-input-number>
</el-form-item>
</el-col>
<el-col :xs="12" :lg="12" :xl="12"
<el-col :lg="12" :xl="12" :xs="12"
v-if="[1,2,3].includes(formData.signUpMethod) && formData.userNumberLimit===1">
<el-form-item prop="totalUserNumberLimit" label="总人数限制">
<el-input-number v-model="formData.totalUserNumberLimit"
:min="1" :max="2000"
:precision="0"
<el-form-item label="总人数限制" prop="totalUserNumberLimit">
<el-input-number :max="2000"
:min="1" :precision="0"
v-model="formData.totalUserNumberLimit"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="24"
v-if="[1,2,3].includes(formData.signUpMethod) && formData.userNumberLimit===2">
<el-form-item prop="unionUserNumberLimit" label="分工会人数限制">
<el-form-item label="分工会人数限制" prop="unionUserNumberLimit">
<vi-title2 title="分段设置">
<template #func>
<el-button size="small" type="primary" @click="unionLimitQuickSetting">
<el-button @click="unionLimitQuickSetting" size="small"
type="primary">
应用分段设置
</el-button>
</template>
</vi-title2>
<el-row v-for="(item,index) in unionUserNumCalc" :gutter="20" class="mb5">
<el-row :gutter="20" class="mb5"
v-for="(item,index) in unionUserNumCalc">
<el-col :span="7">
<el-input-number v-model="item.startNum" :precision="0" :step="1" :min="1"
placeholder="请输入最小人数"
style="width: 100%"></el-input-number>
<el-input-number :min="1" :precision="0"
:step="1" placeholder="请输入最小人数"
style="width: 100%"
v-model="item.startNum"></el-input-number>
</el-col>
<el-col :span="7">
<el-input-number v-model="item.endNum" :precision="0" :step="1" :min="1"
placeholder="请输入最大人数"
style="width: 100%"></el-input-number>
<el-input-number :min="1" :precision="0"
:step="1" placeholder="请输入最大人数"
style="width: 100%"
v-model="item.endNum"></el-input-number>
</el-col>
<el-col :span="6">
<el-input-number v-model="item.resultNum" :precision="0" :step="1" :min="1"
placeholder="请输入限制人数"
style="width: 100%"></el-input-number>
<el-input-number :min="1" :precision="0"
:step="1" placeholder="请输入限制人数"
style="width: 100%"
v-model="item.resultNum"></el-input-number>
</el-col>
<el-col :span="4" class="text-right">
<el-button icon="el-icon-plus"
@click="unionUserNumCalc.push({})"></el-button>
<el-button icon="el-icon-minus" @click="unionUserNumCalc.splice(index,1)"
:disabled="unionUserNumCalc.length===1"></el-button>
<el-button @click="unionUserNumCalc.push({})"
icon="el-icon-plus"></el-button>
<el-button :disabled="unionUserNumCalc.length===1"
@click="unionUserNumCalc.splice(index,1)"
icon="el-icon-minus"></el-button>
</el-col>
</el-row>
<el-row class="mt10">
<div v-for="(item,index) in unionUserNumCalcTips" class="text-danger">
<div class="text-danger"
v-for="(item,index) in unionUserNumCalcTips">
<span class="mr10">({{index+1}}).</span> {{item}}
</div>
</el-row>
<vi-title2 title="比例设置" class="mt20">
<vi-title2 class="mt20" title="比例设置">
<template #func>
一键比例:
<el-input-number v-model="unionUserNumOneKeyRatio" :precision="0" :step="1"
:min="0"
<el-input-number :max="100"
:min="0" :precision="0" :step="1"
placeholder="请输入一键比例"
size="small"
:max="100"></el-input-number>
<el-button size="small" type="primary" @click="applyScaleSettings"
class="ml5">应用比例设置
v-model="unionUserNumOneKeyRatio"></el-input-number>
<el-button @click="applyScaleSettings" class="ml5"
size="small" type="primary">
应用比例设置
</el-button>
</template>
</vi-title2>
<el-table :data="formData.unionUserNumberLimit" max-height="500px">
<el-table-column prop="unionname" label="分工会"></el-table-column>
<el-table-column prop="teacherCount" label="人数"></el-table-column>
<el-table-column prop="ratio" label="比例(%)">
<el-table :data="formData.unionUserNumberLimit"
max-height="500px">
<el-table-column label="分工会"
prop="unionname"></el-table-column>
<el-table-column label="人数"
prop="teacherCount"></el-table-column>
<el-table-column label="比例(%)" prop="ratio">
<template scope="{row}">
<el-input-number v-model="row.ratio" :precision="0" :step="1" :min="0"
:max="100"></el-input-number>
<el-input-number :max="100" :min="0"
:precision="0" :step="1"
v-model="row.ratio"></el-input-number>
</template>
</el-table-column>
<el-table-column prop="limitNum" label="限制人数">
<el-table-column label="限制人数" prop="limitNum">
<template scope="{row}">
<el-input-number v-model="row.limitNum" :precision="0" :step="1"
:min="0"
:max="row.teacherCount"
@change="calSummaryCount"></el-input-number>
<el-input-number :max="row.teacherCount"
:min="0" :precision="0" :step="1"
@change="calSummaryCount"
v-model="row.limitNum"></el-input-number>
</template>
</el-table-column>
</el-table>
@@ -362,8 +378,8 @@
<el-col :span="12" v-if="[1,2,3].includes(formData.signUpMethod)">
<el-form-item label="是否需要签到">
<el-radio-group v-model="formData.needSign"
@change="(val)=>{formData.needSign?initMap():null}">
<el-radio-group @change="(val)=>{formData.needSign?initMap():null}"
v-model="formData.needSign">
<el-radio :label="true">需要</el-radio>
<el-radio :label="false">不需要</el-radio>
</el-radio-group>
@@ -372,11 +388,11 @@
<el-col :span="12" v-if="formData.needSign">
<el-form-item label="签到半径(m)">
<el-input-number v-model="formData.rangeMeter"
@change="rangeMeterChange"
:precision="0" :step="1"
<el-input-number :max="1000"
:min="50"
:max="1000"></el-input-number>
:precision="0" :step="1"
@change="rangeMeterChange"
v-model="formData.rangeMeter"></el-input-number>
<!-- <el-button type="primary" @click="marker.setMap(null);">清除点位</el-button>-->
</el-form-item>
</el-col>
@@ -385,48 +401,43 @@
<el-col :span="24" v-show="formData.needSign">
<el-form-item label="活动签到点位">
<el-card shadow="never">
<div style="width: 100%;height: 300px"
id="signMap"></div>
<div id="signMap"
style="width: 100%;height: 300px"></div>
</el-card>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="activityContent" label="活动内容">
<el-form-item label="活动内容" prop="activityContent">
<el-input
type="textarea"
:rows="7"
placeholder="请输入活动内容"
type="textarea"
v-model="formData.activityContent">
</el-input>
</el-form-item>
</el-col>
<el-col :span="24" v-if="formData.isEnrollSystem === false">
<el-form-item prop="activityExamineContent" label="活动考核内容">
<el-form-item label="活动考核内容" prop="activityExamineContent">
<el-input
type="textarea"
:rows="7"
placeholder="请输入活动考核内容"
type="textarea"
v-model="formData.activityExamineContent">
</el-input>
</el-form-item>
</el-col>
<el-col :span="24" v-if="formData.signUpMethod!=null">
<el-form-item prop="cover" label="封面图">
<el-upload
class="avatar-uploader"
:action="FILE_UPLOAD_ADDRESS"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload">
<img v-if="formData.cover"
:src="FILE_DOMAIN + '/fileStreamPreview?id=' + formData.cover"
class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
<el-form-item label="封面图" prop="cover">
<image-Upload ref="imageUpload" :height="200"
:width="200" :limit="1"
:file-type="['png','jpg']"
:file-size="10"
v-model="formData.cover"></image-Upload>
</el-form-item>
</el-col>
@@ -439,10 +450,10 @@
<el-divider content-position="left">购置物品及价格</el-divider>
<div style="padding-left: 10px">
<el-tooltip class="item" effect="dark" content="点击添加购置物品及价格"
<el-tooltip class="item" content="点击添加购置物品及价格" effect="dark"
placement="top">
<el-button icon="el-icon-plus" circle
@click="formData.goods.push({})"
<el-button @click="formData.goods.push({})" circle
icon="el-icon-plus"
type="primary"></el-button>
</el-tooltip>
</div>
@@ -450,62 +461,62 @@
<el-form-item>
<el-table :data="formData.goods" border size="mini" style="width: 100%"
height="320px">
<el-table :data="formData.goods" border height="200" size="mini"
style="width: 100%">
<el-table-column sortable type="index" width="100" label="序号"
align="center" header-align="center">
<el-table-column align="center" header-align="center" label="序号" sortable
type="index" width="100">
</el-table-column>
<el-table-column prop="name" label="物品名称" align="center"
header-align="center">
<el-table-column align="center" header-align="center" label="物品名称"
prop="name">
<template slot-scope="{row}">
<el-input maxlength="50" placeholder="物品名称"
v-model="row.name"
type="text"></el-input>
type="text"
v-model="row.name"></el-input>
</template>
</el-table-column>
<el-table-column prop="price" label="预算费用" align="center"
header-align="center">
<el-table-column align="center" header-align="center" label="预算费用"
prop="price">
<template slot-scope="{row}">
<el-input maxlength="50" placeholder="预算费用"
v-model="row.price"
type="number" @input="blur"></el-input>
<el-input @input="blur" maxlength="50"
placeholder="预算费用"
type="number" v-model="row.price"></el-input>
</template>
</el-table-column>
<el-table-column prop="actualPrice" label="实际费用" align="center"
header-align="center">
<el-table-column align="center" header-align="center" label="实际费用"
prop="actualPrice">
<template slot-scope="{row}">
<el-input maxlength="50" placeholder="实际费用"
v-model="row.actualPrice"
type="number" @input="blur"></el-input>
<el-input @input="blur" maxlength="50"
placeholder="实际费用"
type="number" v-model="row.actualPrice"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" align="center"
<el-table-column align="center" fixed="right" fixed="right"
header-align="center"
width="80px"
fixed="right">
label="操作"
width="80px">
<template slot-scope="scope">
<el-button type="danger" icon="el-icon-delete" circle
:disabled="formData.goods.length==0"
@click="delNotesItem(scope)"></el-button>
<el-button :disabled="formData.goods.length==0" @click="delNotesItem(scope)" circle
icon="el-icon-delete"
type="danger"></el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
<el-divider content-position="left" class="dia"><span
<el-divider class="dia" content-position="left"><span
style="color: #3ea1ec;">附件</span>
</el-divider>
<el-row :gutter="40">
<el-col :xs="24" :lg="12" :xl="12" class="mb25">
<el-form-item prop="billFiles" label="发票">
<el-col :lg="12" :xl="12" :xs="24" class="mb25">
<el-form-item label="发票" prop="billFiles">
<file-upload :files.sync="formData.billFiles"
card></file-upload>
</el-form-item>
</el-col>
<el-col :xs="24" :lg="12" :xl="12" class="mb25">
<el-form-item prop="photoFiles" label="照片">
<el-col :lg="12" :xl="12" :xs="24" class="mb25">
<el-form-item label="照片" prop="photoFiles">
<file-upload :files.sync="formData.photoFiles"
card></file-upload>
</el-form-item>
@@ -513,9 +524,9 @@
</el-row>
<el-row :gutter="40">
<el-col :xs="24" :lg="12" :xl="12" class="mb25">
<el-form-item prop="otherFiles" label="其他">
<el-row>
<el-col :lg="12" :xl="12" :xs="24">
<el-form-item label="其他" prop="otherFiles">
<file-upload :files.sync="formData.otherFiles"
card></file-upload>
</el-form-item>
@@ -525,36 +536,36 @@
</el-tab-pane>
<el-tab-pane label="活动人员信息" name="3" v-if="formData.isEnrollSystem === false">
<table-tool label="活动人员信息" :app="this">
<table-tool :app="this" label="活动人员信息">
<template #func>
<el-button icon="el-icon-plus" @click="openAddUser"
<el-button @click="openAddUser" icon="el-icon-plus"
type="primary">添加活动人员
</el-button>
</template>
</table-tool>
<el-table border stripe :data="userData" size="small"
v-loading="userTabLoading" height="500">
<el-table :data="userData" border height="500" size="small"
stripe v-loading="userTabLoading">
<el-table-column
type="index" label="序号" header-align="center" align="center"
align="center" header-align="center" label="序号" type="index"
width="100">
</el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in userColumns"
:label="column.label"
:prop="column.prop"
:sortable="column.sortable">
:sortable="column.sortable"
align="center"
header-align="center"
v-for="column in userColumns">
</el-table-column>
<el-table-column prop="userOnline" align="center" header-align="center"
label="操作"
<el-table-column align="center" header-align="center" label="操作"
prop="userOnline"
width="150px">
<template scope="{row}">
<el-button type="danger" size="mini"
@click="delUser(row)">删除
<el-button @click="delUser(row)" size="mini"
type="danger">删除
</el-button>
</template>
</el-table-column>
@@ -562,98 +573,66 @@
</el-table>
</el-tab-pane>
<!-- <el-tab-pane label="新闻稿件" name="4" v-if="formData.isEnrollSystem === false">-->
<!-- <el-row :gutter="20">-->
<!-- <el-col :span="24">-->
<!-- <el-form-item prop="newsRemark" label="新闻稿件说明">-->
<!-- <el-input v-model="formData.newsRemark" type="textarea" rows="4"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :lg="24" :sm="24">-->
<!-- <el-form-item label="图片上传" prop="picFiles">-->
<!-- <file-upload :files.sync="formData.picFiles" card :max="10"-->
<!-- :type="['jpg', 'png', 'jpeg']">-->
<!-- <template #el-upload__tip>-->
<!-- </template>-->
<!-- </file-upload>-->
<!-- <div class="el-upload__tip">请上传jpg、png、jpeg格式的图片,最多不超过10张</div>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :lg="24" :sm="24">-->
<!-- <el-form-item label="附件上传" prop="newsFiles">-->
<!-- <file-upload :files.sync="formData.newsFiles" card :max="10"-->
<!-- :type="['doc','docx','xls','xlsx','pdf','ppt','mp4', 'jpg', 'png', 'jpeg']">-->
<!-- <template #el-upload__tip>-->
<!-- </template>-->
<!-- </file-upload>-->
<!-- <div class="el-upload__tip">可上传照片、视频、文档等资料,视频只能上传MP4格式</div>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- </el-tab-pane>-->
<el-tab-pane label="活动总结" name="5" v-if="formData.isEnrollSystem === false">
<el-form-item prop="activitySummary" label="活动总结">
<el-tab-pane label="活动总结" name="4" v-if="formData.isEnrollSystem === false">
<el-form-item label="活动总结" prop="activitySummary">
<el-input
:disabled="!formData.time || Date.now() < Date.parse(formData.time[1])"
type="textarea"
:rows="5"
placeholder="请输入活动内容"
type="textarea"
v-model="formData.activitySummary">
</el-input>
</el-form-item>
<el-alert
class="mb20"
style="margin-left: 130px"
v-if="!formData.time || Date.now() < Date.parse(formData.time[1])"
show-icon
style="margin-left: 130px"
title="活动结束后可输入活动总结"
type="info">
type="info"
v-if="!formData.time || Date.now() < Date.parse(formData.time[1])">
</el-alert>
</el-tab-pane>
</el-tabs>
</el-form>
<div style="padding: 20px;text-align: center;">
<el-button type="primary" @click="operation" style="width: 300px">确 定</el-button>
<el-button @click="operation" style="width: 300px" type="primary">确 定</el-button>
</div>
</el-card>
</guava>
<el-dialog title="添加人员" :visible.sync="dialogVisible" width="40%" :close-on-click-modal="false">
<el-dialog :close-on-click-modal="false" :visible.sync="dialogVisible" title="添加人员" width="40%">
<el-form :model="formData" label-width="100px">
<el-form-item prop="userId" label="参加人员">
<el-select v-model="formData.tissuePersonList" placeholder="请选择参加人员"
multiple
<el-form-item label="参加人员" prop="userId">
<el-select :loading="selectLoading" :remote-method="remoteMethod"
filterable
multiple
placeholder="请选择参加人员"
remote
:remote-method="remoteMethod"
:loading="selectLoading"
style="width: 100%">
style="width: 100%"
v-model="formData.tissuePersonList">
<el-option
v-for="item in userList"
:disabled="userData.map(v=>v.userId).includes(item.userId)"
:key="item.userId"
:label="item.userName+'-'+item.loginName+'-'+item.unitName"
:value="item.userId">
:value="item.userId"
v-for="item in userList">
</el-option>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<span class="dialog-footer" slot="footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doAddUser">确 定</el-button>
<el-button @click="doAddUser" type="primary">确 定</el-button>
</span>
</el-dialog>
<drawer-user-scope
:group_id.sync="formData.groupId"
@group_change="getActivityGroup"
ref="drawerUserScope"
:group_id.sync="formData.groupId"
></drawer-user-scope>
</div>
@@ -913,6 +892,8 @@
signUpMethod: null,
rangerMeter: 100,
isEnrollSystem: true,
isPushHome: 0,
isIntegral: false,
}
const {data} = await $.get('/platform/activity/apply/generateActivityCode', {activity_type: type})
this.$set(this.formData, 'activityCode', data)
@@ -932,8 +913,6 @@
if (data.billFiles && data.billFiles.length > 0) data.billFiles = JSON.parse(data.billFiles)
if (data.photoFiles && data.photoFiles.length > 0) data.photoFiles = JSON.parse(data.photoFiles)
if (data.otherFiles && data.otherFiles.length > 0) data.otherFiles = JSON.parse(data.otherFiles)
if (data.picFiles && data.picFiles.length > 0) data.picFiles = JSON.parse(data.picFiles)
if (data.newsFiles && data.newsFiles.length > 0) data.newsFiles = JSON.parse(data.newsFiles)
if (data.applyStartTime) data.applyTime2 = [data.applyStartTime, data.applyEndTime]
if (data.startTime) data.time = [data.startTime, data.endTime]
if (data.startPlannedDate) data.plannedDate = [data.startPlannedDate, data.endPlannedDate]
@@ -12,7 +12,7 @@
}
</style>
<div id="app" class="platform" v-cloak>
<div class="platform" id="app" v-cloak>
<guava ref="guava">
<template>
<el-card shadow="never">
@@ -21,11 +21,11 @@
<div class="search-item-label">活动时间</div>
<div class="search-item-option">
<el-date-picker
placeholder="选择年"
style="width: 100%"
v-model="pageForm.year"
value-format="yyyy"
type="year"
placeholder="选择年">
v-model="pageForm.year"
value-format="yyyy">
</el-date-picker>
</div>
</div>
@@ -33,57 +33,57 @@
<div class="search-item">
<div class="search-item-label">活动名称</div>
<div class="search-item-option">
<el-input v-model="pageForm.name" placeholder="请输入活动名称"
clearable></el-input>
<el-input clearable placeholder="请输入活动名称"
v-model="pageForm.name"></el-input>
</div>
</div>
<div class="search-item" v-if="type==1">
<div class="search-item-label">工会名称</div>
<div class="search-item-option">
<el-select v-model="pageForm.unionId" placeholder="请选择工会" filterable
clearable
style="width: 100%">
<el-select clearable filterable placeholder="请选择工会"
style="width: 100%"
v-model="pageForm.unionId">
<el-option
v-for="item in unionList"
:key="item.id"
:label="item.unionname"
:value="item.id">
:value="item.id"
v-for="item in unionList">
</el-option>
</el-select>
</div>
</div>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="pageData">搜索
<el-button @click="pageData" icon="el-icon-search" type="primary">搜索
</el-button>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="活动列表" :app="this">
<el-card class="mt10" shadow="never">
<table-tool :app="this" label="活动列表">
</table-tool>
<el-table :data="tableData" style="width: 100%;margin-bottom: 20px" row-key="id"
@sort-change="pageOrder" v-loading="tableLoading" :size="tableSize"
class="vi-table">
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
class="vi-table" row-key="id" style="width: 100%;margin-bottom: 20px"
v-loading="tableLoading">
<el-table-column align="center" header-align="center" type="index"
:index="indexMethod" label="序号"
<el-table-column :index="indexMethod" align="center" header-align="center"
label="序号" type="index"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
:width="column.width"
align="center"
header-align="center"
show-overflow-tooltip
:sortable="column.sortable">
v-for="column in tableColumns">
<template v-if="column.prop=='time'" scope="{row}">
<template scope="{row}" v-if="column.prop=='time'">
<span>
{{moment(row.startTime).format('YYYY-MM-DD')}} - {{moment(row.endTime).format('YYYY-MM-DD')}}
</span>
@@ -92,27 +92,38 @@
{{row.applyStartTime}}-{{row.applyEndTime}}
</template>
<template v-else-if="column.prop=='projectTypeName'" scope="{row}">
<template scope="{row}" v-else-if="column.prop=='projectTypeName'">
{{row.projectTypeName}}({{row.projectTypeCode}})
</template>
<template v-else-if="column.prop=='tussueName'" scope="{row}">
<template scope="{row}" v-else-if="column.prop=='isDisabled'">
<el-switch
:active-value="true"
:inactive-value="false"
@change="(val)=>{activityStatusChange(row.id,row.isDisabled == 1?1:0)}"
active-color="#13ce66"
inactive-color="#ff4949"
v-model="row.isDisabled">
</el-switch>
</template>
<template scope="{row}" v-else-if="column.prop=='tussueName'">
<span v-if="row.type==40002">{{row.unionname?row.unionname:'暂无'}}</span>
<span v-if="row.type==40003">{{row.clubName?row.clubName:'暂无'}}</span>
<span v-if="row.type==40001">校工会</span>
</template>
<template v-else-if="column.prop=='state'" scope="{row}">
<template scope="{row}" v-else-if="column.prop=='state'">
{{row.state===1?'未审核':row.state===2?'审核不通过':'审核通过'}}
</template>
</el-table-column>
<el-table-column prop="userOnline" align="center" header-align="center"
label="操作" width="150px">
<el-table-column align="center" header-align="center" label="操作"
prop="userOnline" width="150px">
<template scope="{row}">
<el-dropdown @command="dropdownCommand">
<el-button size="mini" :loading="row.loading">
<el-button :loading="row.loading" size="mini">
<i class="ti-settings"></i>
<span class="ti-angle-down"></span>
</el-button>
@@ -155,9 +166,9 @@
</template>
</guava>
<send-msg ref="sendMsg" :url="url"></send-msg>
<send-msg :mobile_url="mobileUrl" :url="url" ref="sendMsg"></send-msg>
<open-qr-code ref="openQRCode" :url="url"></open-qr-code>
<open-qr-code :url="url" ref="openQRCode"></open-qr-code>
</div>
@@ -172,6 +183,7 @@
userTabLoading: false,
dialogVisible: false,
url: "",
mobileUrl: "",
userData: [],
userList: [],
unionList: [],
@@ -190,6 +202,7 @@
{prop: 'time', label: '活动日期'},
{prop: 'time2', label: '报名日期', width: '300'},
{prop: 'applyTime', label: '创建时间', sortable: true},
{prop: 'isDisabled', label: '是否开启'},
{prop: 'state', label: '审核状态', sortable: true},
],
@@ -213,11 +226,24 @@
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
'tissue-info': httpVueLoader('/components/activity/school/tissueInfo.vue?v=1.0.0'),
'send-msg': httpVueLoader('/components/plugins/SendMsgByGroupId.vue'),
'tissue-info': httpVueLoader('/components/activity/school/tissueInfo.vue'),
'send-msg': httpVueLoader('/components/plugins/SendMsgByGroupId.vue?v=' + new Date().getTime()),
'open-qr-code': httpVueLoader('/components/plugins/OpenQRCode.vue'),
},
methods: {
async activityStatusChange(id, isDisabled) {
const resp = await $.get('/platform/activity/info/mange/activityStatusChange', {
id: id,
isDisabled: isDisabled
})
if (resp.code === 0) {
this.pageData();
this.notifySuccess(resp.msg)
} else {
this.notifyError(resp.msg)
}
},
dropdownCommand(command) {
const {type, row} = command
if (type === 'view') {
@@ -237,31 +263,21 @@
openCode(row) {
this.$refs.openQRCode.openCode("/mobile/activity/unionActivity/goReg?id=" + row.id + "&signUpMethod=" + row.signUpMethod)
},
async sendMsg(row) {
if (!row.groupId){
this.$message.error("请选择参加人员后才能通知推送!")
return
sendMsg(row) {
if (row.signUpMethod === 1 || row.signUpMethod === 3) {
this.mobileUrl = "/mobile/activity/unionActivity/goReg?id=" + row.id + "&signUpMethod=" + row.signUpMethod
} else if (row.signUpMethod === 2) {
if (type === 40001) {
this.url = "/platform/activity/applyUser/school"
} else if (type === 40002) {
this.url = "/platform/activity/applyUser/union"
} else {
this.url = "/platform/activity/applyUser/club"
}
}
const confirm = await this.$confirm('确定要通知提醒参加人员吗? 确认后会有短信推送!', '提示', {type: 'warning'})
if (confirm !== 'confirm') return
const resp = await $.get('/platform/activity/info/mange/doSendMsg',{
activityId:row.id,
msgUrl:"/mobile/activity/unionActivity/goReg?id=" + row.id + "&signUpMethod=" + row.signUpMethod,
groupId:row.groupId
});
if (resp.code === 0){
this.$message.success("发送成功")
} else {
this.$message.error(resp.msg)
}
console.log(row)
// // this.url = `<a href="` + (APP_DOMAIN + "/mobile/activity/unionActivity/goReg?id=" + row.id + "&signUpMethod=" + row.signUpMethod) + `">点击参与</a>`
// this.url = "/mobile/activity/unionActivity/goReg?id=" + row.id + "&signUpMethod=" + row.signUpMethod
// this.$refs.sendMsg.openDialog(row.groupId)
this.$refs.sendMsg.openDialog(row.groupId, "文化活动")
},
async remoteMethod(query) {
if (query) {
@@ -353,12 +353,6 @@
keys.forEach(key => {
$("#" + key).html("")
editors[key] = new E('#' + key)
editors[key].config.excludeMenus = [
'video',
'image',
'link',
'code',
]
editors[key].config.onchange = (html) => {
this.formData[key] = html
}
@@ -1,4 +1,4 @@
<div id="app" class="platform" v-cloak>
<div class="platform" id="app" v-cloak>
<guava ref="guava">
<template>
@@ -9,11 +9,11 @@
<div class="search-item-option">
<el-date-picker
@change="getActivityByYearOrType"
placeholder="选择年"
style="width: 100%"
v-model="pageForm.year"
value-format="yyyy"
type="year"
placeholder="选择年">
v-model="pageForm.year"
value-format="yyyy">
</el-date-picker>
</div>
</div>
@@ -21,13 +21,13 @@
<div class="search-item">
<div class="search-item-label">活动名称</div>
<div class="search-item-option">
<el-select v-model="pageForm.activityId" placeholder="请选择活动" filterable
style="width: 100%">
<el-select filterable placeholder="请选择活动" style="width: 100%"
v-model="pageForm.activityId">
<el-option
v-for="item in activityList"
:key="item.id"
:label="item.name"
:value="item.id">
:value="item.id"
v-for="item in activityList">
</el-option>
</el-select>
</div>
@@ -36,14 +36,14 @@
<div class="search-item" v-if="type==40002||type==40001">
<div class="search-item-label">工会名称</div>
<div class="search-item-option">
<el-select v-model="pageForm.unionId" placeholder="请选择工会" filterable
clearable
style="width: 100%">
<el-select clearable filterable placeholder="请选择工会"
style="width: 100%"
v-model="pageForm.unionId">
<el-option
v-for="item in unionList"
:key="item.id"
:label="item.unionname"
:value="item.id">
:value="item.id"
v-for="item in unionList">
</el-option>
</el-select>
</div>
@@ -52,12 +52,12 @@
<div class="search-item">
<div class="search-item-label">姓名/工号</div>
<div class="search-item-option">
<el-input placeholder="请输入姓名/工号" clearable
v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend"
placeholder="姓名/工号"
style="width: 80px;">
<el-input @keyup.enter.native="doSearch" clearable
placeholder="请输入姓名/工号"
v-model="pageForm.searchKeyword">
<el-select placeholder="姓名/工号" slot="prepend"
style="width: 80px;"
v-model="pageForm.searchName">
<el-option label="姓名" value="u.username"></el-option>
<el-option label="工号" value="u.loginanme"></el-option>
</el-select>
@@ -66,36 +66,45 @@
</div>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="pageData">搜索
<el-button @click="pageData" icon="el-icon-search" type="primary">搜索
</el-button>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="人员列表" :app="this">
<el-card class="mt10" shadow="never">
<table-tool :app="this" label="人员列表">
<template #func>
<el-button icon="el-icon-s-promotion" type="primary" @click="doExport">导出
<el-button @click="doExport" icon="el-icon-s-promotion" type="primary">导出
</el-button>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%;margin-bottom: 20px" row-key="id"
@sort-change="pageOrder" v-loading="tableLoading" :size="tableSize"
class="vi-table">
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
class="vi-table" row-key="id" style="width: 100%;margin-bottom: 20px"
v-loading="tableLoading">
<el-table-column align="center" header-align="center" type="index"
:index="indexMethod" label="序号"
<el-table-column :index="indexMethod" align="center" header-align="center"
label="序号" type="index"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
:label="column.label"
:prop="column.prop"
sortable>
align="center"
header-align="center"
sortable
v-for="column in tableColumns">
</el-table-column>
<el-table-column align="center" header-align="center" label="操作"
v-if="${@shiro.hasRole('sysadmin')}"
width="100">
<template scope="{row}">
<el-button @click="doDelete(row)" size="mini" type="danger">
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
@@ -133,6 +142,22 @@
}
},
methods: {
doDelete(row) {
this.$confirm('您确认要取消报名吗?', '提示', {type: 'warning'}).then(async () => {
const resp = await $.post('/mobile/activity/unionActivity/doSingleCancelRegister', {
activityId: this.pageForm.activityId,
applyUserId: row.applyUserId,
id: row.atpId
})
if (resp.code === 0) {
this.doSearch()
this.$refs.guava.index()
this.notifySuccess(resp.msg)
} else {
this.notifyError(resp.msg)
}
})
},
async doExport() {
const {activityId, unionId} = this.pageForm
window.open("/platform/activity/info/mange/doExportUser?id=" + activityId +
@@ -174,4 +199,4 @@
}
})
</script>
</script>
@@ -356,7 +356,7 @@ layout("/layouts/platform.html"){
}
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
this.$set(this.pageForm, "unitId", null)
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
@@ -364,7 +364,7 @@ layout("/layouts/platform.html"){
}
},
async getHonorNum() {
const evaluateNum = await HonorApi.getEvaluateNum(1800)
const evaluateNum = await HonorApi.getEvaluateNum(1800, this.pageForm.year)
this.honorTypeList.map(v => {
if (v.code === "H1100") {
v.num = evaluateNum.gr

Some files were not shown because too many files have changed in this diff Show More