Bundle.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * @params sumary Map() 所有数据的集合
  3. * @params bundling Map() 套装数据的集合
  4. * @params goods_list 需要遍历的数据 array, 每个item是object, goods_id, goods_num, bl_id // bl_id > 0,查bundling 反之goods_id查sumary
  5. */
  6. // bl_id: 12, bl_name: "222", bl_price: 122, goods: Array(4), goods_num: 3 有套餐返回的数据样式, 渲染时判断bl_id 再循环goods即可。。。 goods_num通用
  7. // goods_id: 4807, goods_num: 1, bl_id: 0, goods_summary{} 无套餐返回的数据样式, 渲染时取goods_summary数据即可
  8. export default class Bundle {
  9. constructor(goods_list,sumary,bundling) {
  10. this.goods_list = goods_list
  11. this.sumary = sumary
  12. this.bundling = bundling
  13. // this.createOrders()
  14. }
  15. createOrders() {
  16. let arr = []
  17. this.goods_list.forEach(item => {
  18. if(item['bl_id'] > 0) {
  19. // 有套餐, 生成套餐数据
  20. let data = this.createBuildings(item)
  21. data = Object.assign({}, item, data)
  22. // data['goods_num'] = item['goods_num']
  23. let totalPrice = 0;
  24. data['goods'].forEach(value => {
  25. value['goods_summary'] = this.sumary.get(value['goods_id'])
  26. value['goods_summary']['goods_price'] = parseFloat(value['goods_summary']['goods_price'])
  27. totalPrice += value['goods_summary']['goods_price']
  28. })
  29. data['totalPrice'] = totalPrice
  30. arr.push(data)
  31. }
  32. else {
  33. let defaultData = this.createDefault(item)
  34. item['goods_summary'] = defaultData
  35. item['goods_summary']['bonus_price'] = parseFloat(item['goods_summary']['bonus_price'])
  36. item['goods_summary']['goods_promotion_price'] = parseFloat(item['goods_summary']['goods_promotion_price'])
  37. item['goods_summary']['goods_price'] = parseFloat(item['goods_summary']['goods_price'])
  38. arr.push(item)
  39. }
  40. })
  41. return arr
  42. }
  43. createBuildings(item) {
  44. return this.bundling.get(item['bl_id'])
  45. }
  46. createDefault(item) {
  47. return this.sumary.get(item['goods_id'])
  48. }
  49. }