diff --git a/frontend/manifest.json b/frontend/manifest.json
index 34da6f6..31e048d 100644
--- a/frontend/manifest.json
+++ b/frontend/manifest.json
@@ -71,7 +71,8 @@
"secretkey" : "1i5Aj8FwL3i11LYPeXMRwRWycictWq2X"
}
},
- "push" : {}
+ "push" : {},
+ "statics" : {}
},
"icons" : {
"android" : {
@@ -105,6 +106,9 @@
}
}
}
+ },
+ "uniStatistics" : {
+ "enable" : true
}
},
/* 快应用特有相关 */
@@ -115,19 +119,82 @@
"setting" : {
"urlCheck" : false
},
- "usingComponents" : true
+ "usingComponents" : true,
+ "uniStatistics" : {
+ "enable" : false
+ }
},
"mp-alipay" : {
- "usingComponents" : true
+ "usingComponents" : true,
+ "uniStatistics" : {
+ "enable" : false
+ }
},
"mp-baidu" : {
- "usingComponents" : true
+ "usingComponents" : true,
+ "uniStatistics" : {
+ "enable" : false
+ }
},
"mp-toutiao" : {
- "usingComponents" : true
+ "usingComponents" : true,
+ "uniStatistics" : {
+ "enable" : false
+ }
},
"uniStatistics" : {
- "enable" : false
+ "enable" : false,
+ "version" : "2"
},
- "vueVersion" : "3"
+ "vueVersion" : "3",
+ "app-harmony" : {
+ "uniStatistics" : {
+ "enable" : false
+ }
+ },
+ "h5" : {
+ "uniStatistics" : {
+ "enable" : true
+ }
+ },
+ "mp-harmony" : {
+ "uniStatistics" : {
+ "enable" : false
+ }
+ },
+ "mp-jd" : {
+ "uniStatistics" : {
+ "enable" : false
+ }
+ },
+ "mp-kuaishou" : {
+ "uniStatistics" : {
+ "enable" : false
+ }
+ },
+ "mp-lark" : {
+ "uniStatistics" : {
+ "enable" : false
+ }
+ },
+ "mp-qq" : {
+ "uniStatistics" : {
+ "enable" : false
+ }
+ },
+ "mp-xhs" : {
+ "uniStatistics" : {
+ "enable" : false
+ }
+ },
+ "quickapp-webview-huawei" : {
+ "uniStatistics" : {
+ "enable" : false
+ }
+ },
+ "quickapp-webview-union" : {
+ "uniStatistics" : {
+ "enable" : false
+ }
+ }
}
diff --git a/frontend/pages/components/BannerTop3.vue b/frontend/pages/components/BannerTop3.vue
index 4106a2d..7f03ecf 100644
--- a/frontend/pages/components/BannerTop3.vue
+++ b/frontend/pages/components/BannerTop3.vue
@@ -2,14 +2,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -45,7 +102,7 @@ defineExpose({ reload: loadTop3 });
width: 100%;
height: 360rpx;
position: relative;
- overflow: hidden;
+ /* overflow: hidden; */
border-radius: 24rpx;
}
@@ -55,4 +112,143 @@ defineExpose({ reload: loadTop3 });
width: 100%;
height: 100%;
}
+
+/* 卡片层 */
+.cards-overlay {
+ position: absolute;
+ top: 0;
+ right: 8rpx;
+ width: 420rpx;
+ height: 360rpx;
+ pointer-events: auto;
+ z-index: 10;
+}
+
+.card-wrapper {
+ position: absolute;
+ width: 148rpx;
+ height: 220rpx;
+}
+
+.card-pos-0 {
+ left: 50rpx;
+ top: 40rpx;
+ transform: rotate(-6deg);
+ z-index: 3;
+}
+.card-pos-1 {
+ left: 140rpx;
+ top: -8rpx;
+ transform: rotate(6deg);
+ z-index: 4;
+}
+.card-pos-2 {
+ left: 240rpx;
+ top: 106rpx;
+ transform: rotate(16deg);
+ z-index: 5;
+}
+
+.card-frame {
+ width: 100%;
+ height: 100%;
+ border-radius: 16rpx;
+ position: relative;
+ overflow: visible;
+}
+
+.card-image-wrap {
+ width: 90%;
+ height: 92%;
+ position: relative;
+ border-radius: 16rpx;
+ overflow: hidden;
+ z-index: 5;
+ padding: 8rpx;
+}
+
+.card-image {
+ width: 100%;
+ height: 100%;
+ border-radius: 16rpx;
+}
+
+.card-frame-border {
+ position: absolute;
+ inset: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 2;
+ pointer-events: none;
+}
+
+.card-footer {
+ position: absolute;
+ bottom: 8rpx;
+ left: 0;
+ right: 64rpx;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: center;
+ gap: 4rpx;
+ z-index: 3;
+}
+
+.card-heart {
+ width: 22rpx;
+ height: 22rpx;
+ flex-shrink: 0;
+}
+
+.card-likes-wrap {
+ background: linear-gradient(to bottom right,
+ #F0E4B1 0%,
+ #F08399 50%,
+ #B94E73 100%
+ );
+ border-radius: 8rpx;
+ padding: 2rpx 8rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ box-shadow:
+ 0 4rpx 12rpx rgba(255, 143, 158, 0.2),
+ inset 0 2rpx 4rpx rgba(255, 255, 255, 0.4);
+}
+
+.card-likes {
+ font-size: 12rpx;
+ color: #ffffff;
+ font-weight: 700;
+}
+
+/* 骨架屏 */
+.skeleton-wrap {
+ position: absolute;
+ inset: 0;
+ z-index: 5;
+}
+
+.skeleton-card {
+ position: absolute;
+ width: 148rpx;
+ height: 220rpx;
+ border-radius: 16rpx;
+ background: linear-gradient(90deg,
+ rgba(255,255,255,0.06) 25%,
+ rgba(255,255,255,0.14) 50%,
+ rgba(255,255,255,0.06) 75%);
+ background-size: 200% 100%;
+ animation: shimmer 1.4s infinite;
+}
+
+.skeleton-pos-0 { left: 50rpx; top: 40rpx; transform: rotate(-6deg); }
+.skeleton-pos-1 { left: 140rpx; top: -40rpx; transform: rotate(6deg); }
+.skeleton-pos-2 { left: 240rpx; top: 10rpx; transform: rotate(16deg); }
+
+@keyframes shimmer {
+ 0% { background-position: 200% 0; }
+ 100% { background-position: -200% 0; }
+}
diff --git a/frontend/pages/components/Header.vue b/frontend/pages/components/Header.vue
index f4a2068..66044a1 100644
--- a/frontend/pages/components/Header.vue
+++ b/frontend/pages/components/Header.vue
@@ -67,7 +67,7 @@
- 收益 27.1/H
+ 收益 0/H
diff --git a/frontend/pages/profile/myWorks.vue b/frontend/pages/profile/myWorks.vue
index 740ad40..87f628c 100644
--- a/frontend/pages/profile/myWorks.vue
+++ b/frontend/pages/profile/myWorks.vue
@@ -150,7 +150,7 @@
@@ -108,161 +60,18 @@ const formatLikes = (n) => {
.banner-swiper {
width: 100%;
- height: 360rpx;
+ height: 392rpx;
border-radius: 24rpx;
+ position: relative;
+ bottom: 24rpx;
}
.banner-activity-img {
width: 100%;
- height: 100%;
+ height: 328rpx;
display: block;
-}
-
-/* 卡片层:绝对定位叠在 swiper 上,可自由溢出 */
-.cards-overlay {
- position: absolute;
- top: 0;
- right: 8rpx;
- width: 420rpx;
- height: 360rpx;
- pointer-events: auto;
- z-index: 10;
-}
-
-.card-wrapper {
- position: absolute;
- width: 148rpx;
- height: 220rpx;
-}
-
-.card-pos-0 {
- left: 50rpx;
- top: 40rpx;
- transform: rotate(-6deg);
- z-index: 3;
-}
-.card-pos-1 {
- left: 140rpx;
- top: -8rpx;
- transform: rotate(6deg);
- z-index: 4;
-}
-.card-pos-2 {
- left: 240rpx;
- top: 106rpx;
- transform: rotate(16deg);
- z-index: 5;
-}
-
-.card-frame {
- width: 100%;
- height: 100%;
- border-radius: 16rpx;
+ border-radius:24rpx;
position: relative;
- overflow: visible;
-}
-
-.card-image-wrap {
- width: 90%;
- height: 92%;
- position: relative;
- border-radius: 16rpx;
- overflow: hidden;
- z-index: 5;
- padding: 8rpx;
-}
-
-.card-image {
- width: 100%;
- height: 100%;
- border-radius: 16rpx;
-}
-
-.card-frame-border {
- position: absolute;
- inset: 0;
- width: 100%;
- height: 100%;
- z-index: 2;
- pointer-events: none;
-}
-
-.card-footer {
- position: absolute;
- bottom: 8rpx;
- left: 0;
- right: 64rpx;
- display: flex;
- flex-direction: row;
- align-items: center;
- justify-content: center;
- gap: 4rpx;
- z-index: 3;
-}
-
-.card-bg-frame {
- position: absolute;
- inset: 0;
- width: 100%;
- height: 100%;
- z-index: 0;
- pointer-events: none;
-}
-
-.card-heart {
- width: 22rpx;
- height: 22rpx;
- flex-shrink: 0;
-}
-
-.card-likes-wrap {
- background: linear-gradient(to bottom right,
- #F0E4B1 0%,
- #F08399 50%,
- #B94E73 100%
- );
- border-radius: 8rpx;
- padding: 2rpx 8rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- box-shadow:
- 0 4rpx 12rpx rgba(255, 143, 158, 0.2),
- inset 0 2rpx 4rpx rgba(255, 255, 255, 0.4);
-}
-
-.card-likes {
- font-size: 12rpx;
- color: #ffffff;
- font-weight: 700;
-}
-
-/* 骨架屏 */
-.skeleton-wrap {
- position: absolute;
- inset: 0;
- z-index: 5;
-}
-
-.skeleton-card {
- position: absolute;
- width: 148rpx;
- height: 220rpx;
- border-radius: 16rpx;
- background: linear-gradient(90deg,
- rgba(255,255,255,0.06) 25%,
- rgba(255,255,255,0.14) 50%,
- rgba(255,255,255,0.06) 75%);
- background-size: 200% 100%;
- animation: shimmer 1.4s infinite;
-}
-
-.skeleton-pos-0 { left: 50rpx; top: 40rpx; transform: rotate(-6deg); }
-.skeleton-pos-1 { left: 140rpx; top: -40rpx; transform: rotate(6deg); }
-.skeleton-pos-2 { left: 240rpx; top: 10rpx; transform: rotate(16deg); }
-
-@keyframes shimmer {
- 0% { background-position: 200% 0; }
- 100% { background-position: -200% 0; }
+ top: 32rpx;
}
diff --git a/frontend/pages/square/components/ContentTabs.vue b/frontend/pages/square/components/ContentTabs.vue
index be1ffe2..c7f034a 100644
--- a/frontend/pages/square/components/ContentTabs.vue
+++ b/frontend/pages/square/components/ContentTabs.vue
@@ -52,6 +52,7 @@ const tabs = [
top: unset;
left: unset;
right: unset;
+ bottom: 16rpx;
z-index: 100;
display: flex;
flex-direction: row;
diff --git a/frontend/utils/api.js b/frontend/utils/api.js
index 61d9ccf..0f93ceb 100644
--- a/frontend/utils/api.js
+++ b/frontend/utils/api.js
@@ -1,7 +1,7 @@
// API 基础配置
-// const baseURL = 'http://101.132.250.62:8080'
+const baseURL = 'http://101.132.250.62:8080'
// const baseURL = 'http://192.168.110.60:8080'
-const baseURL = 'http://localhost:8080'
+// const baseURL = 'http://localhost:8080'
// 是否使用模拟数据(开发调试时设为 true,后端API准备好后改为 false)
const USE_MOCK_API = false