changeCounter.vue 7.63 KB
<template>
  <div class="container">
    <van-loading size="80px"  color="#1989fa" class="ld" v-if="overlayShow">正在处理...</van-loading>
    <van-overlay :show="overlayShow" />
    <van-radio-group v-model="radio" class="nobr"  @change="handleStoreChange">
      <van-cell-group >
        <van-cell   v-for="(item,index) in list" :key="index"   >
          <div class="list">
            <div class="left">
              <img :src="item.logo" alt="" />
            </div>
            <div class="right">
              <h3>{{ item.name }}</h3>
              <p>{{ item.summaryTitle }}</p>
            </div>
          </div>
          <van-radio slot="right-icon" :name="item.oyStallCode" />
        </van-cell>
      </van-cell-group>
    </van-radio-group>
  </div>
</template>

<script>
import { getStoreList,getMemberListByCode } from "@/api/sidebar/voucher"
import axios from "axios";
import { log } from 'util';
export default {
  data() {
    return {
      radio: '',
      userId: '',
      list: [],
      overlayShow: false,
      oyStallCode: ''
    }
  },
  created() {  
    if(this.$route.query.userId !== '') {
        this.userId = this.$route.query.userId
      }else {
        this.userId = sessionStorage.getItem('userId')
      }
    this.radio = sessionStorage.getItem('oyStallCode')
    // this.radio = 111
    this.getList()  
    // this.userId = '10000190'
  },
  methods: {
    getList() {               
      let params = {
        user_id: this.userId
      }
      getStoreList(params).then(res => {
        console.log(res.data)    
        this.list = res.data        
      })
    },
    ///
    // 获取店铺的所有店员
    getAllNewFans(oyStallCode) {
      let params = {
        oyStallCode: oyStallCode
      }
        getMemberListByCode(params).then(res => {          
          this.getAllInfo(res.data)
        }).catch(err => {
          console.log(err);          
        })      
    },
     // 获取个人粉丝
    getFans() {
      let headerData = {
        agentId: "1000033",
        corpId: "ww4df265003b43fa0d"
      }
      return new Promise((resolve, reject) => {
        axios({
          url:
            "http://139.155.48.151:8085/workWx/auth/contact/listExternalContacts?userId=" + this.userId,
            method: "get",
            headers: headerData
           })
          .then(res => {            
            if(res.data.data != null) {
              sessionStorage.setItem("personalFan", res.data.data.length)
              resolve(res.data.data.length)
            }else {
              console.log('zheli');              
              if(res.errorCode == "84061") {
                sessionStorage.setItem("personalFan", 0)
                resolve(0)
              }else {
                sessionStorage.setItem("personalFan", '')
                resolve('')
              }
              
            }         
          })
          .catch(err => {
            reject(err)
          })
      })
      
    },
    // 获取店铺所有粉丝
    getAllFans() {
      let headerData = {
        agentId: "1000033",
        corpId: "ww4df265003b43fa0d"
      }    
      return new Promise((resolve, reject) => {
        axios({
          url: "http://139.155.48.151:8085/workWx/auth/contact/getCustomerInfoByOyStallCode?oyStallCode=" + this.oyStallCode,
          method: "get",
          headers: headerData
        })
        .then(res => {          
          let newList = []
          res.data.data.forEach(item => {
            if(item != null) {
              newList.push(item)
            }
          })
          sessionStorage.setItem("allFans", newList.length)
          resolve(newList.length)
        })
        .catch(err => {
          reject(err)
        })
      })
      
    },   
    getAddFans(flag, userId) {
      let JsonStr = {}
      if (flag == 1) {
        JsonStr.userid = [userId];
      } else {                  
        JsonStr.userid = userId
      }
      let timeNow = Math.round(new Date() / 1000);
      JsonStr.start_time = timeNow - 24 * 60 * 60;
      JsonStr.end_time = timeNow;
      return new Promise((resolve, reject) => {
        axios({
        url:
          "http://139.155.48.151:8085/workWx/auth/contact/getUserBehaviorData",
        method: "post",
        headers: {
          "Content-Type": "application/json",
          agentId: "1000033",
          corpId: "ww4df265003b43fa0d"
        },
        data: JsonStr
      }).then(res => {
          let data = JSON.parse(res.data.data);
          if (flag == 1) {
            // 获取个人新增粉丝
            console.log(data,'个人新增粉丝')
            if(data != null) {
              let newFans = data.behavior_data[0].new_contact_cnt + data.behavior_data[1].new_contact_cnt;
              sessionStorage.setItem("newFans", newFans)
              resolve(newFans)
            }else {
              sessionStorage.setItem("newFans", '')
              resolve('')
            }                       
          } else {
            console.log(data,'全部新增粉丝');   
            if(data != null) {
              let allNewFans = data.behavior_data[0].new_contact_cnt + data.behavior_data[1].new_contact_cnt;
              sessionStorage.setItem("allNewFans", allNewFans);
              resolve(allNewFans)
            }else {
              sessionStorage.setItem("allNewFans", '')
              resolve('')
            }                 
          }
        })
        .catch(err => {
          reject(err)
        })
      })
      
    },
    getAllInfo(list) {
      console.log('getAllInfo');     
      Promise.all([this.getFans(), this.getAllFans(),this.getAddFans(1,this.userId),this.getAddFans(2,list)]).then(res => {
        console.log('进来了');        
        console.log(res,'promise修改');
        this.overlayShow = false  
        this.$toast("切换成功")
      })
    },
    ///
    handleStoreChange(val) {
      this.overlayShow = true
      console.log(val,'修改后的oyStallCode')   
      this.oyStallCode = val  
      sessionStorage.setItem('oyStallCode',val)    
        let obj = this.list.find(function (obj) {
          return obj.oyStallCode == val
        })   
        sessionStorage.setItem("barName", obj.name)
        this.getAllNewFans(val)
      }
  }
}
</script>

<style scoped>
.ld >>> .van-loading__text {
  color: #fff;
}
.ld {
  z-index: 1000;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);  
}
.container {
  height: auto;
  background-color: #fff;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.title {
  height: 44px;
  background: rgba(248, 248, 248, 1);
  line-height: 44px;
  padding: 0 16px;
  font-size: 12px;
  color: rgba(45, 71, 106, 1);
}
.fg {
  padding: 0 16px;
  font-size: 12px;
  color: rgba(45, 71, 106, 1);
  height: 44px;
  line-height: 44px;
}
.icon {
  font-weight: 800;
}
.active {
  background-color: #fff;
  padding: 12px 12px 0 12px;
  box-shadow: 0px 2px 4px 0px rgba(221, 221, 221, 1);
}
.list {
  height: 94px;
  width: 100%;
  background-color: #fff;
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid rgba(238, 238, 238, 1);
  margin-bottom: 14px;
}
.list3 {
  border-bottom: none;
  margin-bottom: 0;
}
.left,
.right {
  height: 80px;
}
.left {
  width: 80px;
  background: rgba(248, 248, 248, 1);
}
.left img {
  width: 100%;
  height: 80px;
}
.right {
  width: 76%;
  padding: 10px;
  background-color: #fff;
}
h3 {
  font-size: 14px;
  font-weight: bold;
  color: rgba(45, 71, 106, 1);
}
p {
  margin-top: 10px;
  font-size: 12px;
  color: rgba(45, 71, 106, 0.8);
}
.nobr >>> [class*=van-hairline]::after {
  display: none;
}
.nobr >>> .van-cell:not(:last-child)::after {
  display: none;
}
</style>