Commit 40716d9400eca7220602414e3b6cef9159bfcea8
1 parent
74d10292
购物车的bug优化
Showing
1 changed file
with
210 additions
and
18 deletions
pages/cart/cart/cart.js
| ... | ... | @@ -552,23 +552,42 @@ Page({ | 
| 552 | 552 | |
| 553 | 553 | var by_map = null; | 
| 554 | 554 | |
| 555 | - //--要获得商品,该用户买了多少件,同步应用-- | |
| 556 | - await getApp().request.promiseGet("/api/weshop/ordergoods/listUserBuyGoodsNum", { | |
| 557 | - data: { | |
| 558 | - store_id: oo.stoid, | |
| 559 | - user_id: user_id, | |
| 560 | - goods_ids: g_arr.join(','), | |
| 555 | + // //--要获得商品,该用户买了多少件,同步应用-- | |
| 556 | + // await getApp().request.promiseGet("/api/weshop/ordergoods/listUserBuyGoodsNum", { | |
| 557 | + // data: { | |
| 558 | + // store_id: oo.stoid, | |
| 559 | + // user_id: user_id, | |
| 560 | + // goods_ids: g_arr.join(','), | |
| 561 | + // | |
| 562 | + // }, | |
| 563 | + // }).then(res => { | |
| 564 | + // if (ut.ajax_ok2(res)) { | |
| 565 | + // by_map = {}; | |
| 566 | + // for (let i in res.data.data) { | |
| 567 | + // let item = res.data.data[i]; | |
| 568 | + // by_map[item.goods_id] = item; | |
| 569 | + // } | |
| 570 | + // } | |
| 571 | + // }) | |
| 572 | + | |
| 573 | + | |
| 574 | + for (let ir = 0; ir < g_arr.length; ir++) { | |
| 575 | + let gg_it=g_arr[ir]; | |
| 576 | + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { | |
| 577 | + data: { | |
| 578 | + store_id: oo.stoid, | |
| 579 | + user_id: user_id, | |
| 580 | + goods_ids: gg_it, | |
| 581 | + isnew:1 | |
| 582 | + }, | |
| 583 | + }).then(tt => { | |
| 584 | + if (tt.data.code == 0) { | |
| 585 | + if(!by_map) by_map={}; | |
| 586 | + by_map[gg_it] = tt.data.data; | |
| 587 | + } | |
| 588 | + }) | |
| 589 | + } | |
| 561 | 590 | |
| 562 | - }, | |
| 563 | - }).then(res => { | |
| 564 | - if (ut.ajax_ok2(res)) { | |
| 565 | - by_map = {}; | |
| 566 | - for (let i in res.data.data) { | |
| 567 | - let item = res.data.data[i]; | |
| 568 | - by_map[item.goods_id] = item; | |
| 569 | - } | |
| 570 | - } | |
| 571 | - }) | |
| 572 | 591 | |
| 573 | 592 | for (var i = 0; i < carr.length; i++) { | 
| 574 | 593 | var item = carr[i]; | 
| ... | ... | @@ -1464,6 +1483,50 @@ Page({ | 
| 1464 | 1483 | t_num = 0, | 
| 1465 | 1484 | text_arr = ""; | 
| 1466 | 1485 | |
| 1486 | + | |
| 1487 | + if(this.data.is_edit){ | |
| 1488 | + let val=!e.data.checkAllToggle; | |
| 1489 | + if (dda && dda.length > 0) { | |
| 1490 | + for (var i = 0; i < dda.length; i++) { | |
| 1491 | + var item = dda[i].goods; | |
| 1492 | + | |
| 1493 | + var txt0 = "requestData[" + i + "].selected"; | |
| 1494 | + this.setData({ | |
| 1495 | + [txt0]: val, | |
| 1496 | + }); | |
| 1497 | + | |
| 1498 | + for (var j = 0; j < item.length; j++) { | |
| 1499 | + let txt = "requestData[" + i + "].goods[" + j + "].selected"; | |
| 1500 | + e.setData({ | |
| 1501 | + [txt]: val, | |
| 1502 | + }); | |
| 1503 | + } | |
| 1504 | + } | |
| 1505 | + } | |
| 1506 | + if (sdda && sdda.length > 0) { | |
| 1507 | + for (i = 0; i < sdda.length; i++) { | |
| 1508 | + var item1 = sdda[i].goods; | |
| 1509 | + | |
| 1510 | + var txt00 = "service_data[" + i + "].selected"; | |
| 1511 | + this.setData({ | |
| 1512 | + [txt00]: val, | |
| 1513 | + }); | |
| 1514 | + | |
| 1515 | + for (j = 0; j < item1.length; j++) { | |
| 1516 | + let txt1 = "service_data[" + i + "].goods[" + j + "].selected"; | |
| 1517 | + e.setData({ | |
| 1518 | + [txt1]: val, | |
| 1519 | + }); | |
| 1520 | + } | |
| 1521 | + } | |
| 1522 | + } | |
| 1523 | + | |
| 1524 | + e.setData({ | |
| 1525 | + checkAllToggle: val, | |
| 1526 | + }) | |
| 1527 | + return false; | |
| 1528 | + } | |
| 1529 | + | |
| 1467 | 1530 | if (e.data.requestData && e.data.requestData.length > 0 && | 
| 1468 | 1531 | e.data.service_data && e.data.service_data.length > 0) { | 
| 1469 | 1532 | wx.showModal({ | 
| ... | ... | @@ -1498,6 +1561,46 @@ Page({ | 
| 1498 | 1561 | for (var j = 0; j < item.length; j++) { | 
| 1499 | 1562 | if (item[j].is_gift) continue; | 
| 1500 | 1563 | var obj = JSON.parse(JSON.stringify(item[j])); | 
| 1564 | + var gd_info=obj; | |
| 1565 | + | |
| 1566 | + if (!gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 && !gd_info.selected && th.data.sales_rules >= 2) { | |
| 1567 | + var ob = {}; | |
| 1568 | + await th.check_down_line_next(gd_info, i, j, gd_info.erpwareid, function (res) { | |
| 1569 | + ob = res; | |
| 1570 | + }); | |
| 1571 | + | |
| 1572 | + if (ob.code == -1) { | |
| 1573 | + | |
| 1574 | + wx.showToast({ | |
| 1575 | + title: gd_info.goods_name+'购买数量超出商品库存', | |
| 1576 | + icon: 'none', | |
| 1577 | + }); | |
| 1578 | + | |
| 1579 | + return false; | |
| 1580 | + } else { | |
| 1581 | + if (th.data.sales_rules == 3) { | |
| 1582 | + var goods_id = gd_info.goods_id; | |
| 1583 | + var num = 0; | |
| 1584 | + | |
| 1585 | + for (let ii = 0; ii< th.data.requestData.length; ii++) { | |
| 1586 | + if (i == ii) continue; | |
| 1587 | + var it = th.data.requestData[ii].goods.find((e) => { | |
| 1588 | + return e.goods_id == goods_id; | |
| 1589 | + }) | |
| 1590 | + if (it && it.selected) num += it.goods_num | |
| 1591 | + } | |
| 1592 | + | |
| 1593 | + if (num > ob.CanOutQty) { | |
| 1594 | + wx.showToast({ | |
| 1595 | + title: gd_info.goods_name+'购买数量超出商品库存', | |
| 1596 | + icon: 'none', | |
| 1597 | + }); | |
| 1598 | + return false; | |
| 1599 | + } | |
| 1600 | + } | |
| 1601 | + } | |
| 1602 | + } | |
| 1603 | + | |
| 1501 | 1604 | |
| 1502 | 1605 | |
| 1503 | 1606 | //-- 判断起购数量 -- | 
| ... | ... | @@ -1734,6 +1837,20 @@ Page({ | 
| 1734 | 1837 | }); | 
| 1735 | 1838 | |
| 1736 | 1839 | if (!sele) { | 
| 1840 | + | |
| 1841 | + //编辑不管判断了 | |
| 1842 | + if(this.data.is_edit){ | |
| 1843 | + for (var im = 0; im < item.length; im++) { | |
| 1844 | + let pro_off1 = false | |
| 1845 | + var txt = "requestData[" + pitems + "].goods[" + im + "].selected"; | |
| 1846 | + this.setData({[txt]:1}) | |
| 1847 | + } | |
| 1848 | + | |
| 1849 | + var txt0 = "requestData[" + pitems + "].selected"; | |
| 1850 | + this.setData({[txt0]:1}) | |
| 1851 | + return false; | |
| 1852 | + } | |
| 1853 | + | |
| 1737 | 1854 | var check_is_service_selected = 0; | 
| 1738 | 1855 | for (var ii in garr) { | 
| 1739 | 1856 | for (var ij in garr[ii].goods) { | 
| ... | ... | @@ -1797,7 +1914,7 @@ Page({ | 
| 1797 | 1914 | if (ob.code == -1) { | 
| 1798 | 1915 | |
| 1799 | 1916 | wx.showToast({ | 
| 1800 | - title: '购买数量超出商品库存', | |
| 1917 | + title: gd_info.goods_name+'购买数量超出商品库存', | |
| 1801 | 1918 | icon: 'none', | 
| 1802 | 1919 | }); | 
| 1803 | 1920 | |
| ... | ... | @@ -1817,7 +1934,7 @@ Page({ | 
| 1817 | 1934 | |
| 1818 | 1935 | if (num > ob.CanOutQty) { | 
| 1819 | 1936 | wx.showToast({ | 
| 1820 | - title: '购买数量超出商品库存', | |
| 1937 | + title: gd_info.goods_name+'购买数量超出商品库存', | |
| 1821 | 1938 | icon: 'none', | 
| 1822 | 1939 | }); | 
| 1823 | 1940 | return false; | 
| ... | ... | @@ -1963,6 +2080,15 @@ Page({ | 
| 1963 | 2080 | var garr = e.data.service_data; | 
| 1964 | 2081 | |
| 1965 | 2082 | if (!a.selected) { | 
| 2083 | + | |
| 2084 | + //如果是标记的时候 | |
| 2085 | + if(this.data.is_edit){ | |
| 2086 | + var txt = "requestData[" + pitems + "].goods[" + item + "].selected"; | |
| 2087 | + this.setData({[txt]:1}) | |
| 2088 | + return false; | |
| 2089 | + } | |
| 2090 | + | |
| 2091 | + | |
| 1966 | 2092 | var check_is_service_selected = 0; | 
| 1967 | 2093 | for (var ii in garr) { | 
| 1968 | 2094 | for (var ij in garr[ii].goods) { | 
| ... | ... | @@ -2127,6 +2253,17 @@ Page({ | 
| 2127 | 2253 | iarr = item; | 
| 2128 | 2254 | |
| 2129 | 2255 | if (!sele) { | 
| 2256 | + | |
| 2257 | + //编辑不管判断了 | |
| 2258 | + if(this.data.is_edit){ | |
| 2259 | + for (var im = 0; im < item.length; im++) { | |
| 2260 | + let pro_off1 = false | |
| 2261 | + var txt = "service_data[" + pitems + "].goods[" + im + "].selected"; | |
| 2262 | + this.setData({[txt]:1}) | |
| 2263 | + } | |
| 2264 | + return false; | |
| 2265 | + } | |
| 2266 | + | |
| 2130 | 2267 | var check_is_goods_selected = 0; | 
| 2131 | 2268 | for (var ii in garr) { | 
| 2132 | 2269 | for (var ij in garr[ii].goods) { | 
| ... | ... | @@ -2172,6 +2309,16 @@ Page({ | 
| 2172 | 2309 | var garr = e.data.requestData; | 
| 2173 | 2310 | |
| 2174 | 2311 | if (!a.selected) { | 
| 2312 | + | |
| 2313 | + if(this.data.is_edit){ | |
| 2314 | + var txt = "service_data[" + pitems + "].goods[" + item + "].selected"; | |
| 2315 | + e.setData({ | |
| 2316 | + [txt]: 1, | |
| 2317 | + }); | |
| 2318 | + return false; | |
| 2319 | + } | |
| 2320 | + | |
| 2321 | + | |
| 2175 | 2322 | var check_is_goods_selected = 0; | 
| 2176 | 2323 | for (var ii in garr) { | 
| 2177 | 2324 | for (var ij in garr[ii].goods) { | 
| ... | ... | @@ -3938,6 +4085,51 @@ Page({ | 
| 3938 | 4085 | this.setData({ | 
| 3939 | 4086 | is_edit: type | 
| 3940 | 4087 | }); | 
| 4088 | + | |
| 4089 | + let dda = this.data.requestData; | |
| 4090 | + let sdda = this.data.service_data; | |
| 4091 | + | |
| 4092 | + //清空选中的状态 | |
| 4093 | + if (dda && dda.length > 0) { | |
| 4094 | + for (var i = 0; i < dda.length; i++) { | |
| 4095 | + var item = dda[i].goods; | |
| 4096 | + var txt0 = "requestData[" + i + "].selected"; | |
| 4097 | + this.setData({ | |
| 4098 | + [txt0]: 0, | |
| 4099 | + }); | |
| 4100 | + | |
| 4101 | + for (var j = 0; j < item.length; j++) { | |
| 4102 | + let txt = "requestData[" + i + "].goods[" + j + "].selected"; | |
| 4103 | + this.setData({ | |
| 4104 | + [txt]: 0, | |
| 4105 | + }); | |
| 4106 | + } | |
| 4107 | + } | |
| 4108 | + } | |
| 4109 | + | |
| 4110 | + //清空选中的状态 | |
| 4111 | + if (sdda && sdda.length > 0) { | |
| 4112 | + for (i = 0; i < sdda.length; i++) { | |
| 4113 | + var item1 = sdda[i].goods; | |
| 4114 | + var txt00 = "service_data[" + i + "].selected"; | |
| 4115 | + this.setData({ | |
| 4116 | + [txt00]: 0, | |
| 4117 | + }); | |
| 4118 | + | |
| 4119 | + for (j = 0; j < item1.length; j++) { | |
| 4120 | + let txt1 = "service_data[" + i + "].goods[" + j + "].selected"; | |
| 4121 | + this.setData({ | |
| 4122 | + [txt1]: 0, | |
| 4123 | + }); | |
| 4124 | + } | |
| 4125 | + } | |
| 4126 | + } | |
| 4127 | + | |
| 4128 | + this.setData({ | |
| 4129 | + checkAllToggle: 0, | |
| 4130 | + }) | |
| 4131 | + | |
| 4132 | + | |
| 3941 | 4133 | }, | 
| 3942 | 4134 | |
| 3943 | 4135 | //--多个删除购物车商品--- | ... | ... |