Merge pull request #107 from camera-2018/106-fix-friend-cards-components-style

style: 限制最大宽度& 折叠friends
This commit is contained in:
少轻狂
2023-08-14 23:30:54 +08:00
committed by GitHub
2 changed files with 23 additions and 6 deletions

View File

@@ -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>

View File

@@ -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;