commit
This commit is contained in:
+13
-7
@@ -1,6 +1,7 @@
|
|||||||
package com.budwk.app.zhgh.club.controller.apply;
|
package com.budwk.app.zhgh.club.controller.apply;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
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.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
@@ -63,14 +64,19 @@ public class ClubUserJoinApplyController {
|
|||||||
@Inject
|
@Inject
|
||||||
private FlowCommonService flowCommonService;
|
private FlowCommonService flowCommonService;
|
||||||
|
|
||||||
@At("")
|
@At("/")
|
||||||
@SaCheckPermission("club.join.apply")
|
@SaCheckPermission("club.join.apply")
|
||||||
@Ok("beetl:/platform/zhgh/club/join/apply/index.html")
|
@Ok("beetl:/platform/zhgh/club/join/apply/index.html")
|
||||||
public void index() {}
|
public void index() {}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@SaCheckPermission("h5.club.join.apply")
|
||||||
|
@Ok("beetl:/platform/zhghh5/club/apply/index.html")
|
||||||
|
public void h5Index() {}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("详情")
|
@ApiOperation("详情")
|
||||||
@SaCheckPermission("club.join.apply")
|
@SaCheckPermission(value = {"club.join.apply", "h5.club.join.apply"}, mode = SaMode.OR)
|
||||||
public Result info(@Valid String id) {
|
public Result info(@Valid String id) {
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
@@ -97,7 +103,7 @@ public class ClubUserJoinApplyController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("保存申请")
|
@ApiOperation("保存申请")
|
||||||
@SaCheckPermission("condolence.apply")
|
@SaCheckPermission(value = {"club.join.apply", "h5.club.join.apply"}, mode = SaMode.OR)
|
||||||
@SLog(tag = "协会管理系统-申请入会", msg = "保存协会入会")
|
@SLog(tag = "协会管理系统-申请入会", msg = "保存协会入会")
|
||||||
public Result save(@Param("data") ClubUserApply clubUserApply) {
|
public Result save(@Param("data") ClubUserApply clubUserApply) {
|
||||||
clubUserApply.setRoleCode(RoleConstant.CLUB_MEMBER.name());
|
clubUserApply.setRoleCode(RoleConstant.CLUB_MEMBER.name());
|
||||||
@@ -109,7 +115,7 @@ public class ClubUserJoinApplyController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("提交")
|
@ApiOperation("提交")
|
||||||
@SaCheckPermission("club.join.apply")
|
@SaCheckPermission(value = {"club.join.apply", "h5.club.join.apply"}, mode = SaMode.OR)
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@SLog(tag = "协会管理系统-申请入会", msg = "申请协会入会")
|
@SLog(tag = "协会管理系统-申请入会", msg = "申请协会入会")
|
||||||
public Result submit(ClubUserApply clubUserApply) {
|
public Result submit(ClubUserApply clubUserApply) {
|
||||||
@@ -144,7 +150,7 @@ public class ClubUserJoinApplyController {
|
|||||||
@At
|
@At
|
||||||
@ApiOperation("重新提交申请")
|
@ApiOperation("重新提交申请")
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@SaCheckPermission("club.join.apply")
|
@SaCheckPermission(value = {"club.join.apply", "h5.club.join.apply"}, mode = SaMode.OR)
|
||||||
public Result submitAgain(@Param("data") ClubUserApply clubUserApply, @Param("taskId") Long taskId) {
|
public Result submitAgain(@Param("data") ClubUserApply clubUserApply, @Param("taskId") Long taskId) {
|
||||||
dao.insertOrUpdate(clubUserApply);
|
dao.insertOrUpdate(clubUserApply);
|
||||||
|
|
||||||
@@ -158,7 +164,7 @@ public class ClubUserJoinApplyController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("校验是否申请过协会")
|
@ApiOperation("校验是否申请过协会")
|
||||||
@SaCheckPermission("club.join.apply")
|
@SaCheckPermission(value = {"club.join.apply", "h5.club.join.apply"}, mode = SaMode.OR)
|
||||||
public Result checkApplyClub(@Valid String clubId) {
|
public Result checkApplyClub(@Valid String clubId) {
|
||||||
ClubUserApply userApply = dao.fetch(ClubUserApply.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).and("clubId", "=", clubId).and("mode", "=", 1).desc(ClubUserApply::getApplyDate));
|
ClubUserApply userApply = dao.fetch(ClubUserApply.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).and("clubId", "=", clubId).and("mode", "=", 1).desc(ClubUserApply::getApplyDate));
|
||||||
ClubUser clubUser = dao.fetch(ClubUser.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).and("clubId", "=", clubId));
|
ClubUser clubUser = dao.fetch(ClubUser.class, Cnd.where("userId", "=", SecurityUtil.getUserId()).and("clubId", "=", clubId));
|
||||||
|
|||||||
+16
-4
@@ -1,6 +1,7 @@
|
|||||||
package com.budwk.app.zhgh.club.controller.apply;
|
package com.budwk.app.zhgh.club.controller.apply;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.constant.RoleConstant;
|
import com.budwk.app.base.constant.RoleConstant;
|
||||||
@@ -23,6 +24,7 @@ import org.nutz.aop.interceptor.ioc.TransAop;
|
|||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
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.dao.util.cri.Static;
|
import org.nutz.dao.util.cri.Static;
|
||||||
import org.nutz.ioc.aop.Aop;
|
import org.nutz.ioc.aop.Aop;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
@@ -46,13 +48,18 @@ public class ClubUserJoinApprovalController {
|
|||||||
@Inject
|
@Inject
|
||||||
private ClubUserJoinService clubUserJoinService;
|
private ClubUserJoinService clubUserJoinService;
|
||||||
|
|
||||||
@At("")
|
@At("/")
|
||||||
@SaCheckPermission("club.join.clubApproval")
|
@SaCheckPermission("club.join.clubApproval")
|
||||||
@Ok("beetl:/platform/zhgh/club/join/clubApproval/index.html")
|
@Ok("beetl:/platform/zhgh/club/join/clubApproval/index.html")
|
||||||
public void index() {}
|
public void index() {}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@SaCheckPermission("h5.club.join.clubApproval")
|
||||||
|
@Ok("beetl:/platform/zhghh5/club/clubApproval/index.html")
|
||||||
|
public void h5Index() {}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@SaCheckPermission("club.join.clubApproval")
|
@SaCheckPermission(value = {"club.join.clubApproval", "h5.club.join.clubApproval"}, mode = SaMode.OR)
|
||||||
public Result pageData(@Valid ClubUserJoinPageForm pageForm, boolean approval) {
|
public Result pageData(@Valid ClubUserJoinPageForm pageForm, boolean approval) {
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
@@ -96,11 +103,16 @@ public class ClubUserJoinApprovalController {
|
|||||||
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
||||||
|
|
||||||
cnd.andEX("YEAR(info.applyDate)","=",pageForm.getYear());
|
cnd.andEX("YEAR(info.applyDate)","=",pageForm.getYear());
|
||||||
cnd.and(Cnd.likeEX("u.userName", pageForm.getUserName()));
|
|
||||||
cnd.and(Cnd.likeEX("u.loginName", pageForm.getLoginName()));
|
|
||||||
cnd.andEX("u.unionId","=",pageForm.getUnionId());
|
cnd.andEX("u.unionId","=",pageForm.getUnionId());
|
||||||
cnd.andEX("u.unitId","=",pageForm.getUnitId());
|
cnd.andEX("u.unitId","=",pageForm.getUnitId());
|
||||||
|
|
||||||
|
if (StrUtil.isAllNotBlank(pageForm.getSearchKeyword())) {
|
||||||
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
|
seg.orLike("u.userName", pageForm.getSearchKeyword());
|
||||||
|
seg.orLike("u.loginName", pageForm.getSearchKeyword());
|
||||||
|
cnd.and(seg);
|
||||||
|
}
|
||||||
|
|
||||||
if (approval) {
|
if (approval) {
|
||||||
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
|
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+9
-3
@@ -1,6 +1,7 @@
|
|||||||
package com.budwk.app.zhgh.club.controller.apply;
|
package com.budwk.app.zhgh.club.controller.apply;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
import com.budwk.app.base.annotation.SLog;
|
import com.budwk.app.base.annotation.SLog;
|
||||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||||
import com.budwk.app.base.constant.RoleConstant;
|
import com.budwk.app.base.constant.RoleConstant;
|
||||||
@@ -43,13 +44,18 @@ public class ClubUserJoinMineController {
|
|||||||
@Inject
|
@Inject
|
||||||
private ClubUserJoinService clubUserJoinService;
|
private ClubUserJoinService clubUserJoinService;
|
||||||
|
|
||||||
@At("")
|
@At("/")
|
||||||
@SaCheckPermission("club.join.mine")
|
@SaCheckPermission("club.join.mine")
|
||||||
@Ok("beetl:/platform/zhgh/club/join/mine/index.html")
|
@Ok("beetl:/platform/zhgh/club/join/mine/index.html")
|
||||||
public void index() {}
|
public void index() {}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@SaCheckPermission("h5.club.join.mine")
|
||||||
|
@Ok("beetl:/platform/zhghh5/club/mine/index.html")
|
||||||
|
public void h5Index() {}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@SaCheckPermission("club.join.mine")
|
@SaCheckPermission(value = {"club.join.mine", "h5.club.join.mine"}, mode = SaMode.OR)
|
||||||
public Result pageData(@Valid PageForm pageForm,
|
public Result pageData(@Valid PageForm pageForm,
|
||||||
@Param("year") Integer year){
|
@Param("year") Integer year){
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
@@ -94,7 +100,7 @@ public class ClubUserJoinMineController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@SaCheckPermission("club.join.apply")
|
@SaCheckPermission(value = {"club.join.mine", "h5.club.join.mine"}, mode = SaMode.OR)
|
||||||
@ApiOperation("删除")
|
@ApiOperation("删除")
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@SLog(tag = "协会管理系统-申请入会-我的申请", msg = "删除协会入会")
|
@SLog(tag = "协会管理系统-申请入会-我的申请", msg = "删除协会入会")
|
||||||
|
|||||||
+16
-4
@@ -1,6 +1,7 @@
|
|||||||
package com.budwk.app.zhgh.club.controller.apply;
|
package com.budwk.app.zhgh.club.controller.apply;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.constant.RoleConstant;
|
import com.budwk.app.base.constant.RoleConstant;
|
||||||
@@ -28,6 +29,7 @@ import org.nutz.dao.Cnd;
|
|||||||
import org.nutz.dao.Dao;
|
import org.nutz.dao.Dao;
|
||||||
import org.nutz.dao.Sqls;
|
import org.nutz.dao.Sqls;
|
||||||
import org.nutz.dao.sql.Sql;
|
import org.nutz.dao.sql.Sql;
|
||||||
|
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||||
import org.nutz.dao.util.cri.Static;
|
import org.nutz.dao.util.cri.Static;
|
||||||
import org.nutz.ioc.aop.Aop;
|
import org.nutz.ioc.aop.Aop;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
@@ -52,13 +54,18 @@ public class ClubUserJoinSchoolApprovalController {
|
|||||||
@Inject
|
@Inject
|
||||||
private Dao dao;
|
private Dao dao;
|
||||||
|
|
||||||
@At("")
|
@At("/")
|
||||||
@SaCheckPermission("club.join.schoolUnionApproval")
|
@SaCheckPermission("club.join.schoolUnionApproval")
|
||||||
@Ok("beetl:/platform/zhgh/club/join/schoolUnionApproval/index.html")
|
@Ok("beetl:/platform/zhgh/club/join/schoolUnionApproval/index.html")
|
||||||
public void index() {}
|
public void index() {}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@SaCheckPermission("h5.club.join.schoolUnionApproval")
|
||||||
|
@Ok("beetl:/platform/zhghh5/club/schoolUnionApproval/index.html")
|
||||||
|
public void h5Index() {}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@SaCheckPermission("club.join.schoolUnionApproval")
|
@SaCheckPermission(value = {"club.join.schoolUnionApproval", "h5.club.join.schoolUnionApproval"}, mode = SaMode.OR)
|
||||||
public Result pageData(@Valid ClubUserJoinPageForm pageForm, boolean approval) {
|
public Result pageData(@Valid ClubUserJoinPageForm pageForm, boolean approval) {
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
@@ -102,11 +109,16 @@ public class ClubUserJoinSchoolApprovalController {
|
|||||||
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
||||||
|
|
||||||
cnd.andEX("YEAR(info.applyDate)", "=", pageForm.getYear());
|
cnd.andEX("YEAR(info.applyDate)", "=", pageForm.getYear());
|
||||||
cnd.and(Cnd.likeEX("u.userName", pageForm.getUserName()));
|
|
||||||
cnd.and(Cnd.likeEX("u.loginName", pageForm.getLoginName()));
|
|
||||||
cnd.andEX("u.unionId", "=", pageForm.getUnionId());
|
cnd.andEX("u.unionId", "=", pageForm.getUnionId());
|
||||||
cnd.andEX("u.unitId", "=", pageForm.getUnitId());
|
cnd.andEX("u.unitId", "=", pageForm.getUnitId());
|
||||||
|
|
||||||
|
if (StrUtil.isAllNotBlank(pageForm.getSearchKeyword())) {
|
||||||
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
|
seg.orLike("u.userName", pageForm.getSearchKeyword());
|
||||||
|
seg.orLike("u.loginName", pageForm.getSearchKeyword());
|
||||||
|
cnd.and(seg);
|
||||||
|
}
|
||||||
|
|
||||||
if (approval) {
|
if (approval) {
|
||||||
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
|
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
package com.budwk.app.zhgh.club.h5controller;
|
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
|
||||||
import org.nutz.mvc.annotation.At;
|
|
||||||
import org.nutz.mvc.annotation.Ok;
|
|
||||||
|
|
||||||
@IocBean
|
|
||||||
@At("/platform/h5/club/apply")
|
|
||||||
@Ok("json:full")
|
|
||||||
@Api("h5申请入会")
|
|
||||||
public class H5ClubApplyController {
|
|
||||||
|
|
||||||
@At("")
|
|
||||||
@Ok("beetl:/platform/zhghh5/club/apply/index.html")
|
|
||||||
@SaCheckPermission("h5.club.apply")
|
|
||||||
public void index() {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
package com.budwk.app.zhgh.club.h5controller;
|
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
|
||||||
import org.nutz.mvc.annotation.At;
|
|
||||||
import org.nutz.mvc.annotation.Ok;
|
|
||||||
|
|
||||||
@IocBean
|
|
||||||
@At("/platform/h5/club/audit")
|
|
||||||
@Ok("json:full")
|
|
||||||
@Api("h5入会审核")
|
|
||||||
public class H5ClubAuditController {
|
|
||||||
|
|
||||||
|
|
||||||
@At("")
|
|
||||||
@Ok("beetl:/platform/zhghh5/club/audit/index.html")
|
|
||||||
@SaCheckPermission("h5.club.audit")
|
|
||||||
public void index() {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
package com.budwk.app.zhgh.club.h5controller;
|
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
|
||||||
import org.nutz.mvc.annotation.At;
|
|
||||||
import org.nutz.mvc.annotation.Ok;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ClassName H5ClubMineController
|
|
||||||
* @Author JyuHsin
|
|
||||||
* @Date 2025/7/2 19:19
|
|
||||||
* @Version 1.0
|
|
||||||
* @Description TODO
|
|
||||||
*/
|
|
||||||
@IocBean
|
|
||||||
@At("/platform/h5/club/mine")
|
|
||||||
@Ok("json:full")
|
|
||||||
@Api("h5申请入会")
|
|
||||||
public class H5ClubMineController {
|
|
||||||
|
|
||||||
@At("")
|
|
||||||
@Ok("beetl:/platform/zhghh5/club/mine/index.html")
|
|
||||||
@SaCheckPermission("h5.club.mine")
|
|
||||||
public void index() {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+12
-6
@@ -1,6 +1,7 @@
|
|||||||
package com.budwk.app.zhgh.dayofficework.site.controller;
|
package com.budwk.app.zhgh.dayofficework.site.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
import cn.hutool.core.date.DateField;
|
import cn.hutool.core.date.DateField;
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUnit;
|
import cn.hutool.core.date.DateUnit;
|
||||||
@@ -76,14 +77,19 @@ public class SiteApplyController {
|
|||||||
@Inject
|
@Inject
|
||||||
private FlowCommonService flowCommonService;
|
private FlowCommonService flowCommonService;
|
||||||
|
|
||||||
@At("")
|
@At("/")
|
||||||
@SaCheckPermission("site.apply")
|
@SaCheckPermission("site.apply")
|
||||||
@Ok("beetl:/platform/zhgh/dayofficework/site/apply/index.html")
|
@Ok("beetl:/platform/zhgh/dayofficework/site/apply/index.html")
|
||||||
public void index() {}
|
public void index() {}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@SaCheckPermission("h5.site.apply")
|
||||||
|
@Ok("beetl:/platform/zhghh5/dayofficework/site/apply/index.html")
|
||||||
|
public void h5Index() {}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("分页查询")
|
@ApiOperation("分页查询")
|
||||||
@SaCheckPermission("site.apply")
|
@SaCheckPermission(value = {"site.apply", "h5.site.apply"}, mode = SaMode.OR)
|
||||||
public Result pageData(PageForm pageForm,
|
public Result pageData(PageForm pageForm,
|
||||||
@Param("year") Integer year,
|
@Param("year") Integer year,
|
||||||
@Param("type") String type) {
|
@Param("type") String type) {
|
||||||
@@ -116,7 +122,7 @@ public class SiteApplyController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("新增/修改场地预约")
|
@ApiOperation("新增/修改场地预约")
|
||||||
@SaCheckPermission("site.apply")
|
@SaCheckPermission(value = {"site.apply", "h5.site.apply"}, mode = SaMode.OR)
|
||||||
@SLog(tag = "场地管理-场地预约", msg = "新增/修改场地预约")
|
@SLog(tag = "场地管理-场地预约", msg = "新增/修改场地预约")
|
||||||
public Result submit(@Param("data") SiteApply siteApply, @Param("days") String[] days) {
|
public Result submit(@Param("data") SiteApply siteApply, @Param("days") String[] days) {
|
||||||
Map<Boolean, String> validate = applyService.validateApply(siteApply, days[0]);
|
Map<Boolean, String> validate = applyService.validateApply(siteApply, days[0]);
|
||||||
@@ -143,7 +149,7 @@ public class SiteApplyController {
|
|||||||
@At
|
@At
|
||||||
@ApiOperation("重新提交申请")
|
@ApiOperation("重新提交申请")
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@SaCheckPermission("site.apply")
|
@SaCheckPermission(value = {"site.apply", "h5.site.apply"}, mode = SaMode.OR)
|
||||||
public Result submitAgain(@Param("data") SiteApply siteApply,
|
public Result submitAgain(@Param("data") SiteApply siteApply,
|
||||||
@Param("days") String[] days,
|
@Param("days") String[] days,
|
||||||
@Param("taskId") String taskId) {
|
@Param("taskId") String taskId) {
|
||||||
@@ -163,7 +169,7 @@ public class SiteApplyController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("查询可以预约的日期")
|
@ApiOperation("查询可以预约的日期")
|
||||||
@SaCheckPermission("site.apply")
|
@SaCheckPermission(value = {"site.apply", "h5.site.apply"}, mode = SaMode.OR)
|
||||||
public Result queryAllowTime(String siteId, String startTime, String endTime) {
|
public Result queryAllowTime(String siteId, String startTime, String endTime) {
|
||||||
if(StrUtil.isBlank(siteId)) {
|
if(StrUtil.isBlank(siteId)) {
|
||||||
return Result.success(new ArrayList<>());
|
return Result.success(new ArrayList<>());
|
||||||
@@ -203,7 +209,7 @@ public class SiteApplyController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("查询可以预约的时间")
|
@ApiOperation("查询可以预约的时间")
|
||||||
@SaCheckPermission("site.apply")
|
@SaCheckPermission(value = {"site.apply", "h5.site.apply"}, mode = SaMode.OR)
|
||||||
public Result queryTimesByDay(String siteId, String day) {
|
public Result queryTimesByDay(String siteId, String day) {
|
||||||
//获取场地
|
//获取场地
|
||||||
SiteInfo siteInfo = infoService.fetch(siteId);
|
SiteInfo siteInfo = infoService.fetch(siteId);
|
||||||
|
|||||||
+10
-4
@@ -2,6 +2,7 @@ package com.budwk.app.zhgh.dayofficework.site.controller;
|
|||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
import cn.hutool.core.util.StrUtil;
|
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.page.Pagination;
|
import com.budwk.app.base.page.Pagination;
|
||||||
@@ -51,14 +52,19 @@ public class SiteMineController {
|
|||||||
@Inject
|
@Inject
|
||||||
private SiteApplyService applyService;
|
private SiteApplyService applyService;
|
||||||
|
|
||||||
@At("")
|
@At("/")
|
||||||
@Ok("beetl:/platform/zhgh/dayofficework/site/mine/index.html")
|
@Ok("beetl:/platform/zhgh/dayofficework/site/mine/index.html")
|
||||||
@SaCheckLogin
|
@SaCheckPermission("site.mine")
|
||||||
public void index() {}
|
public void index() {}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@Ok("beetl:/platform/zhgh/dayofficework/site/mine/index.html")
|
||||||
|
@SaCheckPermission("h5.site.mine")
|
||||||
|
public void h5Index() {}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("分页查询")
|
@ApiOperation("分页查询")
|
||||||
@SaCheckPermission("site.mine")
|
@SaCheckPermission(value = {"site.mine", "h5.site.mine"}, mode = SaMode.OR)
|
||||||
public Result pageData(PageForm pageForm,
|
public Result pageData(PageForm pageForm,
|
||||||
@Param("year") Integer year,
|
@Param("year") Integer year,
|
||||||
@Param("siteType") String siteType,
|
@Param("siteType") String siteType,
|
||||||
@@ -117,7 +123,7 @@ public class SiteMineController {
|
|||||||
@At
|
@At
|
||||||
@ApiOperation("删除")
|
@ApiOperation("删除")
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@SaCheckPermission("site.mine")
|
@SaCheckPermission("site")
|
||||||
@SLog(tag = "场地管理-场地预约", msg = "删除场地预约")
|
@SLog(tag = "场地管理-场地预约", msg = "删除场地预约")
|
||||||
public Result delete(@Param("id") String id) {
|
public Result delete(@Param("id") String id) {
|
||||||
applyService.delete(id);
|
applyService.delete(id);
|
||||||
|
|||||||
+9
-3
@@ -2,6 +2,7 @@ package com.budwk.app.zhgh.dayofficework.site.controller;
|
|||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.page.Pagination;
|
import com.budwk.app.base.page.Pagination;
|
||||||
import com.budwk.app.base.param.PageForm;
|
import com.budwk.app.base.param.PageForm;
|
||||||
@@ -42,14 +43,19 @@ public class SiteSchoolUnionAuditController {
|
|||||||
@Inject
|
@Inject
|
||||||
private SiteApplyService applyService;
|
private SiteApplyService applyService;
|
||||||
|
|
||||||
@At("")
|
@At("/")
|
||||||
@Ok("beetl:/platform/zhgh/dayofficework/site/schoolUnionAudit/index.html")
|
@Ok("beetl:/platform/zhgh/dayofficework/site/schoolUnionAudit/index.html")
|
||||||
@SaCheckLogin
|
@SaCheckPermission("site.schoolUnionAudit")
|
||||||
public void index() {}
|
public void index() {}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@SaCheckPermission("h5.site.schoolUnionAudit")
|
||||||
|
@Ok("beetl:/platform/zhghh5/dayofficework/site/schoolUnionAudit/index.html")
|
||||||
|
public void h5Index() {}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("分页查询")
|
@ApiOperation("分页查询")
|
||||||
@SaCheckPermission("site.schoolUnionAudit")
|
@SaCheckPermission(value = {"site.schoolUnionAudit", "h5.site.schoolUnionAudit"}, mode = SaMode.OR)
|
||||||
public Result pageData(PageForm pageForm,
|
public Result pageData(PageForm pageForm,
|
||||||
@Param("year") Integer year,
|
@Param("year") Integer year,
|
||||||
@Param("siteType") String siteType,
|
@Param("siteType") String siteType,
|
||||||
|
|||||||
+12
-6
@@ -2,6 +2,7 @@ package com.budwk.app.zhgh.staffbenefit.condolence.controller;
|
|||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
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 cn.hutool.core.util.StrUtil;
|
||||||
@@ -60,14 +61,19 @@ public class CondolenceApplyController {
|
|||||||
@Inject
|
@Inject
|
||||||
private FlowCommonService flowCommonService;
|
private FlowCommonService flowCommonService;
|
||||||
|
|
||||||
@At("")
|
@At("/")
|
||||||
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/apply/index.html")
|
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/apply/index.html")
|
||||||
@SaCheckLogin
|
@SaCheckPermission("condolence.apply")
|
||||||
public void index() {}
|
public void index() {}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@Ok("beetl:/platform/zhghh5/staffbenefit/condolence/apply/index.html")
|
||||||
|
@SaCheckPermission("h5.condolence.apply")
|
||||||
|
public void h5Index() {}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("保存申请")
|
@ApiOperation("保存申请")
|
||||||
@SaCheckPermission("condolence.apply")
|
@SaCheckPermission(value = {"condolence.apply", "h5.condolence.apply"}, mode = SaMode.OR)
|
||||||
@SLog(tag = "职工慰问系统-慰问申请", msg = "保存申请")
|
@SLog(tag = "职工慰问系统-慰问申请", msg = "保存申请")
|
||||||
public Result save(@Param("data") Condolence condolence) {
|
public Result save(@Param("data") Condolence condolence) {
|
||||||
if(StrUtil.isBlank(condolence.getId())) condolence.setCreateTime(DateUtil.now());
|
if(StrUtil.isBlank(condolence.getId())) condolence.setCreateTime(DateUtil.now());
|
||||||
@@ -77,7 +83,7 @@ public class CondolenceApplyController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("提交申请")
|
@ApiOperation("提交申请")
|
||||||
@SaCheckPermission("condolence.apply")
|
@SaCheckPermission(value = {"condolence.apply", "h5.condolence.apply"}, mode = SaMode.OR)
|
||||||
@SLog(tag = "职工慰问系统-慰问申请", msg = "提交申请")
|
@SLog(tag = "职工慰问系统-慰问申请", msg = "提交申请")
|
||||||
public Result submit(@Param("data") Condolence condolence) {
|
public Result submit(@Param("data") Condolence condolence) {
|
||||||
if(StrUtil.isBlank(condolence.getId())) condolence.setCreateTime(DateUtil.now());
|
if(StrUtil.isBlank(condolence.getId())) condolence.setCreateTime(DateUtil.now());
|
||||||
@@ -99,7 +105,7 @@ public class CondolenceApplyController {
|
|||||||
@At
|
@At
|
||||||
@ApiOperation("重新提交申请")
|
@ApiOperation("重新提交申请")
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@SaCheckPermission("condolence.apply")
|
@SaCheckPermission(value = {"condolence.apply", "h5.condolence.apply"}, mode = SaMode.OR)
|
||||||
public Result submitAgain(@Param("data") Condolence condolence, @Param("taskId") Long taskId) {
|
public Result submitAgain(@Param("data") Condolence condolence, @Param("taskId") Long taskId) {
|
||||||
dao.insertOrUpdate(condolence);
|
dao.insertOrUpdate(condolence);
|
||||||
|
|
||||||
@@ -112,7 +118,7 @@ public class CondolenceApplyController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("查询用户")
|
@ApiOperation("查询用户")
|
||||||
@SaCheckPermission("condolence.apply")
|
@SaCheckPermission(value = {"condolence.apply", "h5.condolence.apply"}, mode = SaMode.OR)
|
||||||
public Object listUser(String keyword) {
|
public Object listUser(String keyword) {
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
select
|
select
|
||||||
|
|||||||
+17
-4
@@ -1,7 +1,7 @@
|
|||||||
package com.budwk.app.zhgh.staffbenefit.condolence.controller;
|
package com.budwk.app.zhgh.staffbenefit.condolence.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.page.Pagination;
|
import com.budwk.app.base.page.Pagination;
|
||||||
import com.budwk.app.base.param.PageForm;
|
import com.budwk.app.base.param.PageForm;
|
||||||
@@ -9,12 +9,14 @@ import com.budwk.app.base.result.Result;
|
|||||||
import com.budwk.app.base.utils.PageUtil;
|
import com.budwk.app.base.utils.PageUtil;
|
||||||
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
||||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
|
import com.budwk.app.zhgh.staffbenefit.condolence.model.Condolence;
|
||||||
import com.budwk.app.zhgh.staffbenefit.condolence.service.CondolenceService;
|
import com.budwk.app.zhgh.staffbenefit.condolence.service.CondolenceService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
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.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
@@ -40,14 +42,19 @@ public class CondolenceBranchUnionApprovalController {
|
|||||||
@Inject
|
@Inject
|
||||||
private CondolenceService condolenceService;
|
private CondolenceService condolenceService;
|
||||||
|
|
||||||
@At("")
|
@At("/")
|
||||||
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/branchUnionApproval/index.html")
|
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/branchUnionApproval/index.html")
|
||||||
@SaCheckLogin
|
@SaCheckPermission("condolence.branchUnionApproval")
|
||||||
public void index() {}
|
public void index() {}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@Ok("beetl:/platform/zhghh5/staffbenefit/condolence/branchUnionApproval/index.html")
|
||||||
|
@SaCheckPermission("h5.condolence.branchUnionApproval")
|
||||||
|
public void h5Index() {}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("分页查询")
|
@ApiOperation("分页查询")
|
||||||
@SaCheckPermission("condolence.branchUnionApproval")
|
@SaCheckPermission(value = {"condolence.branchUnionApproval", "h5.condolence.branchUnionApproval"}, mode = SaMode.OR)
|
||||||
public Result pageData(PageForm pageForm,
|
public Result pageData(PageForm pageForm,
|
||||||
@Param(value = "year") Integer year,
|
@Param(value = "year") Integer year,
|
||||||
@Param(value = "type") String type,
|
@Param(value = "type") String type,
|
||||||
@@ -83,6 +90,12 @@ public class CondolenceBranchUnionApprovalController {
|
|||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
|
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||||
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
|
seg.or(Condolence::getHelpUserName, "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||||
|
seg.or(Condolence::getHelpLoginName, "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||||
|
cnd.and(seg);
|
||||||
|
}
|
||||||
cnd.andEX("info.type", "=", type);
|
cnd.andEX("info.type", "=", type);
|
||||||
cnd.andEX("YEAR(info.createTime)", "=", year);
|
cnd.andEX("YEAR(info.createTime)", "=", year);
|
||||||
|
|
||||||
|
|||||||
+11
-5
@@ -2,6 +2,7 @@ package com.budwk.app.zhgh.staffbenefit.condolence.controller;
|
|||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
import cn.hutool.core.util.StrUtil;
|
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;
|
||||||
@@ -50,14 +51,19 @@ public class CondolenceMineController {
|
|||||||
@Inject
|
@Inject
|
||||||
private FlowEngine flowEngine;
|
private FlowEngine flowEngine;
|
||||||
|
|
||||||
@At("")
|
@At("/")
|
||||||
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/mine/index.html")
|
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/mine/index.html")
|
||||||
@SaCheckLogin
|
@SaCheckPermission("condolence.mine")
|
||||||
public void index() {}
|
public void index() {}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@Ok("beetl:/platform/zhghh5/staffbenefit/condolence/mine/index.html")
|
||||||
|
@SaCheckPermission("h5.condolence.mine")
|
||||||
|
public void h5Index() {}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("分页查询")
|
@ApiOperation("分页查询")
|
||||||
@SaCheckPermission("condolence.mine")
|
@SaCheckPermission(value = {"condolence.mine", "h5.condolence.mine"}, mode = SaMode.OR)
|
||||||
public Result pageData(PageForm pageForm,
|
public Result pageData(PageForm pageForm,
|
||||||
@Param(value = "year") Integer year,
|
@Param(value = "year") Integer year,
|
||||||
@Param(value = "type") String type) {
|
@Param(value = "type") String type) {
|
||||||
@@ -114,7 +120,7 @@ public class CondolenceMineController {
|
|||||||
@At
|
@At
|
||||||
@ApiOperation("删除")
|
@ApiOperation("删除")
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@SaCheckPermission("condolence")
|
@SaCheckPermission(value = {"condolence.mine", "h5.condolence.mine"}, mode = SaMode.OR)
|
||||||
@SLog(tag = "职工慰问系统-我的申请", msg = "删除职工慰问")
|
@SLog(tag = "职工慰问系统-我的申请", msg = "删除职工慰问")
|
||||||
public Result delete(@Param("id") String id) {
|
public Result delete(@Param("id") String id) {
|
||||||
condolenceService.delete(id);
|
condolenceService.delete(id);
|
||||||
@@ -124,7 +130,7 @@ public class CondolenceMineController {
|
|||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("查询单个慰问申请信息")
|
@ApiOperation("查询单个慰问申请信息")
|
||||||
@SaCheckPermission("condolence.mine")
|
@SaCheckPermission("condolence")
|
||||||
public Result info(String id) {
|
public Result info(String id) {
|
||||||
Condolence condolence = condolenceService.fetch(id);
|
Condolence condolence = condolenceService.fetch(id);
|
||||||
CondolenceType type = condolenceService.dao().fetch(CondolenceType.class, Cnd.where(CondolenceType::getId, "=", condolence.getType()));
|
CondolenceType type = condolenceService.dao().fetch(CondolenceType.class, Cnd.where(CondolenceType::getId, "=", condolence.getType()));
|
||||||
|
|||||||
+17
-4
@@ -1,7 +1,7 @@
|
|||||||
package com.budwk.app.zhgh.staffbenefit.condolence.controller;
|
package com.budwk.app.zhgh.staffbenefit.condolence.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.page.Pagination;
|
import com.budwk.app.base.page.Pagination;
|
||||||
import com.budwk.app.base.param.PageForm;
|
import com.budwk.app.base.param.PageForm;
|
||||||
@@ -9,12 +9,14 @@ import com.budwk.app.base.result.Result;
|
|||||||
import com.budwk.app.base.utils.PageUtil;
|
import com.budwk.app.base.utils.PageUtil;
|
||||||
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
||||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
|
import com.budwk.app.zhgh.staffbenefit.condolence.model.Condolence;
|
||||||
import com.budwk.app.zhgh.staffbenefit.condolence.service.CondolenceService;
|
import com.budwk.app.zhgh.staffbenefit.condolence.service.CondolenceService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
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.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
@@ -40,14 +42,19 @@ public class CondolenceSchoolUnionApprovalController {
|
|||||||
@Inject
|
@Inject
|
||||||
private CondolenceService condolenceService;
|
private CondolenceService condolenceService;
|
||||||
|
|
||||||
@At("")
|
@At("/")
|
||||||
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/schoolUnionApproval/index.html")
|
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/schoolUnionApproval/index.html")
|
||||||
@SaCheckLogin
|
@SaCheckPermission("condolence.schoolUnionApproval")
|
||||||
public void index() {}
|
public void index() {}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@Ok("beetl:/platform/zhghh5/staffbenefit/condolence/schoolUnionApproval/index.html")
|
||||||
|
@SaCheckPermission("h5.condolence.schoolUnionApproval")
|
||||||
|
public void h5Index() {}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("分页查询")
|
@ApiOperation("分页查询")
|
||||||
@SaCheckPermission("condolence.schoolUnionApproval")
|
@SaCheckPermission(value = {"condolence.schoolUnionApproval", "h5.condolence.schoolUnionApproval"}, mode = SaMode.OR)
|
||||||
public Result pageData(PageForm pageForm,
|
public Result pageData(PageForm pageForm,
|
||||||
@Param(value = "year") Integer year,
|
@Param(value = "year") Integer year,
|
||||||
@Param(value = "type") String type,
|
@Param(value = "type") String type,
|
||||||
@@ -85,6 +92,12 @@ public class CondolenceSchoolUnionApprovalController {
|
|||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
|
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||||
|
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||||
|
seg.or(Condolence::getHelpUserName, "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||||
|
seg.or(Condolence::getHelpLoginName, "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||||
|
cnd.and(seg);
|
||||||
|
}
|
||||||
cnd.andEX("info.type", "=", type);
|
cnd.andEX("info.type", "=", type);
|
||||||
cnd.andEX("YEAR(info.createTime)", "=", year);
|
cnd.andEX("YEAR(info.createTime)", "=", year);
|
||||||
cnd.andEX("info.applyUnionId", "=", unionId);
|
cnd.andEX("info.applyUnionId", "=", unionId);
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ html, body, #app {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background-color: #f1f1f1;
|
background-color: #f7f8fa;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
font-size: 16px
|
font-size: 16px
|
||||||
}
|
}
|
||||||
@@ -297,3 +297,7 @@ body {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.detail-container .direction-column-cell .van-cell__value{
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ layout("/layouts/platform.html"){
|
|||||||
checkApplyClub(val) {
|
checkApplyClub(val) {
|
||||||
this.$axios.post("/platform/club/join/apply/checkApplyClub", { clubId: val }).then((res) => {
|
this.$axios.post("/platform/club/join/apply/checkApplyClub", { clubId: val }).then((res) => {
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
this.$message.warning("您已申请加入该协会,请勿重复申请")
|
this.$message.warning(res.msg)
|
||||||
this.formData.clubId = ""
|
this.formData.clubId = ""
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -243,7 +243,7 @@ layout("/layouts/platform.html"){
|
|||||||
this.$set(this.formData, "unionId", user.union ? user.union.id : null)
|
this.$set(this.formData, "unionId", user.union ? user.union.id : null)
|
||||||
this.$set(this.formData, "unionName", user.union ? user.union.name : null)
|
this.$set(this.formData, "unionName", user.union ? user.union.name : null)
|
||||||
this.$set(this.formData, "sex", user.sex)
|
this.$set(this.formData, "sex", user.sex)
|
||||||
this.$set(this.formData, "birthday", user.birthday ? this.$moment(user.birthday).format('yyyy-MM-dd') : '')
|
this.$set(this.formData, "birthday", user.birthday ? this.$moment(user.birthday).format('YYYY-MM-DD') : '')
|
||||||
this.$set(this.formData, "nation", user.nation)
|
this.$set(this.formData, "nation", user.nation)
|
||||||
this.$set(this.formData, "political", user.political)
|
this.$set(this.formData, "political", user.political)
|
||||||
this.$set(this.formData, "education", user.education)
|
this.$set(this.formData, "education", user.education)
|
||||||
|
|||||||
@@ -16,11 +16,8 @@ layout("/layouts/platform.html"){
|
|||||||
@change="doSearch"
|
@change="doSearch"
|
||||||
></el-date-picker>
|
></el-date-picker>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="姓名:">
|
<search-item label="关键字:">
|
||||||
<el-input placeholder="请输入姓名查询" clearable v-model="pageForm.userName"></el-input>
|
<el-input clearable placeholder="请输入姓名或者工号查询" v-model="pageForm.searchKeyword"></el-input>
|
||||||
</search-item>
|
|
||||||
<search-item label="工号:">
|
|
||||||
<el-input placeholder="请输入工号查询" clearable v-model="pageForm.loginName"></el-input>
|
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="所属工会:">
|
<search-item label="所属工会:">
|
||||||
<el-select v-model="pageForm.unionId" placeholder="请选择所属工会" filterable clearable style="width: 100%">
|
<el-select v-model="pageForm.unionId" placeholder="请选择所属工会" filterable clearable style="width: 100%">
|
||||||
|
|||||||
@@ -16,11 +16,8 @@ layout("/layouts/platform.html"){
|
|||||||
@change="doSearch"
|
@change="doSearch"
|
||||||
></el-date-picker>
|
></el-date-picker>
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="姓名:">
|
<search-item label="关键字:">
|
||||||
<el-input placeholder="请输入姓名查询" clearable v-model="pageForm.userName"></el-input>
|
<el-input clearable placeholder="请输入姓名或者工号查询" v-model="pageForm.searchKeyword"></el-input>
|
||||||
</search-item>
|
|
||||||
<search-item label="工号:">
|
|
||||||
<el-input placeholder="请输入工号查询" clearable v-model="pageForm.loginName"></el-input>
|
|
||||||
</search-item>
|
</search-item>
|
||||||
<search-item label="所属工会:">
|
<search-item label="所属工会:">
|
||||||
<el-select v-model="pageForm.unionId" placeholder="请选择所属工会" filterable clearable style="width: 100%">
|
<el-select v-model="pageForm.unionId" placeholder="请选择所属工会" filterable clearable style="width: 100%">
|
||||||
|
|||||||
@@ -3,7 +3,19 @@ layout("/layouts/platform.html"){
|
|||||||
#-->
|
#-->
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
.div-Calendar {
|
||||||
|
box-sizing: border-box;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.div-Calendar p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.el-calendar-day:has(.not-allow-day) {
|
||||||
|
background-color: #F5F5F5;
|
||||||
|
}
|
||||||
|
.el-dialog__body {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
|
|||||||
@@ -3,359 +3,364 @@ layout("/layouts/platform.html"){
|
|||||||
#-->
|
#-->
|
||||||
|
|
||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<snaker-start slot="header" label="职工慰问" define_key="ZGWW"></snaker-start>
|
<snaker-start slot="header" label="职工慰问" define_key="ZGWW"></snaker-start>
|
||||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":" class="flow-task-form">
|
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":"
|
||||||
<el-descriptions :column="2" border>
|
class="flow-task-form">
|
||||||
<el-descriptions-item label="申请人姓名">{{formData.applyUserName}}</el-descriptions-item>
|
<el-descriptions :column="2" border>
|
||||||
<el-descriptions-item label="申请人工号">{{formData.applyLoginName}}</el-descriptions-item>
|
<el-descriptions-item label="申请人姓名">{{formData.applyUserName}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="申请人单位">{{formData.applyUnitName}}</el-descriptions-item>
|
<el-descriptions-item label="申请人工号">{{formData.applyLoginName}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="申请人工会">{{formData.applyUnionName}}</el-descriptions-item>
|
<el-descriptions-item label="申请人单位">{{formData.applyUnitName}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="申请人工会">{{formData.applyUnionName}}</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item label="慰问对象">
|
<el-descriptions-item label="慰问对象">
|
||||||
<el-form-item prop="helpUserId" label="慰问对象">
|
<el-form-item prop="helpUserId" label="慰问对象">
|
||||||
<el-select
|
<el-select
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
v-model="formData.helpUserId"
|
v-model="formData.helpUserId"
|
||||||
filterable
|
filterable
|
||||||
clearable
|
clearable
|
||||||
remote
|
remote
|
||||||
reserve-keyword
|
reserve-keyword
|
||||||
placeholder="请输入姓名或工号查询"
|
placeholder="请输入姓名或工号查询"
|
||||||
:remote-method="createRemoteMethod(helpUserOptions)"
|
:remote-method="createRemoteMethod(helpUserOptions)"
|
||||||
@change="helpUserChange">
|
@change="helpUserChange">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in helpUserOptions"
|
v-for="item in helpUserOptions"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'+'('+item.sex+')'"
|
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'+'('+item.sex+')'"
|
||||||
:value="item.id">
|
:value="item.id">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="收款人">
|
<el-descriptions-item label="收款人">
|
||||||
<el-form-item prop="payUserId" label="慰问对象">
|
<el-form-item prop="payUserId" label="慰问对象">
|
||||||
<el-select
|
<el-select
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
v-model="formData.payUserId"
|
v-model="formData.payUserId"
|
||||||
filterable
|
filterable
|
||||||
clearable
|
clearable
|
||||||
remote
|
remote
|
||||||
reserve-keyword
|
reserve-keyword
|
||||||
placeholder="请输入姓名或工号查询"
|
placeholder="请输入姓名或工号查询"
|
||||||
:remote-method="createRemoteMethod(payUserOptions)"
|
:remote-method="createRemoteMethod(payUserOptions)"
|
||||||
@change="payUserChange">
|
@change="payUserChange">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in payUserOptions"
|
v-for="item in payUserOptions"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'+'('+item.sex+')'"
|
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'+'('+item.sex+')'"
|
||||||
:value="item.id">
|
:value="item.id">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="慰问类型">
|
<el-descriptions-item label="慰问类型">
|
||||||
<el-select v-model="formData.type" @change="typeChange" style="width: 100%"
|
<el-select v-model="formData.type" @change="typeChange" style="width: 100%"
|
||||||
placeholder="请选择慰问类型">
|
placeholder="请选择慰问类型">
|
||||||
<el-option v-for="item in typeOptions"
|
<el-option v-for="item in typeOptions"
|
||||||
:value="item.id"
|
:value="item.id"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:disabled="!item.enable"
|
:disabled="!item.enable"
|
||||||
:label="item.name"></el-option>
|
:label="item.name"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="慰问方式">
|
<el-descriptions-item label="慰问方式">
|
||||||
<el-form-item prop="way" label="慰问方式">
|
<el-form-item prop="way" label="慰问方式">
|
||||||
<el-select v-model="formData.way"
|
<el-select v-model="formData.way"
|
||||||
placeholder="选择慰问类型自动匹配慰问方式"
|
placeholder="选择慰问类型自动匹配慰问方式"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
clearable
|
clearable
|
||||||
disabled>
|
disabled>
|
||||||
<el-option label="慰问金 (A)" value="1"></el-option>
|
<el-option label="慰问金 (A)" value="1"></el-option>
|
||||||
<el-option label="提货券 (B)" value="2"></el-option>
|
<el-option label="提货券 (B)" value="2"></el-option>
|
||||||
<el-option label="慰问品 (C)" value="3"></el-option>
|
<el-option label="慰问品 (C)" value="3"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="慰问金额">
|
<el-descriptions-item label="慰问金额">
|
||||||
<el-form-item prop="money" label="慰问金额">
|
<el-form-item prop="money" label="慰问金额">
|
||||||
<el-input style="width: 100%" v-model="formData.money"
|
<el-input style="width: 100%" v-model="formData.money"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
:controls="false"
|
:controls="false"
|
||||||
precision="2"
|
precision="2"
|
||||||
placeholder="选择慰问类型自动匹配金额"
|
placeholder="选择慰问类型自动匹配金额"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="10000"></el-input>
|
:max="10000"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="慰问时间">
|
<el-descriptions-item label="慰问时间">
|
||||||
<el-form-item label="慰问时间" prop="occurTime">
|
<el-form-item label="慰问时间" prop="occurTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
clearable
|
clearable
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
v-model="formData.occurTime"
|
v-model="formData.occurTime"
|
||||||
type="date"
|
type="date"
|
||||||
value-format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
||||||
placeholder="请选择慰问时间">
|
placeholder="请选择慰问时间">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
<template v-if="['2'].includes(formData.type)">
|
<template v-if="['2'].includes(formData.type)">
|
||||||
<el-descriptions-item label="孩次">
|
<el-descriptions-item label="孩次">
|
||||||
<el-form-item prop="child" label="孩次">
|
<el-form-item prop="child" label="孩次">
|
||||||
<el-select v-model="formData.child" placeholder="请选择孩次"
|
<el-select v-model="formData.child" placeholder="请选择孩次"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
clearable>
|
clearable>
|
||||||
<el-option label="一孩" value="一孩"></el-option>
|
<el-option label="一孩" value="一孩"></el-option>
|
||||||
<el-option label="二孩" value="二孩"></el-option>
|
<el-option label="二孩" value="二孩"></el-option>
|
||||||
<el-option label="三孩" value="三孩"></el-option>
|
<el-option label="三孩" value="三孩"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="['3','4'].includes(formData.type)">
|
<template v-if="['3','4'].includes(formData.type)">
|
||||||
<el-descriptions-item label="治疗医院">
|
<el-descriptions-item label="治疗医院">
|
||||||
<el-form-item prop="hospital" label="治疗医院">
|
<el-form-item prop="hospital" label="治疗医院">
|
||||||
<el-input v-model="formData.hospital" maxlength="50" placeholder="请填写治疗医院"></el-input>
|
<el-input v-model="formData.hospital" maxlength="50"
|
||||||
</el-form-item>
|
placeholder="请填写治疗医院"></el-input>
|
||||||
</el-descriptions-item>
|
</el-form-item>
|
||||||
<el-descriptions-item label="病房号">
|
</el-descriptions-item>
|
||||||
<el-form-item prop="hospitalHouseNum" label="病房号">
|
<el-descriptions-item label="病房号">
|
||||||
<el-input v-model="formData.hospitalHouseNum" maxlength="50" placeholder="请填写病房号" type="number"></el-input>
|
<el-form-item prop="hospitalHouseNum" label="病房号">
|
||||||
</el-form-item>
|
<el-input v-model="formData.hospitalHouseNum" maxlength="50" placeholder="请填写病房号"
|
||||||
</el-descriptions-item>
|
type="number"></el-input>
|
||||||
<el-descriptions-item label="床号">
|
</el-form-item>
|
||||||
<el-form-item prop="hospitalHouseBedNum" label="床号">
|
</el-descriptions-item>
|
||||||
<el-input v-model="formData.hospitalHouseBedNum" maxlength="50" placeholder="请填写床号" type="number"></el-input>
|
<el-descriptions-item label="床号">
|
||||||
</el-form-item>
|
<el-form-item prop="hospitalHouseBedNum" label="床号">
|
||||||
</el-descriptions-item>
|
<el-input v-model="formData.hospitalHouseBedNum" maxlength="50" placeholder="请填写床号"
|
||||||
</template>
|
type="number"></el-input>
|
||||||
<template v-if="['4'].includes(formData.type)">
|
</el-form-item>
|
||||||
<el-descriptions-item label="患病病种">
|
</el-descriptions-item>
|
||||||
<el-form-item prop="hospitalBy" label="患病病种">
|
</template>
|
||||||
<el-input v-model="formData.hospitalBy" maxlength="50" placeholder="请填写患病病种"></el-input>
|
<template v-if="['4'].includes(formData.type)">
|
||||||
</el-form-item>
|
<el-descriptions-item label="患病病种">
|
||||||
</el-descriptions-item>
|
<el-form-item prop="hospitalBy" label="患病病种">
|
||||||
</template>
|
<el-input v-model="formData.hospitalBy" maxlength="50"
|
||||||
<template v-if="['6'].includes(formData.type)">
|
placeholder="请填写患病病种"></el-input>
|
||||||
<el-descriptions-item label="直系亲属">
|
</el-form-item>
|
||||||
<el-form-item prop="deadImmediateFamily" label="直系亲属">
|
</el-descriptions-item>
|
||||||
<el-select v-model="formData.deadImmediateFamily">
|
</template>
|
||||||
<el-option label="配偶" value="配偶"></el-option>
|
<template v-if="['6'].includes(formData.type)">
|
||||||
<el-option label="父亲" value="父亲"></el-option>
|
<el-descriptions-item label="直系亲属">
|
||||||
<el-option label="母亲" value="母亲"></el-option>
|
<el-form-item prop="deadImmediateFamily" label="直系亲属">
|
||||||
<el-option label="子女" value="子女"></el-option>
|
<el-select v-model="formData.deadImmediateFamily">
|
||||||
</el-select>
|
<el-option label="配偶" value="配偶"></el-option>
|
||||||
</el-form-item>
|
<el-option label="父亲" value="父亲"></el-option>
|
||||||
</el-descriptions-item>
|
<el-option label="母亲" value="母亲"></el-option>
|
||||||
</template>
|
<el-option label="子女" value="子女"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</template>
|
||||||
|
|
||||||
<el-descriptions-item label="申请事由" :span="2">
|
<el-descriptions-item label="申请事由" :span="2">
|
||||||
<el-form-item prop="remark" label="申请事由">
|
<el-form-item prop="remark" label="申请事由">
|
||||||
<el-input maxlength="500" v-model="formData.remark" placeholder="请填写申请事由"
|
<el-input maxlength="500" v-model="formData.remark" placeholder="请填写申请事由"
|
||||||
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
|
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item :span="2" v-if="chooseType.isUploadFile === true">
|
<el-descriptions-item :span="2" v-if="chooseType.isUploadFile === true">
|
||||||
<template slot="label">
|
<template slot="label">
|
||||||
附件
|
附件
|
||||||
<el-tooltip class="item" effect="dark" :content="'上传附件说明:' + chooseType.uploadFileDesc"
|
<el-tooltip class="item" effect="dark" :content="'上传附件说明:' + chooseType.uploadFileDesc"
|
||||||
placement="top-start"
|
placement="top-start"
|
||||||
v-if="chooseType.isUploadFile && chooseType.uploadFileDesc">
|
v-if="chooseType.isUploadFile && chooseType.uploadFileDesc">
|
||||||
<i class="el-icon-question"></i>
|
<i class="el-icon-question"></i>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</template>
|
</template>
|
||||||
<el-form-item prop="files" label="附件">
|
<el-form-item prop="files" label="附件">
|
||||||
<file-upload
|
<file-upload
|
||||||
:value.sync="formData.files"
|
:value.sync="formData.files"
|
||||||
:upload_number="5"
|
:upload_number="5"
|
||||||
upload_result_category="array"
|
upload_result_category="array"
|
||||||
complete_result
|
complete_result
|
||||||
upload_mode="drag"
|
upload_mode="drag"
|
||||||
></file-upload>
|
></file-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item label="签字" :span="2">
|
<el-descriptions-item label="签字" :span="2">
|
||||||
<el-form-item prop="signature" label="签字">
|
<el-form-item prop="signature" label="签字">
|
||||||
<pc-signature v-model="formData.signature"></pc-signature>
|
<pc-signature v-model="formData.signature"></pc-signature>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</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>
|
<el-button type="primary" @click="onSubmit" v-if="!taskId">提交</el-button>
|
||||||
<el-button type="primary" @click="onFinishTask" v-else>提交</el-button>
|
<el-button type="primary" @click="onFinishTask" v-else>提交</el-button>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
new Vue({
|
new Vue({
|
||||||
el: "#app",
|
el: "#app",
|
||||||
store,
|
store,
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
id: GetQueryString("bizId"),
|
bizId: GetQueryString("bizId"),
|
||||||
taskId: GetQueryString("taskId"),
|
taskId: GetQueryString("taskId"),
|
||||||
formData: {},
|
formData: {},
|
||||||
formRules: {
|
formRules: {
|
||||||
helpUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
helpUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
payUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
payUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
type: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
type: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
way: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
way: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
money: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
money: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
occurTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
occurTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
child: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
child: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
hospital: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
hospital: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
hospitalHouseNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
hospitalHouseNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
hospitalHouseBedNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
hospitalHouseBedNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
hospitalBy: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
hospitalBy: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
deadImmediateFamily: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
deadImmediateFamily: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
remark: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
remark: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
files: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
files: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||||
signature: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
signature: [{ required: true, message: "必填", trigger: ["change", "blur"] }]
|
||||||
|
},
|
||||||
|
chooseType: {},
|
||||||
|
payUserOptions: [],
|
||||||
|
helpUserOptions: [],
|
||||||
|
typeOptions: []
|
||||||
|
}
|
||||||
},
|
},
|
||||||
chooseType: {},
|
methods: {
|
||||||
payUserOptions: [],
|
createRemoteMethod(options) {
|
||||||
helpUserOptions: [],
|
return (keyword) => {
|
||||||
typeOptions: [],
|
this.selectQueryUser(keyword, options)
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
createRemoteMethod(options) {
|
|
||||||
return (keyword) => {
|
|
||||||
this.selectQueryUser(keyword, options)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
selectQueryUser(keyword, options) {
|
|
||||||
options.length = 0
|
|
||||||
this.$axios.post("/platform/condolence/apply/listUser", { keyword: keyword }).then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
options.push(...res.data)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
helpUserChange(val) {
|
|
||||||
const user = this.helpUserOptions.find(o => o.id === val)
|
|
||||||
if(user) {
|
|
||||||
const { userName, loginName, unitId, unitName, unionId, unionName } = user
|
|
||||||
this.$set(this.formData, "helpUserName", userName)
|
|
||||||
this.$set(this.formData, "helpLoginName", loginName)
|
|
||||||
this.$set(this.formData, "helpUnitId", unitId)
|
|
||||||
this.$set(this.formData, "helpUnitName", unitName)
|
|
||||||
this.$set(this.formData, "helpUnionId", unionId)
|
|
||||||
this.$set(this.formData, "helpUnionName", unionName)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
payUserChange(val) {
|
|
||||||
const user = this.payUserOptions.find(o => o.id === val)
|
|
||||||
if(user) {
|
|
||||||
const { userName, loginName } = user
|
|
||||||
this.$set(this.formData, "payUserName", userName)
|
|
||||||
this.$set(this.formData, "payLoginName", loginName)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
typeChange(id) {
|
|
||||||
this.chooseType = this.typeOptions.find(o => o.id === id)
|
|
||||||
if (this.chooseType) {
|
|
||||||
this.$set(this.formData, "money", this.chooseType.money)
|
|
||||||
this.$set(this.formData, "way", this.chooseType.way)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onSave() {
|
|
||||||
this.$confirm("您确定保存吗?", "提示", {
|
|
||||||
confirmButtonText: "确定",
|
|
||||||
cancelButtonText: "取消",
|
|
||||||
type: "warning"
|
|
||||||
}).then(() => {
|
|
||||||
this.$axios.post('/platform/condolence/apply/save', {data: JSON.stringify(this.formData)}).then(res => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.$message.success(res.msg)
|
|
||||||
window.location.href = '/platform/condolence/mine'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
|
||||||
onSubmit() {
|
|
||||||
this.$refs.formRef.validate((valid) => {
|
|
||||||
if (valid) {
|
|
||||||
this.$confirm("您确定要提交吗?", "提示", {
|
|
||||||
confirmButtonText: "确定",
|
|
||||||
cancelButtonText: "取消",
|
|
||||||
type: "warning"
|
|
||||||
}).then(() => {
|
|
||||||
this.$axios.post('/platform/condolence/apply/submit', {
|
|
||||||
data: JSON.stringify(this.formData)
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.$message.success(res.msg)
|
|
||||||
window.location.href = '/platform/condolence/mine'
|
|
||||||
}
|
}
|
||||||
})
|
},
|
||||||
})
|
selectQueryUser(keyword, options) {
|
||||||
}
|
options.length = 0
|
||||||
})
|
this.$axios.post("/platform/condolence/apply/listUser", { keyword: keyword }).then((res) => {
|
||||||
},
|
if (res.code === 0) {
|
||||||
onFinishTask() {
|
options.push(...res.data)
|
||||||
this.$refs.formRef.validate((valid) => {
|
}
|
||||||
if (valid) {
|
|
||||||
this.$confirm("您确定要提交吗?", "提示", {
|
|
||||||
confirmButtonText: "确定",
|
|
||||||
cancelButtonText: "取消",
|
|
||||||
type: "warning"
|
|
||||||
}).then(() => {
|
|
||||||
this.$axios.post('/platform/condolence/apply/submitAgain', {
|
|
||||||
data: JSON.stringify(this.formData),
|
|
||||||
taskId: GetQueryString("taskId")
|
|
||||||
}).then(res => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.$message.success(res.msg)
|
|
||||||
window.location.href = '/platform/condolence/mine'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
init() {
|
|
||||||
if (this.id) {
|
|
||||||
this.$axios.post("/platform/condolence/mine/info", { id: this.id }).then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.formData = res.data
|
|
||||||
this.selectQueryUser(this.formData.helpLoginName, this.helpUserOptions)
|
|
||||||
this.selectQueryUser(this.formData.payLoginName, this.payUserOptions)
|
|
||||||
this.chooseType = this.typeOptions.find(o => o.id === this.formData.type)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
const { username, loginname, id, unit, union, mobile } = this.$store.state.user
|
|
||||||
this.formData = {
|
|
||||||
applyUserName: username,
|
|
||||||
applyLoginName: loginname,
|
|
||||||
applyUserId: id,
|
|
||||||
applyUnitId: unit?.id,
|
|
||||||
applyUnitName: unit?.name,
|
|
||||||
applyUnionId: union?.id,
|
|
||||||
applyUnionName: union?.name,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
queryCondolenceType() {
|
|
||||||
this.$axios.post('/platform/condolence/type/queryCondolenceType')
|
|
||||||
.then((resp) => {
|
|
||||||
this.typeOptions = resp.data
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
},
|
helpUserChange(val) {
|
||||||
created() {
|
const user = this.helpUserOptions.find(o => o.id === val)
|
||||||
this.queryCondolenceType()
|
if (user) {
|
||||||
this.init()
|
const { userName, loginName, unitId, unitName, unionId, unionName } = user
|
||||||
}
|
this.$set(this.formData, "helpUserName", userName)
|
||||||
})
|
this.$set(this.formData, "helpLoginName", loginName)
|
||||||
|
this.$set(this.formData, "helpUnitId", unitId)
|
||||||
|
this.$set(this.formData, "helpUnitName", unitName)
|
||||||
|
this.$set(this.formData, "helpUnionId", unionId)
|
||||||
|
this.$set(this.formData, "helpUnionName", unionName)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
payUserChange(val) {
|
||||||
|
const user = this.payUserOptions.find(o => o.id === val)
|
||||||
|
if (user) {
|
||||||
|
const { userName, loginName } = user
|
||||||
|
this.$set(this.formData, "payUserName", userName)
|
||||||
|
this.$set(this.formData, "payLoginName", loginName)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
typeChange(id) {
|
||||||
|
this.chooseType = this.typeOptions.find(o => o.id === id)
|
||||||
|
if (this.chooseType) {
|
||||||
|
this.$set(this.formData, "money", this.chooseType.money)
|
||||||
|
this.$set(this.formData, "way", this.chooseType.way)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onSave() {
|
||||||
|
this.$confirm("您确定保存吗?", "提示", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/platform/condolence/apply/save", { data: JSON.stringify(this.formData) }).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$message.success(res.msg)
|
||||||
|
window.location.href = "/platform/condolence/mine"
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onSubmit() {
|
||||||
|
this.$refs.formRef.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$confirm("您确定要提交吗?", "提示", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/platform/condolence/apply/submit", {
|
||||||
|
data: JSON.stringify(this.formData)
|
||||||
|
}).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$message.success(res.msg)
|
||||||
|
window.location.href = "/platform/condolence/mine"
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onFinishTask() {
|
||||||
|
this.$refs.formRef.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$confirm("您确定要提交吗?", "提示", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/platform/condolence/apply/submitAgain", {
|
||||||
|
data: JSON.stringify(this.formData),
|
||||||
|
taskId: GetQueryString("taskId")
|
||||||
|
}).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$message.success(res.msg)
|
||||||
|
window.location.href = "/platform/condolence/mine"
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
init() {
|
||||||
|
if (this.bizId) {
|
||||||
|
this.$axios.post("/platform/condolence/mine/info", { id: this.bizId }).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.formData = res.data
|
||||||
|
this.selectQueryUser(this.formData.helpLoginName, this.helpUserOptions)
|
||||||
|
this.selectQueryUser(this.formData.payLoginName, this.payUserOptions)
|
||||||
|
this.chooseType = this.typeOptions.find(o => o.id === this.formData.type)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
const { username, loginname, id, unit, union, mobile } = this.$store.state.user
|
||||||
|
this.formData = {
|
||||||
|
applyUserName: username,
|
||||||
|
applyLoginName: loginname,
|
||||||
|
applyUserId: id,
|
||||||
|
applyUnitId: unit?.id,
|
||||||
|
applyUnitName: unit?.name,
|
||||||
|
applyUnionId: union?.id,
|
||||||
|
applyUnionName: union?.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
queryCondolenceType() {
|
||||||
|
this.$axios.post("/platform/condolence/type/queryCondolenceType")
|
||||||
|
.then((resp) => {
|
||||||
|
this.typeOptions = resp.data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.queryCondolenceType()
|
||||||
|
this.init()
|
||||||
|
}
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!--#
|
<!--#
|
||||||
|
|||||||
@@ -3,12 +3,6 @@ layout("/layouts/platform_h5.html"){
|
|||||||
#-->
|
#-->
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
#app {
|
|
||||||
background-color: #f7f8fa;
|
|
||||||
height: 100vh;
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 同意条款样式 */
|
/* 同意条款样式 */
|
||||||
.agree-section {
|
.agree-section {
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
@@ -103,7 +97,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
|
|
||||||
<!-- 照片上传 -->
|
<!-- 照片上传 -->
|
||||||
<van-cell-group title="照片" class="form-section">
|
<van-cell-group title="照片" class="form-section">
|
||||||
<van-field class="more-text" name="avatar" label="">
|
<van-field class="direction-column-field" name="avatar" label="">
|
||||||
<template #input>
|
<template #input>
|
||||||
<h5-file-upload
|
<h5-file-upload
|
||||||
slot="input"
|
slot="input"
|
||||||
@@ -120,7 +114,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
|
|
||||||
<!-- 电子签名 -->
|
<!-- 电子签名 -->
|
||||||
<van-cell-group title="电子签名" class="form-section">
|
<van-cell-group title="电子签名" class="form-section">
|
||||||
<van-field class="more-text" name="signature" label="">
|
<van-field class="direction-column-field" name="signature" label="">
|
||||||
<template #input>
|
<template #input>
|
||||||
<h5-signature v-model="formData.signature" slot="input"></h5-signature>
|
<h5-signature v-model="formData.signature" slot="input"></h5-signature>
|
||||||
</template>
|
</template>
|
||||||
@@ -186,7 +180,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.$axios.post("/platform/club/join/apply/save", { data: JSON.stringify(this.formData) }).then(res => {
|
this.$axios.post("/platform/club/join/apply/save", { data: JSON.stringify(this.formData) }).then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$toast(res.msg)
|
this.$toast(res.msg)
|
||||||
this.$pjaxReplace("/platform/h5/club/mine")
|
this.$pjaxReplace("/platform/club/join/mine/h5")
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -204,7 +198,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
this.$axios.post("/platform/club/join/apply/submit", this.formData).then(res => {
|
this.$axios.post("/platform/club/join/apply/submit", this.formData).then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$toast(res.msg)
|
this.$toast(res.msg)
|
||||||
this.$pjaxReplace("/platform/h5/club/mine")
|
this.$pjaxReplace("/platform/club/join/mine/h5")
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -226,7 +220,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$toast(res.msg)
|
this.$toast(res.msg)
|
||||||
this.$pjaxReplace("/platform/h5/club/mine")
|
this.$pjaxReplace("/platform/club/join/mine/h5")
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,175 +0,0 @@
|
|||||||
<!--#
|
|
||||||
layout("/layouts/platform_h5.html"){
|
|
||||||
#-->
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.van-field__control--right {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div id="app" v-cloak>
|
|
||||||
<van-sticky>
|
|
||||||
<van-nav-bar title="入会审核" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
|
||||||
<van-search
|
|
||||||
v-model="pageForm.searchKeyword"
|
|
||||||
:show-action="showAction"
|
|
||||||
placeholder="请输入姓名/工号查询"
|
|
||||||
@search="doSearch"
|
|
||||||
@cancel="doSearch"
|
|
||||||
></van-search>
|
|
||||||
<van-dropdown-menu>
|
|
||||||
<van-dropdown-item v-model="pageForm.applyType" :options="applyTypeOptions" @change="doSearch"></van-dropdown-item>
|
|
||||||
<van-dropdown-item v-model="pageForm.auditType" :options="auditTypeOptions" @change="doSearch"></van-dropdown-item>
|
|
||||||
</van-dropdown-menu>
|
|
||||||
</van-sticky>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<van-list v-if="tableData.length>0" v-model="tableLoading" :finished="tableFinished" finished-text="没有更多了" @load="pageData">
|
|
||||||
<div class="table-list">
|
|
||||||
<div class="table-card" v-for="row in tableData" :key="row.id">
|
|
||||||
<van-cell>
|
|
||||||
<template slot="title">
|
|
||||||
<div class="flex-align">
|
|
||||||
<span class="font-size3 bold">{{row.userName}}</span>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</van-cell>
|
|
||||||
<van-cell title="申请协会" :value="row.clubName"></van-cell>
|
|
||||||
<van-cell title="工号" :value="row.loginName"></van-cell>
|
|
||||||
<van-cell title="性别" :value="row.sex"></van-cell>
|
|
||||||
<van-cell title="所属工会" :value="row.unionName"></van-cell>
|
|
||||||
<van-cell v-if="pageForm.applyType === 1 && row.status" title="入会状态">
|
|
||||||
<span v-if="row.status == 1">待协会审核</span>
|
|
||||||
<span v-else-if="row.status == 2">协会不通过</span>
|
|
||||||
<span v-else-if="row.status == 3">待校工会审核</span>
|
|
||||||
<span v-else-if="row.status == 4">校工会不通过</span>
|
|
||||||
<span v-else-if="row.status == 5">审核通过</span>
|
|
||||||
</van-cell>
|
|
||||||
<van-cell v-if="pageForm.applyType === 2 && row.exitStatus" title="退会状态">
|
|
||||||
<span v-if="row.exitStatus == 1">待协会审核</span>
|
|
||||||
<span v-else-if="row.exitStatus == 2">协会不通过</span>
|
|
||||||
<span v-else-if="row.exitStatus == 3">待校工会审核</span>
|
|
||||||
<span v-else-if="row.exitStatus == 4">校工会不通过</span>
|
|
||||||
<span v-else-if="row.exitStatus == 5">审核通过</span>
|
|
||||||
</van-cell>
|
|
||||||
<van-cell v-if="pageForm.auditType !== 2 && (row.status === 1 || row.exitStatus === 1)" class="table-card-footer">
|
|
||||||
<van-button size="small" @click="openPayed(row, false)" type="danger">不通过</van-button>
|
|
||||||
<van-button size="small" @click="openPayed(row, true)" type="info">通过</van-button>
|
|
||||||
</van-cell>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</van-list>
|
|
||||||
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<van-dialog v-model="payedShow" title="是否缴费" show-cancel-button :lazy-render="false" @confirm="doAudit">
|
|
||||||
<van-radio-group v-model="payed">
|
|
||||||
<van-cell-group>
|
|
||||||
<van-cell title="已缴费" clickable @click="payed = true">
|
|
||||||
<van-radio slot="right-icon" :name="true"></van-radio>
|
|
||||||
</van-cell>
|
|
||||||
<van-cell title="未缴费" clickable @click="payed = false">
|
|
||||||
<van-radio slot="right-icon" :name="false"></van-radio>
|
|
||||||
</van-cell>
|
|
||||||
</van-cell-group>
|
|
||||||
</van-radio-group>
|
|
||||||
</van-dialog>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
const vue = new Vue({
|
|
||||||
el: "#app",
|
|
||||||
store,
|
|
||||||
components: {},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
showAction: true,
|
|
||||||
payedShow: false,
|
|
||||||
payed: false,
|
|
||||||
pageForm: {
|
|
||||||
pageNumber: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
totalCount: 0,
|
|
||||||
searchKeyword: ""
|
|
||||||
},
|
|
||||||
applyTypeOptions: [
|
|
||||||
{ text: "申请加入", value: 1 },
|
|
||||||
{ text: "申请退会", value: 2 }
|
|
||||||
],
|
|
||||||
auditTypeOptions: [
|
|
||||||
{ text: "全部", value: 1 },
|
|
||||||
{ text: "已审核", value: 2 },
|
|
||||||
{ text: "未审核", value: 3 }
|
|
||||||
],
|
|
||||||
typeOptions: [],
|
|
||||||
tableData: [],
|
|
||||||
auditResult: false,
|
|
||||||
auditIdList: []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
openPayed(row, flag) {
|
|
||||||
this.auditResult = flag
|
|
||||||
this.auditIdList = [row.id]
|
|
||||||
if (this.pageForm.applyType === 1) {
|
|
||||||
this.payedShow = true
|
|
||||||
} else {
|
|
||||||
this.doAudit()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async doAudit() {
|
|
||||||
const confirm = await this.$dialog.confirm({
|
|
||||||
title: "提示",
|
|
||||||
message: "您确定要提交审核吗?"
|
|
||||||
})
|
|
||||||
if (confirm === "confirm") {
|
|
||||||
const resp = await this.$axios.post("/platform/club/applyJoin/clubAudit/doAudit", {
|
|
||||||
ids: JSON.stringify(this.auditIdList),
|
|
||||||
auditResult: this.auditResult,
|
|
||||||
auditType: 1,
|
|
||||||
applyType: this.pageForm.applyType,
|
|
||||||
payed: this.payed
|
|
||||||
})
|
|
||||||
if (resp.code === 0) {
|
|
||||||
this.$toast.success(resp.msg)
|
|
||||||
this.auditIdList = []
|
|
||||||
this.payedShow = false
|
|
||||||
this.doSearch()
|
|
||||||
} else {
|
|
||||||
this.$toast(resp.msg)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
pageData() {
|
|
||||||
this.tableLoading = true
|
|
||||||
this.pageForm.source = 1
|
|
||||||
this.$axios.post("/platform/club/applyJoin/clubAudit/pageData", this.pageForm).then((resp) => {
|
|
||||||
this.tableData = this.tableData.concat(resp.data.list)
|
|
||||||
this.pageForm.totalCount = resp.data.totalCount
|
|
||||||
if (this.tableData.length >= this.pageForm.totalCount) {
|
|
||||||
this.tableFinished = true
|
|
||||||
} else {
|
|
||||||
this.pageForm.pageNumber++
|
|
||||||
}
|
|
||||||
this.tableLoading = false
|
|
||||||
})
|
|
||||||
},
|
|
||||||
doSearch() {
|
|
||||||
this.pageForm.pageNumber = 1
|
|
||||||
this.pageForm.totalCount = 0
|
|
||||||
this.tableData = []
|
|
||||||
this.pageData()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
this.$set(this.pageForm, "applyType", 1)
|
|
||||||
this.$set(this.pageForm, "auditType", 3)
|
|
||||||
this.pageData()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!--#
|
|
||||||
}
|
|
||||||
#-->
|
|
||||||
@@ -0,0 +1,185 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform_h5.html"){
|
||||||
|
#-->
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div id="app">
|
||||||
|
<van-nav-bar title="协会审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||||
|
|
||||||
|
<van-sticky offset-top="46px">
|
||||||
|
<van-search
|
||||||
|
v-model="pageForm.searchKeyword"
|
||||||
|
:show-action="false"
|
||||||
|
:reverse-color="false"
|
||||||
|
input-align="left"
|
||||||
|
placeholder="请输入姓名或者工号搜索"
|
||||||
|
@search="doSearch"
|
||||||
|
></van-search>
|
||||||
|
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||||
|
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||||
|
<van-dropdown-item v-model="pageForm.unionId" :options="unionOptions" :multiple="false"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
</van-dropdown-menu>
|
||||||
|
<van-tabs v-model="pageForm.approvalText"
|
||||||
|
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
|
||||||
|
<van-tab title="已审核" name="1"></van-tab>
|
||||||
|
<van-tab title="未审核" name="0"></van-tab>
|
||||||
|
</van-tabs>
|
||||||
|
</van-sticky>
|
||||||
|
|
||||||
|
<table-list api="/platform/club/join/clubApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" title="clubName" @ready="onReady">
|
||||||
|
<template v-slot="{index,row}">
|
||||||
|
<table-column label="姓名">{{row.userName}}</table-column>
|
||||||
|
<table-column label="工号">{{row.loginName}}</table-column>
|
||||||
|
<table-column label="申请模式">{{row.mode ? '加入' : '退出'}}</table-column>
|
||||||
|
<table-column label="申请时间">{{row.applyDate}}</table-column>
|
||||||
|
<table-column label="当前节点">{{row.curTaskName}}</table-column>
|
||||||
|
</template>
|
||||||
|
<template #actions="{index,row}">
|
||||||
|
<div class="action-btn" @click="onView(row)">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
<span>查看</span>
|
||||||
|
</div>
|
||||||
|
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
|
||||||
|
<i class="fa fa-edit"></i>
|
||||||
|
<span>审核</span>
|
||||||
|
</div>
|
||||||
|
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
||||||
|
<i class="fa fa-reply"></i>
|
||||||
|
<span>撤回</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</table-list>
|
||||||
|
|
||||||
|
<info ref="infoRef">
|
||||||
|
<div v-if="showApprovalForm">
|
||||||
|
<div class="process-title">{{formData.taskName}}</div>
|
||||||
|
<van-form ref="formRef">
|
||||||
|
<van-field
|
||||||
|
v-model="formData.tf_opinion"
|
||||||
|
name="tf_opinion"
|
||||||
|
label="审批意见"
|
||||||
|
placeholder="请输入审批意见"
|
||||||
|
:rules="[{ required: true, message: '请填写审批意见' }]"
|
||||||
|
required
|
||||||
|
maxlength="100"
|
||||||
|
show-word-limit
|
||||||
|
></van-field>
|
||||||
|
</van-form>
|
||||||
|
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||||
|
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||||
|
<van-button type="danger" block @click="handleTaskAction(20)">不同意</van-button>
|
||||||
|
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</info>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
<!--#include('../common/clubUserJoin.js'){}#-->
|
||||||
|
new Vue({
|
||||||
|
el: "#app",
|
||||||
|
store,
|
||||||
|
components: {
|
||||||
|
info: clubUserJoin
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageForm: {
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
totalCount: 0,
|
||||||
|
searchKeyword: '',
|
||||||
|
name: null,
|
||||||
|
approvalText: "0",
|
||||||
|
approval: false,
|
||||||
|
year: new Date().getFullYear(),
|
||||||
|
unionId: null,
|
||||||
|
},
|
||||||
|
unionOptions: [],
|
||||||
|
formData: {},
|
||||||
|
showApprovalForm: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async onReady() {
|
||||||
|
const unionList = await this.$businessTool.listUnion()
|
||||||
|
this.unionOptions = [
|
||||||
|
{
|
||||||
|
text: "全部工会",
|
||||||
|
value: null
|
||||||
|
}
|
||||||
|
].concat(unionList.map((v) => ({ text: v.name, value: v.id })))
|
||||||
|
if (this.unionOptions.length > 0) {
|
||||||
|
this.pageForm.unionId = this.unionOptions[0].value
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onView(row) {
|
||||||
|
this.showApprovalForm = false
|
||||||
|
this.$refs.infoRef.onOpen(row)
|
||||||
|
},
|
||||||
|
onApproval(row) {
|
||||||
|
this.showApprovalForm = true
|
||||||
|
this.$refs.infoRef.onOpen(row)
|
||||||
|
this.formData = {
|
||||||
|
processTaskId: row.taskId,
|
||||||
|
taskName: row.curTaskName
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async handleTaskAction(val) {
|
||||||
|
try {
|
||||||
|
await this.$refs.formRef.validate();
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "您确定要提交吗?"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/flow/common/executeTask", {
|
||||||
|
data: JSON.stringify({
|
||||||
|
...this.formData,
|
||||||
|
submitType: val
|
||||||
|
})
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$refs.infoRef.onClose()
|
||||||
|
this.$toast.success(res.msg)
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onRevoke(row){
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "您确定要撤回吗?"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$toast.success(res.msg)
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
doSearch() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.pageForm.pageNumber = 1
|
||||||
|
this.pageForm.totalCount = 0
|
||||||
|
this.$refs.tableListRef.doSearch()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
@@ -2,77 +2,86 @@ const clubUserJoin = {
|
|||||||
template:
|
template:
|
||||||
/*language=HTML*/
|
/*language=HTML*/
|
||||||
`
|
`
|
||||||
<div class="form-container">
|
<van-action-sheet v-model="visible" title="查看详情">
|
||||||
<template v-if="activeView === 'info'">
|
<div class="detail-container">
|
||||||
<van-cell-group title="协会信息" class="form-section">
|
<van-cell-group title="基本信息">
|
||||||
<van-cell title="协会名称">{{ viewData.clubName }}</van-cell>
|
<van-cell title="协会名称">{{ viewData.clubName }}</van-cell>
|
||||||
</van-cell-group>
|
|
||||||
<van-cell-group title="基本信息" class="form-section">
|
|
||||||
<van-cell title="姓名">{{ viewData.userName }}</van-cell>
|
<van-cell title="姓名">{{ viewData.userName }}</van-cell>
|
||||||
<van-cell title="工号">{{ viewData.loginName }}</van-cell>
|
<van-cell title="工号">{{ viewData.loginName }}</van-cell>
|
||||||
<van-cell title="性别">{{ viewData.sex }}</van-cell>
|
<van-cell title="性别">{{ viewData.sex }}</van-cell>
|
||||||
<van-cell title="出生年月">{{ viewData.birthday }}</van-cell>
|
<van-cell title="出生年月">{{ viewData.birthday }}</van-cell>
|
||||||
<van-cell title="联系电话">{{ viewData.mobile }}</van-cell>
|
<van-cell title="联系电话">{{ viewData.mobile }}</van-cell>
|
||||||
<van-cell title="电子信箱">{{ viewData.email }}</van-cell>
|
<van-cell title="电子信箱">{{ viewData.email }}</van-cell>
|
||||||
</van-cell-group>
|
|
||||||
<van-cell-group title="工作信息" class="form-section">
|
|
||||||
<van-cell title="分工会">{{ viewData.unionName }}</van-cell>
|
<van-cell title="分工会">{{ viewData.unionName }}</van-cell>
|
||||||
<van-cell title="部门">{{ viewData.unitName }}</van-cell>
|
<van-cell title="部门">{{ viewData.unitName }}</van-cell>
|
||||||
<van-cell title="职务">{{ viewData.governmentPosition }}</van-cell>
|
<van-cell title="职务">{{ viewData.governmentPosition }}</van-cell>
|
||||||
<van-cell title="职称">{{ viewData.technicalTitle }}</van-cell>
|
<van-cell title="职称">{{ viewData.technicalTitle }}</van-cell>
|
||||||
<van-cell title="学历">{{ viewData.education }}</van-cell>
|
<van-cell title="学历">{{ viewData.education }}</van-cell>
|
||||||
<van-cell title="学位">{{ viewData.academicDegree }}</van-cell>
|
<van-cell title="学位">{{ viewData.academicDegree }}</van-cell>
|
||||||
</van-cell-group>
|
<van-cell class="direction-column-cell" title="同时参加其他协会情况">
|
||||||
<van-cell-group title="其他信息" class="form-section">
|
|
||||||
<van-cell class="direction-column-field" title="同时参加其他协会情况">
|
|
||||||
{{ viewData.sameTimeJoinOtherClubSituation || '暂无' }}
|
{{ viewData.sameTimeJoinOtherClubSituation || '暂无' }}
|
||||||
</van-cell>
|
</van-cell>
|
||||||
<van-cell class="direction-column-field" title="文化、体育方面的活动经历、获奖情况">
|
<van-cell class="direction-column-cell" title="文化、体育方面的活动经历、获奖情况">
|
||||||
{{ viewData.awardsExperience || '暂无' }}
|
{{ viewData.awardsExperience || '暂无' }}
|
||||||
</van-cell>
|
</van-cell>
|
||||||
</van-cell-group>
|
<van-cell class="direction-column-cell" v-if="viewData.avatar" title="照片">
|
||||||
<van-cell-group title="照片" class="form-section">
|
|
||||||
<van-cell class="direction-column-field" v-if="viewData.avatar">
|
|
||||||
<template slot="default">
|
<template slot="default">
|
||||||
<van-image :src="viewData.avatar"></van-image>
|
<van-image :src="viewData.avatar"></van-image>
|
||||||
</template>
|
</template>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
</template>
|
<template v-for="task in doneTasks">
|
||||||
<template v-if="activeView === 'history'" v-for="task in doneTasks">
|
<van-cell-group :title="task.displayName" v-if="task.ext.isFirstTaskNode">
|
||||||
<div class="mt10">
|
<van-cell title="申请用户">{{ task.ext.initiatorName }}({{task.ext.initiatorAccount}})
|
||||||
|
</van-cell>
|
||||||
</div>
|
<van-cell title="申请时间">{{ task.finishTime }}</van-cell>
|
||||||
</template>
|
<van-cell title="办理结果">
|
||||||
<template v-if="activeView === 'approval'">
|
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||||
|
:value="task.ext.submitType"></dict-tag>
|
||||||
</template>
|
</van-cell>
|
||||||
|
</van-cell-group>
|
||||||
<div class="form-actions">
|
<van-cell-group :title="task.displayName" v-else>
|
||||||
<van-button @click="activeView = 'info'" round type="info">申请信息</van-button>
|
<van-cell title="办理用户">{{ task.taskFormData.userName }}({{task.taskFormData.loginName}})
|
||||||
<van-button @click="activeView = 'history'" round type="info">审核历史</van-button>
|
</van-cell>
|
||||||
<van-button @click="activeView = 'approval'" round type="info">去审核</van-button>
|
<van-cell title="办理时间">{{ task.finishTime }}</van-cell>
|
||||||
|
<van-cell title="办理结果">
|
||||||
|
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||||
|
:value="task.ext.submitType"></dict-tag>
|
||||||
|
</van-cell>
|
||||||
|
<van-cell title="办理意见" v-if="!task.ext.isFirstTaskNode" class="direction-column-cell">
|
||||||
|
<div v-html="task.taskFormData.tf_opinion"></div>
|
||||||
|
</van-cell>
|
||||||
|
</van-cell-group>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<slot></slot>
|
||||||
|
</van-action-sheet>
|
||||||
`,
|
`,
|
||||||
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
|
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
visible:false,
|
||||||
viewData: {},
|
viewData: {},
|
||||||
activeView: 'info',
|
|
||||||
row: {},
|
|
||||||
doneTasks: [],
|
doneTasks: [],
|
||||||
|
row: null,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onOpen(row) {
|
onOpen(row) {
|
||||||
this.row = row
|
this.row = row
|
||||||
this.$axios.post("/platform/club/join/mine/info", { id: row.id }).then((res) => {
|
this.visible = true
|
||||||
|
this.getInfo()
|
||||||
|
this.getDoneTasks()
|
||||||
|
},
|
||||||
|
onClose(){
|
||||||
|
this.visible = false
|
||||||
|
},
|
||||||
|
getInfo() {
|
||||||
|
this.$axios.post("/platform/club/join/mine/info", { id: this.row.id }).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.viewData = res.data
|
this.viewData = res.data
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.getDoneTasks()
|
|
||||||
},
|
},
|
||||||
getDoneTasks() {
|
getDoneTasks() {
|
||||||
this.$axios.post("/flow/common/doneTasks", {bizId: this.row.id}).then((res) => {
|
this.$axios.post("/flow/common/doneTasks", {bizId: this.row.id}).then((res) => {
|
||||||
@@ -81,9 +90,6 @@ const clubUserJoin = {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
openChart(){
|
|
||||||
this.$refs.snakerChartRef.onOpenFull(this.row.instanceProcessDefineId, this.row.instanceId)
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
style: /*language=CSS*/ `
|
style: /*language=CSS*/ `
|
||||||
|
|
||||||
|
|||||||
@@ -48,14 +48,7 @@ layout("/layouts/platform_h5.html"){
|
|||||||
</template>
|
</template>
|
||||||
</table-list>
|
</table-list>
|
||||||
|
|
||||||
<van-popup :style="{ height: '100%',width: '100%', 'background-color': '#F1F1F1'}" position="right" safe-area-inset-bottom v-model="viewShow">
|
<info ref="infoRef"></info>
|
||||||
<van-sticky>
|
|
||||||
<van-nav-bar @click-left="viewShow = false" left-arrow left-text="返回" title="详细信息"></van-nav-bar>
|
|
||||||
</van-sticky>
|
|
||||||
<div style="height: calc(100vh - 46px); overflow-y: auto">
|
|
||||||
<info ref="infoRef"></info>
|
|
||||||
</div>
|
|
||||||
</van-popup>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -68,7 +61,6 @@ layout("/layouts/platform_h5.html"){
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
viewShow: false,
|
|
||||||
pageForm: {
|
pageForm: {
|
||||||
pageNumber: 1,
|
pageNumber: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
@@ -92,13 +84,10 @@ layout("/layouts/platform_h5.html"){
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
onView(row) {
|
onView(row) {
|
||||||
this.viewShow = true
|
this.$refs.infoRef.onOpen(row)
|
||||||
this.$nextTick(() => {
|
|
||||||
this.$refs.infoRef.onOpen(row)
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
onEdit(row) {
|
onEdit(row) {
|
||||||
this.$pjaxReplace("/platform/h5/club/apply?taskId=" + (row.startTaskId || "") + "&bizId=" + row.id)
|
this.$pjaxReplace("/platform/club/join/apply/h5?taskId=" + (row.startTaskId || "") + "&bizId=" + row.id)
|
||||||
},
|
},
|
||||||
onDelete(id) {
|
onDelete(id) {
|
||||||
this.$dialog.confirm({
|
this.$dialog.confirm({
|
||||||
|
|||||||
@@ -0,0 +1,185 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform_h5.html"){
|
||||||
|
#-->
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div id="app">
|
||||||
|
<van-nav-bar title="校工会审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||||
|
|
||||||
|
<van-sticky offset-top="46px">
|
||||||
|
<van-search
|
||||||
|
v-model="pageForm.searchKeyword"
|
||||||
|
:show-action="false"
|
||||||
|
:reverse-color="false"
|
||||||
|
input-align="left"
|
||||||
|
placeholder="请输入姓名或者工号搜索"
|
||||||
|
@search="doSearch"
|
||||||
|
></van-search>
|
||||||
|
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||||
|
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||||
|
<van-dropdown-item v-model="pageForm.unionId" :options="unionOptions" :multiple="false"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
</van-dropdown-menu>
|
||||||
|
<van-tabs v-model="pageForm.approvalText"
|
||||||
|
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
|
||||||
|
<van-tab title="已审核" name="1"></van-tab>
|
||||||
|
<van-tab title="未审核" name="0"></van-tab>
|
||||||
|
</van-tabs>
|
||||||
|
</van-sticky>
|
||||||
|
|
||||||
|
<table-list api="/platform/club/join/schoolUnionApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" title="clubName" @ready="onReady">
|
||||||
|
<template v-slot="{index,row}">
|
||||||
|
<table-column label="姓名">{{row.userName}}</table-column>
|
||||||
|
<table-column label="工号">{{row.loginName}}</table-column>
|
||||||
|
<table-column label="申请模式">{{row.mode ? '加入' : '退出'}}</table-column>
|
||||||
|
<table-column label="申请时间">{{row.applyDate}}</table-column>
|
||||||
|
<table-column label="当前节点">{{row.curTaskName}}</table-column>
|
||||||
|
</template>
|
||||||
|
<template #actions="{index,row}">
|
||||||
|
<div class="action-btn" @click="onView(row)">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
<span>查看</span>
|
||||||
|
</div>
|
||||||
|
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
|
||||||
|
<i class="fa fa-edit"></i>
|
||||||
|
<span>审核</span>
|
||||||
|
</div>
|
||||||
|
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
||||||
|
<i class="fa fa-reply"></i>
|
||||||
|
<span>撤回</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</table-list>
|
||||||
|
|
||||||
|
<info ref="infoRef">
|
||||||
|
<div v-if="showApprovalForm">
|
||||||
|
<div class="process-title">{{formData.taskName}}</div>
|
||||||
|
<van-form ref="formRef">
|
||||||
|
<van-field
|
||||||
|
v-model="formData.tf_opinion"
|
||||||
|
name="tf_opinion"
|
||||||
|
label="审批意见"
|
||||||
|
placeholder="请输入审批意见"
|
||||||
|
:rules="[{ required: true, message: '请填写审批意见' }]"
|
||||||
|
required
|
||||||
|
maxlength="100"
|
||||||
|
show-word-limit
|
||||||
|
></van-field>
|
||||||
|
</van-form>
|
||||||
|
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||||
|
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||||
|
<van-button type="danger" block @click="handleTaskAction(20)">不同意</van-button>
|
||||||
|
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</info>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
<!--#include('../common/clubUserJoin.js'){}#-->
|
||||||
|
new Vue({
|
||||||
|
el: "#app",
|
||||||
|
store,
|
||||||
|
components: {
|
||||||
|
info: clubUserJoin
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageForm: {
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
totalCount: 0,
|
||||||
|
searchKeyword: '',
|
||||||
|
name: null,
|
||||||
|
approvalText: "0",
|
||||||
|
approval: false,
|
||||||
|
year: new Date().getFullYear(),
|
||||||
|
unionId: null,
|
||||||
|
},
|
||||||
|
unionOptions: [],
|
||||||
|
formData: {},
|
||||||
|
showApprovalForm: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async onReady() {
|
||||||
|
const unionList = await this.$businessTool.listUnion()
|
||||||
|
this.unionOptions = [
|
||||||
|
{
|
||||||
|
text: "全部工会",
|
||||||
|
value: null
|
||||||
|
}
|
||||||
|
].concat(unionList.map((v) => ({ text: v.name, value: v.id })))
|
||||||
|
if (this.unionOptions.length > 0) {
|
||||||
|
this.pageForm.unionId = this.unionOptions[0].value
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onView(row) {
|
||||||
|
this.showApprovalForm = false
|
||||||
|
this.$refs.infoRef.onOpen(row)
|
||||||
|
},
|
||||||
|
onApproval(row) {
|
||||||
|
this.showApprovalForm = true
|
||||||
|
this.$refs.infoRef.onOpen(row)
|
||||||
|
this.formData = {
|
||||||
|
processTaskId: row.taskId,
|
||||||
|
taskName: row.curTaskName
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async handleTaskAction(val) {
|
||||||
|
try {
|
||||||
|
await this.$refs.formRef.validate();
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "您确定要提交吗?"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/flow/common/executeTask", {
|
||||||
|
data: JSON.stringify({
|
||||||
|
...this.formData,
|
||||||
|
submitType: val
|
||||||
|
})
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$refs.infoRef.onClose()
|
||||||
|
this.$toast.success(res.msg)
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onRevoke(row){
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "您确定要撤回吗?"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$toast.success(res.msg)
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
doSearch() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.pageForm.pageNumber = 1
|
||||||
|
this.pageForm.totalCount = 0
|
||||||
|
this.$refs.tableListRef.doSearch()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
@@ -1,253 +0,0 @@
|
|||||||
<!--#
|
|
||||||
layout("/layouts/platform_h5.html"){
|
|
||||||
#-->
|
|
||||||
<div id="app" v-cloak>
|
|
||||||
<div>
|
|
||||||
<van-nav-bar title="慰问申请" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
|
||||||
<van-cell-group>
|
|
||||||
<form novalidate @submit.prevent="onSubmit">
|
|
||||||
<van-field v-model="formData.handledByUserName" label="经办人" readonly></van-field>
|
|
||||||
<van-field v-model="formData.applyDateTime" label="申请时间" readonly></van-field>
|
|
||||||
<van-field
|
|
||||||
v-model="formData.beComfortedUserName"
|
|
||||||
name="beComfortedUserName"
|
|
||||||
label="慰问对象"
|
|
||||||
required
|
|
||||||
v-validate="'required'"
|
|
||||||
:error="errors.has('beComfortedUserName')"
|
|
||||||
:error-message="errors.first('beComfortedUserName')"
|
|
||||||
@input="userRemoteMethod"
|
|
||||||
placeholder="请输入工号或姓名选择慰问对象"
|
|
||||||
></van-field>
|
|
||||||
<van-action-sheet
|
|
||||||
:actions="userList"
|
|
||||||
:close-on-click-action="true"
|
|
||||||
@cancel="userList = []"
|
|
||||||
@select="onUserSelect"
|
|
||||||
title="慰问对象"
|
|
||||||
v-model="sheetShow"
|
|
||||||
></van-action-sheet>
|
|
||||||
|
|
||||||
<van-field
|
|
||||||
v-model="formData.payeeUserName"
|
|
||||||
name="payeeUserName"
|
|
||||||
label="收款人"
|
|
||||||
required
|
|
||||||
v-validate="'required'"
|
|
||||||
:error="errors.has('payeeUserName')"
|
|
||||||
:error-message="errors.first('payeeUserName')"
|
|
||||||
@input="payeeUserRemoteMethod"
|
|
||||||
placeholder="请输入工号或姓名选择收款人"
|
|
||||||
></van-field>
|
|
||||||
<van-action-sheet
|
|
||||||
:actions="payeeUserList"
|
|
||||||
:close-on-click-action="true"
|
|
||||||
@cancel="payeeUserList = []"
|
|
||||||
@select="payeeOnUserSelect"
|
|
||||||
title="收款人"
|
|
||||||
v-model="payeeSheetShow"
|
|
||||||
></van-action-sheet>
|
|
||||||
<van-field
|
|
||||||
v-model="formData.typeName"
|
|
||||||
name="typeName"
|
|
||||||
label="慰问类型"
|
|
||||||
required
|
|
||||||
v-validate="'required'"
|
|
||||||
:error="errors.has('typeName')"
|
|
||||||
:error-message="errors.first('typeName')"
|
|
||||||
readonly
|
|
||||||
placeholder="请点击选择慰问类型"
|
|
||||||
@click="showTypePicker = true"
|
|
||||||
clickable
|
|
||||||
></van-field>
|
|
||||||
<van-popup position="bottom" round v-model:show="showTypePicker">
|
|
||||||
<van-picker :columns="typeColumns" @cancel="showTypePicker = false" @confirm="onTypeConfirm" show-toolbar></van-picker>
|
|
||||||
</van-popup>
|
|
||||||
<van-field
|
|
||||||
v-model="formData.money"
|
|
||||||
name="money"
|
|
||||||
label="慰问金额"
|
|
||||||
readonly
|
|
||||||
placeholder="请选择慰问类型后自动匹配"
|
|
||||||
type="number"
|
|
||||||
></van-field>
|
|
||||||
|
|
||||||
<van-field
|
|
||||||
v-model="formData.applyReason"
|
|
||||||
label="申请事由"
|
|
||||||
v-validate="'required'"
|
|
||||||
:error="errors.has('applyReason')"
|
|
||||||
:error-message="errors.first('applyReason')"
|
|
||||||
type="textarea"
|
|
||||||
rows="2"
|
|
||||||
autosize
|
|
||||||
maxlength="200"
|
|
||||||
show-word-limit
|
|
||||||
placeholder="请输入申请事由"
|
|
||||||
></van-field>
|
|
||||||
<van-field
|
|
||||||
label="附件"
|
|
||||||
name="files"
|
|
||||||
v-model="formData.files"
|
|
||||||
data-vv-validate-on="input"
|
|
||||||
:error="errors.has('files')"
|
|
||||||
:error-message="errors.first('files')"
|
|
||||||
class="direction-column-field"
|
|
||||||
>
|
|
||||||
<h5-file-upload
|
|
||||||
slot="input"
|
|
||||||
:value.sync="formData.files"
|
|
||||||
:upload_number="10"
|
|
||||||
upload_mode="file"
|
|
||||||
upload_result_category="array"
|
|
||||||
upload_result_type="url"
|
|
||||||
complete_result
|
|
||||||
></h5-file-upload>
|
|
||||||
</van-field>
|
|
||||||
<!--<van-field
|
|
||||||
label="签字"
|
|
||||||
name="signature"
|
|
||||||
v-model="formData.signature"
|
|
||||||
required
|
|
||||||
v-validate="'required'"
|
|
||||||
:error="errors.has('signature')"
|
|
||||||
:error-message="errors.first('signature')"
|
|
||||||
class="direction-column-field"
|
|
||||||
>
|
|
||||||
<h5-signature v-model="formData.signature" slot="input"></h5-signature>
|
|
||||||
</van-field>-->
|
|
||||||
<van-cell cell-class="form-button-cell">
|
|
||||||
<van-button type="primary" size="large" block type="submit">提 交</van-button>
|
|
||||||
</van-cell>
|
|
||||||
</form>
|
|
||||||
</van-cell-group>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<script>
|
|
||||||
new Vue({
|
|
||||||
el: "#app",
|
|
||||||
store,
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
formData: {
|
|
||||||
applyReason: '',
|
|
||||||
},
|
|
||||||
id: "",
|
|
||||||
userList: [],
|
|
||||||
sheetShow: false,
|
|
||||||
payeeUserList: [],
|
|
||||||
payeeSheetShow: false,
|
|
||||||
showTypePicker: false,
|
|
||||||
typeColumns: [],
|
|
||||||
typeOptions: []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
onSubmit() {
|
|
||||||
this.$validator.validateAll().then((valid) => {
|
|
||||||
if (valid) {
|
|
||||||
this.$axios.post("/platform/condolence/apply/submit", {
|
|
||||||
condolence: JSON.stringify(this.formData)
|
|
||||||
}).then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.$toast.success(res.msg)
|
|
||||||
// this.$pjaxReplace("/platform/h5/proposal/mine")
|
|
||||||
} else {
|
|
||||||
this.$toast.fail(res.data.msg)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
this.$toast.fail("请填写必填项")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
onTypeConfirm(o) {
|
|
||||||
this.$set(this.formData, "typeName", o.text)
|
|
||||||
this.$set(this.formData, "type", o.value)
|
|
||||||
this.typeChange(o.value)
|
|
||||||
this.showTypePicker = false
|
|
||||||
},
|
|
||||||
onUserSelect(o) {
|
|
||||||
this.$set(this.formData, "beComfortedUserId", o.id)
|
|
||||||
this.$set(this.formData, "beComfortedUserName", o.name)
|
|
||||||
this.sheetShow = false
|
|
||||||
},
|
|
||||||
payeeOnUserSelect(o) {
|
|
||||||
this.$set(this.formData, "payeeUserId", o.id)
|
|
||||||
this.$set(this.formData, "payeeUserName", o.name)
|
|
||||||
this.payeeSheetShow = false
|
|
||||||
},
|
|
||||||
async userRemoteMethod(event) {
|
|
||||||
if (event) {
|
|
||||||
const arr = await this.getUser(event)
|
|
||||||
this.userList = arr.map((v) => {
|
|
||||||
return {
|
|
||||||
name: v.userName + "(" + v.loginName + ")",
|
|
||||||
id: v.id
|
|
||||||
}
|
|
||||||
})
|
|
||||||
this.sheetShow = true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async payeeUserRemoteMethod(event) {
|
|
||||||
if (event) {
|
|
||||||
const arr = await this.getUser(event)
|
|
||||||
this.payeeUserList = arr.map((v) => {
|
|
||||||
return {
|
|
||||||
name: v.userName + "(" + v.loginName + ")",
|
|
||||||
id: v.id
|
|
||||||
}
|
|
||||||
})
|
|
||||||
this.payeeSheetShow = true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async getUser(keyWord) {
|
|
||||||
const resp = await this.$axios.post("/platform/condolence/apply/listBeComfortedUser", { keyWord: keyWord })
|
|
||||||
return resp.data
|
|
||||||
},
|
|
||||||
typeChange(id) {
|
|
||||||
const t = this.typeOptions.find((t) => t.id === id)
|
|
||||||
this.$set(this.formData, "money", t.money)
|
|
||||||
},
|
|
||||||
async listType() {
|
|
||||||
const res = await this.$axios.post("/platform/condolence/common/listType")
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.typeOptions = JSON.parse(JSON.stringify(res.data))
|
|
||||||
res.data.forEach((v) => {
|
|
||||||
this.typeColumns.push({ value: v.id, text: v.name + "(" + v.code + ")" })
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
init() {
|
|
||||||
if (this.id) {
|
|
||||||
this.$axios.post("/platform/condolence/common/info", { id: this.id }).then(async (res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.formData = res.data
|
|
||||||
this.typeChange(this.formData.type)
|
|
||||||
this.$refs.beComfortedUserRef.options = await this.getUser(this.formData.beComfortedUserId)
|
|
||||||
this.$refs.payeeUserRef.options = await this.getUser(this.formData.payeeUserId)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
const { username, loginname, id, unit, union } = this.$store.state.user
|
|
||||||
this.$set(this.formData, "handledBy", id)
|
|
||||||
this.$set(this.formData, "handledByUserName", username)
|
|
||||||
this.$set(this.formData, "handledByLoginName", loginname)
|
|
||||||
this.$set(this.formData, "handledByUnitName", unit?.name)
|
|
||||||
this.$set(this.formData, "handledByUnitId", unit?.id)
|
|
||||||
this.$set(this.formData, "handledByUnionName", union?.name)
|
|
||||||
this.$set(this.formData, "handledByUnionId", union?.id)
|
|
||||||
this.$set(this.formData, "applyDateTime", this.$moment().format("YYYY-MM-DD"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async created() {
|
|
||||||
await this.listType()
|
|
||||||
this.init()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!--#
|
|
||||||
}
|
|
||||||
#-->
|
|
||||||
-243
@@ -1,243 +0,0 @@
|
|||||||
<!--#
|
|
||||||
layout("/layouts/platform_h5.html"){
|
|
||||||
#-->
|
|
||||||
<div id="app" v-cloak>
|
|
||||||
<van-sticky>
|
|
||||||
<van-nav-bar title="分工会审核" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
|
||||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
|
||||||
<van-dropdown-item :options="yearList" @change="doSearch" v-model="pageForm.year"></van-dropdown-item>
|
|
||||||
<van-dropdown-item :options="typeList" @change="doSearch" v-model="pageForm.type"></van-dropdown-item>
|
|
||||||
<van-dropdown-item :options="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
|
||||||
</van-dropdown-menu>
|
|
||||||
<van-tabs v-model="pageForm.audit" @change="doSearch">
|
|
||||||
<van-tab title="已审核" name="1"></van-tab>
|
|
||||||
<van-tab title="未审核" name="0"></van-tab>
|
|
||||||
</van-tabs>
|
|
||||||
</van-sticky>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<van-list v-if="tableData.length>0" v-model="tableLoading" :finished="tableFinished" finished-text="没有更多了" @load="pageData">
|
|
||||||
<div class="table-list">
|
|
||||||
<div class="table-card" v-for="row in tableData" :key="row.id">
|
|
||||||
<van-cell title="经办人" :value="row.handledByUserName"></van-cell>
|
|
||||||
<van-cell title="经办人单位" :value="row.handledByUnitName"></van-cell>
|
|
||||||
<van-cell title="被慰问人" :value="row.beComfortedUserName"></van-cell>
|
|
||||||
<van-cell title="被慰问人单位" :value="row.beComfortedUserUnitName"></van-cell>
|
|
||||||
<van-cell title="申请时间" :value="row.applyDateTime"></van-cell>
|
|
||||||
<van-cell title="当前节点" :value="row.currentTaskDisPlayName"></van-cell>
|
|
||||||
<van-cell class="table-card-footer">
|
|
||||||
<van-button type="info" size="small" @click="onOpen(row)">查看</van-button>
|
|
||||||
<van-button
|
|
||||||
v-if="row.processTaskState === $processConstant.TASK_STATE.DOING"
|
|
||||||
@click="onOpen(row, true)"
|
|
||||||
size="small"
|
|
||||||
type="primary"
|
|
||||||
>
|
|
||||||
审核
|
|
||||||
</van-button>
|
|
||||||
<van-button v-if="row.processTaskState===20 && row.processTaskCanWithDraw" @click="withdraw(row)" size="small" type="primary">
|
|
||||||
撤回
|
|
||||||
</van-button>
|
|
||||||
</van-cell>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</van-list>
|
|
||||||
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<van-popup v-model="infoShow" position="right" :style="{ height: '100%', width: '100%' }" safe-area-inset-bottom>
|
|
||||||
<van-sticky>
|
|
||||||
<van-nav-bar @click-left="infoShow=false" left-arrow title="慰问详细信息"></van-nav-bar>
|
|
||||||
</van-sticky>
|
|
||||||
<flow-audit
|
|
||||||
ref="flowAuditRef"
|
|
||||||
@form_valid="formValid"
|
|
||||||
@form_confirm="formConfirm"
|
|
||||||
@close="infoShow = false"
|
|
||||||
:form_valid_success="formValidSuccess"
|
|
||||||
>
|
|
||||||
<template slot="businessInfo">
|
|
||||||
<condolence-info ref="condolenceInfoRef" :id="id"></condolence-info>
|
|
||||||
</template>
|
|
||||||
<template slot="processRecords">
|
|
||||||
<process-records :id="id"></process-records>
|
|
||||||
</template>
|
|
||||||
<template slot="form">
|
|
||||||
<form novalidate>
|
|
||||||
<van-field
|
|
||||||
v-model="formData.comment"
|
|
||||||
label="审核意见"
|
|
||||||
v-validate="'required'"
|
|
||||||
:error="errors.has('comment')"
|
|
||||||
:error-message="errors.first('comment')"
|
|
||||||
type="textarea"
|
|
||||||
rows="2"
|
|
||||||
required
|
|
||||||
autosize
|
|
||||||
maxlength="200"
|
|
||||||
show-word-limit
|
|
||||||
placeholder="请输入审核意见"
|
|
||||||
></van-field>
|
|
||||||
</form>
|
|
||||||
</template>
|
|
||||||
</flow-audit>
|
|
||||||
</van-popup>
|
|
||||||
</div>
|
|
||||||
<script>
|
|
||||||
<!--#include("../../common/condolenceInfo.js"){}#-->
|
|
||||||
<!--#include("../../common/processRecord.js"){}#-->
|
|
||||||
new Vue({
|
|
||||||
el: "#app",
|
|
||||||
store,
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
unitList: [],
|
|
||||||
typeList: [{ text: "全部", value: "" }],
|
|
||||||
yearList: [],
|
|
||||||
pageForm: {
|
|
||||||
pageNumber: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
totalCount: 0,
|
|
||||||
audit: "0",
|
|
||||||
unionId: "",
|
|
||||||
unitId: "",
|
|
||||||
year: "",
|
|
||||||
type: ""
|
|
||||||
},
|
|
||||||
tableLoading: false,
|
|
||||||
tableFinished: false,
|
|
||||||
tableData: [],
|
|
||||||
id: "",
|
|
||||||
infoShow: false,
|
|
||||||
formValidSuccess: false,
|
|
||||||
formData: {
|
|
||||||
comment: ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
"condolence-info": MOBILE_CONDOLENCE_INFO,
|
|
||||||
"process-records": MOBILE_CONDOLENCE_PROCESS_RECORDS_COMPONENT
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
onOpen(row, isAudit = false) {
|
|
||||||
this.id = row.id
|
|
||||||
this.infoShow = true
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.$refs.flowAuditRef.onOpen(row, isAudit)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
formValid() {
|
|
||||||
this.$validator.validateAll().then((valid) => {
|
|
||||||
if (valid) {
|
|
||||||
this.formValidSuccess = true
|
|
||||||
} else {
|
|
||||||
this.$toast.fail("请填写必填项")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
formConfirm(taskForm) {
|
|
||||||
this.$axios
|
|
||||||
.post("/platform/condolence/branchUnionAudit/doAudit", {
|
|
||||||
task: JSON.stringify({ ...taskForm, comment: this.formData.comment })
|
|
||||||
})
|
|
||||||
.then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.$refs.flowAuditRef.onClose()
|
|
||||||
this.infoShow = false
|
|
||||||
this.formData.comment = ""
|
|
||||||
this.formValidSuccess = false
|
|
||||||
this.$toast.success(res.msg)
|
|
||||||
this.doSearch()
|
|
||||||
} else {
|
|
||||||
this.$toast.fail(res.msg)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
withdraw({ processTaskId }) {
|
|
||||||
this.$dialog
|
|
||||||
.confirm({
|
|
||||||
title: "提示",
|
|
||||||
message: "您确定要撤回吗?"
|
|
||||||
})
|
|
||||||
.then(() => {
|
|
||||||
this.$axios.post("/platform/condolence/branchUnionAudit/withdraw", { processTaskId }).then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.$toast.success(res.msg)
|
|
||||||
this.doSearch()
|
|
||||||
} else {
|
|
||||||
this.$toast.fail(res.msg)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
.catch(() => {})
|
|
||||||
},
|
|
||||||
viewInfo(row) {
|
|
||||||
this.id = row.id
|
|
||||||
this.infoShow = true
|
|
||||||
},
|
|
||||||
doSearch() {
|
|
||||||
this.pageForm.pageNumber = 1
|
|
||||||
this.tableData = []
|
|
||||||
this.finished = false
|
|
||||||
this.pageData()
|
|
||||||
},
|
|
||||||
pageData() {
|
|
||||||
this.tableLoading = true
|
|
||||||
this.$axios.post("/platform/condolence/branchUnionAudit/pageData", this.pageForm).then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.tableData = this.tableData.concat(res.data.list)
|
|
||||||
this.pageForm.totalCount = res.data.totalCount
|
|
||||||
if (this.tableData.length >= this.pageForm.totalCount) {
|
|
||||||
this.tableFinished = true
|
|
||||||
} else {
|
|
||||||
this.pageForm.pageNumber++
|
|
||||||
}
|
|
||||||
this.tableLoading = false
|
|
||||||
} else {
|
|
||||||
this.$toast(res.msg)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
getCondolenceType() {
|
|
||||||
this.$axios.post("/platform/condolence/common/listOpenType").then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
res.data.forEach((item) => {
|
|
||||||
this.typeList.push({ text: item.name + "(" + item.code + ")", value: item.id })
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
flushUnits() {
|
|
||||||
const unionId = this.$store.state.user.union.id
|
|
||||||
this.$businessTool.listUnit(unionId).then((data) => {
|
|
||||||
this.unitList = data
|
|
||||||
this.unitList.forEach((v) => {
|
|
||||||
v.text = v.name
|
|
||||||
v.value = v.id
|
|
||||||
})
|
|
||||||
if (this.unitList && this.unitList.length > 0) {
|
|
||||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
initData() {
|
|
||||||
this.getCondolenceType()
|
|
||||||
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
|
|
||||||
this.yearList.unshift({ value: i, text: i + "年" })
|
|
||||||
}
|
|
||||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
|
||||||
this.$set(this.pageForm, "type", this.typeList[0].value)
|
|
||||||
|
|
||||||
this.flushUnits()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
this.initData()
|
|
||||||
this.pageData()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
<!--#
|
|
||||||
}
|
|
||||||
#-->
|
|
||||||
-57
@@ -1,57 +0,0 @@
|
|||||||
const MOBILE_CONDOLENCE_INFO = {
|
|
||||||
template: `
|
|
||||||
<div>
|
|
||||||
<van-cell-group>
|
|
||||||
<van-cell>
|
|
||||||
<div slot="title" class="font-size4 bold">
|
|
||||||
申请信息
|
|
||||||
</div>
|
|
||||||
</van-cell>
|
|
||||||
<van-cell title="经办人">{{ viewData.handledByUserName }}</van-cell>
|
|
||||||
<van-cell title="申请时间">{{ viewData.applyDateTime }}</van-cell>
|
|
||||||
<van-cell title="慰问对象">{{ viewData.beComfortedUserName }}</van-cell>
|
|
||||||
<van-cell title="收款人">{{ viewData.payeeUserName }}</van-cell>
|
|
||||||
<van-cell title="慰问类型">{{ viewData.typeName }}</van-cell>
|
|
||||||
<van-cell title="慰问金额">{{ viewData.money }}</van-cell>
|
|
||||||
<van-cell title="申请事由">{{ viewData.applyReason }}</van-cell>
|
|
||||||
<van-cell title="附件">
|
|
||||||
<div slot="label">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</van-cell>
|
|
||||||
</van-cell-group>
|
|
||||||
</div>
|
|
||||||
`,
|
|
||||||
props: {
|
|
||||||
id: { type: String, required: true }
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
viewData: {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
id: {
|
|
||||||
handler: function () {
|
|
||||||
this.findCondolenceInfoById()
|
|
||||||
},
|
|
||||||
immediate: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
findCondolenceInfoById() {
|
|
||||||
if (!this.id) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.$axios
|
|
||||||
.post("/platform/condolence/common/info", {
|
|
||||||
id: this.id
|
|
||||||
})
|
|
||||||
.then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.viewData = res.data
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-78
@@ -1,78 +0,0 @@
|
|||||||
const MOBILE_CONDOLENCE_PROCESS_RECORDS_COMPONENT = {
|
|
||||||
template: `
|
|
||||||
<div class="process-task-record">
|
|
||||||
<template v-for="item in approvalRecord" v-if="approvalRecord.length > 0">
|
|
||||||
<div class="mb25" v-if="item.taskName === '2a9632c6-710f-4d3b-89e4-86566238ce8e'">
|
|
||||||
<van-cell>
|
|
||||||
<div class="font-size4 bold" slot="title">
|
|
||||||
{{item.displayName}}
|
|
||||||
</div>
|
|
||||||
</van-cell>
|
|
||||||
<van-cell-group :key="item.displayName + item.taskParentId">
|
|
||||||
<template v-for="task in item.processTaskVOList">
|
|
||||||
<van-cell title="姓名">{{task.taskActor?.actorUserName}}</van-cell>
|
|
||||||
<van-cell title="工号">{{task.taskActor?.actorId}}</van-cell>
|
|
||||||
<van-cell title="填写时间">{{$moment(task.createdAt)
|
|
||||||
.format('YYYY-MM-DD HH:mm:ss')}}
|
|
||||||
</van-cell>
|
|
||||||
</template>
|
|
||||||
</van-cell-group>
|
|
||||||
</div>
|
|
||||||
<div v-else>
|
|
||||||
<van-cell>
|
|
||||||
<div class="font-size4 bold" slot="title">
|
|
||||||
{{item.displayName}}
|
|
||||||
</div>
|
|
||||||
</van-cell>
|
|
||||||
<van-cell-group :key="item.displayName + item.taskParentId">
|
|
||||||
<template v-for="task in item.processTaskVOList">
|
|
||||||
<van-cell title="姓名">{{task.taskActor?.actorUserName}}</van-cell>
|
|
||||||
<van-cell title="工号">{{task.taskActor?.actorId}}</van-cell>
|
|
||||||
<van-cell title="审核时间">{{task.finishTime ? task.finishTime : '暂无'}}</van-cell>
|
|
||||||
<van-cell title="审核结果"> {{Object.keys(task.ext.submitTypeText).length !== 0 ?
|
|
||||||
task.ext.submitTypeText : '暂无'}}
|
|
||||||
</van-cell>
|
|
||||||
<van-cell title="审核意见"> {{task.ext.comment ? task.ext.comment : '暂无'}}
|
|
||||||
</van-cell>
|
|
||||||
</template>
|
|
||||||
</van-cell-group>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<el-empty description="暂无审核记录" v-else></el-empty>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
`,
|
|
||||||
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
|
|
||||||
props: {
|
|
||||||
id: {
|
|
||||||
type: String,
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
id: {
|
|
||||||
handler: function(val) {
|
|
||||||
if (val) {
|
|
||||||
this.findOne()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
immediate: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
approvalRecord: []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
findOne() {
|
|
||||||
this.$axios.post("/platform/wf/processCommon/approvalRecord", { businessNo: this.id }).then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.approvalRecord = res.data
|
|
||||||
console.log(res.data)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,219 +0,0 @@
|
|||||||
<!--#
|
|
||||||
layout("/layouts/platform_h5.html"){
|
|
||||||
#-->
|
|
||||||
<div id="app" v-cloak>
|
|
||||||
<van-sticky>
|
|
||||||
<van-nav-bar title="慰问信息查询" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
|
||||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
|
||||||
<van-dropdown-item :options="yearList" @change="doSearch" v-model="pageForm.year"></van-dropdown-item>
|
|
||||||
<van-dropdown-item :options="typeList" @change="doSearch" v-model="pageForm.type"></van-dropdown-item>
|
|
||||||
<van-dropdown-item :options="unionList" @change="unionChange" v-model="pageForm.unionId"></van-dropdown-item>
|
|
||||||
<van-dropdown-item :options="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
|
||||||
</van-dropdown-menu>
|
|
||||||
</van-sticky>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<van-list v-if="tableData.length>0" v-model="tableLoading" :finished="tableFinished" finished-text="没有更多了" @load="pageData">
|
|
||||||
<div class="table-list">
|
|
||||||
<div class="table-card" v-for="row in tableData" :key="row.id">
|
|
||||||
<van-cell title="经办人" :value="row.handledByUserName"></van-cell>
|
|
||||||
<van-cell title="经办人单位" :value="row.handledByUnitName"></van-cell>
|
|
||||||
<van-cell title="被慰问人" :value="row.beComfortedUserName"></van-cell>
|
|
||||||
<van-cell title="被慰问人单位" :value="row.beComfortedUserUnitName"></van-cell>
|
|
||||||
<van-cell title="申请时间" :value="row.applyDateTime"></van-cell>
|
|
||||||
<van-cell title="当前节点" :value="row.currentTaskDisPlayName"></van-cell>
|
|
||||||
<van-cell class="table-card-footer">
|
|
||||||
<van-button type="info" size="small" @click="viewInfo(row)">查看</van-button>
|
|
||||||
</van-cell>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</van-list>
|
|
||||||
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<van-popup v-model="infoShow" position="right" :style="{ height: '100%', width: '100%' }" safe-area-inset-bottom>
|
|
||||||
<van-sticky>
|
|
||||||
<van-nav-bar @click-left="infoShow=false" left-arrow title="慰问详细信息"></van-nav-bar>
|
|
||||||
</van-sticky>
|
|
||||||
<flow-audit
|
|
||||||
ref="flowAuditRef"
|
|
||||||
@form_valid="formValid"
|
|
||||||
@form_confirm="formConfirm"
|
|
||||||
@close="infoShow = false"
|
|
||||||
:form_valid_success="formValidSuccess"
|
|
||||||
>
|
|
||||||
<template slot="businessInfo">
|
|
||||||
<condolence-info ref="condolenceInfoRef" :id="id"></condolence-info>
|
|
||||||
</template>
|
|
||||||
<template slot="processRecords">
|
|
||||||
<process-records :id="id"></process-records>
|
|
||||||
</template>
|
|
||||||
<template slot="form">
|
|
||||||
<form novalidate>
|
|
||||||
<van-field
|
|
||||||
v-model="formData.comment"
|
|
||||||
label="审核意见"
|
|
||||||
v-validate="'required'"
|
|
||||||
:error="errors.has('comment')"
|
|
||||||
:error-message="errors.first('comment')"
|
|
||||||
type="textarea"
|
|
||||||
rows="2"
|
|
||||||
required
|
|
||||||
autosize
|
|
||||||
maxlength="200"
|
|
||||||
show-word-limit
|
|
||||||
placeholder="请输入审核意见"
|
|
||||||
></van-field>
|
|
||||||
</form>
|
|
||||||
</template>
|
|
||||||
</flow-audit>
|
|
||||||
</van-popup>
|
|
||||||
</div>
|
|
||||||
<script>
|
|
||||||
<!--#include("../common/condolenceInfo.js"){}#-->
|
|
||||||
<!--#include("../common/processRecord.js"){}#-->
|
|
||||||
new Vue({
|
|
||||||
el: "#app",
|
|
||||||
store,
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
unitList: [],
|
|
||||||
unionList: [],
|
|
||||||
typeList: [{ text: "全部类型", value: "" }],
|
|
||||||
yearList: [],
|
|
||||||
pageForm: {
|
|
||||||
pageNumber: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
totalCount: 0,
|
|
||||||
audit: false,
|
|
||||||
unionId: "",
|
|
||||||
unitId: "",
|
|
||||||
year: "",
|
|
||||||
type: ""
|
|
||||||
},
|
|
||||||
tableLoading: false,
|
|
||||||
tableFinished: false,
|
|
||||||
tableData: [],
|
|
||||||
id: "",
|
|
||||||
infoShow: false,
|
|
||||||
formValidSuccess: false,
|
|
||||||
formData: {
|
|
||||||
comment: ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
"condolence-info": MOBILE_CONDOLENCE_INFO,
|
|
||||||
"process-records": MOBILE_CONDOLENCE_PROCESS_RECORDS_COMPONENT
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
formValid() {
|
|
||||||
this.$validator.validateAll().then((valid) => {
|
|
||||||
if (valid) {
|
|
||||||
console.log(111111)
|
|
||||||
} else {
|
|
||||||
this.$toast.fail("请填写必填项")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
formConfirm(taskForm) {},
|
|
||||||
viewInfo(row, isAudit = false) {
|
|
||||||
this.id = row.id
|
|
||||||
this.infoShow = true
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.$refs.flowAuditRef.onOpen(row, isAudit)
|
|
||||||
})
|
|
||||||
//
|
|
||||||
},
|
|
||||||
doSearch() {
|
|
||||||
this.pageForm.pageNumber = 1
|
|
||||||
this.tableData = []
|
|
||||||
this.finished = false
|
|
||||||
this.pageData()
|
|
||||||
},
|
|
||||||
pageData() {
|
|
||||||
this.tableLoading = true
|
|
||||||
this.$axios.post("/platform/h5/condolence/info/pageData", this.pageForm).then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.tableData = this.tableData.concat(res.data.list)
|
|
||||||
this.pageForm.totalCount = res.data.totalCount
|
|
||||||
if (this.tableData.length >= this.pageForm.totalCount) {
|
|
||||||
this.tableFinished = true
|
|
||||||
} else {
|
|
||||||
this.pageForm.pageNumber++
|
|
||||||
}
|
|
||||||
this.tableLoading = false
|
|
||||||
} else {
|
|
||||||
this.$toast(res.msg)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
getCondolenceType() {
|
|
||||||
this.$axios.post("/platform/condolence/common/listOpenType").then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
res.data.forEach((item) => {
|
|
||||||
this.typeList.push({ text: item.name + "(" + item.code + ")", value: item.id })
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
unionChange() {
|
|
||||||
this.$set(this.pageForm, "unitId", null)
|
|
||||||
this.flushUnits()
|
|
||||||
this.doSearch()
|
|
||||||
},
|
|
||||||
initUnion() {
|
|
||||||
const hasAdmin = this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])
|
|
||||||
const unionId = hasAdmin ? null : this.$store.state.user.union.id
|
|
||||||
this.$businessTool.listUnion(unionId).then((data) => {
|
|
||||||
this.unionList = data
|
|
||||||
this.unionList.forEach((v) => {
|
|
||||||
v.text = v.name
|
|
||||||
v.value = v.id
|
|
||||||
})
|
|
||||||
if (hasAdmin) {
|
|
||||||
this.unionList.unshift({ text: "全部工会", value: null })
|
|
||||||
}
|
|
||||||
if (this.unionList && this.unionList.length > 0) {
|
|
||||||
this.$set(this.pageForm, "unionId", this.unionList[0].value)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
flushUnits() {
|
|
||||||
const hasAdmin = this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])
|
|
||||||
const unionId = hasAdmin ? this.pageForm.unionId : this.$store.state.user.union.id
|
|
||||||
this.$businessTool.listUnit(unionId).then((data) => {
|
|
||||||
this.unitList = data
|
|
||||||
this.unitList.forEach((v) => {
|
|
||||||
v.text = v.name
|
|
||||||
v.value = v.id
|
|
||||||
})
|
|
||||||
if (hasAdmin && !this.pageForm.unionId) {
|
|
||||||
this.unitList.unshift({ text: "全部单位", value: null })
|
|
||||||
}
|
|
||||||
if (this.unitList && this.unitList.length > 0) {
|
|
||||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
initData() {
|
|
||||||
this.getCondolenceType()
|
|
||||||
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
|
|
||||||
this.yearList.unshift({ value: i, text: i + "年" })
|
|
||||||
}
|
|
||||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
|
||||||
this.$set(this.pageForm, "type", this.typeList[0].value)
|
|
||||||
|
|
||||||
this.initUnion()
|
|
||||||
this.flushUnits()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
this.initData()
|
|
||||||
this.pageData()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
<!--#
|
|
||||||
}
|
|
||||||
#-->
|
|
||||||
-270
@@ -1,270 +0,0 @@
|
|||||||
<!--#
|
|
||||||
layout("/layouts/platform_h5.html"){
|
|
||||||
#-->
|
|
||||||
<div id="app" v-cloak>
|
|
||||||
<van-sticky>
|
|
||||||
<van-nav-bar title="校工会审核" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
|
|
||||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
|
||||||
<van-dropdown-item :options="yearList" @change="doSearch" v-model="pageForm.year"></van-dropdown-item>
|
|
||||||
<van-dropdown-item :options="typeList" @change="doSearch" v-model="pageForm.type"></van-dropdown-item>
|
|
||||||
<van-dropdown-item :options="unionList" @change="unionChange" v-model="pageForm.unionId"></van-dropdown-item>
|
|
||||||
<van-dropdown-item :options="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
|
||||||
</van-dropdown-menu>
|
|
||||||
<van-tabs v-model="pageForm.audit" @change="doSearch">
|
|
||||||
<van-tab title="已审核" name="1"></van-tab>
|
|
||||||
<van-tab title="未审核" name="0"></van-tab>
|
|
||||||
</van-tabs>
|
|
||||||
</van-sticky>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<van-list v-if="tableData.length>0" v-model="tableLoading" :finished="tableFinished" finished-text="没有更多了" @load="pageData">
|
|
||||||
<div class="table-list">
|
|
||||||
<div class="table-card" v-for="row in tableData" :key="row.id">
|
|
||||||
<van-cell title="经办人" :value="row.handledByUserName"></van-cell>
|
|
||||||
<van-cell title="经办人单位" :value="row.handledByUnitName"></van-cell>
|
|
||||||
<van-cell title="被慰问人" :value="row.beComfortedUserName"></van-cell>
|
|
||||||
<van-cell title="被慰问人单位" :value="row.beComfortedUserUnitName"></van-cell>
|
|
||||||
<van-cell title="申请时间" :value="row.applyDateTime"></van-cell>
|
|
||||||
<van-cell title="当前节点" :value="row.currentTaskDisPlayName"></van-cell>
|
|
||||||
<van-cell class="table-card-footer">
|
|
||||||
<van-button type="info" size="small" @click="onOpen(row)">查看</van-button>
|
|
||||||
<van-button
|
|
||||||
v-if="row.processTaskState === $processConstant.TASK_STATE.DOING"
|
|
||||||
@click="onOpen(row, true)"
|
|
||||||
size="small"
|
|
||||||
type="primary"
|
|
||||||
type="primary"
|
|
||||||
>
|
|
||||||
审核
|
|
||||||
</van-button>
|
|
||||||
</van-cell>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</van-list>
|
|
||||||
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<van-popup v-model="infoShow" position="right" :style="{ height: '100%', width: '100%' }" safe-area-inset-bottom>
|
|
||||||
<van-sticky>
|
|
||||||
<van-nav-bar @click-left="infoShow=false" left-arrow title="慰问详细信息"></van-nav-bar>
|
|
||||||
</van-sticky>
|
|
||||||
<flow-audit
|
|
||||||
ref="flowAuditRef"
|
|
||||||
@form_valid="formValid"
|
|
||||||
@form_confirm="formConfirm"
|
|
||||||
@close="infoShow = false"
|
|
||||||
:form_valid_success="formValidSuccess"
|
|
||||||
>
|
|
||||||
<template slot="businessInfo">
|
|
||||||
<condolence-info ref="condolenceInfoRef" :id="id"></condolence-info>
|
|
||||||
</template>
|
|
||||||
<template slot="processRecords">
|
|
||||||
<process-records :id="id"></process-records>
|
|
||||||
</template>
|
|
||||||
<template slot="form">
|
|
||||||
<form novalidate>
|
|
||||||
<van-field
|
|
||||||
v-model="formData.comment"
|
|
||||||
label="审核意见"
|
|
||||||
v-validate="'required'"
|
|
||||||
:error="errors.has('comment')"
|
|
||||||
:error-message="errors.first('comment')"
|
|
||||||
type="textarea"
|
|
||||||
rows="2"
|
|
||||||
required
|
|
||||||
autosize
|
|
||||||
maxlength="200"
|
|
||||||
show-word-limit
|
|
||||||
placeholder="请输入审核意见"
|
|
||||||
></van-field>
|
|
||||||
</form>
|
|
||||||
</template>
|
|
||||||
</flow-audit>
|
|
||||||
</van-popup>
|
|
||||||
</div>
|
|
||||||
<script>
|
|
||||||
<!--#include("../../common/condolenceInfo.js"){}#-->
|
|
||||||
<!--#include("../../common/processRecord.js"){}#-->
|
|
||||||
new Vue({
|
|
||||||
el: "#app",
|
|
||||||
store,
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
unitList: [],
|
|
||||||
unionList: [],
|
|
||||||
typeList: [{ text: "全部类型", value: "" }],
|
|
||||||
yearList: [],
|
|
||||||
pageForm: {
|
|
||||||
pageNumber: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
totalCount: 0,
|
|
||||||
audit: "0",
|
|
||||||
unionId: "",
|
|
||||||
unitId: "",
|
|
||||||
year: "",
|
|
||||||
type: ""
|
|
||||||
},
|
|
||||||
tableLoading: false,
|
|
||||||
tableFinished: false,
|
|
||||||
tableData: [],
|
|
||||||
id: "",
|
|
||||||
infoShow: false,
|
|
||||||
formValidSuccess: false,
|
|
||||||
formData: {
|
|
||||||
comment: ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
"condolence-info": MOBILE_CONDOLENCE_INFO,
|
|
||||||
"process-records": MOBILE_CONDOLENCE_PROCESS_RECORDS_COMPONENT
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
onOpen(row, isAudit = false) {
|
|
||||||
this.id = row.id
|
|
||||||
this.infoShow = true
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.$refs.flowAuditRef.onOpen(row, isAudit)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
formValid() {
|
|
||||||
this.$validator.validateAll().then((valid) => {
|
|
||||||
if (valid) {
|
|
||||||
this.formValidSuccess = true
|
|
||||||
} else {
|
|
||||||
this.$toast.fail("请填写必填项")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
formConfirm(taskForm) {
|
|
||||||
this.$axios
|
|
||||||
.post("/platform/condolence/schoolUnionAudit/doAudit", {
|
|
||||||
task: JSON.stringify({ ...taskForm, comment: this.formData.comment })
|
|
||||||
})
|
|
||||||
.then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.$refs.flowAuditRef.onClose()
|
|
||||||
this.infoShow = false
|
|
||||||
this.formData.comment = ""
|
|
||||||
this.formValidSuccess = false
|
|
||||||
this.$toast.success(res.msg)
|
|
||||||
this.doSearch()
|
|
||||||
} else {
|
|
||||||
this.$toast.fail(res.msg)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
withdraw({ processTaskId }) {
|
|
||||||
this.$dialog
|
|
||||||
.confirm({
|
|
||||||
title: "提示",
|
|
||||||
message: "您确定要撤回吗?"
|
|
||||||
})
|
|
||||||
.then(() => {
|
|
||||||
this.$axios.post("/platform/condolence/schoolUnionAudit/withdraw", { processTaskId }).then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.$toast.success(res.msg)
|
|
||||||
this.doSearch()
|
|
||||||
} else {
|
|
||||||
this.$toast.fail(res.msg)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
.catch(() => {})
|
|
||||||
},
|
|
||||||
viewInfo(row) {
|
|
||||||
this.id = row.id
|
|
||||||
this.infoShow = true
|
|
||||||
},
|
|
||||||
doSearch() {
|
|
||||||
this.pageForm.pageNumber = 1
|
|
||||||
this.tableData = []
|
|
||||||
this.finished = false
|
|
||||||
this.pageData()
|
|
||||||
},
|
|
||||||
pageData() {
|
|
||||||
this.tableLoading = true
|
|
||||||
this.$axios.post("/platform/condolence/schoolUnionAudit/pageData", this.pageForm).then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
this.tableData = this.tableData.concat(res.data.list)
|
|
||||||
this.pageForm.totalCount = res.data.totalCount
|
|
||||||
if (this.tableData.length >= this.pageForm.totalCount) {
|
|
||||||
this.tableFinished = true
|
|
||||||
} else {
|
|
||||||
this.pageForm.pageNumber++
|
|
||||||
}
|
|
||||||
this.tableLoading = false
|
|
||||||
} else {
|
|
||||||
this.$toast(res.msg)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
getCondolenceType() {
|
|
||||||
this.$axios.post("/platform/condolence/common/listOpenType").then((res) => {
|
|
||||||
if (res.code === 0) {
|
|
||||||
res.data.forEach((item) => {
|
|
||||||
this.typeList.push({ text: item.name + "(" + item.code + ")", value: item.id })
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
unionChange() {
|
|
||||||
this.$set(this.pageForm, "unitId", null)
|
|
||||||
this.flushUnits()
|
|
||||||
this.doSearch()
|
|
||||||
},
|
|
||||||
initUnion() {
|
|
||||||
const hasAdmin = this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])
|
|
||||||
const unionId = hasAdmin ? null : this.$store.state.user.union.id
|
|
||||||
this.$businessTool.listUnion(unionId).then((data) => {
|
|
||||||
this.unionList = data
|
|
||||||
this.unionList.forEach((v) => {
|
|
||||||
v.text = v.name
|
|
||||||
v.value = v.id
|
|
||||||
})
|
|
||||||
if (hasAdmin) {
|
|
||||||
this.unionList.unshift({ text: "全部工会", value: null })
|
|
||||||
}
|
|
||||||
if (this.unionList && this.unionList.length > 0) {
|
|
||||||
this.$set(this.pageForm, "unionId", this.unionList[0].value)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
flushUnits() {
|
|
||||||
const hasAdmin = this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])
|
|
||||||
const unionId = hasAdmin ? this.pageForm.unionId : this.$store.state.user.union.id
|
|
||||||
this.$businessTool.listUnit(unionId).then((data) => {
|
|
||||||
this.unitList = data
|
|
||||||
this.unitList.forEach((v) => {
|
|
||||||
v.text = v.name
|
|
||||||
v.value = v.id
|
|
||||||
})
|
|
||||||
if (hasAdmin && !this.pageForm.unionId) {
|
|
||||||
this.unitList.unshift({ text: "全部单位", value: null })
|
|
||||||
}
|
|
||||||
if (this.unitList && this.unitList.length > 0) {
|
|
||||||
this.$set(this.pageForm, "unitId", this.unitList[0].value)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
initData() {
|
|
||||||
this.getCondolenceType()
|
|
||||||
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
|
|
||||||
this.yearList.unshift({ value: i, text: i + "年" })
|
|
||||||
}
|
|
||||||
this.$set(this.pageForm, "year", this.yearList[0].value)
|
|
||||||
this.$set(this.pageForm, "type", this.typeList[0].value)
|
|
||||||
|
|
||||||
this.initUnion()
|
|
||||||
this.flushUnits()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
this.initData()
|
|
||||||
this.pageData()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
<!--#
|
|
||||||
}
|
|
||||||
#-->
|
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform_h5.html"){
|
||||||
|
#-->
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div id="app">
|
||||||
|
<van-nav-bar title="场地预约" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||||
|
|
||||||
|
<van-sticky offset-top="46px">
|
||||||
|
<van-search
|
||||||
|
v-model="pageForm.searchKeyword"
|
||||||
|
:show-action="false"
|
||||||
|
:reverse-color="false"
|
||||||
|
input-align="left"
|
||||||
|
placeholder="请输入姓名或者工号搜索"
|
||||||
|
@search="doSearch"
|
||||||
|
></van-search>
|
||||||
|
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||||
|
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||||
|
<van-dropdown-item v-model="pageForm.type" :options="typeOptions" :multiple="false"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
</van-dropdown-menu>
|
||||||
|
</van-sticky>
|
||||||
|
|
||||||
|
<table-list api="/platform/site/apply/pageData" :page_form.sync="pageForm" ref="tableListRef" title="name" @ready="onReady">
|
||||||
|
<template v-slot="{index,row}">
|
||||||
|
<table-column label="场地地址">{{row.address}}</table-column>
|
||||||
|
<table-column label="联系人">{{row.contactName}}</table-column>
|
||||||
|
<table-column label="联系方式">{{row.contactPhone}}</table-column>
|
||||||
|
</template>
|
||||||
|
<template #actions="{index,row}">
|
||||||
|
<div class="action-btn" @click="onView(row)">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
<span>查看</span>
|
||||||
|
</div>
|
||||||
|
<div class="action-btn" @click="onEdit(row)">
|
||||||
|
<i class="fa fa-edit"></i>
|
||||||
|
<span>预约</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</table-list>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
new Vue({
|
||||||
|
el: "#app",
|
||||||
|
store,
|
||||||
|
components: {
|
||||||
|
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageForm: {
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
totalCount: 0,
|
||||||
|
searchKeyword: '',
|
||||||
|
year: new Date().getFullYear(),
|
||||||
|
type: null
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async onReady() {
|
||||||
|
const typeList = await this.querySiteType()
|
||||||
|
this.typeOptions = [
|
||||||
|
{
|
||||||
|
text: "全部类型",
|
||||||
|
value: null
|
||||||
|
}
|
||||||
|
].concat(typeList.map((v) => ({ text: v.name, value: v.id })))
|
||||||
|
if (this.typeOptions.length > 0) {
|
||||||
|
this.pageForm.type = this.typeOptions[0].value
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async querySiteType() {
|
||||||
|
const res = await this.$axios.post("/platform/site/type/querySiteType")
|
||||||
|
return res.data
|
||||||
|
},
|
||||||
|
doSearch() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.pageForm.pageNumber = 1
|
||||||
|
this.pageForm.totalCount = 0
|
||||||
|
this.$refs.tableListRef.doSearch()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
@@ -0,0 +1,448 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform_h5.html"){
|
||||||
|
#-->
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.search-dialog {
|
||||||
|
height: 80%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div id="app">
|
||||||
|
<!-- 导航栏 -->
|
||||||
|
<van-nav-bar title="职工慰问申请" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||||
|
|
||||||
|
<!-- 表单容器 -->
|
||||||
|
<van-form ref="formRef" class="form-container">
|
||||||
|
|
||||||
|
<!-- 基本信息 -->
|
||||||
|
<van-cell-group title="基本信息" class="form-section">
|
||||||
|
<van-field label="申请人姓名" :rules="[{ required: true }]" v-model="formData.applyUserName" readonly
|
||||||
|
required name="applyUserName"></van-field>
|
||||||
|
<van-field label="申请人工号" :rules="[{ required: true }]" v-model="formData.applyLoginName" readonly
|
||||||
|
required name="applyLoginName"></van-field>
|
||||||
|
<van-field label="申请人单位" :rules="[{ required: true }]" v-model="formData.applyUnitName" readonly
|
||||||
|
required name="applyUnitName"></van-field>
|
||||||
|
<van-field label="申请人工会" :rules="[{ required: true }]" v-model="formData.applyUnionName" readonly
|
||||||
|
required name="applyUnionName"></van-field>
|
||||||
|
|
||||||
|
<van-field
|
||||||
|
v-model="formData.helpUserName"
|
||||||
|
name="helpUserName"
|
||||||
|
label="慰问对象"
|
||||||
|
required
|
||||||
|
readonly
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
placeholder="请点击选择慰问对象"
|
||||||
|
@click="helpUserSelectShow = true"
|
||||||
|
is-link
|
||||||
|
></van-field>
|
||||||
|
<van-action-sheet v-model="helpUserSelectShow" title="慰问对象" class="height100">
|
||||||
|
<van-search
|
||||||
|
v-model="searchKeyword"
|
||||||
|
:show-action="false"
|
||||||
|
:reverse-color="false"
|
||||||
|
input-align="left"
|
||||||
|
placeholder="请输入工号或姓名选择慰问对象"
|
||||||
|
@input="(val) => {userRemoteMethod(val, 'help')}"
|
||||||
|
@clear="(val) => {userRemoteMethod(val, 'help')}"
|
||||||
|
shape="round"
|
||||||
|
></van-search>
|
||||||
|
<div class="van-action-sheet__content mt5" v-if="userOptions && userOptions.length>0">
|
||||||
|
<template>
|
||||||
|
<template v-for="item in userOptions">
|
||||||
|
<van-button native-type="button" @click="helpUserChange(item)" class="van-action-sheet__item van-hairline--bottom">
|
||||||
|
<span class="van-action-sheet__name">{{item.userName}}({{item.loginName}})</span>
|
||||||
|
</van-button>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<van-empty description="暂无数据" v-else></van-empty>
|
||||||
|
</van-action-sheet>
|
||||||
|
|
||||||
|
<van-field
|
||||||
|
v-model="formData.payUserName"
|
||||||
|
name="payUserName"
|
||||||
|
label="收款人"
|
||||||
|
required
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
placeholder="请点击选择收款人"
|
||||||
|
@click="payUserSelectShow = true"
|
||||||
|
is-link
|
||||||
|
></van-field>
|
||||||
|
<van-action-sheet v-model="payUserSelectShow" title="收款人" class="height100">
|
||||||
|
<van-search
|
||||||
|
v-model="searchKeyword"
|
||||||
|
:show-action="false"
|
||||||
|
:reverse-color="false"
|
||||||
|
input-align="left"
|
||||||
|
placeholder="请输入工号或姓名选择收款人"
|
||||||
|
@input="(val) => {userRemoteMethod(val, 'pay')}"
|
||||||
|
@clear="(val) => {userRemoteMethod(val, 'pay')}"
|
||||||
|
shape="round"
|
||||||
|
></van-search>
|
||||||
|
<div class="van-action-sheet__content mt5" v-if="userOptions && userOptions.length>0">
|
||||||
|
<template>
|
||||||
|
<template v-for="item in userOptions">
|
||||||
|
<van-button native-type="button" @click="payUserChange(item)" class="van-action-sheet__item van-hairline--bottom">
|
||||||
|
<span class="van-action-sheet__name">{{item.userName}}({{item.loginName}})</span>
|
||||||
|
</van-button>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<van-empty description="暂无数据" v-else></van-empty>
|
||||||
|
</van-action-sheet>
|
||||||
|
|
||||||
|
<van-field
|
||||||
|
v-model="formData.typeName"
|
||||||
|
name="typeName"
|
||||||
|
label="慰问类型"
|
||||||
|
required
|
||||||
|
readonly
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
placeholder="请点击选择慰问类型"
|
||||||
|
@click="showTypePicker = true"
|
||||||
|
clickable
|
||||||
|
is-link
|
||||||
|
></van-field>
|
||||||
|
<van-popup position="bottom" round v-model:show="showTypePicker">
|
||||||
|
<van-picker :columns="typeColumns" @cancel="showTypePicker = false" @confirm="onTypeConfirm" show-toolbar></van-picker>
|
||||||
|
</van-popup>
|
||||||
|
|
||||||
|
<van-field
|
||||||
|
v-model="formData.way"
|
||||||
|
name="way"
|
||||||
|
label="慰问方式"
|
||||||
|
required
|
||||||
|
readonly
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
placeholder="请选择慰问类型"
|
||||||
|
clickable
|
||||||
|
></van-field>
|
||||||
|
<van-field
|
||||||
|
v-model="formData.money"
|
||||||
|
name="money"
|
||||||
|
label="慰问金额"
|
||||||
|
required
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
placeholder="选择慰问类型自动匹配金额"
|
||||||
|
clickable
|
||||||
|
type="number"
|
||||||
|
></van-field>
|
||||||
|
|
||||||
|
<van-field
|
||||||
|
v-model="formData.occurTime"
|
||||||
|
name="occurTime"
|
||||||
|
label="慰问时间"
|
||||||
|
required
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
placeholder="请点击选择慰问时间"
|
||||||
|
clickable
|
||||||
|
is-link
|
||||||
|
readonly
|
||||||
|
@click="showTimePicker = true"
|
||||||
|
></van-field>
|
||||||
|
<van-popup position="bottom" round v-model:show="showTimePicker">
|
||||||
|
<van-datetime-picker
|
||||||
|
v-model="formData.occurTime"
|
||||||
|
type="date"
|
||||||
|
title="请选择慰问时间"
|
||||||
|
@confirm="(val) => {formData.occurTime = $moment(val).format('YYYY-MM-DD'); showTimePicker = false}"
|
||||||
|
@cancel="showTimePicker = false"
|
||||||
|
></van-datetime-picker>
|
||||||
|
</van-popup>
|
||||||
|
|
||||||
|
<van-field
|
||||||
|
v-if="['2'].includes(formData.type)"
|
||||||
|
v-model="formData.child"
|
||||||
|
name="child"
|
||||||
|
label="孩次"
|
||||||
|
required
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
placeholder="请点击选择孩次"
|
||||||
|
clickable
|
||||||
|
is-link
|
||||||
|
readonly
|
||||||
|
@click="showChildPicker = true"
|
||||||
|
></van-field>
|
||||||
|
<van-popup position="bottom" round v-model:show="showChildPicker">
|
||||||
|
<van-picker
|
||||||
|
title="请选择孩次"
|
||||||
|
show-toolbar
|
||||||
|
:columns="['一孩', '二孩', '三孩']"
|
||||||
|
@confirm="(val) => {formData.child = val; showChildPicker = false}"
|
||||||
|
@cancel="showChildPicker = false"
|
||||||
|
></van-picker>
|
||||||
|
</van-popup>
|
||||||
|
|
||||||
|
<template v-if="['3','4'].includes(formData.type)">
|
||||||
|
<van-field
|
||||||
|
v-model="formData.hospital"
|
||||||
|
name="hospital"
|
||||||
|
label="治疗医院"
|
||||||
|
required
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
placeholder="请输入治疗医院"
|
||||||
|
></van-field>
|
||||||
|
<van-field
|
||||||
|
v-model="formData.hospitalHouseNum"
|
||||||
|
name="hospitalHouseNum"
|
||||||
|
label="病房号"
|
||||||
|
required
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
placeholder="请输入病房号"
|
||||||
|
></van-field>
|
||||||
|
<van-field
|
||||||
|
v-model="formData.hospitalHouseBedNum"
|
||||||
|
name="hospitalHouseBedNum"
|
||||||
|
label="床号"
|
||||||
|
required
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
placeholder="请输入床号"
|
||||||
|
></van-field>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<van-field
|
||||||
|
v-if="['4'].includes(formData.type)"
|
||||||
|
v-model="formData.hospitalBy"
|
||||||
|
name="hospitalBy"
|
||||||
|
label="患病病种"
|
||||||
|
required
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
placeholder="请输入患病病种"
|
||||||
|
></van-field>
|
||||||
|
|
||||||
|
<van-field
|
||||||
|
v-if="['6'].includes(formData.type)"
|
||||||
|
v-model="formData.deadImmediateFamily"
|
||||||
|
name="deadImmediateFamily"
|
||||||
|
label="直系亲属"
|
||||||
|
required
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
placeholder="请点击选择直系亲属"
|
||||||
|
clickable
|
||||||
|
is-link
|
||||||
|
readonly
|
||||||
|
@click="showFamilyPicker = true"
|
||||||
|
></van-field>
|
||||||
|
<van-popup position="bottom" round v-model:show="showFamilyPicker">
|
||||||
|
<van-picker
|
||||||
|
title="请选择直系亲属"
|
||||||
|
show-toolbar
|
||||||
|
:columns="['配偶', '父亲', '母亲', '子女']"
|
||||||
|
@confirm="(val) => {formData.deadImmediateFamily = val; showFamilyPicker = false}"
|
||||||
|
@cancel="showFamilyPicker = false"
|
||||||
|
></van-picker>
|
||||||
|
</van-popup>
|
||||||
|
|
||||||
|
<van-field
|
||||||
|
v-model="formData.remark"
|
||||||
|
name="remark"
|
||||||
|
label="申请事由"
|
||||||
|
type="textarea"
|
||||||
|
rows="4"
|
||||||
|
autosize
|
||||||
|
placeholder="请输入申请事由"
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
required
|
||||||
|
></van-field>
|
||||||
|
</van-cell-group>
|
||||||
|
|
||||||
|
<van-cell-group class="form-section" v-if="chooseType.isUploadFile === true">
|
||||||
|
<template #title>
|
||||||
|
<span>附件</span>
|
||||||
|
<span v-if="chooseType.isUploadFile && chooseType.uploadFileDesc" style="color: orangered">
|
||||||
|
{{ '(附件说明:' + chooseType.uploadFileDesc + ')' }}
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
<van-field class="direction-column-field" name="avatar" label="">
|
||||||
|
<template #input>
|
||||||
|
<h5-file-upload
|
||||||
|
slot="input"
|
||||||
|
:value.sync="formData.files"
|
||||||
|
:upload_number="5"
|
||||||
|
upload_result_category="array"
|
||||||
|
complete_result
|
||||||
|
></h5-file-upload>
|
||||||
|
</template>
|
||||||
|
</van-field>
|
||||||
|
</van-cell-group>
|
||||||
|
|
||||||
|
<van-cell-group title="签字" class="form-section">
|
||||||
|
<van-field class="direction-column-field" name="signature" label="">
|
||||||
|
<template #input>
|
||||||
|
<h5-signature v-model="formData.signature" slot="input"></h5-signature>
|
||||||
|
</template>
|
||||||
|
</van-field>
|
||||||
|
</van-cell-group>
|
||||||
|
|
||||||
|
<!-- 提交按钮 -->
|
||||||
|
<div class="form-actions">
|
||||||
|
<van-button native-type="button" @click="onSave" round type="info" plain>保存申请</van-button>
|
||||||
|
<van-button @click="onSubmit" round type="info" v-if="!taskId">提交申请</van-button>
|
||||||
|
<van-button @click="onFinishTask" round type="info" v-else>提交申请</van-button>
|
||||||
|
</div>
|
||||||
|
</van-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const vue = new Vue({
|
||||||
|
el: "#app",
|
||||||
|
store,
|
||||||
|
components: {},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
bizId: GetQueryString("bizId"),
|
||||||
|
taskId: GetQueryString("taskId"),
|
||||||
|
formData: {},
|
||||||
|
|
||||||
|
chooseType: {},
|
||||||
|
userOptions: [],
|
||||||
|
typeOptions: [],
|
||||||
|
|
||||||
|
helpUserSelectShow: false,
|
||||||
|
payUserSelectShow: false,
|
||||||
|
showTypePicker: false,
|
||||||
|
typeColumns: [],
|
||||||
|
searchKeyword: '',
|
||||||
|
|
||||||
|
showTimePicker: false,
|
||||||
|
showChildPicker: false,
|
||||||
|
showFamilyPicker: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async userRemoteMethod(event, type) {
|
||||||
|
if (event) {
|
||||||
|
this.userOptions = await this.selectQueryUser(event)
|
||||||
|
type === 'help' ? this.helpUserSelectShow = true : this.payUserSelectShow = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async selectQueryUser(keyword) {
|
||||||
|
const res = await this.$axios.post("/platform/condolence/apply/listUser", { keyword: keyword })
|
||||||
|
return res.data
|
||||||
|
},
|
||||||
|
helpUserChange(user) {
|
||||||
|
const { id, userName, loginName, unitId, unitName, unionId, unionName } = user
|
||||||
|
this.$set(this.formData, "helpUserId", id)
|
||||||
|
this.$set(this.formData, "helpUserName", userName)
|
||||||
|
this.$set(this.formData, "helpLoginName", loginName)
|
||||||
|
this.$set(this.formData, "helpUnitId", unitId)
|
||||||
|
this.$set(this.formData, "helpUnitName", unitName)
|
||||||
|
this.$set(this.formData, "helpUnionId", unionId)
|
||||||
|
this.$set(this.formData, "helpUnionName", unionName)
|
||||||
|
this.helpUserSelectShow = false
|
||||||
|
this.searchKeyword = ''
|
||||||
|
this.userOptions = []
|
||||||
|
},
|
||||||
|
payUserChange(user) {
|
||||||
|
const { id, userName, loginName } = user
|
||||||
|
this.$set(this.formData, "payUserId", id)
|
||||||
|
this.$set(this.formData, "payUserName", userName)
|
||||||
|
this.$set(this.formData, "payLoginName", loginName)
|
||||||
|
this.payUserSelectShow = false
|
||||||
|
this.searchKeyword = ''
|
||||||
|
this.userOptions = []
|
||||||
|
},
|
||||||
|
typeChange(id) {
|
||||||
|
this.chooseType = this.typeOptions.find(o => o.id === id)
|
||||||
|
if (this.chooseType) {
|
||||||
|
this.$set(this.formData, "money", this.chooseType.money)
|
||||||
|
this.$set(this.formData, "way", this.chooseType.way)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onTypeConfirm(o) {
|
||||||
|
this.$set(this.formData, "typeName", o.text)
|
||||||
|
this.$set(this.formData, "type", o.value)
|
||||||
|
this.typeChange(o.value)
|
||||||
|
this.showTypePicker = false
|
||||||
|
},
|
||||||
|
onSave() {
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "您确定保存吗?"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/platform/condolence/apply/save", { data: JSON.stringify(this.formData) }).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$toast(res.msg)
|
||||||
|
this.$pjaxReplace("/platform/condolence/mine/h5")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async onSubmit() {
|
||||||
|
this.$refs.formRef.validate().then(() => {
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "您确定要提交申请吗?"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/platform/condolence/apply/submit", { data: JSON.stringify(this.formData) }).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$toast(res.msg)
|
||||||
|
this.$pjaxReplace("/platform/condolence/mine/h5")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async onFinishTask() {
|
||||||
|
this.$refs.formRef.validate().then(() => {
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "您确定要提交申请吗?"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/platform/condolence/apply/submitAgain", {
|
||||||
|
data: JSON.stringify(this.formData),
|
||||||
|
taskId: GetQueryString("taskId")
|
||||||
|
}).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$toast(res.msg)
|
||||||
|
this.$pjaxReplace("/platform/condolence/mine/h5")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
init() {
|
||||||
|
if (this.bizId) {
|
||||||
|
this.$axios.post("/platform/condolence/mine/info", { id: this.bizId }).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.formData = res.data
|
||||||
|
this.selectQueryUser(this.formData.helpLoginName, this.helpUserOptions)
|
||||||
|
this.selectQueryUser(this.formData.payLoginName, this.payUserOptions)
|
||||||
|
this.chooseType = this.typeOptions.find(o => o.id === this.formData.type)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
const { username, loginname, id, unit, union, mobile } = this.$store.state.user
|
||||||
|
this.formData = {
|
||||||
|
applyUserName: username,
|
||||||
|
applyLoginName: loginname,
|
||||||
|
applyUserId: id,
|
||||||
|
applyUnitId: unit?.id,
|
||||||
|
applyUnitName: unit?.name,
|
||||||
|
applyUnionId: union?.id,
|
||||||
|
applyUnionName: union?.name,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
queryCondolenceType() {
|
||||||
|
this.$axios.post('/platform/condolence/type/queryCondolenceType')
|
||||||
|
.then((res) => {
|
||||||
|
this.typeOptions = JSON.parse(JSON.stringify(res.data))
|
||||||
|
res.data.forEach((v) => {
|
||||||
|
this.typeColumns.push({ value: v.id, text: v.name + "(" + v.code + ")" })
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.queryCondolenceType()
|
||||||
|
this.init()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
+191
@@ -0,0 +1,191 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform_h5.html"){
|
||||||
|
#-->
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div id="app">
|
||||||
|
<van-nav-bar title="分工会审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||||
|
|
||||||
|
<van-sticky offset-top="46px">
|
||||||
|
<van-search
|
||||||
|
v-model="pageForm.searchKeyword"
|
||||||
|
:show-action="false"
|
||||||
|
:reverse-color="false"
|
||||||
|
input-align="left"
|
||||||
|
placeholder="请输入姓名或者工号搜索"
|
||||||
|
@search="doSearch"
|
||||||
|
></van-search>
|
||||||
|
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||||
|
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||||
|
<van-dropdown-item v-model="pageForm.type" :options="typeOptions" :multiple="false"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
</van-dropdown-menu>
|
||||||
|
<van-tabs v-model="pageForm.approvalText"
|
||||||
|
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
|
||||||
|
<van-tab title="已审核" name="1"></van-tab>
|
||||||
|
<van-tab title="未审核" name="0"></van-tab>
|
||||||
|
</van-tabs>
|
||||||
|
</van-sticky>
|
||||||
|
|
||||||
|
<table-list api="/platform/condolence/branchUnionApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" @ready="onReady">
|
||||||
|
<template v-slot="{index,row}">
|
||||||
|
<table-column label="慰问对象">{{row.helpUserName}}</table-column>
|
||||||
|
<table-column label="慰问对象工号">{{row.helpLoginName}}</table-column>
|
||||||
|
<table-column label="申请人">{{row.applyUserName}}</table-column>
|
||||||
|
<table-column label="所属工会">{{row.applyUnionName}}</table-column>
|
||||||
|
<table-column label="所属单位">{{row.applyUnitName}}</table-column>
|
||||||
|
<table-column label="慰问类型">{{row.typeName}}</table-column>
|
||||||
|
<table-column label="当前节点">{{row.curTaskName}}</table-column>
|
||||||
|
</template>
|
||||||
|
<template #actions="{index,row}">
|
||||||
|
<div class="action-btn" @click="onView(row)">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
<span>查看</span>
|
||||||
|
</div>
|
||||||
|
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
|
||||||
|
<i class="fa fa-edit"></i>
|
||||||
|
<span>审核</span>
|
||||||
|
</div>
|
||||||
|
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
||||||
|
<i class="fa fa-reply"></i>
|
||||||
|
<span>撤回</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</table-list>
|
||||||
|
|
||||||
|
<info ref="infoRef">
|
||||||
|
<div v-if="showApprovalForm">
|
||||||
|
<div class="process-title">{{formData.taskName}}</div>
|
||||||
|
<van-form ref="formRef">
|
||||||
|
<van-field
|
||||||
|
v-model="formData.tf_opinion"
|
||||||
|
name="tf_opinion"
|
||||||
|
label="审批意见"
|
||||||
|
placeholder="请输入审批意见"
|
||||||
|
:rules="[{ required: true, message: '请填写审批意见' }]"
|
||||||
|
required
|
||||||
|
maxlength="100"
|
||||||
|
show-word-limit
|
||||||
|
></van-field>
|
||||||
|
</van-form>
|
||||||
|
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||||
|
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||||
|
<van-button type="danger" block @click="handleTaskAction(20)">不同意</van-button>
|
||||||
|
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</info>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
<!--#include('../common/info.js'){}#-->
|
||||||
|
new Vue({
|
||||||
|
el: "#app",
|
||||||
|
store,
|
||||||
|
components: {
|
||||||
|
info: condolenceInfo
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageForm: {
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
totalCount: 0,
|
||||||
|
searchKeyword: '',
|
||||||
|
name: null,
|
||||||
|
approvalText: "0",
|
||||||
|
approval: false,
|
||||||
|
year: new Date().getFullYear(),
|
||||||
|
type: null,
|
||||||
|
},
|
||||||
|
typeOptions: [],
|
||||||
|
formData: {},
|
||||||
|
showApprovalForm: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async onReady() {
|
||||||
|
const typeList = await this.queryCondolenceType()
|
||||||
|
this.typeOptions = [
|
||||||
|
{
|
||||||
|
text: "全部慰问类型",
|
||||||
|
value: null
|
||||||
|
}
|
||||||
|
].concat(typeList.map((v) => ({ text: v.name, value: v.id })))
|
||||||
|
if (this.typeOptions.length > 0) {
|
||||||
|
this.pageForm.type = this.typeOptions[0].value
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onView(row) {
|
||||||
|
this.showApprovalForm = false
|
||||||
|
this.$refs.infoRef.onOpen(row)
|
||||||
|
},
|
||||||
|
onApproval(row) {
|
||||||
|
this.showApprovalForm = true
|
||||||
|
this.$refs.infoRef.onOpen(row)
|
||||||
|
this.formData = {
|
||||||
|
processTaskId: row.taskId,
|
||||||
|
taskName: row.curTaskName
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async handleTaskAction(val) {
|
||||||
|
try {
|
||||||
|
await this.$refs.formRef.validate();
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "您确定要提交吗?"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/flow/common/executeTask", {
|
||||||
|
data: JSON.stringify({
|
||||||
|
...this.formData,
|
||||||
|
submitType: val
|
||||||
|
})
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$refs.infoRef.onClose()
|
||||||
|
this.$toast.success(res.msg)
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onRevoke(row){
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "您确定要撤回吗?"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$toast.success(res.msg)
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async queryCondolenceType() {
|
||||||
|
const res = await this.$axios.post('/platform/condolence/type/queryCondolenceType')
|
||||||
|
return res.data
|
||||||
|
},
|
||||||
|
doSearch() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.pageForm.pageNumber = 1
|
||||||
|
this.pageForm.totalCount = 0
|
||||||
|
this.$refs.tableListRef.doSearch()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
const condolenceInfo = {
|
||||||
|
template:
|
||||||
|
/*language=HTML*/
|
||||||
|
`
|
||||||
|
<van-action-sheet v-model="visible" title="查看详情">
|
||||||
|
<div class="detail-container">
|
||||||
|
<van-cell-group title="基本信息">
|
||||||
|
<van-cell title="申请人姓名">{{ viewData.applyUserName }}</van-cell>
|
||||||
|
<van-cell title="申请人工号">{{ viewData.applyLoginName }}</van-cell>
|
||||||
|
<van-cell title="申请人单位">{{ viewData.applyUnitName }}</van-cell>
|
||||||
|
<van-cell title="申请人工会">{{ viewData.applyUnionName }}</van-cell>
|
||||||
|
<van-cell title="慰问对象">{{ viewData.helpUserName }}</van-cell>
|
||||||
|
<van-cell title="收款人">{{ viewData.payUserName }}</van-cell>
|
||||||
|
<van-cell title="慰问类型">{{ viewData.typeName }}</van-cell>
|
||||||
|
<van-cell title="慰问方式">{{ viewData.way }}</van-cell>
|
||||||
|
<van-cell title="慰问金额">{{ viewData.money }}</van-cell>
|
||||||
|
<van-cell title="慰问时间">{{ viewData.occurTime }}</van-cell>
|
||||||
|
<van-cell v-if="['2'].includes(viewData.type)" title="孩次">{{ viewData.child }}</van-cell>
|
||||||
|
<van-cell v-if="['3','4'].includes(viewData.type)" title="治疗医院">{{ viewData.hospital }}</van-cell>
|
||||||
|
<van-cell v-if="['3','4'].includes(viewData.type)" title="病房号">{{ viewData.hospitalHouseNum }}</van-cell>
|
||||||
|
<van-cell v-if="['3','4'].includes(viewData.type)" title="床号">{{ viewData.hospitalHouseBedNum }}</van-cell>
|
||||||
|
<van-cell v-if="['4'].includes(viewData.type)" title="患病病种">{{ viewData.hospitalBy }}</van-cell>
|
||||||
|
<van-cell v-if="['6'].includes(viewData.type)" title="直系亲属">{{ viewData.deadImmediateFamily }}</van-cell>
|
||||||
|
<van-cell class="direction-column-cell" title="申请事由">
|
||||||
|
{{ viewData.remark || '暂无' }}
|
||||||
|
</van-cell>
|
||||||
|
<van-cell class="direction-column-cell" title="附件">
|
||||||
|
</van-cell>
|
||||||
|
<van-cell class="direction-column-cell" title="签字">
|
||||||
|
<van-image :src="viewData.signature" v-if="viewData.signature" class="signature-image"></van-image>
|
||||||
|
<span v-else>暂无签字</span>
|
||||||
|
</van-cell>
|
||||||
|
</van-cell-group>
|
||||||
|
<template v-for="task in doneTasks">
|
||||||
|
<van-cell-group :title="task.displayName" v-if="task.ext.isFirstTaskNode">
|
||||||
|
<van-cell title="申请用户">{{ task.ext.initiatorName }}({{task.ext.initiatorAccount}})
|
||||||
|
</van-cell>
|
||||||
|
<van-cell title="申请时间">{{ task.finishTime }}</van-cell>
|
||||||
|
<van-cell title="办理结果">
|
||||||
|
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||||
|
:value="task.ext.submitType"></dict-tag>
|
||||||
|
</van-cell>
|
||||||
|
</van-cell-group>
|
||||||
|
<van-cell-group :title="task.displayName" v-else>
|
||||||
|
<van-cell title="办理用户">{{ task.taskFormData.userName }}({{task.taskFormData.loginName}})
|
||||||
|
</van-cell>
|
||||||
|
<van-cell title="办理时间">{{ task.finishTime }}</van-cell>
|
||||||
|
<van-cell title="办理结果">
|
||||||
|
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||||
|
:value="task.ext.submitType"></dict-tag>
|
||||||
|
</van-cell>
|
||||||
|
<van-cell title="办理意见" v-if="!task.ext.isFirstTaskNode" class="direction-column-cell">
|
||||||
|
<div v-html="task.taskFormData.tf_opinion"></div>
|
||||||
|
</van-cell>
|
||||||
|
</van-cell-group>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<slot></slot>
|
||||||
|
</van-action-sheet>
|
||||||
|
`,
|
||||||
|
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible:false,
|
||||||
|
viewData: {},
|
||||||
|
doneTasks: [],
|
||||||
|
row: null,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onOpen(row) {
|
||||||
|
this.row = row
|
||||||
|
this.visible = true
|
||||||
|
this.getInfo()
|
||||||
|
this.getDoneTasks()
|
||||||
|
},
|
||||||
|
onClose(){
|
||||||
|
this.visible = false
|
||||||
|
},
|
||||||
|
getInfo() {
|
||||||
|
this.$axios.post("/platform/condolence/mine/info", { id: this.row.id }).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.viewData = res.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getDoneTasks() {
|
||||||
|
this.$axios.post("/flow/common/doneTasks", {bizId: this.row.id}).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.doneTasks = res.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
style: /*language=CSS*/ `
|
||||||
|
|
||||||
|
`
|
||||||
|
}
|
||||||
@@ -0,0 +1,151 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform_h5.html"){
|
||||||
|
#-->
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div id="app">
|
||||||
|
<van-nav-bar title="我的申请" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||||
|
|
||||||
|
<van-sticky offset-top="46px">
|
||||||
|
<van-search
|
||||||
|
v-model="pageForm.searchKeyword"
|
||||||
|
:show-action="false"
|
||||||
|
:reverse-color="false"
|
||||||
|
input-align="left"
|
||||||
|
placeholder="请输入姓名或者工号搜索"
|
||||||
|
@search="doSearch"
|
||||||
|
></van-search>
|
||||||
|
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||||
|
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||||
|
<van-dropdown-item v-model="pageForm.type" :options="typeOptions" :multiple="false"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
</van-dropdown-menu>
|
||||||
|
</van-sticky>
|
||||||
|
|
||||||
|
<table-list api="/platform/condolence/mine/pageData" :page_form.sync="pageForm" ref="tableListRef" @ready="onReady">
|
||||||
|
<template v-slot="{index,row}">
|
||||||
|
<table-column label="慰问对象">{{row.helpUserName}}</table-column>
|
||||||
|
<table-column label="慰问对象工号">{{row.helpLoginName}}</table-column>
|
||||||
|
<table-column label="申请人">{{row.applyUserName}}</table-column>
|
||||||
|
<table-column label="所属工会">{{row.applyUnionName}}</table-column>
|
||||||
|
<table-column label="所属单位">{{row.applyUnitName}}</table-column>
|
||||||
|
<table-column label="慰问类型">{{row.typeName}}</table-column>
|
||||||
|
<table-column label="当前节点">{{row.taskName}}</table-column>
|
||||||
|
</template>
|
||||||
|
<template #actions="{index,row}">
|
||||||
|
<div class="action-btn" @click="onView(row)">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
<span>查看</span>
|
||||||
|
</div>
|
||||||
|
<div class="action-btn" @click="onEdit(row)"
|
||||||
|
v-if="row.taskKey === 'startTask' || !row.instanceId">
|
||||||
|
<i class="fa fa-edit"></i>
|
||||||
|
<span>编辑</span>
|
||||||
|
</div>
|
||||||
|
<div class="action-btn delete" @click="onRevoke(row)"
|
||||||
|
v-if="row.canRevoke">
|
||||||
|
<i class="fa fa-undo"></i>
|
||||||
|
<span>撤回</span>
|
||||||
|
</div>
|
||||||
|
<div class="action-btn delete" @click="onDelete(row)"
|
||||||
|
v-if="row.taskKey === 'startTask' || !row.instanceId">
|
||||||
|
<i class="fa fa-trash"></i>
|
||||||
|
<span>删除</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</table-list>
|
||||||
|
|
||||||
|
<info ref="infoRef"></info>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
<!--#include('../common/info.js'){}#-->
|
||||||
|
new Vue({
|
||||||
|
el: "#app",
|
||||||
|
store,
|
||||||
|
components: {
|
||||||
|
info: condolenceInfo
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageForm: {
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
totalCount: 0,
|
||||||
|
year: new Date().getFullYear(),
|
||||||
|
type: null
|
||||||
|
},
|
||||||
|
typeOptions: [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async onReady() {
|
||||||
|
const typeList = await this.queryCondolenceType()
|
||||||
|
this.typeOptions = [
|
||||||
|
{
|
||||||
|
text: "全部慰问类型",
|
||||||
|
value: null
|
||||||
|
}
|
||||||
|
].concat(typeList.map((v) => ({ text: v.name, value: v.id })))
|
||||||
|
if (this.typeOptions.length > 0) {
|
||||||
|
this.pageForm.type = this.typeOptions[0].value
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onRevoke(row) {
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "您确定要撤回吗?"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/flow/common/revokeTask", { taskId: row.startTaskId }).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$toast(res.msg)
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onView(row) {
|
||||||
|
this.$refs.infoRef.onOpen(row)
|
||||||
|
},
|
||||||
|
onEdit(row) {
|
||||||
|
this.$pjaxReplace("/platform/condolence/apply/h5?taskId=" + (row.startTaskId || "") + "&bizId=" + row.id)
|
||||||
|
},
|
||||||
|
onDelete(id) {
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "确定要删除此申请吗?"
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
this.$axios.post("/platform/condolence/mine/delete", { id: id }).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$toast.success(res.msg)
|
||||||
|
this.doSearch()
|
||||||
|
} else {
|
||||||
|
this.$toast.fail(res.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
},
|
||||||
|
async queryCondolenceType() {
|
||||||
|
const res = await this.$axios.post('/platform/condolence/type/queryCondolenceType')
|
||||||
|
return res.data
|
||||||
|
},
|
||||||
|
doSearch() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.pageForm.pageNumber = 1
|
||||||
|
this.pageForm.totalCount = 0
|
||||||
|
this.$refs.tableListRef.doSearch()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
+191
@@ -0,0 +1,191 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform_h5.html"){
|
||||||
|
#-->
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div id="app">
|
||||||
|
<van-nav-bar title="校工会审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||||
|
|
||||||
|
<van-sticky offset-top="46px">
|
||||||
|
<van-search
|
||||||
|
v-model="pageForm.searchKeyword"
|
||||||
|
:show-action="false"
|
||||||
|
:reverse-color="false"
|
||||||
|
input-align="left"
|
||||||
|
placeholder="请输入姓名或者工号搜索"
|
||||||
|
@search="doSearch"
|
||||||
|
></van-search>
|
||||||
|
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||||
|
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||||
|
<van-dropdown-item v-model="pageForm.type" :options="typeOptions" :multiple="false"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
</van-dropdown-menu>
|
||||||
|
<van-tabs v-model="pageForm.approvalText"
|
||||||
|
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
|
||||||
|
<van-tab title="已审核" name="1"></van-tab>
|
||||||
|
<van-tab title="未审核" name="0"></van-tab>
|
||||||
|
</van-tabs>
|
||||||
|
</van-sticky>
|
||||||
|
|
||||||
|
<table-list api="/platform/condolence/schoolUnionApproval/pageData" :page_form.sync="pageForm" ref="tableListRef" @ready="onReady">
|
||||||
|
<template v-slot="{index,row}">
|
||||||
|
<table-column label="慰问对象">{{row.helpUserName}}</table-column>
|
||||||
|
<table-column label="慰问对象工号">{{row.helpLoginName}}</table-column>
|
||||||
|
<table-column label="申请人">{{row.applyUserName}}</table-column>
|
||||||
|
<table-column label="所属工会">{{row.applyUnionName}}</table-column>
|
||||||
|
<table-column label="所属单位">{{row.applyUnitName}}</table-column>
|
||||||
|
<table-column label="慰问类型">{{row.typeName}}</table-column>
|
||||||
|
<table-column label="当前节点">{{row.curTaskName}}</table-column>
|
||||||
|
</template>
|
||||||
|
<template #actions="{index,row}">
|
||||||
|
<div class="action-btn" @click="onView(row)">
|
||||||
|
<i class="fa fa-eye"></i>
|
||||||
|
<span>查看</span>
|
||||||
|
</div>
|
||||||
|
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
|
||||||
|
<i class="fa fa-edit"></i>
|
||||||
|
<span>审核</span>
|
||||||
|
</div>
|
||||||
|
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
||||||
|
<i class="fa fa-reply"></i>
|
||||||
|
<span>撤回</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</table-list>
|
||||||
|
|
||||||
|
<info ref="infoRef">
|
||||||
|
<div v-if="showApprovalForm">
|
||||||
|
<div class="process-title">{{formData.taskName}}</div>
|
||||||
|
<van-form ref="formRef">
|
||||||
|
<van-field
|
||||||
|
v-model="formData.tf_opinion"
|
||||||
|
name="tf_opinion"
|
||||||
|
label="审批意见"
|
||||||
|
placeholder="请输入审批意见"
|
||||||
|
:rules="[{ required: true, message: '请填写审批意见' }]"
|
||||||
|
required
|
||||||
|
maxlength="100"
|
||||||
|
show-word-limit
|
||||||
|
></van-field>
|
||||||
|
</van-form>
|
||||||
|
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||||
|
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||||
|
<van-button type="danger" block @click="handleTaskAction(20)">不同意</van-button>
|
||||||
|
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</info>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
<!--#include('../common/info.js'){}#-->
|
||||||
|
new Vue({
|
||||||
|
el: "#app",
|
||||||
|
store,
|
||||||
|
components: {
|
||||||
|
info: condolenceInfo
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageForm: {
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
totalCount: 0,
|
||||||
|
searchKeyword: '',
|
||||||
|
name: null,
|
||||||
|
approvalText: "0",
|
||||||
|
approval: false,
|
||||||
|
year: new Date().getFullYear(),
|
||||||
|
type: null,
|
||||||
|
},
|
||||||
|
typeOptions: [],
|
||||||
|
formData: {},
|
||||||
|
showApprovalForm: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async onReady() {
|
||||||
|
const typeList = await this.queryCondolenceType()
|
||||||
|
this.typeOptions = [
|
||||||
|
{
|
||||||
|
text: "全部慰问类型",
|
||||||
|
value: null
|
||||||
|
}
|
||||||
|
].concat(typeList.map((v) => ({ text: v.name, value: v.id })))
|
||||||
|
if (this.typeOptions.length > 0) {
|
||||||
|
this.pageForm.type = this.typeOptions[0].value
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onView(row) {
|
||||||
|
this.showApprovalForm = false
|
||||||
|
this.$refs.infoRef.onOpen(row)
|
||||||
|
},
|
||||||
|
onApproval(row) {
|
||||||
|
this.showApprovalForm = true
|
||||||
|
this.$refs.infoRef.onOpen(row)
|
||||||
|
this.formData = {
|
||||||
|
processTaskId: row.taskId,
|
||||||
|
taskName: row.curTaskName
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async handleTaskAction(val) {
|
||||||
|
try {
|
||||||
|
await this.$refs.formRef.validate();
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "您确定要提交吗?"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/flow/common/executeTask", {
|
||||||
|
data: JSON.stringify({
|
||||||
|
...this.formData,
|
||||||
|
submitType: val
|
||||||
|
})
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$refs.infoRef.onClose()
|
||||||
|
this.$toast.success(res.msg)
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onRevoke(row){
|
||||||
|
this.$dialog.confirm({
|
||||||
|
title: "提示",
|
||||||
|
message: "您确定要撤回吗?"
|
||||||
|
}).then(() => {
|
||||||
|
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.$toast.success(res.msg)
|
||||||
|
this.doSearch()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async queryCondolenceType() {
|
||||||
|
const res = await this.$axios.post('/platform/condolence/type/queryCondolenceType')
|
||||||
|
return res.data
|
||||||
|
},
|
||||||
|
doSearch() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.pageForm.pageNumber = 1
|
||||||
|
this.pageForm.totalCount = 0
|
||||||
|
this.$refs.tableListRef.doSearch()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
Reference in New Issue
Block a user