commit
This commit is contained in:
+21
@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.budwk.app.base.annotation.SLog;
|
import com.budwk.app.base.annotation.SLog;
|
||||||
import com.budwk.app.base.param.PageForm;
|
import com.budwk.app.base.param.PageForm;
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
|
import com.budwk.app.sys.models.Sys_user;
|
||||||
import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolApply;
|
import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolApply;
|
||||||
import com.budwk.app.zhgh.activity.sports.param.ActivitySportsApplyUserPageParam;
|
import com.budwk.app.zhgh.activity.sports.param.ActivitySportsApplyUserPageParam;
|
||||||
import com.budwk.app.zhgh.activity.sports.service.ActivitySportsApplyUserService;
|
import com.budwk.app.zhgh.activity.sports.service.ActivitySportsApplyUserService;
|
||||||
@@ -13,6 +14,7 @@ import org.nutz.dao.Cnd;
|
|||||||
import org.nutz.dao.Dao;
|
import org.nutz.dao.Dao;
|
||||||
import org.nutz.dao.Sqls;
|
import org.nutz.dao.Sqls;
|
||||||
import org.nutz.dao.sql.Sql;
|
import org.nutz.dao.sql.Sql;
|
||||||
|
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||||
import org.nutz.ioc.aop.Aop;
|
import org.nutz.ioc.aop.Aop;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
@@ -222,4 +224,23 @@ public class ActivitySportsApplyUserController {
|
|||||||
return Result.success(applyList);
|
return Result.success(applyList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@At
|
||||||
|
@SaCheckPermission("activity.apply")
|
||||||
|
public Result getSysUser(String queryString,String[] loginnames){
|
||||||
|
Cnd cnd = Cnd.NEW();
|
||||||
|
cnd.andEX("loginname", "not in", loginnames);
|
||||||
|
if (StrUtil.isNotBlank(queryString)) {
|
||||||
|
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||||
|
group.andLike("username", queryString).orLike("loginname", queryString);
|
||||||
|
cnd.and(group);
|
||||||
|
}
|
||||||
|
|
||||||
|
Sql sql = Sqls.create("select id,loginname,username,sex,mobile,unitId,birthday,idcard from `vw_user` $condition LIMIT 30");
|
||||||
|
sql.setCondition(cnd);
|
||||||
|
sql.setCallback(Sqls.callback.entities());
|
||||||
|
sql.setEntity(activitySportsApplyUserService.getEntity());
|
||||||
|
List<Sys_user> list = dao.execute(sql).getList(Sys_user.class);
|
||||||
|
return Result.success(list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+159
-2
@@ -1,17 +1,34 @@
|
|||||||
package com.budwk.app.zhgh.activity.sports.h5Controller;
|
package com.budwk.app.zhgh.activity.sports.h5Controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
|
import com.budwk.app.sys.views.View_user;
|
||||||
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
|
import com.budwk.app.zhgh.activity.basic.models.ActivityBasicUnion;
|
||||||
|
import com.budwk.app.zhgh.activity.basic.models.ActivityBasicUnit;
|
||||||
|
import com.budwk.app.zhgh.activity.basic.models.ActivityEvent;
|
||||||
|
import com.budwk.app.zhgh.activity.basic.models.ActivityUserScope;
|
||||||
import com.budwk.app.zhgh.activity.sports.models.ActivitySchool;
|
import com.budwk.app.zhgh.activity.sports.models.ActivitySchool;
|
||||||
|
import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolApply;
|
||||||
|
import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolEvent;
|
||||||
|
import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolTeam;
|
||||||
import com.budwk.app.zhgh.activity.sports.param.ActivitySportsApplyUserPageParam;
|
import com.budwk.app.zhgh.activity.sports.param.ActivitySportsApplyUserPageParam;
|
||||||
import com.budwk.app.zhgh.activity.sports.service.ActivitySportsApplyUserService;
|
import com.budwk.app.zhgh.activity.sports.service.ActivitySportsApplyUserService;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
|
import org.nutz.dao.Dao;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.lang.Lang;
|
||||||
import org.nutz.mvc.annotation.At;
|
import org.nutz.mvc.annotation.At;
|
||||||
import org.nutz.mvc.annotation.Ok;
|
import org.nutz.mvc.annotation.Ok;
|
||||||
import org.nutz.mvc.annotation.Param;
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ClassName H5ActivitySportsApplyUserController
|
* @ClassName H5ActivitySportsApplyUserController
|
||||||
@@ -21,12 +38,15 @@ import javax.validation.Valid;
|
|||||||
*/
|
*/
|
||||||
@IocBean
|
@IocBean
|
||||||
@Ok("json:full")
|
@Ok("json:full")
|
||||||
@At("/platform/h5/activity/apply")
|
@At("/platform/activity/apply/h5")
|
||||||
public class H5ActivitySportsApplyUserController {
|
public class H5ActivitySportsApplyUserController {
|
||||||
@Inject
|
@Inject
|
||||||
private ActivitySportsApplyUserService activitySportsApplyUserService;
|
private ActivitySportsApplyUserService activitySportsApplyUserService;
|
||||||
|
|
||||||
@At("/applyUser")
|
@Inject
|
||||||
|
private Dao dao;
|
||||||
|
|
||||||
|
@At("/index")
|
||||||
@Ok("beetl:platform/zhghh5/activity/sports/applyUser.html")
|
@Ok("beetl:platform/zhghh5/activity/sports/applyUser.html")
|
||||||
@SaCheckPermission("h5.activity.sports.applyUser")
|
@SaCheckPermission("h5.activity.sports.applyUser")
|
||||||
public void applyUserIndex() {
|
public void applyUserIndex() {
|
||||||
@@ -60,5 +80,142 @@ public class H5ActivitySportsApplyUserController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@SaCheckPermission("h5.activity.sports.applyUser")
|
||||||
|
public Result signUpUser(@Valid String activityId, @Valid String eventId, @Valid String schoolEventId, @Valid String teamId) {
|
||||||
|
View_user user = dao.fetch(View_user.class, Cnd.where(View_user::getId, "=", SecurityUtil.getUserId()));
|
||||||
|
ActivitySchoolEvent schoolEvent = dao.fetch(ActivitySchoolEvent.class, schoolEventId);
|
||||||
|
ActivityEvent activityEvent = dao.fetch(ActivityEvent.class, eventId);
|
||||||
|
ActivitySchool activitySchool = dao.fetch(ActivitySchool.class, activityId);
|
||||||
|
ActivitySchoolTeam schoolTeam = dao.fetch(ActivitySchoolTeam.class, teamId);
|
||||||
|
|
||||||
|
ActivityBasicUnit basicUnit = dao.fetch(ActivityBasicUnit.class, Cnd.where("id", "=", SecurityUtil.getUnitId()));
|
||||||
|
ActivityBasicUnion basicUnion = dao.fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionId()));
|
||||||
|
if (Lang.isEmpty(basicUnion)) {
|
||||||
|
return Result.error("请先设置活动工会");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//判断是否在活动组别内
|
||||||
|
int count = dao.count(ActivityUserScope.class,
|
||||||
|
Cnd.where(ActivityUserScope::getGroupId, "=", activitySchool.getActivityGroupId())
|
||||||
|
.and(ActivityUserScope::getUserId, "=", SecurityUtil.getUserId()));
|
||||||
|
if (count == 0) {
|
||||||
|
return Result.error("您没有权限参与该活动");
|
||||||
|
}
|
||||||
|
//如果不等于空代表是个人项目
|
||||||
|
if (ObjectUtil.isNotEmpty(activityEvent.getIsMenWomen())) {
|
||||||
|
if (activityEvent.getIsMenWomen() == 1 && !user.getSex().equals("男")) {
|
||||||
|
return Result.error("当前项目只能男性能报名!");
|
||||||
|
}
|
||||||
|
if (activityEvent.getIsMenWomen() == 2 && !user.getSex().equals("女")) {
|
||||||
|
return Result.error("当前项目只能女性能报名!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<ActivitySchoolApply> schoolApplyList = dao.query(ActivitySchoolApply.class,
|
||||||
|
Cnd.where(ActivitySchoolApply::getActivityId, "=", activityId)
|
||||||
|
.and(ActivitySchoolApply::getEventId, "=", eventId)
|
||||||
|
.and(ActivitySchoolApply::getActivityUnionId, "=", basicUnit.getId())
|
||||||
|
.and(ActivitySchoolApply::getApplyUser, "!=", SecurityUtil.getUserId()));
|
||||||
|
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(schoolEvent.getRestrictGirlNum()) && user.getSex().equals("女")) {
|
||||||
|
if (schoolEvent.getRestrictGirlNum() == 0) {
|
||||||
|
return Result.error("当前项目女性没有报名名额!");
|
||||||
|
}
|
||||||
|
//找出当前工会女性报名的数量
|
||||||
|
int size = schoolApplyList.stream().filter(girl -> girl.getSex().equals("女")).toList().size();
|
||||||
|
//数量加上自己如果大于配置的
|
||||||
|
if (size + 1 > schoolEvent.getRestrictGirlNum()) {
|
||||||
|
return Result.error("当前项目女性只能报名" + schoolEvent.getRestrictGirlNum() + "人!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(schoolEvent.getRestrictBoyNum()) && user.getSex().equals("男")) {
|
||||||
|
if (schoolEvent.getRestrictBoyNum() == 0) {
|
||||||
|
return Result.error("当前项目男性没有报名名额!");
|
||||||
|
}
|
||||||
|
//找出当前工会男性报名的数量
|
||||||
|
int size = schoolApplyList.stream().filter(girl -> girl.getSex().equals("男")).toList().size();
|
||||||
|
//数量加上自己如果大于配置的
|
||||||
|
if (size + 1 > schoolEvent.getRestrictBoyNum()) {
|
||||||
|
return Result.error("当前项目男性只能报名" + schoolEvent.getRestrictGirlNum() + "人!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(schoolEvent.getStartAgeDate()) && ObjectUtil.isNotEmpty(schoolEvent.getEndAgeDate())) {
|
||||||
|
//如果年龄做了判断
|
||||||
|
try {
|
||||||
|
if (ObjectUtil.isEmpty(user.getBirthday())) {
|
||||||
|
return Result.error("请先完善您的出生日期");
|
||||||
|
}
|
||||||
|
// 需要先将字符串转换为日期进行比较
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
Date startAgeDate = sdf.parse(schoolEvent.getStartAgeDate());
|
||||||
|
Date endAgeDate = sdf.parse(schoolEvent.getEndAgeDate());
|
||||||
|
if (user.getBirthday().getTime() < startAgeDate.getTime() || user.getBirthday().getTime() > endAgeDate.getTime()) {
|
||||||
|
return Result.error("您年龄不在报名时间段内");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
return Result.error("年龄格式解析错误");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ActivitySchoolApply schoolApply = new ActivitySchoolApply();
|
||||||
|
schoolApply.setActivityId(activityId);
|
||||||
|
schoolApply.setEventId(eventId);
|
||||||
|
schoolApply.setUnionname(user.getUnionName());
|
||||||
|
schoolApply.setAwardsMode(activityEvent.getProjectType());
|
||||||
|
schoolApply.setUnitId(user.getUnitId());
|
||||||
|
schoolApply.setUnionId(user.getUnionId());
|
||||||
|
schoolApply.setActivityUnionId(basicUnion.getId());
|
||||||
|
schoolApply.setActivityUnionName(basicUnion.getName());
|
||||||
|
schoolApply.setUserId(SecurityUtil.getUserId());
|
||||||
|
schoolApply.setApplyUser(SecurityUtil.getUserId());
|
||||||
|
schoolApply.setBirthday(ObjectUtil.isNotEmpty(user.getBirthday()) ? String.valueOf(user.getBirthday()) : null);
|
||||||
|
schoolApply.setApplyDate(DateUtil.now());
|
||||||
|
schoolApply.setIdentity(List.of("1"));
|
||||||
|
if (activitySchool.getApplyWay().size() == 2 && activitySchool.getApplyWay().contains(1)) {
|
||||||
|
schoolApply.setStatus(0);
|
||||||
|
} else if (activitySchool.getApplyWay().size() == 1 && activitySchool.getApplyWay().contains(1)) {
|
||||||
|
schoolApply.setStatus(2);
|
||||||
|
}
|
||||||
|
schoolApply.setUnitname(user.getUnitName());
|
||||||
|
schoolApply.setTeamId(schoolTeam.getId());
|
||||||
|
schoolApply.setTeam(schoolTeam.getName());
|
||||||
|
schoolApply.setLoginname(user.getLoginname());
|
||||||
|
schoolApply.setUsername(user.getUsername());
|
||||||
|
schoolApply.setMobile(user.getMobile());
|
||||||
|
schoolApply.setSex(user.getSex());
|
||||||
|
dao.insert(schoolApply);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@At
|
||||||
|
@SaCheckPermission("h5.activity.sports.applyUser")
|
||||||
|
public Result cancelApply(@Valid String activityId, @Valid String eventId, @Valid String schoolEventId) {
|
||||||
|
int count = dao.count(ActivitySchoolApply.class,
|
||||||
|
Cnd.where(ActivitySchoolApply::getUserId, "=", SecurityUtil.getUserId())
|
||||||
|
.and(ActivitySchoolApply::getActivityId, "=", activityId)
|
||||||
|
.and(ActivitySchoolApply::getEventId, "=", eventId).and(ActivitySchoolApply::getStatus, "=", 2));
|
||||||
|
if (count > 0) {
|
||||||
|
return Result.error("您已报名成功无法取消,请联系管理员取消!");
|
||||||
|
}
|
||||||
|
|
||||||
|
dao.clear(ActivitySchoolApply.class, Cnd.where(ActivitySchoolApply::getUserId, "=", SecurityUtil.getUserId())
|
||||||
|
.and(ActivitySchoolApply::getActivityId, "=", activityId).and(ActivitySchoolApply::getEventId, "=", eventId));
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@At
|
||||||
|
@SaCheckPermission("h5.activity.sports.applyUser")
|
||||||
|
public Result listTeamList(@Valid String activityId, @Valid String eventId) {
|
||||||
|
return Result.success(dao.query(ActivitySchoolTeam.class, Cnd.where(ActivitySchoolTeam::getActivityId, "=", activityId)
|
||||||
|
.and(ActivitySchoolTeam::getEventId, "=", eventId).asc(ActivitySchoolTeam::getLocation)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -77,8 +77,10 @@ public class ActivitySportsApplyUserServiceImpl extends BaseServiceImpl<Activity
|
|||||||
eve.projectType eveProjectType,
|
eve.projectType eveProjectType,
|
||||||
eve.isMenWomen,
|
eve.isMenWomen,
|
||||||
apply.`status`,
|
apply.`status`,
|
||||||
|
apply2.`status` status2,
|
||||||
IF (sum(apply.`status`=2) IS NULL, 0, sum(apply.`status`=2)) AS successUserApply,
|
IF (sum(apply.`status`=2) IS NULL, 0, sum(apply.`status`=2)) AS successUserApply,
|
||||||
count(apply.id) userApply,
|
count(apply.id) userApply,
|
||||||
|
count(apply2.id) userApply2,
|
||||||
apply.applyUser,
|
apply.applyUser,
|
||||||
(SELECT ast.`name` FROM activity_school_apply app LEFT JOIN activity_school_team ast ON ast.id = app.teamId WHERE app.eventId = ase.eventId AND app.activityId = ase.activityId AND app.userId = @userId) activityTeamName,
|
(SELECT ast.`name` FROM activity_school_apply app LEFT JOIN activity_school_team ast ON ast.id = app.teamId WHERE app.eventId = ase.eventId AND app.activityId = ase.activityId AND app.userId = @userId) activityTeamName,
|
||||||
(select GROUP_CONCAT(username) FROM activity_school_apply WHERE status=2 and eventId = ase.eventId
|
(select GROUP_CONCAT(username) FROM activity_school_apply WHERE status=2 and eventId = ase.eventId
|
||||||
@@ -92,6 +94,7 @@ public class ActivitySportsApplyUserServiceImpl extends BaseServiceImpl<Activity
|
|||||||
LEFT JOIN activity_event eve ON ase.eventId=eve.id
|
LEFT JOIN activity_event eve ON ase.eventId=eve.id
|
||||||
LEFT JOIN activity_basic_settings abs ON abs.id=eve.competitionCategory
|
LEFT JOIN activity_basic_settings abs ON abs.id=eve.competitionCategory
|
||||||
LEFT JOIN activity_school_apply apply ON apply.activityId=ase.activityId AND apply.eventId=ase.eventId AND (applyUser=@userId or userId=@userId)
|
LEFT JOIN activity_school_apply apply ON apply.activityId=ase.activityId AND apply.eventId=ase.eventId AND (applyUser=@userId or userId=@userId)
|
||||||
|
LEFT JOIN activity_school_apply apply2 ON apply2.activityId=ase.activityId AND apply2.eventId=ase.eventId AND apply2.userId=@userId
|
||||||
$condition
|
$condition
|
||||||
""").setParam("unionId", pageParam.getUnionId()).setParam("userId", SecurityUtil.getUserId());
|
""").setParam("unionId", pageParam.getUnionId()).setParam("userId", SecurityUtil.getUserId());
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
package com.budwk.app.zhgh.dayofficework.asset.controller;
|
package com.budwk.app.zhgh.dayofficework.asset.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import com.budwk.app.base.annotation.SLog;
|
import com.budwk.app.base.annotation.SLog;
|
||||||
import com.budwk.app.base.page.Pagination;
|
import com.budwk.app.base.page.Pagination;
|
||||||
@@ -78,7 +79,7 @@ public class AssetStocktakingPlanController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("按年度查询资产盘点计划")
|
@ApiOperation("按年度查询资产盘点计划")
|
||||||
@SaCheckPermission("asset.stocktakingPlan")
|
@SaCheckLogin
|
||||||
public Result queryStocktakingPlan(Integer year) {
|
public Result queryStocktakingPlan(Integer year) {
|
||||||
List<AssetStocktakingPlan> planList = baseService.dao().query(AssetStocktakingPlan.class, Cnd.NEW().andEX(AssetStocktakingPlan::getYear, "=", year));
|
List<AssetStocktakingPlan> planList = baseService.dao().query(AssetStocktakingPlan.class, Cnd.NEW().andEX(AssetStocktakingPlan::getYear, "=", year));
|
||||||
return Result.success(planList);
|
return Result.success(planList);
|
||||||
|
|||||||
@@ -12,225 +12,324 @@ const groupBy = (list, fn) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
var ACTIVITY_SPORTS_APPLY_USER = {
|
var ACTIVITY_SPORTS_APPLY_USER = {
|
||||||
template: `
|
template: /*language=HTML*/ `
|
||||||
<div style="margin: 20px">
|
<div style="margin: 20px">
|
||||||
<el-tabs tab-position="top" v-model="activeName">
|
<el-tabs tab-position="top" v-model="activeName">
|
||||||
<el-tab-pane :label="activityTableData.allName" name="1">
|
<el-tab-pane :label="activityTableData.allName" name="1">
|
||||||
<el-card>
|
<el-card>
|
||||||
<el-transfer
|
<el-transfer
|
||||||
:data="leftApplyUserList"
|
:data="leftApplyUserList"
|
||||||
:filter-method="filterMethod"
|
:filter-method="filterMethod"
|
||||||
:props="{key: 'id',label: 'name'}"
|
:props="{key: 'id',label: 'name'}"
|
||||||
:titles="['可报人员名单', '当前选择']"
|
:titles="['可报人员名单', '当前选择']"
|
||||||
filterable
|
filterable
|
||||||
ref="transfer"
|
ref="transfer"
|
||||||
v-model="rightApplyUserList">
|
v-model="rightApplyUserList">
|
||||||
<template #right-footer>
|
<template #right-footer>
|
||||||
<div class="transfer">
|
<div class="transfer">
|
||||||
<el-select :clearable="false"
|
<el-select :clearable="false"
|
||||||
@change="flushApplyUser(applyUserList)"
|
@change="flushApplyUser(applyUserList)"
|
||||||
placeholder="队伍"
|
placeholder="队伍"
|
||||||
size="small"
|
size="small"
|
||||||
v-if="activityTableData.eveProjectType=='2'"
|
v-if="activityTableData.eveProjectType=='2'"
|
||||||
v-model="applyFromData.teamId">
|
v-model="applyFromData.teamId">
|
||||||
<el-option
|
<el-option
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.name"
|
:label="item.name"
|
||||||
:value="item.id"
|
:value="item.id"
|
||||||
v-for="item in teamList">
|
v-for="item in teamList">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button @click="applyUser" icon="el-icon-plus"
|
<el-button @click="applyUser" icon="el-icon-plus"
|
||||||
size="small"
|
size="small"
|
||||||
type="primary">
|
type="primary">
|
||||||
参加比赛
|
参加比赛
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-transfer>
|
</el-transfer>
|
||||||
|
|
||||||
<!-- 个人项目-->
|
<!-- 个人项目-->
|
||||||
<template v-if="activityTableData.eveProjectType==='1'">
|
<template v-if="activityTableData.eveProjectType==='1'">
|
||||||
<div style="display: flex;margin: 20px 0">
|
<div style="display: flex;margin: 20px 0">
|
||||||
<el-divider content-position="left">
|
<el-divider content-position="left">
|
||||||
单项报名人数最多{{activityTableData.athleteMaxNum}}
|
单项报名人数最多{{activityTableData.athleteMaxNum}}
|
||||||
人,该队已有{{applyUserTableData.length}}
|
人,该队已有{{applyUserTableData.length}}
|
||||||
名成员,还可报名{{activityTableData.athleteMaxNum-applyUserTableData.length}}
|
名成员,还可报名{{activityTableData.athleteMaxNum-applyUserTableData.length}}
|
||||||
人
|
人
|
||||||
。
|
。
|
||||||
</el-divider>
|
</el-divider>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<!-- 团体项目-->
|
<!-- 团体项目-->
|
||||||
<template v-if="activityTableData.eveProjectType==='2'">
|
<template v-if="activityTableData.eveProjectType==='2'">
|
||||||
<!-- 如果是只需要报领队 -->
|
<!-- 如果是只需要报领队 -->
|
||||||
<div style="display: flex;margin: 20px 0;align-items: center;"
|
<div style="display: flex;margin: 20px 0;align-items: center;"
|
||||||
v-if="activityTableData.isLeader">
|
v-if="activityTableData.isLeader">
|
||||||
<el-divider content-position="left">每支队伍最少运动员人数
|
<el-divider content-position="left">每支队伍最少运动员人数
|
||||||
{{activityTableData.restrictMaxNum}} 人,最多
|
{{activityTableData.restrictMaxNum}} 人,最多
|
||||||
{{activityTableData.restrictMaxNum}} 人,该队运动员已有
|
{{activityTableData.restrictMaxNum}} 人,该队运动员已有
|
||||||
{{activityTableData.athleteMaxNum}} 名成员,还可报名
|
{{activityTableData.athleteMaxNum}} 名成员,还可报名
|
||||||
{{activityTableData.restrictMaxNum-applyUserTableData.filter(v=>v.identity.includes('1')).length}}
|
{{activityTableData.restrictMaxNum-applyUserTableData.filter(v=>v.identity.includes('1')).length}}
|
||||||
人。
|
人。
|
||||||
</el-divider>
|
</el-divider>
|
||||||
</div>
|
</div>
|
||||||
<!--如果是正常报名-->
|
<!--如果是正常报名-->
|
||||||
<template v-if="!activityTableData.isLeader">
|
<template v-if="!activityTableData.isLeader">
|
||||||
<div style="display: flex;margin: 20px 0;align-items: center;">
|
<div style="display: flex;margin: 20px 0;align-items: center;">
|
||||||
<el-divider content-position="left">每支队伍最多
|
<el-divider content-position="left">每支队伍最多
|
||||||
{{activityTableData.restrictMaxNum}}
|
{{activityTableData.restrictMaxNum}}
|
||||||
人,其中领队{{activityTableData.leanderNum}}人,
|
人,其中领队{{activityTableData.leanderNum}}人,
|
||||||
教练{{activityTableData.coachNum}}人,
|
教练{{activityTableData.coachNum}}人,
|
||||||
运动员必须设置{{activityTableData.athleteMaxNum}}人,
|
运动员必须设置{{activityTableData.athleteMaxNum}}人,
|
||||||
替补{{activityTableData.substituteNum}}人。
|
替补{{activityTableData.substituteNum}}人。
|
||||||
男运动员最少{{activityTableData.restrictBoyNum?activityTableData.restrictBoyNum:'0'}}人,
|
男运动员最少{{activityTableData.restrictBoyNum?activityTableData.restrictBoyNum:'0'}}人,
|
||||||
女运动员最少{{activityTableData.restrictGirlNum?activityTableData.restrictGirlNum:'0'}}人【该队运动员已有
|
女运动员最少{{activityTableData.restrictGirlNum?activityTableData.restrictGirlNum:'0'}}人【该队运动员已有
|
||||||
{{applyUserTableData.filter(v=>v.identity.includes('1')).length}}
|
{{applyUserTableData.filter(v=>v.identity.includes('1')).length}}
|
||||||
人,还可报名
|
人,还可报名
|
||||||
{{activityTableData.athleteMaxNum-applyUserTableData.filter(v=>v.identity.includes('1')).length}}人;
|
{{activityTableData.athleteMaxNum-applyUserTableData.filter(v=>v.identity.includes('1')).length}}人;
|
||||||
替补还可以报{{activityTableData.substituteNum-applyUserTableData.filter(v=>v.identity.includes('5')).length}}人(非必需)】
|
替补还可以报{{activityTableData.substituteNum-applyUserTableData.filter(v=>v.identity.includes('5')).length}}人(非必需)】
|
||||||
</el-divider>
|
</el-divider>
|
||||||
</div>
|
<div style="padding-left: 10px">
|
||||||
<el-button @click="setUserRole('4')"
|
<el-tooltip class="item"
|
||||||
icon="el-icon-check"
|
content="系统中查询不到的人可以点击添加"
|
||||||
plain
|
effect="dark"
|
||||||
size="small" type="primary"
|
placement="top">
|
||||||
v-if="activityTableData.deputyDirectorNum>0">
|
<el-button
|
||||||
设置处级领导
|
:disabled="(activityTableData.restrictMaxNum-applyUserTableData.length)<=0"
|
||||||
</el-button>
|
@click="openAddUser" circle icon="el-icon-plus"
|
||||||
<el-button @click="setUserRole('3')" icon="el-icon-check" plain
|
type="danger"></el-button>
|
||||||
size="small"
|
</el-tooltip>
|
||||||
type="primary"
|
</div>
|
||||||
v-if="activityTableData.leanderNum>0">设置领队
|
</div>
|
||||||
</el-button>
|
<el-button @click="setUserRole('4')"
|
||||||
<el-button @click="setUserRole('2')" icon="el-icon-check" plain
|
icon="el-icon-check"
|
||||||
size="small" type="primary"
|
plain
|
||||||
v-if="activityTableData.coachNum>0">
|
size="small" type="primary"
|
||||||
设置教练
|
v-if="activityTableData.deputyDirectorNum>0">
|
||||||
</el-button>
|
设置处级领导
|
||||||
|
</el-button>
|
||||||
|
<el-button @click="setUserRole('3')" icon="el-icon-check" plain
|
||||||
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
v-if="activityTableData.leanderNum>0">设置领队
|
||||||
|
</el-button>
|
||||||
|
<el-button @click="setUserRole('2')" icon="el-icon-check" plain
|
||||||
|
size="small" type="primary"
|
||||||
|
v-if="activityTableData.coachNum>0">
|
||||||
|
设置教练
|
||||||
|
</el-button>
|
||||||
|
|
||||||
<el-button @click="setUserRole('5')" icon="el-icon-check"
|
<el-button @click="setUserRole('5')" icon="el-icon-check"
|
||||||
plain
|
plain
|
||||||
size="small" type="primary"
|
size="small" type="primary"
|
||||||
v-if="activityTableData.substituteNum>0">
|
v-if="activityTableData.substituteNum>0">
|
||||||
设置替补
|
设置替补
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-dropdown @command="changeTeam"
|
|
||||||
v-if="activityTableData.eveProjectType==2&&teamList.length>1">
|
|
||||||
<el-button size="small" type="primary">
|
|
||||||
修改小队<i class="el-icon-arrow-down el-icon--right"></i>
|
|
||||||
</el-button>
|
|
||||||
<el-dropdown-menu slot="dropdown">
|
|
||||||
<el-dropdown-item :command="{item}"
|
|
||||||
:key="item.id" v-for="item in teamList">
|
|
||||||
{{item.name}}
|
|
||||||
</el-dropdown-item>
|
|
||||||
</el-dropdown-menu>
|
|
||||||
</el-dropdown>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<el-table :data="applyUserTableData"
|
|
||||||
@selection-change="handleSelectionChange" border
|
|
||||||
class="mt10" ref="multipleTable"
|
|
||||||
row-key="id" size="small"
|
|
||||||
stripe
|
|
||||||
v-loading="applyUserTabLoading">
|
|
||||||
|
|
||||||
<el-table-column :reserve-selection="true"
|
|
||||||
align="center" header-align="center"
|
|
||||||
type="selection"
|
|
||||||
width="55">
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
align="center" header-align="center" label="序号"
|
|
||||||
type="index"
|
|
||||||
width="80">
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
align="center" header-align="center" label="所属队"
|
|
||||||
prop="team" width="80">
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
align="center" header-align="center" label="姓名"
|
|
||||||
prop="username" width="130">
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
align="center" header-align="center" label="教工号"
|
|
||||||
prop="loginname" width="130">
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
align="center" header-align="center" label="单位"
|
|
||||||
prop="unitname"
|
|
||||||
sortable>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
align="center" header-align="center" label="性别"
|
|
||||||
prop="sex" width="80">
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
align="center" header-align="center" label="年龄"
|
|
||||||
prop="age" width="80">
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
align="center" header-align="center" label="身份"
|
|
||||||
prop="identity" width="300px">
|
|
||||||
<template scope="{$index,row}">
|
|
||||||
<el-tag :disable-transitions="false"
|
|
||||||
@close="delApplyUser($index,row,'4')"
|
|
||||||
closable
|
|
||||||
effect="light"
|
|
||||||
type="info"
|
|
||||||
v-if="row.identity.includes('4')">处级领导
|
|
||||||
</el-tag>
|
|
||||||
<el-tag :disable-transitions="false"
|
|
||||||
@close="delApplyUser($index,row,'3')"
|
|
||||||
closable
|
|
||||||
effect="light"
|
|
||||||
type="warning"
|
|
||||||
v-if="row.identity.includes('3')">领队
|
|
||||||
</el-tag>
|
|
||||||
<el-tag :disable-transitions="false"
|
|
||||||
@close="delApplyUser($index,row,'2')"
|
|
||||||
closable
|
|
||||||
effect="light"
|
|
||||||
type="success"
|
|
||||||
v-if="row.identity.includes('2')">教练
|
|
||||||
</el-tag>
|
|
||||||
<el-tag :disable-transitions="false"
|
|
||||||
@close="delApplyUser($index,row,'1')"
|
|
||||||
closable
|
|
||||||
effect="light"
|
|
||||||
v-if="row.identity.includes('1')">运动员
|
|
||||||
</el-tag>
|
|
||||||
<el-tag :disable-transitions="false"
|
|
||||||
@close="delApplyUser($index,row,'5')"
|
|
||||||
closable
|
|
||||||
effect="light"
|
|
||||||
type="danger"
|
|
||||||
v-if="row.identity.includes('5')">替补
|
|
||||||
</el-tag>
|
|
||||||
|
|
||||||
|
<el-dropdown @command="changeTeam"
|
||||||
|
v-if="activityTableData.eveProjectType==2&&teamList.length>1">
|
||||||
|
<el-button size="small" type="primary">
|
||||||
|
修改小队<i class="el-icon-arrow-down el-icon--right"></i>
|
||||||
|
</el-button>
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<el-dropdown-item :command="{item}"
|
||||||
|
:key="item.id" v-for="item in teamList">
|
||||||
|
{{item.name}}
|
||||||
|
</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
</template>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
|
|
||||||
</el-card>
|
<el-table :data="applyUserTableData"
|
||||||
</el-tab-pane>
|
@selection-change="handleSelectionChange" border
|
||||||
</el-tabs>
|
class="mt10" ref="multipleTable"
|
||||||
</div>
|
row-key="id" size="small"
|
||||||
`,
|
stripe
|
||||||
|
v-loading="applyUserTabLoading">
|
||||||
|
|
||||||
|
<el-table-column :reserve-selection="true"
|
||||||
|
align="center" header-align="center"
|
||||||
|
type="selection"
|
||||||
|
width="55">
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
align="center" header-align="center" label="序号"
|
||||||
|
type="index"
|
||||||
|
width="80">
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
align="center" header-align="center" label="所属队"
|
||||||
|
prop="team" width="80">
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
align="center" header-align="center" label="姓名"
|
||||||
|
prop="username" width="130">
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
align="center" header-align="center" label="教工号"
|
||||||
|
prop="loginname" width="130">
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
align="center" header-align="center" label="单位"
|
||||||
|
prop="unitname"
|
||||||
|
sortable>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
align="center" header-align="center" label="性别"
|
||||||
|
prop="sex" width="80">
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
align="center" header-align="center" label="年龄"
|
||||||
|
prop="age" width="80">
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column
|
||||||
|
align="center" header-align="center" label="身份"
|
||||||
|
prop="identity" width="300px">
|
||||||
|
<template scope="{$index,row}">
|
||||||
|
<el-tag :disable-transitions="false"
|
||||||
|
@close="delApplyUser($index,row,'4')"
|
||||||
|
closable
|
||||||
|
effect="light"
|
||||||
|
type="info"
|
||||||
|
v-if="row.identity.includes('4')">处级领导
|
||||||
|
</el-tag>
|
||||||
|
<el-tag :disable-transitions="false"
|
||||||
|
@close="delApplyUser($index,row,'3')"
|
||||||
|
closable
|
||||||
|
effect="light"
|
||||||
|
type="warning"
|
||||||
|
v-if="row.identity.includes('3')">领队
|
||||||
|
</el-tag>
|
||||||
|
<el-tag :disable-transitions="false"
|
||||||
|
@close="delApplyUser($index,row,'2')"
|
||||||
|
closable
|
||||||
|
effect="light"
|
||||||
|
type="success"
|
||||||
|
v-if="row.identity.includes('2')">教练
|
||||||
|
</el-tag>
|
||||||
|
<el-tag :disable-transitions="false"
|
||||||
|
@close="delApplyUser($index,row,'1')"
|
||||||
|
closable
|
||||||
|
effect="light"
|
||||||
|
v-if="row.identity.includes('1')">运动员
|
||||||
|
</el-tag>
|
||||||
|
<el-tag :disable-transitions="false"
|
||||||
|
@close="delApplyUser($index,row,'5')"
|
||||||
|
closable
|
||||||
|
effect="light"
|
||||||
|
type="danger"
|
||||||
|
v-if="row.identity.includes('5')">替补
|
||||||
|
</el-tag>
|
||||||
|
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
</el-card>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
|
||||||
|
|
||||||
|
<el-dialog
|
||||||
|
:append-to-body="true"
|
||||||
|
:visible.sync="addUserDialogVisible"
|
||||||
|
title="添加人员"
|
||||||
|
width="40%"
|
||||||
|
>
|
||||||
|
<el-form :model="formData" label-width="100px" ref="lsryform">
|
||||||
|
<el-form-item label="所在队伍" prop="teamId"
|
||||||
|
:rules="{required: true, message: '请选择所在队伍', trigger: 'blur'}">
|
||||||
|
<el-select clearable disabled placeholder="请选择所在队伍" style="width: 100%"
|
||||||
|
v-model="formData.teamId">
|
||||||
|
<el-option
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
v-for="item in teamList">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="姓名" prop="userId"
|
||||||
|
:rules="{required: true, message: '请输入工号或者姓名查询', trigger: 'blur'}">
|
||||||
|
<el-select
|
||||||
|
:remote-method="querySearchAsync"
|
||||||
|
@change="addUserChange"
|
||||||
|
filterable
|
||||||
|
placeholder="请输入工号或者下姓名查询"
|
||||||
|
remote
|
||||||
|
reserve-keyword
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="formData.userId">
|
||||||
|
<el-option
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.username+'-'+item.loginname"
|
||||||
|
:value="item.id"
|
||||||
|
v-for="item in lsUserList">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="工号" prop="loginname"
|
||||||
|
:rules="{required: true, message: '请填写工号', trigger: 'blur'}">
|
||||||
|
<el-input disabled maxlength="50" placeholder="请填写工号"
|
||||||
|
type="text" v-model="formData.loginname"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="性别" prop="sex" :rules="{required: true, message: '性别', trigger: 'blur'}">
|
||||||
|
<el-radio-group v-model="formData.sex">
|
||||||
|
<el-radio label="男" border>男</el-radio>
|
||||||
|
<el-radio label="女" border>女</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="出生年月" prop="birthday"
|
||||||
|
:rules="{required: true, message: '选择出生年月', trigger: 'blur'}">
|
||||||
|
<el-date-picker
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="formData.birthday"
|
||||||
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
placeholder="选择出生年月">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="电话" prop="mobile">
|
||||||
|
<el-input maxlength="50" placeholder="请填写电话" type="text"
|
||||||
|
v-model="formData.mobile"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="身份证号" prop="idcard">
|
||||||
|
<el-input maxlength="30" placeholder="请填写身份证号" type="text"
|
||||||
|
v-model="formData.idcard"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="所在单位" prop="unitId"
|
||||||
|
:rules="{required: true, message: '请选择所在单位', trigger: 'blur'}">
|
||||||
|
<el-select clearable filterable placeholder="请选择所在单位" style="width: 100%"
|
||||||
|
v-model="formData.unitId">
|
||||||
|
<el-option
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
v-for="item in unitOptions">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<span class="dialog-footer" slot="footer">
|
||||||
|
<el-button @click="addUserDialogVisible = false">取 消</el-button>
|
||||||
|
<el-button @click="doAddUser" type="primary">确 定</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
store,
|
store,
|
||||||
mixins: [initTableMixins],
|
mixins: [initTableMixins],
|
||||||
data() {
|
data() {
|
||||||
@@ -253,10 +352,85 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
applyUserTabLoading: false,
|
applyUserTabLoading: false,
|
||||||
selection: [],
|
selection: [],
|
||||||
//全部可报名的人员
|
//全部可报名的人员
|
||||||
userList: []
|
userList: [],
|
||||||
|
|
||||||
|
addUserDialogVisible: false,
|
||||||
|
lsUserList: [],
|
||||||
|
unitOptions: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
doAddUser() {
|
||||||
|
this.$refs["lsryform"].validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
const birthDate = this.$moment(this.formData.birthday);
|
||||||
|
const age = this.$moment().diff(birthDate, 'years');
|
||||||
|
const data = {
|
||||||
|
isAddUser: true,
|
||||||
|
age: age,
|
||||||
|
unitname: this.unitOptions.find(x => x.id === this.formData.unitId).name,
|
||||||
|
...this.formData
|
||||||
|
}
|
||||||
|
const newUser = this.userList.find(a => a.id === this.formData.userId)
|
||||||
|
if (newUser) {
|
||||||
|
this.notifyWarning('该用户已存在左侧选择框内,请从左侧选择框内选择!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.applyUserList.push(data)
|
||||||
|
this.flushApplyUser(this.applyUserList)
|
||||||
|
this.sortApplyUserTableData()
|
||||||
|
|
||||||
|
this.$notify.success({title: '成功', message: '已添加'});
|
||||||
|
this.addUserDialogVisible = false
|
||||||
|
} else {
|
||||||
|
this.$notify.error({title: '错误', message: '存在未填写的的必填项'});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async addUserChange(val) {
|
||||||
|
const user = this.lsUserList.find(l => l.id === val)
|
||||||
|
this.$set(this.formData, 'eventId', this.eventData.eventId)
|
||||||
|
this.$set(this.formData, 'activityId', this.activityTableData.activityId)
|
||||||
|
this.$set(this.formData, 'team', this.applyFromData.teamName)
|
||||||
|
this.$set(this.formData, 'teamId', this.applyFromData.teamId)
|
||||||
|
this.$set(this.formData, 'userId', user ? user.id : null)
|
||||||
|
this.$set(this.formData, 'loginname', user ? user.loginname : null)
|
||||||
|
this.$set(this.formData, 'username', user ? user.username : null)
|
||||||
|
this.$set(this.formData, 'unitId', user ? user.unitId : null)
|
||||||
|
this.$set(this.formData, 'sex', user ? user.sex : null)
|
||||||
|
this.$set(this.formData, 'idcard', user ? user.idCard : null)
|
||||||
|
this.$set(this.formData, 'mobile', user ? user.mobile : null)
|
||||||
|
this.$set(this.formData, 'birthday', user ? user.birthday : null)
|
||||||
|
this.$set(this.formData, 'awardsMode', this.activityTableData.eveProjectType)
|
||||||
|
this.$set(this.formData, 'status', 2)
|
||||||
|
},
|
||||||
|
async querySearchAsync(queryString) {
|
||||||
|
/* const leftApplyUserList = this.leftApplyUserList.map(m => m.loginname)
|
||||||
|
const rightApplyUserList = this.rightApplyUserList.map(m => m.loginname)
|
||||||
|
const loginnames = leftApplyUserList.concat(rightApplyUserList)*/
|
||||||
|
|
||||||
|
const loginnames = this.applyUserTableData.map(m => m.loginname)
|
||||||
|
const {code, data} = await $.get("/platform/activity/apply/getSysUser", {
|
||||||
|
loginnames: JSON.stringify(loginnames),
|
||||||
|
queryString: queryString
|
||||||
|
})
|
||||||
|
if (code === 0) {
|
||||||
|
this.lsUserList = data
|
||||||
|
} else {
|
||||||
|
this.lsUserList = []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
openAddUser() {
|
||||||
|
this.formData = {
|
||||||
|
teamName: this.applyFromData.teamName,
|
||||||
|
teamId: this.applyFromData.teamId,
|
||||||
|
identity: ['1']
|
||||||
|
}
|
||||||
|
this.addUserDialogVisible = true
|
||||||
|
if (this.$refs['lsryform']) {
|
||||||
|
this.$refs['lsryform'].resetFields()
|
||||||
|
}
|
||||||
|
},
|
||||||
async openUniteApply(data) {
|
async openUniteApply(data) {
|
||||||
this.activityTableData = data
|
this.activityTableData = data
|
||||||
//固定模式
|
//固定模式
|
||||||
@@ -299,7 +473,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
isMenWomenTwo: data.isMenWomen
|
isMenWomenTwo: data.isMenWomen
|
||||||
})
|
})
|
||||||
if (resp.code === 0) {
|
if (resp.code === 0) {
|
||||||
const { users, awardsModeT, awardsModeG, team, activity, getEvent } = resp.data
|
const {users, awardsModeT, awardsModeG, team, activity, getEvent} = resp.data
|
||||||
this.activityData = activity
|
this.activityData = activity
|
||||||
this.eventData = getEvent
|
this.eventData = getEvent
|
||||||
this.teamList = team
|
this.teamList = team
|
||||||
@@ -332,7 +506,16 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
let message = null
|
let message = null
|
||||||
|
|
||||||
if (flag) {
|
if (flag) {
|
||||||
const { athletesMaxNum, restrictGirlNum, restrictBoyNum, leanderNum, coachNum, deputyDirectorNum, substituteNum, projectType } =
|
const {
|
||||||
|
athletesMaxNum,
|
||||||
|
restrictGirlNum,
|
||||||
|
restrictBoyNum,
|
||||||
|
leanderNum,
|
||||||
|
coachNum,
|
||||||
|
deputyDirectorNum,
|
||||||
|
substituteNum,
|
||||||
|
projectType
|
||||||
|
} =
|
||||||
this.eventData
|
this.eventData
|
||||||
|
|
||||||
const applyUserList = clone(this.applyUserList)
|
const applyUserList = clone(this.applyUserList)
|
||||||
@@ -382,13 +565,13 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
message = teamName + "替补最多设置" + substituteNum + "人"
|
message = teamName + "替补最多设置" + substituteNum + "人"
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
const womanYdyNum = teamApplyData[i].filter((v) => v.sex === "女" && v.identity.includes("1")).length
|
const womanYdyNum = teamApplyData[i].filter((v) => ["女", "女性"].includes(v.sex) && v.identity.includes("1")).length
|
||||||
if (restrictGirlNum > 0 && womanYdyNum < restrictGirlNum) {
|
if (restrictGirlNum > 0 && womanYdyNum < restrictGirlNum) {
|
||||||
msgFlag = false
|
msgFlag = false
|
||||||
message = teamName + "女运动员至少设置" + restrictGirlNum + "人"
|
message = teamName + "女运动员至少设置" + restrictGirlNum + "人"
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
const manYdyNum = teamApplyData[i].filter((v) => v.sex === "女" && v.identity.includes("1")).length
|
const manYdyNum = teamApplyData[i].filter((v) => ["男", "男性"].includes(v.sex) && v.identity.includes("1")).length
|
||||||
if (restrictBoyNum > 0 && manYdyNum < restrictBoyNum) {
|
if (restrictBoyNum > 0 && manYdyNum < restrictBoyNum) {
|
||||||
msgFlag = false
|
msgFlag = false
|
||||||
message = teamName + "男运动员至少设置" + restrictBoyNum + "人"
|
message = teamName + "男运动员至少设置" + restrictBoyNum + "人"
|
||||||
@@ -397,7 +580,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!msgFlag && !this.activityTableData.isLeader) {
|
if (!msgFlag && !this.activityTableData.isLeader) {
|
||||||
this.$notify.warning({ title: "警告", message: message })
|
this.$notify.warning({title: "警告", message: message})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -406,7 +589,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
if (!flag) {
|
if (!flag) {
|
||||||
msg = "确定要保存吗?"
|
msg = "确定要保存吗?"
|
||||||
}
|
}
|
||||||
const confirm = await this.$confirm(msg, "提示", { type: "warning" })
|
const confirm = await this.$confirm(msg, "提示", {type: "warning"})
|
||||||
if (confirm === "confirm") {
|
if (confirm === "confirm") {
|
||||||
const loading = this.$loading({
|
const loading = this.$loading({
|
||||||
lock: true,
|
lock: true,
|
||||||
@@ -432,10 +615,10 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
},
|
},
|
||||||
//点击添加运动员操作
|
//点击添加运动员操作
|
||||||
async applyUser() {
|
async applyUser() {
|
||||||
const { isManGirlNum, restrictGirlNum, restrictBoyNum } = this.eventData
|
const {isManGirlNum, restrictGirlNum, restrictBoyNum} = this.eventData
|
||||||
|
|
||||||
if (!this.rightApplyUserList.length) {
|
if (!this.rightApplyUserList.length) {
|
||||||
this.$notify.warning({ title: "警告", message: "请在右侧列表中选择人员" })
|
this.$notify.warning({title: "警告", message: "请在右侧列表中选择人员"})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -492,7 +675,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const resp = await this.$axios.post(loc() + "/getActivityData", { activityId: this.activityData.id })
|
const resp = await this.$axios.post(loc() + "/getActivityData", {activityId: this.activityData.id})
|
||||||
const aa = resp.data.filter((v) => {
|
const aa = resp.data.filter((v) => {
|
||||||
return this.rightApplyUserList.includes(v.userId)
|
return this.rightApplyUserList.includes(v.userId)
|
||||||
})
|
})
|
||||||
@@ -515,7 +698,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
username: v.username,
|
username: v.username,
|
||||||
age: v.age,
|
age: v.age,
|
||||||
birthday: v.birthday,
|
birthday: v.birthday,
|
||||||
unitId: v.unitid,
|
unitId: v.unitId,
|
||||||
unionId: v.unionId,
|
unionId: v.unionId,
|
||||||
unitname: v.unitname,
|
unitname: v.unitname,
|
||||||
userId: v.id,
|
userId: v.id,
|
||||||
@@ -586,7 +769,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
this.$refs.multipleTable.clearSelection()
|
this.$refs.multipleTable.clearSelection()
|
||||||
},
|
},
|
||||||
changeTeam(command) {
|
changeTeam(command) {
|
||||||
const { item } = command
|
const {item} = command
|
||||||
if (!this.selection.length) {
|
if (!this.selection.length) {
|
||||||
this.$notify({
|
this.$notify({
|
||||||
title: "警告",
|
title: "警告",
|
||||||
@@ -616,7 +799,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
this.$refs.multipleTable.clearSelection()
|
this.$refs.multipleTable.clearSelection()
|
||||||
},
|
},
|
||||||
async findUserOne(id) {
|
async findUserOne(id) {
|
||||||
const { data } = await this.$axios.post(loc() + "/findUserOne", { id })
|
const {data} = await this.$axios.post(loc() + "/findUserOne", {id})
|
||||||
return data
|
return data
|
||||||
},
|
},
|
||||||
async delApplyUser(index, row, num) {
|
async delApplyUser(index, row, num) {
|
||||||
@@ -666,6 +849,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
getTransProp(user) {
|
getTransProp(user) {
|
||||||
return {
|
return {
|
||||||
id: user.id,
|
id: user.id,
|
||||||
|
loginname: user.loginname,
|
||||||
name: user.username + "(" + (user.sex ? user.sex : "") + "-" + user.loginname + ")"
|
name: user.username + "(" + (user.sex ? user.sex : "") + "-" + user.loginname + ")"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -681,5 +865,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
this.userList = []
|
this.userList = []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async created() {}
|
async created() {
|
||||||
|
this.unitOptions = await this.$businessTool.listUnit()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,7 +90,6 @@ var ACTIVITY_SPORTS_DELETE_USER = {
|
|||||||
this.pageForm.eventId = this.rowData.eventId
|
this.pageForm.eventId = this.rowData.eventId
|
||||||
this.pageForm.unionId = this.rowData.unionId
|
this.pageForm.unionId = this.rowData.unionId
|
||||||
this.$axios.post(loc() + "/applyPageData", this.pageForm).then(data => {
|
this.$axios.post(loc() + "/applyPageData", this.pageForm).then(data => {
|
||||||
console.log(data)
|
|
||||||
this.tableLoading = false
|
this.tableLoading = false
|
||||||
if (data.code === 0) {
|
if (data.code === 0) {
|
||||||
this.tableData = data.data.list
|
this.tableData = data.data.list
|
||||||
|
|||||||
@@ -257,7 +257,7 @@ layout("/layouts/platform.html"){
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #public>
|
<template #public>
|
||||||
<activity-sports-delete-user @flip="flip"
|
<activity-sports-delete-user @flush="doSearch"
|
||||||
ref="activityDeleteUser"></activity-sports-delete-user>
|
ref="activityDeleteUser"></activity-sports-delete-user>
|
||||||
</template>
|
</template>
|
||||||
</guava>
|
</guava>
|
||||||
|
|||||||
@@ -191,8 +191,8 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<van-icon name="location-o"></van-icon>
|
<van-icon name="location-o"></van-icon>
|
||||||
报名方式:
|
报名方式:
|
||||||
<span v-if="viewData.signUpMethod===1" style="color: var(--color-primary)">个人报名</span>
|
<span v-if="viewData.signUpMethod===1" style="color: var(--color-primary)">个人报名</span>
|
||||||
<span v-if="viewData.signUpMethod===2" style="color: var(--color-primary)">分工会报名</span>
|
<span v-if="viewData.signUpMethod===2" style="color: var(--color-primary)">组队报名</span>
|
||||||
<span v-if="viewData.signUpMethod===3" style="color: var(--color-primary)">组队报名</span>
|
<span v-if="viewData.signUpMethod===3" style="color: var(--color-primary)">分工会报名</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="info-item" v-if="viewData.signUpMethod==3">
|
<div class="info-item" v-if="viewData.signUpMethod==3">
|
||||||
<van-icon name="location-o"></van-icon>
|
<van-icon name="location-o"></van-icon>
|
||||||
@@ -277,6 +277,51 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 分工会报名-->
|
||||||
|
<div v-else-if="viewData.signUpMethod===3" class="block">
|
||||||
|
<div class="notice-title left-tag-title">选择报名人员
|
||||||
|
<span v-if="viewData.userNumberLimit===2">
|
||||||
|
,报名人数 <span style="color: red">
|
||||||
|
{{viewData.unionTeamNum}}</span>人
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<el-select
|
||||||
|
v-if="inApplyTime"
|
||||||
|
v-model="searchTeammateUserId"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
remote
|
||||||
|
reserve-keyword
|
||||||
|
placeholder="请输入关键词"
|
||||||
|
:remote-method="queryTeammate">
|
||||||
|
<el-option
|
||||||
|
v-for="item in teammateOptions"
|
||||||
|
:key="item.userId"
|
||||||
|
:label="item.userName + '(' + item.loginName + ')'"
|
||||||
|
:value="item.userId">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-button v-if="inApplyTime" class="ml5" type="primary" icon="el-icon-plus"
|
||||||
|
@click="addTeamUser">添加
|
||||||
|
</el-button>
|
||||||
|
|
||||||
|
<el-table :data="teamUsers" class="mt10">
|
||||||
|
<el-table-column label="序号" type="index" width="60px"></el-table-column>
|
||||||
|
<el-table-column prop="userName" label="姓名"></el-table-column>
|
||||||
|
<el-table-column prop="loginName" label="工号"></el-table-column>
|
||||||
|
<!-- <el-table-column prop="sex" label="性别"></el-table-column>-->
|
||||||
|
<!-- <el-table-column prop="unitName" label="单位"></el-table-column>-->
|
||||||
|
<!-- <el-table-column prop="mobile" label="手机号"></el-table-column>-->
|
||||||
|
<el-table-column label="操作" width="100px"
|
||||||
|
v-if="inApplyTime">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button type="danger" size="mini" @click="removeTeamUser(scope.$index)">删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-create-h5" v-if="isCustomForm">
|
<div class="form-create-h5" v-if="isCustomForm">
|
||||||
<div class="notice-title left-tag-title">填写报名信息</div>
|
<div class="notice-title left-tag-title">填写报名信息</div>
|
||||||
<form-create :value.sync="dynamicFormData" v-model="fapi" :rule="formCreateRule"
|
<form-create :value.sync="dynamicFormData" v-model="fapi" :rule="formCreateRule"
|
||||||
@@ -301,6 +346,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<span>取消报名</span>
|
<span>取消报名</span>
|
||||||
<span style="font-size: 12px; margin-top: 5px">{{viewData.applyEndTime}}截止报名</span>
|
<span style="font-size: 12px; margin-top: 5px">{{viewData.applyEndTime}}截止报名</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bottom-button" v-if="$moment(viewData.endTime).valueOf() < $moment().valueOf()">活动已结束</div>
|
<div class="bottom-button" v-if="$moment(viewData.endTime).valueOf() < $moment().valueOf()">活动已结束</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -361,11 +407,22 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.$axios.post("/platform/activity/culture/infoManage/activityInfo", {id: this.id}).then((res) => {
|
this.$axios.post("/platform/activity/culture/infoManage/activityInfo", {id: this.id}).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.viewData = res.data
|
this.viewData = res.data
|
||||||
|
//总人数限制
|
||||||
|
if (this.viewData.userNumberLimit === 1) {
|
||||||
|
} else if (this.viewData.userNumberLimit === 2) {
|
||||||
|
//分工会人数限制
|
||||||
|
const union = this.viewData.unionUserNumberLimit.find(v => v.id === this.$store.state.user.union.id)
|
||||||
|
this.viewData.unionTeamNum = union.limitNum
|
||||||
|
}
|
||||||
|
if (this.viewData.signUpMethod === 3) {
|
||||||
|
this.listTeamUserUnion()
|
||||||
|
} else {
|
||||||
|
this.listTeamUser()
|
||||||
|
}
|
||||||
if (this.viewData.formConfig) {
|
if (this.viewData.formConfig) {
|
||||||
this.formCreateRule = formCreate.parseJson(this.viewData.formConfig.rule)
|
this.formCreateRule = formCreate.parseJson(this.viewData.formConfig.rule)
|
||||||
this.formCreateOption = formCreate.parseJson(this.viewData.formConfig.options)
|
this.formCreateOption = formCreate.parseJson(this.viewData.formConfig.options)
|
||||||
}
|
}
|
||||||
this.listTeamUser()
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -381,6 +438,17 @@ layout("/layouts/platform_h5.html"){
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
//查询报名人员
|
||||||
|
listTeamUserUnion() {
|
||||||
|
this.$axios.post("/platform/activity/culture/applyUser/listTeamUserUnion", {activityId: this.id}).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.isSignUp = res.data.length > 0
|
||||||
|
this.teamUsers = res.data
|
||||||
|
this.defaultAddSelf()
|
||||||
|
this.customFormInit()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
//表单回显
|
//表单回显
|
||||||
customFormInit() {
|
customFormInit() {
|
||||||
if (this.teamUsers && this.teamUsers.length > 0) {
|
if (this.teamUsers && this.teamUsers.length > 0) {
|
||||||
@@ -466,7 +534,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (this.teamUsers.length > this.viewData.teamNum) {
|
if (this.viewData.teamNum && this.teamUsers.length > this.viewData.teamNum) {
|
||||||
this.$dialog
|
this.$dialog
|
||||||
.alert({
|
.alert({
|
||||||
title: "提示",
|
title: "提示",
|
||||||
@@ -498,7 +566,11 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.$axios.post("/platform/activity/culture/applyUser/signUp", formData).then((res) => {
|
this.$axios.post("/platform/activity/culture/applyUser/signUp", formData).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$toast.success(res.msg)
|
this.$toast.success(res.msg)
|
||||||
this.listTeamUser()
|
if (this.viewData.signUpMethod === 3) {
|
||||||
|
this.listTeamUserUnion()
|
||||||
|
} else {
|
||||||
|
this.listTeamUser()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -567,7 +639,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (this.teamUsers.length > this.viewData.teamNum) {
|
if (this.viewData.teamNum && this.teamUsers.length > this.viewData.teamNum) {
|
||||||
this.$dialog
|
this.$dialog
|
||||||
.alert({
|
.alert({
|
||||||
title: "提示",
|
title: "提示",
|
||||||
@@ -600,7 +672,11 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.$axios.post("/platform/activity/culture/applyUser/signUp", formData).then((res) => {
|
this.$axios.post("/platform/activity/culture/applyUser/signUp", formData).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$toast.success(res.msg)
|
this.$toast.success(res.msg)
|
||||||
this.listTeamUser()
|
if (this.viewData.signUpMethod === 3) {
|
||||||
|
this.listTeamUserUnion()
|
||||||
|
} else {
|
||||||
|
this.listTeamUser()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -617,7 +693,11 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.$axios.post("/platform/activity/culture/applyUser/cancelSignUp", {activityId: this.id}).then((res) => {
|
this.$axios.post("/platform/activity/culture/applyUser/cancelSignUp", {activityId: this.id}).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$toast.success(res.msg)
|
this.$toast.success(res.msg)
|
||||||
this.listTeamUser()
|
if (this.viewData.signUpMethod === 3) {
|
||||||
|
this.listTeamUserUnion()
|
||||||
|
} else {
|
||||||
|
this.listTeamUser()
|
||||||
|
}
|
||||||
this.fapi.resetFields()
|
this.fapi.resetFields()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -627,7 +707,10 @@ layout("/layouts/platform_h5.html"){
|
|||||||
//查询队友信息
|
//查询队友信息
|
||||||
queryTeammate(val) {
|
queryTeammate(val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
this.$axios.post("/platform/activity/culture/applyUser/queryTeammate", {keyword: val}).then((res) => {
|
this.$axios.post("/platform/activity/culture/applyUser/queryTeammate", {
|
||||||
|
keyword: val,
|
||||||
|
signUpMethod: this.viewData.signUpMethod
|
||||||
|
}).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
res.data.map(v => {
|
res.data.map(v => {
|
||||||
v.applyUserId = this.$store.state.user.id
|
v.applyUserId = this.$store.state.user.id
|
||||||
@@ -662,7 +745,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (this.teamUsers.length >= this.viewData.teamNum) {
|
if (this.viewData.teamNum && this.teamUsers.length >= this.viewData.teamNum) {
|
||||||
this.$dialog
|
this.$dialog
|
||||||
.alert({
|
.alert({
|
||||||
title: "提示",
|
title: "提示",
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
loading: false,
|
loading: false,
|
||||||
pageForm: {
|
pageForm: {
|
||||||
isActivity: 2,
|
isActivity: 2,
|
||||||
applyStatus: 2,
|
applyStatus: 1,
|
||||||
year: new Date().getFullYear(),
|
year: new Date().getFullYear(),
|
||||||
pageNumber: 1,
|
pageNumber: 1,
|
||||||
pageSize: 5,
|
pageSize: 5,
|
||||||
@@ -121,7 +121,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
},
|
},
|
||||||
pageData() {
|
pageData() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.$axios.post("/platform/h5/activity/apply/activityData", this.pageForm).then((res) => {
|
this.$axios.post("/platform/activity/apply/h5/activityData", this.pageForm).then((res) => {
|
||||||
this.tableData = res.data
|
this.tableData = res.data
|
||||||
|
|
||||||
this.finished = true
|
this.finished = true
|
||||||
|
|||||||
@@ -5,16 +5,17 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
<van-sticky>
|
<van-sticky>
|
||||||
<van-nav-bar
|
<van-nav-bar
|
||||||
@click-left="()=>this.$pjaxReplace('/platform/h5/activity/apply/applyUser')"
|
@click-left="historyBack"
|
||||||
left-arrow
|
left-arrow
|
||||||
left-text="返回"
|
left-text="返回"
|
||||||
placeholder
|
placeholder
|
||||||
title="项目列表"
|
title="项目列表"
|
||||||
></van-nav-bar>
|
></van-nav-bar>
|
||||||
</van-sticky>
|
</van-sticky>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<van-list :finished="finished" @load="pageData" finished-text="没有更多了" v-if="tableData.length>0" v-model="loading">
|
<van-list :finished="finished" @load="pageData" finished-text="没有更多了" v-if="tableData.length>0"
|
||||||
|
v-model="loading">
|
||||||
<div class="table-list">
|
<div class="table-list">
|
||||||
<div :key="row.id" class="table-card" v-for="row in tableData">
|
<div :key="row.id" class="table-card" v-for="row in tableData">
|
||||||
<van-image :src="row.image" fit="cover" height="200" v-if="row.image" width="100%"></van-image>
|
<van-image :src="row.image" fit="cover" height="200" v-if="row.image" width="100%"></van-image>
|
||||||
@@ -25,11 +26,17 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #right-icon>
|
<template #right-icon>
|
||||||
<div style="display: flex; justify-content: flex-end" v-if="row.status">
|
<div style="display: flex; justify-content: flex-end"
|
||||||
|
v-if="row.status&&row.applyWay.length===1&&row.applyWay.includes(1)">
|
||||||
<van-tag type="primary" v-if="row.status===1">待审核</van-tag>
|
<van-tag type="primary" v-if="row.status===1">待审核</van-tag>
|
||||||
<van-tag type="success" v-if="row.status===2">已成功报名</van-tag>
|
<van-tag type="success" v-if="row.status===2">已成功报名</van-tag>
|
||||||
<van-tag type="danger" v-if="row.status===3">审核不通过</van-tag>
|
<van-tag type="danger" v-if="row.status===3">审核不通过</van-tag>
|
||||||
</div>
|
</div>
|
||||||
|
<div style="display: flex; justify-content: flex-end" v-else>
|
||||||
|
<van-tag type="primary" v-if="row.status2===0">待审核</van-tag>
|
||||||
|
<van-tag type="success" v-if="row.status2===2">已成功报名</van-tag>
|
||||||
|
<van-tag type="danger" v-if="row.status2===3">审核不通过</van-tag>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
<van-cell title="可报队数" v-if="row.eveProjectType==='2'">
|
<van-cell title="可报队数" v-if="row.eveProjectType==='2'">
|
||||||
@@ -60,25 +67,46 @@ layout("/layouts/platform_h5.html"){
|
|||||||
<span v-else>暂无</span>
|
<span v-else>暂无</span>
|
||||||
</template>
|
</template>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
<!--<van-cell class="table-card-footer">
|
<van-cell class="table-card-footer">
|
||||||
<template>
|
<div v-if="row.applyWay.length===1&&row.applyWay.includes(1)">
|
||||||
<van-button :loading="subLoading" @click="openView(row)" round
|
<van-button :loading="subLoading" @click="signUpUser(row)" round
|
||||||
size="small"
|
size="small"
|
||||||
type="primary">
|
type="primary" v-if="activityData.applyWay.includes(1)&&row.userApply===0">
|
||||||
报名
|
报 名
|
||||||
</van-button>
|
</van-button>
|
||||||
</template>
|
<van-button :loading="subLoading" @click="cancelApply(row)" round
|
||||||
</van-cell>-->
|
size="small"
|
||||||
|
color="#dd6363"
|
||||||
|
type="primary" v-if="activityData.applyWay.includes(1)&&row.userApply>0">
|
||||||
|
取消报名
|
||||||
|
</van-button>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<van-button :loading="subLoading" @click="signUpUser(row)" round
|
||||||
|
size="small"
|
||||||
|
type="primary" v-if="activityData.applyWay.includes(1)&&row.userApply2===0">
|
||||||
|
报 名
|
||||||
|
</van-button>
|
||||||
|
<van-button :loading="subLoading" @click="cancelApply(row)" round
|
||||||
|
size="small"
|
||||||
|
color="#dd6363"
|
||||||
|
type="primary" v-if="activityData.applyWay.includes(1)&&row.userApply2>0">
|
||||||
|
取消报名
|
||||||
|
</van-button>
|
||||||
|
</div>
|
||||||
|
</van-cell>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</van-list>
|
</van-list>
|
||||||
<van-empty image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据" v-else></van-empty>
|
<van-empty image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"
|
||||||
|
v-else></van-empty>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
new Vue({
|
new Vue({
|
||||||
el: "#app",
|
el: "#app",
|
||||||
|
store,
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
tableData: [],
|
tableData: [],
|
||||||
@@ -90,16 +118,89 @@ layout("/layouts/platform_h5.html"){
|
|||||||
pageSize: 5,
|
pageSize: 5,
|
||||||
totalCount: 0
|
totalCount: 0
|
||||||
},
|
},
|
||||||
subLoading: false
|
subLoading: false,
|
||||||
|
activityData: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {},
|
components: {},
|
||||||
methods: {
|
methods: {
|
||||||
openApplyUser() {},
|
openApplyUser() {
|
||||||
openView(row) {},
|
},
|
||||||
|
cancelApply(row) {
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "确认要取消报名吗?"
|
||||||
|
}).then(() => {
|
||||||
|
/* if (row.applyUser !== this.$store.state.user.id) {
|
||||||
|
this.$dialog.alert({
|
||||||
|
title: '温馨提示',
|
||||||
|
message: "报名人不是您,请联系报名人取消!",
|
||||||
|
}).then(() => {
|
||||||
|
})
|
||||||
|
return;
|
||||||
|
}*/
|
||||||
|
this.$axios.post("/platform/activity/apply/h5/cancelApply", {
|
||||||
|
activityId: row.activityId,
|
||||||
|
eventId: row.eventId,
|
||||||
|
schoolEventId: row.id
|
||||||
|
}).then(resp => {
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.doSearch()
|
||||||
|
this.$dialog.alert({
|
||||||
|
title: '温馨提示',
|
||||||
|
message: resp.msg,
|
||||||
|
}).then(() => {
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
signUpUser(row) {
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "确认要报名吗?"
|
||||||
|
}).then(async () => {
|
||||||
|
const teamList = await this.listTeamList(row)
|
||||||
|
if (teamList.length > 0) {
|
||||||
|
row.teamId = teamList[0].id
|
||||||
|
}
|
||||||
|
this.$axios.post("/platform/activity/apply/h5/signUpUser", {
|
||||||
|
activityId: row.activityId,
|
||||||
|
teamId: row.teamId,
|
||||||
|
eventId: row.eventId,
|
||||||
|
schoolEventId: row.id
|
||||||
|
}).then(resp => {
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.doSearch()
|
||||||
|
this.$dialog.alert({
|
||||||
|
title: '温馨提示',
|
||||||
|
message: resp.msg,
|
||||||
|
}).then(() => {
|
||||||
|
// on close
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async listTeamList(row) {
|
||||||
|
const resp = await this.$axios.post("/platform/activity/apply/h5/listTeamList", {
|
||||||
|
activityId: row.activityId,
|
||||||
|
eventId: row.eventId,
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
return resp.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
doSearch() {
|
||||||
|
this.tableKey = new Date().getTime()
|
||||||
|
this.pageForm.pageNumber = 1
|
||||||
|
this.pageForm.totalCount = 0
|
||||||
|
this.tableData = []
|
||||||
|
this.pageData()
|
||||||
|
},
|
||||||
pageData() {
|
pageData() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.$axios.post("/platform/h5/activity/apply/pageData", { data: JSON.stringify(this.pageForm) }).then((res) => {
|
this.$axios.post("/platform/activity/apply/h5/pageData", {data: JSON.stringify(this.pageForm)}).then((res) => {
|
||||||
this.tableData = this.tableData.concat(res.data.list)
|
this.tableData = this.tableData.concat(res.data.list)
|
||||||
if (this.tableData.length === res.data.totalCount) {
|
if (this.tableData.length === res.data.totalCount) {
|
||||||
this.finished = true
|
this.finished = true
|
||||||
@@ -110,9 +211,10 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.loading = false
|
this.loading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
findOneActivity() {
|
findOneActivity() {
|
||||||
this.$axios.post("/platform/h5/activity/apply/findOneActivity", { activityId: this.pageForm.activityId }).then((res) => {
|
this.$axios.post("/platform/activity/apply/h5/findOneActivity", {activityId: this.pageForm.activityId}).then((res) => {
|
||||||
if (res.code === 200) {
|
if (res.code === 0) {
|
||||||
this.activityData = res.data
|
this.activityData = res.data
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ let ACTIVITY_EVENT_NOTIFICATION = {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
openReg() {
|
openReg() {
|
||||||
this.$pjaxReplace("/platform/h5/activity/apply/eventList?activityId=" + this.id)
|
this.$pjaxReplace("/platform/activity/apply/h5/eventList?activityId=" + this.id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user