会员管理,查看功能

master
382696293@qq.com 3 years ago
parent a4688c106a
commit 82fb355daf

@ -78,7 +78,7 @@ public class WxUserMember extends BaseEntity {
* 省id
*/
@Excel(name = "省id")
private String provinceId;
private Long provinceId;
/**
* 省
@ -90,7 +90,7 @@ public class WxUserMember extends BaseEntity {
* 市id
*/
@Excel(name = "市id")
private String cityId;
private Long cityId;
/**
* 市
@ -102,7 +102,7 @@ public class WxUserMember extends BaseEntity {
* 区id
*/
@Excel(name = "区id")
private String areaId;
private Long areaId;
/**
* 区
@ -327,27 +327,27 @@ public class WxUserMember extends BaseEntity {
return status;
}
public String getProvinceId() {
public Long getProvinceId() {
return provinceId;
}
public void setProvinceId(String provinceId) {
public void setProvinceId(Long provinceId) {
this.provinceId = provinceId;
}
public String getCityId() {
public Long getCityId() {
return cityId;
}
public void setCityId(String cityId) {
public void setCityId(Long cityId) {
this.cityId = cityId;
}
public String getAreaId() {
public Long getAreaId() {
return areaId;
}
public void setAreaId(String areaId) {
public void setAreaId(Long areaId) {
this.areaId = areaId;
}
@ -370,7 +370,7 @@ public class WxUserMember extends BaseEntity {
public WxUserMember() {
}
public WxUserMember(Long id, String nickname, String headimg, String username, Integer credit, String openid, String unionid, Integer userType, Integer level, String mobile, String provinceId, String province, String cityId, String city, String areaId, String area, Date birthday, Integer clock, Integer activity, String wechat, Integer isAbutment, Integer isCompleteInformation, Integer devicesNum, Date loginTime, Integer status) {
public WxUserMember(Long id, String nickname, String headimg, String username, Integer credit, String openid, String unionid, Integer userType, Integer level, String mobile, Long provinceId, String province, Long cityId, String city, Long areaId, String area, Date birthday, Integer clock, Integer activity, String wechat, Integer isAbutment, Integer isCompleteInformation, Integer devicesNum, Date loginTime, Integer status) {
this.id = id;
this.nickname = nickname;
this.headimg = headimg;

@ -43,6 +43,9 @@ public class WxUserTag extends BaseEntity {
*/
private Long status;
public WxUserTag() {
}
public WxUserTag(Long id, Long userId, String tagName, Long tagId, Integer type, Long status) {
this.id = id;
this.userId = userId;

@ -0,0 +1,191 @@
package com.flossom.common.core.domain.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.flossom.common.core.annotation.Excel;
import com.flossom.common.core.web.domain.BaseEntity;
import java.util.Date;
import java.util.List;
/**
* 保存用户对象
*
* @author flossom
* @date 2023-12-08
*/
public class WxUserMemberReq {
/**
* id
*/
private Long id;
/**
* 昵称
*/
private String nickname;
/**
* 手机
*/
private String mobile;
/**
* 省id
*/
private Long provinceId;
/**
* 市id
*/
private Long cityId;
/**
* 区id
*/
private Long areaId;
/**
* 生日
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date birthday;
/**
* 企微标签
*/
List<Integer> wecomTags;
/**
* 小程序标签
*/
List<Integer> miniProgramTags;
/**
* 打卡:1可以2不可以
*/
private Integer clock;
/**
* 活动:1可以2不可以
*/
private Integer activity;
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
public WxUserMemberReq() {
}
public WxUserMemberReq(Long id, String nickname, String mobile, Long provinceId, Long cityId, Long areaId, Date birthday, List<Integer> wecomTags, List<Integer> miniProgramTags, Integer clock, Integer activity, Date updateTime) {
this.id = id;
this.nickname = nickname;
this.mobile = mobile;
this.provinceId = provinceId;
this.cityId = cityId;
this.areaId = areaId;
this.birthday = birthday;
this.wecomTags = wecomTags;
this.miniProgramTags = miniProgramTags;
this.clock = clock;
this.activity = activity;
this.updateTime = updateTime;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public Long getProvinceId() {
return provinceId;
}
public void setProvinceId(Long provinceId) {
this.provinceId = provinceId;
}
public Long getCityId() {
return cityId;
}
public void setCityId(Long cityId) {
this.cityId = cityId;
}
public Long getAreaId() {
return areaId;
}
public void setAreaId(Long areaId) {
this.areaId = areaId;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public List<Integer> getWecomTags() {
return wecomTags;
}
public void setWecomTags(List<Integer> wecomTags) {
this.wecomTags = wecomTags;
}
public List<Integer> getMiniProgramTags() {
return miniProgramTags;
}
public void setMiniProgramTags(List<Integer> miniProgramTags) {
this.miniProgramTags = miniProgramTags;
}
public Integer getClock() {
return clock;
}
public void setClock(Integer clock) {
this.clock = clock;
}
public Integer getActivity() {
return activity;
}
public void setActivity(Integer activity) {
this.activity = activity;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}

@ -0,0 +1,426 @@
package com.flossom.common.core.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.flossom.common.core.annotation.Excel;
import com.flossom.common.core.domain.entity.WxUserRemark;
import java.util.Date;
import java.util.List;
/**
* 用户对象 wx_user_member
*
* @author flossom
* @date 2023-12-08
*/
public class WxUserMemberVo {
/**
* id
*/
private Long id;
/**
* 昵称
*/
private String nickname;
/**
* 头像
*/
private String headimg;
/**
* 姓名
*/
private String username;
/**
* 积分
*/
private Integer credit;
/**
* openid
*/
private String openid;
/**
* unionid
*/
private String unionid;
/**
* 用户类型:0游客 1会员
*/
private Integer userType;
/**
* 会员等级:0 不是会员,1以上为会员
*/
private Integer level;
/**
* 手机
*/
private String mobile;
/**
* 省id
*/
private Long provinceId;
/**
* 省
*/
private String province;
/**
* 市id
*/
private Long cityId;
/**
* 市
*/
private String city;
/**
* 区id
*/
private Long areaId;
/**
* 区
*/
private String area;
/**
* 生日
*/
private Date birthday;
/**
* 打卡:1可以2不可以
*/
private Integer clock;
/**
* 活动:1可以2不可以
*/
private Integer activity;
/**
* 微信号
*/
private String wechat;
/**
* 1 未对接到中控 2已经对接 3对接失败
*/
private Integer isAbutment;
/**
* 是否完善信息: :0 未完善 1完善
*/
private Integer isCompleteInformation;
/**
* 绑定的仪器数量
*/
private Integer devicesNum;
/**
* 登陆时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date loginTime;
/**
* 状态(0正常 1停用)
*/
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private Integer status;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 小程序标签
*/
private List<Long> miniProgramTags;
private List<WxUserRemark> wxUserRemarkList;
/**
* 企微标签
*/
private List<Long> wecomTags;
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getNickname() {
return nickname;
}
public void setHeadimg(String headimg) {
this.headimg = headimg;
}
public String getHeadimg() {
return headimg;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setCredit(Integer credit) {
this.credit = credit;
}
public Integer getCredit() {
return credit;
}
public void setOpenid(String openid) {
this.openid = openid;
}
public String getOpenid() {
return openid;
}
public void setUnionid(String unionid) {
this.unionid = unionid;
}
public String getUnionid() {
return unionid;
}
public void setUserType(Integer userType) {
this.userType = userType;
}
public Integer getUserType() {
return userType;
}
public void setLevel(Integer level) {
this.level = level;
}
public Integer getLevel() {
return level;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getMobile() {
return mobile;
}
public void setProvince(String province) {
this.province = province;
}
public String getProvince() {
return province;
}
public void setCity(String city) {
this.city = city;
}
public String getCity() {
return city;
}
public void setArea(String area) {
this.area = area;
}
public String getArea() {
return area;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public Date getBirthday() {
return birthday;
}
public void setClock(Integer clock) {
this.clock = clock;
}
public Integer getClock() {
return clock;
}
public void setActivity(Integer activity) {
this.activity = activity;
}
public Integer getActivity() {
return activity;
}
public void setWechat(String wechat) {
this.wechat = wechat;
}
public String getWechat() {
return wechat;
}
public void setIsAbutment(Integer isAbutment) {
this.isAbutment = isAbutment;
}
public Integer getIsAbutment() {
return isAbutment;
}
public void setLoginTime(Date loginTime) {
this.loginTime = loginTime;
}
public Date getLoginTime() {
return loginTime;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getStatus() {
return status;
}
public Long getProvinceId() {
return provinceId;
}
public void setProvinceId(Long provinceId) {
this.provinceId = provinceId;
}
public Long getCityId() {
return cityId;
}
public void setCityId(Long cityId) {
this.cityId = cityId;
}
public Long getAreaId() {
return areaId;
}
public void setAreaId(Long areaId) {
this.areaId = areaId;
}
public Integer getIsCompleteInformation() {
return isCompleteInformation;
}
public void setIsCompleteInformation(Integer isCompleteInformation) {
this.isCompleteInformation = isCompleteInformation;
}
public Integer getDevicesNum() {
return devicesNum;
}
public void setDevicesNum(Integer devicesNum) {
this.devicesNum = devicesNum;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public List<Long> getMiniProgramTags() {
return miniProgramTags;
}
public void setMiniProgramTags(List<Long> miniProgramTags) {
this.miniProgramTags = miniProgramTags;
}
public List<Long> getWecomTags() {
return wecomTags;
}
public void setWecomTags(List<Long> wecomTags) {
this.wecomTags = wecomTags;
}
public List<WxUserRemark> getWxUserRemarkList() {
return wxUserRemarkList;
}
public void setWxUserRemarkList(List<WxUserRemark> wxUserRemarkList) {
this.wxUserRemarkList = wxUserRemarkList;
}
public WxUserMemberVo() {
}
public WxUserMemberVo(Long id, String nickname, String headimg, String username, Integer credit, String openid, String unionid, Integer userType, Integer level, String mobile, Long provinceId, String province, Long cityId, String city, Long areaId, String area, Date birthday, Integer clock, Integer activity, String wechat, Integer isAbutment, Integer isCompleteInformation, Integer devicesNum, Date loginTime, Integer status) {
this.id = id;
this.nickname = nickname;
this.headimg = headimg;
this.username = username;
this.credit = credit;
this.openid = openid;
this.unionid = unionid;
this.userType = userType;
this.level = level;
this.mobile = mobile;
this.provinceId = provinceId;
this.province = province;
this.cityId = cityId;
this.city = city;
this.areaId = areaId;
this.area = area;
this.birthday = birthday;
this.clock = clock;
this.activity = activity;
this.wechat = wechat;
this.isAbutment = isAbutment;
this.isCompleteInformation = isCompleteInformation;
this.devicesNum = devicesNum;
this.loginTime = loginTime;
this.status = status;
}
}

@ -26,6 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="content != null and content != ''"> and content = #{content}</if>
<if test="status != null "> and status = #{status}</if>
</where>
order by create_time desc
</select>
<select id="selectWxUserRemarkById" parameterType="Long" resultMap="WxUserRemarkResult">

@ -6,6 +6,7 @@ import com.flossom.common.core.domain.R;
import com.flossom.common.core.domain.entity.WxUserMember;
import com.flossom.common.core.domain.req.AllChangIntegralOperateReq;
import com.flossom.common.core.domain.req.WxUserIntegralVm;
import com.flossom.common.core.domain.req.WxUserMemberReq;
import com.flossom.common.core.domain.req.WxUserMemberVm;
import com.flossom.common.core.enums.IntegralChangeTypeEnum;
import com.flossom.common.core.exception.ServiceException;
@ -85,7 +86,7 @@ public class WxUserMemberController extends BaseController {
@RequiresPermissions("system:member:edit")
@Log(title = "用户", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody WxUserMember wxUserMember) {
public AjaxResult edit(@RequestBody WxUserMemberReq wxUserMember) {
return toAjax(wxUserMemberService.updateWxUserMember(wxUserMember));
}
@ -201,5 +202,4 @@ public class WxUserMemberController extends BaseController {
return R.ok();
}
}

@ -3,7 +3,9 @@ package com.flossom.system.service;
import com.flossom.common.core.domain.entity.WxUserMember;
import com.flossom.common.core.domain.req.WxUserIntegralVm;
import com.flossom.common.core.domain.req.WxUserMemberReq;
import com.flossom.common.core.domain.req.WxUserMemberVm;
import com.flossom.common.core.domain.vo.WxUserMemberVo;
import java.util.List;
@ -21,7 +23,7 @@ public interface IWxUserMemberService
* @param id 用户主键
* @return 用户
*/
public WxUserMember selectWxUserMemberById(Long id);
public WxUserMemberVo selectWxUserMemberById(Long id);
/**
* 查询用户列表
@ -53,7 +55,7 @@ public interface IWxUserMemberService
* @param wxUserMember 用户
* @return 结果
*/
public int updateWxUserMember(WxUserMember wxUserMember);
public int updateWxUserMember(WxUserMemberReq wxUserMember);
/**
* 批量删除用户

@ -3,11 +3,15 @@ package com.flossom.system.service.impl;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
import com.flossom.common.core.domain.entity.*;
import com.flossom.common.core.domain.req.WxUserIntegralVm;
import com.flossom.common.core.domain.req.WxUserMemberReq;
import com.flossom.common.core.domain.req.WxUserMemberVm;
import com.flossom.common.core.domain.vo.WxUserMemberVo;
import com.flossom.common.core.enums.IntegralChangeTypeEnum;
import com.flossom.common.core.enums.Status;
import com.flossom.common.core.enums.TagTypeStatus;
import com.flossom.common.core.mapper.*;
import com.flossom.common.core.utils.DateUtils;
@ -51,6 +55,9 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService {
@Autowired
private WxUserScriptLogMapper wxUserScriptLogMapper;
@Autowired
private SysRegionMapper sysRegionMapper;
/**
* 查询用户
*
@ -58,8 +65,34 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService {
* @return 用户
*/
@Override
public WxUserMember selectWxUserMemberById(Long id) {
return wxUserMemberMapper.selectWxUserMemberById(id);
public WxUserMemberVo selectWxUserMemberById(Long id) {
WxUserMemberVo wxUserMemberVo = new WxUserMemberVo();
WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(id);
BeanUtils.copyProperties(wxUserMember, wxUserMemberVo);
// 查询小程序标签
WxUserTag query = new WxUserTag();
query.setType(TagTypeStatus.MINI_PROGRAM.getCode());
query.setUserId(wxUserMember.getId());
List<WxUserTag> miniProgramUserTagList = wxUserTagMapper.selectWxUserTagList(query);
List<Long> collect = null;
if (miniProgramUserTagList != null && miniProgramUserTagList.size() > 0) {
collect = miniProgramUserTagList.stream().map(WxUserTag::getTagId).collect(Collectors.toList());
}
wxUserMemberVo.setMiniProgramTags(collect);
// 查询企微标签
query.setType(TagTypeStatus.ENTERPRISE_WECHAT.getCode());
List<WxUserTag> wecomUserTags = wxUserTagMapper.selectWxUserTagList(query);
collect = null;
if (wecomUserTags != null && wecomUserTags.size() > 0) {
collect = wecomUserTags.stream().map(WxUserTag::getTagId).collect(Collectors.toList());
}
wxUserMemberVo.setWecomTags(collect);
// 查询用户备注
WxUserRemark wxUserRemark = new WxUserRemark();
wxUserRemark.setUserId(wxUserMember.getId());
wxUserRemark.setStatus(Status.OK.getCode());
wxUserMemberVo.setWxUserRemarkList(wxUserRemarkMapper.selectWxUserRemarkList(wxUserRemark));
return wxUserMemberVo;
}
/**
@ -99,12 +132,27 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService {
/**
* 修改用户
*
* @param wxUserMember 用户
* @param WxUserMemberReq 用户
* @return 结果
*/
@Override
public int updateWxUserMember(WxUserMember wxUserMember) {
wxUserMember.setUpdateTime(DateUtils.getNowDate());
public int updateWxUserMember(WxUserMemberReq wxUserMemberReq) {
wxUserMemberReq.setUpdateTime(DateUtils.getNowDate());
WxUserMember wxUserMember = new WxUserMember();
BeanUtils.copyProperties(wxUserMemberReq, wxUserMember);
// 补充 省市区信息
SysRegion province = sysRegionMapper.selectSysRegionById(wxUserMemberReq.getProvinceId());
wxUserMember.setProvince(province.getName());
SysRegion city = sysRegionMapper.selectSysRegionById(wxUserMemberReq.getCityId());
wxUserMember.setCity(city.getName());
SysRegion area = sysRegionMapper.selectSysRegionById(wxUserMemberReq.getAreaId());
wxUserMember.setArea(area.getName());
// 添加用户与小程序标签关联
List<Integer> userIdList = new ArrayList<>();
userIdList.add(wxUserMemberReq.getId().intValue());
batchAddMiniProgramTag(wxUserMemberReq.getMiniProgramTags(), userIdList);
// 添加用户与企微标签关联
batchAddWecomTag(wxUserMemberReq.getWecomTags(), userIdList);
return wxUserMemberMapper.updateWxUserMember(wxUserMember);
}
@ -157,6 +205,16 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService {
return wxUserMemberMapper.selectUserCount();
}
/**
* 批量添加企微标签
*
* @param tagIdList
* @param userIdList
*/
public void batchAddWecomTag(List<Integer> tagIdList, List<Integer> userIdList) {
batchAddTag(tagIdList, userIdList, TagTypeStatus.ENTERPRISE_WECHAT.getCode());
}
/**
* 批量添加小程序标签
*
@ -165,13 +223,24 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService {
*/
@Override
public void batchAddMiniProgramTag(List<Integer> tagIdList, List<Integer> userIdList) {
batchAddTag(tagIdList, userIdList, TagTypeStatus.MINI_PROGRAM.getCode());
}
/**
* 批量添加标签
* code 标签类型 {@link com.flossom.common.core.enums.TagTypeStatus}
*
* @param tagIdList
* @param userIdList
*/
public void batchAddTag(List<Integer> tagIdList, List<Integer> userIdList, Integer code) {
// 对单个标签操作
for (Integer tagId : tagIdList) {
SysTag sysTag = sysTagMapper.selectDeptById(tagId.longValue());
if (sysTag != null) {
List<Integer> needAddIdList = new ArrayList<>();
// 1、查询该标签下,有那些用户关联
List<Integer> existedUserList = wxUserTagMapper.selectWxUserTagByTagId(tagId, TagTypeStatus.MINI_PROGRAM.getCode());
List<Integer> existedUserList = wxUserTagMapper.selectWxUserTagByTagId(tagId, code);
Iterator<Integer> iterator = userIdList.iterator();
while (iterator.hasNext()) {
Integer element = iterator.next();
@ -185,7 +254,7 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService {
WxUserTag wxUserTag;
if (needAddIdList != null && needAddIdList.size() > 0) {
for (Integer userId : needAddIdList) {
wxUserTag = new WxUserTag(null, userId.longValue(), sysTag.getTagName(), tagId.longValue(), TagTypeStatus.MINI_PROGRAM.getCode(), null);
wxUserTag = new WxUserTag(null, userId.longValue(), sysTag.getTagName(), tagId.longValue(), code, null);
wxUserTag.setCreateTime(DateUtils.getNowDate());
list.add(wxUserTag);
}
@ -196,6 +265,7 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService {
// TODO: 对接数赢:批量添加小程序标签
}
/**
* 批量删除小程序标签
*

@ -216,3 +216,20 @@ export function scriptTreeSelect(query) {
})
}
// 修改用户备注
export function editRemark(data) {
return request({
url: '/system/wxUserRemark',
method: 'put',
data: data
})
}
// 删除用户备注
export function delRemark(id) {
return request({
url: '/system/wxUserRemark/' + id,
method: 'delete',
})
}

@ -244,22 +244,6 @@
<el-table-column label="消息列表" align="center" prop=""/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:member:edit']"
>查看
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:member:remove']"
>删除
</el-button>
<el-button
size="mini"
type="text"
@ -304,51 +288,31 @@
@pagination="getList"
/>
<!-- 添加或修改用户对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="昵称" prop="nickname">
<el-input v-model="form.nickname" placeholder="请输入昵称"/>
</el-form-item>
<!-- 查看用户信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-dialog width="30%" title="修改用户备注" :visible.sync="editRemarkVisible" append-to-body>
<el-form ref="form" :model="editRemarkForm" label-width="50px">
<el-form-item label="备注 " prop="content">
<el-input v-model="editRemarkForm.content" placeholder="请输入备注"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="ocEditRemarkDialog()">关 闭</el-button>
<el-button type="primary" @click="submitEditRemark()">确 定</el-button>
</div>
</el-dialog>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="头像" prop="headimg">
<el-input v-model="form.headimg" placeholder="请输入头像"/>
</el-form-item>
<el-form-item label="姓名" prop="username">
<el-input v-model="form.username" placeholder="请输入姓名"/>
</el-form-item>
<el-form-item label="积分" prop="credit">
<el-input v-model="form.credit" placeholder="请输入积分"/>
<el-avatar shape="circle" :size="50" :src="form.headimg"/>
</el-form-item>
<el-form-item label="openid" prop="openid">
<el-input v-model="form.openid" placeholder="请输入openid"/>
</el-form-item>
<el-form-item label="unionid" prop="unionid">
<el-input v-model="form.unionid" placeholder="请输入unionid"/>
</el-form-item>
<el-form-item label="用户类型" prop="userType">
<el-radio v-model="form.userType" label="0">游客</el-radio>
<el-radio v-model="form.userType" label="1">会员</el-radio>
</el-form-item>
<el-form-item label="会员等级" prop="level">
<el-input-number v-model="form.level" :min="1" :max="100" label="会员等级"></el-input-number>
<el-form-item label="会员昵称" prop="nickname" style="width: 44%">
<el-input v-model="form.nickname" placeholder="请输入昵称"/>
</el-form-item>
<el-form-item label="手机" prop="mobile">
<el-form-item label="手机号码" prop="mobile" style="width: 44%">
<el-input v-model="form.mobile" placeholder="请输入手机"/>
</el-form-item>
<!-- <el-form-item label="密码" prop="password">-->
<!-- <el-input v-model="form.password" placeholder="请输入密码" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="个人二维码" prop="userQr">-->
<!-- <el-input v-model="form.userQr" placeholder="请输入个人二维码" />-->
<!-- </el-form-item>-->
<el-form-item label="省" prop="province">
<el-input v-model="form.province" placeholder="请输入省"/>
</el-form-item>
<el-form-item label="市" prop="city">
<el-input v-model="form.city" placeholder="请输入市"/>
</el-form-item>
<el-form-item label="区" prop="area">
<el-input v-model="form.area" placeholder="请输入区"/>
<el-form-item label="用户编号" prop="id">
<span>{{ form.id }}</span>
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-date-picker clearable
@ -358,25 +322,88 @@
placeholder="请选择生日">
</el-date-picker>
</el-form-item>
<el-form-item label="参与打卡" prop="clock">
<el-input v-model="form.clock" placeholder="请输入1可以2不可以"/>
<el-form-item label="是否完善" prop="isCompleteInformation">
<template slot-scope="scope">
<span v-show="form.isCompleteInformation == 0">未完善</span>
<span v-show="form.isCompleteInformation == 1">完善</span>
</template>
</el-form-item>
<el-form-item label="省" prop="provinceId" style="width: 40%">
<el-select v-model="form.provinceId" @change="getCityList(form.provinceId,true)" filterable clearable
placeholder="请选择省">
<el-option
v-for="item in provinceList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="市" prop="cityId" style="width: 40%">
<el-select v-model="form.cityId" @change="getAreaByPid(form.cityId, true)" filterable clearable
placeholder="请选择省">
<el-option
v-for="item in saveCityList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="区" prop="areaId" style="width: 40%">
<el-select v-model="form.areaId" filterable clearable placeholder="请选择市">
<el-option
v-for="item in saveAreaList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="小程序标签" prop="tagIdArray" style="width: 80%">
<treeselect v-model="form.miniProgramTags" :options="miniProgramTagTree" :multiple="true" :show-count="true"
placeholder="请选择小程序标签" :disable-branch-nodes="true"/>
</el-form-item>
<el-form-item label="参与活动" prop="activity">
<el-input v-model="form.activity" placeholder="请输入1可以2不可以"/>
<el-form-item label="企微标签" prop="tagIdArray" style="width: 80%">
<treeselect v-model="form.wecomTags" :options="wecomTagTree" :multiple="true" :show-count="true"
placeholder="请选择企微标签" :disable-branch-nodes="true"/>
</el-form-item>
<el-form-item label="微信号" prop="wechat">
<el-input v-model="form.wechat" placeholder="请输入微信号"/>
<el-form-item label="注册时间" prop="createTime">
<el-date-picker v-model="form.createTime" readonly disabled type="date" value-format="yyyy-MM-dd"/>
</el-form-item>
<el-form-item label="1 未对接到中控 2已经对接 3对接失败" prop="isAbutment">
<el-input v-model="form.isAbutment" placeholder="请输入1 未对接到中控 2已经对接 3对接失败"/>
<el-form-item label="积分" prop="credit">
<span>{{ form.credit }}</span>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注"/>
<el-form-item label="打卡状态" prop="clock">
<el-select v-model="form.clock" style="width: 20%">
<el-option label="开启打卡" :value="1"></el-option>
<el-option label="禁止打卡" :value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="参与活动状态" prop="activity">
<el-select v-model="form.activity" style="width: 20%">
<el-option label="开启参与" :value="1"></el-option>
<el-option label="禁止参与" :value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="备注列表" prop="remark">
<el-table :data="form.wxUserRemarkList" style="width: 100%">
<el-table-column prop="id" label="序号" style="width: 10%"/>
<el-table-column prop="content" label="备注内容" style="width: 60%"/>
<el-table-column prop="createTime" label="创建时间" style="width: 30%"/>
<el-table-column prop="createTime" label="操作" style="width: 10%">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="ocEditRemarkDialog(scope.row)">编辑
</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="submitDelRemark(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="submitForm">确 定</el-button>
</div>
</el-dialog>
@ -563,6 +590,7 @@ import {
allAddRemark,
getMiniProgramTagsTree,
scriptTreeSelect,
editRemark, delRemark,
} from "@/api/system/member";
import Treeselect from "@riophae/vue-treeselect";
import {tagTreeSelect} from "@/api/system/wechatTab";
@ -591,6 +619,12 @@ export default {
title: "",
// 是否显示弹出层
open: false,
// 修改用户备注弹出层
editRemarkVisible: false,
editRemarkForm: {
id: null,
content: null
},
// 日期范围
dateRange: [],
// 表头统计
@ -603,6 +637,8 @@ export default {
miniProgramTags: [],
// 小程序标签树
miniProgramTagTree: [],
// 企微标签树
wecomTagTree: [],
// 查询条件,企微二级标签
wecomTags: [],
// 查询条件:购买渠道
@ -611,6 +647,9 @@ export default {
provinceList: null,
cityList: null,
areaList: null,
// 保存页面的,市区
saveCityList: null,
saveAreaList: null,
// 批量操作下拉项选择
batchOperateValue: null,
// 批量操作:小程序标签
@ -692,6 +731,8 @@ export default {
wecomTags: [], // 企微标签
miniProgramTags: [], // 小程序标签
purchaseChannels: [], // 购买渠道
isCompleteInformation: null, // 用户信息是否完善
wxUserRemarkList: null, // 备注列表
},
// 表单参数
form: {},
@ -746,6 +787,10 @@ export default {
getMiniProgramTagsTree().then(Response => {
this.miniProgramTagTree = Response.data
})
// 企微标签树
tagTreeSelect({type: 2}).then(response => {
this.wecomTagTree = response.data;
});
},
// 获取省市区
getProvinceList() {
@ -753,18 +798,22 @@ export default {
this.provinceList = Response.data
})
},
getCityList(pid) {
console.log(pid);
getCityList(pid, isSave) {
getRegionByPid(pid).then(Response => {
console.log(Response.data)
this.cityList = Response.data
if (isSave) {
this.saveCityList = Response.data;
} else {
this.cityList = Response.data;
}
})
},
getAreaByPid(pid) {
console.log(pid);
getAreaByPid(pid, isSave) {
getRegionByPid(pid).then(Response => {
console.log(Response.data)
this.areaList = Response.data
if (isSave) {
this.saveAreaList = Response.data;
} else {
this.areaList = Response.data;
}
})
},
// 取消按钮
@ -796,7 +845,7 @@ export default {
},
cancelscriptDialog(isclose) {
this.scriptForm.isCustom = null,
this.scriptForm.scriptName = null;
this.scriptForm.scriptName = null;
this.scriptForm.titile = null;
this.scriptForm.content = null;
this.scriptForm.tagType = null;
@ -1055,27 +1104,27 @@ export default {
this.form = response.data;
this.open = true;
this.title = "修改用户";
// 回显省市区
if (this.form.provinceId != null) {
this.getCityList(this.form.provinceId, true);
}
if (this.form.areaId != null) {
this.getAreaByPid(this.form.cityId, true);
}
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateMember(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addMember(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
if (this.form.id != null) {
updateMember(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
this.$modal.msgError("修改失败");
}
},
/* 批量操作提交按钮 */
submitBatchOperate() {
@ -1157,8 +1206,52 @@ export default {
this.cancelRemarkDialog(true);
})
}
},
// 打开用户备注修改
ocEditRemarkDialog(row) {
this.editRemarkVisible = !this.editRemarkVisible;
if (this.editRemarkVisible) {
this.editRemarkForm.id = row.id;
this.editRemarkForm.content = row.content;
} else {
this.editRemarkForm.content = null;
this.editRemarkForm.id = null;
}
},
// 保存用户备注
submitEditRemark() {
editRemark(this.editRemarkForm).then(Response => {
this.$modal.msgSuccess("修改备注成功");
if (this.form.wxUserRemarkList != null && this.form.wxUserRemarkList.length > 0) {
let that = this;
this.form.wxUserRemarkList.forEach(function (item) {
if(item.id = that.editRemarkForm.id) {
item.content = that.editRemarkForm.content;
}
})
}
this.ocEditRemarkDialog();
})
},
// 删除用户备注
submitDelRemark(row) {
this.$confirm("<span style='font-size: 18px'><strong>确定将选择的备注删除吗?</strong></span><br/>", '删除备注', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
dangerouslyUseHTMLString: true
}).then(() => {
delRemark(row.id).then(Response => {
this.$modal.msgSuccess("删除用户备注成功");
let list = this.form.wxUserRemarkList;
for (let i = 0; i < list.length; i++) {
if(list[i].id == row.id) {
this.form.wxUserRemarkList.splice(i, 1);
}
}
})
}).catch(() => {
});
},
/** 删除按钮操作 */
handleDelete(row) {

Loading…
Cancel
Save