followList.vue 2.72 KB
<template>
  <div class="follow-list-page">
    <template v-for="(item, key) in followList" :key="key">
      <div @click="getUserInfo(item)" class="info van-hairline--bottom">
        <van-row>
          <van-col>
            <van-image v-if="item.avatar" round width="50" height="50" :src="item.avatar" style="padding-right: 1rem;" />
            <van-image v-else round width="50" height="50" :src="icon_avatar" style="padding-right: 1rem;" />
          </van-col>
          <van-col class="text-wrapper" span="18">
            <div>
              <div class="username">{{ item.name }}</div>
              <div class="user-status">已关注</div>
            </div>
            <div class="address">{{ item.kg_name }}</div>
          </van-col>
        </van-row>
      </div>
    </template>
    <van-empty v-if="emptyStatus"
      class="custom-image"
      :image="no_image"
      description="暂无关注"
    />
  </div>
  <div style="height: 2rem;"></div>
</template>

<script setup>
import no_image from '@images/que-shuju@2x.png'

import { ref, reactive, onMounted } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import axios from '@/utils/axios';
import { Toast } from 'vant';
import icon_avatar from '@images/que-touxiang@2x.png'

const $router = useRouter();

// 因为不能让空图标提前出来的写法
const emptyStatus = ref(false);
// 关注列表联调
const followList = ref([])
axios.get('/srv/?a=my_follow')
.then(res => {
  if (res.data.code === 1) {
    followList.value = res.data.data;
    if (!res.data.data.length) {
      emptyStatus.value = true;
    }
  } else {
    console.warn(res);
    if (!res.data.show) return false;
    Toast({
      icon: 'close',
      message: res.data.msg
    });
  }
})
.catch(err => {
  console.error(err); 
});

const getUserInfo = (v) => {
  // 从个人头像进入的,不能再往下级进入
  $router.push({
    path: '/client/personIndex',
    query: {
      perf_id: v.id,
      type: 'read-only'
    }
  })
}
</script>

<script>
import mixin from 'common/mixin';

export default {
  mixins: [mixin.init],
  data () {
    return {

    }
  },
  mounted () {

  },
  methods: {

  }
}
</script>

<style lang="less" scoped>
.follow-list-page {
  .info {
    padding: 2rem; 
    padding-right: 0;
    .text-wrapper {
      line-height: 1.5;
      .username {
        display: inline-block; 
        overflow: auto; 
        font-size: 1.15rem; 
        color: #222222;
      }
      .user-status {
        float: right;
        font-size: 0.8rem; 
        background-color: white; 
        border-radius: 15px; 
        padding: 5px 10px; 
        color: #999999;
        border: 1px solid #EEEDED;
      }
    }
    .address {
      font-size: 0.85rem; 
      color: #999999;
    }
  }
}
</style>