Merge pull request #107 from camera-2018/106-fix-friend-cards-components-style
style: 限制最大宽度& 折叠friends
This commit is contained in:
@@ -1,9 +1,16 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { computed } from 'vue'
|
import { computed,ref } from 'vue'
|
||||||
import VPTeamMembersItem from './BloggerItem.vue'
|
import VPTeamMembersItem from './BloggerItem.vue'
|
||||||
const size = 'small'
|
const size = 'small'
|
||||||
const props= {friends:(await (await fetch("https://ghproxy.com/https://raw.githubusercontent.com/NX-Official/friends-link-plus/main/output/friends.json")).json()).friends}
|
const props= {friends:(await (await fetch("https://ghproxy.com/https://raw.githubusercontent.com/NX-Official/friends-link-plus/main/output/friends.json")).json()).friends}
|
||||||
const members = props.friends
|
const isMore = ref(false)
|
||||||
|
const members = computed(() => {
|
||||||
|
if (isMore.value) {
|
||||||
|
return props.friends
|
||||||
|
} else {
|
||||||
|
return props.friends.slice(0, 5)
|
||||||
|
}
|
||||||
|
})
|
||||||
const classes = computed(() => [
|
const classes = computed(() => [
|
||||||
size ?? 'medium',
|
size ?? 'medium',
|
||||||
`count-${members.length}`
|
`count-${members.length}`
|
||||||
@@ -16,6 +23,9 @@ const classes = computed(() => [
|
|||||||
<div v-for="member in members" :key="member.name" class="item">
|
<div v-for="member in members" :key="member.name" class="item">
|
||||||
<VPTeamMembersItem :size="size" :member="member" />
|
<VPTeamMembersItem :size="size" :member="member" />
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="!isMore">
|
||||||
|
<VPTeamMembersItem :blank="true" @click="isMore=true"/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
size: String,
|
size: String,
|
||||||
member: Object
|
member: Object,
|
||||||
|
blank: Boolean
|
||||||
})
|
})
|
||||||
|
|
||||||
const goUrl = (url) => {
|
const goUrl = (url) => {
|
||||||
@@ -13,7 +14,7 @@ const goUrl = (url) => {
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<article class="VPTeamMembersItem" :class="[size ?? 'medium']">
|
<article class="VPTeamMembersItem" :class="[size ?? 'medium']">
|
||||||
<div class="profile" @click="goUrl(member.url)">
|
<div class="profile" @click="goUrl(member.url)" v-if="!blank">
|
||||||
<figure class="avatar">
|
<figure class="avatar">
|
||||||
<img class="avatar-img" :src="member.avatar" :alt="member.name">
|
<img class="avatar-img" :src="member.avatar" :alt="member.name">
|
||||||
</figure>
|
</figure>
|
||||||
@@ -41,6 +42,7 @@ const goUrl = (url) => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="profile" v-else><div class="more">More..</div></div>
|
||||||
</article>
|
</article>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -60,7 +62,8 @@ const goUrl = (url) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.VPTeamMembersItem.small .data {
|
.VPTeamMembersItem.small .data {
|
||||||
padding-top: 20px;
|
padding-top: 10px;
|
||||||
|
width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.VPTeamMembersItem.small .avatar {
|
.VPTeamMembersItem.small .avatar {
|
||||||
@@ -157,12 +160,16 @@ const goUrl = (url) => {
|
|||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
.author_name {
|
.author_name,.more {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.more{
|
||||||
|
color: var(--vp-c-text-2);
|
||||||
|
}
|
||||||
|
|
||||||
.affiliation {
|
.affiliation {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
|
|||||||
Reference in New Issue
Block a user