feat: 添加论坛首页相关资源文件和基础功能

新增论坛首页所需的图片资源、CSS样式文件、Vue组件和基础功能实现。包括:
1. 添加多个图标图片资源
2. 创建index.css和sectionIndex.css样式文件
3. 实现论坛首页的Vue组件结构和基础交互
4. 添加论坛板块列表和帖子展示功能
5. 实现公共样式和布局组件
This commit is contained in:
A1300399510
2025-10-20 01:36:25 +08:00
parent ec9584d6ea
commit 8caf6c2b10
21 changed files with 19193 additions and 11 deletions

354
css/index copy.css Normal file
View File

@@ -0,0 +1,354 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
}
body {
padding: 10px;
background-color: #eef2f5;
}
/* 公共的 css 样式 */
.flexflex {
display: flex;
}
.flexcenter {
display: flex;
justify-content: center;
align-items: center;
}
.flexjcenter {
display: flex;
justify-content: center;
}
.flexacenter {
display: flex;
align-items: center;
}
.flex1 {
flex: 1;
}
.flexcolumn {
display: flex;
flex-direction: column;
}
.one-line-display {
word-break: keep-all;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.topic-and-selectives .head-top {
width: 64px;
height: 24px;
border-radius: 20px 20px 20px 0;
margin-bottom: 10px;
}
.topic-and-selectives .head-top .icon {
width: 15px;
height: 12px;
margin-right: 3px;
}
.topic-and-selectives .head-top .text {
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
color: #ffffff;
font-size: 14px;
}
.topic-and-selectives .topic-box {
width: 308px;
height: 320px;
background-color: #ffffff;
border: 1px solid #e9eef2;
border-radius: 10px;
padding: 10px;
margin-right: 12px;
}
.topic-and-selectives .topic-box .head-top {
background-color: #f4ae38;
}
.topic-and-selectives .topic-box .topic-head {
height: 109px;
background-color: #f6f6f6;
border-radius: 8px;
flex-direction: column;
justify-content: space-between;
padding: 12px 16px;
margin-bottom: 12px;
}
.topic-and-selectives .topic-box .topic-head .title {
font-size: 16px;
color: #000000;
line-height: 23px;
}
.topic-and-selectives .topic-box .topic-head .hint {
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 16px;
color: #7f7f7f;
}
.topic-and-selectives .topic-box .topic-head .people {
position: relative;
justify-content: space-between;
}
.topic-and-selectives .topic-box .topic-head .people::after {
content: "";
position: absolute;
top: 0;
left: 0;
transform: translateY(-100%);
width: 30px;
height: 4px;
background-color: #f4ae38;
border-radius: 150px;
}
.topic-and-selectives .topic-box .topic-head .people .left {
color: #aaaaaa;
font-size: 13px;
}
.topic-and-selectives .topic-box .topic-head .people .left .number {
color: #333333;
margin-right: 3px;
}
.topic-and-selectives .topic-box .topic-head .people .right .item {
width: 26px;
height: 26px;
border-radius: 50%;
}
.topic-and-selectives .topic-box .topic-head .people .right .item .img {
width: 26px;
height: 26px;
border-radius: 50%;
}
.topic-and-selectives .topic-box .topic-head .people .right .item:nth-child(6) {
margin-right: -9px;
}
.topic-and-selectives .topic-box .topic-head .people .right .item:nth-child(5) {
margin-right: -9px;
}
.topic-and-selectives .topic-box .topic-head .people .right .item:nth-child(4) {
margin-right: -7px;
}
.topic-and-selectives .topic-box .topic-list .item:hover {
color: #000000;
}
.topic-and-selectives .topic-box .topic-list .item:not(:last-child) {
margin-bottom: 1px;
}
.topic-and-selectives .topic-box .topic-list .item .img {
width: 12px;
height: 10px;
margin-right: 9px;
}
.topic-and-selectives .topic-box .topic-list .item .text {
font-size: 14px;
color: #555555;
line-height: 28px;
}
.topic-and-selectives .selectives-box {
width: 628px;
height: 320px;
background-color: #ffffff;
border: 1px solid #e9eef2;
border-radius: 10px;
padding: 10px;
}
.topic-and-selectives .selectives-box .head-top {
background-color: #f68251;
margin-bottom: 22px;
}
.topic-and-selectives .selectives-box .list {
flex-wrap: wrap;
padding: 0 5px;
justify-content: space-between;
}
.topic-and-selectives .selectives-box .list .item {
font-size: 14px;
color: #555555;
line-height: 20px;
margin-bottom: 12px;
position: relative;
}
.topic-and-selectives .selectives-box .list .item .dot {
width: 6px;
height: 6px;
border-radius: 50%;
background-color: #f68251;
margin-right: 10px;
}
.topic-and-selectives .selectives-box .list .item .text {
width: 265px;
}
.forum-sections-list {
position: relative;
width: 897px;
height: 240px;
background-color: #ffffff;
border: 1px solid #e9eef2;
border-radius: 10px;
padding-left: 70px;
padding-top: 20px;
}
.forum-sections-list .img {
position: absolute;
top: -1px;
left: -1px;
width: 60px;
height: 240px;
}
.forum-sections-list .title {
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
font-weight: 650;
font-style: normal;
font-size: 16px;
color: #000000;
margin-bottom: 16px;
}
.forum-sections-list .list .line:not(:last-child) {
margin-bottom: 10px;
}
.forum-sections-list .list .line .item {
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 14px;
color: #333;
padding: 0 18px;
height: 32px;
background-color: #f6f6f6;
border: 1px solid #f2f2f2;
border-radius: 16px;
cursor: pointer;
}
.forum-sections-list .list .line .item:not(:last-child) {
margin-right: 10px;
}
.item-box {
width: 897px;
background-color: #ffffff;
border: 1px solid #e9eef2;
border-radius: 10px;
padding: 18px 20px 0;
}
.item-box .item-head {
margin-bottom: 14px;
}
.item-box .item-head .avatar {
width: 28px;
height: 28px;
border-radius: 50%;
margin-right: 8px;
}
.item-box .item-head .name {
font-style: normal;
color: #555555;
font-size: 14px;
margin-right: 8px;
}
.item-box .item-head .group {
height: 15px;
margin-right: 8px;
}
.item-box .item-head .time {
font-size: 13px;
color: #aaaaaa;
}
.item-box .item-head .view {
font-size: 12px;
color: #aaaaaa;
margin-right: 15px;
}
.item-box .item-head .view .icon {
width: 13px;
height: 8px;
margin-right: 5px;
}
.item-box .item-head .btn {
width: 24px;
height: 16px;
background-color: #f2f2f2;
border-radius: 150px;
}
.item-box .item-head .btn .icon {
width: 18px;
height: 18px;
}
.item-box .label {
margin-bottom: 10px;
}
.item-box .label .item {
font-size: 14px;
color: #555555;
padding: 0 9px;
height: 24px;
line-height: 24px;
background-color: #f2f2f2;
border-radius: 6px;
}
.item-box .label .item.icon {
padding: 0;
}
.item-box .label .item:not(:last-child) {
margin-right: 10px;
}
.item-box .label .item.blue {
color: #ffffff;
background-color: #04b0d5;
}
.item-box .title {
font-weight: 650;
font-size: 20px;
color: #000000;
line-height: 36px;
margin-bottom: 7px;
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
}
.item-box .message {
font-size: 14px;
color: #555555;
white-space: pre-wrap;
margin-bottom: 15px;
}
.item-box .comment {
height: 40px;
background-color: #f6f6f6;
border-radius: 10px;
padding: 0 10px;
}
.item-box .comment .icon {
width: 20px;
height: 20px;
border-radius: 50%;
margin-right: 10px;
}
.item-box .comment .text {
font-size: 14px;
color: #7f7f7f;
}
.item-box .bottom {
height: 55px;
justify-content: flex-end;
}
.item-box .bottom .bottom-item {
cursor: pointer;
}
.item-box .bottom .bottom-item:not(:last-child) {
margin-right: 60px;
}
.item-box .bottom .bottom-item .icon {
width: 20px;
height: 20px;
margin-right: 8px;
}
.item-box .bottom .bottom-item .text {
color: #aaaaaa;
font-size: 13px;
}
.item-box .bottom .bottom-item.like .icon {
width: 18px;
height: 18px;
}

View File

@@ -1,4 +1,46 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
}
body {
padding: 10px;
background-color: #eef2f5;
}
/* 公共的 css 样式 */
.flexflex {
display: flex;
}
.flexcenter {
display: flex;
justify-content: center;
align-items: center;
}
.flexjcenter {
display: flex;
justify-content: center;
}
.flexacenter {
display: flex;
align-items: center;
}
.flex1 {
flex: 1;
}
.flexcolumn {
display: flex;
flex-direction: column;
}
.one-line-display {
word-break: keep-all;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
#sectionIndex .head .logo {
width: 136px;
height: 68px;
}

