liukangdong
2024-07-29 2b65fa2a67736d4316115ce91c26792f6c0b2377
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia
已添加1个文件
已修改22个文件
556 ■■■■ 文件已修改
server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTConstants.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCustomerBindingUsersRequest.java 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/components/disCase/index.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/components/disCase/index.wxml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/components/disRealpic/index.js 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/components/disRealpic/index.wxml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/homeId/index.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/store/staff.less 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/store/staff.wxss 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/components/disCase/index.js 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/components/disCase/index.wxml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/components/disRealpic/index.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/store/staff.less 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/store/staff.wxml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/store/staff.wxss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/ZbomZhongTaiService.java
@@ -50,4 +50,5 @@
    ZTCusCarouselImageResponse carouselImageDetail(ZTDataDetailRequest param);
    ZTBasePageResponse<ZTCollectLikeInfoResponse> collectLikePage(ZTCollectLikeRequest param);
    ZTBaseResponse batchAddLike(ZTBatchAddListRequest param);
    ZTBaseResponse customerBinDingUsers(ZTCustomerBindingUsersRequest param);
}
server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomZhongTaiServiceImpl.java
@@ -772,4 +772,18 @@
        return null;
    }
    @Override
    public  ZTBaseResponse customerBinDingUsers(ZTCustomerBindingUsersRequest param){
        ZTBaseResponse result = sendHttpRequest(
                ZTConstants.IntegerUrl.CUSTOMER_BINDING_USERS,
                ZTConstants.IntegerName.CUSTOMER_BINDING_USERS_NAME,
                param.getToken(),
                param.getUserType(),
                JSONObject.toJSONString(param ),
                new TypeReference<ZTBaseResponse<Object>>(){});
        return result;
    }
}
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTConstants.java
@@ -79,6 +79,7 @@
        String REALCASE_INFO_URL ="/content/api/realCaseDetail";
        String FAVORITES_PAGE_URL ="/behavior/api/favoritesPageList";
        String BATCH_ADD_LIKE_URL ="/content/api/batchAddLike";
        String CUSTOMER_BINDING_USERS ="/api/bind";
    }
@@ -122,5 +123,6 @@
        String FAVORITES_NAME ="获取我的喜欢/收藏列表";
        String BATCH_ADD_LIKE_NAME ="批量绑定喜欢给客户";
        String CUSTOMER_BINDING_USERS_NAME ="客户绑定导购";
    }
}
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCustomerBindingUsersRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,162 @@
package com.doumee.biz.zbom.model.zhongtai.response;
import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * å®¢æˆ·ç»‘定员工信息
 */
