From 0ea43d0c6260b0435e660b846f8d7bb89955f38d Mon Sep 17 00:00:00 2001 From: sdaduanbilei Date: Tue, 2 Dec 2025 14:55:29 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE=E6=89=80=E5=B1=9E=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/badge/index.js | 35 +++++++++++ components/badge/index.json | 7 +++ components/badge/index.wxml | 17 +++++ components/badge/index.wxss | 121 ++++++++++++++++++++++++++++++++++++ pages/add/index.js | 7 ++- pages/add/index.json | 3 +- pages/add/index.wxml | 11 ++-- pages/add/index.wxss | 2 +- pages/index/index.js | 12 ++-- project.private.config.json | 11 +++- 10 files changed, 210 insertions(+), 16 deletions(-) create mode 100644 components/badge/index.js create mode 100644 components/badge/index.json create mode 100644 components/badge/index.wxml create mode 100644 components/badge/index.wxss diff --git a/components/badge/index.js b/components/badge/index.js new file mode 100644 index 0000000..7be4e1f --- /dev/null +++ b/components/badge/index.js @@ -0,0 +1,35 @@ +// components/badge/index.js +Component({ + + /** + * 组件的属性列表 + */ + properties: { + visible:{ + type: Boolean, + require: false + }, + item: { + type: Object, + require: true + }, + }, + + /** + * 组件的初始数据 + */ + data: { + + }, + + /** + * 组件的方法列表 + */ + methods: { + tap(){ + this.triggerEvent('ok', { + value: "" + }); + } + } +}) \ No newline at end of file diff --git a/components/badge/index.json b/components/badge/index.json new file mode 100644 index 0000000..dd1bfbb --- /dev/null +++ b/components/badge/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "styleIsolation": "apply-shared", + "usingComponents": { + "t-overlay": "tdesign-miniprogram/overlay/overlay" + } +} \ No newline at end of file diff --git a/components/badge/index.wxml b/components/badge/index.wxml new file mode 100644 index 0000000..7dcfb36 --- /dev/null +++ b/components/badge/index.wxml @@ -0,0 +1,17 @@ + + + + + + + + + + + + 新手园丁 + 徽章获取条件:2025年12月15日,添加第一颗植物 + + + + \ No newline at end of file diff --git a/components/badge/index.wxss b/components/badge/index.wxss new file mode 100644 index 0000000..627bc48 --- /dev/null +++ b/components/badge/index.wxss @@ -0,0 +1,121 @@ +/* components/badge/index.wxss */ + +/* ================================= + 1. 舞台层 (保持透视) +================================= */ +.badge-scene { + position: relative; + width: 285rpx; + height: 285rpx; + margin: 50rpx auto; + /* 透视距离:决定旋转时的立体感,1000rpx 比较自然 */ + perspective: 1000rpx; +} + +/* ================================= + 2. 背景光线层 (不变) +================================= */ +.badge-bg-rays { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 180%; + height: 180%; + z-index: 0; + border-radius: 50%; + background: repeating-conic-gradient( + from 0deg, + transparent 0deg 20deg, + rgba(255, 223, 128, 0.4) 20deg 40deg + ); + filter: blur(30px); + animation: rotate-rays 20s linear infinite; + pointer-events: none; +} + +/* ================================= + 3. 3D包裹层 (修改了动画) +================================= */ +.badge-3d-wrapper { + width: 100%; + height: 100%; + position: relative; + z-index: 2; + transform-style: preserve-3d; + + /* 【修改点】应用纯左右摇摆动画 */ + /* 4s 一个周期,ease-in-out 让两头慢中间快,更有质感 */ + animation: swayLeftRight 4s ease-in-out infinite; +} + +/* ================================= + 4. 内容层 (不变) +================================= */ +.badge-content-container { + width: 100%; + height: 100%; + border-radius: 50%; + box-shadow: 0 10px 25px rgba(0,0,0,0.3); + overflow: hidden; + position: relative; + background: #fff; +} + +.badge-img-inner { + width: 100%; + height: 100%; + display: block; +} + +/* 流光层 (不变) */ +.badge-content-container::after { + content: ''; + position: absolute; + top: -50%; + left: -50%; + width: 200%; + height: 200%; + background: linear-gradient( + to bottom right, + rgba(255, 255, 255, 0) 30%, + rgba(255, 255, 255, 0.6) 50%, + rgba(255, 255, 255, 0) 70% + ); + transform: rotate(30deg); + animation: shimmer 3s infinite ease-in-out; + pointer-events: none; + z-index: 3; +} + +/* ================================= + 动画定义 (Keyframes) +================================= */ + +/* 【新动画】纯左右 3D 摇摆 */ +@keyframes swayLeftRight { + 0% { + /* 向左侧转 20度 */ + transform: rotateY(-20deg); + } + 50% { + /* 向右侧转 20度 */ + transform: rotateY(20deg); + } + 100% { + /* 回到左侧 */ + transform: rotateY(-20deg); + } +} + +/* 光线背景旋转 (不变) */ +@keyframes rotate-rays { + from { transform: translate(-50%, -50%) rotate(0deg); } + to { transform: translate(-50%, -50%) rotate(360deg); } +} + +/* 流光扫过 (不变) */ +@keyframes shimmer { + 0% { transform: translateX(-100%) translateY(-100%) rotate(30deg); } + 100% { transform: translateX(100%) translateY(100%) rotate(30deg); } +} \ No newline at end of file diff --git a/pages/add/index.js b/pages/add/index.js index 11f62a7..5f55ce0 100644 --- a/pages/add/index.js +++ b/pages/add/index.js @@ -11,6 +11,7 @@ Page({ */ data: { minDate: new Date(2019, 1, 1).getTime(), + show:false, value: new Date().getTime(), showDate:false, visible: false, @@ -158,7 +159,7 @@ Page({ }) api('/plant/add','POST',this.data.form,'json').then(res => { if (res.code === 200){ - wx.navigateBack() + this.setData({show:true}) } else { wx.showModal({ content: res.msg @@ -167,6 +168,10 @@ Page({ }) }, + goBack(){ + wx.navigateBack() + }, + /** * 生命周期函数--监听页面初次渲染完成 */ diff --git a/pages/add/index.json b/pages/add/index.json index 8ed44e4..6cfa59f 100644 --- a/pages/add/index.json +++ b/pages/add/index.json @@ -2,6 +2,7 @@ "navigationBarTitleText": "添加新植物", "usingComponents": { "t-calendar": "tdesign-miniprogram/calendar/calendar", - "count-picker":"/components/count-picker/index" + "count-picker":"/components/count-picker/index", + "badge":"/components/badge/index" } } \ No newline at end of file diff --git a/pages/add/index.wxml b/pages/add/index.wxml index 209525b..c15005b 100644 --- a/pages/add/index.wxml +++ b/pages/add/index.wxml @@ -3,7 +3,7 @@ 植物图片 - + @@ -12,7 +12,7 @@ 支持JPG、PNG 格式,最大 5MB - + @@ -31,7 +31,7 @@ 种植日期 - + @@ -39,7 +39,7 @@ - + @@ -51,6 +51,7 @@ - + + \ No newline at end of file diff --git a/pages/add/index.wxss b/pages/add/index.wxss index 16aa138..34ab91d 100644 --- a/pages/add/index.wxss +++ b/pages/add/index.wxss @@ -21,4 +21,4 @@ color: red; font-size: 32rpx; margin-left: 4rpx; -} \ No newline at end of file +} diff --git a/pages/index/index.js b/pages/index/index.js index a1d76df..7f72f63 100644 --- a/pages/index/index.js +++ b/pages/index/index.js @@ -141,12 +141,12 @@ Page({ goAdd() { const tmp = wx.getStorageSync('user') - if (tmp.phone.length === 0){ - wx.navigateTo({ - url: '../login/index', - }) - return - } + // if (tmp.phone.length === 0){ + // wx.navigateTo({ + // url: '../login/index', + // }) + // return + // } wx.navigateTo({ url: '../add/index', }) diff --git a/project.private.config.json b/project.private.config.json index 33c1c33..2b1e46e 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -23,12 +23,19 @@ "condition": { "miniprogram": { "list": [ + { + "name": "pages/add/index", + "pathName": "pages/add/index", + "query": "", + "scene": null, + "launchMode": "default" + }, { "name": "pages/community/info", "pathName": "pages/community/info", "query": "id=d7082150-c68d-11f0-b4a9-bc2411e64a23", - "scene": null, - "launchMode": "default" + "launchMode": "default", + "scene": null } ] }