فهرست منبع

初始化导入

github-duan 4 سال پیش
کامیت
f300ae8152
100فایلهای تغییر یافته به همراه1684 افزوده شده و 0 حذف شده
  1. BIN
      .DS_Store
  2. BIN
      ._.DS_Store
  3. 109 0
      app.js
  4. 210 0
      app.json
  5. 126 0
      app.wxss
  6. 0 0
      bargain/activity/activity.js
  7. 1 0
      bargain/activity/activity.json
  8. 0 0
      bargain/activity/activity.wxml
  9. 33 0
      bargain/activity/activity.wxss
  10. 1 0
      bargain/commons/naver/naver.wxml
  11. 1 0
      bargain/commons/naver/naver.wxss
  12. 1 0
      bargain/commons/time.js
  13. 322 0
      bargain/goods/goods.js
  14. 1 0
      bargain/goods/goods.json
  15. 203 0
      bargain/goods/goods.wxml
  16. 105 0
      bargain/goods/goods.wxss
  17. BIN
      bargain/images/icon-bargain-list-selected.png
  18. BIN
      bargain/images/icon-bargain-list.png
  19. BIN
      bargain/images/icon-bargain-my-selected.png
  20. BIN
      bargain/images/icon-bargain-my.png
  21. BIN
      bargain/images/icon-bargain-order-jiantou.png
  22. BIN
      bargain/images/icon-bargain-sku.png
  23. 1 0
      bargain/list/list.js
  24. 1 0
      bargain/list/list.json
  25. 0 0
      bargain/list/list.wxml
  26. 13 0
      bargain/list/list.wxss
  27. 1 0
      bargain/order-list/order-list.js
  28. 1 0
      bargain/order-list/order-list.json
  29. 0 0
      bargain/order-list/order-list.wxml
  30. 9 0
      bargain/order-list/order-list.wxss
  31. 1 0
      bargain/rule/rule.js
  32. 1 0
      bargain/rule/rule.json
  33. 1 0
      bargain/rule/rule.wxml
  34. 2 0
      bargain/rule/rule.wxss
  35. 69 0
      components/_toast/_toast.wxml
  36. 1 0
      components/_toast/_toast.wxss
  37. 1 0
      components/area-picker/area-picker.js
  38. 1 0
      components/area-picker/area-picker.wxml
  39. 1 0
      components/area-picker/area-picker.wxss
  40. 1 0
      components/calendar/calendar-converter.js
  41. 1 0
      components/calendar/calendar.wxml
  42. 1 0
      components/calendar/calendar.wxss
  43. 1 0
      components/common/common.wxml
  44. 1 0
      components/common/common.wxss
  45. 1 0
      components/common/float-icon.wxml
  46. 0 0
      components/common/float-icon.wxss
  47. 1 0
      components/common/get-coupon.wxml
  48. 0 0
      components/common/get-coupon.wxss
  49. 0 0
      components/common/index.wxml
  50. 1 0
      components/common/index.wxss
  51. 46 0
      components/common/navbar.wxml
  52. 0 0
      components/common/navbar.wxss
  53. 0 0
      components/copyright/copyright.wxml
  54. 0 0
      components/copyright/copyright.wxss
  55. 0 0
      components/diy/diy.js
  56. 0 0
      components/diy/diy.wxml
  57. 1 0
      components/diy/diy.wxss
  58. 1 0
      components/float-icon/float-icon.wxml
  59. 0 0
      components/float-icon/float-icon.wxss
  60. 1 0
      components/footer/footer.wxml
  61. 1 0
      components/footer/footer.wxss
  62. 1 0
      components/get-card/get-card.wxml
  63. 1 0
      components/get-card/get-card.wxss
  64. 1 0
      components/get-coupon/get-coupon.wxml
  65. 0 0
      components/get-coupon/get-coupon.wxss
  66. 1 0
      components/goods-header/goods-header.wxml
  67. 6 0
      components/goods-header/goods-header.wxss
  68. 50 0
      components/goods/goods_banner.js
  69. 16 0
      components/goods/goods_banner.wxml
  70. 1 0
      components/goods/goods_banner.wxss
  71. 0 0
      components/goods/goods_buy.js
  72. 0 0
      components/goods/goods_buy.wxml
  73. 1 0
      components/goods/goods_buy.wxss
  74. 0 0
      components/goods/goods_info.js
  75. 215 0
      components/goods/goods_info.wxml
  76. 1 0
      components/goods/goods_info.wxss
  77. 1 0
      components/goods/goods_recommend.js
  78. 1 0
      components/goods/goods_recommend.wxml
  79. 1 0
      components/goods/goods_recommend.wxss
  80. 0 0
      components/goods/goods_refund.js
  81. 0 0
      components/goods/goods_refund.wxml
  82. 1 0
      components/goods/goods_refund.wxss
  83. 1 0
      components/goods/goods_send.js
  84. 0 0
      components/goods/goods_send.wxml
  85. 1 0
      components/goods/goods_send.wxss
  86. 0 0
      components/goods/specifications_model.js
  87. 91 0
      components/goods/specifications_model.wxml
  88. 1 0
      components/goods/specifications_model.wxss
  89. 1 0
      components/header/header.wxml
  90. 1 0
      components/header/header.wxss
  91. 1 0
      components/list-loading/list-loading.wxml
  92. 0 0
      components/list-loading/list-loading.wxss
  93. 1 0
      components/order/clerk-qrcode/clerk-qrcode.wxml
  94. 0 0
      components/order/clerk-qrcode/clerk-qrcode.wxss
  95. 0 0
      components/order/order-submit/form/form.wxml
  96. 0 0
      components/order/order-submit/form/form.wxss
  97. 0 0
      components/quick-navigation-components/index.js
  98. 1 0
      components/quick-navigation-components/index.json
  99. 0 0
      components/quick-navigation-components/index.wxml
  100. 12 0
      components/quick-navigation-components/index.wxss

BIN
.DS_Store


BIN
._.DS_Store


+ 109 - 0
app.js

xqd
@@ -0,0 +1,109 @@
+var platform = null;
+"undefined" != typeof wx && (platform = "wx"), "undefined" != typeof my && (platform = "my");
+var modules = [{
+    name: "helper",
+    file: "./utils/helper.js"
+  }, {
+    name: "const",
+    file: "./core/const.js"
+  }, {
+    name: "getConfig",
+    file: "./core/config.js"
+  }, {
+    name: "page",
+    file: "./core/page.js"
+  }, {
+    name: "request",
+    file: "./core/request.js"
+  }, {
+    name: "core",
+    file: "./core/core.js"
+  }, {
+    name: "api",
+    file: "./core/api.js"
+  }, {
+    name: "getUser",
+    file: "./core/getUser.js"
+  }, {
+    name: "setUser",
+    file: "./core/setUser.js"
+  }, {
+    name: "login",
+    file: "./core/login.js"
+  }, {
+    name: "trigger",
+    file: "./core/trigger.js"
+  }, {
+    name: "uploader",
+    file: "./utils/uploader.js"
+  }, {
+    name: "orderPay",
+    file: "./core/order-pay.js"
+  }],
+  args = {
+    _version: "2.8.9",
+    platform: platform,
+    query: null,
+    onLaunch: function() {
+      this.getStoreData()
+    },
+    onShow: function(e) {
+      e.scene && (this.onShowData = e), e && e.query && (this.query = e.query), this.getUser() && this.trigger.run(this.trigger.events.login)
+    },
+    is_login: !1,
+    login_complete: !1,
+    is_form_id_request: !0
+  };
+for (var i in modules) args[modules[i].name] = require("" + modules[i].file);
+var _web_root = args.api.index.substr(0, args.api.index.indexOf("/index.php"));
+args.webRoot = _web_root, args.getauth = function(t) {
+  var s = this;
+  if ("my" == s.platform) {
+    if (t.success) {
+      var e = {
+        authSetting: {}
+      };
+      e.authSetting[t.author] = !0, t.success(e)
+    }
+  } else s.core.getSetting({
+    success: function(e) {
+      console.log(e), void 0 === e.authSetting[t.author] ? s.core.authorize({
+        scope: t.author,
+        success: function(e) {
+          t.success && (e.authSetting = {}, e.authSetting[t.author] = !0, t.success(e))
+        }
+      }) : 0 == e.authSetting[t.author] ? s.core.showModal({
+        title: "是否打开设置页面重新授权",
+        content: t.content,
+        confirmText: "去设置",
+        success: function(e) {
+          e.confirm ? s.core.openSetting({
+            success: function(e) {
+              t.success && t.success(e)
+            },
+            fail: function(e) {
+              t.fail && t.fail(e)
+            },
+            complete: function(e) {
+              t.complete && t.complete(e)
+            }
+          }) : t.cancel && s.getauth(t)
+        }
+      }) : t.success && t.success(e)
+    }
+  })
+}, args.getStoreData = function() {
+  var s = this,
+    e = this.api,
+    o = this.core;
+  s.request({
+    url: e.default.store,
+    success: function(t) {
+      0 == t.code && (o.setStorageSync(s.const.STORE, t.data.store), o.setStorageSync(s.const.STORE_NAME, t.data.store_name), o.setStorageSync(s.const.SHOW_CUSTOMER_SERVICE, t.data.show_customer_service), o.setStorageSync(s.const.CONTACT_TEL, t.data.contact_tel), o.setStorageSync(s.const.SHARE_SETTING, t.data.share_setting), s.permission_list = t.data.permission_list, o.setStorageSync(s.const.WXAPP_IMG, t.data.wxapp_img), o.setStorageSync(s.const.WX_BAR_TITLE, t.data.wx_bar_title), o.setStorageSync(s.const.ALIPAY_MP_CONFIG, t.data.alipay_mp_config), o.setStorageSync(s.const.STORE_CONFIG, t.data), setTimeout(function(e) {
+        s.config = t.data, s.configReadyCall && s.configReadyCall(t.data)
+      }, 1e3))
+    },
+    complete: function() {}
+  })
+};
+var app = App(args);

+ 210 - 0
app.json

xqd
@@ -0,0 +1,210 @@
+{
+  "subPackages": [
+    {
+      "root": "mch",
+      "pages": [
+        "m/myshop/myshop",
+        "m/setting/setting",
+        "m/goods/goods",
+        "m/order/order",
+        "m/order-detail/order-detail",
+        "m/order-send/order-send",
+        "m/shop-qrcode/shop-qrcode",
+        "m/account/account",
+        "m/account-rest/account-rest",
+        "m/account-log/account-log",
+        "m/cash-log/cash-log",
+        "m/tongji/tongji",
+        "m/order-refund/order-refund",
+        "apply/apply",
+        "shop/shop",
+        "shop-list/shop-list",
+        "shop-cat/shop-cat",
+        "m/cash/cash",
+        "m/settle_detail/settle_detail",
+        "shop-summary/shop-summary"
+      ]
+    },
+    {
+      "root": "pond",
+      "pages": [
+        "pond/pond",
+        "prize/prize",
+        "rule/rule"
+      ]
+    },
+    {
+      "root": "bargain",
+      "pages": [
+        "goods/goods",
+        "list/list",
+        "activity/activity",
+        "order-list/order-list",
+        "rule/rule"
+      ]
+    },
+    {
+      "root": "scratch",
+      "pages": [
+        "index/index",
+        "prize/prize",
+        "rule/rule"
+      ]
+    },
+    {
+      "root": "lottery",
+      "pages": [
+        "index/index",
+        "detail/detail",
+        "goods/goods",
+        "prize/prize",
+        "rule/rule",
+        "lucky-code/lucky-code"
+      ]
+    },
+    {
+      "root": "step",
+      "pages": [
+        "index/index",
+        "detail/detail",
+        "goods/goods",
+        "dare/dare",
+        "rules/rules",
+        "top/top",
+        "join/join",
+        "log/log",
+        "share/share",
+        "friend/friend"
+      ]
+    }
+  ],
+  "debug": false,
+  "permission": {
+    "scope.userLocation": {
+      "desc": "需要获取您的位置信息"
+    }
+  },
+  "entryPagePath": "pages/index/index",
+  "pages": [
+    "pages/index/index",
+    "pages/kabaw/kabaw",
+    "pages/cart/cart",
+    "pages/goods/goods",
+    "pages/list/list",
+    "pages/user/user",
+    "pages/search/search",
+    "pages/order-submit/order-submit",
+    "pages/order/order",
+    "pages/order-detail/order-detail",
+    "pages/address/address",
+    "pages/address-edit/address-edit",
+    "pages/address-picker/address-picker",
+    "pages/test/test",
+    "pages/test/index",
+    "pages/favorite/favorite",
+    "pages/order-refund/order-refund",
+    "pages/order-refund-detail/order-refund-detail",
+    "pages/add-share/index",
+    "pages/share/index",
+    "pages/cash/cash",
+    "pages/share-money/share-money",
+    "pages/cash-detail/cash-detail",
+    "pages/share-team/share-team",
+    "pages/share-order/share-order",
+    "pages/share-qrcode/share-qrcode",
+    "pages/order-comment/order-comment",
+    "pages/article-list/article-list",
+    "pages/article-detail/article-detail",
+    "pages/express-detail/express-detail",
+    "pages/cat/cat",
+    "pages/coupon/coupon",
+    "pages/clerk/clerk",
+    "pages/video/video-list",
+    "pages/coupon-list/coupon-list",
+    "pages/topic-list/topic-list",
+    "pages/topic/topic",
+    "pages/member/member",
+    "pages/web/web",
+    "pages/shop/shop",
+    "pages/shop-detail/shop-detail",
+    "pages/card/card",
+    "pages/card-clerk/card-clerk",
+    "pages/miaosha/miaosha",
+    "pages/miaosha/details/details",
+    "pages/miaosha/order-submit/order-submit",
+    "pages/miaosha/order/order",
+    "pages/miaosha/order-detail/order-detail",
+    "pages/miaosha/express-detail/express-detail",
+    "pages/miaosha/order-comment/order-comment",
+    "pages/miaosha/order-refund/order-refund",
+    "pages/miaosha/order-refund-detail/order-refund-detail",
+    "pages/pt/index/index",
+    "pages/pt/list/list",
+    "pages/pt/details/details",
+    "pages/pt/order-submit/order-submit",
+    "pages/pt/order/order",
+    "pages/pt/order-details/order-details",
+    "pages/pt/group/details",
+    "pages/pt/express-detail/express-detail",
+    "pages/pt/order-comment/order-comment",
+    "pages/pt/comment/comment",
+    "pages/pt/clerk/clerk",
+    "pages/pt/order-refund/order-refund",
+    "pages/pt/order-refund-detail/order-refund-detail",
+    "pages/pt/search/search",
+    "pages/book/index/index",
+    "pages/book/details/details",
+    "pages/book/submit/submit",
+    "pages/book/order/order",
+    "pages/book/order/details",
+    "pages/book/shop/shop",
+    "pages/book/clerk/clerk",
+    "pages/book/order-comment/order-comment",
+    "pages/book/comment/comment",
+    "pages/fxhb/open/open",
+    "pages/fxhb/detail/detail",
+    "pages/quick-purchase/index/index",
+    "pages/balance/balance",
+    "pages/recharge/recharge",
+    "pages/bangding/bangding",
+    "pages/web/login/login",
+    "pages/web/authorization/authorization",
+    "pages/balance/detail",
+    "pages/login/login",
+    "pages/integral-mall/index/index",
+    "pages/integral-mall/shuoming/index",
+    "pages/integral-mall/detail/index",
+    "pages/integral-mall/exchange/index",
+    "pages/integral-mall/register/index",
+    "pages/integral-mall/coupon-info/index",
+    "pages/integral-mall/goods-info/index",
+    "pages/integral-mall/order-submit/index",
+    "pages/integral-mall/order/order",
+    "pages/integral-mall/clerk/clerk",
+    "pages/store-disabled/store-disabled",
+    "pages/new-order-submit/new-order-submit",
+    "pages/coupon-detail/coupon-detail",
+    "pages/card-detail/card-detail",
+    "pages/demo/demo",
+    "pages/kabaw/mykabaw",
+    "pages/kabaw/hexiao",
+    "pages/kabaw/detail",
+    "pages/everyday-card-clerk/everyday-card-clerk",
+    "pages/kabaw/kabaw_center",
+    "pages/kabaw/viplist",
+    "pages/kabaw/buyvip",
+    "pages/kabaw/carddetail"
+  ],
+  "navigateToMiniProgramAppIdList": [
+    "wx1f57f137a8575932",
+    "wxec048da3a1c40220"
+  ],
+  "window": {
+    "backgroundTextStyle": "light",
+    "navigationBarBackgroundColor": "#e3e3e3",
+    "navigationBarTitleText": "Mall",
+    "navigationBarTextStyle": "black",
+    "backgroundColor": "#EFEFF4"
+  },
+  "sitemapLocation": "sitemap.json"
+}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 126 - 0
app.wxss


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
bargain/activity/activity.js


+ 1 - 0
bargain/activity/activity.json

xqd
@@ -0,0 +1 @@
+{"navigationBarTitleText":"砍价"}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
bargain/activity/activity.wxml


+ 33 - 0
bargain/activity/activity.wxss

xqd
@@ -0,0 +1,33 @@
+.main { background: -prefix-linear-gradient(top, #ee3763, #fdac42); background: linear-gradient(to bottom, #ee3763, #fdac42); padding-bottom: 40rpx; min-height: 100%; }
+.bg { position: absolute; top: 0; left: 0; width: 100%; height: 100rpx; }
+.block { padding: 0 20rpx; }
+.rule { height: 40rpx; border-radius: 20rpx; background-color: rgba(0, 0, 0, 0.2); margin-top: 32rpx; color: #fff; font-size: 9pt; padding: 0 24rpx; }
+.goods-info { width: 100%; margin-top: 28rpx; background-color: #fff; border-radius: 16rpx; position: relative; padding-top: 59rpx; }
+.user-img { position: absolute; top: -64rpx; left: 50%; margin-left: -59rpx; border-radius: 118rpx; border: 1rpx solid #fff; width: 118rpx; height: 118rpx; }
+.goods { padding: 24rpx; border-top: 1rpx solid #e2e2e2; }
+.goods wx-image { width: 216rpx; height: 216rpx; margin-right: 20rpx; }
+.time { height: 42rpx; padding: 0 4rpx; border-radius: 4rpx; background-color: #666; color: #fff; }
+.progress-box { margin-top: 16rpx; width: 600rpx; height: 28rpx; border-radius: 12rpx; margin-bottom: 16rpx; position: relative; }
+.progress-box wx-image { position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
+.progress-view { height: 24rpx; background-color: #ff9f9f; border-radius: 12rpx; z-index: 10; position: relative; }
+.progress-img { position: absolute; right: -14rpx; top: -4rpx; width: 30rpx; height: 30rpx; border: 6rpx solid #fff; border-radius: 30rpx; background-color: #ff9f9f; }
+.buy-btn { width: 328rpx; height: 82rpx; }
+.share-btn { border: none; border-radius: 0; margin: 0; padding: 0; background-color: none; background: rgba(255, 255, 255, 0); font-size: 0; line-height: normal; }
+.share-btn:after { content: ''; margin: 0; padding: 0; display: none; }
+.user-info { margin-top: 40rpx; width: 100%; border-radius: 16rpx; background-color: rgba(255, 255, 255, 0.3); height: auto; color: #fff; padding: 48rpx 40rpx 40rpx 40rpx; }
+.one-border { width: 160rpx; height: 2rpx; background-color: #fff; }
+.user-list { padding: 48rpx 0 8rpx 0; font-size: 13pt; }
+.user-one { margin-bottom: 40rpx; }
+.item-img { width: 80rpx; height: 80rpx; margin-right: 24rpx; border-radius: 80rpx; }
+.tip { position: relative; height: 40rpx; padding: 0 20rpx; background-color: #fff; border-radius: 20rpx; color: #ff5c5c; font-size: 9pt; }
+.modal-body { width: 638rpx; background-color: #fff; position: relative; padding-bottom: 48rpx; border-radius: 0 0 16rpx 16rpx; }
+.modal-header { width: 100%; height: 200rpx; position: relative; }
+.header-bg { width: 100%; height: 100%; position: absolute; left: 0; top: 0; }
+.header-bg-1 { width: 0; height: 0; margin-top: -64rpx; position: relative; z-index: 15; }
+.x { position: absolute; right: 16rpx; top: 20rpx; width: 50rpx; height: 50rpx; }
+.x wx-image { width: 100%; height: 100%; }
+.modal-btn { margin-top: 48rpx; }
+.modal-btn wx-image { width: 480rpx; height: 88rpx; }
+.modal-header-2 { position: relative; padding: 24rpx 69rpx; background-color: #fff; border-radius: 16rpx; width: 638rpx; height: 548rpx; }
+.header-bg-3 { width: 310rpx; height: 240rpx; position: absolute; left: calc(50% - 155rpx); top: calc(50% - 120rpx); z-index: 10; }
+.back-img { width: 18rpx; height: 18rpx; margin-right: 10rpx; }

+ 1 - 0
bargain/commons/naver/naver.wxml

xqd
@@ -0,0 +1 @@
+<view class='bargain-bottom flex-row' style='font-size:13pt'><view class='flex-grow-1 flex-y-center'><navigator hoverClass='none' openType='redirect' style='width:100%;border-right:1rpx solid #e2e2e2' url='/bargain/list/list'><view class='flex-row flex-y-center flex-x-center'><view class='flex-grow-0 flex-y-center'><image src='{{(naver == "list"?"/bargain/images/icon-bargain-list-selected.png":"/bargain/images/icon-bargain-list.png")}}'></image></view><view class='flex-grow-0 {{(naver == "list"?"bottom-color":"")}}'>砍价会场</view></view></navigator></view><view class='flex-grow-1 flex-y-center flex-x-center'><navigator hoverClass='none' openType='redirect' style='width:100%;' url='/bargain/order-list/order-list'><view class='flex-row flex-y-center flex-x-center'><view class='flex-grow-0 flex-y-center'><image src='{{(naver == "order"?"/bargain/images/icon-bargain-my-selected.png":"/bargain/images/icon-bargain-my.png")}}'></image></view><view class='flex-grow-0 {{(naver == "order"?"bottom-color":"")}}'>我的砍价</view></view></navigator></view></view>

+ 1 - 0
bargain/commons/naver/naver.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css3_0.wxss';

+ 1 - 0
bargain/commons/time.js

xqd
@@ -0,0 +1 @@
+var time={page:null,time_list:{hour:"00",minute:"00",second:"00"},init:function(t){var e=this;(this.page=t).setData({time_list:e.time_list,intval:[]}),t.setTimeOver=function(){var i=e.page,s=setInterval(function(){if(i.data.reset_time<=0)clearInterval(s);else{var t=i.data.reset_time-1,e=i.setTimeList(t);i.setData({reset_time:t,time_list:e})}},1e3)}}};module.exports=time;

+ 322 - 0
bargain/goods/goods.js

xqd
@@ -0,0 +1,322 @@
+var app = getApp(),
+  api = getApp().api,
+  utils = getApp().helper,
+  videoContext = "",
+  setIntval = null,
+  WxParse = require("../../wxParse/wxParse.js"),
+  userIntval = null,
+  scrollIntval = null,
+  is_loading = !1;
+Page({
+  data: {
+    hide: "hide",
+    time_list: {
+      day: 0,
+      hour: "00",
+      minute: "00",
+      second: "00"
+    },
+    p: 1,
+    user_index: 0,
+    show_content: !1
+  },
+  onLoad: function(e) {
+    if (getApp().page.onLoad(this, e), "undefined" == typeof my) {
+      var t = decodeURIComponent(e.scene);
+      if (void 0 !== t) {
+        var a = utils.scene_decode(t);
+        a.gid && (e.goods_id = a.gid)
+      }
+    } else if (null !== app.query) {
+      var o = app.query;
+      app.query = null, e.goods_id = o.gid
+    }
+    this.getGoods(e.goods_id)
+  },
+  getGoods: function(e) {
+    var a = this;
+    getApp().core.showLoading({
+      title: "加载中"
+    }), getApp().request({
+      url: getApp().api.bargain.goods,
+      data: {
+        goods_id: e,
+        page: 1
+      },
+      success: function(e) {
+        if (0 == e.code) {
+          var t = e.data.goods.detail;
+          WxParse.wxParse("detail", "html", t, a), a.setData(e.data), a.setData({
+            reset_time: a.data.goods.reset_time,
+            time_list: a.setTimeList(e.data.goods.reset_time),
+            p: 1,
+            foreshow_time: a.data.goods.foreshow_time,
+            foreshow_time_list: a.setTimeList(a.data.goods.foreshow_time)
+          }), a.setTimeOver(), e.data.bargain_info && a.getUserTime()
+        } else getApp().core.showModal({
+          title: "提示",
+          content: e.msg,
+          showCancel: !1,
+          success: function(e) {
+            e.confirm && getApp().core.navigateBack({
+              delta: -1
+            })
+          }
+        })
+      },
+      complete: function(e) {
+        getApp().core.hideLoading()
+      }
+    })
+  },
+  onReady: function() {
+    app.page.onReady(this)
+  },
+  onShow: function() {
+    app.page.onShow(this)
+  },
+  onHide: function() {
+    app.page.onHide(this)
+  },
+  onUnload: function() {
+    app.page.onUnload(this), clearInterval(setIntval), setIntval = null, clearInterval(userIntval), userIntval = null, clearInterval(scrollIntval), scrollIntval = null
+  },
+  play: function(e) {
+    var t = e.target.dataset.url;
+    this.setData({
+      url: t,
+      hide: "",
+      show: !0
+    }), (videoContext = getApp().core.createVideoContext("video")).play()
+  },
+  close: function(e) {
+    if ("video" == e.target.id) return !0;
+    this.setData({
+      hide: "hide",
+      show: !1
+    }), videoContext.pause()
+  },
+  onGoodsImageClick: function(e) {
+    var t = [],
+      a = e.currentTarget.dataset.index;
+    for (var o in this.data.goods.pic_list) t.push(this.data.goods.pic_list[o].pic_url);
+    getApp().core.previewImage({
+      urls: t,
+      current: t[a]
+    })
+  },
+  hide: function(e) {
+    0 == e.detail.current ? this.setData({
+      img_hide: ""
+    }) : this.setData({
+      img_hide: "hide"
+    })
+  },
+  setTimeOver: function() {
+    var i = this;
+    setIntval = setInterval(function() {
+      i.data.resset_time <= 0 && clearInterval(setIntval);
+      var e = i.data.reset_time - 1,
+        t = i.setTimeList(e),
+        a = i.data.foreshow_time - 1,
+        o = i.setTimeList(a);
+      i.setData({
+        reset_time: e,
+        time_list: t,
+        foreshow_time: a,
+        foreshow_time_list: o
+      })
+    }, 1e3)
+  },
+  orderSubmit: function() {
+    var t = this;
+    getApp().core.showLoading({
+      title: "加载中"
+    }), getApp().request({
+      url: getApp().api.bargain.bargain_submit,
+      method: "POST",
+      data: {
+        goods_id: t.data.goods.id
+      },
+      success: function(e) {
+        0 == e.code ? getApp().core.redirectTo({
+          url: "/bargain/activity/activity?order_id=" + e.data.order_id
+        }) : t.showToast({
+          title: e.msg
+        })
+      },
+      complete: function(e) {
+        getApp().core.hideLoading()
+      }
+    })
+  },
+  buyNow: function() {
+    var e = [],
+      t = [],
+      a = this.data.bargain_info;
+    a && (t.push({
+      bargain_order_id: a.order_id
+    }), e.push({
+      mch_id: 0,
+      goods_list: t
+    }), getApp().core.redirectTo({
+      url: "/pages/new-order-submit/new-order-submit?mch_list=" + JSON.stringify(e)
+    }))
+  },
+  getUserTime: function() {
+    var t = this;
+    userIntval = setInterval(function() {
+      t.loadData()
+    }, 1e3), scrollIntval = setInterval(function() {
+      var e = t.data.user_index;
+      3 < t.data.bargain_info.bargain_info.length - e ? e += 3 : e = 0, t.setData({
+        user_index: e
+      })
+    }, 3e3)
+  },
+  loadData: function() {
+    var o = this,
+      i = o.data.p;
+    is_loading || (is_loading = !0, app.request({
+      url: api.bargain.goods_user,
+      data: {
+        page: i + 1,
+        goods_id: o.data.goods.id
+      },
+      success: function(e) {
+        if (0 == e.code) {
+          var t = o.data.bargain_info.bargain_info,
+            a = e.data.bargain_info;
+          0 == a.bargain_info.length && (clearInterval(userIntval), userIntval = null), a.bargain_info = t.concat(a.bargain_info), o.setData({
+            bargain_info: a,
+            p: i + 1
+          })
+        } else o.showToast({
+          title: e.msg
+        })
+      },
+      complete: function() {
+        is_loading = !1
+      }
+    }))
+  },
+  contentClose: function() {
+    this.setData({
+      show_content: !1
+    })
+  },
+  contentOpen: function() {
+    this.setData({
+      show_content: !0
+    })
+  },
+  onShareAppMessage: function() {
+    getApp().page.onShareAppMessage(this);
+    return {
+      path: "/bargain/list/list?goods_id=" + this.data.goods.id + "&user_id=" + this.data.__user_info.id,
+      success: function(e) {},
+      title: this.data.goods.name,
+      imageUrl: this.data.goods.pic_list[0].pic_url
+    }
+  },
+  showShareModal: function() {
+    this.setData({
+      share_modal_active: "active"
+    })
+  },
+  shareModalClose: function() {
+    this.setData({
+      share_modal_active: ""
+    })
+  },
+  getGoodsQrcode: function() {
+    var t = this;
+    if (t.setData({
+        qrcode_active: "active",
+        share_modal_active: ""
+      }), t.data.goods_qrcode) return !0;
+    getApp().request({
+      url: getApp().api.bargain.qrcode,
+      data: {
+        goods_id: t.data.goods.id
+      },
+      success: function(e) {
+        0 == e.code && t.setData({
+          goods_qrcode: e.data.pic_url
+        }), 1 == e.code && (t.goodsQrcodeClose(), getApp().core.showModal({
+          title: "提示",
+          content: e.msg,
+          showCancel: !1,
+          success: function(e) {
+            e.confirm
+          }
+        }))
+      }
+    })
+  },
+  qrcodeClick: function(e) {
+    var t = e.currentTarget.dataset.src;
+    getApp().core.previewImage({
+      urls: [t]
+    })
+  },
+  qrcodeClose: function() {
+    this.setData({
+      qrcode_active: ""
+    })
+  },
+  goodsQrcodeClose: function() {
+    this.setData({
+      goods_qrcode_active: "",
+      no_scroll: !1
+    })
+  },
+  saveQrcode: function() {
+    var t = this;
+    getApp().core.saveImageToPhotosAlbum ? (getApp().core.showLoading({
+      title: "正在保存图片",
+      mask: !1
+    }), getApp().core.downloadFile({
+      url: t.data.goods_qrcode,
+      success: function(e) {
+        getApp().core.showLoading({
+          title: "正在保存图片",
+          mask: !1
+        }), getApp().core.saveImageToPhotosAlbum({
+          filePath: e.tempFilePath,
+          success: function() {
+            getApp().core.showModal({
+              title: "提示",
+              content: "商品海报保存成功",
+              showCancel: !1
+            })
+          },
+          fail: function(e) {
+            getApp().core.showModal({
+              title: "图片保存失败",
+              content: e.errMsg,
+              showCancel: !1
+            })
+          },
+          complete: function(e) {
+            getApp().core.hideLoading()
+          }
+        })
+      },
+      fail: function(e) {
+        getApp().core.showModal({
+          title: "图片下载失败",
+          content: e.errMsg + ";" + t.data.goods_qrcode,
+          showCancel: !1
+        })
+      },
+      complete: function(e) {
+        getApp().core.hideLoading()
+      }
+    })) : getApp().core.showModal({
+      title: "提示",
+      content: "当前版本过低,无法使用该功能,请升级到最新版本后重试。",
+      showCancel: !1
+    })
+  }
+});

+ 1 - 0
bargain/goods/goods.json

xqd
@@ -0,0 +1 @@
+{"navigationBarTitleText":"商品详情"}

+ 203 - 0
bargain/goods/goods.wxml

xqd
@@ -0,0 +1,203 @@
+<import src='../../wxParse/wxParse.wxml'></import>
+<view class='page'>
+  <include src='/components/common/common'></include>
+  <include src='/components/header/header'></include>
+  <view class='body after-navber'>
+    <view class='w-100' style='overflow-x: hidden;position:relative;'>
+      <include src='/components/goods-header/goods-header'></include>
+      <include src='/components/save_qrcode/save_qrcode'></include>
+      <view class='banner'>
+        <swiper autoplay='true' bindchange='hide' circular='true' class='goods-image-swiper' duration='300' indicatorDots='true' interval='5000'>
+          <block wx:for='{{goods.pic_list}}' wx:for-item='item' wx:for-index='index' wx:key='{{item.id}}'>
+            <swiper-item>
+              <block wx:if='{{goods.video_url}}'>
+                <image bindtap='play' class='play {{img_hide}}' data-url='{{goods.video_url}}' src='{{__wxapp_img.store.video_play.url}}'></image>
+              </block>
+              <image bindtap='onGoodsImageClick' class='goods-image' data-index='{{index}}' mode='aspectFill' src='{{item.pic_url}}'></image>
+            </swiper-item>
+          </block>
+        </swiper>
+        <block wx:if='{{bargain_info}}'></block>
+        <block wx:else>
+          <view class='block' style='margin-bottom:0;'>
+            <view class='time-load flex-row flex-y-center flex-x-center'>
+              <image class='time-bg' src='{{__wxapp_img.bargain.bargain_goods.time_bg.url}}'></image>
+              <block wx:if='{{foreshow_time > 0}}'>
+                <view class='flex-row'>
+                  <view style='margin-right:20rpx;'>距活动开始</view>
+                  <block wx:if='{{time_list.d > 0}}'>
+                    <view class='time-box flex-y-center'>{{foreshow_time_list.d}}</view>
+                    <view style='margin: 0 10rpx;'>天</view>
+                  </block>
+                  <view class='time-box flex-y-center'>{{foreshow_time_list.h}}</view>
+                  <view>:</view>
+                  <view class='time-box flex-y-center'>{{foreshow_time_list.m}}</view>
+                  <view>:</view>
+                  <view class='time-box flex-y-center'>{{foreshow_time_list.s}}</view>
+                </view>
+              </block>
+              <block wx:else>
+                <view class='flex-row'>
+                  <view style='margin-right:20rpx;'>距活动结束</view>
+                  <block wx:if='{{time_list.d > 0}}'>
+                    <view class='time-box flex-y-center'>{{time_list.d}}</view>
+                    <view style='margin: 0 10rpx;'>天</view>
+                  </block>
+                  <view class='time-box flex-y-center'>{{time_list.h}}</view>
+                  <view>:</view>
+                  <view class='time-box flex-y-center'>{{time_list.m}}</view>
+                  <view>:</view>
+                  <view class='time-box flex-y-center'>{{time_list.s}}</view>
+                </view>
+              </block>
+            </view>
+          </view>
+        </block>
+      </view>
+      <view class='block'>
+        <view style='padding:10rpx 0 16rpx 0'>
+          <view class='text-more-2' style='font-size:13pt;height: 2.8em;line-height: 1.4;'>{{goods.name}}</view>
+        </view>
+        <view class='flex-row'>
+          <view class='flex-col flex-grow-1'>
+            <view class='flex-row flex-y-bottom'>
+              <view>最低
+                <text style='color:#ff5c5c'>¥</text>
+                <text style='margin-right:16rpx;font-size:15pt;color:#ff5c5c'>{{goods.min_price}}</text>
+              </view>
+              <view style='margin-right:16rpx;padding-left:50rpx'>原价¥{{goods.price}}</view>
+            </view>
+            <view class='flex-row' style='padding:32rpx 0 40rpx 0'>
+              <view class='flex-grow-0'>库存:{{goods.num}}</view>
+              <view class='flex-grow-1' style='padding-left:50rpx'>已有{{goods.sale}}人参与砍价</view>
+            </view>
+          </view>
+          <view class='flex-row flex-grow-0 flex-y-center'>
+            <button bindtap='showShareModal' class='share-btn' plain='true'>
+              <image src='{{__wxapp_img.share.share.url}}' style='width: 40rpx;height: 40rpx'></image>
+              <view style='color: #888'>分享</view>
+            </button>
+          </view>
+        </view>
+      </view>
+      <block wx:if='{{bargain_info}}'>
+        <view class='block' style='padding:24rpx 20rpx;'>
+          <view class='flex-row'>
+            <image class='flex-grow-0 user-img' src='{{__user_info.avatar_url}}'></image>
+            <view class='flex-grow-1 flex-y-center'>
+              <view>
+                <view class='flex-row'>
+                  <view>距本次砍价结束仅剩 </view>
+                  <view class='font-o'> {{time_list.d}}天{{time_list.h}}:{{time_list.m}}:{{time_list.s}}</view>
+                </view>
+                <block wx:if='{{goods.min_price == bargain_info.price}}'>
+                  <view class='font-o'>已砍至最低价,赶快优惠购买吧!</view>
+                </block>
+                <block wx:else>
+                  <view class='font-o'>快让你的好友助你一臂之力!</view>
+                </block>
+              </view>
+            </view>
+          </view>
+          <view style='margin-top:20rpx;'>
+            <view class='flex-x-center' style='color:#ff5c5c;font-size:15pt;'>当前价¥{{bargain_info.price}}</view>
+            <view>
+              <view class='progress-box'>
+                <view class='progress-view' style='width:{{bargain_info.money_per}}%'></view>
+              </view>
+            </view>
+            <view class='flex-row' style='color:#666;'>
+              <view class='flex-grow-1'>原价¥{{goods.price}}</view>
+              <view class='flex-grow-0'>底价¥{{goods.min_price}}</view>
+            </view>
+          </view>
+          <view class='info'>
+            <scroll-view class='user-scroll' scrollIntoView='user-{{user_index}}' scrollWithAnimation='true' scrollY='true'>
+              <block wx:for='{{bargain_info.bargain_info}}' wx:for-item='item' wx:for-index='index' wx:key='{{item.id}}'>
+                <view class='one flex-row' id='user-{{index}}'>
+                  <image class='flex-grow-0' src='{{item.avatar}}'></image>
+                  <view class='flex-grow-1 flex-row flex-y-center'>
+                    <view class='flex-grow-0' style='max-width:200rpx;margin-right:6rpx;'>
+                      <view class='text-more'>{{item.nickname}} </view>
+                    </view>
+                    <view>小刀一挥帮忙砍了</view>
+                    <view style='color:#ff5c5c'>{{item.price}}</view>
+                    <view>元</view>
+                  </view>
+                </view>
+              </block>
+            </scroll-view>
+          </view>
+        </view>
+      </block>
+      <view class='flex-row flex-y-center flow'>
+        <view class='flex-grow-0'>
+          <image src='{{__wxapp_img.bargain.bargain_goods.flow.url}}'></image>
+        </view>
+        <view class='flex-grow-1'>砍价流程</view>
+      </view>
+      <view class='block'>
+        <view class='flex-row flex-x-center' style='padding-top:24rpx;padding-bottom:40rpx;color:#999;'>
+          <block wx:for='{{flow}}' wx:for-item='item' wx:for-index='index' wx:key='{{item.id}}'>
+            <block wx:if='{{item.name}}'>
+              <view class='flex-grow-1'>
+                <view>
+                  <view class='flex-x-center'>
+                    <image src='{{item.url}}' style='width:72rpx;height:72rpx;'></image>
+                  </view>
+                  <view class='flex-x-center' style='margin-top:20rpx;font-size:9pt'>{{item.name}}</view>
+                </view>
+              </view>
+            </block>
+            <block wx:else>
+              <view class='flex-grow-1'>
+                <view>
+                  <view class='flex-x-center'>
+                    <image src='{{item.url}}' style='width:52rpx;height:34rpx;margin-top:19rpx;'></image>
+                  </view>
+                </view>
+              </view>
+            </block>
+          </block>
+        </view>
+      </view>
+      <view class='flex-row flex-y-center flow'>
+        <view class='flex-grow-0'>
+          <image src='{{__wxapp_img.bargain.bargain_goods.shuoming.url}}'></image>
+        </view>
+        <view class='flex-grow-1'>活动说明</view>
+      </view>
+      <view class='block'>
+        <view class='shuoming'>
+          <view>本次活动开始时间{{goods.begin_time}}</view>
+          <view style='margin-top:10rpx;'>本次活动结束时间{{goods.end_time}}</view>
+        </view>
+      </view>
+      <view class='flex-row flex-y-center flow'>
+        <view class='flex-grow-0'>
+          <image src='{{__wxapp_img.bargain.bargain_goods.goods.url}}'></image>
+        </view>
+        <view class='flex-grow-1'>商品详情</view>
+      </view>
+      <view class='goods-detail' style='width:100%'>
+        <template is='wxParse' data='{{wxParseData:detail.nodes}}'></template>
+      </view>
+      <view class='bottom flex-row flex-x-center flex-y-center'>
+        <block wx:if='{{bargain_info}}'>
+          <view bindtap='buyNow' class='bottom-first flex-x-center flex-y-center' style='width:346rpx;'>立即购买</view>
+          <navigator class='bottom-second flex-x-center flex-y-center' hoverClass='none' openType='redirect' url='/bargain/activity/activity?order_id={{bargain_info.order_id}}'>找人帮砍</navigator>
+        </block>
+        <block wx:else>
+          <view bindtap='orderSubmit' class='bottom-first flex-x-center flex-y-center'>立即砍价</view>
+        </block>
+      </view>
+    </view>
+    <view bindtap='close' class='modal flex-row {{hide}}'>
+      <view class='flex-y-center' style='width:100%;height:100%;position:relative;'>
+        <image src='{{__wxapp_img.store.close2.url}}' style='width:50rpx;height:50rpx;position:absolute;left:24rpx;top:24rpx'></image>
+        <video autoplay='true' direction='' id='video' src='{{url}}' style='height:80%'></video>
+      </view>
+    </view>
+  </view>
+  <include src='/components/footer/footer'></include>
+</view>

+ 105 - 0
bargain/goods/goods.wxss

xqd
@@ -0,0 +1,105 @@
+page{ overflow-x: hidden; }
+.wxParse{ margin: 0 5px; font-family: Helvetica,sans-serif; font-size: 28rpx; color: #666; line-height: 1.8; }
+.wxParse-inline{ display: inline; margin: 0; padding: 0; }
+.wxParse-div{margin: 0;padding: 0;}
+.wxParse-h1{ font-size:2em; margin: .67em 0 }
+.wxParse-h2{ font-size:1.5em; margin: .75em 0 }
+.wxParse-h3{ font-size:1.17em; margin: .83em 0 }
+.wxParse-h4{ margin: 1.12em 0}
+.wxParse-h5 { font-size:.83em; margin: 1.5em 0 }
+.wxParse-h6{ font-size:.75em; margin: 1.67em 0 }
+.wxParse-h1 { font-size: 18px; font-weight: 400; margin-bottom: .9em; }
+.wxParse-h2 { font-size: 16px; font-weight: 400; margin-bottom: .34em; }
+.wxParse-h3 { font-weight: 400; font-size: 15px; margin-bottom: .34em; }
+.wxParse-h4 { font-weight: 400; font-size: 14px; margin-bottom: .24em; }
+.wxParse-h5 { font-weight: 400; font-size: 13px; margin-bottom: .14em; }
+.wxParse-h6 { font-weight: 400; font-size: 12px; margin-bottom: .04em; }
+.wxParse-h1, .wxParse-h2, .wxParse-h3, .wxParse-h4, .wxParse-h5, .wxParse-h6, .wxParse-b, .wxParse-strong { font-weight: bolder }
+.wxParse-i,.wxParse-cite,.wxParse-em,.wxParse-var,.wxParse-address{font-style:italic}
+.wxParse-pre,.wxParse-tt,.wxParse-code,.wxParse-kbd,.wxParse-samp{font-family:monospace}
+.wxParse-pre{white-space:pre}
+.wxParse-big{font-size:1.17em}
+.wxParse-small,.wxParse-sub,.wxParse-sup{font-size:.83em}
+.wxParse-sub{vertical-align:sub}
+.wxParse-sup{vertical-align:super}
+.wxParse-s,.wxParse-strike,.wxParse-del{text-decoration:line-through}
+.wxParse-strong,.wxParse-s{display: inline}
+.wxParse-a{ color: deepskyblue; word-break:break-all; overflow:auto; }
+.wxParse-video{ text-align: center; margin: 10px 0; }
+.wxParse-video-video{ width:100%; }
+.wxParse-img { background-color: #efefef; overflow: hidden; vertical-align: top; display: block; }
+.wxParse-blockquote { margin: 0; padding:10px 0 10px 5px; font-family:Courier, Calibri,"宋体"; background:#f5f5f5; border-left: 3px solid #dbdbdb; }
+.wxParse-code,.wxParse-wxxxcode-style{ display: inline; background:#f5f5f5; }
+.wxParse-ul{ margin: 20rpx 10rpx; }
+.wxParse-li,.wxParse-li-inner{ display: flex; align-items: baseline; margin: 10rpx 0; }
+.wxParse-li-text{ align-items: center; line-height: 20px; }
+.wxParse-li-circle{ display: inline-flex; width: 5px; height: 5px; background-color: #333; margin-right: 5px; }
+.wxParse-li-square{ display: inline-flex; width: 10rpx; height: 10rpx; background-color: #333; margin-right: 5px; }
+.wxParse-li-ring{ display: inline-flex; width: 10rpx; height: 10rpx; border: 2rpx solid #333; border-radius: 50%; background-color: #fff; margin-right: 5px; }
+.wxParse-u { text-decoration: underline; }
+.wxParse-hide{ display: none; }
+.WxEmojiView{ align-items: center; }
+.wxEmoji{ width: 16px; height:16px; }
+.wxParse-tr{ display: flex; border-right:1px solid #e0e0e0; border-bottom:1px solid #e0e0e0; border-top:1px solid #e0e0e0; }
+.wxParse-th, .wxParse-td{ flex:1; padding:5px; font-size:28rpx; border-left:1px solid #e0e0e0; word-break: break-all; }
+.wxParse-td:last{ border-top:1px solid #e0e0e0; }
+.wxParse-th{ background:#f0f0f0; border-top:1px solid #e0e0e0; }
+.wxParse-del{ display: inline; }
+.wxParse-p{ padding: 0 20rpx; overflow-x: hidden; }
+.wxParse-p wx-image{ display: block; margin-left: -20rpx; margin-right: -20rpx; max-width: none !important; }
+.goods-block { width: 100%; height: 72rpx; background-color: #fff1f1; padding: 0 24rpx; }
+.goods-info { color: #3f3f3f; height: 100%; }
+.goods-info .goods-img { width: 18rpx; height: 18rpx; transform:rotate(-90deg); }
+.content-modal { position: fixed; left: 0; top: 0; background-color: rgba(0, 0, 0, 0.5); width: 100%; height: 100%; z-index: 111; }
+.content-body { width: 600rpx; background-color: #fff; border-radius: 8rpx; padding: 28rpx 32rpx 88rpx 32rpx; position: relative; }
+.content-img { position: absolute; right: 32rpx; top: 28rpx; }
+@-webkit-keyframes rotation{ from {-webkit-transform: rotate(0deg);}
+}.an{ -webkit-transform: rotate(360deg); animation: rotation 2s linear infinite; }
+.goods-qrcode-modal{ position: fixed; top:0; left: 0; width: 100%; height: 100%; z-index: 1000; background: rgba(0,0,0,.5); padding: 40rpx; transform: translateY(100%); opacity: .5; transition: opacity 250ms; visibility: hidden; }
+.goods-qrcode-modal.active{ transform: translateY(0); opacity: 1; visibility: visible; }
+.goods-qrcode-body{ background: #fff; height: 100%; border-radius: 10rpx; z-index: 99999; }
+.goods-qrcode-modal .goods-qrcode-box{ height: 100%; position: relative; box-shadow: 0 0 15rpx rgba(0,0,0,.15); }
+.goods-qrcode-modal .goods-qrcode-loading{ top:0; left: 0; position: absolute; width: 100%; height: 100%; }
+.goods-qrcode-modal .goods-qrcode{ top:0; left: 0; position: absolute; width: 100%; height: 100%; background: #fff; display: none; }
+.goods-qrcode-modal .goods-qrcode.active{ display: block; }
+.goods-qrcode-modal .goods-qrcode-close{ position: absolute; top:40rpx; right: 40rpx; padding: 15rpx; }
+.share-modal{ position: fixed; top:0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,.0); z-index: 1000; transform: translateY(100%); transition: background 250ms; }
+.share-modal .share-modal-body{ position: fixed; bottom: 0; left: 0; width: 100%; background: #f2f2f2; padding-top: 60rpx; transform: translateY(100%); transition: transform 250ms; }
+.share-modal.active{ transform: translateY(0); background: rgba(0,0,0,.5); }
+.share-modal.active .share-modal-body{ transform: translateY(0); }
+.share-modal .share-bottom{ text-align: center; font-size: 9pt; margin: 0; padding: 0; margin-bottom: 60rpx; line-height: inherit; border: none; background: none; color: inherit; font-family: inherit; display: inline-block; }
+.share-modal .share-bottom:after{ display: none; }
+.share-modal .share-bottom wx-cover-image, .share-modal .share-bottom wx-image{ width: 120rpx; height: 120rpx; margin-bottom: 12rpx; border-radius: 999rpx; border: 1rpx solid #eee; }
+.share-modal .share-bottom:active wx-cover-image, .share-modal .share-bottom:active wx-image{ opacity: .7; }
+.share-modal .share-modal-close{ background: #fff; height: 100rpx; border-top: 1rpx solid #eee; }
+.banner { width: 100%; background-color: #fff; }
+.goods-image-swiper { width: 100%; height: 750rpx; }
+.goods-image { width: 100%; height: 750rpx; }
+.hide { display: none; }
+.modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 1); z-index: 9999; }
+.modal wx-video { width: 100%; height: 430rpx; }
+.play { width: 150rpx; height: 150rpx; position: absolute; top: 275rpx; left: 300rpx; }
+.time-load { margin-top: -40rpx; height: 80rpx; width: 100%; position: relative; z-index: 10; }
+.time-load .time-bg { position: absolute; left: 0; top: 0; width: 100%; height: 80rpx; z-index: -1; }
+.time-box { height: 42rpx; color: #fff; background-color: #666; border-radius: 4rpx; padding: 0 10rpx; }
+.block { padding: 0 20rpx; background-color: #fff; margin-bottom: 16rpx; width: 100%; }
+.user-img { width: 96rpx; height:96rpx; margin-right: 34rpx; border-radius: 96rpx; }
+.font-o { color: #ff8c40; margin-left:10rpx; }
+.progress-box { width: 100%; height: 40rpx; border-radius: 20rpx; border: 2rpx solid #ff5c5c; overflow: hidden; margin-top: 28rpx; margin-bottom: 16rpx; }
+.progress-view { width: 50%; height: 100%; border-radius: 20rpx; background-color: #ff9f9f; }
+.info { width: 100%; border-radius: 16rpx; background-color: #fff7f7; margin-top: 44rpx; padding: 32rpx 24rpx; }
+.info .one { margin-bottom: 32rpx; }
+.info .one:last-child { margin-bottom: 0; }
+.info wx-image { width: 64rpx; height: 64rpx; margin-right: 24rpx; }
+.flow { height: 88rpx; color: #ff5c5c; font-size: 13pt; border-bottom: 1rpx solid #e2e2e2; background-color: #fff; padding: 0 20rpx; }
+.flow .flex-grow-0 { height: 34rpx; }
+.flow wx-image { width: 34rpx; height: 34rpx; margin-right: 16rpx; }
+.shuoming { padding: 26rpx 0 40rpx 0; }
+.shuoming wx-view::before { content: '●'; margin-right: 10rpx; }
+.goods-detail { padding-bottom: 120rpx; background-color: #fff; }
+.goods-detail wx-text, .goods-detail wx-image, .goods-detail wx-view{ box-sizing: border-box; max-width: 100%; }
+.bottom { position: fixed; left: 0; bottom: 0; width: 100%; height: 120rpx; background-color: #fff; color: #fff; padding: 0 20rpx; border-top: 1rpx solid #e2e2e2; }
+.bottom-first { width: 100%; height: 80rpx; background-color: #ff9292; border-radius: 40rpx; background: -prefix-linear-gradient(top, #ff9292, #fc6969); background: linear-gradient(to bottom, #ff9292, #fc6969); }
+.bottom-second { width: 346rpx; height: 80rpx; background-color: #ff9292; border-radius: 40rpx; background: -prefix-linear-gradient(top, #ffc46b, #ffa13c); background: linear-gradient(to bottom, #ffc46b, #ffa13c); margin-left: 18rpx; }
+.user-scroll { max-height: 264rpx; }
+.share-btn{ line-height: normal; padding: 0 10rpx; border: none; background: none; border-radius: 0; box-shadow: none; display: inline-block; font-size: 8pt; }

BIN
bargain/images/icon-bargain-list-selected.png


BIN
bargain/images/icon-bargain-list.png


BIN
bargain/images/icon-bargain-my-selected.png


BIN
bargain/images/icon-bargain-my.png


BIN
bargain/images/icon-bargain-order-jiantou.png


BIN
bargain/images/icon-bargain-sku.png


+ 1 - 0
bargain/list/list.js

xqd
@@ -0,0 +1 @@
+var app=getApp(),api=getApp().api,is_loading=!1,is_no_more=!0;Page({data:{p:1,naver:"list"},onLoad:function(o){app.page.onLoad(this,o);void 0!==o.order_id&&getApp().core.navigateTo({url:"/bargain/activity/activity?order_id="+o.order_id+"&user_id="+o.user_id}),void 0!==o.goods_id&&getApp().core.navigateTo({url:"/bargain/goods/goods?goods_id="+o.goods_id+"&user_id="+o.user_id}),this.loadDataFirst(o)},loadDataFirst:function(t){var a=this;getApp().core.showLoading({title:"加载中"}),getApp().request({url:getApp().api.bargain.index,type:"get",success:function(o){0==o.code&&(a.setData(o.data),a.setData({p:2}),0<o.data.goods_list.length&&(is_no_more=!1))},complete:function(o){void 0===t.order_id&&getApp().core.hideLoading(),getApp().core.stopPullDownRefresh()}})},onReady:function(){getApp().page.onReady(this)},onShow:function(){getApp().page.onShow(this)},onHide:function(){getApp().page.onHide(this)},onUnload:function(){getApp().page.onUnload(this)},onPullDownRefresh:function(){this.loadDataFirst({})},onReachBottom:function(){is_no_more||this.loadData()},loadData:function(){if(!is_loading){is_loading=!0,getApp().core.showLoading({title:"加载中"});var a=this,i=a.data.p;app.request({url:api.bargain.index,data:{page:i},success:function(o){if(0==o.code){var t=a.data.goods_list;0==o.data.goods_list.length&&(is_no_more=!0),t=t.concat(o.data.goods_list),a.setData({goods_list:t,p:i+1})}else a.showToast({title:o.msg})},complete:function(o){getApp().core.hideLoading(),is_loading=!1}})}},goToGoods:function(o){var t=o.currentTarget.dataset.index;getApp().core.navigateTo({url:"/bargain/goods/goods?goods_id="+t})},onShareAppMessage:function(){getApp().page.onShareAppMessage(this);return{path:"/bargain/list/list?user_id="+this.data.__user_info.id,success:function(o){}}}}); 

+ 1 - 0
bargain/list/list.json

xqd
@@ -0,0 +1 @@
+{"navigationBarTitleText":"砍价","enablePullDownRefresh":true}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
bargain/list/list.wxml


+ 13 - 0
bargain/list/list.wxss

xqd
@@ -0,0 +1,13 @@
+@import '/import/css3_0.wxss';page { background-color: #fff; }
+.banner { height: 376rpx; padding-bottom: 16rpx; background-color: #f7f7f7; position: relative; }
+.slide-image { width: 100%; height: 360rpx; }
+.list { width: 100%; padding-bottom: 96rpx; }
+.list .one { margin-bottom: 20rpx; background-color: #fff; padding: 24rpx; border-bottom: 1rpx solid #eee; }
+.one .img { position: relative; width: 220rpx; height: 220rpx; margin-right: 24rpx; }
+.one .img wx-image:first-child { width: 100%; height: 100%; }
+.sale { margin-top: 10rpx; font-size: 9pt; }
+.img .sku { position: absolute; top: 0; left: 0; width: 160rpx; height: 160rpx; margin: 30rpx; }
+.join-btn { width: 176rpx; height: 64rpx; background-color: #ff5c5c; color: #fff; border-radius: 32rpx; }
+.join-btn.no { background-color: #cdcdcd; }
+.avatar { width: 50rpx; height: 50rpx; position: relative; margin-left: -10rpx; }
+.avatar wx-image { width: 100%; height: 100%; border-radius: 50rpx; }

+ 1 - 0
bargain/order-list/order-list.js

xqd
@@ -0,0 +1 @@
+var app=getApp(),api=getApp().api,is_loading=!1,is_no_more=!0,intval=null;Page({data:{naver:"order",status:-1,intval:[],p:1},onLoad:function(t){getApp().page.onLoad(this,t);null==t.status&&(t.status=-1),this.setData(t),this.getList()},getList:function(){var a=this;getApp().core.showLoading({title:"加载中"}),getApp().request({url:getApp().api.bargain.order_list,data:{status:a.data.status||-1},success:function(t){0==t.code?(a.setData(t.data),a.setData({p:1}),a.getTimeList()):a.showLoading({title:t.msg})},complete:function(t){getApp().core.hideLoading(),is_no_more=!1}})},getTimeList:function(){clearInterval(intval);var i=this,s=i.data.list;intval=setInterval(function(){for(var t in s)if(0<s[t].reset_time){var a=s[t].reset_time-1,e=i.setTimeList(a);s[t].reset_time=a,s[t].time_list=e}i.setData({list:s})},1e3)},onReady:function(){getApp().page.onReady(this)},onShow:function(){getApp().page.onShow(this)},onHide:function(){getApp().page.onHide(this)},onUnload:function(){getApp().page.onUnload(this)},onReachBottom:function(){is_no_more||this.loadData()},loadData:function(){var e=this;if(!is_loading){is_loading=!0,getApp().core.showLoading({title:"加载中"});var i=e.data.p+1;getApp().request({url:getApp().api.bargain.order_list,data:{status:e.data.status,page:i},success:function(t){if(0==t.code){var a=e.data.list.concat(t.data.list);e.setData({list:a,p:i}),0==t.data.list.length&&(is_no_more=!0),e.getTimeList()}else e.showLoading({title:t.msg})},complete:function(t){getApp().core.hideLoading(),is_loading=!0}})}},submit:function(t){var a=[],e=[];e.push({bargain_order_id:t.currentTarget.dataset.index}),a.push({mch_id:0,goods_list:e}),getApp().core.navigateTo({url:"/pages/new-order-submit/new-order-submit?mch_list="+JSON.stringify(a)})}}); 

+ 1 - 0
bargain/order-list/order-list.json

xqd
@@ -0,0 +1 @@
+{"navigationBarTitleText":"我的砍价"}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
bargain/order-list/order-list.wxml


+ 9 - 0
bargain/order-list/order-list.wxss

xqd
@@ -0,0 +1,9 @@
+@import '/import/css3_0.wxss';.list { width: 100%; padding-bottom: 96rpx; border-top: 1rpx solid #e2e2e2; }
+.one { width: 100%; padding: 24rpx 20rpx; margin-bottom: 8rpx; background-color: #fff; font-size: 9pt; }
+.one wx-image { width: 216rpx; height:216rpx; }
+.time { width: auto; height: 36rpx; background-color: #666; border-radius: 4rpx; color: #fff; padding: 0 6rpx; }
+.a { color:#999; margin-bottom: 4rpx; font-size:9pt; }
+.b { color: #ff5c5c; }
+.list-btn { width: 176rpx; height: 64rpx; border-radius: 32rpx; color: #fff; background-color: #ff5c5c; font-size: 11pt; }
+.img { width: 18rpx; height: 18rpx; margin-left: 12rpx; }
+.img.up{ transform: rotate(90deg); }

+ 1 - 0
bargain/rule/rule.js

xqd
@@ -0,0 +1 @@
+var app=getApp(),api=getApp().api;Page({onLoad:function(t){var e=this;getApp().page.onLoad(this,t),getApp().core.showLoading({title:"加载中"}),getApp().request({url:getApp().api.bargain.setting,success:function(t){0==t.code?e.setData(t.data):e.showLoading({title:t.msg})},complete:function(t){getApp().core.hideLoading()}})}}); 

+ 1 - 0
bargain/rule/rule.json

xqd
@@ -0,0 +1 @@
+{"navigationBarTitleText":"规则"}

+ 1 - 0
bargain/rule/rule.wxml

xqd
@@ -0,0 +1 @@
+<view class='page'><include src='/components/common/common'></include><include src='/components/header/header'></include><view class='body after-navber'><view class='p-24'><text>{{content}}</text></view></view><include src='/components/footer/footer'></include></view>

+ 2 - 0
bargain/rule/rule.wxss

xqd
@@ -0,0 +1,2 @@
+page { background-color: #fff; }
+.main { padding: 40rpx; }

+ 69 - 0
components/_toast/_toast.wxml

xqd
@@ -0,0 +1,69 @@
+<block wx:if='{{_toast}}'>
+  <view id='_toast'>
+    <view class='{{(_toast.hide?"hide":"")}}' id='_toast_title'>
+      <text>{{_toast.title}}</text>
+    </view>
+  </view>
+</block>
+<block wx:if='{{_loading}}'>
+  <view class=' flex-row flex-x-center flex-y-center' id='_loading'>
+    <view class='{{(_loading?"hide":"")}}'>
+      <image src='{{__wxapp_img.system.loading2.url}}'></image>
+    </view>
+  </view>
+</block>
+<block wx:if='{{user_info_show}}'>
+  <view class='new-modal'>
+    <view class='new-modal-content'>
+      <view class='new-modal-header' style='padding:30rpx 0;line-height:60rpx;border-bottom: 1rpx solid #eee;'>需要您的授权</view>
+      <view class='new-modal-body' style='min-height:0;margin-bottom:0;max-height:none'>
+        <view style='padding:32rpx 0 0 0;text-align: center'>
+          <view>为了提供更好的服务</view>
+          <view>请在稍后的提示框中点击“允许”</view>
+        </view>
+        <block wx:if='{{__platform == "wx"}}'>
+          <view style='text-align:center'>
+            <image src='/images/icon-login-index.png' style='width:500rpx;height:460rpx;'></image>
+          </view>
+        </block>
+        <view class='flex-x-center'>
+          <view>
+            <button bindgetuserinfo='getUserInfo' bindtap='myLogin' class='btn new-modal-btn' openType='getUserInfo' style='background-color:#04be01;width:500rpx;height:80rpx;border-radius:80rpx;color:#fff;margin-bottom:40rpx;'>登录授权</button>
+          </view>
+        </view>
+        <view class='flex-x-center'>
+          <view>
+            <button bindtap='dis' class='btn new-modal-btn' style='background-color:#cecece;width:500rpx;height:80rpx;border-radius:80rpx;color:#fff;margin-bottom:40rpx;'>取消</button>
+          </view>
+        </view>
+      </view>
+    </view>
+  </view>
+</block>
+<block wx:if='{{user_bind_show}}'>
+  <block wx:if='{{ (!(__user_info.binding) && store.option.phone_auth == 1) }}'>
+    <view class='new-modal'>
+      <view class='new-modal-content'>
+        <view class='new-modal-header' style='padding:30rpx 0;line-height:60rpx;font-size:11pt;border-bottom: 1rpx solid #eee;'>授权获取手机号</view>
+        <view class='new-modal-body' style='min-height:0;margin-bottom:0;'>
+          <view style='padding:32rpx 0 40rpx 0;text-align: center'>
+            <block wx:if='{{__platform == "wx"}}'>
+              <image src='{{__wxapp_img.system.wechatapp.url}}' style='width: 88rpx;height: 88rpx;'></image>
+            </block>
+            <block wx:else>
+              <image src='{{__wxapp_img.system.alipay.url}}' style='width: 88rpx;height: 88rpx;'></image>
+            </block>
+          </view>
+          <view style='padding:0 41rpx;'>
+            <view class='flex-x-center' style='margin-bottom:40rpx;'>申请获取您微信绑定的手机号</view>
+          </view>
+          <view class='flex-x-center'>
+            <view>
+              <button bindgetphonenumber='getPhoneNumber' class='btn new-modal-btn' hoverClass='none' openType='getPhoneNumber' style='background-color:#04be01;width:500rpx;height:80rpx;border-radius:80rpx;color:#fff;margin-bottom:40rpx;'>确认</button>
+            </view>
+          </view>
+        </view>
+      </view>
+    </view>
+  </block>
+</block>

+ 1 - 0
components/_toast/_toast.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_0.wxss';

+ 1 - 0
components/area-picker/area-picker.js

xqd
@@ -0,0 +1 @@
+var area_picker={page:null,data:null,old_value:[0,0,0],result:[null,null,null],init:function(a){var l=this;l.page=a.page,l.data=a.data,l.page.showAreaPicker=function(){l.page.setData({area_picker_show:!0})},l.page.hideAreaPicker=function(){l.page.setData({area_picker_show:!1})};var r=l.data[0].list||[],s=[];return 0<r.length&&(s=r[0].list||[]),l.page.setData({area_picker_province_list:l.data,area_picker_city_list:r,area_picker_district_list:s}),l.result[0]=l.data[0]||null,l.data[0].list&&(l.result[1]=l.data[0].list[0],l.data[0].list[0].list&&(l.result[2]=l.data[0].list[0].list[0])),l.page.areaPickerChange=function(a){var e=a.detail.value[0],t=a.detail.value[1],i=a.detail.value[2];a.detail.value[0]!=l.old_value[0]&&(i=t=0,r=l.data[e].list,s=r[0].list,l.page.setData({area_picker_city_list:[],area_picker_district_list:[]}),setTimeout(function(){l.page.setData({area_picker_city_list:r,area_picker_district_list:s})},0)),a.detail.value[1]!=l.old_value[1]&&(i=0,s=l.data[e].list[t].list,l.page.setData({area_picker_district_list:[]}),setTimeout(function(){l.page.setData({area_picker_district_list:s})},0)),a.detail.value[2],l.old_value[2],l.old_value=[e,t,i],l.result[0]=l.data[e],l.result[1]=l.data[e].list[t],l.result[2]=l.data[e].list[t].list[i]},l.page.areaPickerConfirm=function(){l.page.hideAreaPicker(),l.page.onAreaPickerConfirm&&l.page.onAreaPickerConfirm(l.result)},this}};module.exports=area_picker;

+ 1 - 0
components/area-picker/area-picker.wxml

xqd
@@ -0,0 +1 @@
+<view class='area-picker {{(area_picker_show?"active":"")}}'><view bindtap='hideAreaPicker' class='area-picker-bg'><scroll-view></scroll-view></view><view class='area-picker-body'><scroll-view><view class='area-picker-top'><text bindtap='hideAreaPicker' class='area-picker-cancel'>取消</text><text bindtap='areaPickerConfirm' class='area-picker-confirm'>确认</text></view><view class='area-picker-row'><picker-view bindchange='areaPickerChange' indicatorStyle='height: 100rpx' style='width: 100%; height: 500rpx;'><picker-view-column><block wx:for='{{area_picker_province_list}}' wx:for-item='item' wx:for-index='index' wx:key='index'><view style='line-height: 100rpx;height: 100rpx;text-align: center'>{{item.name}}</view></block></picker-view-column><picker-view-column><block wx:for='{{area_picker_city_list}}' wx:for-item='item' wx:for-index='index' wx:key='index'><view style='line-height: 100rpx;height: 100rpx;text-align: center'>{{item.name}}</view></block></picker-view-column><picker-view-column><block wx:for='{{area_picker_district_list}}' wx:for-item='item' wx:for-index='index' wx:key='index'><view style='line-height: 100rpx;height: 100rpx;text-align: center'>{{item.name}}</view></block></picker-view-column></picker-view></view></scroll-view></view></view>

+ 1 - 0
components/area-picker/area-picker.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_1.wxss';

+ 1 - 0
components/calendar/calendar-converter.js

xqd
@@ -0,0 +1 @@
+var calendarSignData,date,calendarSignDay,app=getApp();Page({data:{},onLoad:function(a){var e=new Date,n=e.getFullYear(),t=e.getMonth()+1;date=e.getDate();var r,c=e.getDay(),g=7-(date-c)%7;1==t||3==t||5==t||7==t||8==t||10==t||12==t?r=31:4==t||6==t||9==t||11==t?r=30:2==t&&(r=(n-2e3)%4==0?29:28),null!=getApp().core.getStorageSync("calendarSignData")&&""!=getApp().core.getStorageSync("calendarSignData")||getApp().core.setStorageSync("calendarSignData",new Array(r)),null!=getApp().core.getStorageSync("calendarSignDay")&&""!=getApp().core.getStorageSync("calendarSignDay")||getApp().core.setStorageSync("calendarSignDay",0),calendarSignData=getApp().core.getStorageSync("calendarSignData"),calendarSignDay=getApp().core.getStorageSync("calendarSignDay"),this.setData({year:n,month:t,nbsp:g,monthDaySize:r,date:date,calendarSignData:calendarSignData,calendarSignDay:calendarSignDay})},onReady:function(){},onShow:function(){},onHide:function(){},onUnload:function(){},onPullDownRefresh:function(){},onReachBottom:function(){},onShareAppMessage:function(){},register_rule:function(){this.setData({register_rule:!0})},hideModal:function(){this.setData({register_rule:!1})},calendarSign:function(){calendarSignData[date]=date,calendarSignDay+=1,getApp().core.setStorageSync("calendarSignData",calendarSignData),getApp().core.setStorageSync("calendarSignDay",calendarSignDay),getApp().core.showToast({title:"签到成功",icon:"success",duration:2e3}),this.setData({calendarSignData:calendarSignData,calendarSignDay:calendarSignDay})}});

+ 1 - 0
components/calendar/calendar.wxml

xqd
@@ -0,0 +1 @@
+<view class='top-handle'><view bindtap='doDay' class='prev' data-key='left'><image src='{{__wxapp_img.register.left.url}}'></image></view><view class='today'>{{currentDate}}</view><view bindtap='doDay' class='next' data-key='right'><image src='{{__wxapp_img.register.right.url}}'></image></view></view><view class='week'><block wx:for='{{weeks}}' wx:for-item='item' wx:for-index='index' wx:key='{{item.id}}'><view class='weeks-day'>{{item.day}}</view></block></view><view class='box-flex'><block wx:for='{{currentDayList}}' wx:for-item='vo' wx:for-index='key' wx:key='{{key}}'><view class='flex-item'><block wx:if='{{vo.is_re == 1}}'><block wx:if='{{currentDay != vo.date}}'><view bindtap='selectDay' class='item-content {{!(selectCSS)}}' data-day='{{vo.date}}'><image class='re_pic' src='{{__wxapp_img.register.quan.url}}'></image>                {{vo.date}}            </view></block></block><block wx:else><block wx:if='{{currentDay != vo.date}}'><view bindtap='selectDay' class='item-content {{!(selectCSS)}}' data-day='{{vo.date}}'>                {{vo.date}}            </view></block></block><block wx:if='{{vo.is_re == 1}}'><block wx:if='{{currentDay == vo.date}}'><view bindtap='selectDay' class='item-content {{selectCSS}}' data-day='{{vo.date}}'><image class='re_pic' src='{{__wxapp_img.register.quan.url}}'></image>                {{vo.date}}            </view></block></block><block wx:else><block wx:if='{{currentDay == vo.date}}'><view bindtap='selectDay' class='item-content {{selectCSS}}' data-day='{{vo.date}}'>                {{vo.date}}            </view></block></block></view></block></view>

+ 1 - 0
components/calendar/calendar.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_2.wxss';

+ 1 - 0
components/common/common.wxml

xqd
@@ -0,0 +1 @@
+<view class='common'><include src='/components/_toast/_toast'></include><include src='./get-coupon'></include><include src='./navbar'></include></view>

+ 1 - 0
components/common/common.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_3.wxss';

+ 1 - 0
components/common/float-icon.wxml

xqd
@@ -0,0 +1 @@
+<view class='float-icon' direction='all'><block wx:if='{{ (store.dial == 1 && store.dial_pic) }}'><view bindtap='to_dial' class='dial' style='background-image:url("{{store.dial_pic}}"); background-size: 100rpx 100rpx;'></view></block><block wx:if='{{store.option.web_service}}'><navigator hoverClass='none' openType='navigate' url='/pages/web/web?url={{store.option.web_service_url}}'><image class='dial' src='{{store.option.web_service}}'></image></navigator></block><block wx:if='{{ ( (store.show_customer_service && store.show_customer_service == 1)  && store.service) }}'><block wx:if='{{__platform == "wx"}}'><button class='float-icon-btn' openType='contact' sessionFrom='{{__user_info.nickname}}|' style='height:100%'><image class='dial' src='{{store.service}}'></image></button></block><block wx:if='{{__platform == "my"}}'><view class='float-icon-btn' style='position: relative'><view style='z-index:2;width: 100%;height: 100%;position: absolute;left: 0;top:0;opacity: 0'><contact-button scene='{{__alipay_mp_config.cs_scene}}' tntInstId='{{__alipay_mp_config.cs_tnt_inst_id}}'></contact-button></view><image class='dial' src='{{store.service}}' style='z-index:1'></image></view></block></block><block wx:if='{{store.option.wxapp.pic_url}}'><block wx:if='{{__platform == "wx"}}'><navigator appId='{{store.option.wxapp.appid}}' data-open_type='wxapp' hoverClass='none' openType='navigate' path='{{store.option.wxapp.path}}' target='miniProgram'><image class='dial' src='{{store.option.wxapp.pic_url}}'></image></navigator></block><block wx:if='{{__platform == "my"}}'><view bindtap='openWxapp' data-app-id='{{store.option.wxapp.appid}}' data-path='{{store.option.wxapp.path}}'><image class='dial' src='{{store.option.wxapp.pic_url}}'></image></view></block></block></view>

+ 0 - 0
components/common/float-icon.wxss


+ 1 - 0
components/common/get-coupon.wxml

xqd
@@ -0,0 +1 @@
+<block wx:if='{{ (get_coupon_list && get_coupon_list.length > 0) }}'><view class='get-coupon flex-y-center flex-x-center'><view class='get-coupon-box' style='overflow: visible'><image class='get-coupon-bg' mode='widthFix' src='{{__wxapp_img.coupon.bg.url}}'></image><view class='flex-x-center mb-20'><image src='{{(get_coupon_list[0].type == 2?"/images/icon-receive-coupon.png":"/images/img-get-coupon-title.png")}}' style='width: 226rpx;height: 51rpx'></image></view><scroll-view class='coupon-list' scrollY='true'><block wx:for='{{get_coupon_list}}' wx:for-item='item' wx:for-index='index' wx:key='{{index}}'><view class='coupon-item flex-y-center'><image mode='widthFix' src='{{__wxapp_img.coupon.item_bg.url}}' style='width: 100%;height: 100%'></image><view style='width: 100%'><view class='flex-row flex-y-center'><view class='flex-grow-1 flex-row flex-y-bottom'><view style='line-height: 1'>¥</view><view style='font-size: 23pt;line-height: .85'>{{item.sub_price}}</view></view><view class='flex-grow-0' style='font-size: 9pt;line-height: 32rpx;'>                                满{{item.min_price}}元可用                            </view></view><view bindtap='hideGetCoupon' class='use-now' data-url='{{item.url}}'>立即使用</view><view style='font-size: 9pt'>{{item.desc}}</view></view></view></block></scroll-view><view class='flex-x-center'><image bindtap='closeCouponBox' src='{{__wxapp_img.store.close3.url}}' style='width:100rpx;height:100rpx;'></image></view></view></view></block>

+ 0 - 0
components/common/get-coupon.wxss


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/common/index.wxml


+ 1 - 0
components/common/index.wxss

xqd
@@ -0,0 +1 @@
+.index-test { width: 100%; }

+ 46 - 0
components/common/navbar.wxml

xqd
@@ -0,0 +1,46 @@
+<block wx:if='{{ ( (_navbar && _navbar.navs)  && _navbar.navs.length > 0) }}'>
+	<view class='navbar flex-row {{__device}}' style='background:{{_navigation_bar_color.bottomBackgroundColor}}'>
+		<block wx:for='{{_navbar.navs}}' wx:for-item='item' wx:for-index='index' wx:key='{{item.id}}'>
+			<block wx:if='{{item.open_type == "wxapp"}}'>
+				<navigator appId='{{item.params.appid}}' class='flex-grow-1 flex-y-center' data-open_type='{{item.open_type}}' openType='navigate' path='{{item.params.path}}' target='miniProgram' url='{{item.url}}'>
+					<view>
+						<image class='navbar-icon' src='{{(item.active?item.active_icon:item.icon)}}'></image>
+						<view class='navbar-text' style='color: {{(item.active?item.active_color:item.color)}};'>{{item.text}} </view>
+					</view>
+				</navigator>
+			</block>
+			<block wx:elif='{{item.open_type == "tel"}}'>
+				<navigator bindtap='navigatorClick' class='flex-grow-1 flex-y-center' data-open_type='{{item.open_type}}' data-tel='{{item.params.tel}}' openType='tel' url='{{item.url}}'>
+					<view>
+						<image class='navbar-icon' src='{{(item.active?item.active_icon:item.icon)}}'></image>
+						<view class='navbar-text' style='color: {{(item.active?item.active_color:item.color)}};'>{{item.text}} </view>
+					</view>
+				</navigator>
+			</block>
+			<block wx:elif='{{item.open_type == "contact"}}'>
+				<view class='flex-grow-1 flex-y-center' style='width:1%;padding-top:8rpx;'>
+					<view style='width:100%;'><button openType='contact' sessionFrom='{{_user_info.nickname}}|'>
+							<image class='navbar-icon' src='{{(item.active?item.active_icon:item.icon)}}'></image>
+							<view class='navbar-text' style='color: {{(item.active?item.active_color:item.color)}};'>{{item.text}} </view>
+						</button></view>
+				</view>
+			</block>
+			<block wx:elif='{{item.open_type == "web"}}'>
+				<navigator class='flex-grow-1 flex-y-center' openType='navigate' url='/pages/web/web?url={{item.params.web}}'>
+					<view>
+						<image class='navbar-icon' src='{{(item.active?item.active_icon:item.icon)}}'></image>
+						<view class='navbar-text' style='color: {{(item.active?item.active_color:item.color)}};'>{{item.text}} </view>
+					</view>
+				</navigator>
+			</block>
+			<block wx:else>
+				<navigator class='flex-grow-1 flex-y-center' data-open_type='{{item.open_type}}' openType='redirect' url='{{item.new_url}}'>
+					<view>
+						<image class='navbar-icon' src='{{(item.active?item.active_icon:item.icon)}}'></image>
+						<view class='navbar-text' style='color: {{(item.active?item.active_color:item.color)}};'>{{item.text}} </view>
+					</view>
+				</navigator>
+			</block>
+		</block>
+	</view>
+</block>

+ 0 - 0
components/common/navbar.wxss


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/copyright/copyright.wxml


+ 0 - 0
components/copyright/copyright.wxss


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/diy/diy.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/diy/diy.wxml


+ 1 - 0
components/diy/diy.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_4.wxss';

+ 1 - 0
components/float-icon/float-icon.wxml

xqd
@@ -0,0 +1 @@
+<view class='float-icon' direction='all'><block wx:if='{{ (store.dial == 1 && store.dial_pic) }}'><view bindtap='to_dial' class='dial' style='background-image:url("{{store.dial_pic}}"); background-size: 100rpx 100rpx;'></view></block><block wx:if='{{store.option.web_service}}'><navigator hoverClass='none' openType='navigate' url='/pages/web/web?url={{store.option.web_service_url}}'><image class='dial' src='{{store.option.web_service}}'></image></navigator></block><block wx:if='{{ ( (store.show_customer_service && store.show_customer_service == 1)  && store.service) }}'><block wx:if='{{__platform == "wx"}}'><button class='float-icon-btn' openType='contact' sessionFrom='{{__user_info.nickname}}|' style='height:100%'><image class='dial' src='{{store.service}}'></image></button></block><block wx:if='{{__platform == "my"}}'><view class='float-icon-btn' style='position: relative'><view style='z-index:2;width: 100%;height: 100%;position: absolute;left: 0;top:0;opacity: 0'><contact-button scene='{{__alipay_mp_config.cs_scene}}' tntInstId='{{__alipay_mp_config.cs_tnt_inst_id}}'></contact-button></view><image class='dial' src='{{store.service}}' style='z-index:1'></image></view></block></block><block wx:if='{{store.option.wxapp.pic_url}}'><block wx:if='{{__platform == "wx"}}'><navigator appId='{{store.option.wxapp.appid}}' data-open_type='wxapp' hoverClass='none' openType='navigate' path='{{store.option.wxapp.path}}' target='miniProgram'><image class='dial' src='{{store.option.wxapp.pic_url}}'></image></navigator></block><block wx:if='{{__platform == "my"}}'><view bindtap='openWxapp' data-app-id='{{store.option.wxapp.appid}}' data-path='{{store.option.wxapp.path}}'><image class='dial' src='{{store.option.wxapp.pic_url}}'></image></view></block></block></view>

+ 0 - 0
components/float-icon/float-icon.wxss


+ 1 - 0
components/footer/footer.wxml

xqd
@@ -0,0 +1 @@
+<view class='footer'></view>

+ 1 - 0
components/footer/footer.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_5.wxss';

+ 1 - 0
components/get-card/get-card.wxml

xqd
@@ -0,0 +1 @@
+<block wx:if='{{show_card}}'><view class='get-card flex-x-center flex-y-center'><view class='card-block'><image src='{{__wxapp_img.card.top.url}}' style='width:630rpx;height:330rpx;'></image><view bindtap='cardDel' class='card-del flex-x-center flex-y-center'><image src='{{__wxapp_img.card.del.url}}'></image></view><view class='flex-x-center'><view class='card-info'><view class='flex-x-center card-get'>获得{{goods_card_list.length}}张卡券</view><block wx:for='{{goods_card_list}}' wx:for-item='item' wx:for-index='index' wx:key='{{item.id}}'><block wx:if='{{index < 1}}'><view class='flex-x-center card-one'><view class='card-bg'><view class='card-bg-1 flex-row'><view class='flex-grow-0 flex-y-center'><image src='{{item.pic_url}}' style='width:70rpx;height:70rpx;margin-right:32rpx;'></image></view><view class='flex-grow-1 flex-y-center'><view class='text-more-2'>{{item.content}}</view></view></view></view></view></block></block><view class='card-text flex-x-center'>卡券将5分钟内放入您的卡包</view><view bindtap='cardTo' class='flex-x-center card-btn'><image src='{{__wxapp_img.card.btn.url}}'></image></view></view></view></view></view></block>

+ 1 - 0
components/get-card/get-card.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_6.wxss';

+ 1 - 0
components/get-coupon/get-coupon.wxml

xqd
@@ -0,0 +1 @@
+<block wx:if='{{ (get_coupon_list && get_coupon_list.length > 0) }}'><view class='get-coupon flex-y-center flex-x-center'><view class='get-coupon-box' style='overflow: visible'><image class='get-coupon-bg' mode='widthFix' src='{{__wxapp_img.coupon.bg.url}}'></image><view class='flex-x-center mb-20'><image src='{{(get_coupon_list[0].type == 2?"/images/icon-receive-coupon.png":"/images/img-get-coupon-title.png")}}' style='width: 226rpx;height: 51rpx'></image></view><scroll-view class='coupon-list' scrollY='true'><block wx:for='{{get_coupon_list}}' wx:for-item='item' wx:for-index='index' wx:key='{{index}}'><view class='coupon-item flex-y-center'><image mode='widthFix' src='{{__wxapp_img.coupon.item_bg.url}}' style='width: 100%;height: 100%'></image><view style='width: 100%'><view class='flex-row flex-y-center'><view class='flex-grow-1 flex-row flex-y-bottom'><view style='line-height: 1'>¥</view><view style='font-size: 23pt;line-height: .85'>{{item.sub_price}}</view></view><view class='flex-grow-0' style='font-size: 9pt;line-height: 32rpx;'>                                满{{item.min_price}}元可用                            </view></view><view bindtap='hideGetCoupon' class='use-now' data-url='{{item.url}}'>立即使用</view><view style='font-size: 9pt'>{{item.desc}}</view></view></view></block></scroll-view><view class='flex-x-center'><image bindtap='closeCouponBox' src='{{__wxapp_img.store.close3.url}}' style='width:100rpx;height:100rpx;'></image></view></view></view></block>

+ 0 - 0
components/get-coupon/get-coupon.wxss


+ 1 - 0
components/goods-header/goods-header.wxml

xqd
@@ -0,0 +1 @@
+<block wx:if='{{goods.content}}'><view><view bindtap='contentOpen' class='goods-block'><view class='goods-info flex-row flex-y-center'><image class='flex-grow-0' src='{{__wxapp_img.goods.goods.address.url}}' style='width:96rpx;height:32rpx;margin-right:16rpx;'></image><view class='flex-grow-1'><view><view class='text-more'>{{goods.content}}</view></view></view><image class='flex-grow-0 goods-img' src='{{__wxapp_img.shop.down.url}}'></image></view></view><block wx:if='{{show_content}}'><view class='content-modal flex-row flex-x-center flex-y-center'><view><view class='content-body'><view class='flex-x-center' style='font-size:13pt;margin-top:20rpx;'>限区域购买</view><view bindtap='contentClose' class='content-img'><image src='{{__wxapp_img.store.close.url}}' style='width:32rpx;height:32rpx;'></image></view><view style='margin-top:40rpx;max-height:600rpx;overflow-y:auto;'>{{goods.content}}</view></view></view></view></block></view></block>

+ 6 - 0
components/goods-header/goods-header.wxss

xqd
@@ -0,0 +1,6 @@
+.goods-block { width: 100%; height: 72rpx; background-color: #fff1f1; padding: 0 24rpx; }
+.goods-info { color: #3f3f3f; height: 100%; }
+.goods-info .goods-img { width: 18rpx; height: 18rpx; transform:rotate(-90deg); }
+.content-modal { position: fixed; left: 0; top: 0; background-color: rgba(0, 0, 0, 0.5); width: 100%; height: 100%; z-index: 111; }
+.content-body { width: 600rpx; background-color: #fff; border-radius: 8rpx; padding: 28rpx 32rpx 88rpx 32rpx; position: relative; }
+.content-img { position: absolute; right: 32rpx; top: 28rpx; }

+ 50 - 0
components/goods/goods_banner.js

xqd
@@ -0,0 +1,50 @@
+module.exports = {
+    currentPage: null,
+    init: function (e) {
+        var t = this;
+        void 0 === (t.currentPage = e).onGoodsImageClick && (e.onGoodsImageClick = function (e) {
+            t.onGoodsImageClick(e)
+        }), void 0 === e.hide && (e.hide = function (e) {
+            t.hide(e)
+        }), void 0 === e.play && (e.play = function (e) {
+            t.play(e)
+        }), void 0 === e.close && (e.close = function (e) {
+            t.close(e)
+        })
+    },
+    onGoodsImageClick: function (e) {
+        var t = this.currentPage,
+            i = [],
+            o = e.currentTarget.dataset.index;
+        for (var a in t.data.goods.pic_list) i.push(t.data.goods.pic_list[a]);
+        getApp().core.previewImage({
+            urls: i,
+            current: i[o]
+        })
+    },
+    hide: function (e) {
+        var t = this.currentPage;
+        0 == e.detail.current ? t.setData({
+            img_hide: ""
+        }) : t.setData({
+            img_hide: "hide"
+        })
+    },
+    play: function (e) {
+        var t = this.currentPage,
+            i = e.target.dataset.url;
+        t.setData({
+            url: i,
+            hide: "",
+            show: !0
+        }), getApp().core.createVideoContext("video").play()
+    },
+    close: function (e) {
+        var t = this.currentPage;
+        if ("video" == e.target.id) return !0;
+        t.setData({
+            hide: "hide",
+            show: !1
+        }), getApp().core.createVideoContext("video").pause()
+    }
+};

+ 16 - 0
components/goods/goods_banner.wxml

xqd
@@ -0,0 +1,16 @@
+<swiper autoplay='{{autoplay}}' bindchange='hide' circular='true' class='goods-image-swiper' duration='300' indicatorActiveColor='#ff5c5c' indicatorDots='true' interval='5000'>
+	<block wx:for='{{goods.pic_list}}' wx:for-item='item' wx:for-index='index' wx:key='{{item.id}}'>
+		<swiper-item>
+			<image bindtap='onGoodsImageClick' class='goods-image' data-index='{{index}}' src='{{item}}'></image>
+			<block wx:if='{{goods.video_url}}'>
+				<image bindtap='play' class='play {{img_hide}}' data-url='{{goods.video_url}}' src='{{__wxapp_img.store.video_play.url}}'></image>
+			</block>
+			<block wx:if='{{ ( ( ( (__user_info.is_distributor == 1 && __is_share_price)  && goods.max_share_price > 0)  && goods.is_negotiable != 1)  && goods.is_share) }}'>
+				<view class='flex-row flex-y-center share_commission'>
+					<image class='img' src='{{__wxapp_img.store.share_commission.url}}'></image>
+					<view class='flex-col text_box'><text class='text1'>分销最高可赚</text><text class='text2'>¥{{goods.max_share_price}}</text></view>
+				</view>
+			</block>
+		</swiper-item>
+	</block>
+</swiper>

+ 1 - 0
components/goods/goods_banner.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_7.wxss';

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/goods/goods_buy.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/goods/goods_buy.wxml


+ 1 - 0
components/goods/goods_buy.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_8.wxss';

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/goods/goods_info.js


+ 215 - 0
components/goods/goods_info.wxml

xqd
@@ -0,0 +1,215 @@
+<view class='goods_info_box'>
+	<view class='goods_name'>{{goods.name}}</view>
+	<block wx:if='{{quick == 1}}'>
+		<view class='quick_goods_info'>
+			<view class='view1'>
+				<block wx:if='{{ ( ( (__is_member_price && goods.min_member_price > 0)  && goods.is_negotiable != 1)  && __user_info.level > - 1) }}'>
+					<view class='flex-grow-0 flex-y-center'><text class='renminbi is_member'>¥</text><text class='goods_price is_member'>{{goods.min_member_price}}</text>
+						<block wx:if='{{goods.is_level === true}}'>
+							<image class='img' src='{{__wxapp_img.store.member_price.url}}'></image>
+						</block>
+					</view>
+				</block>
+				<block wx:else>
+					<view class='flex-grow-0 flex-y-center'><text class='renminbi {{( (__user_info.level != - 1 || goods.is_level === false) ?"is_member":"")}}'>¥</text><text class='goods_price {{( (__user_info.level != - 1 || goods.is_level === false) ?"is_member":"")}}'>{{(goods.min_price > 0?goods.min_price:goods.price)}}</text></view>
+				</block>
+				<view class='flex-row flex-y-center' style='margin-top:14rpx;'>
+					<view class='flex-grow-0 view2'>
+						<block wx:if='{{ ( (__user_info.level > - 1 || !(goods.min_member_price))  || goods.is_level === false) }}'><text class='original_price'>¥{{goods.original_price}}</text></block>
+						<block wx:else>
+							<view class='member_price_box'>
+								<block wx:if='{{__is_member_price === 1}}'><text class='member_price_title'>会员价</text><text>¥{{(goods.min_member_price > 0?goods.min_member_price:goods.price)}}</text></block>
+								<block wx:else><text class='original_price'>¥{{goods.original_price}}</text></block>
+							</view>
+						</block>
+					</view>
+					<block wx:if='{{__is_sales}}'>
+						<view class='flex-grow-0 view3'><text class='sales_title'>销量:</text><text class='sales'>{{goods.sales}} {{goods.unit}}</text></view>
+					</block>
+				</view>
+			</view>
+			<block wx:if='{{goods.use_attr == 1}}'>
+				<view bindtap='showDialogBtn' class='add xuanguige ' data-id='{{goods.id}}'> 选规格 <block wx:if='{{goods_num > 0}}'>
+						<view class='guigenum'>{{goods_num}}</view>
+					</block>
+				</view>
+			</block>
+			<block wx:if='{{goods.use_attr == 0}}'>
+				<block wx:if='{{goods_num > 0}}'>
+					<view class='btn_car_num'>
+						<image bindtap='jian' class='carStandard' data-id='{{goods.id}}' src='{{__wxapp_img.store.jian.url}}'></image><input bindinput='goodNumChange' class='carStandard good_num' data-id='{{goods.id}}' id='num' maxlength='999' type='number' value='{{goods_num}}'></input>
+						<image bindtap='jia' class='carStandard' data-id='{{goods.id}}' src='{{__wxapp_img.store.jia.url}}'></image>
+					</view>
+				</block>
+				<block wx:else>
+					<view bindtap='jia' class='add add_cart' data-id='{{goods.id}}'>加入购物车</view>
+				</block>
+			</block>
+		</view>
+	</block>
+	<block wx:else>
+		<view class='flex-row flex-y-center store_goods_info'>
+			<view class='flex-grow-1 flex-col'>
+				<block wx:if='{{ ( ( (__is_member_price && goods.min_member_price > 0)  && goods.is_negotiable != 1)  && __user_info.level > - 1) }}'>
+					<view class='flex-grow-0 flex-y-center view1'>
+						<block wx:if='{{pageType === "INTEGRAL"}}'><text style='font-size:16pt;color:red;'>{{goods.integral}}积分 + </text></block>
+						<block wx:if='{{!(goods.is_negotiable)}}'><text class='renminbi is_member'>¥</text></block>
+						<block wx:if='{{goods.mch}}'><text class='min_price is_member'>{{goods.min_price}}</text></block>
+						<block wx:else><text class='min_price is_member'>{{goods.min_member_price}}</text>
+							<block wx:if='{{goods.is_level === true}}'>
+								<image class='img' src='{{__wxapp_img.store.member_price.url}}'></image>
+							</block>
+						</block>
+					</view>
+				</block>
+				<block wx:else>
+					<view class='flex-grow-0 flex-y-center view1'>
+						<block wx:if='{{pageType === "INTEGRAL"}}'><text style='font-size:16pt;color:red;'>{{goods.integral}}积分 + </text></block>
+						<block wx:if='{{pageType === "STEP"}}'>
+							<image class='step-icon' src='../../images/detail-price.png'></image><text class='{{( (__user_info.level != - 1 || goods.is_level === false) ?"is_member":"")}}' style='font-size:16pt;color:#ff9d1e;font-family:DIN'>{{goods.price}}</text><text style='font-size:11pt;color:#666666;margin-left:24rpx'>原价:</text><text style='font-size:11pt;color:#666666;text-decoration:line-through'>{{goods.original_price}}</text>
+						</block>
+						<block wx:if='{{ (!(goods.is_negotiable) && pageType !== "STEP") }}'><text class='renminbi {{( (__user_info.level != - 1 || goods.is_level === false) ?"is_member":"")}}'>¥</text><text class='min_price {{( (__user_info.level != - 1 || goods.is_level === false) ?"is_member":"")}}'>{{(goods.min_price > 0?goods.min_price:goods.price)}}</text></block>
+						<block wx:else><text class='min_price'>{{goods.min_price}}</text></block>
+					</view>
+				</block>
+				<block wx:if='{{pageType !== "PINTUAN"}}'>
+					<view class='flex-row flex-y-center' style='margin-top:14rpx;'>
+						<block wx:if='{{ (!(goods.is_negotiable) && pageType !== "STEP") }}'>
+							<view class='flex-grow-0 view2'>
+								<block wx:if='{{ ( (__user_info.level > - 1 || !(goods.min_member_price))  || goods.is_level === false) }}'><text class='original_price'>¥{{goods.original_price}}</text></block>
+								<block wx:else>
+									<view class='member_price_box'>
+										<block wx:if='{{goods.mch}}'><text>¥{{goods.price}}</text></block>
+										<block wx:else>
+											<block wx:if='{{__is_member_price === 1}}'><text class='member_price_title'>会员价</text><text>¥{{(goods.min_member_price > 0?goods.min_member_price:goods.price)}}</text></block>
+											<block wx:else><text class='original_price'>¥{{goods.original_price}}</text></block>
+										</block>
+									</view>
+								</block>
+							</view>
+						</block>
+						<block wx:if='{{ ( ( (__is_sales && pageType !== "INTEGRAL")  && goods.is_negotiable != 1)  && pageType !== "STEP") }}'>
+							<view class='flex-grow-0 view2'>
+								<block wx:if='{{pageType === "MIAOSHA"}}'><text class='sales'>已抢:</text></block>
+								<block wx:else><text class='sales'>销量:</text></block><text class='sales'>{{goods.sales}} {{goods.unit}}</text>
+							</view>
+						</block>
+					</view>
+				</block>
+				<block wx:if='{{pageType === "PINTUAN"}}'>
+					<view class='flex-row flex-y-center' style='margin-top:14rpx;height:60rpx;'>
+						<view class='flex-grow-0 flex-row original-price'>
+							<block wx:if='{{ ( (__user_info.level > - 1 || !(goods.min_member_price))  || goods.is_level === false) }}'>
+								<view class='flex-grow-0' style='text-decoration: line-through;'>¥ {{goods.original_price}}</view>
+							</block>
+							<block wx:else>
+								<view class='member_price_box'>
+									<block wx:if='{{__is_member_price === 1}}'><text class='member_price_title'>会员价</text><text>¥{{(goods.min_member_price > 0?goods.min_member_price:goods.price)}}</text></block>
+									<block wx:else><text class='original_price'>¥{{goods.original_price}}</text></block>
+								</view>
+							</block>
+						</view>
+						<view class='flex-row flex-grow-0 group-descount' style='margin-left:16rpx'>
+							<view class='flex-grow-0 group-descount-one'> {{goods.group_num}}人拼团 </view>
+							<view class='flex-grow-0 group-descount-center'></view>
+							<view class='flex-grow-0 group-descount-tow'> 拼团立省¥{{reduce_price}} </view>
+						</view>
+					</view>
+				</block>
+			</view>
+			<block wx:if='{{ (pageType !== "INTEGRAL" && pageType !== "STEP") }}'>
+				<view class='flex-grow-0'><button bindtap='showShareModal' class='share_btn' plain='true'>
+						<image class='img' src='{{__wxapp_img.share.share.url}}'></image>
+						<view class='share'>分享</view>
+					</button></view>
+			</block>
+		</view>
+	</block>
+</view>
+<block wx:if='{{ (goods.service_list && goods.service_list.length > 0) }}'>
+	<view class='bg-white mb-20 flex-row check-list'>
+		<block wx:for='{{goods.service_list}}' wx:for-item='item' wx:for-index='index' wx:key='{{item.id}}'>
+			<view class='check-item flex-y-center flex-row'>
+				<image class='flex-grow-0' src='{{__wxapp_img.store.check.url}}'></image><text class='flex-grow-1'>{{item}}</text>
+			</view>
+		</block>
+	</view>
+</block>
+<block wx:else>
+	<view class='mb-20'></view>
+</block>
+<block wx:if='{{ ( (quick != 1 && !(goods.is_negotiable))  && __user_info.blacklist !== 1) }}'>
+	<view bindtap='showAttrPicker' class='flex-row flex-y-center select_attrs'>
+		<view class='flex-grow-1 flex-row flex-y-center'>
+      <text>选择</text><text class='attrs'>规格</text>
+    </view>
+		<view class='flex-grow-0'>
+			<image class='img' src='{{__wxapp_img.store.jiantou_r.url}}'></image>
+		</view>
+	</view>
+</block>
+<block wx:if='{{goods.mch}}'>
+	<view class='flex flex-row mch_shop'>
+		<view class='flex-grow-0 img_box'>
+			<image class='logo' src='{{goods.mch.logo}}'></image>
+		</view>
+		<view class='flex-grow-1'>
+			<view class='name'>{{goods.mch.name}}</view>
+			<view class='shop_info'><text class='goods_num'>商品数量:{{goods.mch.goods_num}}</text>
+				<block wx:if='{{__is_sales}}'><text>已售:{{goods.mch.sale_num}}</text></block>
+			</view>
+		</view>
+		<view class='flex-grow-0 flex-y-center'>
+			<navigator class='enter_shop' openType='redirect' url='/mch/shop/shop?mch_id={{goods.mch.id}}'>进店逛逛</navigator>
+		</view>
+	</view>
+</block>
+<view class='share-modal {{share_modal_active}}'>
+	<view class='share-modal-body'>
+		<view class='flex-row'>
+			<view class='flex-grow-1 flex-x-center'><button class='share-bottom' openType='share' style='height:100%;'>
+					<image src='{{__wxapp_img.share.friend.url}}'></image>
+					<view>分享给朋友</view>
+				</button></view>
+			<view class='flex-grow-1 flex-x-center'>
+				<view bindtap='getGoodsQrcode' class='share-bottom'>
+					<image src='{{__wxapp_img.share.qrcode.url}}'></image>
+					<view>生成商品海报</view>
+				</view>
+			</view>
+		</view>
+		<view bindtap='shareModalClose' class='share-modal-close flex-y-center flex-x-center'>关闭</view>
+	</view>
+</view>
+<view bindtap='close' class='modal flex-row {{hide}}'>
+	<view class='flex-y-center' style='width:100%;height:100%;position:relative;'>
+		<image src='{{__wxapp_img.store.close2.url}}' style='width:50rpx;height:50rpx;position:absolute;left:24rpx;top:24rpx'></image><video autoplay='true' direction='' id='video' src='{{url}}' style='height:80%'></video>
+	</view>
+</view>
+<view class='goods-qrcode-modal {{goods_qrcode_active}}'>
+	<view class='goods-qrcode-body flex-col'>
+		<view class='flex-grow-1' style='position: relative'>
+			<view style='position: absolute;left: 0;top:0;width: 100%;height: 100%;padding: 100rpx 100rpx 60rpx'>
+				<view class='goods-qrcode-box'>
+					<view class='goods-qrcode-loading flex-x-center flex-y-center'>
+						<view class='flex-x-center flex-col'>
+							<image src='{{__wxapp_img.system.loading2.url}}' style='width: 150rpx;height: 150rpx'></image>
+							<view style='color: #888'>海报生成中</view>
+						</view>
+					</view>
+					<image bindtap='goodsQrcodeClick' class='goods-qrcode {{(goods_qrcode?"active":"")}}' data-src='{{goods_qrcode}}' mode='aspectFit' src='{{goods_qrcode}}'></image>
+				</view>
+			</view>
+		</view>
+		<view class='flex-grow-0 flex-col flex-x-center' style='padding: 0 60rpx 80rpx'>
+			<view style='margin-bottom: 20rpx;padding: 0 40rpx'>
+				<block wx:if='{{goods_qrcode}}'><button bindtap='saveGoodsQrcode' style='background: #ff4544;color: #fff;'> 保存图片 </button></block>
+				<block wx:else><button style='opacity: .4'>保存图片</button></block>
+			</view>
+			<view style='color: #888;font-size: 9pt;text-align: center'>保存至相册</view>
+		</view>
+		<view bindtap='goodsQrcodeClose' class='goods-qrcode-close'>
+			<image src='{{__wxapp_img.store.close2.url}}' style='width: 50rpx;height: 50rpx;display: block'></image>
+		</view>
+	</view>
+</view>

+ 1 - 0
components/goods/goods_info.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_9.wxss';

+ 1 - 0
components/goods/goods_recommend.js

xqd
@@ -0,0 +1 @@
+module.exports={currentPage:null,init:function(o){var t=this;void 0===(t.currentPage=o).goods_recommend&&(o.goods_recommend=function(o){t.goods_recommend(o)})},goods_recommend:function(a){var e=this.currentPage;e.setData({is_loading:!0});var d=e.data.page||2;getApp().request({url:getApp().api.default.goods_recommend,data:{goods_id:a.goods_id,page:d},success:function(o){if(0==o.code){if(a.reload)var t=o.data.list;if(a.loadmore)t=e.data.goods_list.concat(o.data.list);e.data.drop=!0,e.setData({goods_list:t}),e.setData({page:d+1})}},complete:function(){e.setData({is_loading:!1})}})}};

+ 1 - 0
components/goods/goods_recommend.wxml

xqd
@@ -0,0 +1 @@
+<block wx:if='{{ ( (goods_list != undefault && goods_list != "")  && tab_detail == "active") }}'><view style='background:#f7f7f7;padding-top:35rpx'><view class='recommend'><view class='recommend-left'></view><image src='{{__wxapp_img.store.good_recommend.url}}'></image><text class='recommend-text'>相关推荐</text><view class='recommend-right'></view></view><view style='padding-top:32rpx'><view class='goods-list'><block wx:for='{{goods_list}}' wx:for-item='item' wx:for-index='index' wx:key='{{item.id}}'><navigator class='goods-item {{(index % 2?"pic-right":"pic-left")}}' openType='navigate' style='font-size:11pt;' url='/pages/goods/goods?id={{item.id}}'><image class='goods-pic' mode='aspectFill' src='{{item.pic_url}}'></image><view class='goods-info' style='padding:5rpx 20rpx;'><text class='mb-10 text-more-2' style='height:2.8em;line-height:1.4;'>{{item.name}}</text><view class='flex-row'><view class='flex-grow-1' style='color:#ff334b'>¥{{item.price}}</view><block wx:if='{{__is_sales}}'><view class='flex-grow-0 fs-sm' style='color:#999;'>已售{{item.sales}}</view></block></view></view></navigator></block></view><view class='loading-more {{(is_loading?"active":"")}}'><image src='{{__wxapp_img.system.loading.url}}'></image></view></view></view></block>

+ 1 - 0
components/goods/goods_recommend.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_10.wxss';

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/goods/goods_refund.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/goods/goods_refund.wxml


+ 1 - 0
components/goods/goods_refund.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_11.wxss';

+ 1 - 0
components/goods/goods_send.js

xqd
@@ -0,0 +1 @@
+module.exports={currentPage:null,init:function(e){var r=this;void 0===(r.currentPage=e).viewImage&&(e.viewImage=function(e){r.viewImage(e)}),void 0===e.copyinfo&&(e.copyinfo=function(e){r.copyinfo(e)}),void 0===e.bindExpressPickerChange&&(e.bindExpressPickerChange=function(e){r.bindExpressPickerChange(e)}),void 0===e.sendFormSubmit&&(e.sendFormSubmit=function(e){r.sendFormSubmit(e)})},viewImage:function(e){var r=this.currentPage,t=e.currentTarget.dataset.index;getApp().core.previewImage({current:r.data.order_refund.refund_pic_list[t],urls:r.data.order_refund.refund_pic_list})},copyinfo:function(e){this.currentPage;getApp().core.setClipboardData({data:e.target.dataset.info,success:function(e){getApp().core.showToast({title:"复制成功!",icon:"success",duration:2e3,mask:!0})}})},bindExpressPickerChange:function(e){this.currentPage.setData({express_index:e.detail.value})},sendFormSubmit:function(e){var r=this.currentPage,t=e.detail.formId,i=r.data.order_refund,d=r.data.express_index,n=e.detail.value.express_no,o=r.data.pageType;getApp().core.showLoading({title:"正在提交",mask:!0});var a="";if("STORE"===o)a="/pages/order-refund-detail/order-refund-detail?id="+i.order_refund_id;else if("MIAOSHA"===o)a="/pages/miaosha/order-refund-detail/order-refund-detail?id="+i.order_refund_id;else{if("PINTUAN"!==o)return void getApp().core.showModal({title:"提示",content:"pageType变量未定义或变量值不是预期的"});a="/pages/pt/order-refund-detail/order-refund-detail?id="+i.order_refund_id}getApp().request({url:getApp().api.order.refund_send,method:"POST",data:{order_refund_id:i.order_refund_id,express:null!==d?i.express_list[d].name:"",express_no:n,form_id:t,orderType:o},success:function(r){getApp().core.showModal({title:"提示",content:r.msg,showCancel:!1,success:function(e){0==r.code&&getApp().core.redirectTo({url:a})}})},complete:function(){getApp().core.hideLoading()}})}};

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/goods/goods_send.wxml


+ 1 - 0
components/goods/goods_send.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_12.wxss';

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/goods/specifications_model.js


+ 91 - 0
components/goods/specifications_model.wxml

xqd
@@ -0,0 +1,91 @@
+<block wx:if='{{show_attr_picker}}'>
+	<view class='attr-picker'>
+		<view class='content-box'>
+			<view class='flex-row' style='border-bottom: 1rpx solid #e3e3e3;padding: 24rpx 28rpx'>
+				<view class='flex-grow-0'>
+					<view class='goods-pic-box'>
+						<block wx:if='{{goods.attr_pic}}'>
+							<image bindtap='previewImage' data-url='{{goods.attr_pic}}' mode='aspectFill' src='{{goods.attr_pic}}'></image>
+						</block>
+						<block wx:else>
+							<image bindtap='previewImage' data-url='{{goods.cover_pic}}' mode='aspectFill' src='{{goods.cover_pic}}'></image>
+						</block>
+					</view>
+				</view>
+				<view class='flex-grow-1' style='padding: 0 24rpx'>
+					<block wx:if='{{pageType === "INTEGRAL"}}'>
+						<view style='color:#ff4544;margin-bottom: 12rpx;font-weight: bold'>
+							<block wx:if='{{status == "attr"}}'> {{attr_integral}}积分 <block wx:if='{{attr_price > 0}}'>+¥{{attr_price}}</block>
+							</block>
+							<block wx:else> {{goods.integral}}积分 <block wx:if='{{goods.price > 0}}'>+¥{{goods.price}}</block>
+							</block>
+						</view>
+					</block>
+					<block wx:elif='{{pageType === "STEP"}}'>
+						<view style='color:#ff4544;margin-bottom: 12rpx;font-weight: bold'> {{goods.price}}{{(store.option.step.currency_name?store.option.step.currency_name:"活力币")}} </view>
+						<view style='font-size:9pt'> 库存{{goods.num}} </view>
+					</block>
+					<block wx:else>
+						<block wx:if='{{pageType === "PINTUAN"}}'>
+							<view style='color:#ff4544;margin-bottom: 12rpx;font-weight: bold'> ¥{{(groupNum?goods.group_price:goods.single_price)}}
+								<block wx:if='{{ (goods.is_member_price === true && groupNum === true) }}'><text class='is_member_price'>会员价</text></block>
+							</view>
+						</block>
+						<block wx:else>
+							<view style='color:#ff4544;margin-bottom: 12rpx;font-weight: bold'>¥{{goods.price}}
+								<block wx:if='{{goods.is_member_price === true}}'><text class='is_member_price'>会员价</text></block>
+							</view>
+						</block>
+						<view style='font-size:9pt'> 库存{{goods.num}} </view>
+					</block>
+				</view>
+				<view class='flex-grow-0'>
+					<view bindtap='hideAttrPicker' class='flex-x-center flex-y-center' style='width: 100rpx;height: 100rpx'>
+						<image src='{{__wxapp_img.store.close.url}}' style='width: 30rpx;height: 30rpx'></image>
+					</view>
+				</view>
+			</view>
+			<scroll-view scrollY='true' style='max-height: 650rpx;'>
+				<view style='padding: 24rpx 28rpx'>
+					<view>
+						<block wx:if='{{ (groupNum && !(oid)) }}'>
+							<view class='attr-group'>
+								<view class='attr-group-name'>{{attr_group_num.attr_group_name}}</view>
+								<view class='attr-list'><text bindtap='groupCheck' class='attr-item {{(group_checked?"":"active")}}'>{{goods.group_num}}人团</text>
+									<block wx:for='{{attr_group_num.attr_list}}' wx:for-item='item' wx:for-index='index' wx:key='{{item.id}}'>
+										<block wx:if='{{attr_group_num.attr_list.length > 0}}'><text bindtap='attrNumClick' class='attr-item {{(item.checked?"active":"")}}' data-id='{{item.id}}'>{{item.group_num}}人团 </text></block>
+									</block>
+								</view>
+							</view>
+						</block>
+						<block wx:for='{{attr_group_list}}' wx:for-item='attr_group' wx:for-index='index' wx:key='{{item.id}}'>
+							<block wx:if='{{attr_group.attr_list.length > 0}}'>
+								<view class='attr-group'>
+									<view class='attr-group-name'>{{attr_group.attr_group_name}}</view>
+									<view class='attr-list'>
+										<block wx:for='{{attr_group.attr_list}}' wx:for-item='item' wx:for-index='index' wx:key='{{item.id}}'><text bindtap='storeAttrClick' class='attr-item {{(item.checked?"active":"")}} {{(item.attr_num_0?"attr_num_0":"")}}' data-group-id='{{attr_group.attr_group_id}}' data-id='{{item.attr_id}}'>{{item.attr_name}}</text></block>
+									</view>
+								</view>
+							</block>
+						</block>
+					</view>
+					<view style='height: 0;border-bottom: 1rpx solid #e3e3e3;margin-bottom: 40rpx'></view>
+					<block wx:if='{{ (pageType !== "INTEGRAL" && pageType !== "BOOK") }}'>
+						<view style='padding-bottom: 40rpx'>
+							<view class='flex-row flex-y-center mb-20'>
+								<view class='flex-grow-1'>数量</view>
+								<view class='flex-grow-0'>
+									<view class='flex-row number-input-box'>
+										<view bindtap='numberSub' class='flex-grow-0 flex-x-center flex-y-center number-btn number-sub {{(form.number <= 1?"disabled":"")}}' style='margin-right:0.01rem;'>- </view>
+										<view class='flex-grow-0'><input bindblur='numberBlur' class='flex-grow-1 number-input' min='1' step='1' style='padding:0' type='number' value='{{form.number}}'></input></view>
+										<view bindtap='numberAdd' class='flex-grow-0 flex-x-center flex-y-center number-btn number-add'>+ </view>
+									</view>
+								</view>
+							</view>
+						</view>
+					</block>
+				</view>
+			</scroll-view>
+		</view>
+	</view>
+</block>

+ 1 - 0
components/goods/specifications_model.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_13.wxss';

+ 1 - 0
components/header/header.wxml

xqd
@@ -0,0 +1 @@
+<view class='header'><block wx:if='{{ ( (__platform == "wx" && store.is_official_account == 1)  && __is_offical_account) }}'><view><official-account binderror='relevanceError' bindload='relevanceSuccess'></official-account></view></block></view>

+ 1 - 0
components/header/header.wxss

xqd
@@ -0,0 +1 @@
+@import '/import/css0_14.wxss';

+ 1 - 0
components/list-loading/list-loading.wxml

xqd
@@ -0,0 +1 @@
+<block wx:if='{{no_more}}'><view style='text-align: center;color: #888;font-size: 9pt;height: 74rpx;line-height: 74rpx'>没有记录了~</view></block><block wx:if='{{!(no_more)}}'><view style='text-align: center;padding: 12rpx;visibility:{{(loading?"visibility":"hidden")}}'><image src='{{__wxapp_img.system.loading_black.url}}' style='width: 50rpx;height: 50rpx'></image></view></block>

+ 0 - 0
components/list-loading/list-loading.wxss


+ 1 - 0
components/order/clerk-qrcode/clerk-qrcode.wxml

xqd
@@ -0,0 +1 @@
+<template name='clerk-qrcode'><view bindtap='hide' class='flex-row flex-y-center modal {{(hide == 1?"hide":"")}}'><view class='flex-y-center' style='width:100%;height:800rpx;padding:100rpx;'><view style='background-color:#fff;width:100%;height:100%;border-radius:10rpx;padding:0 50rpx;'><view class='flex-x-center' style='width:100%;height:50rpx;margin-top:50rpx;font-size:13pt;margin-bottom:20rpx'>核销二维码 </view><image src='{{qrcode}}' style='width:450rpx;height:450rpx;'></image></view></view></view></template>

+ 0 - 0
components/order/clerk-qrcode/clerk-qrcode.wxss


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/order/order-submit/form/form.wxml


+ 0 - 0
components/order/order-submit/form/form.wxss


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/quick-navigation-components/index.js


+ 1 - 0
components/quick-navigation-components/index.json

xqd
@@ -0,0 +1 @@
+{"component":true,"usingComponents":{}}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
components/quick-navigation-components/index.wxml


+ 12 - 0
components/quick-navigation-components/index.wxss

xqd
@@ -0,0 +1,12 @@
+.quick-modal { position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 9999; transition: 200ms; }
+.quick-modal.show { visibility: visible; opacity: 1; }
+.quick-modal .quick-modal-bg { background: rgba(0, 0, 0, 0.3); position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 1; }
+.quick-modal .quick-modal-pic { background: rgba(0, 0, 0, 0.25); position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 1; }
+.quick-modal .quick-modal-close wx-image { width: 50rpx; height: 50rpx; margin-top: 50rpx; }
+.quick-text { color:#ffffff; font-size:9pt; }
+.quick-bg { background-color:rgba(0,0,0,0.7); border-radius: 50%; height:80rpx; width:80rpx; }
+.quick-zfb { display:inline; opacity:0; position:absolute; bottom:0; }
+.quick-icon { position:fixed; z-index:99; right:50rpx; bottom:140rpx; }
+.quick-dial { width:80rpx; height:80rpx; border-radius:50%; display:block; }
+.float-icon{ bottom: 170rpx !important; }
+.quick-head > .device_iphone_x { padding-bottom: 65rpx; }

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است