Browse Source

fix(粉丝标签管理): 增、删、改、查

fengdan 3 years ago
parent
commit
372b4a70aa

+ 3 - 3
yudao-module-wechat/yudao-module-mp-api/src/main/java/cn/iocoder/yudao/module/mp/enums/ErrorCodeConstants.java

@@ -10,8 +10,8 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode;
 public interface ErrorCodeConstants {
 
     // ========== 用户相关  1004001000============
-    ErrorCode WX_ACCOUNT_NOT_EXISTS = new ErrorCode(1004001000, "户不存在");
-    ErrorCode WX_ACCOUNT_FANS_NOT_EXISTS = new ErrorCode(1004001000, "用户不存在");
-    ErrorCode COMMON_NOT_EXISTS = new ErrorCode(1004001000, "用户不存在");
+    ErrorCode WX_ACCOUNT_NOT_EXISTS = new ErrorCode(1004001000, "公众号账户不存在");
+    ErrorCode WX_ACCOUNT_FANS_NOT_EXISTS = new ErrorCode(1004001001, "粉丝账号不存在");
+    ErrorCode COMMON_NOT_EXISTS = new ErrorCode(1004001002, "用户不存在");
 
 }

+ 30 - 34
yudao-module-wechat/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/fanstag/FansTagController.java

@@ -8,8 +8,8 @@ import cn.iocoder.yudao.module.mp.controller.admin.fanstag.vo.*;
 import cn.iocoder.yudao.module.mp.convert.fanstag.WxFansTagConvert;
 import cn.iocoder.yudao.module.mp.service.tag.FansTagService;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
+import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.mp.bean.tag.WxUserTag;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -18,8 +18,8 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
 import java.io.IOException;
-import java.util.Collection;
 import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -30,7 +30,7 @@ import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.E
  */
 @Api(tags = "管理后台 - 粉丝标签")
 @RestController
