Files
PC-Light-Forum/homepage-me.html
DESKTOP-RQ919RC\Pc d4244fc783 refactor(components): 重构多个组件并优化公共样式
重构了item-head、item-bottom、item-offer、item-summary和item-tenement组件,优化了props传递和数据处理逻辑
将公共头部和导航样式提取到public.css中,避免重复代码
修复了item-tenement组件中图片显示和数据处理的问题
更新了item-bottom组件的点赞和收藏逻辑,增加错误提示
优化了item-head组件的用户信息显示逻辑
调整了多个组件的样式细节,包括间距、图标大小等
2025-10-30 19:09:38 +08:00

174 lines
8.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="./css/public.css" />
<link rel="stylesheet" href="./css/homepage-me.css" />
<script src="./js/vue.global.js"></script>
<style>
[v-cloak] {
display: none;
}
</style>
</head>
<body>
<div class="container" id="homepage-me" v-cloak>
<head-top></head-top>
<div class="head-navigation flexacenter">
<img class="icon" src="./img/index-icon.png" />
<a class="text" href="./" target="_blank">首页</a>
<img class="arrows" src="./img/arrows-gray.svg" />
<div class="text">我的主页</div>
</div>
<div class="matter flexflex">
<div class="card-user flexcenter">
<div class="name-area">
<img class="avatar" :src="info.avatar" alt="用户头像" />
<h3 class="username flexcenter">{{ info.nickname }}</h3>
<p class="uid flexcenter">
UID: {{ info.uin }}
<img class="icon" @click="copy(info.uin)" src="./img/copy-icon.png" />
</p>
</div>
<div class="bi-box flexacenter">
<img class="bi-masking" src="./img/bi-masking.svg" alt="">
<img class="bi-icon" src="./img/bi-icon.svg" alt="">
<div class="bi-content flex1">
<div class="bi-sum">{{ gtercoin }}</div>
<div class="bi-text">寄托币</div>
</div>
<a class="bi-btn flexcenter" target="_blank" :href="introduction">
关于寄托币
<img class="bi-question" src="./img/question-mark.svg" alt="">
</a>
</div>
<div class="medal-area" v-if="medallist.length != 0">
<p class="title">勋章 {{ medallist.length }}</p>
<div class="list flexflex">
<img v-for="item in medallist" :src="item.image" :alt="item.name" class="item" />
</div>
</div>
</div>
<div class="matter-content flex1">
<div class="message-box" v-if="true">
<!-- 头部区域 -->
<div class="header">
<img :src="info.avatar" alt="用户头像" class="avatar" />
<span class="username">{{ info.nickname }}</span>
<img v-if="info?.group?.image" class="icon" :src="info?.group?.image">
</div>
<!-- 信息列表区域 -->
<div class="info-list flexflex">
<div class="item flexacenter">
<span class="label">注册时间</span>
<span class="value">2019-7-26 16:38</span>
</div>
<div class="item flexacenter">
<span class="label">最后登录</span>
<span class="value">2025-10-16 10:32</span>
</div>
<div class="item flexacenter">
<span class="label">在线时长</span>
<span class="value">1304 小时</span>
</div>
<div class="item flexacenter">
<span class="label">上次访问 IP</span>
<span class="value">116.237.182.149 -- 上海长宁区</span>
</div>
<div class="item flexacenter">
<span class="label">Email</span>
<span class="value">skysuper007@qq.com</span>
<span class="status flexacenter">未认证</span>
</div>
<div class="item flexacenter">
<span class="label">手机号</span>
<span class="value">15934271290</span>
<span class="status blue flexacenter">已认证</span>
</div>
<div class="item flexacenter">
<span class="label">累计签到</span>
<span class="value">1341 天</span>
</div>
<div class="item flexacenter">
<span class="label">本月签到</span>
<span class="value">6 天</span>
</div>
<div class="item flexacenter">
<span class="label">寄托币</span>
<span class="value">{{ gtercoin }}</span>
</div>
</div>
<!-- 统计标签区域 -->
<div class="stats flexacenter" v-if="creationType.length != 0">
<template v-for="(item, index) in creationType" :key="index">
<span class="item flexacenter">
<div class="text">{{ item.text }} ×</div>
<div class="num">{{ item.number }}</div>
</span>
<div class="line" v-if="index != creationType.length - 1">|</div>
</template>
</div>
<!-- Offer标签区域 -->
<div class="tags flexflex" v-if="schoolTags.length != 0">
<div class="item flexacenter" v-for="item in schoolTags" :key="item">
<img v-if="item.type == 'offer'" class="icon" src="./img/offer-icon.png" mode="heightFix" />
<img v-else class="icon" src="./img/mj-icon.png" mode="heightFix" />
{{ item.school }}
</div>
</div>
</div>
<div class="list-area">
<div class="operation-box flexacenter">
<div class="operation-item" :class="{ 'pitch': item.type == typeValue }" v-for="item in typeList" :key="item.type">{{ item.text }}</div>
</div>
<div class="classify flexacenter">
<div class="item " :class="{'pitch': item.type == classify}" v-for="item in classifyList" :key="item.type">{{ item.text }}</div>
</div>
<div class="issue-data flexacenter">
<div class="num">{{ total }}</div> 个创作
</div>
<!-- 系统会为你保留最近7天的浏览记录 -->
<div class="list-box" v-if="list.length != 0">
<template v-for="(item,index) in list" :key="index">
<item-offer v-if=" item.type == 'offer'" :itemdata="item"></item-offer>
<item-summary v-else-if="item.type == 'offer_summary'" :itemdata="item"></item-summary>
<item-vote v-else-if="item.type == 'vote'" :itemdata="item"></item-vote>
<item-mj v-else-if="item.type == 'interviewexperience'" :itemdata="item"></item-mj>
<item-tenement v-else-if="item.type == 'tenement'" :itemdata="item"></item-tenement>
<item-forum v-else :itemdata="item"></item-forum>
</template>
</div>
<div v-if="list.length == 0" class="empty flexcenter">
<img class="empty-icon" src="./img/empty-icon.png" />
<div class="empty-text">- 暂无内容 -</div>
</div>
<div class="load-more flexcenter">加载更多…</div>
</div>
</div>
</div>
</div>
<script src="./js/axios.min.js"></script>
<script src="./js/public.js"></script>
<script type="module" src="./js/homepage-me.js"></script>
</body>
</html>