commit
This commit is contained in:
@@ -3,8 +3,11 @@ package io.v.nutz.activity.controller.union;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.wizzer.framework.base.service.BaseService;
|
||||
import io.v.nutz.activity.models.ActivityTissue;
|
||||
import io.v.nutz.activity.models.ActivityTissueBasicSettings;
|
||||
import io.v.nutz.annontation.ViReturn;
|
||||
import io.v.nutz.base.service.SimpleService;
|
||||
import io.v.nutz.base.utils.DateUtil;
|
||||
import org.apache.shiro.authz.annotation.Logical;
|
||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.dao.Cnd;
|
||||
@@ -18,6 +21,7 @@ import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhf
|
||||
@@ -116,4 +120,13 @@ public class ActivityUnionApplyController {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions(value = {"activity.school.apply", "activity.club.apply", "activity.union.apply"}, logical = Logical.OR)
|
||||
public Object getActivityBasicSettingsList(){
|
||||
List<ActivityTissueBasicSettings> list = simpleService.dao().query(ActivityTissueBasicSettings.class,
|
||||
Cnd.where("YEAR(applyDate)", "=", DateUtil.getYear()));
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
+4
-2
@@ -164,7 +164,8 @@ public class ActivityUnionApplyUserController {
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("u.unionId", "=", Vi.getUnionId());
|
||||
cnd.and("u.unitid", "is not", null);
|
||||
cnd.and("u.unionid", "is not", null);
|
||||
cnd.and("aus.groupId", "=", groupId);
|
||||
cnd.groupBy("u.id");
|
||||
cnd.asc("u.unitname").asc("u.unionname");
|
||||
@@ -184,10 +185,11 @@ public class ActivityUnionApplyUserController {
|
||||
activity_tissue_person atp
|
||||
LEFT JOIN `user` u ON atp.userId = u.id
|
||||
WHERE
|
||||
atp.tissueId = @tissueId AND u.unionid = @unionId
|
||||
atp.tissueId = @tissueId AND atp.applyUserId = @userId
|
||||
""");
|
||||
sql.setParam("tissueId", tissueId);
|
||||
sql.setParam("unionId", Vi.getUnionId());
|
||||
sql.setParam("userId", ShiroUtil.getUserId());
|
||||
List<NutMap> list = baseService.listMap(sql);
|
||||
List<String> userIds = list.stream().map(v -> v.getString("userId")).collect(Collectors.toList());
|
||||
return userIds;
|
||||
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
package io.v.nutz.activity.controller.union;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import io.v.nutz.activity.models.ActivityTissueBasicSettings;
|
||||
import io.v.nutz.annontation.ViReturn;
|
||||
import io.v.nutz.base.page.Pagination;
|
||||
import io.v.nutz.base.service.BaseService;
|
||||
import io.v.nutz.modules.models.PageForm;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
/**
|
||||
* @ClassName ActivityUnionBasicSettingsController
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/4/3 上午9:16
|
||||
*/
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@At("/platform/activity/union/basicSettings")
|
||||
public class ActivityUnionBasicSettingsController {
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/activity/union/basicSettings.html")
|
||||
@RequiresPermissions("activity.union.basicSettings")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@Inject
|
||||
private BaseService baseService;
|
||||
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("activity.union.basicSettings")
|
||||
public Object doSubmit(ActivityTissueBasicSettings activityTissueBasicSettings) {
|
||||
if (StrUtil.isEmpty(activityTissueBasicSettings.getApplyDate())){
|
||||
activityTissueBasicSettings.setApplyDate(DateUtil.now());
|
||||
}
|
||||
baseService.insertOrUpdate(activityTissueBasicSettings);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("activity.union.basicSettings")
|
||||
public Object pageData(PageForm pageForm, Integer year) {
|
||||
Sql sql = Sqls.create("SELECT * FROM `activity_tissue_basic_settings` WHERE YEAR(applyDate)=@year").setParam("year", year);
|
||||
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return pagination;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -249,4 +249,9 @@ public class ActivityTissue extends BaseModel implements Serializable {
|
||||
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||
private String signEndTime;
|
||||
|
||||
@Column
|
||||
@Comment("活动设置id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String basicSettingsId;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
package io.v.nutz.activity.models;
|
||||
|
||||
import cn.wizzer.framework.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @ClassName ActivityTissueBasicSettings
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/4/3 上午9:20
|
||||
*/
|
||||
@Data
|
||||
@Table("activity_tissue_basic_settings")
|
||||
@Comment("协会或分工会活动校工会活动基础设置")
|
||||
public class ActivityTissueBasicSettings extends BaseModel implements Serializable {
|
||||
|
||||
@Column
|
||||
@Name
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@Prev(els = {@EL("uuid()")})
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("设置名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String basicSettingsName;
|
||||
|
||||
@Column
|
||||
@Comment("设置编码")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String basicSettingsCode;
|
||||
|
||||
@Column
|
||||
@Comment("可报活动数")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer signUpActivityNum;
|
||||
|
||||
@Column
|
||||
@Comment("创建时间")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String applyDate;
|
||||
|
||||
|
||||
}
|
||||
+96
-13
@@ -2,9 +2,7 @@ package io.v.nutz.mobile.activity.unionActivity;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import io.v.nutz.activity.models.ActivityTissue;
|
||||
import io.v.nutz.activity.models.ActivityTissuePerson;
|
||||
import io.v.nutz.activity.models.ActivityUserScope;
|
||||
import io.v.nutz.activity.models.*;
|
||||
import io.v.nutz.annontation.ViReturn;
|
||||
import io.v.nutz.base.service.SimpleService;
|
||||
import io.v.nutz.base.utils.DateUtil;
|
||||
@@ -31,7 +29,9 @@ import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
import org.nutz.trans.Trans;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.locks.Lock;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
@@ -120,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,
|
||||
@@ -334,12 +334,67 @@ public class UnionActivityRegisterController {
|
||||
@ViReturn
|
||||
@RequiresAuthentication
|
||||
public synchronized Object doSaveUnionRegister(String activityId, String[] personIds) {
|
||||
lock.lock();
|
||||
ActivityTissue activityTissue = simpleService.dao().fetch(ActivityTissue.class, activityId);
|
||||
|
||||
if (StrUtil.isNotEmpty(activityTissue.getBasicSettingsId())) {
|
||||
//如果不为空就代表有活动设置
|
||||
ActivityTissueBasicSettings settings = simpleService.dao().fetch(ActivityTissueBasicSettings.class, activityTissue.getBasicSettingsId());
|
||||
//找出跟这个活动设置关联的活动
|
||||
List<ActivityTissue> tissueList = simpleService.dao().query(ActivityTissue.class, Cnd.where("basicSettingsId", "=", settings.getId()).and("id", "!=", activityId));
|
||||
List<String> tissueIds = tissueList.stream().map(ActivityTissue::getId).collect(Collectors.toList());
|
||||
//找出当前登入人报名的活动
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
act.`name`
|
||||
FROM
|
||||
`activity_tissue_person` atp
|
||||
LEFT JOIN activity_tissue act ON act.id = atp.tissueId
|
||||
WHERE atp.tissueId in (@tissueId) AND atp.userId=@userId
|
||||
""").setParam("tissueId", tissueIds).setParam("userId", ShiroUtil.getUserId());
|
||||
List<NutMap> applyTissueList = simpleService.listMap(sql);
|
||||
if (applyTissueList.size() == settings.getSignUpActivityNum()) {
|
||||
lock.unlock();
|
||||
List<String> nameList = applyTissueList.stream().map(v -> v.getString("name")).collect(Collectors.toList());
|
||||
return Result.error("【" + settings.getBasicSettingsName() + "】类型只能报名" + settings.getSignUpActivityNum() + "个!您已报名【" + String.join(",", nameList) + "】");
|
||||
}
|
||||
|
||||
//找到队友的id
|
||||
List<String> teammateUserIds = Arrays.stream(personIds).filter(id -> !id.equals(ShiroUtil.getUserId())).collect(Collectors.toList());
|
||||
Sql sql2 = Sqls.create("""
|
||||
SELECT
|
||||
atp.userId,
|
||||
atp.userName,
|
||||
act.`name`
|
||||
FROM
|
||||
`activity_tissue_person` atp
|
||||
LEFT JOIN activity_tissue act ON act.id = atp.tissueId
|
||||
WHERE atp.tissueId in (@tissueId) AND atp.userId in (@userId)
|
||||
""").setParam("tissueId", tissueIds).setParam("userId", teammateUserIds);
|
||||
List<NutMap> teammateUserList = simpleService.listMap(sql2);
|
||||
//队友分组
|
||||
Map<String, List<NutMap>> groupedData = teammateUserList.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
nutMap -> nutMap.getString("userName") // 提取 userName 作为分组键
|
||||
));
|
||||
final String[] msg = {""};
|
||||
groupedData.forEach((key, value) -> {
|
||||
//判断每个队友是否报名
|
||||
if (value.size() == settings.getSignUpActivityNum()) {
|
||||
List<String> activityNames = value.stream().map(v -> v.getString("name")).collect(Collectors.toList());
|
||||
msg[0] = msg[0] + "当前活动只能报名" + settings.getSignUpActivityNum() + "个,【" + key + "】已报名【" + String.join(",", activityNames) + "】";
|
||||
}
|
||||
});
|
||||
if (StrUtil.isNotEmpty(msg[0])) {
|
||||
lock.unlock();
|
||||
return Result.error().addMsg(msg[0]);
|
||||
}
|
||||
}
|
||||
|
||||
String unionId = Vi.getUnionId();
|
||||
|
||||
ActivityTissue activityTissue = simpleService.dao().fetch(ActivityTissue.class, activityId);
|
||||
if (activityTissue.getSignUpMethod() == 2) {
|
||||
if (!ShiroUtil.hasRole("H04")) {
|
||||
lock.unlock();
|
||||
return Result.error().addMsg("请使用分工会管理员报名!");
|
||||
}
|
||||
}
|
||||
@@ -348,12 +403,14 @@ public class UnionActivityRegisterController {
|
||||
int hasRegisterCount = simpleService.dao().count(ActivityTissuePerson.class, Cnd.where("tissueId", "=", activityId));
|
||||
if (hasRegisterCount + personIds.length > activityTissue.getTotalUserNumberLimit()) {
|
||||
// return Result.error().addMsg("当前最多只能报名%s人!".formatted(Math.max(activityTissue.getTotalUserNumberLimit() - hasRegisterCount, 0)));
|
||||
lock.unlock();
|
||||
return Result.error().addMsg("该活动限制人数为%s人".formatted(activityTissue.getTotalUserNumberLimit()));
|
||||
}
|
||||
}
|
||||
if (activityTissue.getUserNumberLimit() == 2) {
|
||||
int limitNumByUnion = getLimitNumByUnion(activityTissue.getUnionUserNumberLimit(), unionId);
|
||||
if (personIds.length > limitNumByUnion) {
|
||||
lock.unlock();
|
||||
return Result.error().addMsg("分工会报名限额%s人!".formatted(limitNumByUnion));
|
||||
}
|
||||
}
|
||||
@@ -398,6 +455,7 @@ public class UnionActivityRegisterController {
|
||||
sql.setCondition(Cnd.where("id", "in", personIds));
|
||||
List<ActivityTissuePerson> fullPersonList = simpleService.listEntity(sql, ActivityTissuePerson.class);
|
||||
simpleService.insert(fullPersonList);
|
||||
lock.unlock();
|
||||
});
|
||||
return Result.success().addMsg("报名成功!");
|
||||
}
|
||||
@@ -422,10 +480,32 @@ public class UnionActivityRegisterController {
|
||||
lock.unlock();
|
||||
return Result.error("您的工会信息有误,无法报名,请联系工会管理员!");
|
||||
}
|
||||
String unionId = Vi.getUnionId();
|
||||
// String unionId = "74d1600a7486457b9afd660128c86a20";
|
||||
|
||||
ActivityTissue activityTissue = simpleService.dao().fetch(ActivityTissue.class, activityId);
|
||||
;
|
||||
if (StrUtil.isNotEmpty(activityTissue.getBasicSettingsId())) {
|
||||
//如果不为空就代表有活动设置
|
||||
ActivityTissueBasicSettings settings = simpleService.dao().fetch(ActivityTissueBasicSettings.class, activityTissue.getBasicSettingsId());
|
||||
//找出跟这个活动设置关联的活动
|
||||
List<ActivityTissue> tissueList = simpleService.dao().query(ActivityTissue.class, Cnd.where("basicSettingsId", "=", settings.getId()));
|
||||
List<String> tissueIds = tissueList.stream().map(ActivityTissue::getId).collect(Collectors.toList());
|
||||
//找出当前登入人报名的活动
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
act.`name`
|
||||
FROM
|
||||
`activity_tissue_person` atp
|
||||
LEFT JOIN activity_tissue act ON act.id = atp.tissueId
|
||||
WHERE atp.tissueId in (@tissueId) AND atp.userId=@userId
|
||||
""").setParam("tissueId", tissueIds).setParam("userId", ShiroUtil.getUserId());
|
||||
List<NutMap> applyTissueList = simpleService.listMap(sql);
|
||||
if (applyTissueList.size() == settings.getSignUpActivityNum()) {
|
||||
lock.unlock();
|
||||
List<String> nameList = applyTissueList.stream().map(v -> v.getString("name")).collect(Collectors.toList());
|
||||
return Result.error("【" + settings.getBasicSettingsName() + "】类型只能报名" + settings.getSignUpActivityNum() + "个!您已报名【" + String.join(",", nameList) + "】");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
//活动设置了分组人员
|
||||
if (activityTissue.getGroupId() != null) {
|
||||
int count = simpleService.dao().count(ActivityUserScope.class, Cnd.where("groupId", "=", activityTissue.getGroupId()).and("userId", "=", ShiroUtil.getPrincipalProperty("id")));
|
||||
@@ -434,7 +514,7 @@ public class UnionActivityRegisterController {
|
||||
return Result.error().addMsg("您不在本次活动参加人员范围内!");
|
||||
}
|
||||
}
|
||||
|
||||
String unionId = Vi.getUnionId();
|
||||
if (Lang.isNotEmpty(activityTissue.getUserNumberLimit())) {
|
||||
if (activityTissue.getUserNumberLimit() == 1) {
|
||||
Integer totalUserNumberLimit = activityTissue.getTotalUserNumberLimit();
|
||||
@@ -477,6 +557,9 @@ public class UnionActivityRegisterController {
|
||||
activityTissuePerson.setMobile(principal.getMobile());
|
||||
activityTissuePerson.setUnitName(principal.getUnit().getName());
|
||||
activityTissuePerson.setUnionName(principal.getUnion().getUnionname());
|
||||
activityTissuePerson.setApplyDateTime(DateUtil.getDateTime());
|
||||
activityTissuePerson.setApplyUserId(principal.getId());
|
||||
activityTissuePerson.setApplyUserUserName(principal.getUsername());
|
||||
simpleService.dao().insert(activityTissuePerson);
|
||||
lock.unlock();
|
||||
return Result.success().addMsg("报名成功!");
|
||||
@@ -487,7 +570,7 @@ public class UnionActivityRegisterController {
|
||||
@RequiresAuthentication
|
||||
public Object doSingleCancelRegister(String activityId) {
|
||||
simpleService.dao().clear(ActivityTissuePerson.class, Cnd.where("tissueId", "=", activityId)
|
||||
.and("userId", "=", ShiroUtil.getPrincipalProperty("id")));
|
||||
.and("applyUserId", "=", ShiroUtil.getPrincipalProperty("id")));
|
||||
return Result.success().addMsg("取消成功!");
|
||||
}
|
||||
|
||||
|
||||
@@ -185,7 +185,6 @@ layout("/mobile/platform.html"){
|
||||
}
|
||||
},
|
||||
showActivityInfo(activityContent){
|
||||
console.log(activityContent)
|
||||
this.activityContent = ''
|
||||
this.activityContent = activityContent
|
||||
this.showActivityInfoPopup = true
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
|
||||
<body>
|
||||
<script>
|
||||
window.sessionStorage.setItem("user", JSON.stringify(${json(@shiro.getPrincipal())}))
|
||||
const APP_DOMAIN = "${AppDomain!}"
|
||||
const FILE_DOMAIN = "${AppFileDomain!}"
|
||||
</script>
|
||||
|
||||
@@ -201,6 +201,19 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :lg="12" :xl="12" :xs="24">
|
||||
<el-form-item label="活动设置" prop="basicSettingsId">
|
||||
<el-select clearable filterable
|
||||
placeholder="参加人员范围"
|
||||
prop="id"
|
||||
style="width: 100%;"
|
||||
v-model="formData.basicSettingsId">
|
||||
<el-option :label="item.basicSettingsName"
|
||||
:value="item.id"
|
||||
v-for="item in basicSettingsList"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
@@ -225,7 +238,8 @@
|
||||
<!--<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>
|
||||
<el-radio :label="2" v-if="type===40001">分工会报名
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -429,8 +443,10 @@
|
||||
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="活动介绍" prop="activityContent" :rules="{required:true,message: '请输入活动介绍', trigger: 'blur'}">
|
||||
<text-editor v-model="formData.activityContent" ref="contentEditor"></text-editor>
|
||||
<el-form-item label="活动介绍" prop="activityContent"
|
||||
:rules="{required:true,message: '请输入活动介绍', trigger: 'blur'}">
|
||||
<text-editor v-model="formData.activityContent"
|
||||
ref="contentEditor"></text-editor>
|
||||
<!-- <el-input-->
|
||||
<!-- :rows="7"-->
|
||||
<!-- placeholder="请输入活动内容"-->
|
||||
@@ -442,7 +458,8 @@
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件上传" prop="otherFiles">
|
||||
<file-upload :files.sync="formData.otherFiles" card></file-upload>
|
||||
<file-upload :files.sync="formData.otherFiles"
|
||||
card></file-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@@ -478,7 +495,8 @@
|
||||
<el-divider content-position="left">购置物品及价格</el-divider>
|
||||
|
||||
<div style="padding-left: 10px">
|
||||
<el-tooltip class="item" content="点击添加购置物品及价格" effect="dark"
|
||||
<el-tooltip class="item" content="点击添加购置物品及价格"
|
||||
effect="dark"
|
||||
placement="top">
|
||||
<el-button @click="formData.goods.push({})" circle
|
||||
icon="el-icon-plus"
|
||||
@@ -496,7 +514,8 @@
|
||||
sortable
|
||||
type="index" width="100">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="物品名称"
|
||||
<el-table-column align="center" header-align="center"
|
||||
label="物品名称"
|
||||
prop="name">
|
||||
<template slot-scope="{row}">
|
||||
<el-input maxlength="50" placeholder="物品名称"
|
||||
@@ -504,7 +523,8 @@
|
||||
v-model="row.name"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="预算费用"
|
||||
<el-table-column align="center" header-align="center"
|
||||
label="预算费用"
|
||||
prop="price">
|
||||
<template slot-scope="{row}">
|
||||
<el-input @input="blur" maxlength="50"
|
||||
@@ -512,7 +532,8 @@
|
||||
type="number" v-model="row.price"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="实际费用"
|
||||
<el-table-column align="center" header-align="center"
|
||||
label="实际费用"
|
||||
prop="actualPrice">
|
||||
<template slot-scope="{row}">
|
||||
<el-input @input="blur" maxlength="50"
|
||||
@@ -554,7 +575,8 @@
|
||||
</el-row>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="活动人员信息" name="3" v-if="formData.isEnrollSystem === false">
|
||||
<el-tab-pane label="活动人员信息" name="3"
|
||||
v-if="formData.isEnrollSystem === false">
|
||||
<table-tool :app="this" label="活动人员信息">
|
||||
<template #func>
|
||||
<el-button @click="openAddUser" icon="el-icon-plus"
|
||||
@@ -622,7 +644,8 @@
|
||||
|
||||
</guava>
|
||||
|
||||
<el-dialog :close-on-click-modal="false" :visible.sync="dialogVisible" title="添加人员" width="40%">
|
||||
<el-dialog :close-on-click-modal="false" :visible.sync="dialogVisible" title="添加人员"
|
||||
width="40%">
|
||||
|
||||
<el-form :model="formData" label-width="100px">
|
||||
<el-form-item label="参加人员" prop="userId">
|
||||
@@ -687,7 +710,11 @@
|
||||
groupId: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
name: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
type: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
projectTypeCode: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
projectTypeCode: [{
|
||||
required: true,
|
||||
message: '必填',
|
||||
trigger: ['blur', 'change']
|
||||
}],
|
||||
address: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
plannedDate: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
},
|
||||
@@ -701,7 +728,8 @@
|
||||
],
|
||||
/*ZXY - ADD*/
|
||||
activityGroupList: [],
|
||||
userScopeDialog: false
|
||||
userScopeDialog: false,
|
||||
basicSettingsList:[]
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -805,9 +833,9 @@
|
||||
await this.$refs['addForm'].validate()
|
||||
},
|
||||
plannedDateChange(val) {
|
||||
if (val){
|
||||
val[0]=moment(val[0]).format('YYYY-MM-DD HH:mm')
|
||||
val[1]=moment(val[1]).format('YYYY-MM-DD HH:mm')
|
||||
if (val) {
|
||||
val[0] = moment(val[0]).format('YYYY-MM-DD HH:mm')
|
||||
val[1] = moment(val[1]).format('YYYY-MM-DD HH:mm')
|
||||
}
|
||||
this.$set(this.formData, "time", val)
|
||||
|
||||
@@ -1138,10 +1166,15 @@
|
||||
async getActivityGroup() {
|
||||
const resp = await $.get('/platform/activity/basic/scope/getActivityUserScopeGroup')
|
||||
this.activityGroupList = resp.data
|
||||
},
|
||||
async getActivityBasicSettingsList() {
|
||||
const resp = await $.get('/platform/activity/apply/getActivityBasicSettingsList')
|
||||
this.basicSettingsList = resp.data
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
await this.getActivityGroup()
|
||||
await this.getActivityBasicSettingsList()
|
||||
const projectType = await getActivityTwoLevelType("50000")
|
||||
projectType.forEach(v => {
|
||||
if (v.code !== "50004") {
|
||||
|
||||
@@ -0,0 +1,139 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<div class="search">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">年度:</div>
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
style="width: 100%;"
|
||||
:clearable="false"
|
||||
@change="doSearch"
|
||||
placeholder="选择年"
|
||||
type="year"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<vi-title2 title="基本设置">
|
||||
<template #func>
|
||||
<el-button size="small" type="primary" @click="openAdd">
|
||||
新增设置
|
||||
</el-button>
|
||||
</template>
|
||||
</vi-title2>
|
||||
<el-table :data="tableData" ref="table" row-key="id">
|
||||
<el-table-column type="index" width="50" label="序号"></el-table-column>
|
||||
<el-table-column property="basicSettingsCode" label="设置编码"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column property="basicSettingsName" label="设置名称"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column property="signUpActivityNum" label="可报活动数"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column property="applyDate" label="创建时间"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right"
|
||||
width="150px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" @click="openEdit(row)" type="primary">
|
||||
编辑
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
</guava>
|
||||
|
||||
<el-dialog
|
||||
title="活动设置"
|
||||
:visible.sync="dialogVisible"
|
||||
:close-on-click-modal="false"
|
||||
width="30%">
|
||||
<el-form :model="formData" ref="addForm" :rules="formRules"
|
||||
label-width="100px">
|
||||
<el-form-item label="设置名称" prop="basicSettingsName">
|
||||
<el-input v-model="formData.basicSettingsName" maxlength="50"
|
||||
placeholder="请填写设置名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="设置编码" prop="basicSettingsCode">
|
||||
<el-input v-model="formData.basicSettingsCode" maxlength="50"
|
||||
placeholder="请填写设置编码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="可报活动数" prop="signUpActivityNum">
|
||||
<el-input-number v-model="formData.signUpActivityNum" :min="1"
|
||||
placeholder="请填写可报活动数"
|
||||
style="width: 100%"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">关 闭</el-button>
|
||||
<el-button type="primary" @click="doSubmit">提 交</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
year: moment().format('YYYY') + ""
|
||||
},
|
||||
dialogVisible: false,
|
||||
formRules: {
|
||||
basicSettingsName: [
|
||||
{required: true, message: '请填写设置名称', trigger: 'change'}
|
||||
],
|
||||
basicSettingsCode: [
|
||||
{required: true, message: '请填写设置编码', trigger: 'change'}
|
||||
],
|
||||
signUpActivityNum: [
|
||||
{required: true, message: '请填写可报活动数', trigger: 'change'}
|
||||
],
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doSubmit() {
|
||||
this.$refs.addForm.validate(async (valid) => {
|
||||
if (valid) {
|
||||
const res = await $.post('/platform/activity/union/basicSettings/doSubmit', this.formData)
|
||||
if (res.code === 0) {
|
||||
this.$message.success('保存成功')
|
||||
this.dialogVisible = false
|
||||
this.doSearch()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
openAdd() {
|
||||
this.formData = {}
|
||||
this.dialogVisible = true
|
||||
this.$refs.addForm.resetFields()
|
||||
},
|
||||
openEdit(row) {
|
||||
this.formData = clone(row)
|
||||
this.dialogVisible = true
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user