146 lines
4.7 KiB
Vue
Raw Normal View History

2024-06-16 22:57:26 +08:00
<template>
2024-06-19 00:16:00 +08:00
<div class="dc-page">
2024-06-19 18:26:36 +08:00
<div class="my-avatar">
2024-06-19 00:16:00 +08:00
<a-avatar :size="100">
<img alt="avatar" :src="myImage" />
</a-avatar>
2024-06-19 18:26:36 +08:00
<div class="my-name">
2024-06-20 00:01:12 +08:00
<div class="my-title title-size-1">兔子先森</div>
2024-06-19 18:26:36 +08:00
<div class="my-local"><icon-location />浙江杭州</div>
2024-06-19 00:16:00 +08:00
</div>
</div>
2024-06-20 00:01:12 +08:00
<a-grid :cols="{ xs: 1, sm: 1, md: 1, lg: 2, xl: 3 }" :col-gap="16" :row-gap="16">
2024-06-19 00:16:00 +08:00
<a-grid-item>
2024-06-20 00:01:12 +08:00
<div class="title-size-1">👋关于我</div>
2024-06-19 18:26:36 +08:00
<div class="type-row" v-for="item in list.aboutMe" :key="item.label">
2024-06-20 00:01:12 +08:00
<div class="column-title-size-1">{{ item.label }}</div>
2024-06-19 13:02:07 +08:00
<div v-for="(type, index) in item.value" :key="index">
<a-tag :color="item.theme">
{{ type }}
</a-tag>
</div>
</div>
2024-06-19 00:16:00 +08:00
</a-grid-item>
<a-grid-item>
2024-06-20 00:01:12 +08:00
<div class="title-size-1">💬联系我</div>
2024-06-19 18:26:36 +08:00
<div class="type-row" v-for="item in list.callMe" :key="item.label">
2024-06-20 00:01:12 +08:00
<div class="column-title-size-2">{{ item.label }}</div>
2024-06-19 18:26:36 +08:00
<div :class="item.link ? 'link-hover' : ''" @click="onLink(item)">{{ item.value }}</div>
2024-06-19 13:02:07 +08:00
</div>
2024-06-19 00:16:00 +08:00
</a-grid-item>
<a-grid-item>
2024-06-20 00:01:12 +08:00
<div class="title-size-1">🐾其它</div>
2024-06-19 18:26:36 +08:00
<div class="type-row" v-for="item in list.other" :key="item.label">
2024-06-20 00:01:12 +08:00
<div class="column-title-size-2">{{ item.label }}</div>
2024-06-19 13:02:07 +08:00
<div>{{ item.value }}</div>
</div>
2024-06-20 00:01:12 +08:00
<a-image width="100" :src="officialAccount" />
</a-grid-item>
<a-grid-item>
<a-image default-scale width="100%" height="220" :src="otherImage" />
</a-grid-item>
<a-grid-item>
<div class="title-size-2">Hello 朋友们</div>
<div class="type-row" v-for="item in list.introduce" :key="item.label">
<div class="text-ellipsis">{{ item.label }}</div>
</div>
2024-06-19 00:16:00 +08:00
</a-grid-item>
</a-grid>
</div>
2024-06-16 22:57:26 +08:00
</template>
2024-06-19 00:16:00 +08:00
<script setup lang="ts">
import myImage from "@/assets/img/my-image.jpg";
2024-06-20 00:01:12 +08:00
import otherImage from "@/assets/img/other-image.jpg";
import officialAccount from "@/assets/img/official-account.png";
2024-06-19 13:02:07 +08:00
const list = reactive({
aboutMe: [
{ label: "🐦我用语雀", value: ["知识管理", "记录生活"], theme: "green" },
{ label: "💫个性性格", value: ["天秤座", "INFJ-T"], theme: "blue" },
{ label: "💼职业工作", value: ["互联网", "前端开发"], theme: "orangered" },
{ label: "🏠现居城市", value: ["杭州"], theme: "magenta" },
{ label: "💙兴趣爱好", value: ["读书", "音乐", "狗狗🐕"], theme: "purple" }
],
callMe: [
2024-06-19 18:26:36 +08:00
{ label: "📧邮箱", value: "2547096351@qq.com", link: false },
{ label: "📠微信", value: "fanction-w", link: false },
{ label: "📚思否", value: "兔子先森", link: true, url: "https://segmentfault.com/blog/dcodes" },
{ label: "✒️掘金", value: "兔子先森Ace", link: true, url: "https://juejin.cn/user/1728883023940600/posts" },
{ label: "🛰gitee", value: "兔子先森Ace", link: true, url: "https://gitee.com/wang_fan_w" }
2024-06-19 13:02:07 +08:00
],
other: [
{ label: "🧭公众号", value: "DCodes" },
2024-06-20 00:01:12 +08:00
{ label: "🌟公众号二维码", value: "" }
],
introduce: [
{ label: "👋欢迎来到兔子先森的project记录思考成长一起进步" },
{ label: "🔖长期主义者一枚,持续学习拓展思维及方法论" },
{ label: "🤔行业瞬息万变,时刻关注行业最新资讯" },
{ label: "🤝职场相处沟通都需要技巧,持续记录学习职场二三事" },
{ label: "🌈人生多彩除了工作还有很大的世界供我们探索Let's go!" }
2024-06-19 13:02:07 +08:00
]
});
console.log(list);
2024-06-19 18:26:36 +08:00
const onLink = (item: any) => {
if (!item.link) return;
window.open(item.url);
};
2024-06-19 00:16:00 +08:00
</script>
2024-06-16 22:57:26 +08:00
2024-06-19 00:16:00 +08:00
<style lang="scss" scoped>
2024-06-19 21:34:43 +08:00
.border {
border: 1px solid red;
}
2024-06-19 18:26:36 +08:00
.my-avatar {
2024-06-19 00:16:00 +08:00
display: flex;
align-items: center;
margin-bottom: calc($margin * 2);
2024-06-19 18:26:36 +08:00
.my-name {
2024-06-19 00:16:00 +08:00
height: 60px;
margin-left: $margin;
2024-06-19 18:26:36 +08:00
.my-title {
2024-06-19 00:16:00 +08:00
height: 30px;
}
2024-06-19 18:26:36 +08:00
.my-local {
2024-06-19 00:16:00 +08:00
font-size: $font-size-body-3;
height: 30px;
display: flex;
align-items: end;
}
}
}
2024-06-19 18:26:36 +08:00
.type-row {
2024-06-19 13:02:07 +08:00
height: 25px;
margin-top: $margin;
display: flex;
align-items: center;
column-gap: $margin;
2024-06-20 00:01:12 +08:00
.column-title-size-1 {
2024-06-19 13:02:07 +08:00
min-width: 90px;
}
2024-06-20 00:01:12 +08:00
.column-title-size-2 {
2024-06-19 18:26:36 +08:00
min-width: 68px;
2024-06-19 13:02:07 +08:00
}
2024-06-20 00:01:12 +08:00
.text-ellipsis {
white-space: nowrap;
}
2024-06-19 13:02:07 +08:00
}
2024-06-20 00:01:12 +08:00
.title-size-1 {
2024-06-19 00:16:00 +08:00
font-size: $font-size-title-1;
font-weight: bold;
}
2024-06-20 00:01:12 +08:00
.title-size-2 {
font-size: $font-size-title-2;
font-weight: bold;
}
2024-06-19 18:26:36 +08:00
.link-hover {
cursor: pointer;
color: $color-primary;
}
2024-06-19 00:16:00 +08:00
</style>