@Data
public class ZTCustomerBindingUsersRequest extends ZTBaseRequst {
    /**
     * åŸŽå¸‚
     */
    private String address;
    /**
     * å¹´é¾„
     */
    private String age;
    /**
     * åº”用码
     */
    private String appCode;
    /**
     * AppID
     */
    private String appId;
    /**
     * å®¢æˆ·å¤´åƒ
     */
    private String avatarUrl;
    /**
     * ç”Ÿæ—¥
     */
    private String birthday;
    /**
     * å®¢æˆ·æ¸ é“来源编码
     */
    private String channelSourceCode;
    /**
     * å®¢æˆ·å•位
     */
    private String customerCompany;
    /**
     * å®¢æˆ·çº§åˆ«
     */
    private String customerLevel;
    /**
     * å®¢æˆ·æ‰€å±žè¡Œä¸š
     */
    private String customerTrade;
    /**
     * å¯¼è´­è´¦å·
     */
    private String daoGouAccount;
    /**
     * å¯¼è´­ç±»åž‹
     */
    private String daoGouType;
    /**
     * å¯¼è´­ç”¨æˆ·Id
     */
    private String daoGouUserId;
    /**
     * ç”µå­é‚®ç®±
     */
    private String email;
    /**
     * è¯¦ç»†åœ°å€
     */
    private String fullAddress;
    /**
     * æ€§åˆ«
     */
    private String gender;
    /**
     * æˆ¿å±‹é¢ç§¯
     */
    private String houseArea;
    /**
     * æˆ¿å±‹æˆ·åž‹
     */
    private String houseLayout;
    /**
     * èº«ä»½è¯
     */
    private String idCard;
    /**
     * åç§°
     */
    private String name;
    /**
     * æ˜µç§°
     */
    private String nickName;
    /**
     * OpenID
     */
    private String openId;
    /**
     * æ‰‹æœºå·ç 
     */
    private String phone;
    /**
     * å¹³å°ç±»åž‹
     */
    private String platform;
    /**
     * å¹³å°æ¥æº 1-pad  2-小程序
     */
    private String platSource;
    /**
     * èŒä¸š
     */
    private String position;
    /**
     * æ„å‘产品编码,用逗号隔开
     */
    private String productCode;
    /**
     * æŽ¨èäºº
     */
    private String referee;
    /**
     * å¤‡æ³¨
     */
    private String remark;
    /**
     * æ¥æºç³»ç»Ÿå®¢æˆ·ID
     */
    private String sourceCustomerId;
    /**
     * å­åº”用码
     */
    private String subAppCode;
    /**
     * ä¸­å°ç”¨æˆ·å”¯ä¸€ç¼–码
     */
    private String token;
    /**
     * UnionID
     */
    private String unionId;
    /**
     * å°åŒº
     */
    private String uptown;
    /**
     * CMS账号
     */
    private String userName;
    /**
     * å¾®ä¿¡å·
     */
    private String weixin;
}
server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java
@@ -164,4 +164,10 @@
     * @return
     */
    void batchAddLike(ZTBatchAddListRequest param);
    /**
     * ä¸­å° å®¢æˆ·ç»‘定导购
     * @param ztCustomerBindingUsersRequest
     */
    void customerBinDingUsers(ZTCustomerBindingUsersRequest ztCustomerBindingUsersRequest);
}
server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java
@@ -239,9 +239,7 @@
        PageData<CustomerLog> pageData = PageData.from(customerLogMapper.selectJoinPage(page,CustomerLog.class, queryWrapper));
        for (CustomerLog customerLog:pageData.getRecords()) {
            if(Objects.nonNull(pageWrap.getModel().getIsHiddenPhone())&& Constants.equalsInteger(pageWrap.getModel().getIsHiddenPhone(),Constants.ZERO)){
                customerLog.setPhone(
                        Constants.desensitizationPhone(customerLog.getPhone())
                );
                customerLog.setPhone(Constants.desensitizationPhone(customerLog.getPhone()));
                if(Constants.equalsInteger(customerLog.getType(),Constants.TWO)&& StringUtils.isNotBlank(customerLog.getMemberName())){
                    customerLog.setName(customerLog.getMemberName());
                }
server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java
@@ -285,12 +285,13 @@
        ztContentListRequest.setUserType(ztBaseInfoResponse.getUserType());
        ztContentListRequest.setId(id);
        ZTProductInfoResponse response = zbomZhongTaiService.getProductInfo(ztContentListRequest);
        if(Objects.nonNull(response)){
        if(Objects.nonNull(response)&&userType.equals(ZTConstants.CUSTOMER)){
            //查询导购信息 è¿›è¡Œä¿¡æ¯ç»‘定与返回
            if(StringUtils.isNotBlank(salesId)){
                Users users = usersMapper.selectById(salesId);
                if(Objects.nonNull(users)){
                    MemberServiceImpl.saveCustomerUser(customerUserMapper,users,userId);
                Member member = memberMapper.selectById(userId);
                if(Objects.nonNull(users)&&Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenid())){
                    MemberServiceImpl.saveCustomerUser(zbomZhongTaiService,customerUserMapper,users,userId,member.getOpenid());
                    String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
                            StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
                    if(StringUtils.isNotBlank(users.getImgurl())){
@@ -337,17 +338,13 @@
        ztContentListRequest.setUserType(ztBaseInfoResponse.getUserType());
        ztContentListRequest.setId(id);
        ZTCaseInfoResponse response = zbomZhongTaiService.getWholecaseInfo(ztContentListRequest);
        if(Objects.nonNull(response)){
//            if(StringUtils.isNotBlank(response.getPanorama())){
//                response.setPanorama(
//                        response.getPanorama().replace("https://720.","https://720-3.").replace("https://720-2.","https://720-3.")
//                );
//            }
        if(Objects.nonNull(response)&&userType.equals(ZTConstants.CUSTOMER)){
            //查询导购信息 è¿›è¡Œä¿¡æ¯ç»‘定与返回
            if(StringUtils.isNotBlank(salesId)){
                Users users = usersMapper.selectById(salesId);
                if(Objects.nonNull(users)){
                    MemberServiceImpl.saveCustomerUser(customerUserMapper,users,userId);
                Member member = memberMapper.selectById(userId);
                if(Objects.nonNull(users)&&Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenid())){
                    MemberServiceImpl.saveCustomerUser(zbomZhongTaiService,customerUserMapper,users,userId,member.getOpenid());
                    String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
                            StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
                    if(StringUtils.isNotBlank(users.getImgurl())){
@@ -388,12 +385,13 @@
        ztContentListRequest.setUserType(ztBaseInfoResponse.getUserType());
        ztContentListRequest.setId(id);
        ZTProductNewsInfoResponse response = zbomZhongTaiService.getProductNewsInfo(ztContentListRequest);
        if(Objects.nonNull(response)){
        if(Objects.nonNull(response)&&userType.equals(ZTConstants.CUSTOMER)){
            //查询导购信息 è¿›è¡Œä¿¡æ¯ç»‘定与返回
            if(StringUtils.isNotBlank(salesId)){
                Users users = usersMapper.selectById(salesId);
                if(Objects.nonNull(users)){
                    MemberServiceImpl.saveCustomerUser(customerUserMapper,users,userId);
                Member member = memberMapper.selectById(userId);
                if(Objects.nonNull(users)&&Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenid())){
                    MemberServiceImpl.saveCustomerUser(zbomZhongTaiService,customerUserMapper,users,userId,member.getOpenid());
                    String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
                            StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
                    if(StringUtils.isNotBlank(users.getImgurl())){
@@ -439,12 +437,13 @@
        ztContentListRequest.setUserType(ztBaseInfoResponse.getUserType());
        ztContentListRequest.setId(id);
        ZTRealcaseInfoResponse response = zbomZhongTaiService.getRealcaseInfo(ztContentListRequest);
        if(Objects.nonNull(response)){
        if(Objects.nonNull(response)&&userType.equals(ZTConstants.CUSTOMER)){
            //查询导购信息 è¿›è¡Œä¿¡æ¯ç»‘定与返回
            if(StringUtils.isNotBlank(salesId)){
                Users users = usersMapper.selectById(salesId);
                if(Objects.nonNull(users)){
                    MemberServiceImpl.saveCustomerUser(customerUserMapper,users,userId);
                Member member = memberMapper.selectById(userId);
                if(Objects.nonNull(users)&&Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenid())){
                    MemberServiceImpl.saveCustomerUser(zbomZhongTaiService,customerUserMapper,users,userId,member.getOpenid());
                    String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
                            StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
                    if(StringUtils.isNotBlank(users.getImgurl())){
@@ -502,6 +501,23 @@
        zbomZhongTaiService.batchAddLike(ztBatchAddListRequest);
    }
    @Override
    public void customerBinDingUsers(ZTCustomerBindingUsersRequest ztCustomerBindingUsersRequest){
        if(Objects.isNull(ztCustomerBindingUsersRequest)
                || StringUtils.isBlank(ztCustomerBindingUsersRequest.getOpenId())
                || StringUtils.isBlank(ztCustomerBindingUsersRequest.getUserId())
                || StringUtils.isBlank(ztCustomerBindingUsersRequest.getSourceCustomerId())
                || StringUtils.isBlank(ztCustomerBindingUsersRequest.getDaoGouAccount())
                || StringUtils.isBlank(ztCustomerBindingUsersRequest.getDaoGouType())
                || StringUtils.isBlank(ztCustomerBindingUsersRequest.getDaoGouUserId())
                || StringUtils.isBlank(ztCustomerBindingUsersRequest.getUserName())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        //查询 ä¸­å°
        ZTBaseInfoResponse ztBaseInfoResponse = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,
                Long.valueOf(ztCustomerBindingUsersRequest.getUserId()),ztCustomerBindingUsersRequest.getUserType());
        ztCustomerBindingUsersRequest.setToken(ztBaseInfoResponse.getToken());
        zbomZhongTaiService.customerBinDingUsers(ztCustomerBindingUsersRequest);
    }
}
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -14,6 +14,7 @@
import com.doumee.biz.zbom.model.zhongtai.ZTUserGetTokenRequest;
import com.doumee.biz.zbom.model.zhongtai.ZTUserInfoUpdateRequest;
import com.doumee.biz.zbom.model.zhongtai.response.ZTBaseResponse;
import com.doumee.biz.zbom.model.zhongtai.response.ZTCustomerBindingUsersRequest;
import com.doumee.biz.zbom.model.zhongtai.response.ZTSysuserGetTokenResponse;
import com.doumee.biz.zbom.model.zhongtai.response.ZTUserGetTokenResponse;
import com.doumee.config.Jwt.JwtPayLoad;
@@ -299,14 +300,14 @@
                    member.setToken(ztUserGetTokenResponse.getToken());
                }
                memberMapper.insert(member);
                MemberServiceImpl.saveCustomerUser(customerUserMapper,users,member.getId());
                MemberServiceImpl.saveCustomerUser(zbomZhongTaiService,customerUserMapper,users,member.getId(),member.getOpenid());
            }else{
                ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member);
                if(!Objects.isNull(ztUserGetTokenResponse)){
                    member.setToken(ztUserGetTokenResponse.getToken());
                    memberMapper.updateById(member);
                }
                MemberServiceImpl.saveCustomerUser(customerUserMapper,users,member.getId());
                MemberServiceImpl.saveCustomerUser(zbomZhongTaiService,customerUserMapper,users,member.getId(),member.getOpenid());
                member = this.getMemberInfo(member.getId());
            }
            String token = JwtTokenUtil.generateTokenForZb(member.getId(),ZTConstants.CUSTOMER, JSONObject.toJSON(member).toString(),redisTemplate);
@@ -321,7 +322,7 @@
        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信登录异常!请联系管理员");
    }
    public static void saveCustomerUser(CustomerUserMapper customerUserMapper,Users users,Long memberId){
    public static void saveCustomerUser(ZbomZhongTaiService zbomZhongTaiService,CustomerUserMapper customerUserMapper,Users users,Long memberId,String openId){
        if(Objects.nonNull(users)&&Objects.nonNull(memberId)) {
            if (customerUserMapper.selectCount(new QueryWrapper<CustomerUser>().lambda()
                    .eq(CustomerUser::getIsdeleted, Constants.ZERO)
@@ -337,7 +338,16 @@
                customerUser.setUsername(users.getIamUsername());
                customerUser.setAddr(users.getShopAddress());
                customerUserMapper.insert(customerUser);
                //TODO ç­‰å¾…调起中台接口
                //等待调起中台接口
                ZTCustomerBindingUsersRequest ztCustomerBindingUsersRequest = new ZTCustomerBindingUsersRequest();
                ztCustomerBindingUsersRequest.setOpenId(openId);
                ztCustomerBindingUsersRequest.setSourceCustomerId(memberId.toString());
                ztCustomerBindingUsersRequest.setDaoGouUserId(users.getId().toString());
                ztCustomerBindingUsersRequest.setDaoGouAccount(users.getIamUsername());
                ztCustomerBindingUsersRequest.setDaoGouType(users.getUserTypes());
                ztCustomerBindingUsersRequest.setUserName(users.getIamId());
                ztCustomerBindingUsersRequest.setPlatSource(ZTConstants.PLATFORM_MP_WX);
                zbomZhongTaiService.customerBinDingUsers(ztCustomerBindingUsersRequest);
            }
        }
    }
server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java
@@ -399,6 +399,7 @@
                .eq(News::getType,Constants.ZERO)
                .eq(News::getStatus,Constants.ZERO)
                .eq(News::getFileType,Constants.ZERO)
                .apply(" now() >= t.PUBLISH_DATE ")
                .last( "limit 3"  )
                .orderByDesc(News::getCreateDate)
        );
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -843,13 +843,12 @@
            Shop shop = shopMapper.selectById(users.getDepartmentId());
            if(Objects.nonNull(shop)){
                users.setShopName(shop.getName());
                if(!(StringUtils.isBlank(shop.getProvinceName())||StringUtils.isBlank(shop.getCityName())||StringUtils.isBlank(shop.getAreaName()))){
                    users.setShopCity(shop.getProvinceName()+shop.getCityName()+shop.getAreaName());
                }
                if(StringUtils.isNotBlank(shop.getAddress())){
                    users.setShopAddress(shop.getAddress());
                }else{
                    users.setShopAddress(shop.getProvinceName()+shop.getCityName()+shop.getAreaName()+shop.getTown()+shop.getRegAddr());
                    if(!(StringUtils.isBlank(shop.getProvinceName())||StringUtils.isBlank(shop.getCityName())||StringUtils.isBlank(shop.getAreaName()))){
                        users.setShopAddress(shop.getProvinceName()+shop.getCityName()+shop.getAreaName());
                    }
                }
            }
        }
wechat_jiaxuan/components/disCase/index.js
@@ -11,7 +11,7 @@
    activeParam: [],
    selParam: '',
    tagCodes: [],
    isLoading :false,
    cateList: [],
    dataList: [],
@@ -42,6 +42,10 @@
      })
    },
    getList() {
      if(this.data.isLoading){
        return
      }
      this.setData({isLoading:true})
      const { sortType, query, tagCodes, pageNum, pageSize, catalogCode } = this.data
      getZhongTaiWholecasePage({
        catalogCode, pageNum, pageSize, tagCodes, sortType, query
@@ -52,6 +56,8 @@
            dataList: [...this.data.dataList, ...res.data.records],
          })
        }
      }).finally(()=>{
        this.setData({isLoading:false})
      })
    },
    scrolltolower() {
@@ -90,48 +96,65 @@
      })
    },
    tagClick(e) {
      if(this.data.isLoading){
        return
      }
      const code = e.currentTarget.dataset.code
      const paramIndex = e.currentTarget.dataset.index
      const { cateList, tagCodes, activeParam, activeIndex } = this.data
      const index = tagCodes.indexOf(code)
      if (index === -1) {
        // åŒparam里code重复
        if (activeParam && activeParam.length > 0) {
          activeParam.forEach(item => {
            const indexTemp = tagCodes.indexOf(item.labelValueCode)
            if (indexTemp > -1) {
              tagCodes.splice(indexTemp, 1)
            }
          })
        }
        tagCodes.push(code)
        cateList[activeIndex].paramIndex = paramIndex
        cateList[activeIndex].paramName = activeParam[paramIndex].labelValueName
        // // åŒparam里code重复
        // if (activeParam && activeParam.length > 0) {
        //   activeParam.forEach(item => {
        //     const indexTemp = tagCodes.indexOf(item.labelValueCode)
        //     if (indexTemp > -1) {
        //       tagCodes.splice(indexTemp, 1)
        //     }
        //   })
        // }
        // tagCodes.push(code)
        cateList[activeIndex].tempParamIndex = paramIndex
        cateList[activeIndex].tempParamName = activeParam[paramIndex].labelValueName
        cateList[activeIndex].tempParamCode = code
      } else {
        tagCodes.splice(index, 1)
        cateList[activeIndex].paramIndex = -1
        cateList[activeIndex].paramName = ''
        // tagCodes.splice(index, 1)
        cateList[activeIndex].tempParamIndex = -1
        cateList[activeIndex].tempParamName = null
        cateList[activeIndex].tempParamCode = null
      }
      this.setData({ pageNum: 1, dataList: [], total: 0 })
      this.setData({ tagCodes, cateList })
      // this.setData({ pageNum: 1, dataList: [], total: 0 })
      this.setData({cateList })
      console.log('tagCodes', tagCodes)
    },
    cancelParam() {
      const { cateList } = this.data
      cateList.forEach(item => {
        item.paramIndex = -1
        item.paramName = item.paramName || ''
        item.tempParamIndex =item.paramIndex
        item.tempParamName =item.paramName
        item.tempParamCode =item.paramCode
      })
      this.setData({ tagCodes: [], activeParam: [], cateList, activeIndex: -1 })
      this.setData({ activeParam: [],cateList , activeIndex: -1 })
    },
    bindblur() {
      this.setData({ pageNum: 1, dataList: [], total: 0 })
      this.getList()
    },
    subParam() {
    subParam() {
      this.setData({ activeParam: [] })
      this.setData({ pageNum: 1, activeIndex: -1, dataList: [], total: 0 })
      const { cateList } = this.data
      var codes = []
      cateList.forEach(item => {
        item.paramIndex =item.tempParamIndex
        item.paramName =item.tempParamName
        item.paramCode =item.tempParamCode
        if(item.paramIndex >-1 && item.paramCode){
          codes.push(item.paramCode)
        }
      })
      this.setData({tagCodes:codes, pageNum: 1, activeIndex: -1, dataList: [], total: 0 })
      this.getList()
    },
    changeShowParams(e) {
wechat_jiaxuan/components/disCase/index.wxml
@@ -11,7 +11,7 @@
      <scroll-view class="query_wrap_scroll" scroll-x>
        <view class="query_wrap">
          <view data-index="{{ index }}" wx:for="{{ cateList }}" class="item" bindtap="changeShowParams">
            <view class="name">{{ item.paramName || item.labelName }}</view>
            <view class="name">{{ item.tempParamName || item.labelName }}</view>
            <van-icon name="{{ activeIndex === index ? 'arrow-up' : 'arrow-down' }}" />
          </view>
        </view>
@@ -19,7 +19,7 @@
      <!--  param -->
      <view wx:if="{{ activeParam && activeParam.length > 0 }}" class="query_param">
        <view class="list">
          <view data-index="{{index}}" data-code="{{ item.labelValueCode }}" bindtap="tagClick" wx:for="{{ activeParam }}" class="item {{ cateList[activeIndex].paramIndex === index ? 'active' : '' }}">{{ item.labelValueName }}</view>
          <view data-index="{{index}}" data-code="{{ item.labelValueCode }}" bindtap="tagClick" wx:for="{{ activeParam }}" class="item {{ cateList[activeIndex].tempParamIndex === index ? 'active' : '' }}">{{ item.labelValueName }}</view>
        </view>
        <view class="btns">
          <view class="btn" bindtap="cancelParam">取消</view>
wechat_jiaxuan/components/disRealpic/index.js
@@ -11,7 +11,7 @@
    activeParam: [],
    selParam: '',
    tagCodes: [],
    isLoading:false,
    cateList: [],
    dataList: [],
@@ -41,6 +41,10 @@
      })
    },
    getList() {
      if(this.data.isLoading){
        return
      }
      this.setData({isLoading:true})
      const { sortType, query, tagCodes, pageNum, pageSize,catalogCode } = this.data
      getZhongTaiRealcasePage({
        catalogCode,tagCodes,pageNum,pageSize, sortType,query
@@ -49,6 +53,8 @@
          dataList: [...this.data.dataList, ...res.data.records],
          total: res.data.total,
        })
      }).finally(()=>{
        this.setData({isLoading:false})
      })
    },
    scrolltoupper() {
@@ -125,47 +131,61 @@
      }
    },
    tagClick(e) {
      if(this.data.isLoading){
        return
      }
      const code = e.currentTarget.dataset.code
      const paramIndex = e.currentTarget.dataset.index
      const { cateList, tagCodes, activeParam, activeIndex } = this.data
      const index = tagCodes.indexOf(code)
      
      if(index === -1){
        if(activeParam && activeParam.length > 0){
          activeParam.forEach(item => {
            const indexTemp = tagCodes.indexOf(item.labelValueCode)
            if(indexTemp > -1){
              tagCodes.splice(indexTemp, 1)
            }
          })
        }
        tagCodes.push(code)
        cateList[activeIndex].paramIndex = paramIndex
        cateList[activeIndex].paramName = activeParam[paramIndex].labelValueName
        // if(activeParam && activeParam.length > 0){
        //   activeParam.forEach(item => {
        //     const indexTemp = tagCodes.indexOf(item.labelValueCode)
        //     if(indexTemp > -1){
        //       tagCodes.splice(indexTemp, 1)
        //     }
        //   })
        // }
        // tagCodes.push(code)
        cateList[activeIndex].tempParamIndex = paramIndex
        cateList[activeIndex].tempParamName = activeParam[paramIndex].labelValueName
        cateList[activeIndex].tempParamCode = code
      }else{
        tagCodes.splice(index, 1)
        cateList[activeIndex].paramIndex = -1
        cateList[activeIndex].paramName = ''
        // tagCodes.splice(index, 1)
        cateList[activeIndex].tempParamIndex = -1
        cateList[activeIndex].tempParamName = null
        cateList[activeIndex].tempParamCode = null
      }
      this.setData({ pageNum: 1,dataList: [],total: 0})
      this.setData({ tagCodes, cateList })
      console.log('tagCodes', tagCodes);
      // this.setData({ pageNum: 1,dataList: [],total: 0})
      this.setData({ cateList })
    },
    cancelParam() {
      const { cateList } = this.data
      cateList.forEach(item => {
        item.paramIndex = -1
        item.paramName = ''
        item.tempParamIndex = item.paramIndex
        item.tempParamName =   item.paramName
        item.tempParamCode =   item.paramCode
      })
      this.setData({ tagCodes: [],datalist:[],pageNum:1, activeParam: [],cateList,activeIndex: -1 })
      this.getList()
      this.setData({    activeParam: [],cateList,activeIndex: -1 })
    },
    bindblur() {
      this.setData({ pageNum: 1,dataList: [],total: 0})
      this.getList()
    },
    subParam() {
      this.setData({ activeParam: [] })
      const { cateList } = this.data
      var codes =[]
      cateList.forEach(item => {
        item.paramIndex = item.tempParamIndex
        item.paramName =   item.tempParamName
        item.paramCode =   item.tempParamCode
        if(item.tempParamIndex >-1 && item.tempParamCode){
          codes.push(item.tempParamCode)
        }
      })
      this.setData({ activeParam: [],tagCodes:codes })
      this.setData({ pageNum: 1,activeIndex: -1,dataList: [],total: 0})
      this.getList()
    },
wechat_jiaxuan/components/disRealpic/index.wxml
@@ -12,7 +12,7 @@
      <scroll-view class="query_wrap_scroll" scroll-x>
        <view class="query_wrap">
          <view data-index="{{ index }}" wx:for="{{ cateList }}" class="item" bindtap="changeShowParams">
            <view class="name">{{ item.paramName || item.labelName }}</view>
            <view class="name">{{ item.tempParamName || item.labelName }}</view>
            <van-icon name="{{ activeIndex === index ? 'arrow-up' : 'arrow-down' }}" />
          </view>
        </view>
@@ -20,7 +20,7 @@
      <!--  param -->
      <view wx:if="{{ activeParam && activeParam.length > 0 }}" class="query_param">
        <view class="list">
          <view data-index="{{index}}" data-code="{{ item.labelValueCode }}" bindtap="tagClick" wx:for="{{ activeParam }}" class="item {{ cateList[activeIndex].paramIndex === index ? 'active' : '' }}">{{ item.labelValueName }}</view>
          <view data-index="{{index}}" data-code="{{ item.labelValueCode }}" bindtap="tagClick" wx:for="{{ activeParam }}" class="item {{ cateList[activeIndex].tempParamIndex === index ? 'active' : '' }}">{{ item.labelValueName }}</view>
        </view>
        <view class="btns">
          <view class="btn" bindtap="cancelParam">取消</view>
wechat_jiaxuan/pages/homeId/index.js
@@ -53,6 +53,8 @@
        total: res.data.total,
        dataList: [ ...this.data.dataList, ...res.data.records ]
      })
    }).finally(()=>{
      wx.stopPullDownRefresh()
    })
  },
  itemClick(e) {
wechat_jiaxuan/pages/store/staff.less
@@ -109,7 +109,9 @@
      margin-top: 8rpx;
      font-weight: 600;
      font-size: 40rpx;
      display: flex;
      display: flex;
      align-items: flex-end; /* è¿™ä¼šä½¿å­å…ƒç´ åº•部对齐 */
      justify-content: center; /* è¿™ä¼šä½¿å­å…ƒç´ æ°´å¹³å±…中 */
    }
  }
}
wechat_jiaxuan/pages/store/staff.wxss
@@ -101,7 +101,9 @@
  margin-top: 8rpx;
  font-weight: 600;
  font-size: 40rpx;
  display: flex;
  display: flex;
  align-items: flex-end; /* è¿™ä¼šä½¿å­å…ƒç´ åº•部对齐 */
  justify-content: center; /* è¿™ä¼šä½¿å­å…ƒç´ æ°´å¹³å±…中 */
}
.guide .title {
  font-weight: 500;
wechat_staff/components/disCase/index.js
@@ -12,7 +12,7 @@
    selParam: '',
    tagCodes: [],
    isLoading:false,
    cateList: [],
    dataList: [],
    total: 0,
@@ -42,6 +42,11 @@
      })
    },
    getList() {
      if(this.data.isLoading){
        return
      }
      this.setData({isLoading:true})
      const { sortType, query, tagCodes, pageNum, pageSize,catalogCode } = this.data
      getZhongTaiWholecasePage({
        catalogCode,pageNum,pageSize,tagCodes, sortType,query
@@ -52,6 +57,8 @@
            dataList: [...this.data.dataList, ...res.data.records],
          })
        }  
      }).finally(()=>{
        this.setData({isLoading:false})
      })
    },
    scrolltolower() {
@@ -90,40 +97,34 @@
      })
    },
    tagClick(e) {
      if(this.data.isLoading){
        return
      }
      const code = e.currentTarget.dataset.code
      const paramIndex = e.currentTarget.dataset.index
      const { cateList, tagCodes, activeParam, activeIndex } = this.data
      const index = tagCodes.indexOf(code)
      
      if(index === -1){
        // åŒparam里code重复
        if(activeParam && activeParam.length > 0){
          activeParam.forEach(item => {
            const indexTemp = tagCodes.indexOf(item.labelValueCode)
            if(indexTemp > -1){
              tagCodes.splice(indexTemp, 1)
            }
          })
        }
        tagCodes.push(code)
        cateList[activeIndex].paramIndex = paramIndex
        cateList[activeIndex].paramName = activeParam[paramIndex].labelValueName
      }else{
        tagCodes.splice(index, 1)
        cateList[activeIndex].paramIndex = -1
        cateList[activeIndex].paramName = ''
      if(index === -1){
        cateList[activeIndex].tempParamIndex = paramIndex
        cateList[activeIndex].tempParamName = activeParam[paramIndex].labelValueName
        cateList[activeIndex].tempParamCode = code
      } else {
        cateList[activeIndex].tempParamIndex = -1
        cateList[activeIndex].tempParamName = null
        cateList[activeIndex].tempParamCode = null
      }
      this.setData({ tagCodes, cateList })
      this.setData({cateList })
      console.log('tagCodes', tagCodes);
    },
    cancelParam() {
      const { cateList } = this.data
      console.log('cateList', cateList);
      cateList.forEach(item => {
        item.paramIndex = -1
        item.paramName = item.paramName || ''
        item.tempParamIndex =item.paramIndex
        item.tempParamName =item.paramName
        item.tempParamCode =item.paramCode
      })
      this.setData({ tagCodes: [],activeParam: [],cateList,activeIndex: -1 })
      this.setData({ activeParam: [],cateList , activeIndex: -1 })
    },
    bindblur() {
      this.setData({ pageNum: 1,dataList: [],total: 0})
@@ -131,7 +132,17 @@
    },
    subParam() {
      this.setData({ activeParam: [] })
      this.setData({ pageNum: 1,activeIndex: -1,dataList: [],total: 0})
      const { cateList } = this.data
      var codes = []
      cateList.forEach(item => {
        item.paramIndex =item.tempParamIndex
        item.paramName =item.tempParamName
        item.paramCode =item.tempParamCode
        if(item.paramIndex >-1 && item.paramCode){
          codes.push(item.paramCode)
        }
      })
      this.setData({tagCodes:codes, pageNum: 1, activeIndex: -1, dataList: [], total: 0 })
      this.getList()
    },
    changeShowParams(e){
wechat_staff/components/disCase/index.wxml
@@ -11,7 +11,7 @@
      <scroll-view class="query_wrap_scroll" scroll-x>
        <view class="query_wrap">
          <view data-index="{{ index }}" wx:for="{{ cateList }}" class="item" bindtap="changeShowParams">
            <view class="name">{{ item.paramName || item.labelName }}</view>
            <view class="name">{{ item.tempParamName || item.labelName }}</view>
            <van-icon name="{{ activeIndex === index ? 'arrow-up' : 'arrow-down' }}" />
          </view>
        </view>
@@ -19,7 +19,7 @@
      <!--  param -->
      <view wx:if="{{ activeParam && activeParam.length > 0 }}" class="query_param">
        <view class="list">
          <view data-index="{{index}}" data-code="{{ item.labelValueCode }}" bindtap="tagClick" wx:for="{{ activeParam }}" class="item {{ cateList[activeIndex].paramIndex === index ? 'active' : '' }}">{{ item.labelValueName }}</view>
          <view data-index="{{index}}" data-code="{{ item.labelValueCode }}" bindtap="tagClick" wx:for="{{ activeParam }}" class="item {{ cateList[activeIndex].tempParamIndex === index ? 'active' : '' }}">{{ item.labelValueName }}</view>
        </view>
        <view class="btns">
          <view class="btn" bindtap="cancelParam">取消</view>
wechat_staff/components/disRealpic/index.js
@@ -11,7 +11,7 @@
    activeParam: [],
    selParam: '',
    tagCodes: [],
    isLoading:false,
    cateList: [],
    dataList: [],
@@ -41,6 +41,11 @@
      })
    },
    getList() {
      if(this.data.isLoading){
        return
      }
      this.setData({isLoading:true})
      const { sortType, query, tagCodes, pageNum, pageSize,catalogCode } = this.data
      getZhongTaiRealcasePage({
        catalogCode,tagCodes,pageNum,pageSize, sortType,query
@@ -49,6 +54,8 @@
          dataList: [...this.data.dataList, ...res.data.records],
          total: res.data.total,
        })
      }).finally(()=>{
        this.setData({isLoading:false})
      })
    },
    scrolltolower() {
@@ -122,44 +129,59 @@
      }
    },
    tagClick(e) {
      if(this.data.isLoading){
        return
      }
      const code = e.currentTarget.dataset.code
      const paramIndex = e.currentTarget.dataset.index
      const { cateList, tagCodes, activeParam, activeIndex } = this.data
      const index = tagCodes.indexOf(code)
      
      if(index === -1){
        if(activeParam && activeParam.length > 0){
          activeParam.forEach(item => {
            const indexTemp = tagCodes.indexOf(item.labelValueCode)
            if(indexTemp > -1){
              tagCodes.splice(indexTemp, 1)
            }
          })
        }
        tagCodes.push(code)
        cateList[activeIndex].paramIndex = paramIndex
        cateList[activeIndex].paramName = activeParam[paramIndex].labelValueName
        // if(activeParam && activeParam.length > 0){
        //   activeParam.forEach(item => {
        //     const indexTemp = tagCodes.indexOf(item.labelValueCode)
        //     if(indexTemp > -1){
        //       tagCodes.splice(indexTemp, 1)
        //     }
        //   })
        // }
        // tagCodes.push(code)
        cateList[activeIndex].tempParamIndex = paramIndex
        cateList[activeIndex].tempParamName = activeParam[paramIndex].labelValueName
        cateList[activeIndex].tempParamCode = code
      }else{
        tagCodes.splice(index, 1)
        cateList[activeIndex].paramIndex = -1
        cateList[activeIndex].paramName = ''
        cateList[activeIndex].tempParamIndex = -1
        cateList[activeIndex].tempParamName = null
        cateList[activeIndex].tempParamCode = null
      }
      this.setData({ tagCodes, cateList })
      this.setData({  cateList })
    },
    cancelParam() {
      const { cateList } = this.data
      cateList.forEach(item => {
        item.paramIndex = -1
        item.paramName = item.paramName || ''
        item.tempParamIndex = item.paramIndex
        item.tempParamName =   item.paramName
        item.tempParamCode =   item.paramCode
      })
      this.setData({ tagCodes: [],activeParam: [],cateList,activeIndex: -1 })
      this.setData({    activeParam: [],cateList,activeIndex: -1 })
    },
    bindblur() {
      this.setData({ pageNum: 1,dataList: [],total: 0})
      this.getList()
    },
    subParam() {
      this.setData({ activeParam: [] })
      const { cateList } = this.data
      var codes =[]
      cateList.forEach(item => {
        item.paramIndex = item.tempParamIndex
        item.paramName =   item.tempParamName
        item.paramCode =   item.tempParamCode
        if(item.tempParamIndex >-1 && item.tempParamCode){
          codes.push(item.tempParamCode)
        }
      })
      this.setData({ activeParam: [],tagCodes:codes })
      this.setData({ pageNum: 1,activeIndex: -1,dataList: [],total: 0})
      this.getList()
    },
