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 @@ \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\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\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","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","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","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 zrX@$&Te;i4${DF`luETnxJC#xCe{QM>_KQFEj4gW^=N{E_O7@0y*@MF?)`OtZtuPY zY?#bDGvEBa&&)gTygRcFKIHBS!2kCJzOsT>RyqCG z^c2d1r!<^+R@Wy#F>UTA(Lu=pYW>bijU-}FYz8C<<3zrJVLeHp>$N^wX|hU1B?G8S zqd{HQxeC>(UO>X|+!;olBtWE^v<=mB&5Ewqwef0{!1)ePTRP`ynBrJB_XJeCAh^cz zt=f&D)J+l#g#c#}%l6xR!5oNeL!kV$Mv|@C((!ql?^EDRw;yew;s__crs2dB8crU8 zqi;d5nUn^GlLWIu+8Xbc_BDNGJc)hhul)WZ_vBK3_mGUA#b5&*=Z_jmm{om3BOP~Y zeXGf5(bRlSfL6qschpfi+`s{sFuq44olOMss78`W#s@W$=tmV!Lu5B;BLs_Jou&w? zo3vcoLe~<^^EP`zAhE`mxuSQ#ThS*8_^ek&Y9X=_aJn&bM!!aqy&Ui7B#xa}Nh!Ha z*CrMjjcg{^Ym+_93eYG9ES!6U8n2hi;ZJ}ZV*CObXonyQpn)-GUuH9%_FOq=7wbHL zL7h!dcavU97v_!9EBY|bmt75!+c{P{>7>_4jAE*T-~kfHmR*#R{RoKR@06Kf0zatS z^IrY&VOD^s95CWlH@+&r6axhC76(7XuTI840NlIaU=CMfK4~@S8A&w#i{(Xo=~_J? z+ZzsW)z^@&MX>xTO2G<_vxPAw0u*XS|G}6=M9D#G3ZXQ=xxkD*G8r>#9CV!Sftv6Jtt*5%*9P&R_T_T&X4S_Cn)j z2ROEsD`zFX>RoyATmKoGeJRt@_0TzqH~gJEyhFsZ(E`DBq#;0mjheoPB_2vhym1fdmlAK5f9zsYxi=zo0) z#O2D6Rd;X))%!~lji&fD&dX0)E=XI$FSxS5u?3=^D}}iF56}tH!XeA*9+i0bI8*t3 zO_8wF}ZuyhIt2QnWaCKd{PG%zJ6{ucxv9AEfkFI6ozw>+v zjXfBrt_l4lUja&N-5|y7v}I8Bvo?=S!y6YaWF^>RR`CqW< ze8Jf_?*ZgvFi!A06ZuKL1C)64E7Xjc{dYfqx2@#f{K!P6HS*IMo|P?t`z2e(Gg8_@ zr)=8Cz;}R_x0=2VsQkgE9ie8d`Y~5?zWrvPEl=MJ9X7xEKf|+fn2PB|;Tg#y-+f_# z&T!GUUet^!i8uU=jBm9ZE6NCHj!oNOI3toY1m1g;;JR&g34$B|hem&fs8c)Tam#0U z3MY35LsU%txr+;yj80lA%MW2TcSs-bv@+g-^4GIha=RB@hM{0_nyYg-ar%vPdR&wh zpjSg*u(9AqUO3%g)0a_TetwZ1?|4yk%b^dNgDlS+uqHWyM0p*co(<_@11>u^935pz zca5gUr*f_!?^?`~dkuM`Wq#X@Z+hvzyw#I?EeEPcjX`hIS%RDZy}G&?NUx$eZMm-I zyt)@NbSYiw@kDvEmriGi@&dH0D8dU_w&Y$!-CVv9F+Dk7l3E(>T+fbgB605ZIr6yI zrgH>&0opeI4*rNey=K##Ep6$%&89Cw;3+%Z;tj25ks9XhxA&DREC|qC#zKbgk&R4iHFJ21gb3ZQ8tvBqa8s#H4s5?O$mGhUqB)!+NZWTQnR6@YvdBFiZaG~Mtj zoPj+k;4HYADN`?FaP;7O-=+f1Mv5m5(6k`P9|F<^>trzkW%~+&^Vqk50DHU3uGnmncDb&@r-6X&g58l1j{0G88?ypXj)j?AI~iZO|L`@YHk zGEdP9P!{~XMiNVy=Zm)!7ASv(oq6DZV+hDnc`8)&BTvx)IVcQB^SZ>nlsRPi%q2a_ zr|an&1MK5|PS_ESleRN;KgIIqseof2m=ZwK&=7xtKL*HM0M0>BN!pCMPaW1s`}HW& zX@pPVk>sz~$8&6&dA8n$V{hM4tXQ)Bh@Tcf(~HC!_VTUHJYAbdQ9y+0z)=k+_DlvS z4TpII*Gg&l8-Nug+lfK9PWZ42ADk}$Gki#_p#v9!ynE3{ zMuFl+G9QKcLxDIaV2HaI5FQ<%5|JP*Fy-;13nUf_P4x*JS)8u`P5;KUlUU>99#HO2 z#jX*srb31k1I#yKy%DZ+4cn}iSd;mQmZ{-O>^r~=S02!Yy;MXGl0IqQ`CX-EbQW>X z*5X*-Oy)1+ifuI_o@wWI?D*YbuKw&hf4uRy{mY2iv*tX_RoTbNag8u^m0RR7f^M5%2000I_L_t&o05W?*o?#qMF#rGn07*qoM6N<$f?@Jy 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 }