feat: 新增用户主页和个人主页功能

新增用户主页和个人主页的HTML、CSS和JS文件
添加相关图片资源
重构sectionIndex页面为section-index.html
更新sectionIndex.js以支持组件导入
This commit is contained in:
DESKTOP-RQ919RC\Pc
2025-10-21 19:05:17 +08:00
parent acb96969d7
commit f1d4b25556
13 changed files with 1246 additions and 124 deletions

View File

@@ -0,0 +1,27 @@
// my-component.js
// 引入全局 Vue 对象(因在 HTML 中通过 script 引入Vue 已挂载到 window
const { defineComponent } = Vue;
console.log("11223131321321");
// 定义组件(直接使用模板)
export const MyComponent = defineComponent({
name: "MyComponent",
props: {
title: {
type: String,
default: "默认标题",
},
},
// 方法
methods: {
handleClick() {
alert("组件按钮被点击");
},
},
// 直接使用template选项包含标题、文本内容和按钮
template: `<div style="padding: 10px; border: 1px solid #ccc;">
<h3>{{ title }}</h3>
<p>这是从text文件加载的模板内容</p>
<button @click="handleClick">点击我</button>
</div>`,
});

View File

@@ -0,0 +1,5 @@
<div style="padding: 10px; border: 1px solid #ccc;">
<h3>{{ title }}</h3>
<p>这是从text文件加载的模板内容</p>
<button @click="handleClick">点击我</button>
</div>

229
css/homepage-other.css Normal file
View File

@@ -0,0 +1,229 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
}
body {
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;
}
#homepage-other {
width: 1200px;
margin: 0 auto;
}
#homepage-other .head-top {
margin-bottom: 30px;
}
#homepage-other .head-top .logo {
height: 52px;
}
#homepage-other .head-top .input-box {
width: 370px;
height: 40px;
background-color: #ebebeb;
border: 2px solid #d7d7d7;
border-radius: 11px;
padding: 0 15px;
justify-content: space-between;
margin-right: 20px;
}
#homepage-other .head-top .input-box .input {
border: none;
outline: none;
height: 100%;
background-color: transparent;
}
#homepage-other .head-top .input-box .icon {
width: 18px;
height: 18px;
margin-left: 15rpx;
cursor: pointer;
}
#homepage-other .head-top .sign-in {
width: 192px;
height: 40px;
border-radius: 83px;
cursor: pointer;
}
#homepage-other .head-top .sign-in.sign-in-already {
background-color: #ffffff;
font-size: 14px;
color: #333;
}
#homepage-other .head-top .sign-in.sign-in-already .sign-icon {
width: 20px;
height: 20px;
margin-right: 10px;
}
#homepage-other .head-top .sign-in.sign-in-no {
position: relative;
z-index: 1;
padding-right: 8px;
}
#homepage-other .head-top .sign-in.sign-in-no .sign-in-bj {
position: absolute;
top: 0;
left: 0;
z-index: -1;
width: 190px;
height: 40px;
}
#homepage-other .head-top .sign-in.sign-in-no .coin-bj {
position: absolute;
width: 157px;
height: 33px;
top: 4px;
left: 29px;
}
#homepage-other .head-top .sign-in.sign-in-no .coin-icon {
width: 43px;
height: 51px;
align-self: flex-end;
z-index: 1;
margin-left: -2px;
}
#homepage-other .head-top .sign-in.sign-in-no .text {
text-align: center;
text-shadow: 1px 1px 2px #a63603;
-webkit-text-shadow: 1px 1px 2px #a63603;
-moz-text-shadow: 1px 1px 2px #a63603;
font-size: 15px;
color: #fff;
}
#homepage-other .head-top .sign-in.sign-in-no .sign-go {
width: 30px;
height: 30px;
font-family: "Arial-BoldMT", "Arial Bold", "Arial", sans-serif;
font-weight: 700;
font-size: 12px;
color: #710600;
position: relative;
}
#homepage-other .head-top .sign-in.sign-in-no .sign-go .sign-go-bj {
width: 100%;
height: 100%;
position: absolute;
z-index: -1;
}
#homepage-other .head-top .sign-in.sign-in-no .petal1,
#homepage-other .head-top .sign-in.sign-in-no .petal2,
#homepage-other .head-top .sign-in.sign-in-no .petal3 {
position: absolute;
}
#homepage-other .head-top .sign-in.sign-in-no .petal1 {
width: 24px;
height: 10px;
top: 3px;
left: 55px;
}
#homepage-other .head-top .sign-in.sign-in-no .petal2 {
width: 16px;
height: 14px;
top: 25px;
left: 92px;
}
#homepage-other .head-top .sign-in.sign-in-no .petal3 {
width: 17px;
height: 12px;
top: 25px;
left: 136px;
}
#homepage-other .head-navigation {
margin-bottom: 20px;
}
#homepage-other .head-navigation .icon {
width: 16px;
height: 16px;
}
#homepage-other .head-navigation .arrows {
width: 7px;
height: 12px;
margin: 0 5px;
}
#homepage-other .head-navigation .text {
padding: 0 5px;
font-size: 14px;
color: #000000;
cursor: pointer;
}
#homepage-other .head-navigation .text:hover {
text-decoration: underline;
}
#homepage-other .matter .card-user {
width: 320px;
background: -webkit-linear-gradient(270.06444514deg, #ffffff 0%, #eef8f9 100%);
background: -moz-linear-gradient(179.93555486deg, #ffffff 0%, #eef8f9 100%);
background: linear-gradient(179.93555486deg, #ffffff 0%, #eef8f9 100%);
box-sizing: border-box;
border: 1px solid #e9eef2;
border-radius: 10px;
flex-direction: column;
padding-top: 115px;
padding-bottom: 40px;
}
#homepage-other .matter .card-user .avatar {
width: 120px;
height: 120px;
border-radius: 8px;
}
#homepage-other .matter .card-user .name-area .username {
font-size: 15px;
color: #333;
}
#homepage-other .matter .card-user .name-area .uid {
color: #7f7f7f;
font-size: 13px;
}
#homepage-other .matter .card-user .name-area .uid .icon {
width: 14px;
height: 14px;
margin-left: 9px;
cursor: pointer;
}
#homepage-other .matter .card-user .medal-area {
margin: 0 30px;
align-self: self-start;
}
#homepage-other .matter .card-user .medal-area .title {
font-size: 14px;
color: #7f7f7f;
}
#homepage-other .matter .card-user .medal-area .list {
flex-direction: row;
}
#homepage-other .matter .card-user .medal-area .list .item {
height: 30px;
max-width: 30px;
}

269
css/homepage-other.less Normal file
View File

@@ -0,0 +1,269 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
}
body {
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;
}
#homepage-other {
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;
}
}
.sign-in {
width: 192px;
height: 40px;
border-radius: 83px;
cursor: pointer;
&.sign-in-already {
background-color: #ffffff;
font-size: 14px;
color: #333;
.sign-icon {
width: 20px;
height: 20px;
margin-right: 10px;
}
}
&.sign-in-no {
position: relative;
z-index: 1;
padding-right: 8px;
.sign-in-bj {
position: absolute;
top: 0;
left: 0;
z-index: -1;
width: 190px;
height: 40px;
}
.coin-bj {
position: absolute;
width: 157px;
height: 33px;
top: 4px;
left: 29px;
}
.coin-icon {
width: 43px;
height: 51px;
align-self: flex-end;
z-index: 1;
margin-left: -2px;
}
.text {
text-align: center;
text-shadow: 1px 1px 2px #a63603;
-webkit-text-shadow: 1px 1px 2px #a63603;
-moz-text-shadow: 1px 1px 2px #a63603;
font-size: 15px;
color: #fff;
}
.sign-go {
width: 30px;
height: 30px;
font-family: "Arial-BoldMT", "Arial Bold", "Arial", sans-serif;
font-weight: 700;
font-size: 12px;
color: #710600;
position: relative;
.sign-go-bj {
width: 100%;
height: 100%;
position: absolute;
z-index: -1;
}
}
.petal1,
.petal2,
.petal3 {
position: absolute;
}
.petal1 {
width: 24px;
height: 10px;
top: 3px;
left: 55px;
}
.petal2 {
width: 16px;
height: 14px;
top: 25px;
left: 92px;
}
.petal3 {
width: 17px;
height: 12px;
top: 25px;
left: 136px;
}
}
}
}
.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 {
.card-user {
width: 320px;
background: -webkit-linear-gradient(270.064445137829deg, rgba(255, 255, 255, 1) 0%, rgba(238, 248, 249, 1) 100%);
background: -moz-linear-gradient(179.935554862171deg, rgba(255, 255, 255, 1) 0%, rgba(238, 248, 249, 1) 100%);
background: linear-gradient(179.935554862171deg, rgba(255, 255, 255, 1) 0%, rgba(238, 248, 249, 1) 100%);
box-sizing: border-box;
border: 1px solid rgba(233, 238, 242, 1);
border-radius: 10px;
flex-direction: column;
padding-top: 115px;
padding-bottom: 40px;
.avatar {
width: 120px;
height: 120px;
border-radius: 8px;
}
.name-area {
.username {
font-size: 15px;
color: #333;
}
.uid {
color: #7f7f7f;
font-size: 13px;
.icon {
width: 14px;
height: 14px;
margin-left: 9px;
cursor: pointer;
}
}
}
.medal-area {
margin: 0 30px;
align-self: self-start;
.title {
font-size: 14px;
color: #7f7f7f;
}
.list {
flex-direction: row;
.item {
height: 30px;
max-width: 30px;
}
}
}
}
.matter-content {
}
}
}

