工会干部培训

This commit is contained in:
=
2025-10-27 16:28:42 +08:00
parent 5f8de5e32b
commit 712b1ea597
18 changed files with 298 additions and 74 deletions
@@ -149,7 +149,7 @@ public class ActivityCultureApplyActivityController {
}
return Result.success();
}
if (tissue.getIsUnseal() && tissue.getIsEnrollSystem()) {
if (tissue.getIsUnseal()!=null && tissue.getIsUnseal() && tissue.getIsEnrollSystem()) {
Sys_home_activity sysHomeActivity = tissue.covertToSysHomeActivity();
activityCultureService.insertOrUpdate(sysHomeActivity);
}
@@ -137,7 +137,7 @@ public class ActivityCultureAuditActivityController {
public Result doReview(@Param("data") String param, String id) {
Dict args = Json.fromJson(Dict.class, param);
ActivityTissue tissue = activityCultureService.dao().fetch(ActivityTissue.class, id);
if (tissue.getIsUnseal() && args.getInt("submitType") == 1) {
if (tissue.getIsUnseal()!=null &&tissue.getIsUnseal() && args.getInt("submitType") == 1) {
Sys_home_activity sysHomeActivity = tissue.covertToSysHomeActivity();
activityCultureService.insertOrUpdate(sysHomeActivity);
}
@@ -231,6 +231,7 @@ public class ActivityTissue extends BaseModel implements Serializable, SysHomeCo
@Column
@Comment("是否开启")
@Default("0")
@ColDefine(type = ColType.BOOLEAN)
private Boolean isUnseal;
@@ -3,9 +3,12 @@ package com.budwk.app.zhgh.dayofficework.cadreTraining.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.web.commons.auth.utils.AuthUtil;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.dayofficework.cadreTraining.model.CadreTrainingAct;
import com.budwk.app.zhgh.dayofficework.cadreTraining.service.CadreTrainingActService;
import io.swagger.annotations.Api;
@@ -14,6 +17,7 @@ import lombok.extern.slf4j.Slf4j;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.util.cri.Static;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
@@ -1,10 +1,12 @@
package com.budwk.app.zhgh.dayofficework.cadreTraining.controller;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
@@ -13,7 +15,9 @@ import com.budwk.app.flow.engine.FlowEngine;
import com.budwk.app.flow.entity.ProcessInstance;
import com.budwk.app.flow.entity.ProcessTask;
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
import com.budwk.app.web.commons.auth.utils.AuthUtil;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.activity.culture.models.ActivityTissuePerson;
import com.budwk.app.zhgh.dayofficework.cadreTraining.model.CadreTrainingAct;
import com.budwk.app.zhgh.dayofficework.cadreTraining.model.CadreTrainingSignUp;
import com.budwk.app.zhgh.dayofficework.cadreTraining.service.CadreTrainingActService;
@@ -25,8 +29,10 @@ import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.Static;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
@@ -59,19 +65,26 @@ public class CadreTrainingSignUpController {
@At
@SaCheckPermission("cadreTraining.branchUnionSignUp")
@ApiOperation("分页查询")
public Result pageData(@Valid PageForm pageForm,Integer year) {
public Result pageData(@Valid PageForm pageForm,Integer year, boolean isEnrolled) {
Sql sql = Sqls.create("""
SELECT
info.*
info.*,
CASE WHEN cts.id IS NOT NULL THEN 1 ELSE 0 END AS isEnrolled
FROM
cadre_training info
LEFT JOIN cadre_training_signup cts on cts.cadreTrainingActId=info.id AND (cts.applyUserId = @userId OR cts.userId = @userId)
$condition
""");
""").setParam("userId", SecurityUtil.getUserId());
Cnd cnd = Cnd.NEW();
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(),
RoleConstant.BRANCH_UNION_CHAIRMAN.name())) {
cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=activityGroupId AND userId='%s') >0".formatted(SecurityUtil.getUserId())));
}
cnd.andEX("year(signUpStartTime)", "=", year);
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
cnd.where().andLike(CadreTrainingAct::getName, pageForm.getSearchKeyword());
}
cnd.and("cts.id", isEnrolled ? "IS NOT" : "IS", null);
sql.setCondition(cnd);
Pagination pagination = cadreTrainingActService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
@@ -98,6 +111,20 @@ public class CadreTrainingSignUpController {
return Result.success();
}
@At
@SaCheckLogin
@ApiOperation(value = "队友搜索")
public Result queryTeammate(@Valid String keyword) {
Sql sql = Sqls.create("select id userId,username userName,loginname loginName,sex,mobile,unitName,unionId,unionName from vw_user $condition limit 0,10");
Cnd cnd = Cnd.NEW();
cnd.or(Cnd.likeEX("username", keyword));
cnd.or(Cnd.likeEX("loginname", keyword));
cnd.and("unionid", "=", SecurityUtil.getUnionId());
sql.setCondition(cnd);
List<NutMap> list = cadreTrainingActService.listMap(sql);
return Result.success(list);
}
@At
@@ -37,6 +37,11 @@ public class CadreTrainingAct extends BaseModel {
@ColDefine(type = ColType.VARCHAR, width = 50)
private String name;
@Column
@Comment("活动范围Id")
@ColDefine(type = ColType.INT, width = 32)
private Integer activityGroupId;
@Column
@Comment("报名开始时间")
@ColDefine(type = ColType.DATETIME)
@@ -28,6 +28,16 @@ public class CadreTrainingSignUp extends BaseModel {
@ColDefine(type = ColType.VARCHAR, width = 32)
private String cadreTrainingActId;
@Column
@Comment("报名人ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String applyUserId;
@Column
@Comment("报名人姓名")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String applyUserUserName;
@Column
@Comment("用户ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
@@ -33,6 +33,7 @@ import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.dao.util.cri.Static;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
@@ -119,6 +120,7 @@ public class MutualInsuranceApplyController {
Cnd cnd = Cnd.NEW();
cnd.andEX("`year`", "=", year == null ? DateUtil.thisYear() : year);
cnd.and("isOpen", "=", true);
cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=activityGroupId AND userId='%s') >0".formatted(SecurityUtil.getUserId())));
List<MutualInsuranceProject> query = mutualInsuranceProjectService.query(cnd);
return Result.success(query);
}
@@ -40,6 +40,16 @@ public class MutualInsuranceProject extends BaseModel implements Serializable {
@ColDefine(type = ColType.VARCHAR, width = 255)
private String projectName;
@Column
@Comment("活动范围Id")
@ColDefine(type = ColType.INT, width = 32)
private Integer activityGroupId;
@Column
@Comment("活动范围名称")
@ColDefine(type = ColType.VARCHAR, width = 40)
private String activityGroupName;
@Column
@Comment("开始时间")
@ColDefine(type = ColType.DATETIME)
+14 -14
View File
@@ -354,20 +354,20 @@ layout("/layouts/v4/baseLayout.html"){
</div>
<!-- 字母过滤 -->
<div class="apps-filter">
<div class="apps-filter-title">首字母:</div>
<div class="apps-filter-tags alphabet-filter">
<div :class="['filter-tag', activeAlphabet === '' ? 'active' : '']" @click="changeAlphabet('')">全部</div>
<div
v-for="letter in alphabets"
:key="letter"
:class="['alphabet-item', activeAlphabet === letter ? 'active' : '']"
@click="changeAlphabet(letter)"
>
{{ letter }}
</div>
</div>
</div>
<!-- <div class="apps-filter">-->
<!-- <div class="apps-filter-title">首字母:</div>-->
<!-- <div class="apps-filter-tags alphabet-filter">-->
<!-- <div :class="['filter-tag', activeAlphabet === '' ? 'active' : '']" @click="changeAlphabet('')">全部</div>-->
<!-- <div-->
<!-- v-for="letter in alphabets"-->
<!-- :key="letter"-->
<!-- :class="['alphabet-item', activeAlphabet === letter ? 'active' : '']"-->
<!-- @click="changeAlphabet(letter)"-->
<!-- >-->
<!-- {{ letter }}-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
</div>
<!-- 应用网格 -->
@@ -42,8 +42,8 @@ const singleSignUp = {
</el-descriptions-item>
<el-descriptions-item label="报名方式">
<span v-if="viewData.signUpMethod===1">个人报名</span>
<span v-else-if="viewData.signUpMethod===2">分工会报名</span>
<span v-else-if="viewData.signUpMethod===3">组队报名</span>
<span v-else-if="viewData.signUpMethod===2">组队报名</span>
<span v-else-if="viewData.signUpMethod===3">分工会报名</span>
<span v-else-if="!viewData.signUpMethod">无需报名</span>
</el-descriptions-item>
<el-descriptions-item label="是否用于报名">
@@ -9,12 +9,41 @@ const formEdit = {
<!-- Step 1: 基础信息 -->
<div v-show="activeStep === 0">
<el-form :model="formData" ref="form" :rules="formRules" label-width="120px" class="form-container">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="活动名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入活动名称" maxlength="50"
show-word-limit>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="activityGroupId" label="可报名人员范围">
<div style="display: flex; justify-content: space-between">
<div style="width: 99%">
<el-select prop="groupId" placeholder="参加人员范围"
v-model="formData.activityGroupId"
style="width: 99%;"
clearable
filterable>
<el-option v-for="item in activityGroupList"
:label="item.groupName"
:value="item.groupId"
:key="item.groupId"
></el-option>
</el-select>
</div>
<div>
<el-button
@click="$refs.drawerUserScope.userScopeDialog = true"
type="primary">设置
</el-button>
</div>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="报名开始时间" prop="signUpStartTime">
@@ -107,8 +136,16 @@ const formEdit = {
{{ submitting ? '提交中...' : '确定' }}
</el-button>
</div>
<drawer-user-scope
@group_change="getActivityGroup"
ref="drawerUserScope"
:group_id.sync="formData.activityGroupId"
></drawer-user-scope>
</el-dialog>
`,
components: {
"drawer-user-scope": httpVueLoader("/components/module/activity/DrawerUserScope.vue")
},
data() {
// 日期验证器
const validateDateRange = (rule, value, callback) => {
@@ -142,6 +179,7 @@ const formEdit = {
visible: false,
activeStep: 0,
submitting: false,
activityGroupList: [],
formData: {
quotas: []
},
@@ -188,6 +226,10 @@ const formEdit = {
}
},
methods: {
async getActivityGroup() {
const { data } = await $.get("/platform/activity/basic/scope/getActivityUserScopeGroup")
this.activityGroupList = data
},
// 处理关闭弹窗
handleClose() {
this.visible = false;
@@ -367,6 +409,9 @@ const formEdit = {
})
}
},
async created() {
await this.getActivityGroup()
},
style: /*language=CSS*/ `
.form-container {
padding: 0 50px;
@@ -15,7 +15,12 @@ layout("/layouts/platform.html"){
</el-card>
<el-card shadow="never">
<table-tool></table-tool>
<table-tool label="活动列表">
<el-radio-group v-model="pageForm.isEnrolled" @change="doSearch" size="mini" class="ml10">
<el-radio-button :label="true">已报名</el-radio-button>
<el-radio-button :label="false">未报名</el-radio-button>
</el-radio-group>
</table-tool>
<el-table :data="tableData">
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"></el-table-column>
<el-table-column prop="name" label="名称" show-overflow-tooltip></el-table-column>
@@ -65,6 +70,7 @@ layout("/layouts/platform.html"){
data() {
return {
pageForm: {
isEnrolled: false,
year: new Date().getFullYear().toString(),
searchKeyword: ""
},
@@ -5,9 +5,12 @@ const signForm = {
<snaker-start slot="header" define_key="GBPX" label="活动报名"></snaker-start>
</div>
<el-descriptions :column="2" border class="margin-top" style="margin: 10px" title="">
<el-descriptions-item label="活动名称" span="2">
<el-descriptions-item label="活动名称" >
<span class="item-center"> {{ viewData.name }}</span>
</el-descriptions-item>
<el-descriptions-item label="分工会名额">
{{ quota }}人 / 剩余: {{ remainingQuota }}人
</el-descriptions-item>
<el-descriptions-item label="报名开始时间">
{{ viewData.signUpStartTime }}
</el-descriptions-item>
@@ -20,16 +23,32 @@ const signForm = {
<el-descriptions-item label="结束时间">
{{ viewData.endTime }}
</el-descriptions-item>
<el-descriptions-item label="分工会名额">
{{ quota }}人 / 剩余: {{ remainingQuota }}人
</el-descriptions-item>
<el-descriptions-item label="活动内容" span="2">
<div v-html="viewData.notice"></div>
</el-descriptions-item>
</el-descriptions>
<!-- 个人报名信息 -->
<div class="process-title">个人报名信息</div>
<div class="process-title">选择报名人员</div>
<el-select
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 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>
@@ -42,6 +61,12 @@ const signForm = {
<el-input v-model="scope.row.remark" placeholder="请输入备注"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="100px">
<template slot-scope="scope">
<el-button type="danger" size="mini" @click="removeTeamUser(scope.$index)">删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-row type="flex" justify="end" class="mt20">
@@ -54,9 +79,12 @@ const signForm = {
store,
data() {
return {
//搜索框
searchTeammateUserId: null,
teammateOptions: [],
dialogVisible: false,
viewData: {},
formData: {}, // 将 signUpData 改为 formData
formData: {},
id: null,
//表格用户(实际上只包含当前用户)
teamUsers: [],
@@ -88,6 +116,44 @@ const signForm = {
this.loadUserData()
},
//查询队友信息
queryTeammate(val) {
if (val) {
this.$axios.post("/platform/cadreTraining/branchUnionSignUp/queryTeammate", {
keyword: val,
tissueId: this.id,
}).then((res) => {
if (res.code === 0) {
res.data.map(v => v.applyUserId = this.$store.state.user.id)
this.teammateOptions = res.data
}
})
}
},
//添加队友
addTeamUser() {
if (!this.searchTeammateUserId) {
this.$message.error("请先选择后再添加")
return
}
if (this.teamUsers.some((v) => v.userId === this.searchTeammateUserId)) {
this.$message.error("请勿重复添加")
return
}
if (this.teamUsers.length >= this.viewData.teamNum) {
this.$message.error("已满员")
return
}
this.teamUsers.push(this.teammateOptions.find((v) => v.userId === this.searchTeammateUserId))
this.searchTeammateUserId = null
},
//移除队友
removeTeamUser(index) {
this.teamUsers.splice(index, 1)
},
// 加载用户数据
async loadUserData() {
try {
@@ -109,65 +109,66 @@ layout("/layouts/platform.html"){
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="planNumber" label="计划书号码">
<el-input v-model="formData.planNumber" placeholder="请输入计划书号码"></el-input>
</el-form-item>
</el-col>
<!-- <el-col :span="12">-->
<!-- <el-form-item prop="planNumber" label="计划书号码">-->
<!-- <el-input v-model="formData.planNumber" placeholder="请输入计划书号码"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="12">
<el-form-item prop="isRenewal" label="是否续保">
<el-select v-model="formData.isRenewal" placeholder="请选择是否续保" style="width: 100%">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="12">-->
<!-- <el-form-item prop="isRenewal" label="是否续保">-->
<!-- <el-select v-model="formData.isRenewal" placeholder="请选择是否续保" style="width: 100%">-->
<!-- <el-option label="是" value="1"></el-option>-->
<!-- <el-option label="否" value="0"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="12">
<el-form-item prop="guaranteedStartTime" label="保障开始时间">
<el-date-picker
v-model="formData.guaranteedStartTime"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
clearable
placeholder="请选择保障开始时间"
@change="calculateEndTime">
</el-date-picker>
</el-form-item>
</el-col>
<!-- <el-col :span="12">-->
<!-- <el-form-item prop="guaranteedStartTime" label="保障开始时间">-->
<!-- <el-date-picker-->
<!-- v-model="formData.guaranteedStartTime"-->
<!-- type="date"-->
<!-- format="yyyy-MM-dd"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- clearable-->
<!-- placeholder="请选择保障开始时间"-->
<!-- @change="calculateEndTime">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="12">
<el-form-item prop="guaranteedEndTime" label="保障结束时间">
<el-date-picker
v-model="formData.guaranteedEndTime"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
clearable
placeholder="请选择保障结束时间"
:readonly="true">
</el-date-picker>
</el-form-item>
</el-col>
<!-- <el-col :span="12">-->
<!-- <el-form-item prop="guaranteedEndTime" label="保障结束时间">-->
<!-- <el-date-picker-->
<!-- v-model="formData.guaranteedEndTime"-->
<!-- type="date"-->
<!-- format="yyyy-MM-dd"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- clearable-->
<!-- placeholder="请选择保障结束时间"-->
<!-- :readonly="true">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="12">
<el-form-item prop="dangerTime" label="出险时间">
<el-form-item prop="dangerTime" label="入院时间">
<el-date-picker
v-model="formData.dangerTime"
type="datetime"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm"
clearable
style="width: 100%"
placeholder="请选择出险时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="dangerAddress" label="出险地点">
<el-form-item prop="dangerAddress" label="入院地点">
<el-input v-model="formData.dangerAddress" placeholder="请输入出险地点"></el-input>
</el-form-item>
</el-col>
@@ -254,7 +255,6 @@ layout("/layouts/platform.html"){
idCard: [{ required: true, message: '请填写身份证号', trigger: 'blur' }, {pattern: /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, message: '请输入正确的身份证号码', trigger: 'blur'}],
age: [{ required: true, message: '请输入年龄', trigger: 'blur' }, { type: 'number', min: 16, max: 60, message: '年龄必须在16-60岁之间', trigger: 'blur', transform: (value) => Number(value) }],
bankCardNumber: [ { pattern: /^([1-9]{1})(\d{15}|\d{18})$/, message: '请输入正确的银行卡号', trigger: 'blur' }],
sign: [{ required: true, message: '请签字', trigger: 'change' }]
},
projectList: [],
}
@@ -421,6 +421,10 @@ layout("/layouts/platform.html"){
})
},
onView() {
if (!this.formData.projectId) {
this.$message.warning('请先选择所属事项');
return;
}
this.$refs.guava.view(() => {
this.$refs.projectInfoRef.onOpen(this.formData.projectId)
})
@@ -61,7 +61,7 @@ layout("/layouts/platform.html"){
<el-table :data="tableData" @sort-change="pageOrder" style="width: 100%">
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"></el-table-column>
<el-table-column prop="loginName" label="工号"></el-table-column>
<el-table-column prop="userName" label="职工姓名"></el-table-column>
<el-table-column prop="userName" label="姓名"></el-table-column>
<el-table-column prop="sex" label="性别"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
<el-table-column prop="unionName" label="所属工会"></el-table-column>
@@ -2,11 +2,39 @@ const formEdit = {
template: /*language=HTML*/ `
<el-dialog :title="formData.id ? '编辑项目' : '新增项目'" :visible="visible" width="70%" :close-on-click-modal="false" :before-close="handleClose">
<el-form :model="formData" :rules="formRules" label-width="110px" ref="form">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="事项名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入事项名称" maxlength="50"
show-word-limit></el-input>
</el-col>
</el-form-item>
<el-col :span="12">
<el-form-item prop="activityGroupId" label="可报名人员范围">
<div style="display: flex; justify-content: space-between">
<div style="width: 99%">
<el-select prop="groupId" placeholder="参加人员范围"
v-model="formData.activityGroupId"
style="width: 99%;"
clearable
filterable>
<el-option v-for="item in activityGroupList"
:label="item.groupName"
:value="item.groupId"
:key="item.groupId"
></el-option>
</el-select>
</div>
<div>
<el-button
@click="$refs.drawerUserScope.userScopeDialog = true"
type="primary">设置
</el-button>
</div>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="开始时间" prop="startTime">
@@ -49,8 +77,16 @@ const formEdit = {
<el-button @click="handleClose">取消</el-button>
<el-button @click="doSubmit" type="primary" :loading="submitting">确定</el-button>
</div>
<drawer-user-scope
@group_change="getActivityGroup"
ref="drawerUserScope"
:group_id.sync="formData.activityGroupId"
></drawer-user-scope>
</el-dialog>
`,
components: {
"drawer-user-scope": httpVueLoader("/components/module/activity/DrawerUserScope.vue")
},
data() {
// 日期验证器
const validateDateRange = (rule, value, callback) => {
@@ -70,6 +106,7 @@ const formEdit = {
visible: false,
submitting: false,
formData: {},
activityGroupList: [],
formRules: {
projectName: [
{ required: true, message: "请输入事项名称", trigger: "blur" },
@@ -106,6 +143,10 @@ const formEdit = {
})
}
},
async getActivityGroup() {
const { data } = await $.get("/platform/activity/basic/scope/getActivityUserScopeGroup")
this.activityGroupList = data
},
async doSubmit() {
const valid = await this.$refs['form'].validate()
@@ -131,5 +172,8 @@ const formEdit = {
this.submitting = false;
})
}
},
async created() {
await this.getActivityGroup()
}
}
@@ -16,7 +16,7 @@ layout("/layouts/platform.html"){
<el-table :data="tableData" @sort-change="pageOrder" style="width: 100%">
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"></el-table-column>
<el-table-column prop="loginName" label="工号"></el-table-column>
<el-table-column prop="userName" label="职工姓名"></el-table-column>
<el-table-column prop="userName" label="姓名"></el-table-column>
<el-table-column prop="sex" label="性别"></el-table-column>
<el-table-column prop="age" label="年龄"></el-table-column>
<el-table-column prop="unionName" label="所属工会"></el-table-column>