feat(mall): 增加会员列表核销员设置功能并优化相关页面
- 在会员列表页面添加核销员设置开关
- 实现核销员设置的后端接口和前端逻辑
- 优化会员列表页面布局和搜索条件
- 更新相关服务和控制器以支持新功能
2 files added
15 files modified
| | |
| | | } |
| | | |
| | | /** |
| | | * 会员列表-核销员设置 |
| | | */ |
| | | @GetMapping("checkOrder/{id}") |
| | | @ControllerEndpoint(operation = " 会员列表-核销员设置", exceptionMessage = "操作失败") |
| | | public FebsResponse checkOrder(@NotNull(message = "{required}") @PathVariable Long id) { |
| | | return mallMemberService.checkOrder(id); |
| | | } |
| | | |
| | | /** |
| | | * 会员列表-推销员设置 |
| | | */ |
| | | @GetMapping("downSale/{id}") |
| | |
| | | import cc.mrbird.febs.common.annotation.Limit; |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.mall.dto.*; |
| | | import cc.mrbird.febs.mall.dto.activity.ApiOperateValidRegisterActivityDto; |
| | | import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto; |
| | | import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionRecordInPageDto; |
| | | import cc.mrbird.febs.mall.service.HappyActivityService; |
| | |
| | | |
| | | @ApiOperation(value = "点赞关注转发", notes = "点赞关注转发") |
| | | @PostMapping(value = "/operateDo") |
| | | @Limit(key = "operateDo", period = 60, count = 1, name = "点赞关注转发接口", prefix = "limit") |
| | | public FebsResponse operateDo(@RequestBody @Validated ApiOperateDoDto dto) { |
| | | |
| | | return happyActivityService.operateDo(dto); |
| | |
| | | |
| | | @ApiOperation(value = "投票活动-选项投票", notes = "投票活动-选项投票") |
| | | @PostMapping(value = "/operateVote") |
| | | @Limit(key = "operateVote", period = 60, count = 1, name = "投票接口", prefix = "limit") |
| | | public FebsResponse operateVote(@RequestBody @Validated ApiOperateVoteDto dto) { |
| | | |
| | | return happyActivityService.operateVote(dto); |
| | |
| | | return happyActivityService.voteRecordInPage(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "投票活动-报名-验证", notes = "投票活动-报名-验证") |
| | | @PostMapping(value = "/operateValidRegister") |
| | | public FebsResponse operateValidRegister(@RequestBody @Validated ApiOperateValidRegisterActivityDto dto) { |
| | | |
| | | return happyActivityService.operateValidRegister(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "投票活动-报名", notes = "投票活动-报名") |
| | | @PostMapping(value = "/operateRegister") |
| | | public FebsResponse operateRegister(@RequestBody @Validated ApiOperateRegisterActivityDto dto) { |
New file |
| | |
| | | package cc.mrbird.febs.mall.dto.activity; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | @Data |
| | | @ApiModel(value = "ApiOperateValidRegisterActivityDto", description = "参数") |
| | | public class ApiOperateValidRegisterActivityDto { |
| | | |
| | | |
| | | @NotNull(message = "活动ID不可为空") |
| | | @ApiModelProperty(value = "活动ID", example = "1") |
| | | private Long activityId;//投票活动ID |
| | | |
| | | } |
| | |
| | | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.mall.dto.*; |
| | | import cc.mrbird.febs.mall.dto.activity.ApiActivityOrderListDto; |
| | | import cc.mrbird.febs.mall.dto.activity.ApiCheckOrderDto; |
| | | import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto; |
| | | import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionRecordInPageDto; |
| | | import cc.mrbird.febs.mall.dto.activity.*; |
| | | import cc.mrbird.febs.mall.entity.HappyActivity; |
| | | import cc.mrbird.febs.mall.dto.ApiOperateDoDto; |
| | | import cc.mrbird.febs.mall.dto.ApiOperateVoteDto; |
| | |
| | | |
| | | FebsResponse voteRecordInPage(ApiVoteRecordInPageDto dto); |
| | | |
| | | FebsResponse operateValidRegister(ApiOperateValidRegisterActivityDto dto); |
| | | |
| | | FebsResponse operateRegister(ApiOperateRegisterActivityDto dto); |
| | | |
| | | FebsResponse addConnect(ApiOperateRegisterUserDto dto); |
| | |
| | | FebsResponse salemanCoupon(MallMember mallmember); |
| | | |
| | | FebsResponse addMemberCoupon(MallMember member); |
| | | |
| | | FebsResponse checkOrder(Long id); |
| | | } |
| | |
| | | List<HappyActivity> happyActivities = this.baseMapper.selectList( |
| | | new LambdaQueryWrapper<HappyActivity>() |
| | | .select(HappyActivity::getId, HappyActivity::getName) |
| | | .eq(HappyActivity::getType, StateUpDownEnum.ACTIVITY_TYPE_CROWDFUNDING.getCode()) |
| | | .eq(HappyActivity::getPayState, StateUpDownEnum.ACTIVITY_CROWDFUNDING_STATE_OPEN.getCode()) |
| | | .eq(HappyActivity::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) |
| | | ); |
| | | return happyActivities; |
| | |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.common.enumerates.AgentLevelEnum; |
| | | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.StateUpDownEnum; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.AppContants; |
| | | import cc.mrbird.febs.common.utils.RedisUtils; |
| | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.crypto.SecureUtil; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | |
| | | @Override |
| | | public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { |
| | | Page<MallMember> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<MallMember> mallMembers = this.baseMapper.selectMallMemberListInPage(page, mallMember); |
| | | // if(CollUtil.isNotEmpty(mallMembers.getRecords())){ |
| | | // for(MallMember mallMemberTeam : mallMembers.getRecords()){ |
| | | // Long salesmansId = mallMemberTeam.getSalesmansId(); |
| | | // MallSalesman mallSalesman = mallSalesmanMapper.selectById(salesmansId); |
| | | // if(ObjectUtil.isNotEmpty(mallSalesman)){ |
| | | // StringBuffer salesmanName = new StringBuffer(); |
| | | // salesmanName.append(mallSalesman.getName()); |
| | | // if(2 == mallSalesman.getState()){ |
| | | // salesmanName.append("(禁用)"); |
| | | // } |
| | | // mallMemberTeam.setSalesmansName(salesmanName.toString()); |
| | | // } |
| | | // } |
| | | // } |
| | | return mallMembers; |
| | | LambdaQueryWrapper<MallMember> mallMemberLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | if(ObjectUtil.isNotEmpty(mallMember.getName())){ |
| | | mallMemberLambdaQueryWrapper.like(MallMember::getName, mallMember.getName()); |
| | | } |
| | | if(ObjectUtil.isNotEmpty(mallMember.getPhone())){ |
| | | mallMemberLambdaQueryWrapper.eq(MallMember::getPhone, mallMember.getPhone()); |
| | | } |
| | | if(ObjectUtil.isNotEmpty(mallMember.getCheckOrder())){ |
| | | mallMemberLambdaQueryWrapper.eq(MallMember::getCheckOrder, mallMember.getCheckOrder()); |
| | | } |
| | | mallMemberLambdaQueryWrapper.orderByDesc(MallMember::getId); |
| | | |
| | | Page<MallMember> mallMemberPage = this.baseMapper.selectPage(page, mallMemberLambdaQueryWrapper); |
| | | // IPage<MallMember> mallMembers = this.baseMapper.selectMallMemberListInPage(page, mallMember); |
| | | return mallMemberPage; |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse checkOrder(Long id) { |
| | | |
| | | MallMember mallMember = this.baseMapper.selectById(id); |
| | | mallMember.setCheckOrder(StateUpDownEnum.DOWN.getCode() == mallMember.getCheckOrder() ? StateUpDownEnum.UP.getCode() : StateUpDownEnum.DOWN.getCode()); |
| | | this.baseMapper.updateById(mallMember); |
| | | |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | } |
| | |
| | | import cc.mrbird.febs.common.utils.MallUtils; |
| | | import cc.mrbird.febs.common.utils.ShareCodeUtil; |
| | | import cc.mrbird.febs.mall.dto.*; |
| | | import cc.mrbird.febs.mall.dto.activity.ApiActivityOrderListDto; |
| | | import cc.mrbird.febs.mall.dto.activity.ApiCheckOrderDto; |
| | | import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto; |
| | | import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionRecordInPageDto; |
| | | import cc.mrbird.febs.mall.dto.activity.*; |
| | | import cc.mrbird.febs.mall.entity.*; |
| | | import cc.mrbird.febs.mall.mapper.*; |
| | | import cc.mrbird.febs.mall.service.HappyActivityService; |
| | |
| | | // 查询关注点赞转发记录,筛选出关注活动类型且未删除的关注记录,并按ID升序排序,限制结果数量为3 |
| | | List<HappyFollow> happyFollows = happyFollowMapper.selectList( |
| | | new LambdaQueryWrapper<HappyFollow>() |
| | | .select(HappyFollow::getMemberId) |
| | | .eq(HappyFollow::getSourceType, StateUpDownEnum.SOURCE_TYPE_ACTIVITY.getCode()) |
| | | .in(HappyFollow::getSourceId, ids) |
| | | .eq(HappyFollow::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) |
| | |
| | | if(happyActivityOption != null){ |
| | | BeanUtil.copyProperties(happyActivityOption, apiActivityOptionVo); |
| | | } |
| | | |
| | | //投票人数 |
| | | List<HappyFollow> happyFollows = happyFollowMapper.selectList( |
| | | new LambdaQueryWrapper<HappyFollow>() |
| | | .select(HappyFollow::getId) |
| | | .eq(HappyFollow::getSourceOptionId, id) |
| | | .eq(HappyFollow::getType, StateUpDownEnum.VOTE.getCode()) |
| | | .eq(HappyFollow::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) |
| | | .groupBy(HappyFollow::getMemberId) |
| | | ); |
| | | apiActivityOptionVo.setVoteCnt(CollUtil.isNotEmpty(happyFollows) ? happyFollows.size() : 0); |
| | | |
| | | List<HappyActivityOption> happyActivityOptions = happyActivityOptionMapper.selectList( |
| | | new LambdaQueryWrapper<HappyActivityOption>() |
| | | .select(HappyActivityOption::getId,HappyActivityOption::getLikesCnt) |
| | | .eq(HappyActivityOption::getActivityId, happyActivityOption.getActivityId()) |
| | | .eq(HappyActivityOption::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) |
| | | .eq(HappyActivityOption::getState, StateUpDownEnum.VOTE_OPTION_STATE_AUDIT_SUCCESS.getCode()) |
| | | .orderByDesc(HappyActivityOption::getLikesCnt) |
| | | ); |
| | | //获取上一个名次的数据 |
| | | int firstCnt = 1; |
| | | int distanceCnt = 0; |
| | | for (HappyActivityOption option : happyActivityOptions){ |
| | | if(option.getId().equals(id)){ |
| | | apiActivityOptionVo.setFirstCnt(firstCnt); |
| | | if( firstCnt == 1 ){ |
| | | apiActivityOptionVo.setDistanceCnt(distanceCnt); |
| | | }else{ |
| | | apiActivityOptionVo.setDistanceCnt(distanceCnt- option.getLikesCnt()); |
| | | } |
| | | break; |
| | | }else{ |
| | | firstCnt = firstCnt + 1; |
| | | distanceCnt = option.getLikesCnt(); |
| | | } |
| | | } |
| | | |
| | | return new FebsResponse().success().data(apiActivityOptionVo); |
| | | } |
| | | |
| | |
| | | new LambdaQueryWrapper<HappyFollow>() |
| | | .eq(HappyFollow::getMemberId, memberId) |
| | | .eq(HappyFollow::getSourceId, sourceId) |
| | | .eq(HappyFollow::getSourceOptionId, sourceOptionId) |
| | | .eq(HappyFollow::getType, type) |
| | | .gt(HappyFollow::getCreatedTime, DateUtil.beginOfDay(new Date())) |
| | | ); |
| | |
| | | if(CollUtil.isNotEmpty(records)){ |
| | | //stream流操作records,获取全部的memberId(全部投票人) |
| | | Set<Long> memberIds = records.stream().map(ApiVoteRecordInPageVo::getMemberId).collect(Collectors.toSet()); |
| | | if(CollUtil.isEmpty(memberIds)){ |
| | | if(CollUtil.isNotEmpty(memberIds)){ |
| | | List<MallMember> mallMembers = mallMemberMapper.selectList( |
| | | new LambdaQueryWrapper<MallMember>() |
| | | .select(MallMember::getId, MallMember::getName, MallMember::getAvatar) |
| | |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse operateValidRegister(ApiOperateValidRegisterActivityDto dto) { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | HappyActivity happyActivity = this.baseMapper.selectById(dto.getActivityId()); |
| | | |
| | | if (StateUpDownEnum.ACTIVITY_STATE_END.getCode() == happyActivity.getState()) { |
| | | throw new FebsException("活动已结束"); |
| | | } |
| | | if (StateUpDownEnum.DOWN.getCode() == happyActivity.getAddState()) { |
| | | throw new FebsException("活动尚未开启报名"); |
| | | } |
| | | //判断用户是否重复报名 |
| | | Integer registerCnt = happyActivityOptionMapper.selectCount( |
| | | new LambdaQueryWrapper<HappyActivityOption>() |
| | | .eq(HappyActivityOption::getMemberId, memberId) |
| | | .eq(HappyActivityOption::getActivityId, dto.getActivityId()) |
| | | .ne(HappyActivityOption::getState, StateUpDownEnum.VOTE_OPTION_STATE_AUDIT_REFUSE.getCode()) |
| | | .eq(HappyActivityOption::getDeleteFlag, StateUpDownEnum.DOWN.getCode()) |
| | | ); |
| | | if (registerCnt > 0) { |
| | | throw new FebsException("您已经报名过了"); |
| | | } |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse operateRegister(ApiOperateRegisterActivityDto dto) { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | |
| | |
| | | @ApiModelProperty(value = "票数") |
| | | private Integer likesCnt; |
| | | |
| | | @ApiModelProperty(value = "名次") |
| | | private Integer firstCnt; |
| | | |
| | | @ApiModelProperty(value = "距离上一名") |
| | | private Integer distanceCnt; |
| | | |
| | | @ApiModelProperty(value = "投票人数") |
| | | private Integer voteCnt; |
| | | |
| | | @ApiModelProperty(value = "封面头像") |
| | | private String image; |
| | | |
| | |
| | | @ApiModelProperty(value = "门票剩余数量") |
| | | private Integer surplusCnt; |
| | | |
| | | @ApiModelProperty(value = "每天的限制次数") |
| | | private Integer voteCnt; |
| | | |
| | | @ApiModelProperty(value = "是否众筹 0-关闭 1-开启(开启代表收取参与费用)") |
| | | private Integer payState; |
| | | |
| | |
| | | wecharActivityPaynotifyUrl: http://blnka.csxuncong.com/api/xcxPay/wxpayCallback |
| | | wecharRechargePaynotifyUrl: http://blnka.csxuncong.com/api/xcxPay/rechargeCallBack |
| | | certLocalPath: /home/blnkaCert/apiclient_cert.p12 |
| | | wecharpayMchid: 1658958205 |
| | | wecharpayMchid: 1714199495 |
| | | wecharpaySecret: daL341aN5orDt13puXadsAf2rpuXdq4r |
| | | wecharpaySecretV3: daL341aN5orDt13puXadsAf2rpuX12v3 |
| | | wecharpaySecretV3: 1234567hnggcmyxgs731907666310878 |
| | | gaodeKey: 95ede7157929f5f6b6c758971be924b1 |
| | | serviceName: yiyuanshucai |
| | | |
| | |
| | | <div class="layui-side-scroll"> |
| | | <div class="layui-logo" style="cursor: pointer"> |
| | | <img data-th-src="@{febs/images/logo.png}"> |
| | | <span>blnka 权限系统</span> |
| | | <span>快乐社区 权限系统</span> |
| | | </div> |
| | | <script |
| | | type="text/html" |
| | |
| | | <html xmlns:th="http://www.thymeleaf.org"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>blnka 权限系统</title> |
| | | <title>快乐社区 权限系统</title> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | |
| | | <div class="layui-container"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4 febs-tc"> |
| | | <div class="layui-logo"><span><b>blnka</b> 权限系统</span></div> |
| | | <div class="layui-logo"><span><b>快乐社区</b> 权限系统</span></div> |
| | | </div> |
| | | <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4" id="login-div"> |
| | | <div class="layui-form" lay-filter="login-form"> |
New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-member-list" lay-title="会员列表"> |
| | | <div class="layui-row febs-container"> |
| | | <div class="layui-col-md12"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body febs-table-full"> |
| | | <form class="layui-form layui-table-form" lay-filter="user-table-form"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md10"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label layui-form-label-sm">用户昵称</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="用户昵称" name="name" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label layui-form-label-sm">手机号码</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="手机号码" name="account" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label layui-form-label-sm">会员类型</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="level"> |
| | | <option value="">请选择</option> |
| | | <option value="ZERO_LEVEL">普通用户</option> |
| | | <option value="FIRST_LEVEL">城市合伙人</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label layui-form-label-sm">会员生日</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="birthday" id="febs-member-benefits-list-birthday-start" lay-verify="date" |
| | | placeholder="MM-dd" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> |
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query"> |
| | | <i class="layui-icon"></i> |
| | | </div> |
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset"> |
| | | <i class="layui-icon"></i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | <table lay-filter="userTable" lay-data="{id: 'userTable'}"></table> |
| | | <style type="text/css"> |
| | | ::-webkit-scrollbar { |
| | | height: 20px !important; |
| | | background-color: #f4f4f4; |
| | | } |
| | | </style> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 表格操作栏 start --> |
| | | <script type="text/html" id="user-option"> |
| | | <span shiro:lacksPermission="user:view,user:update,user:delete"> |
| | | <span class="layui-badge-dot febs-bg-orange"></span> 无权限 |
| | | </span> |
| | | <a lay-event="edit" shiro:hasPermission="user:update"><i |
| | | class="layui-icon febs-edit-area febs-blue"></i></a> |
| | | </script> |
| | | <script type="text/html" id="switchStatus"> |
| | | {{# if(d.accountStatus === 1) { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="正常|禁用" checked lay-skin="switch" lay-filter="switchStatus"> |
| | | {{# } else { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="正常|禁用" lay-skin="switch" lay-filter="switchStatus"> |
| | | {{# } }} |
| | | </script> |
| | | <script type="text/html" id="switchStoreMaster"> |
| | | {{# if(d.storeMaster === 1) { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="switchStoreMaster"> |
| | | {{# } else { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="switchStoreMaster"> |
| | | {{# } }} |
| | | </script> |
| | | <script type="text/html" id="switchDirector"> |
| | | {{# if(d.director === 1) { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="switchDirector"> |
| | | {{# } else { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="switchDirector"> |
| | | {{# } }} |
| | | </script> |
| | | |
| | | <script type="text/html" id="isSalesmanSwitch"> |
| | | {{# if(d.isSale === 1) { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="isSalesmanSwitch"> |
| | | {{# } else { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="isSalesmanSwitch"> |
| | | {{# } }} |
| | | </script> |
| | | |
| | | <script type="text/html" id="isDoctorSwitch"> |
| | | {{# if(d.doctorState === 1) { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="isDoctorSwitch"> |
| | | {{# } else { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="isDoctorSwitch"> |
| | | {{# } }} |
| | | </script> |
| | | <style> |
| | | .layui-form-onswitch { |
| | | background-color: #5FB878 !important; |
| | | } |
| | | </style> |
| | | <script type="text/html" id="toolbar"> |
| | | <div class="layui-btn-container"> |
| | | <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateReferer">修改推荐人</button> |
| | | <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateVipLevel">修改会员等级</button> |
| | | <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="addCoupon">优惠券派送</button> |
| | | </div> |
| | | </script> |
| | | <!-- 表格操作栏 end --> |
| | | <script data-th-inline="none" type="text/javascript"> |
| | | // 引入组件并初始化 |
| | | layui.use([ 'jquery', 'form', 'table', 'febs', 'laydate'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | table = layui.table, |
| | | $view = $('#febs-member-list'), |
| | | $query = $view.find('#query'), |
| | | $reset = $view.find('#reset'), |
| | | $searchForm = $view.find('form'), |
| | | sortObject = {field: 'phone', type: null}, |
| | | laydate = layui.laydate, |
| | | tableIns; |
| | | |
| | | form.render(); |
| | | |
| | | laydate.render({ |
| | | elem: '#febs-member-benefits-list-birthday-start', |
| | | format:'MM-dd' |
| | | }); |
| | | |
| | | // 表格初始化 |
| | | initTable(); |
| | | |
| | | // 初始化表格操作栏各个按钮功能 |
| | | table.on('tool(userTable)', function (obj) { |
| | | var data = obj.data, |
| | | layEvent = obj.event; |
| | | |
| | | if (layEvent === 'memberOut') { |
| | | febs.modal.confirm('注销', '确认注销该账号?', function () { |
| | | memberOut(data.id); |
| | | }); |
| | | } |
| | | |
| | | if (layEvent === 'close') { |
| | | febs.modal.confirm('禁用', '确认禁用该账号?', function () { |
| | | closeAccount(data.id); |
| | | }); |
| | | } |
| | | if (layEvent === 'open') { |
| | | febs.modal.confirm('开启', '确认开启该账号?', function () { |
| | | openAccount(data.id); |
| | | }); |
| | | } |
| | | |
| | | if (layEvent === 'see') { |
| | | febs.modal.open( '个人信息', 'modules/mallMember/detail/' + data.id, { |
| | | btn: ['提交', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#user-update').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | if (layEvent === 'addLeader') { |
| | | febs.modal.open( '团长新增', 'modules/leader/addLeader/' + data.id, { |
| | | btn: ['提交', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#user-addLeader').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | if (layEvent === 'agentSelect') { |
| | | febs.modal.open('推销员设置', 'modules/mallMember/agentSelect/' + data.id, { |
| | | btn: ['提交', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#agent-select').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | if (layEvent === 'moneyFlow') { |
| | | febs.modal.open( '用户资金流水', 'modules/mallMember/moneyFlow/' + data.id, { |
| | | maxmin: true, |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | }); |
| | | function memberOut(id) { |
| | | febs.get(ctx + 'admin/mallMember/memberOut/' + id, null, function () { |
| | | febs.alert.success('操作成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | function closeAccount(id) { |
| | | febs.get(ctx + 'admin/mallMember/closeAccount/' + id, null, function () { |
| | | febs.alert.success('禁用成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | function openAccount(id) { |
| | | febs.get(ctx + 'admin/mallMember/openAccount/' + id, null, function () { |
| | | febs.alert.success('开启成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | |
| | | function changeIdentityYes(type, id) { |
| | | febs.get(ctx + 'admin/mallMember/changeIdentityYes/' + type + "/" + id, null, function () { |
| | | febs.alert.success('设置成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | function changeIdentityNo(type, id) { |
| | | febs.get(ctx + 'admin/mallMember/changeIdentityNo/' + type + "/" + id, null, function () { |
| | | febs.alert.success('设置成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | |
| | | function resetPwd(id, type) { |
| | | febs.post(ctx + 'admin/mallMember/resetPwdNew/' + type + "/"+ id, null, function () { |
| | | febs.alert.success('重置成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | |
| | | form.on('switch(isSalesmanSwitch)', function (data) { |
| | | if (data.elem.checked) { |
| | | upSale(data.value); |
| | | } else { |
| | | downSale(data.value); |
| | | } |
| | | }) |
| | | |
| | | form.on('switch(isDoctorSwitch)', function (data) { |
| | | if (data.elem.checked) { |
| | | doctorStateChange(data.value); |
| | | } else { |
| | | doctorStateChange(data.value); |
| | | } |
| | | }) |
| | | |
| | | function doctorStateChange(id) { |
| | | febs.get(ctx + 'admin/mallMember/doctorStateChange/' + id, null, function () { |
| | | febs.alert.success('操作成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | |
| | | function upSale(id) { |
| | | febs.get(ctx + 'admin/mallMember/upSale/' + id, null, function () { |
| | | febs.alert.success('操作成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | function downSale(id) { |
| | | febs.get(ctx + 'admin/mallMember/downSale/' + id, null, function () { |
| | | febs.alert.success('操作成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | |
| | | // 查询按钮 |
| | | $query.on('click', function () { |
| | | var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type}); |
| | | tableIns.reload({where: params, page: {curr: 1}}); |
| | | }); |
| | | |
| | | // 刷新按钮 |
| | | $reset.on('click', function () { |
| | | $searchForm[0].reset(); |
| | | sortObject.type = 'null'; |
| | | tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject}); |
| | | }); |
| | | |
| | | function initTable() { |
| | | tableIns = febs.table.init({ |
| | | elem: $view.find('table'), |
| | | id: 'userTable', |
| | | url: ctx + 'admin/mallMember/getMallMemberList', |
| | | toolbar:"#toolbar", |
| | | defaultToolbar:[], |
| | | cols: [[ |
| | | {type: 'checkbox'}, |
| | | {field: 'phone', title: '手机号码', minWidth: 150,align:'left'}, |
| | | {field: 'name', title: '用户昵称', minWidth: 100,align:'left'}, |
| | | {field: 'birthday', title: '会员生日', minWidth: 100,align:'left'}, |
| | | {field: 'inviteId', title: '邀请码', minWidth: 100,align:'left'}, |
| | | {field: 'balance', title: '余额', minWidth: 100,align:'left'}, |
| | | // {field: 'score', title: '赠送积分', minWidth: 100,align:'left'}, |
| | | {field: 'prizeScore', title: '积分', minWidth: 100,align:'left'}, |
| | | // {field: 'commission', title: '佣金', minWidth: 100,align:'left'}, |
| | | {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'}, |
| | | {field: 'levelName', title: '会员等级', minWidth: 100,align:'left'}, |
| | | // {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'}, |
| | | {field: 'doctorState', title: '医生设置', templet: '#isDoctorSwitch', minWidth: 100,align:'center'}, |
| | | {field: 'isSalesman', title: '推销员设置', templet: '#isSalesmanSwitch', minWidth: 100,align:'center'}, |
| | | // {field: 'director', title: '总监', templet:'#switchDirector', minWidth: 100}, |
| | | // {field: 'accountType', title: '账号类型', |
| | | // templet: function (d) { |
| | | // if (d.accountType === 2) { |
| | | // return '<span style="color:red;">测试账号</span>' |
| | | // } else if (d.accountType === 1) { |
| | | // return '<span style="color:green;">正常账号</span>' |
| | | // }else{ |
| | | // return '' |
| | | // } |
| | | // }, minWidth: 100,align:'center'}, |
| | | // {field: 'leaderState', title: '是否是团长', |
| | | // templet: function (d) { |
| | | // if (d.leaderState === 1) { |
| | | // return '<span style="color:green;">团长</span>' |
| | | // }else if (d.leaderState === 3) { |
| | | // return '<span">申请中</span>' |
| | | // }else if (d.leaderState === 4) { |
| | | // return '<span">普通用户(取消团长资格)</span>' |
| | | // }else{ |
| | | // return '<span">普通用户</span>' |
| | | // } |
| | | // }, minWidth: 100,align:'center'}, |
| | | // {field: 'accountStatus', title: '账号状态', templet: '#switchStatus', minWidth: 100,align:'center'}, |
| | | {field: 'createdTime', title: '注册时间', minWidth: 180,align:'center'}, |
| | | {title: '操作', |
| | | templet: function (d) { |
| | | return '' |
| | | +'<button class="layui-btn layui-btn-normal layui-btn-xs febs-bg-red" lay-event="memberOut" shiro:hasPermission="user:update">注销</button>' |
| | | // + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addLeader" shiro:hasPermission="user:update">设置为团长</button>' |
| | | |
| | | },minWidth: 200,align:'center'} |
| | | ]] |
| | | }); |
| | | } |
| | | |
| | | table.on('toolbar(userTable)', function(obj){ |
| | | var data = obj.data, |
| | | layEvent = obj.event; |
| | | |
| | | if (layEvent === 'registMember') { |
| | | febs.modal.open( '添加会员', 'modules/mallMember/addMember', { |
| | | btn: ['提交', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#member-add').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | |
| | | return; |
| | | } |
| | | |
| | | var checkData = table.checkStatus('userTable').data; |
| | | if (checkData.length <= 0) { |
| | | febs.alert.warn('请选择需要的用户'); |
| | | return; |
| | | } |
| | | |
| | | if (layEvent == 'updateReferer') { |
| | | if (checkData.length > 1) { |
| | | febs.alert.warn('每次只能修改一个用户'); |
| | | return; |
| | | } |
| | | febs.modal.open( '修改推荐人', 'modules/mallMember/updateReferer/' + checkData[0].id, { |
| | | btn: ['提交', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#referer-update').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | if (layEvent === 'updateVipLevel') { |
| | | var checkData = table.checkStatus('userTable').data; |
| | | if (checkData.length > 1) { |
| | | febs.alert.warn('每次只能修改一个用户'); |
| | | return; |
| | | } |
| | | // var idList = []; |
| | | // for (var i = 0; i < checkData.length; i++) { |
| | | // idList.push(checkData[i].id); |
| | | // } |
| | | febs.modal.open('设置会员等级', 'modules/mallMember/vipLevelSetting/' + checkData[0].id, { |
| | | btn: ['确认', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#vip-level-set').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | if (layEvent === 'resetPwd') { |
| | | febs.modal.confirm('重置登录密码', '是否重置选中账号登录密码?', function () { |
| | | var ids = []; |
| | | layui.each(checkData, function (key, item) { |
| | | ids.push(item.id) |
| | | }); |
| | | resetPwd(ids.join(','), 2); |
| | | }); |
| | | } |
| | | |
| | | if (layEvent === 'resetPayPwd') { |
| | | febs.modal.confirm('重置交易密码', '是否重置选中账号交易密码?', function () { |
| | | var ids = []; |
| | | layui.each(checkData, function (key, item) { |
| | | ids.push(item.id) |
| | | }); |
| | | |
| | | resetPwd(ids.join(','), 1); |
| | | }); |
| | | } |
| | | |
| | | if (layEvent === 'balance') { |
| | | if (checkData.length > 1) { |
| | | febs.alert.warn('请选择一个用户'); |
| | | } |
| | | systemPay("修改余额", checkData[0].id, 1); |
| | | } |
| | | |
| | | if (layEvent === 'score') { |
| | | if (checkData.length > 1) { |
| | | febs.alert.warn('请选择一个用户'); |
| | | } |
| | | systemPay("修改赠送积分", checkData[0].id, 2); |
| | | } |
| | | |
| | | if (layEvent === 'prizeScore') { |
| | | if (checkData.length > 1) { |
| | | febs.alert.warn('请选择一个用户'); |
| | | } |
| | | systemPay("修改竞猜积分", checkData[0].id, 3); |
| | | } |
| | | |
| | | if (layEvent === 'agentLevel') { |
| | | febs.modal.open('设置代理级别', 'modules/mallMember/agentLevelSet/' + checkData[0].id, { |
| | | btn: ['确认', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#agent-level-set').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | if (layEvent === 'addCoupon') { |
| | | febs.modal.open('添加优惠券', 'modules/mallMember/addCoupon/' + checkData[0].id, { |
| | | btn: ['确认', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#member-coupon-select').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | function systemPay(text, id, type) { |
| | | febs.modal.open('text', 'modules/mallMember/mallSystemPay/' + type +'/'+ id, { |
| | | btn: ['提交', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#systemPay-update').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 获取查询参数 |
| | | function getQueryParams() { |
| | | return { |
| | | name: $searchForm.find('input[name="name"]').val().trim(), |
| | | account: $searchForm.find('input[name="account"]').val().trim(), |
| | | level: $searchForm.find("select[name='level']").val(), |
| | | birthdayQuery: $searchForm.find("input[name='birthday']").val(), |
| | | // level: $searchForm.find("select[name='level']").val(), |
| | | }; |
| | | } |
| | | |
| | | form.on('switch(switchStatus)', function (data) { |
| | | if (data.elem.checked) { |
| | | openAccount(data.value); |
| | | } else { |
| | | closeAccount(data.value); |
| | | } |
| | | }) |
| | | |
| | | form.on('switch(switchStoreMaster)', function (data) { |
| | | if (data.elem.checked) { |
| | | changeIdentityYes(2, data.value); |
| | | } else { |
| | | changeIdentityNo(2, data.value); |
| | | } |
| | | }) |
| | | |
| | | form.on('switch(switchDirector)', function (data) { |
| | | if (data.elem.checked) { |
| | | changeIdentityYes(1, data.value); |
| | | } else { |
| | | changeIdentityNo(1, data.value); |
| | | } |
| | | }) |
| | | }) |
| | | </script> |
| | |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label layui-form-label-sm">手机号码</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="手机号码" name="account" autocomplete="off" class="layui-input"> |
| | | <input type="text" placeholder="手机号码" name="phone" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label layui-form-label-sm">会员类型</label> |
| | | <label class="layui-form-label layui-form-label-sm">核销员</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="level"> |
| | | <select name="checkOrder"> |
| | | <option value="">请选择</option> |
| | | <option value="ZERO_LEVEL">普通用户</option> |
| | | <option value="FIRST_LEVEL">城市合伙人</option> |
| | | <option value="0">否</option> |
| | | <option value="1">是</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label layui-form-label-sm">会员生日</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="birthday" id="febs-member-benefits-list-birthday-start" lay-verify="date" |
| | | placeholder="MM-dd" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | {{# } }} |
| | | </script> |
| | | |
| | | <script type="text/html" id="checkOrderSwitch"> |
| | | {{# if(d.checkOrder === 1) { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="checkOrderSwitch"> |
| | | {{# } else { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="checkOrderSwitch"> |
| | | {{# } }} |
| | | </script> |
| | | |
| | | <script type="text/html" id="isDoctorSwitch"> |
| | | {{# if(d.doctorState === 1) { }} |
| | | <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="isDoctorSwitch"> |
| | |
| | | <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateVipLevel">修改会员等级</button> |
| | | <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="addCoupon">优惠券派送</button> |
| | | </div> |
| | | </script> |
| | | |
| | | <script type="text/html" id="memberOption"> |
| | | <!-- <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="user:update" lay-event="memberOut">注销</button>--> |
| | | </script> |
| | | <!-- 表格操作栏 end --> |
| | | <script data-th-inline="none" type="text/javascript"> |
| | |
| | | }); |
| | | } |
| | | |
| | | form.on('switch(checkOrderSwitch)', function (data) { |
| | | if (data.elem.checked) { |
| | | checkOrder(data.value); |
| | | } else { |
| | | checkOrder(data.value); |
| | | } |
| | | }) |
| | | |
| | | form.on('switch(isSalesmanSwitch)', function (data) { |
| | | if (data.elem.checked) { |
| | | upSale(data.value); |
| | |
| | | |
| | | function doctorStateChange(id) { |
| | | febs.get(ctx + 'admin/mallMember/doctorStateChange/' + id, null, function () { |
| | | febs.alert.success('操作成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | |
| | | function checkOrder(id) { |
| | | febs.get(ctx + 'admin/mallMember/checkOrder/' + id, null, function () { |
| | | febs.alert.success('操作成功'); |
| | | $query.click(); |
| | | }); |
| | |
| | | defaultToolbar:[], |
| | | cols: [[ |
| | | {type: 'checkbox'}, |
| | | {type: 'numbers', title: '', width: 80}, |
| | | {title: '操作', toolbar: '#memberOption', minWidth: 200, align: 'center'}, |
| | | {field: 'phone', title: '手机号码', minWidth: 150,align:'left'}, |
| | | {field: 'name', title: '用户昵称', minWidth: 100,align:'left'}, |
| | | {field: 'birthday', title: '会员生日', minWidth: 100,align:'left'}, |
| | | {field: 'inviteId', title: '邀请码', minWidth: 100,align:'left'}, |
| | | {field: 'balance', title: '余额', minWidth: 100,align:'left'}, |
| | | // {field: 'score', title: '赠送积分', minWidth: 100,align:'left'}, |
| | | {field: 'prizeScore', title: '积分', minWidth: 100,align:'left'}, |
| | | // {field: 'commission', title: '佣金', minWidth: 100,align:'left'}, |
| | | {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'}, |
| | | {field: 'levelName', title: '会员等级', minWidth: 100,align:'left'}, |
| | | // {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'}, |
| | | {field: 'doctorState', title: '医生设置', templet: '#isDoctorSwitch', minWidth: 100,align:'center'}, |
| | | {field: 'isSalesman', title: '推销员设置', templet: '#isSalesmanSwitch', minWidth: 100,align:'center'}, |
| | | // {field: 'director', title: '总监', templet:'#switchDirector', minWidth: 100}, |
| | | // {field: 'accountType', title: '账号类型', |
| | | // templet: function (d) { |
| | | // if (d.accountType === 2) { |
| | | // return '<span style="color:red;">测试账号</span>' |
| | | // } else if (d.accountType === 1) { |
| | | // return '<span style="color:green;">正常账号</span>' |
| | | // }else{ |
| | | // return '' |
| | | // } |
| | | // }, minWidth: 100,align:'center'}, |
| | | // {field: 'leaderState', title: '是否是团长', |
| | | // templet: function (d) { |
| | | // if (d.leaderState === 1) { |
| | | // return '<span style="color:green;">团长</span>' |
| | | // }else if (d.leaderState === 3) { |
| | | // return '<span">申请中</span>' |
| | | // }else if (d.leaderState === 4) { |
| | | // return '<span">普通用户(取消团长资格)</span>' |
| | | // }else{ |
| | | // return '<span">普通用户</span>' |
| | | // } |
| | | // }, minWidth: 100,align:'center'}, |
| | | // {field: 'accountStatus', title: '账号状态', templet: '#switchStatus', minWidth: 100,align:'center'}, |
| | | {field: 'checkOrder', title: '核销员', templet: '#checkOrderSwitch', minWidth: 100,align:'center'}, |
| | | {field: 'createdTime', title: '注册时间', minWidth: 180,align:'center'}, |
| | | {title: '操作', |
| | | templet: function (d) { |
| | | return '' |
| | | +'<button class="layui-btn layui-btn-normal layui-btn-xs febs-bg-red" lay-event="memberOut" shiro:hasPermission="user:update">注销</button>' |
| | | // + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addLeader" shiro:hasPermission="user:update">设置为团长</button>' |
| | | |
| | | },minWidth: 200,align:'center'} |
| | | ]] |
| | | }); |
| | | } |
| | |
| | | function getQueryParams() { |
| | | return { |
| | | name: $searchForm.find('input[name="name"]').val().trim(), |
| | | account: $searchForm.find('input[name="account"]').val().trim(), |
| | | level: $searchForm.find("select[name='level']").val(), |
| | | birthdayQuery: $searchForm.find("input[name='birthday']").val(), |
| | | // level: $searchForm.find("select[name='level']").val(), |
| | | phone: $searchForm.find('input[name="phone"]').val().trim(), |
| | | checkOrder: $searchForm.find("select[name='checkOrder']").val(), |
| | | }; |
| | | } |
| | | |
| | |
| | | <label class="layui-form-label febs-form-item-require">类型:</label> |
| | | <div class="layui-input-block"> |
| | | <select name="type"> |
| | | <option value="">请选择</option> |
| | | <option value="1">普通活动</option> |
| | | <option value="2">众筹活动</option> |
| | | <option value="3">投票活动</option> |
| | |
| | | <label class="layui-form-label febs-form-item-require">推荐首页:</label> |
| | | <div class="layui-input-block"> |
| | | <select name="hotState"> |
| | | <option value="">请选择</option> |
| | | <option value="0">不推荐</option> |
| | | <option value="1">推荐</option> |
| | | </select> |
| | |
| | | <label class="layui-form-label febs-form-item-require">自主报名:</label> |
| | | <div class="layui-input-block"> |
| | | <select name="addState"> |
| | | <option value="">请选择</option> |
| | | <option value="0">不允许</option> |
| | | <option value="1">允许</option> |
| | | </select> |
| | |
| | | <label class="layui-form-label febs-form-item-require">门票售卖:</label> |
| | | <div class="layui-input-block"> |
| | | <select name="payState"> |
| | | <option value="">请选择</option> |
| | | <option value="0">关闭</option> |
| | | <option value="1">开启</option> |
| | | </select> |
| | |
| | | } |
| | | |
| | | form.val("activity-discount-update-form", { |
| | | "id": activity.id || '', |
| | | "name": activity.name || '', |
| | | "type": activity.type || '', |
| | | "joinCnt": activity.joinCnt || '', |
| | | "startTime": activity.startTime || '', |
| | | "endTime": activity.endTime || '', |
| | | "phone": activity.phone || '', |
| | | "address": activity.address || '', |
| | | "payState": activity.payState || '', |
| | | "payAmount": activity.payAmount || '', |
| | | "orderCnt": activity.orderCnt || '', |
| | | "hotState": activity.hotState || '', |
| | | "voteCnt": activity.voteCnt || '', |
| | | "addState": activity.addState || '' |
| | | "id": activity.id, |
| | | "name": activity.name, |
| | | "type": activity.type, |
| | | "joinCnt": activity.joinCnt, |
| | | "startTime": activity.startTime, |
| | | "endTime": activity.endTime, |
| | | "phone": activity.phone, |
| | | "address": activity.address, |
| | | "payState": activity.payState, |
| | | "payAmount": activity.payAmount, |
| | | "orderCnt": activity.orderCnt, |
| | | "hotState": activity.hotState, |
| | | "voteCnt": activity.voteCnt, |
| | | "addState": activity.addState, |
| | | }); |
| | | $('#demoMax').append('<img src="' + activity.backImg + '" alt="" class="layui-upload-img single-image" style="width: 130px">') |
| | | $('#demoMax').append('<img src="' + activity.backImg + '" alt="" class="layui-upload-img single-image" style="width: 130px">'); |
| | | $("#backImg").val(activity.backImg); |
| | | $('#demo1Max').append('<img src="' + activity.indexImg + '" alt="" class="layui-upload-img single-image" style="width: 130px">') |
| | | $('#demo1Max').append('<img src="' + activity.indexImg + '" alt="" class="layui-upload-img single-image" style="width: 130px">'); |
| | | $("#indexImg").val(activity.indexImg); |
| | | |
| | | var arr = []; |
| | | arr.push(activity.categoryId) |
| | | arr.push(activity.categoryId); |
| | | activityGroup.setValue(arr); |
| | | |
| | | editor.txt.html(activity.textRemark); |
| | |
| | | xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>blnka 权限系统</title> |
| | | <title>快乐社区 权限系统</title> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |