From b1743cefb073ffc550975c6ef9f93e6239ff78d1 Mon Sep 17 00:00:00 2001 From: "pikachu1995@126.com" Date: Mon, 6 Jul 2026 13:53:54 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9Eindex.html?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=B9=B6=E6=9B=B4=E6=96=B0=E5=A4=9A=E4=B8=AA?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=A0=B7=E5=BC=8F=E5=92=8C=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- components/m-airbtn/index.vue | 3 +- components/m-canvas/index.vue | 3 +- components/m-goods-list/list.vue | 3 +- components/m-placard/index.vue | 6 +- components/verify-code/verify-code.vue | 56 ++++-- config/config.js | 2 +- index.html | 17 ++ pages/mine/set/editionIntro.vue | 56 ++++-- pages/mine/set/feedBack.vue | 156 ++++++++++++----- pages/mine/set/setUp.vue | 40 ++++- pages/navigation/search/search.scss | 29 +++- pages/navigation/search/searchPage.vue | 100 ++++++++++- pages/order/orderDetail.vue | 13 +- pages/passport/login.vue | 172 +++++++++++++------ pages/promotion/lives.vue | 229 +++++++++++++++---------- pages/promotion/point/detail.vue | 4 + pages/promotion/point/pointList.vue | 125 ++++++++++++-- pages/promotion/point/user.vue | 1 + pages/tabbar/cart/cartList.vue | 92 ++++++---- 20 files changed, 821 insertions(+), 288 deletions(-) create mode 100644 index.html diff --git a/README.md b/README.md index e6ad5a3..6ec9b08 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ LILISHOP 是基于 Spring Boot / Spring Cloud / Vue / Uniapp 开发的 Java 开 ### 1. 项目简介 **Lilishop** 是一款功能完善的B2B2C多商户商城系统,采用前后端分离架构,全端代码开源。 -后端基于 **SpringBoot3** 构建,具备高内聚、低耦合的特性,支持分布式部署。 +后端基于 **SpringBoot4** 构建,具备高内聚、低耦合的特性,支持分布式部署。 前端覆盖PC、H5、小程序和APP,基于 **Vue** 和 **uni-app** 开发。 - **官方网站**: diff --git a/components/m-airbtn/index.vue b/components/m-airbtn/index.vue index 72e40df..00566e1 100644 --- a/components/m-airbtn/index.vue +++ b/components/m-airbtn/index.vue @@ -15,12 +15,13 @@ + + diff --git a/pages/mine/set/editionIntro.vue b/pages/mine/set/editionIntro.vue index 5f60ca1..0fe7edb 100644 --- a/pages/mine/set/editionIntro.vue +++ b/pages/mine/set/editionIntro.vue @@ -14,17 +14,17 @@ - + - - - + + + - - - - + + + + @@ -131,21 +131,25 @@ export default { + diff --git a/pages/mine/set/feedBack.vue b/pages/mine/set/feedBack.vue index 09a0350..51b50c7 100644 --- a/pages/mine/set/feedBack.vue +++ b/pages/mine/set/feedBack.vue @@ -1,36 +1,55 @@ @@ -45,7 +64,15 @@ export default { storage, config, feedBack: { - type: "FUNCTION", //默认反馈问题为 '功能相关' + type: "FUNCTION", + context: "", + mobile: "", + }, + inputStyle: { + background: "#fafafa", + borderRadius: "12rpx", + padding: "0 24rpx", + height: "80rpx", }, uploadFileList: [], list: [ @@ -116,49 +143,86 @@ export default { diff --git a/pages/mine/set/setUp.vue b/pages/mine/set/setUp.vue index 3ee6382..1fa442e 100644 --- a/pages/mine/set/setUp.vue +++ b/pages/mine/set/setUp.vue @@ -14,21 +14,21 @@ - + - + - - + + @@ -148,12 +148,14 @@ export default { + diff --git a/pages/order/orderDetail.vue b/pages/order/orderDetail.vue index f5c54a1..90f2281 100644 --- a/pages/order/orderDetail.vue +++ b/pages/order/orderDetail.vue @@ -3,8 +3,8 @@
- {{ orderStatusMap[order.orderStatus].title }} -
{{ orderStatusMap[order.orderStatus].value }}
+ {{ orderStatusMap[order.orderStatus].title }} + {{ orderStatusMap[order.orderStatus].value }}
@@ -573,11 +573,14 @@ export default { color: #fff; width: 100%; text-align: center; - font-size: 30rpx; - font-weight: 500; margin-top: 36rpx; - >div { + .order-status-title { + font-size: 44rpx; + font-weight: 600; + } + + .order-status-desc { font-size: 22rpx; font-weight: normal; margin-top: 8rpx; diff --git a/pages/passport/login.vue b/pages/passport/login.vue index 0a72add..42a0b20 100644 --- a/pages/passport/login.vue +++ b/pages/passport/login.vue @@ -1,6 +1,6 @@ @@ -80,11 +134,14 @@ export default { }, onLoad() {}, async onPullDownRefresh() { + // #ifndef H5 this.categoryIndexData[this.tabIndex].goods = []; this.categoryIndexData[this.tabIndex].params.pageNumber = 1; this.categoryIndexData[this.tabIndex].loadStatus = "more"; this.loadGoods(); + // #endif }, + // #ifndef H5 onPageScroll(e) { if (e.scrollTop < -40 && this.flag) { this.flag = false; @@ -95,6 +152,7 @@ export default { this.loadGoods(); } }, + // #endif watch: { tabIndex(val) { if ( @@ -175,7 +233,9 @@ export default { }, 3000); } + // #ifndef H5 uni.stopPullDownRefresh(); + // #endif }, setCat(type) { this.tabIndex = type; @@ -189,12 +249,21 @@ export default { } }, loadMore() { - if (this.categoryIndexData[this.tabIndex].loadStatus == "more") { - this.categoryIndexData[this.tabIndex].params.pageNumber++; - this.loadGoods(); + if (this.categoryIndexData[this.tabIndex].loadStatus !== "more") { + return; } + this.categoryIndexData[this.tabIndex].params.pageNumber++; + this.loadGoods(); }, }, + // #ifdef H5 + onReachBottom() { + if (this.categoryIndexData[this.tabIndex].loadStatus !== 'more') { + return; + } + this.loadMore(); + }, + // #endif }; + diff --git a/pages/promotion/point/user.vue b/pages/promotion/point/user.vue index b10a8fb..20040ff 100644 --- a/pages/promotion/point/user.vue +++ b/pages/promotion/point/user.vue @@ -35,6 +35,7 @@ export default { .user-point { padding: 0 20rpx; height: 300rpx; + flex-shrink: 0; background: url("/static/point-bg.png") no-repeat; background-size: 100%; display: flex; diff --git a/pages/tabbar/cart/cartList.vue b/pages/tabbar/cart/cartList.vue index 98fb353..1f8c0d1 100644 --- a/pages/tabbar/cart/cartList.vue +++ b/pages/tabbar/cart/cartList.vue @@ -119,24 +119,24 @@ - -
-
- - 总计: - ¥{{ goodsFormatPrice(cartDetail.priceDetailDTO.flowPrice)[0] }}.{{ goodsFormatPrice(cartDetail.priceDetailDTO.flowPrice)[1] }} - - 总计:0.00 -
-
- 优惠减:¥{{(cartDetail.priceDetailDTO.goodsPrice -unitPrice(cartDetail.priceDetailDTO.flowPrice))}} - - 优惠明细 -
-
-
+ + + 总计: + + ¥ + {{ goodsFormatPrice(cartDetail.priceDetailDTO.flowPrice)[0] }} + .{{ goodsFormatPrice(cartDetail.priceDetailDTO.flowPrice)[1] }} + + ¥0.00 + + + 优惠减:¥{{ cartDetail.priceDetailDTO.goodsPrice - unitPrice(cartDetail.priceDetailDTO.flowPrice) }} + 优惠明细 + + @@ -851,7 +851,50 @@ page { } .checkout-total { - margin-left: 8rpx; + flex: 1; + min-width: 0; + display: flex; + flex-direction: column; + justify-content: center; + } + + .checkout-total-main { + display: flex; + align-items: baseline; + line-height: 1.2; + } + + .checkout-total-label { + font-size: 28rpx; + color: #333; + flex-shrink: 0; + } + + .checkout-total-price { + margin-left: 4rpx; + font-size: 30rpx; + font-weight: bold; + color: $main-color; + line-height: 1.2; + } + + .checkout-total-int { + font-size: 38rpx; + font-weight: bold; + } + + .checkout-total-dec { + font-size: 24rpx; + font-weight: bold; + } + + .checkout-total-discount { + display: flex; + align-items: center; + margin-top: 4rpx; + font-size: 24rpx; + color: #c9c7c7; + line-height: 1.2; } } @@ -889,17 +932,6 @@ page { } } -.prices { - display: flex; - flex-direction: column; - - > .discountPrice { - align-items: center; - display: flex; - font-size: 24rpx; - color: rgb(201, 199, 199); - } -} .discount-details { margin-left: 10px; color: #666; From 6198a6d2444e943bf359f72f642bebe4c3ee60a6 Mon Sep 17 00:00:00 2001 From: "pikachu1995@126.com" Date: Mon, 6 Jul 2026 14:15:06 +0800 Subject: [PATCH 2/2] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=A1=AB=E5=86=99=E9=A1=B5=E9=9D=A2=E5=92=8C=E8=AF=84?= =?UTF-8?q?=E4=BB=B7=E7=BB=84=E4=BB=B6=E7=9A=84=E9=80=BB=E8=BE=91=E4=B8=8E?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除不必要的返回监听逻辑,简化页面返回处理 - 更新不支持运费提示的显示方式,使用文本替代列表 - 改进评价组件的初始化逻辑,确保更好的用户体验 - 统一数据结构,提升代码可读性 --- App.vue | 28 +------ pages/order/fillorder.vue | 73 ++++++++----------- .../product/evaluation/-evaluation.vue | 20 +++-- 3 files changed, 47 insertions(+), 74 deletions(-) diff --git a/App.vue b/App.vue index 90fcdf4..caf4b61 100644 --- a/App.vue +++ b/App.vue @@ -33,34 +33,8 @@ import { /** - * 监听返回 + * 监听返回(页面级 onBackPress 在 App.vue 不生效,保留空实现避免误导) */ - onBackPress(e) { - console.log("onBackPress-APP", e); - if (e.from == "backbutton") { - let routes = getCurrentPages(); - let curRoute = routes[routes.length - 1].options; - routes.forEach((item) => { - if ( - item.route == "pages/tabbar/cart/cartList" || - item.route.indexOf("pages/product/goods") != -1 - ) { - uni.redirectTo({ - url: item.route, - }); - } - }); - - if (curRoute.addId) { - uni.reLaunch({ - url: "/pages/tabbar/cart/cartList", - }); - } else { - uni.navigateBack(); - } - return true; //阻止默认返回行为 - } - }, onLaunch: function(val) { if(val.query.inviter){ storage.setInviter(val.query.inviter) diff --git a/pages/order/fillorder.vue b/pages/order/fillorder.vue index f4da841..5257ebd 100644 --- a/pages/order/fillorder.vue +++ b/pages/order/fillorder.vue @@ -342,9 +342,8 @@
@@ -443,7 +442,7 @@ export default { masterWay: "", //团长信息 pintuanFlage: true, //是开团还是拼团 notSupportFreight: [], //不支持运费 - notSupportFreightGoodsList: ["以下商品超出配送范围:"], + notSupportFreightNoticeText: "", storeAddress: "", originOrderData:"", // 原始订单数据 @@ -466,29 +465,20 @@ export default { * 监听返回 */ onBackPress(e) { - console.log("onBackPress", e); if (e.from == "backbutton") { - let routes = getCurrentPages(); - let curRoute = routes[routes.length - 1].options; - routes.forEach((item) => { - if ( - item.route == "pages/tabbar/cart/cartList" || - item.route.indexOf("pages/product/goods") != -1 - ) { - uni.navigateTo({ - url: item.route, - }); - } - }); - console.log("curRoute.addId",curRoute.addId) + const curRoute = getCurrentPages().slice(-1)[0]?.options || {}; if (curRoute.addId) { uni.reLaunch({ url: "/pages/tabbar/cart/cartList", }); + } else if (this.routerVal?.way === "CART") { + uni.switchTab({ + url: "/pages/tabbar/cart/cartList", + }); } else { uni.navigateBack(); } - return true; //阻止默认返回行为 + return true; } }, @@ -500,18 +490,19 @@ export default { uni.showLoading({ mask: true, }); - await this.getOrderList(); - await this.getDistribution(); - if (this.$store.state.isShowToast) { + try { + await this.getOrderList(); + await this.getDistribution(); + if (this.routerVal.way == "PINTUAN") { + this.isAssemble = true; + this.routerVal.parentOrder = JSON.parse( + decodeURIComponent(this.routerVal.parentOrder) + ); + this.pintuanWay(); + } + } finally { uni.hideLoading(); } - if (this.routerVal.way == "PINTUAN") { - this.isAssemble = true; - this.routerVal.parentOrder = JSON.parse( - decodeURIComponent(this.routerVal.parentOrder) - ); - this.pintuanWay(); - } }, mounted() {}, @@ -780,33 +771,31 @@ export default { }, // 获取结算参数 - async getOrderList() { + getOrderList() { this.notSupportFreight = []; - // 获取结算参数 - API_Trade.getCheckoutParams(this.routerVal.way).then((res) => { + this.notSupportFreightNoticeText = ""; + return API_Trade.getCheckoutParams(this.routerVal.way).then((res) => { // 获取结算参数 进行首次判断 - this.originOrderData = this.orderMessage ? JSON.parse(JSON.stringify(this.orderMessage)) : "" - + this.originOrderData = this.orderMessage + ? JSON.parse(JSON.stringify(this.orderMessage)) + : null; + if ( !res.data.result.checkedSkuList || res.data.result.checkedSkuList.length === 0 ) { - - if(!this.originOrderData.checkedSkuList.length){ + if (!this.originOrderData?.checkedSkuList?.length) { uni.switchTab({ url: "/pages/tabbar/cart/cartList", }); } - } if (res.data.result.skuList.length <= 0) { - - if(!this.originOrderData.skuList.length){ + if (!this.originOrderData?.skuList?.length) { uni.navigateTo({ url: "/pages/order/myOrder?status=0", }); } - } let repeatData; @@ -849,9 +838,9 @@ export default { res.data.result.notSupportFreight.length != 0 ) { this.notSupportFreight = res.data.result.notSupportFreight; - + this.notSupportFreightNoticeText = "以下商品超出配送范围:"; res.data.result.notSupportFreight.forEach((item) => { - this.notSupportFreightGoodsList[0] += item.goodsSku.goodsName; + this.notSupportFreightNoticeText += item.goodsSku.goodsName; }); } }); diff --git a/pages/product/product/evaluation/-evaluation.vue b/pages/product/product/evaluation/-evaluation.vue index 5fa9a16..9832c0f 100644 --- a/pages/product/product/evaluation/-evaluation.vue +++ b/pages/product/product/evaluation/-evaluation.vue @@ -26,7 +26,7 @@ text-indent="0" :show-height="120" > - + @@ -70,7 +70,8 @@ export default { data() { return { lightColor: this.$lightColor, - commDetail: [], + commDetail: {}, + readMoreInited: {}, grade: "", params: { pageNumber: 1, @@ -106,18 +107,27 @@ export default { return typeof images === "string" ? images.split(",").filter(Boolean) : images; }, - parseLoaded(index) { + initReadMore(index) { + if (this.readMoreInited[index]) return; + this.readMoreInited[index] = true; this.$nextTick(() => { const refs = this.$refs.uReadMore; const target = Array.isArray(refs) ? refs[index] : refs; - target && target.init && target.init(); + target?.init?.(); }); }, getGoodsCommentsMethods() { if (!this.goodsDetail.goodsId) return; API_Members.getGoodsComments(this.goodsDetail.goodsId, this.params).then((res) => { - this.commDetail = res.data.result; + this.readMoreInited = {}; + this.commDetail = res.data.result || {}; + this.$nextTick(() => { + const records = this.commDetail.records || []; + records.slice(0, 2).forEach((_, index) => { + setTimeout(() => this.initReadMore(index), 50 * (index + 1)); + }); + }); }); },