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 00000000..b5330e9c Binary files /dev/null and b/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_about.png differ diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_address.png b/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_address.png new file mode 100644 index 00000000..6f053070 Binary files /dev/null and b/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_address.png differ diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_agreement1.png b/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_agreement1.png new file mode 100644 index 00000000..5987085d Binary files /dev/null and b/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_agreement1.png differ 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 00000000..045086c7 Binary files /dev/null and b/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_agreement2.png differ diff --git a/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_customer.png b/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_customer.png new file mode 100644 index 00000000..5ed80093 Binary files /dev/null and b/miniprogram/unpackage/dist/dev/mp-weixin/static/ic_customer.png differ 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 }