diff --git a/order-app/src/pages/category/category.vue b/order-app/src/pages/category/category.vue index ff445b6..74cf2e7 100644 --- a/order-app/src/pages/category/category.vue +++ b/order-app/src/pages/category/category.vue @@ -39,6 +39,9 @@ ref, getCurrentInstance } from "vue" + import { + onLoad + } from '@dcloudio/uni-app' // 获取组件实例 const instance = getCurrentInstance(); @@ -46,7 +49,7 @@ const scrollTop = ref(0) const current = ref(0) const menuHeight = ref(0) - const menuItemHeight = ref(0) const getImg = ()=>{ + const menuItemHeight = ref(0) const getImg = () => { return Math.floor(Math.random() * 35) } @@ -63,7 +66,6 @@ // 将菜单菜单活动item垂直居中 scrollTop.value = index * menuItemHeight.value + menuItemHeight.value / 2 - menuHeight.value / 2; } -{ const getElRect = (elClass, dataVal) => { new Promise((resolve, reject) => { const query = uni.createSelectorQuery().in(instance); @@ -95,8 +97,14 @@ const toDetails = (item) => { console.log(item) //在起始页面跳转到details.vue页面并传递参数 + // 对 JSON 字符串进行编码 + const encodedGoods = encodeURIComponent(JSON.stringify(item)) + // uni.navigateTo({ + // url: '../detail/detail?goods=' + JSON.stringify(item) + // }); + uni.navigateTo({ - url: '../detail/detail?goods=' + JSON.stringify(item) + url: '../detail/detail?goods=' + encodeURIComponent(JSON.stringify(item)) }); } onLoad(() => { @@ -223,5 +231,4 @@ width: 120rpx; height: 120rpx; } - \ No newline at end of file diff --git a/order-app/src/pages/detail/detail.vue b/order-app/src/pages/detail/detail.vue index efe03f1..93be39b 100644 --- a/order-app/src/pages/detail/detail.vue +++ b/order-app/src/pages/detail/detail.vue @@ -192,21 +192,52 @@ } onLoad((options) => { userLogin() - const goods = JSON.parse(options.goods) - swipperList.value = goods.goodsImage.split(',') - console.log(goods) - goodsUnit.value = goods.goodsUnit - title.value = goods.goodsName - price.value = goods.specs[0].goodsPrice - specs.value = goods.specs - content.value = goods.goodsDesc - //设置购物车数据 - carData.value.goodsId = goods.goodsId - carData.value.goodsName = goods.goodsName - carData.value.goodsUnit = goods.goodsUnit - carData.value.specsName = goods.specs[0].specsName - carData.value.price = goods.specs[0].goodsPrice - carData.value.goodsImage = goods.goodsImage.split(',')[0] + // const goods = JSON.parse(options.goods) + // swipperList.value = goods.goodsImage.split(',') + // console.log(goods) + // goodsUnit.value = goods.goodsUnit + // title.value = goods.goodsName + // price.value = goods.specs[0].goodsPrice + // specs.value = goods.specs + // content.value = goods.goodsDesc + // //设置购物车数据 + // carData.value.goodsId = goods.goodsId + // carData.value.goodsName = goods.goodsName + // carData.value.goodsUnit = goods.goodsUnit + // carData.value.specsName = goods.specs[0].specsName + // carData.value.price = goods.specs[0].goodsPrice + // carData.value.goodsImage = goods.goodsImage.split(',')[0] + // 添加错误处理 + try { + // 先解码,再解析 + const decodedGoods = decodeURIComponent(options.goods); + const goods = JSON.parse(decodedGoods); + + swipperList.value = goods.goodsImage.split(',') + console.log(goods) + goodsUnit.value = goods.goodsUnit + title.value = goods.goodsName + price.value = goods.specs[0].goodsPrice + specs.value = goods.specs + content.value = goods.goodsDesc + //设置购物车数据 + carData.value.goodsId = goods.goodsId + carData.value.goodsName = goods.goodsName + carData.value.goodsUnit = goods.goodsUnit + carData.value.specsName = goods.specs[0].specsName + carData.value.price = goods.specs[0].goodsPrice + carData.value.goodsImage = goods.goodsImage.split(',')[0] + } catch (error) { + console.error('解析商品数据失败:', error) + uni.showToast({ + title: '商品信息加载失败', + icon: 'none' + }) + // 可以选择返回上一页 + setTimeout(() => { + uni.navigateBack() + }, 1500) + } }) diff --git a/order-app/src/pages/index/index.vue b/order-app/src/pages/index/index.vue index 2669895..aa5a9d0 100644 --- a/order-app/src/pages/index/index.vue +++ b/order-app/src/pages/index/index.vue @@ -7,7 +7,7 @@ @@ -80,8 +80,12 @@ const flowList = ref([]) //跳转详情 const toDetails = (item) => { //在起始页面跳转到details.vue页面并传递参数 + // uni.navigateTo({ + // url: '../detail/detail?goods=' + JSON.stringify(item) + // }); + uni.navigateTo({ - url: '../detail/detail?goods=' + JSON.stringify(item) + url: '../detail/detail?goods=' + encodeURIComponent(JSON.stringify(item)) }); } //获取轮播图数据