xhj 3 lat temu
rodzic
commit
bae111e8b5
100 zmienionych plików z 1207 dodań i 12736 usunięć
  1. 0 114
      activity/bargain/detail/detail.css
  2. 0 1396
      activity/bargain/detail/detail.vue
  3. 0 25
      activity/bargain/index/index.css
  4. 0 341
      activity/bargain/index/index.vue
  5. 0 74
      activity/bargain/kjDetail/kjDetail.css
  6. 0 538
      activity/bargain/kjDetail/kjDetail.vue
  7. 0 23
      activity/content/content.css
  8. 0 107
      activity/content/content.vue
  9. 0 141
      activity/group/detail/detail.css
  10. 0 1470
      activity/group/detail/detail.vue
  11. 0 28
      activity/group/index/index.css
  12. 0 362
      activity/group/index/index.vue
  13. 0 58
      activity/group/ptDetail/ptDetail.css
  14. 0 413
      activity/group/ptDetail/ptDetail.vue
  15. 0 96
      activity/newbornDetails/newbornDetails.css
  16. 0 1134
      activity/newbornDetails/newbornDetails.vue
  17. 0 57
      activity/newbornZone/newbornZone.css
  18. 0 310
      activity/newbornZone/newbornZone.vue
  19. 0 123
      activity/seckill/seckill.css
  20. 0 585
      activity/seckill/seckill.vue
  21. 0 113
      activity/seckillDetails/seckillDetails.css
  22. 0 1077
      activity/seckillDetails/seckillDetails.vue
  23. BIN
      activity/static/activity/images/cha.png
  24. BIN
      activity/static/activity/images/clock2.png
  25. BIN
      activity/static/activity/images/guarantee.png
  26. BIN
      activity/static/activity/images/kanjia.png
  27. BIN
      activity/static/activity/images/kanle1.png
  28. BIN
      activity/static/activity/images/kanle2.png
  29. BIN
      activity/static/activity/images/kjban.jpg
  30. BIN
      activity/static/activity/images/kjbg.jpg
  31. BIN
      activity/static/activity/images/msbg.png
  32. BIN
      activity/static/activity/images/msyybg.png
  33. BIN
      activity/static/activity/images/nbzbg.png
  34. BIN
      activity/static/activity/images/ptban.jpg
  35. BIN
      activity/static/activity/images/ptban1.jpg
  36. BIN
      activity/static/activity/images/ptbg.png
  37. BIN
      activity/static/activity/images/rednaozhong.png
  38. BIN
      activity/static/activity/images/seckill.png
  39. BIN
      activity/static/activity/images/seckillDetails.png
  40. BIN
      activity/static/activity/images/seckillbg.png
  41. BIN
      activity/static/activity/images/share_pintuan.jpg
  42. BIN
      activity/static/activity/images/xrzx.png
  43. BIN
      activity/static/activity/images/xrzxbg.png
  44. 372 0
      components/l-echart/canvas.js
  45. 516 0
      components/l-echart/l-echart.vue
  46. 245 0
      components/l-echart/readme.md
  47. 74 0
      components/l-echart/utils.js
  48. 0 26
      htmllogin/login/login.css
  49. 0 170
      htmllogin/login/login.vue
  50. BIN
      htmllogin/static/common/images/dlbg.png
  51. BIN
      htmllogin/static/common/images/wechat.png
  52. BIN
      htmllogin/static/common/images/xyico.png
  53. BIN
      htmllogin/static/common/images/xyico_h.png
  54. 0 12
      integralShop/activity/index.css
  55. 0 107
      integralShop/activity/index.vue
  56. 0 65
      integralShop/cart/cart.css
  57. 0 799
      integralShop/cart/cart.vue
  58. 0 62
      integralShop/content/content.css
  59. 0 180
      integralShop/content/content.vue
  60. 0 83
      integralShop/detail/detail.css
  61. 0 750
      integralShop/detail/detail.vue
  62. 0 80
      integralShop/index/index.css
  63. 0 378
      integralShop/index/index.vue
  64. 0 58
      integralShop/integralDetailed/index.css
  65. 0 268
      integralShop/integralDetailed/index.vue
  66. 0 18
      integralShop/integralRule/index.css
  67. 0 147
      integralShop/integralRule/index.vue
  68. 0 37
      integralShop/order/order.css
  69. 0 368
      integralShop/order/order.vue
  70. BIN
      integralShop/static/integralShop/images/card.png
  71. BIN
      integralShop/static/integralShop/images/detailed.png
  72. BIN
      integralShop/static/integralShop/images/extension.png
  73. BIN
      integralShop/static/integralShop/images/integralDetailed_bg.png
  74. BIN
      integralShop/static/integralShop/images/integralDetailed_yhq.png
  75. BIN
      integralShop/static/integralShop/images/integralOrder.png
  76. BIN
      integralShop/static/integralShop/images/integralShop.png
  77. BIN
      integralShop/static/integralShop/images/integralSign.png
  78. BIN
      integralShop/static/integralShop/images/integral_bg.png
  79. BIN
      integralShop/static/integralShop/images/integral_down.png
  80. BIN
      integralShop/static/integralShop/images/integral_gou.png
  81. BIN
      integralShop/static/integralShop/images/integral_rule_bg.png
  82. BIN
      integralShop/static/integralShop/images/integral_rule_bg1.png
  83. BIN
      integralShop/static/integralShop/images/integral_up.png
  84. BIN
      integralShop/static/integralShop/images/jfico.png
  85. BIN
      integralShop/static/integralShop/images/jfico1.png
  86. BIN
      integralShop/static/integralShop/images/jfico2.png
  87. BIN
      integralShop/static/integralShop/images/jfico3.png
  88. BIN
      integralShop/static/integralShop/images/qd_gou.png
  89. BIN
      integralShop/static/integralShop/images/qdico.png
  90. BIN
      integralShop/static/integralShop/images/sign.png
  91. BIN
      integralShop/static/integralShop/images/task_bg.png
  92. BIN
      integralShop/static/integralShop/images/you_h.png
  93. 0 42
      integralShop/task/index.css
  94. 0 197
      integralShop/task/index.vue
  95. 0 18
      invoice/apply/apply.css
  96. 0 181
      invoice/apply/apply.vue
  97. 0 23
      invoice/detail/detail.css
  98. 0 82
      invoice/detail/detail.vue
  99. BIN
      invoice/static/images/bico.png
  100. BIN
      invoice/static/images/bico_h.png

+ 0 - 114
activity/bargain/detail/detail.css

@@ -1,114 +0,0 @@
-/* bargin/detail/detail.wxss */
-.banner{overflow: hidden;position: relative;}
-.swiper,.swiper image{width: 100%;height: 750rpx;}
-.dots{position: absolute;left: 0;right: 0;bottom: 11rpx;align-items: center;justify-content: center;}
-.dot{background:var(--mina) ;width: 10rpx;height: 10rpx;border-radius: 5rpx;margin: 0 3rpx;}
-.dot.active{width: 30rpx;}
-.group{position: relative;height: 120rpx;}
-.ptbg{width: 100%;height: 120rpx;position: absolute;top: 0;left: 0;z-index: 1;}
-.groups{position: relative;z-index: 2;align-items: center;padding: 0 30rpx;justify-content: space-between;height: 120rpx;}
-.price{font-size: 28rpx;color: #FE0419;}
-.price text{font-size: 40rpx;font-weight: bold;}
-.pin text.origin,.price text.origin{font-weight: normal;font-size: 24rpx;text-decoration: line-through;}
-.price text.origin{color: #999;}
-.left .price,.left .price text.origin{color: #fff;}
-.pin{font-size: 22rpx;color: #fff;}
-.tuan{width: 160rpx;height: 36rpx;float: right;}
-.endtime{align-items: center;font-size: 22rpx;color: #fff;line-height: 36rpx;margin-top: 47rpx;overflow: hidden;clear: both;}
-.endtime view{margin-right: 15rpx;}
-.endtime text{display: block;width:36rpx;height:36rpx;background:rgb(0,0,0,.4);border-radius:6rpx;font-size: 24rpx;color: #fff;text-align: center;line-height: 36rpx;margin:0 5rpx}
-
-
-.info{padding: 30rpx 30rpx 40rpx;}
-.infos{align-items: center;justify-content: space-between;}
-.share{font-size: 20rpx;color: #999;text-align: center;position: relative;margin-left: 45rpx !important;}
-.share::after{content: '';display: block;width: 2rpx;height: 45rpx;background: #e7e7e7;position: absolute;top: 50%;transform: translateY(-50%);left: -30rpx;}
-.share image{width: 31rpx;height: 31rpx;margin: 0 auto 10rpx;}
-.title{font-size: 30rpx;color: #222;line-height: 40rpx;font-weight: bold;}
-.tag{width: 82rpx;height: 36rpx;display: inline-block;margin: 0 10rpx 0 0;position: relative;top: 7rpx;}
-.detinfo .item{padding: 30rpx;border-bottom: 1rpx solid #f6f6f6;}
-.detinfo .item:last-child{border-bottom: none;}
-.item label{display: block;width: 130rpx;font-size: 28rpx;color: #222;font-weight: bold;line-height: 40rpx;}
-.quan .flex{align-items: center;}
-.quan text{display: block;background: #FDF5F3;padding: 0 13rpx;height: 40rpx;line-height: 40rpx;font-size: 24rpx;color: #FF5F08;margin-right: 10rpx;}
-.ling{font-size: 24rpx;color: #FF5F08;align-items: center;}
-.ling image{width: 14rpx;height: 24rpx;margin-left: 11rpx;}
-.address{font-size: 28rpx;color: #333;line-height: 40rpx;}
-.huo{font-size: 24rpx;color: #666;line-height: 40rpx;}
-.huo text{color: #FE0419;}
-.more{width: 36rpx;height: 10rpx;margin-top: 15rpx;}
-
-
-
-/* .user{width: 68rpx;height: 68rpx;border-radius: 50%;margin-right: 15rpx;} */
-.name{font-size: 28rpx;color: #666;line-height: 68rpx;justify-content: space-between;align-items: center;}
-.pinglun{font-size: 28rpx;color: #333;margin: 15rpx 0 0;line-height: 44rpx;}
-.huifu{background: #F2F2F2;border-radius: 6rpx;margin: 25rpx 0 0;line-height: 42rpx;padding: 20rpx 30rpx;position: relative;}
-.huifu::after{content: '';display: block;width: 0;height: 0;border: 9rpx solid transparent;border-bottom-color: #F2F2F2;border-top: none;position: absolute;top: -8rpx;left: 39rpx;}
-.show{display: block;}
-.hide{display: none;}
-
-.bot{height: 80rpx;align-items: center;padding: 20rpx 30rpx 20rpx 0;}
-.botbtn{font-size: 22rpx;color: #6A6A6A;width: 145rpx !important;text-align: center;position: relative;}
-.botbtn image{width: 40rpx;height: 34rpx;margin: 10rpx auto 5rpx;}
-.message{background: #DF1A14;height: 28rpx;line-height: 28rpx;font-size: 20rpx;color: #fff;text-align: center;border-radius: 15rpx;box-sizing: border-box;min-width: 21rpx;padding: 0 8rpx;position: absolute;top: 0;right: 25%;}
-.gmbtn{width: 276rpx;height: 76rpx;border-radius: 40rpx;text-align: center;line-height: 76rpx;font-size: 30rpx;color: #FD3C31;border: 2rpx solid #FD3C31;margin-right: 20rpx;}
-.ctbtn{width: 280rpx;height: 80rpx;border-radius: 40rpx;text-align: center;line-height: 80rpx;font-size: 30rpx;color: #fff;}
-.yybtn{width: 430rpx;height: 80rpx;border-radius: 40rpx;text-align: center;line-height: 80rpx;font-size: 30rpx;color: #fff;align-items: center;justify-content: center;}
-.cancel-yy{width: 426rpx;height: 76rpx;border: 2rpx solid #05C379;border-radius: 40rpx;text-align: center;line-height: 76rpx;font-size: 30rpx;color: #05C379;align-items: center;justify-content: center;}
-.yybtn .icon,.cancel-yy .icon{font-size: 30rpx;margin-right: 15rpx;}
-
-
-/* 组团情况 */
-.zu-tit{height: 100rpx;align-items: center;justify-content: space-between;padding: 0 30rpx;border-bottom: 2rpx solid #f5f6f7;font-size: 30rpx;}
-.zu-tit .icon{color: #C1C1C1;font-size: 18rpx;width: 40rpx; height: 40rpx;}
-.zu-list .li{border-bottom: 2rpx solid #f5f6f7;height: 120rpx;padding: 0 30rpx;align-items: center;}
-.zu-list .li:last-child{border-bottom: none;}
-.zu-list .li image{width: 72rpx;height: 72rpx;border-radius: 50%;}
-.zu-name{font-size: 28rpx;margin: 0 20rpx;overflow:hidden; 
-  text-overflow:ellipsis; 
-  white-space:nowrap; }
-.zu-ren{text-align: right;margin-right: 20rpx;}
-.cha{font-size: 24rpx;color: #333;}
-.cha text{color: #FE0419;}
-.zu-time{font-size: 22rpx;margin-top: 8rpx;}
-.zu-time text{color: #666;}
-.zu-btn{width: 150rpx;height: 60rpx;border-radius: 30rpx;font-size: 24rpx;color: #fff;text-align: center;line-height: 60rpx;}
-.end{background: #999999;}
-.remind{width: 280rpx;height: 80rpx;border-radius: 50rpx;font-size: 30rpx;color: #fff;text-align: center;justify-content: center;line-height: 50rpx;align-items: center;}
-
-/* 更多砍价 */
-.ptuanmode{position: fixed;z-index: 100;background: #fff;width: 90%; border-radius:30rpx 30rpx;left: 50%;top: 50%; transform: translate(-50%, -50%);}
-.tole{font-size: 24rpx;color: #999;text-align: center;padding: 0 0 10rpx 0;}
-.pttop{padding: 30rpx 0;text-align: center;font-size: 34rpx;border-bottom: 2rpx solid #9999;}
-/* .zutuan{position: relative;} */
-.page{position: fixed;z-index: 100;}
-.guarantee{border-top: 1rpx solid #f6f6f6;padding: 15rpx 0 0 0; margin-top: 15rpx;}
-.guarantee .cont{flex-wrap: wrap;font-size: 26rpx;}
-.guarantee .cont .li{align-items: center;margin-right: 20rpx;
-  margin-bottom: 10rpx;}
-.guarantee .cont image{        width: 30rpx;
-  height: 30rpx;}
-  
-  /* 小店相关 */
-  .xiaodian{position: relative;height: 122rpx;padding: 0 26rpx 0 110rpx;align-items: center;margin: 35rpx 30rpx 0;}
-  .xdbg{position: absolute;left: 0;top: 0;width: 100%;height: 100%;z-index: 1;}
-  .shouyi{position: relative;z-index: 2;color: #fff;margin-right: 10rpx;}
-  .shouyi view{font-size: 40rpx;font-weight: bold;margin-top: 8rpx;}
-  .shouyi text{font-weight: normal;font-size: 24rpx;}
-  .addshop{height: 62rpx;padding: 0 25rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-  .fenxiang{height: 62rpx;padding: 0 25rpx;margin-left: 15rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-  .goShop{height: 62rpx;padding: 0 25rpx;margin-left: 15rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-  
-  .suc{position: fixed;left: 50%;top: 50%;transform: translate(-50%,-50%);background: #fff;width: 536rpx;border-radius: 20rpx;z-index: 100;text-align: center;padding-bottom: 47rpx;}
-  .tjcg1{width: 100%;height: 284rpx;}
-  .tjcg{width: 195rpx;height: 38rpx;margin: 52rpx auto 15rpx;}
-  .suc text{display: block;font-size: 24rpx;color: #333;}
-  .shopcc{justify-content: center;}
-  .shop{width:220rpx;height:80rpx;background:linear-gradient(123deg,rgba(255,130,130,1) 0%,rgba(220,21,21,1) 100%);font-size: 30rpx;color: #fff;line-height: 80rpx;border-radius: 40rpx;margin: 45rpx 15rpx 40rpx;}
-  .share-btn{justify-content: space-between;padding: 0 54rpx;}
-  .suc-close{position: absolute;left: 50%;transform: translateX(-50%);bottom: -102rpx;width: 62rpx;height: 62rpx;}
-  
-  .pro-sel{align-items: center;}
-  .pro-sel .flex{text-overflow: ellipsis;white-space: nowrap;overflow: hidden;}
-  .mrico{width: 16rpx;height: 27rpx;}

+ 0 - 1396
activity/bargain/detail/detail.vue

@@ -1,1396 +0,0 @@
-<template>
-	<view v-if="allShow">
-		<!--bargin/detail/detail.wxml-->
-		<view class="banner">
-			<swiper class="swiper" @change="swiperChange" :current="current" autoplay="true" circular="true"
-				duration="1000">
-				<block v-for="(item, index) in bannerUrls" :key="index">
-					<swiper-item autoplay="true">
-						<image :src="item + '?x-oss-process=style/w750-auto'" mode="aspectFit"></image>
-					</swiper-item>
-				</block>
-			</swiper>
-			<view class="dots dflex">
-				<block v-for="(item, index) in bannerUrls" :key="index">
-					<view :class="'dot ' + (index == swiperCurrent ? ' active' : '')" :data-current="index"
-						@tap="dotEvent"></view>
-				</block> 
-			</view>
-		</view>
-		<!-- <view class="notification_bar" wx:if="{{isNotice}}">
-	<swiper class="swiper_container" vertical="true" autoplay="true" circular="false" duration="1000" interval="5000" easing-function="easeInOutCubic" class="bar_box dflex">
-		<swiper-item class="bar_con dflex" wx:for="{{contentList}}" wx:key="item">
-			<view class="bar dflex">
-				<image class="bar_left" src="{{item.pic}}" />
-				<text class="bar_text">最新订单来自</text>
-				<text class="bar_text">{{item.name}},</text>
-				<text class="bar_text">{{item.time}}</text>
-			</view>
-		</swiper-item>
-	</swiper>
-</view> -->
-		<view class="group">
-			<image src="/activity/static/activity/images/kjbg.jpg" class="ptbg"></image>
-			<view class="groups dflex">
-				<view class="left">
-					<view class="price">砍后价¥<text>{{act.money}}</text></view>
-					<view class="pin"><text class="origin"
-							v-if="act.orPrice!=0&&act.orPrice>act.money">原价¥{{act.orPrice?act.orPrice:''}}</text>
-						<block v-if="act.orPrice!=0&&act.orPrice>act.money"> | </block>{{count ? count:0}}人已参与
-					</view>
-				</view>
-				<view class="right">
-					<image src="/activity/static/activity/images/kanjia.png" class="tuan"></image>
-					<view class="endtime dflex">
-
-						<view>{{act.start==false&&act.end==false?'距开始':'距结束'}}</view>
-						<block v-if="timer.length==4">
-							<block v-if="timer[0] !=0"><text>{{timer[0]}}</text>天</block>
-							<text>{{timer[1]}}</text>:
-							<text>{{timer[2]}}</text>:
-							<text>{{timer[3]}}</text>
-						</block>
-						<block v-else>
-							<text>{{timer[0]}}</text>:
-							<text>{{timer[1]}}</text>:
-							<text>{{timer[2]}}</text>
-						</block>
-					</view>
-				</view>
-			</view>
-		</view>
-
-		<view class="info bgfff">
-			<view class="infos dflex">
-				<view class="title flex">{{pro.title?pro.title:''}}</view>
-				<view class="share" @tap="showShare">
-					<image src="/static/pages/images/fxico.png"></image>分享
-				</view>
-			</view>
-			<view class="guarantee dflex" v-if="guarantee.length>0">
-				<view class="cont dflex">
-					<view v-for="(item, index) in guarantee" :key="index" class="dflex li">
-						<image src="/activity/static/activity/images/guarantee.png"></image>{{item}}
-					</view>
-				</view>
-			</view>
-		</view>
-
-		<view class="detinfo mt20 bgfff">
-			<!-- isOtc 0 默认 1 处方药 2 非处方药 3 医疗器械 4 食品类 5 海外购 -->
-			<block v-if="act.isOtc!=5">
-			<block v-if="is_open_shop == 1 && ascription">
-			<view class="xiaodian dflex malr20" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0) || act.serviceShopRate">
-				<image src="/static/pages/images/xdbg1.png" class="xdbg"></image>
-				<view class="shouyi flex" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0)">
-					<text>分销收益</text>
-					<view v-if="act.isMeCommission == 0"><text>¥</text>{{act.oneCommission}}</view>
-					<view v-else><text>¥</text>{{act.twoCommission}}</view>
-				</view>
-				<view class="shouyi flex" v-if="act.serviceShopRate">
-					<text>小店服务费</text>
-					<view><text>¥</text>{{act.serviceShopRate}}</view>
-				</view>
-				<view class="dflex" v-if="act.isJoinShop">
-					<view class="fenxiang" @tap="showShare">分享推广</view>
-					<navigator :url="url" hover-class="none" class="goShop">去小店</navigator>
-				</view>
-				<view class="addshop" @tap="addShop" v-else>添加到小店</view>
-			</view>
-			</block>
-			<block v-else>
-			<view class="xiaodian dflex malr20" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0)">
-				<image src="/static/pages/images/xdbg1.png" class="xdbg"></image>
-				<view class="shouyi flex">
-					<text>分销收益</text>
-					<view v-if="act.isMeCommission == 0"><text>¥</text>{{act.oneCommission}}</view>
-					<view v-else><text>¥</text>{{act.twoCommission}}</view>
-				</view>
-				<navigator url="/promote/apply/apply" hover-class="none" class="fenxiang" v-if="isDistriUser != 2">我要推广</navigator>
-				<view class="fenxiang" @tap="showShare" v-else>分享推广</view>
-			</view>
-			</block>
-			</block>
-			<!-- <view class="item dflex">
-		<label>优惠券</label>
-		<view class="quan flex dflex">
-			<view class="flex dflex">
-				<text>满500减50</text>
-				<text>满200减10</text>
-			</view>
-			<view class="ling dflex">领券<image src="/pages/images/more3.png"></image>
-			</view>
-		</view>
-	</view> -->
-			<view class="item pro-sel dflex" v-if="pro.propertiesList && pro.propertiesList.length > 0"
-				@click="pro.stock > 0 ? addShopCart() : ''">
-				<label>已选</label>
-				<view class="flex">{{pro.properties}}</view>
-				<image src="/static/pages/images/more.png" class="mrico"></image>
-			</view>
-			<view class="item dflex">
-				<label>配送至</label>
-				<view class="flex" @tap="toAddress">
-					<view class="address">{{address.address?address.address:''}}{{address.house?address.house:''}}
-					</view>
-					<view class="huo" v-if="pro.isTimely == 1"><text>现货</text>,现在下单,预计2小时后送达</view>
-				</view>
-				<image src="/static/pages/images/more2.png" class="more" @tap="toAddress"></image>
-			</view>
-			<view class="item dflex">
-				<label>门店</label>
-				<view class="flex" @tap="toMerchant">
-					<view class="address">{{merchant.title}}</view>
-				</view>
-			</view>
-		</view>
-		<!-- 砍价情况 -->
-		<view class="zutuan bgfff mt20"
-			v-if="(activityPurchaseRecordListDTO&&activityPurchaseRecordListDTO.length > 0)||(act.activityPurchaseRecordListDTO&&act.activityPurchaseRecordListDTO.length>0)">
-			<view class="zu-tit dflex">{{act.activityPurchaseRecordListDTO.length}}人正在砍价,可直接参与<icon
-					class="icon iconfont icon-bottom"
-					@tap="activityPurchaseRecordListDTO.length>1&&activityDot.length>0?clickmore():''"> </icon>
-			</view>
-			<view class="zu-list">
-				<block v-for="(item, index) in activityPurchaseRecordListDTO" :key="index">
-					<view class="li dflex" @tap="toKanjia" :data-id="item.id" :data-acid="item.groupMainP.acpId"
-						:data-proid="item.groupMainP.productId" :data-superid="item.groupMainP.id"
-						:data-userid="item.groupMainP.userId" :data-end="item.end">
-						<image :src="item.groupMainP.uavatar" mode="aspectFit"></image>
-						<view class="zu-name flex">{{item.groupMainP.unickName}}</view>
-						<view class="zu-ren">
-							<view class="cha" v-if="item.groupMainP.bargainingAmount == 0">已砍到底价</view>
-							<view class="cha" v-else>
-								只差<text>¥{{item.groupMainP.bargainingAmount>0 ? item.groupMainP.bargainingAmount : ((act.orPrice)*10000-(act.money)*10000)/10000}}</text>到底价
-							</view>
-							<view class="zu-time" v-if="item.end ||item.groupMainP.bargainingAmount == 0">已结束</view>
-							<view class="zu-time" v-else>剩余<text>{{item.times}}</text></view>
-						</view>
-						<view
-							:class="'zu-btn ' + (item.groupMainP.bargainingAmount == 0 || item.end ? 'end' : 'mbglinear')"
-							v-if="item.groupMainP.bargainingAmount == 0">查看详情</view>
-						<view
-							:class="'zu-btn ' + (item.groupMainP.bargainingAmount == 0 || item.end ? 'end' : 'mbglinear')"
-							v-else>帮TA砍价
-						</view>
-
-					</view>
-				</block>
-			</view>
-		</view>
-
-
-
-		<!--  商品详情等页面 -->
-		<product-footer ref="list" @scoreTab="scoreTab" id="list" :detail="nodes" :imgs="imgs" :proId="pro.id"
-			v-if="pro.id" :form="form" @showTab="showTab" @freshen="freshenFun"></product-footer>
-
-		<v-share :hide-toast="hideShare" :product="pro" :code-url="codeUrl" a-type="5" @onFather="click"></v-share>
-
-		<view class="placeholder-view" :style="'height:' + (bottomBlankHeight + 140) + 'rpx'"></view>
-		<view class="bot fixed bgfff dflex" :style="'padding-bottom: ' + (bottomBlankHeight + 20) + 'rpx'" >
-			<contact-button img-url="/static/pages/images/kfico.png" class-name="botbtn" button-text="在线客服"></contact-button>
-			<!-- <navigator class="botbtn" open-type="switchTab" url="/pages/cart/cart" hover-class="none">
-		<image src="/pages/images/gwc.png"></image>购物车<text class="message" wx:if="{{pro.count > 0}}">{{pro.count}}</text>
-	</navigator> -->
-			<!-- <view class="botbtn" bindtap="clickCollect">
-		<image src="/pages/images/shoucang_h.png" wx:if="{{pro.isCollect}}"></image>
-		<image src="/pages/images/shoucang.png" wx:else></image>收藏
-	</view> -->
-			<!-- <view class="addcart">加入购物车</view> -->
-			<view class="gmbtn" @tap="atOnceBuy">¥{{salePrice}} 下单购买</view>
-			<block v-if="act.start==true">
-				<view class="ctbtn mbglinear" @tap="toKjDetail" v-if="isBargain||isuser">我的砍价</view>
-				<view class="ctbtn mbglinear" @tap="create" :data-actid="act.id"
-					v-if="act.end==false&&!isBargain&&!isuser">发起砍价</view>
-				<view class="ctbtn end" v-if="act.end==true&&!isBargain&&!isuser">活动已结束</view>
-			</block>
-
-			<block v-if="act.start==false&&act.end==false">
-				<view class="remind mbggreen dflex" v-if="act.start==false&&isRemind" @tap="cancelActivityRemind"
-					:data-index="index" data-type="2">取消预约</view>
-				<view class="remind mbggreen dflex" v-if="act.start==false&&!isRemind" @tap="addActivityRemind">
-					<icon class="iconfont icon-yugao" :data-index="index" data-type="2"></icon>预约提醒
-				</view>
-			</block>
-		</view>
-
-		<!-- 商品规格 -->
-		<block v-if="isShow">
-			<product-popup :product="popup" order-type="1" @hidePopup="hidePopup" :merchant="merchant"
-				:merchant-id="query.merchantId" :shopId="query.shopId"></product-popup>
-		</block>
-
-		<view class="contact_index" @tap="goTop">
-			<image src="/static/pages/images/backtop.png"></image>顶部
-		</view>
-
-		<!-- 查看更多 -->
-		<view class="mask" @tap="eliminate" v-if="show" catchtouchmove="true"></view>
-		<view class="page" :style="'margin:-' + (windowHeight/2) + 'px 0 0 -' + (windowWidth/2) + 'px'">
-			<view class="ptuanmode" catchtouchmove="true" v-if="show">
-
-				<view class="zu-list">
-					<view class="pttop">正在砍价</view>
-					<scroll-view scroll-y="true" style="max-height: 550rpx;">
-						<view v-for="(item, index) in activityDot" :key="index" class="li dflex" @tap="toKanjia"
-							:data-id="item.id" :data-acid="item.groupMainP.acpId"
-							:data-proid="item.groupMainP.productId" :data-superid="item.groupMainP.id"
-							:data-userid="item.groupMainP.userId" :data-end="item.end">
-							<image :src="item.groupMainP.uavatar" mode="aspectFit"></image>
-							<view class="zu-name flex">{{item.groupMainP.unickName}}</view>
-							<view class="zu-ren">
-								<view class="cha" v-if="item.groupMainP.bargainingAmount == 0">已砍到底价</view>
-								<view class="cha" v-else>
-									只差<text>¥{{item.groupMainP.bargainingAmount>0 ? item.groupMainP.bargainingAmount : ((act.orPrice)*10000-(act.money)*10000)/10000}}</text>到底价
-								</view>
-								<view class="zu-time" v-if="item.end ||item.groupMainP.bargainingAmount == 0">已结束</view>
-								<view class="zu-time" v-else>剩余<text>{{item.times}}</text></view>
-							</view>
-							<view
-								:class="'zu-btn ' + (item.groupMainP.bargainingAmount == 0 || item.end ? 'end' : 'mbglinear')"
-								v-if="item.groupMainP.bargainingAmount == 0">查看详情</view>
-							<view
-								:class="'zu-btn ' + (item.groupMainP.bargainingAmount == 0 || item.end ? 'end' : 'mbglinear')"
-								v-else>帮TA砍价
-							</view>
-
-						</view>
-					</scroll-view>
-					<view class="tole" v-if="activityDot.length==21">--仅显示20个正在砍价的人--</view>
-				</view>
-			</view>
-		</view>
-		<!-- 添加到小店成功 -->
-		<view class="mask" :hidden="isHide" @tap="hidePop"></view>
-		<view class="suc" :hidden="isHide">
-			<image src="/static/pages/images/tjcg1.png" class="tjcg1"></image>
-			<image src="/static/pages/images/tjcg.png" class="tjcg"></image>
-			<text>快去我的小店看看吧</text>
-			<view class="shopcc dflex">
-				<view class="shop" @tap="showShare">分享推广</view>
-				<navigator :url="url" hover-class="none" class="shop" >我的小店</navigator>
-			</view>
-			<!-- <view class="share-btn dflex">
-				<button class="wxfriend dflex" open-type="share">
-					<image src="/static/pages/images/wechat.png"></image>
-					微信好友
-				</button>
-				<view class="wxposter dflex" @tap="generatePoster">
-					<image src="/static/pages/images/poster.png"></image>
-					生成海报
-				</view>
-			</view> -->
-			<image src="/static/pages/images/close2.png" class="suc-close" @tap="hidePop"></image>
-		</view>
-		<block v-if="isPopupLogin">
-			<product-login :about="about" @hidePopupLogin="hidePopupLogin"></product-login>
-		</block>
-	</view>
-</template>
-
-<script>
-	const app = getApp();
-	const req = require("../../../utils/request.js");
-	const utils = require("../../../utils/util.js");
-	var QQMapWX = require("../../../utils/qqmap.js");
-	const requsetmessage = require("../../../utils/requestmessage.js");
-	const route = require("../../../utils/route");
-	const api = require("../../../utils/api.js");
-	import productFooter from "../../../components/product_footer/index";
-	import productPopup from "../../../components/product-popup/index";
-	import vShare from "../../../components/share/share";
-	import productLogin from "../../../components/product-login/index";
-
-	export default {
-		data() {
-			return {
-				bottomBlankHeight: app.globalData.isIPhoneX ? 68 : 0,
-				swiperCurrent: 0,
-				bannerUrls: [],
-				isShow: false,
-				pro: {},
-				timer: [],
-				isRemind: false,
-				hideShare: true,
-				codeUrl: '',
-				bgUrl: "/activity/static/activity/images/share_pintuan.jpg",
-				contentList: [{
-					pic: "/static/pages/images/bar.png",
-					name: '好风依旧',
-					time: '4秒前'
-				}, {
-					pic: "/static/pages/images/bar.png",
-					name: '杨鑫',
-					time: '20秒前'
-				}, {
-					pic: "/static/pages/images/bar.png",
-					name: '杨鑫',
-					time: '5秒前'
-				}],
-				isNotice: false,
-				activityPurchaseRecordListDTO: [],
-				isBargain: false,
-				//是否发起砍价
-				form: {
-					page: 1,
-					limit: 10
-				},
-				freshen: true //是否更新页面
-					,
-				current: "",
-				query: "",
-				merchant: "",
-				merchantId: "",
-				shopId: "",
-				imgs: "",
-				nodes: "",
-				salePrice: "",
-				isuser: false,
-				acid: "",
-				act: "",
-				activityDot: "",
-				isStates: 0,
-				address: {},
-				popup: "",
-				bargainId: "",
-				count: "",
-				show: false,
-				tabIndex: "",
-				guarantee: "",
-				is_open_comments: "",
-				switch: true,
-				about:{},
-				allShow:false,
-				isHide: true,//添加小店成功弹窗
-				url: '',
-				is_open_shop: '',//商户是否开启分销
-				ascription: false,//是否开启小店
-				isDistriUser: 0, // 判断用户是否是分销员 2为分销员
-				isPopupLogin: false
-			};
-		},
-
-		components: {
-			productFooter,
-			productPopup,
-			vShare,
-			productLogin
-		},
-		props: {},
-		onLoad: function(options) {
-			this.query = options;
-			this.setData({
-				query: options
-			});
-
-			if (options.scene) {
-				this.scene = options.scene;
-			}
-
-			if (options.isShare) {
-				this.query.id = options.id;
-				this.query.acid = options.acid;
-				req.setStorage('pidCode', options.userId);
-				req.setStorage('pidCode', options.userId);
-				let params = {
-					userId: options.userId,
-					merchantId: options.merchantId ? options.merchantId : '',
-				}
-				this.bindUser(params);
-			}
-			setInterval(() => {
-				this.setData({
-					isNotice: true
-				});
-			}, 10000);
-		},
-		onShow: async function() {
-			let that = this
-			if (this.freshen) {
-				await this.loadCodeParams();
-				if(that.scene){
-					await that.bindUser(that.query);
-				}
-				this.getGuarantee().then(data => {
-					if (this.switch) {
-						api.getMerchant(this.query, req, data => {
-							that.loadDefaultAddress();
-							if (data == 1) {
-								api.locationShow()
-							} else {
-								that.getuserInfos(data);
-								if (data.type == 5) {
-									that.query.merchantId = data.merchantDTO.id
-									that.query.shopId = data.id
-								} else {
-									that.query.merchantId = data.id
-								}
-								if (req.getStorage('userInfo') && that.merchant.id != data.id) {
-									this.loadProudct();
-									let pages = getCurrentPages();
-									var prevPage = pages[pages.length - 2];
-									if (prevPage) {
-										prevPage.$vm.setData({
-											freshen: true
-										});
-									}
-								} else {
-									this.loadProudct();
-								}
-								that.merchant = data
-							}
-						})
-					}
-				})
-				// this.loadDefaultAddress();
-				await this.browsRecound(this.query.id);
-				this.initState();
-				// let merchant = req.getStorage('defaultMerchant');
-				// this.setData({ merchant: merchant });
-				// this.getMerchant();
-			}
-		},
-
-
-		onShareAppMessage: function() {
-			let merchantId = '';
-			let path = '/activity/bargain/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid +
-				'&isShare=' + true;
-			if (!req.getStorage('userInfo').id) {} else {
-				path += '&userId=' + req.getStorage('userInfo').id;
-			}
-
-			let shopId = '';
-			if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-				path += '&merchantId=' + req.getStorage('MERCHANT').id;
-				merchantId = req.getStorage('MERCHANT').id;
-
-				if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-					path += '&shopId=' + req.getStorage('smallShop').id;
-					shopId = req.getStorage('smallShop').id;
-					merchantId = req.getStorage('smallShop').merchantDTO.id;
-				}
-			}
-
-
-			route.share(1, req.getStorage('userInfo').id, path, merchantId, shopId, 9, this.query.acid + '_' + this
-				.query.id);
-			return {
-				title: this.pro.title,
-				imageUrl: this.pro.pic,
-				path: path
-			}; // return {
-			//   title: this.data.pro.title,
-			//   imageUrl: this.data.pro.pic,
-			//   path: 'activity/bargain/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid + '&isShare=' + true + '&userId=' + req.getStorage('userInfo').id+'&merchantId='+this.data.query.merchantId
-			// }
-		},
-
-		onUnload() {
-			this.clearAllTimer();
-			if (this.timer) clearInterval(this.timer);
-		},
-
-		onHide() {
-			this.clearAllTimer();
-		},
-
-		onReachBottom() {
-			if (this.is_open_comments == 1 && this.tabIndex == 2) {
-				this.form.page++;
-				this.setData({
-					['form.page']: this.form.page
-				});
-				// this.selectComponent("#list").loadScore(this.current);
-				this.$refs.list.loadScore(this.current);
-			}
-		},
-
-		methods: {
-			bindUser(par){
-				let userInfo = req.getStorage('userInfo');
-				if(!userInfo){
-					// uni.login({
-					// 	success(res) {
-					// 		let params = {
-					// 			code: res.code,
-					// 			parentId: par.userId,
-					// 			merchantId: par.merchantId ? par.merchantId : par.shopId ? par.shopId : ''
-					// 		}
-					// 		return new Promise((resolve,reject)=>{
-					// 			req.postRequest('/api/v2/login', params, data => {
-					// 				resolve();
-					// 			});
-					// 		})
-					// 	}
-					// });
-					// this.isPopupLogin = true;
-					req.silenceLogin(par.userId, par.merchantId ? par.merchantId : par.shopId ? par.shopId : '');
-				}
-			},
-			click(e) {
-		
-				this.hideShare = e
-			},
-			showShare() {
-				// #ifndef H5
-				req.isLogin().then(success => {
-					if (success) {
-						this.getCodeUrl()
-						this.setData({
-							hideShare: false
-						});
-					}
-				});
-				// #endif
-			},
-
-			/**
-			 * 轮播切换
-			 */
-			swiperChange({
-				detail
-			}) {
-				if (this.current == 0 && this.swiperCurrent > 1) {
-					//卡死时,重置current为正确索引
-					this.setData({
-						current: this.swiperCurrent
-					});
-				} else {
-					//正常轮转时,记录正确页码索引
-					this.setData({
-						swiperCurrent: detail.current
-					});
-				}
-			},
-
-			dotEvent(e) {
-				this.setData({
-					current: e.currentTarget.dataset.current
-				});
-			},
-
-			browsRecound(id) {
-				let from = {
-					bindId: id,
-					type: 9,
-					page: '/activity/bargain/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid
-				};
-				if (this.query.isShare) {
-					from.shareType = 1;
-					from.page = '/activity/bargain/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid +
-						'&isShare=' + true;
-
-					if (!this.query.userId) {} else {
-						from.page += '&userId=' + this.query.userId;
-					}
-
-					if (!this.query.merchantId) {} else {
-						from.merchantId = this.query.merchantId;
-					}
-
-					if (!this.query.shopId) {} else {
-						from.shopId = this.query.shopId;
-					}
-
-					if (!this.query.userId) {} else {
-						from.uid = this.query.userId;
-					}
-				}
-
-				if (this.query.isShareTimeline) {
-					from.shareType = 2;
-					from.page = '/activity/bargain/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid +
-						'&isShareTimeline=' + true;
-
-					if (!this.query.userId) {} else {
-						from.page += '&userId=' + this.query.userId;
-					}
-
-					if (!this.query.merchantId) {} else {
-						from.merchantId = this.query.merchantId;
-					}
-
-					if (!this.query.shopId) {} else {
-						from.shopId = this.query.shopId;
-					}
-
-					if (!this.query.userId) {} else {
-						from.uid = this.query.userId;
-					}
-				}
-				return new Promise((resolve,reject)=>{
-					req.postRequest('/api/browse', from, data => {resolve()});
-				})
-			},
-
-			loadCodeParams() {
-				let _ts = this;
-
-				return new Promise((resolve, reject) => {
-					if (!_ts.scene) {
-						resolve();
-						return false;
-					}
-
-					req.getRequest('/api/code/params', {
-						scene: _ts.scene
-					}, data => {
-						this.query.id = data.scene.split('_')[0];
-						this.query.acid = data.scene.split('_')[1];
-						this.query.merchantId = data.scene.split('_')[2];
-						this.query.shopId = data.scene.split('_')[3];
-						this.query.userId = data.userId;
-						req.setStorage('pidCode', data.userId);
-						resolve();
-					});
-				});
-			},
-
-			getCodeUrl() {
-				let that = this; //获取小程序码
-				const query = this.query;
-				// const params = {
-				// 	page: 'activity/bargain/detail/detail',
-				// 	scene: that.pro.id + '_' + query.acid+'_'+query.merchantId
-				// };
-				let scene = that.pro.id + '_' + query.acid;
-				if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-					scene += '_' + req.getStorage('MERCHANT').id;
-					if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-						scene += '_' + req.getStorage('smallShop').id;
-					}
-				}
-		
-				const params = {
-					page: 'activity/bargain/detail/detail',
-					scene: scene
-				};
-				req.getRequest('/api/program/codev', params, url => {
-					that.setData({
-						codeUrl: url
-					});
-				});
-			},
-
-			async loadProudct() {
-				let that = this;
-				await that.loadActivity();
-				const query = that.query;
-				let isShowLoading = false;
-				
-				if (!isShowLoading) {
-					req.loadIng('加载中');
-					isShowLoading = true;
-				}
-				req.getRequest('/api/product/detail', {
-					id: query.id
-				}, data => {
-					var nodes = data.detail;
-
-					// if (nodes) {
-					// 	if (nodes.indexOf("src") >= 0) {
-					// 		//正则匹配所有图片路径
-					// 		var imgs = [];
-					// 		nodes = nodes.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function(match, capture) {
-					// 			imgs.push(capture);
-					// 			that.setData({
-					// 				imgs: imgs
-					// 			});
-					// 			return '';
-					// 		});
-					// 	}
-					// }
-					let propertiesList = []
-					if (data.propertiesList && data.propertiesList.length > 0) {
-						data.propertiesList.map(it => {
-							propertiesList.push(it.value);
-						})
-					}
-					data.properties = propertiesList.join(' / ')
-					that.setData({
-						bannerUrls: data.images,
-						pro: data,
-						nodes: nodes,
-						'pro.salePrice': this.act.money,
-						salePrice: data.salePrice,
-						// 'pro.stock': this.act.quantity,
-						'pro.stock': this.act.quantity - this.act.payQuantity,
-						'pro.payQuantity': this.act.payQuantity,
-						'pro.maxBuy': this.act.maxBuy,
-						allShow:true
-					});
-					if (isShowLoading) {
-						uni.hideLoading();
-						isShowLoading = false;
-					}
-					// that.getCodeUrl();
-				});
-			},
-
-			loadActivity() {
-				let that = this;
-				const query = this.query;
-				return new Promise((resolve, reject) => {
-					let from = {
-						id: query.acid,
-						type: 5,
-					}
-					if(!this.query.merchantId){}else{
-						from.merchantId=this.query.merchantId
-					}
-					let userInfo = req.getStorage('userInfo');
-					if(userInfo.listShopBase && userInfo.listShopBase.length >0 ){
-						from.shopId = userInfo.listShopBase[0].id;
-					}
-					req.getRequest('/api/activity/detailNew', from, data => {
-						/**
-						 * 判断活动是否结束,结束,2秒后为用户跳转至该商品的详情页面
-						 */
-						// if (data.end) {
-						//   this.setData({ start: data.end })
-						//   wx.showToast({
-						//     title: '活动已结束,两秒后将为您跳转至该商品页面',
-						//     icon: 'none',
-						//     success: function () {
-						//       setTimeout(function () {
-						//         wx.redirectTo({ url: '/product/detail/detail?id=' + data.productId })
-						//       }, 2000);
-						//     }
-						//   })
-						// }
-						this.getMy();
-						if (data.activityPurchaseRecordListDTO) {
-							data.activityPurchaseRecordListDTO.forEach(res => {
-								if (req.getStorage('userInfo').id == res.groupMainP.userId) {
-									this.setData({
-										isuser: true,
-										acid: res.groupMainP.id
-									});
-								}
-							});
-						}
-
-						this.setData({
-							act: data,
-							isRemind: data.remindId
-						});
-						if (data.activityPurchaseRecordListDTO) {
-							let groupList = [];
-							data.activityPurchaseRecordListDTO.map(item => {
-								if (item.groupList) {
-									groupList.push(item.groupList[item.groupList.length - 1]);
-								}
-							});
-							// console.log(groupList);
-							// data.activityPurchaseRecordListDTO.map((item, index) => {
-							// 	groupList.map((gItem, gIndex) => {
-							// 		console.log(gIndex, index,"123");
-							// 		if (gIndex == index) {
-							// 			console.log(gItem);
-							// 			item.groupMainP.bargainingAmount = parseFloat(gItem
-							// 				.afterAmount - that.act.money).toFixed(2);
-							// 			return item;
-							// 		}
-							// 	});
-							// });
-							// console.log(data.activityPurchaseRecordListDTO);
-							let activityPurchaseRecordListDTO;
-							let arr;
-
-							if (data.activityPurchaseRecordListDTO) {
-								activityPurchaseRecordListDTO = data.activityPurchaseRecordListDTO.slice(0,
-									2);
-								arr = data.activityPurchaseRecordListDTO.slice(0, 21);
-							}
-
-							this.setData({
-								activityPurchaseRecordListDTO: activityPurchaseRecordListDTO,
-								activityDot: arr
-							});
-							// console.log(activityPurchaseRecordListDTO, arr);
-						}
-						this.bargainingCount(); 
-						this.initTimer(data);
-						this.groupItemTimer(1);
-						this.groupItemTimer();
-						resolve();
-					});
-				});
-			},
-			// 获取用户信息
-			getuserInfos(data) {
-				let userInfo = req.getStorage('userInfo');
-				if (userInfo && userInfo.listShopBase && userInfo.listShopBase != null && userInfo.listShopBase.length >
-					0) {
-					if (userInfo.listShopBase[0].merchant_id == data.id && data.type != 5) {
-						let url = '/mine/shop/shop?merchantId=' + userInfo.listShopBase[0].merchant_id + '&shopId=' + userInfo.listShopBase[0].id;
-						this.url = url;
-						this.ascription = true;
-					}
-				}
-			},
-			getMy() {
-				let that = this;
-				let userInfo = req.getStorage('userInfo');
-				if(!userInfo || userInfo == null) return false;
-				req.getRequest('/api/user/my', {}, data => {
-					that.isDistriUser = data.isDistriUser;
-				});
-			},
-
-			initTimer(group) {
-				//计时器
-				let _ts = this; //group.endTime
-
-
-				let nowTime = new Date(group.nowTime.replace(/-/g, '/')).getTime();
-				let startTime = new Date(group.startTime.replace(/-/g, '/')).getTime();
-				let endTime = new Date(group.endTime.replace(/-/g, '/')).getTime();
-				if (!group.start) endTime = startTime;
-				let times = parseInt((endTime - nowTime) / 1000);
-				let data = {}; //判断是否已开始
-
-				if (nowTime - startTime > 0) {
-					//开始了
-					_ts.setData({
-						isStates: 1
-					});
-				} else {
-					//未开始
-					_ts.setData({
-						isStates: 0
-					});
-				}
-
-				_ts.setData(data);
-
-				if (times > 0) {
-					_ts.timer = setInterval(() => {
-						times--;
-
-						if (times <= 0) {
-							//重新加载列表
-							_ts.setData({
-								'act.end': true
-							});
-
-							return false;
-						}
-
-						let n = utils.formatDayTimes(times);
-
-						_ts.setData({
-							timer: n.split(/:|天/g)
-						});
-					}, 1000);
-				} else {
-					_ts.setData({
-						isStates: 2
-					});
-				}
-			},
-
-			//组团倒计时
-			groupItemTimer(type) {
-				//社区拼图定时器
-				let _ts = this;
-
-				let group;
-
-				if (type == 1) {
-					group = this.activityPurchaseRecordListDTO;
-				} else {
-					group = this.activityDot;
-				}
-
-				if (group && group.length > 0) {
-					let pageList = group;
-
-					for (let i = 0, len = pageList.length; i < len; i++) {
-						let group = pageList[i];
-						let nowTime = new Date(this.act.nowTime.replace(/-/g, '/')).getTime();
-						let endTime = new Date(group.endDate.replace(/-/g, '/'))
-							.getTime(); // let actend=new Date(this.data.act.endTime.replace(/-/g, '/')).getTime();
-						// let times
-						// if(actend-endTime>0){
-						//    times = parseInt((endTime - nowTime) / 1000);
-						// }else{
-						//   times = parseInt((actend - nowTime) / 1000);
-						// }
-
-						let times = parseInt((endTime - nowTime) / 1000); // console.log(group)
-						// group.map(item => {
-						//   item.end = false
-						//   return item;
-						// })
-
-						if (times < 0) {
-							let data = {};
-
-							if (type == 1) {
-								data['activityPurchaseRecordListDTO[' + i + '].end'] = true;
-							} else {
-								data['activityDot[' + i + '].end'] = true;
-							}
-
-							_ts.setData(data);
-						}
-
-						let timer = setInterval(() => {
-							times--;
-							let data = {};
-
-							if (times === 0) {
-								//重新加载列表
-								clearInterval(timer);
-							} else {
-								let n = utils.formatDayTimes(times);
-
-								if (type == 1) {
-									data['activityPurchaseRecordListDTO[' + i + '].times'] = n;
-								} else {
-									data['activityDot[' + i + '].times'] = n;
-								}
-							}
-
-							_ts.setData(data);
-						}, 1000);
-						let fs = [];
-
-						if (type == 1) {
-							fs['activityPurchaseRecordListDTO[' + i + '].timer'] = timer;
-						} else {
-							fs['activityDot[' + i + '].timer'] = timer;
-						} // this.clearAllTimer()
-
-
-						_ts.setData(fs);
-					}
-				}
-			},
-
-			clearAllTimer() {
-				if (this.activityPurchaseRecordListDTO) {
-					this.activityPurchaseRecordListDTO.forEach(it => {
-						clearInterval(it.timer);
-						clearInterval(it.times);
-					});
-				}
-
-				if (this.activityDot) {
-					this.activityDot.forEach(it => {
-						clearInterval(it.timer);
-						clearInterval(it.times);
-					});
-				}
-			},
-
-			loadDefaultAddress() {
-				if (req.isAuth()) {
-					req.g('/api/address/default', data => {
-						if (data) this.setData({
-							address: data
-						});
-						else this.pointLocation();
-					}, true);
-				} else {
-					this.pointLocation();
-				}
-			},
-
-			toAddress() {
-				app.globalData.openPage('mine/address/address');
-			},
-
-			toMerchant() {
-				if(this.about.User_Limit_Store==1){
-					
-				}else{
-				app.globalData.openPage('pages/nearby/nearby?isChoose=true');
-				}
-			},
-
-			pointLocation() {
-				//定位当前位置
-				let _ts = this;
-
-				QQMapWX.initMap();
-				req.getLocation(res => {
-					QQMapWX.reverseGeocoder(res, data => {
-						_ts.setData({
-							['address.address']: data.address
-						});
-					});
-				});
-			},
-
-			atOnceBuy() {
-				//立即购买
-				// if (this.data.isStates == 0) return req.msg('活动还未开始');
-				// if (this.data.isStates == 2) return req.msg('活动已结束');
-				// if(this.data.start) return req.msg('活动已结束');
-				let popup = this.pro;
-				popup.salePrice = this.pro.actualPrice;
-				popup.stock = this.pro.stock;
-				this.setData({
-					isShow: true,
-					popup: popup
-				});
-			},
-
-			addActivityRemind() {
-				req.postRequest('/api/activity/remind', {
-					activityId: this.act.id
-				}, res => {
-					requsetmessage.remind();
-					req.msg('订阅提醒成功');
-					this.setData({
-						isRemind: true
-					});
-				});
-			},
-
-			cancelActivityRemind(event) {
-				if (req.header.appId == 'ZQ1VK5oc17I387E') {
-
-				} else {
-					req.postRequest('/api/activity/cancel/remind', {
-						id: this.act.id
-					}, res => {
-						req.msg('取消提醒成功');
-						this.setData({
-							isRemind: false
-						});
-					});
-				}
-			},
-
-			hidePopup() {
-				this.setData({
-					isShow: false
-				});
-			},
-			hidePopupLogin(data) {
-				this.isPopupLogin = false;
-			},
-
-			clickCollect() {
-				let _ts = this;
-
-				req.postRequest('/api/collect', {
-					bindId: this.pro.id,
-					type: 1
-				}, data => {
-					_ts.setData({
-						'pro.isCollect': !_ts.pro.isCollect
-					});
-				});
-			},
-
-			goTop: function(e) {
-				// 一键回到顶部
-				if (uni.pageScrollTo) {
-					uni.pageScrollTo({
-						scrollTop: 0
-					});
-				} else {
-					uni.showModal({
-						title: '提示',
-						content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
-					});
-				}
-			},
-
-			create(event) {
-				req.isLogin().then(success => {});
-				if (!req.getStorage('userInfo')) return false;
-				if (this.isStates == 0) return req.msg('活动还未开始');
-				if (this.isStates == 2) return req.msg('活动已结束');
-				let that = this;
-				let end = event.currentTarget.dataset.end;
-				if (end == true) return req.msg('活动已结束');
-				let acpId = event.currentTarget.dataset.acid;
-				let actid = event.currentTarget.dataset.actid;
-				let superid = event.currentTarget.dataset.superid;
-				let proid = this.pro.id;
-				let userid = event.currentTarget.dataset.userid;
-				let param = {
-					acpId: acpId,
-					actId: this.act.actId,
-					productId: proid,
-					type: 5,
-					initOrPart: userid == req.getStorage('userInfo').id ? 1 : 2,
-					superiorId: superid
-				};
-				req.getRequest('/api/activity/participationActivity', param, res => {
-					//判断是否帮砍过
-					if (res.state == 1) {
-						let url = 'activity/bargain/kjDetail/kjDetail?id=' + superid + '&proid=' + this.pro.id +
-							'&merchantId=' + this.query
-							.merchantId;
-						if (userid !== req.getStorage('userInfo').id) url += '&isShow=' + true;
-						app.globalData.openPage(url);
-						return false;
-					}
-
-					let params = {
-						acpId: this.act.id,
-						type: 5
-					};
-
-					if (superid) {
-						params.superiorId = superid;
-					}
-
-					req.postRequest('/api/activity/carterActivityPurchaseRecords', params, res => {
-						if (res) {
-							let money = '';
-							let id = '';
-							if (superid) money = res, id = superid;
-							else id = res;
-							app.globalData.openPage('activity/bargain/kjDetail/kjDetail?id=' + id +
-								'&money=' + money + '&proid=' +
-								proid);
-						}
-					});
-				});
-			},
-
-			initState() {
-				//判断是否发起砍价
-				let params = {
-					acpId: this.act.id,
-					actId: this.act.actId,
-					productId: this.act.productId,
-					type: 5,
-					initOrPart: 1
-				};
-				return new Promise((resolve, reject) => {
-					req.getRequest('/api/activity/participationActivity', params, res => {
-						if (res.state == 1) {
-							this.setData({
-								isBargain: true,
-								bargainId: res.id
-							});
-						} else if (res.state != 1) {
-							this.setData({
-								isBargain: false
-							});
-						}
-
-						resolve();
-					});
-				});
-			},
-
-			toKjDetail(event) {
-				event.currentTarget.dataset.id;
-				app.globalData.openPage('activity/bargain/kjDetail/kjDetail?id=' + this.acid + '&proid=' + this.pro.id +
-					'&merchantId=' + this.query.merchantId);
-			},
-
-			toKanjia(event) {
-				req.isLogin().then(success => {});
-				let acid = event.currentTarget.dataset.id;
-				let proid = event.currentTarget.dataset.proid;
-				app.globalData.openPage('activity/bargain/kjDetail/kjDetail?id=' + acid + '&proid=' + proid +
-					'&merchantId=' + this
-					.query.merchantId);
-			},
-
-			onShareTimeline() {
-				let merchantId = '';
-				let path = 'id=' + this.query.id + '&acid=' + this.query.acid + '&isShareTimeline=' + true;
-
-				if (!req.getStorage('userInfo').id) {} else {
-					path += '&userId=' + req.getStorage('userInfo').id;
-				}
-
-				// console.log(this.merchantId);
-				let shopId = '';
-
-
-				if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-					path += '&merchantId=' + req.getStorage('MERCHANT').id;
-					merchantId = req.getStorage('MERCHANT').id;
-
-					if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-						path += '&shopId=' + req.getStorage('smallShop').id;
-						shopId = req.getStorage('smallShop').id;
-						merchantId = req.getStorage('smallShop').merchantDTO.id;
-					}
-				}
-
-
-				let url = '/activity/bargain/detail/detail?' + path;
-				route.share(2, req.getStorage('userInfo').id, url, merchantId, shopId, 9, this.query.acid + '_' + this
-					.query.id);
-				return {
-					title: (req.getStorage("userInfo").nickName?req.getStorage("userInfo").nickName:'') + '邀请您参与砍价:'+this.pro.title,
-					query: path,
-					imageUrl: this.pro.pic
-				}; // return {
-				//   title: this.data.pro.title,
-				//   imageUrl: this.data.pro.pic
-				// }
-			},
-
-			// 获取砍价活动总人数
-			bargainingCount() {
-				if (!req.getStorage('userInfo')) return false;
-				let param = {
-					acpId: this.query.acid,
-					actId: this.act.actId,
-					productId: this.act.productId
-				}
-				// console.log(param,"------------------------")
-				req.getRequest('/api/activity/bargainingCount', param, data => {
-					this.setData({
-						count: data
-					});
-				});
-			},
-
-			clickmore() {
-				// let arrayShow = [];
-				// let index = 0;
-				// for (let i = index; i < index + 5; i++) {
-				//   if (this.data.activityPurchaseRecordListDTO[i]) {
-				//     arrayShow.push(this.data.activityPurchaseRecordListDTO[i]);
-				//     index = i;
-				//   }
-				// }
-				// index = index + 1;
-				// if(arrayShow.length>=20){
-				//   return req.msg("仅显示20个正在拼团的人")
-				// }
-				// this.setData({arrayShow:arrayShow})
-				// this.groupItemTimer()
-				this.getPage();
-				this.setData({
-					show: true
-				});
-			},
-
-			eliminate() {
-				this.setData({
-					show: false
-				});
-			},
-
-			getPage() {
-				//获取系统信息:获取当前屏幕可见区域的宽和高
-				let that = this;
-				uni.getSystemInfo({
-					success: function(res) {
-						that.setData({
-							"windowWidth": res.windowWidth,
-							//可使用窗口宽度,单位px
-							"windowHeight": res.windowHeight //可使用窗口高度,单位px
-
-						});
-						// console.log(res.windowWidth, that.windowWidth);
-						// console.log(res.windowHeight, that.windowHeight);
-					}
-				});
-			},
-
-			showTab: function(e) {
-				this.setData({
-					tabIndex: e.detail
-				});
-			},
-			scoreTab: function(e) {
-				this.form.page = 0;
-				this.setData({
-					current: e.detail,
-					['form.page']: 1
-				});
-			},
-			freshenFun: function(e) {
-				this.setData({
-					freshen: e.detail
-				});
-			},
-
-			// 获取品种保证
-			getGuarantee() {
-				return new Promise((data, rej) => {
-					req.getRequest('/api/config', {}, res => {
-						req.setStorage("configRes", JSON.stringify(res))
-						this.about=res
-						data(res)
-						if (this.merchant && this.merchant.isDefault == 1 || this.query.acid) {
-							// 切割;拿到数组,然后在过滤掉空值
-							if (res.b2c_service_guarantee && res.b2c_service_guarantee != null) {
-								this.setData({
-									guarantee: res.b2c_service_guarantee.split(";").filter(it => {
-										return it = it && it.trim();
-									})
-								});
-							}
-						} else {
-							if (res.o2o_service_guarantee && res.b2c_service_guarantee != null) {
-								this.setData({
-									guarantee: res.o2o_service_guarantee.split(";").filter(it => {
-										return it = it && it.trim();
-									})
-								});
-							}
-						} // if(res.Is_Store_Price_Stock){
-						//   this.setData({Is_Store_Price_Stock:res.Is_Store_Price_Stock})
-						// }
-						if (res.is_open_shop) {
-							this.is_open_shop = res.is_open_shop;
-						}
-
-						if (res.is_open_comments) {
-							this.setData({
-								is_open_comments: res.is_open_comments
-							});
-						} // this.setData({ show_membership_price: res.show_membership_price, Is_Store_Price_Stock: res.Is_Store_Price_Stock, is_open_shop: res.is_open_shop })
-
-					});
-				})
-			},
-			// 是否开启小店
-			isShop() {
-				if (req.getStorage('distribution')) {
-					dist = req.getStorage('distribution')
-					this.setData({
-						distr: dist
-					})
-					console.log(dist)
-					if (dist.distributionSmallShopOpen == 1) {
-						req.postRequest('/api/shopBase/isOpenShop', {}, data => {
-							this.setData({
-								isshop: data
-							})
-							console.log(data)
-						})
-					}
-				}
-			},
-			addShop() { //添加到小店
-				req.postRequest('/api/shopProduct/save', {
-					productId: this.act.id,
-					type: 7
-				}, data => {
-					this.act.isJoinShop = true;
-					this.isHide = false;
-				})
-			},
-			hidePop() { //添加到小店
-				this.setData({
-					isHide: true
-				})
-			},
-
-		}
-	};
-</script>
-<style>
-	@import "./detail.css";
-</style>

+ 0 - 25
activity/bargain/index/index.css

@@ -1,25 +0,0 @@
-/* activity/bargain/index/index.wxss */
-page{background: #E0212A;}
-.banner image{width: 100%;}
-.con{padding: 0 20rpx 50rpx;margin-top: -15rpx;position: relative;z-index: 2;}
-.title{align-items: center;justify-content: center;font-size: 32rpx;color: #fff;height: 80rpx;line-height: 80rpx;border-radius: 12rpx 12rpx 0 0;}
-.title .icon{margin-right: 7rpx;font-size: 32rpx;}
-.list{border-radius: 0 0 12rpx 12rpx;padding: 0 20rpx;margin-bottom: 30rpx;}
-.list .li{padding: 30rpx 0;border-bottom: 2rpx solid #E8E8E8;align-items: center;}
-.list .li:last-child{border-bottom: none;}
-.list .li .flex{overflow: hidden;}
-.proimg{width: 180rpx;height: 180rpx;margin-right: 20rpx;}
-.name{font-size: 28rpx;color: #333;text-overflow: ellipsis;white-space: nowrap;overflow-y: hidden;}
-.kan-price{align-items: center;margin: 10rpx 0 45rpx;}
-.tag{width: 80rpx;height: 36rpx;border-radius: 8rpx;text-align: center;line-height: 36rpx;font-size: 20rpx;color: #fff;}
-.price{font-size: 38rpx;color: #FE0419;margin: 0 20rpx 0 12rpx;}
-.price text{font-size: 25rpx;}
-.del{font-size: 24rpx;color: #999;text-decoration: line-through;}
-.kan-times{align-items: center;justify-content: space-between;}
-.kan-time{align-items: center;font-size: 24rpx;color: #333;}
-.kan-time text{display: block;width: 38rpx;height: 38rpx;border-radius: 8rpx;background: #333;line-height: 38rpx;text-align: center;margin: 0 7rpx;font-size: 24rpx;color: #fff;}
-.kan-time text:first-child{margin-left: 0;}
-.kan-time view{margin-left: 5rpx;}
-.kan-btn{width: 150rpx;height: 50rpx;border-radius: 25rpx;text-align: center;line-height: 50rpx;font-size: 24rpx;color: #fff;}
-.kan-guoqi{background: #999;}
-.remind{width: 150rpx;height: 50rpx;border-radius: 25rpx;font-size: 24rpx;color: #fff;text-align: center;justify-content: center;line-height: 50rpx;}

+ 0 - 341
activity/bargain/index/index.vue

@@ -1,341 +0,0 @@
-<template>
-	<view>
-		<!--activity/bargain/index/index.wxml-->
-		<view class="banner">
-			<image src="/activity/static/activity/images/kjban.jpg" mode="widthFix"></image>
-		</view>
-		<view class="con">
-			<view class="title mbglinear dflex" v-if="pageMyList.length > 0">
-				<icon class="icon iconfont icon-shandian-shi"></icon>我的砍价
-			</view>
-			<view class="list bgfff" v-if="pageMyList.length > 0">
-				<block v-for="(item, index) in pageMyList" :key="index">
-					<view class="li dflex" @tap="toDetail" :data-id="item.productId" :data-acid="item.id">
-						<image :src="item.pic" lazy-load="true" mode="aspectFit" class="proimg"></image>
-						<view class="flex">
-							<view class="name">{{item.productName}}</view>
-							<view class="kan-price dflex">
-								<text class="tag mbglinear">砍价后</text>
-								<view class="price"><text>¥</text>{{item.money}}</view>
-								<text class="del"
-									v-if="item.orPrice!=0&&item.orPrice>item.money">原价:¥{{item.orPrice}}</text>
-							</view>
-							<view class="kan-times dflex">
-								<view class="kan-time" v-if="item.end">已结束</view>
-								<block v-else>
-									<view class="kan-time dflex" v-if="item.times.length==4">
-										<block v-if="item.times[0] !=0"><text>{{item.times[0]}}</text>天</block>
-										<text>{{item.times[1]}}</text>:
-										<text>{{item.times[2]}}</text>:
-										<text>{{item.times[3]}}</text>
-										<view>后结束</view>
-									</view>
-									<view class="kan-time dflex" v-else>
-										<text>{{item.times[0]}}</text>:
-										<text>{{item.times[1]}}</text>:
-										<text>{{item.times[2]}}</text>
-										<view>后结束</view>
-									</view>
-								</block>
-								<view class="kan-btn mbglinear" v-if="!item.end">继续砍价</view>
-								<view class="kan-btn kan-guoqi" v-else>活动结束</view>
-							</view>
-						</view>
-					</view>
-				</block>
-			</view>
-			<view class="title mbglinear dflex">全民砍价</view>
-			<view class="list bgfff" v-if="pageList.length>0">
-				<block v-for="(item, index) in pageList" :key="index">
-					<view class="li dflex">
-						<image :src="item.pic" mode="aspectFit" class="proimg" @tap="toDetail" :data-id="item.productId"
-							:data-acid="item.id" lazy-load="true"></image>
-						<view class="flex">
-							<view class="name" @tap="toDetail" :data-id="item.productId" :data-acid="item.id">
-								{{item.productName}}</view>
-							<view class="kan-price dflex" @tap="toDetail" :data-id="item.productId"
-								:data-acid="item.id">
-								<text class="tag mbglinear">砍价后</text>
-								<view class="price"><text>¥</text>{{item.money}}</view>
-								<text class="del"
-									v-if="item.orPrice!=0&&item.orPrice>item.money">原价:¥{{item.orPrice}}</text>
-							</view>
-							<view class="kan-times dflex">
-								<view class="kan-time" v-if="item.end">已结束</view>
-								<block v-else>
-									<view class="kan-time dflex" v-if="item.times.length==4">
-										<block v-if="item.times[0] !=0"><text>{{item.times[0]}}</text>天</block>
-										<text>{{item.times[1]}}</text>:
-										<text>{{item.times[2]}}</text>:
-										<text>{{item.times[3]}}</text>
-										<view>{{item.start==false&&item.end==false?'后开始':'后结束'}}</view>
-									</view>
-									<view class="kan-time dflex" v-else>
-										<text>{{item.times[0]}}</text>:
-										<text>{{item.times[1]}}</text>:
-										<text>{{item.times[2]}}</text>
-										<view>{{item.start==false&&item.end==false?'后开始':'后结束'}}</view>
-									</view>
-								</block>
-								<view class="kan-btn mbglinear" v-if="item.end==false&&item.start==true" @tap="toDetail"
-									:data-id="item.productId" :data-acid="item.id">立即砍价</view>
-								<block v-else>
-									<view class="remind mbggreen dflex" v-if="item.start==false&&item.isRemind"
-										@tap="cancelActivityRemind" :data-index="index" data-type="2">取消预约</view>
-									<view class="remind mbggreen dflex" v-if="item.start==false&&!item.isRemind"
-										@tap="addActivityRemind" :data-index="index">
-										<icon class="iconfont icon-yugao" data-type="2"></icon>预约提醒
-									</view>
-								</block>
-							</view>
-						</view>
-					</view>
-				</block>
-			</view>
-			<view class="nodata nosp bgfff" v-if="pageList.length<=0">
-				<image :src="picUrlss+'empty_sp.png'"></image>
-				<text>暂无商品</text>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	// activity/bargain/index/index.js
-	const app = getApp();
-	const req = require("../../../utils/request.js");
-	const utils = require("../../../utils/util.js");
-	const requsetmessage = require("../../../utils/requestmessage.js");
-
-	export default {
-		data() {
-			return {
-				picUrlss: req.public.picUrls,
-				form: {
-					page: 1,
-					limit: 10
-				},
-				pageList: [],
-				pageMyList: [],
-				isLoad: true,
-				hasmore: true
-			};
-		},
-
-		components: {},
-		props: {},
-
-		onLoad(options) {
-			this.query = options;
-			// console.log(options); // this.getData();
-			// this.getList();
-		},
-
-		onShow() {
-			this.isLoad = true, this.form.page = 1;
-			this.setData({
-				pageList: [],
-				pageMyList: []
-			});
-			this.getData();
-			this.getList();
-		},
-
-		onReachBottom() {
-			this.form.page++;
-			this.getList();
-		},
-
-		onUnload() {
-			this.clearAllTimer();
-		},
-
-		onHide() {
-			this.clearAllTimer(1);
-			this.clearAllTimer(2);
-		},
-
-		methods: {
-			getList() {
-				//砍价
-				let that = this;
-				if (!that.isLoad) return false;
-				that.isLoad = false;
-				that.form.type = '5';
-
-				if (this.query.merchantId) {
-					that.form.merchantId = this.query.merchantId;
-				} else if (req.getStorage('MERCHANT')) {
-					that.form.merchantId = req.getStorage('MERCHANT').id;
-				}
-
-				req.getRequest('/api/activity/listNew', that.form, data => {
-					if (data.list && data.list.length == 10) {
-						that.isLoad = true;
-					}
-
-					data = that.pageList.concat(data.list);
-
-					if (data) {
-						data = data.map(it => {
-							it.isRemind = it.remindId;
-							return it;
-						}); // let arrObjFilter = data.filter(ele => ele.end == false)
-
-						that.setData({
-							pageList: data
-						});
-						that.clearAllTimer(2);
-						that.initGroupTimer();
-					}
-				});
-			},
-
-			getData() {
-				//我的砍价
-				let that = this; // that.clearAllTimer(2);
-				if (req.getStorage("userInfo")) {
-					req.postRequest('/api/activity/userActivityData', {
-						state: 0,
-						type: 5
-					}, data => {
-						if (data) {
-							data = that.pageMyList.concat(
-							data); // let arrObjFilter = data.filter(ele => ele.end == false)
-
-							that.setData({
-								pageMyList: data
-							});
-							that.clearAllTimer(1);
-							that.initGroupTimer();
-						}
-					});
-				}
-			},
-
-			initGroupTimer() {
-				//社区拼图定时器
-				let _ts = this;
-				// console.log(this.pageList)
-				if (this.pageList && this.pageList.length > 0) {
-					let pageList = this.pageList;
-					const initPage = (parseInt(this.form.page) - 1) * 10;
-					for (let i = initPage, len = pageList.length; i < len; i++) {
-						let group = pageList[i];
-						let nowTime = new Date(group.nowTime.replace(/-/g, '/')).getTime();
-						let startTime = new Date(group.startTime.replace(/-/g, '/')).getTime();
-						let endTime = new Date(group.endTime.replace(/-/g, '/')).getTime();
-						if (!group.start) endTime = startTime;
-						let times = parseInt((endTime - nowTime) / 1000);
-						let timer = setInterval(() => {
-							times--;
-							let data = {};
-
-							if (times === 0) {
-								//重新加载列表
-								data['pageList[' + i + '].end'] = true;
-								clearInterval(timer);
-							} else {
-								let n = utils.formatDayTimes(times);
-								data['pageList[' + i + '].times'] = n.split(/:|天/g);
-							}
-
-							_ts.setData(data);
-						}, 1000);
-						let fs = [];
-						fs['pageList[' + i + '].timer'] = timer;
-
-						_ts.setData(fs);
-						// console.log(fs)
-					}
-				}
-				if (this.pageMyList && this.pageMyList.length > 0) {
-					let pageMyList = this.pageMyList;
-
-					for (let i = 0, len = pageMyList.length; i < len; i++) {
-						let group = pageMyList[i];  
-						let nowTime = new Date(group.nowTime.replace(/-/g, '/')).getTime();
-						let startTime = new Date(group.startTime.replace(/-/g, '/')).getTime();
-						let endTime = new Date(group.endTime.replace(/-/g, '/')).getTime();
-						if (!group.start) endTime = startTime;
-						let times = parseInt((endTime - nowTime) / 1000);
-						let timer = setInterval(() => {
-							times--;
-							let data = {};
-
-							if (times === 0) {
-								//重新加载列表
-								data['pageMyList[' + i + '].end'] = true;
-								clearInterval(timer);
-							} else {
-								let n = utils.formatDayTimes(times);
-								data['pageMyList[' + i + '].times'] = n.split(/:|天/g);
-							}
-
-							_ts.setData(data);
-						}, 1000);
-						let fs = [];
-						fs['pageMyList[' + i + '].timer'] = timer;
-
-						_ts.setData(fs);
-					}
-				}
-			},
-
-			clearAllTimer(type) {
-				if (type == 1) this.pageList.forEach(it => clearInterval(it.timer));
-				else this.pageMyList.forEach(it => clearInterval(it.timer));
-			},
-
-			cancelActivityRemind(event) {
-				const index = event.currentTarget.dataset.index;
-				const page = this.pageList[index];
-				if (req.header.appId == 'ZQ1VK5oc17I387E') {
-
-				} else {
-					req.postRequest('/api/activity/cancel/remind', {
-						id: page.id
-					}, res => {
-						req.msg('取消提醒成功');
-						let data = {};
-						data['pageList[' + index + '].isRemind'] = false;
-						this.setData(data);
-					});
-				}
-			},
-
-			toDetail(event) {
-				let id = event.currentTarget.dataset.id;
-				let acid = event.currentTarget.dataset.acid;
-				let url='activity/bargain/detail/detail?id=' + id + '&acid=' + acid
-				if(!this.query.merchantId){
-					
-				}else{
-					url+='&merchantId='+this.query.merchantId
-				}
-				app.globalData.openPage(url);
-			},
-
-			addActivityRemind(event) {
-				const index = event.currentTarget.dataset.index;
-				const page = this.pageList[index]; // 订阅调用
-
-
-				req.postRequest('/api/activity/remind', {
-					activityId: page.id
-				}, res => {
-					requsetmessage.remind();
-					req.msg('订阅提醒成功');
-					let data = {};
-					data['pageList[' + index + '].isRemind'] = true;
-					this.setData(data);
-				});
-			},
-
-
-		}
-	};
-</script>
-<style>
-	@import "./index.css";
-</style>

+ 0 - 74
activity/bargain/kjDetail/kjDetail.css

@@ -1,74 +0,0 @@
-/* group/ptDetail/ptDetail.wxss */
-page{background: #E0212A;}
-.banner image{width: 100%;}
-.con{position: relative;z-index: 1;padding: 0 20rpx 50rpx;margin-top: 7rpx;}
-.info{background: #fff;border-radius: 12rpx;padding: 30rpx 20rpx;}
-.pinimgs{box-sizing: border-box;width: 180rpx;height: 180rpx;border-radius: 10rpx;margin-right: 30rpx;border: 2rpx solid #E5E5E5;position: relative;}
-.pinimg{display: block;width: 100%;height: 100%;border-radius: 10rpx;}
-.tuan{display: block;width: 87rpx;height: 44rpx;font-size: 22rpx;color: #fff;text-align: center;line-height: 34rpx;position: absolute;top: 21rpx;left: -10rpx;}
-.tuan image{display: block;width: 100%;height: 100%;position: absolute;top: 0;left: 0;}
-.tuan text{position: relative;z-index: 2;display: block;}
-.proname{font-size: 28rpx;color: #333;}
-.guige{font-size: 24rpx;color: #999;margin-top: 5rpx;}
-.sta{align-items: center;justify-content: space-between;margin-top: 30rpx;}
-.price{font-size: 37rpx;color: #FE0419;}
-.price text{font-size: 25rpx;}
-.price text.del{font-size: 24rpx;color: #999;margin-left: 16rpx;text-decoration: line-through;}
-.nums{font-size: 30rpx;color: #333;}
-.cantuan{padding: 35rpx 55rpx 40rpx;}
-.can-info{text-align: center;font-size: 29rpx;color: #333;margin: 35rpx 0 25rpx;}
-.can-info text{color: #E81033;}
-.sheng{align-items: center;justify-content: center;font-size: 22rpx;color: #333;margin-top: 25rpx;}
-.sheng::before,.sheng::after{content: '';display: block;width: 110rpx;height: 2rpx;background: #FD4D36;}
-.sheng::before{margin-right: 16rpx;}
-.sheng::after{margin-left: 16rpx;}
-.sheng-time{font-size: 24rpx;color: #FD4D36;align-items: center;}
-.sheng-time text{display: block;width: 36rpx;height: 36rpx;border-radius: 6rpx;background: #FD5238;font-size: 22rpx;color: #fff;text-align: center;line-height: 36rpx;margin: 0 10rpx;}
-.process{background: #E8E8E8;height: 16rpx;border-radius: 8rpx;position: relative;}
-.process .ing{position: absolute;top: 0;left: 0;height: 100%;background: #F71F42;border-radius: 8rpx;}
-.can-btn{height: 90rpx !important;border-radius: 45rpx!important;font-size: 30rpx;color: #fff;text-align: center;line-height: 90rpx !important;margin-top: 60rpx !important;}
-.kai-btn{height: 86rpx;border-radius: 45rpx;font-size: 30rpx;color: #FE0419;border: 2rpx solid #FE0419;text-align: center;line-height: 86rpx;margin-top: 20rpx;}
-.tab{height: 104rpx;border-bottom: 2rpx solid #E8E8E8;}
-.tab .li{font-size: 26rpx;color: #999;width: 33.33%;text-align: center;line-height: 104rpx;position: relative;}
-.tab .on{font-size: 28rpx;color: #333;}
-.tab .on::after{content: '';display: block;width:130rpx;height:4rpx;background:linear-gradient(359deg,rgba(240,73,39,1) 0%,rgba(255,142,78,1) 100%);position: absolute;bottom: 0;left: 50%;transform: translateX(-50%);}
-.det-text{padding: 20rpx 30rpx;word-break: break-all;}
-.details .rich-img{width: 100%;}
-.details .img{width: 100%;}
-.friend .li{border-bottom: 2rpx solid #E8E8E8;padding: 28rpx 20rpx;align-items: center;}
-.friend .li:last-child{border-bottom: none;}
-.timg{position: relative;margin-right: 20rpx;}
-.timg image{width: 90rpx;height: 90rpx;border-radius: 50%;}
-.timg text{display: block;width: 78rpx;height: 32rpx;border-radius: 17rpx;border: 2rpx solid #fff;background: #FD4534;font-size: 20rpx;color: #fff;text-align: center;line-height: 32rpx;position: absolute;left: 50%;transform: translateX(-50%);bottom: -12rpx;}
-.name{font-size: 28rpx;color: #333;margin-right: 20rpx;}
-.name text{display: block;font-size: 24rpx;color: #999;margin-top: 5rpx;}
-.time{font-size: 24rpx;color: #999;}
-.nopeople{padding: 100rpx 0;text-align: center;font-size: 28rpx;color: #999;}
-.nopeople image{width: 219rpx;height: 147rpx;margin: 0 auto 30rpx;}
-.guize{font-size: 24rpx;line-height: 40rpx;padding: 30rpx;}
-
-.show{display: block;}
-.hide{display: none;}
-
-
-/* 砍价弹窗 */
-.kjpop{position: fixed;top: 50%;transform: translateY(-50%);left: 85rpx;right: 85rpx;background: #fff;border-radius: 20rpx;padding: 90rpx 45rpx 55rpx;text-align: center;z-index: 100;}
-.kjclose{width: 62rpx;height: 62rpx;position: absolute;top: -30rpx;right: -30rpx;}
-.kjimg{width: 219rpx;height: 147rpx;margin: 0 auto;}
-.kjtip{font-size: 32rpx;color: #333;margin: 45rpx 0 35rpx;}
-.kjbtn{justify-content: space-between;}
-.back{width: 216rpx;height: 66rpx;border: 2rpx solid #F71F42;border-radius: 35rpx;font-size: 32rpx;color: #F71F42;text-align: center;line-height: 66rpx;}
-.ljgm{width: 220rpx;height: 70rpx;background: #F71F42;border-radius: 35rpx;font-size: 32rpx;color: #fff;text-align: center;line-height: 70rpx;}
-
-.kanle1{width: 174rpx;height: 133rpx;margin: 0 auto;}
-.kanle2{width: 189rpx;height: 94rpx;margin: 0 auto;}
-.kandiao{font-size: 32rpx;color: #333;}
-.kandiao text{font-size: 36rpx;color: #F71F42;}
-.kjpop .process{margin: 30rpx 0 95rpx;}
-.end{background: #d1d1d1;}
-.fenx{width: 220rpx !important;height: 70rpx !important;background: #F71F42;border-radius: 35rpx !important;font-size: 32rpx;color: #fff;text-align: center;line-height: 70rpx !important;}
-.faqir{margin: 0 auto;text-align: center;padding: 0 0 35rpx 0;}
-.faqir image{width: 90rpx;height: 90rpx;border-radius: 50%;margin: 0 auto;}
-.faqir view{font-size: 36rpx; padding: 10rpx 0;}
-.faqir text{color: #999;margin: 0 10rpx;}
-.iconfont{display: inline; color: #999;}

+ 0 - 538
activity/bargain/kjDetail/kjDetail.vue

@@ -1,538 +0,0 @@
-<template>
-<view>
-<!--activity/bargain/kjDetail/kjDetail.wxml-->
-<view class="banner">
-	<image src="/activity/static/activity/images/kjban.jpg" mode="widthFix"></image>
-</view>
-<view class="con">
-	<view class="info dflex" @tap="goPrcdetail">
-		<view class="pinimgs">
-			<image :src="acProduc.pic" mode="aspectFit" class="pinimg"></image>
-		</view>
-		<view class="pininfo flex">
-			<view class="proname">{{acProduc.productName?acProduc.productName:''}}</view>
-			<!-- <view class="guige">规格:15G</view> -->
-			<view class="sta dflex">
-				<view class="price"><text>¥</text>{{acProduc.money?acProduc.money:0}}<text class="del" v-if="acProduc.orPrice!=0&&acProduc.orPrice>acProduc.money">原价:¥{{acProduc.orPrice?acProduc.orPrice:'0'}}</text></view>
-				<!-- <view class="nums">×1</view> -->
-			</view>
-		</view>
-	</view>
-	<view class="cantuan bgfff mt20 r10">
-		<view class="faqir">
-			<image :src="aprList.groupMainP.uavatar"></image>
-			<view>{{aprList.groupMainP.unickName}}</view>
-			<icon class="icon iconfont iconbaojiaquotation2"></icon><text>我想要这件好物,快来帮我砍一刀吧</text>
-			<icon class="icon iconfont iconbaojiaquotation"></icon>
-		</view>
-		<view class="sheng dflex" v-if="!act.isJieshu || !acProduc.end">
-			剩余
-			<view class="sheng-time dflex">
-				<!-- <block wx:if="acProduc.end">
-					<text>{{timer[0]}}</text>
-					<text>{{timer[1]}}</text>:
-					<text>{{timer[2]}}</text>:
-					<text>{{timer[3]}}</text>
-				</block> -->
-				<!-- <block wx:else> -->
-					<block v-if="timer.length==4">
-					<block v-if="timer[0] !=0"><text>{{timer[0]}}</text>天</block>
-					<text>{{timer[1]}}</text>:
-					<text>{{timer[2]}}</text>:
-					<text>{{timer[3]}}</text>
-				</block>
-				<block v-else>
-					<text>{{timer[0]}}</text>:
-					<text>{{timer[1]}}</text>:
-					<text>{{timer[2]}}</text>
-				</block>
-				<!-- </block> -->
-			</view>
-			结束
-		</view>
-		<view v-else class="sheng dflex">已过期</view>
-		<view class="can-info">已邀{{participateCount}}人,共砍<text>¥{{bargainingMoney}},</text>仅差<text>¥{{surplusMoney<=0?'0':surplusMoney}}</text></view>
-		<view class="process">
-			<view class="ing" :style="'width:' + percent + ';'"></view>
-		</view>
-		<block v-if="!act.isJieshu">
-			<block v-if="isSuccess">
-				<view class="can-btn mbglinear" @tap="confirmBuy" v-if="whether == 2&&topay==null">立即购买</view>
-				<view class="can-btn mbglinear" @tap="toOrder" v-if="whether == 2&&topay!=null">查看订单详情</view>
-				<view class="kai-btn" v-if="whether == 1" @tap="goUrl">我也要发起砍价</view>
-			</block>
-			<block v-else>
-				<block v-if="isKanjia!=1">
-					<button @tap="initState" class="can-btn mbglinear" v-if="whether == 2 &&isKanjia!=1">立即砍价</button>
-					<view class="can-btn mbglinear" v-if="whether == 1&&isKanjia!=1" @tap="initState">帮TA砍一刀</view>
-				</block>
-				<block v-else>
-					<button open-type="share" class="can-btn mbglinear" v-if="whether == 1">邀请好友帮TA砍价</button>
-					<view class="kai-btn" v-if="whether == 1" @tap="goUrl">我也要发起砍价</view>
-				</block>
-				<button open-type="share" class="can-btn mbglinear" v-if="whether == 2">邀请好友砍价</button>
-			</block>
-		</block>
-		<view v-else class="can-btn end">已过期</view>
-	</view>
-	<view class="detail bgfff mt20 r10">
-		<view class="tab dflex">
-			<view :class="'li ' + (currentTab == 0? 'on' : '')" data-current="0" @tap="tab">商品详情</view>
-			<view :class="'li ' + (currentTab == 1? 'on' : '')" data-current="1" @tap="tab">砍价亲友团</view>
-			<view :class="'li ' + (currentTab == 2? 'on' : '')" data-current="2" @tap="tab">活动规则</view>
-		</view>
-		<view :class="currentTab == 0? 'show' : 'hide'">
-			<mp-html :content="nodes" lazy-load="true"></mp-html>
-			<block v-if="diyNodes || diyImgs.length > 0">
-				<view class="details">
-					<rich-text :nodes="diyNodes" @tap="richImg"></rich-text>
-				</view>
-				<view class="details">
-					<block v-for="(item, index) in diyImgs" :key="index">
-						<image class="img" :src="item" mode="widthFix" @tap="chooseImg1" :data-src="item"></image>
-					</block>
-				</view>
-			</block>
-		</view>
-		<view :class="'friend ' + (currentTab == 1? 'show' : 'hide')">
-			<block v-if="aprList.groupList.length > 0">
-				<view v-for="(item, index) in aprList.groupList" :key="index" class="li dflex">
-					<view class="timg">
-						<image :src="item.uavatar" mode="aspectFit"></image>
-					</view>
-					<view class="name flex">{{item.unickName}}<text>{{item.careatDate}}</text></view>
-					<view class="time">帮砍{{item.bargainingAmount}}元</view>
-				</view>
-			</block>
-			<view class="nopeople" v-else>
-				<image :src="picUrlss+'sqimg2.png'"></image>
-				<text>还没有人帮你砍价,去邀请好友帮忙</text>
-			</view>
-		</view>
-		<view :class="'guize ' + (currentTab == 2? 'show' : 'hide')">
-			<rich-text :nodes="activityMain.rule"></rich-text>
-		</view>
-	</view>
-</view>
-
-<view class="mask" @tap="closeLayer" :hidden="isShow"></view>
-<view class="kjpop" :hidden="isShow">
-	<image src="/static/pages/images/close3.png" class="kjclose" @tap="closeLayer"></image>
-	<!-- <image :src="picUrlss+'sqimg2.png'" class="kjimg"></image>砍价了 -->
-	<image src="/activity/static/activity/images/kanle1.png" class="kanle1" v-if="whether == 1"></image>
-	<!--帮TA砍掉-->
-	<image src="/activity/static/activity/images/kanle2.png" class="kanle2" v-if="whether == 2"></image>
-	<!--您已砍了-->
-	<!-- <image :src="picUrlss+'thsb.png'" class="kjimg"></image> -->
-	<!--砍价失败了-->
-	<!-- <view class="kjtip" wx:if="{{participate == 1}}">您已经砍过了</view> -->
-	<!-- <view class="kjtip">砍价失败了</view> -->
-	<view class="kandiao" v-if="whether == 2 && isSuccess">您已经砍到底价了</view>
-	<!--砍到底价-->
-	<view class="kandiao" v-if="whether == 1">帮TA砍掉<text>{{money}}元</text></view>
-	<!--帮TA砍掉-->
-	<view class="kandiao" v-if="whether == 2 && !isSuccess">您砍了<text>{{money}}元</text></view>
-	<!--帮TA砍掉-->
-	<view class="process">
-		<view class="ing" :style="'width:' + percent + ';'"></view>
-	</view>
-	<view class="kjbtn dflex">
-		<view class="back" @tap="closeLayer">返回</view>
-		<block v-if="whether == 2">
-			<view class="ljgm" @tap="confirmBuy" v-if="isSuccess&&topay==null">立即购买</view>
-			<view class="ljgm" @tap="toOrder" v-if="isSuccess&&topay!=null">查看订单详情</view>
-			<button open-type="share" class="fenx" v-if="!isSuccess">分享给好友</button>
-		</block>
-		<block v-else>
-			<view class="ljgm" @tap="goUrl" v-if="whether == 1">我也要砍价</view>
-		</block>
-	</view>
-</view>
-</view>
-</template>
-
-<script>
-// activity/bargain/kjDetail/kjDetail.js
-const app = getApp();
-const req = require("../../../utils/request.js");
-const utils = require("../../../utils/util.js");
-const route =require("../../../utils/route.js");
-import mpHtml from "../../../components/mp-html/components/mp-html/mp-html";
-export default {
-  data() {
-    return {
-		picUrlss: req.public.picUrls,
-      currentTab: 0,
-      isShow: true,
-      money: '',
-      isSuccess: false,
-      isKanjia: '',
-      start: false,
-      percent: "",
-      timer: "",
-      merchantId: "",
-      topay: ""
-    };
-  },
-
-  components: {mpHtml},
-  props: {},
-
-  async onLoad(options) {
-    this.query = options;
-    // console.log(options);
-
-    if (options.money) {
-      this.setData({
-        isShow: false,
-        money: options.money
-      });
-    }
-
-    if (options.isShow) {
-      this.setData({
-        isShow: true
-      });
-    }
-  },
-
-  async onShow() {
-    req.isLogin().then(success => {});
-	 this.getData();
-
-    await this.loadProudct();
-    this.gettoPay();
-  },
-  // onShareTimeline(){
-	 //  let merchantId = '';
-	 //  let path = '/activity/bargain/kjDetail/kjDetail?id=' + this.query.id + '&superiorId=' + this.aprList.groupMainP.userId + '&proid=' + this.query.proid ;
-	 //  console.log(!req.getStorage('userInfo').id);
-	 //  if (!req.getStorage('userInfo').id) {} else {
-	 //    path += '&userId=' + req.getStorage('userInfo').id;
-	 //  }
-	 //  console.log(this.query.merchantId);
-	 //  let shopId = '';
-	 //    if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-	 //      path += '&merchantId=' + req.getStorage('MERCHANT').id;
-	 //      merchantId = req.getStorage('MERCHANT').id;
-	    	  
-	 //      if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-	 //        path += '&shopId=' + req.getStorage('smallShop').id;
-	 //        shopId = req.getStorage('smallShop').id;
-	 //        merchantId = req.getStorage('smallShop').merchantDTO.id;
-	 //      }
-	 //    }
-	  
-	 //  console.log(path,"456")
-	 //  route.share(1, req.getStorage('userInfo').id, path, merchantId, shopId, 9, this.query.proid + '_' + this.query.id);
-	 //  return {
-	 //    title: req.getStorage("userInfo").nickName + '邀请您帮忙砍价:' + this.acProduc.productName,
-	 //    imageUrl: this.acProduc.pic,
-	 //    path: path
-	 //  };
-  // },
-
-  onShareAppMessage: function () {
-	  let merchantId = '';
-	  let path = '/activity/bargain/kjDetail/kjDetail?id=' + this.query.id + '&superiorId=' + this.aprList.groupMainP.userId + '&proid=' + this.query.proid ;
-	  // console.log(!req.getStorage('userInfo').id);
-	  if (!req.getStorage('userInfo').id) {} else {
-	    path += '&userId=' + req.getStorage('userInfo').id;
-	  }
-	  // console.log(this.query.merchantId);
-	  let shopId = '';
-	    if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-	      path += '&merchantId=' + req.getStorage('MERCHANT').id;
-	      merchantId = req.getStorage('MERCHANT').id;
-	    	  
-	      if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-	        path += '&shopId=' + req.getStorage('smallShop').id;
-	        shopId = req.getStorage('smallShop').id;
-	        merchantId = req.getStorage('smallShop').merchantDTO.id;
-	      }
-	    }
-	  
-	  // console.log(path,"456")
-	  route.share(1, req.getStorage('userInfo').id, path, merchantId, shopId, 9, this.query.proid + '_' + this.query.id);
-	  return {
-	    title: req.getStorage("userInfo").nickName + '邀请您帮忙砍价:' + this.acProduc.productName,
-	    imageUrl: this.acProduc.pic,
-	    path: path
-	  };
-	  
-    // return {
-    //   title: req.getStorage("userInfo").nickName + '邀请您帮忙砍价:' + this.acProduc.productName,
-    //   imageUrl: this.acProduc.pic,
-    //   path: '/activity/bargain/kjDetail/kjDetail?id=' + this.query.id + '&superiorId=' + this.aprList.groupMainP.userId + '&proid=' + this.query.proid + "&merchantId=" + this.query.merchantId
-    // };
-  },
-  methods: {
-    tab(event) {
-      const tabIndex = event.currentTarget.dataset.current;
-      if (this.currentTab === tabIndex) return false;
-      this.setData({
-        currentTab: tabIndex
-      });
-    },
-
-    closeLayer() {
-      this.setData({
-        isShow: true
-      });
-    },
-
-    loadProudct() {
-      let that = this;
-      const query = that.query;
-      // console.log(query.id);
-      return new Promise((resolve, reject) => {
-        req.getRequest('/api/activity/bargainPriceDetail', {
-          id: query.id,
-          merchantId: query.merchantId
-        }, data => {
-			if(data){
-				data.bargainingMoney = parseFloat(data.bargainingMoney).toFixed(2);
-				data.surplusMoney = parseFloat(data.surplusMoney).toFixed(2);
-				this.setData(data);
-				this.initStates();
-				let percent = Math.round(data.bargainingMoney / (data.acProduc.orPrice - data.acProduc.money) * 100) + '%';
-				
-				if (data.bargainingMoney == (data.acProduc.orPrice * 10000 - data.acProduc.money * 10000) / 10000) {
-				  this.setData({
-				    isSuccess: true
-				  });
-				}
-				
-				this.setData({
-				  percent: percent
-				});
-				this.initTimer(data.acProduc, data.aprList);
-			}
-          resolve(); // that.getCodeUrl();
-        });
-      });
-    },
-
-    getData() {
-      let that = this;
-      const query = this.query;
-      return new Promise((resolve, reject) => {
-        req.getRequest('/api/product/detail', { id: query.proid }, data => {
-          // console.log("/api/product/detail")
-          var nodes = data.detail;
-          that.setData({ bannerUrls: data.images, pro: data, nodes: nodes });
-          resolve();
-        })
-      })
-    },
-    initTimer(group, list) {
-      //计时器
-      let _ts = this;
-
-      let nowTime = new Date(group.nowTime.replace(/-/g, '/')).getTime();
-      let startTime = new Date(group.createDate.replace(/-/g, '/')).getTime();
-      let endTime = new Date(list.endDate.replace(/-/g, '/')).getTime(); 
-      let times = parseInt((endTime - nowTime) / 1000);
-      this.timer = setInterval(() => {
-        times--;
-
-        if (times === 0) {
-          //重新加载列表
-          _ts.setData({
-            'act.end': true
-          });
-
-          return false;
-        }
-
-        if (times < 0) {
-          _ts.setData({
-            'act.isJieshu': true
-          });
-        }
-
-        let n = utils.formatDayTimes(times);
-
-        _ts.setData({
-          timer: n.split(/:|天/g)
-        });
-      }, 1000);
-
-      if (this.start) {
-        clearInterval(this.timer);
-      }
-    },
-
-    goUrl() {
-      app.globalData.redirectTab('activity/bargain/index/index?merchantId=' + this.query.merchantId);
-    },
-
-    confirmBuy() {
-      //直接购买
-      if (this.start) return req.msg('活动已结束'); // let merchant = req.getStorage('defaultMerchant');
-
-      if (this.query.merchantId) {
-        this.setData({
-          merchantId: this.query.merchantId
-        });
-      } // else{
-      //   if (req.getStorage('smallShop')) {
-      //     this.setData({ merchant: req.getStorage('smallShop').merchantDTO })
-      //     this.setData({ merchantId: req.getStorage('smallShop').merchantDTO.id })
-      //   } else if (req.getStorage('MERCHANT')) {
-      //     this.setData({ merchantId: req.getStorage('MERCHANT').id })
-      //     this.setData({ merchant: req.getStorage('MERCHANT') })
-      //   }
-      // }
-
-
-      // console.log(this.acProduc);
-      const params = {
-        skuId: this.acProduc.skuId,
-        quantity: 1,
-        productId: this.acProduc.productId,
-        activityId: this.acProduc.id,
-        aprId: this.query.id
-      };
-
-      if (this.query.merchantId) {
-        params.merchantId = this.query.merchantId;
-      } // if (this.data.merchant && this.data.merchant.type == 5) {
-      //   params.shopId = this.data.merchant.id
-      // }
-      // if (this.data.merchantId) params.merchantId = this.data.merchantId;
-
-
-      req.postRequest('/api/purchase/direct/buy', params, res => {
-        let redirect = '/product/subOrder/subOrder?ids=' + res;
-        let orderType = 7; //砍价订单类型
-
-        redirect += '&orderType=' + orderType;
-        redirect += '&aprId=' + params.aprId;
-
-        if (params.merchantId) {
-          redirect += '&merchantId=' + this.merchantId;
-        }
-
-        if (params.shopId) {
-          redirect += '&shopId=' + params.shopId;
-        }
-
-        uni.navigateTo({
-          url: redirect
-        });
-      });
-    },
-
-    initState() {
-      //判断是否发起砍价
-      req.isLogin().then(success => {});
-      let superid = this.query.id;
-      let proid = this.acProduc.productId;
-      if (this.isStates == 0) return req.msg('活动还未开始'); // if (this.data.isStates == 2) return req.msg('活动已结束');
-
-      if (this.start) return req.msg('活动已结束');
-      let param = {
-        acpId: this.acProduc.id,
-        actId: this.acProduc.actId,
-        productId: this.acProduc.productId,
-        type: 5,
-        initOrPart: 2,
-        superiorId: superid
-      };
-      req.getRequest('/api/activity/participationActivity', param, res => {
-        //判断是否帮砍过
-        // console.log("/api/activity/participationActivity");
-
-        if (res.state == 1) {
-          this.setData({
-            isKanjia: res.state,
-            isShow: false
-          });
-          return false;
-        }
-
-        let params = {
-          acpId: this.acProduc.id,
-          type: 5
-        };
-
-        if (superid) {
-          params.superiorId = superid;
-        }
-
-        req.postRequest('/api/activity/carterActivityPurchaseRecords', params, res => {
-          if (res) {
-            let money = '';
-            let id = '';
-            if (superid) money = res, id = superid;else id = res;
-            this.setData({
-              isShow: false,
-              money: money
-            });
-            this.loadProudct(); // wx.redirectTo({ url: '/activity/bargain/kjDetail/kjDetail?id=' + id + '&money=' + money + '&proid=' + proid })
-            // app.openPage('activity/bargain/kjDetail/kjDetail?id=' + id + '&money=' + money + '&proid=' + proid)
-          }
-        });
-      });
-    },
-
-    initStates() {
-      //判断是否发起砍价
-      req.isLogin().then(success => {});
-      let params = {
-        acpId: this.acProduc.id,
-        actId: this.acProduc.actId,
-        productId: this.acProduc.productId,
-        type: 5,
-        initOrPart: 2,
-        superiorId: this.query.id
-      };
-      return new Promise((resolve, reject) => {
-        req.getRequest('/api/activity/participationActivity', params, res => {
-          // console.log("/api/activity/participationActivity");
-
-          if (res.state != 1) {
-            this.setData({
-              isKanjia: res.state,
-              isShow: true
-            });
-          } else {
-            this.setData({
-              isKanjia: res.state
-            });
-          }
-
-          resolve();
-        });
-      });
-    },
-
-    gettoPay() {
-      req.postRequest('/api/activity/toPay', {
-        aprId: this.query.id,
-        type: 5
-      }, data => {
-        this.setData({
-          topay: data
-        });
-      });
-    },
-
-    toOrder() {
-      uni.navigateTo({
-        url: '/mine/orderDet/orderDet?id=' + this.topay
-      });
-    },
-
-    // 活动商品详情
-    goPrcdetail() {
-      app.globalData.openPage('activity/bargain/detail/detail?acid=' + this.acProduc.id + '&id=' + this.acProduc.productId);
-    }
-
-  }
-};
-</script>
-<style>
-@import "./kjDetail.css";
-</style>

+ 0 - 23
activity/content/content.css

@@ -1,23 +0,0 @@
-/* content.css */
-page{background: #fff;padding: 30rpx 0;box-sizing: border-box;}
-.title{font-size: 40rpx;color: #282828;font-weight: bold;line-height: 60rpx;padding: 0 30rpx;}
-.time{font-size: 24rpx;color: #999;padding: 0 30rpx;}
-.time text{font-size: 28rpx;color: #333;margin-right: 23rpx;}
-.content{font-size: 34rpx;color: #333;padding: 30rpx 30rpx;line-height: 1.7;}
-.con-vheight{height: 100vh;position: relative;overflow: hidden;}
-.con-vheight::after{content: '';display: block;position: absolute;left: 0;right: 0;bottom: 0;height: 15vh;background: linear-gradient(rgba(255, 255, 255, 0), #fff);z-index: 5;}
-.content video{width: 100%;height: 400rpx;object-fit:fill; margin-bottom: 20rpx;}
-.content image{width: 100%;margin: 30rpx 0;}
-.view-more{width: 230rpx;height: 70rpx;border: 2rpx solid var(--main);border-radius: 35rpx;font-size: 30rpx;color: var(--main);margin: 30rpx auto 0;text-align: center;line-height: 70rpx;}
-.bot{padding: 40rpx 35rpx 0;}
-.sbanner{overflow: hidden;position: relative;}
-.sbanner .swiper,.sbanner .swiper image{width: 100%;height: 160rpx;border-radius: 12rpx;overflow: hidden;}
-.dots{position: absolute;left: 0;right: 0;bottom: 20rpx;align-items: center;justify-content: center;}
-.dot{background: rgba(0,0,0,.5);width: 12rpx;height: 12rpx;border-radius: 6rpx;margin: 0 4rpx;}
-.dot.active{width: 30rpx;background: #fff;}
-.tits{font-size: 36rpx;color: #333;font-weight: bold;margin: 30rpx 0 0;}
-.zxlist .li{padding: 40rpx 0;border-bottom: 1rpx solid #EBEBEB;}
-.zximg{width: 230rpx;height: 150rpx;border-radius: 12rpx;margin-right: 23rpx;}
-.zxtit{font-size: 30rpx;color: #333;line-height: 41rpx;height: 82rpx;}
-.datas{font-size: 24rpx;color: #999;margin-top: 30rpx;}
-.adContainer{margin: 30rpx 0 0;border-radius: 10rpx;overflow: hidden;}

+ 0 - 107
activity/content/content.vue

@@ -1,107 +0,0 @@
-<template>
-	<view v-if="detaile">
-		<view class="title">{{ detaile.title }}</view>
-		<view class="content">
-			<view class="viewMore">
-				<rich-text :nodes="detaile.text | formatRichText"></rich-text>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-const req = require('../../utils/request.js');
-const api = require('../../utils/api.js');
-const util = require('../../utils/util.js');
-export default {
-	data() {
-		return {
-			detaile: '',
-			type: 2, //详情类型:1 普通内容 2 自定义页面内容
-		};
-	},
-
-	onLoad: function(options) {
-		uni.showShareMenu({
-			withShareTicket: true,
-			menus: ['shareAppMessage', 'shareTimeline']
-		});
-		this.id = options.id;
-		this.type = options.type ? options.type : 2;
-		this.getDetail();
-	},
-	onShow(){
-	},
-
-	onShareAppMessage() {
-		return {
-			title: this.detaile.title,
-			imageUrl: this.detaile.pic,
-			path: '/activity/content/content?id=' + this.id
-		};
-	},
-	onShareTimeline() {
-		return {
-			title: this.detaile.title,
-			imageUrl: this.detaile.pic,
-			path: '/activity/content/content?id=' + this.id
-		};
-	},
-	methods: {
-		getDetail() {
-			let apiUrl = '';
-			if(this.type == 1){
-				apiUrl = '/api/content/detail'
-			}else{
-				apiUrl = '/api/help/detailV2'
-			}
-			let param = {}
-			if(this.type == 1){
-				param.id = this.id;
-			}else{
-				param.code = this.id;
-			}
-			req.getRequest(
-				apiUrl,
-				param,
-				res => {
-					this.detaile = res;
-				}
-			);
-		},
-	},
-	filters: {
-		/**
-		 * 处理富文本里的图片宽度自适应
-		 * 1.去掉img标签里的style、width、height属性
-		 * 2.img标签添加style属性:max-width:100%;height:auto
-		 * 3.修改所有style里的width属性为max-width:100%
-		 * 4.去掉<br/>标签
-		 * @param html
-		 * @returns {void|string|*}
-		 */
-		formatRichText(html) {
-			//控制小程序中图片大小
-			let newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
-				match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
-				match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
-				match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
-				return match;
-			});
-			newContent = newContent.replace(/style="[^"]+"/gi, function(match, capture) {
-				match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;');
-				return match;
-			});
-			// newContent = newContent.replace(/<br[^>]*\/>/gi, '');
-			newContent = newContent.replace(/<br[^>]*\/>/gi, '<p style="margin: 10px 0;"></p>');
-			newContent = newContent.replace(/<br[^>]*\>/gi, '<p style="margin: 10px 0;"></p>');
-			newContent = newContent.replace(/font-size:[^;]+;?/g,'');
-			newContent = newContent.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:inline-block;margin:12rpx auto;"');
-			return newContent;
-		}
-	}
-};
-</script>
-<style>
-@import './content.css';
-</style>

+ 0 - 141
activity/group/detail/detail.css

@@ -1,141 +0,0 @@
-/* group/detail/detail.wxss */
-.banner{overflow: hidden;position: relative;}
-.swiper,.swiper image{width: 100%;height: 750rpx;}
-.dots{position: absolute;left: 0;right: 0;bottom: 11rpx;align-items: center;justify-content: center;}
-.dot{background:var(--mina) ;width: 10rpx;height: 10rpx;border-radius: 5rpx;margin: 0 3rpx;}
-.dot.active{width: 30rpx;}
-.group{position: relative;height: 120rpx;}
-.ptbg{width: 100%;height: 120rpx;position: absolute;top: 0;left: 0;z-index: 1;}
-.groups{position: relative;z-index: 2;align-items: center;padding: 0 30rpx;justify-content: space-between;height: 120rpx;}
-/* .price{font-size: 28rpx;color: #FE0419;}
-.price text{font-size: 40rpx;font-weight: bold;}
-.pin text{font-weight: normal;font-size: 24rpx;text-decoration: line-through;}
-.price text{color: #999;} */
-
-.price{font-size: 28rpx;color: #FE0419;}
-.price text{font-size: 40rpx;font-weight: bold;}
-.price text.origin{font-weight: normal;font-size: 24rpx;color: #999;text-decoration: line-through;margin-left: 10rpx;}
-.left .price,.left .price text.origin{color: #fff;}
-
-.pin{font-size: 22rpx;color: #fff;}
-.tuan{width: 154rpx;height: 40rpx;float: right;}
-.endtime{align-items: center;font-size: 22rpx;color: #fff;line-height: 36rpx;margin-top: 47rpx;overflow: hidden;clear: both;}
-.endtime view{margin-right: 15rpx;}
-.endtime text{display: block;width:36rpx;height:36rpx;background:rgb(0,0,0,.4);border-radius:6rpx;font-size: 24rpx;color: #fff;text-align: center;line-height: 36rpx;margin:0 5rpx}
-
-
-.info{padding: 30rpx 30rpx 40rpx;}
-.infos{align-items: center;justify-content: space-between;}
-.share{font-size: 20rpx;color: #999;text-align: center;position: relative;margin-left: 45rpx !important;}
-.share::after{content: '';display: block;width: 2rpx;height: 45rpx;background: #e7e7e7;position: absolute;top: 50%;transform: translateY(-50%);left: -30rpx;}
-.share image{width: 31rpx;height: 31rpx;margin: 0 auto 10rpx;}
-.title{font-size: 30rpx;color: #222;line-height: 40rpx;font-weight: bold;}
-.tag{width: 82rpx;height: 36rpx;display: inline-block;margin: 0 10rpx 0 0;position: relative;top: 7rpx;}
-.detinfo .item{padding: 30rpx;border-bottom: 1rpx solid #f6f6f6;}
-.detinfo .item:last-child{border-bottom: none;}
-.item label{display: block;width: 130rpx;font-size: 28rpx;color: #222;font-weight: bold;line-height: 40rpx;}
-.quan .flex{align-items: center;}
-.quan text{display: block;background: #FDF5F3;padding: 0 13rpx;height: 40rpx;line-height: 40rpx;font-size: 24rpx;color: #FF5F08;margin-right: 10rpx;}
-.ling{font-size: 24rpx;color: #FF5F08;align-items: center;}
-.ling image{width: 14rpx;height: 24rpx;margin-left: 11rpx;}
-.address{font-size: 28rpx;color: #333;line-height: 40rpx;}
-.huo{font-size: 24rpx;color: #666;line-height: 40rpx;}
-.huo text{color: #FE0419;}
-.more{width: 36rpx;height: 10rpx;margin-top: 15rpx;}
-
-
-
-/* .user{width: 68rpx;height: 68rpx;border-radius: 50%;margin-right: 15rpx;} */
-.name{font-size: 28rpx;color: #666;line-height: 68rpx;justify-content: space-between;align-items: center;}
-.pinglun{font-size: 28rpx;color: #333;margin: 15rpx 0 0;line-height: 44rpx;}
-.huifu{background: #F2F2F2;border-radius: 6rpx;margin: 25rpx 0 0;line-height: 42rpx;padding: 20rpx 30rpx;position: relative;}
-.huifu::after{content: '';display: block;width: 0;height: 0;border: 9rpx solid transparent;border-bottom-color: #F2F2F2;border-top: none;position: absolute;top: -8rpx;left: 39rpx;}
-.show{display: block;}
-.hide{display: none;}
-
-.bot{height: 80rpx;align-items: center;padding: 20rpx 30rpx 20rpx 0;justify-content: space-between;}
-.botbtn{font-size: 22rpx;color: #6A6A6A;width: 145rpx !important;text-align: center;position: relative;}
-.botbtn image{width: 40rpx;height: 34rpx;margin: 10rpx auto 5rpx;}
-.message{background: #DF1A14;height: 28rpx;line-height: 28rpx;font-size: 20rpx;color: #fff;text-align: center;border-radius: 15rpx;box-sizing: border-box;min-width: 21rpx;padding: 0 8rpx;position: absolute;top: 0;right: 25%;}
-.gmbtn{width: 276rpx;height: 76rpx;border-radius: 40rpx;text-align: center;line-height: 76rpx;font-size: 30rpx;color: #FD3C31;border: 2rpx solid #FD3C31;margin-right: 20rpx;}
-.ctbtn{width: 280rpx;height: 80rpx;border-radius: 40rpx;text-align: center;line-height: 80rpx;font-size: 30rpx;color: #fff;}
-.yybtn{width: 430rpx;height: 80rpx;border-radius: 40rpx;text-align: center;line-height: 80rpx;font-size: 30rpx;color: #fff;align-items: center;justify-content: center;}
-.cancel-yy{width: 426rpx;height: 76rpx;border: 2rpx solid #05C379;border-radius: 40rpx;text-align: center;line-height: 76rpx;font-size: 30rpx;color: #05C379;align-items: center;justify-content: center;}
-.yybtn .icon,.cancel-yy .icon{font-size: 30rpx;margin-right: 15rpx;}
-
-
-/* 参团情况 */
-.cantuan{padding: 35rpx 55rpx 30rpx;}
-.can-info{text-align: center;font-size: 40rpx;color: #333;}
-.can-info text{font-size: 43rpx;color: #FE0419;}
-.can-infos{flex-wrap: wrap;padding: 0 35rpx;}
-.can-infos .li{width: 90rpx;height: 90rpx;position: relative;margin-right: 30rpx;margin-top: 55rpx;}
-.can-infos .li:nth-child(5n){margin-right: 0;}
-.can-infos .li image{width: 90rpx;height: 90rpx;border-radius: 50%;}
-.can-infos .li text{display: block;width: 78rpx;height: 32rpx;border-radius: 17rpx;border: 2rpx solid #fff;background: #FD4534;font-size: 20rpx;color: #fff;text-align: center;line-height: 32rpx;position: absolute;left: 50%;transform: translateX(-50%);bottom: -12rpx;}
-.can-btn{height: 90rpx;border-radius: 45rpx;font-size: 30rpx;color: #fff;text-align: center;line-height: 90rpx;margin-top: 50rpx;}
-/* 组团情况 */
-.zu-tit{height: 100rpx;align-items: center;justify-content: space-between;padding: 0 30rpx;border-bottom: 2rpx solid #f5f6f7;font-size: 30rpx;}
-.zu-tit .icon{color: #C1C1C1;font-size: 18rpx;width: 40rpx;
-  height: 40rpx;}
-.zu-list .li{border-bottom: 2rpx solid #f5f6f7;height: 120rpx;padding: 0 30rpx;align-items: center;}
-.zu-list .li:last-child{border-bottom: none;}
-.zu-list .li image{width: 72rpx;height: 72rpx;border-radius: 50%;}
-.zu-name{font-size: 28rpx;margin: 0 20rpx;}
-.zu-ren{text-align: right;margin-right: 20rpx;}
-.cha{font-size: 24rpx;color: #333;}
-.cha text{color: #FE0419;}
-.zu-time{font-size: 22rpx;margin-top: 8rpx;}
-.zu-time text{color: #666;}
-.zu-btn{width: 150rpx;height: 60rpx;border-radius: 30rpx;font-size: 24rpx;color: #fff;text-align: center;line-height: 60rpx;}
-
-/* 玩法 */
-.wanfa{padding: 35rpx 30rpx;}
-.wan-tit{font-size: 30rpx;color: #333;}
-.wan-info{justify-content: space-around;margin-top: 35rpx;}
-.icon-right{margin: 0 25rpx;font-size: 24rpx;color: #C1C1C1;}
-.wan-info .li{font-size: 24rpx;color: #333;line-height: 36rpx;align-items: center;}
-.wan-info .li .icon{width: 42rpx;height: 42rpx;border: 2rpx solid #fe1a2c;border-radius: 50%;color: #fe1a2c;font-size: 24rpx;margin-right: 7rpx;font-weight: bold;}
-.wan-info .li text{display: block;}
-
-/* 小店相关 */
-.xiaodian{position: relative;height: 122rpx;padding: 0 26rpx 0 110rpx;align-items: center;margin: 35rpx 30rpx 0;}
-.xdbg{position: absolute;left: 0;top: 0;width: 100%;height: 100%;z-index: 1;}
-.shouyi{position: relative;z-index: 2;color: #fff;margin-right: 10rpx;}
-.shouyi view{font-size: 40rpx;font-weight: bold;margin-top: 8rpx;}
-.shouyi text{font-weight: normal;font-size: 24rpx;}
-.addshop{height: 62rpx;padding: 0 25rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-.fenxiang{height: 62rpx;padding: 0 25rpx;margin-left: 15rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-.goShop{height: 62rpx;padding: 0 25rpx;margin-left: 15rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-.suc{position: fixed;left: 50%;top: 50%;transform: translate(-50%,-50%);background: #fff;width: 536rpx;border-radius: 20rpx;z-index: 100;text-align: center;padding-bottom: 47rpx;}
-.tjcg1{width: 100%;height: 284rpx;}
-.tjcg{width: 195rpx;height: 38rpx;margin: 52rpx auto 15rpx;}
-.suc text{display: block;font-size: 24rpx;color: #333;}
-.shopcc{justify-content: center;}
-.shop{width:220rpx;height:80rpx;background:linear-gradient(123deg,rgba(255,130,130,1) 0%,rgba(220,21,21,1) 100%);font-size: 30rpx;color: #fff;line-height: 80rpx;border-radius: 40rpx;margin: 45rpx 15rpx 40rpx;}
-.share-btn{justify-content: space-between;padding: 0 54rpx;}
-.wxfriend,.wxposter{width: 196rpx !important;height: 76rpx !important;align-items: center;justify-content: center;font-size: 30rpx;color: #666;border: 2rpx solid #D8D8D8;border-radius: 40rpx !important;}
-.wxfriend image,.wxposter image{width: 31rpx;height: 31rpx;margin-right: 13rpx;}
-.suc-close{position: absolute;left: 50%;transform: translateX(-50%);bottom: -102rpx;width: 62rpx;height: 62rpx;}
-.sellStock{text-align: right; color: #999;position: relative; left: 145rpx;}
-.sellStock text{ color:#222 ;}
-.protext{color: #999;margin-top: 15rpx;overflow:hidden; text-overflow:ellipsis;display:-webkit-box; -webkit-box-orient:vertical;-webkit-line-clamp:2; }
-
-/* 更多拼团 */
-.ptuanmode{position: fixed;z-index: 100;background: #fff;width: 90%; border-radius:30rpx 30rpx;left: 50%;top: 50%; transform: translate(-50%, -50%);}
-.tole{font-size: 24rpx;color: #999;text-align: center;padding: 0 0 10rpx 0;}
-.pttop{padding: 30rpx 0;text-align: center;font-size: 34rpx;border-bottom: 2rpx solid #9999;}
-/* .zutuan{position: relative;} */
-.page{position: fixed;z-index: 100;}
-.end{background: #999999;}
-
-.guarantee{border-top: 1rpx solid #f6f6f6;padding: 15rpx 0 0 0; margin-top: 15rpx;}
-.guarantee .cont{flex-wrap: wrap;font-size: 26rpx;}
-.guarantee .cont .li{align-items: center;margin-right: 20rpx;
-  margin-bottom: 10rpx;}
-.guarantee .cont image{        width: 30rpx;
-  height: 30rpx;}
-  
-.pro-sel{align-items: center;}
-.pro-sel .flex{text-overflow: ellipsis;white-space: nowrap;overflow: hidden;}
-.mrico{width: 16rpx;height: 27rpx;}

+ 0 - 1470
activity/group/detail/detail.vue

@@ -1,1470 +0,0 @@
-<template>
-	<view v-if="allShow">
-		<!--group/detail/detail.wxml-->
-		<view class="banner">
-			<swiper class="swiper" @change="swiperChange" :current="current" autoplay="true" circular="true"
-				duration="1000">
-				<block v-for="(item, index) in bannerUrls" :key="index">
-					<swiper-item autoplay="true">
-						<image :src="item + '?x-oss-process=style/w750-auto'" mode="aspectFit"></image>
-					</swiper-item>
-				</block>
-			</swiper>
-			<view class="dots dflex">
-				<block v-for="(item, index) in bannerUrls" :key="index">
-					<view :class="'dot ' + (index == swiperCurrent ? ' active' : '')" :data-current="index"
-						@tap="dotEvent"></view>
-				</block>
-			</view>
-		</view>
-		<!-- <view class="notification_bar" wx:if="{{isNotice}}">
-	<swiper class="swiper_container" vertical="true" autoplay="true" circular="false" duration="1000" interval="5000" easing-function="easeInOutCubic" class="bar_box dflex">
-		<swiper-item class="bar_con dflex" wx:for="{{contentList}}" wx:key="item">
-			<view class="bar dflex">
-				<image class="bar_left" src="{{item.pic}}" />
-				<text class="bar_text">最新订单来自</text>
-				<text class="bar_text">{{item.name}},</text>
-				<text class="bar_text">{{item.time}}</text>
-			</view>
-		</swiper-item>
-	</swiper>
-</view> -->
-		<view class="group">
-			<image src="/activity/static/activity/images/ptbg.png" class="ptbg" v-if="act.start"></image>
-			<image src="/activity/static/activity/images/msyybg.png" class="ptbg" v-else></image>
-			<view class="groups dflex">
-				<view class="left">
-					<view class="price">拼团价¥<text>{{act.money}}</text></view>
-					<view class="pin"><text class="origin" v-if="act.marketPrice<act.money&&act.marketPrice!=0">原价
-							{{act.marketPrice}}</text>
-						<block v-if="act.marketPrice<act.money&&act.marketPrice!=0"> | </block>{{count? count:0}}人已拼
-						{{act.activityMainEntity.numberPeople}}人团
-					</view>
-				</view>
-				<view class="right">
-					<image src="/static/pages/images/tuan.png" class="tuan"></image>
-					<view class="endtime dflex">
-						<view>{{isStates==0?'距开始':isStates==1?'距结束':'已结束'}}</view>
-						<block v-if="timer.length==4">
-							<block v-if="timer[0] !=0"><text>{{timer[0]}}</text>天</block>
-							<text>{{timer[1]}}</text>:
-							<text>{{timer[2]}}</text>:
-							<text>{{timer[3]}}</text>
-						</block>
-						<block v-else>
-							<text>{{timer[0]}}</text>:
-							<text>{{timer[1]}}</text>:
-							<text>{{timer[2]}}</text>
-						</block>
-						<!-- <block wx:if="{{timer&&timer.length>0}}">
-				<text>{{timer[0]}}</text>天</block>
-				<text>{{timer[1]}}</text>:
-				<text>{{timer[2]}}</text>:
-				<text>{{timer[3]}}</text> -->
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="text">
-			{{product.brandName ? product.brandName : ''}} {{product.brief ?  product.brief : ''}}
-		</view>
-		<view class="info bgfff">
-			<view class="infos dflex">
-				<view class="title flex">{{pro.title?pro.title:'0'}}</view>
-				<view class="share" @tap="showShare">
-					<image src="/static/pages/images/fxico.png"></image>分享
-				</view>
-			</view>
-			<view class="guarantee dflex" v-if="guarantee.length>0">
-				<view class="cont dflex">
-					<view v-for="(item, index) in guarantee" :key="index" class="dflex li">
-						<image src="/activity/static/activity/images/guarantee.png"></image>{{item}}
-					</view>
-				</view>
-			</view>
-		</view>
-
-		<view class="detinfo mt20 bgfff">
-			<!-- isOtc 0 默认 1 处方药 2 非处方药 3 医疗器械 4 食品类 5 海外购 -->
-			<block v-if="act.isOtc!=5">
-			<block v-if="is_open_shop == 1 && ascription">
-			<view class="xiaodian dflex malr20" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0) || act.serviceShopRate">
-				<image src="/static/pages/images/xdbg1.png" class="xdbg"></image>
-				<view class="shouyi flex" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0)">
-					<text>分销收益</text>
-					<view v-if="act.isMeCommission == 0"><text>¥</text>{{act.oneCommission}}</view>
-					<view v-else><text>¥</text>{{act.twoCommission}}</view>
-				</view>
-				<view class="shouyi flex" v-if="act.serviceShopRate">
-					<text>小店服务费</text>
-					<view><text>¥</text>{{act.serviceShopRate}}</view>
-				</view>
-				<view class="dflex" v-if="act.isJoinShop">
-					<view class="fenxiang" @tap="showShare">分享推广</view>
-					<navigator :url="url" hover-class="none" class="goShop">去小店</navigator>
-				</view>
-				<view class="addshop" @tap="addShop" v-else>添加到小店</view>
-			</view>
-			</block>
-			<block v-else>
-			<view class="xiaodian dflex malr20" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0)">
-				<image src="/static/pages/images/xdbg1.png" class="xdbg"></image>
-				<view class="shouyi flex">
-					<text>分销收益</text>
-					<view v-if="act.isMeCommission == 0"><text>¥</text>{{act.oneCommission}}</view>
-					<view v-else><text>¥</text>{{act.twoCommission}}</view>
-				</view>
-				<navigator url="/promote/apply/apply" hover-class="none" class="fenxiang" v-if="isDistriUser != 2">我要推广</navigator>
-				<view class="fenxiang" @tap="showShare" v-else>分享推广</view>
-			</view>
-			</block>
-			</block>
-			<!-- <view class="item dflex">
-		<label>优惠券</label>
-		<view class="quan flex dflex">
-			<view class="flex dflex">
-				<text>满500减50</text>
-				<text>满200减10</text>
-			</view>
-			<view class="ling dflex">领券<image src="/pages/images/more3.png"></image>
-			</view>
-		</view>
-	</view> -->
-			<view class="item pro-sel dflex" v-if="pro.propertiesList && pro.propertiesList.length > 0"
-				@click="pro.stock > 0 ? addShopCart() : ''">
-				<label>已选</label>
-				<view class="flex">{{pro.properties}}</view>
-				<image src="/static/pages/images/more.png" class="mrico"></image>
-			</view>
-			<view class="item dflex">
-				<label>配送至</label>
-				<view class="flex" @tap="toAddress">
-					<view class="address">{{address.address?address.address:''}}{{address.house?address.house:''}}
-					</view>
-					<view class="huo" v-if="pro.isTimely == 1"><text>现货</text>,现在下单,预计2小时后送达</view>
-				</view>
-				<image src="/static/pages/images/more2.png" class="more" @tap="toAddress"></image>
-			</view>
-			<view class="item dflex">
-				<label>门店</label>
-				<view class="flex" @tap="toMerchant">
-					<view class="address">{{merchant.title}}</view>
-				</view>
-			</view>
-		</view>
-		<!-- 参团情况 -->
-		<!-- <view class="cantuan bgfff mt20">
-	<view class="can-info">{{act.activityMainEntity.numberPeople}}人团,还差<text>{{act.activityMainEntity.numberPeople-(act.activityPurchaseRecordEntitys?act.activityPurchaseRecordEntitys.length:0)}}人</text></view>
-	<view class="can-infos dflex" wx:for="{{act.activityPurchaseRecordEntitys}}">
-		<view class="li">
-			<image src="/pages/images/bar.png" mode="aspectFit"></image>
-			<text>团长</text>
-		</view>
-		<view class="li">
-			<image src="/pages/images/bar.png" mode="aspectFit"></image>
-		</view>
-		<view class="li">
-			<image src="/pages/images/cha.png"></image>
-		</view>
-		<view class="li">
-			<image src="/pages/images/cha.png"></image>
-		</view>
-	</view>
-	<view class="can-btn mbglinear">我要参团</view>
-</view> -->
-		<!-- 组团情况 -->
-		<view class="zutuan bgfff mt20">
-			<view
-				v-if="(activityPurchaseRecordListDTO&&activityPurchaseRecordListDTO.length>0)||(act.activityPurchaseRecordListDTO.length>0&&act.activityPurchaseRecordListDTO)"
-				class="zu-tit dflex">
-				{{act.activityPurchaseRecordListDTO.length}}人正在组团,可直接参与<icon class="icon iconfont icon-bottom"
-					@tap="activityPurchaseRecordListDTO.length>1&&activityDot.length>0?clickmore():''">
-				</icon>
-			</view>
-			<view class="zu-list">
-				<view v-for="(item, index) in activityPurchaseRecordListDTO" :key="index" class="li dflex">
-					<image :src="item.groupMainP.uavatar" mode="aspectFit"></image>
-					<view class="zu-name flex">{{item.groupMainP.unickName}}</view>
-					<view class="zu-ren">
-						<view class="cha"
-							v-if="(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0))>0">
-							{{act.activityMainEntity.numberPeople}}人成团,还差<text>{{(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0))>0?(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0)):0}}人</text>
-						</view>
-						<view class="zu-time"
-							v-if="item.isGroup&&(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0))>0">
-							剩余<text>{{item.times}}</text></view>
-						<block v-else>
-							<view
-								v-if="!item.isGroup&&(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0))>0">
-								拼团失败</view>
-							<view
-								v-if="(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0))<=0">
-								<text>{{item.groupMainP.state==1?'拼团完成':'拼团待支付'}}</text>
-							</view>
-						</block>
-					</view>
-					<view class="zu-btn mbglinear" :data-index="index" @tap="toGoGroup"
-						v-if="(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0))>0">去参团
-					</view>
-					<view class="zu-btn mbglinear" :data-index="index" @tap="toGoGroup" v-else>查看详情</view>
-
-				</view>
-			</view>
-		</view>
-
-		<!-- 拼团玩法 -->
-		<view class="wanfa bgfff mt20">
-			<view class="wan-tit">拼团玩法</view>
-			<view class="wan-info dflex">
-				<view class="li dflex">
-					<icon class="icon iconfont icon-zhifu"></icon>
-					<view class="flex">支付开团<text>或参团</text></view>
-				</view>
-				<icon class="icon iconfont icon-right"></icon>
-				<view class="li dflex">
-					<icon class="icon iconfont icon-haoyou"></icon>
-					<view class="flex">邀请好友<text>拼团</text></view>
-				</view>
-				<icon class="icon iconfont icon-right"></icon>
-				<view class="li dflex">
-					<icon class="icon iconfont icon-dingdan"></icon>
-					<view class="flex">达到人数拼团成功<text>人数不足拼团失败</text></view>
-				</view>
-			</view>
-		</view>
-
-
-		<!--  商品详情等页面 -->
-		<product-footer ref="list" id="list" :detail="nodes" :imgs="imgs" :proId="pro.id" v-if="pro.id" :form="form"
-			@showTab="showTab" @scoreTab="scoreTab" @freshen="freshenFun"></product-footer>
-
-		<v-share :hide-toast="hideShare" :product="pro" :code-url="codeUrl" :a-type="'3'" @onFather="click"></v-share>
-
-		<view class="placeholder-view" :style="'height:' + (bottomBlankHeight + 140) + 'rpx'"></view>
-		<view class="bot fixed bgfff dflex" :style="'padding-bottom: ' + (bottomBlankHeight + 20) + 'rpx'">
-			<contact-button img-url="/static/pages/images/kfico.png" class-name="botbtn" button-text="在线客服"></contact-button>
-			<!-- <navigator class="botbtn" open-type="switchTab" url="/pages/cart/cart" hover-class="none">
-		<image src="/pages/images/gwc.png"></image>购物车<text class="message" wx:if="{{pro.count > 0}}">{{pro.count}}</text>
-	</navigator> -->
-			<!-- <view class="botbtn" bindtap="clickCollect">
-		<image src="/pages/images/shoucang_h.png" wx:if="{{pro.isCollect}}"></image>
-		<image src="/pages/images/shoucang.png" wx:else></image>收藏
-	</view> -->
-			<!-- <view class="addcart">加入购物车</view> -->
-			<block v-if="isStates!=0">
-				<view class="gmbtn" @tap="atOnceBuy">¥{{salePrice}} 单独购买</view>
-
-				<!-- <view class="ctbtn mbglinear">我要参团</view>官方组团按钮 -->
-				<!-- 自由组团按钮 -->
-				<view class="ctbtn mbglinear" @tap="createGroup" v-if="isStates==1&&myActData.state!=1&&!activityEnd">
-					¥{{ act.money}}发起拼团</view>
-				<view class="ctbtn mbglinear" @tap="createGroup" v-if="myActData.state==1">查看拼团</view>
-				<view class="ctbtn end" v-if="(isStates==2&&myActData.state!=1)||activityEnd">活动已结束</view>
-
-			</block>
-			<block v-if="isStates==0">
-				<view class="cancel-yy dflex" @tap="cancelActivityRemind" v-if="isRemind">
-					<icon class="icon iconfont icon-yugao"></icon>取消提醒
-				</view>
-				<view class="yybtn mbggreen dflex" @tap="addActivityRemind" v-else>
-					<icon class="icon iconfont icon-yugao"></icon>预约提醒
-				</view>
-			</block>
-		</view>
-
-		<!-- 商品规格 -->
-		<block v-if="isShow">
-			<product-popup :product="popup" :activityId="act.id" :is-cart="isCart" order-type="4" @hidePopup="hidePopup"
-				@addCartSuccess="addCartSuccess" :order-type="orderType" :merchant="merchant"
-				:merchant-id="query.merchantId" :shop-id="query.shopId"></product-popup>
-		</block>
-
-		<view class="contact_index" @tap="goTop">
-			<image src="/static/pages/images/backtop.png"></image>顶部
-		</view>
-
-
-
-		<!-- 查看更多 -->
-		<view class="mask" @tap="eliminate" v-if="show" catchtouchmove="true"></view>
-		<view class="page" :style="'margin:-' + (windowHeight/2) + 'px 0 0 -' + (windowWidth/2) + 'px'">
-			<view class="ptuanmode" catchtouchmove="true" v-if="show">
-				<view class="zu-list">
-					<view class="pttop">正在拼团</view>
-					<scroll-view scroll-y="true" style="max-height: 550rpx;">
-						<view v-for="(item, index) in activityDot" :key="index" class="li dflex">
-							<image :src="item.groupMainP.uavatar" mode="aspectFit"></image>
-							<view class="zu-name flex">{{item.groupMainP.unickName}}</view>
-							<view class="zu-ren">
-								<view class="cha"
-									v-if="(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0))>0">
-									{{act.activityMainEntity.numberPeople}}人成团,还差<text>{{(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0))>0?(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0)):0}}人</text>
-								</view>
-								<view class="zu-time"
-									v-if="item.isGroup&&(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0))>0">
-									剩余<text>{{item.times}}</text></view>
-								<block v-else>
-									<view
-										v-if="!item.isGroup&&(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0))>0">
-										拼团失败</view>
-									<view
-										v-if="(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0))<=0">
-										<text>{{item.groupMainP.state==1?'拼团完成':'拼团待支付'}}</text>
-									</view>
-								</block>
-							</view>
-							<view class="zu-btn mbglinear" :data-index="index" data-type="1" @tap="toGoGroup"
-								v-if="(act.activityMainEntity.numberPeople-(item.groupList?item.groupList.length:0))>0">
-								去参团</view>
-							<view class="zu-btn mbglinear" :data-index="index" @tap="toGoGroup" :data-type="1" v-else>
-								查看详情</view>
-						</view>
-					</scroll-view>
-					<view class="tole" v-if="activityDot.length==21">--仅显示20个正在拼团的人--</view>
-				</view>
-			</view>
-		</view>
-
-		<!-- 添加到小店成功 -->
-		<view class="mask" :hidden="isHide" @tap="hidePop"></view>
-		<view class="suc" :hidden="isHide">
-			<image src="/static/pages/images/tjcg1.png" class="tjcg1"></image>
-			<image src="/static/pages/images/tjcg.png" class="tjcg"></image>
-			<text>快去我的小店看看吧</text>
-			<view class="shopcc dflex">
-				<view class="shop" @tap="showShare">分享推广</view>
-				<navigator :url="url" hover-class="none" class="shop" >我的小店</navigator>
-			</view>
-			<!-- <view class="share-btn dflex">
-				<button class="wxfriend dflex" open-type="share">
-					<image src="/static/pages/images/wechat.png"></image>
-					微信好友
-				</button>
-				<view class="wxposter dflex" @tap="generatePoster">
-					<image src="/static/pages/images/poster.png"></image>
-					生成海报
-				</view>
-			</view> -->
-			<image src="/static/pages/images/close2.png" class="suc-close" @tap="hidePop"></image>
-		</view>
-		<block v-if="isPopupLogin">
-			<product-login :about="about" @hidePopupLogin="hidePopupLogin"></product-login>
-		</block>
-	</view>
-</template>
-
-<script>
-	const app = getApp();
-	const req = require("../../../utils/request.js");
-	const utils = require("../../../utils/util.js");
-	var QQMapWX = require("../../../utils/qqmap.js");
-	const requsetmessage = require("../../../utils/requestmessage.js");
-	const route = require("../../../utils/route");
-	const api = require("../../../utils/api.js");
-	import productFooter from "../../../components/product_footer/index";
-	import productPopup from "../../../components/product-popup/index";
-	import vShare from "../../../components/share/share";
-	import productLogin from "../../../components/product-login/index";
-
-	export default {
-		data() {
-			return {
-				bottomBlankHeight: app.globalData.isIPhoneX ? 68 : 0,
-				swiperCurrent: 0,
-				bannerUrls: [],
-				isShow: false,
-				pro: {},
-				timer: [],
-				isRemind: false,
-				hideShare: true,
-				codeUrl: '',
-				start: false,
-				activityPurchaseRecordListDTO: [],
-				activityDot: [],
-				act: {},
-				isGroup: true,
-				hideShop: true,
-				//隐藏添加到小店
-				isHide: true,
-				//添加小店成功弹窗
-				contentList: [{
-					pic: "/static/pages/images/bar.png",
-					name: '好风依旧',
-					time: '4秒前'
-				}, {
-					pic: "/static/pages/images/bar.png",
-					name: '杨鑫',
-					time: '20秒前'
-				}, {
-					pic: "/static/pages/images/bar.png",
-					name: '杨鑫',
-					time: '5秒前'
-				}],
-				isNotice: false,
-				form: {
-					page: 1,
-					limit: 10
-				},
-				freshen: true //是否更新页面
-					,
-				current: "",
-				query: "",
-				merchant: "",
-				merchantId: "",
-				shopId: "",
-				imgs: "",
-				nodes: "",
-				salePrice: "",
-				activityEnd: false,
-				isStates: 0,
-				address: {},
-				popup: "",
-				myActData: "",
-				count: "",
-				show: false,
-				tabIndex: "",
-				guarantee: "",
-				is_open_comments: "",
-				switch: true,
-				about: {},
-				allShow: false,
-				url:'',
-				is_open_shop: '',//商户是否开启分销
-				ascription: false,//是否开启小店
-				isDistriUser: 0, // 判断用户是否是分销员 2为分销员
-				isPopupLogin: false
-			};
-		},
-
-		components: {
-			productFooter,
-			productPopup,
-			vShare,
-			productLogin
-		},
-		props: {},
-		onLoad: function(options) {
-			// console.log(options);
-			this.query = options;
-			this.setData({
-				query: options
-			});
-
-			if (options.scene) {
-				this.scene = options.scene;
-			}
-
-			if (options.isShare) {
-				this.query.id = options.id;
-				this.query.acid = options.acid;
-				req.setStorage('pidCode', options.userId);
-				req.setStorage('pidCode', options.userId);
-				let params = {
-					userId: options.userId,
-					merchantId: options.merchantId ? options.merchantId : '',
-				}
-				this.bindUser(params);
-			}
-
-			if (options.hideShop) {
-				this.setData({
-					hideShop: this.query.hideShop
-				});
-			} else {
-				this.setData({
-					hideShop: 'true'
-				});
-			} // this.isShop()
-
-
-			setInterval(() => {
-				this.setData({
-					isNotice: true
-				});
-			}, 10000);
-			// this.getuserInfo()
-		},
-		onShow: async function() {
-			let that = this
-			if (this.freshen) {
-				await this.loadCodeParams();
-				if(that.scene){
-					await that.bindUser(that.query);
-				}
-				// this.loadDefaultAddress();
-				this.groupCount();
-				this.getGuarantee().then(data => {
-					if (this.switch) {
-						api.getMerchant(this.query, req, data => {
-							that.loadDefaultAddress();
-							if (data == 1) {
-								api.locationShow()
-							} else {
-								that.getuserInfos(data);
-								if (data.type == 5) {
-									that.query.merchantId = data.merchantDTO.id
-									that.query.shopId = data.id
-								} else {
-									that.query.merchantId = data.id
-								}
-								if (req.getStorage('userInfo') && that.merchant.id != data.id) {
-									this.loadProudct();
-									let pages = getCurrentPages();
-									var prevPage = pages[pages.length - 2];
-									if (prevPage) {
-										prevPage.$vm.setData({
-											freshen: true
-										});
-									}
-								} else {
-									this.loadProudct();
-								}
-								that.merchant = data
-							}
-						})
-					}
-				})
-				await this.browsRecound(this.query.id); // let merchant = req.getStorage('defaultMerchant');
-				// this.setData({ merchant: merchant });
-				// this.getMerchant();
-			}
-		},
-		onUnload() {
-			if (this.timer) clearInterval(this.timer);
-			this.clearAllTimer();
-		},
-
-		onShareAppMessage: function() {
-			let merchantId = '';
-			let path = '/activity/group/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid + '&isShare=' +
-				true;
-			// console.log(!req.getStorage('userInfo').id);
-
-			if (!req.getStorage('userInfo').id) {} else {
-				path += '&userId=' + req.getStorage('userInfo').id;
-			}
-
-			// console.log(this.query.merchantId);
-			let shopId = '';
-
-
-			if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-				path += '&merchantId=' + req.getStorage('MERCHANT').id;
-				merchantId = req.getStorage('MERCHANT').id;
-
-				if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-					path += '&shopId=' + req.getStorage('smallShop').id;
-					shopId = req.getStorage('smallShop').id;
-					merchantId = req.getStorage('smallShop').merchantDTO.id;
-				}
-			}
-			// console.log(path)
-			route.share(1, req.getStorage('userInfo').id, path, merchantId, shopId, 7, this.query.acid + '_' + this
-				.query.id);
-			return {
-				title: this.pro.title,
-				imageUrl: this.pro.pic,
-				path: path
-			}; // return {
-			//   title: this.data.pro.title,
-			//   imageUrl: this.data.pro.pic,
-			//   path: 'activity/group/detail/detail?acid=' + this.query.acid + "&id=" + this.query.id + '&isShare=' + true + '&userId=' + req.getStorage('userInfo').id + '&merchantId=' + this.data.query.merchantId
-			//   // path: '/product/groupDetail/groupDetail?id=' + this.query.id + '&acid=' + this.query.acid + '&isShare=' + true + '&userId=' + req.getStorage('userInfo').id
-			// }
-		},
-
-		onReachBottom() {
-			if (this.is_open_comments == 1 && this.tabIndex == 2) {
-				this.form.page++;
-				this.setData({
-					['form.page']: this.form.page
-				});
-				// this.selectComponent("#list").loadScore(this.current);
-				this.$refs.list.loadScore(this.current);
-			}
-		},
-
-		onHide() {
-			this.clearAllTimer();
-		},
-
-		methods: {
-			bindUser(par){
-				let userInfo = req.getStorage('userInfo');
-				if(!userInfo){
-					// uni.login({
-					// 	success(res) {
-					// 		let params = {
-					// 			code: res.code,
-					// 			parentId: par.userId,
-					// 			merchantId: par.merchantId ? par.merchantId : par.shopId ? par.shopId : ''
-					// 		}
-					// 		return new Promise((resolve,reject)=>{
-					// 			req.postRequest('/api/v2/login', params, data => {
-					// 				resolve();
-					// 			});
-					// 		})
-					// 	}
-					// });
-					// this.isPopupLogin = true;
-					req.silenceLogin(par.userId, par.merchantId ? par.merchantId : par.shopId ? par.shopId : '');
-				}
-			},
-			// 获取用户信息
-			getuserInfo() {
-				let userInfo = req.getStorage('userInfo');
-				if (userInfo && userInfo.listShopBase && userInfo.listShopBase != null && userInfo.listShopBase.length >
-					0) {
-					if (userInfo.listShopBase[0].merchant_id) {
-						let url = '/mine/shop/shop?merchantId=' + userInfo.listShopBase[0].merchant_id + '&shopId=' +
-							userInfo.listShopBase[
-								0].id;
-						this.setData({
-							url: url
-						});
-					}
-					console.log(this.url)
-				}
-			},
-			click(e) {
-				// console.log(e)
-				this.hideShare = e
-			},
-			showShare() {
-				// #ifndef H5
-				req.isLogin().then(success => {
-					if (success) {
-						this.setData({
-							hideShare: false
-						});
-						this.getCodeUrl()
-					}
-				});
-				// #endif
-			},
-
-			/**
-			 * 轮播切换
-			 */
-			swiperChange({
-				detail
-			}) {
-				if (this.current == 0 && this.swiperCurrent > 1) {
-					//卡死时,重置current为正确索引
-					this.setData({
-						current: this.swiperCurrent
-					});
-				} else {
-					//正常轮转时,记录正确页码索引
-					this.setData({
-						swiperCurrent: detail.current
-					});
-				}
-			},
-
-			dotEvent(e) {
-				this.setData({
-					current: e.currentTarget.dataset.current
-				});
-			},
-
-			browsRecound(id) {
-				let from = {
-					bindId: id,
-					type: 7,
-					page: '/activity/group/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid
-				};
-				if (this.query.isShare) {
-					from.shareType = 1;
-					from.page = '/activity/group/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid +
-						'&isShare=' + true;
-
-					if (!this.query.userId) {} else {
-						from.page += '&userId=' + this.query.userId;
-					}
-
-					if (!this.query.merchantId) {} else {
-						from.merchantId = this.query.merchantId;
-					}
-
-					if (!this.query.shopId) {} else {
-						from.shopId = this.query.shopId;
-					}
-
-					if (!this.query.userId) {} else {
-						from.uid = this.query.userId;
-					}
-				}
-
-				if (this.query.isShareTimeline) {
-					from.shareType = 2;
-					from.page = '/activity/group/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid +
-						'&isShareTimeline=' +
-						true;
-
-					if (!this.query.userId) {} else {
-						from.page += '&userId=' + this.query.userId;
-					}
-
-					if (!this.query.merchantId) {} else {
-						from.merchantId = this.query.merchantId;
-					}
-
-					if (!this.query.shopId) {} else {
-						from.shopId = this.query.shopId;
-					}
-
-					if (!this.query.userId) {} else {
-						from.uid = this.query.userId;
-					}
-				}
-				return new Promise((resolve,reject)=>{
-					req.postRequest('/api/browse', from, data => {resolve()});
-				})
-			},
-
-			loadCodeParams() {
-				let _ts = this;
-
-				return new Promise((resolve, reject) => {
-					if (!_ts.scene) {
-						resolve();
-						return false;
-					}
-
-					req.getRequest('/api/code/params', {
-						scene: _ts.scene
-					}, data => {
-						this.query.id = data.scene.split('_')[0];
-						this.query.acid = data.scene.split('_')[1];
-						this.query.merchantId = data.scene.split('_')[2];
-						this.query.shopId = data.scene.split('_')[3];
-						this.query.userId = data.userId;
-						req.setStorage('pidCode', data.userId);
-						resolve();
-					});
-				});
-			},
-
-			getCodeUrl() {
-				let that = this; //获取小程序码
-				const query = this.query;
-				let scene = that.pro.id + '_' + query.acid;
-				if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-					scene += '_' + req.getStorage('MERCHANT').id;
-					if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-						scene += '_' + req.getStorage('smallShop').id;
-					}
-				}
-				// console.log(scene); //获取小程序码
-				const params = {
-					page: 'activity/group/detail/detail',
-					scene: scene
-				};
-				req.getRequest('/api/program/codev', params, url => {
-					that.setData({
-						codeUrl: url
-					});
-				});
-			},
-
-			async loadProudct() {
-				let that = this;
-				await that.loadActivity();
-				const query = that.query;
-				let isShowLoading = false;
-
-				if (!isShowLoading) {
-					req.loadIng('加载中');
-					isShowLoading = true;
-				}
-				req.getRequest('/api/product/detail', {
-					id: query.id
-				}, data => {
-					//富文本图片放大
-					var nodes = data.detail;
-
-					// if (nodes) {
-					// 	if (nodes.indexOf("src") >= 0) {
-					// 		//正则匹配所有图片路径
-					// 		var imgs = [];
-					// 		nodes = nodes.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function(match, capture) {
-					// 			imgs.push(capture);
-					// 			that.setData({
-					// 				imgs: imgs
-					// 			});
-					// 			return '';
-					// 		});
-					// 	}
-					// }
-					let propertiesList = []
-					if (data.propertiesList && data.propertiesList.length > 0) {
-						data.propertiesList.map(it => {
-							propertiesList.push(it.value);
-						})
-					}
-					data.properties = propertiesList.join(' / ')
-					that.setData({
-						bannerUrls: data.images,
-						pro: data,
-						nodes: nodes,
-						// 'pro.stock': this.act.quantity,
-						'pro.stock': this.act.quantity - this.act.payQuantity,
-						salePrice: data.salePrice,
-						'pro.payQuantity': this.act.payQuantity,
-						'pro.maxBuy': this.act.maxBuy,
-						'pro.salePrice': this.act.money,
-						allShow: true
-					});
-					if (isShowLoading) {
-						uni.hideLoading();
-						isShowLoading = false;
-					}
-					// console.log(this.pro);
-					// that.getCodeUrl();
-				});
-			},
-
-			loadActivity() {
-				const query = this.query;
-				return new Promise((resolve, reject) => {
-					let from = {
-						id: query.acid,
-						type: 3
-					}
-					if (!this.query.merchantId) {} else {
-						from.merchantId = this.query.merchantId
-					}
-					let userInfo = req.getStorage('userInfo');
-					if(userInfo.listShopBase && userInfo.listShopBase.length >0 ){
-						from.shopId = userInfo.listShopBase[0].id;
-					}
-					req.getRequest('/api/activity/detailNew', from, data => {
-						/**
-						 * 判断活动是否结束,结束,2秒后为用户跳转至该商品的详情页面
-						 */
-						// if (data.end) {
-						//   this.setData({ start: data.end })
-						//   console.log(this.data.start)
-						//   wx.showToast({
-						//     title: '活动已结束,两秒后将为您跳转至该商品页面',
-						//     icon: 'none',
-						//     success: function () {
-						//       setTimeout(function () {
-						//         wx.redirectTo({ url: '/product/detail/detail?id=' + data.productId })
-						//       }, 2000);
-						//     }
-						//   })
-						// }
-						// data.activityPurchaseRecordListDTO.content(data.activityPurchaseRecordListDTO)
-						// let arr=data.activityPurchaseRecordListDTO.filter(ele=>console.log(ele))
-						this.getMy();
-						if (!data || data == 2001) {
-							this.setData({
-								activityEnd: true
-							});
-							return false;
-						} else {
-							let activityPurchaseRecordListDTO;
-							let arr;
-
-							if (data.activityPurchaseRecordListDTO) {
-								activityPurchaseRecordListDTO = data.activityPurchaseRecordListDTO.slice(0,
-									2);
-								arr = data.activityPurchaseRecordListDTO.slice(0, 21);
-								// console.log(arr,"789");
-							}
-
-							// console.log(data.activityPurchaseRecordListDTO);
-							this.setData({
-								act: data,
-								isRemind: data.remindId
-							});
-							this.setData({
-								activityPurchaseRecordListDTO: activityPurchaseRecordListDTO,
-								activityDot: arr
-							});
-							// console.log(this.activityPurchaseRecordListDTO, this
-							// 	.activityPurchaseRecordListDTO);
-							this.checkMyIsGroup();
-							this.initTimer(data);
-							this.groupItemTimer(1);
-							this.groupItemTimer();
-						}
-
-						resolve();
-					});
-				});
-			},
-			// 获取用户信息
-			getuserInfos(data) {
-				let userInfo = req.getStorage('userInfo');
-				if (userInfo && userInfo.listShopBase && userInfo.listShopBase != null && userInfo.listShopBase.length >
-					0) {
-					if (userInfo.listShopBase[0].merchant_id == data.id && data.type != 5) {
-						let url = '/mine/shop/shop?merchantId=' + userInfo.listShopBase[0].merchant_id + '&shopId=' + userInfo.listShopBase[0].id;
-						this.url = url;
-						this.ascription = true;
-					}
-				}
-			},
-			getMy() {
-				let that = this;
-				let userInfo = req.getStorage('userInfo');
-				if(!userInfo || userInfo == null) return false;
-				req.getRequest('/api/user/my', {}, data => {
-					that.isDistriUser = data.isDistriUser;
-				});
-			},
-
-			//组团倒计时
-			groupItemTimer(type) {
-				// this.clearAllTimer();
-				//社区拼图定时器
-				let _ts = this;
-
-				let group;
-
-				if (type == 1) {
-					group = this.activityPurchaseRecordListDTO;
-				} else {
-					group = this.activityDot;
-				}
-
-				if (group && group.length > 0) {
-					let pageList = group;
-
-					for (let i = 0, len = pageList.length; i < len; i++) {
-						let group = pageList[i]; // let startTime = new Date(group.startTime.replace(/-/g, '/')).getTime();
-
-						let nowTime = new Date(this.act.nowTime.replace(/-/g, '/')).getTime();
-						let endTime = new Date(group.endDate.replace(/-/g, '/'))
-							.getTime(); // let actend=new Date(this.data.act.endTime.replace(/-/g, '/')).getTime();
-						// if (!group.start) endTime = startTime;
-						// let times
-						// if(actend-endTime>0){
-						//    times = parseInt((endTime - nowTime) / 1000);
-						// }else{
-						//   times = parseInt((actend - nowTime) / 1000);
-						// }
-
-						let times = parseInt((endTime - nowTime) / 1000);
-						let timer = setInterval(() => {
-							times--;
-							let data = {};
-
-							if (times < 0) {
-								if (type == 1) {
-									data['activityPurchaseRecordListDTO[' + i + '].isGroup'] = false;
-								} else {
-									data['activityDot[' + i + '].isGroup'] = false;
-								} // this.setData({isGroup:false})
-
-							} else if (times === 0) {
-								//重新加载列表
-								clearInterval(timer);
-							} else {
-								let n = utils.formatDayTimes(times);
-
-								if (type == 1) {
-									data['activityPurchaseRecordListDTO[' + i + '].times'] = n;
-									data['activityPurchaseRecordListDTO[' + i + '].isGroup'] = true;
-								} else {
-									data['activityDot[' + i + '].times'] = n;
-									data['activityDot[' + i + '].isGroup'] = true;
-								}
-							}
-
-							_ts.setData(data);
-						}, 1000);
-						let fs = [];
-
-						if (type == 1) {
-							fs['activityPurchaseRecordListDTO[' + i + '].timer'] = timer;
-						} else {
-							fs['activityDot[' + i + '].timer'] = timer;
-						}
-
-						_ts.setData(fs);
-					}
-				}
-			},
-
-			clearAllTimer() {
-				if (this.activityPurchaseRecordListDTO) {
-					this.activityPurchaseRecordListDTO.forEach(it => {
-						// console.log(it);
-						clearInterval(it.timer);
-						clearInterval(it.times);
-					});
-				}
-
-				if (this.activityDot) {
-					this.activityDot.forEach(it => {
-						// console.log(it);
-						clearInterval(it.timer);
-						clearInterval(it.times);
-					});
-				}
-			},
-
-			initTimer(group) {
-				//计时器
-				let _ts = this;
-
-				let nowTime = new Date(group.nowTime.replace(/-/g, '/')).getTime();
-				let startTime = new Date(group.startTime.replace(/-/g, '/')).getTime();
-				let endTime = new Date(group.endTime.replace(/-/g, '/')).getTime();
-				if (!group.start) endTime = startTime;
-				let times = parseInt((endTime - nowTime) / 1000);
-				let data = {}; //判断是否已开始
-
-				if (nowTime - startTime > 0) {
-					//开始了
-					_ts.setData({
-						isStates: 1
-					});
-				} else {
-					//未开始
-					_ts.setData({
-						isStates: 0
-					});
-				}
-
-				_ts.setData(data);
-
-				if (times > 0) {
-					this.timer = setInterval(() => {
-						times--;
-
-						if (times === 0) {
-							//重新加载列表
-							_ts.setData({
-								'act.end': true
-							});
-
-							return false;
-						}
-
-						let n = utils.formatDayTimes(times);
-
-						_ts.setData({
-							timer: n.split(/:|天/g)
-						});
-					}, 1000);
-				} else {
-					_ts.setData({
-						isStates: 2
-					});
-				}
-			},
-
-
-			loadDefaultAddress() {
-				if (req.isAuth()) {
-					req.g('/api/address/default', data => {
-						if (data) this.setData({
-							address: data
-						});
-						else this.pointLocation();
-					}, true);
-				} else {
-					this.pointLocation();
-				}
-			},
-
-			toAddress() {
-				app.globalData.openPage('mine/address/address');
-			},
-
-			toMerchant() {
-				if (this.about.User_Limit_Store == 1) {
-
-				} else {
-					app.globalData.openPage('pages/nearby/nearby?isChoose=true');
-				}
-			},
-
-
-			pointLocation() {
-				//定位当前位置
-				let _ts = this;
-
-				QQMapWX.initMap();
-				req.getLocation(res => {
-					QQMapWX.reverseGeocoder(res, data => {
-						_ts.setData({
-							['address.address']: data.address
-						});
-					});
-				});
-			},
-
-			atOnceBuy() {
-				//立即购买
-				// console.log("立即购买"); // if (this.data.isStates == 0) return req.msg('活动还未开始');
-				// if (this.data.isStates == 2) return req.msg('活动已结束');
-				// if (this.data.start) return req.msg('活动已结束');
-
-				let popup = this.pro;
-				popup.salePrice = this.salePrice;
-				popup.stock = this.pro.stock;
-				this.setData({
-					isShow: true,
-					popup: popup
-				});
-			},
-
-			//创建拼团
-			createGroup() {
-				req.isLogin().then(success => {});
-				if (!req.getStorage('userInfo')) return false;
-				// console.log(this.start);
-				if (this.start) return req.msg(
-					'活动已结束'); //state 1存在记录,2不存在,id创建团时存在则为已创建过团记录id,未创建则为-1    参与团id返回为传入的superiorId
-
-				if (this.myActData.state == 1) {
-					//存在拼团记录
-					this.jumpGoGroup(this.myActData.id);
-				} else {
-					//不存在,去创建
-					req.postRequest('/api/activity/carterActivityPurchaseRecords', {
-						acpId: this.act.id,
-						type: 3
-					}, res => {
-						// this.jumpGoGroup(res);
-						// this.atOnceBuy(res)
-						this.createGroupOrder(res);
-					});
-				}
-			},
-
-			createGroupOrder(aprId) {
-				const params = {
-					skuId: this.act.skuId,
-					quantity: 1,
-					productId: this.act.productId,
-					aprId: aprId
-				};
-
-				if (this.merchant && this.merchant.type != 5) {
-					params.merchantId = this.merchant.id;
-				}
-
-				if (this.merchant && this.merchant.type == 5) {
-					params.merchantId = this.merchant.merchantDTO.id
-					params.shopId = this.merchant.id;
-				}
-
-				if (this.act.id) params.activityId = this.act.id;
-				req.postRequest('/api/purchase/direct/buy', params, res => {
-					let redirect = '/product/subOrder/subOrder?ids=' + res;
-					redirect += '&orderType=' + 4;
-					redirect += '&aprId=' + aprId;
-					redirect += '&activityId=' + this.act.id;
-
-					if (params.merchantId) {
-						redirect += '&merchantId=' + params.merchantId;
-					}
-
-					if (params.shopId) {
-						redirect += '&shopId=' + params.shopId;
-					}
-
-					uni.navigateTo({
-						url: redirect
-					});
-				});
-			},
-
-			//校验是否开团
-			checkMyIsGroup() {
-				req.getRequest('/api/activity/participationActivity', {
-					acpId: this.act.id,
-					actId: this.act.actId,
-					productId: this.act.productId,
-					type: 3,
-					initOrPart: 1
-				}, res => {
-					this.setData({
-						myActData: res
-					});
-				});
-			},
-
-			toGoGroup(event) {
-				// req.isLogin().then(success => {
-				// })
-				const index = event.currentTarget.dataset.index;
-				const type = event.currentTarget.dataset.type;
-				let activityPurchaseRecord;
-
-				if (type == 1) {
-					activityPurchaseRecord = this.activityDot[index];
-				} else {
-					activityPurchaseRecord = this.activityPurchaseRecordListDTO[index];
-				}
-
-				// console.log(index, activityPurchaseRecord, type);
-				this.jumpGoGroup(activityPurchaseRecord.id);
-			},
-
-			//跳入到平团详情
-			jumpGoGroup(groupId) {
-				app.globalData.openPage('activity/group/ptDetail/ptDetail?acid=' + this.act.id + "&id=" + groupId +
-					"&merchantId=" +
-					this.query.merchantId);
-			},
-
-			addActivityRemind() {
-
-				req.postRequest('/api/activity/remind', {
-					activityId: this.act.id
-				}, res => {
-					requsetmessage.remind();
-					req.msg('订阅提醒成功');
-					this.setData({
-						isRemind: true
-					});
-				});
-			},
-
-			cancelActivityRemind(event) {
-				if (req.header.appId == 'ZQ1VK5oc17I387E') {
-
-				} else {
-					req.postRequest('/api/activity/cancel/remind', {
-						id: this.act.id
-					}, res => {
-						req.msg('取消提醒成功');
-						this.setData({
-							isRemind: false
-						});
-					});
-				}
-			},
-
-			hidePopup() {
-				this.setData({
-					isShow: false
-				});
-			},
-			hidePopupLogin(data) {
-				this.isPopupLogin = false;
-			},
-
-			clickCollect() {
-				let _ts = this;
-
-				req.postRequest('/api/collect', {
-					bindId: this.pro.id,
-					type: 1
-				}, data => {
-					_ts.setData({
-						'pro.isCollect': !_ts.pro.isCollect
-					});
-				});
-			},
-
-			goTop: function(e) {
-				// 一键回到顶部
-				if (uni.pageScrollTo) {
-					uni.pageScrollTo({
-						scrollTop: 0
-					});
-				} else {
-					uni.showModal({
-						title: '提示',
-						content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
-					});
-				}
-			},
-
-			onShareTimeline() {
-				let merchantId = '';
-				let path = 'id=' + this.query.id + '&acid=' + this.query.acid + '&isShareTimeline=' + true;
-
-				if (!req.getStorage('userInfo').id) {} else {
-					path += '&userId=' + req.getStorage('userInfo').id;
-				}
-				let shopId = '';
-
-
-				if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-					path += '&merchantId=' + req.getStorage('MERCHANT').id;
-					merchantId = req.getStorage('MERCHANT').id;
-
-					if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-						path += '&shopId=' + req.getStorage('smallShop').id;
-						shopId = req.getStorage('smallShop').id;
-						merchantId = req.getStorage('smallShop').merchantDTO.id;
-					}
-				}
-				let url = '/activity/group/detail/detail?' + path;
-				route.share(2, req.getStorage('userInfo').id, url, merchantId, shopId, 7, this.query.acid + '_' + this
-					.query.id);
-				return {
-					title: (req.getStorage("userInfo").nickName ? req.getStorage("userInfo").nickName : '') + '邀请您参加拼团:' +
-						this.pro.title,
-					query: path,
-					imageUrl: this.pro.pic
-				}; // return {
-				//   title: this.data.pro.title,
-				//   imageUrl: this.data.pro.pic
-				// }
-			},
-
-			// 获取参团活动总人数
-			groupCount() {
-				let param = {
-					aprId: this.query.acid
-				};
-				req.getRequest('/api/activity/groupCount', param, data => {
-					this.setData({
-						count: data
-					});
-				});
-			},
-
-			// 是否开启小店
-			isShop() {
-				if (req.getStorage('distribution')) {
-					dist = req.getStorage('distribution')
-					this.setData({
-						distr: dist
-					})
-					console.log(dist)
-					if (dist.distributionSmallShopOpen == 1) {
-						req.postRequest('/api/shopBase/isOpenShop', {}, data => {
-							this.setData({
-								isshop: data
-							})
-							console.log(data)
-						})
-					}
-				}
-			},
-			addShop() { //添加到小店
-				req.postRequest('/api/shopProduct/save', {
-					productId: this.act.id,
-					type: 4
-				}, data => {
-					this.act.isJoinShop = true;
-					this.isHide = false;
-				})
-			},
-			hidePop() { //添加到小店
-				this.setData({
-					isHide: true
-				})
-			},
-			clickmore() {
-				// let arrayShow = [];
-				// let index = 0;
-				// for (let i = index; i < index + 5; i++) {
-				//   if (this.data.activityPurchaseRecordListDTO[i]) {
-				//     arrayShow.push(this.data.activityPurchaseRecordListDTO[i]);
-				//     index = i;
-				//   }
-				// }
-				// index = index + 1;
-				// if(arrayShow.length>=20){
-				//   return req.msg("仅显示20个正在拼团的人")
-				// }
-				// this.setData({arrayShow:arrayShow})
-				// this.groupItemTimer()
-				// console.log("123",this.activityDot)
-				this.getPage();
-				this.setData({
-					show: true
-				});
-			},
-
-			eliminate() {
-				this.setData({
-					show: false
-				});
-			},
-
-			getPage() {
-				//获取系统信息:获取当前屏幕可见区域的宽和高
-				let that = this;
-				uni.getSystemInfo({
-					success: function(res) {
-						that.setData({
-							"windowWidth": res.windowWidth,
-							//可使用窗口宽度,单位px
-							"windowHeight": res.windowHeight //可使用窗口高度,单位px
-
-						});
-						// console.log(res.windowWidth, that.windowWidth);
-						// console.log(res.windowHeight, that.windowHeight);
-					}
-				});
-			},
-
-			showTab: function(e) {
-				this.setData({
-					tabIndex: e.detail
-				});
-			},
-			scoreTab: function(e) {
-				this.form.page = 0;
-				this.setData({
-					current: e.detail,
-					['form.page']: 1
-				});
-			},
-			freshenFun: function(e) {
-				this.setData({
-					freshen: e.detail
-				});
-			},
-
-			// 获取品种保证
-			getGuarantee() {
-				return new Promise((data, rej) => {
-					req.getRequest('/api/config', {}, res => {
-						req.setStorage("configRes", JSON.stringify(res))
-						this.about = res
-						data(res)
-						if (this.merchant && this.merchant.isDefault == 1 || this.query.acid) {
-							// 切割;拿到数组,然后在过滤掉空值
-							if (res.b2c_service_guarantee && res.b2c_service_guarantee != null) {
-								this.setData({
-									guarantee: res.b2c_service_guarantee.split(";").filter(it => {
-										return it = it && it.trim();
-									})
-								});
-							}
-						} else {
-							if (res.o2o_service_guarantee && res.b2c_service_guarantee != null) {
-								this.setData({
-									guarantee: res.o2o_service_guarantee.split(";").filter(it => {
-										return it = it && it.trim();
-									})
-								});
-							}
-						} // if(res.Is_Store_Price_Stock){
-						//   this.setData({Is_Store_Price_Stock:res.Is_Store_Price_Stock})
-						// }
-						if (res.is_open_shop) {
-							this.is_open_shop = res.is_open_shop;
-						}
-
-						if (res.is_open_comments) {
-							this.setData({
-								is_open_comments: res.is_open_comments
-							});
-						} // this.setData({ show_membership_price: res.show_membership_price, Is_Store_Price_Stock: res.Is_Store_Price_Stock, is_open_shop: res.is_open_shop })
-
-					});
-				})
-			}
-
-		}
-	};
-</script>
-<style>
-	@import "./detail.css";
-</style>

+ 0 - 28
activity/group/index/index.css

@@ -1,28 +0,0 @@
-/* group/index/index.wxss */
-page{background: #fe5c31;}
-.banner image{width: 100%;}
-.con{padding: 0 20rpx 50rpx;position: relative;z-index: 2;margin-top: -110rpx;}
-.tab .li{width: 50%;align-items: center;justify-content: center;background: #FD4033;height: 80rpx;border-radius: 12rpx 12rpx 0 0;font-size: 28rpx;color: #fff;}
-.tab .li .icon{color: #fff;margin-right: 12rpx;}
-.tab .on{background: #fff;color: #FE0419;}
-.tab .on .icon{color: #FE0419;}
-.pintuan{padding-bottom: 10rpx;padding-top: 10rpx;border-radius: 0 0 12rpx 12rpx;}
-.pintuan .li{border-bottom: 2rpx solid #E8E8E8;padding: 20rpx 0;}
-.pintuan .li:last-child{border-bottom: 0;}
-.pinimgs{box-sizing: border-box;width: 210rpx;height: 210rpx;border-radius: 10rpx;margin-right: 20rpx;border: 2rpx solid #E5E5E5;position: relative;}
-.pinimg{display: block;width: 100%;height: 100%;border-radius: 10rpx;}
-.proname{font-size: 28rpx;color: #333;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;}
-.endtime{display: inline-block;height: 32rpx;line-height: 32rpx;border: 2rpx solid #FE0419;border-radius: 6rpx;padding: 0 8rpx;font-size: 24rpx;color: #FE0419;margin: 15rpx 0 45rpx;}
-.endtimes{display: inline-block;height: 32rpx;line-height: 32rpx;border-radius: 6rpx;padding: 0 8rpx;font-size: 24rpx;color: #FE0419;margin: 15rpx 0 65rpx;}
-.wei{color: #333;border-color: #333;}
-.operate{justify-content: space-between;align-items: center;}
-.price{font-size: 24rpx;color: #FE0419;}
-.price text{font-size: 36rpx;font-weight: bold;}
-.price .del{font-weight: normal;font-size: 24rpx;color: #999;text-decoration: line-through;}
-.remind{width: 150rpx;height: 50rpx;border-radius: 25rpx;font-size: 24rpx;color: #fff;text-align: center;line-height: 50rpx;align-items: center;justify-content: center;}
-.remind icon{margin-right: 10rpx;font-size: 24rpx;}
-.tuan{display: block;width: 87rpx;height: 44rpx;font-size: 22rpx;color: #fff;text-align: center;line-height: 34rpx;position: absolute;top: 21rpx;left: -10rpx;}
-.tuan image{display: block;width: 100%;height: 100%;position: absolute;top: 0;left: 0;}
-.tuan text{position: relative;z-index: 2;display: block;}
-.pininfo{overflow: hidden;}
-.del{font-weight: normal;font-size: 24rpx;color: #999;text-decoration: line-through;}

+ 0 - 362
activity/group/index/index.vue

@@ -1,362 +0,0 @@
-<template>
-	<view>
-		<!--group/index/index.wxml-->
-		<view class="banner">
-			<image src="/activity/static/activity/images/ptban.jpg" mode="widthFix"></image>
-		</view>
-		<view class="con">
-			<view class="tab dflex">
-				<view :class="'li dflex ' + (tabIndex==1?'on':'')" data-index="1" @tap="clickTab">
-					<icon class="icon iconfont icon-hot"></icon>
-					<text>今日拼团</text>
-				</view>
-				<view :class="'li dflex ' + (tabIndex==2?'on':'')" data-index="2" @tap="clickTab">
-					<icon class="icon iconfont icon-yugao"></icon>
-					<text>明日预告</text>
-				</view>
-				<view :class="'li dflex ' + (tabIndex==3?'on':'')" data-index="3" @tap="clickTab">
-					<icon class="icon iconfont icon-yugao"></icon>
-					<text>全部</text>
-				</view>
-			</view>
-			<view class="pintuan pdlr20 bgfff" v-if="pageList.length>0">
-				<view v-for="(item, index) in pageList" :key="index" class="li">
-					<view class="dflex" :data-index="index">
-						<view class="pinimgs" @tap="toGroupRemind" :data-index="index">
-							<image :src="item.pic" mode="aspectFit" class="pinimg" lazy-load="true"></image>
-							<view class="tuan">
-								<image src="/static/pages/images/tagbg.png"></image>
-								<text>{{item.activityMainEntity.numberPeople}}人团</text>
-							</view>
-						</view>
-						<view class="pininfo flex">
-							<view class="proname" @tap="toGroupRemind" :data-index="index">{{item.productName}}</view>
-							
-								<view :class="[item.start==false||item.end==true? 'wei' : '',item.times?'endtime':'endtimes']" @tap="toGroupRemind"
-									:data-index="index">
-									<block v-if="item.times">
-										{{item.start==false? '距开始': item.end==false?'距结束':'已结束'}}
-										{{item.times?item.times:''}}
-									</block>
-								</view>
-							<view class="del" @tap="toGroupRemind" :data-index="index"
-								v-if="item.marketPrice<item.money&&item.marketPrice!=0">¥{{item.marketPrice}}</view>
-							<view class="operate dflex">
-								<view class="price" @tap="toGroupRemind" :data-index="index">
-									拼团价¥<text>{{item.money}}</text></view>
-								<view class="add-cart">
-									<view class="remind mbglinear dflex" v-if="item.start==true&&item.end==false"
-										@tap="toGroupRemind" :data-index="index">立即开团</view>
-									<block v-else>
-										<view class="remind mbggreen dflex"
-											v-if="item.start==false&&item.end==false&&item.isRemind"
-											@tap="cancelActivityRemind" :data-index="index">取消预约</view>
-										<view class="remind mbggreen dflex"
-											v-if="item.start==false&&item.end==false&&!item.isRemind"
-											@tap="addActivityRemind" :data-index="index">
-											<icon class="iconfont icon-yugao"></icon>预约提醒
-										</view>
-									</block>
-								</view>
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-			<view class="nodata nosp bgfff" v-if="ishow">
-				<image :src="picUrlss+'empty_sp.png'"></image>
-				<text>暂无商品</text>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	// group/index/index.js
-	const app = getApp();
-	const req = require("../../../utils/request.js");
-	const utils = require("../../../utils/util.js");
-	const requsetmessage = require("../../../utils/requestmessage.js");
-
-	export default {
-		data() {
-			return {
-				picUrlss: req.public.picUrls,
-				form: {
-					page: 1,
-					limit: 10
-				},
-				pageList: [],
-				isLoad: true,
-				hasmore: true,
-				tabIndex: 1,
-				ishow: false
-			};
-		},
-
-		components: {},
-		props: {},
-
-		onLoad(options) {
-			this.query = options;
-			// console.log(options);
-		},
-
-		onShow: function() {
-			this.isLoad = true, this.form.page = 1;
-			this.setData({
-				pageList: []
-			});
-			this.getList(this.tabIndex); // console.log("=======================")
-		},
-		onReachBottom: function() {
-			// console.log(this.data.pageList.length)
-			// if (this.data.pageList.length >= 10) {
-			// console.log("111111111111")
-			this.form.page++;
-			this.getList(this.tabIndex); // }
-		},
-
-		onUnload() {
-			this.clearAllTimer();
-		},
-
-		onHide() {
-			this.clearAllTimer();
-		},
-
-		methods: {
-			clickTab(event) {
-				const index = event.currentTarget.dataset.index;
-				this.setData({
-					tabIndex: index,
-					'form.page': 1
-				});
-				this.isLoad = true,
-					this.getList(index);
-				this.clearAllTimer();
-			},
-
-			getList(dayType) {
-				let isShowLoading = false;
-
-				if (this.form.page == 1 && !isShowLoading) {
-					req.loadIng('加载中');
-					isShowLoading = true;
-				}
-
-				// console.log(this.isLoad);
-				let that = this;
-				if (!this.isLoad) return false;
-				this.isLoad = false;
-				that.form.dayType = dayType;
-				if (dayType == 3) {
-					delete that.form.dayType
-				}
-				if (this.query.merchantId) {
-					that.form.merchantId = this.query.merchantId;
-				} else if (req.getStorage('MERCHANT')) {
-					that.form.merchantId = req.getStorage('MERCHANT').id;
-				} // if (this.query.type == 4) {
-				// 	that.data.form.type = '4'
-				// 	req.getRequest('/api/shopProduct/list', that.data.form, data => {
-				// 		// console.log(data,data.length)
-				// 		if (data && data.list.length >= 10) that.data.isLoad = true;
-				// 		if (that.data.form.page > 1) data.list = that.data.pageList.concat(data.list);
-				// 		data = data.list.map(it => {
-				// 			it.isRemind = it.remindId;
-				// 			return it
-				// 		});
-				// 		console.log(data);
-				// 		let arrObjFilter = data.filter(ele => ele.end == false)
-				// 		that.setData({
-				// 			pageList: arrObjFilter
-				// 		})
-				// 		console.log(that.data.pageList)
-				// 		if (this.data.pageList.length <= 0) {
-				// 			that.setData({
-				// 				ishow: true
-				// 			})
-				// 		} else {
-				// 			that.setData({
-				// 				ishow: false
-				// 			})
-				// 		}
-				// 		if (isShowLoading) {
-				// 			wx.hideLoading()
-				// 			isShowLoading = false;
-				// 		}
-				// 		that.initGroupTimer();
-				// 	})
-				// } else {
-
-
-				that.form.type = '3';
-				req.getRequest('/api/activity/listNew', that.form, data => {
-					// console.log(data,data.length)
-					if (data && data.list.length >= 10) that.isLoad = true;
-					// console.log(that.form.page);
-					if (that.form.page > 1) data.list = that.pageList.concat(data.list);
-					data = data.list.map(it => {
-						it.isRemind = it.remindId;
-						return it;
-					});
-					// console.log(data); // let arrObjFilter = data.filter(ele => ele.end==false)
-					// let res=arrObjFilter.filter(it=>it.id)
-
-					// console.log(data);
-					that.setData({
-						pageList: data
-					});
-					// console.log(that.pageList);
-
-					if (this.pageList.length <= 0) {
-						that.setData({
-							ishow: true
-						});
-					} else {
-						that.setData({
-							ishow: false
-						});
-					}
-
-					if (isShowLoading) {
-						uni.hideLoading();
-						isShowLoading = false;
-					}
-
-					that.initGroupTimer();
-				}); // }
-
-				// console.log(that.isLoad);
-			},
-
-			initGroupTimer() {
-				//社区拼图定时器
-				let _ts = this;
-
-				if (this.pageList && this.pageList.length > 0) {
-					let pageList = this.pageList;
-					const initPage = (parseInt(this.form.page) - 1) * 10;
-
-					for (let i = initPage, len = pageList.length; i < len; i++) {
-						let group = pageList[i];
-						let nowTime = new Date(group.nowTime.replace(/-/g, '/')).getTime();
-						let startTime = new Date(group.startTime.replace(/-/g, '/')).getTime();
-						let endTime = new Date(group.endTime.replace(/-/g, '/')).getTime();
-						if (!group.start) endTime = startTime;
-						let times = parseInt((endTime - nowTime) / 1000);
-						let data = {}; //判断是否已开始
-
-						if (nowTime - startTime > 0) {
-							//开始了
-							data['pageList[' + i + '].isStates'] = 1;
-						} else {
-							//未开始
-							data['pageList[' + i + '].isStates'] = 0;
-						}
-
-						_ts.setData(data); //判断是否为负数,为负数则表示已经结束
-
-
-						if (times > 0) {
-							let timer = setInterval(() => {
-								times--;
-								let data = {};
-
-								if (times === 0) {
-									//重新加载列表
-									data['pageList[' + i + '].end'] = true;
-									clearInterval(timer);
-								} else {
-									let n = utils.formatDayTimes(times);
-									data['pageList[' + i + '].times'] = n;
-								}
-
-								_ts.setData(data);
-							}, 1000);
-							let fs = [];
-							fs['pageList[' + i + '].timer'] = timer;
-
-							_ts.setData(fs);
-						} else {
-							//已经结束
-							data['pageList[' + i + '].times'] = group.endTime;
-							data['pageList[' + i + '].isStates'] = 2;
-
-							_ts.setData(data);
-						}
-					}
-				}
-			},
-
-			toGroupRemind(event) {
-				const index = event.currentTarget.dataset.index;
-				const activity = this.pageList[index];
-				let merchantId;
-
-				if (this.query.merchantId) {
-					merchantId = this.query.merchantId;
-				} else if (req.getStorage('MERCHANT')) {
-					merchantId = req.getStorage('MERCHANT').id;
-				}
-				let url='activity/group/detail/detail?acid=' + activity.id + "&id=" + activity
-						.productId
-				if(!merchantId){
-					
-				}else{
-					url+="&merchantId=" + merchantId
-				}
-				
-				if (this.query.type == 4) {
-					app.globalData.openPage('activity/group/detail/detail?acid=' + activity.id + "&id=" + activity
-						.productId +
-						'&hideShop=' + false);
-				} else {
-					app.globalData.openPage(url);
-				}
-			},
-
-			clearAllTimer() {
-				this.pageList.forEach(it => clearInterval(it.timer));
-			},
-
-			addActivityRemind(event) {
-				const index = event.currentTarget.dataset.index;
-				const page = this.pageList[index];
-
-				req.postRequest('/api/activity/remind', {
-					activityId: page.id
-				}, res => {
-					// requsetmessage.distribution()
-					requsetmessage.remind();
-					req.msg('添加提醒成功');
-					let data = {};
-					data['pageList[' + index + '].isRemind'] = true;
-					this.setData(data);
-				});
-			},
-
-			cancelActivityRemind(event) {
-				const index = event.currentTarget.dataset.index;
-				const page = this.pageList[index];
-				if (req.header.appId == 'ZQ1VK5oc17I387E') {
-
-				} else {
-					req.postRequest('/api/activity/cancel/remind', {
-						id: page.id
-					}, res => {
-						req.msg('取消提醒成功');
-						let data = {};
-						data['pageList[' + index + '].isRemind'] = false;
-						this.setData(data);
-					});
-				}
-			}
-
-		}
-	};
-</script>
-<style>
-	@import "./index.css";
-</style>

+ 0 - 58
activity/group/ptDetail/ptDetail.css

@@ -1,58 +0,0 @@
-/* group/ptDetail/ptDetail.wxss */
-page{background: #FFEAD4;}
-.banner image{width: 100%;}
-.con{position: relative;z-index: 1;padding: 0 20rpx 50rpx;margin-top: -330rpx;}
-.info{background: #fff;border-radius: 12rpx;padding: 30rpx 20rpx;}
-.pinimgs{box-sizing: border-box;width: 180rpx;height: 180rpx;border-radius: 10rpx;margin-right: 30rpx;border: 2rpx solid #E5E5E5;position: relative;}
-.pinimg{display: block;width: 100%;height: 100%;border-radius: 10rpx;}
-.tuan{display: block;width: 87rpx;height: 44rpx;font-size: 22rpx;color: #fff;text-align: center;line-height: 34rpx;position: absolute;top: 21rpx;left: -10rpx;}
-.tuan image{display: block;width: 100%;height: 100%;position: absolute;top: 0;left: 0;}
-.tuan text{position: relative;z-index: 2;display: block;}
-.proname{font-size: 28rpx;color: #333;}
-.guige{font-size: 24rpx;color: #999;margin-top: 5rpx;}
-.sta{align-items: center;justify-content: space-between;margin-top: 30rpx;}
-.price{font-size: 37rpx;color: #FE0419;}
-.price text{font-size: 25rpx;}
-.price text.del{font-size: 24rpx;color: #999;margin-left: 16rpx;text-decoration: line-through;}
-.nums{font-size: 30rpx;color: #333;}
-.cantuan{padding: 35rpx 55rpx 40rpx;}
-.can-info{text-align: center;font-size: 40rpx;color: #333;}
-.can-info text{font-size: 43rpx;color: #FE0419;}
-.sheng{align-items: center;justify-content: center;font-size: 22rpx;color: #333;margin-top: 25rpx;}
-.sheng::before,.sheng::after{content: '';display: block;width: 110rpx;height: 2rpx;background: #FD4D36;}
-.sheng::before{margin-right: 16rpx;}
-.sheng::after{margin-left: 16rpx;}
-.sheng-time{font-size: 22rpx;color: #FD4D36;align-items: center;}
-.sheng-time text{display: block;width: 36rpx;height: 36rpx;border-radius: 6rpx;background: #FD5238;font-size: 22rpx;color: #fff;text-align: center;line-height: 36rpx;margin: 0 10rpx;}
-.can-infos{flex-wrap: wrap;padding: 0 35rpx;}
-.can-infos .li{width: 90rpx;height: 90rpx;position: relative;margin-right: 20rpx;margin-top: 55rpx;position: relative;}
-.can-infos .li:nth-child(5n){margin-right: 0;}
-.can-bg{width: 86rpx;height: 86rpx;margin: 1rpx auto;}
-.can-user{position: absolute;top: 0;left: 0;width: 90rpx;height: 90rpx;border-radius: 50%;}
-.can-infos .li text{display: block;width: 78rpx;height: 32rpx;border-radius: 17rpx;border: 2rpx solid #fff;background: #FD4534;font-size: 20rpx;color: #fff;text-align: center;line-height: 32rpx;position: absolute;left: 50%;transform: translateX(-50%);bottom: -12rpx;}
-.can-btn{height: 90rpx !important;border-radius: 45rpx !important;font-size: 30rpx;color: #fff;text-align: center;line-height: 90rpx !important;margin-top: 50rpx !important;}
-.kai-btn{height: 86rpx;border-radius: 45rpx;font-size: 30rpx;color: #FE0419;border: 2rpx solid #FE0419;text-align: center;line-height: 86rpx;margin-top: 20rpx;}
-.tab{height: 104rpx;border-bottom: 2rpx solid #E8E8E8;}
-.tab .li{font-size: 26rpx;color: #999;width: 33.33%;text-align: center;line-height: 104rpx;position: relative;}
-.tab .on{font-size: 28rpx;color: #333;}
-.tab .on::after{content: '';display: block;width:130rpx;height:4rpx;background:linear-gradient(359deg,rgba(240,73,39,1) 0%,rgba(255,142,78,1) 100%);position: absolute;bottom: 0;left: 50%;transform: translateX(-50%);}
-.det-text{padding: 20rpx 30rpx;word-break: break-all;}
-.details .rich-img{width: 100%;}
-.details .img{width: 100%;}
-.friend .li{border-bottom: 2rpx solid #E8E8E8;padding: 28rpx 20rpx;align-items: center;}
-.friend .li:last-child{border-bottom: none;}
-.timg{position: relative;margin-right: 20rpx;}
-.timg image{width: 90rpx;height: 90rpx;border-radius: 50%;}
-.timg text{display: block;width: 78rpx;height: 32rpx;border-radius: 17rpx;border: 2rpx solid #fff;background: #FD4534;font-size: 20rpx;color: #fff;text-align: center;line-height: 32rpx;position: absolute;left: 50%;transform: translateX(-50%);bottom: -12rpx;}
-.name{font-size: 28rpx;color: #333;margin-right: 20rpx;}
-.time{font-size: 24rpx;color: #999;}
-.guize{font-size: 24rpx;line-height: 40rpx;padding: 30rpx;}
-
-.show{display: block;}
-.hide{display: none;}
-
-
-/* 拼团状态 */
-.status{padding: 70rpx 55rpx 60rpx;}
-.status-c{text-align: center;font-size: 30rpx;color: #999;}
-.status-c image{width: 219rpx;height: 147rpx;margin: 0 auto 45rpx;}

+ 0 - 413
activity/group/ptDetail/ptDetail.vue

@@ -1,413 +0,0 @@
-<template>
-<view>
-<!--group/ptDetail/ptDetail.wxml-->
-<view class="banner">
-	<image src="/activity/static/activity/images/ptban1.jpg" mode="widthFix"></image>
-</view>
-<view class="con">
-	<view class="info dflex" @tap="goPrcdetail">
-		<view class="pinimgs">
-			<image :src="actData.acProduc.pic" mode="aspectFit" class="pinimg"></image>
-			<view class="tuan">
-				<image src="/static/pages/images/tagbg.png"></image>
-				<text>{{actData.activityMain.numberPeople}}人团</text>
-			</view>
-		</view>
-		<view class="pininfo flex">
-			<view class="proname">{{actData.acProduc.productName}}</view>
-			<view class="guige"></view>
-			<view class="sta dflex">
-				<view class="price"><text>¥</text>{{actData.acProduc.money}}<text class="del" v-if="actData.acProduc.marketPrice!=0&&actData.acProduc.marketPrice>actData.acProduc.money">原价:{{actData.acProduc.marketPrice}}</text></view>
-				<!-- <view class="nums">×1</view> -->
-			</view>
-		</view>
-	</view>
-
-	<!-- 0进行中  1标识拼团成功正常结束   2拼团特有状态,此状态下拼团未付款  3失败  4退款成功 -->
-	<view v-if="actData.aprList.groupMainP.state==0" class="cantuan bgfff mt20 r10">
-		<view class="can-info" v-if="actData.activityMain.numberPeople-actData.aprList.groupList.length<=0">{{actData.aprList.groupMainP.state==1?'拼团完成':'拼团待支付'}}</view>
-		<view class="can-info" v-else>还差<text>{{actData.activityMain.numberPeople-actData.aprList.groupList.length}}人</text>成团</view>
-		<view class="sheng dflex" v-if="actData.aprList.groupMainP.state==0">
-			剩余
-			<view class="sheng-time dflex">
-				<block v-if="timer.length==4">
-					<block v-if="timer[0] !=0"><text>{{timer[0]}}</text>天</block>
-					<text>{{timer[1]}}</text>:
-					<text>{{timer[2]}}</text>:
-					<text>{{timer[3]}}</text>
-				</block>
-				<block v-else>
-					<text>{{timer[0]}}</text>:
-					<text>{{timer[1]}}</text>:
-					<text>{{timer[2]}}</text>
-				</block>
-			</view>
-			结束
-		</view>
-		<view class="can-infos dflex">
-			<view v-for="(item, index) in groupList" :key="index" class="li">
-				<image v-if="item.uavatar" :src="item.uavatar" mode="aspectFit" class="can-user"></image>
-				<text v-if="index==0">团长</text>
-				<text v-else>团员</text>
-				<image v-if="!item.uavatar" src="/activity/static/activity/images/cha.png" class="can-bg"></image>
-			</view>
-		</view>
-		<view class="can-btn mbglinear" @tap="addGroup" v-if="isJion&&actData.aprList.groupList.length!=actData.activityMain.numberPeople">我要参团</view>
-		<button open-type="share" class="can-btn mbglinear" v-if="!isJion">邀请好友参团</button>
-		<view class="kai-btn" v-if="actData.whether!=2" @tap="createGroup">我也要开团</view>
-	</view>
-	<view v-if="actData.aprList.groupMainP.state!=0" class="status bgfff mt20 r10">
-		<view v-if="actData.aprList.groupMainP.state==1" class="status-c">
-			<image :src="picUrlss+'sqimg3.png'"></image>
-			<text>拼团成功啦~</text>
-		</view>
-		<view v-if="actData.aprList.groupMainP.state==3" class="status-c">
-			<image :src="picUrlss+'sqimg2.png'"></image>
-			<text>拼团失败,已退款~</text>
-		</view>
-		<view class="can-infos dflex" v-if="actData.aprList.groupMainP.state!=1">
-			<view v-for="(item, index) in groupList" :key="index" class="li">
-				<image v-if="item.uavatar" :src="item.uavatar" mode="aspectFit" class="can-user"></image>
-				<text v-if="index==0">团长</text>
-				<image v-if="!item.uavatar" src="/activity/static/activity/images/cha.png" class="can-bg"></image>
-			</view>
-		</view>
-		<view class="can-btn mbglinear" v-if="isUser" @tap="toOrder">查看订单详情</view>
-		<view class="can-btn mbglinear" @tap="goSeept">查看其他拼团</view>
-	</view>
-	<view class="detail bgfff mt20 r10">
-		<view class="tab dflex">
-			<view :class="'li ' + (currentTab == 0? 'on' : '')" data-current="0" @tap="tab">商品详情</view>
-			<view :class="'li ' + (currentTab == 1? 'on' : '')" data-current="1" @tap="tab">拼团记录</view>
-			<view :class="'li ' + (currentTab == 2? 'on' : '')" data-current="2" @tap="tab">活动规则</view>
-		</view>
-		<view :class="currentTab == 0? 'show' : 'hide'">
-			<mp-html :content="nodes" lazy-load="true" @imgtap="chooseImg1"></mp-html>
-<!-- 			<view class="details det-text">
-				<rich-text :nodes="nodes"></rich-text>
-			</view>
-			<view class="details">
-				<block v-for="(item, index) in imgs" :key="index">
-					<image class="img" :src="item" mode="widthFix" @tap="chooseImg1" :data-src="item"></image>
-				</block>
-			</view> -->
-		</view>
-		<view :class="'friend ' + (currentTab == 1? 'show' : 'hide')">
-			<view v-for="(item, index) in groupList" :key="index" class="li dflex" v-if="item.careatDate">
-				<view class="timg">
-					<image :src="item.uavatar" mode="aspectFit"></image>
-					<text v-if="item.userId==actData.aprList.groupMainP.userId">团长</text>
-					<text v-else>团员</text>
-				</view>
-				<view class="name flex">{{item.unickName}}</view>
-				<view class="time">{{item.careatDate}}{{item.userId==actData.aprList.groupMainP.userId?'开团':'参团'}}</view>
-			</view>
-
-
-		</view>
-		<view :class="'guize ' + (currentTab == 2? 'show' : 'hide')">
-			<rich-text :nodes="actData.activityMain.rule"></rich-text>
-		</view>
-	</view>
-</view>
-</view>
-</template>
-
-<script>
-const app = getApp();
-const req = require("../../../utils/request.js");
-const utils = require("../../../utils/util.js");
-const route = require("../../../utils/route");
-import mpHtml from "../../../components/mp-html/components/mp-html/mp-html";
-export default {
-  data() {
-    return {
-		picUrlss: req.public.picUrls,
-      currentTab: 0,
-      isJion: true,
-      isGroup: true,
-      isUser: false,
-      start: false,
-      actData: "",
-      groupList: "",
-      timer: "",
-      hideShare: false
-    };
-  },
-
-  components: {
-	  mpHtml
-  },
-  props: {},
-  onLoad: function (options) {
-    this.query = options; // this.getBargainPriceDetail();
-
-    // console.log(options);
-  },
-  onShow: function () {
-    // req.redirectIndex()
-    req.isLogin().then(success => {});
-    this.getBargainPriceDetail();
-  },
-  onShareAppMessage: function () {
-    let merchantId = '';
-    let path = '/activity/group/ptDetail/ptDetail?id=' + this.query.id + '&acid=' + this.actData.acProduc.id + '&isShare=' + true;
-    // console.log(!req.getStorage('userInfo').id);
-    if (!req.getStorage('userInfo').id) {} else {
-      path += '&userId=' + req.getStorage('userInfo').id;
-    }
-    // console.log(this.query.merchantId);
-    let shopId = '';
-    if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-      	path += '&merchantId=' + req.getStorage('MERCHANT').id;
-      	merchantId = req.getStorage('MERCHANT').id;
-      
-      	if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-      		path += '&shopId=' + req.getStorage('smallShop').id;
-      		shopId = req.getStorage('smallShop').id;
-      		merchantId = req.getStorage('smallShop').merchantDTO.id;
-      	}
-    }
-	// console.log(path,"456")
-    route.share(1, req.getStorage('userInfo').id, path, merchantId, shopId, 7, this.actData.acProduc.id + '_' + this.query.id);
-    return {
-      title: this.actData.aprList.groupMainP.unickName + '邀请您一起拼团:' + this.actData.acProduc.productName,
-      imageUrl: this.actData.acProduc.pic,
-      path: path
-    };
-  },
-  // onShareTimeline(){
-	 //  let merchantId = '';
-	 //  let path = '/activity/group/ptDetail/ptDetail?id=' + this.query.id + '&acid=' + this.actData.acProduc.id + '&isShareTimeline=' + true;
-	 //  console.log(!req.getStorage('userInfo').id);
-	 //  if (!req.getStorage('userInfo').id) {} else {
-	 //    path += '&userId=' + req.getStorage('userInfo').id;
-	 //  }
-	 //  let shopId = '';
-	 //  if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-	 //    	path += '&merchantId=' + req.getStorage('MERCHANT').id;
-	 //    	merchantId = req.getStorage('MERCHANT').id;
-	    
-	 //    	if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-	 //    		path += '&shopId=' + req.getStorage('smallShop').id;
-	 //    		shopId = req.getStorage('smallShop').id;
-	 //    		merchantId = req.getStorage('smallShop').merchantDTO.id;
-	 //    	}
-	 //  }
-	 //  console.log(path,"456")
-	 //  route.share(1, req.getStorage('userInfo').id, path, merchantId, shopId, 7, this.actData.acProduc.id + '_' + this.query.id);
-	 //  return {
-	 //    title: this.actData.aprList.groupMainP.unickName + '邀请您一起拼团:' + this.actData.acProduc.productName,
-	 //    imageUrl: this.actData.acProduc.pic,
-	 //    path: path
-	 //  };
-  // },
-  methods: {
-    tab(event) {
-      const tabIndex = event.currentTarget.dataset.current;
-      if (this.currentTab === tabIndex) return false;
-      this.setData({
-        currentTab: tabIndex
-      });
-    },
-
-    //获取平团详情
-    getBargainPriceDetail() {
-      req.getRequest('/api/activity/groupDetail', {
-        id: this.query.id,
-        merchantId: this.query.merchantId
-      }, data => {
-        // console.log(data);
-		if(data){
-			this.setData({
-			  actData: data
-			});
-			this.initTimer(data.acProduc.nowTime, data.aprList.groupMainP, data.acProduc.endTime);
-			var groupList = []; //  groupList.push(data.aprList.groupMainP);
-			
-			if (data.aprList.groupList) {
-			  groupList = groupList.concat(data.aprList.groupList);
-			  groupList.forEach(res => {
-			    if (res.userId == req.getStorage("userInfo").id) {
-			      this.setData({
-			        isUser: true
-			      });
-			    }
-			  });
-			}
-			
-			if (groupList.length < data.activityMain.numberPeople) {
-			  for (var i = 0; i < data.activityMain.numberPeople - data.count; i++) {
-			    // console.log(data.activityMain.numberPeople - data.count);
-			    var nullGroup = {};
-			    groupList.push(nullGroup);
-			  }
-			}
-			
-			// console.log(groupList);
-			this.isJionFun(groupList);
-			this.setData({
-			  groupList: groupList
-			}); 
-			 this.loadProudct(data.acProduc.productId);
-		}
-      });
-    },
-
-    initTimer(nowdata, group, end) {
-      //计时器
-      let _ts = this;
-
-      let nowTime = new Date(nowdata.replace(/-/g, '/')).getTime();
-      let endTime = new Date(group.endDate.replace(/-/g, '/')).getTime(); // let actend=new Date(end.replace(/-/g, '/')).getTime();
-      // let times
-      // if(actend-endTime>0){
-      //    times = parseInt((endTime - nowTime) / 1000);
-      // }else{
-      //   times = parseInt((actend - nowTime) / 1000);
-      // }
-
-      let times = parseInt((endTime - nowTime) / 1000);
-      // console.log(times);
-      this.timer = setInterval(() => {
-        times--;
-
-        if (times === 0) {
-          return false;
-        }
-
-        if (times < 0) {
-          this.setData({
-            isGroup: false
-          });
-        }
-
-        let n = utils.formatDayTimes(times);
-
-        _ts.setData({
-          timer: n.split(/:|天/g)
-        });
-      }, 1000);
-    },
-
-     loadProudct(proId) {
-      let that = this;
-      req.getRequest('/api/product/detail', { id: proId }, data => {
-        //富文本图片放大
-        var nodes = data.detail;
-        // if (nodes) {
-        //   if (nodes.indexOf("src") >= 0) {
-        //     //正则匹配所有图片路径
-        //     var imgs = [];
-        //     nodes = nodes.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function (match, capture) {
-        //       imgs.push(capture);
-        //       that.setData({
-        //         imgs: imgs
-        //       });
-        //       return '';
-        //     });
-        //   }
-        // }
-        that.setData({ bannerUrls: data.images, pro: data ,nodes: nodes});
-      })
-    },
-    // 活动商品详情
-    goPrcdetail() {
-      app.globalData.openPage('activity/group/detail/detail?acid=' + this.actData.acProduc.id + '&id=' + this.actData.acProduc.productId);
-    },
-
-    //创建拼团
-    createGroup() {
-      if (this.start) return req.msg('活动已结束');
-      req.postRequest('/api/activity/carterActivityPurchaseRecords', {
-        acpId: this.actData.aprList.groupMainP.acpId,
-        type: 3
-      }, res => {
-        this.createGroupOrder(res);
-      });
-    },
-
-    //加入平团
-    addGroup() {
-      if (this.start) return req.msg('活动已结束');
-      if (this.actData.aprList.groupList.length == this.actData.activityMain.numberPeople) return req.msg('该团参与人数已满');
-      this.createGroupOrder(this.actData.aprList.id);
-    },
-
-    showShare() {
-	  // #ifndef H5
-      req.isLogin().then(success => {
-        if (success) {
-          this.setData({
-            hideShare: false
-          });
-        }
-      });
-	  // #endif
-    },
-
-    goSeept() {
-      uni.redirectTo({
-        url: '/activity/group/index/index'
-      });
-    },
-
-    createGroupOrder(aprId) {
-      // let merchant = req.getStorage('defaultMerchant');
-      const params = {
-        skuId: this.actData.acProduc.skuId,
-        quantity: 1,
-        productId: this.actData.acProduc.productId,
-        aprId: aprId
-      };
-	  if (this.query.merchantId) {
-	  	params.merchantId = this.query.merchantId;
-		if(this.query.shopId){
-			params.shopId = this.query.shopId;
-		}
-	  }
-      // if (this.query.merchantId) params.merchantId = this.query.merchantId;
-      params.activityId = this.actData.acProduc.id;
-      req.postRequest('/api/purchase/direct/buy', params, res => {
-        let redirect = '/product/subOrder/subOrder?ids=' + res;
-        redirect += '&orderType=' + 4;
-        redirect += '&aprId=' + aprId;
-        redirect += '&activityId=' + this.actData.acProduc.id;
-        redirect += '&pay=' + 1;
-		if (params.merchantId) {
-			redirect += '&merchantId=' + params.merchantId;
-		}
-		
-		if (params.shopId) {
-			redirect += '&shopId=' + params.shopId;
-		}
-		
-        uni.navigateTo({
-          url: redirect
-        });
-      });
-    },
-
-    /**判断是否已经参团 */
-    isJionFun(groupList) {
-      let userInfo = req.getStorage('userInfo');
-      groupList.forEach(res => {
-        // console.log(res.userId == userInfo.id);
-        if (res.userId == userInfo.id) this.setData({
-          isJion: false
-        });
-      }); // console.log(groupList)
-    },
-
-    toOrder() {
-      uni.navigateTo({
-        url: '/mine/orderDet/orderDet?id=' + this.actData.orderId
-      });
-    }
-
-  }
-};
-</script>
-<style>
-@import "./ptDetail.css";
-</style>

+ 0 - 96
activity/newbornDetails/newbornDetails.css

@@ -1,96 +0,0 @@
-/* product/xrzqDetails/xrzqDetails.wxss */
-.banner{overflow: hidden;position: relative;}
-.swiper,.swiper image{width: 100%;height: 750rpx;}
-.dots{position: absolute;left: 0;right: 0;bottom: 11rpx;align-items: center;justify-content: center;}
-.dot{background:var(--mina) ;width: 10rpx;height: 10rpx;border-radius: 5rpx;margin: 0 3rpx;}
-.dot.active{width: 30rpx;}
-.group{position: relative;height: 120rpx;}
-.ptbg{width: 100%;height: 120rpx;position: absolute;top: 0;left: 0;z-index: 1;}
-.origin text{font-weight: bold; font-size: 24rpx !important ;}
-.groups{position: relative;z-index: 2;align-items: center;padding: 0 30rpx;justify-content: space-between;height: 120rpx;}
-.price{font-size: 28rpx;color: #FE0419;}
-.price text{font-size: 48rpx;font-weight: bold;}
-.price text.origin{font-weight: normal;font-size: 24rpx;color: #999;text-decoration: line-through;margin-left: 10rpx;}
-.left .price,.left .price text.origin{color: #fff;}
-.pin{font-size: 24rpx;color: #fff;}
-.tuan{width: 154rpx;height: 40rpx;float: right;}
-.endtime{align-items: center;font-size: 24rpx;color: #fff;line-height: 36rpx;margin-top: 47rpx;overflow: hidden;clear: both;}
-.endtime view{margin-right: 15rpx;}
-.endtime text{display: block;width:36rpx;height:36rpx;background:rgba(0, 0, 0, 0.4);border-radius:6rpx;font-size: 24rpx;color: #fff;text-align: center;line-height: 36rpx;margin:0 5rpx;}
-.info{padding: 30rpx 30rpx 40rpx;}
-.infos{align-items: center;justify-content: space-between;}
-.share{font-size: 24rpx;color: #999;text-align: center;position: relative;margin-left: 45rpx !important;}
-.share::after{content: '';display: block;width: 2rpx;height: 45rpx;background: #e7e7e7;position: absolute;top: 50%;transform: translateY(-50%);left: -30rpx;}
-.share image{width: 31rpx;height: 31rpx;margin: 0 auto 10rpx;}
-.title{font-size: 30rpx;color: #222;line-height: 40rpx;font-weight: bold;}
-.tag{width: 82rpx;height: 36rpx;display: inline-block;margin: 0 10rpx 0 0;position: relative;top: 7rpx;}
-.detinfo .item{padding: 30rpx;border-bottom: 1rpx solid #f6f6f6;}
-.detinfo .item:last-child{border-bottom: none;}
-.item label{display: block;width: 130rpx;font-size: 28rpx;color: #222;font-weight: bold;line-height: 40rpx;}
-.quan .flex{align-items: center;}
-.quan text{display: block;background: #FDF5F3;padding: 0 13rpx;height: 40rpx;line-height: 40rpx;font-size: 24rpx;color: #FF5F08;margin-right: 10rpx;}
-.ling{font-size: 24rpx;color: #FF5F08;align-items: center;}
-.ling image{width: 14rpx;height: 24rpx;margin-left: 11rpx;}
-.address{font-size: 28rpx;color: #333;line-height: 40rpx;}
-.huo{font-size: 24rpx;color: #666;line-height: 40rpx;}
-.huo text{color: #FE0419;}
-.more{width: 36rpx;height: 10rpx;margin-top: 15rpx;}
-.dis{display: flex;justify-content: space-between;}
-.more{width: 36rpx;height: 10rpx;margin-top: 15rpx;}
-.more1{width: 12rpx; height: 22rpx;}
-.txt{margin-left: 14rpx;}
-.gmbtn1{border: 2rpx solid #FE0419; width: 430rpx;height: 77rpx;border-radius:40rpx;text-align: center;line-height: 80rpx;font-size: 30rpx;color: #FE0419;background-color: #FFFFFF;}
-.gmbtnor{width: 210rpx;height: 80rpx;border-radius: 40rpx;text-align: center;line-height: 80rpx;font-size: 30rpx;color: #fff;}
-/* .user{width: 68rpx;height: 68rpx;border-radius: 50%;margin-right: 15rpx;} */
-.name{font-size: 28rpx;color: #666;line-height: 68rpx;justify-content: space-between;align-items: center;}
-.pinglun{font-size: 28rpx;color: #333;margin: 15rpx 0 0;line-height: 44rpx;}
-.huifu{background: #F2F2F2;border-radius: 6rpx;margin: 25rpx 0 0;line-height: 42rpx;padding: 20rpx 30rpx;position: relative;}
-.huifu::after{content: '';display: block;width: 0;height: 0;border: 9rpx solid transparent;border-bottom-color: #F2F2F2;border-top: none;position: absolute;top: -8rpx;left: 39rpx;}
-.show{display: block;}
-.hide{display: none;}
-.bot{height: 80rpx;align-items: center;padding: 20rpx 30rpx 20rpx 0; display: flex; justify-content: space-around;}
-.botbtn{font-size: 22rpx;color: #6A6A6A;width: 108rpx !important;text-align: center;position: relative;}
-.botbtn image{width: 40rpx;height: 34rpx;margin: 10rpx auto 5rpx;}
-.message{background: #DF1A14;height: 28rpx;line-height: 28rpx;font-size: 24rpx;color: #fff;text-align: center;border-radius: 15rpx;box-sizing: border-box;min-width: 21rpx;padding: 0 8rpx;position: absolute;top: 0;right: 25%;}
-.gmbtn{width: 430rpx;height: 80rpx;border-radius: 40rpx;text-align: center;line-height: 80rpx;font-size: 30rpx;color: #fff;}
-.addcart{width: 206rpx;height: 76rpx;border: 2rpx solid #FD3C31;border-radius: 40rpx;text-align: center;line-height: 76rpx;font-size: 30rpx;color: #FD3A31;margin: 0 10rpx;}
-.flot{float: left;}
-.background {
-  width: 30rpx;
-  height: 30rpx;
-  position:absolute; 
-	background-size:100% 100%;
-	margin-top: 2rpx;
-  /* z-index: -1; */
-}
-.ico{width: 30rpx;height: 30rpx;}
-
-
-.guarantee{border-top: 1rpx solid #f6f6f6;padding: 15rpx 0 0 0; margin-top: 15rpx;}
-.guarantee .cont{flex-wrap: wrap;font-size: 26rpx;}
-.guarantee .cont .li{align-items: center;margin-right: 20rpx;
-  margin-bottom: 10rpx;}
-.guarantee .cont image{        width: 30rpx;
-  height: 30rpx;}
-  
-  /* 小店相关 */
-  .xiaodian{position: relative;height: 122rpx;padding: 0 26rpx 0 110rpx;align-items: center;margin: 35rpx 30rpx 0;}
-  .xdbg{position: absolute;left: 0;top: 0;width: 100%;height: 100%;z-index: 1;}
-  .shouyi{position: relative;z-index: 2;color: #fff;margin-right: 10rpx;}
-  .shouyi view{font-size: 40rpx;font-weight: bold;margin-top: 8rpx;}
-  .shouyi text{font-weight: normal;font-size: 24rpx;}
-  .addshop{height: 62rpx;padding: 0 25rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-  .fenxiang{height: 62rpx;padding: 0 25rpx;margin-left: 15rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-  .goShop{height: 62rpx;padding: 0 25rpx;margin-left: 15rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-  
-  .suc{position: fixed;left: 50%;top: 50%;transform: translate(-50%,-50%);background: #fff;width: 536rpx;border-radius: 20rpx;z-index: 100;text-align: center;padding-bottom: 47rpx;}
-  .tjcg1{width: 100%;height: 284rpx;}
-  .tjcg{width: 195rpx;height: 38rpx;margin: 52rpx auto 15rpx;}
-  .suc text{display: block;font-size: 24rpx;color: #333;}
-  .shopcc{justify-content: center;}
-  .shop{width:220rpx;height:80rpx;background:linear-gradient(123deg,rgba(255,130,130,1) 0%,rgba(220,21,21,1) 100%);font-size: 30rpx;color: #fff;line-height: 80rpx;border-radius: 40rpx;margin: 45rpx 15rpx 40rpx;}
-  .suc-close{position: absolute;left: 50%;transform: translateX(-50%);bottom: -102rpx;width: 62rpx;height: 62rpx;}
-  
-  .pro-sel{align-items: center;}
-  .pro-sel .flex{text-overflow: ellipsis;white-space: nowrap;overflow: hidden;}
-  .mrico{width: 16rpx;height: 27rpx;}

+ 0 - 1134
activity/newbornDetails/newbornDetails.vue

@@ -1,1134 +0,0 @@
-<template>
-	<view v-if="allShow">
-		<!--product/xrzqDetails/xrzqDetails.wxml-->
-		<view class="banner">
-			<swiper class="swiper" @change="swiperChange" :current="current" autoplay="true" circular="true"
-				duration="1000">
-				<block v-for="(item, index) in bannerUrls" :key="index">
-					<swiper-item autoplay="true">
-						<image :src="item + '?x-oss-process=style/w750-auto'" mode="aspectFit"></image>
-					</swiper-item>
-				</block>
-			</swiper>
-			<view class="dots dflex">
-				<block v-for="(item, index) in bannerUrls" :key="index">
-					<view :class="'dot ' + (index == swiperCurrent ? ' active' : '')" :data-current="index"
-						@tap="dotEvent"></view>
-				</block>
-			</view>
-		</view>
-		<!-- <view class="notification_bar" wx:if="{{isNotice}}">
-	<swiper class="swiper_container" vertical="true" autoplay="true" circular="false" duration="1000" interval="5000" easing-function="easeInOutCubic" class="bar_box dflex">
-		<swiper-item class="bar_con dflex" wx:for="{{contentList}}" wx:key="item">
-			<view class="bar dflex">
-				<image class="bar_left" src="{{item.pic}}" />
-				<text class="bar_text">最新订单来自</text>
-				<text class="bar_text">{{item.name}},</text>
-				<text class="bar_text">{{item.time}}</text>
-			</view>
-		</swiper-item>
-	</swiper>
-</view> -->
-		<view class="group">
-			<image src="/activity/static/activity/images/xrzxbg.png" class="ptbg"></image>
-			<!-- <image src="/activity/images/xrzxbg.png" class="ptbg" wx:else></image> -->
-			<view class="groups dflex">
-				<view class="left">
-					<view class="price">¥<text>{{act.money}}</text>
-						<text class="origin"
-							v-if="pro.marketPrice!=0&&pro.marketPrice>act.money">¥<text>{{pro.marketPrice}}</text></text>
-					</view>
-					<view class="pin">{{act.payQuantity?act.payQuantity:'0'}}人已参与</view>
-				</view>
-				<view class="right">
-					<image src="/activity/static/activity/images/xrzx.png" class="tuan"></image>
-					<view class="endtime dflex">
-						<view>距结束还剩</view>
-						<block v-if="timer[0] !==0"><text>{{timer[0]}}</text>{{timer.length>=4?'天':':'}}</block>
-						<text>{{timer[1]}}</text>:
-						<text>{{timer[2]}}</text>{{timer.length>=4?':':''}}
-						<text v-if="timer.length>=4">{{timer[3]}}</text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="info bgfff">
-			<view class="infos dflex">
-				<view class="title flex">
-					<image src="/static/pages/images/jishida.png" class="tag" v-if="pro.isTimely === 1"></image>
-					{{pro.title?pro.title:''}}
-				</view>
-				<view class="share" @tap="showShare">
-					<image src="/static/pages/images/fxico.png"></image>分享
-				</view>
-			</view>
-			<view class="guarantee dflex" v-if="guarantee.length>0">
-				<view class="cont dflex">
-					<view v-for="(item, index) in guarantee" :key="index" class="dflex li">
-						<image src="/activity/static/activity/images/guarantee.png"></image>{{item}}
-					</view>
-				</view>
-			</view>
-		</view>
-
-		<view class="detinfo mt20 bgfff">
-			<!-- isOtc 0 默认 1 处方药 2 非处方药 3 医疗器械 4 食品类 5 海外购 -->
-			<block v-if="act.isOtc!=5">
-			<block v-if="is_open_shop == 1 && ascription">
-			<view class="xiaodian dflex malr20" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0) || act.serviceShopRate">
-				<image src="/static/pages/images/xdbg1.png" class="xdbg"></image>
-				<view class="shouyi flex" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0)">
-					<text>分销收益</text>
-					<view v-if="act.isMeCommission == 0"><text>¥</text>{{act.oneCommission}}</view>
-					<view v-else><text>¥</text>{{act.twoCommission}}</view>
-				</view>
-				<view class="shouyi flex" v-if="act.serviceShopRate">
-					<text>小店服务费</text>
-					<view><text>¥</text>{{act.serviceShopRate}}</view>
-				</view>
-				<view class="dflex" v-if="act.isJoinShop">
-					<view class="fenxiang" @tap="showShare">分享推广</view>
-					<navigator :url="url" hover-class="none" class="goShop">去小店</navigator>
-				</view>
-				<view class="addshop" @tap="addShop" v-else>添加到小店</view>
-			</view>
-			</block>
-			<block v-else>
-			<view class="xiaodian dflex malr20" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0)">
-				<image src="/static/pages/images/xdbg1.png" class="xdbg"></image>
-				<view class="shouyi flex">
-					<text>分销收益</text>
-					<view v-if="act.isMeCommission == 0"><text>¥</text>{{act.oneCommission}}</view>
-					<view v-else><text>¥</text>{{act.twoCommission}}</view>
-				</view>
-				<navigator url="/promote/apply/apply" hover-class="none" class="fenxiang" v-if="isDistriUser != 2">我要推广</navigator>
-				<view class="fenxiang" @tap="showShare" v-else>分享推广</view>
-			</view>
-			</block>
-			</block>
-			<!-- <view class="item dflex">
-		<label>优惠券</label>
-		<view class="quan flex dflex">
-			<view class="flex dflex">
-				<text>满500减50</text>
-				<text>满200减10</text>
-			</view>
-			<view class="ling dflex">领券<image src="/pages/images/more3.png"></image>
-			</view>
-		</view>
-	</view> -->
-			<view class="item pro-sel dflex" v-if="pro.propertiesList && pro.propertiesList.length > 0"
-				@click="pro.stock > 0 ? addShopCart() : ''">
-				<label>已选</label>
-				<view class="flex">{{pro.properties}}</view>
-				<image src="/static/pages/images/more.png" class="mrico"></image>
-			</view>
-			<view class="item dflex">
-				<label>配送至</label>
-				<view class="flex" @tap="toAddress">
-					<view class="address">{{address.address?address.address:''}}{{address.house?address.house:''}}
-					</view>
-					<view class="huo" v-if="pro.isTimely == 1"><text>现货</text>,现在下单,预计2小时后送达</view>
-				</view>
-				<image src="/static/pages/images/more2.png" class="more" @tap="toAddress"></image>
-			</view>
-			<view class="item dflex">
-				<label>提货门店</label>
-				<view class="flex" @tap="toMerchant">
-					<view class="address">{{merchant.title}}</view>
-				</view>
-			</view>
-			<!-- <view class="item dflex">
-		<label>参数</label>
-		<view class="flex dis">
-			<view wx:for="{{params}}" wx:key="index">
-				{{item.name}}
-			</view>
-			<image src="../../pages/images/more.png" class="more1"></image>
-		</view>
-	</view> -->
-		</view>
-
-		<!--  商品详情等页面 -->
-		<product-footer ref="list" id="list" :detail="nodes" :imgs="imgs" :proId="pro.id" v-if="pro.id" :form="form"
-			@showTab="showTab" @scoreTab="scoreTab" @freshen="freshenFun">
-		</product-footer>
-
-		<v-share :hide-toast="hideShare" :product="pro" :code-url="codeUrl" a-type="4" @onFather="click"></v-share>
-
-		<view class="placeholder-view" :style="'height:' + (bottomBlankHeight + 140) + 'rpx'"></view>
-		<view class="bot fixed bgfff dflex" :style="'padding-bottom: ' + (bottomBlankHeight + 20) + 'rpx'">
-			<contact-button img-url="/static/pages/images/kfico.png" class-name="botbtn" button-text="在线客服"></contact-button>
-			<navigator class="botbtn" open-type="switchTab" url="/pages/cart/cart" hover-class="none">
-				<image src="/static/pages/images/gwc.png"></image>购物车<text class="message"
-					v-if="pro.count > 0">{{pro.count}}</text>
-			</navigator>
-			<block v-if="!activityEnd">
-				<block v-if="act.start">
-					<view :class="['addcart',act.start? '' : 'gray']" @tap="addShopCart">加入购物车</view>
-					<view class="gmbtnor mbglinear flot" @tap="atOnceBuy">{{pro.isOtc==1 ?'预约下单': '立即购买'}}</view>
-				</block>
-				<view v-else>
-					<!-- <view class="addcart flot" bindtap="addShopCart">加入购物车</view> -->
-					<view class="gmbtn1  flot" @tap="cancelActivityRemind" v-if="isRemind">
-						<icon class="ico">
-							<image src="/activity/static/activity/images/rednaozhong.png" class="background"></image>
-						</icon>
-						<text class="txt">取消提醒</text>
-					</view>
-					<view class="gmbtn mbglinear flot" @tap="addActivityRemind" v-else>
-						<icon class="ico">
-							<image src="/activity/static/activity/images/clock2.png" class="background"></image>
-						</icon>
-						<text class="txt">预约提醒</text>
-					</view>
-				</view>
-			</block>
-			<block v-else>
-				<view class="gmbtn mbggray">活动不存在</view>
-			</block>
-
-			<!-- <view class="addcart {{pro.state == 1 ? '' : 'gray'}}" bindtap="addShopCart">加入购物车</view>
-	<view class="gmbtn mbglinear" bindtap="atOnceBuy" wx:if="{{act.start}}">立即购买</view> -->
-			<!-- <view wx:if="{{false}}">
-		<view class="addcart flot" bindtap="addShopCart">加入购物车</view>
-	</view> -->
-		</view>
-
-		<!-- 商品规格 -->
-		<block v-if="isShow">
-			<product-popup :product="popup" :activityId="act.id" :is-cart="isCart" @hidePopup="hidePopup"
-				@addCartSuccess="addCartSuccess" :orderType="orderType" :merchant="merchant"
-				:merchant-id="query.merchantId" :shopId="query.shopId" :actId="act.actId" @getPor="getPor">
-			</product-popup>
-		</block>
-
-		<view class="contact_index" @tap="goTop">
-			<image src="/static/pages/images/backtop.png"></image>顶部
-		</view>
-		<!-- 添加到小店成功 -->
-		<view class="mask" :hidden="isHide" @tap="hidePop"></view>
-		<view class="suc" :hidden="isHide">
-			<image src="/static/pages/images/tjcg1.png" class="tjcg1"></image>
-			<image src="/static/pages/images/tjcg.png" class="tjcg"></image>
-			<text>快去我的小店看看吧</text>
-			<view class="shopcc dflex">
-				<view class="shop" @tap="showShare">分享推广</view>
-				<navigator :url="url" hover-class="none" class="shop" >我的小店</navigator>
-			</view>
-			<!-- <view class="share-btn dflex">
-				<button class="wxfriend dflex" open-type="share">
-					<image src="/static/pages/images/wechat.png"></image>
-					微信好友
-				</button>
-				<view class="wxposter dflex" @tap="generatePoster">
-					<image src="/static/pages/images/poster.png"></image>
-					生成海报
-				</view>
-			</view> -->
-			<image src="/static/pages/images/close2.png" class="suc-close" @tap="hidePop"></image>
-		</view>
-		<block v-if="isPopupLogin">
-			<product-login :about="about" @hidePopupLogin="hidePopupLogin"></product-login>
-		</block>
-	</view>
-</template>
-
-<script>
-	// product/xrzqDetails/xrzqDetails.js
-	const app = getApp();
-	const req = require("../../utils/request.js");
-	const utils = require("../../utils/util.js");
-	var QQMapWX = require("../../utils/qqmap.js");
-	const requsetmessage = require("../../utils/requestmessage.js");
-	const route = require("../../utils/route");
-	const api = require("../../utils/api");
-	import productFooter from "../../components/product_footer/index";
-	import productPopup from "../../components/product-popup/index";
-	import vShare from "../../components/share/share";
-	import productLogin from "../../components/product-login/index";
-
-	export default {
-		data() {
-			return {
-				bottomBlankHeight: app.globalData.isIPhoneX ? 68 : 0,
-				swiperCurrent: 0,
-				bannerUrls: [],
-				isShow: false,
-				pro: {},
-				timer: [],
-				orderType: '',
-				isRemind: false,
-				hideShare: true,
-				isCart: false,
-				codeUrl: '',
-				contentList: [{
-					pic: "/static/pages/images/bar.png",
-					name: '好风依旧',
-					time: '4秒前'
-				}, {
-					pic: "/static/pages/images/bar.png",
-					name: '杨鑫',
-					time: '20秒前'
-				}, {
-					pic: "/static/pages/images/bar.png",
-					name: '杨鑫',
-					time: '5秒前'
-				}],
-				isNotice: false,
-				user: true,
-				form: {
-					page: 1,
-					limit: 10
-				},
-				freshen: true //是否更新页面
-					,
-				current: "",
-				query: "",
-				imgs: "",
-				activityEnd: false,
-				act: "",
-				address: {},
-				popup: {},
-				params: "",
-				tabIndex: "",
-				guarantee: "",
-				is_open_comments: "",
-				merchant: "",
-				merchantId: "",
-				shopId: "",
-				nodes: "",
-				switch: true,
-				about: {},
-				allShow: false,
-				isHide: true,//添加小店成功弹窗
-				is_open_shop: '',//商户是否开启分销
-				ascription: false,//是否开启小店
-				isDistriUser: 0, // 判断用户是否是分销员 2为分销员
-				isPopupLogin: false
-			};
-		},
-
-		components: {
-			productFooter,
-			productPopup,
-			vShare,
-			productLogin
-		},
-		props: {},
-
-		/**
-		 * 生命周期函数--监听页面加载
-		 */
-		onLoad: function(options) {
-			this.query = options;
-			this.setData({
-				query: options
-			});
-
-			if (options.scene) {
-				this.scene = options.scene;
-			}
-
-			if (options.isShare) {
-				this.query.id = options.id;
-				this.query.acid = options.acid;
-				req.setStorage('pidCode', options.userId);
-				let params = {
-					userId: options.userId,
-					merchantId: options.merchantId ? options.merchantId : '',
-				}
-				this.bindUser(params);
-			}
-
-			// console.log(options);
-			// console.info(options);
-			setInterval(() => {
-				this.setData({
-					isNotice: true
-				});
-			}, 10000);
-		},
-
-		onUnload() {
-			if (this.timer) clearInterval(this.timer);
-		},
-
-		onShareAppMessage: function() {
-			let merchantId = '';
-			let path = '/activity/newbornDetails/newbornDetails?id=' + this.query.id + '&acid=' + this.query.acid +
-				'&isShare=' +
-				true;
-			// console.log(!req.getStorage('userInfo').id);
-
-			if (!req.getStorage('userInfo').id) {} else {
-				path += '&userId=' + req.getStorage('userInfo').id;
-			}
-
-			// console.log(this.query.merchantId);
-			let shopId = '';
-
-			if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-				path += '&merchantId=' + req.getStorage('MERCHANT').id;
-				merchantId = req.getStorage('MERCHANT').id;
-
-				if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-					path += '&shopId=' + req.getStorage('smallShop').id;
-					shopId = req.getStorage('smallShop').id;
-					merchantId = req.getStorage('smallShop').merchantDTO.id;
-				}
-			}
-			// console.log(path)
-			route.share(1, req.getStorage('userInfo').id, path, merchantId, shopId, 8, this.query.acid + '_' + this
-				.query.id);
-			return {
-				title: this.pro.title,
-				imageUrl: this.pro.pic,
-				path: path
-			}; // return {
-			//   title: this.data.pro.title,
-			//   imageUrl: this.data.pro.pic,
-			//   path: '/activity/newbornDetails/newbornDetails?id=' + this.query.id + '&acid=' + this.query.acid + '&isShare=' + true + '&userId=' + req.getStorage('userInfo').id+'&merchantId='+this.data.query.merchantId
-			// }
-		},
-
-		/**
-		 * 生命周期函数--监听页面初次渲染完成
-		 */
-		onReady: function() {},
-
-		/**
-		 * 生命周期函数--监听页面显示
-		 */
-		onShow: async function() {
-			let that = this
-			if (this.freshen) {
-				await this.loadCodeParams();
-				if(that.scene){
-					await that.bindUser(that.query);
-				}
-				this.getGuarantee().then(data => {
-					if (this.switch) {
-						api.getMerchant(this.query, req, data => {
-							that.loadDefaultAddress();
-							if (data == 1) {
-								api.locationShow()
-							} else {
-								that.getuserInfos(data);
-								if (data.type == 5) {
-									that.query.merchantId = data.merchantDTO.id
-									that.query.shopId = data.id
-								} else {
-									that.query.merchantId = data.id
-
-								}
-								if (req.getStorage('userInfo') && that.merchant.id != data.id) {
-									this.loadProudct();
-									let pages = getCurrentPages();
-									var prevPage = pages[pages.length - 2];
-									if (prevPage) {
-										prevPage.$vm.setData({
-											freshen: true
-										});
-									}
-								} else {
-									this.loadProudct();
-								}
-								that.merchant = data
-								// console.log(that.query.merchantId,"dddddd")
-							}
-						})
-					}
-				})
-				// this.loadDefaultAddress();
-			
-				this.newuser();
-				await this.browsRecound(this.query.id)
-			}
-
-		},
-
-		/**
-		 * 生命周期函数--监听页面隐藏
-		 */
-		onHide: function() {},
-
-		/**
-		 * 生命周期函数--监听页面卸载
-		 */
-		onUnload: function() {},
-
-		/**
-		 * 页面相关事件处理函数--监听用户下拉动作
-		 */
-		onPullDownRefresh: function() {},
-
-		/**
-		 * 页面上拉触底事件的处理函数
-		 */
-		onReachBottom: function() {},
-
-		onReachBottom() {
-			if (this.is_open_comments == 1 && this.tabIndex == 2) {
-				this.form.page++;
-				this.setData({
-					['form.page']: this.form.page
-				});
-				// this.selectComponent("#list").loadScore(this.current);
-				this.$refs.list.loadScore(this.current);
-			}
-		},
-
-		methods: {
-			bindUser(par){
-				let userInfo = req.getStorage('userInfo');
-				if(!userInfo){
-					// uni.login({
-					// 	success(res) {
-					// 		let params = {
-					// 			code: res.code,
-					// 			parentId: par.userId,
-					// 			merchantId: par.merchantId ? par.merchantId : par.shopId ? par.shopId : ''
-					// 		}
-					// 		return new Promise((resolve,reject)=>{
-					// 			req.postRequest('/api/v2/login', params, data => {
-					// 				resolve();
-					// 			});
-					// 		})
-					// 	}
-					// });
-					// this.isPopupLogin = true;
-					req.silenceLogin(par.userId, par.merchantId ? par.merchantId : par.shopId ? par.shopId : '');
-				}
-			},
-			click(e) {
-				// console.log(e)
-				this.hideShare = e
-			},
-			showShare() {
-				// #ifndef H5
-				req.isLogin().then(success => {
-					if (success) {
-						this.getCodeUrl()
-						this.setData({
-							hideShare: false
-						});
-					}
-				});
-				// #endif
-			},
-
-			/**
-			 * 轮播切换
-			 */
-			swiperChange({
-				detail
-			}) {
-				if (this.current == 0 && this.swiperCurrent > 1) {
-					//卡死时,重置current为正确索引
-					this.setData({
-						current: this.swiperCurrent
-					});
-				} else {
-					//正常轮转时,记录正确页码索引
-					this.setData({
-						swiperCurrent: detail.current
-					});
-				}
-			},
-
-			dotEvent(e) {
-				this.setData({
-					current: e.currentTarget.dataset.current
-				});
-			},
-
-			browsRecound(id) {
-				let from = {
-					bindId: id,
-					type: 8,
-					page: '/activity/newbornDetails/newbornDetails?id=' + this.query.id + '&acid=' + this.query.acid
-				}; //  if(this.query.scene){
-				//    from.shareType=12
-				//    from.page='/activity/seckillDetails/seckillDetails?id=' + this.query.id+'&acid=' + this.query.acid +'&scene='+this.query.scene
-				//    if(!this.data.params.merchantId){}else{
-				//      from.merchantId=this.data.params.merchantId
-				//    }
-				//    if(!this.data.params.shopId){}else{
-				//      from.shopId=this.data.params.shopId
-				//    }
-				//    if(!this.data.params.userId){}else{
-				//      from.uid=this.data.params.userId
-				//    }
-				//  }
-
-				if (this.query.isShare) {
-					from.shareType = 1;
-					from.page = '/activity/newbornDetails/newbornDetails?id=' + this.query.id + '&acid=' + this.query
-						.acid +
-						'&isShare=' + true;
-
-					if (!this.query.userId) {} else {
-						from.page += '&userId=' + this.query.userId;
-					}
-
-					if (!this.query.merchantId) {} else {
-						from.merchantId = this.query.merchantId;
-					}
-
-					if (!this.query.shopId) {} else {
-						from.shopId = this.query.shopId;
-					}
-
-					if (!this.query.userId) {} else {
-						from.uid = this.query.userId;
-					}
-				}
-
-				if (this.query.isShareTimeline) {
-					from.shareType = 2;
-					from.page = '/activity/newbornDetails/newbornDetails?id=' + this.query.id + '&acid=' + this.query
-						.acid +
-						'&isShareTimeline=' + true;
-
-					if (!this.query.userId) {} else {
-						from.page += '&userId=' + this.query.userId;
-					}
-
-					if (!this.query.merchantId) {} else {
-						from.merchantId = this.query.merchantId;
-					}
-
-					if (!this.query.shopId) {} else {
-						from.shopId = this.query.shopId;
-					}
-
-					if (!this.query.userId) {} else {
-						from.uid = this.query.userId;
-					}
-				}
-				return new Promise((resolve,reject)=>{
-					req.postRequest('/api/browse', from, data => {resolve()});
-				})
-			},
-			getPor: function(e) {
-				// console.log(e.detail, "qqqqq")
-				this.popup = e.detail
-				this.act.id = e.detail.actId
-			},
-
-			loadCodeParams() {
-				let _ts = this;
-
-				return new Promise((resolve, reject) => {
-					if (!_ts.scene) {
-						resolve();
-						return false;
-					}
-
-					req.getRequest('/api/code/params', {
-						scene: _ts.scene
-					}, data => {
-						if (data) {
-							this.query.id = data.scene.split('_')[0];
-							this.query.acid = data.scene.split('_')[1];
-							this.query.merchantId = data.scene.split('_')[2];
-							this.query.shopId = data.scene.split('_')[3];
-							this.query.userId = data.userId;
-							req.setStorage('pidCode', data.userId);
-						}
-						resolve();
-					});
-				});
-			},
-
-			getCodeUrl() {
-				let that = this; //获取小程序码
-				const query = this.query;
-				let scene = that.pro.id + '_' + query.acid;
-				if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-					scene += '_' + req.getStorage('MERCHANT').id;
-					if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-						scene += '_' + req.getStorage('smallShop').id;
-					}
-				}
-				// console.log(scene); //获取小程序码
-				const params = {
-					page: 'activity/newbornDetails/newbornDetails',
-					scene: scene
-				};
-				// console.log('ma--', params);
-				req.getRequest('/api/program/codev', params, url => {
-					that.setData({
-						codeUrl: url
-					});
-				});
-			},
-
-			async loadProudct() {
-				let that = this;
-				await that.loadActivity();
-				const query = that.query;
-				let isShowLoading = false;
-
-				if (!isShowLoading) {
-					req.loadIng('加载中');
-					isShowLoading = true;
-				}
-				req.getRequest('/api/product/detail', {
-					id: query.id
-				}, data => {
-					//富文本图片放大
-					that.nodes = data.detail;
-					let propertiesList = []
-					if (data.propertiesList && data.propertiesList.length > 0) {
-						data.propertiesList.map(it => {
-							propertiesList.push(it.value);
-						})
-					}
-					data.properties = propertiesList.join(' / ')
-					that.setData({
-						bannerUrls: data.images,
-						pro: data,
-						'pro.salePrice': this.act.money,
-						// 'pro.stock': this.act.quantity,
-						'pro.stock': this.act.quantity - this.act.payQuantity,
-						'pro.payQuantity': this.act.payQuantity,
-						'pro.maxBuy': this.act.maxBuy,
-						allShow: true
-					});
-					if (isShowLoading) {
-						uni.hideLoading();
-						isShowLoading = false;
-					}
-					// console.log(this.pro);
-					// that.getCodeUrl();
-				});
-			},
-
-			loadActivity() {
-				const query = this.query;
-				return new Promise((resolve, reject) => {
-					let from = {
-						id: query.acid
-					}
-					if (!this.query.merchantId) {} else {
-						from.merchantId = this.query.merchantId
-					}
-					let userInfo = req.getStorage('userInfo');
-					if(userInfo.listShopBase && userInfo.listShopBase.length >0 ){
-						from.shopId = userInfo.listShopBase[0].id;
-					}
-					req.getRequest('/api/activity/detail', from, data => {
-						// console.log(data);
-						this.getMy();
-						if (data.type == 1) {
-							this.setData({
-								orderType: 2
-							});
-						}
-
-						if (data.type == 2) {
-							this.setData({
-								orderType: 3
-							});
-						}
-
-						if (data.type == 4) {
-							this.setData({
-								orderType: 6
-							});
-						}
-
-						if (data.type == 5) {
-							this.setData({
-								orderType: 7
-							});
-						}
-
-						if (!data || data == 2001) {
-							this.setData({
-								activityEnd: true
-							});
-							return false;
-						} else {
-							this.setData({
-								act: data,
-								isRemind: data.remindId
-							});
-							this.initTimer(data);
-						}
-
-						resolve();
-					});
-				});
-			},
-			// 获取用户信息
-			getuserInfos(data) {
-				let userInfo = req.getStorage('userInfo');
-				if (userInfo && userInfo.listShopBase && userInfo.listShopBase != null && userInfo.listShopBase.length >
-					0) {
-					if (userInfo.listShopBase[0].merchant_id == data.id && data.type != 5) {
-						let url = '/mine/shop/shop?merchantId=' + userInfo.listShopBase[0].merchant_id + '&shopId=' + userInfo.listShopBase[0].id;
-						this.url = url;
-						this.ascription = true;
-					}
-				}
-			},
-			getMy() {
-				let that = this;
-				let userInfo = req.getStorage('userInfo');
-				if(!userInfo || userInfo == null) return false;
-				req.getRequest('/api/user/my', {}, data => {
-					that.isDistriUser = data.isDistriUser;
-				});
-			},
-
-			initTimer(group) {
-				//计时器
-				let _ts = this;
-
-				let nowTime = new Date(group.nowTime.replace(/-/g, '/')).getTime();
-				let startTime = new Date(group.startTime.replace(/-/g, '/')).getTime();
-				let endTime = new Date(group.endTime.replace(/-/g, '/')).getTime();
-				if (!group.start) endTime = startTime;
-				let times = parseInt((endTime - nowTime) / 1000);
-				// console.log(times / 60 / 60);
-				this.timer = setInterval(() => {
-					times--;
-
-					if (times <= 0) {
-						//重新加载列表
-						_ts.setData({
-							'act.end': true
-						});
-
-						return false;
-					}
-
-					let n = utils.formatDayTimes(times);
-
-					_ts.setData({
-						timer: n.split(/:|天/g)
-					});
-				}, 1000);
-			},
-
-			loadDefaultAddress() {
-				if (req.isAuth()) {
-					req.g('/api/address/default', data => {
-						if (data) this.setData({
-							address: data
-						});
-						else this.pointLocation();
-					}, true);
-				} else {
-					this.pointLocation();
-				}
-			},
-
-			toAddress() {
-				app.globalData.openPage('mine/address/address');
-			},
-
-			toMerchant() {
-				if (this.about.User_Limit_Store == 1) {
-
-				} else {
-					app.globalData.openPage('pages/nearby/nearby?isChoose=true');
-				}
-			},
-
-			toactive() {
-				app.globalData.openPage('pages/nearby/nearby');
-			},
-
-			pointLocation() {
-				//定位当前位置
-				let _ts = this;
-
-				QQMapWX.initMap();
-				req.getLocation(res => {
-					QQMapWX.reverseGeocoder(res, data => {
-						_ts.setData({
-							['address.address']: data.address
-						});
-					});
-				});
-			},
-			addCartSuccess(event) {
-				this.setData({
-					'pro.count': parseInt(this.pro.count) + parseInt(event.detail.quantity),
-					isShow: false
-				});
-			},
-
-			atOnceBuy() {
-				// //立即购买
-				if (!this.user) return req.msg('您不是新用户');
-				if (!this.act.start) return req.msg('活动还未开始');
-				if (this.act.end) return req.msg('活动已结束');
-				// this.setData({ isShow: true, isCart: false, popup: this.data.product });
-
-				this.setData({
-					isShow: true,
-					isCart: false,
-					popup: {
-						id: this.pro.id,
-						pic: this.pro.pic,
-						title: this.pro.title,
-						salePrice: this.act.money,
-						stock: this.pro.stock,
-						paramsId: this.pro.paramsId,
-						marketPrice: this.pro.marketPrice,
-						skuId: this.pro.skuId
-					}
-				});
-			},
-
-			/**
-			 * 判断是否为新用户,不是,2秒后为用户跳转至该商品的详情页面
-			 */
-			newuser() {
-				var id = this.query.id;
-
-				if (req.getStorage('userInfo')) {
-					req.postRequest('/api/order/isnew', {}, res => {
-						if (res == 'false') {
-							this.setData({
-								user: false
-							});
-							// wx.showToast({
-							//   title: '您不是新用户,两秒后将为您跳转至该商品页面',
-							//   icon: 'none',
-							//   success: function () {
-							//     setTimeout(function () {
-							//       wx.redirectTo({ url: '/product/detail/detail?id=' + id })
-							//     }, 2000);
-							//   }
-							// })
-						}
-
-						// console.log(res);
-					});
-				}
-			},
-
-			addShopCart() {
-				if (!this.user) return req.msg('您不是新用户');
-				if (this.act.end) return req.msg('活动已结束');
-				this.setData({
-					isShow: true,
-					isCart: true,
-					popup: {
-						id: this.pro.id,
-						pic: this.pro.pic,
-						title: this.pro.title,
-						salePrice: this.act.money,
-						stock: this.pro.stock,
-						paramsId: this.pro.paramsId,
-						marketPrice: this.pro.marketPrice,
-						skuId: this.pro.skuId
-					}
-				});
-			},
-
-			clickCollect() {
-				let _ts = this;
-
-				req.postRequest('/api/collect', {
-					bindId: this.pro.id,
-					type: 1
-				}, data => {
-					_ts.setData({
-						'pro.isCollect': !_ts.pro.isCollect
-					});
-				});
-			},
-
-			goTop: function(e) {
-				// 一键回到顶部
-				if (uni.pageScrollTo) {
-					uni.pageScrollTo({
-						scrollTop: 0
-					});
-				} else {
-					uni.showModal({
-						title: '提示',
-						content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
-					});
-				}
-			},
-
-			onShareTimeline() {
-				let merchantId = '';
-				let path = 'id=' + this.query.id + '&acid=' + this.query.acid + '&isShareTimeline=' + true;
-
-				if (!req.getStorage('userInfo').id) {} else {
-					path += '&userId=' + req.getStorage('userInfo').id;
-				}
-
-				// console.log(this.merchantId);
-				let shopId = '';
-
-				if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-					path += '&merchantId=' + req.getStorage('MERCHANT').id;
-					merchantId = req.getStorage('MERCHANT').id;
-
-					if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-						path += '&shopId=' + req.getStorage('smallShop').id;
-						shopId = req.getStorage('smallShop').id;
-						merchantId = req.getStorage('smallShop').merchantDTO.id;
-					}
-				}
-
-
-				let url = '/activity/newbornDetails/newbornDetails?' + path;
-				route.share(2, req.getStorage('userInfo').id, url, merchantId, shopId, 8, this.query.acid + '_' + this
-					.query.id);
-				return {
-					title: this.pro.title,
-					query: path,
-					imageUrl: this.pro.pic
-				}; // return {
-				//   title: this.data.pro.title,
-				//   imageUrl: this.data.pro.pic
-				// }
-			},
-
-			hidePopup() {
-				this.setData({
-					isShow: false
-				});
-			},
-			hidePopupLogin(data) {
-				this.isPopupLogin = false;
-			},
-
-			addActivityRemind() {
-				// if (!this.data.user) return req.msg('您不是新用户')
-				// 订阅调用
-
-				req.postRequest('/api/activity/remind', {
-					activityId: this.act.id
-				}, res => {
-					requsetmessage.remind();
-					req.msg('预约成功');
-					this.setData({
-						isRemind: true
-					});
-				});
-			},
-
-			cancelActivityRemind(event) {
-				if (req.header.appId == 'ZQ1VK5oc17I387E') {
-
-				} else {
-					req.postRequest('/api/activity/cancel/remind', {
-						id: this.act.id
-					}, res => {
-						req.msg('取消预约成功');
-						this.setData({
-							isRemind: false
-						});
-					});
-				}
-			},
-
-			showTab: function(e) {
-				this.setData({
-					tabIndex: e.detail
-				});
-			},
-			scoreTab: function(e) {
-				this.form.page = 0;
-				this.setData({
-					current: e.detail,
-					['form.page']: 1
-				});
-			},
-			freshenFun: function(e) {
-				this.setData({
-					freshen: e.detail
-				});
-			},
-
-			// 获取品种保证
-			getGuarantee() {
-				return new Promise((data, rej) => {
-					req.getRequest('/api/config', {}, res => {
-						req.setStorage("configRes", JSON.stringify(res))
-						this.about = res
-						data(res)
-						if (this.merchant && this.merchant.isDefault == 1 || this.query.acid) {
-							// 切割;拿到数组,然后在过滤掉空值
-							if (res.b2c_service_guarantee && res.b2c_service_guarantee != null) {
-								this.setData({
-									guarantee: res.b2c_service_guarantee.split(";").filter(it => {
-										return it = it && it.trim();
-									})
-								});
-							}
-						} else {
-							if (res.o2o_service_guarantee && res.b2c_service_guarantee != null) {
-								this.setData({
-									guarantee: res.o2o_service_guarantee.split(";").filter(it => {
-										return it = it && it.trim();
-									})
-								});
-							}
-						} // if(res.Is_Store_Price_Stock){
-						//   this.setData({Is_Store_Price_Stock:res.Is_Store_Price_Stock})
-						// }
-						if (res.is_open_shop) {
-							this.is_open_shop = res.is_open_shop;
-						}
-
-						if (res.is_open_comments) {
-							this.setData({
-								is_open_comments: res.is_open_comments
-							});
-						} // this.setData({ show_membership_price: res.show_membership_price, Is_Store_Price_Stock: res.Is_Store_Price_Stock, is_open_shop: res.is_open_shop })
-
-					});
-				})
-			},
-			// 是否开启小店
-			isShop() {
-				if (req.getStorage('distribution')) {
-					dist = req.getStorage('distribution')
-					this.setData({
-						distr: dist
-					})
-					console.log(dist)
-					if (dist.distributionSmallShopOpen == 1) {
-						req.postRequest('/api/shopBase/isOpenShop', {}, data => {
-							this.setData({
-								isshop: data
-							})
-							console.log(data)
-						})
-					}
-				}
-			},
-			addShop() { //添加到小店
-				req.postRequest('/api/shopProduct/save', {
-					productId: this.act.id,
-					type: 6
-				}, data => {
-					this.act.isJoinShop = true;
-					this.isHide = false;
-				})
-			},
-			hidePop() { //添加到小店
-				this.setData({
-					isHide: true
-				})
-			},
-
-		}
-	};
-</script>
-<style>
-	@import "./newbornDetails.css";
-</style>

+ 0 - 57
activity/newbornZone/newbornZone.css

@@ -1,57 +0,0 @@
-/* product/newbornZone/newbornZone.wxss */
-page{
-  background: #6254EB;
-}
-.banner{
-  height: 475rpx;
-}
-.background {
-  width: 100%;
-  position:absolute; 
-  background-size:100% 100%;
-  z-index: -1;
-  /* background-attachment:fixed; */
-}
-.conunt {
-  width: 710rpx;
-  margin: 0 auto;
-  position: absolute;
-  /* position: fixed; */
-  top: 380rpx;
-  /* left: 20rpx; */
-  left: 50%;
-  transform: translateX(-50%);
-}
-
-.conunt .li {
-  height: 240rpx;
-  padding: 20rpx;
-  border-radius: 25rpx;
-  background-color: #FFFFFF;
-  margin-bottom: 16rpx;
-  overflow: hidden;
-  display: flex;
-  justify-content: space-between;}
-.conunt .li .flex {overflow: hidden;margin-left: 20rpx;}
-.proimg {width: 220rpx;height: 220rpx;border-radius: 12rpx;margin-top: 10rpx;}
-.proname {font-size: 28rpx;color: #333;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;}
-.endtime {display: inline-block;height: 32rpx;line-height: 32rpx;border-radius: 6rpx;font-size: 24rpx;margin: 16rpx 0 0 0;  letter-spacing:2rpx}
-.black{font-size: 24rpx;color: #333333;}
-.red{color: #FE0419; font-size: 26rpx;}
-.operate {justify-content: space-between;align-items: center;}
-.price {font-size: 24rpx; color: red;}
-.price .pce {font-size: 38rpx;color: red;font-weight: bold;}
-.price .del {font-weight: normal;font-size: 24rpx;color: #999999;margin-left: 12rpx;text-decoration: line-through;}
-.add-cart {width: 150rpx;height: 50rpx;border-radius: 25rpx;background-image: linear-gradient(to right, #FE934C, #FD3A31);text-align: center;line-height: 50rpx;color: #FFFFFF;font-size: 24rpx;}
-.progress-box {justify-content: left;display: flex;color: #999999;font-size: 24rpx;margin-top: 13rpx;}
-.progress-box text{color: #999999;font-size: 24rpx;margin-left: 10rpx;}
-.progress {width: 230rpx;}
-.tp{margin: 16rpx 0 70rpx;}
-.add-cart .order{float:left;margin-left: 8rpx;}
-.add-cart .or{margin-left: 28rpx;color: #FE0419;}
-.add-cart1{width: 150rpx;height: 50rpx;border-radius: 25rpx;border: 2rpx solid #FE0419;text-align: center;line-height: 50rpx;color: #FE0419;font-size: 24rpx;}
-.nosp{color: #FFFFFF;}
-.add-cart image{width: 24rpx;height: 24rpx;margin-left: 35rpx;margin-top: 13rpx;float: left;}
-.yuyue{margin: 90rpx 0 0 0;}
-.noyuyue{margin: 50rpx 0 0 0;}
-.nosp text{color: #FFFFFF !important;}

+ 0 - 310
activity/newbornZone/newbornZone.vue

@@ -1,310 +0,0 @@
-<template>
-<view>
-<!--product/newbornZone/newbornZone.wxml-->
-<view class="banner">
-	<image src="/activity/static/activity/images/nbzbg.png" class="background"></image>
-</view>
-<view class="conunt" v-if="activityGroup.length > 0">
-	<view v-for="(item, index) in activityGroup" :key="index" class="li" :data-index="index">
-		<image :src="item.pic + '?x-oss-process=style/w210'" mode="aspectFit" class="proimg" :data-index="index" @tap="toGroupRemind" lazy-load="true"></image>
-		<view class="flex">
-			<view class="proname" :data-index="index" @tap="toGroupRemind">
-				{{item.productName}}
-			</view>
-			<view class="progress-box" v-if="item.payQuantity">
-				<progress stroke-width="8" color="red" :percent="item.num" border-radius="25rpx" backgroundColor="#FFB2B8" class="progress" v-if="item.payQuantity"></progress><text>已抢{{item.payQuantity}}</text>
-			</view>
-			<view class="progress-box" v-if="item.makePerson">
-				<progress stroke-width="8" color="red" :percent="item.makePerson" border-radius="25rpx" backgroundColor="#FFB2B8" class="progress" v-if="item.makePerson"></progress><text>已{{item.makePerson}}人预约</text>
-			</view>
-			<view class="endtime" :data-index="index" @tap="toGroupRemind"><text class="black">{{item.start ? '距结束' : '距开始'}}</text><text class="red">{{item.times}}</text></view>
-			<view :class="'operate dflex ' + (item.payQuantity?'noyuyue':'yuyue')" v-if="item.start">
-				<view class="price proprice" :data-index="index" @tap="toGroupRemind">¥<text class="pce">{{item.money}}</text><text class="del">¥{{item.marketPrice}}</text></view>
-				<view class="add-cart" :data-index="index" @tap="toGroupRemind">
-					立即抢购
-				</view>
-			</view>
-			<view :class="'operate dflex ' + (item.makePerson?'noyuyue':'yuyue')" v-else>
-				<view class="price proprice" :data-index="index" @tap="toGroupRemind">¥<text class="pce">{{item.money}}</text><text class="del">¥{{item.marketPrice}}</text></view>
-				<view :class="(item.isRemind?'add-cart1':'add-cart') + ' car'">
-					<image src="/activity/static/activity/images/clock2.png" v-if="!item.isRemind"></image>
-					<view class="order or" @tap="cancelActivityRemind" :data-index="index" :data-id="item.id" v-if="item.isRemind">取消预约</view>
-					<view class="order" @tap="addActivityRemind" :data-index="index" :data-id="item.id" v-else>预约</view>
-				</view>
-			</view>
-		</view>
-	</view>
-	<!-- <view class="nomore dflex">亲,没有更多了</view> -->
-</view>
-<view class="nodata nosp" v-if="ishow">
-	<image :src="picUrlss+'empty_sp.png'"></image>
-	<text >暂无商品</text>
-</view>
-</view>
-</template>
-
-<script>
-// product/newbornZone/newbornZone.js
-const req = require("../../utils/request.js");
-const utils = require("../../utils/util.js");
-const requsetmessage = require("../../utils/requestmessage.js");
-const app = getApp();
-
-export default {
-  data() {
-    return {
-		picUrlss: req.public.picUrls,
-      form: {
-        page: 1,
-        limit: 10,
-        type: 4
-      },
-      page: 1,
-      isLoad: true,
-      newuser: true,
-      activityGroup: [],
-      query: "",
-      ishow: false,
-      user: false
-    };
-  },
-
-  components: {},
-  props: {},
-
-  /**
-   * 生命周期函数--监听页面加载
-   */
-  onLoad: function (options) {
-    this.query = options;
-    this.setData({
-      query: options
-    }); // this.newuser()
-  },
-
-  /**
-   * 生命周期函数--监听页面显示
-   */
-  onShow: function () {
-    this.isLoad = true;
-    this.form.page = 1; // this.data.activityGroup=[]
-
-    this.setData({
-      activityGroup: []
-    });
-    // console.log(this.activityGroup);
-    this.loadGroup();
-  },
-
-  onReachBottom() {
-    this.form.page++;
-    this.loadGroup();
-  },
-
-  onHide() {
-    this.clearAllTimer();
-  },
-
-  methods: {
-    /**
-     * 获取商品列表
-     */
-    loadGroup() {
-      let isShowLoading = false;
-
-      if (this.form.page == 1 && !isShowLoading) {
-        req.loadIng('加载中');
-        isShowLoading = true;
-      }
-
-      let _ts = this;
-
-      // console.log(this.isLoad);
-      if (!this.isLoad) return false;
-      this.isLoad = false;
-      let from = this.form;
-
-      if (this.query.merchantId) {
-        from.merchantId = this.query.merchantId;
-      } else if (req.getStorage('MERCHANT')) {
-        from.merchantId = req.getStorage('MERCHANT').id;
-      }
-
-      req.getRequest('/api/activity/list', from, data => {
-        if (data && data.length == 10) this.isLoad = true;
-        data = data.map(it => {
-          it.isRemind = it.remindId, it.num = it.payQuantity / it.quantity * 100;
-          return it;
-        });
-        if (_ts.form.page > 1) data = _ts.activityGroup.concat(data);
-
-        _ts.setData({
-          activityGroup: data
-        });
-
-        // console.log(this.activityGroup);
-
-        if (this.activityGroup.length <= 0) {
-          _ts.setData({
-            ishow: true
-          });
-        } else {
-          _ts.setData({
-            ishow: false
-          });
-        }
-
-        if (isShowLoading) {
-          uni.hideLoading();
-          isShowLoading = false;
-        } // this.clearAllTimer();
-
-
-        _ts.initGroupTimer();
-
-        // console.log(this.activityGroup);
-      });
-    },
-
-    initGroupTimer() {
-      //社区拼图定时器
-      let _ts = this;
-
-      if (this.activityGroup && this.activityGroup.length > 0) {
-        let activityGroup = this.activityGroup;
-        const initPage = (parseInt(this.form.page) - 1) * 10;
-
-        for (let i = initPage, len = activityGroup.length; i < len; i++) {
-          let group = activityGroup[i];
-          let nowTime = new Date(group.nowTime.replace(/-/g, '/')).getTime();
-          let startTime = new Date(group.startTime.replace(/-/g, '/')).getTime();
-          let endTime = new Date(group.endTime.replace(/-/g, '/')).getTime();
-          if (!group.start) endTime = startTime;
-          let times = parseInt((endTime - nowTime) / 1000);
-          let timer = setInterval(() => {
-            times--;
-            let data = {};
-
-            if (times === 0) {
-              //重新加载列表
-              data['activityGroup[' + i + '].end'] = true;
-              clearInterval(timer);
-            } else {
-              let n = utils.formatDayTimes(times);
-              data['activityGroup[' + i + '].times'] = n;
-            }
-
-            _ts.setData(data);
-          }, 1000);
-          let fs = [];
-          fs['activityGroup[' + i + '].timer'] = timer;
-
-          _ts.setData(fs);
-        }
-      }
-    },
-
-    /**
-     * 
-     * 点击li获取商品详情
-     */
-    toGroupRemind(event) {
-      const index = event.currentTarget.dataset.index;
-      // console.log(event);
-      const activity = this.activityGroup[index];
-      let merchantId;
-
-      if (this.query.merchantId) {
-        merchantId = this.query.merchantId;
-      } else if (req.getStorage('MERCHANT')) {
-        merchantId = req.getStorage('MERCHANT').id;
-      }
-	  let url='activity/newbornDetails/newbornDetails?acid=' + activity.id + "&id=" + activity.productId
-	  
-	  if(!merchantId){
-		  
-	  }else{
-		  url +="&merchantId=" + merchantId
-	  }
-
-      app.globalData.openPage(url); // console.log('acid', activity.id)
-      // console.log('productId', activity.productId)
-    },
-
-    /**
-     * 活动产品预约
-     */
-    addActivityRemind(event) {
-      // if (!this.data.user) return req.msg('您不是新用户')
-      const index = event.currentTarget.dataset.index;
-      const id = event.currentTarget.dataset.id; // 订阅调用
-
-      
-      req.postRequest('/api/activity/remind', {
-        activityId: id
-      }, res => {
-		  this.requsetmessage.remind();
-        req.msg('预约成功');
-        let data = {};
-        data['activityGroup[' + index + '].isRemind'] = true;
-        this.setData(data);
-      });
-    },
-
-    cancelActivityRemind(event) {
-      const index = event.currentTarget.dataset.index;
-      const id = event.currentTarget.dataset.id;
-	  if(req.header.appId=='ZQ1VK5oc17I387E'){
-	  		  
-	  }else{
-		req.postRequest('/api/activity/cancel/remind', {
-		  id: id
-		}, res => {
-		  req.msg('取消预约成功');
-		  let data = {};
-		  data['activityGroup[' + index + '].isRemind'] = false;
-		  this.setData(data);
-		});  
-	  }
-    },
-
-    clearAllTimer() {
-      this.activityGroup.forEach(it => {
-        clearInterval(it.timer);
-        clearInterval(it.times);
-      });
-    },
-
-    /**
-     * 判断是否为新用户,不是,2秒后为用户跳转至该商品的详情页面
-     */
-    newuserFun() {
-      id = this.query.id;
-      req.postRequest('/api/order/isnew', {}, res => {
-        if (res == 'false') {
-          this.setData({
-            user: false
-          });
-          uni.showToast({
-            title: '您不是新用户,两秒后将为您跳转至该商品页面',
-            icon: 'none',
-            success: function () {
-              setTimeout(function () {
-                uni.redirectTo({
-                  url: '/product/detail/detail?id=' + id
-                });
-              }, 2000);
-            }
-          });
-        }
-
-        // console.log(res);
-      });
-    }
-
-  }
-};
-</script>
-<style>
-@import "./newbornZone.css";
-</style>

+ 0 - 123
activity/seckill/seckill.css

@@ -1,123 +0,0 @@
-/* product/seckill/seckill.wxss */
-
-.seckill {
-  width: 100%;
-  height: 100%;
-  font-size: 24rpx;
-}
-
-.top {
-  height: 352rpx;
-  width: 100%;
-
-}
-.background {
-  width: 100%;
-  height: 352rpx;
-  position:absolute; 
-  background-size:100% 100%;
-  /*  #ifndef  H5  */
-  z-index: -1;
-   /*  #endif   */
-}
-.tab {
-  padding:35rpx 0;
-  /* height: 100rpx; */
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-}
-
-.tab .logo {
-  width: 100rpx;
-  height: 100rpx;
-  float: left;
-}
-
-/* .tab .li {
-  color: #999;
-  text-align: center;
-  color: #FCBDC9;
-  height:100rpx;
-  line-height: 53rpx;
-  float: left;
-} */
-
-/* .tab .li text{
-  width: 152rpx;
-  font-weight: bold;
-  font-size: 26rpx;
-} */
-
-.times .li.active {
-  color: #FFFFFF;
-  font-size: 32rpx;
-}
-.weight{
-  font-weight: bold;
-}
-.times .bg {
-  background-color: #FFFFFF;
-  color: #FE0419 !important;
-}
-
-.times .state {
-  width: 100rpx;
-  height: 36rpx;
-  border-radius: 25rpx;
-  color: #FCBDC9;
-  text-align: center;
-  font-size: 24rpx;
-  line-height: 36rpx;
-  margin: auto;
-  margin-top: 3rpx;
-}
-
-.conunt {
-  width: 710rpx;
-  margin: 0 auto;
-  position: absolute;
-  top: 14%;
-  left: 20rpx;
-}
-
-.conunt .li {
-  height: 240rpx;
-  padding: 20rpx;
-  border-radius: 25rpx;
-  background-color: #FFFFFF;
-  margin-bottom: 16rpx;
-  overflow: hidden;
-  display: flex;
-  justify-content: space-between;}
-.conunt .li .flex {overflow: hidden;margin-left: 20rpx;}
-.proimg {width: 220rpx;height: 220rpx;border-radius: 12rpx;margin-top: 10rpx;}
-.proname {font-size: 28rpx;color: #333;line-height: 36rpx;height: 72rpx;/* text-overflow: ellipsis;white-space: nowrap; */overflow: hidden;}
-.endtime {display: inline-block;height: 32rpx;line-height: 32rpx;border-radius: 6rpx;font-size: 24rpx;margin: 16rpx 0 0 0;letter-spacing:2rpx}
-.black{font-size: 24rpx;color: #333333;}
-.tp{margin: 16rpx 0 70rpx;}
-.red{color: #FE0419;}
-.operate {justify-content: space-between;align-items: center;}
-.price {font-size: 24rpx; color: red;}
-.price .pce {font-size: 38rpx;color: red;font-weight: bold;}
-.price .del {font-weight: normal;font-size: 24rpx;color: #999999;margin-left: 12rpx;text-decoration: line-through;}
-.add-cart {width: 150rpx;height: 50rpx;border-radius: 25rpx;background-image: linear-gradient(to right, #FF5D5D, #FE0419);text-align: center;line-height: 50rpx;color: #FFFFFF;font-size: 24rpx;}
-.add-cart1{width: 150rpx;height: 50rpx;border-radius: 25rpx;border: 2rpx solid #FE0419;text-align: center;line-height: 50rpx;color: #FE0419;font-size: 24rpx;}
-.car{margin-top: -24rpx;}
-.progress-box {justify-content: left;display: flex;color: #999999;font-size: 24rpx;margin-top: 13rpx;}
-.progress-box text{color: #999999;font-size: 24rpx;margin-left: 10rpx;}
-.progress {width: 230rpx;}
-.add-cart image{width: 24rpx;height: 24rpx;margin-left: 35rpx;margin-top: 13rpx;float: left;}
-.add-cart .order{float:left;margin-left: 8rpx;}
-.add-cart .or{margin-left: 28rpx;color: #FE0419;}
-.date{font-size: 24rpx;color: #333;}
-.hour{font-size: 24rpx;color: #FE0419;}
-.yuyue{margin: 54rpx 0 0 0;}
-.noyuyue{margin: 30rpx 0 0 0;}
-
-.times{ flex: 1;}
-.times .li{width: 20%;text-align: center;font-size: 20rpx;color: #999;position: relative;}
-.times .li::before{content: '';display: block;width: 2rpx;height: 61rpx;background: #D2D2D2;position: absolute;left: 0;bottom: 5rpx;}
-.times .li:first-child::before{display: none;}
-.times .li text{display: block;font-size: 29rpx;color: #333;margin-bottom: 5rpx;}
-/* .times .li.active,.times .li.active text{color: #FE0419;} */

+ 0 - 585
activity/seckill/seckill.vue

@@ -1,585 +0,0 @@
-<template>
-	<!--product/seckill/seckill.wxml-->
-	<view class="seckill">
-		<view class="top">
-			<image src="/activity/static/activity/images/seckillbg.png" class="background"></image>
-			<view class=" tab">
-				<image src="/activity/static/activity/images/seckill.png" class="logo"></image>
-				<view class="times dflex">
-					<view v-for="(item, index) in TabList" :key="index"
-						:class="'li ' + (item.active ? 'active' : '') + ' left'" :data-index="index" @tap="switchTab">
-						<text :class="item.active ? 'weight' : ''">{{item.label}}</text>
-						<view :class="'state ' + (item.active? 'bg' :'')">{{item.state}}</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="conunt" v-if="activityGroup.length > 0">
-			<view v-for="(item, index) in activityGroup" :key="index" class="li" :data-index="index">
-				<image :src="item.pic + '?x-oss-process=style/w210'" lazy-load="true" mode="aspectFit" class="proimg"
-					:data-index="index" @tap="toGroupRemind"></image>
-				<view class="flex">
-					<view class="proname" :data-index="index" @tap="toGroupRemind">
-						{{item.productName}}
-					</view>
-					<view class="progress-box" v-if="item.payQuantity&&item.start">
-						<progress stroke-width="8" color="red" :percent="item.num" border-radius="25rpx"
-							backgroundColor="#FFB2B8" class="progress"
-							v-if="item.payQuantity"></progress><text>已抢{{item.payQuantity}}</text>
-					</view>
-					<view class="progress-box" v-if="item.makePerson&&!item.start">
-						<progress stroke-width="8" color="red" :percent="item.makePerson" border-radius="25rpx"
-							backgroundColor="#FFB2B8" class="progress"
-							v-if="item.makePerson"></progress><text>已{{item.makePerson}}人预约</text>
-					</view>
-					<view class="endtime " :data-index="index" @tap="toGroupRemind" v-if="item.start"><text
-							class="black">{{item.start ? '距结束' : '距开始'}}</text><text class="red">{{item.times}}</text>
-					</view>
-					<view class="endtime" :data-index="index" @tap="toGroupRemind" v-else>
-						<text class="date">{{item.date}}</text>
-						<text class="hour">{{item.hour}}</text>
-						<text class="date">开始</text>
-					</view>
-					<view :class="'operate dflex ' + (item.payQuantity?'noyuyue':'yuyue')" v-if="item.start">
-						<view class="price proprice" :data-index="index" @tap="toGroupRemind">¥<text
-								class="pce">{{item.money}}</text><text class="del"
-								v-if="item.marketPrice!=0&&item.money<item.marketPrice">¥{{item.marketPrice}}</text>
-						</view>
-						<view class="add-cart" :data-index="index" @tap="toGroupRemind">
-							立即抢购
-						</view>
-					</view>
-					<view :class="'operate dflex ' + (item.makePerson?'noyuyue':'yuyue')" v-else>
-						<view class="price proprice" :data-index="index" @tap="toGroupRemind">¥<text
-								class="pce">{{item.money}}</text><text class="del">¥{{item.marketPrice}}</text></view>
-						<view :class="(item.isRemind?'add-cart1':'add-cart') + ' car'">
-							<image src="/activity/static/activity/images/clock2.png" v-if="!item.isRemind"></image>
-							<view class="order or" @tap="cancelActivityRemind" :data-index="index" :data-id="item.id"
-								v-if="item.isRemind">取消预约</view>
-							<view class="order" @tap="addActivityRemind" :data-index="index" :data-id="item.id" v-else>
-								预约</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="nodata" v-if="ishow">
-			<image :src="picUrlss+'empty_sp.png'"></image>
-			<text>暂无商品</text>
-		</view>
-	</view>
-</template>
-
-<script>
-	// product/seckill/seckill.js
-	const app = getApp();
-	const req = require("../../utils/request.js");
-	const utils = require("../../utils/util.js");
-	const requsetmessage = require("../../utils/requestmessage.js");
-
-	export default {
-		data() {
-			return {
-				picUrlss: req.public.picUrls,
-				TabList: [{
-					label: '今天',
-					active: true,
-					state: "抢购中",
-					dayType: 1,
-					time: ''
-				}, {
-					label: '明天',
-					state: "预热中",
-					active: false,
-					time: '',
-					dayType: 2
-				}, {
-					label: '后天',
-					state: "预热中",
-					dayType: 3,
-					time: ''
-				}, {
-					label: '',
-					state: "预热中",
-					dayType: 4,
-					active: false,
-					time: ''
-				}, {
-					label: '',
-					state: "预热中",
-					dayType: 5,
-					active: false,
-					time: ''
-				}],
-				form: {
-					page: 1,
-					limit: 10,
-					type: 2,
-					dayType: 1
-				},
-				isRemind: false,
-				page: 1,
-				isLoad: true,
-				dayType: '',
-				activityGroup: [],
-				ishow: false,
-				activityGroupAll: "",
-				hasmore: ""
-			};
-		},
-
-		components: {},
-		props: {},
-
-		/**
-		 * 生命周期函数--监听页面加载
-		 */
-		onLoad: function(options) {
-			// this.loadGroupAll();
-			this.query = options;
-			// this.getTime();//给tab添加动态时间
-			this.initTab();//初始化tab时间
-			this.loadGroupAll(); // this.setData({TabList[3].label:})
-			// this.laterDay(4)[2]
-		},
-		onReady: function() {},
-
-		/**
-		 * 生命周期函数--监听页面显示
-		 */
-		onShow: function() {
-			// this.isLoad = true;
-			this.form.page = 1; // this.setData({activityGroup:[]})
-		},
-
-		/**
-		 * 生命周期函数--监听页面隐藏
-		 */
-		onHide: function() { // this.clearAllTimer();
-			// let def = this.data.TabList.findIndex(it => it.active);
-			// let d={}
-			// d[`TabList[${def}].active`] = false;
-			// this.setData(d);
-		},
-
-		/**
-		 * 生命周期函数--监听页面卸载
-		 */
-		onUnload: function() { // this.clearAllTimer();
-		},
-
-		/**
-		 * 页面相关事件处理函数--监听用户下拉动作
-		 */
-		onPullDownRefresh: function() {},
-
-		/**
-		 * 页面上拉触底事件的处理函数
-		 */
-		onReachBottom: function() {
-			// this.setData({})
-			this.form.page++;
-
-			this.loadGroupAll(1); // this.clearAllTimer();
-			// console.log(this.form.page)
-		},
-
-
-		methods: {
-			fun_data(aa){
-				var date1 = new Date(),
-				time1=date1.getFullYear()+"-"+(date1.getMonth()+1)+"-"+date1.getDate();//time1表示当前时间
-				var date2 = new Date(date1);
-				date2.setDate(date1.getDate()+aa);
-				// var time2 = date2.getFullYear()+"-"+(date2.getMonth()+1)+"-"+date2.getDate();
-				var time2 = (date2.getMonth()+1)+"月"+date2.getDate() + "日";
-				return time2;
-			},
-			// 初始化tab导航
-			initTab(){
-				let tabList = this.TabList;
-				tabList[3].label = this.fun_data(4);
-				tabList[4].label = this.fun_data(5);
-			},
-			/**
-			 * 
-			 * 设置tab导航
-			 */
-			switchTab(event) {
-				let index = event.currentTarget.dataset.index;
-				let def = this.TabList.findIndex(it => it.active);
-				let d = {};
-				// console.log(index, def);
-				d[`TabList[${def}].active`] = false;
-				d[`TabList[${index}].active`] = true;
-				// console.log(d);
-				this.isLoad = true;
-				this.form.page = 1;
-				d['pageList'] = [];
-				this.form.dayType = this.TabList[index].dayType;
-				this.setData(d);
-				this.loadGroupAll(1);
-				this.clearAllTimer(); // this.getDate()
-			},
-			/**
-			 * 获取所有产品列表
-			 */
-			loadGroupAll(type) {
-				// console.log(this.isLoad)
-				let isShowLoading = false;
-
-				if (this.form.page == 1 && !isShowLoading) {
-					req.loadIng('加载中');
-					isShowLoading = true;
-				}
-				if (!this.isLoad) return false;
-				this.isLoad = false;
-				let _ts = this;
-				let from = this.form
-				if (this.query.merchantId) {
-					from.merchantId = this.query.merchantId;
-				} else if (req.getStorage('MERCHANT')) {
-					from.merchantId = req.getStorage('MERCHANT').id;
-				}
-				req.getRequest('/api/activity/list', from, res => {
-					if (res && res.length == 10) _ts.isLoad = true;
-					if (from.page > 1) res = _ts.activityGroup.concat(res);
-					let data = res;
-					// var data = res.map(it => {
-					// 	var allTime = this.getDate(it.startTime);
-					// 	it.isRemind = it.remindId, it.num = it.sellStock / it.quantity * 100, it.date =
-					// 		allTime.date, it.hour =
-					// 		allTime.date1, it.year = new Date(allTime.date2).getTime();
-					// 	return it;
-					// });
-					// console.log(data, _ts.isLoad);
-					console.log(data.length)
-					if (data.length <= 0) {
-						_ts.ishow =  true;
-						// return false;
-					}else{
-						_ts.ishow =  false;
-					}
-					console.log(isShowLoading)
-					this.activityGroup = data;
-					// if (type == 1) {
-					// 	_ts.setData({
-					// 		activityGroup: data,
-					// 		hasmore: res && res.length > 0
-					// 	});
-					// } else {
-					// 	data.sort(function(a, b) {
-					// 		return Date.parse(a.startTime) - Date.parse(b.startTime);
-					// 	});
-
-					// 	/**
-					// 	 * 商品日期排序
-					// 	 */
-
-					// 	var arr = [];
-					// 	var allTime = {}
-					// 	for (var i = 0; i < data.length; i++) {
-					// 		if (data[i].end != true && data[i].start == true) {
-					// 			allTime = this.getDate(data[i].nowTime);
-					// 		} else {
-					// 			allTime = this.getDate(data[i].startTime);
-					// 		}
-
-					// 		arr.push(allTime.date2);
-					// 	}
-
-					// 	/**
-					// 	 * 数组去重
-					// 	 */
-
-
-					// 	let temp = [...new Set(arr)];
-					// 	/**
-					// 	 * 判断日期
-					// 	 */
-
-					// 	let tabList = [];
-					// 	let list = this.TabList;
-					// 	// console.log(list, tabList);
-
-					// 	for (let i = 0; i < list.length; i++) {
-					// 		tabList.push(list[i].time);
-					// 	}
-
-					// 	/**
-					// 	 * 拿到日期,把空白填补
-					// 	 */
-
-
-					// 	temp.forEach(item1 => {
-					// 		tabList.forEach((item2, j) => {
-					// 			// console.log(item2,item1)
-					// 			if (item2 == item1) {
-					// 				tabList.splice(j, 1);
-
-					// 				if (tabList.length < 6) {
-					// 					tabList.splice(j, 0, 1);
-					// 				}
-
-					// 				j -= 1;
-					// 			}
-					// 		});
-					// 	});
-
-
-					// 	/**
-					// 	 * 删除没有产品的导航栏
-					// 	 */
-					// 	let newlist = [];
-					// 	for (let i = 0; i < list.length; i++) {
-
-					// 		if (tabList[i] == 1) {
-					// 			newlist.push(list[i]);
-					// 		}
-					// 	}
-					// 	// console.log(newlist, list, tabList);
-					// 	if (newlist.length != 0) {
-					// 		// console.log(this.isLoad, "++++++++++++++++++++++++++", newlist[0]);
-					// 		// if (!this.isLoad) return false;
-					// 		// this.isLoad = false;
-					// 		newlist[0]['active'] = true;
-					// 		this.setData({
-					// 			TabList: newlist
-					// 		});
-					// 		var all = new Date().getTime()
-					// 		if (newlist[0].dayType == 1) {
-					// 			_ts.setData({
-					// 				activityGroup: data.filter(it => it.year <= all)
-					// 			});
-					// 		} else {
-					// 			_ts.setData({
-					// 				activityGroup: data.filter(it => it.date == newlist[0].times)
-					// 			});
-					// 		}
-					// 		// console.log(data, all)
-					// 	}
-					// }
-					if (isShowLoading) {
-						uni.hideLoading();
-						isShowLoading = false;
-					}
-					_ts.clearAllTimer();
-					_ts.initGroupTimer();
-				});
-			},
-
-			/**
-			 * 
-			 * 
-			 * 点击li获取商品详情
-			 */
-			toGroupRemind(event) {
-				const index = event.currentTarget.dataset.index; // console.log(event)
-
-				const activity = this.activityGroup[index];
-				let merchantId;
-
-				if (this.query.merchantId) {
-					merchantId = this.query.merchantId;
-				} else if (req.getStorage('MERCHANT')) {
-					merchantId = req.getStorage('MERCHANT').id;
-				}
-				let url = 'activity/seckillDetails/seckillDetails?acid=' + activity.id + "&id=" + activity.productId
-				if (!merchantId) {
-
-				} else {
-					url += "&merchantId=" + merchantId
-				}
-				app.globalData.openPage(url); // console.log('acid', activity.id)
-				// console.log('productId', activity.productId)
-			},
-
-			/**
-			 * 生命周期函数--监听页面初次渲染完成
-			 */
-			initGroupTimer() {
-				//社区拼图定时器
-				let _ts = this;
-
-				if (this.activityGroup && this.activityGroup.length > 0) {
-					let activityGroup = this.activityGroup;
-					for (let i = 0, len = activityGroup.length; i < len; i++) {
-						let group = activityGroup[i];
-						let nowTime = new Date(group.nowTime.replace(/-/g, '/')).getTime();
-						let startTime = new Date(group.startTime.replace(/-/g, '/')).getTime();
-						let endTime = new Date(group.endTime.replace(/-/g, '/')).getTime();
-						if (!group.start) endTime = startTime;
-						let times = parseInt((endTime - nowTime) / 1000);
-						let timer = setInterval(() => {
-							times--;
-							let data = {};
-
-							if (times === 0) {
-								//重新加载列表
-								data['activityGroup[' + i + '].end'] = true;
-								clearInterval(timer);
-							} else {
-								let n = utils.formatDayTimes(times);
-								data['activityGroup[' + i + '].times'] = n;
-							}
-
-							_ts.setData(data); // console.log(data)
-
-						}, 1000);
-						this.activityGroup[i]['timer'] = timer; // let fs = [];
-						// fs['activityGroup[' + i + '].timer'] = timer;
-						// _ts.setData(fs);
-					}
-				}
-			},
-
-			clearAllTimer() {
-				this.activityGroup.forEach(it => clearInterval(it.timer));
-			},
-
-			/**
-			 * 
-			 *  产品活动开始时间转换 year-month-day hour:minute:00
-			 * 
-			 */
-			getDate(str) {
-				var strArr = str.split(' ');
-				var time = strArr[0].toString().split('-');
-				var hose = strArr[1].toString().split(':');
-				var hour = hose[0];
-				var minute = hose[1];
-				var day = time[2];
-				var month = time[1];
-				var year = time[0];
-				var date = (month + '月' + day + '日').toString();
-				var date1 = (hour + ':' + minute).toString();
-				var date2 = strArr[0];
-				var allTime = {
-					date: (month + '月' + day + '日').toString(),
-					date1: (hour + ':' + minute).toString(),
-					date2: strArr[0]
-				}
-				return allTime
-			},
-
-			/**
-			 * 时间转换
-			 */
-			getda(str) {
-				var strArr = str.split('-');
-				var day = strArr[2];
-				var month = strArr[1];
-				var year = strArr[0];
-				var date = (month + '月' + day + '日').toString();
-				return date;
-			},
-
-			/**
-			 * 活动产品预约
-			 */
-			addActivityRemind(event) {
-				const index = event.currentTarget.dataset.index;
-				const id = event.currentTarget.dataset.id; // 订阅调用
-
-
-				req.postRequest('/api/activity/remind', {
-					activityId: id
-				}, res => {
-					requsetmessage.remind(res => {
-						// console.log(res, "11111111111");
-					});
-					req.msg('预约成功');
-					let data = {};
-					data['activityGroup[' + index + '].isRemind'] = true;
-					this.setData(data);
-				});
-			},
-
-			cancelActivityRemind(event) {
-				const index = event.currentTarget.dataset.index;
-				const id = event.currentTarget.dataset.id;
-				if (req.header.appId == 'ZQ1VK5oc17I387E') {
-
-				} else {
-					req.postRequest('/api/activity/cancel/remind', {
-						id: id
-					}, res => {
-						req.msg('取消预约成功');
-						let data = {};
-						data['activityGroup[' + index + '].isRemind'] = false;
-						this.setData(data);
-					});
-				}
-			},
-
-			/**
-			 * 获取当前时间往后退四天
-			 */
-			laterDay(num) {
-				var t = new Date();
-				var iToDay = t.getDate();
-				var iToMon = t.getMonth();
-				var iToYear = t.getFullYear();
-				var arr = [];
-				var day = []
-
-				for (var i = 1; i < num + 1; i++) {
-					var newDate = new Date(iToYear, iToMon, iToDay + i);
-					arr.push(newDate.getFullYear() + '-' + (newDate.getMonth() + 1).toString().padStart(2, '0') + "-" +
-						newDate.getDate()
-						.toString().padStart(2, '0'));
-					day.push((newDate.getMonth() + 1).toString().padStart(2, '0') + "月" + newDate.getDate()
-						.toString().padStart(2, '0') + "日"
-					)
-				} // console.log(arr)
-				var obj={
-					arr:arr,
-					day:day
-				}
-		
-				return obj;
-			},
-
-			/**
-			 * 给tab添加动态时间
-			 */
-			getTime() {
-				const data = this.TabList;
-				var t = new Date();
-				var iToDay = t.getDate().toString().padStart(2, '0');
-				var iToMon = (t.getMonth() + 1).toString().padStart(2, '0');
-				var iToYear = t.getFullYear();
-				const rq = (iToYear + '-' + iToMon + '-' + iToDay).toString();
-				const rq5 = (iToMon + '月' + iToDay + '日').toString()
-				const rq1 = this.laterDay(4).arr[0];
-				const rq6 =this.laterDay(4).day[0]
-				const rq2 = this.laterDay(4).arr[1];
-				const rq7 =this.laterDay(4).day[1]
-				const rq3 = this.laterDay(4).arr[2];
-				const rq8 =this.laterDay(4).day[2]
-				const rq4 = this.laterDay(4).arr[3]; // console.log("rq" + "---", rq1, rq2, rq3, rq4)
-				const rq9 =this.laterDay(4).day[3]
-
-				data[0].time = rq;
-				data[0].times = rq5;
-				data[1].time = rq1;
-				data[1].times = rq6;
-				data[2].time = rq2;
-				data[2].times = rq7;
-				data[3].label = this.getda(rq3);
-				data[3].time = rq3;
-				data[3].times = rq8;
-				data[4].label = this.getda(rq4);
-				data[4].time = rq4;
-				data[4].times = rq9;
-				this.setData({
-					TabList: data
-				}); // console.log(this.data.TabList)
-			},
-
-		}
-	};
-</script>
-<style>
-	@import "./seckill.css";
-</style>

+ 0 - 113
activity/seckillDetails/seckillDetails.css

@@ -1,113 +0,0 @@
-/* product/groupSeckill/groupSeckill.wxss */
-.banner{overflow: hidden;position: relative;}
-.swiper,.swiper image{width: 100%;height: 750rpx;}
-.dots{position: absolute;left: 0;right: 0;bottom: 11rpx;align-items: center;justify-content: center;}
-.dot{background:var(--mina) ;width: 10rpx;height: 10rpx;border-radius: 5rpx;margin: 0 3rpx;}
-.dot.active{width: 30rpx;}
-.group{position: relative;height: 120rpx;}
-.ptbg{width: 100%;height: 120rpx;position: absolute;top: 0;left: 0;z-index: 1;}
-.origin text{font-weight: bold; font-size: 24rpx !important ;}
-.groups{position: relative;z-index: 2;align-items: center;padding: 0 30rpx;justify-content: space-between;height: 120rpx;}
-.price{font-size: 28rpx;color: #FE0419;}
-.price text{font-size: 48rpx;font-weight: bold;}
-.price text.origin{font-weight: normal;font-size: 24rpx;color: #999;text-decoration: line-through;margin-left: 10rpx;}
-.left .price,.left .price text.origin{color: #fff;}
-.pin{font-size: 24rpx;color: #fff;}
-.tuan{width: 154rpx;height: 40rpx;float: right;}
-.endtime{align-items: center;font-size: 24rpx;color: #fff;line-height: 36rpx;margin-top: 47rpx;overflow: hidden;clear: both;}
-.endtime view{margin-right: 15rpx;}
-.endtime text{display: block;width:36rpx;height:36rpx;background:rgba(0, 0, 0, 0.4);border-radius:6rpx;font-size: 24rpx;color: #fff;text-align: center;line-height: 36rpx;margin:0 5rpx;}
-.info{padding: 30rpx 30rpx 40rpx;}
-.infos{align-items: center;justify-content: space-between;}
-.share{font-size: 24rpx;color: #999;text-align: center;position: relative;margin-left: 45rpx !important;}
-.share::after{content: '';display: block;width: 2rpx;height: 45rpx;background: #e7e7e7;position: absolute;top: 50%;transform: translateY(-50%);left: -30rpx;}
-.share image{width: 31rpx;height: 31rpx;margin: 0 auto 10rpx;}
-.title{font-size: 30rpx;color: #222;line-height: 40rpx;font-weight: bold;}
-.tag{width: 82rpx;height: 36rpx;display: inline-block;margin: 0 10rpx 0 0;position: relative;top: 7rpx;}
-.detinfo .item{padding: 30rpx;border-bottom: 1rpx solid #f6f6f6;}
-.detinfo .item:last-child{border-bottom: none;}
-.item label{display: block;width: 130rpx;font-size: 28rpx;color: #222;font-weight: bold;line-height: 40rpx;}
-.quan .flex{align-items: center;}
-.quan text{display: block;background: #FDF5F3;padding: 0 13rpx;height: 40rpx;line-height: 40rpx;font-size: 24rpx;color: #FF5F08;margin-right: 10rpx;}
-.ling{font-size: 24rpx;color: #FF5F08;align-items: center;}
-.ling image{width: 14rpx;height: 24rpx;margin-left: 11rpx;}
-.address{font-size: 28rpx;color: #333;line-height: 40rpx;}
-.huo{font-size: 24rpx;color: #666;line-height: 40rpx;}
-.huo text{color: #FE0419;}
-.more{width: 36rpx;height: 10rpx;margin-top: 15rpx;}
-/* .col{
-	width: 30rpx;height: 30rpx;background-repeat: no-repeat;background-size: 30rpx;line-height: 30rpx;float: left;margin-top: 25rpx;margin-left: 20rpx;}
-.red{background-repeat: no-repeat;background-size: 30rpx;line-height: 30rpx;float: left;margin-top: 25rpx;margin-left: 20rpx;width: 30rpx;height: 30rpx;} */
-.dis{display: flex;justify-content: space-between;}
-.more{width: 36rpx;height: 10rpx;margin-top: 15rpx;}
-.more1{width: 12rpx; height: 22rpx;}
-.txt{margin-left: 14rpx;}
-.gmbtn1{border: 2rpx solid #FE0419; width: 430rpx;height: 77rpx;border-radius: 40rpx ;text-align: center;line-height: 80rpx;font-size: 30rpx;color: #FE0419;background-color: #FFFFFF;}
-/* .user{width: 68rpx;height: 68rpx;border-radius: 50%;margin-right: 15rpx;} */
-.name{font-size: 28rpx;color: #666;line-height: 68rpx;justify-content: space-between;align-items: center;}
-.pinglun{font-size: 28rpx;color: #333;margin: 15rpx 0 0;line-height: 44rpx;}
-.huifu{background: #F2F2F2;border-radius: 6rpx;margin: 25rpx 0 0;line-height: 42rpx;padding: 20rpx 30rpx;position: relative;}
-.huifu::after{content: '';display: block;width: 0;height: 0;border: 9rpx solid transparent;border-bottom-color: #F2F2F2;border-top: none;position: absolute;top: -8rpx;left: 39rpx;}
-.show{display: block;}
-.hide{display: none;}
-.bot{height: 80rpx;align-items: center;padding: 20rpx 30rpx 20rpx 0; display: flex; justify-content: space-around;}
-.botbtn{font-size: 22rpx;color: #6A6A6A;width: 108rpx !important;text-align: center;position: relative;}
-.botbtn image{width: 40rpx;height: 34rpx;margin: 10rpx auto 5rpx;}
-.message{background: #DF1A14;height: 28rpx;line-height: 28rpx;font-size: 24rpx;color: #fff;text-align: center;border-radius: 15rpx;box-sizing: border-box;min-width: 21rpx;padding: 0 8rpx;position: absolute;top: 0;right: 25%;}
-.gmbtn{width: 430rpx;height: 80rpx;text-align: center;line-height: 80rpx;font-size: 30rpx;color: #fff;border-radius:40rpx}
-.addcart{width: 206rpx;height: 76rpx;border: 2rpx solid #FD3C31;border-radius: 40rpx;text-align: center;line-height: 76rpx;font-size: 30rpx;color: #FD3A31;margin: 0 10rpx;}
-.background {
-  width: 30rpx;
-  height: 30rpx;
-  position:absolute; 
-	background-size:100% 100%;
-	margin-top: 2rpx;
-  /* z-index: -1; */
-}
-.ico{width: 30rpx;height: 30rpx;}
-/* .flot{float: left;} */
-/* 小店相关 */
-.xiaodian{position: relative;height: 122rpx;padding: 0 26rpx 0 110rpx;align-items: center;margin: 35rpx 30rpx 0;}
-.xdbg{position: absolute;left: 0;top: 0;width: 100%;height: 100%;z-index: 1;}
-.shouyi{position: relative;z-index: 2;color: #fff;margin-right: 10rpx;}
-.shouyi view{font-size: 40rpx;font-weight: bold;margin-top: 8rpx;}
-.shouyi text{font-weight: normal;font-size: 24rpx;}
-.addshop{height: 62rpx;padding: 0 25rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-.fenxiang{height: 62rpx;padding: 0 25rpx;margin-left: 15rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-.goShop{height: 62rpx;padding: 0 25rpx;margin-left: 15rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-
-.suc{position: fixed;left: 50%;top: 50%;transform: translate(-50%,-50%);background: #fff;width: 536rpx;border-radius: 20rpx;z-index: 100;text-align: center;padding-bottom: 47rpx;}
-.tjcg1{width: 100%;height: 284rpx;}
-.tjcg{width: 195rpx;height: 38rpx;margin: 52rpx auto 15rpx;}
-.suc text{display: block;font-size: 24rpx;color: #333;}
-.shopcc{justify-content: center;}
-.shop{width:220rpx;height:80rpx;background:linear-gradient(123deg,rgba(255,130,130,1) 0%,rgba(220,21,21,1) 100%);font-size: 30rpx;color: #fff;line-height: 80rpx;border-radius: 40rpx;margin: 45rpx 15rpx 40rpx;}
-.wxfriend,.wxposter{width: 196rpx !important;height: 76rpx !important;align-items: center;justify-content: center;font-size: 30rpx;color: #666;border: 2rpx solid #D8D8D8;border-radius: 40rpx !important;}
-.wxfriend image,.wxposter image{width: 31rpx;height: 31rpx;margin-right: 13rpx;}
-.suc-close{position: absolute;left: 50%;transform: translateX(-50%);bottom: -102rpx;width: 62rpx;height: 62rpx;}
-.sellStock{text-align: right; color: #999;position: relative; left: 145rpx;}
-.sellStock text{ color:#222 ;}
-.protext{color: #999;margin-top: 15rpx;overflow:hidden; text-overflow:ellipsis;display:-webkit-box; -webkit-box-orient:vertical;-webkit-line-clamp:2; }
-
-.guarantee{border-top: 1rpx solid #f6f6f6;padding: 15rpx 0 0 0; margin-top: 15rpx;}
-.guarantee .cont{flex-wrap: wrap;font-size: 26rpx;}
-.guarantee .cont .li{align-items: center;margin-right: 20rpx;
-  margin-bottom: 10rpx;}
-.guarantee .cont image{        width: 30rpx;
-  height: 30rpx;}
-.addcart{width: 206rpx;height: 76rpx;border: 2rpx solid #FD3C31;border-radius: 40rpx;text-align: center;line-height: 76rpx;font-size: 30rpx;color: #FD3A31;margin: 0 10rpx;}
-.gmbtnyuyue {
-  width: 400rpx;
-  height: 80rpx;
-  border-radius: 40rpx;
-  text-align: center;
-  line-height: 80rpx;
-  font-size: 30rpx;
-  color: #fff;
-}
-.gmbtn{width: 210rpx;height: 80rpx;border-radius: 40rpx;text-align: center;line-height: 80rpx;font-size: 30rpx;color: #fff;}
-.gray{color: #999;border-color: #999;}
-
-.pro-sel{align-items: center;}
-.pro-sel .flex{text-overflow: ellipsis;white-space: nowrap;overflow: hidden;}
-.mrico{width: 16rpx;height: 27rpx;}

+ 0 - 1077
activity/seckillDetails/seckillDetails.vue

@@ -1,1077 +0,0 @@
-<template>
-	<view v-if="allShow">
-		<!--product/groupSeckill/groupSeckill.wxml-->
-		<view class="banner">
-			<swiper class="swiper" @change="swiperChange" :current="current" autoplay="true" circular="true"
-				duration="1000">
-				<block v-for="(item, index) in bannerUrls" :key="index">
-					<swiper-item autoplay="true">
-						<image :src="item + '?x-oss-process=style/w750-auto'" mode="aspectFit"></image>
-					</swiper-item>
-				</block>
-			</swiper>
-			<view class="dots dflex">
-				<block v-for="(item, index) in bannerUrls" :key="index">
-					<view :class="'dot ' + (index == swiperCurrent ? ' active' : '')" :data-current="index"
-						@tap="dotEvent"></view>
-				</block>
-			</view>
-		</view>
-		<!-- <view class="notification_bar" wx:if="{{isNotice}}">
-	<swiper class="swiper_container" vertical="true" autoplay="true" circular="false" duration="1000" interval="5000" easing-function="easeInOutCubic" class="bar_box dflex">
-		<swiper-item class="bar_con dflex" wx:for="{{contentList}}" wx:key="item">
-			<view class="bar dflex">
-				<image class="bar_left" src="{{item.pic}}" />
-				<text class="bar_text">最新订单来自</text>
-				<text class="bar_text">{{item.name}},</text>
-				<text class="bar_text">{{item.time}}</text>
-			</view>
-		</swiper-item>
-	</swiper>
-</view> -->
-		<view class="group">
-			<image src="/activity/static/activity/images/msbg.png" class="ptbg" v-if="act.start"></image>
-			<image src="/activity/static/activity/images/msyybg.png" class="ptbg" v-else></image>
-			<view class="groups dflex">
-				<view class="left">
-					<view class="price">¥<text>{{act.money}}</text>
-						<text class="origin"
-							v-if="pro.marketPrice!=0&&pro.marketPrice>act.money">¥<text>{{pro.marketPrice}}</text></text>
-					</view>
-					<view class="pin">{{act.person?act.person:'0'}}人已参与</view>
-				</view>
-				<view class="right">
-					<image src="/activity/static/activity/images/seckillDetails.png" class="tuan"></image>
-					<view class="endtime dflex">
-						<view>{{act.start?'距结束还剩':'距开始还剩'}}</view>
-						<block v-if="timer[0] !==0"><text>{{timer[0]}}</text>{{timer.length>=4?'天':':'}}</block>
-						<text>{{timer[1]}}</text>:
-						<text>{{timer[2]}}</text>{{timer.length>=4?':':''}}
-						<text v-if="timer.length>=4">{{timer[3]}}</text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="info bgfff">
-			<view class="infos dflex">
-				<view class="title flex">
-					<!-- <image src="/pages/images/jishida.png" class="tag" wx:if="{{pro.isTimely === 1}}"></image> -->
-					{{pro.title?pro.title:'0'}}
-				</view>
-				<view class="share" @tap="showShare">
-					<image src="/static/pages/images/fxico.png"></image>分享
-				</view>
-			</view>
-			<view class="guarantee dflex" v-if="guarantee.length>0">
-				<view class="cont dflex">
-					<view v-for="(item, index) in guarantee" :key="index" class="dflex li">
-						<image src="/activity/static/activity/images/guarantee.png"></image>{{item}}
-					</view>
-				</view>
-			</view>
-			<!-- <view class="xiaodian dflex" wx:if="{{hideShop&&distr.distributionSmallShopOpen==1&&isshop==1}}">
-		<image src="/pages/images/xdbg1.png" class="xdbg"></image>
-		<view class="shouyi flex">
-			<text>销售收益</text>
-			<view>8.65<text>元</text></view>
-		</view>
-		<view class="addshop" bindtap="addShop">添加到小店</view>
-	</view> -->
-		</view>
-
-		<view class="detinfo mt20 bgfff">
-			<!-- isOtc 0 默认 1 处方药 2 非处方药 3 医疗器械 4 食品类 5 海外购 -->
-			<block v-if="act.isOtc!=5">
-			<block v-if="is_open_shop == 1 && ascription">
-			<view class="xiaodian dflex malr20" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0) || act.serviceShopRate">
-				<image src="/static/pages/images/xdbg1.png" class="xdbg"></image>
-				<view class="shouyi flex" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0)">
-					<text>分销收益</text>
-					<view v-if="act.isMeCommission == 0"><text>¥</text>{{act.oneCommission}}</view>
-					<view v-else><text>¥</text>{{act.twoCommission}}</view>
-				</view>
-				<view class="shouyi flex" v-if="act.serviceShopRate">
-					<text>小店服务费</text>
-					<view><text>¥</text>{{act.serviceShopRate}}</view>
-				</view>
-				<view class="dflex" v-if="act.isJoinShop">
-					<view class="fenxiang" @tap="showShare">分享推广</view>
-					<navigator :url="url" hover-class="none" class="goShop">去小店</navigator>
-				</view>
-				<view class="addshop" @tap="addShop" v-else>添加到小店</view>
-			</view>
-			</block>
-			<block v-else>
-			<view class="xiaodian dflex malr20" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0)">
-				<image src="/static/pages/images/xdbg1.png" class="xdbg"></image>
-				<view class="shouyi flex">
-					<text>分销收益</text>
-					<view v-if="act.isMeCommission == 0"><text>¥</text>{{act.oneCommission}}</view>
-					<view v-else><text>¥</text>{{act.twoCommission}}</view>
-				</view>
-				<navigator url="/promote/apply/apply" hover-class="none" class="fenxiang" v-if="isDistriUser != 2">我要推广</navigator>
-				<view class="fenxiang" @tap="showShare" v-else>分享推广</view>
-			</view>
-			</block>
-			</block>
-			<!-- <view class="item dflex">
-		<label>优惠券</label>
-		<view class="quan flex dflex">
-			<view class="flex dflex">
-				<text>满500减50</text>
-				<text>满200减10</text>
-			</view>
-			<view class="ling dflex">领券<image src="/pages/images/more3.png"></image>
-			</view>
-		</view>
-	</view> -->
-			<view class="item pro-sel dflex" v-if="pro.propertiesList && pro.propertiesList.length > 0"
-				@click="pro.stock > 0 ? addShopCart() : ''">
-				<label>已选</label>
-				<view class="flex">{{pro.properties}}</view>
-				<image src="/static/pages/images/more.png" class="mrico"></image>
-			</view>
-			<view class="item dflex">
-				<label>配送至</label>
-				<view class="flex" @tap="toAddress">
-					<view class="address">{{address.address?address.address:''}}{{address.house?address.house:''}}
-					</view>
-					<!-- <view class="huo" wx:if="{{pro.isTimely == 1}}"><text>现货</text>,现在下单,预计2小时后送达</view> -->
-				</view>
-				<image src="/static/pages/images/more2.png" class="more" @tap="toAddress"></image>
-			</view>
-			<view class="item dflex">
-				<label>提货门店</label>
-				<view class="flex" @tap="toMerchant">
-					<view class="address">{{merchant.title}}</view>
-				</view>
-			</view>
-			<!-- <view class="item dflex">
-		<label>参数</label>
-		<view class="flex dis">
-			<view wx:for="{{params}}" wx:key="index">
-				{{item.name}}
-			</view>
-			<image src="../../pages/images/more.png" class="more1"></image>
-		</view>
-	</view> -->
-		</view>
-
-		<!--  商品详情等页面 -->
-		<product-footer id="list" ref="list" :detail="nodes" :imgs="imgs" :proId="pro.id" v-if="pro.id" :form="form"
-			@showTab="showTab" @scoreTab="scoreTab" @freshen="freshenFun">
-		</product-footer>
-
-		<v-share :hide-toast="hideShare" :product="pro" :code-url="codeUrl" a-type="2" @onFather="click"></v-share>
-
-		<view class="placeholder-view" :style="'height:' + (bottomBlankHeight + 140) + 'rpx'"></view>
-		<view class="bot fixed bgfff dflex" :style="'padding-bottom: ' + (bottomBlankHeight + 20) + 'rpx'">
-			<contact-button img-url="/static/pages/images/kfico.png" class-name="botbtn" button-text="在线客服"></contact-button>
-			<navigator class="botbtn" open-type="switchTab" url="/pages/cart/cart" hover-class="none">
-				<image src="/static/pages/images/gwc.png"></image>购物车<text class="message"
-					v-if="pro.count > 0">{{pro.count}}</text>
-			</navigator>
-			<block v-if="!activityEnd">
-				<block v-if="act.start">
-					<!-- <view class="addcart flot" bindtap="addShopCart">加入购物车</view> -->
-					<view :class="['addcart',act.start? '' : 'gray']" @tap="act.start ? addShopCart() : ''">加入购物车
-					</view>
-					<view class="gmbtn mbglinear flot" @tap="atOnceBuy">{{pro.isOtc==1 ?'预约下单': '立即购买'}}</view>
-				</block>
-				<!-- 
-				<view class="addcart {{pro.state == 1 ? '' : 'gray'}}" bindtap="addShopCart">加入购物车</view>
-	<view class="gmbtn mbglinear" bindtap="atOnceBuy" wx:if="{{act.start}}">立即购买</view> -->
-				<view v-else>
-					<!-- <view class="addcart flot" bindtap="addShopCart">加入购物车</view> -->
-					<view class="gmbtn1   flot" @tap="cancelActivityRemind" v-if="isRemind">
-						<icon class="ico">
-							<image src="/activity/static/activity/images/rednaozhong.png" class="background"></image>
-						</icon>
-						<text class="txt">取消提醒</text>
-					</view>
-					<view class="gmbtnyuyue mbggreen flot" @tap="addActivityRemind" v-else>
-						<icon class="ico">
-							<image src="/activity/static/activity/images/clock2.png" class="background"></image>
-						</icon>
-						<text class="txt">预约提醒</text>
-					</view>
-				</view>
-			</block>
-			<block v-else>
-				<view class="gmbtnyuyue mbggray">活动不存在</view>
-			</block>
-		</view>
-
-		<!-- 商品规格 -->
-		<block v-if="isShow">
-			<product-popup :product="popup" :activityId="act.id" :is-cart="isCart" @hidePopup="hidePopup"
-				@add-cart-success="addCartSuccess" :order-type="orderType" :merchant="merchant" :actId="act.actId"
-				:merchant-id="query.merchantId" :shop-id="query.shopId" @getPor="getPor"></product-popup>
-		</block>
-
-		<view class="contact_index" @tap="goTop">
-			<image src="/static/pages/images/backtop.png"></image>顶部
-		</view>
-
-		<!-- 添加到小店成功 -->
-		<view class="mask" :hidden="isHide" @tap="hidePop"></view>
-		<view class="suc" :hidden="isHide">
-			<image src="/static/pages/images/tjcg1.png" class="tjcg1"></image>
-			<image src="/static/pages/images/tjcg.png" class="tjcg"></image>
-			<text>快去我的小店看看吧</text>
-			<view class="shopcc dflex">
-				<view class="shop" @tap="showShare">分享推广</view>
-				<navigator :url="url" hover-class="none" class="shop" >我的小店</navigator>
-			</view>
-			<!-- <view class="share-btn dflex">
-				<button class="wxfriend dflex" open-type="share">
-					<image src="/static/pages/images/wechat.png"></image>
-					微信好友
-				</button>
-				<view class="wxposter dflex" @tap="generatePoster">
-					<image src="/static/pages/images/poster.png"></image>
-					生成海报
-				</view>
-			</view> -->
-			<image src="/static/pages/images/close2.png" class="suc-close" @tap="hidePop"></image>
-		</view>
-		<block v-if="isPopupLogin">
-			<product-login :about="about" @hidePopupLogin="hidePopupLogin"></product-login>
-		</block>
-	</view>
-</template>
-
-<script>
-	const app = getApp();
-	const req = require("../../utils/request.js");
-	const utils = require("../../utils/util.js");
-	var QQMapWX = require("../../utils/qqmap.js");
-	const requsetmessage = require("../../utils/requestmessage.js");
-	const route = require("../../utils/route");
-	const api = require("../../utils/api");
-	import productFooter from "../../components/product_footer/index";
-	import productPopup from "../../components/product-popup/index";
-	import vShare from "../../components/share/share";
-	import productLogin from "../../components/product-login/index";
-
-	export default {
-		data() {
-			return {
-				bottomBlankHeight: app.globalData.isIPhoneX ? 68 : 0,
-				swiperCurrent: 0,
-				bannerUrls: [],
-				isShow: false,
-				pro: {},
-				timer: [],
-				orderType: '',
-				isRemind: false,
-				hideShare: true,
-				isCart: false,
-				codeUrl: '',
-				hideShop: true,
-				//隐藏添加到小店
-				isHide: true,
-				//添加小店成功弹窗
-				url: '/mine/shop/shop?userId=' + req.getStorage('userInfo').id,
-				contentList: [{
-					pic: "/static/pages/images/bar.png",
-					name: '好风依旧',
-					time: '4秒前'
-				}, {
-					pic: "/static/pages/images/bar.png",
-					name: '杨鑫',
-					time: '20秒前'
-				}, {
-					pic: "/static/pages/images/bar.png",
-					name: '杨鑫',
-					time: '5秒前'
-				}],
-				isNotice: false,
-				form: {
-					page: 1,
-					limit: 10
-				},
-				freshen: true //是否更新页面
-					,
-				current: "",
-				query: "",
-				merchant: "",
-				merchantId: "",
-				shopId: "",
-				imgs: "",
-				activityEnd: false,
-				act: "",
-				address: {},
-				popup: {},
-				params: "",
-				tabIndex: "",
-				guarantee: "",
-				is_open_comments: "",
-				nodes: "",
-				switch: true,
-				about: {},
-				allShow: false,
-				url:'',
-				is_open_shop: '',//商户是否开启分销
-				ascription: false,//是否开启小店
-				isDistriUser: 0, // 判断用户是否是分销员 2为分销员
-				isPopupLogin: false
-			};
-		},
-
-		components: {
-			productFooter,
-			productPopup,
-			vShare,
-			productLogin
-		},
-		props: {},
-		onLoad: function(options) {
-			console.log('秒杀详情==' + JSON.stringify(options));
-			this.query = options;
-			this.setData({
-				query: options
-			});
-
-			if (options.scene) {
-				this.scene = options.scene;
-			}
-
-			if (options.isShare) {
-				this.query.id = options.id;
-				this.query.acid = options.acid;
-				req.setStorage('pidCode', options.userId);
-				let params = {
-					userId: options.userId,
-					merchantId: options.merchantId ? options.merchantId : '',
-				}
-				this.bindUser(params);
-			}
-
-			if (options.hideShop) {
-				// console.log(options.hideShop);
-				this.setData({
-					hideShop: false
-				});
-			}
-
-			// console.log(this.hideShop);
-			// console.log(options);
-			setInterval(() => {
-				this.setData({
-					isNotice: true
-				});
-			}, 10000); // this.isShop()
-		},
-		onShow: async function() {
-			console.log("7899")
-			let that = this
-			if (this.freshen) {
-				console.log("rty")
-				if (that.scene) {
-					await this.loadCodeParams();
-				}
-				if(that.scene){
-					await that.bindUser(that.query);
-				}
-				// this.getMerchant();
-				this.getGuarantee().then(data => {
-					// console.log(data)
-					if (this.switch) {
-						api.getMerchant(this.query, req, data => {
-							// console.log(data)
-							that.loadDefaultAddress();
-							if (data == 1) {
-								api.locationShow()
-							} else {
-								that.getuserInfos(data);
-								if (data.type == 5) {
-									that.query.merchantId = data.merchantDTO.id
-									that.query.shopId = data.id
-								} else {
-									that.query.merchantId = data.id
-								}
-
-								if (req.getStorage('userInfo') && that.merchant.id != data.id) {
-									console.log(1, that.merchant, data)
-									let pages = getCurrentPages();
-									var prevPage = pages[pages.length - 2];
-									if (prevPage) {
-										prevPage.$vm.setData({
-											freshen: true
-										});
-									}
-								} else {
-									console.log(2, this.freshen, this.switch)
-									// this.loadProudct();
-								}
-								this.loadProudct();
-								that.merchant = data
-							}
-						})
-					}
-				})
-				await this.browsRecound(this.query.id);
-			}
-		},
-
-		onUnload() {
-			if (this.timer) clearInterval(this.timer);
-		},
-
-		onShareAppMessage: function() {
-			let merchantId = '';
-			let path = '/activity/seckillDetails/seckillDetails?id=' + this.query.id + '&acid=' + this.query.acid +
-				'&isShare=' + true;
-			// console.log(!req.getStorage('userInfo').id);
-
-			if (!req.getStorage('userInfo').id) {} else {
-				path += '&userId=' + req.getStorage('userInfo').id;
-			}
-
-			// console.log(this.query.merchantId);
-			let shopId = '';
-			if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-				path += '&merchantId=' + req.getStorage('MERCHANT').id;
-				merchantId = req.getStorage('MERCHANT').id;
-
-				if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-					path += '&shopId=' + req.getStorage('smallShop').id;
-					shopId = req.getStorage('smallShop').id;
-					merchantId = req.getStorage('smallShop').merchantDTO.id;
-				}
-			}
-			// console.log(path)
-			route.share(1, req.getStorage('userInfo').id, path, merchantId, shopId, 6, this.query.acid + '_' + this
-				.query.id);
-			return {
-				title: this.pro.title,
-				imageUrl: this.pro.pic,
-				path: path
-			};
-		},
-		onUnload: function() {},
-
-		onReachBottom() {
-			if (this.is_open_comments == 1 && this.tabIndex == 2) {
-				this.form.page++;
-				this.setData({
-					['form.page']: this.form.page
-				});
-				// this.selectComponent("#list").loadScore(this.current);
-				this.$refs.list.loadScore(this.current);
-			}
-		},
-
-		methods: {
-			bindUser(par){
-				let userInfo = req.getStorage('userInfo');
-				if(!userInfo){
-					// uni.login({
-					// 	success(res) {
-					// 		let params = {
-					// 			code: res.code,
-					// 			parentId: par.userId,
-					// 			merchantId: par.merchantId ? par.merchantId : par.shopId ? par.shopId : ''
-					// 		}
-					// 		return new Promise((resolve,reject)=>{
-					// 			req.postRequest('/api/v2/login', params, data => {
-					// 				resolve();
-					// 			});
-					// 		})
-					// 	}
-					// });
-					// this.isPopupLogin = true;
-					req.silenceLogin(par.userId, par.merchantId ? par.merchantId : par.shopId ? par.shopId : '');
-				}
-			},
-			click(e) {
-				// console.log(e)
-				this.hideShare = e
-			},
-			showShare() {
-				// #ifndef H5
-				req.isLogin().then(success => {
-					if (success) {
-
-						this.getCodeUrl()
-
-						this.setData({
-							hideShare: false
-						});
-					}
-				});
-				// #endif
-			},
-
-			/**
-			 * 轮播切换
-			 */
-			swiperChange({
-				detail
-			}) {
-				if (this.current == 0 && this.swiperCurrent > 1) {
-					//卡死时,重置current为正确索引
-					this.setData({
-						current: this.swiperCurrent
-					});
-				} else {
-					//正常轮转时,记录正确页码索引
-					this.setData({
-						swiperCurrent: detail.current
-					});
-				}
-			},
-
-			dotEvent(e) {
-				this.setData({
-					current: e.currentTarget.dataset.current
-				});
-			},
-
-			browsRecound(id) {
-				let from = {
-					bindId: id,
-					type: 6,
-					page: '/activity/seckillDetails/seckillDetails?id=' + this.query.id + '&acid=' + this.query.acid
-				};
-
-				if (this.query.isShare) {
-					from.shareType = 1;
-					from.page = '/activity/seckillDetails/seckillDetails?id=' + this.query.id + '&acid=' + this.query
-						.acid + '&isShare=' + true;
-
-					if (!this.query.userId) {} else {
-						from.page += '&userId=' + this.query.userId;
-					}
-
-					if (!this.query.merchantId) {} else {
-						from.merchantId = this.query.merchantId;
-					}
-
-					if (!this.query.shopId) {} else {
-						from.shopId = this.query.shopId;
-					}
-
-					if (!this.query.userId) {} else {
-						from.uid = this.query.userId;
-					}
-				}
-
-				if (this.query.isShareTimeline) {
-					from.shareType = 2;
-					from.page = '/activity/seckillDetails/seckillDetails?id=' + this.query.id + '&acid=' + this.query
-						.acid + '&isShareTimeline=' + true;
-
-					if (!this.query.userId) {} else {
-						from.page += '&userId=' + this.query.userId;
-					}
-
-					if (!this.query.merchantId) {} else {
-						from.merchantId = this.query.merchantId;
-					}
-
-					if (!this.query.shopId) {} else {
-						from.shopId = this.query.shopId;
-					}
-
-					if (!this.query.userId) {} else {
-						from.uid = this.query.userId;
-					}
-				}
-				return new Promise((resolve,reject)=>{
-					req.postRequest('/api/browse', from, data => {resolve()});
-				})
-			},
-
-			loadCodeParams() {
-				let _ts = this;
-
-				return new Promise((resolve, reject) => {
-					if (!_ts.scene) {
-						resolve();
-						return false;
-					}
-
-					req.getRequest('/api/code/params', {
-						scene: _ts.scene
-					}, data => {
-						if (data) {
-							_ts.query.id = data.scene.split('_')[0];
-							_ts.query.acid = data.scene.split('_')[1];
-							_ts.query.merchantId = data.scene.split('_')[2];
-							_ts.query.shopId = data.scene.split('_')[3];
-							_ts.query.userId = data.userId;
-							req.setStorage('pidCode', data.userId);
-						}
-						resolve();
-					});
-				});
-			},
-
-			getCodeUrl() {
-				let that = this; //获取小程序码
-				const query = this.query;
-				let scene = that.pro.id + '_' + query.acid;
-				if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-					scene += '_' + req.getStorage('MERCHANT').id;
-					if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-						scene += '_' + req.getStorage('smallShop').id;
-					}
-				}
-				// console.log(scene); //获取小程序码
-				const params = {
-					page: 'activity/seckillDetails/seckillDetails',
-					scene: scene
-				};
-				// console.log('ma--', params);
-				req.getRequest('/api/program/codev', params, url => {
-					that.setData({
-						codeUrl: url
-					});
-				});
-			},
-
-			async loadProudct() {
-				let that = this;
-				await that.loadActivity();
-				const query = that.query;
-				let isShowLoading = false;
-
-				if (!isShowLoading) {
-					req.loadIng('加载中');
-					isShowLoading = true;
-				}
-				req.getRequest('/api/product/detail', {
-					id: query.id
-				}, data => {
-					//富文本图片放大
-					that.nodes = data.detail;
-					let propertiesList = []
-					if (data.propertiesList && data.propertiesList.length > 0) {
-						data.propertiesList.map(it => {
-							propertiesList.push(it.value);
-						})
-					}
-					data.properties = propertiesList.join(' / ')
-					that.setData({
-						bannerUrls: data.images,
-						pro: data,
-						'pro.salePrice': this.act.money,
-						// 'pro.stock': this.act.quantity,
-						'pro.stock': this.act.quantity - this.act.payQuantity,
-						'pro.payQuantity': this.act.payQuantity,
-						'pro.maxBuy': this.act.maxBuy,
-						allShow: true
-					});
-					if (isShowLoading) {
-						uni.hideLoading();
-						isShowLoading = false;
-						// this.freshen = false
-					}
-					// console.log(this.pro);
-					// that.getCodeUrl();
-				});
-			},
-
-			loadActivity() {
-				const query = this.query;
-				return new Promise((resolve, reject) => {
-					let from = {
-						id: query.acid
-					}
-					// console.log(this.query.merchantId)
-					if (this.query.merchantId) {
-						from.merchantId = this.query.merchantId
-					}
-					let userInfo = req.getStorage('userInfo');
-					if(userInfo.listShopBase && userInfo.listShopBase.length >0 ){
-						from.shopId = userInfo.listShopBase[0].id;
-					}
-					req.getRequest('/api/activity/detail', from, data => {
-						// console.log(data);
-						this.getMy();
-						if (data.type == 1) {
-							this.setData({
-								orderType: 2
-							});
-						}
-
-						if (data.type == 2) {
-							this.setData({
-								orderType: 3
-							});
-						}
-
-						if (data.type == 4) {
-							this.setData({
-								orderType: 6
-							});
-						}
-
-						if (data.type == 5) {
-							this.setData({
-								orderType: 7
-							});
-						}
-
-						if (!data || data == 2001) {
-							this.setData({
-								activityEnd: true
-							});
-							return false;
-						} else {
-							this.setData({
-								act: data,
-								isRemind: data.remindId
-							});
-							this.initTimer(data);
-						}
-
-						resolve();
-					});
-				});
-			},
-			// 获取用户信息
-			getuserInfos(data) {
-				let userInfo = req.getStorage('userInfo');
-				if (userInfo && userInfo.listShopBase && userInfo.listShopBase != null && userInfo.listShopBase.length >
-					0) {
-					if (userInfo.listShopBase[0].merchant_id == data.id && data.type != 5) {
-						let url = '/mine/shop/shop?merchantId=' + userInfo.listShopBase[0].merchant_id + '&shopId=' + userInfo.listShopBase[0].id;
-						this.url = url;
-						this.ascription = true;
-					}
-				}
-			},
-			getMy() {
-				let that = this;
-				let userInfo = req.getStorage('userInfo');
-				if(!userInfo || userInfo == null) return false;
-				req.getRequest('/api/user/my', {}, data => {
-					that.isDistriUser = data.isDistriUser;
-				});
-			},
-
-			initTimer(group) {
-				//计时器
-				let _ts = this;
-
-				let nowTime = new Date(group.nowTime.replace(/-/g, '/')).getTime();
-				let startTime = new Date(group.startTime.replace(/-/g, '/')).getTime();
-				let endTime = new Date(group.endTime.replace(/-/g, '/')).getTime();
-				if (!group.start) endTime = startTime;
-				let times = parseInt((endTime - nowTime) / 1000);
-				// console.log(times / 60 / 60);
-				this.timer = setInterval(() => {
-					times--;
-					if (times <= 0) {
-						//重新加载列表
-						_ts.setData({
-							'act.end': true
-						});
-						return false;
-					}
-
-					let n = utils.formatDayTimes(times);
-
-					_ts.setData({
-						timer: n.split(/:|天/g)
-					});
-				}, 1000);
-			},
-
-			loadDefaultAddress() {
-				if (req.isAuth()) {
-					req.g('/api/address/default', data => {
-						if (data) this.setData({
-							address: data
-						});
-						else this.pointLocation();
-					}, true);
-				} else {
-					this.pointLocation();
-				}
-			},
-
-			toAddress() {
-				app.globalData.openPage('mine/address/address');
-			},
-
-			toMerchant() {
-				if (this.about.User_Limit_Store == 1) {
-
-				} else {
-					app.globalData.openPage('pages/nearby/nearby?isChoose=true');
-				}
-			},
-
-			toactive() {
-				app.globalData.openPage('pages/nearby/nearby');
-			},
-
-			pointLocation() {
-				//定位当前位置
-				let _ts = this;
-
-				QQMapWX.initMap();
-				req.getLocation(res => {
-					QQMapWX.reverseGeocoder(res, data => {
-						_ts.setData({
-							['address.address']: data.address
-						});
-					});
-				});
-			},
-			addShopCart() {
-				// 加入购物车
-				if (!this.act.start) return req.msg('活动还未开始');
-				if (this.act.payQuantity >= this.act.quantity) return req.msg('活动产品已售罄');
-				if (this.act.end) return req.msg(
-					'活动已结束');
-				this.setData({
-					isShow: true,
-					isCart: true,
-					popup: {
-						id: this.pro.id,
-						pic: this.pro.pic,
-						title: this.pro.title,
-						salePrice: this.act.money,
-						stock: this.pro.stock,
-						paramsId: this.pro.paramsId,
-						marketPrice: this.pro.marketPrice,
-						skuId: this.pro.skuId
-					}
-				});
-			},
-
-			atOnceBuy() {
-				//立即购买
-				if (!this.act.start) return req.msg('活动还未开始');
-				if (this.act.payQuantity >= this.act.quantity) return req.msg('活动产品已售罄');
-				if (this.act.end) return req.msg(
-					'活动已结束');
-				// this.setData({ isShow: true, isCart: false, popup: this.data.product });
-				this.setData({
-					isShow: true,
-					isCart: false,
-					popup: {
-						id: this.pro.id,
-						pic: this.pro.pic,
-						title: this.pro.title,
-						salePrice: this.act.money,
-						stock: this.pro.stock,
-						paramsId: this.pro.paramsId,
-						marketPrice: this.pro.marketPrice,
-						skuId: this.pro.skuId
-					}
-				});
-			},
-
-			addActivityRemind() {
-				// 订阅调用
-
-				req.postRequest('/api/activity/remind', {
-					activityId: this.act.id
-				}, res => {
-					requsetmessage.remind();
-					req.msg('预约成功');
-					this.setData({
-						isRemind: true
-					});
-				});
-			},
-
-			addCartSuccess(event) {
-				this.setData({
-					'pro.count': parseInt(this.pro.count) + parseInt(event.detail.quantity),
-					isShow: false
-				});
-			},
-
-			cancelActivityRemind(event) {
-				if (req.header.appId == 'ZQ1VK5oc17I387E') {
-
-				} else {
-					req.postRequest('/api/activity/cancel/remind', {
-						id: this.act.id
-					}, res => {
-						req.msg('取消预约成功');
-						this.setData({
-							isRemind: false
-						});
-					});
-				}
-			},
-
-			hidePopup() {
-				this.setData({
-					isShow: false
-				});
-			},
-			hidePopupLogin(data) {
-				this.isPopupLogin = false;
-			},
-
-			clickCollect() {
-				let _ts = this;
-
-				req.postRequest('/api/collect', {
-					bindId: this.pro.id,
-					type: 1
-				}, data => {
-					_ts.setData({
-						'pro.isCollect': !_ts.pro.isCollect
-					});
-				});
-			},
-
-			goTop: function(e) {
-				// 一键回到顶部
-				if (uni.pageScrollTo) {
-					uni.pageScrollTo({
-						scrollTop: 0
-					});
-				} else {
-					uni.showModal({
-						title: '提示',
-						content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
-					});
-				}
-			},
-			getPor: function(e) {
-				// console.log(e.detail, "qqqqq")
-				this.popup = e.detail
-				this.act.id = e.detail.actId
-			},
-
-			onShareTimeline() {
-				let merchantId = '';
-				let path = 'id=' + this.query.id + '&acid=' + this.query.acid + '&isShareTimeline=' + true;
-
-				if (!req.getStorage('userInfo').id) {} else {
-					path += '&userId=' + req.getStorage('userInfo').id;
-				}
-
-				// console.log(this.merchantId);
-				let shopId = '';
-
-				if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-					path += '&merchantId=' + req.getStorage('MERCHANT').id;
-					merchantId = req.getStorage('MERCHANT').id;
-
-					if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-						path += '&shopId=' + req.getStorage('smallShop').id;
-						shopId = req.getStorage('smallShop').id;
-						merchantId = req.getStorage('smallShop').merchantDTO.id;
-					}
-				}
-
-				let url = '/activity/seckillDetails/seckillDetails?' + path;
-				route.share(2, req.getStorage('userInfo').id, url, merchantId, shopId, 6, this.query.acid + '_' + this
-					.query.id);
-				return {
-					title: this.pro.title,
-					query: path,
-					imageUrl: this.pro.pic
-				};
-			},
-
-
-			showTab: function(e) {
-				this.setData({
-					tabIndex: e.detail
-				});
-			},
-			scoreTab: function(e) {
-				this.form.page = 0;
-				this.setData({
-					current: e.detail,
-					['form.page']: 1
-				});
-			},
-			freshenFun: function(e) {
-				this.setData({
-					freshen: e.detail
-				});
-			},
-
-			// 获取品种保证
-			getGuarantee() {
-				return new Promise((data, rej) => {
-					req.getRequest('/api/config', {}, res => {
-						req.setStorage("configRes", JSON.stringify(res))
-						this.about = res
-						data(res)
-						if (this.merchant && this.merchant.isDefault == 1 || this.query.acid) {
-							// 切割;拿到数组,然后在过滤掉空值
-							if (res.b2c_service_guarantee && res.b2c_service_guarantee != null) {
-								this.setData({
-									guarantee: res.b2c_service_guarantee.split(";").filter(it => {
-										return it = it && it.trim();
-									})
-								});
-							}
-						} else {
-							if (res.o2o_service_guarantee && res.b2c_service_guarantee != null) {
-								this.setData({
-									guarantee: res.o2o_service_guarantee.split(";").filter(it => {
-										return it = it && it.trim();
-									})
-								});
-							}
-						} // if(res.Is_Store_Price_Stock){
-						//   this.setData({Is_Store_Price_Stock:res.Is_Store_Price_Stock})
-						// }
-						if (res.is_open_shop) {
-							this.is_open_shop = res.is_open_shop;
-						}
-
-						if (res.is_open_comments) {
-							this.setData({
-								is_open_comments: res.is_open_comments
-							});
-						} // this.setData({ show_membership_price: res.show_membership_price, Is_Store_Price_Stock: res.Is_Store_Price_Stock, is_open_shop: res.is_open_shop })
-
-					});
-				})
-			},
-			// 是否开启小店
-			isShop() {
-				if (req.getStorage('distribution')) {
-					dist = req.getStorage('distribution')
-					this.setData({
-						distr: dist
-					})
-					console.log(dist)
-					if (dist.distributionSmallShopOpen == 1) {
-						req.postRequest('/api/shopBase/isOpenShop', {}, data => {
-							this.setData({
-								isshop: data
-							})
-							console.log(data)
-						})
-					}
-				}
-			},
-			addShop() { //添加到小店
-				req.postRequest('/api/shopProduct/save', {
-					productId: this.act.id,
-					type: 3
-				}, data => {
-					this.act.isJoinShop = true;
-					this.isHide = false;
-				})
-			},
-			hidePop() { //添加到小店
-				this.setData({
-					isHide: true
-				})
-			},
-
-		}
-	};
-</script>
-<style>
-	@import "./seckillDetails.css";
-</style>

BIN
activity/static/activity/images/cha.png


BIN
activity/static/activity/images/clock2.png


BIN
activity/static/activity/images/guarantee.png


BIN
activity/static/activity/images/kanjia.png


BIN
activity/static/activity/images/kanle1.png


BIN
activity/static/activity/images/kanle2.png


BIN
activity/static/activity/images/kjban.jpg


BIN
activity/static/activity/images/kjbg.jpg


BIN
activity/static/activity/images/msbg.png


BIN
activity/static/activity/images/msyybg.png


BIN
activity/static/activity/images/nbzbg.png


BIN
activity/static/activity/images/ptban.jpg


BIN
activity/static/activity/images/ptban1.jpg


BIN
activity/static/activity/images/ptbg.png


BIN
activity/static/activity/images/rednaozhong.png


BIN
activity/static/activity/images/seckill.png


BIN
activity/static/activity/images/seckillDetails.png


BIN
activity/static/activity/images/seckillbg.png


BIN
activity/static/activity/images/share_pintuan.jpg


BIN
activity/static/activity/images/xrzx.png


BIN
activity/static/activity/images/xrzxbg.png


+ 372 - 0
components/l-echart/canvas.js

@@ -0,0 +1,372 @@
+const cacheChart = {}
+const fontSizeReg = /([\d\.]+)px/;
+class EventEmit {
+	constructor() {
+		this.__events = {};
+	}
+	on(type, listener) {
+		if (!type || !listener) {
+			return;
+		}
+		const events = this.__events[type] || [];
+		events.push(listener);
+		this.__events[type] = events;
+	}
+	emit(type, e) {
+		if (type.constructor === Object) {
+			e = type;
+			type = e && e.type;
+		}
+		if (!type) {
+			return;
+		}
+		const events = this.__events[type];
+		if (!events || !events.length) {
+			return;
+		}
+		events.forEach((listener) => {
+			listener.call(this, e);
+		});
+	}
+	off(type, listener) {
+		const __events = this.__events;
+		const events = __events[type];
+		if (!events || !events.length) {
+			return;
+		}
+		if (!listener) {
+			delete __events[type];
+			return;
+		}
+		for (let i = 0, len = events.length; i < len; i++) {
+			if (events[i] === listener) {
+				events.splice(i, 1);
+				i--;
+			}
+		}
+	}
+}
+class Image {
+	constructor() {
+		this.currentSrc = null
+		this.naturalHeight = 0
+		this.naturalWidth = 0
+		this.width = 0
+		this.height = 0
+		this.tagName = 'IMG'
+	}
+	set src(src) {
+		this.currentSrc = src
+		uni.getImageInfo({
+			src,
+			success: (res) => {
+				this.naturalWidth = this.width = res.width
+				this.naturalHeight = this.height = res.height
+				this.onload()
+			},
+			fail: () => {
+				this.onerror()
+			}
+		})
+	}
+	get src() {
+		return this.currentSrc
+	}
+}
+class OffscreenCanvas {
+	constructor(ctx, com, canvasId) {
+		this.tagName = 'canvas'
+		this.com = com
+		this.canvasId = canvasId
+		this.ctx = ctx
+	}
+	set width(w) {
+		this.com.offscreenWidth = w
+	}
+	set height(h) {
+		this.com.offscreenHeight = h
+	}
+	get width() {
+		return this.com.offscreenWidth || 0
+	}
+	get height() {
+		return this.com.offscreenHeight || 0
+	}
+	getContext(type) {
+		return this.ctx
+	}
+	getImageData() {
+		return new Promise((resolve, reject) => {
+			this.com.$nextTick(() => {
+				uni.canvasGetImageData({
+					x:0,
+					y:0,
+					width: this.com.offscreenWidth,
+					height: this.com.offscreenHeight,
+					canvasId: this.canvasId,
+					success: (res) => {
+						resolve(res)
+					},
+					fail: (err) => {
+						reject(err)
+					},
+				}, this.com)
+			})
+		})
+	}
+}
+export class Canvas {
+	constructor(ctx, com, isNew, canvasNode={}) {
+		cacheChart[com.canvasId] = {ctx}
+		this.canvasId = com.canvasId;
+		this.chart = null;
+		this.isNew = isNew
+		this.tagName = 'canvas'
+		this.canvasNode = canvasNode;
+		this.com = com;
+		if (!isNew) {this._initStyle(ctx)}
+		this._initEvent();
+		this._ee = new EventEmit()
+	}
+	getContext(type) {
+		if (type === '2d') {
+			return this.ctx;
+		}
+	}
+	setChart(chart) {
+		this.chart = chart;
+	}
+	createOffscreenCanvas(param){
+		if(!this.children) {
+			this.com.isOffscreenCanvas = true
+			this.com.offscreenWidth = param.width||300
+			this.com.offscreenHeight = param.height||300
+			const com = this.com
+			const canvasId = this.com.offscreenCanvasId
+			const context = uni.createCanvasContext(canvasId, this.com)
+			this._initStyle(context)
+			this.children = new OffscreenCanvas(context, com, canvasId)
+		} 
+		return this.children
+	}
+	appendChild(child) {
+		console.log('child', child)
+	}
+	dispatchEvent(type, e) {
+		if(typeof type == 'object') {
+			this._ee.emit(type.type, type);
+		} else {
+			this._ee.emit(type, e);
+		}
+		return true
+	}
+	attachEvent() {
+	}
+	detachEvent() {
+	}
+	addEventListener(type, listener) {
+		this._ee.on(type, listener)
+	}
+	removeEventListener(type, listener) {
+		this._ee.off(type, listener)
+	}
+	_initCanvas(zrender, ctx) {
+		zrender.util.getContext = function() {
+			return ctx;
+		};
+		zrender.util.$override('measureText', function(text, font) {
+			ctx.font = font || '12px sans-serif';
+			return ctx.measureText(text, font);
+		});
+	}
+	_initStyle(ctx, child) {
+		const styles = [
+			'fillStyle',
+			'strokeStyle',
+			'fontSize',
+			'globalAlpha',
+			'opacity',
+			'textAlign',
+			'textBaseline',
+			'shadow',
+			'lineWidth',
+			'lineCap',
+			'lineJoin',
+			'lineDash',
+			'miterLimit',
+			'font'
+		];
+		const colorReg = /#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])\b/g;
+		styles.forEach(style => {
+			Object.defineProperty(ctx, style, {
+				set: value => {
+					if (style === 'font' && fontSizeReg.test(value)) {
+						const match = fontSizeReg.exec(value);
+						ctx.setFontSize(match[1]);
+						return;
+					}
+					if (style === 'opacity') {
+						ctx.setGlobalAlpha(value)
+						return;
+					}
+					if (style !== 'fillStyle' && style !== 'strokeStyle' || value !== 'none' && value !== null) {
+						// #ifdef H5 || APP-PLUS || MP-BAIDU
+						if(typeof value == 'object') {
+							if (value.hasOwnProperty('colorStop') || value.hasOwnProperty('colors')) {
+								ctx['set' + style.charAt(0).toUpperCase() + style.slice(1)](value);
+							}
+							return
+						} 
+						// #endif
+						// #ifdef MP-TOUTIAO
+						if(colorReg.test(value)) {
+							value = value.replace(colorReg, '#$1$1$2$2$3$3')
+						}
+						// #endif
+						ctx['set' + style.charAt(0).toUpperCase() + style.slice(1)](value);
+					}
+				}
+			});
+		});
+		if(!this.isNew && !child) {
+			ctx.uniDrawImage = ctx.drawImage
+			ctx.drawImage = (...a) => {
+				a[0] = a[0].src
+				ctx.uniDrawImage(...a)
+			}
+		}
+		if(!ctx.createRadialGradient) {
+			ctx.createRadialGradient = function() {
+				return ctx.createCircularGradient(...[...arguments].slice(-3))
+			};
+		}
+		// 字节不支持
+		if (!ctx.strokeText) {
+			ctx.strokeText = (...a) => {
+				ctx.fillText(...a)
+			}
+		}
+		// 钉钉不支持 
+		if (!ctx.measureText) {
+			const strLen = (str) => {
+				let len = 0;
+				for (let i = 0; i < str.length; i++) {
+					if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 128) {
+						len++;
+					} else {
+						len += 2;
+					}
+				}
+				return len;
+			}
+			ctx.measureText = (text, font) => {
+				let fontSize = 12;
+				if (font) {
+					fontSize = parseInt(font.match(/([\d\.]+)px/)[1])
+				}
+				fontSize /= 2;
+				return {
+					width: strLen(text) * fontSize
+				};
+			}
+		}
+	}
+
+	_initEvent(e) {
+		this.event = {};
+		const eventNames = [{
+			wxName: 'touchStart',
+			ecName: 'mousedown'
+		}, {
+			wxName: 'touchMove',
+			ecName: 'mousemove'
+		}, {
+			wxName: 'touchEnd',
+			ecName: 'mouseup'
+		}, {
+			wxName: 'touchEnd',
+			ecName: 'click'
+		}];
+
+		eventNames.forEach(name => {
+			this.event[name.wxName] = e => {
+				const touch = e.touches[0];
+				this.chart.getZr().handler.dispatch(name.ecName, {
+					zrX: name.wxName === 'tap' ? touch.clientX : touch.x,
+					zrY: name.wxName === 'tap' ? touch.clientY : touch.y
+				});
+			};
+		});
+	}
+
+	set width(w) {
+		this.canvasNode.width = w
+	}
+	set height(h) {
+		this.canvasNode.height = h
+	}
+
+	get width() {
+		return this.canvasNode.width || 0
+	}
+	get height() {
+		return this.canvasNode.height || 0
+	}
+	get ctx() {
+		return cacheChart[this.canvasId]['ctx'] || null
+	}
+	set chart(chart) {
+		cacheChart[this.canvasId]['chart'] = chart
+	}
+	get chart() {
+		return cacheChart[this.canvasId]['chart'] || null
+	}
+}
+
+export function dispatch(name, {x,y, wheelDelta}) {
+	this.dispatch(name, {
+		zrX: x,
+		zrY: y,
+		zrDelta: wheelDelta,
+		preventDefault: () => {},
+		stopPropagation: () =>{}
+	});
+}
+export function setCanvasCreator(echarts, {canvas, node}) {
+	// echarts.setCanvasCreator(() => canvas);
+	echarts.registerPreprocessor(option => {
+		if (option && option.series) {
+			if (option.series.length > 0) {
+				option.series.forEach(series => {
+					series.progressive = 0;
+				});
+			} else if (typeof option.series === 'object') {
+				option.series.progressive = 0;
+			}
+		}
+	});
+	function loadImage(src, onload, onerror) {
+		let img = null
+		if(node && node.createImage) {
+			img = node.createImage()
+			img.onload = onload.bind(img);
+			img.onerror = onerror.bind(img);
+			img.src = src;
+			return img
+		} else {
+			img = new Image()
+			img.onload = onload.bind(img)
+			img.onerror = onerror.bind(img);
+			img.src = src
+			return img
+		}
+	}
+	if(echarts.setPlatformAPI) {
+		echarts.setPlatformAPI({
+			loadImage: canvas.setChart ? loadImage : null,
+			createCanvas(){
+				return canvas
+			}
+		})
+	}
+}

+ 516 - 0
components/l-echart/l-echart.vue

@@ -0,0 +1,516 @@
+<template>
+	<view class="lime-echart" :style="customStyle" v-if="canvasId" ref="limeEchart">
+		<!-- #ifndef APP-NVUE -->
+		<canvas
+			class="lime-echart__canvas"
+			v-if="use2dCanvas"
+			type="2d"
+			:id="canvasId"
+			:style="canvasStyle"
+			:disable-scroll="isDisableScroll"
+			@touchstart="touchStart"
+			@touchmove="touchMove"
+			@touchend="touchEnd"
+		/>
+		<canvas
+			class="lime-echart__canvas"
+			v-else-if="isPc"
+			:style="canvasStyle"
+			:id="canvasId"
+			:canvas-id="canvasId"
+			:disable-scroll="isDisableScroll"
+			@mousedown="touchStart"
+			@mousemove="touchMove"
+			@mouseup="touchEnd"
+		/>
+		<canvas
+			class="lime-echart__canvas"
+			v-else
+			:width="nodeWidth"
+			:height="nodeHeight"
+			:style="canvasStyle"
+			:canvas-id="canvasId"
+			:id="canvasId"
+			:disable-scroll="isDisableScroll"
+			@touchstart="touchStart"
+			@touchmove="touchMove"
+			@touchend="touchEnd"
+		/>
+		<canvas v-if="isOffscreenCanvas" :style="offscreenStyle" :canvas-id="offscreenCanvasId"></canvas>
+		<!-- #endif -->
+		<!-- #ifdef APP-NVUE -->
+		<web-view
+			class="lime-echart__canvas"
+			:id="canvasId"
+			:style="canvasStyle"
+			:webview-styles="webviewStyles"
+			ref="webview"
+			src="/uni_modules/lime-echart/static/index.html"
+			@pagefinish="finished = true"
+			@onPostMessage="onMessage"
+		></web-view>
+		<!-- #endif -->
+	</view>
+</template>
+
+<script>
+// #ifdef VUE3
+// #ifdef APP-PLUS
+global = {}
+// #endif
+// #endif
+// #ifndef APP-NVUE
+import {Canvas, setCanvasCreator, dispatch} from './canvas';
+import { compareVersion, wrapTouch, devicePixelRatio ,sleep} from './utils';
+// #endif
+// #ifdef APP-NVUE
+import { base64ToPath, sleep } from './utils';
+// #endif
+const charts = {}
+const echartsObj = {}
+export default {
+	name: 'lime-echart',
+	props: {
+		// #ifdef MP-WEIXIN || MP-TOUTIAO
+		type: {
+			type: String,
+			default: '2d'
+		},
+		// #endif
+		// #ifdef APP-NVUE
+		webviewStyles: Object,
+		// hybrid: Boolean,
+		// #endif
+		customStyle: String,
+		isDisableScroll: Boolean,
+		isClickable: {
+			type: Boolean,
+			default: true
+		},
+		enableHover: Boolean,
+		beforeDelay: {
+			type: Number,
+			default: 30
+		}
+	},
+	data() {
+		return {
+			// #ifdef MP-WEIXIN || MP-TOUTIAO || MP-ALIPAY
+			use2dCanvas: true,
+			// #endif
+			// #ifndef MP-WEIXIN || MP-TOUTIAO || MP-ALIPAY
+			use2dCanvas: false,
+			// #endif
+			width: null,
+			height: null,
+			nodeWidth: null,
+			nodeHeight: null,
+			canvasNode: null,
+			config: {},
+			inited: false,
+			finished: false,
+			file: '',
+			platform: '',
+			isPc: false,
+			isDown: false,
+			isOffscreenCanvas: false,
+			offscreenWidth: 0,
+			offscreenHeight: 0
+		};
+	},
+	computed: {
+		canvasId() {
+			return `lime-echart${this._ && this._.uid || this._uid}`
+		},
+		offscreenCanvasId() {
+			return `${this.canvasId}_offscreen`
+		},
+		offscreenStyle() {
+			return `width:${this.offscreenWidth}px;height: ${this.offscreenHeight}px; position: fixed; left: 99999px; background: red`
+		},
+		canvasStyle() {
+			return  this.width && this.height ? ('width:' + this.width + 'px;height:' + this.height + 'px') : ''
+		}
+	},
+	beforeDestroy() {
+		this.clear()
+		this.dispose()
+		// #ifdef H5
+		if(this.isPc) {
+			document.removeEventListener('mousewheel')
+		}
+		// #endif
+	},
+	created() {
+		// #ifdef H5
+		if(!('ontouchstart' in window)) {
+			this.isPc = true
+			document.addEventListener('mousewheel', (e) => {
+				if(this.chart) {
+					const touch = this.getTouch(e)
+					const handler = this.chart.getZr().handler;
+					dispatch.call(handler, 'mousewheel', touch)
+				}
+			})
+		}
+		// #endif
+		// #ifdef MP-WEIXIN || MP-TOUTIAO || MP-ALIPAY
+		const { SDKVersion, version, platform, environment } = uni.getSystemInfoSync();
+		// #endif
+		// #ifdef MP-WEIXIN
+		this.isPC = /windows/i.test(platform)
+		this.use2dCanvas = this.type === '2d' && compareVersion(SDKVersion, '2.9.2') >= 0 && !((/ios/i.test(platform) && /7.0.20/.test(version)) || /wxwork/i.test(environment)) && !this.isPC;
+		// #endif
+		// #ifdef MP-TOUTIAO
+		this.isPC = /devtools/i.test(platform)
+		this.use2dCanvas = this.type === '2d' && compareVersion(SDKVersion, '1.78.0') >= 0;
+		// #endif
+		// #ifdef MP-ALIPAY
+		this.use2dCanvas = this.type === '2d' && compareVersion(my.SDKVersion, '2.7.0') >= 0;
+		// #endif
+	},
+	mounted() {
+		this.$nextTick(() => {
+			this.$emit('finished')
+		})
+	},
+	methods: {
+		// #ifdef APP-NVUE
+		onMessage(e) {
+			const res = e?.detail?.data[0] || null;
+			if (res?.event) {
+				if(res.event === 'inited') {
+					this.inited = true
+				}
+				this.$emit(res.event, JSON.parse(res.data));
+			} else if(res?.file){
+				this.file = res.data
+			} else if(!res[0] && JSON.stringify(res[0]) != '{}'){
+				console.error(res);
+			} else {
+				console.log(...res)
+			}
+		},
+		// #endif
+		setChart(callback) {
+			if(!this.chart) {
+				console.warn(`组件还未初始化,请先使用 init`)
+				return
+			}
+			if(typeof callback === 'function' && this.chart) {
+				callback(this.chart);
+			}
+			// #ifdef APP-NVUE
+			if(typeof callback === 'function') {
+				this.$refs.webview.evalJs(`setChart(${JSON.stringify(callback.toString())}, ${JSON.stringify(this.roptions)})`);
+			}
+			// #endif
+		},
+		setOption() {
+			if (!this.chart || !this.chart.setOption) {
+				console.warn(`组件还未初始化,请先使用 init`)
+				return
+			}
+			// #ifndef APP-NVUE
+			this.chart.setOption(...arguments);
+			// #endif
+			// #ifdef APP-NVUE
+			this.$refs.webview.evalJs(`setOption(${JSON.stringify(arguments)})`);
+			// #endif
+		},
+		showLoading() {
+			if(this.chart) {
+				// #ifndef APP-NVUE
+				this.chart.showLoading(...arguments)
+				// #endif
+				// #ifdef APP-NVUE
+				this.$refs.webview.evalJs(`showLoading(${JSON.stringify(arguments)})`);
+				// #endif
+			}
+		},
+		hideLoading() {
+			if(this.chart) {
+				// #ifndef APP-NVUE
+				this.chart.hideLoading()
+				// #endif
+				// #ifdef APP-NVUE
+				this.$refs.webview.evalJs(`hideLoading()`);
+				// #endif
+			}
+		},
+		clear() {
+			if(this.chart) {
+				// #ifndef APP-NVUE
+				this.chart.clear()
+				// #endif
+				// #ifdef APP-NVUE
+				this.$refs.webview.evalJs(`clear()`);
+				// #endif
+			}
+		},
+		dispose() {
+			if(this.chart) {
+				// #ifndef APP-NVUE
+				this.chart.dispose()
+				// #endif
+				// #ifdef APP-NVUE
+				this.$refs.webview.evalJs(`dispose()`);
+				// #endif
+			}
+		},
+		resize(size) {
+			if(size && size.width && size.height) {
+				this.height = size.height
+				this.width = size.width
+				if(this.chart) {this.chart.resize(size)}
+				// #ifdef APP-NVUE
+				this.$refs.webview.evalJs(`resize(${size})`);
+				// #endif
+			} else {
+				this.$nextTick(() => {
+					// #ifndef APP-NVUE
+					uni.createSelectorQuery()
+						.in(this)
+						.select(`.lime-echart`)
+						.boundingClientRect()
+						.exec(res => {
+							if (res) {
+								let { width, height } = res[0];
+								this.width = width = width || 300;
+								this.height = height = height || 300;
+								this.chart.resize({width, height})
+							}
+						});
+					// #endif
+					// #ifdef APP-NVUE
+					this.$refs.webview.evalJs(`resize()`);
+					// #endif
+				})
+				
+			}
+			
+		},
+		canvasToTempFilePath(args = {}) {
+			// #ifndef APP-NVUE
+			const { use2dCanvas, canvasId, canvasNode } = this;
+			return new Promise((resolve, reject) => {
+				const copyArgs = Object.assign({
+					canvasId,
+					success: resolve,
+					fail: reject
+				}, args);
+				if (use2dCanvas) {
+					delete copyArgs.canvasId;
+					copyArgs.canvas = canvasNode;
+				}
+				uni.canvasToTempFilePath(copyArgs, this);
+			});
+			// #endif
+			// #ifdef APP-NVUE
+			this.file = ''
+			this.$refs.webview.evalJs(`canvasToTempFilePath()`);
+			return new Promise((resolve, reject) => {
+				this.$watch('file', async (file) => {
+					if(file) {
+						const tempFilePath = await base64ToPath(file)
+						resolve(args.success({tempFilePath}))
+					} else {
+						reject(args.fail({error: ``}))
+					}
+				})
+			})
+			// #endif
+		},
+		async init(echarts, ...args) {
+			// #ifdef APP-NVUE
+			if(arguments && !arguments.length) {
+				console.error('缺少参数:init(theme?:string, opts?: object, callback: function)')
+				return
+			}
+			// #endif
+			// #ifndef APP-NVUE
+			if(arguments && arguments.length < 2) {
+				console.error('缺少参数:init(echarts, theme?:string, opts?: object, callback: function)')
+				return
+			}
+			// #endif
+			let theme=null,opts={},callback;
+			
+			Array.from(arguments).forEach(item => {
+				if(typeof item === 'function') {
+					callback = item
+				}
+				if(['string'].includes(typeof item)) {
+					theme = item
+				}
+				if(typeof item === 'object') {
+					opts = item
+				}
+			})
+			
+			if(this.beforeDelay) {
+				await sleep(this.beforeDelay)
+			}
+			let config = await this.getContext();
+			// #ifndef APP-NVUE
+			if(typeof callback === 'function') {
+				setCanvasCreator(echarts, config)
+				this.chart = echarts.init(config.canvas, theme, Object.assign({}, config, opts))
+				callback(this.chart)
+			} else {
+				console.error('callback 非 function')
+			}
+			// #endif
+			// #ifdef APP-NVUE
+			if(callback) {
+				this.chart = {
+					setOption: (options) => {
+						this.roptions = options
+					}
+				}
+				callback(this.chart)
+				this.$refs.webview.evalJs(`init(${JSON.stringify(callback.toString())}, ${JSON.stringify(this.roptions)}, ${JSON.stringify(opts)}, ${theme})`)
+			} else {
+				console.error('callback 非 function')
+			}
+			// #endif
+		},
+		getContext() {
+			// #ifdef APP-NVUE
+			if(this.finished) {
+				return Promise.resolve(this.finished)
+			}
+			return new Promise(resolve => {
+				this.$watch('finished', (val) => {
+					if(val) {
+						resolve(this.finished)
+					}
+				})
+			})
+			// #endif
+			// #ifndef APP-NVUE
+			const { use2dCanvas} = this;
+			let dpr = devicePixelRatio
+			if (use2dCanvas) {
+				return new Promise(resolve => {
+					uni.createSelectorQuery()
+						.in(this)
+						.select(`#${this.canvasId}`)
+						.fields({
+							node: true,
+							size: true
+						})
+						.exec(res => {
+							let { node, width, height } = res[0];
+							this.width = width = width || 300;
+							this.height = height = height || 300;
+							const ctx = node.getContext('2d');
+							const canvas = new Canvas(ctx, this, true, node);
+							this.canvasNode = node
+							resolve({ canvas, width, height, devicePixelRatio: dpr, node });
+						});
+				});
+			}
+			return new Promise(resolve => {
+				uni.createSelectorQuery()
+					.in(this)
+					.select(`#${this.canvasId}`)
+					.boundingClientRect()
+					.exec(res => {
+						if (res) {
+							let { width, height } = res[0];
+							this.width = width = width || 300;
+							this.height = height = height || 300;
+							// #ifdef MP-TOUTIAO
+							dpr = !this.isPC ? devicePixelRatio : 1// 1.25
+							// #endif
+							// #ifndef MP-ALIPAY || MP-TOUTIAO
+							dpr = this.isPC ? devicePixelRatio : 1
+							// #endif
+							// #ifdef MP-ALIPAY || MP-LARK
+							dpr = devicePixelRatio
+							// #endif
+							this.rect = res[0]
+							this.nodeWidth = width * dpr;
+							this.nodeHeight = height * dpr;
+							const ctx = uni.createCanvasContext(this.canvasId, this);
+							const canvas =  new Canvas(ctx, this, false);
+							resolve({ canvas, width, height, devicePixelRatio: dpr });
+						}
+					});
+			});
+			// #endif
+		},
+		// #ifndef APP-NVUE
+		getRelative(e) {
+			return {x: e.pageX - this.rect.left, y: e.pageY - this.rect.top, wheelDelta: e.wheelDelta}
+		},
+		getTouch(e) {
+			return e.touches && e.touches[0] && e.touches[0].x ? e.touches[0] : this.getRelative(e);
+		},
+		touchStart(e) {
+			this.isDown = true
+			if (this.chart && ((e.touches.length > 0 || e.touches['0'])  && e.type != 'mousemove' || e.type == 'mousedown')) {
+				const touch = this.getTouch(e)
+				this.startX = touch.x
+				this.startY = touch.y
+				this.startT = new Date()
+				const handler = this.chart.getZr().handler;
+				dispatch.call(handler, 'mousedown', touch)
+				dispatch.call(handler, 'mousemove', touch)
+				handler.processGesture(wrapTouch(e), 'start');
+				clearTimeout(this.endTimer);
+			}
+		},
+		touchMove(e) {
+			if(this.isPc && this.enableHover && !this.isDown) {this.isDown = true}
+			if (this.chart && ((e.touches.length > 0 || e.touches['0']) && e.type != 'mousemove' || e.type == 'mousemove' && this.isDown)) {
+				const handler = this.chart.getZr().handler;
+				dispatch.call(handler, 'mousemove', this.getTouch(e))
+				handler.processGesture(wrapTouch(e), 'change');
+			}
+		},
+		touchEnd(e) {
+			this.isDown = false
+			if (this.chart) {
+				const {x} = e.changedTouches && e.changedTouches[0] || {}
+				const touch = (x ? e.changedTouches[0] : this.getRelative(e)) || {};
+				const handler = this.chart.getZr().handler;
+				const isClick = Math.abs(touch.x - this.startX) < 10 && new Date() - this.startT < 200;
+				dispatch.call(handler, 'mouseup', touch)
+				handler.processGesture(wrapTouch(e), 'end');
+				if(isClick) {
+					dispatch.call(handler, 'click', touch)
+				} else {
+					this.endTimer = setTimeout(() => {
+						dispatch.call(handler, 'mousemove', {x: 999999999,y: 999999999});
+						dispatch.call(handler, 'mouseup', {x: 999999999,y: 999999999});
+					},50)
+				}
+			}
+		}
+		// #endif
+	}
+};
+</script>
+<style scoped>
+.lime-echart {
+	position: relative;
+	/* #ifndef APP-NVUE */
+	width: 100%;
+	height: 100%;
+	/* #endif */
+	/* #ifdef APP-NVUE */
+	flex: 1;
+	/* #endif */
+}
+.lime-echart__canvas {
+	/* #ifndef APP-NVUE */
+	width: 100%;
+	height: 100%;
+	/* #endif */
+	/* #ifdef APP-NVUE */
+	flex: 1;
+	/* #endif */
+}
+</style>

+ 245 - 0
components/l-echart/readme.md

@@ -0,0 +1,245 @@
+# echarts 图表 <span style="font-size:16px;">👑👑👑👑👑 <span style="background:#ff9d00;padding:2px 4px;color:#fff;font-size:10px;border-radius: 3px;">全端</span></span>
+> 一个基于 JavaScript 的开源可视化图表库   [查看更多 站点1](https://limeui.qcoon.cn/#/echart) |  [查看更多 站点2](http://liangei.gitee.io/limeui/#/echart)  <br>
+> 基于 echarts 做了兼容处理,更多示例请访问  [uni示例 站点1](https://limeui.qcoon.cn/#/echart-example) | [uni示例 站点2](http://liangei.gitee.io/limeui/#/echart-example) | [官方示例](https://echarts.apache.org/examples/zh/index.html)     <br>
+> Q群:1046793420 <br>
+
+## 平台兼容
+
+| H5  | 微信小程序 | 支付宝小程序 | 百度小程序 | 头条小程序 | QQ 小程序 | App  |
+| --- | ---------- | ------------ | ---------- | ---------- | --------- | ---- |
+| √   | √          | √         | √      | √       | √      | √ |
+
+
+## 安装
+- 第一步、在uniapp 插件市场 找到 [百度图表](https://ext.dcloud.net.cn/plugin?id=4899) 导入
+- 第二步、安装 echarts 或者直接使用插件内的echarts.min文件
+```cmd
+pnpm add echarts
+ -or-
+npm install echarts
+```
+
+
+**注意** 
+* 🔔 必须使用hbuilderx 3.4.8-alpha及以上
+* 🔔 echarts 5.3.0及以上
+* 🔔 如果是 `cli` 项目需要主动 `import` 插件
+```js
+import LEchart from '@/uni_modules/lime-echart/components/l-echart/l-echart.vue';
+export default {
+	components: {LEchart}
+}
+```
+
+## 代码演示
+### 基础用法
+```html
+<view><l-echart ref="chart" @finished="init"></l-echart></view>
+```
+
+```js
+// 如果你使用插件内提供的echarts.min
+// 也可以自行去官网下载自定义覆盖
+// 这种方式仅限于vue2
+import * as echarts from '@/uni_modules/lime-echart/static/echarts.min'
+//---or----------------------------------
+
+// 如果你使用 npm 安装了 echarts --------- 使用以下方式
+// 引入全量包
+import * as echarts from 'echarts'
+//---or----------------------------------
+
+// 按需引入 开始
+import * as echarts from 'echarts/core';
+import {LineChart, BarChart} from 'echarts/charts';
+import {TitleComponent,TooltipComponent,GridComponent, DatasetComponent, TransformComponent, LegendComponent } from 'echarts/components';
+// 标签自动布局,全局过渡动画等特性
+import {LabelLayout,UniversalTransition} from 'echarts/features';
+// 引入 Canvas 渲染器,注意引入 CanvasRenderer 是必须的一步
+import {CanvasRenderer} from 'echarts/renderers';
+
+// 注册必须的组件
+echarts.use([
+	LegendComponent,
+	TitleComponent,
+	TooltipComponent,
+	GridComponent,
+	DatasetComponent,
+	TransformComponent,
+	LineChart,
+	BarChart,
+	LabelLayout,
+	UniversalTransition,
+	CanvasRenderer
+]);
+//-------------按需引入结束------------------------
+
+
+export default {
+	data() {
+		return {
+			option: {
+				tooltip: {
+					trigger: 'axis',
+					axisPointer: {
+						type: 'shadow' 
+					},
+					confine: true
+				},
+				legend: {
+					data: ['热度', '正面', '负面']
+				},
+				grid: {
+					left: 20,
+					right: 20,
+					bottom: 15,
+					top: 40,
+					containLabel: true
+				},
+				xAxis: [
+					{
+						type: 'value',
+						axisLine: {
+							lineStyle: {
+								color: '#999999'
+							}
+						},
+						axisLabel: {
+							color: '#666666'
+						}
+					}
+				],
+				yAxis: [
+					{
+						type: 'category',
+						axisTick: { show: false },
+						data: ['汽车之家', '今日头条', '百度贴吧', '一点资讯', '微信', '微博', '知乎'],
+						axisLine: {
+							lineStyle: {
+								color: '#999999'
+							}
+						},
+						axisLabel: {
+							color: '#666666'
+						}
+					}
+				],
+				series: [
+					{
+						name: '热度',
+						type: 'bar',
+						label: {
+							normal: {
+								show: true,
+								position: 'inside'
+							}
+						},
+						data: [300, 270, 340, 344, 300, 320, 310],
+					},
+					{
+						name: '正面',
+						type: 'bar',
+						stack: '总量',
+						label: {
+							normal: {
+								show: true
+							}
+						},
+						data: [120, 102, 141, 174, 190, 250, 220]
+					},
+					{
+						name: '负面',
+						type: 'bar',
+						stack: '总量',
+						label: {
+							normal: {
+								show: true,
+								position: 'left'
+							}
+						},
+						data: [-20, -32, -21, -34, -90, -130, -110]
+					}
+				]
+			},
+		};
+	},
+	// 组件能被调用必须是组件的节点已经被渲染到页面上
+	// 1、在页面mounted里调用,有时候mounted 组件也未必渲染完成
+	mounted() {
+		// init(echarts, theme?:string, opts?:{}, chart => {})
+		// echarts 必填, 非nvue必填,nvue不用填
+		// theme 可选,应用的主题,目前只支持名称,如:'dark'
+		// opts = { // 可选
+		//	locale?: string  // 从 `5.0.0` 开始支持
+		// }
+		// chart => {} , callback 必填,返回图表实例
+		this.$refs.chart.init(echarts, chart => {
+			chart.setOption(this.option);
+		});
+	},
+	// 2、或者使用组件的finished事件里调用
+	methods: {
+		init() {
+			this.$refs.chart.init(echarts, chart => {
+				chart.setOption(this.option);
+			});
+		}
+	}
+}
+```
+
+## 数据更新
+- 使用 `ref` 可获取`setOption`设置更新
+
+```js
+this.$refs.chart.setOption(data)
+```
+
+## 图表大小
+- 在有些场景下,我们希望当容器大小改变时,图表的大小也相应地改变。
+
+```js
+// 默认获取容器尺寸
+this.$refs.chart.resize()
+// 指定尺寸
+this.$refs.chart.resize({width: 375, height: 375})
+```
+
+
+## 常见问题
+- 微信小程序 `2d` 只支持 真机调试2.0
+- 微信开发工具会出现canvas不跟随页面的情况,真机不影响
+- toolbox 不支持 `saveImage`
+- echarts 5.3.0 的 lines 不支持 trailLength,故需设置为 `0`
+- dataZoom H5不要设置 `showDetail` 
+
+
+## Props
+
+| 参数             | 说明                                                            | 类型             | 默认值        | 版本 	|
+| ---------------  | --------                                                        | -------         | ------------ | ----- 	|
+| custom-style     | 自定义样式                                                      |   `string`       | -            | -     	|
+| type             | 指定 canvas 类型                                				 |    `string`      | `2d`         |   	    |
+| is-disable-scroll | 触摸图表时是否禁止页面滚动                                       |    `boolean`     | `false`     |   	    |
+| beforeDelay       |  延迟初始化 (毫秒)                       						|    `number`     | `30`     |   	    |
+| enableHover       |  PC端使用鼠标悬浮                       						|    `boolean`     | `false`     |   	    |
+
+## 事件
+
+| 参数                    | 说明                                                                                                             |
+| ---------------        | ---------------                                                                                                  |
+| init(echarts, chart => {})  | 初始化调用函数,第一个参数是传入`echarts`,第二个参数是回调函数,回调函数的参数是 `chart` 实例                                           |  
+| setChart(chart => {})        | 已经初始化后,请使用这个方法,是个回调函数,参数是 `chart` 实例                  |  
+| setOption(data)        | [图表配置项](https://echarts.apache.org/zh/option.html#title),用于更新 ,传递是数据 `option`  |  
+| clear()                | 清空当前实例,会移除实例中所有的组件和图表。  |  
+| dispose()              | 销毁实例  |  
+| showLoading()          | 显示加载  |  
+| hideLoading()          | 隐藏加载  |  
+| [canvasToTempFilePath](https://uniapp.dcloud.io/api/canvas/canvasToTempFilePath.html#canvastotempfilepath)(opt)  | 用于生成图片,与官方使用方法一致,但不需要传`canvasId`  |  
+
+
+## 打赏
+如果你觉得本插件,解决了你的问题,赠人玫瑰,手留余香。  
+
+![输入图片说明](https://static-6d65bd90-8508-4d6c-abbc-a4ef5c8e49e7.bspapp.com/image/222521_bb543f96_518581.jpeg "微信图片编辑_20201122220352.jpg")
+![输入图片说明](https://static-6d65bd90-8508-4d6c-abbc-a4ef5c8e49e7.bspapp.com/image/wxplay.jpg "wxplay.jpg")

+ 74 - 0
components/l-echart/utils.js

@@ -0,0 +1,74 @@
+// #ifndef APP-NVUE
+// 计算版本
+export function compareVersion(v1, v2) {
+	v1 = v1.split('.')
+	v2 = v2.split('.')
+	const len = Math.max(v1.length, v2.length)
+	while (v1.length < len) {
+		v1.push('0')
+	}
+	while (v2.length < len) {
+		v2.push('0')
+	}
+	for (let i = 0; i < len; i++) {
+		const num1 = parseInt(v1[i], 10)
+		const num2 = parseInt(v2[i], 10)
+
+		if (num1 > num2) {
+			return 1
+		} else if (num1 < num2) {
+			return -1
+		}
+	}
+	return 0
+}
+
+export function wrapTouch(event) {
+  for (let i = 0; i < event.touches.length; ++i) {
+    const touch = event.touches[i];
+    touch.offsetX = touch.x;
+    touch.offsetY = touch.y;
+  }
+  return event;
+}
+export const devicePixelRatio = wx.getSystemInfoSync().pixelRatio
+// #endif
+// #ifdef APP-NVUE
+export function base64ToPath(base64) {
+	return new Promise((resolve, reject) => {
+		const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64) || [];
+		const bitmap = new plus.nativeObj.Bitmap('bitmap' + Date.now())
+		bitmap.loadBase64Data(base64, () => {
+			if (!format) {
+				reject(new Error('ERROR_BASE64SRC_PARSE'))
+			}
+			const time = new Date().getTime();
+			const filePath = `_doc/uniapp_temp/${time}.${format}`
+			
+			bitmap.save(filePath, {}, 
+				() => {
+					bitmap.clear()
+					resolve(filePath)
+				}, 
+				(error) => {
+					bitmap.clear()
+					console.error(`${JSON.stringify(error)}`)
+					reject(error)
+				})
+		}, (error) => {
+			bitmap.clear()
+			console.error(`${JSON.stringify(error)}`)
+			reject(error)
+		})
+	})
+}
+// #endif
+
+
+export function sleep(time) {
+	return new Promise((resolve) => {
+		setTimeout(() => {
+			resolve(true)
+		},time)
+	})
+}

+ 0 - 26
htmllogin/login/login.css

@@ -1,26 +0,0 @@
-/* login.css */
-.pages {padding: 135rpx 70rpx 50rpx;}
-.dlbg{position: fixed;top: 0;right: 0;width: 353rpx;height: 332rpx;}
-.title {font-size: 52rpx;color: #303338;font-weight: bold;margin: 0 0 125rpx;}
-.item {height: 113rpx;align-items: center;border-bottom: 1rpx solid #EBF2FF;}
-.item image {display: block;width: 28rpx;height: 36rpx;margin-right: 16rpx;}
-.item input {font-size: 32rpx;color: #303338;height: 113rpx;line-height: 60rpx;padding: 20rpx 0;flex: 1;box-sizing: border-box;}
-.placegolder{color: #B9BABB;}
-.xieyi{font-size: 26rpx;color: #8C929D;margin: 30rpx 0 0;}
-.xieyi image{width: 28rpx;height: 28rpx;margin-right: 14rpx;}
-.xieyi navigator{color: var(--mina);}
-
-.huoqu {display: block;border: 2rpx solid var(--mina);font-size: 28rpx;color: var(--mina);border-radius: 30rpx;height: 64rpx;line-height: 60rpx;width: 200rpx;text-align: center;box-sizing: border-box;}
-.huoqu[disabled]{border-color: #B9BABB;}
-button::after {
-	 border: none;
-}
-.submit {height: 90rpx;background: var(--mina);border-radius: 45rpx;line-height: 90rpx;font-size: 32rpx;color: #fff;letter-spacing: 20rpx;margin-top: 65rpx;text-align: center;}
-.bot{font-size: 30rpx;color: #5F6269;justify-content: space-between;margin: 40rpx 0 0;}
-.other{font-size: 30rpx;color: #B9BABB;justify-content: center;margin: 100rpx 0 0;}
-.other::before,.other::after{content: '';display: block;width: 165rpx;height: 2rpx;background: #E2E8ED;}
-.other::before{margin-right: 48rpx;}
-.other::after{margin-left: 48rpx;}
-.list{justify-content: center;padding: 60rpx 0 0;}
-.list .li{font-size: 30rpx;color: #5F6269;text-align: center;}
-.list .li image{width: 98rpx;height: 98rpx;margin: 0 auto 20rpx;}

+ 0 - 170
htmllogin/login/login.vue

@@ -1,170 +0,0 @@
-<template>
-	<view class="pages">
-		<image src="../static/common/images/dlbg.png" class="dlbg"></image>
-		<view class="title">用户登录</view>
-		<view class="item dflex"><input type="number" maxlength="11" focus placeholder="请输入手机号"
-				placeholder-class="placegolder" v-model="mobile" /></view>
-
-		<view class="item dflex" v-if="isLoginType == 0">
-			<input type="number" maxlength="6" placeholder="请输入验证码" placeholder-class="placegolder" v-model="code" />
-			<view class="huoqu"  @click="getCode()"
-				v-text="sendMsg"></view>
-		</view>
-		<view class="item dflex" v-else><input placeholder="请输入密码" password="true" placeholder-class="placegolder"
-				type="text" v-model="pwd" /></view>
-		<view class="xieyi dflex">
-			<image :src="'../static/common/images/' + (isCheckXY ? 'xyico_h' : 'xyico') + '.png'" @click="checkXY()">
-			</image>
-			<view class="dflex">
-				<text @click="checkXY()">已经阅读并同意</text>
-				<navigator :url="'/mine/page/page?title=用户协议&isXieyi=true'" hover-class="none">《用户隐私协议》</navigator>
-			</view>
-		</view>
-		<view class="submit" @click="submitLogin">登录</view>
-		<view class="bot dflex">
-			<!-- <navigator url="/comm/code/code" hover-class="none" @click="swiLoginWay()">{{ isLoginType == 0 ? '账号密码登录' : '验证码登录' }}</navigator> -->
-			<!-- <navigator url="/comm/password/password" hover-class="none">忘记密码?</navigator> -->
-		</view>
-		<view class="other dflex">更多登录方式</view>
-		<view class="list dflex">
-			<view class="li" @click="wxLogin()">
-				<image src="../static/common/images/wechat.png"></image>
-				<text>微信授权登录</text>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	const api = require('../../utils/api.js');
-	const util = require('../../utils/util.js');
-	const req = require('../../utils/request.js');
-
-	export default {
-		data() {
-			return {
-				isCheckXY: false,
-				isGetCodeDisabled: false,
-				isLoginType: 0,
-				mobile: '', //手机号
-				code: '', //code
-				pwd: '', //密码
-				sendMsg: '获取验证码'
-			};
-		},
-		onLoad() {},
-		onShow() {},
-
-		methods: {
-			wxLogin() {
-				uni.redirectTo({
-					url: '/comm/authorize/authorize'
-				})
-				// uni.login({
-				// 	provider: 'weixin',
-				// 	success: function(loginRes) {
-				// 		console.log('微信登录返回的微信数据>>>>>>', loginRes.authResult);
-				// 	}
-				// });
-			},
-			checkXY() {
-				this.isCheckXY = !this.isCheckXY;
-			},
-			//切换登录方式
-			swiLoginWay() {
-				if (this.isLoginType == 0) {
-					this.isLoginType = 1;
-				} else {
-					this.isLoginType = 0;
-				}
-			},
-
-			getCode() {
-				if(this.isGetCodeDisabled==true) return false
-				if (!this.mobile) {
-					req.msg('请输入手机号');
-					return;
-				}
-				// console.log(!util.isMobile(this.mobile))
-				if (!util.isMobile(this.mobile)) {
-					req.msg('请输入11位有效手机号');
-					return;
-				}
-				req.postRequest(api.api_sms_login, {
-						mobile: this.mobile
-					},
-					data => {
-						req.msg('验证码获取成功');
-						let time = 60;
-						let interval = setInterval(() => {
-							time--;
-							if (time == 0) {
-								this.isGetCodeDisabled = false;
-								this.sendMsg = '获取验证码';
-								clearInterval(interval);
-							} else {
-								this.isGetCodeDisabled = true;
-								this.sendMsg = time + '秒后再获取';
-							}
-						}, 1000);
-					},
-					true
-				);
-			},
-			submitLogin: function() {
-				var dataP = {};
-				var apiUrl = '';
-				if (!this.mobile) {
-					req.msg('请输入手机号');
-					return;
-				}
-				if (!util.isMobile(this.mobile)) {
-					req.msg('请输入11位有效手机号');
-					return;
-				}
-
-				if (this.isLoginType == 0) {
-					apiUrl = api.api_code_login;
-					if (!this.code) {
-						req.msg('请输入验证码');
-						return;
-					}
-					dataP.phone = this.mobile;
-					dataP.code = this.code;
-				} else {
-					apiUrl = api.api_account_login;
-					if (!this.pwd) {
-						req.msg('请输入密码');
-						return;
-					}
-					dataP.account = this.mobile;
-					dataP.password = this.pwd;
-				}
-
-				if (!this.isCheckXY) {
-					req.msg('请先阅读并同意《用户隐私协议》');
-					return;
-				}
-				req.postRequest(
-					apiUrl,
-					dataP,
-					data => {
-						// console.log('登录完成》》》》', data);
-						//缓存用户数据
-						req.setStorage('userInfo', data);
-						req.setStorage('AUTH_TOKEN', data.token);
-						uni.navigateBack();
-					},
-					true
-				);
-			}
-		}
-	};
-</script>
-
-<style>
-	@import './login.css';
-	page {
-		background: #fff;
-	}
-</style>

BIN
htmllogin/static/common/images/dlbg.png


BIN
htmllogin/static/common/images/wechat.png


BIN
htmllogin/static/common/images/xyico.png


BIN
htmllogin/static/common/images/xyico_h.png


+ 0 - 12
integralShop/activity/index.css

@@ -1,12 +0,0 @@
-page{background: #fff;}
-.line{height: 10rpx;background: #F5F5F5;}
-.list{padding: 0 30rpx 30rpx;}
-.list .li{box-shadow: 0 5rpx 12rpx 1rpx rgba(0,67,101,0.08);border-radius: 10rpx;margin-top: 30rpx;}
-.li-img{width: 100%;height: 360rpx;border-radius: 10rpx 10rpx 0 0;}
-.info{padding: 25rpx 30rpx 30rpx;}
-.title{font-size: 30rpx;color: #333;}
-.time{margin-top: 15rpx;font-size: 24rpx;color: #999;}
-.time image{width: 25rpx;height: 25rpx;margin-right: 11rpx;}
-.opt{margin-top: 20rpx;font-size: 24rpx;color: #999;justify-content: space-between;}
-.opt-btn{margin-left: 50rpx;}
-.opt-btn image{width: 33rpx;height: 33rpx;margin-right: 8rpx;}

+ 0 - 107
integralShop/activity/index.vue

@@ -1,107 +0,0 @@
-<template>
-	<view>
-		<view class="line"></view>
-		<view class="list" v-if="contentList && contentList.length > 0">
-			<!-- :url="'/topic/content/content?id=' + item.id" -->
-			<navigator :url="'/integralshop/content/content?id=' + item.id" hover-class="none" class="li" v-for="(item, index) in contentList" :key="index">
-				<image :src="item.pic" mode="aspectFill" class="li-img"></image>
-				<view class="info">
-					<view class="title">{{ item.title }}</view>
-					<view class="time ddflex">
-						<image src="../../static/pages/images/nearbytime.png"></image>
-						{{ item.createDate }}
-					</view>
-					<view class="opt ddflex" v-if="!bindId">
-						<view class="browse">{{item.browse}}次浏览</view>
-						<!-- <view class="ddflex">
-							<view class="opt-btn ddflex">
-								<image src="../../static/images/like.png"></image>
-								99+
-							</view>
-							<view class="opt-btn ddflex">
-								<image src="../../static/images/comment.png"></image>
-								99+
-							</view>
-							<view class="opt-btn ddflex">
-								<image src="../../static/images/jifen.png"></image>
-								+50
-							</view>
-						</view> -->
-					</view>
-				</view>
-			</navigator>
-		</view>
-
-		<view class="nodata" v-else>
-			<image :src="picUrlss + 'empty_dd.png'"></image>
-			<text>暂无活动</text>
-		</view>
-	</view>
-</template>
-
-<script>
-// pages/sort/sort.js
-//获取应用实例
-const app = getApp();
-const req = require('../../utils/request.js');
-
-export default {
-	data() {
-		return {
-			picUrlss: req.public.picUrls,
-			bindId: '',
-			form: {
-				page: 1,
-				limit: 10
-			},
-			contentList: [],
-			isLoad: true
-		};
-	},
-
-	onLoad: async function(options) {
-		this.bindId = options.bindId;
-		// if (this.bindId) {
-		this.getContentList(true);
-		// }
-	},
-
-	onShow() {},
-
-	onReachBottom() {
-		this.form.page++;
-		this.getContentList(false);
-	},
-
-	methods: {
-		getContentList(isShow) {
-			if (!this.isLoad) return false;
-			this.isLoad = false;
-			let form = this.form;
-			if (this.bindId) {
-				form.cid = this.bindId;
-			} else {
-				//获取个人数据
-				form.isMyData = 1;
-			}
-			req.getRequest(
-				'/api/content/list',
-				form,
-				res => {
-					if (res && res.length == 10) {
-						this.isLoad = true;
-					}
-					if (this.form.page > 1) {
-						res = this.contentList.concat(res);
-					}
-					this.contentList = res;
-				},
-				isShow
-			);
-		}
-	}
-};
-</script>
-<style>
-@import './index.css';
-</style>

+ 0 - 65
integralShop/cart/cart.css

@@ -1,65 +0,0 @@
-/* pages/cart/cart.wxss */
-.page{padding: 0 20rpx 105rpx;}
-.cart{margin: 20rpx 0 0;background: #fff;border-radius: 10rpx;}
-.dian{height: 99rpx;border-bottom: 2rpx solid #E5E5E5;padding: 0 20rpx;align-items: center;}
-.dian view{font-size: 30rpx;color: #333;font-weight: bold;}
-.list .li{display: flex;display: -webkit-flex;align-items: center;background: #fff;border-radius: 10rpx;padding: 0 20rpx 20rpx 14rpx;}
-.info{border-bottom: 2rpx solid #efefef;padding: 20rpx 0;overflow: hidden;}
-.checkbox{width: 54rpx;height: 180rpx;}
-.check{display: block;width: 34rpx;height: 34rpx;margin-top: 73rpx;}
-.dian .check{margin-top: 0;margin-right: 20rpx;}
-.cimgs{position: relative;width: 180rpx;height: 180rpx;box-sizing: border-box;border: 2rpx solid #E5E5E5;border-radius: 10rpx;margin-right: 20rpx;}
-.type{width: 82rpx;height: 36rpx;position: absolute;top: 10rpx;left: 10rpx;}
-.cimg{width: 100%;height: 100%;}
-.gys{text-align: center;position: absolute;top: 137rpx;background: rgba(0,0,0,.6);width: 179rpx;color: white;}
-.zhinfo{flex:1;-webkit-flex: 1;overflow: hidden;position: relative;}
-.list .li:last-child .info{border-bottom: none;}
-.zhtit{font-size: 30rpx;color: #212121;line-height: 34rpx;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;}
-.guigecontent{  
-  margin-top: 5rpx;
-  font-size: 22rpx;color: #999;
-  display: flex;  
-  flex-direction: row;  
-}
-.guige{font-size: 22rpx;color: #999;}
-.jiage{display: flex;display: -webkit-flex;align-items: center;justify-content: space-between;margin-top: 45rpx;}
-.zhjia{font-size: 36rpx;color: #FE0419;}
-.zhjia text{font-size: 28rpx;}
-.num{height: 44rpx;box-sizing: border-box;display: flex;display: -webkit-flex;align-items: center;text-align: center;}
-.jian{display: block;width: 56rpx;height: 44rpx;font-size: 30rpx;color: #333;}
-.nums{display: block;line-height: 44rpx;font-size: 28rpx;color: #333;width: 66rpx;background: #F0F0F0;border-radius: 6rpx;}
-.bot{background: #fff;height: 85rpx;position: fixed;left: 0;right: 0;bottom: 0;z-index: 80;display: flex;display: -webkit-flex;align-items: center;border-bottom: 1rpx solid #fafafa;}
-.botl{flex: 1;-webkit-flex: 1;display: flex;display: -webkit-flex;padding: 0 0 0 20rpx;}
-.botl .check{margin-top: 0;margin-right: 20rpx;}
-.all{display: flex;display: -webkit-flex;align-items: center;font-size: 24rpx;color: #6a6a6a;}
-.heji{line-height: 85rpx;font-size: 28rpx;color: #333;margin-left: 20rpx;}
-.heji text{color: #e80113;}
-.editc{height: 85rpx;line-height: 85rpx;padding: 0 30rpx;background: #EA452E;}
-.edit{font-size: 26rpx;color: #fff;}
-.jiesuan{width: 172rpx;height: 85rpx;line-height: 85rpx;background: var(--mina);font-size: 26rpx;color: #fff;text-align: center;}
-
-.putong{margin-top: 30rpx;}
-
-/* 猜你喜欢 */
-.cai{padding-bottom: 30rpx;}
-.cai-tit{align-items: center;justify-content: center;font-size: 30rpx;color: #EA6730;font-weight: bold;margin-bottom: 30rpx;}
-.cai-tit image{width: 63rpx;height: 5rpx;}
-.cai-tit image:first-child{margin-right: 20rpx;}
-.cai-tit image:last-child{margin-left: 20rpx;}
-.tabcon{flex-wrap: wrap;}
-.tabcon .li{background: #fff;border-radius: 10rpx;width: 345rpx;margin: 20rpx 20rpx 0 0;}
-.tabcon .li:nth-child(2n){margin-right: 0;}
-.jsdimgs{width: 345rpx;height: 345rpx;position: relative;}
-.jsdpro{width: 100%;height: 100%;}
-.jsdimg{width: 82rpx;height: 36rpx;position: absolute;top: 20rpx;left: 20rpx;}
-.jsdinfo{padding: 15rpx 20rpx 30rpx;}
-.proname{font-size: 28rpx;color: #333;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;margin-bottom: 20rpx;}
-.operate{justify-content: space-between;align-items: center;}
-.price{font-size: 24rpx;color: #FE0419;}
-.price text{font-size: 36rpx;font-weight: bold;}
-.price .del{font-weight: normal;font-size: 24rpx;color: #999;margin-left: 12rpx;text-decoration: line-through;}
-.add-cart image{width: 42rpx;height: 42rpx;}
-
-.integral{color: #FE0419;}
-.integral .intnum{font-size: 36rpx;}
-.integral .money{font-size: 28rpx;}

+ 0 - 799
integralShop/cart/cart.vue

@@ -1,799 +0,0 @@
-<template>
-	<view>
-		<view class="page">
-			<block v-for="(item, index) in pageList" :key="index">
-				<!-- 普通产品 -->
-				<view class="cart" v-if="item.list.length > 0">
-					<view class="dian dflex">
-						<image
-							:src="item.isActive ? '/static/pages/images/gou_h.png' : '/static/pages/images/gou.png'"
-							class="check"
-							:data-merchantId="item.merchantId"
-							:data-index="index"
-							@tap="checkProduct"
-						></image>
-						<view class="flex" v-if="item.isTimely == 0">{{ item.merchantName }}</view>
-						<view class="flex" v-if="item.isTimely == 1">{{ item.merchantName }}及时达</view>
-					</view>
-					<view class="list">
-						<block v-for="(item, idx) in item.list" :key="idx">
-							<view class="li">
-								<view class="checkbox" :data-index="index" :data-idx="idx" :data-store="item.store" @tap="checkProduct">
-									<image :src="item.isActive ? '/static/pages/images/gou_h.png' : '/static/pages/images/gou.png'" class="check"></image>
-								</view>
-								<view class="info dflex flex">
-									<view class="cimgs" @tap="toDetail" :data-id="item.productId">
-										<image :src="item.pic" mode="aspectFit" class="cimg"></image>
-										<image src="/static/pages/images/jishida.png" class="type" v-if="item.isTimely == 1"></image>
-										<view class="gys" v-if="item.isTimely == 2">不支持自提</view>
-										<!-- <view class="gys" wx:if="{{item.store<=0||item.isInvalid}}">{{item.store<=0?'已售罄':item.isInvalid?'已下架':''}}</view> -->
-									</view>
-									<view class="zhinfo">
-										<view :class="'zhtit ' + (item.store <= 0 || item.isInvalid ? 'color999' : '')" @tap="toDetail" :data-id="item.productId">
-											{{ item.title }}
-										</view>
-										<view class="color999" v-if="item.store <= 0 || item.isInvalid">{{ item.store <= 0 ? '已售罄' : item.isInvalid ? '已下架' : '' }}</view>
-										<view v-if="item.baseModelList" class="guigecontent">
-											规格:
-											<text v-for="(itemGuige, index) in item.baseModelList" class="guige" :decode="true" :key="index">{{ itemGuige.value }}&nbsp;</text>
-										</view>
-										<view class="jiage">
-											<view class="integral">
-												<text class="intnum">{{ item.integral }}积分</text>
-												<text class="money">+¥{{ item.price }}</text>
-											</view>
-											<view class="num">
-												<view class="jian" @tap="jianQuantity" :data-index="index" :data-idx="idx">-</view>
-												<input class="nums" :value="item.quantity" type="number" @input="getNum" @blur="minNum" :data-index="index" :data-idx="idx" />
-												<view class="jian" @tap="jiaQuantity" :data-index="index" :data-idx="idx">+</view>
-											</view>
-										</view>
-									</view>
-								</view>
-							</view>
-						</block>
-					</view>
-				</view>
-			</block>
-		</view>
-		<block v-if="ishow">
-			<view class="nodata_cart">
-				<image src="/static/pages/images/null.png"></image>
-				<view>购物车是空的</view>
-				<navigator url="/integralshop/index/index" open-type="reLaunch">去逛逛</navigator>
-			</view>
-			<view class="cai pdlr20">
-				<view class="cai-tit dflex">
-					<image src="/static/pages/images/cai_bg1.png"></image>
-					猜您喜欢
-					<image src="/static/pages/images/cai_bg2.png"></image>
-				</view>
-				<view class="tabcon dflex">
-					<block v-for="(item, index) in likeList" :key="index">
-						<view class="li">
-							<view class="jsdimgs" @tap="toDetail" :data-id="item.id">
-								<image :src="item.pic + '?x-oss-process=style/w375'" mode="aspectFit" class="jsdpro"></image>
-								<image src="/static/pages/images/jishida.png" v-if="item.isTimely === 1" class="jsdimg"></image>
-							</view>
-							<view class="jsdinfo">
-								<view class="proname" @tap="toDetail" :data-id="item.id">{{ item.title }}</view>
-								<view class="operate dflex">
-									<view class="price proprice">
-										¥
-										<text>{{ item.salePrice }}</text>
-										<text class="del">¥{{ item.marketPrice }}</text>
-									</view>
-									<view class="add-cart">
-										<view class="nums dflex" v-if="item.count > 0">
-											<image src="/static/pages/images/jian.png"></image>
-											<view class="num">{{ item.count }}</view>
-											<image src="/static/pages/images/jia1.png"></image>
-										</view>
-										<image src="/static/pages/images/jia.png" @tap="addShopCart" :data-id="item.id" :data-skuid="item.skuId" :data-index="index" v-else></image>
-									</view>
-								</view>
-							</view>
-						</view>
-					</block>
-				</view>
-			</view>
-		</block>
-
-		<view class="bot" :style="'bottom:' + (bottomBlankHeignt + 115) + 'rpx'" v-if="pageList.length > 0">
-			<view class="botl">
-				<view class="dflex flex">
-					<view class="all" data-index="-1" @tap="checkProduct">
-						<image :src="isAll ? '/static/pages/images/gou_h.png' : '/static/pages/images/gou.png'" class="check"></image>
-						全选
-					</view>
-					<view class="heji flex" v-if="!isEdit">
-						总计:
-						<text>{{ integral }}积分+¥{{ money }}</text>
-					</view>
-				</view>
-				<view class="editc">
-					<text class="edit" @tap="edit">{{ isEdit ? '完成' : '编辑' }}</text>
-				</view>
-			</view>
-			<view class="jiesuan" @tap="deleteCart" v-if="isEdit">删除({{ count }})</view>
-			<view class="jiesuan" @tap="Settlement" v-else>去结算({{ count }})</view>
-		</view>
-		<view class="placeholder-view" :style="'height:' + (bottomBlankHeignt + 115) + 'rpx'"></view>
-		<foot channel="cart" product-type="2" :isUpdate="isUpdate"></foot>
-	</view>
-</template>
-
-<script>
-const app = getApp();
-const req = require('../../utils/request.js');
-import foot from '../../components/integral-nav/index';
-
-export default {
-	data() {
-		return {
-			bottomBlankHeignt: app.globalData.isIPhoneX ? 68 : 0,
-			form: {},
-			pageList: [],
-			page: 1,
-			likeList: [],
-			isLoad: true,
-			isLikeLoad: true,
-			isAll: false,
-			isJsdAll: false,
-			isCgAll: false,
-			money: 0.0,
-			count: 0,
-			isEdit: false,
-			isUpdate: false,
-			// 是否更新消息
-			merchant: {},
-			integral: 0,
-			shopName: '',
-			ishow: false
-		};
-	},
-
-	components: {
-		foot
-	},
-	props: {},
-
-	onLoad(options) {
-		this.query = options;
-		// console.log(options);
-		this.getLikeList();
-	},
-
-	onShow: function() {
-		let _ts = this;
-
-		_ts.setData({
-			isUpdate: !_ts.isUpdate
-		}); // if (req.getStorage("MERCHANT").isDefault != 1) {
-		//   req.getRequest('/api/merchant/getMerchantList', {}, res => {
-		//     res = res.filter(it => it.isDefault == 1)
-		//     console.log(res)
-		//     this.data.merchant = res[0]
-		//   })
-		// } else {
-
-		this.merchant = req.getStorage('MERCHANT'); // }
-
-		this.isLoad = true;
-		this.setData({
-			count: 0,
-			money: 0,
-			integral: 0,
-			isAll: false,
-			shopName: this.merchant.title,
-			isEdit: false
-		});
-		this.getList();
-	},
-
-	onHide() {
-		// this.query.integralshop=0
-		// this.setData({integralshop:false})
-	},
-
-	methods: {
-		toDetail(e) {
-			let id = e.currentTarget.dataset.id;
-			app.globalData.openPage('integralshop/detail/detail?id=' + id);
-		},
-
-		addShopCart(e) {
-			let skuId = e.currentTarget.dataset.skuid;
-			let id = e.currentTarget.dataset.id;
-			let params = {
-				skuId: skuId,
-				quantity: 1,
-				productId: id
-			};
-
-			if (this.merchant) {
-				params.merchantId = this.merchant.id;
-			}
-
-			req.postRequest('/api/purchase/cart', params, res => {
-				req.msg('加入购物车成功');
-				this.setData({
-					isUpdate: !this.isUpdate
-				});
-				this.isLoad = true;
-				this.getList();
-			});
-		},
-
-		getList() {
-			let isShowLoading = false;
-
-			if (this.form.page == 1 && !isShowLoading) {
-				req.loadIng('加载中');
-				isShowLoading = true;
-			}
-
-			if (!this.isLoad) return false;
-			this.isLoad = false;
-			let that = this;
-			let newList = [];
-			this.form.purchaseType = 2;
-			// console.log(this.form);
-			req.getRequest('/api/purchase/list', this.form, data => {
-				let params = []; // 1及时达产品
-
-				params.push({
-					isTimely: 1,
-					isActive: false,
-					list: data.filter(it => it.isTimely == 1)
-				}); // 0常规产品
-
-				params.push({
-					isTimely: 0,
-					list: data.filter(it => it.isTimely == 0 || it.isTimely == 2)
-				}); //  常规产品
-
-				params[1].list.forEach(el => {
-					if (el.merchantId == '' || el.merchantId == null) {
-						let merchant = this.merchant; // let merchant = req.getStorage('MERCHANT');
-
-						el.merchantId = merchant.id;
-						el.merchantName = merchant.title;
-					}
-
-					if (newList.length == 0) {
-						newList.push({
-							merchantId: el.merchantId,
-							merchantName: el.merchantName,
-							isTimely: 0,
-							isActive: false,
-							list: [el]
-						});
-					} else {
-						let res = newList.some(item => {
-							if (item.merchantId == el.merchantId) {
-								item.list.push(el);
-								return true;
-							}
-						});
-
-						if (!res) {
-							newList.push({
-								merchantId: el.merchantId,
-								isTimely: 0,
-								merchantName: el.merchantName,
-								isActive: false,
-								list: [el]
-							});
-						}
-					}
-				});
-				// console.log(newList);
-				let jsd = [];
-				params[0].list.forEach(el => {
-					if (el.merchantId == '' || el.merchantId == null) {
-						// console.log(el); // let merchant = req.getStorage('MERCHANT');
-
-						let merchant = this.merchant;
-						el.merchantId = merchant.id;
-						el.merchantName = merchant.title;
-					}
-
-					if (jsd.length == 0) {
-						jsd.push({
-							merchantId: el.merchantId,
-							merchantName: el.merchantName,
-							isTimely: 1,
-							isActive: false,
-							list: [el]
-						});
-					} else {
-						let res = jsd.some(item => {
-							if (item.merchantId == el.merchantId) {
-								item.list.push(el);
-								return true;
-							}
-						});
-
-						if (!res) {
-							jsd.push({
-								merchantId: el.merchantId,
-								isTimely: 1,
-								merchantName: el.merchantName,
-								isActive: false,
-								list: [el]
-							});
-						}
-					}
-				}); // console.log(newList,jsd)
-
-				newList = newList.concat(jsd);
-				// console.log(newList); // newList.forEach(el => {
-				//   if (el.merchantId == '' || el.merchantName == '' || el.merchantName == null || el.merchantId == null) {
-				//     let merchant = req.getStorage('MERCHANT');
-				//     el.merchantId = merchant.id
-				//     el.merchantName = merchant.title
-				//     el.list.forEach(item => {
-				//       item.merchantId = merchant.id
-				//       item.merchantName = merchant.title
-				//       if (item.merchantId == el.merchantId) {
-				//         console.log(el)
-				//         // item.list.push(el.list)
-				//         // return true
-				//       }
-				//     })
-				//     console.log(el)
-				//   }
-				// })
-
-				that.setData({
-					pageList: newList
-				});
-
-				if (this.pageList <= 0) {
-					that.setData({
-						ishow: true
-					});
-				} else {
-					that.setData({
-						ishow: false
-					});
-				}
-
-				if (isShowLoading) {
-					uni.hideLoading();
-					isShowLoading = false;
-				}
-			});
-		},
-
-		checkProduct(event) {
-			// debugger
-			//选择商品
-			const that = this;
-			const index = event.currentTarget.dataset.index;
-			const idx = event.currentTarget.dataset.idx;
-			const store = event.currentTarget.dataset.store;
-			const merchantId = event.currentTarget.dataset.merchantid;
-			let d = {};
-
-			if (idx == undefined) {
-				// console.log("进行全选和店铺全选");
-
-				if (index == -1) {
-					// 全选
-					// console.log("全选");
-					const isAll = that.isAll;
-
-					for (let i = 0, len = that.pageList.length; i < len; i++) {
-						for (let j = 0, len = that.pageList[i].list.length; j < len; j++) {
-							if (!this.isEdit) {
-								if (this.pageList[i].list[j].store <= 0) return req.msg(this.pageList[i].list[j].title + '商品已售罄');
-								if (this.pageList[i].list[j].isInvalid) return req.msg(this.pageList[i].list[j].title + '商品已下架或失效');
-							}
-
-							if (!that.pageList[i].list[j].isInvalid) {
-								d['pageList[' + i + '].list[' + j + '].isActive'] = !isAll;
-								d['pageList[' + i + '].isActive'] = !isAll;
-							}
-						}
-					}
-
-					d['isAll'] = !isAll;
-				} else {
-					for (let i = 0, len = this.pageList[index].list.length; i < len; i++) {
-						if (!this.isEdit) {
-							if (this.pageList[index].list[i].store <= 0) return req.msg(this.pageList[index].list[i].title + '商品已售罄');
-							if (this.pageList[index].list[i].isInvalid) return req.msg(this.pageList[index].list[i].title + '商品已下架或失效');
-						}
-
-						if (!this.pageList[index].list[i].isInvalid) {
-							d['pageList[' + index + '].list[' + i + '].isActive'] = !this.pageList[index].isActive;
-							d['pageList[' + index + '].isActive'] = !this.pageList[index].isActive;
-						} // d['isJsd']=index
-					}
-				} // if (this.data.index == index) {
-				//   isJsdAll = this.data.isJsdAll
-				// }else{
-				//   isJsdAll=false
-				// }
-			} else {
-				// 单选
-				// console.log("单选");
-
-				if (!this.isEdit) {
-					if (this.pageList[index].list[idx].store <= 0) return req.msg(this.pageList[index].list[idx].title + '商品已售罄');
-					if (this.pageList[index].list[idx].isInvalid) return req.msg(this.pageList[index].list[idx].title + '商品已下架或失效');
-				}
-
-				d['pageList[' + index + '].list[' + idx + '].isActive'] = !this.pageList[index].list[idx].isActive;
-			}
-
-			// console.log(d);
-			this.setData(d);
-
-			if (index != -1) {
-				this.merchantCheckProduct(index, idx);
-			}
-
-			this.CalculationMoney(index);
-		},
-
-		// 判断店铺的商品是否全部选择
-		merchantCheckProduct(index, idx) {
-			let d = {}; // debugger
-
-			if (this.pageList[index].list.filter(it => it.isActive).length == this.pageList[index].list.length) {
-				if (this.pageList.filter(it => it.isActive).length == this.pageList.length) {
-					d['isAll'] = true;
-				}
-
-				d['pageList[' + index + '].isActive'] = true;
-			} else {
-				d['pageList[' + index + '].isActive'] = false;
-				d['isAll'] = false;
-			}
-
-			this.setData(d);
-		},
-
-		adjustmentQuantity(id, quantity, skuId, success) {
-			req.postRequest(
-				'/api/purchase/quantity',
-				{
-					id: id,
-					skuId: skuId,
-					quantity: quantity
-				},
-				() => {
-					this.setData({
-						isUpdate: !this.isUpdate
-					});
-					success.call(this);
-				}
-			);
-		},
-
-		jianQuantity(event) {
-			const index = event.currentTarget.dataset.index;
-			const idx = event.currentTarget.dataset.idx;
-			const page = this.pageList[index].list[idx];
-			if (page.store <= 0) return req.msg(page.title + '已售罄');
-			if (page.isInvalid) return req.msg('商品已下架或失效');
-			if (page.quantity <= 1) return false;
-			const q = parseInt(page.quantity) - 1;
-			let that = this;
-			this.adjustmentQuantity(page.id, q, page.skuId, () => {
-				let d = {};
-				d['pageList[' + index + '].list[' + idx + '].quantity'] = q;
-				that.setData(d);
-				if (page.isActive) that.CalculationMoney();
-			});
-		},
-
-		jiaQuantity(event) {
-			const index = event.currentTarget.dataset.index;
-			const idx = event.currentTarget.dataset.idx;
-			const page = this.pageList[index].list[idx];
-			if (page.store <= 0) return req.msg(page.title + '已售罄');
-			if (page.isInvalid) return req.msg('商品已下架或失效');
-			let q = parseInt(page.quantity) + 1;
-
-			if (page.maxBuy > 0) {
-				console.log(page, q, '===========================');
-				if (q > page.maxBuy) return req.msg('非常的抱歉,本产品最多可购买' + page.maxBuy);
-				else {
-					q = parseInt(page.quantity) + 1;
-				}
-			}
-
-			let that = this;
-			this.adjustmentQuantity(page.id, q, page.skuId, () => {
-				let d = {};
-				d['pageList[' + index + '].list[' + idx + '].quantity'] = q;
-				that.setData(d);
-				if (page.isActive) that.CalculationMoney();
-			});
-		},
-
-		// 获取输入的值
-		getNum(event) {
-			const index = event.currentTarget.dataset.index;
-			const idx = event.currentTarget.dataset.idx;
-			const page = this.pageList[index].list[idx];
-			if (page.store <= 0) return req.msg(page.title + '已售罄');
-			if (page.isInvalid) return req.msg('商品已下架或失效');
-			let q = event.detail.value;
-
-			if (page.maxBuy > 0) {
-				if (q > page.maxBuy) {
-					req.msg('非常的抱歉,本产品最多可购买' + page.maxBuy);
-					q = page.maxBuy;
-				} else {
-					q = event.detail.value;
-				}
-			}
-
-			let d = {};
-			d['pageList[' + index + '].list[' + idx + '].quantity'] = q;
-			this.setData(d);
-			if (page.isActive) this.CalculationMoney(); // let that = this;
-			// console.log(q)
-			// if(q!=''){
-			//   this.adjustmentQuantity(page.id, q, page.skuId, () => {
-			//     let d = {};
-			//     d['pageList[' + index + '].list[' + idx + '].quantity'] = q;
-			//     that.setData(d);
-			//     if (page.isActive) that.CalculationMoney();
-			//   })
-			// }
-		},
-
-		minNum(event) {
-			const index = event.currentTarget.dataset.index;
-			const idx = event.currentTarget.dataset.idx;
-			const page = this.pageList[index].list[idx];
-			let that = this;
-
-			if (event.detail.value == '') {
-				let q = 1;
-				this.adjustmentQuantity(page.id, q, page.skuId, () => {
-					let d = {};
-					d['pageList[' + index + '].list[' + idx + '].quantity'] = q;
-					that.setData(d);
-					if (page.isActive) that.CalculationMoney();
-				});
-			} else {
-				let q = parseInt(event.detail.value);
-
-				if (q > page.store) {
-					req.msg('非常的抱歉,本产品库存量剩余' + page.store);
-					q = page.store;
-				}
-
-				this.adjustmentQuantity(page.id, q, page.skuId, () => {
-					let d = {};
-					d['pageList[' + index + '].list[' + idx + '].quantity'] = q;
-					that.setData(d);
-					if (page.isActive) that.CalculationMoney();
-				});
-			}
-		},
-
-		deleteCart(event) {
-			//删除购物车数据
-			// const index = event.currentTarget.dataset.index;
-			// const page = this.data.pageList[index];
-			const page = this.pageList;
-			let ids = [];
-			page.map(item => {
-				item.list.map(it => {
-					if (it.isActive) ids.push(it.id);
-				});
-			});
-			if (!ids || ids.length == 0) return req.msg('请选择删除项');
-			let that = this;
-			req.msgConfirm('确定删除该商品', () => {
-				req.postRequest(
-					'/api/purchase/deletes',
-					{
-						ids: ids.join(',')
-					},
-					() => {
-						let data = [];
-
-						for (let i = 0, len = that.pageList.length; i < len; i++) {
-							data.push({
-								merchantId: that.pageList[i].merchantId,
-								merchantName: that.pageList[i].merchantName,
-								isTimely: that.pageList[i].isTimely,
-								list: that.pageList[i].list.filter(it => !it.isActive)
-							});
-						}
-
-						data = data.filter(res => res.list.length != 0);
-
-						if (data.length <= 0) {
-							that.setData({
-								ishow: true,
-								isAll: false
-							});
-						} else {
-							that.setData({
-								ishow: false
-							});
-						}
-
-						that.setData({
-							pageList: data,
-							count: 0,
-							money: 0
-						});
-						this.setData({
-							isUpdate: !this.isUpdate
-						}); // if (page.isActive) that.CalculationMoney();
-					}
-				);
-			});
-		},
-
-		CalculationMoney(index) {
-			//计算商品总价格
-			let arr = [];
-			let jsdMoney = 0;
-			let money = 0;
-			let integral = 0;
-			this.pageList.forEach(el => {
-				arr.push(el.list.filter(it => it.isActive).length);
-				el.list
-					.filter(it => it.isActive)
-					.forEach(lst => {
-						jsdMoney += lst.quantity * lst.price;
-						integral += lst.quantity * lst.integral;
-					});
-			});
-			var count = arr.reduce(function(prev, cur) {
-				return prev + cur;
-			}, 0);
-			money = Number(jsdMoney);
-			this.setData({
-				count: count,
-				money: parseFloat(money).toFixed(2),
-				integral: integral
-			});
-		},
-
-		Settlement() {
-			// debugger
-			const page = this.pageList;
-			const ids = [];
-			// console.log(page);
-			page.map(item => {
-				item.list.map(it => {
-					if (it.isActive) ids.push(it.id);
-				});
-			});
-			if (ids.length == 0) return req.msg('未选择结算商品');
-			const timely = [];
-			const noTimely = [];
-			const merchantList = [];
-			const timelyList = [];
-			page.map(item => {
-				item.list.map(it => {
-					if (it.isActive && it.isTimely === 1) timely.push(it);
-					if (it.isActive && (it.isTimely === 0 || it.isTimely === 2)) noTimely.push(it);
-				});
-			}); // 常规产品
-
-			noTimely.forEach(el => {
-				if (merchantList.length == 0) {
-					merchantList.push({
-						merchantId: el.merchantId,
-						merchantName: el.merchantName,
-						isTimely: 0,
-						isActive: false,
-						list: [el]
-					});
-				} else {
-					let res = merchantList.some(item => {
-						if (item.merchantId == el.merchantId) {
-							item.list.push(el);
-							return true;
-						}
-					});
-
-					if (!res) {
-						merchantList.push({
-							merchantId: el.merchantId,
-							isTimely: 0,
-							merchantName: el.merchantName,
-							isActive: false,
-							list: [el]
-						});
-					}
-				}
-			}); // 及时达
-
-			timely.forEach(el => {
-				if (timelyList.length == 0) {
-					timelyList.push({
-						merchantId: el.merchantId,
-						merchantName: el.merchantName,
-						isTimely: 1,
-						isActive: false,
-						list: [el]
-					});
-				} else {
-					let res = timelyList.some(item => {
-						if (item.merchantId == el.merchantId) {
-							item.list.push(el);
-							return true;
-						}
-					});
-
-					if (!res) {
-						timelyList.push({
-							merchantId: el.merchantId,
-							isTimely: 1,
-							merchantName: el.merchantName,
-							isActive: false,
-							list: [el]
-						});
-					}
-				}
-			}); // const timely = this.data.pageList.filter(it => it.isActive && it.isTimely === 1);
-			// const noTimely = this.data.pageList.filter(it => it.isActive && it.isTimely === 0);
-
-			// console.log(merchantList, timelyList, timely, noTimely); // 海外购产品
-
-			let hwg = noTimely.filter(it => it.isOtc == 5);
-			if (timely.length > 0 && noTimely.length > 0) return req.alertMsg('及时达商品和非及时达商品不能一起下单');
-			if (merchantList.length >= 2 || timelyList.length >= 2) return req.alertMsg('门店与门店之间不能一起下单'); //判断是否及时达订单
-
-			let redirect = 'product/subOrder/subOrder?ids=' + ids.join(',');
-			let orderType = 1;
-			let merchantId = '';
-
-			if (merchantList.length > 0) {
-				merchantId = merchantList[0].merchantId;
-			} // if (timely.length > 0) orderType = 5, merchantId = timelyList[0].merchantId;
-			// if (hwg.length > 0) orderType = 10
-
-			orderType = 11;
-			redirect += '&orderType=' + orderType + '&merchantId=' + merchantId;
-			app.globalData.openPage(redirect);
-		},
-
-		edit() {
-			this.setData({
-				isEdit: !this.isEdit
-			});
-		},
-
-		getLikeList() {
-			//Recommend
-			if (!this.isLikeLoad) return false;
-			this.isLikeLoad = false;
-			let that = this;
-			req.getRequest(
-				'/api/product/list',
-				{
-					page: that.page,
-					limit: 10,
-					attr: 'sell_well'
-				},
-				res => {
-					if (res && res.length >= 10) that.isLikeLoad = true;
-					if (that.page > 1) res = that.likeList.concat(res);
-					that.setData({
-						likeList: res
-					});
-				}
-			);
-		}
-	}
-};
-</script>
-<style>
-@import './cart.css';
-</style>

+ 0 - 62
integralShop/content/content.css

@@ -1,62 +0,0 @@
-/* content.css */
-page{background: #fff;padding: 30rpx 0;box-sizing: border-box;}
-.title{font-size: 40rpx;color: #282828;font-weight: bold;line-height: 60rpx;padding: 0 30rpx;}
-.det-sta{padding: 0 30rpx;margin-top: 20rpx;font-size: 24rpx;}
-.sitename{color: var(--mina);}
-.time{color: #999;margin-left: 15rpx;}
-.time text{font-size: 28rpx;color: #333;margin-right: 23rpx;}
-.content{font-size: 34rpx;color: #333;padding: 30rpx 0;line-height: 1.7;}
-.con-vheight{max-height: 120vh;position: relative;overflow: hidden;}
-.con-vheight::after{content: '';display: block;position: absolute;left: 0;right: 0;bottom: 0;height: 15vh;background: linear-gradient(rgba(255, 255, 255, 0), #fff);z-index: 5;}
-.content video{width: 100%;height: 400rpx;object-fit:fill; margin-bottom: 20rpx;}
-.content image{width: 100%;margin: 30rpx auto;}
-._p{padding: 0 30rpx;}
-.view-more{width: 230rpx;height: 70rpx;font-size: 30rpx;color: #999;margin: 30rpx auto 0;text-align: center;line-height: 70rpx;}
-.bot{padding: 40rpx 35rpx 0;}
-.sbanner{overflow: hidden;position: relative;}
-.sbanner .swiper,.sbanner .swiper image{width: 100%;height: 160rpx;border-radius: 12rpx;overflow: hidden;}
-.dots{position: absolute;left: 0;right: 0;bottom: 20rpx;align-items: center;justify-content: center;}
-.dot{background: rgba(0,0,0,.5);width: 12rpx;height: 12rpx;border-radius: 6rpx;margin: 0 4rpx;}
-.dot.active{width: 30rpx;background: #fff;}
-.tits{font-size: 36rpx;color: #333;font-weight: bold;margin: 30rpx 0 0;}
-.zxlist .li{padding: 40rpx 0;border-bottom: 1rpx solid #EBEBEB;}
-.zximg{width: 230rpx;height: 150rpx;border-radius: 12rpx;margin-right: 23rpx;}
-.zxtit{font-size: 30rpx;color: #333;line-height: 41rpx;height: 82rpx;}
-.datas{font-size: 24rpx;color: #999;margin-top: 30rpx;}
-.adContainer{margin: 30rpx 0 0;border-radius: 10rpx;overflow: hidden;}
-.operate{padding: 30rpx 30rpx 50rpx;justify-content: space-between;font-size: 28rpx;color: #666;}
-.zan image{width: 30rpx;height: 30rpx;margin-right: 15rpx;}
-.zan.active{color: #108FFF;}
-.share{font-size: 28rpx;color: #666;}
-.share image{width: 30rpx;height: 30rpx;margin-right: 15rpx;}
-.box{padding: 40rpx 30rpx 0;border-top: 20rpx solid #f9f9f9;}
-.tit{font-size: 32rpx;color: #333;font-weight: bold;align-items: center;}
-.pro{padding-bottom: 10rpx;}
-.pro .li{padding: 30rpx 0;border-bottom: 1rpx solid #e5e5e5;}
-.pro .li:last-child{border-bottom: none;}
-.proimg{box-sizing: border-box;width: 210rpx;height: 210rpx;border-radius: 10rpx;margin-right: 20rpx;border: 2rpx solid #E5E5E5;}
-.proname{font-size: 28rpx;color: #333;overflow : hidden;line-height: 36rpx;height: 72rpx;}
-.infos {font-size: 24rpx;color: #999;margin: 10rpx 0 20rpx;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;}
-.Ninfos{padding: 16rpx 0;}
-.ope{justify-content: space-between;align-items: center;}
-.price{font-size: 25rpx;color: #FE0419;align-items: center;}
-.price text{font-size: 36rpx;font-weight: bold;}
-.price text.del{font-size: 24rpx !important;color: #999;text-decoration: line-through;margin-left: 15rpx;font-weight: normal !important;}
-.price .vip{margin-left: 12rpx;color: var(--vip);border: 1rpx solid;padding: 0 8rpx 2rpx 8rpx;border-radius: 5px;}
-.price .vip text{font-size: 24rpx;font-weight: normal;}
-.btn{width: 150rpx;height: 50rpx;background: linear-gradient(90deg, rgba(254, 147, 76, 1) 0%, rgba(253, 58, 49, 1) 100%);font-size: 24rpx;color: #fff;text-align: center;line-height: 50rpx;border-radius: 25rpx;}
-.rec .li{padding: 30rpx 0;border-bottom: 1rpx solid #EDEDED;align-items: center;}
-.rec .li:last-child{border-bottom: none;}
-.rec-tit{font-size: 34rpx;color: #333;font-weight: bold;line-height: 48rpx;height: 96rpx;margin-bottom: 25rpx;}
-.author{font-size: 28rpx;color: #999;margin-right: 24rpx;}
-.author image{width: 32rpx;height: 32rpx;border-radius: 2rpx;margin-right: 10rpx;}
-.rec-time{font-size: 28rpx;color: #999;}
-.rec-img{width: 218rpx;height: 152rpx;margin-left: 55rpx;}
-
-/* 广告 */
-.banner{height: 200rpx;position: relative;padding: 30rpx;border-top: 20rpx solid #f9f9f9;}
-.swiper{width: 100%;height: 200rpx;border-radius: 10rpx;}
-.swiper image{width: 100%;height: 100%;border-radius: 10rpx;}
-.dots{position: absolute;left: 50%;transform: translateX(-50%);bottom: 50rpx;z-index: 3;justify-content: center;}
-.dot{width: 46rpx;height: 4rpx;background: rgba(255,255,255,.5);margin: 0 3rpx;}
-.dot.active{background: #fff;}

+ 0 - 180
integralShop/content/content.vue

@@ -1,180 +0,0 @@
-<template>
-	<view v-if="detaile">
-		<view class="title">{{ detaile.title }}</view>
-		<view class="det-sta dflex">
-			<view class="sitename" @click="toIndex('')">{{ config.CONFIG_PROJECT_TITLE }}</view>
-			<view class="time">{{ getDateTimeStamp(detaile.time) }}</view>
-		</view>
-		<view class="content">
-			<view class="viewMore"><mp-html :content="detaile.text" :lazy-load="true" @imgtap="choose"></mp-html></view>
-		</view>
-		<view class="operate dflex" style="justify-content: flex-end;">
-			<button class="share dflex" hover-class="none" open-type="share"><image src="../static/integralShop/images/share.png"></image>分享</button>
-		</view>
-	</view>
-</template>
-
-<script>
-const app = getApp();
-const req = require('../../utils/request.js');
-const api = require('../../utils/api.js');
-const util = require('../../utils/util.js');
-import mpHtml from '../../components/mp-html/components/mp-html/mp-html';
-export default {
-	components: {
-		mpHtml
-	},
-	data() {
-		return {
-			detaile: '',
-			type: 2, //详情类型:1 普通内容 2 自定义页面内容
-			form: {
-				page: 1,
-				limit: 4
-			},
-			contentList: [],
-			viewMore: false,
-			config: {},
-			isToShare: false,
-			pid: '',
-			userInfo: ''
-		};
-	},
-
-	onLoad: async function(options) {
-		this.config = JSON.parse(req.getStorage('configRes'));
-		this.userInfo = req.getStorage('userInfo');
-		uni.showShareMenu({
-			withShareTicket: true,
-			menus: ['shareAppMessage', 'shareTimeline']
-		});
-		this.id = options.id;
-		await this.getDetail();
-		if (options.isShare) {
-			this.pid = options.pid;
-			this.getBrowse();
-		}
-	},
-
-	onShow() {
-		if (this.isToShare) {
-			this.getBehaviorSave();
-			this.isToShare = false;
-		}
-	},
-
-	onShareAppMessage() {
-		this.isToShare = true;
-		return {
-			title: this.detaile.title,
-			imageUrl: this.detaile.pic,
-			path: '/integralshop/content/content?id=' + this.id + '&isShare=' + true + '&pid=' + this.userInfo.id
-		};
-	},
-	onShareTimeline() {
-		this.isToShare = true;
-		return {
-			title: this.detaile.title,
-			imageUrl: this.detaile.pic,
-			path: '/integralshop/content/content?id=' + this.id + '&isShare=' + true + '&pid=' + this.userInfo.id
-		};
-	},
-	methods: {
-		// 分享完成保存
-		getBehaviorSave() {
-			req.postRequest(
-				'/api/v3/behavior/save',
-				{ behavior: 6, type: 4, bindId: this.id },
-				data => {
-					req.msg('分享完成');
-				},
-				true
-			);
-		},
-
-		choose: function() {
-			let freshen = false;
-			this.$emit('freshen', {
-				detail: freshen
-			});
-		},
-		toIndex() {
-			uni.switchTab({
-				url: '/pages/index/index'
-			});
-		},
-		getDateTimeStamp(dateStr) {
-			return util.getDateDiff(Date.parse(dateStr.replace(/-/gi, '/')));
-		},
-		getDetail() {
-			let that = this;
-			let apiUrl = '/api/content/detail';
-			return new Promise((resolve, reject) => {
-				req.getRequest(
-					apiUrl,
-					{ id: that.id },
-					async res => {
-						if (res.productCategory) {
-							res.productCategory = res.productCategory.split(',');
-						}
-						that.detaile = res;
-						let arr = [];
-						if (res.productCategory && res.productCategory.length > 0) {
-							for (var i = 0; i < res.productCategory.length; i++) {
-								await that.getProductList(res.productCategory[i], i).then(res => {
-									arr = arr.concat(res);
-									that.productList = arr;
-									console.log('相关产品==' + JSON.stringify(arr), arr.length);
-								});
-							}
-						}
-						resolve();
-					},
-					true
-				);
-			});
-		},
-		getBrowse() {
-			let params = {
-				bindId: this.id,
-				type: 2,
-				pid: this.pid
-			};
-			req.postRequest('/api/browse', params, data => {});
-		}
-	},
-	filters: {
-		/**
-		 * 处理富文本里的图片宽度自适应
-		 * 1.去掉img标签里的style、width、height属性
-		 * 2.img标签添加style属性:max-width:100%;height:auto
-		 * 3.修改所有style里的width属性为max-width:100%
-		 * 4.去掉<br/>标签
-		 * @param html
-		 * @returns {void|string|*}
-		 */
-		formatRichText(html) {
-			//控制小程序中图片大小
-			let newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
-				match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
-				match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
-				match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
-				return match;
-			});
-			newContent = newContent.replace(/style="[^"]+"/gi, function(match, capture) {
-				match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;');
-				return match;
-			});
-			// newContent = newContent.replace(/<br[^>]*\/>/gi, '');
-			newContent = newContent.replace(/<br[^>]*\/>/gi, '<p style="margin: 10px 0;"></p>');
-			newContent = newContent.replace(/<br[^>]*\>/gi, '<p style="margin: 10px 0;"></p>');
-			newContent = newContent.replace(/font-size:[^;]+;?/g, '');
-			newContent = newContent.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:inline-block;margin:12rpx auto;"');
-			return newContent;
-		}
-	}
-};
-</script>
-<style>
-@import './content.css';
-</style>

+ 0 - 83
integralShop/detail/detail.css

@@ -1,83 +0,0 @@
-/* pages/detail/detail.wxss */
-.banner{overflow: hidden;position: relative;background: #fff;}
-.swiper,.swiper image{width: 100%;height: 750rpx;}
-.dots{position: absolute;left: 0;right: 0;bottom: 11rpx;align-items: center;justify-content: center;}
-.dot{background:var(--mina) ;width: 10rpx;height: 10rpx;border-radius: 5rpx;margin: 0 3rpx;}
-.dot.active{width: 30rpx;}
-.info{padding: 30rpx 30rpx 40rpx;}
-.infos{align-items: center;justify-content: space-between;}
-.price{font-size: 28rpx;color: #FE0419;align-items: flex-end;}
-.price text{font-size: 40rpx;color: #FE0419;font-weight: bold;}
-.price text.origin{font-weight: normal;font-size: 24rpx;color: #999;text-decoration: line-through;margin-left: 10rpx;}
-/* 积分产品 */
-.bot .btnfot{flex: 0.5;display: flex;justify-content: space-around;}
-.bot .btnbuy{flex: 0.5;display: flex;}
-.price text.money{font-size: 26rpx;color: #FE0419;}
-.hyprice{align-items: center;margin-left: 15rpx;}
-.hyprice text{font-size: 30rpx;color: #333;font-weight: bold;}
-.hytxt{position: relative;width: 78rpx;height: 25rpx;margin-left: 8rpx;}
-.hytxt image{display: block;width: 78rpx;height: 25rpx;position: absolute;z-index: 1;top: 0;left: 0;}
-.hytxt text{font-size: 18rpx;color: #FFD9AF;position: relative;z-index: 2;font-weight: normal;display: block;line-height: 25rpx;text-align: center;padding-left: 5rpx;}
-.share{font-size: 20rpx;color: #999;text-align: center;position: relative;}
-.share::after{content: '';display: block;width: 2rpx;height: 45rpx;background: #e7e7e7;position: absolute;top: 50%;transform: translateY(-50%);left: -30rpx;}
-.share image{width: 31rpx;height: 31rpx;margin: 0 auto 10rpx;}
-.title{font-size: 30rpx;color: #222;line-height: 40rpx;font-weight: bold;margin-top: 25rpx;}
-.tag{width: 82rpx;height: 36rpx;display: inline-block;margin: 0 10rpx 0 0;position: relative;top: 7rpx;}
-.detinfo .item{padding: 30rpx;border-bottom: 1rpx solid #f6f6f6;}
-.detinfo .item:last-child{border-bottom: none;}
-.item label{display: block;width: 120rpx;font-size: 28rpx;color: #222;font-weight: bold;line-height: 40rpx;}
-.quan .flex{align-items: center;}
-.quan text{display: block;background: #FDF5F3;padding: 0 13rpx;height: 40rpx;line-height: 40rpx;font-size: 24rpx;color: #FF5F08;margin-right: 10rpx;}
-.ling{font-size: 24rpx;color: #FF5F08;align-items: center;}
-.ling image{width: 14rpx;height: 24rpx;margin-left: 11rpx;}
-.address{font-size: 28rpx;color: #333;line-height: 40rpx;}
-.huo{font-size: 24rpx;color: #666;line-height: 40rpx;}
-.huo text{color: #FE0419;}
-.more{width: 36rpx;height: 10rpx;margin-top: 15rpx;}
-/* .user{width: 68rpx;height: 68rpx;border-radius: 50%;margin-right: 15rpx;} */
-.name{font-size: 28rpx;color: #666;line-height: 68rpx;justify-content: space-between;align-items: center;}
-.pinglun{font-size: 28rpx;color: #333;margin: 15rpx 0 0;line-height: 44rpx;}
-.huifu{background: #F2F2F2;border-radius: 6rpx;margin: 25rpx 0 0;line-height: 42rpx;padding: 20rpx 30rpx;position: relative;}
-.huifu::after{content: '';display: block;width: 0;height: 0;border: 9rpx solid transparent;border-bottom-color: #F2F2F2;border-top: none;position: absolute;top: -8rpx;left: 39rpx;}
-.show{display: block;}
-.hide{display: none;}
-
-.bot{height: 80rpx;align-items: center;padding: 20rpx 30rpx 20rpx 0;}
-.botbtn{font-size: 22rpx;color: #6A6A6A;width: 95rpx !important;text-align: center;position: relative;}
-.botbtn image{width: 40rpx;height: 34rpx;margin: 10rpx auto 5rpx;}
-.message{background: #DF1A14;height: 28rpx;line-height: 28rpx;font-size: 20rpx;color: #fff;text-align: center;border-radius: 15rpx;box-sizing: border-box;min-width: 21rpx;padding: 0 8rpx;position: absolute;top: 0;right: 25%;}
-.addcart{width: 206rpx;height: 76rpx;border: 2rpx solid #FD3C31;border-radius: 40rpx;text-align: center;line-height: 76rpx;font-size: 30rpx;color: #FD3A31;margin: 0 10rpx;}
-.gray{color: #999;border-color: #999;}
-.gmbtn{width: 210rpx;height: 80rpx;border-radius: 40rpx;text-align: center;line-height: 80rpx;font-size: 30rpx;color: #fff;}
-.integral{width: 430rpx;height: 80rpx;border-radius: 40rpx;text-align: center;line-height: 80rpx;font-size: 30rpx;color: #fff;}
-.xiajia{position: fixed;background: rgba(0,0,0,.6);left: 0;right: 0;bottom: 120rpx;height: 80rpx;line-height: 80rpx;font-size: 28rpx;color: #999999;text-align: center;z-index: 50;}
-.kan-guoqi{background: #999;}
-
-.details image{width: 100%;}
-
-/* 小店相关 */
-.xiaodian{position: relative;height: 122rpx;margin-top: 35rpx;padding: 0 26rpx 0 128rpx;align-items: center;}
-.xdbg{position: absolute;left: 0;top: 0;width: 100%;height: 100%;z-index: 1;}
-.shouyi{position: relative;z-index: 2;color: #fff;}
-.shouyi view{font-size: 40rpx;font-weight: bold;margin-top: 8rpx;}
-.shouyi text{font-weight: normal;font-size: 24rpx;}
-.addshop{width: 170rpx;height: 62rpx;border-radius: 31rpx;background:linear-gradient(115deg,rgba(255,78,78,1) 0%,rgba(220,21,21,1) 100%);text-align: center;line-height: 62rpx;font-size: 24rpx;color: #fff;position: relative;z-index: 2;}
-
-.suc{position: fixed;left: 50%;top: 50%;transform: translate(-50%,-50%);background: #fff;width: 536rpx;border-radius: 20rpx;z-index: 100;text-align: center;padding-bottom: 47rpx;}
-.tjcg1{width: 100%;height: 284rpx;}
-.tjcg{width: 195rpx;height: 38rpx;margin: 52rpx auto 15rpx;}
-.suc text{display: block;font-size: 24rpx;color: #333;}
-.shop{width:429rpx;height:80rpx;background:linear-gradient(123deg,rgba(255,130,130,1) 0%,rgba(220,21,21,1) 100%);font-size: 30rpx;color: #fff;line-height: 80rpx;border-radius: 40rpx;margin: 45rpx auto 40rpx;}
-.share-btn{justify-content: space-between;padding: 0 54rpx;}
-.wxfriend,.wxposter{width: 196rpx !important;height: 76rpx !important;align-items: center;justify-content: center;font-size: 30rpx;color: #666;border: 2rpx solid #D8D8D8;border-radius: 40rpx !important;}
-.wxfriend image,.wxposter image{width: 31rpx;height: 31rpx;margin-right: 13rpx;}
-.suc-close{position: absolute;left: 50%;transform: translateX(-50%);bottom: -102rpx;width: 62rpx;height: 62rpx;}
-.sellStock{text-align: right; color: #999;position: relative; left: 45rpx;}
-.sellStock text{ color:#222 ;}
-.protext{color: #999;margin-top: 15rpx;overflow:hidden; text-overflow:ellipsis;display:-webkit-box; -webkit-box-orient:vertical;-webkit-line-clamp:2; }
-.you{width: 12rpx;height: 20rpx;}
-/* 海外购 */
-.logistics{align-items: center;justify-content: space-around;margin-top: 40rpx;}
-.logistics view{color: #666666;}
-.logistics .lsicText{color: #238CF5;}
-.logistics .abroad{width: 46rpx;height: 46rpx;margin: 0 auto 20rpx;}

+ 0 - 750
integralShop/detail/detail.vue

@@ -1,750 +0,0 @@
-<template>
-<view v-if="allShow">
-<!--pages/detail/detail.wxml-->
-<view class="banner">
-	<swiper class="swiper" @change="swiperChange" :current="current" autoplay="true" circular="true" duration="1000">
-		<block v-for="(item, index) in product.images" :key="index">
-			<swiper-item autoplay="true">
-				<image :src="item + '?x-oss-process=style/w750-auto'" mode="aspectFit"></image>
-			</swiper-item>
-		</block>
-	</swiper>
-	<view class="dots dflex">
-		<block v-for="(item, index) in product.images" :key="index">
-			<view :class="'dot ' + (index == swiperCurrent ? ' active' : '')" :data-current="index" @tap="dotEvent"></view>
-		</block>
-	</view>
-</view>
-<!-- <view bindtap="saoma">扫码</view> -->
-<!-- <view class="notification_bar" wx:if="{{isNotice}}">
-	<swiper class="swiper_container" vertical="true" autoplay="true" circular="false" duration="1000" interval="5000" easing-function="easeInOutCubic" class="bar_box dflex">
-		<swiper-item class="bar_con dflex" wx:for="{{contentList}}" wx:key="item">
-			<view class="bar dflex">
-				<image class="bar_left" src="{{item.pic}}" />
-				<text class="bar_text">最新订单来自</text>
-				<text class="bar_text">{{item.name}},</text>
-				<text class="bar_text">{{item.time}}</text>
-			</view>
-		</swiper-item>
-	</swiper>
-</view> -->
-<view class="info bgfff">
-	<view class="infos dflex">
-		<view class="price dflex" v-if="product.mode==2">
-			<text>{{product.integral?product.integral:'0'}}积分</text>
-			<text class="money" v-if="product.salePrice">+¥{{product.salePrice?product.salePrice:'0'}}</text>
-			<text class="origin" v-if="product.salePrice == product.actualPrice && product.marketPrice > 0">¥{{product.marketPrice}}</text>
-		</view>
-		<view class=" sellStock" v-if="product.sellStock>0">销量:<text>{{product.sellStock}}</text></view>
-		<view class="share" @tap="showShare">
-			<image src="/static/pages/images/fxico.png"></image>分享
-		</view>
-	</view>
-	<view class="title">
-		<image src="/static/pages/images/jishida.png" class="tag" v-if="product.isTimely === 1&&merchant.isDefault!=1"></image>
-		<image src="/product/static/product/image/overseasPurchase.png" class="tag" v-if="product.isOtc===5"></image>
-		{{product.title}}
-	</view>
-	<view class="protext">
-		{{product.brandName ? product.brandName : ''}} {{product.brief ?  product.brief : ''}}
-	</view>
-	<!-- <view class="xiaodian dflex" wx:if="{{hideShop=='true'}}">
-		<image src="/pages/images/xdbg1.png" class="xdbg"></image>
-		<view class="shouyi flex">
-			<text>销售收益</text>
-			<view>8.65<text>元</text></view>
-		</view>
-		<view class="addshop" bindtap="addShop">添加到小店</view>
-	</view> -->
-</view>
-
-<view class="detinfo mt20 bgfff">
-	<!-- <view class="item dflex">
-    <label>优惠券</label>
-    <view class="quan flex dflex">
-      <view class="flex dflex">
-        <text>满500减50</text>
-        <text>满200减10</text>
-      </view>
-      <view class="ling dflex">领券<image src="/pages/images/more3.png"></image></view>
-    </view>
-  </view> -->
-	<view class="item dflex">
-		<label>配送至</label>
-		<view class="flex" @tap="toAddress">
-			<view class="address">{{address.address}}{{address.house}}</view>
-			<view class="huo"><text>现货</text>
-				<!-- 现在下单,预计2小时后送达 -->
-			</view>
-		</view>
-		<image src="/static/pages/images/more2.png" class="more" @tap="toAddress"></image>
-	</view>
-
-	<!-- <view class="item dflex">
-		<label>服务门店</label>
-		<view class="flex" bindtap="updateShop">
-			<view class="address">{{merchant.title}}</view>
-		</view>
-	</view> -->
-</view>
-<!-- 海外购 -->
-<!-- <view class="detinfo mt20 bgfff" wx:if="{{product.isOtc==5}}">
-	<view class="item">
-		<view class="dflex">
-			<label>物流</label>
-			<view class="">
-				<view class="address">20:00前付款,预计9月30日前送达</view>
-			</view>
-		</view>
-		<view class="dflex logistics">
-			<view class="lsicText">
-				<image src="/product/image/abroad.png" class="abroad"></image>
-				德国进口
-			</view>
-			<image src="/product/image/you_h.png" class="you"></image>
-			<view class="lsicText">
-				<image src="/product/image/bonded.png" class="abroad"></image>
-				保税店
-			</view>
-			<image src="/product/image/you.png" class="you"></image>
-			<view>
-				<image src="/product/image/position.png" class="abroad"></image>
-				长沙市
-			</view>
-		</view>
-	</view>
-</view> -->
-<!--  商品详情等页面 -->
-<product-footer id="list" ref="list" :detail="nodes" :imgs="imgs" :proId="product.id" v-if="product.id" :form="form" @scoreTab="scoreTab" @showTab="showTab" @freshen="freshenFun"></product-footer>
-
-
-<v-share :hide-toast="hideShare" :product="product" :code-url="codeUrl" @onFather="click"></v-share>
-<view class="placeholder-view" :style="'height:' + (bottomBlankHeight + 140) + 'rpx'"></view>
-<view class="bot fixed bgfff dflex" :style="'padding-bottom: ' + (bottomBlankHeight + 20) + 'rpx'">
-	<view class="btnfot">
-		<contact-button img-url="/static/pages/images/kfico.png" class-name="botbtn" button-text="客服"></contact-button>
-		<navigator class="botbtn" open-type="reLaunch" url="/integralshop/cart/cart?integralshop=1" hover-class="none">
-			<image src="/static/pages/images/gwc.png"></image>购物车<text class="message" v-if="product.count > 0">{{product.count}}</text>
-		</navigator>
-	</view>
-	<view class="btnbuy">
-		<view :class="'addcart ' + (product.stock >= 1 && product.state == 1 ? '' : 'gray')" @tap="product.stock >= 1 && product.state == 1 ? addShopCart() : ''">加入购物车</view>
-		<view class="gmbtn mbglinear" @tap="atOnceBuy" v-if="product.stock >= 1 && product.state == 1">
-			{{product.isOtc==1 ?'预约下单': '立即兑换'}}</view>
-			<view class="gmbtn mbggray" v-if="product.stock < 1 && product.state == 1">立即兑换</view>
-			<!-- <view class="gmbtn kan-guoqi" wx:if="{{product.stock < 1 && product.state == 1}}">
-			商品已售罄</view> -->
-		<!-- <view class="integral mbggray" >积分不足</view> -->
-		<view class="gmbtn mbggray" v-if="product.state == 2">已下架</view>
-	</view>
-</view>
-<view class="xiajia" v-if="product.stock < 1 && product.state == 1">您来晚了,商品已经卖完了</view>
-<view class="xiajia" v-if="product.state == 2">您来晚了,商品已经下架</view>
-
-<!-- 商品规格 -->
-<block v-if="isShow">
-	<product-popup :product="product" :order-type="'11'" :is-cart="isCart" :is-timely="product.isTimely" :merchant="merchant" :merchant-id="merchantId" @hidePopup="hidePopup" @addCartSuccess="addCartSuccess">
-	</product-popup>
-</block>
-<!-- 返回顶部 -->
-<view class="contact_index" @tap="goTop">
-	<image src="/static/pages/images/backtop.png"></image>顶部
-</view>
-<!-- 添加到小店成功 -->
-<!-- <view class="mask" hidden="{{isHide}}" bindtap="hidePop"></view>
-<view class="suc" hidden="{{isHide}}">
-	<image src="/pages/images/tjcg1.png" class="tjcg1"></image>
-	<image src="/pages/images/tjcg.png" class="tjcg"></image>
-	<text>快去我的小店看看吧</text>
-	<navigator url="/mine/shop/shop" hover-class="none" class="shop">我的小店</navigator>
-	<view class="share-btn dflex">
-		<button class="wxfriend dflex" open-type="share">
-			<image src="/pages/images/wechat.png"></image>
-			微信好友
-		</button>
-		<view class="wxposter dflex" bindtap="generatePoster">
-			<image src="/pages/images/poster.png"></image>
-			生成海报
-		</view>
-	</view>
-	<image src="/pages/images/close2.png" class="suc-close" bindtap="hidePop"></image>
-</view> -->
-</view>
-</template>
-
-<script>
-const app = getApp();
-const req = require("../../utils/request.js");
-const utils = require("../../utils/util.js");
-var QQMapWX = require("../../utils/qqmap.js");
-const route = require("../../utils/route");
-import productFooter from "../../components/product_footer/index";
-import productPopup from "../../components/product-popup/index";
-import vShare from "../../components/share/share";
-
-export default {
-  data() {
-    return {
-      bottomBlankHeight: app.globalData.isIPhoneX ? 68 : 0,
-      swiperCurrent: 0,
-      bannerUrls: [],
-      isShow: false,
-      pro: {},
-      isCart: false,
-      timer: [],
-      hideShare: true,
-      codeUrl: '',
-      contentList: [{
-        pic: "/static/pages/images/bar.png",
-        name: '好风依旧',
-        time: '4秒前'
-      }, {
-        pic: "/static/pages/images/bar.png",
-        name: '杨鑫',
-        time: '20秒前'
-      }, {
-        pic: "/static/pages/images/bar.png",
-        name: '杨鑫',
-        time: '5秒前'
-      }],
-      isNotice: false,
-      form: {
-        page: 1,
-        limit: 10
-      },
-      freshen: true // hideShop: '',//隐藏添加到小店
-      // isHide: true,//添加小店成功弹窗
-      ,
-      current: "",
-      merchantId: "",
-      hideShop: "",
-      merchant: "",
-      shopId: "",
-      imgs: [],
-      product: "",
-      nodes: "",
-      address: "",
-      popup: "",
-      tabIndex: "",
-	  allShow:false
-    };
-  },
-
-  components: {
-    productFooter,
-    productPopup,
-    vShare
-  },
-  props: {},
-  onLoad: function (options) {
-    let that = this;
-    // console.log(options);
-    this.query = options;
-
-    if (options.scene) {
-      this.scene = options.scene;
-      this.merchantId = options.merchantId;
-    }
-
-    if (options.merchantId) {
-      that.setData({
-        merchantId: options.merchantId
-      });
-    }
-
-    if (options.isShare) {
-      req.setStorage('pidCode', options.userId);
-    }
-
-    if (options.hideShop) {
-      this.setData({
-        hideShop: this.query.hideShop
-      });
-    } else {
-      this.setData({
-        hideShop: 'true'
-      });
-    }
-
-    if (options.merchantId && options.merchantId != 'undefined') {
-      req.getRequest('/api/merchant/detail', {
-        id: options.merchantId
-      }, data => {
-		  var timestamp = Date.parse(new Date());
-		  data.time=timestamp+1*60*1000
-		  
-        req.setStorage("MERCHANT", data);
-        that.setData({
-          merchant: data
-        });
-        // console.log(data, "执行+++++++++++++++++++++");
-      });
-    } else {
-      let merchant = req.getStorage('MERCHANT');
-      this.setData({
-        merchant: merchant
-      });
-    } // else{
-    //   req.getRequest('/api/merchant/getMerchantList',{}, res => {
-    //    res = res.filter(it=>it.isDefault==1)
-    //     req.setStorage('MERCHANT', res[0]);
-    //     this.data.merchant=res[0]
-    //     that.setData({merchant:res[0]})
-    //     console.log(this.data.merchant)
-    //   })
-    // }
-
-
-    setInterval(() => {
-      this.setData({
-        isNotice: true
-      });
-    }, 10000);
-  },
-  onShow: async function () {
-    if (this.freshen) {
-      await this.loadCodeParams();
-      this.loadProudct(this.query);
-      this.loadDefaultAddress();
-      this.browsRecound(this.query.id);
-    }
-  },
-  onShareAppMessage: function () {
-    let merchantId = '';
-    let path = '/integralshop/detail/detail?id=' + this.query.id + '&isShare=' + true;
-    // console.log(!req.getStorage('userInfo').id);
-
-    if (!req.getStorage('userInfo').id) {} else {
-      path += '&userId=' + req.getStorage('userInfo').id;
-    }
-
-    // console.log(this.query.merchantId);
-    let shopId = '';
-
-      if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-      	path += '&merchantId=' + req.getStorage('MERCHANT').id;
-      	merchantId = req.getStorage('MERCHANT').id;
-      
-      	if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-      		path += '&shopId=' + req.getStorage('smallShop').id;
-      		shopId = req.getStorage('smallShop').id;
-      		merchantId = req.getStorage('smallShop').merchantDTO.id;
-      	}
-      }
-
-
-    route.share(1, req.getStorage('userInfo').id, path, merchantId, shopId, 1, this.query.id);
-    // console.log(path);
-    return {
-      title: this.product.title,
-      imageUrl: this.product.pic,
-      path: path
-    }; // let merchantId=''
-    // // if(this.data.merchant.isDefault!=1){
-    // //   merchantId=this.data.merchant.id
-    // // }
-    // if(this.query.merchantId) merchantId=this.query.merchantId
-    // return {
-    //   title: this.data.product.title,
-    //   imageUrl: this.data.product.pic,
-    //   path: '/integralshop/detail/detail?id=' + this.query.id + '&isShare=' + true + '&userId=' + req.getStorage('userInfo').id+'&merchantId='+merchantId
-    // }
-  },
-
-  onReachBottom() {
-    if (this.is_open_comments == 1 && this.tabIndex == 2) {
-      this.form.page++;
-      this.setData({
-        ['form.page']: this.form.page
-      });
-      // this.selectComponent("#list").loadScore(this.current);
-	  this.$refs.list.loadScore(this.current);
-    }
-  } // addShop() {//添加到小店
-  //   req.postRequest('/api/shopProduct/save',{productId:this.data.product.id,type:1},data=>{
-  //     console.log(data)
-  //     this.setData({ isHide: false })
-  //   })
-  // },
-  // hidePop() {//添加到小店
-  //   this.setData({ isHide: true })
-  // }
-  ,
-
-  methods: {
-	  click(e){
-	  		  // console.log(e)
-	  		  this.hideShare=e
-	  },
-    showShare() {
-		// #ifndef H5
-      req.isLogin().then(success => {
-        if (success) {
-			this.setData({
-			  hideShare: false
-			});
-          	this.getCodeUrl()
-        }
-      });
-	  // #endif
-    },
-
-    /**
-     * 轮播切换
-     */
-    swiperChange({
-      detail
-    }) {
-      if (this.current == 0 && this.swiperCurrent > 1) {
-        //卡死时,重置current为正确索引
-        this.setData({
-          current: this.swiperCurrent
-        });
-      } else {
-        //正常轮转时,记录正确页码索引
-        this.setData({
-          swiperCurrent: detail.current
-        });
-      }
-    },
-
-    dotEvent(e) {
-      this.setData({
-        current: e.currentTarget.dataset.current
-      });
-    },
-
-    browsRecound(id) {
-      let from = {
-        bindId: id,
-        type: 1,
-        page: '/integralshop/detail/detail?id=' + this.query.id
-      }; //  if(this.query.scene){
-      //    from.shareType=12
-      //    from.page='/product/detail/detail?id=' + this.data.query.id +'&scene='+this.query.scene
-      //    if(!this.data.params.merchantId){}else{
-      //      from.merchantId=this.data.params.merchantId
-      //    }
-      //    if(!this.data.params.shopId){}else{
-      //      from.shopId=this.data.params.shopId
-      //    }
-      //    if(!this.data.params.userId){}else{
-      //      from.uid=this.data.params.userId
-      //    }
-      //  }
-
-      if (this.query.isShare) {
-        from.shareType = 1;
-        from.page = '/integralshop/detail/detail?id=' + this.query.id + '&isShare=' + true;
-
-        if (!this.query.userId) {} else {
-          from.page += '&userId=' + this.query.userId;
-        }
-
-        if (!this.query.merchantId) {} else {
-          from.merchantId = this.query.merchantId;
-        }
-
-        if (!this.query.shopId) {} else {
-          from.shopId = this.query.shopId;
-        }
-
-        if (!this.query.userId) {} else {
-          from.uid = this.query.userId;
-        }
-      }
-
-      if (this.query.isShareTimeline) {
-        from.shareType = 2;
-        from.page = '/integralshop/detail/detail?id=' + this.query.id + '&isShareTimeline=' + true;
-
-        if (!this.query.userId) {} else {
-          from.page += '&userId=' + this.query.userId;
-        }
-
-        if (!this.query.merchantId) {} else {
-          from.merchantId = this.query.merchantId;
-        }
-
-        if (!this.query.shopId) {} else {
-          from.shopId = this.query.shopId;
-        }
-
-        if (!this.query.userId) {} else {
-          from.uid = this.query.userId;
-        }
-      }
-
-      req.postRequest('/api/browse', from, data => {});
-    },
-
-    // 选择服务门店
-    updateShop() {
-      let url = 'pages/nearby/nearby?isChoose=true';
-      app.globalData.openPage(url); // let url = 'pages/nearby/nearby';
-      // app.openPage(url)
-    },
-
-    loadCodeParams() {
-      let _ts = this;
-
-      return new Promise((resolve, reject) => {
-        let form = {
-          scene: _ts.scene
-        };
-
-        if (!_ts.scene) {
-          resolve();
-          return false;
-        }
-
-        if (_ts.merchantId) {
-          // console.log("解析出来有门店");
-          form.merchantId = _ts.merchantId;
-        }
-
-        req.getRequest('/api/code/params', form, data => {
-          // console.log("====================================================================================" + data.merchantId);
-          let res = data.scene.split('_');
-          // console.log(res);
-          this.query.id = res[0];
-          this.query.merchantId = res[1];
-          this.query.shopId = res[2]; // this.query.id = res[0];
-          // this.query.merchantId = res[1];
-          // this.query.shopId = res[2];
-
-          if (res[1]) {
-            this.setData({
-              merchantId: res[1]
-            });
-          }
-
-          if (res[2]) {
-            this.setData({
-              shopId: res[2]
-            });
-          }
-
-          req.setStorage('pidCode', data.userId); // if (this.query.scene) {
-          //   this.loadProudct();
-          // }
-          // this.browsRecound(this.query.id);
-
-          resolve();
-        });
-      });
-    },
-
-    loadProudct(query) {
-      // console.log(this.query)
-      // const query = this.query;
-      let that = this;
-      // console.log(query.merchantId);
-      let form = {
-        id: query.id
-      }; 
-      if (query.merchantId) form.merchantId = query.merchantId;
-	  let isShowLoading = false;
-	  
-	  if (!isShowLoading) {
-	  	req.loadIng('加载中');
-	  	isShowLoading = true;
-	  }
-      req.getRequest('/api/product/detail', form, data => {
-        //富文本图片放大
-        var nodes = data.detail;
-        if (data.isOtc == 5) {
-          uni.setNavigationBarTitle({
-            title: '海外购'
-          });
-        }
-
-        that.setData({
-          bannerUrls: data.images,
-          product: data,
-          nodes: nodes,
-		  allShow:true
-        }); 
-		if (isShowLoading) {
-			uni.hideLoading();
-			isShowLoading = false;
-		}
-		// if (data.detail) {
-        //   this.setData({ detail: data.detail.replace(/\<img/gi, '<img class="rich-img"') })
-        // }
-      });
-    },
-
-    getCodeUrl() {
-      let that = this;
-      let scene = that.product.id;
-
-      if (!this.merchantId) {} else {
-        scene += '_' + this.merchantId;
-      }
-
-      // console.log(scene); //获取小程序码
-
-      const params = {
-        page: 'integralshop/detail/detail',
-        scene: scene
-      }; // if(this.data.merchant&&this.data.merchant.isDefault!=1){
-      //   params.merchantId=this.data.merchant.id
-      // }
-
-      if (this.query.merchantId) var merchantId = this.query.merchantId;
-      req.getRequest('/api/program/codev', params, url => {
-        that.setData({
-          codeUrl: url
-        });
-      });
-    },
-
-    loadDefaultAddress() {
-      if (req.isAuth()) {
-        req.g('/api/address/default', data => {
-          if (data) this.setData({
-            address: data
-          });else this.pointLocation();
-        }, true);
-      } else {
-        this.pointLocation();
-      }
-    },
-
-    pointLocation() {
-      //定位当前位置
-      let _ts = this;
-
-      QQMapWX.initMap();
-      req.getLocation(res => {
-        QQMapWX.reverseGeocoder(res, data => {
-          _ts.setData({
-            'address.address': data.address
-          });
-        });
-      });
-    },
-
-    toAddress() {
-      app.globalData.openPage('mine/address/address');
-    },
-
-    atOnceBuy() {
-      this.setData({
-        isShow: true,
-        isCart: false,
-        popup: this.product
-      });
-    },
-
-    addShopCart() {
-      this.setData({
-        isShow: true,
-        isCart: true,
-        popup: this.product
-      });
-    },
-
-    hidePopup() {
-      this.setData({
-        isShow: false
-      });
-    },
-
-    addCartSuccess(event) {
-      this.setData({
-        'product.count': parseInt(this.product.count) + parseInt(event.detail.quantity),
-        isShow: false
-      });
-    },
-
-    clickCollect() {
-      let _ts = this;
-
-      req.postRequest('/api/collect', {
-        bindId: this.product.id,
-        type: 1
-      }, data => {
-        _ts.setData({
-          'product.isCollect': !_ts.product.isCollect
-        });
-      });
-    },
-
-    goTop: function (e) {
-      // 一键回到顶部
-      if (uni.pageScrollTo) {
-        uni.pageScrollTo({
-          scrollTop: 0
-        });
-      } else {
-        uni.showModal({
-          title: '提示',
-          content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
-        });
-      }
-    },
-
-    onShareTimeline() {
-      let merchantId = '';
-      let path = 'id=' + this.query.id + '&isShareTimeline=' + true;
-
-      if (!req.getStorage('userInfo').id) {} else {
-        path += '&userId=' + req.getStorage('userInfo').id;
-      }
-
-      // console.log(this.merchantId);
-      let shopId = '';
-
-      if (!this.merchantId) {
-        // console.log(123, path);
-      } else {
-        if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
-          path += '&merchantId=' + req.getStorage('MERCHANT').id;
-          merchantId = req.getStorage('MERCHANT').id;
-
-          if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
-            path += '&shopId=' + req.getStorage('smallShop').id;
-            shopId = req.getStorage('smallShop').id;
-            merchantId = req.getStorage('smallShop').merchantDTO.id;
-          }
-        }
-      }
-
-      let url = '/integralshop/detail/detail?' + path;
-      route.share(2, req.getStorage('userInfo').id, url, merchantId, shopId, 1, this.query.id);
-      // console.log(path, url);
-      return {
-        title: this.product.title,
-        query: path,
-        imageUrl: this.product.images[0]
-      }; // return {
-      //   title: this.data.product.title,
-      //   path: this.data.product.images[0]
-      // }
-    },
-
-    showTab: function (e) {
-      this.setData({
-        tabIndex: e.detail
-      });
-    },
-    scoreTab: function (e) {
-      this.form.page = 0;
-      this.setData({
-        current: e.detail,
-        ['form.page']: 1
-      });
-    },
-    freshenFun: function (e) {
-      this.setData({
-        freshen: e.detail
-      });
-    }
-  }
-};
-</script>
-<style>
-@import "./detail.css";
-</style>

+ 0 - 80
integralShop/index/index.css

@@ -1,80 +0,0 @@
-/* pages/integralshop/integralshop.wxss */
-.banner{position:absolute;
- /*  #ifndef  H5  */
- z-index: -1;
- /* #endif */
-height: 280rpx;width: 100%;}
-.banner image{width: 100%;height:280rpx}
-.banner::after{content: '';display: block;width: 110%;background: linear-gradient(#FD3A31,#FE934C);height: 280rpx;position: absolute;top: 0;left: -5%;border-radius: 0 0 10% 10%;}
-.top{padding: 50rpx 0 0 40rpx;}
-.top .my{font-size: 28rpx; color: #FFFFFF;align-items: center;}
-.top .my image{width: 29rpx;height: 27rpx;margin-right: 9rpx;}
-.top .integral{align-items: center;justify-content: space-between;}
-.top .integral .txt{font-size: 60rpx;color: #FFFFFF;}
-.top .integral .rule{font-size: 30rpx;
-	color: #FC9816;
-	background: linear-gradient(90deg, #FFF6E9 0%, #FCEEDB 60%, #FFDFB5 100%);
-	height: 64rpx;
-	border-radius: 32rpx 0 0 32rpx;
-	padding: 0 30rpx 0 27rpx;
-	align-items: center;
-	justify-content: center;}
-.top .integral .rule image{ width: 34rpx;height: 32rpx;margin-right: 11rpx;}
-.nav{margin: 50rpx 40rpx;border-radius: 12rpx;background: #fff;position: relative;z-index: 3;}
-.nav .item{padding: 31rpx 0;justify-content: space-between;}
-.nav .item view{color: #333333;align-items: center;
-    flex: 0.5;
-    justify-content: center;
-    font-size: 26rpx;}
-.grule {
-    border-right: 1rpx solid rgba(232,232,232,.6);
-}	
-/* .nav .item image{ width: 98rpx;height: 98rpx;} */
-
-/* 筛选 */
-.cont{background: #fff; margin-top: 35rpx;}
-.filter{padding: 0 20rpx; border-bottom:2rpx solid rgba(232,232,232,.5) ;}
-.filter1{position: relative;z-index: 100;}
-.filter .li{width: 33.33%;display: flex;display: -webkit-flex;align-items: center;justify-content: center;padding: 25rpx 0;font-size: 30rpx;color: #333;}
-.filter .li.active{color: #FE0419}
-.updown{width: 14rpx;height: 8rpx;margin-left: 9rpx;}
-.cont .pop .item{position: absolute;z-index: 100;background: #fff;width: 100%; border-radius: 0 0 30rpx 30rpx;}
-.cont .pop .item view{padding: 30rpx; justify-content: space-between; align-items: center; font-size: 28rpx;}
-.cont .pop .item image{width: 30rpx;height: 20rpx;}
-.cont .brbtm{border-bottom: 2rpx solid rgba(232,232,232,.5);}
-.cont .pop .active{color: #FE0419;}
-/* 产品展示 */
-.pintuan{ position: relative;}
-.pintuan .li{margin-top: 24rpx;padding-bottom: 35rpx;margin-bottom: 20rpx;border-bottom: 1rpx solid rgba(232,232,232,.5);}
-.pintuan .li:last-child{border-bottom: none;}
-.pinimgs{box-sizing: border-box;width: 210rpx;height: 210rpx;border-radius: 10rpx;margin-right: 20rpx;border: 2rpx solid #E5E5E5;position: relative;}
-.pinimg{display: block;width: 100%;height: 100%;border-radius: 10rpx;}
-.tuan{display: block;width: 87rpx;height: 44rpx;font-size: 22rpx;color: #fff;text-align: center;line-height: 34rpx;position: absolute;top: 21rpx;left: -10rpx;}
-.tuan image{display: block;width: 100%;height: 100%;position: absolute;top: 0;left: 0;}
-.tuan text{position: relative;z-index: 2;display: block;}
-.pininfo{overflow:hidden }
-.pininfo .proname{font-size: 28rpx;color: #333;overflow: hidden;
-    text-overflow: ellipsis;
-    display: -webkit-box;
-    -webkit-box-orient: vertical;
-    -webkit-line-clamp: 2;}
-.pininfo .operate{margin-bottom: 57rpx;}
-.pininfo .operate .introduce{color: #999999;font-size: 24rpx;}
-.pininfo .price{align-items: center;justify-content: space-between;line-height: 50rpx;}
-.pininfo .price .prc{font-size: 24rpx;color: #FE0419;margin-left: 8rpx;}
-
-.pininfo .price .num{font-size: 36rpx;color: #FE0419;}
-.pininfo .price .money{font-size: 24rpx;color: #FE0419;margin-left: 4rpx;}
-.pininfo .price .btn{width: 130rpx;height: 50rpx;border-radius: 25rpx;background: linear-gradient(90deg, #FF6070 0%, #FE0419 100%);text-align: center;line-height: 50rpx;font-size: 24rpx; color: #fff;}
-/* .pininfo .price .baglig{background: linear-gradient(to left,#FE0419,#FF6070);color: #fff;} */
-.pininfo .price .file{background: #D1D1D1; color: #999999;}
-.more{
-  width: 31rpx;
-  height: 31rpx;
-  margin-right: 13rpx;
-}
-.detailed{
-  width: 28rpx;
-  height: 28rpx;
-  margin-right: 12rpx;
-}

+ 0 - 378
integralShop/index/index.vue

@@ -1,378 +0,0 @@
-<template>
-	<view>
-		<!--pages/integralshop/integralshop.wxml-->
-		<view class="banner">
-			<!-- <image src="/integralshop/static/integralshop/images/integral_bg.png" role="img"></image> -->
-		</view>
-		<view class="top ">
-			<view class="dflex integral">
-				<view class="flex" @tap="goDetailed">
-					<view class="txt">{{userIntegral}}</view>
-					<view class="my dflex">积分余额</view>
-					<!--    <view class="rule dflex" @tap="goRule">积分规则<image src="/static/integralshop/images/you_h.png"></image>
-    </view> -->
-				</view>
-				<view class="rule dflex" @tap="isSign==0||sign==1?'':signFun()">
-					<image src="../static/integralshop/images/qdico.png"></image>{{isSign==0||sign==1?'已签到':'签到'}}
-				</view>
-			</view>
-		</view>
-		<view class="nav">
-			<view class="item dflex">
-				<view @tap="goRule" class="dflex grule">
-					<image src="/integralshop/static/integralshop/images/sign.png" class="more"></image>获取积分
-				</view>
-				<view @tap="goDetailed" class="dflex">
-					<image src="/integralshop/static/integralshop/images/detailed.png" class="detailed"></image>积分明细
-				</view>
-				<!-- <view>
-      <image src="/integralshop/images/card.png"></image>卡券兑换
-    </view> -->
-			</view>
-		</view>
-		<view class="cont">
-			<view class="pop">
-				<view :class="'filter dflex bgfff ' + (isShow?'filter1':'')">
-					<view :class="'li ' + (active=='default'?'active':'')" @tap="ss" data-v="default">默认</view>
-					<view :class="'li ' + (active=='stock'?'active':'')" @tap="ss" data-v="stock">销量
-					</view>
-					<view :class="'li ' + (active=='fraction'?'active':'')" @tap="ss" data-v="fraction">积分<image
-							:src="isShow?'/integralshop/static/integralshop/images/integral_up.png':'/integralshop/static/integralshop/images/integral_down.png'"
-							class="updown">
-						</image>
-					</view>
-				</view>
-				<view class="item" v-if="isShow">
-					<view :class="'brbtm dflex ' + (sort=='gtIntegral'?'active':'')" @tap="fraction"
-						data-v="gtIntegral">积分降序<image src="/integralshop/static/integralshop/images/integral_gou.png"
-							v-if="sort=='gtIntegral'"></image>
-					</view>
-					<view :class="'dflex ' + (sort=='ltIntegral'?'active':'')" @tap="fraction" data-v="ltIntegral">积分升序
-						<image src="/integralshop/static/integralshop/images/integral_gou.png"
-							v-if="sort=='ltIntegral'"></image>
-					</view>
-				</view>
-			</view>
-			<view class="mask" @tap="eliminate" v-if="isShow"></view>
-			<view class="pintuan pdlr20">
-				<view v-for="(item, index) in pageList" :key="index" class="li" @tap="goproDetail" :data-id="item.id"
-					:data-merchant="merchant.type==5?merchant.merchantDTO.id:merchant.id"
-					:data-shopId="merchant.type==5?merchant.id:''">
-					<view class="dflex">
-						<view class="pinimgs">
-							<image :src="item.pic" mode="aspectFit" class="pinimg"></image>
-						</view>
-						<view class="pininfo flex">
-							<view class="proname">
-								{{item.title}}
-							</view>
-							<view class="operate">
-								<view class="introduce">
-									{{item.brief}}
-								</view>
-							</view>
-							<view class="price dflex">
-								<view class="dflex">
-									<text class="num">{{item.integral}}</text><text class="money">积分</text>
-									<view><text class="prc">+¥{{item.actualPrice }}</text></view>
-								</view>
-								<view class="btn baglig">兑换</view>
-								<!-- <view class="btn file" >积分不足</view> -->
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="nodata" v-if="ishow">
-			<image :src="picUrlss+'empty_sp.png'"></image>
-			<text>暂无商品</text>
-		</view>
-		<view class="nomore dflex">亲,没有更多了</view>
-		<view class="placeholder-view" :style="'height:' + (bottomBlankHeight + 115) + 'rpx'"></view>
-		<foot product-type="2" :isUpdate="isUpdate"></foot>
-	</view>
-</template>
-
-<script>
-	// pages/integralshop/integralshop.js
-	const app = getApp();
-	const req = require("../../utils/request.js");
-	import foot from "../../components/integral-nav/index";
-
-	export default {
-		data() {
-			return {
-				picUrlss: req.public.picUrls,
-				page: 1,
-				isLoad: true,
-				isShow: false,
-				sort: '',
-				active: 'default',
-				isUpdate: false // 是否更新消息
-					,
-				merchant: "",
-				isSign: "",
-				hasmore: false,
-				pageList: "",
-				ishow: false,
-				sign: 0,
-				hasemore: false
-			};
-		},
-
-		components: {
-			foot
-		},
-		props: {},
-
-		/**
-		 * 生命周期函数--监听页面加载
-		 */
-		onLoad: function(options) {
-			// this.getProct()
-			// this.getMerchant()
-			// this.setData({merchant:req.getStorage("MERCHANT")})
-			this.setData({
-				merchant: req.getStorage("defaultMerchant")
-			});
-		},
-
-		/**
-		 * 生命周期函数--监听页面显示
-		 */
-		onShow: function() {
-			this.getProct();
-			this.isSignFun();
-			this.getIntegral();
-			this.setData({
-				isUpdate: !this.isUpdate
-			});
-		},
-
-		/**
-		 * 生命周期函数--监听页面隐藏
-		 */
-		onHide: function() {
-			this.isLoad = true;
-		},
-
-		/**
-		 * 生命周期函数--监听页面卸载
-		 */
-		onUnload: function() {},
-
-		/**
-		 * 页面相关事件处理函数--监听用户下拉动作
-		 */
-		onPullDownRefresh: function() {},
-
-		/**
-		 * 页面上拉触底事件的处理函数
-		 */
-		onReachBottom: function() {
-				this.page++;
-				this.getProct();
-			}
-			/**
-			 * 用户点击右上角分享
-			 */
-			// onShareAppMessage: function () {
-			// }
-			,
-		methods: {
-			// 是否签到{}
-			isSignFun() {
-				req.getRequest('/api/integral/isSign', {}, res => {
-					this.setData({
-						isSign: res
-					});
-				});
-			},
-
-			// 获取用户积分
-			getIntegral() {
-				req.getRequest('/api/integral/totalIntegral', {}, res => {
-					// console.log(res);
-					this.setData(res);
-				});
-			},
-
-			getMerchant() {
-				// let merchant = req.getStorage("MERCHANT");
-				req.getRequest('/api/merchant/getMerchantList', {}, res => {
-					res = res.filter(it => it.isDefault == 1);
-					var timestamp = Date.parse(new Date());
-					res[0].time = timestamp + 1 * 60 * 1000
-					req.setStorage('MERCHANT', res[0]);
-					this.setData({
-						merchant: res[0]
-					});
-				});
-			},
-
-			// 获取产品列表
-			getProct() {
-				let isShowLoading = false;
-
-				if (this.page == 1 && !isShowLoading) {
-					req.loadIng('加载中');
-					isShowLoading = true;
-				}
-
-				let that = this;
-				if (!that.isLoad) return false;
-				that.isLoad = false;
-				let from = {
-					page: this.page,
-					limit: 10,
-					mode: 2,
-					sort: this.sort
-				};
-				req.getRequest('/api/product/list', from, data => {
-					if (data && data.length >= 10) that.isLoad = true;
-					if (that.page > 1) data = that.pageList.concat(data);
-
-					if (!data || data.length < 10) {
-						that.setData({
-							hasmore: true
-						});
-					}
-
-					that.setData({
-						pageList: data
-					});
-					// console.log(data);
-
-					if (data.length <= 0) {
-						that.setData({
-							ishow: true
-						});
-					} else {
-						that.setData({
-							ishow: false
-						});
-					}
-
-					if (isShowLoading) {
-						uni.hideLoading();
-						isShowLoading = false;
-					}
-				});
-			},
-
-			// 商品详情
-			goproDetail(e) {
-				var id = e.currentTarget.dataset.id;
-				let merchantId = e.currentTarget.dataset.merchant;
-				let shopId = e.currentTarget.dataset.shopid;
-
-				if (!shopId) {
-					if (!merchantId) {
-						uni.navigateTo({
-							url: '/integralshop/detail/detail?id=' + id
-						});
-					} else {
-						uni.navigateTo({
-							url: '/integralshop/detail/detail?id=' + id + '&merchantId=' + merchantId
-						});
-					}
-				} else {
-					uni.navigateTo({
-						url: '/integralshop/detail/detail?id=' + id + '&merchantId=' + merchantId + '&shopId=' +
-							shopId
-					});
-				} // wx.navigateTo({
-				//   url: '/integralshop/detail/detail?id='+id,
-				// })
-
-			},
-
-			// 积分规则
-			goRule() {
-				uni.navigateTo({
-					url: "/integralshop/task/index"// /integralshop/integralRule/index
-				});
-			},
-
-			// 签到
-			signFun() {
-				req.postRequest('/api/integral/sign', {}, data => {
-					if (data) {
-						req.msg('连续签到' + data.continuityDay + '天' + ',获得' + data.IntegralChange + '积分');
-						this.setData({
-							sign: 1
-						});
-						this.getIntegral();
-					}
-				});
-			},
-
-			// 积分明细
-			goDetailed() {
-				uni.navigateTo({
-					url: "/integralshop/integralDetailed/index"
-				});
-			},
-
-			// 分数排序
-			fraction(e) {
-				var dt = e.currentTarget.dataset;
-				this.isLoad = true;
-				this.setData({
-					isShow: false
-				});
-				this.refresh(dt.v);
-			},
-
-			ss(e) {
-				var dt = e.currentTarget.dataset;
-
-				if (dt.v == 'fraction') {
-					this.setData({
-						isShow: true
-					});
-				} else {
-					this.setData({
-						isShow: false
-					});
-				}
-
-				if (dt.v == 'default') {
-					this.isLoad = true;
-					this.refresh(dt.v);
-				}
-
-				if (dt.v == 'stock') {
-					this.isLoad = true;
-					this.refresh(dt.v);
-				} // this.data.isLoad = true;
-				// this.refresh(dt.v);
-
-
-				this.setData({
-					active: dt.v
-				});
-			},
-
-			refresh(s, t) {
-				this.setData({
-					hasemore: true,
-					sort: s
-				});
-				this.page = 1;
-				this.getProct();
-			},
-
-			eliminate() {
-				this.setData({
-					isShow: false
-				});
-			}
-
-		}
-	};
-</script>
-<style>
-	@import "./index.css";
-</style>

+ 0 - 58
integralShop/integralDetailed/index.css

@@ -1,58 +0,0 @@
-/* pages/integralshop/integralDetailed/index.wxss */
-.banner{height: 180rpx;width: 100%;position:absolute;
-/*  #ifndef  H5  */
-z-index: -1;
- /* #endif */
- background-size:100% 100%;}
-.banner image{width: 100%;height: 180rpx}
-.banner::after{content: '';display: block;width: 110%;background: linear-gradient(#FD3A31,#FE934C);height: 180rpx;position: absolute;top: 0;left: -5%;border-radius: 0 0 10% 10%;}
-.nav{margin: 0 30rpx 0;position: relative;z-index: 3;padding: 50rpx 0 0;}
-.nav .item{padding: 44rpx 40rpx;justify-content: space-between;background: #fff;border-radius: 20rpx;}
-.nav .item .li{border-right: 1rpx solid rgba(232,232,232,.4);margin-right: 40rpx;}
-.nav .item .li .count{font-size: 28rpx;color: #666;}
-.nav .item .li .integral{font-size: 24rpx; color: #999999;}
-.nav .item .li .num{font-size: 56rpx; font-weight: bold;color: #333;margin-bottom: 10rpx; }
-.nav .item .li .num1{font-size: 56rpx; font-weight: bold;margin-bottom: 10rpx;}
-.nav .item .li .dflex{align-items: center;}
-.nav .item .li image{width: 29rpx;height: 27rpx;margin-right: 9rpx;}
-.duihuan{background: linear-gradient(90deg, #FF6070 0%, #FE0419 100%);font-size: 30rpx;color: #fff;width: 200rpx;height: 60rpx;line-height: 60rpx;border-radius: 30rpx;text-align: center;}
-.leiji{font-size: 26rpx;color: #999;margin-top: 20rpx;text-align: center;}
-.leiji text{color: #FD3A31;}
-
-/* 筛选 */
-.cont{padding: 0 30rpx 0;}
-.cont .top{padding: 40rpx 0 30rpx 0;font-size: 26rpx;color: #999999;}
-.filter{padding: 0 20rpx; border-bottom:2rpx solid #E8E8E8 ;}
-.filter1{position: relative;z-index: 100;}
-.filter .li{width: 33.33%;display: flex;display: -webkit-flex;align-items: center;justify-content: center;padding: 25rpx 0;font-size: 30rpx;color: #333;}
-.filter .li.active{color: #FE0419}
-.updown{width: 14rpx;height: 8rpx;margin-left: 9rpx;}
-.cont .pop .item{position: absolute;z-index: 100;background: #fff;width: 100%; border-radius: 0 0 30rpx 30rpx;}
-.cont .pop .item view{padding: 30rpx; justify-content: space-between; align-items: center; font-size: 28rpx;}
-.cont .pop .item image{width: 30rpx;height: 20rpx;}
-.cont .brbtm{border-bottom: 2rpx solid #E8E8E8;}
-.cont .pop .active{color: #FE0419;}
-/* 产品展示 */
-/* .pintuan .li:last-child{margin-bottom: 0;margin-top: 24rpx;} */
-.pintuan{background: #fff;border-radius: 12rpx;}
-.pinimgs{width: 70rpx;height:70rpx;position: relative;padding: 0 20rpx 0 0;}
-.pinimg{display: block;width: 100%;height: 100%;border-radius: 10rpx;}
-.pininfo{flex: 1;}
-.pininfo .proname{font-size: 30rpx;color: #333;}
-/* .pininfo .operate{margin-bottom: 66rpx;} */
-.pininfo .operate .introduce{color: #999999;font-size: 24rpx;margin-top:18rpx}
-.pintuan .li{border-bottom: 1rpx solid rgba(232,232,232,.4);padding: 0 30rpx;}
-.pintuan .li:last-child{border-bottom: none;}
-.pintuan .li .item{align-items: center;padding: 26rpx 0;}
-.yhq{width: 56rpx;height: 56rpx;}
-.pintuan .li .price{text-align: right;}
-.pintuan .li .price .prc{font-size: 36rpx;color: #FE0419;}
-.pintuan .li .price .prc1{font-size: 36rpx;}
-.pintuan .li .price .num{font-size: 24rpx;color: #999999;}
-
-/* 优惠券 */
-.coupon{margin-top: 40rpx; margin-left: 20rpx;}
-.coupon .proname{font-size: 30rpx;color: #333;}
-.coupon .operate{margin-bottom: 66rpx;}
-.coupon .operate .introduce{color: #999999;font-size: 24rpx;margin-top:18rpx}
-.pintuan .li .price .jian {font-size: 34rpx;color: #333333;font-weight: bold;}

+ 0 - 268
integralShop/integralDetailed/index.vue

@@ -1,268 +0,0 @@
-<template>
-<view>
-<!--pages/integralshop/integralDetailed/index.wxml-->
-<view class="banner">
-  <!-- <image src="/integralshop/static/integralshop/images/integralDetailed_bg.png" role="img"></image> -->
-</view>
-<view class="nav">
-  <view class="item dflex">
-    <view class="li flex">
-      <view class="num">{{userIntegral}}</view>
-      <view class="dflex"><!-- <image src="../static/integralshop/images/jfico1.png"></image> --><text class="count">积分余额</text></view>
-    </view>
-	<view class="ir">
-		<view class="duihuan" @tap="goHome">积分兑换</view>
-		<view class="leiji">累计积分:<text>{{cumulativeIntegral}}</text></view>
-	</view>
-    <!-- <view class="li">
-      <view class="num1">{{cumulativeIntegral}}</view>
-      <view class="dflex"><image src="../static/integralshop/images/jfico2.png"></image><text class="count">累计积分</text></view>
-    </view>
-	<view class="li" @tap="goHome">
-	  <view class="num1">{{userIntegral}}</view>
-	  <view class="dflex"><image src="../static/integralshop/images/jfico2.png"></image><text class="count">积分兑换</text></view>
-	</view> -->
-  </view>
-</view>
-
-<view class="cont">
-  <!-- <view class="pop">
-    <view class="filter dflex bgfff">
-      <view class="li {{sort==''?'active':''}}" bindtap="ss" data-v="">默认</view>
-      <view class="li {{sort=='stock'?'active':''}}" bindtap="ss" data-v="stock">时间<image
-          src="/pages/images/integral_down.png" class="updown"></image>
-      </view>
-      <view class="li active" bindtap="ss" data-v="gtPrice">分数<image src="/pages/images/integral_up.png" class="updown">
-        </image>
-      </view>
-    </view>
-    <view class="item">
-      <view class="brbtm dflex active">积分降序<image src="/pages/images/integral_gou.png"></image>
-      </view>
-      <view class="dflex">积分升序<image src="/pages/images/integral_gou.png"></image>
-      </view>
-    </view>
-  </view> -->
-  <!-- <view class="mask"></view> -->
-  <block v-if="pageList.length>0">
-    <view class="top" v-if="pageList.length>0">展示一个月内明细</view>
-  <view class="pintuan">
-    <view v-for="(item, index) in pageList" :key="index" class="li">
-      <view class="dflex item">
-        <view class="pinimgs">
-          <image src="/integralshop/static/integralshop/images/integralOrder.png" mode="aspectFit" class="pinimg" v-if="item.source==2||item.source==21">
-          </image>
-          <image src="/integralshop/static/integralshop/images/integralSign.png" mode="aspectFit" class="pinimg" v-if="item.source==1">
-          </image>
-          <image src="/integralshop/static/integralshop/images/integralDetailed_yhq.png" mode="aspectFit" class="pinimg" v-if="item.source==4||item.source==20"></image>
-            <image src="/integralshop/static/integralshop/images/extension.png" mode="aspectFit" class="pinimg" v-if="item.source==7||item.source==8">
-          </image>
-        </view>
-        <view class="pininfo ">
-          <view class="proname">
-            {{item.source==1?item.note:item.sourceStr}}
-          </view>
-          <view class="operate">
-            <view class="introduce">
-              {{item.createDate}}</view>
-          </view>
-        </view>
-        <view class="price">
-          <view><text :class="item.integralChange>=0?'prc':'prc1'">{{item.integralChange>=0?'+':''}}{{item.integralChange}}</text>
-          </view>
-          <view><text class="num">当前总分{{item.integralAfter}}</text></view>
-          <!-- <view class="btn file" >积分不足</view> -->
-        </view>
-      </view>
-    </view>
-  </view>
-  </block>
-  <block v-if="lastpageList.length>0">
-    <view class="top">展示上个月内明细</view>
-    <view class="pintuan pdlr20">
-      <view v-for="(item, index) in lastpageList" :key="index" class="li">
-        <view class="dflex item">
-          <view class="pinimgs">
-            <image src="/integralshop/static/integralshop/images/integralOrder.png" mode="aspectFit" class="pinimg" v-if="item.source==2||item.source==21">
-          </image>
-          <image src="/integralshop/static/integralshop/images/integralSign.png" mode="aspectFit" class="pinimg" v-if="item.source==1">
-          </image>
-          <image src="/integralshop/static/integralshop/images/integralDetailed_yhq.png" mode="aspectFit" class="pinimg" v-if="item.source==4||item.source==20"></image>
-            <image src="/integralshop/static/integralshop/images/extension.png" mode="aspectFit" class="pinimg" v-if="item.source==7||item.source==8">
-          </image>
-          </view>
-          <view class="pininfo ">
-            <view class="proname">
-              {{item.source==1?item.note:item.sourceStr}}
-            </view>
-            <view class="operate">
-              <view class="introduce">
-                {{item.createDate}}</view>
-            </view>
-          </view>
-          <view class="price">
-            <view><text class="prc">{{item.integralChange>0?'+':''}}{{item.integralChange}}</text></view>
-            <view><text class="num">当前总分{{item.integralAfter}}</text></view>
-          </view>
-        </view>
-      </view>
-    </view>
-  </block>
-  <view class="nodata" v-if="lastpageList.length<1&&pageList.length<1">
-    <image :src="picUrlss+'empty_dd.png'"></image>
-    <text>暂无明细</text>
-  </view>
-  <!-- <view class="pintuan pdlr20">
-    <view class="li">
-      <view class="dflex item">
-        <view class="">
-          <image src="{{item.pic}}" mode="aspectFit" class="pinimg"></image>
-          <image src="/pages/images/integralDetailed_yhq.png" class="yhq"></image>
-        </view>
-        <view class="coupon flex ">
-          <view class="proname">
-            兑换优惠劵
-          </view>
-          <view class="operate">
-            <view class="introduce">
-              活动扣积分 2020-02-25 12:25:36</view>
-          </view>
-        </view>
-        <view class="price dflex">
-          <view><text class="jian">-80</text></view>
-        </view>
-      </view>
-    </view>
-  </view> -->
-</view>
-</view>
-</template>
-
-<script>
-// const { time } = require('console');
-// pages/integralshop/integralDetailed/index.js
-const req = require("../../utils/request.js");
-const util = require("../../utils/util.js");
-
-export default {
-  data() {
-    return {
-		picUrlss: req.public.picUrls,
-      isLoad: true,
-      page: 1,
-      time: "",
-      pageList: "",
-      lastpageList: ""
-    };
-  },
-
-  components: {},
-  props: {},
-
-  /**
-   * 生命周期函数--监听页面加载
-   */
-  onLoad: function (options) {},
-
-  /**
-   * 生命周期函数--监听页面初次渲染完成
-   */
-  onReady: function () {},
-
-  /**
-   * 生命周期函数--监听页面显示
-   */
-  onShow: function () {
-    this.getMounth();
-    this.getIntegralList(1);
-    this.getIntegralList(2);
-    this.getIntegral(); // console.log(util.getPreMonth(util.formatTime(new Date()).t2))
-    // console.log(util.formatTime(new Date()))
-  },
-
-  /**
-   * 生命周期函数--监听页面隐藏
-   */
-  onHide: function () {},
-
-  /**
-   * 生命周期函数--监听页面卸载
-   */
-  onUnload: function () {},
-
-  /**
-   * 页面相关事件处理函数--监听用户下拉动作
-   */
-  onPullDownRefresh: function () {},
-
-  /**
-   * 页面上拉触底事件的处理函数
-   */
-  onReachBottom: function () {// this.data.page++;
-    // this.getIntegralList(1)
-  }
-  /**
-   * 用户点击右上角分享
-   */
-  // onShareAppMessage: function () {
-  // }
-  ,
-  methods: {
-    // 获取当前月和上个月
-    getMounth() {
-      this.setData({
-        time: util.getPreMonth(util.formatTime(new Date()).t2)
-      });
-      // console.log(this.time);
-    },
-	goHome(){
-		uni.navigateTo({
-		  url: '/integralshop/index/index'
-		});
-	},
-
-    // 获取用户积分
-    getIntegral() {
-      req.getRequest('/api/integral/totalIntegral', {}, res => {
-        // console.log(res);
-        this.setData(res);
-      });
-    },
-
-    // 积分记录 展示当前月的积分
-    getIntegralList(type) {
-      let from = {
-        page: 1,
-        dataTime: '',
-        limit: 1000
-      };
-
-      if (type == 1) {
-        from.dataTime = this.time.t1;
-      } else {
-        from.dataTime = this.time.t2;
-      }
-
-      req.getRequest('/api/integral/list', from, data => {
-        // console.log(data);
-
-        if (type == 1) {
-          this.setData({
-            pageList: data
-          });
-        } else {
-          this.setData({
-            lastpageList: data
-          });
-        }
-
-        // console.log(data);
-      });
-    }
-
-  }
-};
-</script>
-<style>
-@import "./index.css";
-</style>

+ 0 - 18
integralShop/integralRule/index.css

@@ -1,18 +0,0 @@
-/* pages/integralshop/integralRule/index.wxss */
-page{background: #fff;}
-.banner{padding: 30rpx;font-size: 36rpx;color: #333;font-weight: bold;}
-.banner image{width: 100%;}
-.cont{padding: 25rpx;/* background: #fff;margin: 20rpx;border-radius: 12rpx; */}
-.cont .title{font-size: 26rpx;color: #FE0419;}
-.cont .text{text-indent: 2em;font-size: 26rpx;line-height: 2em;}
-/* .cont .li{margin-bottom: 10rpx;} */
-
-.tits{font-size: 28rpx;color: #333;font-weight: bold;margin: 60rpx 0 20rpx;}
-.guize{border: 1rpx solid #e5e5e5;}
-.guize .li{background: #f8f8f8;font-size: 28rpx;color: #333;font-weight: bold;border-bottom: 1rpx solid #e5e5e5;margin-bottom: 0;}
-.guize .lis{border-bottom: 1rpx solid #e5e5e5;}
-.guize .lis:last-child{border-bottom: none;}
-.label{display: block;width: 150rpx;border-right: 1rpx solid #e5e5e5;padding: 20rpx;}
-.item{padding: 20rpx;}
-
-.nodata image{width: 477rpx;height: 337rpx;}

+ 0 - 147
integralShop/integralRule/index.vue

@@ -1,147 +0,0 @@
-<template>
-	<view>
-		<!--pages/integralshop/integralRule/index.wxml-->
-		<!-- <text>pages/integralshop/integralRule/index.wxml</text> -->
-		<view class="banner">
-			如何获取积分?
-			<!-- <image src="/integralshop/static/integralshop/images/integral_rule_bg1.png" mode="widthFix"></image> -->
-		</view>
-		<view class="cont">
-			<view class="ziyou">
-				<!--    <rich-text :nodes="diyNodes" @tap="richImg"></rich-text>
-    <block v-for="(item, index) in diyImgs" :key="index">
-						<image class="img" :src="item + '?x-oss-process=style/w750-auto'" mode="widthFix" @tap="chooseImg1" :data-src="item"></image>
-				</block> -->
-				<mp-html :content="diyNodes" @imgtap="choose" v-if="diyNodes!='<p><br></p>'" />
-				<view class="nodata" v-else>
-					<image :src="picUrlss+'empty.png'"></image>
-					<text>暂无~</text>
-				</view>
-				<!-- <image src="{{item}}" mode="widthFix" wx:for="{{imgs}}" wx:key="{{index}}"></image> -->
-			</view>
-			<view class="tits">积分获取规则</view>
-			<view class="guize">
-				<view class="li dflex">
-					<label class="label">场景</label>
-					<view class="item flex">获取规则</view>
-				</view>
-				<view class="lis dflex" v-for="(item,index) in ruleList" :key="index" v-if="item.state == 2">
-					<label class="label">{{getText(item.type)}}</label>
-					<block  v-if="item.type == 1">
-						<view class="item flex" v-if="item.giveMode == 1">首次赠送{{item.firstGiveIntegral}}积分,后续每次赠送{{item.fixedGiveIntegral}}积分</view>
-						<view class="item flex" v-else>首次赠送{{item.firstGiveIntegral}}积分,连续叠加赠送{{item.superpositionIntegral}}积分,最多叠加{{item.maxFrequency}}次</view>
-					</block>
-					<view class="item flex" v-if="item.type == 2">首单赠送{{item.firstGiveIntegral}}积分,下单消费1元赠送{{item.proportionGiftsOrders}}积分</view>
-					<view class="item flex" v-if="item.type == 3">首次赠送{{item.firstGiveIntegral}}积分,现金兑换积分比例{{item.proportionGiftsOrders}}</view>
-					<block  v-if="item.type == 7">
-						<view class="item flex" v-if="item.giveMode == 1">首次赠送{{item.firstGiveIntegral}}积分,后续每次赠送{{item.fixedGiveIntegral}}积分</view>
-						<view class="item flex" v-else>首次赠送{{item.firstGiveIntegral}}积分,连续叠加赠送{{item.superpositionIntegral}}积分,最多叠加{{item.maxFrequency}}次</view>
-					</block>
-					<block  v-if="item.type == 8">
-						<view class="item flex" v-if="item.giveMode == 1">首次赠送{{item.firstGiveIntegral}}积分,后续每次赠送{{item.fixedGiveIntegral}}积分</view>
-						<view class="item flex" v-else>首次赠送{{item.firstGiveIntegral}}积分,连续叠加赠送{{item.superpositionIntegral}}积分,最多叠加{{item.maxFrequency}}次</view>
-					</block>
-					<view class="item flex" v-if="item.type == 99">首次赠送{{item.firstGiveIntegral}}积分,后续每次赠送{{item.fixedGiveIntegral}}积分</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-<script>
-	// pages/integralshop/integralRule/index.js
-	const req = require("../../utils/request.js");
-	const route = require("../../utils/route");
-	import mpHtml from "../../components/mp-html/components/mp-html/mp-html";
-	export default {
-		components: {
-			mpHtml
-		},
-		data() {
-			return {
-				picUrlss: req.public.picUrls,
-				freshen: true,
-				diyImgs: "",
-				diyNodes: "",
-				ruleList: []
-			};
-		},
-
-		components: {},
-		props: {},
-		onLoad(){
-			this.getRule();
-		},
-		onShow: function() {
-			// INTEGRAL_EXPLANATION_CONFIG
-			if (this.freshen) {
-				route.getConfing(res => {
-					if (res.INTEGRAL_EXPLANATION_CONFIG) {
-						let that = this; //富文本图片放大
-						var diyNodes = res.INTEGRAL_EXPLANATION_CONFIG;
-						that.setData({
-							diyNodes: diyNodes
-						});
-					}
-				});
-			}
-		},
-
-		methods: {
-			chooseImg1: function(e) {
-				//预览
-				var src = e.currentTarget.dataset.src;
-				this.setData({
-					freshen: false
-				});
-				uni.previewImage({
-					current: src,
-					// 当前显示图片的http链接  
-					urls: this.diyImgs
-				});
-			},
-			getRule(){
-				req.getRequest('/api/integral/config',{},res=>{
-					if(res && res.length > 0){
-						res.map(it=>{
-							if(it.state == 2){
-								return it;
-							}
-						})
-					this.ruleList = res;
-					}
-					console.log('规则=='+res)
-				})
-			},
-			getText(type){
-				let text = '';
-				switch (type) {
-					case 1:
-						text = '签到送积分';
-						break;
-					case 2:
-						text = '下单送积分';
-						break;
-					case 3:
-						text = '现金兑换积分';
-						break;
-					case 4:
-						text = '积分兑换商品';
-						break;
-					case 7:
-						text = '推荐会员';
-						break;
-					case 8:
-						text = '推荐分销商';
-						break;
-					case 99:
-						text = '其它';
-						break;
-				}
-				return text;
-			}
-		}
-	};
-</script>
-<style>
-	@import "./index.css";
-</style>

+ 0 - 37
integralShop/order/order.css

@@ -1,37 +0,0 @@
-/* pages/order/order.wxss */
-page{padding-bottom: 20rpx;}
-.tab{padding: 0 35rpx;display: flex;display: -webkit-flex;height: 100rpx;background: #fff;line-height: 100rpx;}
-.tab .li{font-size: 28rpx;color: #999;width: 20%;text-align: center;position: relative;}
-.tab .li.active{color: #333;}
-.tab .li.active::after{content: '';display: block;width: 49rpx;height: 6rpx;background:var(--mina) !important;position: absolute;left: 50%;transform: translateX(-50%);bottom: 0;}
-.lists{background: #fff;border-radius: 10rpx;padding: 0 15rpx;margin: 20rpx;}
-.ddbh{height: 99rpx;line-height: 99rpx;border-bottom: 1rpx solid #F5F5F5;display: flex;display: -webkit-flex;align-items: center;justify-content: space-between;margin-bottom: 10rpx;padding: 0 5rpx;}
-.ddbh text{display: block;font-size: 28rpx;color: #999;}
-.lists .ioc{width: 24rpx;height: 24rpx;margin-right: 12rpx;}
-.type{width: 82rpx;height: 36rpx;}
-.ddbh view{font-size: 26rpx;color: #333;align-items: center;}
-.tihuoma{margin-left: 15rpx;}
-.tihuoma text{color: #FE0419;display: inline-block;}
-.lists .li{display: flex;display: -webkit-flex;align-items: center;padding: 20rpx 5rpx;}
-.cimg{width: 180rpx;height: 180rpx;border-radius: 10rpx;margin-right: 20rpx;border: 2rpx solid #E5E5E5;box-sizing: border-box;}
-.zhinfo{flex:1;-webkit-flex: 1;overflow: hidden;position: relative;}
-.zhtit{font-size: 30rpx;color: #333;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;}
-.guigecontent{  
-  margin-top: 5rpx;
-  font-size: 22rpx;color: #999;
-  display: flex;  
-  flex-direction: row;  
-}
-.guige{font-size: 22rpx;color: #999;}
-.jiage{display: flex;display: -webkit-flex;align-items: center;justify-content: space-between;margin-top: 55rpx;}
-.price{font-size:30rpx;color: #333;}
-.price text{font-size: 20rpx;}
-.num{font-size: 28rpx;color: #333;}
-.num text{font-size: 24rpx;}
-.total{display: flex;display: -webkit-flex;justify-content: flex-end;align-items: center;font-size: 26rpx;color: #000;margin: 15rpx 0 25rpx;}
-.total view{margin-left: 25rpx;}
-.total text{color: #FE0419;}
-.status{border-top: 1rpx solid #F5F5F5;display: flex;display: -webkit-flex;justify-content: flex-end;align-items: center;padding: 35rpx 5rpx;font-size: 28rpx;color: #333;}
-.status .sta-btn{width: 138rpx;height: 48rpx;border: 2rpx solid #D2D2D2;border-radius: 48rpx;text-align: center;line-height: 48rpx;font-size: 22rpx;color: #333;margin-left: 10rpx;}
-.status .sta-btn.red{color: #FE0419;border-color: #FE0419;}
-.jtycont{justify-content: space-between;}

+ 0 - 368
integralShop/order/order.vue

@@ -1,368 +0,0 @@
-<template>
-<view>
-<!--pages/order/order.wxml-->
-<view class="tab">
-	<view v-for="(item, index) in TabList" :key="index" :class="'li ' + (item.active ? 'active' : '')" :data-index="index" @tap="switchTab">{{item.label}}</view>
-</view>
-<block v-if="pageList.length > 0">
-	<view v-for="(item, index) in pageList" :key="index" class="lists">
-		<view @tap="showOrder" :data-code="item.code" :data-id="item.id" :data-state="item.state">
-			<view class="ddbh">
-				<view class="dflex ">
-					<image src="/mine/static/mine/images/ioc_hwg.png" class="ioc" v-if="item.orderType==10"></image>编号:{{item.id}}
-				</view>
-				<view class="tihuoma" v-if="item.mode == 1 && item.state < 8 && item.state >= 1">
-					提货码:<text>{{item.code}}</text></view>
-				<block>
-					<image src="/static/pages/images/jishida.png" class="type" v-if="item.orderType == 5"></image>
-					<image src="/mine/static/mine/images/tuangou.png" class="type" v-if="item.orderType == 2"></image>
-					<image src="/mine/static/mine/images/pingtuan.png" class="type" v-if="item.orderType == 4"></image>
-					<image src="/mine/static/mine/images/kanjia.png" class="type" v-if="item.orderType == 7"></image>
-					<image src="/mine/static/mine/images/seckill.png" class="type" v-if="item.orderType == 3"></image>
-					<image src="/mine/static/mine/images/newbornZone.png" class="type" v-if="item.orderType == 6"></image>
-				</block>
-			</view>
-			<view v-for="(itempro, index2) in item.products" :key="index2" class="li">
-				<image :src="itempro.pic + '?x-oss-process=style/w160'" mode="aspectFit" class="cimg"></image>
-				<view class="zhinfo">
-					<view class="zhtit">{{itempro.title}}</view>
-					<view v-if="itempro.propertiesList" class="guigecontent">规格:
-						<text v-for="(itemGuige, index) in itempro.propertiesList" :key="index" class="guige" decode="true">{{itemGuige.value}}&nbsp;
-						</text>
-					</view>
-					<view class="jiage">
-						<view class="zhjia" v-if="item.orderType!=11">¥{{itempro.salePrice}}</view>
-						<view class="zhjia" v-if="item.orderType==11">{{itempro.integral}}积分+¥{{itempro.salePrice}}</view>
-						<view class="num">×{{itempro.quantity}}</view>
-					</view>
-				</view>
-			</view>
-			<view class="total">
-				<!-- <view>共{{item.count}}件商品</view> -->
-				<view>
-					<block v-if="item.orderType!=11">
-						总金额:<text>¥{{item.money}}</text>
-					</block>
-					<block v-if="item.orderType==11">
-						合计:<text>{{item.discountMoney}}积分+¥{{item.money}}</text>
-					</block>
-					<block v-if="item.discountMoney>0&&item.orderType!=11">
-						优惠金额:<text>¥{{item.discountMoney}}</text>
-					</block>
-				</view>
-			</view>
-		</view>
-		<view class="status">
-			<block v-if="item.mode == 1 && item.state == 3">
-				<view class="flex">待配货</view>
-			</block>
-			<block v-else>
-				<view class="flex">{{item.stateName}}</view>
-			</block>
-			<block v-if="item.orderType==4">
-
-			</block>
-			<block v-else>
-				<view class="sta-btn" @tap="refund" :data-id="item.id" :data-index="index" v-if="item.state>=2&&item.state<=6 && isrefund==1&&(item.orderType==1||item.orderType==10 ||item.orderType==5||item.orderType==11)">
-					申请售后</view>
-			</block>
-			<view class="sta-btn" @tap="cancelOrder" :data-index="index" v-if="item.state == 1">取消订单</view>
-			<!-- <navigator class="sta-btn" url="/mine/orderDet/orderDet?id={{item.id}}" hover-class="none">查看详情</navigator> -->
-			<view class="sta-btn red" @tap="confirmOrder" :data-index="index" v-if="item.state == 5">确认收货</view>
-			<view @tap="payOrder" :data-index="index" class="sta-btn red" v-if="item.state == 1">立即付款</view>
-			<view @tap="scoreOrder" :data-index="index" class="sta-btn red" v-if="item.state == 7 && isOpenComments==1">立即评价</view>
-		</view>
-	</view>
-</block>
-<view class="nodata" v-if="ishow">
-	<image :src="picUrlss+'empty_dd.png'"></image>
-	<text>还没有订单哦</text>
-</view>
-<view class="placeholder-view" :style="'height:' + (bottomBlankHeight + 155) + 'rpx'"></view>
-<foot channel="order" :isUpdate="isUpdate" product-type="2"></foot>
-</view>
-</template>
-
-<script>
-// pages/order/order.js
-const app = getApp();
-const req = require("../../utils/request.js");
-import foot from "../../components/integral-nav/index";
-
-export default {
-  data() {
-    return {
-		picUrlss: req.public.picUrls,
-	bottomBlankHeight: app.globalData.isIPhoneX ? 68 : 0, 
-      TabList: [{
-        label: '全部',
-        active: true
-      }, {
-        label: '待付款',
-        state: 1
-      }, {
-        label: '待发货',
-        state: 3
-      }, {
-        label: '待收货',
-        state: 5
-      }, {
-        label: '已完成',
-        state: 7
-      }],
-      form: {
-        page: 1,
-        size: 5
-      },
-      pageList: [],
-      isLoad: true,
-      index: "",
-      ishow: false,
-      isrefund: "",
-      isOpenComments: ""
-    };
-  },
-
-  components: {
-    foot
-  },
-  props: {},
-  onLoad: function (options) {
-    let that = this;
-    let title = "";
-    this.isrefundFun();
-    this.isOpenCommentsFun();
-
-    if (options.orderType) {
-      this.form.orderType = options.orderType;
-      if (options.orderType == 2) title = '团购订单';
-      if (options.orderType == 4) title = '拼团订单';
-      if (options.orderType == 7) title = '砍价订单';
-      if (options.orderType == 11) title = '积分订单';
-      uni.setNavigationBarTitle({
-        title: title
-      });
-    }
-
-    const index = that.TabList.findIndex(it => it.state == options.state);
-    if (options && options.state > 0) that.switchTab({
-      currentTarget: {
-        dataset: {
-          index: index
-        }
-      }
-    });else that.getList();
-    this.setData({
-      index: index
-    });
-  },
-
-  onShow() {
-    this.switchTab({
-      currentTarget: {
-        dataset: {
-          index: this.index
-        }
-      }
-    });
-  },
-
-  onReachBottom() {
-    this.form.page++;
-    this.getList();
-  },
-
-  methods: {
-    switchTab(event) {
-      let index = event.currentTarget.dataset.index;
-      // console.log(index);
-      let def = this.TabList.findIndex(it => it.active);
-      let d = {};
-      d['TabList[' + def + '].active'] = false;
-      d['TabList[' + index + '].active'] = true;
-      this.isLoad = true;
-      this.form.page = 1;
-      d['pageList'] = []; // this.data.form.states=this.data.TabList[index].state.toString();
-
-      this.form.state = this.TabList[index].state;
-      this.setData({
-        index: index
-      });
-      this.setData(d);
-      this.getList();
-    },
-
-    getList() {
-      let isShowLoading = false;
-
-      if (this.form.page == 1 && !isShowLoading) {
-        req.loadIng('加载中');
-        isShowLoading = true;
-      }
-
-      // console.log(!this.isLoad);
-      if (!this.isLoad) return false;
-      this.isLoad = false;
-      let that = this;
-      req.getRequest('/api/order/list', this.form, data => {
-        // console.log(data);
-        if (data && data.length == 10) this.isLoad = true;
-        if (that.form.page > 1) data = that.pageList.concat(data);
-        that.setData({
-          pageList: data
-        });
-        // console.log(data);
-
-        if (data.length <= 0) {
-          that.setData({
-            ishow: true
-          });
-        } else {
-          that.setData({
-            ishow: false
-          });
-        }
-
-        if (isShowLoading) {
-          uni.hideLoading();
-          isShowLoading = false;
-        }
-      });
-    },
-
-    showOrder(e) {
-      let id = e.currentTarget.dataset.id;
-      let code = e.currentTarget.dataset.code;
-      let state = e.currentTarget.dataset.state; // if(state!=8){
-
-      app.globalData.openPage('mine/orderDet/orderDet?id=' + id + '&isrefund=' + this.isrefund + '&code=' + code); // }else{
-      //   req.msg("订单已取消")
-      // }
-    },
-
-    cancelOrder(event) {
-      //取消订单
-      let index = event.currentTarget.dataset.index;
-      let page = this.pageList[index];
-      let that = this;
-      req.msgConfirm('确定取消该订单?', () => {
-        req.postRequest('/api/order/cancel', {
-          id: page.id
-        }, () => {
-          let d = {};
-          d['pageList[' + index + '].stateName'] = '订单取消';
-          d['pageList[' + index + '].state'] = 8;
-          that.setData(d);
-          that.switchTab({
-            currentTarget: {
-              dataset: {
-                index: this.index
-              }
-            }
-          });
-        });
-      });
-    },
-
-    confirmOrder(event) {
-      //确认收货
-      let index = event.currentTarget.dataset.index;
-      let page = this.pageList[index];
-      let that = this;
-      // console.log(that.index);
-      req.msgConfirm('确认执行该操作?', () => {
-        req.postRequest('/api/order/receiving', {
-          id: page.id
-        }, () => {
-          let d = {};
-          d['pageList[' + index + '].stateName'] = '订单完成';
-          d['pageList[' + index + '].state'] = 7;
-          that.setData(d);
-          that.switchTab({
-            currentTarget: {
-              dataset: {
-                index: this.index
-              }
-            }
-          });
-        });
-      });
-    },
-
-    payOrder(event) {
-      //支付订单
-      let index = event.currentTarget.dataset.index;
-      let page = this.pageList[index];
-      let that = this;
-      req.payOrder(page.id, success => {
-        // console.log(success);
-
-        if (success) {
-          //支付成功
-          let d = {};
-          d['pageList[' + index + '].stateName'] = '待发货';
-          d['pageList[' + index + '].state'] = 3;
-          that.setData(d);
-          that.switchTab({
-            currentTarget: {
-              dataset: {
-                index: this.index
-              }
-            }
-          });
-        }
-      });
-    },
-
-    refund(event) {
-      //申请退款
-      let id = event.currentTarget.dataset.id;
-      uni.navigateTo({
-        url: '/mine/refund/refundType/refundType?id=' + id
-      }); // let id = event.currentTarget.dataset.id;
-      // req.postRequest('/api/order/refund',{id:id},res=>{
-      //   req.msg('退款审核中')
-      // })
-    },
-
-    isrefundFun() {
-      //是否开启售后
-      let isrefund = JSON.parse(req.getStorage('configRes'));
-
-      if (isrefund.isRefund) {
-        this.setData({
-          isrefund: isrefund.isRefund
-        });
-      } // if(isrefund.isRefund==1){
-      //   req.getRequest('/api/orderRefund/refundReason','',data=>{
-      //     req.setStorage('isrefund',data)
-      //   })
-      // }
-
-    },
-
-    isOpenCommentsFun() {
-      //是否开启评论
-      let isOpenComments = JSON.parse(req.getStorage('configRes'));
-
-      if (isOpenComments.is_open_comments) {
-        this.setData({
-          isOpenComments: isOpenComments.is_open_comments
-        });
-      }
-    },
-
-    scoreOrder(event) {
-      //评价订单
-      let index = event.currentTarget.dataset.index;
-      let page = this.pageList[index];
-      let that = this;
-      app.globalData.openPage('mine/comments/comments?id=' + page.id);
-    }
-
-  }
-};
-</script>
-<style>
-@import "./order.css";
-</style>

BIN
integralShop/static/integralShop/images/card.png


BIN
integralShop/static/integralShop/images/detailed.png


BIN
integralShop/static/integralShop/images/extension.png


BIN
integralShop/static/integralShop/images/integralDetailed_bg.png


BIN
integralShop/static/integralShop/images/integralDetailed_yhq.png


BIN
integralShop/static/integralShop/images/integralOrder.png


BIN
integralShop/static/integralShop/images/integralShop.png


BIN
integralShop/static/integralShop/images/integralSign.png


BIN
integralShop/static/integralShop/images/integral_bg.png


BIN
integralShop/static/integralShop/images/integral_down.png


BIN
integralShop/static/integralShop/images/integral_gou.png


BIN
integralShop/static/integralShop/images/integral_rule_bg.png


BIN
integralShop/static/integralShop/images/integral_rule_bg1.png


BIN
integralShop/static/integralShop/images/integral_up.png


BIN
integralShop/static/integralShop/images/jfico.png


BIN
integralShop/static/integralShop/images/jfico1.png


BIN
integralShop/static/integralShop/images/jfico2.png


BIN
integralShop/static/integralShop/images/jfico3.png


BIN
integralShop/static/integralShop/images/qd_gou.png


BIN
integralShop/static/integralShop/images/qdico.png


BIN
integralShop/static/integralShop/images/sign.png


BIN
integralShop/static/integralShop/images/task_bg.png


BIN
integralShop/static/integralShop/images/you_h.png


+ 0 - 42
integralShop/task/index.css

@@ -1,42 +0,0 @@
-page{padding-bottom: 50rpx;}
-.top-fixed{position: fixed;left: 0;top: 0;right: 0;z-index: 50;}
-.bgcolor {background: var(--mina);position: absolute;top: 0;left: 0;right: 0;transition: .3s all ease;opacity: 0;}
-.opacity{opacity: 1;}
-.top-fixed-c{position: relative;}
-.back{position: absolute;top: 50%;transform: translateY(-50%);left: 0;padding-left: 30rpx;}
-.back image{width: 24rpx;height: 39rpx;}
-.top-title{font-size: 34rpx;color: #fff;font-weight: bold;text-align: center;}
-.top{position: relative;height: 410rpx;box-sizing: border-box;overflow: hidden;}
-.top::after{content: '';display: block;position: absolute;left: -20%;right: -20%;top: 0;bottom: 0;background: var(--mina);border-radius: 0 0 50% 50%;z-index: 1;}
-.task-bg{width: 100%;height: 100%;position: absolute;z-index: 2;top: 0;left: 0;}
-.top-c{position: relative;z-index: 3;padding: 10rpx 30rpx 0;}
-.jifen{font-size: 64rpx;color: #fff;font-weight: bold;}
-.jifen text{display: block;font-size: 28rpx;opacity: .8;font-weight: normal;margin-bottom: 10rpx;}
-.top-btn{width: 212rpx;height: 66rpx;background: #FFFFFF;border-radius: 32rpx;font-size: 28rpx;color: #EB1C24;justify-content: center;}
-.top-btn image{width: 29rpx;height: 32rpx;margin-right: 10rpx;}
-.date{background: #fff;border-radius: 16rpx;margin: -65rpx 30rpx 0;padding: 40rpx 30rpx;position: relative;z-index: 5;}
-.date-list{justify-content: space-around;}
-.date-list .li{font-size: 24rpx;color: #999;text-align: center;position: relative;}
-.date-list .li::after{content: '';display: block;width: 35rpx;height: 2rpx;background: #D3D3D3;position: absolute;right: -35rpx;top: 31rpx;}
-.li-jifen{width: 60rpx;height: 60rpx;background: #F1EFF1;border-radius: 50%;font-size: 22rpx;color: #333;justify-content: center;position: relative;}
-.date-list .li.end .li-jifen{background: #FFE7C4;}
-.date-list .li.end::after{background: #FF7334;}
-.yiqian{width: 30rpx;height: 22rpx;}
-.day{margin-top: 5rpx;}
-.date-list .li.ing .day{color: #FF7334;}
-.date-list .li:last-child .li-jifen{background: linear-gradient(180deg, #FDD674 0%, #FFB74A 100%);color: #fff;}
-.date-list .li:last-child .li-jifen::before{content: '';display: block;position: absolute;top: -5rpx;left: -5rpx;right: -5rpx;bottom: -5rpx;border: 1rpx solid #FFC657;border-radius: 50%;}
-.date-list .li:last-child::after{display: none;}
-.date-btn{height: 66rpx;background: linear-gradient(111deg, #FD8403 0%, #FFA407 100%);border-radius: 50rpx;font-size: 26rpx;color: #fff;text-align: center;line-height: 66rpx;margin-top: 25rpx;box-shadow: 0 5rpx 0 #F7730C;}
-.task{background: #fff;border-radius: 16rpx;margin: 30rpx 30rpx 0;padding: 35rpx 30rpx 0;}
-.tits{font-size: 30rpx;color: #333;font-weight: bold;}
-.task-list .li{padding: 35rpx 0;border-bottom: 1rpx solid #DEDEDE;}
-.task-list .li:last-child{border-bottom: none;}
-.task-name{font-size: 28rpx;color: #333;}
-.task-name text{font-size: 30rpx;color: #FF7334;font-weight: bold;margin-left: 10rpx;}
-.task-bri{font-size: 24rpx;color: #999;line-height: 1.5;margin-top: 5rpx;}
-.li-r{text-align: center;margin-left: 50rpx;}
-.task-btn{width: 156rpx;height: 56rpx;border-radius: 50rpx;border: 1rpx solid #333333;font-size: 26rpx;color: #333;text-align: center;line-height: 54rpx;box-sizing: border-box;}
-.task-btn.ing{background: linear-gradient(90deg, #FD8403 0%, #FCC870 100%);color: #fff;line-height: 56rpx;border: none;}
-.task-btn.end{background: #C7C7C7;color: #fff;line-height: 56rpx;border: none;}
-.task-num{font-size: 24rpx;color: #999;margin-top: 15rpx;}

+ 0 - 197
integralShop/task/index.vue

@@ -1,197 +0,0 @@
-<template>
-	<view>
-		<view :class="'top-fixed' + (skinNotColor ? ' not-color' : '')" :style="'height: ' + systems.barHeight + 'rpx;'">
-			<view :class="'bgcolor' + (isTop == 1 ? ' opacity' : '')" :style="'height:' + systems.barHeight + 'rpx'"></view>
-			<view class="top-fixed-c" :style="'height: ' + systems.navigationHeight + 'rpx;margin-top:' + systems.ktxStatusHeight + 'rpx;'">
-				<navigator url="" hover-class="none" open-type="navigateBack" class="back"><image :src="picUrlss + 'back_white.png'"></image></navigator>
-				<view class="top-title tover" :style="'line-height: ' + systems.navigationHeight + 'rpx;'">获取积分</view>
-			</view>
-		</view>
-		<view class="top" :style="'padding-top: ' + systems.barHeight + 'rpx;'">
-			<image src="../static/integralShop/images/task_bg.png" class="task-bg"></image>
-			<view class="top-c ddflex">
-				<view class="jifen fflex">
-					<text>我的积分</text>
-					{{ integralData.userIntegral }}
-				</view>
-				<view class="top-btn ddflex" @click="jumpUrl('/integralshop/index/index')">
-					<image src="../static/integralShop/images/jfico3.png"></image>
-					积分商城
-				</view>
-			</view>
-		</view>
-		<view class="date" v-if="taskSign && taskSign.response && taskSign.response.length > 0">
-			<view class="date-list ddflex">
-				<view :class="'li' + (item.isSign ? ' end' : item.sameDay ? ' ing' : '')" v-for="(item, index) in taskSign.response" :key="index">
-					<view class="li-jifen ddflex" v-if="item.isSign"><image src="../static/integralShop/images/qd_gou.png" class="yiqian"></image></view>
-					<view class="li-jifen ddflex" v-else>+{{ item.integral }}</view>
-					<view class="day">{{ item.sameDay ? '今天' : item.time }}</view>
-				</view>
-			</view>
-
-			<view class="date-btn" v-if="sameDayData.isSign == 1">今日已签到</view><!-- @click="jumpUrl('/integralshop/share/index?categoryId=' + taskSign.bindId)" -->
-			<view class="date-btn" v-else @click="signIn()">签到赚 {{ sameDayData.integral }} 积分</view>
-			<!-- <view class="date-btn" v-else @click="jumpUrl('/integralshop/share/index?categoryId=' + taskSign.bindId)">签到赚 {{ sameDayData.integral }} 积分</view> -->
-		</view>
-		<view class="task">
-			<view class="tits">积分任务</view>
-			<view class="task-list" v-if="taskPageList && taskPageList.length > 0">
-				<view class="li ddflex" v-for="(item, index) in taskPageList" :key="index">
-					<view class="fflex">
-						<view class="task-name">
-							{{ item.title }}
-							<text>+{{ item.reward }}</text>
-						</view>
-						<view class="task-bri">{{ item.brief }}</view>
-					</view>
-					<view class="li-r">
-						<!-- isGet  0、未领取 1、已领取 -->
-						<block v-if="item.isGet == 1">
-							<view class="task-btn end" v-if="item.isCompletion == 1">已完成</view>
-							<block v-else>
-								<view
-									v-if="item.bindType == 1 && item.completionCount != item.taskCount"
-									class="task-btn ing"
-									@click="jumpUrl('/integralshop/activity/index?bindId=' + item.bindId)"
-								>
-									去完成
-								</view>
-								<view v-else class="task-btn ing" @click="getTaskReceiveReward(item.id, index)">领取积分</view>
-							</block>
-						</block>
-						<view class="task-btn" v-else @click="getTaskReceive(item.id, index)">领取任务</view>
-						<view class="task-num" v-if="item.taskCount > 0">{{ item.completionCount }}/{{ item.taskCount }}</view>
-						<view class="task-num" v-else>不限次数</view>
-					</view>
-				</view>
-			</view>
-			<view class="nodata" v-else>
-				<image :src="picUrlss + 'empty_dd.png'"></image>
-				<text>暂无任务</text>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-// pages/sort/sort.js
-//获取应用实例
-const app = getApp();
-const req = require('../../utils/request.js');
-
-export default {
-	data() {
-		return {
-			picUrlss: req.public.picUrls,
-			systems: {},
-			isTop: 0,
-			taskPageList: '',
-			integralData: '',
-			taskSign: '',
-			sameDayData: '' //当天
-		};
-	},
-	onLoad: async function(options) {},
-
-	onShow() {
-		this.getTaskSign();
-		this.getTaskPage();
-		this.getIntegral();
-	},
-
-	onReachBottom() {},
-
-	methods: {
-		jumpUrl(url) {
-			uni.navigateTo({
-				url: url
-			});
-		},
-
-		jumpUrlTab(url) {
-			uni.switchTab({
-				url: url
-			});
-		},
-
-		getIntegral() {
-			req.getRequest('/api/integral/totalIntegral', {}, res => {
-				// console.log(res);
-				this.integralData = res;
-			});
-		},
-
-		getTaskSign() {
-			req.getRequest('/api/v3/task/sign', { taskCode: 'top_sign' }, data => {
-				this.taskSign = data;
-				if (data && data.response && data.response.length > 0) {
-					var list = data.response.filter(it => it.sameDay);
-					if (list.length > 0) {
-						this.sameDayData = list[0];
-					}
-				}
-			});
-		},
-
-		getTaskPage() {
-			req.getRequest('/api/v3/task/page', { limit: 20, page: 1 }, data => {
-				this.taskPageList = data.list;
-			});
-		},
-
-		getTaskReceive(taskId, index) {
-			req.postRequest(
-				'/api/v3/task/receive',
-				{ taskId: taskId },
-				data => {
-					this.getTaskPage();
-				},
-				true
-			);
-		},
-
-		getTaskReceiveReward(taskId, index) {
-			req.postRequest(
-				'/api/v3/task/receive/reward',
-				{ taskId: taskId },
-				data => {
-					this.getTaskPage();
-					this.getIntegral();
-				},
-				true
-			);
-		},
-		signIn(id){
-			req.postRequest('/api/integral/sign', {}, data => {
-				if (data) {
-					// req.msg('连续签到' + data.continuityDay + '天' + ',获得' + data.IntegralChange + '积分');
-					this.sameDayData.isSign == 1
-					this.getTaskSign();
-					this.getIntegral();
-				}
-			});
-		}
-	},
-	created() {
-		const systemInfo = uni.getSystemInfoSync();
-		// px转换到rpx的比例
-		let pxToRpxScale = 750 / systemInfo.windowWidth;
-		let systems = {
-			ktxStatusHeight: systemInfo.statusBarHeight * pxToRpxScale, // 状态栏的高度
-			navigationHeight: 44 * pxToRpxScale // 导航栏的高度
-		};
-		systems.barHeight = systems.ktxStatusHeight + systems.navigationHeight;
-		this.systems = systems;
-	},
-	onPageScroll: function(e) {
-		if (e.scrollTop > this.systems.barHeight) {
-			this.isTop = 1;
-		} else {
-			this.isTop = 0;
-		}
-	}
-};
-</script>
-<style>
-@import './index.css';
-</style>

+ 0 - 18
invoice/apply/apply.css

@@ -1,18 +0,0 @@
-/* apply.css */
-page{background: #f8f8f8;padding-bottom: 140rpx;}
-.form{background: #fff;padding: 0 32rpx;}
-.form .li{font-size: 32rpx;color: #333;line-height: 38rpx;border-bottom: 1rpx solid #E2E2E2;padding: 30rpx 0;}
-.form .li:last-child{border-bottom: none;}
-.label{width: 187rpx;}
-.item{color: #666;}
-.item .lis{width: 250rpx;}
-.radio{width: 42rpx;height: 42rpx;margin-right: 17rpx;}
-.ipt{font-size: 32rpx;color: #666;}
-.placeholder{color: #999;}
-.daoru{width: 411rpx;height: 50rpx;background: #FFFFFF;border: 2rpx solid #11BB8B;border-radius: 25rpx;font-size: 26rpx;color: #11BB8B;justify-content: center;margin: 30rpx auto 0;}
-.daoru image{width: 32rpx;height: 32rpx;margin-right: 10rpx;}
-.more{font-size: 28rpx;color: #666;justify-content: center;padding: 30rpx 0;}
-.more image{width: 26rpx;height: 16rpx;margin-left: 12rpx;}
-.tip{padding: 20rpx 32rpx;font-size: 28rpx;color: #999;line-height: 38rpx;}
-.tits{margin-bottom: 12rpx;}
-.btn{position: fixed;left: 35rpx;right: 35rpx;bottom: 20rpx;height: 81rpx;background: #108FFF;border-radius: 40rpx;font-size: 30rpx;color: #fff;text-align: center;line-height: 81rpx;z-index: 50;}

+ 0 - 181
invoice/apply/apply.vue

@@ -1,181 +0,0 @@
-<template>
-	<view>
-		<view class="form">
-			<view class="li ddflex">
-				<label class="label">发票类型</label>
-				<view class="item fflex">
-					电子发票
-				</view>
-			</view>
-			<view class="li ddflex">
-				<label class="label">发票金额</label>
-				<view class="item fflex">
-					¥{{options.money}}
-				</view>
-			</view>
-			<view class="li ddflex">
-				<label class="label">开票方式</label>
-				<view class="item fflex ddflex">
-					<view class="lis ddflex" v-for="(item,index) in mode" :key="index" @click="modeClick(index)"><image :src="'../static/images/' + (modeIndex == index ? 'radio_h' : 'radio') +'.png'" class="radio"></image>{{item.label}}</view>
-				</view>
-			</view>
-			<view class="li ddflex">
-				<label class="label">发票抬头</label>
-				<view class="item fflex ddflex">
-					<view class="lis ddflex" v-for="(item,index) in headerType" :key="index" @click="headerTypeClick(index)"><image :src="'../static/images/' + (headerTypeIndex == index ? 'radio_h' : 'radio') +'.png'" class="radio"></image>{{item.label}}</view>
-				</view>
-			</view>
-			<view class="li ddflex" v-if="headerTypeIndex == 0">
-				<label class="label">电子邮箱</label>
-				<view class="item fflex">
-					<input v-model="options.email" placeholder="(必填)" placeholder-class="placeholder" class="ipt" />
-				</view>
-			</view>
-			<block v-else>
-			<view class="daoru ddflex" @click="daoru()"><image src="../static/images/dao.png"></image>一键导入微信发票助手抬头</view>
-			<view class="li ddflex">
-				<label class="label">公司抬头</label>
-				<view class="item fflex">
-					<input v-model="options.title" placeholder="请输入抬头名称" placeholder-class="placeholder" class="ipt" />
-				</view>
-			</view>
-			<view class="li ddflex">
-				<label class="label">税号</label>
-				<view class="item fflex">
-					<input v-model="options.duty" placeholder="请输入纳税人识别号" placeholder-class="placeholder" class="ipt" />
-				</view>
-			</view>
-			<view class="li ddflex">
-				<label class="label">邮箱地址</label>
-				<view class="item fflex">
-					<input v-model="options.email" placeholder="请输入" placeholder-class="placeholder" class="ipt" />
-				</view>
-			</view>
-			<block v-if="isOther">
-			<view class="li ddflex">
-				<label class="label">注册地址</label>
-				<view class="item fflex">
-					<input v-model="options.address" placeholder="(选填)" placeholder-class="placeholder" class="ipt" />
-				</view>
-			</view>
-			<view class="li ddflex">
-				<label class="label">注册电话</label>
-				<view class="item fflex">
-					<input v-model="options.phone" placeholder="(选填)" placeholder-class="placeholder" class="ipt" />
-				</view>
-			</view>
-			<view class="li ddflex">
-				<label class="label">开户银行</label>
-				<view class="item fflex">
-					<input v-model="options.bank" placeholder="(选填)" placeholder-class="placeholder" class="ipt" />
-				</view>
-			</view>
-			<view class="li ddflex">
-				<label class="label">银行账户</label>
-				<view class="item fflex">
-					<input v-model="options.bankNo" placeholder="(选填)" placeholder-class="placeholder" class="ipt" />
-				</view>
-			</view>
-			</block>
-			<view class="more ddflex" @click="other()">其他发票信息<image :src="'../static/images/' + (isOther ? 'bico_h':'bico') +'.png'"></image></view>
-			</block>
-		</view>
-		<view class="tip">
-			<view class="tits">温馨提示:</view>
-			<view>应国家税务总局要求,您若开具增值税普通发票,须同时提供企业抬头及纳税人识别号,否则发票将无法用于企业报销</view>
-		</view>
-		<view class="btn" @click="apply()">申请开票</view>
-	</view>
-</template>
-
-<script>
-	const req = require('../../utils/request.js');
-	
-	export default {
-		data() {
-			return{
-				options: {},
-				title: '',
-				mode:[
-					{
-						label: '商品类别',
-						value: 1
-					},
-					{
-						label: '商品明细',
-						value: 2
-					}
-				],
-				modeIndex: 0,
-				headerType:[
-					{
-						label: '个人',
-						value: 1
-					},
-					{
-						label: '单位',
-						value: 2
-					}
-				],
-				headerTypeIndex: 0,
-				isOther: false
-			}
-		},
-		onLoad(options) {
-			this.options = options
-		},
-		methods:{
-			modeClick(index){
-				this.modeIndex = index;
-			},
-			headerTypeClick(index){
-				this.headerTypeIndex = index;
-			},
-			other(){
-				if(this.isOther){
-					this.isOther = false;
-				}else{
-					this.isOther = true;
-				}
-			},
-			daoru(){
-				let that = this;
-				uni.chooseInvoiceTitle({
-					success(res){
-						console.log(res)
-						that.title = res.title;
-						that.options.title = res.title;
-						that.options.duty = res.taxNumber;
-						that.options.address = res.companyAddress;
-						that.options.phone = res.telephone;
-						that.options.bank = res.bankName;
-						that.options.bankNo = res.bankAccount;
-					}
-				})
-			},
-			apply(){
-				let params = this.options;
-				if(this.headerTypeIndex == 1){
-					if(!params.title) return req.msg('请输入公司抬头');
-					if(!params.duty) return req.msg('请输入纳税人识别号');
-				}
-				if(!params.email) return req.msg('请输入邮箱地址');
-				if(params.email){
-					var re = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
-					if(!re.test(params.email)) return req.msg('请输入正确的邮箱地址');
-				}
-				params.mode = this.mode[this.modeIndex].value;
-				params.headerType = this.headerType[this.headerTypeIndex].value;
-				req.postRequest('/api/invoice/insert',params,res=>{
-					uni.redirectTo({
-						url: '/invoice/detail/detail?id=' + res
-					})
-				})
-			}
-		}
-	}
-</script>
-
-<style>
-	@import "./apply.css";
-</style>

+ 0 - 23
invoice/detail/detail.css

@@ -1,23 +0,0 @@
-/* detail.css */
-page{background: #f8f8f8;}
-.detail{margin: 65rpx 33rpx 0;background: #fff;border-radius: 0 0 15rpx 15rpx;box-shadow: 0 4rpx 24rpx rgba(0,0,0,.06);position: relative;}
-.top{width: 684rpx;height: 40rpx;position: absolute;top: -40rpx;left: 0;}
-.con{padding:50rpx 42rpx 45rpx;}
-.title{font-size: 36rpx;color: #333;text-align: center;position: relative;margin-bottom: 135rpx;}
-.yin{width: 179rpx;height: 106rpx;position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);z-index: 1;}
-.con .li{font-size: 28rpx;color: #999;line-height: 38rpx;align-items: flex-start;margin-top: 20rpx;}
-.con .li label{display: block;color: #333;margin-right: 85rpx;}
-.item{text-align: right;}
-.money{color: #CE1002;}
-.check{border-top: 1rpx solid #E5E5E5;padding: 30rpx 42rpx;font-size: 28rpx;color: #333333;justify-content: space-between;}
-.rico{width: 16rpx;height: 27rpx;}
-.send{position: fixed;left: 35rpx;right: 35rpx;bottom: 20rpx;height: 81rpx;background: #108FFF;border-radius: 40rpx;font-size: 30rpx;color: #fff;text-align: center;line-height: 81rpx;z-index: 50;}
-.ceng{position: fixed;top: 0;left: 0;right: 0;bottom: 0;z-index: 99;background: rgba(0,0,0,.5);}
-.popup{position: fixed;left: 0;right: 0;bottom: -100%;border-radius: 12rpx 12rpx 0 0;background: #fff;z-index: 100;padding: 40rpx 49rpx 94rpx;transition: all .3s ease;}
-.pop-tit{font-size: 32rpx;color: #333;text-align: center;margin-bottom: 48rpx;}
-.ipt{width: 100%;box-sizing: border-box;background: #F8F8F8;border-radius: 8rpx;padding: 25rpx 23rpx;height: 90rpx;font-size: 26rpx;color: #333;}
-.tip{display: block;font-size: 26rpx;color: #999;margin-top: 16rpx;margin-left: 23rpx;}
-.pop-btn{justify-content: center;margin-top: 55rpx;}
-.cancel,.confirm{width: 276rpx;height: 80rpx;border-radius: 40rpx;font-size: 32rpx;text-align: center;line-height: 80rpx;margin: 0 12rpx;}
-.cancel{background: #F2F2F2;color: var(--mina);}
-.confirm{background: var(--mina);color: #fff;}

+ 0 - 82
invoice/detail/detail.vue

@@ -1,82 +0,0 @@
-<template>
-	<view>
-		<view class="detail">
-			<image src="../static/images/top.png" class="top"></image>
-			<view class="con">
-				<view class="title">增值税电子普通发票<image src="../static/images/yin.png" class="yin"></image></view>
-				<view class="li ddflex">
-					<label>发票类型</label>
-					<view class="item fflex">{{invoice.headerType == 1 ? '个人' : '单位'}}</view>
-				</view>
-				<view class="li ddflex">
-					<label>发票抬头</label>
-					<view class="item fflex">{{invoice.title}}</view>
-				</view>
-				<view class="li ddflex">
-					<label>发票金额</label>
-					<view class="money item fflex">¥{{invoice.money}}</view>
-				</view>
-				<view class="li ddflex">
-					<label>开票时间</label>
-					<view class="item fflex">{{invoice.createDate}}</view>
-				</view>
-				<view class="li ddflex">
-					<label>开票内容</label>
-					<view class="item fflex">{{invoice.content}}</view>
-				</view>
-			</view>
-			<!-- <view class="check ddflex">查看发票<image src="../../static/pages/images/more.png" class="rico"></image></view> -->
-		</view>
-		<!-- <view class="send" @click="send()">发送到邮箱</view> -->
-		<view class="ceng" v-if="isPop" @click="cancel()"></view>
-		<view class="popup" :style="isPop ? 'bottom:' + pBottom : ''">
-			<view class="pop-tit">发送到邮箱</view>
-			<input value="991477725@qq.com" class="ipt" />
-			<text class="tip">*可更改邮箱地址</text>
-			<view class="pop-btn ddflex">
-				<view class="cancel" @click="cancel()">取消</view>
-				<view class="confirm" @click="confirm()">发送</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	const req = require('../../utils/request.js');
-	export default {
-		data() {
-			return{
-				options: {},
-				invoice: {},
-				isPop: false,
-				pBottom: '-100%'
-			}
-		},
-		onLoad(options) {
-			this.options = options;
-			this.getData();
-		},
-		methods:{
-			getData(){
-				req.getRequest('/api/invoice/info', {invoiceId:this.options.id},res=>{
-					this.invoice = res;
-				})
-			},
-			send() {
-				this.isPop = true;
-				this.pBottom = 0;
-			},
-			cancel(){
-				this.isPop = false;
-				this.pBottom = '-100%';
-			},
-			confirm(){
-				this.cancel()
-			}
-		}
-	}
-</script>
-
-<style>
-	@import "./detail.css";
-</style>

BIN
invoice/static/images/bico.png


BIN
invoice/static/images/bico_h.png


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików