addCartModel.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import { API } from "../../service/api";
  2. // components/addCartModel/addCartModel.js
  3. Component({
  4. properties: {
  5. visible: {
  6. type: Boolean,
  7. value: false
  8. },
  9. product: {
  10. type: Object,
  11. value: {}
  12. }
  13. },
  14. data: {
  15. selectedSpecs: [], // 选择的规格索引 [0,1]表示第一个规格的第0个选项,第二个规格的第1个选项
  16. quantity: 1,
  17. selectIndex:0, // 属性索引
  18. },
  19. observers: {
  20. 'product': function(specs) {
  21. // console.log("888888888888",specs);
  22. specs && this.getProdDetail(specs);
  23. }
  24. },
  25. methods: {
  26. // 获取商品详情
  27. getProdDetail(e){
  28. let data = {
  29. pageNum:1,
  30. pageSize:1,
  31. mercId:e.mercId,
  32. prodId:e.prodId
  33. }
  34. API.getProdDetail(data).then(res=>{
  35. this.setData({
  36. productDetail:res
  37. })
  38. })
  39. },
  40. // 关闭模态框
  41. handleClose() {
  42. this.triggerEvent('close');
  43. },
  44. // 选择属性
  45. selectSpec(e) {
  46. let index = e.currentTarget.dataset.index;
  47. let availQty = this.data.productDetail.prodAttrList[index].availQty;
  48. this.setData({
  49. selectIndex:index,
  50. quantity:availQty > 0?1:0
  51. });
  52. },
  53. // 添加数量
  54. increaseQuantity() {
  55. const { quantity, productDetail,selectIndex } = this.data;
  56. if (quantity < productDetail.prodAttrList[selectIndex].availQty) {
  57. this.setData({ quantity: quantity + 1 });
  58. }
  59. },
  60. // 减少数量
  61. decreaseQuantity() {
  62. const { quantity } = this.data;
  63. if (quantity > 1) {
  64. this.setData({ quantity: quantity - 1 });
  65. }
  66. },
  67. handleAddToCart() {
  68. let {mercId,prodAttrList,prodId} = this.data.productDetail;
  69. const cartItem = {
  70. prodAttrId: prodAttrList[this.data.selectIndex].prodAttrId,
  71. mercId,
  72. prodId,
  73. count:this.data.quantity
  74. };
  75. API.addCarts(cartItem).then(res=>{
  76. // 可以显示添加成功的提示
  77. wx.showToast({
  78. title: '已加入购物车',
  79. icon: 'success'
  80. });
  81. this.triggerEvent('close', { item: cartItem });
  82. })
  83. }
  84. },
  85. computed: {
  86. }
  87. });