From bd9a5f75b0d96e831b3f02f40f6968cc151c017c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=94=B0=E9=A6=99=E7=90=AA?= <624506849@qq.com> Date: Fri, 3 Jul 2026 18:29:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=BC=BA=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=A4=84=E7=90=86=E4=B8=8E=E7=BB=84=E4=BB=B6=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20-=20=E5=9C=A8=20App.vue=20=E4=B8=AD?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20JSON=20=E8=A7=A3=E6=9E=90=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=A4=84=E7=90=86=EF=BC=8C=E7=A1=AE=E4=BF=9D=E7=AB=99?= =?UTF-8?q?=E7=82=B9=E4=BF=A1=E6=81=AF=E8=8E=B7=E5=8F=96=E7=9A=84=E7=A8=B3?= =?UTF-8?q?=E5=AE=9A=E6=80=A7=E3=80=82=20-=20=E6=9B=B4=E6=96=B0=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=20API=20=E8=AF=B7=E6=B1=82=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=20loading=20=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86=EF=BC=8C?= =?UTF-8?q?=E6=8F=90=E5=8D=87=E7=94=A8=E6=88=B7=E4=BD=93=E9=AA=8C=E3=80=82?= =?UTF-8?q?=20-=20=E5=9C=A8=20Search.vue=20=E4=B8=AD=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=83=AD=E8=AF=8D=E5=88=97=E8=A1=A8=E7=9A=84=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E5=A2=9E=E5=BC=BA=E5=AE=B9=E9=94=99?= =?UTF-8?q?=E6=80=A7=E3=80=82=20-=20=E6=94=B9=E8=BF=9B=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6=E3=80=81=E5=9C=B0=E5=9D=80=E7=AE=A1=E7=90=86=E7=AD=89?= =?UTF-8?q?=20API=20=E8=AF=B7=E6=B1=82=E5=8F=82=E6=95=B0=EF=BC=8C=E7=A1=AE?= =?UTF-8?q?=E4=BF=9D=E4=B8=80=E8=87=B4=E6=80=A7=E4=B8=8E=E5=8F=AF=E7=94=A8?= =?UTF-8?q?=E6=80=A7=E3=80=82=20-=20=E6=96=B0=E5=A2=9E=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=E5=B8=83=E5=B1=80=E7=BB=84=E4=BB=B6=EF=BC=8C?= =?UTF-8?q?=E6=8F=90=E5=8D=87=E7=94=A8=E6=88=B7=E7=95=8C=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E4=B8=80=E8=87=B4=E6=80=A7=E4=B8=8E=E5=8F=AF=E8=AF=BB=E6=80=A7?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buyer/src/App.vue | 10 +- buyer/src/api/account.js | 3 +- buyer/src/api/address.js | 9 +- buyer/src/api/cart.js | 3 +- buyer/src/api/common.js | 3 +- buyer/src/api/goods.js | 2 + buyer/src/api/member.js | 3 +- buyer/src/components/Search.vue | 16 +- buyer/src/components/advertising/FixedTop.vue | 2 +- buyer/src/components/global.js | 2 + buyer/src/components/header/Header.vue | 44 +++- .../indexDecorate/ModelFormItem.vue | 4 +- .../indexDecorate/modelList/NewGoodsSort.vue | 82 ++++--- .../indexDecorate/modelList/Recommend.vue | 16 +- .../indexDecorate/modelList/forYour.vue | 38 ++- .../indexDecorate/modelList/mixModel.vue | 1 + .../modelList/mixs/mix-brand.vue | 171 +++++++------- .../modelList/mixs/mix-goods.vue | 162 +++++++------ .../modelList/oneRowThreeColumns.vue | 19 +- buyer/src/components/nav/CateNav.vue | 2 +- buyer/src/components/userCenter/Layout.vue | 144 ++++++++++++ buyer/src/main.js | 1 + buyer/src/pages/GoodsDetail.vue | 6 +- buyer/src/pages/GoodsList.vue | 26 ++- buyer/src/pages/Index.vue | 41 ++-- buyer/src/pages/Merchant.vue | 206 +++++++++------- .../pages/home/memberCenter/AccountSafe.vue | 95 +++++--- .../pages/home/memberCenter/CommentList.vue | 29 ++- .../home/memberCenter/ComplainDetail.vue | 7 +- .../pages/home/memberCenter/ComplainList.vue | 52 +++-- .../pages/home/memberCenter/Distribution.vue | 9 +- .../src/pages/home/memberCenter/Favorites.vue | 125 +++++++--- .../pages/home/memberCenter/MemberGrade.vue | 32 ++- .../src/pages/home/memberCenter/ModifyPwd.vue | 3 +- buyer/src/pages/home/memberCenter/Point.vue | 29 ++- buyer/src/pages/home/memberCenter/Profile.vue | 70 ++++-- .../home/memberCenter/evaluation/AddEval.vue | 49 +++- .../memberCenter/evaluation/EvalDetail.vue | 7 +- .../home/memberCenter/memberMsg/MsgList.vue | 51 ++-- .../src/pages/home/orderCenter/AddAddress.vue | 10 +- .../src/pages/home/orderCenter/AfterSale.vue | 13 +- .../home/orderCenter/AfterSaleDetail.vue | 25 +- .../pages/home/orderCenter/ApplyAfterSale.vue | 94 +++++--- buyer/src/pages/home/orderCenter/Complain.vue | 111 ++++++--- .../src/pages/home/orderCenter/MyAddress.vue | 94 +++++--- buyer/src/pages/home/orderCenter/MyOrder.vue | 144 +++++++++--- .../pages/home/orderCenter/OrderDetail.vue | 3 +- buyer/src/pages/home/userCenter/Coupons.vue | 40 +++- .../pages/home/userCenter/MoneyManagement.vue | 32 ++- .../src/pages/home/userCenter/MyGiftCards.vue | 9 +- buyer/src/pages/home/userCenter/MyTracks.vue | 10 +- buyer/src/pages/shopEntry/FirstApply.vue | 221 ++++++++++++------ buyer/src/pages/shopEntry/SecondApply.vue | 1 + buyer/src/pages/shopEntry/ShopEntry.vue | 1 + buyer/src/pages/shopEntry/ThirdApply.vue | 201 ++++++++++------ buyer/src/pages/user/Home.vue | 4 +- buyer/src/plugins/request.js | 107 +++++---- buyer/src/router/index.js | 8 +- buyer/src/utils/message.js | 22 +- buyer/src/vuex/store.js | 9 +- .../components/lili-dialog/goods-dialog.vue | 8 + manager/src/components/lili-dialog/style.scss | 8 +- .../lili-dialog/template/category.vue | 55 +++-- .../views/page-decoration/modelFormItem.vue | 8 +- .../page-decoration/modelList/mixModel.vue | 79 +++++-- .../modelList/mixs/mix-brand.vue | 167 +++++++------ .../modelList/mixs/mix-goods.vue | 159 +++++++------ .../modelList/newGoodsSort.vue | 82 ++++--- .../modelList/onlyGoodsModel.vue | 11 + .../page-decoration/modelList/recommend.vue | 16 +- manager/src/views/seller/shop/shopDetail.vue | 54 +++-- .../src/views/sys/oss-manage/ossManage.scss | 13 +- .../src/views/sys/oss-manage/ossManage.vue | 23 +- seller/src/views/shop/modelForm.vue | 3 +- seller/src/views/shop/modelFormItem.vue | 44 ++-- .../src/views/shop/modelList/newGoodsSort.vue | 82 ++++--- seller/src/views/shop/modelList/recommend.vue | 18 +- .../src/views/sys/oss-manage/ossManage.scss | 3 + seller/src/views/sys/oss-manage/ossManage.vue | 23 +- 79 files changed, 2382 insertions(+), 1207 deletions(-) create mode 100644 buyer/src/components/userCenter/Layout.vue diff --git a/buyer/src/App.vue b/buyer/src/App.vue index d88adcfb..ea59df2a 100644 --- a/buyer/src/App.vue +++ b/buyer/src/App.vue @@ -46,10 +46,14 @@ export default { getSite() { getBaseSite().then((res) => { if (res.success && res.result.settingValue) { - const data = JSON.parse(res.result.settingValue); - this.applySiteInfo(data); + try { + const data = JSON.parse(res.result.settingValue); + this.applySiteInfo(data); + } catch { + // 站点配置解析失败时使用缓存 + } } - }); + }).catch(() => {}); }, }, }; diff --git a/buyer/src/api/account.js b/buyer/src/api/account.js index ca80a7f6..b7b133b1 100644 --- a/buyer/src/api/account.js +++ b/buyer/src/api/account.js @@ -44,7 +44,8 @@ export function editMemberInfo (params) { url: '/buyer/passport/member/editOwn', method: Method.PUT, needToken: true, - data: params + data: params, + loading: false }) } diff --git a/buyer/src/api/address.js b/buyer/src/api/address.js index 6de478f4..a522bc32 100644 --- a/buyer/src/api/address.js +++ b/buyer/src/api/address.js @@ -17,7 +17,8 @@ export function newMemberAddress (params) { url: '/buyer/member/address', needToken: true, method: Method.POST, - data: params + data: params, + loading: false }); } @@ -27,7 +28,8 @@ export function editMemberAddress (params) { url: '/buyer/member/address', needToken: true, method: Method.PUT, - params + params, + loading: false }); } @@ -36,7 +38,8 @@ export function delMemberAddress (id) { return request({ url: `/buyer/member/address/delById/${id}`, needToken: true, - method: Method.DELETE + method: Method.DELETE, + loading: false }); } diff --git a/buyer/src/api/cart.js b/buyer/src/api/cart.js index e2ab9f50..4e77ab1a 100644 --- a/buyer/src/api/cart.js +++ b/buyer/src/api/cart.js @@ -20,7 +20,8 @@ export function cartGoodsAll () { return request({ url: '/buyer/trade/carts/all', method: Method.GET, - needToken: true + needToken: true, + loading: false }); } diff --git a/buyer/src/api/common.js b/buyer/src/api/common.js index 8c579162..b3e5e630 100644 --- a/buyer/src/api/common.js +++ b/buyer/src/api/common.js @@ -38,7 +38,8 @@ export function getRegion (id) { return request({ url: `${commonUrl}/common/common/region/item/${id}`, needToken: true, - method: Method.GET + method: Method.GET, + loading: false }); } diff --git a/buyer/src/api/goods.js b/buyer/src/api/goods.js index d38d97e4..89dbd28f 100644 --- a/buyer/src/api/goods.js +++ b/buyer/src/api/goods.js @@ -8,6 +8,7 @@ export function goodsList (params) { url: '/buyer/goods/goods/es', method: Method.GET, needToken: false, + optionalToken: true, params }); } @@ -18,6 +19,7 @@ export function filterList (params) { url: '/buyer/goods/goods/es/related', method: Method.GET, needToken: false, + optionalToken: true, params }); } diff --git a/buyer/src/api/member.js b/buyer/src/api/member.js index 7cce873e..0106de9d 100644 --- a/buyer/src/api/member.js +++ b/buyer/src/api/member.js @@ -298,7 +298,8 @@ export function cancelAfterSale (afterSaleSn) { return request({ url: `/buyer/order/afterSale/cancel/${afterSaleSn}`, method: Method.POST, - needToken: true + needToken: true, + loading: false }); } diff --git a/buyer/src/components/Search.vue b/buyer/src/components/Search.vue index da62267f..f5b47e1e 100644 --- a/buyer/src/components/Search.vue +++ b/buyer/src/components/Search.vue @@ -128,10 +128,14 @@ export default { }, computed: { promotionTags() { - if (this.$store.state.hotWordsList) { - return JSON.parse(this.$store.state.hotWordsList) - } else { - return [] + const raw = this.$store.state.hotWordsList; + if (!raw) { + return []; + } + try { + return typeof raw === "string" ? JSON.parse(raw) : raw; + } catch { + return []; } } }, @@ -145,12 +149,12 @@ export default { if (!reloadTime) { hotWords({count: 5}).then(res => { if (res.success && res.result) storage.setItem('hotWordsList', res.result) - }) + }).catch(() => {}) storage.setItem('hotWordsReloadTime', new Date().getTime()) } else if (reloadTime && time > reloadTime) { hotWords({count: 5}).then(res => { if (res.success && res.result) storage.setItem('hotWordsList', res.result) - }) + }).catch(() => {}) storage.setItem('hotWordsReloadTime', new Date().getTime()) } } diff --git a/buyer/src/components/advertising/FixedTop.vue b/buyer/src/components/advertising/FixedTop.vue index 1d080c03..7eed5e7a 100644 --- a/buyer/src/components/advertising/FixedTop.vue +++ b/buyer/src/components/advertising/FixedTop.vue @@ -1,6 +1,6 @@