This commit is contained in:
2025-12-30 18:50:36 +08:00
parent 088418ec4d
commit 9c84ac6a6d
25 changed files with 349 additions and 219 deletions
@@ -58,6 +58,10 @@ RoleConstant {
TEACHER_CONGRESS_DELEGATION_CONTACT("教代会代表团联络人"),
TEACHER_CONGRESS_DELEGATION_QUALIFICATION("教代会代表资格审查员"),
TEACHER_CONGRESS_PREPARATION_LEADERSHIP_GROUP_DIRECTOR("筹备领导小组主任"),
TEACHER_CONGRESS_PREPARATION_LEADERSHIP_GROUP_MEMBER("筹备领导小组成员"),
PROPOSAL_COMMITTEE_DIRECTOR("提案委员会主任"),
PROPOSAL_COMMITTEE_DEPUTY_DIRECTOR("提案委员会副主任"),
PROPOSAL_BRANCH_SCHOOL_LEADER("提案分管校领导"),
@@ -95,6 +95,7 @@ public class ActivityDeclareSchoolUnionController {
$condition
""");
Cnd cnd = Cnd.NEW();
pageParam.buildSearch(cnd, "info.");
cnd.and("t.taskName", "=", "81428a9b-63c0-44b8-a28c-17d282c2cc8e");
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
cnd.andEX("year(info.applyTime)", "=", pageParam.getYear());
@@ -1,9 +1,11 @@
package com.budwk.app.zhgh.activity.declarereimbursement.reimbursement.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.lang.Dict;
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.exception.BaseException;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.result.Result;
@@ -19,6 +21,7 @@ import io.swagger.annotations.ApiOperation;
import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls;
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.IocBean;
import org.nutz.json.Json;
@@ -105,10 +108,19 @@ public class ActivityReimbursementDeputySchoolUnionController {
$condition
""");
Cnd cnd = Cnd.NEW();
pageParam.buildSearch(cnd, "info.");
if (StrUtil.isNotBlank(pageParam.getSearchKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.orLike("info.userName", pageParam.getSearchKeyword());
seg.orLike("info.loginName", pageParam.getSearchKeyword());
cnd.and(seg);
}
cnd.andEX("info.unionId", "=", pageParam.getUnionId());
cnd.andEX("info.clubId", "=", pageParam.getClubId());
cnd.and("t.taskName", "=", "f9b8379f-f348-4985-ba58-b6ba28deb9af");
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
if (!StpUtil.hasRole(RoleConstant.SYSADMIN.name())) {
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
}
cnd.andEX("outlay.budgetReimburseType", "=", pageParam.getBudgetReimburseType());
cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource());
cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode());
@@ -1,7 +1,9 @@
package com.budwk.app.zhgh.activity.declarereimbursement.reimbursement.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.stp.StpUtil;
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.result.Result;
import com.budwk.app.base.utils.PageUtil;
@@ -13,6 +15,7 @@ import io.swagger.annotations.ApiOperation;
import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls;
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.IocBean;
import org.nutz.lang.util.NutMap;
@@ -93,11 +96,19 @@ public class ActivityReimbursementSchoolFinanceController {
$condition
""");
Cnd cnd = Cnd.NEW();
pageParam.buildSearch(cnd, "info.");
if (StrUtil.isNotBlank(pageParam.getSearchKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.orLike("info.userName", pageParam.getSearchKeyword());
seg.orLike("info.loginName", pageParam.getSearchKeyword());
cnd.and(seg);
}
cnd.andEX("info.unionId", "=", pageParam.getUnionId());
cnd.andEX("info.clubId", "=", pageParam.getClubId());
cnd.and("t.taskName", "=", "ba496ac7-abb3-4e6d-8c8e-212863a0d6ee");
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType());
if (!StpUtil.hasRole(RoleConstant.SYSADMIN.name())) {
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
}
cnd.andEX("outlay.budgetReimburseType", "=", pageParam.getBudgetReimburseType());
cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource());
cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode());
cnd.andEX("YEAR(info.applyTime)", "=", pageParam.getYear());
@@ -1,7 +1,9 @@
package com.budwk.app.zhgh.activity.declarereimbursement.reimbursement.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.stp.StpUtil;
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.result.Result;
import com.budwk.app.base.utils.PageUtil;
@@ -13,6 +15,7 @@ import io.swagger.annotations.ApiOperation;
import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls;
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.IocBean;
import org.nutz.lang.util.NutMap;
@@ -101,10 +104,19 @@ public class ActivityReimbursementSchoolPrincipalController {
$condition
""");
Cnd cnd = Cnd.NEW();
pageParam.buildSearch(cnd, "info.");
if (StrUtil.isNotBlank(pageParam.getSearchKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.orLike("info.userName", pageParam.getSearchKeyword());
seg.orLike("info.loginName", pageParam.getSearchKeyword());
cnd.and(seg);
}
cnd.andEX("info.unionId", "=", pageParam.getUnionId());
cnd.andEX("info.clubId", "=", pageParam.getClubId());
cnd.and("t.taskName", "=", "6dd2e8b3-fd0d-4b35-bb2a-1eef227cba96");
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
if (!StpUtil.hasRole(RoleConstant.SYSADMIN.name())) {
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
}
cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType());
cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource());
cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode());
@@ -2,9 +2,11 @@ package com.budwk.app.zhgh.activity.declarereimbursement.reimbursement.controlle
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.lang.Dict;
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.result.Result;
import com.budwk.app.base.utils.PageUtil;
@@ -21,6 +23,7 @@ import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
@@ -49,7 +52,6 @@ public class ActivityReimbursementSchoolUnionController {
private ActivityReimbursementService activityReimbursementService;
@Inject
private ActivityReimbursementSchoolUnionService activityReimbursementSchoolUnionService;
@@ -117,11 +119,20 @@ public class ActivityReimbursementSchoolUnionController {
$condition
""");
Cnd cnd = Cnd.NEW();
pageParam.buildSearch(cnd, "info.");
if (StrUtil.isNotBlank(pageParam.getSearchKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.orLike("info.userName", pageParam.getSearchKeyword());
seg.orLike("info.loginName", pageParam.getSearchKeyword());
cnd.and(seg);
}
cnd.andEX("info.unionId", "=", pageParam.getUnionId());
cnd.andEX("info.clubId", "=", pageParam.getClubId());
cnd.and("t.taskName", "=", "47bfdf53-288c-4352-a403-0653483b54eb");
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
cnd.andEX("outlay.budgetReimburseType", "=" , pageParam.getBudgetReimburseType());
if (!StpUtil.hasRole(RoleConstant.SYSADMIN.name())) {
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
}
cnd.andEX("outlay.budgetReimburseType", "=", pageParam.getBudgetReimburseType());
cnd.andEX("info.outlayManageSource", "=", pageParam.getOutlayManageSource());
cnd.andEX("info.activityReimbursementMode", "=", pageParam.getActivityReimbursementMode());
cnd.andEX("YEAR(info.applyTime)", "=", pageParam.getYear());
@@ -148,7 +159,7 @@ public class ActivityReimbursementSchoolUnionController {
@SLog(tag = "报销", msg = "校工会审核了一条记录")
@SaCheckPermission("activityReimbursement.schoolUnion")
public Result doReview(@Param("data") String param, String id) {
activityReimbursementSchoolUnionService.doReview( param, id);
activityReimbursementSchoolUnionService.doReview(param, id);
return Result.success();
}
}
@@ -15,6 +15,7 @@ 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.lang.Lang;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
@@ -73,6 +74,9 @@ public class ActivitySportsReadingController {
public Result pageData(String id, String activityLevel) {
ActivityBasicUnit basicUnit = dao.fetch(ActivityBasicUnit.class, Cnd.where("id", "=", SecurityUtil.getUnitId()));
ActivitySchool activitySchool = dao.fetch(ActivitySchool.class, id);
if (Lang.isEmpty(activitySchool)) {
return Result.error("暂无活动");
}
Cnd cnd = Cnd.NEW();
Sql sql = Sqls.create("""
@@ -146,7 +146,7 @@ public class ExecutiveCommitteeDelegationTwoPushController {
""");
sql.setCondition(cnd);
List<NutMap> userData = baseService.listMap(sql);
return Result.success(Map.of("userData", userData, "userValue", userValue,"delegationQuotaCount",config.getDelegationQuotaCount()));
return Result.success(Map.of("userData", userData, "userValue", userValue,"committeeQuotaCount",config.getCommitteeQuotaCount()));
}
@At
@@ -1,6 +1,8 @@
package com.budwk.app.zhgh.democratic.proposal.controller.query;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.result.Result;
import com.budwk.app.sys.models.Sys_dict;
import com.budwk.app.sys.services.SysDictService;
@@ -8,12 +10,14 @@ import com.budwk.app.zhgh.democratic.proposal.service.common.ProposalCommonServi
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
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.json.Json;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
@@ -94,24 +98,33 @@ public class ProposalQueryChartController {
@SaCheckPermission("proposal.query.chart")
public Result feedBackScoreData(String sessionId) {
Sql sql = Sqls.create("""
WITH LatestTask AS ( SELECT processInstanceId, MAX( endOn ) AS maxEndOn FROM bpm_process_task WHERE processTaskNodeCode = 100 AND taskStatus = 'COMPLETE' GROUP BY processInstanceId )\s
SELECT
JSON_UNQUOTE(JSON_EXTRACT( feedBackScoreTask.extVariable, '$.feedBackScore' )) AS feedBackScore
info.*,
t.taskName,
t.variable
FROM
bpm_process_instance inst
INNER JOIN proposal_info info ON info.id = inst.processInstanceBusinessId
LEFT JOIN LatestTask lt ON lt.processInstanceId = inst.id
LEFT JOIN bpm_process_task feedBackScoreTask ON feedBackScoreTask.processInstanceId = inst.id
AND feedBackScoreTask.processTaskNodeCode = 100
AND feedBackScoreTask.taskStatus = 'COMPLETE'
AND feedBackScoreTask.endOn = lt.maxEndOn
""");
proposal_info info
LEFT JOIN wf_process_instance ins ON ins.businessNo = info.id
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id
AND t.taskState = 20 and t.taskName='feedback'
where ins.state=20 and info.sessionId=@sessionId
GROUP BY info.id
""").setParam("sessionId", sessionId);
List<NutMap> list = proposalCommonService.listMap(sql);
List<Sys_dict> dicts = sysDictService.getSubListByCode("PROPOSAL_FEEDBACK_UNIT");
List<Sys_dict> dicts = sysDictService.getSubListByCode("PROPOSAL_FEEDBACK");
List<NutMap> result = dicts.stream().map(v -> {
long count = list.stream().filter(v1 -> v1.getString("feedBackScore","").equals(v.getCode())).count();
long count = list.stream().filter(v1 -> {
String variableStr = v1.getString("variable", "");
NutMap variable = Strings.isBlank(variableStr)
? new NutMap()
: Json.fromJson(NutMap.class, variableStr);
String feedBackScore = variable.getString("tf_feedback", "");
return feedBackScore.equals(v.getCode());
}).count();
return NutMap.NEW().addv("name", v.getName()).addv("count", count);
}).toList();
@@ -124,31 +137,61 @@ public class ProposalQueryChartController {
public Result stateData(String sessionId) {
Sql sql = Sqls.create("""
SELECT
nd.nodeName as name,
(
SELECT
count( DISTINCT(task.processInstanceId) )
FROM
bpm_process_task task
LEFT JOIN bpm_process_instance inst ON inst.id = task.processInstanceId
LEFT JOIN proposal_info info ON info.id = inst.processInstanceBusinessId
WHERE
task.processTaskNodeId = nd.id AND task.taskStatus in ('ACTIVE','AUTO_COMPLETE') AND
task.delFlag = 0 AND info.sessionId = @sessionId
) AS count
content
FROM
bpm_process_node_define nd
LEFT JOIN bpm_process_define d ON d.id = nd.processDefineId
wf_process_design
WHERE
d.`code` = 'PROPOSAL'
GROUP BY
nd.id
ORDER BY
nd.nodeCode
NAME = 'JDHTA'
""");
sql.setParam("sessionId", sessionId);
List<NutMap> list = proposalCommonService.listMap(sql);
return Result.success(list);
sql.setCallback(Sqls.callback.map());
dao.execute(sql);
NutMap result = (NutMap) sql.getResult();
NutMap contentMap = Strings.isBlank(result.getString("content"))
? new NutMap()
: Json.fromJson(NutMap.class, result.getString("content"));
List<NutMap> nodes = contentMap.getAsList("nodes", NutMap.class);
Sql sqlProposal = Sqls.create("""
SELECT
t.taskName,
ins.state instanceState,
t.displayName curTaskName
FROM
proposal_info info
LEFT JOIN wf_process_instance ins ON ins.businessNo = info.id
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id
AND t.taskState = 10
WHERE
info.sessionId = @sessionId and ins.state!=45
GROUP BY
info.id
""").setParam("sessionId", sessionId);
List<NutMap> proposalList = proposalCommonService.listMap(sqlProposal);
nodes.forEach(n -> {
if (ObjectUtil.isNotEmpty(n.getString("text"))) {
NutMap nutMap = Json.fromJson(NutMap.class, n.getString("text"));
n.put("name", nutMap.getString("value"));
if (n.getString("id").equals("9940d441-dc44-4ad8-a548-858a8c71e48d")) {
long count = proposalList.stream().filter(p -> StrUtil.isBlank(p.getString("taskName"))).count();
n.put("count", count);
} else if (n.getString("id").equals("master_reply")) {
long count = proposalList.stream().filter(p -> StrUtil.isNotBlank(p.getString("taskName")) && List.of("opinion_master_reply", "master_reply").contains(p.getString("taskName"))).count();
n.put("count", count);
} else {
long count = proposalList.stream().filter(p -> n.getString("id").equals(p.getString("taskName"))).count();
n.put("count", count);
}
}
});
nodes.removeIf(v -> "开始".equals(v.getString("name")));
nodes.removeIf(v -> "opinion_master_reply".equals(v.getString("id")));
return Result.success(nodes);
}
}
@@ -100,6 +100,33 @@ public class TeacherCongressInstitutionUserServiceImpl extends BaseServiceImpl<T
}
}
// 🔄 设置教代会筹备领导小组
if (institution.getCode().contains("TEACHER_CONGRESS_INSTITUTION_PREPARATION_LEADERSHIP_GROUP")) {
Sys_role sysRole = null;
if (identity.equals("主任")) {
sysRole = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_PREPARATION_LEADERSHIP_GROUP_DIRECTOR);
} else if (identity.equals("成员")) {
sysRole = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_PREPARATION_LEADERSHIP_GROUP_MEMBER);
}
if (sysRole == null) {
throw new BaseException("请选择正确的角色");
}
int existsRole = dao().count(Sys_user_role.class, Cnd.where(Sys_user_role::getUserId, "=", userId)
.and(Sys_user_role::getTcSessionId, "=", sessionId)
.and(Sys_user_role::getRoleId, "=", sysRole.getId())
);
if (existsRole == 0) {
Sys_user_role insertSysUserRole = new Sys_user_role();
insertSysUserRole.setRoleId(sysRole.getId());
insertSysUserRole.setUserId(userId);
insertSysUserRole.setTcSessionId(sessionId);
dao().insert(insertSysUserRole);
sysRoleService.clearCache();
sysUserService.clearCache();
}
}
}
@Override
@@ -126,6 +153,25 @@ public class TeacherCongressInstitutionUserServiceImpl extends BaseServiceImpl<T
sysRoleService.clearCache();
sysUserService.clearCache();
}
if (institution.getName().contains("筹备领导小组")) {
Sys_role sysRole = null;
if (institutionUser.getIdentity().equals("主任")) {
sysRole = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_PREPARATION_LEADERSHIP_GROUP_DIRECTOR);
} else if (institutionUser.getIdentity().equals("成员")) {
sysRole = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_PREPARATION_LEADERSHIP_GROUP_MEMBER);
}
if (sysRole == null) {
throw new BaseException("请选择正确的角色");
}
dao().clear(Sys_user_role.class, Cnd.where(Sys_user_role::getUserId, "=", institutionUser.getUserId())
.and(Sys_user_role::getTcSessionId, "=", institutionUser.getSessionId())
.and(Sys_user_role::getRoleId, "=", sysRole.getId())
);
sysRoleService.clearCache();
sysUserService.clearCache();
}
dao().delete(institutionUser);
}
}
@@ -363,9 +363,9 @@ layout("/layouts/platform.html"){
data() {
const self = this
const validateName = function (rule, value, callback) {
const regex = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{1,49}$")
const regex = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{1,100}$")
if (!regex.test(value)) {
callback(new Error("角色标识以字母开头2-50字,允许使用字母/数字/下划线"))
callback(new Error("角色标识以字母开头2-100字,允许使用字母/数字/下划线"))
} else {
callback()
}
@@ -173,7 +173,7 @@ const ACTIVITY_CULTURE_INFO_MANAGE = {
{prop: "time2", label: "报名日期", width: "300"},
{prop: "applyTime", label: "创建时间", sortable: true},
{prop: "isUnseal", label: "是否开启"},
],
],
url: ""
}
},
@@ -201,12 +201,12 @@ const ACTIVITY_CULTURE_INFO_MANAGE = {
this.onView(row)
} else if (type === "edit") {
this.openEdit(row)
}else if (type === "Revoke") {
} else if (type === "Revoke") {
this.onRevoke(row)
} else if (type === "delete") {
this.doDelete(row)
} else if (type === "openCode") {
this.url = location.origin + "/platform/h5/activity/culture/applyUser"
this.url = location.origin + "/platform/h5/activity/culture/signUp?id=" + row.id + "&groupId=" + row.groupId
this.codeDialogVisible = true
} else if (type === "export") {
commonUtil.pjaxPush("/platform/activity/info/mange/export?id=" + row.id)
@@ -222,7 +222,7 @@ const ACTIVITY_CULTURE_INFO_MANAGE = {
})
},
onView(row) {
this.$refs.guava.view(()=>{
this.$refs.guava.view(() => {
this.$refs.infoActivity.onOpen(row)
})
},
@@ -31,13 +31,13 @@ layout("/layouts/platform.html"){
</el-select>
</search-item>
<search-item label="所属单位">
<!--<search-item label="所属单位">
<el-select clearable filterable placeholder="请选择所属单位"
style="width: 100%;" v-model="pageForm.unitId">
<el-option :label="item.name" :value="item.id"
v-for="item in units"></el-option>
</el-select>
</search-item>
</search-item>-->
</template>
</search>
</el-card>
@@ -201,11 +201,7 @@ layout("/layouts/platform.html"){
},
async created() {
this.pageData()
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.clubs = await this.$businessTool.listClub()
} else {
this.clubs = await this.$businessTool.listClub()
}
this.clubs = await this.$businessTool.listCLubByRole()
this.activityDeclareReimbursementList = await this.$businessTool.getEnumOptions("ActivityDeclareReimbursement")
}
})
@@ -30,14 +30,21 @@ layout("/layouts/platform.html"){
v-for="item in unions"></el-option>
</el-select>
</search-item>
<search-item label="所属协会">
<el-select clearable filterable placeholder="所属协会"
style="width: 100%;" v-model="pageForm.clubId">
<el-option :label="item.clubName" :value="item.id"
v-for="item in clubs"></el-option>
</el-select>
</search-item>
<search-item label="所属单位">
<!--<search-item label="所属单位">
<el-select clearable filterable placeholder="请选择所属单位"
style="width: 100%;" v-model="pageForm.unitId">
<el-option :label="item.name" :value="item.id"
v-for="item in units"></el-option>
</el-select>
</search-item>
</search-item>-->
</template>
</search>
</el-card>
@@ -222,11 +229,8 @@ layout("/layouts/platform.html"){
},
async created() {
this.pageData()
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.unions = await this.$businessTool.listUnion()
} else {
this.unions = await this.$businessTool.listUnion(this.$store.state.user.union.id)
}
this.unions = await this.$businessTool.listUnion()
this.clubs = await this.$businessTool.listCLubByRole()
this.activityDeclareReimbursementList = await this.$businessTool.getEnumOptions("ActivityDeclareReimbursement")
}
})
@@ -30,14 +30,21 @@ layout("/layouts/platform.html"){
v-for="item in unions"></el-option>
</el-select>
</search-item>
<search-item label="所属协会">
<el-select clearable filterable placeholder="所属协会"
style="width: 100%;" v-model="pageForm.clubId">
<el-option :label="item.clubName" :value="item.id"
v-for="item in clubs"></el-option>
</el-select>
</search-item>
<search-item label="所属单位">
<!-- <search-item label="所属单位">
<el-select clearable filterable placeholder="请选择所属单位"
style="width: 100%;" v-model="pageForm.unitId">
<el-option :label="item.name" :value="item.id"
v-for="item in units"></el-option>
</el-select>
</search-item>
</search-item>-->
</template>
</search>
</el-card>
@@ -222,11 +229,8 @@ layout("/layouts/platform.html"){
},
async created() {
this.pageData()
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.unions = await this.$businessTool.listUnion()
} else {
this.unions = await this.$businessTool.listUnion(this.$store.state.user.union.id)
}
this.unions = await this.$businessTool.listUnion()
this.clubs = await this.$businessTool.listCLubByRole()
this.activityDeclareReimbursementList = await this.$businessTool.getEnumOptions("ActivityDeclareReimbursement")
}
})
@@ -36,26 +36,25 @@ layout("/layouts/platform.html"){
placeholder="请选择预算条目"></dict-select>
</search-item>
<template v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_ADMIN')">
<search-item label="所属工会">
<el-select @change="flushUnits" @clear="flushUnits" clearable
filterable
placeholder="请选择所属工会"
style="width: 100%;"
v-model="pageForm.unionId">
<el-option :label="item.name" :value="item.id"
v-for="item in unions"></el-option>
</el-select>
</search-item>
<search-item label="所属工会">
<el-select clearable
filterable
placeholder="请选择所属工会"
style="width: 100%;"
v-model="pageForm.unionId">
<el-option :label="item.name" :value="item.id"
v-for="item in unions"></el-option>
</el-select>
</search-item>
<search-item label="所属协会">
<el-select clearable filterable placeholder="所属协会"
style="width: 100%;" v-model="pageForm.clubId">
<el-option :label="item.clubName" :value="item.id"
v-for="item in clubs"></el-option>
</el-select>
</search-item>
<search-item label="所属单位">
<el-select clearable filterable placeholder="请选择所属单位"
style="width: 100%;" v-model="pageForm.unitId">
<el-option :label="item.name" :value="item.id"
v-for="item in units"></el-option>
</el-select>
</search-item>
</template>
</search>
</el-card>
@@ -240,14 +239,6 @@ layout("/layouts/platform.html"){
})
})
},
async flushUnits() {
this.$set(this.pageForm, "unitId", null)
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.units = await this.$businessTool.listUnit(this.pageForm.unionId)
} else {
this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id)
}
},
getActivityTypeName(type) {
const data = this.activityDeclareReimbursementList.find(item => item.name === type)
return data ? data.typeName : ""
@@ -255,11 +246,8 @@ layout("/layouts/platform.html"){
},
async created() {
this.pageData()
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.unions = await this.$businessTool.listUnion()
} else {
this.unions = await this.$businessTool.listUnion(this.$store.state.user.union.id)
}
this.unions = await this.$businessTool.listUnion()
this.clubs = await this.$businessTool.listCLubByRole()
this.activityDeclareReimbursementList = await this.$businessTool.getEnumOptions("ActivityDeclareReimbursement")
}
})
@@ -36,26 +36,25 @@ layout("/layouts/platform.html"){
placeholder="请选择预算条目"></dict-select>
</search-item>
<template v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_ADMIN')">
<search-item label="所属工会">
<el-select @change="flushUnits" @clear="flushUnits" clearable
filterable
placeholder="请选择所属工会"
style="width: 100%;"
v-model="pageForm.unionId">
<el-option :label="item.name" :value="item.id"
v-for="item in unions"></el-option>
</el-select>
</search-item>
<search-item label="所属工会">
<el-select clearable
filterable
placeholder="请选择所属工会"
style="width: 100%;"
v-model="pageForm.unionId">
<el-option :label="item.name" :value="item.id"
v-for="item in unions"></el-option>
</el-select>
</search-item>
<search-item label="所属协会">
<el-select clearable filterable placeholder="所属协会"
style="width: 100%;" v-model="pageForm.clubId">
<el-option :label="item.clubName" :value="item.id"
v-for="item in clubs"></el-option>
</el-select>
</search-item>
<search-item label="所属单位">
<el-select clearable filterable placeholder="请选择所属单位"
style="width: 100%;" v-model="pageForm.unitId">
<el-option :label="item.name" :value="item.id"
v-for="item in units"></el-option>
</el-select>
</search-item>
</template>
</search>
</el-card>
@@ -238,14 +237,6 @@ layout("/layouts/platform.html"){
})
})
},
async flushUnits() {
this.$set(this.pageForm, "unitId", null)
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.units = await this.$businessTool.listUnit(this.pageForm.unionId)
} else {
this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id)
}
},
getActivityTypeName(type) {
const data = this.activityDeclareReimbursementList.find(item => item.name === type)
return data ? data.typeName : ""
@@ -253,11 +244,8 @@ layout("/layouts/platform.html"){
},
async created() {
this.pageData()
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.unions = await this.$businessTool.listUnion()
} else {
this.unions = await this.$businessTool.listUnion(this.$store.state.user.union.id)
}
this.unions = await this.$businessTool.listUnion()
this.clubs = await this.$businessTool.listCLubByRole()
this.activityDeclareReimbursementList = await this.$businessTool.getEnumOptions("ActivityDeclareReimbursement")
}
})
@@ -36,26 +36,26 @@ layout("/layouts/platform.html"){
placeholder="请选择预算条目"></dict-select>
</search-item>
<template v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_ADMIN')">
<search-item label="所属工会">
<el-select @change="flushUnits" @clear="flushUnits" clearable
filterable
placeholder="请选择所属工会"
style="width: 100%;"
v-model="pageForm.unionId">
<el-option :label="item.name" :value="item.id"
v-for="item in unions"></el-option>
</el-select>
</search-item>
<search-item label="所属工会">
<el-select clearable
filterable
placeholder="请选择所属工会"
style="width: 100%;"
v-model="pageForm.unionId">
<el-option :label="item.name" :value="item.id"
v-for="item in unions"></el-option>
</el-select>
</search-item>
<search-item label="所属协会">
<el-select clearable filterable placeholder="所属协会"
style="width: 100%;" v-model="pageForm.clubId">
<el-option :label="item.clubName" :value="item.id"
v-for="item in clubs"></el-option>
</el-select>
</search-item>
<search-item label="所属单位">
<el-select clearable filterable placeholder="请选择所属单位"
style="width: 100%;" v-model="pageForm.unitId">
<el-option :label="item.name" :value="item.id"
v-for="item in units"></el-option>
</el-select>
</search-item>
</template>
</search>
</el-card>
@@ -238,14 +238,6 @@ layout("/layouts/platform.html"){
})
})
},
async flushUnits() {
this.$set(this.pageForm, "unitId", null)
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.units = await this.$businessTool.listUnit(this.pageForm.unionId)
} else {
this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id)
}
},
getActivityTypeName(type) {
const data = this.activityDeclareReimbursementList.find(item => item.name === type)
return data ? data.typeName : ""
@@ -253,11 +245,8 @@ layout("/layouts/platform.html"){
},
async created() {
this.pageData()
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.unions = await this.$businessTool.listUnion()
} else {
this.unions = await this.$businessTool.listUnion(this.$store.state.user.union.id)
}
this.unions = await this.$businessTool.listUnion()
this.clubs = await this.$businessTool.listCLubByRole()
this.activityDeclareReimbursementList = await this.$businessTool.getEnumOptions("ActivityDeclareReimbursement")
}
})
@@ -35,26 +35,25 @@ layout("/layouts/platform.html"){
placeholder="请选择预算条目"></dict-select>
</search-item>
<template v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_ADMIN')">
<search-item label="所属工会">
<el-select @change="flushUnits" @clear="flushUnits" clearable
filterable
placeholder="请选择所属工会"
style="width: 100%;"
v-model="pageForm.unionId">
<el-option :label="item.name" :value="item.id"
v-for="item in unions"></el-option>
</el-select>
</search-item>
<search-item label="所属工会">
<el-select clearable
filterable
placeholder="请选择所属工会"
style="width: 100%;"
v-model="pageForm.unionId">
<el-option :label="item.name" :value="item.id"
v-for="item in unions"></el-option>
</el-select>
</search-item>
<search-item label="所属协会">
<el-select clearable filterable placeholder="所属协会"
style="width: 100%;" v-model="pageForm.clubId">
<el-option :label="item.clubName" :value="item.id"
v-for="item in clubs"></el-option>
</el-select>
</search-item>
<search-item label="所属单位">
<el-select clearable filterable placeholder="请选择所属单位"
style="width: 100%;" v-model="pageForm.unitId">
<el-option :label="item.name" :value="item.id"
v-for="item in units"></el-option>
</el-select>
</search-item>
</template>
</search>
</el-card>
@@ -238,14 +237,6 @@ layout("/layouts/platform.html"){
})
})
},
async flushUnits() {
this.$set(this.pageForm, "unitId", null)
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.units = await this.$businessTool.listUnit(this.pageForm.unionId)
} else {
this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id)
}
},
getActivityTypeName(type) {
const data = this.activityDeclareReimbursementList.find(item => item.name === type)
return data ? data.typeName : ""
@@ -253,11 +244,8 @@ layout("/layouts/platform.html"){
},
async created() {
this.pageData()
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
this.unions = await this.$businessTool.listUnion()
} else {
this.unions = await this.$businessTool.listUnion(this.$store.state.user.union.id)
}
this.unions = await this.$businessTool.listUnion()
this.clubs = await this.$businessTool.listCLubByRole()
this.activityDeclareReimbursementList = await this.$businessTool.getEnumOptions("ActivityDeclareReimbursement")
}
})
@@ -36,7 +36,7 @@ const DELEGATION_TWO_PUSH_FORMAL_DIALOG = {
</div>
</el-transfer>
<span slot="footer">
<span style="color:red;font-size: 15px; display:flex;text-align: right;">投票名额:{{delegationQuotaCount}}个</span>
<span style="color:red;font-size: 15px; display:flex;text-align: right;">投票名额:{{committeeQuotaCount}}个</span>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="onConfirm">确 定</el-button>
@@ -53,7 +53,7 @@ const DELEGATION_TWO_PUSH_FORMAL_DIALOG = {
rightChecked: [],
attendanceRightChecked: [],
teacherMeetId: null,
delegationQuotaCount: 0
committeeQuotaCount: 0
}
},
methods: {
@@ -70,7 +70,7 @@ const DELEGATION_TWO_PUSH_FORMAL_DIALOG = {
data.userData.forEach(v => {
this.userData.push({userId: v.userId, ...v})
})
this.delegationQuotaCount = data.delegationQuotaCount
this.committeeQuotaCount = data.committeeQuotaCount
this.dialogVisible = true
} else {
this.$message.error(msg)
@@ -112,10 +112,10 @@ layout("/layouts/platform.html"){
xField: "typeName",
yField: "count",
meta: {
type: {
typeName: {
alias: "类别"
},
sales: {
count: {
alias: "数量"
}
},
@@ -145,7 +145,7 @@ layout("/layouts/platform.html"){
yField: "count",
seriesField: "type",
meta: {
num: {
count: {
alias: "数量",
min: 0
}
@@ -194,6 +194,11 @@ layout("/layouts/platform.html"){
data: res.data,
xField: "name",
yField: "count",
meta: {
count: {
alias: '数量',
},
},
xAxis: {
line: null,
tickLine: null,
@@ -14,6 +14,20 @@ layout("/layouts/platform.html"){
:key="item.id"></el-option>
</el-select>
</search-item>
<search-item label="所属工会"
v-if="$auth.hasRole('SYSADMIN')||$auth.hasRole('SCHOOL_UNION_ADMIN')">
<el-select
@change="doSearch"
clearable
filterable
placeholder="报名所属分工会"
style="width: 100%"
v-model="pageForm.unionId"
>
<el-option :key="item.id" :label="item.name" :value="item.id"
v-for="item in unionOptions"></el-option>
</el-select>
</search-item>
</search>
</el-card>
@@ -154,7 +168,7 @@ layout("/layouts/platform.html"){
data() {
return {
sessionOptions: [],
units: [],
unionOptions: [],
pageForm: {
isFormalOrAttendance: "全部",
unionId: "",
@@ -263,11 +277,6 @@ layout("/layouts/platform.html"){
})
})
},
listUnion() {
this.$businessTool.listUnit().then((res) => {
this.units = res
})
},
listSession() {
this.$axios.post("/platform/teacherCongress/common/listSession").then((res) => {
if (res.code === 0) {
@@ -281,7 +290,7 @@ layout("/layouts/platform.html"){
}
},
async created() {
this.listUnion()
this.$businessTool.listUnion().then((res) => (this.unionOptions = res))
this.listSession()
}
})
@@ -2,7 +2,7 @@
layout("/layouts/platform.html"){
#-->
<div id="app">
<guava ref="guaga">
<guava ref="guava">
<el-card shadow="never">
<common-query ref="commonQueryRef" @search="search"></common-query>
</el-card>
@@ -767,7 +767,22 @@ layout("/layouts/platform_h5.html"){
}
},
created() {
this.init()
this.$axios.post('/platform/activity/basic/scope/getScopeUser', {activityGroupId: Number(GetQueryString("groupId"))}).then(res => {
if (res.code === 0) {
if (res.data > 0) {
this.init()
} else {
this.$dialog.alert({
title: '标题',
message: '您没有权限参加此活动',
confirmButtonText: "返回首页"
}).then(() => {
this.$pjaxReplace("/platform/home")
});
}
}
})
}
})