会员管理,查看功能

master
382696293@qq.com 2 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;
/**
* 12
*/
private Integer clock;
/**
* 12
*/
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;
/**
* 12
*/
private Integer clock;
/**
* 12
*/
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