commit
This commit is contained in:
+24
-16
@@ -5,6 +5,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
|||||||
import cn.dev33.satoken.annotation.SaMode;
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.lang.Dict;
|
import cn.hutool.core.lang.Dict;
|
||||||
|
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.constant.RoleConstant;
|
import com.budwk.app.base.constant.RoleConstant;
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
@@ -15,10 +16,10 @@ import com.budwk.app.flow.entity.ProcessTask;
|
|||||||
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
|
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
|
||||||
import com.budwk.app.flow.service.FlowCommonService;
|
import com.budwk.app.flow.service.FlowCommonService;
|
||||||
import com.budwk.app.sys.models.Sys_home_activity;
|
import com.budwk.app.sys.models.Sys_home_activity;
|
||||||
import com.budwk.app.sys.models.Sys_user_role;
|
|
||||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
import com.budwk.app.zhgh.activity.culture.models.ActivityTissue;
|
import com.budwk.app.zhgh.activity.culture.models.ActivityTissue;
|
||||||
|
import com.budwk.app.zhgh.activity.culture.models.ActivityTissuePerson;
|
||||||
import com.budwk.app.zhgh.activity.culture.service.ActivityCultureService;
|
import com.budwk.app.zhgh.activity.culture.service.ActivityCultureService;
|
||||||
import com.budwk.app.zhgh.club.model.ClubUser;
|
import com.budwk.app.zhgh.club.model.ClubUser;
|
||||||
import com.budwk.app.zhgh.club.model.SysClub;
|
import com.budwk.app.zhgh.club.model.SysClub;
|
||||||
@@ -100,15 +101,24 @@ public class ActivityCultureApplyActivityController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("保存活动申报")
|
@ApiOperation("保存活动申报")
|
||||||
@SLog( tag = "文化活动-活动申报", msg = "保存了一条文化活动记录")
|
@SLog(tag = "文化活动-活动申报", msg = "保存了一条文化活动记录")
|
||||||
@SaCheckPermission(value = {"activity.culture.applyActivity.school", "activity.culture.applyActivity.union", "activity.culture.applyActivity.club"}, mode = SaMode.OR)
|
@SaCheckPermission(value = {"activity.culture.applyActivity.school", "activity.culture.applyActivity.union", "activity.culture.applyActivity.club"}, mode = SaMode.OR)
|
||||||
public Result save(@Param("data") ActivityTissue tissue) {
|
public Result save(@Param("data") ActivityTissue tissue) {
|
||||||
|
|
||||||
if (tissue.getActivity_type() == 40002) {
|
if (tissue.getActivity_type() == 40002) {
|
||||||
tissue.setUnionId(SecurityUtil.getUnionId());
|
tissue.setUnionId(SecurityUtil.getUnionId());
|
||||||
}
|
}
|
||||||
tissue.setUserId(SecurityUtil.getUserId());
|
tissue.setUserId(SecurityUtil.getUserId());
|
||||||
tissue.setApplyTime(DateUtil.now());
|
tissue.setApplyTime(DateUtil.now());
|
||||||
activityCultureService.insertOrUpdate(tissue);
|
if (StrUtil.isBlank(tissue.getId())){
|
||||||
|
activityCultureService.insertWith(tissue, "tissuePersonList");
|
||||||
|
}else{
|
||||||
|
tissue.getTissuePersonList().forEach(tissuePerson -> tissuePerson.setTissueId(tissue.getId()));
|
||||||
|
activityCultureService.insertOrUpdate(tissue);
|
||||||
|
activityCultureService.dao().clear(ActivityTissuePerson.class, Cnd.where(ActivityTissuePerson::getTissueId, "=", tissue.getId()));
|
||||||
|
activityCultureService.insert(tissue.getTissuePersonList());
|
||||||
|
}
|
||||||
|
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,7 +135,7 @@ public class ActivityCultureApplyActivityController {
|
|||||||
tissue.setApplyTime(DateUtil.now());
|
tissue.setApplyTime(DateUtil.now());
|
||||||
activityCultureService.insertOrUpdate(tissue);
|
activityCultureService.insertOrUpdate(tissue);
|
||||||
|
|
||||||
if (tissue.getActivity_type() == 40002 || tissue.getActivity_type() == 40003){
|
if (List.of(40002, 40003).contains(tissue.getActivity_type()) && tissue.getIsEnrollSystem()) {
|
||||||
// 开启流程实例
|
// 开启流程实例
|
||||||
Dict args = Dict.create();
|
Dict args = Dict.create();
|
||||||
args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode());
|
args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode());
|
||||||
@@ -138,11 +148,10 @@ public class ActivityCultureApplyActivityController {
|
|||||||
flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args);
|
flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args);
|
||||||
}
|
}
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}else{
|
}
|
||||||
if (tissue.getIsUnseal()) {
|
if (tissue.getIsUnseal() && tissue.getIsEnrollSystem()) {
|
||||||
Sys_home_activity sysHomeActivity = tissue.covertToSysHomeActivity();
|
Sys_home_activity sysHomeActivity = tissue.covertToSysHomeActivity();
|
||||||
activityCultureService.insertOrUpdate(sysHomeActivity);
|
activityCultureService.insertOrUpdate(sysHomeActivity);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
@@ -160,15 +169,14 @@ public class ActivityCultureApplyActivityController {
|
|||||||
tissue.setApplyTime(DateUtil.now());
|
tissue.setApplyTime(DateUtil.now());
|
||||||
activityCultureService.insertOrUpdate(tissue);
|
activityCultureService.insertOrUpdate(tissue);
|
||||||
|
|
||||||
Dict dict = Dict.create();
|
Dict dict = Dict.create();
|
||||||
dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId);
|
dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId);
|
||||||
dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode());
|
dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode());
|
||||||
flowCommonService.executeTask(dict);
|
flowCommonService.executeTask(dict);
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@SLog(tag = "文化活动", msg = "编辑了一条文化活动记录", param = true, result = true)
|
@SLog(tag = "文化活动", msg = "编辑了一条文化活动记录", param = true, result = true)
|
||||||
@SaCheckPermission(value = {"activity.culture.applyActivity.school", "activity.culture.applyActivity.union", "activity.culture.applyActivity.club"}, mode = SaMode.OR)
|
@SaCheckPermission(value = {"activity.culture.applyActivity.school", "activity.culture.applyActivity.union", "activity.culture.applyActivity.club"}, mode = SaMode.OR)
|
||||||
@@ -196,9 +204,9 @@ public class ActivityCultureApplyActivityController {
|
|||||||
List<SysClub> myManageClub = sysClubService.getMyManageClub();
|
List<SysClub> myManageClub = sysClubService.getMyManageClub();
|
||||||
List<String> clubIds = myManageClub.stream().map(SysClub::getId).collect(Collectors.toList());
|
List<String> clubIds = myManageClub.stream().map(SysClub::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
List<ClubUser> list = sysClubService.dao().query(ClubUser.class, Cnd.where(ClubUser::getClubId, "in", clubIds));
|
List<ClubUser> list = sysClubService.dao().query(ClubUser.class, Cnd.where(ClubUser::getClubId, "in", clubIds));
|
||||||
|
|
||||||
List<String> clubUserIds = list.stream().map(ClubUser::getUserId).toList();
|
List<String> clubUserIds = list.stream().map(ClubUser::getUserId).toList();
|
||||||
cnd.and("id", "in", clubUserIds);
|
cnd.and("id", "in", clubUserIds);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-5
@@ -10,17 +10,20 @@ import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
|||||||
import com.budwk.app.zhgh.activity.culture.models.ActivityTissue;
|
import com.budwk.app.zhgh.activity.culture.models.ActivityTissue;
|
||||||
import com.budwk.app.zhgh.activity.culture.models.ActivityTissuePerson;
|
import com.budwk.app.zhgh.activity.culture.models.ActivityTissuePerson;
|
||||||
import com.budwk.app.zhgh.activity.culture.service.ActivityCultureService;
|
import com.budwk.app.zhgh.activity.culture.service.ActivityCultureService;
|
||||||
|
import com.budwk.app.zhgh.club.model.SysClub;
|
||||||
import com.budwk.app.zhgh.club.service.SysClubService;
|
import com.budwk.app.zhgh.club.service.SysClubService;
|
||||||
import org.nutz.dao.Cnd;
|
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.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.Strings;
|
import org.nutz.lang.Strings;
|
||||||
import org.nutz.lang.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ClassName ActivityCultureServiceImpl
|
* @ClassName ActivityCultureServiceImpl
|
||||||
@@ -122,16 +125,19 @@ public class ActivityCultureServiceImpl extends BaseServiceImpl<ActivityTissue>
|
|||||||
cnd.where().andLike("tissue.name", name);
|
cnd.where().andLike("tissue.name", name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(),
|
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(),
|
||||||
RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||||
cnd.and("tissue.userId", "=", SecurityUtil.getUserId());
|
if (AuthUtil.hasRoleOr(RoleConstant.BRANCH_UNION_ADMIN.name(), RoleConstant.BRANCH_UNION_CHAIRMAN.name())) {
|
||||||
/* if (AuthUtil.hasRoleOr(RoleConstant.BRANCH_UNION_ADMIN.name(), RoleConstant.BRANCH_UNION_CHAIRMAN.name())) {
|
group.or("tissue.unionId", "=", SecurityUtil.getUnionId());
|
||||||
cnd.and("tissue.unionId", "=", SecurityUtil.getUnionId());
|
|
||||||
} else if (AuthUtil.hasRole(RoleConstant.CLUB_PRESIDENT.name())) {
|
} else if (AuthUtil.hasRole(RoleConstant.CLUB_PRESIDENT.name())) {
|
||||||
List<SysClub> myManageClub = sysClubService.getMyManageClub();
|
List<SysClub> myManageClub = sysClubService.getMyManageClub();
|
||||||
List<String> clubIds = myManageClub.stream().map(SysClub::getId).collect(Collectors.toList());
|
List<String> clubIds = myManageClub.stream().map(SysClub::getId).collect(Collectors.toList());
|
||||||
cnd.and("tissue.clubId", "in", clubIds);
|
group.or("tissue.clubId", "in", clubIds);
|
||||||
}*/
|
} else {
|
||||||
|
group.or("tissue.userId", "=", SecurityUtil.getUserId());
|
||||||
|
}
|
||||||
|
cnd.and(group);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StrUtil.isNotBlank(page.getPageOrderName()) && StrUtil.isNotBlank(page.getPageOrderBy())) {
|
if (StrUtil.isNotBlank(page.getPageOrderName()) && StrUtil.isNotBlank(page.getPageOrderBy())) {
|
||||||
|
|||||||
+17
@@ -9,9 +9,11 @@ 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.web.commons.auth.utils.AuthUtil;
|
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
|
import com.budwk.app.zhgh.activity.basic.models.ActivityEvent;
|
||||||
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.ActivitySchoolEvent;
|
import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolEvent;
|
||||||
import com.budwk.app.zhgh.activity.sports.service.ActivitySportsService;
|
import com.budwk.app.zhgh.activity.sports.service.ActivitySportsService;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.nutz.dao.Cnd;
|
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;
|
||||||
@@ -195,6 +197,21 @@ public class ActivitySportsInfoManageController {
|
|||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
|
@ApiOperation("根据比赛项目基础表统一赋年龄限制")
|
||||||
|
@SaCheckPermission("activity.sports.info")
|
||||||
|
public Object doAssignmentDate(ActivitySchoolEvent[] events) {
|
||||||
|
for (ActivitySchoolEvent event : events) {
|
||||||
|
ActivityEvent activityEvent = dao.fetch(ActivityEvent.class,event.getEventId());
|
||||||
|
if (!event.getEventId().equals("allItems")) {
|
||||||
|
event.setStartAgeDate(activityEvent.getStartAgeDate());
|
||||||
|
event.setEndAgeDate(activityEvent.getEndAgeDate());
|
||||||
|
activitySportsService.updateIgnoreNull(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Result.success(events);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@Ok("void")
|
@Ok("void")
|
||||||
|
|||||||
+1
-1
@@ -53,7 +53,7 @@ public class AssetStocktakingServiceImpl extends BaseServiceImpl<AssetStocktakin
|
|||||||
group.orLike("t1.assetName", pageForm.getSearchKeyword());
|
group.orLike("t1.assetName", pageForm.getSearchKeyword());
|
||||||
cnd.and(group);
|
cnd.and(group);
|
||||||
}
|
}
|
||||||
if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name()) || !AuthUtil.hasRole(RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name()) && !AuthUtil.hasRole(RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||||
cnd.and("t1.assetUseUnionId", "=", SecurityUtil.getUnionId());
|
cnd.and("t1.assetUseUnionId", "=", SecurityUtil.getUnionId());
|
||||||
}
|
}
|
||||||
if (pageForm.getIsStocktaking() != null) {
|
if (pageForm.getIsStocktaking() != null) {
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
|
|||||||
<el-form-item label="是否用于报名" prop="isEnrollSystem">
|
<el-form-item label="是否用于报名" prop="isEnrollSystem">
|
||||||
<el-radio-group v-model="formData.isEnrollSystem" size="small">
|
<el-radio-group v-model="formData.isEnrollSystem" size="small">
|
||||||
<el-radio border :label="true">活动报名</el-radio>
|
<el-radio border :label="true">活动报名</el-radio>
|
||||||
|
<el-radio border :label="false">活动管理</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -326,7 +327,8 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
|
|||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="报名表单" prop="formConfig">
|
<el-form-item label="报名表单" prop="formConfig"
|
||||||
|
v-if="formData.isEnrollSystem === true">
|
||||||
<custom-form-field v-model="formData.formConfig"></custom-form-field>
|
<custom-form-field v-model="formData.formConfig"></custom-form-field>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -352,10 +354,10 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
|
|||||||
<el-table :data="formData.goods" border height="200" size="mini"
|
<el-table :data="formData.goods" border height="200" size="mini"
|
||||||
style="width: 100%">
|
style="width: 100%">
|
||||||
|
|
||||||
<el-table-column align="center" header-align="center" label="序号" sortable
|
<el-table-column label="序号" sortable
|
||||||
type="index" width="100">
|
type="index" width="100">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" header-align="center" label="物品名称"
|
<el-table-column label="物品名称"
|
||||||
prop="name">
|
prop="name">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<el-input maxlength="50" placeholder="物品名称"
|
<el-input maxlength="50" placeholder="物品名称"
|
||||||
@@ -363,7 +365,7 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
|
|||||||
v-model="row.name"></el-input>
|
v-model="row.name"></el-input>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" header-align="center" label="预算费用"
|
<el-table-column label="预算费用"
|
||||||
prop="price">
|
prop="price">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<el-input maxlength="50"
|
<el-input maxlength="50"
|
||||||
@@ -371,7 +373,7 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
|
|||||||
type="number" v-model="row.price"></el-input>
|
type="number" v-model="row.price"></el-input>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" header-align="center" label="实际费用"
|
<el-table-column label="实际费用"
|
||||||
prop="actualPrice">
|
prop="actualPrice">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<el-input maxlength="50"
|
<el-input maxlength="50"
|
||||||
@@ -379,8 +381,7 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
|
|||||||
type="number" v-model="row.actualPrice"></el-input>
|
type="number" v-model="row.actualPrice"></el-input>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" fixed="right"
|
<el-table-column fixed="right"
|
||||||
header-align="center"
|
|
||||||
label="操作"
|
label="操作"
|
||||||
width="80px">
|
width="80px">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@@ -477,8 +478,11 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
|
|||||||
</el-form>
|
</el-form>
|
||||||
<el-row type="flex" justify="end" class="mt20">
|
<el-row type="flex" justify="end" class="mt20">
|
||||||
<el-button type="primary" plain @click="onSave">保存</el-button>
|
<el-button type="primary" plain @click="onSave">保存</el-button>
|
||||||
<el-button type="primary" @click="onSubmit" v-if="!taskId">提交</el-button>
|
<template v-if="formData.isEnrollSystem">
|
||||||
<el-button type="primary" @click="onFinishTask" v-else>提交</el-button>
|
<el-button type="primary" @click="onSubmit" v-if="!taskId">提交</el-button>
|
||||||
|
<el-button type="primary" @click="onFinishTask" v-else>提交</el-button>
|
||||||
|
</template>
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
@@ -543,7 +547,8 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
|
|||||||
address: [{required: true, message: "必填", trigger: ["blur", "change"]}],
|
address: [{required: true, message: "必填", trigger: ["blur", "change"]}],
|
||||||
plannedDate: [{required: true, message: "必填", trigger: ["blur", "change"]}],
|
plannedDate: [{required: true, message: "必填", trigger: ["blur", "change"]}],
|
||||||
time: [{required: true, message: "必填", trigger: ["blur", "change"]}],
|
time: [{required: true, message: "必填", trigger: ["blur", "change"]}],
|
||||||
cover: [{required: true, message: "必填", trigger: ["blur", "change"]}]
|
cover: [{required: true, message: "必填", trigger: ["blur", "change"]}],
|
||||||
|
signUpMethod: [{required: true, message: "必填", trigger: ["blur", "change"]}]
|
||||||
},
|
},
|
||||||
|
|
||||||
projectTypeList: [],
|
projectTypeList: [],
|
||||||
@@ -612,8 +617,10 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
|
|||||||
formData.endPlannedDate = formData.plannedDate[1]
|
formData.endPlannedDate = formData.plannedDate[1]
|
||||||
formData.plannedDate = null
|
formData.plannedDate = null
|
||||||
}
|
}
|
||||||
|
this.$axios.post('/platform/activity/culture/applyActivity/save', {
|
||||||
this.$axios.post('/platform/activity/culture/applyActivity/save', {data: JSON.stringify(formData)}).then(res => {
|
data: JSON.stringify(formData),
|
||||||
|
userData: JSON.stringify(this.userData)
|
||||||
|
}).then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$message.success("保存成功")
|
this.$message.success("保存成功")
|
||||||
this.$emit("goBack")
|
this.$emit("goBack")
|
||||||
@@ -725,8 +732,9 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
doAddUser() {
|
doAddUser() {
|
||||||
this.formData.tissuePersonList = this.userList.filter((v) => this.formData.tissuePersonList.some((x) => v.userId === x))
|
const userList = this.userList.filter(v => this.formData.tissuePersonList.some(x => v.userId === x))
|
||||||
this.userData = this.userData.concat(this.formData.tissuePersonList)
|
this.userData = this.userData.concat(userList)
|
||||||
|
this.formData.tissuePersonList = this.userData
|
||||||
this.userDialogVisible = false
|
this.userDialogVisible = false
|
||||||
},
|
},
|
||||||
async delUser(row) {
|
async delUser(row) {
|
||||||
@@ -919,8 +927,8 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
openEdit(row) {
|
openEdit(row) {
|
||||||
this.taskId=row.startTaskId
|
this.taskId = row.startTaskId
|
||||||
this.bizId=row.id
|
this.bizId = row.id
|
||||||
this.activeName = "1"
|
this.activeName = "1"
|
||||||
this.init(row.id)
|
this.init(row.id)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ layout("/layouts/platform.html"){
|
|||||||
<template>
|
<template>
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<search @search="doSearch">
|
<search @search="doSearch">
|
||||||
<search-item label="编号/名称">
|
<search-item label="年度">
|
||||||
<el-date-picker placeholder="按年度查询" type="year" v-model="pageForm.year"
|
<el-date-picker placeholder="按年度查询" type="year" v-model="pageForm.year"
|
||||||
value-format="yyyy"></el-date-picker>
|
value-format="yyyy"></el-date-picker>
|
||||||
</search-item>
|
</search-item>
|
||||||
|
|||||||
+2
@@ -31,6 +31,7 @@ layout("/layouts/platform.html"){
|
|||||||
|
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
|
|
||||||
<table-tool label="名额分配列表">
|
<table-tool label="名额分配列表">
|
||||||
<el-button
|
<el-button
|
||||||
size="small"
|
size="small"
|
||||||
@@ -68,6 +69,7 @@ layout("/layouts/platform.html"){
|
|||||||
return {
|
return {
|
||||||
sessionOptions: [],
|
sessionOptions: [],
|
||||||
unionOptions: [],
|
unionOptions: [],
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
+147
-12
@@ -2,7 +2,55 @@ const MANUAL_ALLOCATION_DIALOG = {
|
|||||||
template: /*language=HTML*/ `
|
template: /*language=HTML*/ `
|
||||||
<el-dialog :visible.sync="manualAllocationDialog" title="手动分配名额" width="80%" :close-on-click-modal="false"
|
<el-dialog :visible.sync="manualAllocationDialog" title="手动分配名额" width="80%" :close-on-click-modal="false"
|
||||||
top="50px">
|
top="50px">
|
||||||
|
<table-tool label="分段设置">
|
||||||
|
<el-button @click="unionLimitQuickSetting" size="small"
|
||||||
|
type="primary">
|
||||||
|
应用分段设置
|
||||||
|
</el-button>
|
||||||
|
</table-tool>
|
||||||
|
<el-row :gutter="20" :key="index"
|
||||||
|
class="mb5" v-for="(item,index) in unionUserNumCalc">
|
||||||
|
<el-col :span="7">
|
||||||
|
<el-input-number :min="1" :precision="0"
|
||||||
|
:step="1" placeholder="请输入最小人数"
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="item.startNum"></el-input-number>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="7">
|
||||||
|
<el-input-number :min="1" :precision="0"
|
||||||
|
:step="1" placeholder="请输入最大人数"
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="item.endNum"></el-input-number>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-input-number :min="1" :precision="0"
|
||||||
|
:step="1" placeholder="请输入限制百分比"
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="item.resultNum"></el-input-number>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4" class="text-right">
|
||||||
|
<el-button @click="unionUserNumCalc.push({})"
|
||||||
|
icon="el-icon-plus"></el-button>
|
||||||
|
<el-button :disabled="unionUserNumCalc.length===1"
|
||||||
|
@click="unionUserNumCalc.splice(index,1)"
|
||||||
|
icon="el-icon-minus"></el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row class="mt10">
|
||||||
|
<div class="text-danger"
|
||||||
|
v-for="(item,index) in unionUserNumCalcTips">
|
||||||
|
<span class="mr10">({{index+1}}).</span> {{item}}
|
||||||
|
</div>
|
||||||
|
</el-row>
|
||||||
<table-tool label="比例设置">
|
<table-tool label="比例设置">
|
||||||
|
<el-select v-model="settingsType"
|
||||||
|
placeholder="需要设置的列表"
|
||||||
|
style="width: 30%;">
|
||||||
|
<el-option :label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
:key="item.value"
|
||||||
|
v-for="item in settingsTypeOptions"></el-option>
|
||||||
|
</el-select>
|
||||||
一键比例:
|
一键比例:
|
||||||
<el-input-number
|
<el-input-number
|
||||||
style="width: 150px"
|
style="width: 150px"
|
||||||
@@ -23,7 +71,8 @@ const MANUAL_ALLOCATION_DIALOG = {
|
|||||||
</el-button>
|
</el-button>
|
||||||
</table-tool>
|
</table-tool>
|
||||||
|
|
||||||
<el-table :data="unionLimit" max-height="500">
|
<el-table :data="unionLimit" max-height="500" :summary-method="getSummaries"
|
||||||
|
show-summary>
|
||||||
<el-table-column prop="unionName" label="分工会"></el-table-column>
|
<el-table-column prop="unionName" label="分工会"></el-table-column>
|
||||||
<el-table-column prop="memberCount" label="会员人数"></el-table-column>
|
<el-table-column prop="memberCount" label="会员人数"></el-table-column>
|
||||||
<el-table-column align="center" prop="ratio" label="比例(%)">
|
<el-table-column align="center" prop="ratio" label="比例(%)">
|
||||||
@@ -59,7 +108,7 @@ const MANUAL_ALLOCATION_DIALOG = {
|
|||||||
:precision="0"
|
:precision="0"
|
||||||
:step="1"
|
:step="1"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="row.quota"
|
:max="row.allocationNum"
|
||||||
></el-input-number>
|
></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -71,7 +120,7 @@ const MANUAL_ALLOCATION_DIALOG = {
|
|||||||
:precision="0"
|
:precision="0"
|
||||||
:step="1"
|
:step="1"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="row.quota"
|
:max="row.allocationNum"
|
||||||
></el-input-number>
|
></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -83,7 +132,7 @@ const MANUAL_ALLOCATION_DIALOG = {
|
|||||||
:precision="0"
|
:precision="0"
|
||||||
:step="1"
|
:step="1"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="row.quota"
|
:max="row.allocationNum"
|
||||||
></el-input-number>
|
></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -95,7 +144,7 @@ const MANUAL_ALLOCATION_DIALOG = {
|
|||||||
:precision="0"
|
:precision="0"
|
||||||
:step="1"
|
:step="1"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="row.quota"
|
:max="row.allocationNum"
|
||||||
></el-input-number>
|
></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -107,7 +156,7 @@ const MANUAL_ALLOCATION_DIALOG = {
|
|||||||
:precision="0"
|
:precision="0"
|
||||||
:step="1"
|
:step="1"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="row.quota"
|
:max="row.allocationNum"
|
||||||
></el-input-number>
|
></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>-->
|
</el-table-column>-->
|
||||||
@@ -119,7 +168,7 @@ const MANUAL_ALLOCATION_DIALOG = {
|
|||||||
:precision="0"
|
:precision="0"
|
||||||
:step="1"
|
:step="1"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="row.quota"
|
:max="row.allocationNum"
|
||||||
></el-input-number>
|
></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -131,7 +180,7 @@ const MANUAL_ALLOCATION_DIALOG = {
|
|||||||
:precision="0"
|
:precision="0"
|
||||||
:step="1"
|
:step="1"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="row.quota"
|
:max="row.allocationNum"
|
||||||
></el-input-number>
|
></el-input-number>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -150,12 +199,94 @@ const MANUAL_ALLOCATION_DIALOG = {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
unionUserNumOneKeyRatio: null,
|
unionUserNumOneKeyRatio: null,
|
||||||
|
settingsType: "allocationNum",
|
||||||
sessionId: "",
|
sessionId: "",
|
||||||
unionLimit: [],
|
unionLimit: [],
|
||||||
manualAllocationDialog: false,
|
manualAllocationDialog: false,
|
||||||
|
unionUserNumCalc: [{}],
|
||||||
|
unionUserNumCalcTips: [],
|
||||||
|
settingsTypeOptions: [
|
||||||
|
{label: "分配人数", value: "allocationNum"},
|
||||||
|
{label: "高级职称代表数", value: "seniorTeaNum"},
|
||||||
|
{label: "中级职称及以下代表数", value: "intermediateBelowNum"},
|
||||||
|
{label: "干部代表数", value: "cadreNum"},
|
||||||
|
{label: "工人代表数", value: "workerNum"},
|
||||||
|
{label: "女代表数", value: "femaleNum"},
|
||||||
|
{label: "45岁以下代表数", value: "less45Num"},
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getSummaries(param) {
|
||||||
|
const {columns, data} = param;
|
||||||
|
const sums = [];
|
||||||
|
columns.forEach((column, index) => {
|
||||||
|
if (index === 0) {
|
||||||
|
sums[index] = '占代表总数的';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const values = data.map(item => Number(item[column.property]));
|
||||||
|
if (!values.every(value => isNaN(value))) {
|
||||||
|
if (index === 2) {
|
||||||
|
sums[index] = null;
|
||||||
|
} else if ([1, 3].includes(index)) {
|
||||||
|
sums[index] = values.reduce((prev, curr) => {
|
||||||
|
const value = Number(curr);
|
||||||
|
if (!isNaN(value)) {
|
||||||
|
return Math.floor((prev + curr) * 100) / 100;
|
||||||
|
} else {
|
||||||
|
return prev;
|
||||||
|
}
|
||||||
|
}, 0);
|
||||||
|
sums[index] += ' 人';
|
||||||
|
} else {
|
||||||
|
const part = values.reduce((prev, curr) => {
|
||||||
|
const value = Number(curr);
|
||||||
|
if (!isNaN(value)) {
|
||||||
|
return Math.floor((prev + curr) * 100) / 100;
|
||||||
|
} else {
|
||||||
|
return prev;
|
||||||
|
}
|
||||||
|
}, 0);
|
||||||
|
const totalValues = data.map(item => Number(item.allocationNum));
|
||||||
|
const total = totalValues.reduce((prev, curr) => {
|
||||||
|
const value = Number(curr);
|
||||||
|
if (!isNaN(value)) {
|
||||||
|
return Math.floor((prev + curr) * 100) / 100;
|
||||||
|
} else {
|
||||||
|
return prev;
|
||||||
|
}
|
||||||
|
}, 0);
|
||||||
|
|
||||||
|
sums[index] = ((part / total) * 100).toFixed(2) + ' %'
|
||||||
|
console.log(((part / total) * 100).toFixed(2))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sums[index] = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return sums;
|
||||||
|
},
|
||||||
|
unionLimitQuickSetting() {
|
||||||
|
this.unionUserNumCalc.forEach((v, i) => {
|
||||||
|
const startNum = v.startNum
|
||||||
|
const endNum = v.endNum
|
||||||
|
const resultNum = v.resultNum
|
||||||
|
if (startNum > endNum) {
|
||||||
|
this.notifyWarning("第" + (i + 1) + "行设置错误")
|
||||||
|
} else {
|
||||||
|
this.unionLimit.forEach((x) => {
|
||||||
|
if (x.memberCount >= startNum && x.memberCount <= endNum) {
|
||||||
|
x.ratio = resultNum
|
||||||
|
const num = parseFloat((v.memberCount * x.ratio / 100).toFixed(0))
|
||||||
|
v.allocationNum = (num === 0 ? 1 : num)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.$forceUpdate()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
async doManualAllocationSub() {
|
async doManualAllocationSub() {
|
||||||
const hasNull = this.unionLimit.some(v => v.allocationNum === undefined)
|
const hasNull = this.unionLimit.some(v => v.allocationNum === undefined)
|
||||||
if (hasNull) {
|
if (hasNull) {
|
||||||
@@ -196,12 +327,13 @@ const MANUAL_ALLOCATION_DIALOG = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
applyScaleSettings() {
|
applyScaleSettings() {
|
||||||
|
const settingsType = this.settingsTypeOptions.find(v => v.value === this.settingsType)
|
||||||
this.unionLimit.forEach(v => {
|
this.unionLimit.forEach(v => {
|
||||||
v.ratio = this.unionUserNumOneKeyRatio
|
if (settingsType.value === "allocationNum") {
|
||||||
if (v.ratio) {
|
v.ratio = this.unionUserNumOneKeyRatio
|
||||||
const num = parseFloat((v.memberCount * v.ratio / 100).toFixed(0))
|
|
||||||
v.allocationNum = (num === 0 ? 1 : num)
|
|
||||||
}
|
}
|
||||||
|
const num = parseFloat((v.memberCount * this.unionUserNumOneKeyRatio / 100).toFixed(0))
|
||||||
|
v[settingsType.value] = (num === 0 ? 1 : num)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
ratioChange(val, index) {
|
ratioChange(val, index) {
|
||||||
@@ -219,7 +351,10 @@ const MANUAL_ALLOCATION_DIALOG = {
|
|||||||
},
|
},
|
||||||
async onOpen(sessionId) {
|
async onOpen(sessionId) {
|
||||||
this.sessionId = sessionId
|
this.sessionId = sessionId
|
||||||
|
this.unionUserNumCalc = [{}]
|
||||||
this.manualAllocationDialog = true
|
this.manualAllocationDialog = true
|
||||||
|
this.unionUserNumOneKeyRatio = 0
|
||||||
|
this.settingsType = "allocationNum"
|
||||||
this.getUnionUsers()
|
this.getUnionUsers()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user