From 3df568bff8942908aed2c9a0e6836d5197af41a7 Mon Sep 17 00:00:00 2001 From: tianyi <13521030702@163.com> Date: Thu, 16 Apr 2026 16:18:44 +0800 Subject: [PATCH] 11 --- package1/group/groupBuyList.vue | 447 +++++++++++++++++++------------ package1/order/orderEvaluate.vue | 69 +++-- package1/order/orderList.vue | 5 +- 3 files changed, 317 insertions(+), 204 deletions(-) diff --git a/package1/group/groupBuyList.vue b/package1/group/groupBuyList.vue index d758630..9538b07 100644 --- a/package1/group/groupBuyList.vue +++ b/package1/group/groupBuyList.vue @@ -18,7 +18,8 @@ - + @@ -36,12 +37,12 @@ - + 综合排序 - + 销量优先 @@ -55,17 +56,23 @@ 区域选择 - {{item.title}} + {{item.title}} - + - + + + - + @@ -75,29 +82,34 @@ {{item.shopScore}} - + - + {{item.shopTypeTitle == undefined ? '美食' : item.shopTypeTitle}} - + {{item.subtitle}} - 已拼 {{item.saleCount != null ? item.saleCount : 0}} 单 + 已拼 + {{item.saleCount != null ? item.saleCount : 0}} - + @@ -109,12 +121,13 @@ ¥{{item1.attributeListPrice | sliceMsg}} - 拼团 ¥{{item1.productGroupBuyPrices | slicePrice}} + 拼团 ¥{{item1.productGroupBuyPrices | slicePrice}} - + @@ -139,93 +152,93 @@ data() { return { loadStatus: 'more', - isArea:false, + isArea: false, indicatorDots: false, autoplay: true, interval: 4000, duration: 1000, searchScore: false, searchSale: false, - shopArea:[], - totalPages:1, - searchForm:{ - regionId:JSON.parse(uni.getStorageSync('area')).id, - shopType:'', - shopArea:'', + shopArea: [], + totalPages: 1, + searchForm: { + regionId: JSON.parse(uni.getStorageSync('area')).id, + shopType: '', + shopArea: '', pageNumber: 1, - keyWord:'', + keyWord: '', pageSize: '10', sort: "shoprank", order: "desc", - sortOrder:'shoprank', - orderOrder:'desc', - sortScore:'', - orderScore:'', - sortSale:'', - orderSale:'' + sortOrder: 'shoprank', + orderOrder: 'desc', + sortScore: '', + orderScore: '', + sortSale: '', + orderSale: '' }, - shopList:[], - menuBtn:[{ - name:'美食', - value:'', - url:'https://jewel-shop.oss-cn-beijing.aliyuncs.com/d6b53eb217644e74bbf957ff7462c27b.png', - index:1 - },{ - name:'甜点饮品', - value:'', - url:'https://jewel-shop.oss-cn-beijing.aliyuncs.com/b43aea98962b402f900eca84b2c171ae.png', - index:2 - },{ - name:'超市便利', - value:'', - url:'https://jewel-shop.oss-cn-beijing.aliyuncs.com/e082a4c10b9a47f0bdb588fb91bc9afb.png', - index:3 - },{ - name:'蔬菜水果', - value:'', - url:'https://jewel-shop.oss-cn-beijing.aliyuncs.com/e6adc80518c24c488522ab19f036af27.png', - index:4 - },{ - name:'看病买药', - value:'', - url:'https://jewel-shop.oss-cn-beijing.aliyuncs.com/766761af471a4f9f90e9a137f9c4f701.png', - index:5 + shopList: [], + menuBtn: [{ + name: '美食', + value: '', + url: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/d6b53eb217644e74bbf957ff7462c27b.png', + index: 1 + }, { + name: '甜点饮品', + value: '', + url: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/b43aea98962b402f900eca84b2c171ae.png', + index: 2 + }, { + name: '超市便利', + value: '', + url: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/e082a4c10b9a47f0bdb588fb91bc9afb.png', + index: 3 + }, { + name: '蔬菜水果', + value: '', + url: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/e6adc80518c24c488522ab19f036af27.png', + index: 4 + }, { + name: '看病买药', + value: '', + url: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/766761af471a4f9f90e9a137f9c4f701.png', + index: 5 }], - menuBtn1:[{ - name:'米粉面馆', - value:'', - url:'https://jewel-shop.oss-cn-beijing.aliyuncs.com/8d2f7ffb67a4477ebe663f562b3bd018.png', - index:6 - },{ - name:'早点', - value:'', - url:'https://jewel-shop.oss-cn-beijing.aliyuncs.com/5e4fa14df92942eeb62254c8eb82f122.png', - index:7 - },{ - name:'快餐', - value:'', - url:'https://jewel-shop.oss-cn-beijing.aliyuncs.com/05d2286ac1be4ae784858409889690d5.png', - index:8 - },{ - name:'麻辣烫冒菜', - value:'', - url:'https://jewel-shop.oss-cn-beijing.aliyuncs.com/0ac5e0095a5d4097b338ec450df8d3dd.png', - index:9 - },{ - name:'汉堡披萨', - value:'', - url:'https://jewel-shop.oss-cn-beijing.aliyuncs.com/14b93d4bce134b3db4b42b13b6993e6c.png', - index:10 + menuBtn1: [{ + name: '米粉面馆', + value: '', + url: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/8d2f7ffb67a4477ebe663f562b3bd018.png', + index: 6 + }, { + name: '早点', + value: '', + url: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/5e4fa14df92942eeb62254c8eb82f122.png', + index: 7 + }, { + name: '快餐', + value: '', + url: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/05d2286ac1be4ae784858409889690d5.png', + index: 8 + }, { + name: '麻辣烫冒菜', + value: '', + url: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/0ac5e0095a5d4097b338ec450df8d3dd.png', + index: 9 + }, { + name: '汉堡披萨', + value: '', + url: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/14b93d4bce134b3db4b42b13b6993e6c.png', + index: 10 }], - menuButtonInfo:{}, - onlineWorkerTotal:0, - onlineWorkerAreaList:[], - onlineWorkerInterval:2500, - onlineWorkerDuration:500 + menuButtonInfo: {}, + onlineWorkerTotal: 0, + onlineWorkerAreaList: [], + onlineWorkerInterval: 2500, + onlineWorkerDuration: 500 } }, components: { - + }, filters: { sliceMsg(val) { @@ -238,12 +251,12 @@ } return name; }, - slicePrice(val){ + slicePrice(val) { let begin = '' - if(val != null){ + if (val != null) { begin = val[0].groupPrice - for(let i = 0;i < val.length;i++){ - if(val[i].groupPrice < begin){ + for (let i = 0; i < val.length; i++) { + if (val[i].groupPrice < begin) { begin = val[i].groupPrice } } @@ -254,9 +267,9 @@ onReachBottom() { if (this.searchForm.pageNumber >= this.totalPages) return; // this.status = 'loading'; - this.searchForm.pageNumber ++; + this.searchForm.pageNumber++; this.getShopList(); - + }, onLoad() { this.getEatType(); @@ -272,47 +285,53 @@ // }) }, methods: { - searchShop(type,value){ + searchShop(type, value) { this.searchForm.pageNumber = 1 - if(type == 'area'){ + if (type == 'area') { this.searchForm.shopArea = value - }else if(type == 'score'){ + } else if (type == 'score') { this.searchScore = !this.searchScore this.searchSale = false this.searchForm.sort = 'shopScore' - }else if(type == 'sale'){ + } else if (type == 'sale') { this.searchSale = !this.searchSale this.searchScore = false this.searchForm.sort = 'saleCount' - }else if(type == 'all'){ + } else if (type == 'all') { this.searchForm.sortOrder = 'shoprank' this.searchForm.orderOrder = 'desc' this.searchForm.shopArea = '' this.searchForm.sort = 'shoprank' this.searchScore = false this.searchScore = false - this.searchSale = false - }else if(type == 'typeUp'){ + this.searchSale = false + } else if (type == 'typeUp') { //TODO跳转新页面 } this.getShopList(); }, - getEatType(){ + buyingye() { + uni.showToast({ + title: '店铺不在营业时间!', + icon: 'none' + }); + }, + getEatType() { let that = this that.tui.request("/dictData/getByCondition", "GET", { - sort:'sortOrder', - order:'asc', - dictId:'1712359407444168704' + sort: 'sortOrder', + order: 'asc', + dictId: '1712359407444168704' }, false, true).then((res) => { if (res.code == 200) { - for(let i = 0;i {}) }, - getShopArea(){ + getShopArea() { let that = this - that.tui.request("/app/shopArea/getByParentId/"+JSON.parse(uni.getStorageSync('area')).id, "GET", {}, false, true).then((res) => { + that.tui.request("/app/shopArea/getByParentId/" + JSON.parse(uni.getStorageSync('area')).id, "GET", {}, + false, true).then((res) => { if (res.code == 200) { - if(res.result != null){ - for(let m = 0;m {}) }, - getOnlineWorkerCountByCanteenArea(){ + getOnlineWorkerCountByCanteenArea() { let that = this - that.tui.request("/worker/getOnlineWorkerByArea", "GET", {parentId:JSON.parse(uni.getStorageSync('area')).id}, false, true).then((res) => { + that.tui.request("/worker/getOnlineWorkerByArea", "GET", { + parentId: JSON.parse(uni.getStorageSync('area')).id + }, false, true).then((res) => { if (res.code == 200) { const list = Array.isArray(res.result) ? res.result : [] that.onlineWorkerAreaList = list @@ -353,20 +375,20 @@ } }).catch(() => {}) }, - getShopList(){ + getShopList() { this.loadStatus = 'loading' - if(this.searchSale){ + if (this.searchSale) { this.searchForm.sortSale = 'saleCount' this.searchForm.orderSale = 'desc' this.searchForm.sortOrder = '' - }else{ + } else { this.searchForm.sortSale = '' } - if(this.searchScore){ + if (this.searchScore) { this.searchForm.sortScore = 'shopScore' this.searchForm.orderScore = 'desc' this.searchForm.sortOrder = '' - }else{ + } else { this.searchForm.sortScore = '' } let that = this @@ -378,6 +400,7 @@ } else { that.shopList = [...that.shopList, ...res.result.content] } + this.judgeBusinessStatus() that.totalPages = res.result.totalPages that.isArea = false that.$forceUpdate() @@ -388,35 +411,64 @@ uni.hideLoading() }).catch((res) => {}) }, - goDetail(type,item){ - if(type == 'shop'){ + judgeBusinessStatus() { + for (let i = 0; i < this.shopList.length; i++) { + if (this.shopList[i].shopTakeaway != '') { + if (this.shopList[i].shopTakeaway.status == 0) { + let isEndTime = this.isWithinBusinessHours(this.shopList[i].shopTakeaway.businessHourBegin,this.shopList[i].shopTakeaway.businessHourEnd) + this.shopList[i].shopTakeaway.status = isEndTime ? 0 : 1 + } + } + + } + }, + //判断是否在营业时间内 + isWithinBusinessHours(begin, end) { + // 获取当前时间的时和分 + const now = new Date(); + const currentMinutes = now.getHours() * 60 + now.getMinutes(); + + // 解析开始和结束时间(格式 "HH:MM") + const parseTime = (timeStr) => { + const [hours, minutes] = timeStr.split(':').map(Number); + return hours * 60 + minutes; + }; + + const startMinutes = parseTime(begin); + const endMinutes = parseTime(end); + + // 判断是否在区间内(包含端点) + return currentMinutes >= startMinutes && currentMinutes <= endMinutes; + }, + goDetail(type, item) { + if (type == 'shop') { uni.navigateTo({ - url:'/package1/group/groupBuySingle?type=shop&item=' + JSON.stringify(item) + url: '/package1/group/groupBuySingle?type=shop&item=' + JSON.stringify(item) }) - }else if(type == 'search'){ - if(item){ + } else if (type == 'search') { + if (item) { uni.navigateTo({ - url:'/package1/group/searchGroup?shopType=' + (item.value || '') + url: '/package1/group/searchGroup?shopType=' + (item.value || '') }) - }else{ + } else { uni.navigateTo({ - url:'/package1/group/searchGroup' + url: '/package1/group/searchGroup' }) } - }else{ + } else { uni.navigateTo({ - url:'/package1/group/groupBuySingle?type=product&item=' + JSON.stringify(item) + url: '/package1/group/groupBuySingle?type=product&item=' + JSON.stringify(item) }) } }, - back(){ + back() { uni.navigateBack() }, - checkArea(){ + checkArea() { this.isArea = !this.isArea } } - + } @@ -428,78 +480,87 @@ background: #F5F8F5; color: #00231C; } - + .page1 { width: 100%; min-height: 100vh; font-size: 24rpx; position: relative; } - .title{ + + .title { background: url('https://jewel-shop.oss-cn-beijing.aliyuncs.com/8bc15960c2dc40268e295d6dd23aecce.png') no-repeat; background-size: 100% 100%; width: 100%; height: auto; padding-bottom: 20rpx; } + .swiper { width: 100%; height: 500rpx; z-index: 99 !important; } - + .swiper img { width: 100%; height: 100%; z-index: 99 !important; } + .menu-box { width: 100%; height: 160rpx; display: flex; margin-top: 30rpx; } - + .menu-list { flex: 1; } - + .menu-list img { width: 70%; height: 70%; display: block; margin: 0 auto; } - + .menu-name { text-align: center; font-size: 24rpx; font-weight: 700; margin-top: 15rpx; } - .title-tab{ + + .title-tab { width: 95%; margin: 0 auto; height: 210rpx; } - .swiper{ + + .swiper { width: 100%; height: 210rpx; } - .title-sreach{ + + .title-sreach { width: 75%; display: flex; height: 200rpx; } - .back-btn{ + + .back-btn { padding-top: 110rpx; } - .title-name{ + + .title-name { padding-top: 110rpx; font-size: 36rpx; font-weight: 700; } - .title-search{ + + .title-search { margin-top: 110rpx; display: flex; background: #fff; @@ -507,17 +568,20 @@ margin-left: 20rpx; border-radius: 54rpx; flex: 1; - input{ + + input { height: 54rpx; line-height: 54rpx; } } - .title-sort{ + + .title-sort { height: 60rpx; display: flex; margin-top: 20rpx; } - .sort-member{ + + .sort-member { line-height: 60rpx; text-align: center; background: #fff; @@ -525,7 +589,8 @@ margin-left: 4%; border-radius: 10rpx; } - .sort-value{ + + .sort-value { width: 160rpx; height: auto; max-height: 300rpx; @@ -538,56 +603,68 @@ color: #fff; font-size: 22rpx; } - .sort-value1{ + + .sort-value1 { border-bottom: 1rpx solid #eee; } - .shop-list{ + + .shop-list { width: 95%; height: auto; margin: 0 auto; } - .shop-member{ + + .shop-member { width: 100%; height: auto; border-radius: 20rpx; background: #fff; margin-bottom: 20rpx; + position: relative; } - .shop-img{ + + .shop-img { width: 160rpx; height: 160rpx; position: relative; - img{ + + img { width: 100%; background-size: 100%; height: 100%; border-radius: 20rpx; } } - .shop-top{ + + .shop-top { padding: 20rpx; display: flex; } - .shop-content{ + + .shop-content { flex: 1; padding-left: 20rpx; } - .shop-name{ + + .shop-name { font-size: 32rpx; font-weight: 900; } - .shop-content-center{ + + .shop-content-center { display: flex; margin: 20rpx 0; } - .shop-rate{ + + .shop-rate { background: rgba(249, 212, 157, 0.34); height: 40rpx; display: flex; border-radius: 20rpx; padding: 0 10rpx 0 0; } - .shop-rate-num{ + + .shop-rate-num { width: 50rpx; height: 100%; text-align: center; @@ -601,18 +678,22 @@ border-top-right-radius: 10rpx; font-weight: 700; } - .shop-tag{ + + .shop-tag { flex: 1; line-height: 40rpx; text-align: right; } - .shop-content-bottom{ + + .shop-content-bottom { display: flex; } - .shop-deal{ - flex:1; + + .shop-deal { + flex: 1; } - .shop-bottom{ + + .shop-bottom { border-top: 2rpx solid #eee; width: 100%; overflow-x: scroll; @@ -621,36 +702,43 @@ overflow-y: hidden; padding: 10rpx 0 20rpx; } - .menu-member{ + + .menu-member { width: 140rpx; height: 100%; margin: 10rpx 0 0 20rpx; } - .menu-img{ + + .menu-img { height: 140rpx; width: 140rpx; border-radius: 10px; - img{ + + img { width: 100%; height: 100%; background-size: 100%; border-radius: 20rpx; } } - .menu-content{ + + .menu-content { font-size: 26rpx; } - .shop-menu-name{ + + .shop-menu-name { margin-top: 10rpx; font-weight: 700; overflow: hidden; height: 30rpx; } - .shop-menu-price{ + + .shop-menu-price { margin-top: 6rpx; font-weight: 700; } - .shop-menu-purchase{ + + .shop-menu-purchase { display: flex; background: rgba(255, 57, 57, 0.1); height: 36rpx; @@ -662,7 +750,8 @@ color: #777; font-size: 20rpx; } - .zaixian{ + + .zaixian { position: fixed; bottom: 40rpx; left: 10%; @@ -678,22 +767,26 @@ text-align: center; line-height: normal; } - .zaixian-total{ + + .zaixian-total { font-size: 26rpx; line-height: 76rpx; white-space: nowrap; } - .zaixian-divider{ + + .zaixian-divider { width: 2rpx; height: 36rpx; background: rgba(0, 35, 28, 0.2); margin: 0 18rpx; } - .zaixian-swiper{ + + .zaixian-swiper { flex: 1; height: 76rpx; } - .zaixian-item{ + + .zaixian-item { height: 76rpx; line-height: 76rpx; font-size: 24rpx; @@ -701,4 +794,4 @@ text-overflow: ellipsis; white-space: nowrap; } - + \ No newline at end of file diff --git a/package1/order/orderEvaluate.vue b/package1/order/orderEvaluate.vue index 7a808bb..a292b53 100644 --- a/package1/order/orderEvaluate.vue +++ b/package1/order/orderEvaluate.vue @@ -78,36 +78,39 @@ - - - 您对本次配送人员还满意吗? - - - - - - {{item.name}} + + + + 您对本次配送人员还满意吗? + + + + + + {{item.name}} + - - - - - - - + + - - - + + + - - 发图/发视频能更有效地帮助他人哦~ + + + + + + 发图/发视频能更有效地帮助他人哦~ + + @@ -142,6 +145,7 @@ shopRemark:'', manRemark:'', shopPicture:'', + manId:'', manPicture:'', evalNumList:[{ name:'很糟糕', @@ -174,11 +178,26 @@ }, onLoad(option) { this.shopData = JSON.parse(option.item) + console.log(this.shopData.deliveryType) + if(this.shopData.deliveryType == 1){ + this.getOrderDetail() + } }, onShow() { this.menuButtonInfo = uni.getMenuButtonBoundingClientRect() }, methods: { + getOrderDetail(){ + let that = this + that.tui.request("/mall/order/detail/"+this.shopData.id, "GET", {}, false, true).then((res) => { + if (res.code == 200) { + that.manId = res.result.deliveryInfo.id; + } else { + that.tui.toast(res.message) + } + }).catch((res) => {}) + uni.hideLoading(); + }, submit(){ let that = this; let data = [{ //店铺 @@ -202,9 +221,9 @@ createByIcon:'https://ooo.0o0.ooo/2019/04/28/5cc5a71a6e3b6.png', score:this.manEvaluateNum, orderId:this.shopData.id, - shopId:this.shopData.shopId, + shopId:this.manId, }] - that.tui.request("/app/comment/save", "POST", data, false, true).then((res) => { + that.tui.request("/app/comment/save", "POST", data, false, false).then((res) => { if (res.code == 200) { uni.showToast({ title: "评论成功", diff --git a/package1/order/orderList.vue b/package1/order/orderList.vue index cea2bb1..d09115c 100644 --- a/package1/order/orderList.vue +++ b/package1/order/orderList.vue @@ -369,9 +369,10 @@ } }, onLoad(option) { - this.getOrderList() + }, onShow() { + this.getOrderList() this.menuButtonInfo = uni.getMenuButtonBoundingClientRect() }, methods: { @@ -463,7 +464,7 @@ }); }, goEvaluate(item){ - uni.redirectTo({ + uni.navigateTo({ url: '/package1/order/orderEvaluate?item=' + JSON.stringify(item) }); },