1.wxml
<view class="lis">
<view>{{goodsitem.id}}</view>
<view>{{goodsitem.goods_name}}</view>
<view>{{goodsitem.goods_price}}</view>
<view>{{goodsitem.goods_desc}}</view>
<view wx:if="{{sign == 1}}" bindtap="click" data-id="{{goodsitem.id}}">
<l-icon name="user" size="40"/>
</view>
<view wx:if="{{sign == 0}}" bindtap="click" data-id="{{goodsitem.id}}">
<l-icon name="like" size="40"/>
</view>
</view>
2.js
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let that = this
wx.request({
url: 'http://www.wenk.com/index.php/admin/goodsitem', //仅为示例,并非真实的接口地址
data: {
id:options.id
},
success (res) {
console.log(res.data.data)
if (res.data.code == 250) {
that.setData({
sign:0,
goodsitem:res.data.data
})
}
if (res.data.code == 200) {
that.setData({
sign:1,
goodsitem:res.data.data
})
}
}
})
},
click(c){
var that = this
var id = c.currentTarget.dataset.id
//点赞
wx.request({
url: 'http://www.wenk.com/index.php/admin/goodslike',
data:{
id:id
},
success (res) {
console.log(res.data)
if (res.data.code == 250) {
that.setData({
sign:0
})
}
if (res.data.code == 200) {
that.setData({
sign:1
})
}
}
})
},
3. 详情API接口、收藏API接口
/**
* 详情、且查询是否收藏
* @return \think\response\Json
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function goodsitem(){
$id = \request()->get('id');
$data = (new \app\admin\model\Goods())->where('id',$id)->find();
//获取用户id
$uid = 1;
//判断是否收藏
$sing = (new Praise())->where('wid',$id)->where('uid',$uid)->find();
if ($sing){
return json(['code' => 200,'data' => $data]);
}
return json(['code' => 250,'data' => $data]);
}
/**
* 点赞收藏
* @return \think\response\Json
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function goodslike()
{
$uid = 1;
$wid = input('id');
$data = [
'uid' => $uid,
'wid' => $wid
];
//判断是否收藏过
$likedata = (new Praise())->where('uid',$uid)->where('wid',$wid)->find();
if ($likedata == null){
(new Praise())->insert($data);
return json(['code' => 200,'msg' => '收藏成功']);
}
//已收藏则删除数据
(new Praise())->where('uid',$uid)->where('wid',$wid)->delete();
return json(['code' => 250,'msg' => '取消成功']);
}
4.未收藏
已收藏
取消收藏