View File

@@ -333,12 +333,13 @@ body {
border: 1px solid #e9eef2;
border-radius: 10px;
padding: 19px 14px;
margin-bottom: 20px;
}
#sectionIndex .matter .matter-content .details-box .content-box .selectives-box .head-top {
width: 64px;
height: 24px;
border-radius: 20px 20px 20px 0;
margin-bottom: 22px;
margin-bottom: 13px;
background-color: #f68251;
}
#sectionIndex .matter .matter-content .details-box .content-box .selectives-box .head-top .icon {
@@ -355,7 +356,7 @@ body {
}
#sectionIndex .matter .matter-content .details-box .content-box .selectives-box .list {
flex-wrap: wrap;
padding: 0 5px;
padding: 0 50px 0 5px;
justify-content: space-between;
}
#sectionIndex .matter .matter-content .details-box .content-box .selectives-box .list .item {
@@ -364,6 +365,10 @@ body {
line-height: 20px;
margin-bottom: 12px;
position: relative;
cursor: pointer;
}
#sectionIndex .matter .matter-content .details-box .content-box .selectives-box .list .item:hover {
color: #000000;
}
#sectionIndex .matter .matter-content .details-box .content-box .selectives-box .list .item .dot {
width: 6px;
@@ -375,6 +380,180 @@ body {
#sectionIndex .matter .matter-content .details-box .content-box .selectives-box .list .item .text {
width: 265px;
}
#sectionIndex .matter .matter-content .details-box .content-box .red-tag {
width: 732px;
background-color: #ffffff;
border: 1px solid #e9eef2;
border-radius: 10px;
padding-top: 21px;
padding-bottom: 8px;
margin-bottom: 12px;
}
#sectionIndex .matter .matter-content .details-box .content-box .red-tag .title {
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
font-weight: 650;
font-style: normal;
font-size: 16px;
color: #000000;
padding: 0 21px;
margin-bottom: 12px;
position: relative;
}
#sectionIndex .matter .matter-content .details-box .content-box .red-tag .title .icon {
width: 10px;
height: 18px;
position: absolute;
top: 50%;
left: 0;
transform: translateY(-50%);
}
#sectionIndex .matter .matter-content .details-box .content-box .red-tag .list {
flex-wrap: wrap;
display: flex;
padding: 0 21px;
}
#sectionIndex .matter .matter-content .details-box .content-box .red-tag .list .item {
height: 32px;
background-color: #f6f6f6;
border: 1px solid #f2f2f2;
border-radius: 16px;
line-height: 36px;
font-size: 14px;
color: #333333;
padding: 0 21px;
margin-right: 10px;
margin-bottom: 14px;
cursor: pointer;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box {
width: 732px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box {
width: 100%;
background-color: #ffffff;
border: 1px solid #e9eef2;
border-radius: 10px;
padding: 18px 20px 0;
margin-bottom: 12px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .item-head {
margin-bottom: 14px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .item-head .avatar {
width: 28px;
height: 28px;
border-radius: 50%;
margin-right: 8px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .item-head .name {
font-style: normal;
color: #555555;
font-size: 14px;
margin-right: 8px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .item-head .group {
height: 15px;
margin-right: 8px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .item-head .time {
font-size: 13px;
color: #aaaaaa;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .item-head .view {
font-size: 12px;
color: #aaaaaa;
margin-right: 15px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .item-head .view .icon {
width: 13px;
height: 8px;
margin-right: 5px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .item-head .btn {
width: 24px;
height: 16px;
background-color: #f2f2f2;
border-radius: 150px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .item-head .btn .icon {
width: 18px;
height: 18px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .label {
margin-bottom: 10px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .label .item {
font-size: 14px;
color: #555555;
padding: 0 9px;
height: 24px;
line-height: 24px;
background-color: #f2f2f2;
border-radius: 6px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .label .item.icon {
padding: 0;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .label .item:not(:last-child) {
margin-right: 10px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .label .item.blue {
color: #ffffff;
background-color: #04b0d5;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .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;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .message {
font-size: 14px;
color: #555555;
white-space: pre-wrap;
margin-bottom: 15px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .comment {
height: 40px;
background-color: #f6f6f6;
border-radius: 10px;
padding: 0 10px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .comment .icon {
width: 20px;
height: 20px;
border-radius: 50%;
margin-right: 10px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .comment .text {
font-size: 14px;
color: #7f7f7f;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .bottom {
height: 55px;
justify-content: flex-end;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .bottom .bottom-item {
cursor: pointer;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .bottom .bottom-item:not(:last-child) {
margin-right: 60px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .bottom .bottom-item .icon {
width: 20px;
height: 20px;
margin-right: 8px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .bottom .bottom-item .text {
color: #aaaaaa;
font-size: 13px;
}
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box .bottom .bottom-item.like .icon {
width: 18px;
height: 18px;
}
#sectionIndex .matter .matter-content .details-box .side-box {
width: 291px;
height: 300px;

View File

@@ -376,12 +376,13 @@ body {
border: 1px solid #e9eef2;
border-radius: 10px;
padding: 19px 14px;
margin-bottom: 20px;
.head-top {
width: 64px;
height: 24px;
border-radius: 20px 20px 20px 0;
margin-bottom: 22px;
margin-bottom: 13px;
background-color: rgba(246, 130, 81, 1);
.icon {
width: 15px;
@@ -400,7 +401,7 @@ body {
.list {
flex-wrap: wrap;
padding: 0 5px;
padding: 0 50px 0 5px;
justify-content: space-between;
.item {
@@ -409,6 +410,10 @@ body {
line-height: 20px;
margin-bottom: 12px;
position: relative;
cursor: pointer;
&:hover {
color: #000000;
}
.dot {
width: 6px;
@@ -424,6 +429,211 @@ body {
}
}
}
.red-tag {
width: 732px;
background-color: rgba(255, 255, 255, 1);
border: 1px solid rgba(233, 238, 242, 1);
border-radius: 10px;
padding-top: 21px;
padding-bottom: 8px;
margin-bottom: 12px;
.title {
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
font-weight: 650;
font-style: normal;
font-size: 16px;
color: #000000;
padding: 0 21px;
margin-bottom: 12px;
position: relative;
.icon {
width: 10px;
height: 18px;
position: absolute;
top: 50%;
left: 0;
transform: translateY(-50%);
}
}
.list {
flex-wrap: wrap;
display: flex;
padding: 0 21px;
.item {
height: 32px;
background-color: rgba(246, 246, 246, 1);
border: 1px solid rgba(242, 242, 242, 1);
border-radius: 16px;
line-height: 36px;
font-size: 14px;
color: #333333;
padding: 0 21px;
margin-right: 10px;
margin-bottom: 14px;
cursor: pointer;
}
}
}
.list-box {
width: 732px;
.item-box {
width: 100%;
background-color: rgba(255, 255, 255, 1);
border: 1px solid rgba(233, 238, 242, 1);
border-radius: 10px;
padding: 18px 20px 0;
margin-bottom: 12px;
.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;
}
}
}
}
}
}
}
.side-box {

88
homepage-other.html Normal file
View File

@@ -0,0 +1,88 @@
<!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/homepage-other.css" />
<script src="./js/vue.global.js"></script>
</head>
<body>
<div class="container" id="homepage-other">
<div class="head-top flexacenter">
<img class="logo" src="https://oss.gter.net/logo" alt="" />
<div class="flex1"></div>
<div class="input-box flexacenter">
<input class="input flex1" type="text" placeholder="大家都在搜:屯特" />
<img class="icon" />
</div>
<div class="sign-in sign-in-already flexcenter" v-if="signInAlreadyState" v-cloak
onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')">
<img class="sign-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-icon.png" />
<span>已签到,明天再来</span>
</div>
<div class="sign-in sign-in-no flexacenter" v-else
onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')"
v-cloak>
<img class="sign-in-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-in-bj.svg" />
<img class="coin-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-bj.svg" />
<img class="coin-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-icon.png" />
<span class="text flex1">签到领寄托币</span>
<div class="sign-go flexcenter">
<img class="sign-go-bj"
src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-go.svg" />
GO
</div>
<img class="petal1" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal1.png" />
<img class="petal2" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal2.png" />
<img class="petal3" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal3.png" />
</div>
</div>
<div class="head-navigation flexacenter">
<img class="icon" src="./img/index-icon.png" />
<div class="text">首页</div>
<img class="arrows" src="./img/arrows-gray.svg" />
<div class="text">GTSuperstar 的个人主页</div>
</div>
<div class="matter flexflex">
<div class="card-user flexcenter">
<img src="https://nas.gter.net:9008/avatar/97K4EWIMLrsbGTWXslC2WV5VHK6OikN42jDKLNjtax7HL4g2eMCJSdU9oWFhY2E~/middle"
alt="用户头像" class="avatar">
<div class="name-area">
<h3 class="username">GTSuperstar</h3>
<p class="uid flexacenter">
UID: 3276161
<img class="icon" src="./img/copy-icon.png">
</p>
</div>
<div class="medal-area">
<p class="title">勋章 6</p>
<div class="list flexflex">
<img v-for="item in 5"
src="https://o.x-php.com/Zvt57TuJSUvkyhw-xG3WvCGHpt5oNTyM1Nwws484T7rGFDO1bKwnG2kLV_eSo5JUnMYHVj-SsGLytRp94iZe_tpcnj-4Ce4gYuGWnGU_hCATZ7u7I_X1F8YjCfX63o6lsSPQ7Y2N90MUNDQyOQ~~"
alt="勋章1" class="item">
</div>
</div>
<div class="btn-area">
<div class="msg-btn">发私信</div>
<div class="manage-btn">用户管理</div>
<div class="content-btn">内容管理</div>
</div>
</div>
<div class="matter-content flex1">
</div>
</div>
</div>
<script type="module" src="./js/homepage-other.js"></script>
</body>
</html>

BIN
img/copy-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 B

6
img/triangle-red.svg Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="10px" height="18px" xmlns="http://www.w3.org/2000/svg">
<g transform="matrix(1 0 0 1 -526 -810 )">
<path d="M 9.67013888888889 8.208984375 C 9.8900462962963 8.431640625 10 8.6953125 10 9 C 10 9.3046875 9.8900462962963 9.568359375 9.67013888888889 9.791015625 L 1.89236111111111 17.666015625 C 1.6724537037037 17.888671875 1.41203703703704 18 1.11111111111111 18 C 0.810185185185185 18 0.549768518518518 17.888671875 0.329861111111111 17.666015625 C 0.109953703703704 17.443359375 0 17.1796875 0 16.875 L 0 1.125 C 0 0.820312499999997 0.109953703703704 0.556640624999997 0.329861111111111 0.333984375 C 0.549768518518518 0.111328124999999 0.810185185185185 0 1.11111111111111 0 C 1.41203703703704 0 1.6724537037037 0.111328124999999 1.89236111111111 0.333984375 L 9.67013888888889 8.208984375 Z " fill-rule="nonzero" fill="#f95d5d" stroke="none" transform="matrix(1 0 0 1 526 810 )" />
</g>
</svg>

13
js/homepage-other.js Normal file
View File

@@ -0,0 +1,13 @@
const { createApp, ref, onMounted, nextTick, onUnmounted, computed, watch } = Vue;
import { MyComponent } from "../component/item-forum/item-forum.js";
const appSectionIndex = createApp({
setup() {
let signInAlreadyState = ref(false);
console.log(23212312311111);
return { signInAlreadyState };
},
});
appSectionIndex.component("MyComponent", MyComponent);
appSectionIndex.mount("#homepage-other");

View File

@@ -1,9 +1,12 @@
const { createApp, ref, onMounted, nextTick, onUnmounted, computed, watch } = Vue;
import { MyComponent } from "../component/item-forum/item-forum.js";
createApp({
const appSectionIndex = createApp({
setup() {
let signInAlreadyState = ref(false);
return { signInAlreadyState };
},
}).mount("#sectionIndex");
});
appSectionIndex.component("MyComponent", MyComponent);
appSectionIndex.mount("#sectionIndex");

210
section-index.html Normal file
View File

@@ -0,0 +1,210 @@
<!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/sectionIndex.css" />
<script src="./js/vue.global.js"></script>
</head>
<body>
<div class="container" id="sectionIndex">
<div class="head-top flexacenter">
<img class="logo" src="https://oss.gter.net/logo" alt="" />
<div class="flex1"></div>
<div class="input-box flexacenter">
<input class="input flex1" type="text" placeholder="大家都在搜:屯特" />
<img class="icon" />
</div>
<div class="sign-in sign-in-already flexcenter" v-if="signInAlreadyState" v-cloak
onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')">
<img class="sign-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-icon.png" />
<span>已签到,明天再来</span>
</div>
<div class="sign-in sign-in-no flexacenter" v-else
onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')"
v-cloak>
<img class="sign-in-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-in-bj.svg" />
<img class="coin-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-bj.svg" />
<img class="coin-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-icon.png" />
<span class="text flex1">签到领寄托币</span>
<div class="sign-go flexcenter">
<img class="sign-go-bj"
src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-go.svg" />
GO
</div>
<img class="petal1" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal1.png" />
<img class="petal2" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal2.png" />
<img class="petal3" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal3.png" />
</div>
</div>
<div class="head-navigation flexacenter">
<img class="icon" src="./img/index-icon.png" />
<div class="text">首页</div>
<img class="arrows" src="./img/arrows-gray.svg" />
<div class="text">首页</div>
</div>
<div class="matter flexflex">
<div class="sidebar">
<div class="title">论坛版块</div>
<div class="list">
<div v-for="item in 8" :key="item" class="item flexacenter" :class="{'pitch' : item == 1}">
<span class="text">香港</span>
</div>
</div>
<div class="list">
<div v-for="item in 5" :key="item" class="item flexacenter" :class="{'pitch' : item == 1}">
<span class="text">香港</span>
</div>
</div>
<div class="list">
<div v-for="item in 5" :key="item" class="item flexacenter" :class="{'pitch' : item == 1}">
<span class="text">香港</span>
</div>
</div>
<div class="list">
<div v-for="item in 3" :key="item" class="item flexacenter" :class="{'pitch' : item == 1}">
<span class="text">香港</span>
</div>
</div>
</div>
<div class="matter-content flex1">
<div class="info flexflex">
<img class="img"
src="https://o.x-php.com/Zvt57TuJSUvkyhw-xG_Y2l-U_pood3-H1NFX9ddrB_WbUGy8P79gQxdBFebGtpgV7NkzNDQyOQ~~" />
<div class="right flex1">
<div class="title">香港留学</div>
<div class="link flexacenter">
<div class="item flexacenter" v-for="item in 4" :key="item">
<div class="text">申港超强资料包</div>
<img class="icon" src="./img/arrows-circle-red.svg" />
</div>
</div>
<div class="bottom flexacenter">
<div class="data flexacenter">
<div class="sum">124,098</div>
个帖子
</div>
<div class="btn flexcenter">
<img class="icon" src="./img/pen-icon.png" />
<div class="text">发帖</div>
</div>
</div>
</div>
</div>
<div class="details-box flexflex">
<div class="content-box flex1">
<div class="selectives-box">
<div class="head-top flexcenter">
<img class="icon" src="https://app.gter.net/image/miniApp/offer/handpick-icon.png" />
<div class="text">精选</div>
</div>
<div class="list flexflex">
<div class="item flexacenter" v-for="(item, index) in 16" :key="index">
<div class="dot"></div>
<div class="text one-line-display">美国各院校申请时间汇总(一)美国各院校申请时间汇总(一)美国各院校申请时间汇总(一)</div>
</div>
</div>
</div>
<div class="red-tag">
<div class="title">热门标签
<img class="icon" src="./img/triangle-red.svg" />
</div>
<div class="list">
<div class="item flexacenter" v-for="(item, index) in 10" :key="index">热门标签</div>
</div>
</div>
<div class="list-box">
<div class="item-box item-forum" v-for="(item, index) in 10" :key="index">
<div class="item-head flexacenter">
<img class="avatar"
src="https://nas.gter.net:9008/avatar/97K4EWIMLrsbGTWXslC1UltTF6WOikN42jDKLNjtax7Hc44zLpaKSdU9oWFhY2E~/small" />
<div class="name">小P学姐</div>
<img class="group"
src="https://o.x-php.com/Zvt57TuJSUvkyhw-xG7Y2l-c_ZMtdXfqqsgFptxhcq_cQnrlcPJ0DVESBq_D-81qNDQyOQ~~" />
<div class="time">2025-8-11 01:30</div>
<div class="flex1"></div>
<div class="view flexacenter">
<img class="icon" src="https://app.gter.net/image/miniApp/offer/eye-icon.svg" />
<div class="text">3016</div>
</div>
<div class="btn flexcenter" @click="cutShow">
<img class="icon"
src="https://app.gter.net/image/miniApp/offer/dot-dot-dot-gray.png" />
</div>
<!-- <template v-if="show">
<div class="mask" catch:tap="cutShow" catch:touchmove="touchmove"></div>
<div class="operate" catch:tap="true">
<div class="item" bind:tap="report">举报</div>
<template v-if="ismanager">
<div class="item" bind:tap="hide">{{ item.hidden == 0 ? '隐藏' : '显示' }}</div>
<div class="item" bind:tap="recommend">{{ item.recommend == 1 ? '取消' : '' }}推荐</div>
<div class="item" bind:tap="essence">{{ item.best == 1 ? '取消' : '' }}精华</div>
</template>
</div>
</template> -->
</div>
<div class="label flexflex">
<img class="item icon" src="./img/recommend-icon.png" />
<img class="item icon" src="./img/essence-icon.png" />
<div class="item blue">香港</div>
<div class="item">香港</div>
</div>
<div class="title">【干货】香港留学费用准备</div>
<div class="message">
在即将赴港的时候很多同学好奇香港一年制硕士下来的整体费用大概是多少其实主要包括学费租房费和生活费三部分。学费的话根据不同香港来定大概在10-30万港币之间比较固定…
</div>
<div class="comment flexacenter">
<img class="icon"
src="https://nas.gter.net:9008/avatar/97K4EWIMLrsbGTWXslC1UltTF6WOikN42jDKLNjtax7Hc44zLpaKSdU9oWFhY2E~/small" />
<div class="text one-line-display">
在即将赴港的时候很多同学好奇香港一年制硕士下来的整体费用大概是多少其实主要包括学费租房费和生活费三部分。学费的话根据不同香港来定大概在10-30万港币之间比较固定…
</div>
</div>
<div class="bottom flexacenter">
<div class="bottom-item like flexacenter">
<img class="icon" src="./img/like-icon.png" />
<div class="text">3016</div>
</div>
<div class="bottom-item like flexacenter">
<img class="icon" src="./img/collect-golden.svg" />
<div class="text">3016</div>
</div>
<div class="bottom-item like flexacenter">
<img class="icon" src="./img/discuss-icon.png" />
<div class="text">3016</div>
</div>
<div class="bottom-item like flexacenter">
<img class="icon" src="./img/share-gray.png" />
<div class="text">3016</div>
</div>
</div>
</div>
</div>
</div>
<div class="side-box"></div>
</div>
</div>
</div>
</div>
<script type="module" src="./js/sectionIndex.js"></script>
</body>
</html>

View File

@@ -1,117 +0,0 @@
<!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/sectionIndex.css" />
<script src="./js/vue.global.js"></script>
</head>
<body>
<div class="container" id="sectionIndex">
<div class="head-top flexacenter">
<img class="logo" src="https://oss.gter.net/logo" alt="" />
<div class="flex1"></div>
<div class="input-box flexacenter">
<input class="input flex1" type="text" placeholder="大家都在搜:屯特" />
<img class="icon" />
</div>
<div class="sign-in sign-in-already flexcenter" v-if="signInAlreadyState" v-cloak onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')">
<img class="sign-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-icon.png" />
<span>已签到,明天再来</span>
</div>
<div class="sign-in sign-in-no flexacenter" v-else onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')" v-cloak>
<img class="sign-in-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-in-bj.svg" />
<img class="coin-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-bj.svg" />
<img class="coin-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-icon.png" />
<span class="text flex1">签到领寄托币</span>
<div class="sign-go flexcenter">
<img class="sign-go-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-go.svg" />
GO
</div>
<img class="petal1" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal1.png" />
<img class="petal2" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal2.png" />
<img class="petal3" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal3.png" />
</div>
</div>
<div class="head-navigation flexacenter">
<img class="icon" src="./img/index-icon.png" />
<div class="text">首页</div>
<img class="arrows" src="./img/arrows-gray.svg" />
<div class="text">首页</div>
</div>
<div class="matter flexflex">
<div class="sidebar">
<div class="title">论坛版块</div>
<div class="list">
<div v-for="item in 8" :key="item" class="item flexacenter" :class="{'pitch' : item == 1}">
<span class="text">香港</span>
</div>
</div>
<div class="list">
<div v-for="item in 5" :key="item" class="item flexacenter" :class="{'pitch' : item == 1}">
<span class="text">香港</span>
</div>
</div>
<div class="list">
<div v-for="item in 5" :key="item" class="item flexacenter" :class="{'pitch' : item == 1}">
<span class="text">香港</span>
</div>
</div>
<div class="list">
<div v-for="item in 3" :key="item" class="item flexacenter" :class="{'pitch' : item == 1}">
<span class="text">香港</span>
</div>
</div>
</div>
<div class="matter-content flex1">
<div class="info flexflex">
<img class="img" src="https://o.x-php.com/Zvt57TuJSUvkyhw-xG_Y2l-U_pood3-H1NFX9ddrB_WbUGy8P79gQxdBFebGtpgV7NkzNDQyOQ~~" />
<div class="right flex1">
<div class="title">香港留学</div>
<div class="link flexacenter">
<div class="item flexacenter" v-for="item in 4" :key="item">
<div class="text">申港超强资料包</div>
<img class="icon" src="./img/arrows-circle-red.svg" />
</div>
</div>
<div class="bottom flexacenter">
<div class="data flexacenter">
<div class="sum">124,098</div>
个帖子
</div>
<div class="btn flexcenter">
<img class="icon" src="./img/pen-icon.png" />
<div class="text">发帖</div>
</div>
</div>
</div>
</div>
<div class="details-box flexflex">
<div class="content-box flex1">
<div class="selectives-box">
<div class="head-top flexcenter">
<img class="icon" src="https://app.gter.net/image/miniApp/offer/handpick-icon.png" />
<div class="text">精选</div>
</div>
<div class="list flexflex">
<div class="item flexacenter" v-for="(item, index) in 16" :key="index">
<div class="dot"></div>
<div class="text one-line-display">美国各院校申请时间汇总(一)美国各院校申请时间汇总(一)美国各院校申请时间汇总(一)</div>
</div>
</div>
</div>
</div>
<div class="side-box"></div>
</div>
</div>
</div>
</div>
<script src="./js/sectionIndex.js"></script>
</body>
</html>