From 1b67138962faee65ae152c6aacc62d91db54ff5c Mon Sep 17 00:00:00 2001
From: "1054425342@qq.com" <1054425342@qq.com>
Date: Mon, 28 Jul 2025 11:06:29 +0800
Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E9=A6=96=E9=A1=B5=E4=B8=80?=
=?UTF-8?q?=E4=BA=9B=E9=9D=99=E6=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.vercel/project.json | 1 +
components/CustomTabBar.vue | 167 +++---
components/DynamicIsland.vue | 502 ++++++++++++++++++
components/ProductSection.vue | 355 +++++++++++++
components/WaterfallLayout.vue | 352 ++++++++++++
components/header.vue | 202 +++++--
package-lock.json | 27 +-
pages.json | 16 +-
pages/index/index.vue | 318 +++++++----
pages/index/timeShopBank.vue | 255 +++++++++
static/image/heart.png | 3 +
subPackages/timeShop/index.vue | 8 +
.../uni-transition/createAnimation.js | 6 +
.../uni-transition/uni-transition.vue | 5 +
14 files changed, 1996 insertions(+), 221 deletions(-)
create mode 100644 .vercel/project.json
create mode 100644 components/DynamicIsland.vue
create mode 100644 components/ProductSection.vue
create mode 100644 components/WaterfallLayout.vue
create mode 100644 pages/index/timeShopBank.vue
create mode 100644 static/image/heart.png
create mode 100644 subPackages/timeShop/index.vue
diff --git a/.vercel/project.json b/.vercel/project.json
new file mode 100644
index 0000000..66779c9
--- /dev/null
+++ b/.vercel/project.json
@@ -0,0 +1 @@
+{"projectName":"trae_l237eu51"}
\ No newline at end of file
diff --git a/components/CustomTabBar.vue b/components/CustomTabBar.vue
index adc7b85..be846bc 100644
--- a/components/CustomTabBar.vue
+++ b/components/CustomTabBar.vue
@@ -1,100 +1,111 @@
+
+
+
+
-
- {{ item.text }}
-
+
+ {{ item.text }}
+
+
\ No newline at end of file
+
diff --git a/components/DynamicIsland.vue b/components/DynamicIsland.vue
new file mode 100644
index 0000000..812b1dd
--- /dev/null
+++ b/components/DynamicIsland.vue
@@ -0,0 +1,502 @@
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+ {{ getStatNumber("权益") }}
+ 权益
+
+
+ {{ getStatNumber("时间银行") }}
+ 时间银行
+
+
+
+
+ {{ actionText }}
+
+
+
+
+
+
+
+ {{ getCompactName() }}
+
+
+
+
+
+
+
+
+
diff --git a/components/ProductSection.vue b/components/ProductSection.vue
new file mode 100644
index 0000000..345519d
--- /dev/null
+++ b/components/ProductSection.vue
@@ -0,0 +1,355 @@
+
+
+
+
+
+ {{ title }}
+ 更多
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 智能体
+ {{ item.aiName }}
+
+
+
+
+
+
+
+ {{ item.title }}
+ ¥{{ item.price }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/WaterfallLayout.vue b/components/WaterfallLayout.vue
new file mode 100644
index 0000000..9191858
--- /dev/null
+++ b/components/WaterfallLayout.vue
@@ -0,0 +1,352 @@
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+ {{
+ item.description
+ }}
+
+ {{
+ tag
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/header.vue b/components/header.vue
index ad6bf3b..0462420 100644
--- a/components/header.vue
+++ b/components/header.vue
@@ -1,56 +1,160 @@
-
+
+
+
+
+
+
\ No newline at end of file
+.header {
+ flex-shrink: 0;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20rpx;
+ background-color: #fff;
+
+ &.header-fixed {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ z-index: 999;
+ }
+}
+
+.header-placeholder {
+ width: 100%;
+}
+
+.left-section {
+ display: flex;
+ align-items: center;
+ flex: 1;
+
+ .location-selector {
+ display: flex;
+ align-items: center;
+ padding: 8rpx 16rpx;
+ // border: 2rpx solid #e0e0e0;
+ border-radius: 20rpx;
+ background-color: #fff;
+ min-width: 100rpx;
+ margin-right: 20rpx;
+
+ .location-text {
+ font-size: 30rpx;
+ color: #333;
+ margin-right: 8rpx;
+ }
+
+ .dropdown-icon {
+ width: 24rpx;
+ height: 16rpx;
+ }
+ }
+
+ .search-icon {
+ height: 36.16rpx;
+ }
+}
+
+.logo {
+ height: 36.16rpx;
+ position: absolute;
+ left: 50%;
+ transform: translateX(-50%);
+}
+
+.right-section {
+ flex: 1;
+}
+
diff --git a/package-lock.json b/package-lock.json
index 50708b2..53483a8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,8 +1,33 @@
{
"name": "cgc_wechat",
"version": "1.0.0",
- "lockfileVersion": 1,
+ "lockfileVersion": 2,
"requires": true,
+ "packages": {
+ "": {
+ "name": "cgc_wechat",
+ "version": "1.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "moment": "^2.30.1",
+ "ydui-district": "^1.1.0"
+ },
+ "devDependencies": {}
+ },
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ydui-district": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/ydui-district/-/ydui-district-1.1.0.tgz",
+ "integrity": "sha512-MBhvfaR5Gkn6MUmEnrH1A7IFB5igALuDgtIF+gz3dRwNwW9+KOmih7z+xZFfGluMsEbWaT7C3lWOckYsLZQnFg=="
+ }
+ },
"dependencies": {
"moment": {
"version": "2.30.1",
diff --git a/pages.json b/pages.json
index 2e70951..c75c98a 100644
--- a/pages.json
+++ b/pages.json
@@ -47,7 +47,16 @@
"navigationBarTitleText": "登录",
"navigationStyle": "custom"
}
- }
+ },
+ {
+ "path": "pages/index/timeShopBank",
+ "style": {
+ "navigationBarTitleText": "时间银行",
+ "navigationStyle": "custom"
+ }
+ }
+
+
],
"subPackages": [
{
@@ -177,6 +186,7 @@
"navigationBarTitleText": "搜索"
}
}
+
]
},
{
@@ -386,8 +396,8 @@
"visible": false
},
{
- "pagePath": "pages/index/sensoryStore",
- "text": "有感商店",
+ "pagePath": "pages/index/timeShopBank",
+ "text": "时间银行",
"visible": false
},
{
diff --git a/pages/index/index.vue b/pages/index/index.vue
index b15ae75..b2b2649 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -1,99 +1,237 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/index/timeShopBank.vue b/pages/index/timeShopBank.vue
new file mode 100644
index 0000000..52817ea
--- /dev/null
+++ b/pages/index/timeShopBank.vue
@@ -0,0 +1,255 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/image/heart.png b/static/image/heart.png
new file mode 100644
index 0000000..8be288e
--- /dev/null
+++ b/static/image/heart.png
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/subPackages/timeShop/index.vue b/subPackages/timeShop/index.vue
new file mode 100644
index 0000000..02409e3
--- /dev/null
+++ b/subPackages/timeShop/index.vue
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uni_modules/uni-transition/components/uni-transition/createAnimation.js b/uni_modules/uni-transition/components/uni-transition/createAnimation.js
index 5f54365..a9c8776 100644
--- a/uni_modules/uni-transition/components/uni-transition/createAnimation.js
+++ b/uni_modules/uni-transition/components/uni-transition/createAnimation.js
@@ -126,3 +126,9 @@ export function createAnimation(option, _this) {
clearTimeout(_this.timer)
return new MPAnimation(option, _this)
}
+
+// #ifdef MP-WEIXIN
+module.exports = {
+ createAnimation
+}
+// #endif
diff --git a/uni_modules/uni-transition/components/uni-transition/uni-transition.vue b/uni_modules/uni-transition/components/uni-transition/uni-transition.vue
index 0d739bd..2078dd3 100644
--- a/uni_modules/uni-transition/components/uni-transition/uni-transition.vue
+++ b/uni_modules/uni-transition/components/uni-transition/uni-transition.vue
@@ -3,7 +3,12 @@