From 9246a0686c11ecc6b907bd62a0ed026fbc08c1f0 Mon Sep 17 00:00:00 2001 From: yuanteng0011 <1876787513@qq.com> Date: Thu, 19 Dec 2024 15:54:40 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=AD=E7=89=A9=E8=BD=A6=E5=AE=8C=E6=88=90?= =?UTF-8?q?=EF=BC=8C=E8=A7=A3=E5=86=B3=E8=AE=A1=E7=AE=97=E7=B2=BE=E5=BA=A6?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 81 +++++++++++++-- package.json | 1 + pages/Shopping-cart/component/addProduct.vue | 2 +- .../newaddress_Info/newaddress_Info.vue | 98 +++++++++++++------ .../Shopping-cart/productmain/productmain.vue | 82 +++++++++++----- pages/order/component/addressComponent.vue | 6 +- .../order/product-waitpay/product-waitpay.vue | 5 +- .../ProductDetails/ProductDetails.vue | 55 ++++++++--- pages/store-home/main/main.vue | 10 +- 9 files changed, 251 insertions(+), 89 deletions(-) diff --git a/package-lock.json b/package-lock.json index ae01bac..ee2775d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,78 @@ { - "name": "jiangchengfeiyi-xiaochengxu", - "lockfileVersion": 3, "requires": true, - "packages": { - "": { - "dependencies": { - "mitt": "^3.0.1" + "lockfileVersion": 1, + "dependencies": { + "@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "requires": { + "regenerator-runtime": "^0.14.0" } }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + "complex.js": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/complex.js/-/complex.js-2.4.2.tgz", + "integrity": "sha512-qtx7HRhPGSCBtGiST4/WGHuW+zeaND/6Ld+db6PbrulIB1i2Ev/2UPiqcmpQNPSyfBKraC0EOvOKCB5dGZKt3g==" + }, + "decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "escape-latex": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/escape-latex/-/escape-latex-1.2.0.tgz", + "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==" + }, + "fraction.js": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-5.2.1.tgz", + "integrity": "sha512-Ah6t/7YCYjrPUFUFsOsRLMXAdnYM+aQwmojD2Ayb/Ezr82SwES0vuyQ8qZ3QO8n9j7W14VJuVZZet8U3bhSdQQ==" + }, + "javascript-natural-sort": { + "version": "0.7.1", + "resolved": "https://registry.npmmirror.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==" + }, + "mathjs": { + "version": "14.0.1", + "resolved": "https://registry.npmmirror.com/mathjs/-/mathjs-14.0.1.tgz", + "integrity": "sha512-yyJgLwC6UXuve724np8tHRMYaTtb5UqiOGQkjwbSXgH8y1C/LcJ0pvdNDZLI2LT7r+iExh2Y5HwfAY+oZFtGIQ==", + "requires": { + "@babel/runtime": "^7.25.7", + "complex.js": "^2.2.5", + "decimal.js": "^10.4.3", + "escape-latex": "^1.2.0", + "fraction.js": "^5.2.1", + "javascript-natural-sort": "^0.7.1", + "seedrandom": "^3.0.5", + "tiny-emitter": "^2.1.0", + "typed-function": "^4.2.1" + } + }, + "mitt": { + "version": "3.0.1" + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "typed-function": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/typed-function/-/typed-function-4.2.1.tgz", + "integrity": "sha512-EGjWssW7Tsk4DGfE+5yluuljS1OGYWiI1J6e8puZz9nTMM51Oug8CD5Zo4gWMsOhq5BI+1bF+rWTm4Vbj3ivRA==" } } } diff --git a/package.json b/package.json index 055b94a..0df35ed 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "dependencies": { + "mathjs": "^14.0.1", "mitt": "^3.0.1" } } diff --git a/pages/Shopping-cart/component/addProduct.vue b/pages/Shopping-cart/component/addProduct.vue index 2d46cdc..c1c58c7 100644 --- a/pages/Shopping-cart/component/addProduct.vue +++ b/pages/Shopping-cart/component/addProduct.vue @@ -96,7 +96,7 @@ console.log('失败原因-->', res.data); uni.showToast({ icon: 'error', - title: "请求失败" + title: res.data.message }) return; } diff --git a/pages/Shopping-cart/newaddress_Info/newaddress_Info.vue b/pages/Shopping-cart/newaddress_Info/newaddress_Info.vue index 1029029..74f8342 100644 --- a/pages/Shopping-cart/newaddress_Info/newaddress_Info.vue +++ b/pages/Shopping-cart/newaddress_Info/newaddress_Info.vue @@ -14,10 +14,11 @@ <view class="flex-row items-center group_4"> <text class="font_2 text_5">所在地区</text> <view class="flex-col justify-start flex-1 relative group_5 ml-13"> - <input class="text-wrapper_3" v-model="addressParam.region" placeholder="请输入地区" /> + <!-- <input class="text-wrapper_3" v-model="addressParam.region" placeholder="请输入地区" /> --> + <view class="zujian"><addSelected></addSelected></view> <image class="image pos" - :src="dingwei" + src="https://carbon2.obs.cn-north-4.myhuaweicloud.com:443/feiyi%2Ftest%2F0%2FkYDyjpPh-dingwei.png" /> </view> </view> @@ -47,24 +48,34 @@ <script setup> import {ref , onMounted} from 'vue' import { testUrl , baseUrl , suiUrl } from '../../../api/request'; -import { onLoad } from '@dcloudio/uni-app'; -const userInfo = ref({}) +import { onLoad, onShow } from '@dcloudio/uni-app'; +import addSelected from '../../../pages/order/component/addSelected.vue' +import emitter from '../../../utils/emitter'; const addressParam = ref({ - userId: 0, name: "", phone: "", region: "", detailAddress: "", isDefault: 0 }) +const isAdd = ref(false) //接受编辑按钮传来的地址信息 onLoad((options)=>{ - addressParam.value = JSON.parse(options.editInfo) //将原来的地址信息赋值给原来的addressParam - // console.log('待编辑地址--->',addressParam.value); + if(JSON.stringify(options) != '{}') { + addressParam.value = JSON.parse(options.editInfo) //将原来的地址信息赋值给原来的addressParam + } else { + isAdd.value = true + } + // console.log(options); +}) +onShow(()=>{ }) onMounted(()=>{ - userInfo.value = uni.getStorageSync("userInfo") - // console.log('userInfo-->', userInfo.value.id); + emitter.on('region',(val)=>{ //将地址弹窗的值传到当前页面 + addressParam.value.region = val + // console.log('val--->',val); + }) + if(!isAdd.value) emitter.emit('addRegion', addressParam.value.region) }) //勾选默认地址的选项 const defaultAddress =(event)=>{ @@ -72,8 +83,8 @@ const defaultAddress =(event)=>{ } //发送添加新增地址的请求 const newAddress = async () =>{ - console.log(addressParam.value); - addressParam.value.userId = userInfo.value.id + // console.log(addressParam.value); + // addressParam.value.userId = userInfo.value.id const values = Object.values(addressParam.value); // 使用some()方法来检查是否有任何值为空 if (values.some(value => value === null || value === undefined || value === '')) { @@ -83,34 +94,60 @@ const newAddress = async () =>{ }) return; } - const res = await uni.request({ - url: baseUrl + '/address/add', - method: 'POST', - header: { - 'cookie': wx.getStorageSync('cookie') - }, - data: {...addressParam.value} - }) - console.log('res==>',res.data); - if(res.data.code === 1) { + console.log(addressParam.value); + if(addressParam.value.id != undefined) { + const res = await uni.request({ + url: baseUrl + '/address/update', + method: 'POST', + header: { + 'cookie': wx.getStorageSync('cookie') + }, + data: { ...addressParam.value } + }) + console.log('res1==>',res.data); + sucRes(res.data.code) + } else { + const res = await uni.request({ + url: baseUrl + '/address/add', + method: 'POST', + header: { + 'cookie': wx.getStorageSync('cookie') + }, + data: {...addressParam.value} + }) + console.log('res2==>',res.data); + sucRes(res.data.code) + } + // if(res.data.code === 1) { + // uni.navigateBack({ //返回上一页 + // }) + // } else { + // uni.showToast({ + // icon: 'error', + // title: "新增地址失败" + // }) + // return; + // } +} +const sucRes =(res)=>{ //请求成功执行的方法 + if(res === 1) { uni.navigateBack({ //返回上一页 }) } else { uni.showToast({ icon: 'error', - title: "新增地址失败" + title: '新增地址失败' }) return; } - } //跳转回订单页面 -const jump =()=> { - uni.navigateTo({ - url: '../../../pages/Shopping-cart/address/address' - }) -} +// const jump =()=> { +// uni.navigateTo({ +// url: '../../../pages/Shopping-cart/address/address' +// }) +// } </script> <style lang="scss" scoped> @@ -238,6 +275,11 @@ const jump =()=> { font-size: 30rpx; font-family: Open Sans; line-height: 27.9rpx; +} +.zujian{ //地址组件样式 + height: 100rpx; + width: 450rpx; + margin-left: 50rpx; } @import url(../../../common/css/global.css); </style> \ No newline at end of file diff --git a/pages/Shopping-cart/productmain/productmain.vue b/pages/Shopping-cart/productmain/productmain.vue index 9c1532d..e74d073 100644 --- a/pages/Shopping-cart/productmain/productmain.vue +++ b/pages/Shopping-cart/productmain/productmain.vue @@ -21,16 +21,16 @@ <image class="shrink-0 image" :src="item.cartGoodVO.goodImg" - @click="jump_product" + @click="jump_product(item.goodId)" /> <view class="flex-col flex-1 group_3 ml-12"> <view class="flex-row group_4"> - <text class="font_2" @click="jump_product">{{ item.cartGoodVO.name }}</text> - <text class="font_2 ml-4" @click="jump_product">【{{ item.cartGoodVO.type }}】</text> + <text class="font_2" @click="jump_product(item.goodId)">{{ item.cartGoodVO.name }}</text> + <text class="font_2 ml-4" @click="jump_product(item.goodId)">【{{ item.cartGoodVO.type }}】</text> </view> <view class="flex-row items-center mt-47"> <view class="flex-row items-center self-stretch group_5"> - <text class="font_3 text_3" @click="jump_product"><text class="font_4">¥</text>{{ item.cartGoodVO.price }}</text> + <text class="font_3 text_3" @click="jump_product(item.goodId)"><text class="font_4">¥</text>{{ item.cartGoodVO.price }}</text> <!-- <image class="image_6" src="https://carbon2.obs.cn-north-4.myhuaweicloud.com:443/feiyi%2Ftest%2F0%2FJipaVPoQ-storeRmb.png" @@ -132,12 +132,13 @@ import { ref , onMounted , toRaw} from 'vue' import { onShow } from "@dcloudio/uni-app"; import { baseUrl , testUrl ,suiUrl} from '../../../api/request'; +import * as math from 'mathjs' const products = ref([]) const current = ref(1) //用于判断是实体类商品还是服务类商品 const allCheck = ref(false) //全选 const checkedData = ref([]) //选择的暂存保存数组 const totalPrice = ref(0) -const userInfo = wx.getStorageSync('userInfo') +// const userInfo = wx.getStorageSync('userInfo') const stateText = ref({ topBtn: '编辑', bottomBtn: '去结算' @@ -163,6 +164,21 @@ const getProductCart = async ()=>{ } console.log('products-->',products.value); } +const deleteProduct = async (idArr) =>{ //删除商品 + const res = await uni.request({ + url: baseUrl + '/cart/delete', + method: 'POST', + data: idArr , + header: { + 'cookie': wx.getStorageSync('cookie') + } + }) + console.log(res.data); + if(res.data.code === 1) { + getProductCart() //重新获取购物车信息 + totalPrice.value = 0 + } +} const getServiceCart =()=>{ console.log('获取服务类商品方法被触发'); } @@ -241,10 +257,6 @@ const allChecked = ()=>{ item.checked = true //将全部选项选上 computed(item.cartGoodVO.price , item.quantity) }) - // checkedData.value = products.value.map((item)=>({ - // goodId: item.goodId, - // quantity: item.quantity - // })) //将商品全部信息保存到checkedData中 checkedData.value = products.value.map((item)=>( item.id )) console.log('checkedData--->',checkedData.value); } else { @@ -268,43 +280,61 @@ const decrease =(index , item)=>{ //item用于监测是否选中 const increase =(index , item) =>{ //item用于监测是否选中 console.log('increase,index-->',index); console.log('increase,item-->',item); - if(products.value[index].quantity <= 99) { + if(products.value[index].quantity < products.value[index].cartGoodVO.inventory) { + if(item && products.value[index].quantity <= products.value[index].cartGoodVO.inventory) { + computed(products.value[index].cartGoodVO.price, 1) + } products.value[index].quantity += 1 } - if(item) { - computed(products.value[index].cartGoodVO.price, 1) - } } //计算方法 const computed =( price , quantity )=>{ - totalPrice.value += price * quantity + totalPrice.value = math.round(totalPrice.value+price * quantity,2) return totalPrice.value } -const jump_product =()=>{ +const jump_product =(gid)=>{ uni.navigateTo({ - url:'../../../pages/store-home/ProductDetails/ProductDetails' + url:'../../../pages/store-home/ProductDetails/ProductDetails?gid=' + JSON.stringify(gid) }) } -const editOrSettle = async ()=>{ +const editOrSettle = async ()=>{ //去结算或者删除状态方法 // console.log('要传到订单详情页面的checked--->',checkedData.value); if(stateText.value.bottomBtn === '去结算') { - uni.navigateTo({ - url: '/pages/order/product-waitpay/product-waitpay?cartInfo=' + JSON.stringify(checkedData.value) - }) - } else { const res = await uni.request({ - url: baseUrl + '/cart/delete', + url: baseUrl + '/cart/cart/list/error', method: 'POST', - data: checkedData.value , header: { 'cookie': wx.getStorageSync('cookie') } }) console.log(res.data); - if(res.data.code === 1) { - getProductCart() //重新获取购物车信息 - totalPrice.value = 0 + if(res.data.data.length != 0) { + uni.showModal({ + title: '提示', + content: '购物车商品发生改变,点击移除变化商品', + showCancel: false, + success: (e)=>{ + if(e.confirm) { + deleteProduct(res.data.data) + } + } + }) + } else { + uni.navigateTo({ + url: '/pages/order/product-waitpay/product-waitpay?cartInfo=' + JSON.stringify(checkedData.value) + }) } + } else { + uni.showModal({ + title: '提示', + content: '是否删除商品?', + success: (e) => { + if(e.confirm) + deleteProduct(checkedData.value) + else if(e.cancel) + return; + } + }) } } const changeState =()=>{ //修改购物车订单方法 diff --git a/pages/order/component/addressComponent.vue b/pages/order/component/addressComponent.vue index c88317e..bdeaa26 100644 --- a/pages/order/component/addressComponent.vue +++ b/pages/order/component/addressComponent.vue @@ -94,11 +94,15 @@ const deleteAddress = async( id ) =>{ const res = await uni.request({ url: baseUrl + '/address/delete', method: 'POST', + header: { + 'cookie': wx.getStorageSync('cookie') + }, data: { id: id } }) + // console.log(res.data); if( res.data.code === 1 ) { getAddressList() - console.log("删除地址成功"); + // console.log("删除地址成功"); } } </script> diff --git a/pages/order/product-waitpay/product-waitpay.vue b/pages/order/product-waitpay/product-waitpay.vue index 4a7879f..93eaa5e 100644 --- a/pages/order/product-waitpay/product-waitpay.vue +++ b/pages/order/product-waitpay/product-waitpay.vue @@ -167,6 +167,7 @@ import emitter from '../../../utils/emitter' import { onLoad , onShow } from "@dcloudio/uni-app"; import { baseUrl } from '../../../api/request'; import addressComponentVue from '../component/addressComponent.vue'; //导入组件 +import { stateMap } from '../../../common/global'; //一些暂时变量 const num = ref(1) const price = ref(138) @@ -194,6 +195,7 @@ onMounted(() => { emitter.on('addressInfo', (val) =>{ addressRealInfo.value = val }) + // console.log(stateMap.get('订单已经退款')); }) onLoad((options)=>{ totalInfo.value = JSON.parse(options.cartInfo) @@ -227,8 +229,7 @@ const getDefaultAddress = async () =>{ method: 'POST', header: { cookie: wx.getStorageSync('cookie') - }, - data: { id: userInfo.value.id } + } }) //根据for循环遍历默认地址 for(let key in res.data.data) { diff --git a/pages/store-home/ProductDetails/ProductDetails.vue b/pages/store-home/ProductDetails/ProductDetails.vue index eb97a28..c499ec9 100644 --- a/pages/store-home/ProductDetails/ProductDetails.vue +++ b/pages/store-home/ProductDetails/ProductDetails.vue @@ -1,10 +1,15 @@ <template> <view class="flex-col page"> - <image +<!-- <image mode="aspectFit" class="self-stretch image" :src="goodObject.goodImg" - /> + /> --> + <swiper class="swiper-box"> + <swiper-item v-for="(item,index) in imgArr" :key="index" > + <image mode="aspectFit" class="self-stretch image" :src="item" ></image> + </swiper-item> + </swiper> <view class="flex-col self-stretch section_2"> <view class="self-start group"> <text class="font text_2">¥</text> @@ -83,21 +88,13 @@ import emitter from '../../../utils/emitter' import addProduct from '../../Shopping-cart/component/addProduct.vue'; const popup = ref(null) //弹窗对象 const goodObject = ref({}) //商品对象 -// const checkedData = ref([{}]) //对齐批量购买 const idInfo = ref([]) //数量 + 商品id const userInfo = ref({}) //用户信息 const labelList = ref([]) //标签 +const imgArr = ref([]) //转换上一页面传来的商品 onLoad((options) => { - goodObject.value = JSON.parse(options.info) //将string转为objec赋值给商品对象 - idInfo.value = [{ - goodId: goodObject.value.id, - quantity: 1 //暂时为1 - }] - labelList.value = goodObject.value.label.split(";") //分割字符串,生成标签数组 - labelList.value = labelList.value.filter((s)=>{ //使用filter将最后一个空值去掉 - return s - }) + getProduct(JSON.parse(options.gid)) //页面加载的时候获取商品信息 }) onShow(()=>{ userInfo.value = wx.getStorageSync('userInfo') //获取用户信息 @@ -109,6 +106,30 @@ onMounted(()=>{ }) getFonts() }) +const getProduct = async (gid) =>{ //根据商品获取商品信息 + const res = await uni.request({ + url: baseUrl + '/goods/getById', + method: 'POST', + data: { id: gid }, + header: { + cookie: wx.getStorageSync('cookie') + } + }) + // console.log('请求请求--->',res.data); + if(res.data.code === 1) { + goodObject.value = res.data.data + imgArr.value = res.data.data.goodImg.split(';') //将后端传来的图片字符串转为图片数组 + // console.log(imgArr.value); + labelList.value = goodObject.value.label.split(';') //分割字符串,生成标签数组 + labelList.value = labelList.value.filter((s)=>{ //使用filter将最后一个空值去掉 + return s + }) + idInfo.value = [{ + goodId: goodObject.value.id, + quantity: 1 //暂时为1 + }] + } +} const loadPop =()=>{ popup.value.open('bottom') //从底部弹出 emitter.emit('product',goodObject.value) @@ -158,11 +179,11 @@ const getFonts =()=>{ overflow-x: hidden; } .image { - width: 100vw; - height: 72vw; + width: 100%; + height: 100%; } .section_2 { - margin-top: 20.63rpx; + // margin-top: 20.63rpx; padding-left: 18.75rpx; padding-top: 19.2rpx; background-color: #ffffff; @@ -367,5 +388,9 @@ const getFonts =()=>{ .text_18 { line-height: 27.77rpx; } +.swiper-box { + width: 100%; + height: calc(150vw * 9 / 16); +} @import url(../../../common/css/global.css); </style> \ No newline at end of file diff --git a/pages/store-home/main/main.vue b/pages/store-home/main/main.vue index 7635b7c..182ed0e 100644 --- a/pages/store-home/main/main.vue +++ b/pages/store-home/main/main.vue @@ -10,7 +10,7 @@ </view> <view class="flex-col justify-start items-center image-wrapper pos_1"> <image class="shrink-0 image_2" - src="" /> + src="https://carbon2.obs.cn-north-4.myhuaweicloud.com:443/feiyi%2Ftest%2F0%2FloZarLZD-%E6%B5%8B%E8%AF%95%E6%8F%92%E5%85%A5.jpg" /> </view> <!-- 类别列表 --> <view class="flex-col justify-start section_3 pos_9"> @@ -40,7 +40,7 @@ <scroll-view scroll-y class="scrollable-content"> <view class="flex-row section_9 list-item_2 mt-5" v-for="(item, index) in productList" :key="index" @click="goToProduct(item)"> <image class="self-center image_4" - :src="item.goodImg" /> + :src="item.goodImg.split(';')[0]" /> <view style="width: 220rpx;" class="flex-col items-start self-center group_3"> <text class="font_2 text_5">{{ item.name }}</text> <text class="font_3 mt-13">{{ item.intro }}</text> @@ -55,9 +55,7 @@ </template> <script setup> -import { - ref,onMounted, toRaw -} from 'vue'; +import { ref,onMounted, toRaw } from 'vue'; import { baseUrl, testUrl , suiUrl} from '@/api/request'; const currentColor = ref(0); const sort =ref([{}]) //商品类别对象数组 @@ -135,7 +133,7 @@ const getBoxStyle = (index) => ({ const goToProduct = (item) => { uni.navigateTo({ - url: '../../../pages/store-home/ProductDetails/ProductDetails?info=' + JSON.stringify(item) + url: '../../../pages/store-home/ProductDetails/ProductDetails?gid=' + JSON.stringify(item.id) }) } </script>