修改朋友、粉丝逻辑
This commit is contained in:
parent
cb70c5e0bb
commit
4a31283ada
@ -54,6 +54,8 @@ export default {
|
|||||||
|
|
||||||
'/message/share-to-friend',
|
'/message/share-to-friend',
|
||||||
'/message/joined-group-chat',
|
'/message/joined-group-chat',
|
||||||
|
'/message/fans',
|
||||||
|
|
||||||
'/country-choose',
|
'/country-choose',
|
||||||
'/edit-userinfo',
|
'/edit-userinfo',
|
||||||
'/edit-userinfo-item',
|
'/edit-userinfo-item',
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
@second-btn-color: rgb(58, 58, 70);
|
@second-btn-color: rgb(58, 58, 70);
|
||||||
@second-btn-color-tran: rgba(58, 58, 70, .4);
|
@second-btn-color-tran: rgba(58, 58, 70, .4);
|
||||||
@line-color: rgb(37, 45, 66);
|
@line-color: rgb(37, 45, 66);
|
||||||
|
@line-color2: rgb(56,54,67);
|
||||||
|
|
||||||
@primary-btn-color: rgb(252, 47, 86);
|
@primary-btn-color: rgb(252, 47, 86);
|
||||||
@disable-primary-btn-color: rgba(252, 47, 86, .5);
|
@disable-primary-btn-color: rgba(252, 47, 86, .5);
|
||||||
|
|||||||
@ -150,7 +150,7 @@ p {
|
|||||||
|
|
||||||
.line {
|
.line {
|
||||||
height: 1px;
|
height: 1px;
|
||||||
background: @line-color;
|
background: @line-color2;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@
|
|||||||
<BSearch placeholder="搜索用户名字/抖音号"
|
<BSearch placeholder="搜索用户名字/抖音号"
|
||||||
:isShowText="true"
|
:isShowText="true"
|
||||||
notice="white"
|
notice="white"
|
||||||
|
@notice="$no"
|
||||||
>
|
>
|
||||||
<img class="scan" src="../../assets/img/icon/scan-gray.png" @click.stop="$nav('/scan')">
|
<img class="scan" src="../../assets/img/icon/scan-gray.png" @click.stop="$nav('/scan')">
|
||||||
</BSearch>
|
</BSearch>
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<from-bottom-dialog
|
<from-bottom-dialog
|
||||||
|
page-id="home-index"
|
||||||
v-model="modelValue"
|
v-model="modelValue"
|
||||||
@cancel="cancel"
|
@cancel="cancel"
|
||||||
maskMode="light"
|
maskMode="light"
|
||||||
|
|||||||
55
src/pages/message/Fans.vue
Normal file
55
src/pages/message/Fans.vue
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<template>
|
||||||
|
<div class="Fans">
|
||||||
|
<BaseHeader>
|
||||||
|
<template v-slot:center>
|
||||||
|
<span class="f16">粉丝</span>
|
||||||
|
</template>
|
||||||
|
</BaseHeader>
|
||||||
|
<div class="content">
|
||||||
|
<People v-for="item in friends.all" :people="item"></People>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {mapState} from "vuex";
|
||||||
|
import People from "../people/components/People";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Fans",
|
||||||
|
components: {
|
||||||
|
People
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
modelValue: false
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(['userinfo', 'friends'])
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
},
|
||||||
|
methods: {}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
@import "@/assets/less/index";
|
||||||
|
|
||||||
|
.Fans {
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
top: 0;
|
||||||
|
overflow: auto;
|
||||||
|
color: white;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding: @padding-page;
|
||||||
|
padding-top: 6rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -7,43 +7,164 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Search class="m2r"></Search>
|
<Search class="m2r"></Search>
|
||||||
<div class="line mb2r"></div>
|
|
||||||
<div class="friends pl1r ">
|
<div class="friends pl1r ">
|
||||||
<div class="friend pr1r pl1r"
|
<div class="friend pr1r pl1r"
|
||||||
@click="$nav('/message/chat')"
|
@click="$nav('/message/chat')"
|
||||||
v-for="item in friends.all">
|
v-for="(item,index) in friends.all">
|
||||||
<div class="avatar on-line">
|
<div class="avatar" :class="index%2===0?'on-line':''">
|
||||||
<img :src="$imgPreview(item.avatar)" alt="">
|
<img :src="$imgPreview(item.avatar)" alt="">
|
||||||
</div>
|
</div>
|
||||||
<span>{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="friend pr10p">
|
<div class="friend pr10p">
|
||||||
<img src="../../assets/img/icon/next.svg" alt="">
|
<img src="../../assets/img/icon/message/setting.png" alt="">
|
||||||
<span>状态设置</span>
|
<span class="ml1r">状态设置</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="line mt2r"></div>
|
<div class="line mt2r"></div>
|
||||||
<div class="requests">
|
|
||||||
<div class="span">关注请求(1)</div>
|
|
||||||
<div class="right">
|
|
||||||
<div class="not-read"></div>
|
|
||||||
<img class="arrow" src="../../assets/img/icon/close-white.png" alt="">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="messages ">
|
<div class="messages ">
|
||||||
<div class="message" v-for="i in 5">
|
<!-- 粉丝-->
|
||||||
<div class="avatar on-line">
|
<div class="message" @click="$nav('/message/fans')">
|
||||||
|
<div class="avatar">
|
||||||
<img src="../../assets/img/icon/msg-icon1.png" alt="" class="head-image">
|
<img src="../../assets/img/icon/msg-icon1.png" alt="" class="head-image">
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<div class="name">
|
<div class="name">
|
||||||
<span>粉丝</span>
|
<span>粉丝</span>
|
||||||
|
</div>
|
||||||
|
<div class="detail">
|
||||||
|
xxx 关注了你
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<back class="arrow" mode="gray" img="back" direction="right"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 互动消息-->
|
||||||
|
<div class="message">
|
||||||
|
<div class="avatar">
|
||||||
|
<img src="../../assets/img/icon/msg-icon2.png" alt="" class="head-image">
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<div class="left">
|
||||||
|
<div class="name">
|
||||||
|
<span>互动消息</span>
|
||||||
|
</div>
|
||||||
|
<div class="detail">
|
||||||
|
xxx 赞了你的评论
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<back class="arrow" mode="gray" img="back" direction="right"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 抖音小助手-->
|
||||||
|
<div class="message">
|
||||||
|
<div class="avatar">
|
||||||
|
<img src="../../assets/img/icon/msg-icon5.webp" alt="" class="head-image">
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<div class="left">
|
||||||
|
<div class="name">
|
||||||
|
<span>抖音小助手</span>
|
||||||
<span class="tag">官方</span>
|
<span class="tag">官方</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="detail">
|
<div class="detail">
|
||||||
<img class="sent" src="../../assets/img/icon/close-white.png" alt="">
|
#今天谁请客呢
|
||||||
已送达 ,sb,凌晨 01:15
|
<div class="point"></div>
|
||||||
|
星期四
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="not-read"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 系统通知-->
|
||||||
|
<div class="message">
|
||||||
|
<div class="avatar">
|
||||||
|
<img src="../../assets/img/icon/msg-icon4.png" alt="" class="head-image">
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<div class="left">
|
||||||
|
<div class="name">
|
||||||
|
<span>系统通知</span>
|
||||||
|
<span class="tag">官方</span>
|
||||||
|
</div>
|
||||||
|
<div class="detail">
|
||||||
|
协议修订通知
|
||||||
|
<div class="point"></div>
|
||||||
|
08-31
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="not-read"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 求更新-->
|
||||||
|
<div class="message">
|
||||||
|
<div class="avatar">
|
||||||
|
<img src="../../assets/img/icon/msg-icon7.webp" alt="" class="head-image">
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<div class="left">
|
||||||
|
<div class="name">
|
||||||
|
<span>求更新</span>
|
||||||
|
<span class="tag">官方</span>
|
||||||
|
</div>
|
||||||
|
<div class="detail">
|
||||||
|
你收到过1次求更新
|
||||||
|
<div class="point"></div>
|
||||||
|
10-09
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="not-read"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 任务通知-->
|
||||||
|
<div class="message">
|
||||||
|
<div class="avatar">
|
||||||
|
<img src="../../assets/img/icon/msg-icon6.webp" alt="" class="head-image">
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<div class="left">
|
||||||
|
<div class="name">
|
||||||
|
<span>任务通知</span>
|
||||||
|
<span class="tag">官方</span>
|
||||||
|
</div>
|
||||||
|
<div class="detail">
|
||||||
|
发作品得流量
|
||||||
|
<div class="point"></div>
|
||||||
|
05-26
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="not-read"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 消息-->
|
||||||
|
<div class="message">
|
||||||
|
<div class="avatar on-line">
|
||||||
|
<img src="../../assets/img/icon/avatar/2.png" alt="" class="head-image">
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<div class="left">
|
||||||
|
<div class="name">
|
||||||
|
<span>{{ userinfo.nickname }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="detail">
|
||||||
|
哈哈哈哈哈哈
|
||||||
|
<div class="point"></div>
|
||||||
|
10-10
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
@ -54,6 +175,31 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 模板-->
|
||||||
|
<!-- <div class="message">-->
|
||||||
|
<!-- <div class="avatar on-line">-->
|
||||||
|
<!-- <img src="../../assets/img/icon/avatar/2.png" alt="" class="head-image">-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- <div class="content">-->
|
||||||
|
<!-- <div class="left">-->
|
||||||
|
<!-- <div class="name">-->
|
||||||
|
<!-- <span>粉丝</span>-->
|
||||||
|
<!-- <span class="tag">官方</span>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- <div class="detail">-->
|
||||||
|
<!-- <img class="sent" src="../../assets/img/icon/close-white.png" alt="">-->
|
||||||
|
<!-- 已送达 ,sb,凌晨 01:15-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- <div class="right">-->
|
||||||
|
<!-- <!– <div class="not-read"></div>–>-->
|
||||||
|
<!-- <!– <img class="camera" src="../../assets/img/icon/close-white.png" alt="">–>-->
|
||||||
|
<!-- <!– <img class="arrow" src="../../assets/img/icon/close-white.png" alt="">–>-->
|
||||||
|
<!-- <div class="badge">12</div>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </div>-->
|
||||||
</div>
|
</div>
|
||||||
<Footer v-bind:init-tab="4"/>
|
<Footer v-bind:init-tab="4"/>
|
||||||
|
|
||||||
@ -213,7 +359,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(['friends']),
|
...mapState(['friends', 'userinfo']),
|
||||||
selectFriends() {
|
selectFriends() {
|
||||||
return this.friends.all.filter(v => v.select).length
|
return this.friends.all.filter(v => v.select).length
|
||||||
}
|
}
|
||||||
@ -516,30 +662,33 @@ export default {
|
|||||||
.friend {
|
.friend {
|
||||||
&:nth-last-child(1) {
|
&:nth-last-child(1) {
|
||||||
img {
|
img {
|
||||||
margin: 0 10px;
|
margin: 0 1rem;
|
||||||
padding: 17px;
|
padding: 1.7rem;
|
||||||
background: darkgray;
|
background: @second-btn-color-tran;
|
||||||
width: 30px;
|
width: 3rem;
|
||||||
height: 30px;
|
height: 3rem;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
|
margin-bottom: .6rem;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.avatar {
|
.avatar {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-bottom: 6px;
|
margin-bottom: .6rem;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 64px;
|
@width: 6.4rem;
|
||||||
height: 64px;
|
width: @width;
|
||||||
|
height: @width;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.on-line::before {
|
&.on-line::before {
|
||||||
content: ' ';
|
content: ' ';
|
||||||
border: 4px solid black;
|
border: .4rem solid black;
|
||||||
width: 18px;
|
width: 1.8rem;
|
||||||
height: 18px;
|
height: 1.8rem;
|
||||||
background: rgb(115, 254, 73);
|
background: rgb(115, 254, 73);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -551,39 +700,19 @@ export default {
|
|||||||
|
|
||||||
|
|
||||||
span {
|
span {
|
||||||
color: @second-text-color;
|
width: 6.4rem;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: lightgray;
|
||||||
display: block;
|
display: block;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.line {
|
|
||||||
border-top: 1px solid @line-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.requests {
|
|
||||||
font-size: 1.4rem;
|
|
||||||
box-sizing: border-box;
|
|
||||||
margin: 0 20px;
|
|
||||||
padding: 20px 0;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
border-bottom: 1px solid @line-color;
|
|
||||||
|
|
||||||
.right {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
.arrow {
|
|
||||||
width: 15px;
|
|
||||||
height: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.messages {
|
.messages {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
|
|
||||||
@ -603,23 +732,24 @@ export default {
|
|||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.head-image {
|
.head-image {
|
||||||
margin-left: 20px;
|
margin-left: 2rem;
|
||||||
margin-right: 15px;
|
margin-right: 1.5rem;
|
||||||
width: 48px;
|
@width: 4.5rem;
|
||||||
height: 48px;
|
width: @width;
|
||||||
|
height: @width;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.on-line::before {
|
&.on-line::before {
|
||||||
content: ' ';
|
content: ' ';
|
||||||
border: 3px solid black;
|
border: .3rem solid black;
|
||||||
width: 12px;
|
width: 1.2rem;
|
||||||
height: 12px;
|
height: 1.2rem;
|
||||||
background: rgb(115, 254, 73);
|
background: rgb(115, 254, 73);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
right: 15px;
|
right: 1.5rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -628,55 +758,69 @@ export default {
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
padding: 15px 0 15px 0;
|
@padding: 1.4rem;
|
||||||
border-bottom: 1px solid @line-color;
|
padding: @padding 0 @padding 0;
|
||||||
|
border-bottom: 1px solid @line-color2;
|
||||||
|
|
||||||
.left {
|
.left {
|
||||||
.name {
|
.name {
|
||||||
font-size: 1.8rem;
|
font-size: 1.4rem;
|
||||||
color: white;
|
color: white;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
|
|
||||||
.tag {
|
.tag {
|
||||||
margin-left: 5px;
|
margin-left: .5rem;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
background: @line-color;
|
background: @second-btn-color-tran;
|
||||||
padding: 2px 5px;
|
color: @second-text-color;
|
||||||
border-radius: 2px;
|
padding: .2rem .5rem;
|
||||||
|
border-radius: .2rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail {
|
.detail {
|
||||||
color: @second-text-color;
|
color: @second-text-color;
|
||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
margin-top: 4px;
|
margin-top: .4rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.point {
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: .8rem;
|
||||||
|
margin-right: .8rem;
|
||||||
|
border-radius: 50%;
|
||||||
|
width: 1.5px;
|
||||||
|
height: 1.5px;
|
||||||
|
background: @second-text-color;
|
||||||
|
}
|
||||||
|
|
||||||
.sent {
|
.sent {
|
||||||
width: 10px;
|
width: 1rem;
|
||||||
height: 10px;
|
height: 1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.right {
|
.right {
|
||||||
margin-right: 30px;
|
margin-right: 3rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.arrow {
|
.arrow {
|
||||||
width: 15px;
|
width: 1.5rem;
|
||||||
height: 15px;
|
height: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.camera {
|
.camera {
|
||||||
width: 20px;
|
width: 2rem;
|
||||||
height: 20px;
|
height: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.not-read {
|
.not-read {
|
||||||
width: 10px;
|
width: .7rem;
|
||||||
height: 10px;
|
height: .7rem;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: yellow;
|
background: yellow;
|
||||||
}
|
}
|
||||||
@ -685,8 +829,8 @@ export default {
|
|||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
display: block;
|
display: block;
|
||||||
color: black;
|
color: black;
|
||||||
padding: 1px 6px;
|
padding: 1px .6rem;
|
||||||
border-radius: 10px;
|
border-radius: 1rem;
|
||||||
background: yellow;
|
background: yellow;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -697,13 +841,13 @@ export default {
|
|||||||
.not-more {
|
.not-more {
|
||||||
color: @second-text-color;
|
color: @second-text-color;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 20px;
|
padding: 2rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.recommend {
|
.recommend {
|
||||||
.title {
|
.title {
|
||||||
padding: 20px 20px 10px 20px;
|
padding: 2rem 2rem 1rem 2rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -712,17 +856,17 @@ export default {
|
|||||||
color: @second-text-color;
|
color: @second-text-color;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 10px;
|
width: 1rem;
|
||||||
height: 10px;
|
height: 1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.right {
|
.right {
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: @second-text-color;
|
background: @second-text-color;
|
||||||
padding: 5px;
|
padding: .5rem;
|
||||||
width: 10px;
|
width: 1rem;
|
||||||
height: 10px;
|
height: 1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -739,10 +883,10 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.head-image {
|
.head-image {
|
||||||
margin-left: 20px;
|
margin-left: 2rem;
|
||||||
margin-right: 15px;
|
margin-right: 1.5rem;
|
||||||
width: 48px;
|
width: 4.8rem;
|
||||||
height: 48px;
|
height: 4.8rem;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -750,7 +894,7 @@ export default {
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
padding: 15px 0;
|
padding: 1.5rem 0;
|
||||||
|
|
||||||
.left {
|
.left {
|
||||||
.name {
|
.name {
|
||||||
@ -766,15 +910,15 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.right {
|
.right {
|
||||||
margin-right: 20px;
|
margin-right: 2rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.button {
|
.button {
|
||||||
background: @primary-btn-color;
|
background: @primary-btn-color;
|
||||||
margin-left: 8px;
|
margin-left: .8rem;
|
||||||
padding: 8px 20px;
|
padding: .8rem 2rem;
|
||||||
border-radius: 3px;
|
border-radius: .3rem;
|
||||||
|
|
||||||
&:nth-last-child(1) {
|
&:nth-last-child(1) {
|
||||||
background: rgb(58, 58, 67);
|
background: rgb(58, 58, 67);
|
||||||
|
|||||||
@ -3,36 +3,41 @@
|
|||||||
<img v-if="people.type === 6" src="../../../assets/img/icon/add-light.png" alt="" class="add">
|
<img v-if="people.type === 6" src="../../../assets/img/icon/add-light.png" alt="" class="add">
|
||||||
<img v-else :src="$imgPreview(people.avatar)" alt="" class="head-image pull-left">
|
<img v-else :src="$imgPreview(people.avatar)" alt="" class="head-image pull-left">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
|
<template v-if="mode === 'fans'">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<div class="name">{{ people.name }}</div>
|
<div class="name">{{ people.name }}</div>
|
||||||
<div class="detail" v-if="people.type !== 6">
|
<div class="detail">
|
||||||
|
<template v-if="people.type === RELATE_ENUM.REQUEST_FOLLOW">
|
||||||
|
发来一个关注请求
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
该用户关注了你
|
该用户关注了你
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="right">
|
||||||
<!-- 已关注 -->
|
<!-- 他关注我 -->
|
||||||
<div class="right" v-if="people.type === 1">
|
<template v-if="people.type === RELATE_ENUM.FOLLOW_ME">
|
||||||
|
<div class="l-button red">回关</div>
|
||||||
|
</template>
|
||||||
|
<!-- 我关注他 -->
|
||||||
|
<template v-if="people.type === RELATE_ENUM.FOLLOW_HE">
|
||||||
<div class="l-button">已关注</div>
|
<div class="l-button">已关注</div>
|
||||||
|
</template>
|
||||||
|
<!-- 相互关注-->
|
||||||
|
<template v-if="people.type === RELATE_ENUM.FOLLOW_EACH_OTHER">
|
||||||
|
<div class="l-button">相互关注</div>
|
||||||
|
</template>
|
||||||
|
<!-- 关注请求-->
|
||||||
|
<template v-if="people.type === RELATE_ENUM.REQUEST_FOLLOW">
|
||||||
|
<div class="l-button ">忽略</div>
|
||||||
|
<div class="l-button red">通过</div>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<!-- 粉丝 -->
|
</template>
|
||||||
<div class="right" v-if="people.type === 2">
|
|
||||||
<div class="l-button red">回关</div>
|
|
||||||
<img src="../../../assets/img/icon/menu-white.png" alt="">
|
|
||||||
</div>
|
|
||||||
<!-- 朋友推荐 -->
|
|
||||||
<div class="right" v-if="people.type === 3">
|
|
||||||
<div class="l-button red">回关</div>
|
|
||||||
<div class="l-button ">移除</div>
|
|
||||||
</div>
|
|
||||||
<!-- 互相关注 -->
|
|
||||||
<div class="right" v-if="people.type === 4">
|
|
||||||
<div class="l-button">发私信</div>
|
|
||||||
<img src="../../../assets/img/icon/menu-white.png" alt="" @click="showPopover = !showPopover">
|
|
||||||
</div>
|
|
||||||
<!-- 通讯录 -->
|
|
||||||
<div class="right" v-if="people.type === 5">
|
|
||||||
<div class="l-button red address-list">回关</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<transition name="scale">
|
<transition name="scale">
|
||||||
<div class="popover" v-if="people.type === 4 && showPopover">
|
<div class="popover" v-if="people.type === 4 && showPopover">
|
||||||
@ -56,11 +61,21 @@ export default {
|
|||||||
people: {
|
people: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: {}
|
default: {}
|
||||||
|
},
|
||||||
|
mode: {
|
||||||
|
type: String,
|
||||||
|
default: 'fans'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
showPopover: false
|
showPopover: false,
|
||||||
|
RELATE_ENUM: {
|
||||||
|
FOLLOW_ME: 1,//只关注我
|
||||||
|
FOLLOW_EACH_OTHER: 2,//互相关注
|
||||||
|
FOLLOW_HE: 3,//我关注他
|
||||||
|
REQUEST_FOLLOW: 4//关注请求
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
@ -140,6 +155,10 @@ export default {
|
|||||||
border-radius: .2rem;
|
border-radius: .2rem;
|
||||||
background: rgb(58, 58, 67);
|
background: rgb(58, 58, 67);
|
||||||
|
|
||||||
|
&:only-child {
|
||||||
|
background: yellow;
|
||||||
|
}
|
||||||
|
|
||||||
&.address-list {
|
&.address-list {
|
||||||
padding: .7rem 3rem;
|
padding: .7rem 3rem;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -58,6 +58,7 @@ import VideoCollect from "../pages/me/collect/VideoCollect";
|
|||||||
import MyMusic from "../pages/me/MyMusic";
|
import MyMusic from "../pages/me/MyMusic";
|
||||||
import FollowAndFans from "../pages/people/FollowAndFans";
|
import FollowAndFans from "../pages/people/FollowAndFans";
|
||||||
import MyRequestUpdate from "../pages/me/MyRequestUpdate";
|
import MyRequestUpdate from "../pages/me/MyRequestUpdate";
|
||||||
|
import Fans from "../pages/message/Fans";
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
// {path: '', component: Music},
|
// {path: '', component: Music},
|
||||||
@ -79,11 +80,16 @@ const routes = [
|
|||||||
|
|
||||||
{path: '/attention', component: Attention},
|
{path: '/attention', component: Attention},
|
||||||
{path: '/publish', component: Publish},
|
{path: '/publish', component: Publish},
|
||||||
|
|
||||||
|
|
||||||
{path: '/message', component: Message},
|
{path: '/message', component: Message},
|
||||||
{path: '/message/share-to-friend', component: Share2Friend},
|
{path: '/message/share-to-friend', component: Share2Friend},
|
||||||
{path: '/message/joined-group-chat', component: JoinedGroupChat},
|
{path: '/message/joined-group-chat', component: JoinedGroupChat},
|
||||||
{path: '/message/chat', component: Chat},
|
{path: '/message/chat', component: Chat},
|
||||||
{path: '/message/chat-detail', component: ChatDetail},
|
{path: '/message/chat-detail', component: ChatDetail},
|
||||||
|
{path: '/message/fans', component: Fans},
|
||||||
|
|
||||||
|
|
||||||
{path: '/edit-userinfo', component: EditUserInfo},
|
{path: '/edit-userinfo', component: EditUserInfo},
|
||||||
{path: '/edit-userinfo-item', component: EditUserInfoItem},
|
{path: '/edit-userinfo-item', component: EditUserInfoItem},
|
||||||
{path: '/country-choose', component: countryChoose},
|
{path: '/country-choose', component: countryChoose},
|
||||||
|
|||||||
@ -3,6 +3,12 @@ import enums from '../utils/enums'
|
|||||||
import api from '../api/index'
|
import api from '../api/index'
|
||||||
import CONST_VAR from "../utils/const_var";
|
import CONST_VAR from "../utils/const_var";
|
||||||
|
|
||||||
|
let RELATE_ENUM = {
|
||||||
|
FOLLOW_ME: 1,//只关注我
|
||||||
|
FOLLOW_EACH_OTHER: 2,//互相关注
|
||||||
|
FOLLOW_HE: 3,//我关注他
|
||||||
|
REQUEST_FOLLOW: 4//关注请求
|
||||||
|
}
|
||||||
const store = Vuex.createStore({
|
const store = Vuex.createStore({
|
||||||
state: {
|
state: {
|
||||||
bodyHeight: document.body.clientHeight,
|
bodyHeight: document.body.clientHeight,
|
||||||
@ -58,7 +64,8 @@ const store = Vuex.createStore({
|
|||||||
"isDelete": 0,
|
"isDelete": 0,
|
||||||
"account": "234",
|
"account": "234",
|
||||||
"pinyin": "M",
|
"pinyin": "M",
|
||||||
"select": false
|
"select": false,
|
||||||
|
type: RELATE_ENUM.REQUEST_FOLLOW
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "2b446aa8-5d31-429a-8e39-d4705eb4e900",
|
"id": "2b446aa8-5d31-429a-8e39-d4705eb4e900",
|
||||||
@ -76,7 +83,8 @@ const store = Vuex.createStore({
|
|||||||
"isDelete": 0,
|
"isDelete": 0,
|
||||||
"account": "33453",
|
"account": "33453",
|
||||||
"pinyin": "Q",
|
"pinyin": "Q",
|
||||||
"select": false
|
"select": false,
|
||||||
|
type: RELATE_ENUM.FOLLOW_ME
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "2d8622b4-7112-4bc7-a0cf-00a268a85504",
|
"id": "2d8622b4-7112-4bc7-a0cf-00a268a85504",
|
||||||
@ -94,7 +102,8 @@ const store = Vuex.createStore({
|
|||||||
"isDelete": 0,
|
"isDelete": 0,
|
||||||
"account": "234234",
|
"account": "234234",
|
||||||
"pinyin": "#",
|
"pinyin": "#",
|
||||||
"select": false
|
"select": false,
|
||||||
|
type: RELATE_ENUM.FOLLOW_HE
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "2e38900b-65f7-426a-8e8b-edb403df35fb",
|
"id": "2e38900b-65f7-426a-8e8b-edb403df35fb",
|
||||||
@ -112,7 +121,8 @@ const store = Vuex.createStore({
|
|||||||
"isDelete": 0,
|
"isDelete": 0,
|
||||||
"account": "1111",
|
"account": "1111",
|
||||||
"pinyin": "#",
|
"pinyin": "#",
|
||||||
"select": false
|
"select": false,
|
||||||
|
type: RELATE_ENUM.FOLLOW_EACH_OTHER
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "3cd53cb5-04f8-4439-ad2b-e57b3f9b8c73",
|
"id": "3cd53cb5-04f8-4439-ad2b-e57b3f9b8c73",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user