Authored by lijing

秒杀详情页

@@ -994,7 +994,7 @@ const getSeckillData = (productSkn) => { @@ -994,7 +994,7 @@ const getSeckillData = (productSkn) => {
994 activityId: 4, 994 activityId: 4,
995 startTime: 1465194254, 995 startTime: 1465194254,
996 endTime: 1475294254, 996 endTime: 1475294254,
997 - formatSecKillPrice: '¥123.00', 997 + formatSecKillPrice: '¥133.00',
998 id: 4, 998 id: 4,
999 orderBy: 0, 999 orderBy: 0,
1000 productSkn: 512581470, 1000 productSkn: 512581470,
@@ -1004,15 +1004,29 @@ const getSeckillData = (productSkn) => { @@ -1004,15 +1004,29 @@ const getSeckillData = (productSkn) => {
1004 activityId: 4, 1004 activityId: 4,
1005 id: 1, 1005 id: 1,
1006 productSkn: 512581470, 1006 productSkn: 512581470,
1007 - productSku: 1384138,  
1008 - storageNum: 10 1007 + productSku: 1381111,
  1008 + storageNum: 1
1009 }, 1009 },
1010 { 1010 {
1011 activityId: 4, 1011 activityId: 4,
1012 id: 2, 1012 id: 2,
1013 productSkn: 512581470, 1013 productSkn: 512581470,
1014 - productSku: 1384140,  
1015 - storageNum: 5 1014 + productSku: 1382222,
  1015 + storageNum: 2
  1016 + },
  1017 + {
  1018 + activityId: 4,
  1019 + id: 2,
  1020 + productSkn: 512581470,
  1021 + productSku: 1383333,
  1022 + storageNum: 3
  1023 + },
  1024 + {
  1025 + activityId: 4,
  1026 + id: 2,
  1027 + productSkn: 512581470,
  1028 + productSku: 1384444,
  1029 + storageNum: 0
1016 } 1030 }
1017 ], 1031 ],
1018 secKillStatus: 0, 1032 secKillStatus: 0,
@@ -1069,11 +1083,46 @@ let getProductData = (data) => { @@ -1069,11 +1083,46 @@ let getProductData = (data) => {
1069 getSeckillData(result.productSkn) 1083 getSeckillData(result.productSkn)
1070 ]).then((info) => { 1084 ]).then((info) => {
1071 1085
1072 - // result.goodsList[0].sizeList[0].storageNumber = 1;  
1073 - // result.goodsList[0].sizeList[1].storageNumber = 0;  
1074 - // result.goodsList[0].sizeList[2].storageNumber = 0;  
1075 - // result.goodsList[0].sizeList[3].storageNumber = 0;  
1076 - // result.goodsList[0].sizeList[4].storageNumber = 0; 1086 + // 根据app.product.data接口是否返回isSecKill,判断是否是秒杀
  1087 + // let isSecKills = result.isSecKill === 'Y' ? true : false;
  1088 + let isSecKills = true;// TODO
  1089 +
  1090 + let gList = result.goodsList;
  1091 +
  1092 + // 统计非秒杀库存数
  1093 + let commonNum = 0;
  1094 +
  1095 + gList.forEach(row => {
  1096 + row.sizeList.forEach(val => {
  1097 + commonNum = commonNum + val.storageNumber;
  1098 + });
  1099 + });
  1100 +
  1101 + // 统计秒杀库存数
  1102 + let leftCount = 0;
  1103 +
  1104 + info[5].secKillSku.forEach(val => {
  1105 + leftCount = leftCount + val.storageNum;
  1106 + });
  1107 +
  1108 + // 如果秒杀库存不为0,将商品库存链接至秒杀库存
  1109 + let i = 0;
  1110 +
  1111 + if (isSecKills && info[5] && leftCount) {
  1112 + gList.forEach(row => {
  1113 + row.sizeList.forEach(val => {
  1114 + val.storageNumber = info[5].secKillSku[i].storageNum;
  1115 + val.productSku = info[5].secKillSku[i].productSku;
  1116 + i++;
  1117 + });
  1118 + });
  1119 + }
  1120 +
  1121 + // 秒杀详情页弹出层价格
  1122 + if (isSecKills && leftCount && info[5]) {
  1123 + result.formatMarketPrice = info[5].formatSecKillPrice;
  1124 + }
  1125 +
1077 result.promotionBoList = info[1]; 1126 result.promotionBoList = info[1];
1078 finalResult = _detailDataPkg(result, data.uid, data.vipLevel, data.ua); 1127 finalResult = _detailDataPkg(result, data.uid, data.vipLevel, data.ua);
1079 finalResult.enterStore = info[0]; 1128 finalResult.enterStore = info[0];
@@ -1081,16 +1130,11 @@ let getProductData = (data) => { @@ -1081,16 +1130,11 @@ let getProductData = (data) => {
1081 1130
1082 Object.assign(finalResult.feedbacks, info[2]); 1131 Object.assign(finalResult.feedbacks, info[2]);
1083 1132
1084 - // 判断是否是秒杀  
1085 - // let is_secKill = result.isSecKill === 'Y' ? true : false;  
1086 - let is_secKill = true;// TODO  
1087 -  
1088 // 秒杀详情页 1133 // 秒杀详情页
1089 - if (is_secKill && info[5]) {  
1090 1134
1091 - let nowDate = Date.parse(new Date()) / 1000; 1135 + if (isSecKills && leftCount && info[5]) {
1092 1136
1093 - let end = nowDate > info[5].endTime ? true : false; 1137 + let end = info[5].status === 3 ? true : false;
1094 1138
1095 if (!end) { 1139 if (!end) {
1096 1140
@@ -1098,14 +1142,6 @@ let getProductData = (data) => { @@ -1098,14 +1142,6 @@ let getProductData = (data) => {
1098 1142
1099 let startIng = info[5].status === 2 ? true : false; 1143 let startIng = info[5].status === 2 ? true : false;
1100 1144
1101 - let end = info[5].status === 3 ? true : false;  
1102 -  
1103 - let leftCount = 0;  
1104 -  
1105 - info[5].secKillSku.forEach(val => {  
1106 - leftCount = leftCount + val.storageNum;  
1107 - });  
1108 -  
1109 Object.assign(finalResult, { 1145 Object.assign(finalResult, {
1110 isSecKill: { 1146 isSecKill: {
1111 notStart: notStart, 1147 notStart: notStart,
@@ -1113,7 +1149,7 @@ let getProductData = (data) => { @@ -1113,7 +1149,7 @@ let getProductData = (data) => {
1113 end: end, 1149 end: end,
1114 productSkn: data.productSkn, 1150 productSkn: data.productSkn,
1115 secKillPrice: info[5].formatSecKillPrice, 1151 secKillPrice: info[5].formatSecKillPrice,
1116 - noneLeft: leftCount === 0 ? true : false 1152 + noneLeft: leftCount === 0 && commonNum === 0 ? true : false
1117 } 1153 }
1118 }); 1154 });
1119 1155
@@ -84,7 +84,7 @@ @@ -84,7 +84,7 @@
84 <div class="btn-wrap"> 84 <div class="btn-wrap">
85 85
86 {{#if ../isSecKill/startIng}} 86 {{#if ../isSecKill/startIng}}
87 - <button class="btn btn-sure go-pay"> 87 + <button id="chose-btn-sure" class="btn btn-sure go-pay isSecKill">
88 立即抢购 88 立即抢购
89 </button> 89 </button>
90 {{else}} 90 {{else}}
@@ -58,6 +58,8 @@ var limitProductCode, @@ -58,6 +58,8 @@ var limitProductCode,
58 // 限购商品的skn。只有限购商品时才会设置。 58 // 限购商品的skn。只有限购商品时才会设置。
59 skn; 59 skn;
60 60
  61 +var isSecKills = $('.isSecKill').length;// 秒杀标记
  62 +
61 // 禁用数字编辑 63 // 禁用数字编辑
62 function disableNumEdit() { 64 function disableNumEdit() {
63 var $numBtn = $('.chose-panel').find('.num .btn>.iconfont'); 65 var $numBtn = $('.chose-panel').find('.num .btn>.iconfont');
@@ -564,8 +566,9 @@ $yohoPage.on('touchstart', '.btn-minus', function() { @@ -564,8 +566,9 @@ $yohoPage.on('touchstart', '.btn-minus', function() {
564 if (!ticketsLimit) { 566 if (!ticketsLimit) {
565 confirming = true; 567 confirming = true;
566 } 568 }
567 -  
568 - loading.showLoadingMask(); 569 + if (!isSecKills) {
  570 + loading.showLoadingMask();
  571 + }
569 572
570 // 立即购买门票 573 // 立即购买门票
571 if (ticketsLimit) { 574 if (ticketsLimit) {
@@ -593,7 +596,10 @@ $yohoPage.on('touchstart', '.btn-minus', function() { @@ -593,7 +596,10 @@ $yohoPage.on('touchstart', '.btn-minus', function() {
593 productSku + '&skn=' + skn + '&buy_number=' + buyNumber; 596 productSku + '&skn=' + skn + '&buy_number=' + buyNumber;
594 597
595 removePannel(); 598 removePannel();
596 - loading.showLoadingMask(); 599 +
  600 + if (!isSecKills) {
  601 + loading.showLoadingMask();
  602 + }
597 603
598 // 调用接口判断商品是否可以购买 604 // 调用接口判断商品是否可以购买
599 $.ajax({ 605 $.ajax({
@@ -630,47 +636,70 @@ $yohoPage.on('touchstart', '.btn-minus', function() { @@ -630,47 +636,70 @@ $yohoPage.on('touchstart', '.btn-minus', function() {
630 url = '/cart/index/add'; 636 url = '/cart/index/add';
631 } 637 }
632 638
633 - $.ajax({  
634 - method: 'POST',  
635 - url: url,  
636 - data: cartGoodData  
637 - }).done(function(res) {  
638 - var cartNum;  
639 -  
640 - loading.hideLoadingMask();  
641 - if (res.code === 200 && !isEdit) {  
642 - cartNum = res.data.goods_count;  
643 - if (cartNum > 99) {  
644 - cartNum = '99+'; 639 + if (!isSecKills) {
  640 + $.ajax({
  641 + method: 'POST',
  642 + url: url,
  643 + data: cartGoodData
  644 + }).done(function(res) {
  645 + var cartNum;
  646 +
  647 + loading.hideLoadingMask();
  648 + if (res.code === 200 && !isEdit) {
  649 + cartNum = res.data.goods_count;
  650 + if (cartNum > 99) {
  651 + cartNum = '99+';
  652 + }
  653 + $('.num-tag').html(cartNum).removeClass('hide');
  654 + confirming = false;
  655 +
  656 + if (cbFn) {
  657 + cbFn();
  658 + }
645 } 659 }
646 - $('.num-tag').html(cartNum).removeClass('hide');  
647 - confirming = false;  
648 -  
649 - if (cbFn) {  
650 - cbFn(); 660 + if (res.message && !isEdit) {
  661 + tip.show(res.message);
651 } 662 }
652 - }  
653 - if (res.message && !isEdit) {  
654 - tip.show(res.message);  
655 - }  
656 663
657 - hide(); 664 + hide();
658 665
659 - if (isEdit) {  
660 - loading.showLoadingMask(); 666 + if (isEdit) {
  667 + loading.showLoadingMask();
661 668
662 - // 延迟刷新,否则面板可能无法隐藏  
663 - setTimeout(function() { 669 + // 延迟刷新,否则面板可能无法隐藏
  670 + setTimeout(function() {
  671 +
  672 + // 获取当前页面商品类型:普通商品/预售商品
  673 + window.location.href = '/cart/index/index?cartType=' + $('#cartType').val();
  674 + }, 1);
  675 + }
  676 + }).fail(function() {
  677 + tip.show('网络出了点问题~');
  678 + }).always(function() {
  679 + confirming = false;
  680 + });
  681 +
  682 + } else {
  683 +
  684 + $('#chose-btn-sure').click(
  685 + function() {
  686 + var thisSkn = $('#productSkn').val();
  687 + var thisSku = '';
  688 + $('.size-row').each(
  689 + function() {
  690 + if ($(this).hasClass('hide')) {
  691 + return false;
  692 + } else {
  693 + thisSku = $(this).find('.chosed').attr('data-skuid');
  694 + }
  695 + }
  696 + );
  697 +
  698 + window.location.href = '/cart/seckill?skn=' + thisSkn + '&sku=' + thisSku;
  699 + }
  700 + );
  701 + }
664 702
665 - // 获取当前页面商品类型:普通商品/预售商品  
666 - window.location.href = '/cart/index/index?cartType=' + $('#cartType').val();  
667 - }, 1);  
668 - }  
669 - }).fail(function() {  
670 - tip.show('网络出了点问题~');  
671 - }).always(function() {  
672 - confirming = false;  
673 - });  
674 } 703 }
675 704
676 }); 705 });