get_praise(obj) { var user_id = this.user.user_id; this.$get("~/api/praise/count?", { source_table: "dish_information", source_field: "dish_information_id", source_id: obj["dish_information_id"] }, (res) => { if (res.result || res.result === 0) { this.praise = res.result; console.log("点赞数:" ,res.result); } else if (res.error){ this.$toast(res.error.message); console.error(res.error); } }); this.$get("~/api/praise/count?", { source_table: "dish_information", source_field: "dish_information_id", source_id: obj["dish_information_id"], user_id }, (res) => { if (res.result || res.result === 0) { this.state_praise = res.result ? true : false; console.log("点赞状态:" ,res.result); } else if (res.error){ this.$toast(res.error.message); console.error(res.error); } }) },
时间: 2023-12-06 14:42:33 浏览: 81
这段代码是一个 Vue.js 组件中的一个方法,用于获取某个菜品信息的点赞数和当前用户是否点过赞。具体来说,该方法会向服务器发送两个 GET 请求,分别获取菜品信息的点赞数和当前用户是否已点赞。其中,`obj` 是包含菜品信息的对象,`this.user.user_id` 是当前用户的 ID。
第一个 GET 请求会向 `~/api/praise/count?` 发送请求,参数包括 `source_table`(来源表格,这里是 "dish_information")、`source_field`(来源字段,这里是 "dish_information_id")和 `source_id`(来源 ID,这里是 `obj["dish_information_id"]`),用于获取菜品信息的点赞数。如果请求成功,返回的结果会保存在 `this.praise` 中,表示点赞数。如果请求失败,会通过 `$toast` 方法弹出错误信息。
第二个 GET 请求同样向 `~/api/praise/count?` 发送请求,参数包括 `source_table`、`source_field`、`source_id` 和 `user_id`(用户 ID,这里是 `this.user.user_id`),用于获取当前用户是否已经点过赞。如果请求成功,返回的结果会保存在 `this.state_praise` 中,表示当前用户是否已经点过赞。如果请求失败,同样会通过 `$toast` 方法弹出错误信息。
相关问题
change_praise(obj) { var user_id = this.user.user_id; var query = { source_table: "dish_information", source_field: "dish_information_id", source_id: this.obj["dish_information_id"], user_id }; var _this = this; _this.obj.praise_len = parseInt(_this.obj.praise_len) // 点赞状态 if (this.state_praise) { this.state_praise = false; this.$get('~/api/praise/del?', query, (res) => { if(res.result){ var praise_len = _this.obj.praise_len-1 this.$post('~/api/dish_information/set?dish_information_id=' + _this.obj["dish_information_id"], { praise_len }, (res) => { if(res.result){ console.log("添加点赞数状态:" ,res.result); } else if(res.error){ console.error(res.error); } }); this.$toast("取消点赞"); } else if (res.error){ this.$toast(res.error.message); console.error(res.error); } }); } else { this.state_praise = true; this.$post('~/api/praise/add?', query, (res) => { if (res.result) { var praise_len = _this.obj.praise_len+1 this.$post('~/api/dish_information/set?dish_information_id=' + _this.obj["dish_information_id"], { praise_len }, (res) => { if(res.result){ console.log("添加点赞数状态:" ,res.result); } else if(res.error){ console.error(res.error); } }); this.$toast("点赞成功"); } else if (res.error) { this.$toast(res.error.message); console.error(res.error); } }); }; },
这是一个 Vue.js 中的方法,用于处理点赞操作。当用户点击点赞按钮时,会调用该方法。它会根据当前点赞状态来决定是添加点赞还是取消点赞,并相应地更新点赞数和状态。具体实现过程中,它会向服务器发送请求来添加或删除点赞,并通过回调函数来处理服务器返回的结果。其中,obj 是一个包含菜品信息的对象,state_praise 是一个布尔值,表示当前的点赞状态。
data(){ return{ url_get_obj: "~/api/dish_information/get_obj?", field: "dish_information_id", obj: { "praise_len": 0, }, query: { "dish_no": "", "type_of_dish": "", "name_of_dish": "", "price_of_dishes": "", "picture_of_dishes": "", "introduction_details": "", "dish_information_id":0, }, // 点赞 praise: 0, // 点赞状态 state_praise: false, // 收藏状态 state_collect: false, list_comment: [], form_comment: { source_table: "dish_information", source_field: "dish_information_id", source_id: 0, reply_to_id: 0, }, count_pages: 1, // 页面数 } },
这是一个Vue.js组件的data部分。
- `url_get_obj` 是一个API接口的URL,用于获取菜品信息。
- `field` 是作为查询参数的字段名,用于查询菜品信息。
- `obj` 是一个对象,表示菜品信息,其中 `praise_len` 表示点赞数。
- `query` 是一个对象,表示查询参数,包括菜品编号、类型、名称、价格、图片和介绍等信息。
- `praise` 表示点赞数。
- `state_praise` 表示点赞状态,初始值为false。
- `state_collect` 表示收藏状态,初始值为false。
- `list_comment` 是一个数组,表示评论列表。
- `form_comment` 是一个对象,表示评论表单,包括评论的来源表、来源字段、来源ID和回复ID等信息。
- `count_pages` 表示页面数,初始值为1。
阅读全文