-@RequestMapping("/wechat-mp/fans-tag")
+@RequestMapping("/wechatMp/fans-tag")
 @Validated
 public class FansTagController {
 
@@ -39,57 +39,53 @@ public class FansTagController {
 
     @PostMapping("/create")
     @ApiOperation("创建粉丝标签")
-    @PreAuthorize("@ss.hasPermission('wechatMp:wx-fans-tag:create')")
-    public CommonResult<WxUserTag> createWxFansTag(@Valid @RequestBody FansTagCreateReqVO createReqVO) {
+    @PreAuthorize("@ss.hasPermission('wechatMp:fans-tag:create')")
+    public CommonResult<WxUserTag> createWxFansTag(@Valid @RequestBody FansTagCreateReqVO createReqVO) throws WxErrorException {
         return success(fansTagService.createWxFansTag(createReqVO));
     }
 
     @PutMapping("/update")
     @ApiOperation("更新粉丝标签")
-    @PreAuthorize("@ss.hasPermission('wechatMp:wx-fans-tag:update')")
-    public CommonResult<Boolean> updateWxFansTag(@Valid @RequestBody FansTagUpdateReqVO updateReqVO) {
-        fansTagService.updateWxFansTag(updateReqVO);
-        return success(true);
+    @PreAuthorize("@ss.hasPermission('wechatMp:fans-tag:update')")
+    public CommonResult<Boolean> updateWxFansTag(@Valid @RequestBody FansTagUpdateReqVO updateReqVO) throws WxErrorException {
+        return success(fansTagService.updateWxFansTag(updateReqVO));
     }
 
     @DeleteMapping("/delete")
     @ApiOperation("删除粉丝标签")
-    @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Integer.class)
-    @PreAuthorize("@ss.hasPermission('wechatMp:wx-fans-tag:delete')")
-    public CommonResult<Boolean> deleteWxFansTag(@RequestParam("id") Integer id) {
-        fansTagService.deleteWxFansTag(id);
-        return success(true);
-    }
-
-    @GetMapping("/get")
-    @ApiOperation("获得粉丝标签")
-    @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Integer.class)
-    @PreAuthorize("@ss.hasPermission('wechatMp:wx-fans-tag:query')")
-    public CommonResult<FansTagRespVO> getWxFansTag(@RequestParam("id") Integer id) {
-        WxUserTag wxFansTag = fansTagService.getWxFansTag(id);
-        return success(WxFansTagConvert.INSTANCE.convert(wxFansTag));
+    @PreAuthorize("@ss.hasPermission('wechatMp:fans-tag:delete')")
+    public CommonResult<Boolean> deleteWxFansTag(@RequestParam("id") Long id,
+                                                 @RequestParam("appId") String appId) throws WxErrorException {
+        return success(fansTagService.deleteWxFansTag(id, appId));
     }
 
     @GetMapping("/list")
-    @ApiOperation("获得粉丝标签列表")
-    @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
-    @PreAuthorize("@ss.hasPermission('wechatMp:wx-fans-tag:query')")
-    public CommonResult<List<FansTagRespVO>> getWxFansTagList(@RequestParam("ids") Collection<Integer> ids) {
-        List<WxUserTag> list = fansTagService.getWxFansTagList(ids);
+    @ApiOperation("获取公众号已创建的标签")
+    @PreAuthorize("@ss.hasPermission('wechatMp:fans-tag:query')")
+    public CommonResult<List<FansTagRespVO>> getWxFansTagList(@NotEmpty(message = "公众号appId不能为空")
+                                                              @RequestParam("appId") String appId) throws WxErrorException {
+        List<WxUserTag> list = fansTagService.getWxFansTagList(appId);
         return success(WxFansTagConvert.INSTANCE.convertList(list));
     }
 
     @GetMapping("/page")
-    @ApiOperation("获得粉丝标签分页")
-    @PreAuthorize("@ss.hasPermission('wechatMp:wx-fans-tag:query')")
-    public CommonResult<PageResult<FansTagRespVO>> getWxFansTagPage(@Valid FansTagPageReqVO pageVO) {
-        PageResult<WxUserTag> pageResult = fansTagService.getWxFansTagPage(pageVO);
-        return success(WxFansTagConvert.INSTANCE.convertPage(pageResult));
+    @ApiOperation("获取公众号已创建的标签")
+    @PreAuthorize("@ss.hasPermission('wechatMp:fans-tag:query')")
+    public CommonResult<PageResult<FansTagRespVO>> page() throws WxErrorException {
+        PageResult<WxUserTag> page = new PageResult<>();
+        return success(WxFansTagConvert.INSTANCE.convertPage(page));
+    }
+
+    @GetMapping("/tagListUser")
+    @ApiOperation("获取标签下粉丝列表")
+    @PreAuthorize("@ss.hasPermission('wechatMp:fans-tag:query')")
+    public CommonResult<String> tagListUser(@Valid FansTagPageReqVO pageVO) {
+        return success("");
     }
 
     @GetMapping("/export-excel")
     @ApiOperation("导出粉丝标签 Excel")
-    @PreAuthorize("@ss.hasPermission('wechatMp:wx-fans-tag:export')")
+    @PreAuthorize("@ss.hasPermission('wechatMp:fans-tag:export')")
     @OperateLog(type = EXPORT)
     public void exportWxFansTagExcel(@Valid FansTagExportReqVO exportReqVO,
                                      HttpServletResponse response) throws IOException {

+ 4 - 4
yudao-module-wechat/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/fanstag/vo/FansTagBaseVO.java

@@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.mp.controller.admin.fanstag.vo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
+
 /**
  * 粉丝标签 Base VO,提供给添加、修改、详细的子 VO 使用
  * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
@@ -12,9 +14,7 @@ import lombok.Data;
 @Data
 public class FansTagBaseVO {
 
-    @ApiModelProperty(value = "标签名,UTF8编码.")
+    @NotBlank(message = "标签名不能为空")
+    @ApiModelProperty(value = "标签名,UTF8编码")
     private String name;
-
-    @ApiModelProperty(value = "此标签下粉丝数")
-    private Integer count;
 }

+ 10 - 3
yudao-module-wechat/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/fanstag/vo/FansTagCreateReqVO.java

@@ -1,7 +1,12 @@
 package cn.iocoder.yudao.module.mp.controller.admin.fanstag.vo;
 
-import lombok.*;
-import io.swagger.annotations.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+import javax.validation.constraints.NotBlank;
 
 /**
  * @author fengdan
@@ -11,5 +16,7 @@ import io.swagger.annotations.*;
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
 public class FansTagCreateReqVO extends FansTagBaseVO {
-
+    @NotBlank(message = "公众号appId不能为空")
+    @ApiModelProperty("微信公众号appId")
+    private String appId;
 }

+ 12 - 23
yudao-module-wechat/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/fanstag/vo/FansTagPageReqVO.java

@@ -1,36 +1,25 @@
 package cn.iocoder.yudao.module.mp.controller.admin.fanstag.vo;
 
-import lombok.*;
-
-import java.util.*;
-
-import io.swagger.annotations.*;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
 
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+import javax.validation.constraints.NotEmpty;
 
+/**
+ * @author fengdan
+ */
 @ApiModel("管理后台 - 粉丝标签分页 Request VO")
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
 public class FansTagPageReqVO extends PageParam {
 
-    @ApiModelProperty(value = "标签名称")
-    private String name;
-
-    @ApiModelProperty(value = "粉丝数量")
-    private Integer count;
-
-    @ApiModelProperty(value = "微信账号ID")
-    private String wxAccountId;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "开始创建时间")
-    private Date beginCreateTime;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @ApiModelProperty(value = "结束创建时间")
-    private Date endCreateTime;
+    @NotEmpty(message = "公众号appId不能为空")
+    @ApiModelProperty("微信公众号appId")
+    private String appId;
 
 }

+ 9 - 2
yudao-module-wechat/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/fanstag/vo/FansTagUpdateReqVO.java

@@ -5,14 +5,21 @@ import io.swagger.annotations.*;
 
 import javax.validation.constraints.*;
 
+/**
+ * @author fengdan
+ */
 @ApiModel("管理后台 - 粉丝标签更新 Request VO")
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
 public class FansTagUpdateReqVO extends FansTagBaseVO {
 
-    @ApiModelProperty(value = "主键", required = true)
+    @ApiModelProperty(value = "标签id,由微信分配", required = true)
     @NotNull(message = "主键不能为空")
-    private Integer id;
+    private Long id;
+
+    @NotBlank(message = "公众号appId不能为空")
+    @ApiModelProperty("微信公众号appId")
+    private String appId;
 
 }

+ 17 - 18
yudao-module-wechat/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/service/tag/FansTagService.java

@@ -5,10 +5,10 @@ import cn.iocoder.yudao.module.mp.controller.admin.fanstag.vo.FansTagCreateReqVO
 import cn.iocoder.yudao.module.mp.controller.admin.fanstag.vo.FansTagExportReqVO;
 import cn.iocoder.yudao.module.mp.controller.admin.fanstag.vo.FansTagPageReqVO;
 import cn.iocoder.yudao.module.mp.controller.admin.fanstag.vo.FansTagUpdateReqVO;
+import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.mp.bean.tag.WxUserTag;
 
 import javax.validation.Valid;
-import java.util.Collection;
 import java.util.List;
 
 /**
@@ -21,40 +21,39 @@ public interface FansTagService {
     /**
      * 创建粉丝标签
      *
-     * @param createReqVO 创建信息
-     * @return 编号
+     * @param createReqVO 创建标签信息
+     * @return {@link WxUserTag}  用户标签对象
+     * @throws WxErrorException 微信异常
      */
-    WxUserTag createWxFansTag(@Valid FansTagCreateReqVO createReqVO);
+    WxUserTag createWxFansTag(FansTagCreateReqVO createReqVO) throws WxErrorException;
 
     /**
      * 更新粉丝标签
      *
      * @param updateReqVO 更新信息
+     * @return {@link         Boolean}
+     * @throws WxErrorException 微信异常
      */
-    void updateWxFansTag(@Valid FansTagUpdateReqVO updateReqVO);
+    Boolean updateWxFansTag(@Valid FansTagUpdateReqVO updateReqVO) throws WxErrorException;
 
     /**
      * 删除粉丝标签
      *
-     * @param id 编号
+     * @param id    编号
+     * @param appId 公众号appId
+     * @return {@link         Boolean}
+     * @throws WxErrorException 微信异常
      */
-    void deleteWxFansTag(Integer id);
+    Boolean deleteWxFansTag(Long id, String appId) throws WxErrorException;
 
     /**
-     * 获得粉丝标签
+     * 获取公众号已创建的标签
      *
-     * @param id 编号
-     * @return 粉丝标签
-     */
-    WxUserTag getWxFansTag(Integer id);
-
-    /**
-     * 获得粉丝标签列表
-     *
-     * @param ids 编号
+     * @param appId 公众号appId
      * @return 粉丝标签列表
+     * @throws WxErrorException 微信异常
      */
-    List<WxUserTag> getWxFansTagList(Collection<Integer> ids);
+    List<WxUserTag> getWxFansTagList(String appId) throws WxErrorException;
 
     /**
      * 获得粉丝标签分页

+ 14 - 24
yudao-module-wechat/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/service/tag/FansTagServiceImpl.java

@@ -1,11 +1,11 @@
 package cn.iocoder.yudao.module.mp.service.tag;
 
+import cn.hutool.core.util.ReUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.mp.controller.admin.fanstag.vo.FansTagCreateReqVO;
 import cn.iocoder.yudao.module.mp.controller.admin.fanstag.vo.FansTagExportReqVO;
 import cn.iocoder.yudao.module.mp.controller.admin.fanstag.vo.FansTagPageReqVO;
 import cn.iocoder.yudao.module.mp.controller.admin.fanstag.vo.FansTagUpdateReqVO;
-import cn.iocoder.yudao.module.mp.convert.fanstag.WxFansTagConvert;
 import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.mp.api.WxMpService;
@@ -14,7 +14,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
-import java.util.Collection;
 import java.util.List;
 
 /**
@@ -26,42 +25,33 @@ import java.util.List;
 @Service
 @Validated
 public class FansTagServiceImpl implements FansTagService {
-
     @Resource
     private WxMpService wxMpService;
 
     @Override
-    public WxUserTag createWxFansTag(FansTagCreateReqVO createReqVO) {
-        try {
-            return wxMpService.getUserTagService().tagCreate("wxFansTag");
-        } catch (WxErrorException e) {
-            throw new RuntimeException(e);
-        }
+    public WxUserTag createWxFansTag(FansTagCreateReqVO createReqVO) throws WxErrorException {
+        // TODO 切换公众号操作 调整为 aop 或者 过滤器\拦截器 处理
+        wxMpService.switchover(createReqVO.getAppId());
+        return wxMpService.getUserTagService().tagCreate(createReqVO.getName());
     }
 
     @Override
-    public void updateWxFansTag(FansTagUpdateReqVO updateReqVO) {
-        // 校验存在
-        // 更新
-        WxUserTag updateObj = WxFansTagConvert.INSTANCE.convert(updateReqVO);
-
+    public Boolean updateWxFansTag(FansTagUpdateReqVO updateReqVO) throws WxErrorException {
+        wxMpService.switchover(updateReqVO.getAppId());
+        return wxMpService.getUserTagService().tagUpdate(updateReqVO.getId(), updateReqVO.getName());
     }
 
     @Override
-    public void deleteWxFansTag(Integer id) {
-        // 校验存在
-        // 删除
+    public Boolean deleteWxFansTag(Long id, String appId) throws WxErrorException {
+        wxMpService.switchover(appId);
+        return wxMpService.getUserTagService().tagDelete(id);
     }
 
 
     @Override
-    public WxUserTag getWxFansTag(Integer id) {
-        return null;
-    }
-
-    @Override
-    public List<WxUserTag> getWxFansTagList(Collection<Integer> ids) {
-        return null;
+    public List<WxUserTag> getWxFansTagList(String appId) throws WxErrorException {
+        wxMpService.switchover(appId);
+        return wxMpService.getUserTagService().tagGet();
     }
 
     @Override

+ 7 - 7
yudao-ui-admin/src/api/wechatMp/wxFansTag.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 创建粉丝标签
 export function createWxFansTag(data) {
   return request({
-    url: '/wechatMp/wx-fans-tag/create',
+    url: '/wechatMp/fans-tag/create',
     method: 'post',
     data: data
   })
@@ -12,7 +12,7 @@ export function createWxFansTag(data) {
 // 更新粉丝标签
 export function updateWxFansTag(data) {
   return request({
-    url: '/wechatMp/wx-fans-tag/update',
+    url: '/wechatMp/fans-tag/update',
     method: 'put',
     data: data
   })
@@ -21,7 +21,7 @@ export function updateWxFansTag(data) {
 // 删除粉丝标签
 export function deleteWxFansTag(id) {
   return request({
-    url: '/wechatMp/wx-fans-tag/delete?id=' + id,
+    url: '/wechatMp/fans-tag/delete?id=' + id,
     method: 'delete'
   })
 }
@@ -29,15 +29,15 @@ export function deleteWxFansTag(id) {
 // 获得粉丝标签
 export function getWxFansTag(id) {
   return request({
-    url: '/wechatMp/wx-fans-tag/get?id=' + id,
+    url: '/wechatMp/fans-tag/get?id=' + id,
     method: 'get'
   })
 }
 
 // 获得粉丝标签分页
-export function getWxFansTagPage(query) {
+export function getWxFansTagList(query) {
   return request({
-    url: '/wechatMp/wx-fans-tag/page',
+    url: '/wechatMp/fans-tag/list',
     method: 'get',
     params: query
   })
@@ -46,7 +46,7 @@ export function getWxFansTagPage(query) {
 // 导出粉丝标签 Excel
 export function exportWxFansTagExcel(query) {
   return request({
-    url: '/wechatMp/wx-fans-tag/export-excel',
+    url: '/wechatMp/fans-tag/export-excel',
     method: 'get',
     params: query,
     responseType: 'blob'

+ 208 - 188
yudao-ui-admin/src/views/wechatMp/wxFansTag/index.vue

@@ -6,17 +6,7 @@
       <el-form-item label="标签名称" prop="name">
         <el-input v-model="queryParams.name" placeholder="请输入标签名称" clearable @keyup.enter.native="handleQuery"/>
       </el-form-item>
-      <el-form-item label="粉丝数量" prop="count">
-        <el-input v-model="queryParams.count" placeholder="请输入粉丝数量" clearable @keyup.enter.native="handleQuery"/>
-      </el-form-item>
-      <el-form-item label="微信账号ID" prop="wxAccountId">
-        <el-input v-model="queryParams.wxAccountId" placeholder="请输入微信账号ID" clearable
-                  @keyup.enter.native="handleQuery"/>
-      </el-form-item>
-      <el-form-item label="创建时间">
-        <el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
-                        type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"/>
-      </el-form-item>
+
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
@@ -27,43 +17,54 @@
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
         <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
-                   v-hasPermi="['wechatMp:wx-fans-tag:create']">新增
+                   v-hasPermi="['wechatMp:fans-tag:create']">新增
         </el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
                    :loading="exportLoading"
-                   v-hasPermi="['wechatMp:wx-fans-tag:export']">导出
+                   v-hasPermi="['wechatMp:fans-tag:export']">导出
         </el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
+    <div style="display: flex;width: auto">
+      <div class="left_column" style="border: 1px solid #EBEEF5FF; width: 15%;height: auto">
+        <div style="padding: 10px 20px; border-bottom: 1px solid #ebeef5; box-sizing: border-box;"><span
+          style="font-size: 16px">公众号名称</span></div>
+
+        <div style="margin-top: 10px;margin-right: 5px;margin-left: 5px">
+          <input type="text" placeholder="输入关键字进行过滤"
+                 class="el-input__inner"/>
+        </div>
+
+        <div style="margin-top: 10px;margin-right: 5px;margin-left: 5px">
+          <div style="margin-right: 5px;margin-left: 5px" v-for="(account,index) in accountList" @click="getAccountTag(account.appId)">{{ account.name }}</div>
+        </div>
+      </div>
+      <div class="right_column" style="width: 85%">
+        <!-- 列表 -->
+        <el-table v-loading="loading" :data="list">
+          <el-table-column label="编号" align="center" prop="id"/>
+          <el-table-column label="标签名称" align="center" prop="name"/>
+          <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="['wechatMp:fans-tag:update']">修改
+              </el-button>
+              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+                         v-hasPermi="['wechatMp:fans-tag:delete']">删除
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <!-- 分页组件 -->
+        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
+                    @pagination="getList"/>
+
+      </div>
+    </div>
 
-    <!-- 列表 -->
-    <el-table v-loading="loading" :data="list">
-      <el-table-column label="主键" align="center" prop="id"/>
-      <el-table-column label="标签名称" align="center" prop="name"/>
-      <el-table-column label="粉丝数量" align="center" prop="count"/>
-      <el-table-column label="微信账号ID" align="center" prop="wxAccountId"/>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-      <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="['wechatMp:wx-fans-tag:update']">修改
-          </el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
-                     v-hasPermi="['wechatMp:wx-fans-tag:delete']">删除
-          </el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <!-- 分页组件 -->
-    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
-                @pagination="getList"/>
 
     <!-- 对话框(添加 / 修改) -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
@@ -86,160 +87,179 @@
   </div>
 </template>
 
+<style>
+.left_column {
+  height: 100%;
+  position: relative;
+  overflow: auto;
+}
+</style>
+
 <script>
-  import {
-    createWxFansTag,
-    updateWxFansTag,
-    deleteWxFansTag,
-    getWxFansTag,
-    getWxFansTagPage,
-    exportWxFansTagExcel
-  } from "@/api/wechatMp/wxFansTag";
+import {
+  createWxFansTag,
+  deleteWxFansTag,
+  exportWxFansTagExcel,
+  getWxFansTag,
+  getWxFansTagList,
+  updateWxFansTag
+} from '@/api/wechatMp/wxFansTag'
+import {getAccountPage} from '@/api/wechatMp/wxAccount'
 
-  export default {
-    name: "WxFansTag",
-    components: {},
-    data() {
-      return {
-        // 遮罩层
-        loading: true,
-        // 导出遮罩层
-        exportLoading: false,
-        // 显示搜索条件
-        showSearch: true,
-        // 总条数
-        total: 0,
-        // 粉丝标签列表
-        list: [],
-        // 弹出层标题
-        title: "",
-        // 是否显示弹出层
-        open: false,
-        dateRangeCreateTime: [],
-        // 查询参数
-        queryParams: {
-          pageNo: 1,
-          pageSize: 10,
-          name: null,
-          count: null,
-          wxAccountId: null,
-        },
-        // 表单参数
-        form: {},
-        // 表单校验
-        rules: {}
-      };
+export default {
+  name: 'WxFansTag',
+  components: {},
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 粉丝标签列表
+      list: [],
+      // 账号列表
+      accountList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      dateRangeCreateTime: [],
+      // 查询参数
+      queryParams: {
+        appId: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {}
+    }
+  },
+  created() {
+    this.getAccountList()
+  },
+  methods: {
+    /** 查询列表 */
+    getList(appId) {
+      this.loading = false
+      this.queryParams.appId = appId
+      // 处理查询参数
+      let params = {...this.queryParams}
+      // 执行查询
+      getWxFansTagList(params).then(response => {
+        this.list = response.data
+        this.loading = false
+      })
     },
-    created() {
-      this.getList();
+    /** 查询列表 */
+    getAccountList() {
+      // 执行查询
+      getAccountPage().then(response => {
+        this.accountList = response.data.list
+      })
     },
-    methods: {
-      /** 查询列表 */
-      getList() {
-        this.loading = true;
-        // 处理查询参数
-        let params = {...this.queryParams};
-        this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
-        // 执行查询
-        getWxFansTagPage(params).then(response => {
-          this.list = response.data.list;
-          this.total = response.data.total;
-          this.loading = false;
-        });
-      },
-      /** 取消按钮 */
-      cancel() {
-        this.open = false;
-        this.reset();
-      },
-      /** 表单重置 */
-      reset() {
-        this.form = {
-          id: undefined,
-          name: undefined,
-          count: undefined,
-          wxAccountId: undefined,
-        };
-        this.resetForm("form");
-      },
-      /** 搜索按钮操作 */
-      handleQuery() {
-        this.queryParams.pageNo = 1;
-        this.getList();
-      },
-      /** 重置按钮操作 */
-      resetQuery() {
-        this.dateRangeCreateTime = [];
-        this.resetForm("queryForm");
-        this.handleQuery();
-      },
-      /** 新增按钮操作 */
-      handleAdd() {
-        this.reset();
-        this.open = true;
-        this.title = "添加粉丝标签";
-      },
-      /** 修改按钮操作 */
-      handleUpdate(row) {
-        this.reset();
-        const id = row.id;
-        getWxFansTag(id).then(response => {
-          this.form = response.data;
-          this.open = true;
-          this.title = "修改粉丝标签";
-        });
-      },
-      /** 提交按钮 */
-      submitForm() {
-        this.$refs["form"].validate(valid => {
-          if (!valid) {
-            return;
-          }
-          // 修改的提交
-          if (this.form.id != null) {
-            updateWxFansTag(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-            return;
-          }
-          // 添加的提交
-          createWxFansTag(this.form).then(response => {
-            this.$modal.msgSuccess("新增成功");
-            this.open = false;
-            this.getList();
-          });
-        });
-      },
-      /** 删除按钮操作 */
-      handleDelete(row) {
-        const id = row.id;
-        this.$modal.confirm('是否确认删除粉丝标签编号为"' + id + '"的数据项?').then(function () {
-          return deleteWxFansTag(id);
-        }).then(() => {
-          this.getList();
-          this.$modal.msgSuccess("删除成功");
-        }).catch(() => {
-        });
-      },
-      /** 导出按钮操作 */
-      handleExport() {
-        // 处理查询参数
-        let params = {...this.queryParams};
-        params.pageNo = undefined;
-        params.pageSize = undefined;
-        this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
-        // 执行导出
-        this.$modal.confirm('是否确认导出所有粉丝标签数据项?').then(() => {
-          this.exportLoading = true;
-          return exportWxFansTagExcel(params);
-        }).then(response => {
-          this.$download.excel(response, '粉丝标签.xls');
-          this.exportLoading = false;
-        }).catch(() => {
-        });
+
+    /**
+     * 获取帐户标签
+     * @param appId 公众号appId
+     */
+    getAccountTag(appId) {
+      this.getList(appId)
+    },
+
+    /** 取消按钮 */
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    /** 表单重置 */
+    reset() {
+      this.form = {
+        appId: undefined,
       }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNo = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRangeCreateTime = []
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '添加粉丝标签'
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const id = row.id
+      getWxFansTag(id).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '修改粉丝标签'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs['form'].validate(valid => {
+        if (!valid) {
+          return
+        }
+        // 修改的提交
+        if (this.form.id != null) {
+          updateWxFansTag(this.form).then(response => {
+            this.$modal.msgSuccess('修改成功')
+            this.open = false
+            this.getList()
+          })
+          return
+        }
+        // 添加的提交
+        createWxFansTag(this.form).then(response => {
+          this.$modal.msgSuccess('新增成功')
+          this.open = false
+          this.getList()
+        })
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const id = row.id
+      this.$modal.confirm('是否确认删除粉丝标签编号为"' + id + '"的数据项?').then(function () {
+        return deleteWxFansTag(id)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('删除成功')
+      }).catch(() => {
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      // 处理查询参数
+      let params = {...this.queryParams}
+      params.pageNo = undefined
+      params.pageSize = undefined
+      this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime')
+      // 执行导出
+      this.$modal.confirm('是否确认导出所有粉丝标签数据项?').then(() => {
+        this.exportLoading = true
+        return exportWxFansTagExcel(params)
+      }).then(response => {
+        this.$download.excel(response, '粉丝标签.xls')
+        this.exportLoading = false
+      }).catch(() => {
+      })
     }
-  };
+  }
+}
 </script>