feat: 新增详情页和个人主页功能及组件优化

- 添加详情页(details.html)和个人主页(homepage-me.html)的完整功能实现
- 新增多个图片资源用于UI展示
- 优化item-head、item-bottom等组件的数据绑定和交互逻辑
- 添加公共工具函数(public.js)包括时间处理和网络请求
- 完善CSS样式文件,增加响应式布局和交互效果
- 实现用户信息展示、帖子详情、相关帖子推荐等功能模块
- 添加签到、投币等交互功能
- 优化组件模板结构和数据传递方式
This commit is contained in:
DESKTOP-RQ919RC\Pc
2025-10-28 19:10:26 +08:00
parent 89703bf025
commit 7d81e02d3d
48 changed files with 4809 additions and 689 deletions

585
css/details.less Normal file
View File

@@ -0,0 +1,585 @@
#details {
width: 1200px;
margin: 0 auto;
.head-top {
margin-bottom: 30px;
.logo {
height: 52px;
}
.input-box {
width: 370px;
height: 40px;
background-color: rgba(235, 235, 235, 1);
border: 2px solid rgba(215, 215, 215, 1);
border-radius: 11px;
padding: 0 15px;
justify-content: space-between;
margin-right: 20px;
.input {
border: none;
outline: none;
height: 100%;
background-color: transparent;
}
.icon {
width: 18px;
height: 18px;
margin-left: 15rpx;
cursor: pointer;
}
}
.post-list {
.post-item {
width: 84px;
height: 34px;
cursor: pointer;
&:not(:last-child) {
margin-right: 10px;
}
}
}
}
.head-navigation {
margin-bottom: 20px;
.icon {
width: 16px;
height: 16px;
}
.arrows {
width: 7px;
height: 12px;
margin: 0 5px;
}
.text {
padding: 0 5px;
font-size: 14px;
color: #000000;
cursor: pointer;
&:hover {
text-decoration: underline;
}
}
}
.matter {
align-items: flex-start;
margin-bottom: 50px;
.matter-left {
width: 890px;
margin-right: 20px;
.block {
background-color: rgba(255, 255, 255, 1);
border: 1px solid rgba(233, 238, 242, 1);
border-radius: 10px;
margin-bottom: 12px;
}
.matter-head {
height: 80px;
padding-left: 30px;
padding-right: 30px;
border-bottom: 1px solid #ebebeb;
.avatar {
width: 40px;
height: 40px;
margin-right: 16px;
}
.content {
flex-direction: column;
.name {
font-size: 14px;
color: #333333;
margin-bottom: 2px;
.icon {
height: 14px;
}
}
.time {
font-size: 13px;
color: #aaaaaa;
}
}
.operate {
.view {
.icon {
width: 13px;
height: 8px;
margin-right: 5px;
}
font-size: 12px;
color: #aaaaaa;
margin-right: 15px;
}
.btn {
width: 24px;
height: 16px;
background-color: rgba(242, 242, 242, 1);
border-radius: 150px;
.icon {
width: 18px;
height: 18px;
}
}
}
}
.label {
padding: 20px 30px 20px;
.item {
font-size: 14px;
color: #555555;
padding: 0 9px;
height: 24px;
line-height: 24px;
background-color: rgba(242, 242, 242, 1);
border-radius: 6px;
margin-bottom: 10px;
&.icon {
padding: 0;
}
&:not(:last-child) {
margin-right: 10px;
}
&.blue {
color: #ffffff;
background-color: #04b0d5;
}
}
}
.title {
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
font-weight: 650;
font-style: normal;
font-size: 24px;
color: #000000;
line-height: 36px;
padding: 0 30px;
margin-bottom: 30px;
}
.html {
padding: 0 30px;
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-size: 15px;
color: #555555;
line-height: 24px;
margin-bottom: 66px;
}
.last-time {
color: #aaaaaa;
font-size: 13px;
padding: 0 30px 20px;
}
.bottom {
border-top: 1px solid #ebebeb;
height: 64px;
line-height: 64px;
justify-content: flex-end;
padding-right: 30px;
position: sticky;
bottom: 0;
background: #ffff;
border-radius: 0 0 10px 10px;
.bottom-item {
.icon {
width: 20px;
height: 20px;
margin-right: 6px;
}
font-size: 14px;
color: #333333;
&:not(:last-child) {
margin-right: 60px;
}
}
}
.related {
.related-head {
padding-left: 30px;
padding-top: 20px;
padding-bottom: 12px;
border-bottom: 1px solid #ebebeb;
.text {
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
font-weight: 650;
font-style: normal;
font-size: 16px;
color: #000000;
margin-right: 14px;
}
.time {
font-family: "ArialMT", "Arial", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 13px;
letter-spacing: normal;
color: #333333;
}
}
.list {
padding: 14px 30px;
flex-wrap: wrap;
.item {
width: 50%;
font-size: 14px;
color: #555555;
cursor: pointer;
&:hover {
color: #000000;
}
.dot {
width: 6px;
height: 6px;
border-radius: 50%;
background-color: #f68251;
margin-right: 10px;
}
&:not(:nth-last-child(-n + 2)) {
margin-bottom: 7px;
}
.text {
width: 352px;
}
}
}
}
}
.sidebar-box {
.adv {
width: 291px;
height: 220px;
margin-bottom: 12px;
display: block;
cursor: pointer;
.adv-img {
width: 291px;
height: 220px;
border-radius: 8px;
}
}
.sidebar-item {
width: 291px;
background-color: rgba(255, 255, 255, 1);
border-radius: 8px;
margin-bottom: 12px;
.sidebar-header {
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
font-weight: 650;
font-style: normal;
font-size: 15px;
color: #000000;
padding: 16px;
border-bottom: 1px solid #f2f2f2;
}
.sidebar-content {
flex-direction: column;
padding: 20px 0;
.sidebar-QRCode {
width: 120px;
height: 120px;
margin-bottom: 18px;
}
.hint {
.saoma-icon {
width: 14px;
height: 14px;
margin-right: 8px;
}
font-size: 14px;
color: #555555;
}
.author-box {
padding: 16px 5px 30px 16px;
width: 100%;
.avatar {
width: 50px;
height: 50px;
border-radius: 50%;
margin-right: 22px;
}
.author-content {
.author-name {
font-size: 14px;
color: #000000;
margin-bottom: 11px;
}
.author-info {
color: #7f7f7f;
font-size: 13px;
.amount {
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
font-weight: 650;
color: #000000;
margin: 0 5px;
}
}
}
}
.medal {
width: calc(100% - 16px);
padding-bottom: 22px;
margin-left: 16px;
border-bottom: 1px solid #f2f2f2;
.medal-title {
font-size: 14px;
color: #7f7f7f;
margin-bottom: 14px;
}
.medal-list {
flex-wrap: wrap;
.medal-item {
width: 32px;
height: 32px;
margin-right: 8px;
margin-bottom: 8px;
}
}
}
.recently {
width: 100%;
padding: 30px 16px 10px;
.recently-title {
font-size: 14px;
color: #7f7f7f;
margin-bottom: 14px;
}
.recently-list {
flex-direction: column;
.recently-item {
font-size: 14px;
color: #000000;
margin-bottom: 9px;
cursor: pointer;
.dot {
width: 6px;
height: 6px;
margin-right: 8px;
border-radius: 50%;
background-color: #f68251;
margin-right: 10px;
}
}
}
}
}
}
}
}
.coins-area {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
.coins-box {
width: 624px;
background-color: rgba(255, 255, 255, 1);
border: 1px solid rgba(233, 238, 242, 1);
border-radius: 11px;
flex-direction: column;
padding: 40px 30px 35px;
position: relative;
.fork {
width: 12px;
height: 12px;
position: absolute;
top: 20px;
right: 20px;
cursor: pointer;
}
.coins-head {
margin-bottom: 32px;
.icon {
width: 50px;
height: 60px;
margin-right: 16px;
}
.text {
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
color: #7f7f7f;
font-size: 14px;
.sum {
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
font-weight: 650;
font-size: 18px;
color: #000000;
margin: 0 5px;
}
}
}
.coins-input {
width: 333px;
height: 36px;
background-color: rgba(255, 255, 255, 1);
border: 1px solid rgba(215, 215, 215, 1);
border-radius: 8px;
overflow: hidden;
margin-bottom: 31px;
.input {
height: 100%;
border: none;
outline: none;
font-size: 14px;
padding: 0 10px;
}
.btn {
width: 84px;
height: 100%;
line-height: 36px;
text-align: center;
background-color: rgba(80, 227, 194, 1);
}
}
.coins-info {
color: #555555;
font-size: 14px;
margin-bottom: 43px;
.icon {
width: 16px;
height: 16px;
margin-right: 6px;
}
.sum {
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
font-weight: 650;
color: #000000;
margin: 0 5px;
}
.strategy {
margin-left: 5px;
color: #026277;
cursor: pointer;
}
}
.coins-list-area {
max-height: 347px;
background-color: rgba(251, 251, 251, 1);
border-radius: 16px;
width: 100%;
padding: 20px 20px 0;
flex-direction: column;
.coins-total {
color: #7f7f7f;
font-size: 14px;
.sum {
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
font-weight: 650;
color: #000000;
margin: 0 5px;
}
}
.list {
overflow: auto;
.item {
height: 65px;
padding: 0 35px;
&:not(:last-child) {
border-bottom: 1px solid #f2f2f2;
}
.serial {
font-family: "Arial-BoldMT", "Arial Bold", "Arial", sans-serif;
font-weight: 700;
font-style: normal;
color: #ffb600;
margin-right: 114px;
}
.user {
color: #555555;
font-size: 13px;
.avatar {
width: 32px;
height: 32px;
margin-right: 10px;
}
}
.amount {
color: #000000;
font-size: 16px;
.text {
font-size: 13px;
margin-left: 2px;
}
}
}
}
}
}
}
}