From a927b930c17a0d4018095548663dab73bef2547c Mon Sep 17 00:00:00 2001
From: 18631081161 <2088094923@qq.com>
Date: Sat, 21 Feb 2026 16:18:01 +0800
Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docker-compose.yml | 2 +
miniprogram/App.vue | 9 --
miniprogram/manifest.json | 2 +-
miniprogram/pages.json | 6 +
miniprogram/pages/cart/index.vue | 5 +
miniprogram/pages/login/index.vue | 107 ++++++++++++++
miniprogram/pages/mine/index.vue | 135 ++++++++++++++----
miniprogram/static/ic_about.png | Bin 0 -> 2336 bytes
miniprogram/static/ic_address.png | Bin 0 -> 3299 bytes
miniprogram/static/ic_agreement1.png | Bin 0 -> 2330 bytes
miniprogram/static/ic_agreement2.png | Bin 0 -> 1497 bytes
miniprogram/static/ic_customer.png | Bin 0 -> 2702 bytes
.../dist/dev/.sourcemap/mp-weixin/app.js.map | 2 +-
.../.sourcemap/mp-weixin/common/assets.js.map | 2 +-
.../mp-weixin/pages/cart/index.js.map | 2 +-
.../mp-weixin/pages/login/index.js.map | 1 +
.../mp-weixin/pages/mine/index.js.map | 2 +-
.../unpackage/dist/dev/mp-weixin/app.js | 14 +-
.../unpackage/dist/dev/mp-weixin/app.json | 3 +-
.../dist/dev/mp-weixin/common/assets.js | 14 +-
.../dist/dev/mp-weixin/common/vendor.js | 2 +-
.../components/CustomerServiceBtn.js | 2 +-
.../dist/dev/mp-weixin/pages/cart/index.js | 5 +
.../dist/dev/mp-weixin/pages/login/index.js | 47 ++++++
.../dist/dev/mp-weixin/pages/login/index.json | 4 +
.../dist/dev/mp-weixin/pages/login/index.wxml | 1 +
.../dist/dev/mp-weixin/pages/login/index.wxss | 53 +++++++
.../dist/dev/mp-weixin/pages/mine/index.js | 67 ++++++---
.../dist/dev/mp-weixin/pages/mine/index.wxml | 2 +-
.../dist/dev/mp-weixin/pages/mine/index.wxss | 70 +++++++--
.../dist/dev/mp-weixin/project.config.json | 5 +-
.../dev/mp-weixin/project.private.config.json | 5 +
.../dist/dev/mp-weixin/static/ic_about.png | Bin 0 -> 2336 bytes
.../dist/dev/mp-weixin/static/ic_address.png | Bin 0 -> 3299 bytes
.../dev/mp-weixin/static/ic_agreement1.png | Bin 0 -> 2330 bytes
.../dev/mp-weixin/static/ic_agreement2.png | Bin 0 -> 1497 bytes
.../dist/dev/mp-weixin/static/ic_customer.png | Bin 0 -> 2702 bytes
server/src/controllers/auth.ts | 5 +-
38 files changed, 482 insertions(+), 92 deletions(-)
create mode 100644 miniprogram/pages/login/index.vue
create mode 100644 miniprogram/static/ic_about.png
create mode 100644 miniprogram/static/ic_address.png
create mode 100644 miniprogram/static/ic_agreement1.png
create mode 100644 miniprogram/static/ic_agreement2.png
create mode 100644 miniprogram/static/ic_customer.png
create mode 100644 miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/index.js.map
create mode 100644 miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.js
create mode 100644 miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.json
create mode 100644 miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.wxml
create mode 100644 miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.wxss
create mode 100644 miniprogram/unpackage/dist/dev/mp-weixin/project.private.config.json
create mode 100644 miniprogram/unpackage/dist/dev/mp-weixin/static/ic_about.png
create mode 100644 miniprogram/unpackage/dist/dev/mp-weixin/static/ic_address.png
create mode 100644 miniprogram/unpackage/dist/dev/mp-weixin/static/ic_agreement1.png
create mode 100644 miniprogram/unpackage/dist/dev/mp-weixin/static/ic_agreement2.png
create mode 100644 miniprogram/unpackage/dist/dev/mp-weixin/static/ic_customer.png
diff --git a/docker-compose.yml b/docker-compose.yml
index eb76d4fe..c491797d 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -29,6 +29,8 @@ services:
DB_USER: root
DB_PASSWORD: jewelry123
DB_NAME: jewelry_mall
+ WX_APPID: wx58b02b73d9c26c10
+ WX_SECRET: 3b6cdaffa9ef92d877f79ebd739b47b0
JWT_SECRET: jewelry-mall-jwt-secret
PORT: 3000
volumes:
diff --git a/miniprogram/App.vue b/miniprogram/App.vue
index 6a144b7b..6bb79f1d 100644
--- a/miniprogram/App.vue
+++ b/miniprogram/App.vue
@@ -1,16 +1,7 @@
+
+
diff --git a/miniprogram/pages/mine/index.vue b/miniprogram/pages/mine/index.vue
index 2dff3e8d..19023967 100644
--- a/miniprogram/pages/mine/index.vue
+++ b/miniprogram/pages/mine/index.vue
@@ -1,40 +1,46 @@
-
-
+
+
- {{ userStore.user?.nickname || '未登录' }}
+ {{ isLoggedIn ? (userStore.user?.nickname || '微信用户') : '点击注册/登录' }}
+ ›
-
+
+
+
+ 我的订单 {{ orderCount }}
+ ›
+
+
+
-
-
@@ -54,25 +60,50 @@
\r\n\r\n\r\n","import App from './App'\n\n// #ifndef VUE3\nimport Vue from 'vue'\nimport './uni.promisify.adaptor'\nVue.config.productionTip = false\nApp.mpType = 'app'\nconst app = new Vue({\n ...App\n})\napp.$mount()\n// #endif\n\n// #ifdef VUE3\nimport { createSSRApp } from 'vue'\nimport { createPinia } from 'pinia'\nexport function createApp() {\n const app = createSSRApp(App)\n const pinia = createPinia()\n app.use(pinia)\n return {\n app\n }\n}\n// #endif"],"names":["uni","autoLogin","createSSRApp","App","createPinia"],"mappings":";;;;;;;;;;;;;;;;AAGA,MAAe,YAAA;AAAA,EACb,WAAW;AACLA,kBAAAA,MAAA,MAAM,OAAM,gBAAe,YAAY;AAErC,UAAA,QAAQA,cAAAA,MAAI,eAAe,OAAO;AACxC,QAAI,CAAC,OAAO;AACAC,8BAAA,EAAE,MAAM,CAAC,QAAQ;AACzBD,sBAAA,MAAI,MAAM,SAAQ,iBAAgB,WAAW,GAAG;AAAA,MAAA,CACjD;AAAA,IACH;AAAA,EACF;AAAA,EACA,SAAS;AACHA,kBAAAA,MAAA,MAAM,OAAM,iBAAgB,UAAU;AAAA,EAC5C;AAAA,EACA,SAAS;AACHA,kBAAAA,MAAA,MAAM,OAAM,iBAAgB,UAAU;AAAA,EAC5C;AACF;ACJO,SAAS,YAAY;AAC1B,QAAM,MAAME,cAAY,aAACC,SAAG;AAC5B,QAAM,QAAQC,cAAAA,YAAa;AAC3B,MAAI,IAAI,KAAK;AACb,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;"}
\ No newline at end of file
+{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["\r\n\r\n\r\n","import App from './App'\n\n// #ifndef VUE3\nimport Vue from 'vue'\nimport './uni.promisify.adaptor'\nVue.config.productionTip = false\nApp.mpType = 'app'\nconst app = new Vue({\n ...App\n})\napp.$mount()\n// #endif\n\n// #ifdef VUE3\nimport { createSSRApp } from 'vue'\nimport { createPinia } from 'pinia'\nexport function createApp() {\n const app = createSSRApp(App)\n const pinia = createPinia()\n app.use(pinia)\n return {\n app\n }\n}\n// #endif"],"names":["uni","createSSRApp","App","createPinia"],"mappings":";;;;;;;;;;;;;;;;AACA,MAAe,YAAA;AAAA,EACb,WAAW;AACLA,kBAAAA,MAAA,MAAM,OAAM,gBAAe,YAAY;AAAA,EAC7C;AAAA,EACA,SAAS;AACHA,kBAAAA,MAAA,MAAM,OAAM,gBAAe,UAAU;AAAA,EAC3C;AAAA,EACA,SAAS;AACHA,kBAAAA,MAAA,MAAM,OAAM,iBAAgB,UAAU;AAAA,EAC5C;AACF;ACKO,SAAS,YAAY;AAC1B,QAAM,MAAMC,cAAY,aAACC,SAAG;AAC5B,QAAM,QAAQC,cAAAA,YAAa;AAC3B,MAAI,IAAI,KAAK;AACb,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;"}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
index 81c5d3fa..7971432a 100644
--- a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
+++ b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
@@ -1 +1 @@
-{"version":3,"file":"assets.js","sources":["static/logo.png"],"sourcesContent":["export default \"__VITE_ASSET__46719607__\""],"names":[],"mappings":";AAAA,MAAe,aAAA;;"}
\ No newline at end of file
+{"version":3,"file":"assets.js","sources":["static/tab/me_s.png","static/ic_address.png","static/ic_customer.png","static/ic_about.png","static/ic_agreement1.png","static/ic_agreement2.png","static/logo.png"],"sourcesContent":["export default \"__VITE_ASSET__0724ec6f__\"","export default \"__VITE_ASSET__2fa96069__\"","export default \"__VITE_ASSET__834c867b__\"","export default \"__VITE_ASSET__53f234dc__\"","export default \"__VITE_ASSET__a736f8f4__\"","export default \"__VITE_ASSET__a25b5e1b__\"","export default \"__VITE_ASSET__46719607__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;;;;;;;;"}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/cart/index.js.map b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/cart/index.js.map
index c4e381f1..310a85e3 100644
--- a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/cart/index.js.map
+++ b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/cart/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sources":["pages/cart/index.vue","../../../../Software/HBuilderX.4.76.2025082103/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvY2FydC9pbmRleC52dWU"],"sourcesContent":["\r\n \r\n \r\n 0\" class=\"cart-list\">\r\n \r\n \r\n ✓\r\n \r\n \r\n \r\n {{ item.product.name }}\r\n {{ item.specData.fineness }} / {{ item.specData.mainStone }} / {{ item.specData.ringSize }}\r\n \r\n ¥{{ item.specData.totalPrice }}\r\n \r\n -\r\n {{ item.quantity }}\r\n +\r\n \r\n \r\n \r\n 删除\r\n \r\n \r\n\r\n \r\n \r\n 购物车是空的\r\n 去逛逛\r\n \r\n\r\n \r\n 0\" class=\"settle-bar\">\r\n \r\n ✓\r\n 全选\r\n \r\n \r\n 合计:¥{{ cartStore.totalAmount.toFixed(2) }}\r\n \r\n 下单({{ cartStore.checkedItems.length }})\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'F:/gitCode/uniapp/JewelryMall/miniprogram/pages/cart/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["useCartStore","ref","computed","uni","onMounted"],"mappings":";;;;;;AAyDA,MAAA,qBAA+B,MAAA;;;;AAG/B,UAAM,YAAYA,WAAAA;AACZ,UAAA,aAAaC,kBAAI,KAAK;AAE5B,UAAM,eAAeC,cAAA;AAAA,MAAS,MAC5B,UAAU,MAAM,SAAS,KAAK,UAAU,MAAM,MAAM,CAAC,SAAS,KAAK,OAAO;AAAA,IAAA;AAG5E,aAAS,YAAY,MAAgB;AAC/B,UAAA,KAAK,WAAW,GAAG;AACrB,kBAAU,eAAe,KAAK,IAAI,KAAK,WAAW,CAAC;AAAA,MACrD;AAAA,IACF;AAEA,aAAS,eAAe;AAClB,UAAA,UAAU,aAAa,WAAW,GAAG;AACvCC,sBAAA,MAAI,UAAU,EAAE,OAAO,UAAU,MAAM,QAAQ;AAC/C;AAAA,MACF;AACAA,oBAAAA,MAAI,WAAW,EAAE,KAAK,sBAAuB,CAAA;AAAA,IAC/C;AAEA,aAAS,SAAS;AAChBA,oBAAAA,MAAI,UAAU,EAAE,KAAK,qBAAsB,CAAA;AAAA,IAC7C;AAEAC,kBAAAA,UAAU,MAAM;AACd,gBAAU,UAAU;AAAA,IAAA,CACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtFD,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"index.js","sources":["pages/cart/index.vue","../../../../Software/HBuilderX.4.76.2025082103/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvY2FydC9pbmRleC52dWU"],"sourcesContent":["\r\n \r\n \r\n 0\" class=\"cart-list\">\r\n \r\n \r\n ✓\r\n \r\n \r\n \r\n {{ item.product.name }}\r\n {{ item.specData.fineness }} / {{ item.specData.mainStone }} / {{ item.specData.ringSize }}\r\n \r\n ¥{{ item.specData.totalPrice }}\r\n \r\n -\r\n {{ item.quantity }}\r\n +\r\n \r\n \r\n \r\n 删除\r\n \r\n \r\n\r\n \r\n \r\n 购物车是空的\r\n 去逛逛\r\n \r\n\r\n \r\n 0\" class=\"settle-bar\">\r\n \r\n ✓\r\n 全选\r\n \r\n \r\n 合计:¥{{ cartStore.totalAmount.toFixed(2) }}\r\n \r\n 下单({{ cartStore.checkedItems.length }})\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'F:/gitCode/uniapp/JewelryMall/miniprogram/pages/cart/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["useCartStore","ref","computed","uni","onMounted"],"mappings":";;;;;;AAyDA,MAAA,qBAA+B,MAAA;;;;AAG/B,UAAM,YAAYA,WAAAA;AACZ,UAAA,aAAaC,kBAAI,KAAK;AAE5B,UAAM,eAAeC,cAAA;AAAA,MAAS,MAC5B,UAAU,MAAM,SAAS,KAAK,UAAU,MAAM,MAAM,CAAC,SAAS,KAAK,OAAO;AAAA,IAAA;AAG5E,aAAS,YAAY,MAAgB;AAC/B,UAAA,KAAK,WAAW,GAAG;AACrB,kBAAU,eAAe,KAAK,IAAI,KAAK,WAAW,CAAC;AAAA,MACrD;AAAA,IACF;AAEA,aAAS,eAAe;AAClB,UAAA,UAAU,aAAa,WAAW,GAAG;AACvCC,sBAAA,MAAI,UAAU,EAAE,OAAO,UAAU,MAAM,QAAQ;AAC/C;AAAA,MACF;AACM,YAAA,QAAQA,cAAAA,MAAI,eAAe,OAAO;AACxC,UAAI,CAAC,OAAO;AACVA,sBAAAA,MAAI,WAAW,EAAE,KAAK,qBAAsB,CAAA;AAC5C;AAAA,MACF;AACAA,oBAAAA,MAAI,WAAW,EAAE,KAAK,sBAAuB,CAAA;AAAA,IAC/C;AAEA,aAAS,SAAS;AAChBA,oBAAAA,MAAI,UAAU,EAAE,KAAK,qBAAsB,CAAA;AAAA,IAC7C;AAEAC,kBAAAA,UAAU,MAAM;AACd,gBAAU,UAAU;AAAA,IAAA,CACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3FD,GAAG,WAAW,eAAe;"}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/index.js.map b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/index.js.map
new file mode 100644
index 00000000..1f85c6cf
--- /dev/null
+++ b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sources":["pages/login/index.vue","../../../../Software/HBuilderX.4.76.2025082103/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vaW5kZXgudnVl"],"sourcesContent":["\r\n \r\n \r\n\r\n \r\n \r\n \r\n 暂不登录,先逛逛\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'F:/gitCode/uniapp/JewelryMall/miniprogram/pages/login/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","useUserStore","autoLogin","uni"],"mappings":";;;;;;;;AAwBM,UAAA,UAAUA,kBAAI,KAAK;AACzB,UAAM,YAAYC,WAAAA;AAElB,mBAAe,cAAc;AAC3B,UAAI,QAAQ;AAAO;AACnB,cAAQ,QAAQ;AACZ,UAAA;AACF,cAAMC,cAAU,UAAA;AAChB,cAAM,UAAU;AAChBC,sBAAA,MAAI,UAAU,EAAE,OAAO,QAAQ,MAAM,WAAW;AAChD,mBAAW,MAAM;AACfA,wBAAAA,MAAI,aAAa,EAAE,OAAO,GAAG,MAAM,MAAM;AACvCA,0BAAAA,MAAI,UAAU,EAAE,KAAK,qBAAsB,CAAA;AAAA,aAC3C;AAAA,WACD,GAAG;AAAA,MAAA,QACA;AACNA,sBAAA,MAAI,UAAU,EAAE,OAAO,YAAY,MAAM,QAAQ;AAAA,MAAA,UACjD;AACA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IACF;AAEA,aAAS,SAAS;AAChBA,oBAAAA,MAAI,aAAa,EAAE,OAAO,GAAG,MAAM,MAAM;AACvCA,sBAAAA,MAAI,UAAU,EAAE,KAAK,qBAAsB,CAAA;AAAA,SAC3C;AAAA,IACJ;;;;;;;;;;;;ACjDA,GAAG,WAAW,eAAe;"}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/mine/index.js.map b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/mine/index.js.map
index 02c14e62..2ab659fd 100644
--- a/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/mine/index.js.map
+++ b/miniprogram/unpackage/dist/dev/.sourcemap/mp-weixin/pages/mine/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sources":["pages/mine/index.vue","../../../../Software/HBuilderX.4.76.2025082103/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbWluZS9pbmRleC52dWU"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n {{ userStore.user?.nickname || '未登录' }}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'F:/gitCode/uniapp/JewelryMall/miniprogram/pages/mine/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["useUserStore","ref","onMounted","uni"],"mappings":";;;;;;AA0DA,MAAA,qBAA+B,MAAA;;;;AAE/B,UAAM,YAAYA,WAAAA;AACZ,UAAA,aAAaC,kBAAI,KAAK;AACtB,UAAA,YAAYA,kBAAI,KAAK;AAE3BC,kBAAAA,UAAU,MAAM;AAEd,gBAAU,aAAa;AAAA,IAAA,CACxB;AAED,aAAS,WAAW,KAAa;AAC3BC,oBAAAA,MAAA,WAAW,EAAE,IAAA,CAAK;AAAA,IACxB;AAEA,aAAS,cAAc,MAA0B;AACzC,YAAA,QAAQ,SAAS,SAAS,SAAS;AACzCA,oBAAAA,MAAI,UAAU;AAAA,QACZ;AAAA,QACA,SAAS,SAAS,SACd,sCACA;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,MAAA,CACd;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClFA,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"index.js","sources":["pages/mine/index.vue","../../../../Software/HBuilderX.4.76.2025082103/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbWluZS9pbmRleC52dWU"],"sourcesContent":["\r\n \r\n \r\n \r\n \r\n \r\n {{ isLoggedIn ? (userStore.user?.nickname || '微信用户') : '点击注册/登录' }}\r\n \r\n ›\r\n \r\n\r\n \r\n \r\n \r\n 我的订单 {{ orderCount }}\r\n ›\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'F:/gitCode/uniapp/JewelryMall/miniprogram/pages/mine/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["useUserStore","ref","uni","getOrderList","onShow"],"mappings":";;;;;;;;AAkEA,MAAA,qBAA+B,MAAA;;;;AAE/B,UAAM,YAAYA,WAAAA;AACZ,UAAA,aAAaC,kBAAI,KAAK;AACtB,UAAA,YAAYA,kBAAI,KAAK;AACrB,UAAA,aAAaA,kBAAI,CAAC;AAClB,UAAA,aAAaA,kBAAI,KAAK;AAE5B,aAAS,cAAc;AACf,YAAA,QAAQC,cAAAA,MAAI,eAAe,OAAO;AAC7B,iBAAA,QAAQ,CAAC,CAAC;AACrB,UAAI,OAAO;AACT,kBAAU,aAAa;AACVC,+BAAA,EAAE,KAAK,CAAC,SAAc;AACtB,qBAAA,QAAQ,MAAM,QAAQ,IAAI,IAAI,KAAK,UAAU,6BAAM,UAAS;AAAA,QAAA,CACxE,EAAE,MAAM,MAAM;AAAA,QAAA,CAAE;AAAA,MACnB;AAAA,IACF;AAEAC,kBAAAA,OAAO,MAAM;AACC;IAAA,CACb;AAED,aAAS,sBAAsB;AACzB,UAAA,CAAC,WAAW,OAAO;AACrBF,sBAAAA,MAAI,WAAW,EAAE,KAAK,qBAAsB,CAAA;AAAA,MAC9C;AAAA,IACF;AAEA,aAAS,WAAW,KAAa;AACzB,YAAA,QAAQA,cAAAA,MAAI,eAAe,OAAO;AACxC,UAAI,CAAC,OAAO;AACVA,sBAAAA,MAAI,WAAW,EAAE,KAAK,qBAAsB,CAAA;AAC5C;AAAA,MACF;AACIA,oBAAAA,MAAA,WAAW,EAAE,IAAA,CAAK;AAAA,IACxB;AAEA,aAAS,cAAc,MAA0B;AACzC,YAAA,QAAQ,SAAS,SAAS,SAAS;AACzCA,oBAAAA,MAAI,UAAU;AAAA,QACZ;AAAA,QACA,SAAS,SAAS,SACd,sCACA;AAAA,QACJ,YAAY;AAAA,QACZ,aAAa;AAAA,MAAA,CACd;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjHA,GAAG,WAAW,eAAe;"}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/app.js b/miniprogram/unpackage/dist/dev/mp-weixin/app.js
index d05b8a98..9b414eed 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/app.js
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/app.js
@@ -1,7 +1,6 @@
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const common_vendor = require("./common/vendor.js");
-const utils_request = require("./utils/request.js");
if (!Math) {
"./pages/index/index.js";
"./pages/product/detail.js";
@@ -13,22 +12,17 @@ if (!Math) {
"./pages/calculator/index.js";
"./pages/mine/index.js";
"./pages/address/index.js";
+ "./pages/login/index.js";
}
const _sfc_main = {
onLaunch() {
- common_vendor.index.__f__("log", "at App.vue:6", "App Launch");
- const token = common_vendor.index.getStorageSync("token");
- if (!token) {
- utils_request.autoLogin().catch((err) => {
- common_vendor.index.__f__("error", "at App.vue:11", "自动登录失败:", err);
- });
- }
+ common_vendor.index.__f__("log", "at App.vue:4", "App Launch");
},
onShow() {
- common_vendor.index.__f__("log", "at App.vue:16", "App Show");
+ common_vendor.index.__f__("log", "at App.vue:7", "App Show");
},
onHide() {
- common_vendor.index.__f__("log", "at App.vue:19", "App Hide");
+ common_vendor.index.__f__("log", "at App.vue:10", "App Hide");
}
};
function createApp() {
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/app.json b/miniprogram/unpackage/dist/dev/mp-weixin/app.json
index 8dc54694..66bb47eb 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/app.json
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/app.json
@@ -9,7 +9,8 @@
"pages/mold/index",
"pages/calculator/index",
"pages/mine/index",
- "pages/address/index"
+ "pages/address/index",
+ "pages/login/index"
],
"window": {
"navigationBarTextStyle": "black",
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/common/assets.js b/miniprogram/unpackage/dist/dev/mp-weixin/common/assets.js
index be03fa9c..9f73d75f 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/common/assets.js
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/common/assets.js
@@ -1,4 +1,16 @@
"use strict";
+const _imports_0$1 = "/static/tab/me_s.png";
+const _imports_1 = "/static/ic_address.png";
+const _imports_2 = "/static/ic_customer.png";
+const _imports_3 = "/static/ic_about.png";
+const _imports_4 = "/static/ic_agreement1.png";
+const _imports_5 = "/static/ic_agreement2.png";
const _imports_0 = "/static/logo.png";
-exports._imports_0 = _imports_0;
+exports._imports_0 = _imports_0$1;
+exports._imports_0$1 = _imports_0;
+exports._imports_1 = _imports_1;
+exports._imports_2 = _imports_2;
+exports._imports_3 = _imports_3;
+exports._imports_4 = _imports_4;
+exports._imports_5 = _imports_5;
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/assets.js.map
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/common/vendor.js b/miniprogram/unpackage/dist/dev/mp-weixin/common/vendor.js
index 0cbaf722..0cc6420b 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/common/vendor.js
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/common/vendor.js
@@ -7041,7 +7041,7 @@ function isConsoleWritable() {
function initRuntimeSocketService() {
const hosts = "172.31.144.1,192.168.21.7,192.168.195.32,127.0.0.1";
const port = "8090";
- const id = "mp-weixin_oR94fT";
+ const id = "mp-weixin_ucp1tM";
const lazy = typeof swan !== "undefined";
let restoreError = lazy ? () => {
} : initOnError();
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/components/CustomerServiceBtn.js b/miniprogram/unpackage/dist/dev/mp-weixin/components/CustomerServiceBtn.js
index e90a4b84..f9c5f314 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/components/CustomerServiceBtn.js
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/components/CustomerServiceBtn.js
@@ -12,7 +12,7 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
return common_vendor.e({
a: _ctx.mode === "qrcode"
}, _ctx.mode === "qrcode" ? {
- b: common_assets._imports_0,
+ b: common_assets._imports_0$1,
c: common_vendor.o(($event) => _ctx.$emit("close")),
d: common_vendor.o(() => {
}),
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/pages/cart/index.js b/miniprogram/unpackage/dist/dev/mp-weixin/pages/cart/index.js
index 0cb9468a..8f7184a8 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/pages/cart/index.js
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/pages/cart/index.js
@@ -23,6 +23,11 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
common_vendor.index.showToast({ title: "请先选择商品", icon: "none" });
return;
}
+ const token = common_vendor.index.getStorageSync("token");
+ if (!token) {
+ common_vendor.index.navigateTo({ url: "/pages/login/index" });
+ return;
+ }
common_vendor.index.navigateTo({ url: "/pages/order/submit" });
}
function goHome() {
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.js b/miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.js
new file mode 100644
index 00000000..b97d543b
--- /dev/null
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.js
@@ -0,0 +1,47 @@
+"use strict";
+const common_vendor = require("../../common/vendor.js");
+const common_assets = require("../../common/assets.js");
+const utils_request = require("../../utils/request.js");
+const store_user = require("../../store/user.js");
+const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
+ __name: "index",
+ setup(__props) {
+ const loading = common_vendor.ref(false);
+ const userStore = store_user.useUserStore();
+ async function handleLogin() {
+ if (loading.value)
+ return;
+ loading.value = true;
+ try {
+ await utils_request.autoLogin();
+ await userStore.fetchProfile();
+ common_vendor.index.showToast({ title: "登录成功", icon: "success" });
+ setTimeout(() => {
+ common_vendor.index.navigateBack({ delta: 1, fail: () => {
+ common_vendor.index.switchTab({ url: "/pages/index/index" });
+ } });
+ }, 500);
+ } catch {
+ common_vendor.index.showToast({ title: "登录失败,请重试", icon: "none" });
+ } finally {
+ loading.value = false;
+ }
+ }
+ function goBack() {
+ common_vendor.index.navigateBack({ delta: 1, fail: () => {
+ common_vendor.index.switchTab({ url: "/pages/index/index" });
+ } });
+ }
+ return (_ctx, _cache) => {
+ return {
+ a: common_assets._imports_0$1,
+ b: loading.value,
+ c: common_vendor.o(handleLogin),
+ d: common_vendor.o(goBack)
+ };
+ };
+ }
+});
+const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-d08ef7d4"]]);
+wx.createPage(MiniProgramPage);
+//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/login/index.js.map
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.json b/miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.json
new file mode 100644
index 00000000..e301e431
--- /dev/null
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.json
@@ -0,0 +1,4 @@
+{
+ "navigationBarTitleText": "登录",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.wxml b/miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.wxml
new file mode 100644
index 00000000..8e6ba6c0
--- /dev/null
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.wxml
@@ -0,0 +1 @@
+暂不登录,先逛逛
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.wxss b/miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.wxss
new file mode 100644
index 00000000..bd23d7fa
--- /dev/null
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/pages/login/index.wxss
@@ -0,0 +1,53 @@
+
+.login-page.data-v-d08ef7d4 {
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ background: #fff;
+ padding: 0 60rpx;
+}
+.login-header.data-v-d08ef7d4 {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin-bottom: 120rpx;
+}
+.login-logo.data-v-d08ef7d4 {
+ width: 160rpx;
+ height: 160rpx;
+ margin-bottom: 30rpx;
+}
+.login-title.data-v-d08ef7d4 {
+ font-size: 40rpx;
+ font-weight: bold;
+ color: #333;
+ margin-bottom: 16rpx;
+}
+.login-desc.data-v-d08ef7d4 {
+ font-size: 26rpx;
+ color: #999;
+}
+.login-actions.data-v-d08ef7d4 {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+.login-btn.data-v-d08ef7d4 {
+ width: 100%;
+ height: 88rpx;
+ line-height: 88rpx;
+ background: #e4393c;
+ color: #fff;
+ font-size: 32rpx;
+ border-radius: 44rpx;
+ border: none;
+ text-align: center;
+}
+.login-skip.data-v-d08ef7d4 {
+ margin-top: 32rpx;
+ font-size: 26rpx;
+ color: #999;
+}
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.js b/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.js
index 29e9fba6..dcfdf207 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.js
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.js
@@ -1,6 +1,8 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
+const common_assets = require("../../common/assets.js");
const store_user = require("../../store/user.js");
+const api_order = require("../../api/order.js");
if (!Math) {
CustomerServiceBtn();
}
@@ -11,14 +13,37 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
const userStore = store_user.useUserStore();
const showQrCode = common_vendor.ref(false);
const showAbout = common_vendor.ref(false);
- common_vendor.onMounted(() => {
- userStore.fetchProfile();
+ const orderCount = common_vendor.ref(0);
+ const isLoggedIn = common_vendor.ref(false);
+ function refreshData() {
+ const token = common_vendor.index.getStorageSync("token");
+ isLoggedIn.value = !!token;
+ if (token) {
+ userStore.fetchProfile();
+ api_order.getOrderList().then((data) => {
+ orderCount.value = Array.isArray(data) ? data.length : (data == null ? void 0 : data.total) || 0;
+ }).catch(() => {
+ });
+ }
+ }
+ common_vendor.onShow(() => {
+ refreshData();
});
+ function handleUserCardClick() {
+ if (!isLoggedIn.value) {
+ common_vendor.index.navigateTo({ url: "/pages/login/index" });
+ }
+ }
function navigateTo(url) {
+ const token = common_vendor.index.getStorageSync("token");
+ if (!token) {
+ common_vendor.index.navigateTo({ url: "/pages/login/index" });
+ return;
+ }
common_vendor.index.navigateTo({ url });
}
function showAgreement(type) {
- const title = type === "user" ? "用户协议" : "隐私政策";
+ const title = type === "user" ? "用户协议" : "隐私协议";
common_vendor.index.showModal({
title,
content: type === "user" ? "欢迎使用珠宝商城小程序。使用本小程序即表示您同意遵守相关服务条款。" : "我们重视您的隐私保护。我们仅收集必要的信息以提供服务,不会向第三方泄露您的个人信息。",
@@ -30,26 +55,34 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
var _a, _b;
return common_vendor.e({
a: ((_a = common_vendor.unref(userStore).user) == null ? void 0 : _a.avatar) || "/static/logo.png",
- b: common_vendor.t(((_b = common_vendor.unref(userStore).user) == null ? void 0 : _b.nickname) || "未登录"),
- c: common_vendor.o(($event) => navigateTo("/pages/order/list")),
- d: common_vendor.o(($event) => navigateTo("/pages/address/index")),
- e: common_vendor.o(($event) => showQrCode.value = true),
- f: common_vendor.o(($event) => showAbout.value = true),
- g: common_vendor.o(($event) => showAgreement("user")),
- h: common_vendor.o(($event) => showAgreement("privacy")),
- i: showQrCode.value
+ b: common_vendor.t(isLoggedIn.value ? ((_b = common_vendor.unref(userStore).user) == null ? void 0 : _b.nickname) || "微信用户" : "点击注册/登录"),
+ c: common_vendor.o(handleUserCardClick),
+ d: common_assets._imports_0,
+ e: common_vendor.t(orderCount.value),
+ f: common_vendor.o(($event) => navigateTo("/pages/order/list")),
+ g: common_assets._imports_1,
+ h: common_vendor.o(($event) => navigateTo("/pages/address/index")),
+ i: common_assets._imports_2,
+ j: common_vendor.o(($event) => showQrCode.value = true),
+ k: common_assets._imports_3,
+ l: common_vendor.o(($event) => showAbout.value = true),
+ m: common_assets._imports_4,
+ n: common_vendor.o(($event) => showAgreement("user")),
+ o: common_assets._imports_5,
+ p: common_vendor.o(($event) => showAgreement("privacy")),
+ q: showQrCode.value
}, showQrCode.value ? {
- j: common_vendor.o(($event) => showQrCode.value = false),
- k: common_vendor.p({
+ r: common_vendor.o(($event) => showQrCode.value = false),
+ s: common_vendor.p({
mode: "qrcode"
})
} : {}, {
- l: showAbout.value
+ t: showAbout.value
}, showAbout.value ? {
- m: common_vendor.o(($event) => showAbout.value = false),
- n: common_vendor.o(() => {
+ v: common_vendor.o(($event) => showAbout.value = false),
+ w: common_vendor.o(() => {
}),
- o: common_vendor.o(($event) => showAbout.value = false)
+ x: common_vendor.o(($event) => showAbout.value = false)
} : {});
};
}
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxml b/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxml
index d5390f2c..f0efcc34 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxml
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxml
@@ -1 +1 @@
-{{b}}
\ No newline at end of file
+{{b}}›我的订单 {{e}}›
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxss b/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxss
index 5106c39a..ef661267 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxss
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/pages/mine/index.wxss
@@ -2,43 +2,87 @@
.mine-page.data-v-569e925a {
min-height: 100vh;
background: #f5f5f5;
+ padding-top: 20rpx;
}
+
+/* 用户卡片 */
.user-card.data-v-569e925a {
display: flex;
align-items: center;
- background: #e4393c;
- padding: 60rpx 32rpx 40rpx;
+ background: #fff;
+ margin: 0 24rpx;
+ padding: 32rpx;
+ border-radius: 16rpx;
}
.user-card__avatar.data-v-569e925a {
- width: 120rpx;
- height: 120rpx;
+ width: 96rpx;
+ height: 96rpx;
border-radius: 50%;
- border: 4rpx solid rgba(255, 255, 255, 0.5);
- background: #fff;
+ background: #f0f0f0;
+ flex-shrink: 0;
}
.user-card__info.data-v-569e925a {
+ flex: 1;
margin-left: 24rpx;
}
.user-card__name.data-v-569e925a {
- font-size: 34rpx;
- color: #fff;
+ font-size: 32rpx;
+ color: #333;
font-weight: bold;
}
+.user-card__arrow.data-v-569e925a {
+ font-size: 36rpx;
+ color: #ccc;
+}
+
+/* 我的订单入口 */
+.order-entry.data-v-569e925a {
+ display: flex;
+ align-items: center;
+ margin: 20rpx 24rpx 0;
+ padding: 24rpx 32rpx;
+ background: linear-gradient(135deg, #fce4ec, #f8bbd0);
+ border-radius: 16rpx;
+}
+.order-entry__icon.data-v-569e925a {
+ width: 40rpx;
+ height: 40rpx;
+ margin-right: 16rpx;
+}
+.order-entry__text.data-v-569e925a {
+ flex: 1;
+ font-size: 28rpx;
+ color: #333;
+ font-weight: bold;
+}
+.order-entry__arrow.data-v-569e925a {
+ font-size: 32rpx;
+ color: #999;
+}
+
+/* 功能菜单 */
.menu-group.data-v-569e925a {
background: #fff;
- margin-top: 16rpx;
+ margin: 20rpx 24rpx 0;
+ border-radius: 16rpx;
+ overflow: hidden;
}
.menu-item.data-v-569e925a {
display: flex;
- justify-content: space-between;
align-items: center;
- padding: 28rpx 32rpx;
- border-bottom: 1rpx solid #f0f0f0;
+ padding: 30rpx 32rpx;
+ border-bottom: 1rpx solid #f5f5f5;
}
.menu-item.data-v-569e925a:last-child {
border-bottom: none;
}
+.menu-item__icon.data-v-569e925a {
+ width: 40rpx;
+ height: 40rpx;
+ margin-right: 20rpx;
+}
.menu-item__label.data-v-569e925a {
+ flex: 1;
font-size: 28rpx;
color: #333;
}
@@ -46,6 +90,8 @@
font-size: 32rpx;
color: #ccc;
}
+
+/* 弹窗 */
.modal-mask.data-v-569e925a {
position: fixed;
top: 0;
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/project.config.json b/miniprogram/unpackage/dist/dev/mp-weixin/project.config.json
index 3398aad3..eac7e035 100644
--- a/miniprogram/unpackage/dist/dev/mp-weixin/project.config.json
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/project.config.json
@@ -9,12 +9,11 @@
"postcss": false,
"minified": true,
"newFeature": true,
- "bigPackageSizeSupport": true,
- "minifyWXML": true
+ "bigPackageSizeSupport": true
},
"compileType": "miniprogram",
"libVersion": "",
- "appid": "touristappid",
+ "appid": "wx58b02b73d9c26c10",
"projectname": "miniprogram",
"condition": {
"search": {
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/project.private.config.json b/miniprogram/unpackage/dist/dev/mp-weixin/project.private.config.json
new file mode 100644
index 00000000..b32aafab
--- /dev/null
+++ b/miniprogram/unpackage/dist/dev/mp-weixin/project.private.config.json
@@ -0,0 +1,5 @@
+{
+ "setting": {
+ "urlCheck": false
+ }
+}
\ No newline at end of file
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_about.png b/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_about.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5330e9c6f9c644cfa1f2e20ab70a8331503089c
GIT binary patch
literal 2336
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
h00006NklQP)0-n
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
AkpKVy
literal 0
HcmV?d00001
diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_agreement2.png b/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_agreement2.png
new file mode 100644
index 0000000000000000000000000000000000000000..045086c7e41d1eec580774c08f3fc91ed9d6e803
GIT binary patch
literal 1497
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
IM6N<$g8X?Ky8r+H
literal 0
HcmV?d00001
diff --git a/server/src/controllers/auth.ts b/server/src/controllers/auth.ts
index d384e100..d318e305 100644
--- a/server/src/controllers/auth.ts
+++ b/server/src/controllers/auth.ts
@@ -25,9 +25,10 @@ export async function wxLogin(req: Request, res: Response): Promise {
},
})
- const { openid } = wxRes.data
+ const { openid, errcode, errmsg } = wxRes.data
if (!openid) {
- res.status(400).json({ code: 400, message: '微信登录失败,请重试' })
+ console.error('WeChat jscode2session failed:', { errcode, errmsg })
+ res.status(400).json({ code: 400, message: errmsg || '微信登录失败,请重试' })
return
}