car.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835
  1. // pages/car/car.js
  2. var util = require('../../utils/util.js');
  3. var app = getApp()
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. allselect: false,
  10. theme_type: '',
  11. loadover: false,
  12. allnum: 0,
  13. tablebar: 3,
  14. allcount: "0.00",
  15. recount: "0.00",
  16. carts: []
  17. },
  18. //编辑点击事件处理函数
  19. edit: function (e) {
  20. var index = parseInt(e.target.dataset.index);
  21. this.data.carts[index].caredit = "none";
  22. this.data.carts[index].finish = "inline";
  23. for (var i = 0; i < this.data.carts[index].shopcarts.length; i++) {
  24. this.data.carts[index].shopcarts[i].edit = "none";
  25. this.data.carts[index].shopcarts[i].finish = "inline";
  26. this.data.carts[index].shopcarts[i].description = "onedit-description";
  27. this.data.carts[index].shopcarts[i].cartype = "block";
  28. }
  29. this.setData({
  30. carts: this.data.carts
  31. })
  32. }, //完成点击事件处理函数
  33. finish: function (e) {
  34. var index = parseInt(e.target.dataset.index);
  35. this.data.carts[index].caredit = "inline";
  36. this.data.carts[index].finish = "none";
  37. for (var i = 0; i < this.data.carts[index].shopcarts.length; i++) {
  38. this.data.carts[index].shopcarts[i].edit = "inline";
  39. this.data.carts[index].shopcarts[i].finish = "none";
  40. this.data.carts[index].shopcarts[i].description = "description";
  41. this.data.carts[index].shopcarts[i].cartype = "inline";
  42. }
  43. this.setData({
  44. carts: this.data.carts
  45. })
  46. },
  47. goLink: function (event) {
  48. let link = event.currentTarget.dataset.link;
  49. wx.redirectTo({
  50. url: link
  51. })
  52. },
  53. goGoods: function (event) {
  54. let id = event.currentTarget.dataset.type;
  55. var pages_all = getCurrentPages();
  56. if (pages_all.length > 3) {
  57. wx.redirectTo({
  58. url: '/Snailfish_shop/pages/goods/index?id=' + id
  59. })
  60. } else {
  61. wx.navigateTo({
  62. url: '/Snailfish_shop/pages/goods/index?id=' + id
  63. })
  64. }
  65. },
  66. //店铺点击选择事件
  67. shopselect: function (e) {
  68. var index = parseInt(e.target.dataset.index);
  69. var allselect = this.data.allselect;
  70. var isselect = this.data.carts[index].isselect;
  71. var allnum = 0;
  72. var allcount = 0.00;
  73. var count = 0.00;
  74. if (isselect == true) {//店铺为选中状态
  75. this.data.carts[index].isselect = false;
  76. allselect = false;
  77. for (var i = 0; i < this.data.carts[index].shopcarts.length; i++) {//循环商店下商品,改成不选中
  78. if (this.data.carts[index].shopcarts[i].isselect == true) {
  79. this.data.carts[index].shopcarts[i].isselect = false;
  80. allnum = parseInt(allnum) + parseInt(this.data.carts[index].shopcarts[i].goodsnum);
  81. this.data.carts[index].goodstypeselect = this.data.carts[index].goodstypeselect - 1;
  82. }
  83. }
  84. allnum = this.data.allnum - allnum;//去除不选中商店的产品数量
  85. allcount = parseFloat(this.data.allcount) - parseFloat(this.data.carts[index].count);
  86. this.data.carts[index].count = "0.00";
  87. this.setData({
  88. carts: this.data.carts,
  89. allnum: allnum,
  90. allcount: allcount.toFixed(2),
  91. allselect: allselect
  92. });
  93. } else {
  94. var addcount = 0.00;
  95. this.data.carts[index].isselect = true;
  96. for (var i = 0; i < this.data.carts[index].shopcarts.length; i++) {
  97. if (this.data.carts[index].shopcarts[i].isselect == false) {
  98. this.data.carts[index].shopcarts[i].isselect = true;
  99. this.data.carts[index].goodstypeselect = this.data.carts[index].goodstypeselect + 1;
  100. allnum = parseInt(allnum) + parseInt(this.data.carts[index].shopcarts[i].goodsnum);
  101. addcount = addcount + parseFloat(this.data.carts[index].shopcarts[i].currntprice) * this.data.carts[index].shopcarts[i].goodsnum;
  102. }
  103. count = count + parseFloat(this.data.carts[index].shopcarts[i].currntprice) * this.data.carts[index].shopcarts[i].goodsnum;
  104. }
  105. allnum = this.data.allnum + allnum;
  106. allcount = parseFloat(this.data.allcount) + addcount;
  107. this.data.carts[index].count = count.toFixed(2);
  108. var flag = 1;
  109. for (var i in this.data.carts) {
  110. // for (var i = 0; i < this.data.carts.length; i++) {//是否是全部选中
  111. for (var j = 0; j < this.data.carts[i].shopcarts.length; j++)
  112. if (this.data.carts[i].shopcarts[j].isselect == false)
  113. flag = 0;
  114. }
  115. if (flag == 1) {//是全部选中
  116. allselect = true;
  117. }
  118. this.setData({
  119. carts: this.data.carts,
  120. allnum: allnum,
  121. allcount: allcount.toFixed(2),
  122. allselect: allselect
  123. });
  124. }
  125. this.go_record();
  126. },
  127. //点击商品选中事件函数
  128. goodsselect: function (e) {
  129. var parentid = parseInt(e.target.dataset.parentid);
  130. var index = parseInt(e.target.dataset.index);
  131. var allselect = this.data.allselect;
  132. var isselect = this.data.carts[parentid].shopcarts[index].isselect;
  133. console.log(isselect);
  134. if (isselect == true) {//商品选中状态
  135. this.data.carts[parentid].shopcarts[index].isselect = false;
  136. if (allselect)
  137. allselect = false;
  138. this.data.carts[parentid].goodstypeselect = parseInt(this.data.carts[parentid].goodstypeselect) - 1;
  139. if (this.data.carts[parentid].goodstypeselect <= 0) {//选中商品为0
  140. this.data.carts[parentid].isselect = false;
  141. }
  142. var allnum = parseInt(this.data.allnum) - parseInt(this.data.carts[parentid].shopcarts[index].goodsnum);
  143. var allcount = parseFloat(this.data.allcount) - parseFloat(this.data.carts[parentid].shopcarts[index].currntprice) * this.data.carts[parentid].shopcarts[index].goodsnum;
  144. var count = parseFloat(this.data.carts[parentid].count) - parseFloat(this.data.carts[parentid].shopcarts[index].currntprice) * this.data.carts[parentid].shopcarts[index].goodsnum;
  145. this.data.carts[parentid].count = count.toFixed(2);
  146. this.setData({
  147. carts: this.data.carts,
  148. allnum: allnum,
  149. allcount: allcount.toFixed(2),
  150. allselect: allselect
  151. });
  152. } else {//商品为非选中状态
  153. this.data.carts[parentid].shopcarts[index].isselect = true;
  154. this.data.carts[parentid].goodstypeselect = parseInt(this.data.carts[parentid].goodstypeselect) + 1;
  155. if (this.data.carts[parentid].goodstypeselect > 0) {//选中商品个数大于0
  156. this.data.carts[parentid].isselect = true;
  157. }
  158. console.log(this.data.carts);
  159. var flag = 1;
  160. //for (var i = 0; i < this.data.carts.length; i++) {//判断是否是全部选中
  161. for (var i in this.data.carts) {
  162. console.log('in');
  163. for (var j = 0; j < this.data.carts[i].shopcarts.length; j++)
  164. if (this.data.carts[i].shopcarts[j].isselect == false)
  165. flag = 0;
  166. }
  167. // console.log(flag);
  168. if (flag == 1) {//全部商品选中
  169. allselect = true;
  170. }
  171. var allnum = parseInt(this.data.allnum) + parseInt(this.data.carts[parentid].shopcarts[index].goodsnum);
  172. var allcount = parseFloat(this.data.allcount) + parseFloat(this.data.carts[parentid].shopcarts[index].currntprice) * this.data.carts[parentid].shopcarts[index].goodsnum;
  173. var count = parseFloat(this.data.carts[parentid].count) + parseFloat(this.data.carts[parentid].shopcarts[index].currntprice) * this.data.carts[parentid].shopcarts[index].goodsnum;
  174. this.data.carts[parentid].count = count.toFixed(2);
  175. this.setData({
  176. carts: this.data.carts,
  177. allnum: allnum,
  178. allcount: allcount.toFixed(2),
  179. allselect: allselect
  180. });
  181. }
  182. this.go_record();
  183. },
  184. //全部选中事件函数
  185. allselect: function (e) {
  186. var allselect = this.data.allselect;
  187. var carts = this.data.carts;
  188. if (allselect) {//点击前为全部选中状态
  189. allselect = false;
  190. var allnum = 0;
  191. var allcount = 0.00;
  192. for (var i in this.data.carts) {
  193. this.data.carts[i].count = "0.00";
  194. this.data.carts[i].isselect = false;
  195. this.data.carts[i].goodstypeselect = 0;
  196. for (var j in this.data.carts[i].shopcarts)
  197. this.data.carts[i].shopcarts[j].isselect = false;
  198. }
  199. this.setData({
  200. carts: this.data.carts,
  201. allnum: allnum,
  202. allcount: allcount.toFixed(2),
  203. allselect: allselect
  204. });
  205. } else {//点击前为不全部选址状态
  206. allselect = true;
  207. var allnum = 0;
  208. var allcount = 0.00;
  209. for (var i in this.data.carts) {
  210. var count = 0;
  211. this.data.carts[i].isselect = true;
  212. this.data.carts[i].goodstypeselect = this.data.carts[i].shopcarts.length;
  213. for (var j in this.data.carts[i].shopcarts) {
  214. count = count + parseFloat(this.data.carts[i].shopcarts[j].currntprice) * parseFloat(this.data.carts[i].shopcarts[j].goodsnum);
  215. allnum = parseInt(allnum) + parseInt(this.data.carts[i].shopcarts[j].goodsnum);
  216. this.data.carts[i].shopcarts[j].isselect = true;
  217. }
  218. this.data.carts[i].count = count.toFixed(2);
  219. allcount = allcount + count;
  220. }
  221. //console.log(this.data.carts);
  222. this.setData({
  223. carts: this.data.carts,
  224. allnum: allnum,
  225. allcount: allcount.toFixed(2),
  226. allselect: allselect
  227. });
  228. }
  229. this.go_record();
  230. },
  231. //减少商品数量函数
  232. regoodsnum: function (e) {
  233. var parentid = parseInt(e.target.dataset.parentid);
  234. var index = parseInt(e.target.dataset.index);
  235. var that = this;
  236. console.log(index);
  237. console.log(parentid);
  238. var goodsnum = this.data.carts[parentid].shopcarts[index].goodsnum;
  239. if (goodsnum == 1) {//减少前商品数量为1
  240. wx.showModal({
  241. title: '提示',
  242. content: '确定删除这件商品吗?',
  243. confirmColor: '#FF0000',
  244. success: function (res) {
  245. if (res.confirm) {
  246. var del_car_keys = that.data.carts[parentid].shopcarts[index].key;
  247. if (that.data.carts[parentid].shopcarts[index].isselect == true) {//商品为选中状态
  248. var allnum = that.data.allnum - 1;
  249. var allcount = parseFloat(that.data.allcount) - parseFloat(that.data.carts[parentid].shopcarts[index].currntprice);
  250. var count = parseFloat(that.data.carts[parentid].count) - parseFloat(that.data.carts[parentid].shopcarts[index].currntprice);
  251. that.data.carts[parentid].count = count.toFixed(2);
  252. that.data.carts[parentid].goodstype = that.data.carts[parentid].goodstype - 1;
  253. that.data.carts[parentid].goodstypeselect = that.data.carts[parentid].goodstypeselect - 1
  254. if (that.data.carts[parentid].goodstype == 0) {//购物车商店商品类别为0,去掉这个商店
  255. that.data.carts.splice(parentid, 1)
  256. } else {//不为0,去掉这个商品
  257. that.data.carts[parentid].shopcarts.splice(index, 1);
  258. }
  259. that.setData({
  260. carts: that.data.carts,
  261. allnum: allnum,
  262. allcount: allcount.toFixed(2),
  263. });
  264. } else {//商品为非选中状态
  265. that.data.carts[parentid].goodstype = that.data.carts[parentid].goodstype - 1;
  266. if (that.data.carts[parentid].goodstype == 0) {
  267. that.data.carts.splice(parentid, 1)
  268. } else {
  269. that.data.carts[parentid].shopcarts.splice(index, 1);
  270. }
  271. that.setData({
  272. carts: that.data.carts
  273. });
  274. }
  275. that.del_car_goods(del_car_keys);
  276. }
  277. }
  278. })
  279. } else {//减少前商品的数量不为1
  280. if (this.data.carts[parentid].shopcarts[index].isselect == true) {//商品为选中状态
  281. var allnum = parseInt(this.data.allnum) - 1;
  282. var allcount = parseFloat(this.data.allcount) - parseFloat(this.data.carts[parentid].shopcarts[index].currntprice);
  283. var count = parseFloat(this.data.carts[parentid].count) - parseFloat(this.data.carts[parentid].shopcarts[index].currntprice);
  284. that.data.carts[parentid].count = count.toFixed(2);
  285. this.data.carts[parentid].shopcarts[index].goodsnum = this.data.carts[parentid].shopcarts[index].goodsnum - 1;
  286. this.setData({
  287. carts: this.data.carts,
  288. allnum: allnum,
  289. allcount: allcount.toFixed(2),
  290. });
  291. } else {//商品为非选中状态
  292. this.data.carts[parentid].shopcarts[index].goodsnum = parseInt(this.data.carts[parentid].shopcarts[index].goodsnum) - 1;
  293. this.setData({
  294. carts: this.data.carts
  295. });
  296. }
  297. }
  298. that.go_record();
  299. },
  300. //添加商品数量函数
  301. addgoodsnum: function (e) {
  302. var parentid = parseInt(e.target.dataset.parentid);
  303. var index = parseInt(e.target.dataset.index);
  304. var that = this;
  305. var max_quantity = parseInt(this.data.carts[parentid].shopcarts[index].max_quantity);
  306. if (this.data.carts[parentid].shopcarts[index].isselect == true) {//商品为选中状态
  307. var allnum = parseInt(this.data.allnum) + 1;
  308. var allcount = parseFloat(this.data.allcount) + parseFloat(this.data.carts[parentid].shopcarts[index].currntprice);
  309. var count = parseFloat(this.data.carts[parentid].count) + parseFloat(this.data.carts[parentid].shopcarts[index].currntprice);
  310. that.data.carts[parentid].count = count.toFixed(2);
  311. if (this.data.carts[parentid].shopcarts[index].goodsnum < max_quantity) {
  312. this.data.carts[parentid].shopcarts[index].goodsnum = parseInt(this.data.carts[parentid].shopcarts[index].goodsnum) + 1;
  313. } else {
  314. this.data.carts[parentid].shopcarts[index].goodsnum = max_quantity;
  315. allnum--;
  316. var msg = '最多购买' + max_quantity + '个';
  317. wx.showToast({
  318. title: msg,
  319. icon: 'none',
  320. duration: 2000
  321. })
  322. return false;
  323. }
  324. this.setData({
  325. carts: this.data.carts,
  326. allnum: allnum,
  327. allcount: allcount.toFixed(2)
  328. });
  329. } else {//商品为非选中状态
  330. if (parseInt(this.data.carts[parentid].shopcarts[index].goodsnum) < max_quantity) {
  331. this.data.carts[parentid].shopcarts[index].goodsnum = parseInt(this.data.carts[parentid].shopcarts[index].goodsnum) + 1;
  332. } else {
  333. var msg = '最多购买' + max_quantity + '个';
  334. wx.showToast({
  335. title: msg,
  336. icon: 'none',
  337. duration: 2000
  338. })
  339. return false;
  340. }
  341. }
  342. var token = wx.getStorageSync('token');
  343. var keys_arr = [];
  344. var all_keys_arr = [];
  345. var allnum = this.data.allnum;
  346. var carts = this.data.carts;
  347. for (var i in carts) {
  348. for (var j in carts[i]['shopcarts']) {
  349. //if (carts[i]['shopcarts'][j]['isselect']) {
  350. keys_arr.push(carts[i]['shopcarts'][j]['key']);
  351. // }
  352. all_keys_arr.push(carts[i]['shopcarts'][j]['key'] + '_' + carts[i]['shopcarts'][j]['goodsnum']);
  353. }
  354. }
  355. app.util.request({
  356. 'url': 'entry/wxapp/index',
  357. 'data': {
  358. controller: 'car.checkout_flushall',
  359. 'token': token,
  360. 'car_key': keys_arr,
  361. 'all_keys_arr': all_keys_arr
  362. },
  363. method: 'POST',
  364. dataType: 'json',
  365. success: function (msg) {
  366. if (msg.data.code == 0) {
  367. that.setData({
  368. carts: that.data.carts
  369. });
  370. } else {
  371. that.data.carts[parentid].shopcarts[index].goodsnum = parseInt(that.data.carts[parentid].shopcarts[index].goodsnum) - 1;
  372. that.setData({
  373. carts: that.data.carts
  374. });
  375. console.log(that.data.carts[parentid].shopcarts[index].goodsnum);
  376. wx.showToast({
  377. title: msg.data.msg,
  378. icon: 'none',
  379. duration: 2000
  380. })
  381. }
  382. }
  383. })
  384. },
  385. //删除商品函数
  386. delgoods: function (e) {
  387. var parentid = parseInt(e.target.dataset.parentid);
  388. var index = parseInt(e.target.dataset.index);
  389. var that = this;
  390. wx.showModal({
  391. title: '提示',
  392. content: '确定删除这件商品吗?',
  393. confirmColor: '#FF0000',
  394. success: function (res) {
  395. if (res.confirm) {
  396. var del_car_keys = that.data.carts[parentid].shopcarts[index].key;
  397. if (that.data.carts[parentid].shopcarts[index].isselect == true) {//商品为选中状态
  398. var allnum = parseInt(that.data.allnum) - parseInt(that.data.carts[parentid].shopcarts[index].goodsnum);
  399. var allcount = parseFloat(that.data.allcount) - parseFloat(that.data.carts[parentid].shopcarts[index].currntprice) * that.data.carts[parentid].shopcarts[index].goodsnum;
  400. var count = parseFloat(that.data.carts[parentid].count) - parseFloat(that.data.carts[parentid].shopcarts[index].currntprice) * that.data.carts[parentid].shopcarts[index].goodsnum;
  401. that.data.carts[parentid].count = count.toFixed(2);
  402. that.data.carts[parentid].goodstype = that.data.carts[parentid].goodstype - 1;
  403. that.data.carts[parentid].goodstypeselect = that.data.carts[parentid].goodstypeselect - 1
  404. if (that.data.carts[parentid].goodstype == 0) {
  405. console.log(that.data.carts);
  406. console.log(parentid);
  407. //that.data.carts.splice(parentid, 1)
  408. that.data.carts[parentid].shopcarts.splice(index, 1);
  409. } else {
  410. that.data.carts[parentid].shopcarts.splice(index, 1);
  411. }
  412. var num = 0;
  413. for (var i = 0; i < that.data.carts.length; i++) {
  414. for (var j = 0; j < that.data.carts[i].shopcarts.length; j++) {
  415. num = num + that.data.carts[i].shopcarts[j].goodsnum;
  416. }
  417. }
  418. if (allnum == num)
  419. that.data.allselect = true;
  420. that.setData({
  421. carts: that.data.carts,
  422. allnum: allnum,
  423. allcount: allcount.toFixed(2),
  424. allselect: that.data.allselect
  425. });
  426. } else {//商品为选中状态
  427. that.data.carts[parentid].goodstype = that.data.carts[parentid].goodstype - 1;
  428. if (that.data.carts[parentid].goodstype == 0) {
  429. // that.data.carts.splice(parentid, 1)
  430. that.data.carts[parentid].shopcarts.splice(index, 1);
  431. } else {
  432. that.data.carts[parentid].shopcarts.splice(index, 1);
  433. }
  434. var num = 0;
  435. for (var i = 0; i < that.data.carts.length; i++) {
  436. for (var j = 0; j < that.data.carts[i].shopcarts.length; j++) {
  437. num = num + that.data.carts[i].shopcarts[j].goodsnum;
  438. }
  439. }
  440. if (that.data.allnum == num)
  441. that.data.allselect = true;
  442. that.setData({
  443. carts: that.data.carts,
  444. allselect: that.data.allselect
  445. });
  446. }
  447. //that.data.carts.splice(parentid, 1);
  448. //console.log(that.data.carts[parentid].shopcarts[index].key );
  449. if (that.data.carts[parentid].shopcarts.length == 0) {
  450. delete that.data.carts[parentid];
  451. if (Object.keys(that.data.carts).length == 0) {
  452. that.setData({
  453. carts: []
  454. });
  455. }
  456. }
  457. //删除商品
  458. that.del_car_goods(del_car_keys);
  459. }
  460. }
  461. })
  462. this.go_record();
  463. },
  464. del_car_goods: function (carkey) {
  465. var token = wx.getStorageSync('token');
  466. app.util.request({
  467. 'url': 'entry/wxapp/index',
  468. 'data': {
  469. controller: 'car.del_car_goods',
  470. carkey: carkey
  471. },
  472. method: 'POST',
  473. dataType: 'json',
  474. success: function (msg) {
  475. }
  476. })
  477. },
  478. //清空失效商品函数
  479. clearlose: function () {
  480. var that = this;
  481. wx.showModal({
  482. title: '提示',
  483. content: '确认清空失效商品吗?',
  484. confirmColor: '#FF0000',
  485. success: function (res) {
  486. if (res.confirm) {
  487. that.setData({
  488. loselist: []
  489. });
  490. }
  491. }
  492. })
  493. },
  494. //记录购物车状态值,为了下次进来还是和上次一样
  495. go_record: function () {
  496. var token = wx.getStorageSync('token');
  497. var keys_arr = [];
  498. var all_keys_arr = [];
  499. var allnum = this.data.allnum;
  500. var carts = this.data.carts;
  501. for (var i in carts) {
  502. for (var j in carts[i]['shopcarts']) {
  503. if (carts[i]['shopcarts'][j]['isselect']) {
  504. keys_arr.push(carts[i]['shopcarts'][j]['key']);
  505. }
  506. all_keys_arr.push(carts[i]['shopcarts'][j]['key'] + '_' + carts[i]['shopcarts'][j]['goodsnum']);
  507. }
  508. }
  509. app.util.request({
  510. 'url': 'entry/wxapp/index',
  511. 'data': {
  512. controller: 'car.checkout_flushall',
  513. token: token,
  514. car_key: keys_arr,
  515. all_keys_arr: all_keys_arr
  516. },
  517. method: 'POST',
  518. dataType: 'json',
  519. success: function (msg) {
  520. if (msg.data.code == 0) {
  521. } else {
  522. wx.showToast({
  523. title: msg.data.msg,
  524. icon: 'none',
  525. duration: 2000
  526. })
  527. }
  528. }
  529. })
  530. },
  531. //结算跳转页面函数
  532. toorder: function () {
  533. var token = wx.getStorageSync('token');
  534. var keys_arr = [];
  535. var all_keys_arr = [];
  536. var allnum = this.data.allnum;
  537. if (allnum > 0) {
  538. var carts = this.data.carts;
  539. for (var i in carts) {
  540. for (var j in carts[i]['shopcarts']) {
  541. if (carts[i]['shopcarts'][j]['isselect']) {
  542. keys_arr.push(carts[i]['shopcarts'][j]['key']);
  543. }
  544. all_keys_arr.push(carts[i]['shopcarts'][j]['key'] + '_' + carts[i]['shopcarts'][j]['goodsnum']);
  545. }
  546. }
  547. app.util.request({
  548. 'url': 'entry/wxapp/index',
  549. 'data': {
  550. controller: 'car.checkout_flushall',
  551. token: token,
  552. car_key: keys_arr,
  553. all_keys_arr: all_keys_arr
  554. },
  555. method: 'POST',
  556. dataType: 'json',
  557. success: function (msg) {
  558. if (msg.data.code == 0) {
  559. wx.navigateTo({
  560. url: '/Snailfish_shop/pages/buy/index?type=dan'
  561. })
  562. } else {
  563. wx.showToast({
  564. title: msg.data.msg,
  565. icon: 'none',
  566. duration: 2000
  567. })
  568. }
  569. }
  570. })
  571. } else {
  572. wx.showModal({
  573. title: '提示',
  574. content: '请选择您要购买的商品',
  575. confirmColor: '#FF0000',
  576. success: function (res) {
  577. if (res.confirm) {
  578. }
  579. }
  580. })
  581. }
  582. },
  583. goindex: function () {
  584. wx.redirectTo({
  585. url: '/Snailfish_shop/pages/index/index'
  586. })
  587. },
  588. /**
  589. * 生命周期函数--监听页面加载
  590. */
  591. onLoad: function (options) {
  592. var that = this;
  593. wx.showLoading({
  594. })
  595. that.setData({
  596. loadover: true
  597. });
  598. wx.hideLoading();
  599. if (!util.check_login()) {
  600. //util.login('/pages/order/car');
  601. //return false;
  602. }
  603. wx.setNavigationBarTitle({
  604. title: '购物车'
  605. });
  606. wx.setNavigationBarColor({
  607. frontColor: '#000000',
  608. backgroundColor: '#ffffff',
  609. }
  610. );
  611. var allnum = 0;
  612. var allcount = 0.00;
  613. var that = this;
  614. var token = wx.getStorageSync('token');
  615. app.util.request({
  616. 'url': 'entry/wxapp/index',
  617. 'data': {
  618. controller: 'car.show_cart_goods',
  619. token: token,
  620. buy_type:'dan',
  621. },
  622. dataType: 'json',
  623. success: function (res) {
  624. if (res.data.code == 0) {
  625. //un login carts
  626. that.setData({
  627. carts: res.data.carts
  628. })
  629. that.xuan_func();
  630. }
  631. }
  632. })
  633. var that = this;
  634. app.util.request({
  635. 'url': 'entry/wxapp/index',
  636. 'data': {
  637. controller: 'index.wepro_index_goods',
  638. store_id: 1,
  639. per_page: '20',
  640. type:'all',
  641. is_index_show:2,
  642. orderby:'rand',
  643. page:1,
  644. },
  645. dataType: 'json',
  646. success: function (res) {
  647. if (res.data.code == 1) {
  648. that.setData({
  649. showguess: false
  650. });
  651. } else {
  652. that.setData({
  653. showguess: true,
  654. guessdata: res.data.list
  655. });
  656. }
  657. }
  658. })
  659. },
  660. xuan_func: function () {
  661. var allnum = 0;
  662. var allcount = 0
  663. var flag = 1;
  664. var allselect = false;
  665. for (var i in this.data.carts) {
  666. var count = 0;
  667. this.data.carts[i].goodstypeselect = 0;
  668. this.data.carts[i].goodstype = this.data.carts[i].shopcarts.length;
  669. for (var j = 0; j < this.data.carts[i].shopcarts.length; j++) {
  670. if (this.data.carts[i].shopcarts[j].isselect == false)
  671. flag = 0;
  672. if (this.data.carts[i].shopcarts[j].isselect) {
  673. count = count + parseFloat(this.data.carts[i].shopcarts[j].currntprice) * parseFloat(this.data.carts[i].shopcarts[j].goodsnum);
  674. this.data.carts[i].goodstypeselect++;
  675. allnum = parseInt(allnum) + parseInt(this.data.carts[i].shopcarts[j].goodsnum);
  676. }
  677. }
  678. this.data.carts[i].count = count.toFixed(2);
  679. allcount = allcount + count;
  680. }
  681. if (flag == 1) {//是全部选中
  682. allselect = true;
  683. }
  684. this.setData({
  685. allselect: allselect,
  686. allnum: allnum,
  687. allcount: allcount.toFixed(2),
  688. carts: this.data.carts
  689. });
  690. },
  691. /**
  692. * 生命周期函数--监听页面初次渲染完成
  693. */
  694. onReady: function () {
  695. },
  696. /**
  697. * 生命周期函数--监听页面显示
  698. */
  699. onShow: function () {
  700. },
  701. /**
  702. * 生命周期函数--监听页面隐藏
  703. */
  704. onHide: function () {
  705. },
  706. /**
  707. * 生命周期函数--监听页面卸载
  708. */
  709. onUnload: function () {
  710. },
  711. /**
  712. * 页面相关事件处理函数--监听用户下拉动作
  713. */
  714. onPullDownRefresh: function () {
  715. },
  716. /**
  717. * 页面上拉触底事件的处理函数
  718. */
  719. onReachBottom: function () {
  720. },
  721. /**
  722. * 用户点击右上角分享
  723. */
  724. onShareAppMessage: function () {
  725. }
  726. })