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
}
]
}