wechat_staff/pages/store/staff.less
@@ -111,6 +111,9 @@
      font-weight: 600;
      font-size: 40rpx;
      display: flex;
      align-items: flex-end; /* è¿™ä¼šä½¿å­å…ƒç´ åº•部对齐 */
      justify-content: center; /* è¿™ä¼šä½¿å­å…ƒç´ æ°´å¹³å±…中 */
    }
  }
}
wechat_staff/pages/store/staff.wxml
@@ -25,7 +25,8 @@
      <view class="card">
      <image src="../../static/images/mingpian_bg_kehu.png" class="bg"></image>
        <view>服务客户</view>
        <view class="num" wx:if="{{ userInfo.costomerNum || userInfo.costomerNum == 0 }}">{{ userInfo.costomerNum || '--' }}+</view>
        <view class="num" wx:if="{{ userInfo.costomerNum || userInfo.costomerNum == 0 }}">{{ userInfo.costomerNum || '--' }}+
        </view>
        <view wx:else class="num">--</view>
      </view>
    </view>
wechat_staff/pages/store/staff.wxss
@@ -186,6 +186,9 @@
  font-size: 26rpx;
  color: #999999;
  text-align: center;
  align-items: flex-end; /* è¿™ä¼šä½¿å­å…ƒç´ åº•部对齐 */
  justify-content: center; /* è¿™ä¼šä½¿å­å…ƒç´ æ°´å¹³å±…中 */
}
.card_wrap {
  position: fixed;