View File

@@ -1,4 +1,59 @@
*{
* {
margin: 0;
padding: 0;
}
box-sizing: border-box;
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
}
body {
padding: 10px;
background-color: rgba(238, 242, 245, 1);
}
/* 公共的 css 样式 */
.flexflex {
display: flex;
}
.flexcenter {
display: flex;
justify-content: center;
align-items: center;
}
.flexjcenter {
display: flex;
justify-content: center;
}
.flexacenter {
display: flex;
align-items: center;
}
.flex1 {
flex: 1;
}
.flexcolumn {
display: flex;
flex-direction: column;
}
.one-line-display {
word-break: keep-all;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
#sectionIndex {
.head {
.logo {
width: 136px;
height: 68px;
}
}
}

430
css/sectionIndex.less Normal file
View File

@@ -0,0 +1,430 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
}
body {
padding: 10px;
background-color: rgba(238, 242, 245, 1);
}
/* 公共的 css 样式 */
.flexflex {
display: flex;
}
.flexcenter {
display: flex;
justify-content: center;
align-items: center;
}
.flexjcenter {
display: flex;
justify-content: center;
}
.flexacenter {
display: flex;
align-items: center;
}
.flex1 {
flex: 1;
}
.flexcolumn {
display: flex;
flex-direction: column;
}
.one-line-display {
word-break: keep-all;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.topic-and-selectives {
.head-top {
width: 64px;
height: 24px;
border-radius: 20px 20px 20px 0;
margin-bottom: 10px;
.icon {
width: 15px;
height: 12px;
margin-right: 3px;
}
.text {
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
color: #ffffff;
font-size: 14px;
}
}
.topic-box {
width: 308px;
height: 320px;
background-color: rgba(255, 255, 255, 1);
border: 1px solid rgba(233, 238, 242, 1);
border-radius: 10px;
padding: 10px;
margin-right: 12px;
.head-top {
background-color: rgba(244, 174, 56, 1);
}
.topic-head {
height: 109px;
background-color: rgba(246, 246, 246, 1);
border-radius: 8px;
flex-direction: column;
justify-content: space-between;
padding: 12px 16px;
margin-bottom: 12px;
.title {
font-size: 16px;
color: #000000;
line-height: 23px;
}
.hint {
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 16px;
color: #7f7f7f;
}
.people {
position: relative;
justify-content: space-between;
&::after {
content: "";
position: absolute;
top: 0;
left: 0;
transform: translateY(-100%);
width: 30px;
height: 4px;
background-color: rgba(244, 174, 56, 1);
border-radius: 150px;
}
.left {
color: #aaaaaa;
font-size: 13px;
.number {
color: #333333;
margin-right: 3px;
}
}
.right {
.item {
width: 26px;
height: 26px;
border-radius: 50%;
.img {
width: 26px;
height: 26px;
border-radius: 50%;
}
&:nth-child(6) {
margin-right: -9px;
}
&:nth-child(5) {
margin-right: -9px;
}
&:nth-child(4) {
margin-right: -7px;
}
}
}
}
}
.topic-list {
.item {
&:hover {
color: #000000;
}
&:not(:last-child) {
margin-bottom: 1px;
}
.img {
width: 12px;
height: 10px;
margin-right: 9px;
}
.text {
font-size: 14px;
color: #555555;
line-height: 28px;
}
}
}
}
.selectives-box {
width: 628px;
height: 320px;
background-color: #ffffff;
border: 1px solid #e9eef2;
border-radius: 10px;
padding: 10px;
.head-top {
background-color: rgba(246, 130, 81, 1);
margin-bottom: 22px;
}
.list {
flex-wrap: wrap;
padding: 0 5px;
justify-content: space-between;
.item {
font-size: 14px;
color: #555555;
line-height: 20px;
margin-bottom: 12px;
position: relative;
.dot {
width: 6px;
height: 6px;
border-radius: 50%;
background-color: #f68251;
margin-right: 10px;
}
.text {
width: 265px;
}
}
}
}
}
.forum-sections-list {
position: relative;
width: 897px;
height: 240px;
background-color: rgba(255, 255, 255, 1);
border: 1px solid rgba(233, 238, 242, 1);
border-radius: 10px;
padding-left: 70px;
padding-top: 20px;
.img {
position: absolute;
top: -1px;
left: -1px;
width: 60px;
height: 240px;
}
.title {
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
font-weight: 650;
font-style: normal;
font-size: 16px;
color: #000000;
margin-bottom: 16px;
}
.list {
.line {
&:not(:last-child) {
margin-bottom: 10px;
}
.item {
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 14px;
color: #333;
padding: 0 18px;
height: 32px;
background-color: rgba(246, 246, 246, 1);
border: 1px solid rgba(242, 242, 242, 1);
border-radius: 16px;
cursor: pointer;
&:not(:last-child) {
margin-right: 10px;
}
}
}
}
}
.item-box {
width: 897px;
background-color: rgba(255, 255, 255, 1);
border: 1px solid rgba(233, 238, 242, 1);
border-radius: 10px;
padding: 18px 20px 0;
.item-head {
margin-bottom: 14px;
.avatar {
width: 28px;
height: 28px;
border-radius: 50%;
margin-right: 8px;
}
.name {
font-style: normal;
color: #555555;
font-size: 14px;
margin-right: 8px;
}
.group {
height: 15px;
margin-right: 8px;
}
.time {
font-size: 13px;
color: #aaaaaa;
}
.view {
font-size: 12px;
color: #aaaaaa;
margin-right: 15px;
.icon {
width: 13px;
height: 8px;
margin-right: 5px;
}
}
.btn {
width: 24px;
height: 16px;
background-color: rgba(242, 242, 242, 1);
border-radius: 150px;
.icon {
width: 18px;
height: 18px;
}
}
}
.label {
margin-bottom: 10px;
.item {
font-size: 14px;
color: #555555;
padding: 0 9px;
height: 24px;
line-height: 24px;
background-color: rgba(242, 242, 242, 1);
border-radius: 6px;
&.icon {
padding: 0;
}
&:not(:last-child) {
margin-right: 10px;
}
&.blue {
color: #ffffff;
background-color: #04b0d5;
}
}
}
.title {
font-weight: 650;
font-size: 20px;
color: #000000;
line-height: 36px;
margin-bottom: 7px;
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
}
.message {
font-size: 14px;
color: #555555;
white-space: pre-wrap;
margin-bottom: 15px;
}
.comment {
height: 40px;
background-color: rgba(246, 246, 246, 1);
border-radius: 10px;
padding: 0 10px;
.icon {
width: 20px;
height: 20px;
border-radius: 50%;
margin-right: 10px;
}
.text {
font-size: 14px;
color: #7f7f7f;
}
}
.bottom {
height: 55px;
justify-content: flex-end;
.bottom-item {
cursor: pointer;
&:not(:last-child) {
margin-right: 60px;
}
.icon {
width: 20px;
height: 20px;
margin-right: 8px;
}
.text {
color: #aaaaaa;
font-size: 13px;
}
&.like {
.icon {
width: 18px;
height: 18px;
}
}
}
}
}