commit
This commit is contained in:
+4
-4
@@ -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;
|
||||
|
||||
+6
-6
@@ -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;
|
||||
|
||||
+3
-3
@@ -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");
|
||||
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
+7
-7
@@ -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
-1
@@ -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;
|
||||
|
||||
+64
-184
@@ -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")) {
|
||||
|
||||
+5
-5
@@ -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;
|
||||
|
||||
+2
-2
@@ -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
-6
@@ -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;
|
||||
|
||||
+12
-12
@@ -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;
|
||||
}
|
||||
|
||||
+7
-7
@@ -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;
|
||||
|
||||
+2
-2
@@ -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
-7
@@ -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
-4
@@ -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;
|
||||
|
||||
+7
-10
@@ -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;
|
||||
|
||||
+2
-3
@@ -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;
|
||||
|
||||
+6
-6
@@ -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;
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+9
-44
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
+14
-5
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
+2
-2
@@ -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
-1
@@ -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
-1
@@ -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());
|
||||
|
||||
+1
-1
@@ -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;
|
||||
}
|
||||
|
||||
+7
-7
@@ -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
-1
@@ -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;
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
+22
-14
@@ -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">年  度</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
Reference in New Issue
Block a user