|
@@ -1,41 +1,82 @@
|
|
|
<template>
|
|
<template>
|
|
|
<div class="container">
|
|
<div class="container">
|
|
|
- <fans-info></fans-info>
|
|
|
|
|
|
|
+ <fans-info @init="init" @init2="init2"></fans-info>
|
|
|
<div class="border"></div>
|
|
<div class="border"></div>
|
|
|
<div class="content">
|
|
<div class="content">
|
|
|
- <div class="box">
|
|
|
|
|
- <div class="text">
|
|
|
|
|
- <div class="text1"></div>
|
|
|
|
|
- <div class="box2">
|
|
|
|
|
- <div class="name">
|
|
|
|
|
- <div class="name1">创作者姓名</div>
|
|
|
|
|
- <img class="name2" src="../../assets/img/renzheng_icon@3x.png" alt="" />
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="text2">介绍</div>
|
|
|
|
|
- <div class="box3">
|
|
|
|
|
- <div class="box4">
|
|
|
|
|
- <div class="text4">粉丝 <span>233</span></div>
|
|
|
|
|
- <div class="text4">已售 <span>233</span></div>
|
|
|
|
|
|
|
+ <el-empty v-if="empty" description="还没有粉丝哦~"></el-empty>
|
|
|
|
|
+ <div class="box" v-if="!empty">
|
|
|
|
|
+ <router-link :to="{ path: '/castingDetail?id=' + item.id }" v-for="item in list" :key="item.id">
|
|
|
|
|
+ <div class="text">
|
|
|
|
|
+ <img class="text1" :src="item.avatar" alt="" />
|
|
|
|
|
+ <div class="box2">
|
|
|
|
|
+ <div class="name">
|
|
|
|
|
+ <div class="name1">{{ item.nickname }}</div>
|
|
|
|
|
+ <img class="name2" src="../../assets/img/renzheng_icon@3x.png" alt="" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="text2">暂无</div>
|
|
|
|
|
+ <div class="box3">
|
|
|
|
|
+ <div class="box4">
|
|
|
|
|
+ <div class="text4">
|
|
|
|
|
+ 粉丝 <span>{{ item.follows }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="text4">
|
|
|
|
|
+ 已售 <span>{{ item.sales }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="follow" :class="{ followed: item.follow }" @click.prevent="like(item)">
|
|
|
|
|
+ {{ item.follow ? '已关注' : '关注' }}
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="btn">关注</div>
|
|
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="imgBox">
|
|
|
|
|
+ <img class="imgBox1" :src="item.bg" alt="" />
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
- <div class="imgBox">
|
|
|
|
|
- <div class="imgBox1"></div>
|
|
|
|
|
- <div class="imgBox1"></div>
|
|
|
|
|
- <div class="imgBox1"></div>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ </router-link>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<script>
|
|
<script>
|
|
|
import FansInfo from '../../components/FansInfo.vue';
|
|
import FansInfo from '../../components/FansInfo.vue';
|
|
|
|
|
+import user from '../../mixins/user';
|
|
|
|
|
+import { mapState } from 'vuex';
|
|
|
export default {
|
|
export default {
|
|
|
components: { FansInfo },
|
|
components: { FansInfo },
|
|
|
|
|
+ mixins: [user],
|
|
|
data() {
|
|
data() {
|
|
|
- return {};
|
|
|
|
|
|
|
+ return {
|
|
|
|
|
+ empty: true
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+ computed: {
|
|
|
|
|
+ ...mapState(['userInfo'])
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ init() {
|
|
|
|
|
+ this.$http.get('/user/myFollows').then(res => {
|
|
|
|
|
+ this.list = res;
|
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
|
+ if (this.list.length === 0) {
|
|
|
|
|
+ this.empty = true;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.empty = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ init2() {
|
|
|
|
|
+ this.$http.get('/user/myFollowers').then(res => {
|
|
|
|
|
+ this.list = res;
|
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
|
+ if (this.list.length === 0) {
|
|
|
|
|
+ this.empty = true;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.empty = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|
|
@@ -47,6 +88,16 @@ export default {
|
|
|
border-radius: 1px;
|
|
border-radius: 1px;
|
|
|
margin: 17px 10px 20px;
|
|
margin: 17px 10px 20px;
|
|
|
}
|
|
}
|
|
|
|
|
+ /deep/ .el-empty {
|
|
|
|
|
+ width: 100px;
|
|
|
|
|
+ height: 110px;
|
|
|
|
|
+ padding-top: 200px;
|
|
|
|
|
+ margin: 0 auto;
|
|
|
|
|
+ }
|
|
|
|
|
+ /deep/ .el-empty__description {
|
|
|
|
|
+ color: #ccc;
|
|
|
|
|
+ margin: 10px 0 0 2px;
|
|
|
|
|
+ }
|
|
|
.content {
|
|
.content {
|
|
|
padding: 0 16px;
|
|
padding: 0 16px;
|
|
|
.box {
|
|
.box {
|
|
@@ -64,6 +115,7 @@ export default {
|
|
|
}
|
|
}
|
|
|
.box2 {
|
|
.box2 {
|
|
|
width: 288px;
|
|
width: 288px;
|
|
|
|
|
+ margin-right: 50px;
|
|
|
.name {
|
|
.name {
|
|
|
.flex();
|
|
.flex();
|
|
|
margin-top: 5px;
|
|
margin-top: 5px;
|
|
@@ -105,28 +157,26 @@ export default {
|
|
|
color: #fff;
|
|
color: #fff;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- .btn {
|
|
|
|
|
|
|
+ .follow {
|
|
|
width: 70px;
|
|
width: 70px;
|
|
|
height: 26px;
|
|
height: 26px;
|
|
|
|
|
+ color: @prim;
|
|
|
|
|
+ font-size: 14px;
|
|
|
border-radius: 16px;
|
|
border-radius: 16px;
|
|
|
border: 1px solid;
|
|
border: 1px solid;
|
|
|
- // border-image: linear-gradient(135deg, rgba(0, 255, 203, 1), rgba(0, 110, 255, 1)) 1 1;
|
|
|
|
|
- line-height: 26px;
|
|
|
|
|
text-align: center;
|
|
text-align: center;
|
|
|
- font-size: 14px;
|
|
|
|
|
- color: @prim;
|
|
|
|
|
|
|
+ line-height: 26px;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- .imgBox {
|
|
|
|
|
- .flex();
|
|
|
|
|
- .imgBox1 {
|
|
|
|
|
- width: 140px;
|
|
|
|
|
- height: 100px;
|
|
|
|
|
- border-radius: 8px;
|
|
|
|
|
- background: red;
|
|
|
|
|
- margin-left: 30px;
|
|
|
|
|
|
|
+ .imgBox {
|
|
|
|
|
+ .flex();
|
|
|
|
|
+ .imgBox1 {
|
|
|
|
|
+ width: 140px;
|
|
|
|
|
+ height: 100px;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ margin-left: 30px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|