Merge remote-tracking branch 'origin/main'
This commit is contained in:
+2
-2
@@ -133,8 +133,8 @@ public class TrainSignUpActivityStatisticsServiceImpl extends BaseServiceImpl<Tr
|
|||||||
u.id as userId,
|
u.id as userId,
|
||||||
u.loginname,
|
u.loginname,
|
||||||
u.username,
|
u.username,
|
||||||
u.unitname,
|
u.unitName,
|
||||||
u.unionname,
|
u.unionName,
|
||||||
u.sex,
|
u.sex,
|
||||||
ifnull(tsuu.mobile, u.mobile) as mobile,
|
ifnull(tsuu.mobile, u.mobile) as mobile,
|
||||||
tsuu.signUpTime,
|
tsuu.signUpTime,
|
||||||
|
|||||||
+2
-2
@@ -36,8 +36,8 @@ public class TrainSignUpUserServiceImpl extends BaseServiceImpl<TrainSignUpBlack
|
|||||||
u.username,
|
u.username,
|
||||||
u.loginname,
|
u.loginname,
|
||||||
ifnull(tsuu.mobile, u.mobile) as mobile,
|
ifnull(tsuu.mobile, u.mobile) as mobile,
|
||||||
u.unitname,
|
u.unitName,
|
||||||
u.unionname,
|
u.unionName,
|
||||||
tsuc.courseName,
|
tsuc.courseName,
|
||||||
tsuu.state,
|
tsuu.state,
|
||||||
( SELECT count( 1 ) FROM train_sign_up_user_course WHERE userId = tsuu.userId $var) courseTotal,
|
( SELECT count( 1 ) FROM train_sign_up_user_course WHERE userId = tsuu.userId $var) courseTotal,
|
||||||
|
|||||||
+13
-1
@@ -3,6 +3,7 @@ package com.budwk.app.zhgh.dayofficework.fund.member.controller;
|
|||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||||
import com.budwk.app.base.utils.SysOfficeTemplateUtil;
|
import com.budwk.app.base.utils.SysOfficeTemplateUtil;
|
||||||
@@ -10,6 +11,7 @@ import com.budwk.app.flow.engine.FlowEngine;
|
|||||||
import com.budwk.app.flow.entity.ProcessInstance;
|
import com.budwk.app.flow.entity.ProcessInstance;
|
||||||
import com.budwk.app.flow.entity.ProcessTask;
|
import com.budwk.app.flow.entity.ProcessTask;
|
||||||
import com.budwk.app.flow.vo.ProcessTaskVO;
|
import com.budwk.app.flow.vo.ProcessTaskVO;
|
||||||
|
import com.budwk.app.sys.models.Sys_user;
|
||||||
import com.budwk.app.zhgh.dayofficework.fund.member.models.FundMemberApply;
|
import com.budwk.app.zhgh.dayofficework.fund.member.models.FundMemberApply;
|
||||||
import com.budwk.app.zhgh.dayofficework.fund.member.service.FundMemberService;
|
import com.budwk.app.zhgh.dayofficework.fund.member.service.FundMemberService;
|
||||||
import com.deepoove.poi.XWPFTemplate;
|
import com.deepoove.poi.XWPFTemplate;
|
||||||
@@ -21,6 +23,7 @@ import org.nutz.dao.Cnd;
|
|||||||
import org.nutz.dao.Dao;
|
import org.nutz.dao.Dao;
|
||||||
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.Lang;
|
||||||
import org.nutz.mvc.annotation.At;
|
import org.nutz.mvc.annotation.At;
|
||||||
import org.nutz.mvc.annotation.Ok;
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
|
||||||
@@ -51,7 +54,13 @@ public class FundMemberCommonController {
|
|||||||
@At
|
@At
|
||||||
@SaCheckPermission("fundMember")
|
@SaCheckPermission("fundMember")
|
||||||
public Result info(@Valid String id) {
|
public Result info(@Valid String id) {
|
||||||
FundMemberApply fundMember = fundMemberService.fetch(id);
|
FundMemberApply fundMember;
|
||||||
|
Sys_user user = dao.fetch(Sys_user.class, Cnd.where("id", "=", id));
|
||||||
|
if (Lang.isNotEmpty(user)) {
|
||||||
|
fundMember = fundMemberService.fetch(Cnd.where("loginname", "=", user.getLoginname()));
|
||||||
|
} else {
|
||||||
|
fundMember = fundMemberService.fetch(id);
|
||||||
|
}
|
||||||
return Result.success(fundMember);
|
return Result.success(fundMember);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,6 +75,9 @@ public class FundMemberCommonController {
|
|||||||
docData.put("birthday", DateUtil.format(fundMember.getBirthday(), "yyyy年MM月dd日"));
|
docData.put("birthday", DateUtil.format(fundMember.getBirthday(), "yyyy年MM月dd日"));
|
||||||
docData.put("joinWorkTime", DateUtil.format(fundMember.getJoinWorkTime(), "yyyy年MM月dd日"));
|
docData.put("joinWorkTime", DateUtil.format(fundMember.getJoinWorkTime(), "yyyy年MM月dd日"));
|
||||||
docData.put("retireTime", DateUtil.format(fundMember.getRetireTime(), "yyyy年MM月dd日"));
|
docData.put("retireTime", DateUtil.format(fundMember.getRetireTime(), "yyyy年MM月dd日"));
|
||||||
|
if (StrUtil.isNotBlank(fundMember.getAvatar())) {
|
||||||
|
docData.put("avatar", sysOfficeTemplateUtil.createPictureRenderData(fundMember.getAvatar()));
|
||||||
|
}
|
||||||
|
|
||||||
// 流程实例
|
// 流程实例
|
||||||
ProcessInstance processInstance = dao.fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", id));
|
ProcessInstance processInstance = dao.fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", id));
|
||||||
|
|||||||
+8
-1
@@ -8,12 +8,15 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
|||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
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.page.Pagination;
|
import com.budwk.app.base.page.Pagination;
|
||||||
import com.budwk.app.base.param.PageForm;
|
import com.budwk.app.base.param.PageForm;
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||||
import com.budwk.app.sys.models.Sys_user;
|
import com.budwk.app.sys.models.Sys_user;
|
||||||
import com.budwk.app.sys.views.View_user;
|
import com.budwk.app.sys.views.View_user;
|
||||||
|
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||||
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
import com.budwk.app.web.commons.base.Globals;
|
import com.budwk.app.web.commons.base.Globals;
|
||||||
import com.budwk.app.zhgh.dayofficework.fund.member.models.FundMemberApply;
|
import com.budwk.app.zhgh.dayofficework.fund.member.models.FundMemberApply;
|
||||||
import com.budwk.app.zhgh.dayofficework.fund.member.models.FundMemberHis;
|
import com.budwk.app.zhgh.dayofficework.fund.member.models.FundMemberHis;
|
||||||
@@ -100,7 +103,11 @@ public class FundMemberQueryController {
|
|||||||
public void exportExcel(Integer year, String unionId, HttpServletResponse response) {
|
public void exportExcel(Integer year, String unionId, HttpServletResponse response) {
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
cnd.and("YEAR(submitTime)", "=", year);
|
cnd.and("YEAR(submitTime)", "=", year);
|
||||||
cnd.andEX("unionId", "=", unionId);
|
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||||
|
cnd.and("unionId", "=", SecurityUtil.getUnionId());
|
||||||
|
} else {
|
||||||
|
cnd.andEX("unionId", "=", unionId);
|
||||||
|
}
|
||||||
cnd.andEX(FundMemberApply::getIsJoin, "=", 1);
|
cnd.andEX(FundMemberApply::getIsJoin, "=", 1);
|
||||||
cnd.asc("unionId");
|
cnd.asc("unionId");
|
||||||
List<FundMemberApply> list = fundMemberService.query(cnd);
|
List<FundMemberApply> list = fundMemberService.query(cnd);
|
||||||
|
|||||||
+21
@@ -2,6 +2,7 @@ package com.budwk.app.zhgh.dayofficework.fund.member.controller;
|
|||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import cn.hutool.core.lang.Dict;
|
import cn.hutool.core.lang.Dict;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.annotation.SLog;
|
import com.budwk.app.base.annotation.SLog;
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
import com.budwk.app.flow.constant.FlowConst;
|
import com.budwk.app.flow.constant.FlowConst;
|
||||||
@@ -12,6 +13,7 @@ import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
|
|||||||
import com.budwk.app.flow.service.FlowCommonService;
|
import com.budwk.app.flow.service.FlowCommonService;
|
||||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
import com.budwk.app.zhgh.dayofficework.fund.member.models.FundMemberApply;
|
import com.budwk.app.zhgh.dayofficework.fund.member.models.FundMemberApply;
|
||||||
|
import com.budwk.app.zhgh.dayofficework.fund.member.service.FundMemberService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
@@ -37,6 +39,8 @@ public class FundMemberWriteController {
|
|||||||
@Inject
|
@Inject
|
||||||
private FlowEngine flowEngine;
|
private FlowEngine flowEngine;
|
||||||
@Inject
|
@Inject
|
||||||
|
private FundMemberService fundMemberService;
|
||||||
|
@Inject
|
||||||
private FlowCommonService flowCommonService;
|
private FlowCommonService flowCommonService;
|
||||||
|
|
||||||
@At("")
|
@At("")
|
||||||
@@ -51,6 +55,9 @@ public class FundMemberWriteController {
|
|||||||
@ApiOperation("保存申请")
|
@ApiOperation("保存申请")
|
||||||
@SLog(tag = "建言献策-填写申请", msg = "保存申请")
|
@SLog(tag = "建言献策-填写申请", msg = "保存申请")
|
||||||
public Result save(@Param("data") FundMemberApply fundMember) {
|
public Result save(@Param("data") FundMemberApply fundMember) {
|
||||||
|
if (StrUtil.isBlank(fundMember.getId())) {
|
||||||
|
fundMemberService.validateApply();
|
||||||
|
}
|
||||||
dao.insertOrUpdate(fundMember);
|
dao.insertOrUpdate(fundMember);
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
@@ -62,6 +69,9 @@ public class FundMemberWriteController {
|
|||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@SLog(tag = "基金会员-填写申请", msg = "提交申请")
|
@SLog(tag = "基金会员-填写申请", msg = "提交申请")
|
||||||
public Result submit(@Param("data") FundMemberApply fundMember) {
|
public Result submit(@Param("data") FundMemberApply fundMember) {
|
||||||
|
if (StrUtil.isBlank(fundMember.getId())) {
|
||||||
|
fundMemberService.validateApply();
|
||||||
|
}
|
||||||
fundMember.setSubmitTime(new Date());
|
fundMember.setSubmitTime(new Date());
|
||||||
fundMember.setIsJoin(true);
|
fundMember.setIsJoin(true);
|
||||||
dao.insertOrUpdate(fundMember);
|
dao.insertOrUpdate(fundMember);
|
||||||
@@ -86,6 +96,9 @@ public class FundMemberWriteController {
|
|||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@SLog(tag = "基金会员-填写申请", msg = "重新提交申请")
|
@SLog(tag = "基金会员-填写申请", msg = "重新提交申请")
|
||||||
public Result submitAgain(@Param("data") FundMemberApply fundMember, @Param("taskId") Long taskId) {
|
public Result submitAgain(@Param("data") FundMemberApply fundMember, @Param("taskId") Long taskId) {
|
||||||
|
if (StrUtil.isBlank(fundMember.getId())) {
|
||||||
|
fundMemberService.validateApply();
|
||||||
|
}
|
||||||
dao.insertOrUpdate(fundMember);
|
dao.insertOrUpdate(fundMember);
|
||||||
|
|
||||||
Dict dict = Dict.create();
|
Dict dict = Dict.create();
|
||||||
@@ -103,4 +116,12 @@ public class FundMemberWriteController {
|
|||||||
return Result.success(box);
|
return Result.success(box);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@At
|
||||||
|
@SaCheckPermission("fundMember.write")
|
||||||
|
@ApiOperation("校验是否有申请在流程中")
|
||||||
|
public Result validateApply(){
|
||||||
|
fundMemberService.validateApply();
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -4,4 +4,9 @@ import com.budwk.app.base.service.BaseService;
|
|||||||
import com.budwk.app.zhgh.dayofficework.fund.member.models.FundMemberApply;
|
import com.budwk.app.zhgh.dayofficework.fund.member.models.FundMemberApply;
|
||||||
|
|
||||||
public interface FundMemberService extends BaseService<FundMemberApply> {
|
public interface FundMemberService extends BaseService<FundMemberApply> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证是否已经申请了
|
||||||
|
*/
|
||||||
|
void validateApply();
|
||||||
}
|
}
|
||||||
|
|||||||
+25
@@ -1,14 +1,39 @@
|
|||||||
package com.budwk.app.zhgh.dayofficework.fund.member.service.impl;
|
package com.budwk.app.zhgh.dayofficework.fund.member.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||||
|
import com.budwk.app.flow.entity.ProcessInstance;
|
||||||
|
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
||||||
|
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||||
import com.budwk.app.zhgh.dayofficework.fund.member.models.FundMemberApply;
|
import com.budwk.app.zhgh.dayofficework.fund.member.models.FundMemberApply;
|
||||||
import com.budwk.app.zhgh.dayofficework.fund.member.service.FundMemberService;
|
import com.budwk.app.zhgh.dayofficework.fund.member.service.FundMemberService;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
import org.nutz.dao.Dao;
|
import org.nutz.dao.Dao;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.lang.Lang;
|
||||||
|
|
||||||
@IocBean(args = {"refer:dao"})
|
@IocBean(args = {"refer:dao"})
|
||||||
public class FundMemberServiceImpl extends BaseServiceImpl<FundMemberApply> implements FundMemberService {
|
public class FundMemberServiceImpl extends BaseServiceImpl<FundMemberApply> implements FundMemberService {
|
||||||
public FundMemberServiceImpl(Dao dao) {
|
public FundMemberServiceImpl(Dao dao) {
|
||||||
super(dao);
|
super(dao);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void validateApply() {
|
||||||
|
FundMemberApply apply = dao().fetch(FundMemberApply.class,
|
||||||
|
Cnd.where(FundMemberApply::getLoginName, "=", SecurityUtil.getUserLoginname())
|
||||||
|
.and("isJoin", "=", 1)
|
||||||
|
.desc("submitTime"));
|
||||||
|
if (Lang.isEmpty(apply)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int count = dao().count(ProcessInstance.class, Cnd.where("businessNo", "=", apply.getId())
|
||||||
|
.and(ProcessInstance::getState, "=", ProcessTaskStateEnum.DOING.getCode()));
|
||||||
|
|
||||||
|
if (count > 0) {
|
||||||
|
throw new RuntimeException("您有申请流程正在进行中,请等待流程结束后再次操作");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
package com.budwk.app.zhgh.staffmanage.personnelcheck.controller;
|
||||||
|
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @version 1.0
|
||||||
|
* @Author FKY
|
||||||
|
* @name:CheckTaskGroupAuditController
|
||||||
|
* @Date 2025/10/17 16:46
|
||||||
|
* @注释
|
||||||
|
*/
|
||||||
|
@IocBean
|
||||||
|
public class CheckTaskGroupAuditController {
|
||||||
|
}
|
||||||
+34
@@ -1,5 +1,16 @@
|
|||||||
package com.budwk.app.zhgh.staffmanage.personnelcheck.controller;
|
package com.budwk.app.zhgh.staffmanage.personnelcheck.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import com.budwk.app.base.result.Result;
|
||||||
|
import com.budwk.app.zhgh.staffmanage.personnelcheck.service.CheckTaskCommonService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nutz.dao.Dao;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.mvc.annotation.At;
|
||||||
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @Author FKY
|
* @Author FKY
|
||||||
@@ -7,5 +18,28 @@ package com.budwk.app.zhgh.staffmanage.personnelcheck.controller;
|
|||||||
* @Date 2025/10/15 10:48
|
* @Date 2025/10/15 10:48
|
||||||
* @注释
|
* @注释
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@IocBean
|
||||||
|
@Api("个人核对")
|
||||||
|
@Ok("json:full")
|
||||||
|
@At("/platform/personnel/check/verification/manage")
|
||||||
public class CheckTaskSingleController {
|
public class CheckTaskSingleController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private Dao dao;
|
||||||
|
@Inject
|
||||||
|
private CheckTaskCommonService checkTaskCommonService;
|
||||||
|
|
||||||
|
@At("/")
|
||||||
|
@SaCheckPermission("personnel.check.verification.single")
|
||||||
|
@Ok("beetl:/platform/zhgh/staffmanage/personnelcheck/single/index.html")
|
||||||
|
public void index() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@At
|
||||||
|
@SaCheckPermission("personnel.check.verification.single")
|
||||||
|
public Result getSingleCheckTask(){
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+20
-7
@@ -1,6 +1,8 @@
|
|||||||
package com.budwk.app.zhgh.staffmanage.personnelcheck.controller;
|
package com.budwk.app.zhgh.staffmanage.personnelcheck.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.budwk.app.base.annotation.SLog;
|
import com.budwk.app.base.annotation.SLog;
|
||||||
@@ -40,8 +42,8 @@ import org.nutz.mvc.upload.UploadAdaptor;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@IocBean
|
@IocBean
|
||||||
@Ok("json:full")
|
|
||||||
@Api("核对任务")
|
@Api("核对任务")
|
||||||
|
@Ok("json:full")
|
||||||
@At("/platform/personnel/check/verification/manage")
|
@At("/platform/personnel/check/verification/manage")
|
||||||
public class CheckTaskVerificationController {
|
public class CheckTaskVerificationController {
|
||||||
|
|
||||||
@@ -79,9 +81,6 @@ public class CheckTaskVerificationController {
|
|||||||
@SaCheckPermission("personnel.check.verification.manage")
|
@SaCheckPermission("personnel.check.verification.manage")
|
||||||
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
|
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
|
||||||
public Result doAddOrModify(@Param("baseData") String data, TempFile file){
|
public Result doAddOrModify(@Param("baseData") String data, TempFile file){
|
||||||
log.info("=================================主体数据:{}", data);
|
|
||||||
log.info("=================================导入文件:{}", file);
|
|
||||||
|
|
||||||
CheckTaskVerificationVO vo = JSONUtil.toBean(data, CheckTaskVerificationVO.class);
|
CheckTaskVerificationVO vo = JSONUtil.toBean(data, CheckTaskVerificationVO.class);
|
||||||
|
|
||||||
if (StrUtil.isNotBlank(vo.getId())) {
|
if (StrUtil.isNotBlank(vo.getId())) {
|
||||||
@@ -89,14 +88,28 @@ public class CheckTaskVerificationController {
|
|||||||
// 1.重新配置核对字段,filedConfigData
|
// 1.重新配置核对字段,filedConfigData
|
||||||
dao.clear(CheckTaskFiledConfig.class, Cnd.where("taskId", "=", vo.getId()));
|
dao.clear(CheckTaskFiledConfig.class, Cnd.where("taskId", "=", vo.getId()));
|
||||||
// 2.重新设置待核对人员表,personnelData
|
// 2.重新设置待核对人员表,personnelData
|
||||||
// dao.clear(Check)
|
dao.clear(CheckTaskPersonnel.class, Cnd.where("taskId", "=", vo.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改审核流程配置
|
// 插入逻辑
|
||||||
|
|
||||||
|
// 1.界面可能会对相关审核步骤做修改,修改审核流程配置
|
||||||
dao.update(vo.getBusinessConfig());
|
dao.update(vo.getBusinessConfig());
|
||||||
|
|
||||||
|
// 2.新增或者修改事项任务
|
||||||
|
CheckTaskVerification verification = new CheckTaskVerification();
|
||||||
|
verification.setId(vo.getId());
|
||||||
|
verification.setCreateTime(vo.getCreateTime() == null ? DateUtil.date() : vo.getCreateTime());
|
||||||
|
verification.setYear(DateUtil.year(verification.getCreateTime()));
|
||||||
|
dao.insertOrUpdate(verification);
|
||||||
|
|
||||||
|
// 3.往字段表里面插入数据,最好做下字段映射,把相关字段与数据库的字段对应
|
||||||
|
// todo 字段映射
|
||||||
|
|
||||||
|
|
||||||
|
// 4.读取文件,构造数据(动态字段 data),往 CheckTaskPersonnel 表中插入数据
|
||||||
|
// todo 读取文件 转换成数据
|
||||||
|
|
||||||
log.info("=================================数据转换:{}", vo);
|
|
||||||
|
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|||||||
+6
@@ -36,6 +36,12 @@ public class CheckTaskVerificationVO {
|
|||||||
@ApiModelProperty("结束时间")
|
@ApiModelProperty("结束时间")
|
||||||
private Date endTime;
|
private Date endTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("创建时间")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("状态")
|
||||||
|
private String status;
|
||||||
|
|
||||||
@ApiModelProperty("业务配置数据")
|
@ApiModelProperty("业务配置数据")
|
||||||
private CheckTaskBusinessConfig businessConfig;
|
private CheckTaskBusinessConfig businessConfig;
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -97,11 +97,11 @@ public class WelfareStatisticsServiceImpl extends BaseServiceImpl<WelfareProject
|
|||||||
|
|
||||||
for (NutMap union : mapUnions) {
|
for (NutMap union : mapUnions) {
|
||||||
// 福利人数
|
// 福利人数
|
||||||
long teacherSum = welfareSelectionList.stream().filter(v -> v.getString("welfareUnionId", "").equals(union.getString("id"))).count();
|
long teacherSum = welfareSelectionList.stream().filter(v -> StrUtil.isNotBlank(v.getString("welfareUnionId")) && v.getString("welfareUnionId", "").equals(union.getString("id"))).count();
|
||||||
union.put("teacherSum", teacherSum);
|
union.put("teacherSum", teacherSum);
|
||||||
|
|
||||||
// 已选人数
|
// 已选人数
|
||||||
long selectedNum = welfareSelectionList.stream().filter(v -> v.getString("welfareUnionId", "").equals(union.getString("id")) && v.getBoolean("has_selected")).count();
|
long selectedNum = welfareSelectionList.stream().filter(v -> StrUtil.isNotBlank(v.getString("welfareUnionId")) && v.getString("welfareUnionId", "").equals(union.getString("id")) && v.getBoolean("has_selected")).count();
|
||||||
union.put("selectedNum", selectedNum);
|
union.put("selectedNum", selectedNum);
|
||||||
|
|
||||||
// 未选人数
|
// 未选人数
|
||||||
@@ -109,7 +109,7 @@ public class WelfareStatisticsServiceImpl extends BaseServiceImpl<WelfareProject
|
|||||||
|
|
||||||
// 各选项的选择人数
|
// 各选项的选择人数
|
||||||
for (WelfareProjectSubjectOption option : welfareOptions) {
|
for (WelfareProjectSubjectOption option : welfareOptions) {
|
||||||
long count = userSelections.stream().filter(v -> v.getString("welfareUnionId").equals(union.getString("id")) && StrUtil.isNotBlank(v.getString("selectOptionId")) && v.getString("selectOptionId").equals(option.getId())).map(v -> v.getString("selectUserId")).distinct().count();
|
long count = userSelections.stream().filter(v -> StrUtil.isNotBlank(v.getString("welfareUnionId")) && v.getString("welfareUnionId").equals(union.getString("id")) && StrUtil.isNotBlank(v.getString("selectOptionId")) && v.getString("selectOptionId").equals(option.getId())).map(v -> v.getString("selectUserId")).distinct().count();
|
||||||
union.put(option.getId(), count);
|
union.put(option.getId(), count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
|||||||
prop="mobile" width="150">
|
prop="mobile" width="150">
|
||||||
<template v-slot="{row}">
|
<template v-slot="{row}">
|
||||||
<el-input placeholder="请输入联系方式"
|
<el-input placeholder="请输入联系方式"
|
||||||
v-model="row.mobile"></el-input>
|
v-model="row.mobile" maxlength="11"></el-input>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,13 @@ layout("/layouts/platform.html"){
|
|||||||
.el-carousel__container {
|
.el-carousel__container {
|
||||||
height: 250px !important;
|
height: 250px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.one-line {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
<guava ref="guava">
|
<guava ref="guava">
|
||||||
@@ -125,10 +132,13 @@ layout("/layouts/platform.html"){
|
|||||||
报名未开始
|
报名未开始
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</div>
|
</div>
|
||||||
<div class="text e-item">
|
<el-tooltip :disabled="item.address.length <= 15"
|
||||||
<span style="color: gray">活动地址:</span>
|
:content="item.address" placement="top">
|
||||||
{{item.address}}
|
<div class="text e-item one-line">
|
||||||
</div>
|
<span style="color: gray">活动地址:</span>
|
||||||
|
{{ item.address }}
|
||||||
|
</div>
|
||||||
|
</el-tooltip>
|
||||||
<div class="text e-item">
|
<div class="text e-item">
|
||||||
<span style="color: gray">报名时间:</span>
|
<span style="color: gray">报名时间:</span>
|
||||||
{{$moment(item.applyStartTime).format('YYYY/MM/DD HH:mm')}}
|
{{$moment(item.applyStartTime).format('YYYY/MM/DD HH:mm')}}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ layout("/layouts/platform.html"){
|
|||||||
<template>
|
<template>
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<search @search="activityInfoData">
|
<search @search="activityInfoData">
|
||||||
<search-item label="">
|
<search-item label="年度">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
@change="activityInfoData"
|
@change="activityInfoData"
|
||||||
placeholder="选择年"
|
placeholder="选择年"
|
||||||
|
|||||||
@@ -40,12 +40,12 @@ layout("/layouts/platform.html"){
|
|||||||
</el-select>
|
</el-select>
|
||||||
</search-item>
|
</search-item>
|
||||||
|
|
||||||
<search-item label="院级工会">
|
<search-item label="所属工会">
|
||||||
<el-select
|
<el-select
|
||||||
@change="unionIdChange"
|
@change="unionIdChange"
|
||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
placeholder="院级工会筛选"
|
placeholder="请选择所属工会"
|
||||||
style="width: 100%; font-weight: bold"
|
style="width: 100%; font-weight: bold"
|
||||||
v-model="pageForm.unionid"
|
v-model="pageForm.unionid"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -206,6 +206,9 @@ const userInfo = {
|
|||||||
async getCourse(val) {
|
async getCourse(val) {
|
||||||
const {data} = await this.$axios.post(loc() + "/getCourse", {activityId: val})
|
const {data} = await this.$axios.post(loc() + "/getCourse", {activityId: val})
|
||||||
this.courseList = data
|
this.courseList = data
|
||||||
|
},
|
||||||
|
async getUnitList() {
|
||||||
|
this.unitList = await this.$businessTool.listUnit(this.registerForm.unionId)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
|
|||||||
@@ -16,7 +16,9 @@ const fundMemberInfo = {
|
|||||||
<el-descriptions-item label="家庭住址">{{viewData.address}}</el-descriptions-item>
|
<el-descriptions-item label="家庭住址">{{viewData.address}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="手机电话">{{viewData.mobile}}</el-descriptions-item>
|
<el-descriptions-item label="手机电话">{{viewData.mobile}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="住宅号码">{{viewData.homePhone}}</el-descriptions-item>
|
<el-descriptions-item label="住宅号码">{{viewData.homePhone}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="照片">{{viewData.avatar}}</el-descriptions-item>
|
<el-descriptions-item label="照片">
|
||||||
|
<img :src="viewData.avatar" alt="" style="width: 120px;height: 150px" v-if="viewData.avatar">
|
||||||
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
|
||||||
<template v-for="task in doneTasks">
|
<template v-for="task in doneTasks">
|
||||||
|
|||||||
@@ -64,8 +64,9 @@ layout("/layouts/platform.html"){
|
|||||||
</el-table>
|
</el-table>
|
||||||
<!--#include("/layouts/pagination.html"){}#-->
|
<!--#include("/layouts/pagination.html"){}#-->
|
||||||
</el-card>
|
</el-card>
|
||||||
<template #edit>
|
|
||||||
|
|
||||||
|
<template #edit>
|
||||||
|
<fund-member-info ref="fundMemberInfoRef"></fund-member-info>
|
||||||
</template>
|
</template>
|
||||||
</guava>
|
</guava>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -82,12 +82,12 @@ layout("/layouts/platform.html"){
|
|||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="手机号码" prop="mobile">
|
<el-form-item label="手机号码" prop="mobile">
|
||||||
<el-input v-model="formData.mobile" placeholder="请输入手机号码"></el-input>
|
<el-input v-model="formData.mobile" placeholder="请输入手机号码" maxlength="11"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="住宅号码" prop="homePhone">
|
<el-form-item label="住宅号码" prop="homePhone">
|
||||||
<el-input v-model="formData.homePhone" placeholder="请输入住宅电话"></el-input>
|
<el-input v-model="formData.homePhone" placeholder="请输入住宅电话" maxlength="20"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -209,7 +209,7 @@ layout("/layouts/platform.html"){
|
|||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
type: "warning"
|
type: "warning"
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$axios.post('/platform/suggestionBox/write/submitAgain', {
|
this.$axios.post('/platform/fundMember/write/submitAgain', {
|
||||||
data: JSON.stringify(this.formData),
|
data: JSON.stringify(this.formData),
|
||||||
taskId: GetQueryString("taskId")
|
taskId: GetQueryString("taskId")
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
@@ -244,10 +244,14 @@ layout("/layouts/platform.html"){
|
|||||||
idCard: idCard
|
idCard: idCard
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.init()
|
this.init()
|
||||||
|
if(!this.bizId){
|
||||||
|
this.$axios.post('/platform/fundMember/write/validateApply')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/layouts/platform.html"){
|
||||||
|
#-->
|
||||||
|
<div id="app" v-cloak>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
new Vue({
|
||||||
|
el: '#app',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
formData: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
@@ -111,6 +111,7 @@ const filterUser = {
|
|||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
|
<table-tool label="此名单只显示未在此福利项目中的人员"></table-tool>
|
||||||
<el-table :data="tableData"
|
<el-table :data="tableData"
|
||||||
@sort-change="pageOrder"
|
@sort-change="pageOrder"
|
||||||
ref="tableRef"
|
ref="tableRef"
|
||||||
@@ -224,12 +225,17 @@ const filterUser = {
|
|||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
type: "warning"
|
type: "warning"
|
||||||
}).then(async () => {
|
}).then(async () => {
|
||||||
this.submitLoading = true;
|
|
||||||
try {
|
try {
|
||||||
|
const loading = this.$loading({
|
||||||
|
lock: true,
|
||||||
|
text: "数据保存中,请稍后...",
|
||||||
|
spinner: "el-icon-loading"
|
||||||
|
})
|
||||||
const { code, data, msg } = await this.$axios.post("/platform/welfare/project/mange/addWelfareUser", {
|
const { code, data, msg } = await this.$axios.post("/platform/welfare/project/mange/addWelfareUser", {
|
||||||
pageForm: JSON.stringify(this.pageForm),
|
pageForm: JSON.stringify(this.pageForm),
|
||||||
projectId: this.projectId
|
projectId: this.projectId
|
||||||
})
|
})
|
||||||
|
loading.close()
|
||||||
if (code === 0) {
|
if (code === 0) {
|
||||||
this.$message.success(msg)
|
this.$message.success(msg)
|
||||||
this.visible = false
|
this.visible = false
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ layout("/layouts/platform.html"){
|
|||||||
></el-date-picker>
|
></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col span="12">
|
<el-col :span="12">
|
||||||
<el-form-item prop="provideTime" label="发放时间">
|
<el-form-item prop="provideTime" label="发放时间">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const welfareOption = {
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column align="center" header-align="center" label="图片" width="120">
|
<el-table-column align="center" header-align="center" label="图片" width="200">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<file-upload :upload_number="1" :value.sync="row.imgUrl"
|
<file-upload :upload_number="1" :value.sync="row.imgUrl"
|
||||||
accept=".jpg,.jpeg,.png"
|
accept=".jpg,.jpeg,.png"
|
||||||
@@ -157,32 +157,32 @@ const welfareOption = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
style: /*language=CSS*/ `
|
style: /*language=CSS*/ `
|
||||||
.welfare-option {
|
/deep/ .welfare-option {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.welfare-option .el-card__body{
|
/deep/ .welfare-option .el-card__body{
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.welfare-option .el-upload-list__item{
|
/deep/ .welfare-option .el-upload-list__item{
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.welfare-option .imgUrl .el-upload--picture-card {
|
/deep/ .welfare-option .imgUrl .el-upload--picture-card {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.welfare-option .imgUrl .el-upload--picture-card i {
|
/deep/ .welfare-option .imgUrl .el-upload--picture-card i {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
transform: translate(-50%, -50%);
|
transform: translate(-50%, -50%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.preview-image {
|
/deep/ .preview-image {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: block;
|
display: block;
|
||||||
|
|||||||
@@ -238,10 +238,16 @@ const addUser = {
|
|||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
type: "warning"
|
type: "warning"
|
||||||
}).then(async () => {
|
}).then(async () => {
|
||||||
|
const loading = this.$loading({
|
||||||
|
lock: true,
|
||||||
|
text: "数据保存中,请稍后...",
|
||||||
|
spinner: "el-icon-loading"
|
||||||
|
})
|
||||||
const { code, data, msg } = await this.$axios.post("/platform/welfare/list/mange/addWelfareUser", {
|
const { code, data, msg } = await this.$axios.post("/platform/welfare/list/mange/addWelfareUser", {
|
||||||
pageForm: JSON.stringify(this.pageForm),
|
pageForm: JSON.stringify(this.pageForm),
|
||||||
projectId: this.projectId
|
projectId: this.projectId
|
||||||
})
|
})
|
||||||
|
loading.close()
|
||||||
if (code === 0) {
|
if (code === 0) {
|
||||||
this.$message.success(msg)
|
this.$message.success(msg)
|
||||||
this.visible = false
|
this.visible = false
|
||||||
|
|||||||
@@ -258,34 +258,34 @@ const selectView = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
style: /*language=CSS*/ `
|
style: /*language=CSS*/ `
|
||||||
.welfare-view {
|
/deep/ .welfare-view {
|
||||||
background: #f7f8fa;
|
background: #f7f8fa;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
-webkit-overflow-scrolling: touch;
|
-webkit-overflow-scrolling: touch;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 内容区域样式 */
|
/* 内容区域样式 */
|
||||||
.welfare-view__content {
|
/deep/ .welfare-view__content {
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 卡片通用样式 */
|
/* 卡片通用样式 */
|
||||||
.welfare-card {
|
/deep/ .welfare-card {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.welfare-card__header {
|
/deep/ .welfare-card__header {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.welfare-card__header::after {
|
/deep/ .welfare-card__header::after {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 16px;
|
left: 16px;
|
||||||
@@ -296,64 +296,64 @@ const selectView = {
|
|||||||
transform: scaleY(0.5);
|
transform: scaleY(0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.welfare-card__header i {
|
/deep/ .welfare-card__header i {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
margin-right: 6px;
|
margin-right: 6px;
|
||||||
color: var(--color-primary);
|
color: var(--color-primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
.welfare-card__header span {
|
/deep/ .welfare-card__header span {
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: #323233;
|
color: #323233;
|
||||||
}
|
}
|
||||||
|
|
||||||
.welfare-card__content {
|
/deep/ .welfare-card__content {
|
||||||
padding: 16px;
|
padding: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 信息行样式 */
|
/* 信息行样式 */
|
||||||
.info-row {
|
/deep/ .info-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-row:last-child {
|
/deep/ .info-row:last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-row__label {
|
/deep/ .info-row__label {
|
||||||
width: 70px;
|
width: 70px;
|
||||||
color: #969799;
|
color: #969799;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-row__value {
|
/deep/ .info-row__value {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
color: #323233;
|
color: #323233;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-row--time {
|
/deep/ .info-row--time {
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-row--time .info-row__value {
|
/deep/ .info-row--time .info-row__value {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.time-item {
|
/deep/ .time-item {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding-left: 42px;
|
padding-left: 42px;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.time-item--start::before {
|
/deep/ .time-item--start::before {
|
||||||
content: "开始:";
|
content: "开始:";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
@@ -361,7 +361,7 @@ const selectView = {
|
|||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.time-item--end::before {
|
/deep/ .time-item--end::before {
|
||||||
content: "结束:";
|
content: "结束:";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
@@ -370,15 +370,15 @@ const selectView = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 选择列表样式 */
|
/* 选择列表样式 */
|
||||||
.selections-container {
|
/deep/ .selections-container {
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-list {
|
/deep/ .selection-list {
|
||||||
padding: 8px 16px;
|
padding: 8px 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-item {
|
/deep/ .selection-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 12px;
|
padding: 12px;
|
||||||
@@ -389,15 +389,15 @@ const selectView = {
|
|||||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-item:active {
|
/deep/ .selection-item:active {
|
||||||
background: #f8f9fa;
|
background: #f8f9fa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-item:last-child {
|
/deep/ .selection-item:last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-item__image {
|
/deep/ .selection-item__image {
|
||||||
width: 72px;
|
width: 72px;
|
||||||
height: 72px;
|
height: 72px;
|
||||||
margin-right: 12px;
|
margin-right: 12px;
|
||||||
@@ -407,19 +407,19 @@ const selectView = {
|
|||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-item__image img {
|
/deep/ .selection-item__image img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-item__content {
|
/deep/ .selection-item__content {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
padding: 4px 0;
|
padding: 4px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-item__name {
|
/deep/ .selection-item__name {
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: #323233;
|
color: #323233;
|
||||||
@@ -429,7 +429,7 @@ const selectView = {
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-item__meta {
|
/deep/ .selection-item__meta {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
@@ -437,7 +437,7 @@ const selectView = {
|
|||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-item__count {
|
/deep/ .selection-item__count {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-right: 16px;
|
margin-right: 16px;
|
||||||
@@ -446,7 +446,7 @@ const selectView = {
|
|||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-item__time {
|
/deep/ .selection-item__time {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background: #f7f8fa;
|
background: #f7f8fa;
|
||||||
@@ -454,19 +454,19 @@ const selectView = {
|
|||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-item__meta i {
|
/deep/ .selection-item__meta i {
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selection-item__arrow {
|
/deep/ .selection-item__arrow {
|
||||||
color: #c8c9cc;
|
color: #c8c9cc;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
padding: 0 0 0 12px;
|
padding: 0 0 0 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 空状态样式 */
|
/* 空状态样式 */
|
||||||
.empty-state {
|
/deep/ .empty-state {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -474,42 +474,42 @@ const selectView = {
|
|||||||
color: #969799;
|
color: #969799;
|
||||||
}
|
}
|
||||||
|
|
||||||
.empty-state__icon {
|
/deep/ .empty-state__icon {
|
||||||
font-size: 48px;
|
font-size: 48px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 详情弹窗样式 */
|
/* 详情弹窗样式 */
|
||||||
.welfare-detail {
|
/deep/ .welfare-detail {
|
||||||
padding: 20px 16px;
|
padding: 20px 16px;
|
||||||
max-height: 60vh;
|
max-height: 60vh;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
-webkit-overflow-scrolling: touch;
|
-webkit-overflow-scrolling: touch;
|
||||||
}
|
}
|
||||||
|
|
||||||
.welfare-detail__content {
|
/deep/ .welfare-detail__content {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
color: #323233;
|
color: #323233;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rich-text {
|
/deep/ .rich-text {
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rich-text img {
|
/deep/ .rich-text img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
margin: 8px 0;
|
margin: 8px 0;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rich-text p {
|
/deep/ .rich-text p {
|
||||||
margin: 8px 0;
|
margin: 8px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 阻止嵌套 action-sheet 时的背景重叠 */
|
/* 阻止嵌套 action-sheet 时的背景重叠 */
|
||||||
.no-overlay {
|
/deep/ .no-overlay {
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|||||||
Reference in New Issue
Block a user