收藏功能
This commit is contained in:
parent
610af145d7
commit
ea34fe93f5
@ -14,7 +14,7 @@
|
|||||||
<view class="iconfont icon-zhuanfa open_type_button_wrap">
|
<view class="iconfont icon-zhuanfa open_type_button_wrap">
|
||||||
<button class="open_type_button" open-type="share">分享按钮</button>
|
<button class="open_type_button" open-type="share">分享按钮</button>
|
||||||
</view>
|
</view>
|
||||||
<view class="iconfont icon-shoucang1"></view>
|
<view class="iconfont icon-shoucang1" @tap="collectHandle" :class="isCollect?'icon-shoucang':'icon-shoucang1'"></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="title">
|
<view class="title">
|
||||||
{{goods_name}}
|
{{goods_name}}
|
||||||
@ -40,7 +40,7 @@
|
|||||||
<view class="iconfont icon-gouwuche"></view>
|
<view class="iconfont icon-gouwuche"></view>
|
||||||
<text class="icon_btn_text">购物车</text>
|
<text class="icon_btn_text">购物车</text>
|
||||||
</navigator>
|
</navigator>
|
||||||
<view class="button">加入购物车</view>
|
<view class="button" @tap="addToCartHandle">加入购物车</view>
|
||||||
<view class="button">立即购买</view>
|
<view class="button">立即购买</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@ -56,14 +56,19 @@ export default {
|
|||||||
goods_name: "商品名称",
|
goods_name: "商品名称",
|
||||||
goods_price: "0",
|
goods_price: "0",
|
||||||
goods_introduce: "",
|
goods_introduce: "",
|
||||||
|
isCollect: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad( {goods_id} ){
|
onLoad( {goods_id} ){
|
||||||
console.log(goods_id)
|
console.log(goods_id)
|
||||||
this.goods_id = goods_id
|
this.goods_id = goods_id
|
||||||
this.getGoodsDetail()
|
this.getGoodsDetail()
|
||||||
|
// 页面加载的时候,查找本地存储当前商品是否已经被收藏了
|
||||||
|
const collectList = uni.getStorageSync("collectList") || [];
|
||||||
|
this.isCollect = collectList.some((item) => item.goods_id === goods_id)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 获取商品信息
|
||||||
async getGoodsDetail(){
|
async getGoodsDetail(){
|
||||||
const { pics, goods_name, goods_price, goods_introduce } = (await this.$u.api.getGoodsDetail({ goods_id: this.goods_id })).message
|
const { pics, goods_name, goods_price, goods_introduce } = (await this.$u.api.getGoodsDetail({ goods_id: this.goods_id })).message
|
||||||
this.pics = pics
|
this.pics = pics
|
||||||
@ -81,10 +86,46 @@ export default {
|
|||||||
this.goods_introduce = htmlStr
|
this.goods_introduce = htmlStr
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 大图预览
|
||||||
showBigImgHandle(current){
|
showBigImgHandle(current){
|
||||||
const urls = this.pics.map(item => item.pics_big)
|
const urls = this.pics.map(item => item.pics_big)
|
||||||
uni.previewImage({ urls, current })
|
uni.previewImage({ urls, current })
|
||||||
//Array.<string> 数组内是字符串格式
|
//Array.<string> 数组内是字符串格式
|
||||||
|
},
|
||||||
|
|
||||||
|
// 收藏. 本地存储
|
||||||
|
collectHandle(){
|
||||||
|
const goodsObj = {
|
||||||
|
goods_id: this.goods_id,
|
||||||
|
goods_small_logo: this.goods_small_logo,
|
||||||
|
goods_price: this.goods_price,
|
||||||
|
goods_name: this.goods_name,
|
||||||
|
}
|
||||||
|
// 从本地读取
|
||||||
|
const collectList = uni.getStorageSync("collectList") || [];
|
||||||
|
const index = collectList.findIndex(
|
||||||
|
(item) => item.goods_id === this.goods_id
|
||||||
|
)
|
||||||
|
if(index === -1) {
|
||||||
|
// 未存在便添加
|
||||||
|
collectList.push(goodsObj)
|
||||||
|
}else{
|
||||||
|
// 已存在便删除
|
||||||
|
// splice() 方法用于添加或删除数组中的元素
|
||||||
|
// 第一个参数表示从哪开始, 第二个参数表示删除几个
|
||||||
|
// 会改变原数组
|
||||||
|
collectList.splice(index, 1)
|
||||||
|
}
|
||||||
|
// 更新本地存储
|
||||||
|
uni.setStorageSync("collectList", collectList)
|
||||||
|
// 状态翻转
|
||||||
|
this.isCollect = !this.isCollect
|
||||||
|
},
|
||||||
|
|
||||||
|
// 添加到购物车
|
||||||
|
addToCartHandle(){
|
||||||
|
console.log('加入购物车')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -106,6 +147,9 @@ export default {
|
|||||||
}
|
}
|
||||||
.info {
|
.info {
|
||||||
padding: 20rpx 30rpx;
|
padding: 20rpx 30rpx;
|
||||||
|
.icon-shoucang {
|
||||||
|
color: #fcaa23;
|
||||||
|
}
|
||||||
.info_head {
|
.info_head {
|
||||||
display: flex;
|
display: flex;
|
||||||
.price {
|
.price {
|
||||||
|
Loading…
Reference in New Issue
Block a user