|
@@ -0,0 +1,69 @@
|
|
|
+<template>
|
|
|
+ <div class="bookshelf">
|
|
|
+ <div class="bookshelf-container">
|
|
|
+ <div class="bookshelf-header">
|
|
|
+ <div class="bookshelf-info">
|
|
|
+ <el-upload
|
|
|
+ class="bookshelf-avatar"
|
|
|
+ action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
|
|
|
+ :show-file-list="false"
|
|
|
+ :before-upload="beforeAvatarUpload"
|
|
|
+ >
|
|
|
+ <el-avatar v-if="imageUrl" :size="100" :src="imageUrl" />
|
|
|
+
|
|
|
+ <!-- <div class="bookshelf-avatar__mask">
|
|
|
+ <img src="@/assets/images/icon_portrait-min.png" />
|
|
|
+ </div> -->
|
|
|
+ </el-upload>
|
|
|
+
|
|
|
+ <div class="bookshelf-info-inner">
|
|
|
+ <div class="bookshelf-info__name">
|
|
|
+ <span>SAMSARA</span>
|
|
|
+ <img draggable="false" src="@/assets/images/icon_edit-min.png" />
|
|
|
+ </div>
|
|
|
+ <p class="bookshelf-info__id">ID:6855576858</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <el-button type="primary" class="bookshelf-header__logout"
|
|
|
+ >退出登录</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="bookshelf-inner">
|
|
|
+ <p class="bookshelf-inner__label"><span>我的书架</span></p>
|
|
|
+
|
|
|
+ <ul>
|
|
|
+ <li v-for="key in 10" :key="key">
|
|
|
+ <book-card type="column" size="large" show-like />
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup>
|
|
|
+import { ref } from "vue";
|
|
|
+import { ElMessage } from "element-plus";
|
|
|
+import BookCard from "@/components/BookCard/index.vue";
|
|
|
+
|
|
|
+const imageUrl = ref(
|
|
|
+ "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100"
|
|
|
+);
|
|
|
+
|
|
|
+const beforeAvatarUpload = (rawFile) => {
|
|
|
+ if (rawFile.type !== "image/jpeg") {
|
|
|
+ ElMessage.error("Avatar picture must be JPG format!");
|
|
|
+ return false;
|
|
|
+ } else if (rawFile.size / 1024 / 1024 > 2) {
|
|
|
+ ElMessage.error("Avatar picture size can not exceed 2MB!");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+@import "./index.scss";
|
|
|
+</style>
|