Commit 40716d9400eca7220602414e3b6cef9159bfcea8

Authored by yvan.ni
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 //--多个删除购物车商品---
... ...