Mike %!s(int64=5) %!d(string=hai) anos
pai
achega
2b3cbc9dcb
Modificáronse 100 ficheiros con 9 adicións e 16519 borrados
  1. 9 1101
      pages.json
  2. 0 113
      plugins/advance/components/detail-ad.vue
  3. 0 237
      plugins/advance/components/detail-attr.vue
  4. 0 302
      plugins/advance/components/detail-bottom-button.vue
  5. 0 245
      plugins/advance/components/detail-discount.vue
  6. 0 377
      plugins/advance/components/detail-price-share.vue
  7. 0 106
      plugins/advance/components/detail-vip.vue
  8. 0 233
      plugins/advance/components/index-product-list.vue
  9. 0 44
      plugins/advance/components/index-swipe.vue
  10. 0 97
      plugins/advance/components/search-input.vue
  11. 0 48
      plugins/advance/components/svip-price.vue
  12. 0 453
      plugins/advance/detail/detail.vue
  13. BIN=BIN
      plugins/advance/image/S-VIP-BG.png
  14. BIN=BIN
      plugins/advance/image/S-VIP.png
  15. BIN=BIN
      plugins/advance/image/delete.png
  16. BIN=BIN
      plugins/advance/image/open.png
  17. BIN=BIN
      plugins/advance/image/order.png
  18. BIN=BIN
      plugins/advance/image/pre-sale-logo.png
  19. BIN=BIN
      plugins/advance/image/product.png
  20. BIN=BIN
      plugins/advance/image/v-logo.png
  21. 0 139
      plugins/advance/index/index.vue
  22. 0 17
      plugins/advance/order-detail/order-detail.vue
  23. 0 820
      plugins/advance/order/order.vue
  24. 0 236
      plugins/advance/search/search.vue
  25. 0 1017
      plugins/bargain/activity/activity.vue
  26. 0 117
      plugins/bargain/common-buttom.vue
  27. 0 782
      plugins/bargain/goods/goods.vue
  28. BIN=BIN
      plugins/bargain/image/bargain-buy.png
  29. BIN=BIN
      plugins/bargain/image/bargain-click.png
  30. BIN=BIN
      plugins/bargain/image/bargain-flow.png
  31. BIN=BIN
      plugins/bargain/image/bargain-goods.png
  32. BIN=BIN
      plugins/bargain/image/bargain-help.png
  33. BIN=BIN
      plugins/bargain/image/bargain-jiantou.png
  34. BIN=BIN
      plugins/bargain/image/bargain-list-selected.png
  35. BIN=BIN
      plugins/bargain/image/bargain-list.png
  36. BIN=BIN
      plugins/bargain/image/bargain-my-selected.png
  37. BIN=BIN
      plugins/bargain/image/bargain-my.png
  38. BIN=BIN
      plugins/bargain/image/bargain-order-jiantou.png
  39. BIN=BIN
      plugins/bargain/image/bargain-price.png
  40. BIN=BIN
      plugins/bargain/image/bargain-shuoming.png
  41. BIN=BIN
      plugins/bargain/image/bargain-sku.png
  42. BIN=BIN
      plugins/bargain/image/bargain-sold-out.png
  43. BIN=BIN
      plugins/bargain/image/click.png
  44. BIN=BIN
      plugins/bargain/image/close.png
  45. BIN=BIN
      plugins/bargain/image/down.png
  46. BIN=BIN
      plugins/bargain/image/found.png
  47. BIN=BIN
      plugins/bargain/image/icon-bargain-list-right.png
  48. BIN=BIN
      plugins/bargain/image/light.png
  49. BIN=BIN
      plugins/bargain/image/progress.png
  50. BIN=BIN
      plugins/bargain/image/to-down.png
  51. BIN=BIN
      plugins/bargain/image/to-up.png
  52. 0 256
      plugins/bargain/index/index.vue
  53. 0 258
      plugins/bargain/order-list/order-list.vue
  54. 0 46
      plugins/bargain/rule/rule.vue
  55. 0 92
      plugins/bonus/about/about.vue
  56. 0 219
      plugins/bonus/cash-detail/cash-detail.vue
  57. 0 650
      plugins/bonus/cash/cash.vue
  58. BIN=BIN
      plugins/bonus/image/check.png
  59. BIN=BIN
      plugins/bonus/image/progress.png
  60. BIN=BIN
      plugins/bonus/image/refuse.png
  61. BIN=BIN
      plugins/bonus/image/shop-price-less.png
  62. BIN=BIN
      plugins/bonus/image/shop-price-plus.png
  63. 0 963
      plugins/bonus/index/index.vue
  64. 0 344
      plugins/bonus/memeber/memeber.vue
  65. 0 329
      plugins/bonus/order/order.vue
  66. 0 336
      plugins/bonus/statics/statics.vue
  67. 0 32
      plugins/book/components/app-button.vue
  68. 0 47
      plugins/book/components/app-head-nav-list.vue
  69. 0 84
      plugins/book/components/app-head-navigation.vue
  70. 0 158
      plugins/book/components/app-product-list.vue
  71. 0 184
      plugins/book/components/app-reservation-form.vue
  72. 0 139
      plugins/book/components/app-store.vue
  73. 0 105
      plugins/book/components/app-write-off-code.vue
  74. 0 338
      plugins/book/goods/goods.vue
  75. 0 147
      plugins/book/index/index.vue
  76. 0 212
      plugins/book/order/order.scss
  77. 0 346
      plugins/book/order/order.vue
  78. 0 304
      plugins/book/orderDetails/orderDetails.vue
  79. 0 178
      plugins/book/reservationList/reservationList.vue
  80. 0 459
      plugins/composition/components/app-list/app-list.vue
  81. 0 494
      plugins/composition/detail/detail.vue
  82. 0 451
      plugins/composition/index/index.vue
  83. 0 78
      plugins/composition/rule/rule.vue
  84. 0 385
      plugins/composition/search/search.vue
  85. 0 787
      plugins/fxhb/detail/detail.vue
  86. BIN=BIN
      plugins/fxhb/image/best_icon.png
  87. BIN=BIN
      plugins/fxhb/image/coupon.png
  88. BIN=BIN
      plugins/fxhb/image/cry.png
  89. BIN=BIN
      plugins/fxhb/image/love.png
  90. BIN=BIN
      plugins/fxhb/image/open_hongbao_btn.png
  91. 0 39
      plugins/fxhb/rule/rule.vue
  92. 0 436
      plugins/gift/address/address.vue
  93. 0 495
      plugins/gift/address/app-submit-address.vue
  94. 0 118
      plugins/gift/billing-preview/billing-preview.vue
  95. 0 109
      plugins/gift/components/announcement/gift-navigation.vue
  96. 0 37
      plugins/gift/components/announcement/share-gift-text.vue
  97. 0 73
      plugins/gift/components/detail/logistics.vue
  98. 0 71
      plugins/gift/components/detail/order-information.vue
  99. 0 154
      plugins/gift/components/detail/order.vue
  100. 0 82
      plugins/gift/components/detail/receiving-status.vue

+ 9 - 1101
pages.json

xqd xqd xqd xqd xqd
@@ -1,11 +1,9 @@
 {
   "pages": [
-
     {
       "path": "pages/index/index",
       "style": {
-        "navigationBarTitleText": "首页",
-		"navigationStyle": "custom"
+        "navigationBarTitleText": "首页"
       }
     },
     {
@@ -85,20 +83,7 @@
       "style": {
         "navigationBarTitleText": "模板消息测试"
       }
-    },
-	{
-	  "path" : "pages/course/index/index",
-	  "style" : {
-	    "navigationBarTitleText": "课程报名",
-	    "navigationStyle": "custom"
-	  }
-	},
-	  {
-	  "path": "pages/course/CourseManagement/CourseManagement",
-	  "style": {
-	  "navigationBarTitleText": "课程管理"
-	  }
-	}
+    }
   ],
   "globalStyle": {
     "navigationBarTextStyle": "black",
@@ -242,8 +227,7 @@
         {
           "path": "goods",
           "style": {
-            "navigationBarTitleText": "商品详情",
-			"navigationBarBackgroundColor": "#F09A21"
+            "navigationBarTitleText": "商品详情"
           }
         },
         {
@@ -386,8 +370,7 @@
         {
           "path": "order-submit",
           "style": {
-            "navigationBarTitleText": "结算", 
-			"navigationBarBackgroundColor": "#F09A21"
+            "navigationBarTitleText": "结算"
           }
         },
         {
@@ -423,1108 +406,33 @@
       ]
     },
     {
-      "root": "plugins/pond",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "九宫格抽奖"
-          }
-        },
-        {
-          "path": "rule/rule",
-          "style": {
-            "navigationBarTitleText": "规则"
-          }
-        },
-        {
-          "path": "prize/prize",
-          "style": {
-            "navigationBarTitleText": "中奖记录"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/scratch",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "刮刮卡"
-          }
-        },
-        {
-          "path": "rule/rule",
-          "style": {
-            "navigationBarTitleText": "规则"
-          }
-        },
-        {
-          "path": "prize/prize",
-          "style": {
-            "navigationBarTitleText": "中奖记录"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/bonus",
+      "root": "plugins/clerk",
       "pages": [
         {
           "path": "index/index",
           "style": {
-            "navigationBarTitleText": "团队分红"
-          }
-        },
-        {
-          "path": "about/about",
-          "style": {
-            "navigationBarTitleText": "说明"
-          }
-        },
-        {
-          "path": "cash/cash",
-          "style": {
-            "navigationBarTitleText": "申请提现"
-          }
-        },
-        {
-          "path": "cash-detail/cash-detail",
-          "style": {
-            "navigationBarTitleText": "提现明细"
-          }
-        },
-        {
-          "path": "order/order",
-          "style": {
-            "navigationBarTitleText": "分红订单"
-          }
-        },
-        {
-          "path": "memeber/memeber",
-          "style": {
-            "navigationBarTitleText": "队员"
+            "navigationBarTitleText": "核销首页"
           }
         },
         {
           "path": "statics/statics",
           "style": {
-            "navigationBarTitleText": "分红统计"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/stock",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "股东分红"
-          }
-        },
-        {
-          "path": "update/update",
-          "style": {
-            "navigationBarTitleText": "股东升级"
-          }
-        },
-        {
-          "path": "cash/cash",
-          "style": {
-            "navigationBarTitleText": "申请提现"
-          }
-        },
-        {
-          "path": "bonus/bonus",
-          "style": {
-            "navigationBarTitleText": "股东分红"
-          }
-        },
-        {
-          "path": "cash-detail/cash-detail",
-          "style": {
-            "navigationBarTitleText": "提现明细"
-          }
-        },
-        {
-          "path": "balance/balance",
-          "style": {
-            "navigationBarTitleText": "结算明细"
+            "navigationBarTitleText": "核销统计"
           }
         },
         {
-          "path": "about/about",
-          "style": {
-            "navigationBarTitleText": "升级说明"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/lottery",
-      "pages": [
-        {
-          "path": "index/index",
+          "path": "order/order",
           "style": {
-            "navigationBarTitleText": ""
+            "navigationBarTitleText": "核销订单"
           }
         },
         {
           "path": "detail/detail",
-          "style": {
-            "navigationBarTitleText": "详情"
-          }
-        },
-        {
-          "path": "goods/goods",
-          "style": {
-            "navigationBarTitleText": "商品详情"
-          }
-        },
-        {
-          "path": "lucky-code/lucky-code",
-          "style": {
-            "navigationBarTitleText": "幸运码"
-          }
-        },
-        {
-          "path": "prize/prize",
           "style": {
             "navigationBarTitleText": ""
           }
-        },
-        {
-          "path": "rule/rule",
-          "style": {
-            "navigationBarTitleText": "规则"
-          }
-        },
-        {
-          "path": "qrcode/qrcode",
-          "style": {
-            "navigationBarTitleText": "客服"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/check_in",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "签到"
-          }
-        },
-        {
-          "path": "rules/rules",
-          "style": {
-            "navigationBarTitleText": "签到规则"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/step",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "步数宝"
-          }
-        },
-        {
-          "path": "rules/rules",
-          "style": {
-            "navigationBarTitleText": "规则"
-          }
-        },
-        {
-          "path": "dare/dare",
-          "style": {
-            "navigationBarTitleText": "步数挑战"
-          }
-        },
-        {
-          "path": "join/join",
-          "style": {
-            "navigationBarTitleText": "报名"
-          }
-        },
-        {
-          "path": "log/log",
-          "style": {
-            "navigationBarTitleText": "战绩"
-          }
-        },
-        {
-          "path": "share/share",
-          "style": {
-            "navigationBarTitleText": "分享海报"
-          }
-        },
-        {
-          "path": "detail/detail",
-          "style": {
-            "navigationBarTitleText": "账户明细"
-          }
-        },
-        {
-          "path": "friend/friend",
-          "style": {
-            "navigationBarTitleText": "好友助力列表"
-          }
-        },
-        {
-          "path": "top/top",
-          "style": {
-            "navigationBarTitleText": "排行榜"
-          }
-        },
-        {
-          "path": "goods/goods",
-          "style": {
-            "navigationBarTitleText": "商品详情"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/fxhb",
-      "pages": [
-        {
-          "path": "detail/detail",
-          "style": {
-            "navigationBarTitleText": "拆红包"
-          }
-        },
-        {
-          "path": "rule/rule",
-          "style": {
-            "navigationBarTitleText": "规则"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/scan_code",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "当面付"
-          }
-        },
-        {
-          "path": "index/coupon",
-          "style": {
-            "navigationBarTitleText": "选择优惠券"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/bargain",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "砍价"
-          }
-        },
-        {
-          "path": "goods/goods",
-          "style": {
-            "navigationBarTitleText": "商品详情"
-          }
-        },
-        {
-          "path": "order-list/order-list",
-          "style": {
-            "navigationBarTitleText": "我的砍价"
-          }
-        },
-        {
-          "path": "activity/activity",
-          "style": {
-            "navigationBarTitleText": "砍价"
-          }
-        },
-        {
-          "path": "rule/rule",
-          "style": {
-            "navigationBarTitleText": "砍价规则"
-          }
         }
       ]
-    },
-    {
-      "root": "plugins/integral_mall",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "积分商城"
-          }
-        },
-        {
-          "path": "goods/goods",
-          "style": {
-            "navigationBarTitleText": "商品详情"
-          }
-        },
-        {
-          "path": "about/about",
-          "style": {
-            "navigationBarTitleText": "积分说明"
-          }
-        },
-        {
-          "path": "coupon/coupon",
-          "style": {
-            "navigationBarTitleText": "兑换优惠券"
-          }
-        },
-        {
-          "path": "exchange/exchange",
-          "style": {
-            "navigationBarTitleText": "我的兑换"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/clerk",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "核销首页"
-          }
-        },
-        {
-          "path": "statics/statics",
-          "style": {
-            "navigationBarTitleText": "核销统计"
-          }
-        },
-        {
-          "path": "order/order",
-          "style": {
-            "navigationBarTitleText": "核销订单"
-          }
-        },
-        {
-          "path": "detail/detail",
-          "style": {
-            "navigationBarTitleText": ""
-          }
-        }
-      ]
-    },
-    {
-        "root": "pages/app_admin",
-        "pages": [
-            {
-                "path": "index/index",
-                "style": {
-                    "navigationBarTitleText": "商城管理首页"
-                }
-            },
-            {
-                "path": "order-message/order-message",
-                "style": {
-                    "navigationBarTitleText": "订单消息"
-                }
-            },
-            {
-                "path": "order/order",
-                "style": {
-                    "navigationBarTitleText": "订单管理"
-                }
-            },
-            {
-                "path": "change-add/change-add",
-                "style": {
-                    "navigationBarTitleText": "修改地址"
-                }
-            },
-            {
-                "path": "express/express",
-                "style": {
-                    "navigationBarTitleText": "快递信息"
-                }
-            },
-            {
-                "path": "send/send",
-                "style": {
-                    "navigationBarTitleText": "物流信息"
-                }
-            },
-            {
-                "path": "order-detail/order-detail",
-                "style": {
-                    "navigationBarTitleText": "订单详情"
-                }
-            },
-            {
-                "path": "user/user",
-                "style": {
-                    "navigationBarTitleText": "用户管理"
-                }
-            },
-            {
-                "path": "goods/goods",
-                "style": {
-                    "navigationBarTitleText": "商品管理"
-                }
-            },
-            {
-                "path": "add-goods/add-goods",
-                "style": {
-                    "navigationBarTitleText": "添加商品"
-                }
-            },
-            {
-                "path": "goods-attr/goods-attr",
-                "style": {
-                    "navigationBarTitleText": "商品规格"
-                }
-            },
-            {
-                "path": "goods-attr-edit/goods-attr-edit",
-                "style": {
-                    "navigationBarTitleText": "规格值编辑"
-                }
-            },
-            {
-                "path": "goods-attr-info/goods-attr-info",
-                "style": {
-                    "navigationBarTitleText": "规格明细"
-                }
-            },
-            {
-                "path": "goods-detail/goods-detail",
-                "style": {
-                    "navigationBarTitleText": "商品图文描述"
-                }
-            },
-            {
-                "path": "goods-card/goods-card",
-                "style": {
-                    "navigationBarTitleText": "卡券"
-                }
-            },
-            {
-                "path": "goods-cat/goods-cat",
-                "style": {
-                    "navigationBarTitleText": "编辑商品分类"
-                }
-            },
-            {
-                "path": "comment-detail/comment-detail",
-                "style": {
-                    "navigationBarTitleText": "评论详情"
-                }
-            },
-            {
-                "path": "comment/comment",
-                "style": {
-                    "navigationBarTitleText": "评论管理"
-                }
-            },
-            {
-                "path": "setting/setting",
-                "style": {
-                    "navigationBarTitleText": "商城设置"
-                }
-            },
-            {
-                "path": "cash/cash",
-                "style": {
-                    "navigationBarTitleText": "提现申请"
-                }
-            },
-            {
-                "path": "review-message/review-message",
-                "style": {
-                    "navigationBarTitleText": "审核消息"
-                }
-            },
-            {
-                "path": "mch-detail/mch-detail",
-                "style": {
-                    "navigationBarTitleText": "详情"
-                }
-            },
-            {
-                "path": "payment-code/payment-code",
-                "style": {
-                    "navigationBarTitleText": "收款码"
-                }
-            }
-        ]
-    },
-    {
-      "root": "plugins/mch",
-      "pages": [
-        {
-          "path": "apply/apply",
-          "style": {
-              "navigationBarTitleText": ""
-          }
-        },
-        {
-          "path": "apply_rules/apply_rules",
-          "style": {
-            "navigationBarTitleText": "协议"
-          }
-        },
-        {
-          "path": "cat/cat",
-          "style": {
-            "navigationBarTitleText": "店铺分类"
-          }
-        },
-        {
-          "path": "goods/goods",
-          "style": {
-            "navigationBarTitleText": "商品详情"
-          }
-        },
-        {
-          "path": "list/list",
-          "style": {
-            "navigationBarTitleText": "好店推荐"
-          }
-        },
-        {
-          "path": "shop/shop",
-          "style": {
-            "navigationBarTitleText": ""
-          }
-        },
-        {
-          "path": "summary/summary",
-          "style": {
-            "navigationBarTitleText": "店铺简介"
-          }
-        },
-        {
-          "path": "mch/login/login",
-          "style": {
-            "navigationBarTitleText": "商家登录"
-          }
-        },
-        {
-          "path": "mch/myshop/myshop",
-          "style": {
-            "navigationBarTitleText": ""
-          }
-        },
-        {
-          "path": "mch/account/account",
-          "style": {
-            "navigationBarTitleText": "资产"
-          }
-        },
-        {
-          "path": "mch/account-log/account-log",
-          "style": {
-            "navigationBarTitleText": "交易记录"
-          }
-        },
-        {
-          "path": "mch/settle-detail/settle-detail",
-          "style": {
-            "navigationBarTitleText": ""
-          }
-        },
-        {
-          "path": "mch/cash-log/cash-log",
-          "style": {
-            "navigationBarTitleText": "提现记录"
-          }
-        },
-        {
-          "path": "mch/cash/cash",
-          "style": {
-            "navigationBarTitleText": "提现申请"
-          }
-        },
-        {
-          "path": "mch/count/count",
-          "style": {
-            "navigationBarTitleText": "数据统计"
-          }
-        },
-        {
-          "path": "mch/config/config",
-          "style": {
-            "navigationBarTitleText": "店铺管理"
-          }
-        },
-        {
-          "path": "mch/password/password",
-          "style": {
-            "navigationBarTitleText": "修改密码"
-          }
-        },
-        {
-          "path": "mch/web-login/web-login",
-          "style": {
-            "navigationBarTitleText": "登录网页端"
-          }
-        },
-        {
-          "path": "mch/qrcode/qrcode",
-          "style": {
-            "navigationBarTitleText": "店铺二维码"
-          }
-        },
-        {
-          "path": "mch/goods/goods",
-          "style": {
-            "navigationBarTitleText": "商品管理"
-          }
-        },
-        {
-          "path": "mch/add-goods/add-goods",
-          "style": {
-            "navigationBarTitleText": "添加商品"
-          }
-        },
-        {
-          "path": "mch/goods-detail/goods-detail",
-          "style": {
-            "navigationBarTitleText": "商品详情图"
-          }
-        },
-        {
-          "path": "mch/order/order",
-          "style": {
-            "navigationBarTitleText": "订单管理"
-          }
-        },
-        {
-          "path": "mch/order-detail/order-detail",
-          "style": {
-            "navigationBarTitleText": "订单详情"
-          }
-        },
-        {
-          "path": "mch/send/send",
-          "style": {
-            "navigationBarTitleText": "发货"
-          }
-        },
-        {
-          "path": "mch/express/express",
-          "style": {
-            "navigationBarTitleText": "快递信息"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/pt",
-      "pages": [
-        {
-          "path": "order/order",
-          "style": {
-            "navigationBarTitleText": "我的拼团"
-          }
-        },
-        {
-          "path": "detail/detail",
-          "style": {
-            "navigationBarTitleText": "拼团详情"
-          }
-        },
-        {
-          "path": "specification/specification",
-          "style": {
-            "navigationBarTitleText": "拼团规则"
-          }
-        },
-        {
-          "path": "goods/goods",
-          "style": {
-            "navigationBarTitleText": "商品详情"
-          }
-        },
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "拼团首页"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/book",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "预约首页"
-          }
-        },
-        {
-          "path": "goods/goods",
-          "style": {
-            "navigationBarTitleText": "商品详情"
-          }
-        },
-        {
-          "path": "orderDetails/orderDetails",
-          "style": {
-            "navigationBarTitleText": "订单详情"
-          }
-        },
-        {
-          "path": "order/order",
-          "style": {
-            "navigationBarTitleText": "订单列表"
-          }
-        },
-        {
-          "path": "reservationList/reservationList",
-          "style": {
-            "navigationBarTitleText": "我的预约"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/miaosha",
-      "pages": [
-        {
-          "path": "goods/goods",
-          "style": {
-            "navigationBarTitleText": "秒杀详情"
-          }
-        },
-        {
-          "path": "advance/advance",
-          "style": {
-            "navigationBarTitleText": "秒杀首页"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/vip_card",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "超级会员卡"
-          }
-        },
-        {
-          "path": "buy/buy",
-          "style": {
-            "navigationBarTitleText": "购买超级会员卡"
-          }
-        },
-        {
-          "path": "rules/rules",
-          "style": {
-            "navigationBarTitleText": "超级会员卡使用说明"
-          }
-        },
-        {
-          "path": "rights/rights",
-          "style": {
-            "navigationBarTitleText": "超级会员卡权益"
-          }
-        }
-      ]
-    },
-    {
-      "root": "pages/order",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "我的订单"
-          }
-        },
-        {
-          "path": "order-detail/order-detail",
-          "style": {
-            "navigationBarTitleText": "订单详情"
-          }
-        },
-        {
-          "path": "express-detail/express-detail",
-          "style": {
-            "navigationBarTitleText": "物流详情"
-          }
-        },
-        {
-          "path": "refund/refund",
-          "style": {
-            "navigationBarTitleText": "订单售后"
-          }
-        },
-        {
-          "path": "refund/index",
-          "style": {
-            "navigationBarTitleText": "售后列表"
-          }
-        },
-        {
-          "path": "refund-detail/refund-detail",
-          "style": {
-            "navigationBarTitleText": "订单售后"
-          }
-        },
-        {
-          "path": "clerk/clerk",
-          "style": {
-            "navigationBarTitleText": "订单核销"
-          }
-        },
-        {
-          "path": "appraise/appraise",
-          "style": {
-            "navigationBarTitleText": "订单评价"
-          }
-        },
-        {
-          "path": "appraise-finish/index",
-          "style": {
-            "navigationBarTitleText": "评价完成"
-          }
-        },
-        {
-          "path": "express-list/express-list",
-          "style": {
-            "navigationBarTitleText": "物流列表"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/advance",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "预售首页"
-          }
-        },
-        {
-          "path": "detail/detail",
-          "style": {
-            "navigationBarTitleText": "预售详情"
-          }
-        },
-        {
-          "path": "order/order",
-          "style": {
-            "navigationBarTitleText": "预售订单"
-          }
-        },
-        {
-          "path": "search/search",
-          "style": {
-            "navigationBarTitleText": "预售搜索"
-          }
-        },
-        {
-          "path": "order-detail/order-detail",
-          "style": {
-            "navigationBarTitleText": "订单详情"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/quick_share",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "素材中心"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/gift",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "送礼物",
-            "app-plus": {
-              "bounce": "none"
-            }
-          }
-        },
-        {
-          "path": "goods/goods",
-          "style": {
-            "navigationBarTitleText": "商品详情",
-            "app-plus": {
-              "bounce": "none"
-            }
-          }
-        },
-        {
-          "path": "list/list",
-          "style": {
-            "navigationBarTitleText": "商品",
-            "app-plus": {
-              "bounce": "none"
-            }
-          }
-        },
-        {
-          "path": "rule/rule",
-          "style": {
-            "navigationBarTitleText": "规则",
-            "app-plus": {
-              "bounce": "none"
-            }
-          }
-        },
-        {
-          "path": "share/share",
-          "style": {
-            "navigationBarTitleText": "送礼物",
-            "app-plus": {
-              "bounce": "none"
-            }
-          }
-        },
-        {
-          "path": "order/order",
-          "style": {
-            "navigationBarTitleText": "送礼物",
-            "app-plus": {
-              "bounce": "none"
-            }
-          }
-        },
-        {
-          "path": "address/address",
-          "style": {
-            "navigationBarTitleText": "填写地址",
-			"navigationBarBackgroundColor": "#F09A21",
-            "app-plus": {
-              "bounce": "none"
-            }
-          }
-        },
-        {
-          "path": "detail/detail",
-          "style": {
-            "navigationBarTitleText": "礼物详情",
-            "app-plus": {
-              "bounce": "none"
-            }
-          }
-        },
-        {
-          "path": "receive/receive",
-          "style": {
-            "navigationBarTitleText": "送礼物",
-            "app-plus": {
-              "bounce": "none"
-            }
-          }
-        },
-        {
-          "path": "search/search",
-          "style": {
-            "navigationBarTitleText": "搜索",
-            "app-plus": {
-              "bounce": "none"
-            }
-          }
-        }
-      ]
-    },
-    {
-      "root": "pages/quick-shop",
-      "pages": [
-        {
-          "path": "quick-shop",
-          "style": {
-            "navigationBarTitleText": "快速购买"
-          }
-        }
-      ]
-    },
-    {
-      "root": "plugins/pick",
-      "pages": [
-        {
-          "path": "index/index",
-          "style": {
-            "navigationBarTitleText": "N元任选"
-          }
-        },
-        {
-          "path": "pond/pond",
-          "style": {
-            "navigationBarTitleText": "凑单池"
-          }
-        },
-        {
-          "path": "detail/detail",
-          "style": {
-            "navigationBarTitleText": "商品详情"
-          }
-        },
-        {
-          "path": "search/search",
-          "style": {
-            "navigationBarTitleText": "搜索"
-          }
-        },
-        {
-          "path": "rule/rule",
-          "style": {
-            "navigationBarTitleText": "活动规则"
-          }
-        }
-      ]
-    },
-    {
-        "root": "plugins/composition",
-        "pages": [
-            {
-                "path": "index/index",
-                "style": {
-                    "navigationBarTitleText": "套餐组合"
-                }
-            },
-            {
-                "path": "rule/rule",
-                "style": {
-                    "navigationBarTitleText": "活动规则"
-                }
-            },
-            {
-                "path": "search/search",
-                "style": {
-                    "navigationBarTitleText": "搜索"
-                }
-            },
-            {
-                "path": "detail/detail",
-                "style": {
-                    "navigationBarTitleText": "套餐组合详情"
-                }
-            }
-        ]
     }
   ]
 }

+ 0 - 113
plugins/advance/components/detail-ad.vue

xqd
@@ -1,113 +0,0 @@
-<template>
-	<view class="detail-ad dir-left-nowrap main-between">
-		<view class="text dir-left-nowrap main-between cross-center">
-			<text class="title">预售</text>
-			<text class="count">已抢{{sales}}件</text>
-		</view>
-		<view class="count-down dir-top-nowrap" style="margin-bottom: 12rpx;">
-			<text class="title">距定金截止</text>
-			<view class="dir-left-nowrap main-center cross-center">
-				<view class="num">{{d}}</view>
-				<view class="word">天</view>
-				<view class="num">{{h}}</view>
-				<view class="word">时</view>
-				<view class="num">{{m}}</view>
-				<view class="word">分</view>
-				<view class="num">{{s}}</view>
-				<view class="word">秒</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "detail-ad",
-	    props: {
-            sales: {
-                type: Number,
-	            default() {
-                    return 0;
-                }
-            },
-            d: {
-                type: Number,
-	            default() {
-                    return 0;
-                }
-            },
-            h: {
-                type: Number,
-	            default() {
-                    return 0;
-	            }
-            },
-            m: {
-                type: Number,
-                default() {
-                    return 0;
-                }
-            },
-            s: {
-                type: Number,
-                default() {
-                    return 0;
-                }
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.detail-ad {
-		width: #{750rpx};
-		height: #{88rpx};
-		background:linear-gradient(to right, #ff5527, #ff2755);
-		padding: 0 #{24rpx};
-		.text {
-			color: #ffffff;
-			.title {
-				display: inline-block;
-				font-size: #{32rpx};
-				margin-right: #{12rpx};
-				height: #{88upx};
-				line-height: #{88upx};
-			}
-			.count {
-				display: inline-block;
-				padding: #{5upx 16rpx};
-				border-radius: #{18rpx};
-				background-color: rgba(0,0,0,.2);
-				font-size: #{22rpx};
-			}
-		}
-		.count-down {
-			height: #{88rpx};
-			text-align: center;
-			.title {
-				font-size: #{20rpx};
-				color: #ffffff;
-				margin-top: #{5rpx};
-				margin-bottom: #{5rpx};
-			}
-			.num {
-				width:#{40rpx};
-				height: #{36rpx};
-				line-height: #{36rpx};
-				text-align: center;
-				border-radius: #{4rpx};
-				font-size: #{24rpx};
-				color: #353535;
-				background-color: #ffffff;
-			}
-			.word {
-				width: #{35rpx};
-				height: #{36rpx};
-				line-height: #{36rpx};
-				text-align: center;
-				font-size: #{24rpx};
-				color: #ffffff;
-			}
-		}
-	}
-</style>

+ 0 - 237
plugins/advance/components/detail-attr.vue

xqd
@@ -1,237 +0,0 @@
-<template>
-	<view class="detail-attr" >
-		<app-iphone-x>
-			<view class="attr-content"  slot="empty-area">
-				<view class="top dir-left-nowrap">
-					<view class="image-view">
-						<image :src="attr_pic_url ? attr_pic_url : image_url" @click="clickImage(index)"></image>
-					</view>
-					<view class="price dir-top-nowrap">
-						<text class="des">定金¥{{attr_deposit}}抵¥{{attr_swell_deposit}}</text>
-						<text class="swell" v-if="level_show == 0 || level_show == 2">
-							¥{{attr_price}}
-							<text class="swell-text"> 预售价</text>
-						</text>
-						<text class="swell" style="color: #f49f18;" v-if="level_show === 1">
-							¥{{attr_price_member}}
-							<text class="swell-text"> 会员价</text>
-						</text>
-						<text class="stock">库存{{attr_stock}}</text>
-					</view>
-					<image class="close" src="/static/image/icon/icon-close.png" @click="close_attr"></image>
-				</view>
-				<scroll-view class="center" :scroll-y="true">
-					<view class="row" v-for="(item, index) in attr_groups" :key="index">
-						<text class="attr-group-name">{{item.attr_group_name}}</text>
-						<view class="attr-row dir-left-wrap">
-							<view class="attr-item"
-							      :class="{'active-attr-item': attr.active}"
-							      v-for="(attr, ind) in item.attr_list"
-							      :key="ind"
-							      @click="select_attr(item, attr)"
-							>{{attr.attr_name}}</view>
-						</view>
-					</view>
-				</scroll-view>
-				<view class="bottom dir-left-nowrap main-between cross-center">
-					<text>数量</text>
-					<view class="num dir-right-nowrap main-between cross-center">
-						<image class="image" src="/static/image/cart/can-be-added.png" @click="add_num"></image>
-						<input type="number" class="input" :value="num" @change="change_num">
-						<image class="image" :src="num === 1 ? '/static/image/cart/unreducible.png' : '/static/image/cart/can-be-reduced.png'" @click="edd_num"></image>
-					</view>
-				</view>
-				<view :style="{height:`${height}rpx`}" >
-				</view>
-			</view>
-		</app-iphone-x>
-	</view>
-</template>
-
-<script>
-    import appIphoneX from '../../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-
-    export default {
-        name: "detail-attr",
-	    data() {
-            return {
-                image_url: ''
-            }
-	    },
-	    props: {
-            height: Number,
-            cover_pic: String,
-            attr: Array,
-            attr_groups: Array,
-            goods_stock: Number,
-            attr_swell_deposit: String,
-            attr_deposit: String,
-            attr_stock: Number,
-            price_member: Number,
-            attr_price: String,
-            level_show: Number,
-            attr_price_member: Number,
-            num: Number,
-            attr_pic_url: String,
-	    },
-	    methods: {
-            close_attr() {
-                this.$emit('close_attr', true);
-            },
-            select_attr(data, item) {
-                this.$emit('select_attr', data.attr_group_id, item.attr_id);
-            },
-            change_num(data) {
-                this.$emit('change_num_data', Number(data.detail.value));
-            },
-		    add_num() {
-                this.$emit('change_num', 1);
-            },
-		    edd_num() {
-                if (this.num === 1) return;
-                this.$emit('change_num', -1);
-		    },
-            clickImage() {
-                let url = [];
-                if (this.attr_pic_url) {
-                    url.push(this.attr_pic_url);
-                } else {
-                    url.push(this.image_url);
-                }
-                uni.previewImage({
-                    urls: url
-                });
-            }
-	    },
-	    mounted() {
-            if (this.attr[0] && this.attr[0].pic_url) {
-                this.image_url = this.attr[0].pic_url;
-            } else {
-	            this.image_url = this.cover_pic;
-            }
-	    },
-	    components: {
-            'app-iphone-x': appIphoneX,
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	.detail-attr {
-		width: #{750rpx};
-		background-color: rgba(153,153,153,0.3);
-		height: 100%;
-		position: fixed;
-		top: 0;
-		left: 0;
-		z-index: 1500;
-	}
-	.attr-content {
-		width: #{750rpx};
-		border-top-left-radius: #{15rpx};
-		border-top-right-radius: #{15rpx};
-		background-color: #ffffff;
-		padding: 0 #{24rpx};
-		.top {
-			height: #{155rpx};
-			width: #{702rpx};
-			border-bottom: #{1rpx} solid #e2e2e2;
-			position: relative;
-			.image-view {
-				width: #{200rpx};
-				height: #{200rpx};
-				background-color: white;
-				border-radius: #{9rpx};
-				text-align: center;
-				position: absolute;
-				top: #{-63rpx};
-				>image {
-					width: #{192rpx};
-					height: #{192rpx};
-					margin-top: #{4rpx};
-					border-radius: #{9rpx};
-				}
-			}
-			.close {
-				width: #{35rpx};
-				height: #{35rpx};
-				padding: #{5rpx};
-				position: absolute;
-				right: 0;
-				top: #{20rpx};
-			}
-			.price {
-				height: #{141rpx};
-				margin-left: #{228rpx};
-				width: #{441rpx};
-				padding-top: #{28rpx};
-				.stock {
-					font-size: #{24rpx};
-					color: #999999;
-				}
-				.des {
-					font-size: #{22rpx};
-					color: #ff4544;
-					margin-bottom: #{5rpx};
-				}
-				.swell {
-					font-size: #{24rpx};
-					color:  #ff4544;
-					margin-bottom: #{5rpx};
-					.swell-text {
-						font-size: #{21rpx};
-					}
-				}
-			}
-		}
-		.center {
-			max-height: #{333rpx};
-			.row {
-				width: #{702rpx};
-				border-bottom: #{1rpx} solid #e2e2e2;
-				padding: #{32rpx 0 0 0};
-				font-size: #{25rpx};
-				.attr-group-name {
-					color: #666666;
-				}
-				.attr-row {
-					margin-top: #{19rpx};
-					.attr-item {
-						height: #{57rpx};
-						line-height: #{57rpx};
-						text-align: center;
-						border-radius: #{9rpx};
-						color: #1b1b1b;
-						margin-right: #{20rpx};
-						padding: 0 #{24rpx};
-						background-color: #f2f2f2;
-						margin-bottom: #{32rpx};
-					}
-					.active-attr-item {
-						color: #ffffff;
-						background-color: #ff4544;
-					}
-				}
-			}
-			
-		}
-		.bottom {
-			height: #{123rpx};
-			width: #{702rpx};
-			.num {
-				width: #{260rpx};
-				height: #{60rpx};
-				.input {
-					width: #{90rpx};
-					height: #{60rpx};
-					background-color: #f7f7f7;
-					text-align: center;
-				}
-				.image {
-					width: #{60rpx};
-					height: #{60rpx};
-				}
-			}
-		}
-	}
-</style>

+ 0 - 302
plugins/advance/components/detail-bottom-button.vue

xqd
@@ -1,302 +0,0 @@
-<template>
-	<view class="detail-bottom-button">
-		<view class="dir-left-nowrap" v-if="active">
-			<view class="but" @click="route_jump">
-				<app-form-id>
-					<view  class="but dir-top-nowrap main-left cross-center border-left">
-						<image class="icon" src="/static/image/icon/index.png"></image>
-						<text class="text">首页</text>
-					</view>
-				</app-form-id>
-			</view>
-			<view class="but" @click="set_favorite(favorite)">
-				<app-form-id>
-					<view  class="but dir-top-nowrap main-left cross-center" >
-						<image class="icon" :src="favorite ? '/static/image/icon/icon-favorite-active.png' : '/static/image/icon/icon-favorite.png'"></image>
-						<text  class="text">收藏</text>
-					</view>
-				</app-form-id>
-			</view>
-            <view class="buttons dir-left-nowrap" v-if="detail.goods_num == 0">
-                <view class="dir-top-nowrap main-center cross-center" style="background-color: #CDCDCD;color: #fff;width: 100%;">
-                    <text>已售罄</text>
-                </view>
-            </view>
-			<view v-else class="buttons dir-left-nowrap">
-				<view class="title dir-top-nowrap main-center cross-center">
-					<text>预售截止</text>
-					<text>{{getDate(end_prepayment_at)}}</text>
-				</view>
-				<view class="pay" @click="set_active">
-					<app-form-id>
-						<text>
-							支付定金
-						</text>
-					</app-form-id>
-				</view>
-			</view>
-		</view>
-		<view  v-if="!active" class="dir-left-nowrap">
-			<view class="title dir-top-nowrap main-center cross-center">
-				<text>预售截止</text>
-				<text>{{getDate(end_prepayment_at)}}</text>
-			</view>
-			<view class="pay" @click="pay">
-				<text>
-					支付定金
-				</text>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "detail-bottom-button",
-	    data() {
-            return {
-                request_time: false,
-	            once_pay: false,
-            }
-	    },
-	    props: {
-            end_prepayment_at: String,
-            active: Boolean,
-            favorite: Boolean,
-            goods_id: Number,
-            detail: Object,
-            num: Number,
-	    },
-	    methods: {
-            set_active() {
-                if (this.$user.isLogin() && !this.once_pay) {
-                    this.$emit('close_attr', false);
-                } else if (!this.$user.isLogin()) {
-                    this.$user.getInfo().then(() => {
-                    }).catch(() => {
-                    });
-                }
-            },
-            set_favorite(data) {
-                if (data) {
-                    this.$request({
-	                    url: this.$api.user.favorite_remove,
-	                    data: {
-                            goods_id: this.goods_id,
-	                    }
-                    }).then(res => {
-                        if (res.code === 0) {
-                            this.$emit('favorite', !this.favorite);
-                        } else {
-                            uni.showModal({
-                                title: '提示',
-                                content: res.msg
-                            })
-                        }
-                    })
-                } else {
-                    this.$request({
-                        url: this.$api.user.favorite_add,
-                        data: {
-                            goods_id: this.goods_id,
-                        }
-                    }).then(res => {
-                        if (res.code === 0) {
-                            this.$emit('favorite', !this.favorite);
-                        } else {
-                            uni.showModal({
-                                title: '提示',
-                                content: res.msg
-                            })
-                        }
-                    })
-                }
-            },
-            route_jump() {
-                uni.navigateTo({
-	                url: `/pages/index/index`,
-                });
-            },
-			submit() {
-				this.once_pay = true;
-				uni.showLoading({
-					title: '生成订单中...',
-					mask: true,
-				});
-				this.$emit('close_attr', true);
-				let body = {
-					goods_id: this.detail.id,
-					goods_attr_id: 0,
-					goods_num: `${this.num}`,
-					advance_goods_id: this.detail.advanceGoods.id,
-				};
-				let attr = ``;
-				let attr_groups = this.detail.attr_groups;
-				for (let i = 0; i < attr_groups.length; i++) {
-					let attr_list = attr_groups[i];
-					for (let j = 0; j < attr_list.attr_list.length; j++) {
-						if (attr_list.attr_list[j].active) {
-							attr += `:${attr_list.attr_list[j].attr_id}`
-						}
-					}
-				}
-				for (let i = 0; i < this.detail.attr.length; i++) {
-					if (this.detail.attr[i].sign_id === attr.substring(1)) {
-						body.goods_attr_id = this.detail.attr[i].id;
-					}
-				}
-				this.get_submit(body).then(response => {
-					this.get_token(response.data);
-				});
-			},
-            pay() {
-				this.$subscribe(this.detail.template_message).then(() => {
-					this.submit();
-				}).catch(() => {
-					this.submit();
-				});
-            },
-		    get_token(data) {
-                this.$request({
-	                url: this.$api.advance.pay_data,
-	                method: 'post',
-	                data: {
-	                    ...data
-	                },
-                }).then(response => {
-                    if (response.code === 0) {
-                        if (response.data.hasOwnProperty('id')) {
-                            uni.hideLoading();
-                            this.$payment.pay(response.data.id).then(() => {
-                                this.once_pay = false;
-                                // 支付成功
-                                uni.navigateTo({
-                                    url: `/plugins/advance/order/order`
-                                })
-                            }).catch(() => {
-                                // 支付失败
-                                this.once_pay = false;
-                                uni.navigateTo({
-                                    url: `/plugins/advance/order/order`
-                                })
-                            });
-                        } else {
-                             setTimeout(() => {
-                                this.get_token(data);
-                            }, 1000);
-                        }
-                    } else {
-                        uni.hideLoading();
-                        uni.showModal({
-	                        title: '提示',
-	                        content: response.msg,
-                        })
-                    }
-                });
-		    },
-		    async get_submit(body) {
-                const response = await this.$request({
-                    url: this.$api.advance.order_submit,
-                    method: 'post',
-                    data: {
-                        ...body,
-                    }
-                });
-                if (response.code === 0) {
-                    return response;
-                } else if (response.code === 1) {
-                    uni.showModal({
-	                    title: '提示',
-	                    content: response.msg,
-                        success(res){
-                            if(res.cancel){
-                                this.$emit('request', this.goods_id);
-                            }else if(res.confirm){
-                               uni.navigateBack();
-                            }
-                        }
-                    });
-                }
-		    },
-            getDate(end_prepayment_at) {
-                let newDate = new Date(end_prepayment_at.replace(/-/g, '/'));
-                newDate.setDate(newDate.getDate());
-                let month = newDate.getMonth() + 1;
-                let day = newDate.getDate();
-                let mm = "'" + month + "'";
-                let dd = "'" + day + "'";
-                if(mm.length == 3) {
-                    month = "0" + month;
-                }
-                if(dd.length == 3) {
-                    day = "0" + day;
-                }
-                let hour = newDate.getHours();//得到小时
-                let minu = newDate.getMinutes();//得到分钟
-                let sec = newDate.getSeconds();//得到秒
-                sec = `${sec}`;
-                minu = `${minu}`;
-                hour = `${hour}`;
-                if (hour.length === 1) {
-                    hour = `0${hour}`
-                }
-                if (minu.length === 1) {
-                    minu = `0${minu}`
-                }
-                if (sec.length === 1) {
-                    sec = `0${sec}`
-                }
-                return newDate.getFullYear() + "." + month + "." + day + ' ' + hour +':' + minu + ':' + sec;
-            },
-	    },
-    }
-</script>
-
-<style scoped lang="scss">
-	.detail-bottom-button {
-		height: #{110rpx};
-		width: #{750rpx};
-		background-color: #ffffff;
-		border-top: #{1rpx} solid #e3e3e3;
-		.dir-left-nowrap {
-			view {
-				height: #{110rpx};
-			}
-			.but {
-				width: #{105rpx};
-				.text {
-					font-size: #{20rpx};
-					color: #707070;
-					margin-top: #{9rpx};
-				}
-			}
-			.border-left {
-				border-right: #{1rpx} solid #e3e3e3;
-			}
-			.buttons {
-				width: #{272+272rpx};
-			}
-			.title {
-				width: 50%;
-				height: #{110rpx};
-				background-color: #f39800;
-				font-size: #{24rpx};
-				color: #ffffff;
-			}
-			.pay {
-				width: 50%;
-				height: #{110rpx};
-				line-height: #{110rpx};
-				text-align: center;
-				background-color: #ff4544;
-				color: #ffffff;
-				font-size: #{28rpx};
-			}
-		}
-		.icon {
-			width: #{40rpx};
-			height: #{40rpx};
-			margin-top: #{21rpx};
-		}
-	}
-</style>

+ 0 - 245
plugins/advance/components/detail-discount.vue

xqd
@@ -1,245 +0,0 @@
-<template>
-	<view class="detail-discount">
-		<view class="top dir-left-nowrap main-between">
-			<view class="text">
-				<template v-if="activeIndex === 0 && ladder_rules.length === 1">
-					<view>
-						再抢购{{ladder_rules[0].num-sales}}件
-					</view>
-					<view>
-						可享
-						<text>{{ladder_rules[0].discount}}</text>
-						折优惠
-					</view>
-				</template>
-				<template v-if="activeIndex === 0 && ladder_rules.length > 1">
-					<view>
-						再抢购{{ladder_rules[0].num-sales}}件
-					</view>
-					<view>
-						可享
-						<text>{{ladder_rules[0].discount}}</text>
-						折优惠
-					</view>
-				</template>
-				<template v-if="activeIndex > 0">
-					<view>
-						当前{{ladder_rules[activeIndex-1].discount}}折,再抢购{{ladder_rules[activeIndex].num-sales}}件
-					</view>
-					<view>
-						可享
-						<text>{{ladder_rules[activeIndex].discount}}</text>
-						折优惠
-					</view>
-				</template>
-				<template v-if="activeIndex === -1">
-					<view >已满足抢购条件</view>
-					可享
-					<text>{{ladder_rules[ladder_rules.length - 1].discount}}</text>
-					折优惠
-				</template>
-			</view>
-			<view class="button" >
-				<app-jump-button form  open_type="share">邀请好友购买</app-jump-button>
-			</view>
-		</view>
-		<view class="bottom">
-			<view :scroll-x="true"  class="textss"  v-if="ladder_rules.length === 1">
-				<view class="scroll-empty"></view>
-				<view class="content-d border-radius-right border-radius-left" style="width:702rpx;">
-					<view class="content-d-d-d border-radius-left border-radius-right" :style="{width: `${ activeIndex === -1 ? '702' : (702/Number(ladder_rules[0].num)) * sales}rpx`}"></view>
-					<text class="content-text-o">满{{ladder_rules[0].num}}件,享{{Number(ladder_rules[0].discount)}}折</text>
-				</view>
-				<view class="scroll-empty after"></view>
-			</view>
-			<scroll-view :scroll-x="true"  class="textss"  v-if="ladder_rules.length !== 1" >
-				<view class="scroll-empty"></view>
-				<view class="content-d" v-for="(item, index) in ladder_rules" :key="index" :class="{'border-radius-left': index === 0, 'border-radius-right': index === ladder_rules.length - 1}">
-					<view class="content-d-d-d" :style="{width: `${getNum(item, index)}rpx`}" :class="{'border-radius-left': index === 0, 'border-radius-right': index === ladder_rules.length - 1}"></view>
-					<text class="content-text">满{{item.num}}件,享{{item.discount}}折</text>
-					<view class="yuan-default" :class="{'yuan' : activeIndex > index || activeIndex === -1}" ></view>
-				</view>
-				<view class="scroll-empty after"></view>
-			</scroll-view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "detail-discount",
-	    data() {
-            return {
-                shareShow: false,
-                x: 0,
-                y: 0,
-                old: {
-                    x: 0,
-                    y: 0
-                }
-            }
-	    },
-	    props: {
-            url: String,
-            ladder_rules: Array,
-            sales: Number,
-	    },
-	    computed: {
-            activeIndex() {
-                let index = 0;
-                for (let i = 0; i < this.ladder_rules.length; i++) {
-                    if (this.ladder_rules[i].num > this.sales) {
-                        return i;
-                    } else {
-                        index += 1;
-                    }
-                }
-                if (index === this.ladder_rules.length) {
-                    return -1;
-                }
-            }
-	    },
-	    methods: {
-            open_share() {
-                this.shareShow = true;
-            },
-            onChange: function(e) {
-                this.old.x = e.detail.x;
-            },
-            getNum(item, index) {
-                if (this.activeIndex > index) {
-                    return 320;
-                } else if (this.activeIndex === index) {
-                    if (index === 0) {
-                        return 320/Number(item.num) * this.sales;
-                    } else {
-                        return 320/(Number(item.num)-Number(this.ladder_rules[index-1].num)) * (this.sales-Number(this.ladder_rules[index-1].num));
-                    }
-                } else if (this.activeIndex === -1) {
-                    return 320;
-                } else if (this.activeIndex < index) {
-                    return 0;
-                }
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.detail-discount {
-		width: #{750rpx};
-		background:linear-gradient(45deg,#ff8c40, #ff6d40);
-		height: #{210rpx};
-		.top {
-			color: #ffffff;
-			padding: #{ 30rpx 24rpx 0 24rpx};
-			.text {
-				font-size: #{26rpx};
-				text {
-					font-size: #{32rpx};
-				}
-			}
-			.button {
-				margin-top: #{8rpx};
-				width: #{213rpx};
-				height: #{56rpx};
-				line-height: #{54rpx};
-				font-size: #{26rpx};
-				color: #ffffff;
-				border-radius: #{30rpx};
-				text-align: center;
-				border: #{1rpx} solid #ffffff;
-			}
-		}
-		.bottom {
-			height: #{100rpx};
-			width: #{750rpx};
-		}
-	}
-	.textss {
-		height: #{100rpx};
-		white-space: nowrap;
-	}
-	.content {
-		height: #{10rpx};
-		width: #{702rpx};
-		background-color: #b24c2d;
-		border-radius: #{5rpx};
-		position: relative;
-		.content-nei {
-			height: #{10rpx};
-			border-radius: #{5rpx};
-			background-color: #ffffff;
-		}
-		.content-text {
-			position: absolute;
-			font-size: #{24rpx};
-			color: #ffffff;
-			margin-top: #{16rpx};
-			right: 0;
-		}
-	}
-	.content-d {
-		display: inline-block;
-		width: #{320rpx};
-		height: #{10rpx};
-		position: relative;
-		margin-top: #{5rpx};
-		background-color: rgba(204, 94, 51, .8);
-		.content-text {
-			position: absolute;
-			font-size: #{24rpx};
-			color: #ffffff;
-			margin-top: #{16rpx};
-			right: 0;
-			transform: translateX(50%);
-		}
-		.content-text-o {
-			position: absolute;
-			font-size: #{24rpx};
-			color: #ffffff;
-			margin-top: #{16rpx};
-			right: 0;
-		}
-	}
-	.content-d-d {
-		height: #{10rpx};
-		border-radius: #{5rpx};
-	}
-	.content-d-d-d {
-		height: #{10rpx};
-		background-color: #f7f7f7;
-	}
-	.yuan {
-		background-color: #ff8c40 !important;
-		border: #{5rpx} solid #ffffff !important;
-	}
-	.scroll-empty {
-		height: #{10upx};
-		width: #{25upx};
-		display: inline-block;
-	}
-	.after {
-		width: #{125upx};
-	}
-	.yuan-default {
-		border-radius: 50%;
-		position: absolute;
-		z-index: 1400;
-		top: 50%;
-		transform: translateY(-50%);
-		right: 0;
-		width: #{20rpx};
-		height: #{20rpx};
-		background-color: rgba(204, 94, 51, .8);
-		border: #{5rpx} solid rgba(204, 94, 51, .8) ;
-	}
-	.border-radius-left {
-		border-top-left-radius: #{5rpx};
-		border-bottom-left-radius: #{5rpx};
-	}
-	.border-radius-right {
-		border-top-right-radius: #{5rpx};
-		border-bottom-right-radius: #{5rpx};
-	}
-</style>

+ 0 - 377
plugins/advance/components/detail-price-share.vue

xqd
@@ -1,377 +0,0 @@
-<template>
-	<view class="detail-price-share" :style="{paddingBottom: level_show !== 2 ? '20rpx' : 0}">
-		<view class="top dir-left-nowrap main-between">
-			<view class="price" >
-				<view class="member-price" v-if="level_show == 1">
-					<view class="member dir-left-nowrap cross-bottom">
-						<text class="m-p" v-if="member_price_status === 0">
-							<text class="symbol">¥</text>
-							{{group_min_member_price}}
-						</text>
-						<text class="m-p" v-if="member_price_status === 1">
-							<text class="symbol">¥</text>
-							{{group_min_member_price}}-
-							<text class="symbol"></text>
-							{{group_max_member_price}}
-						</text>
-						<text class="logo" style="margin-bottom: 8upx;">会员价</text>
-						<app-sup-vip :is_vip_card_user="is_vip_card_user" margin="0 0 8rpx 10rpx" v-if="discount > 0" :discount="discount"></app-sup-vip>
-					</view>
-					<view class="yushou">
-						<text class="p" v-if="status === 0">
-							<text class="symbol">¥</text>
-							{{price_min}}</text>
-						<text class="p" v-if="status === 1">
-							<text class="symbol">¥</text>
-							{{price_min}}-
-							<text class="symbol"></text>
-							{{price_max}}
-						</text>
-						<text class="p-t">预售价</text>
-						<text class="ori" v-if="isUnderlinePrice == 1">
-							¥{{original_price}}
-						</text>
-					</view>
-				</view>
-				
-				<view v-if="level_show == 2 || level_show == 0" class="dir-left-nowrap cross-bottom">
-					<text class="presale" v-if="status === 0">
-						<text class="symbol">¥</text>
-						{{price_min}}</text>
-					<text class="presale" v-if="status === 1">
-						<text class="symbol">¥</text>
-						{{price_min}}-
-						<text class="symbol"></text>
-						{{price_max}}
-					</text>
-					<text style="margin-bottom: 8upx;" class="title">预售价</text>
-					<app-sup-vip :is_vip_card_user="is_vip_card_user" margin="0 0 8rpx 10rpx" v-if="discount > 0" :discount="discount"></app-sup-vip>
-				</view>
-				<view class="original-price" v-if="(level_show == 2 || level_show === 0) && isUnderlinePrice == 1">
-					¥{{original_price}}
-				</view>
-			</view>
-			<view class="share dir-top-nowrap main-between" @click="share_show">
-				<image src="/static/image/icon/icon-share.png"></image>
-				<text>分享</text>
-			</view>
-		</view>
-		<view class="bottom">
-			<view>
-				<text class="des" v-if="de_status === 0 && swell_status === 0">
-					定金¥{{de_price}}抵¥{{swell_price}}
-				</text>
-				<text class="des" v-if="de_status === 1 && swell_status === 0">
-					定金¥{{de_price_min}}-{{de_price_max}}抵¥{{swell_price}}
-				</text>
-				<text class="des" v-if="de_status === 1 && swell_status === 1">
-					定金¥{{de_price_min}}-{{de_price_max}}抵¥{{swell_price_min}}-{{swell_price_max}}
-				</text>
-				<text class="des" v-if="de_status === 0 && swell_status === 1">
-					定金¥{{de_price}}抵¥{{swell_price_min}}-{{swell_price_max}}
-				</text>
-			</view>
-			<view class="time">
-				尾款支付时间:{{set_time}}
-			</view>
-		</view>
-		<view>
-			<app-share-qr-code v-model="shareShow" :url="url"></app-share-qr-code>
-		</view>
-	</view>
-</template>
-
-<script>
-    import appShareQrCode from '../../../components/page-component/app-share-qr-code-poster/app-share-qr-code-poster.vue';
-	import appSupVip from '../../../components/page-component/app-sup-vip/app-sup-vip.vue';
-	import { mapGetters, mapState } from 'vuex';
-	
-    export default {
-        name: "detail-price-share",
-	    data() {
-            return {
-                price: 0,
-                status: 0,
-                de_price: 0,
-	            de_status: 0,
-                swell_price: 0,
-	            swell_status: 0,
-                de_price_min: 0,
-                de_price_max: 0,
-                swell_price_min: 0,
-                swell_price_max: 0,
-                shareShow: false,
-	            member_price_min: 0,
-	            member_price_max: 0,
-	            member_price_status: 0,
-	            start_end: '',
-            }
-	    },
-	    props: {
-            price_min: Number,
-            price_max: Number,
-            attr: Array,
-            original_price: String,
-            url: String,
-            level_show: Number,
-            group_min_member_price: Number,
-            group_max_member_price: Number,
-            end_prepayment_at: String,
-            pay_limit: Number,
-            cats: Array,
-		    id: Number,
-            discount: {
-                type: String
-            },
-            is_vip_card_user: {
-                type: Number,
-                default() {
-                    return 0;
-                }
-            },
-	    },
-	    mounted() {
-            if (this.price_min === this.price_max) {
-                this.status = 0;
-            } else {
-                this.status = 1;
-            }
-            let deposit = [];
-            let swell_deposit = [];
-            for (let i = 0; i < this.attr.length; i++) {
-                deposit.push(this.attr[i].deposit);
-                swell_deposit.push(this.attr[i].swell_deposit);
-            }
-            let max = Math.max.apply(null, deposit);
-            let min = Math.min.apply(null, deposit);
-            let swell_max = Math.max.apply(null, swell_deposit);
-            let swell_min = Math.min.apply(null, swell_deposit);
-            if (max === min) {
-                this.de_price = min;
-                this.de_status = 0;
-            } else {
-                this.de_status = 1;
-                this.de_price_min = min;
-                this.de_price_max = max;
-            }
-            if (swell_min === swell_max) {
-                this.swell_price = swell_min;
-                this.swell_status = 0;
-            } else {
-                this.swell_status = 1;
-                this.swell_price_min = swell_min;
-                this.swell_price_max = swell_max;
-            }
-            if (this.group_min_member_price === this.group_max_member_price) {
-                this.member_price_status = 0;
-            } else {
-                this.member_price_status = 1;
-            }
-        },
-	    computed: {
-            set_time() {
-                if (this.pay_limit === -1) {
-                    return `${this.getDate(this.end_prepayment_at)} ~ 无期限`
-                } else {
-                    this.addDate(this.end_prepayment_at, this.pay_limit);
-                    return `${this.getDate(this.end_prepayment_at)} ~ ${this.addDate(this.end_prepayment_at, this.pay_limit)}`
-                }
-            },
-            ...mapGetters('mallConfig',{
-                vip: 'getVip'
-            }),
-            ...mapState({
-                mall: state => state.mallConfig.mall,
-                isUnderlinePrice: state => state.mallConfig.mall.setting.is_underline_price,
-            })
-	    },
-	    methods: {
-            addDate(date, days) {
-                if(days == undefined || days == '') {
-                      days = 1;
-                 }
-                var date = new Date(date.replace(/-/g, '/'));
-                date.setDate(date.getDate() + days);
-                let month = date.getMonth() + 1;
-                let day = date.getDate();
-                let mm = "'" + month + "'";
-                let dd = "'" + day + "'";
-                if(mm.length == 3) {
-                    month = "0" + month;
-                }
-                if(dd.length == 3) {
-                    day = "0" + day;
-                }
-                let hour = date.getHours();//得到小时
-                let minu = date.getMinutes();//得到分钟
-                let sec = date.getSeconds();//得到秒
-				if (sec === 0) {
-				    sec = 59;
-				    if (minu === 0) {
-                        minu = 59;
-                        if (hour === 0) {
-                            hour = 23;
-                            day = '0' + Number(day) -1;
-                        } else {
-                            hour = hour -1;
-                        }
-				    } else {
-				        minu = minu - 1;
-				    }
-				} else {
-                    sec = sec -1;
-				}
-				sec = `${sec}`;
-                minu = `${minu}`;
-                hour = `${hour}`;
-                if (hour.length === 1) {
-                    hour = `0${hour}`
-	            }
-                if (minu.length === 1) {
-                    minu = `0${minu}`
-                }
-                if (sec.length === 1) {
-                    sec = `0${sec}`
-                }
-                let time = date.getFullYear() + "." + month + "." + day + ' ' + hour +':' + minu + ':' + sec;
-                return time;
-            },
-            getDate(end_prepayment_at) {
-                let newDate = new Date(end_prepayment_at.replace(/-/g, '/'));
-                newDate.setDate(newDate.getDate());
-                let month = newDate.getMonth() + 1;
-                let day = newDate.getDate();
-                let mm = "'" + month + "'";
-                let dd = "'" + day + "'";
-                let hour = newDate.getHours();//得到小时
-                let minu = newDate.getMinutes();//得到分钟
-                let sec = newDate.getSeconds();//得到秒
-                sec = `${sec}`;
-                minu = `${minu}`;
-                hour = `${hour}`;
-                if(mm.length == 3) {
-                    month = "0" + month;
-                }
-                if(dd.length == 3) {
-                    day = "0" + day;
-                }
-                if (hour.length === 1) {
-                    hour = `0${hour}`
-                }
-                if (minu.length === 1) {
-                    minu = `0${minu}`
-                }
-                if (sec.length === 1) {
-                    sec = `0${sec}`
-                }
-                let time = newDate.getFullYear() + "." + month + "." + day + ' ' + hour +':' + minu + ':' + sec;
-                return time;
-            },
-		    share_show() {
-                if (this.$user.isLogin()) {
-                    this.shareShow = true;
-                } else {
-                    this.$user.getInfo();
-                }
-		    },
-	    },
-        components: {
-            'app-share-qr-code': appShareQrCode,
-	        'app-sup-vip': appSupVip,
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	.detail-price-share {
-		padding: #{18rpx 24rpx 24rpx 24rpx};
-		background-color: #ffffff;
-		.presale {
-			font-size: #{56rpx};
-			color: #ff4544;
-			margin-right: #{16rpx};
-			font-family: DIN;
-			text-align: end;
-			.symbol {
-				font-size: #{32rpx};
-			}
-		}
-		.title {
-			font-size: #{28rpx};
-			color: #ff4544;
-			
-		}
-		.des {
-			font-size: #{26rpx};
-			line-height: #{26rpx};
-			color: #ff4544;
-		}
-		.original-price {
-			font-size: #{24rpx};
-			color: #999999;
-			margin-top: #{8rpx};
-			text-decoration:line-through;
-		}
-		.share {
-			margin-top: #{23rpx};
-			width: #{50rpx};
-			height: #{80rpx};
-			padding: #{5rpx};
-			>image {
-				width: #{40rpx};
-				height: #{40rpx};
-			}
-			>text{
-				font-size: #{21rpx};
-				color: #666666;
-				white-space: nowrap;
-			}
-		}
-	}
-	.member-price {
-		.symbol {
-			font-size: #{23rpx};
-		}
-		.member {
-			color: #f39800;
-			font-family: DIN;
-			.m-p {
-				font-family: DIN;
-				font-size: #{40rpx};
-			}
-			.logo {
-				display: inline-block;
-				font-size: #{20rpx};
-				border: #{1rpx} solid #f39800;
-				background-color: rgba(243, 154, 5, 0.1);
-				padding: #{2rpx 4rpx};
-				margin-left: #{12rpx};
-				border-radius: #{8rpx};
-				margin-bottom: #{5rpx};
-			}
-		}
-		.yushou {
-			.p {
-				font-size: #{26rpx};
-				color: #ff4544;
-				font-family: DIN;
-				
-			}
-			.p-t {
-				font-size: #{26rpx};
-				color: #ff4544;
-				margin-left: #{8rpx};
-			}
-		}
-		.ori {
-			text-decoration:line-through;
-			color: #999999;
-			font-size: #{24rpx};
-			margin-left: #{16rpx};
-		}
-	}
-	.time {
-		font-size: #{22rpx};
-		color: #999999;
-	}
-</style>

+ 0 - 106
plugins/advance/components/detail-vip.vue

xqd
@@ -1,106 +0,0 @@
-<template>
-	<view class="detail-vip" @click="nav">
-		<image class="bg" src="../image/S-VIP-BG.png"></image>
-		<view class="content dir-left-nowrap">
-			<view class="item icon">
-				<image class="icon" src="../image/v-logo.png"></image>
-			</view>
-			<view class="item text dir-top-nowrap">
-				<text class="big text">开通{{name}}超级会员,立省更多</text>
-				<text class="small text">超值全场{{discount}}折!</text>
-			</view>
-			<view class="item button">
-				<view class="button">
-					立即开通
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'detail-vip',
-	    props: {
-            discount: String,
-            name: String,
-	    },
-	    methods: {
-            nav() {
-                uni.navigateTo({
-	                url: `/plugins/vip_card/index/index`,
-                })
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.detail-vip {
-		position: relative;
-		width: #{750upx};
-		height: #{120upx};
-		padding: #{0 24upx};
-		background-color: #ffffff;
-		.bg {
-			width: 100%;
-			height: #{120upx};
-			border-radius: #{14upx};
-		}
-		.content {
-			position: absolute;
-			top: 0;
-			left: #{24upx};
-			width: calc(100% - #{48upx});
-			height: #{120upx};
-		}
-		.item {
-			height: 100%;
-			.icon {
-				width: #{60upx};
-				height: #{60upx};
-				margin: #{36upx 0 0 26upx};
-			}
-			.text {
-				color: #e9ceb9;
-			}
-			.big {
-				font-size: #{26upx};
-				line-height: 1;
-				margin-top: #{30upx};
-				margin-bottom: #{12upx};
-				word-break: break-all;
-				text-overflow: ellipsis;
-				display: -webkit-box;
-				-webkit-box-orient: vertical;
-				-webkit-line-clamp: 1;
-				overflow: hidden;
-				white-space: normal;
-			}
-			.small {
-				font-size: #{21upx};
-				line-height: 1;
-			}
-		}
-		.item.icon {
-			width: #{115upx};
-		}
-		.item.text {
-			width: #{417upx};
-		}
-		.item.button {
-			width: #{170upx};
-			.button {
-				width: #{120upx};
-				height: #{48upx};
-				text-align: center;
-				border-radius: #{24upx};
-				background: linear-gradient(to right, #fbdec8, #f3be94);
-				font-size: #{24upx};
-				line-height: 2;
-				color: #342e25;
-				margin-top: #{36upx};
-			}
-		}
-	}
-</style>

+ 0 - 233
plugins/advance/components/index-product-list.vue

xqd
@@ -1,233 +0,0 @@
-<template>
-	<view class="product-list" v-if="product.length > 0">
-		<view class="item" v-for="(item, index) in newProduct" :key="index" :class="{'item-bottom-bor': index !== product.length-1}" @click="route_jump(item)">
-			<app-form-id>
-				<view class="item-in dir-left-wrap main-between cross-center">
-					<image class="goods-cover" :src="item.cover_pic" :lazy-load="true"></image>
-					<view class="out-dialog" v-if="item.goods_stock == 0 && appSetting.is_show_stock == '1'">
-						<image :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>
-					</view>
-					<view class="item-content dir-top-nowrap main-between">
-						<view>
-							<text class="item-name">{{item.name}}</text>
-							<view class="item-time dir-left-wrap">
-								<image  class="icon" src="/static/image/icon/time.png"></image>
-								<text class="text">距预售截止:</text>
-								<text class="text-time">{{item.html}}</text>
-							</view>
-						</view>
-						<view class="price-button dir-left-nowrap main-between">
-							<view class="price">
-								<text class="symbol" v-if="item.use_attr == 0">定金¥{{Number(item.advanceGoods.deposit)}}抵¥{{Number(item.advanceGoods.swell_deposit)}}</text>
-								<text class="symbol" v-if="item.use_attr == 1">定金¥{{Number(item.attr[0].deposit)}}抵¥{{Number(item.attr[0].swell_deposit)}}</text>
-								<view class="dir-left-nowrap cross-center">
-									<template v-if="item.is_level == 1">
-										<app-member-price :price="item.level_price"></app-member-price>
-									</template>
-									<app-sup-vip :is_vip_card_user="item.vip_card_appoint.is_vip_card_user" margin="0 0 0 10rpx" v-if="item.vip_card_appoint.discount > 0" :discount="item.vip_card_appoint.discount"></app-sup-vip>
-								</view>
-								<view class="all-price">
-									<text class="new-price">¥{{Number(item.price)}}</text>
-									<text class="old-price">¥{{Number(item.original_price)}}</text>
-								</view>
-							</view>
-							<view v-if="item.goods_stock > 0" class="button">抢购</view>
-						</view>
-					</view>
-				</view>
-			</app-form-id>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {mapGetters, mapState} from 'vuex';
-    import appMemberPrice from "../../../components/page-component/app-member-mark/app-member-price.vue";
-	import svipPrice from '../../../components/page-component/app-sup-vip/app-sup-vip.vue';
-	
-    export default {
-        name: 'index-product-list',
-        props: {
-            product: {
-                type: Array,
-	            default() {
-                    return [];
-	            }
-            }
-        },
-	    methods: {
-            route_jump(data) {
-				// #ifndef MP-BAIDU
-				if (data.goodsWarehouse.video_url && this.getVideo == 1) {
-					uni.navigateTo({
-						url: `/pages/goods/video?goods_id=${data.id}&sign=advance`
-					});
-				} else {
-					uni.navigateTo({
-						url: data.page_url,
-					});
-				}
-				// #endif
-
-				// #ifdef MP-BAIDU
-				uni.navigateTo({
-					url: data.page_url,
-				});
-				// #endif
-            }
-	    },
-	    computed: {
-            newProduct() {
-                for (let i = 0; i < this.product.length; i++) {
-                    let attr = this.product[i].attr;
-                    let compare = function (obj1, obj2) {
-                        let val1 = Number(obj1.deposit);
-                        let val2 = Number(obj2.deposit);
-                        if (val1 < val2) {
-                            return -1;
-                        } else if (val1 > val2) {
-                            return 1;
-                        } else {
-                            return 0;
-                        }
-                    };
-                    this.product[i].attr = attr.sort(compare);
-                }
-                return this.product;
-            },
-            ...mapGetters('mallConfig',{
-                vip: 'getVip',
-				getVideo: 'getVideo'
-            }),
-            ...mapState({
-                appImg: state => state.mallConfig.__wxapp_img.mall,
-                appSetting: state => state.mallConfig.mall.setting,
-                mall: state => state.mallConfig.mall
-            })
-	    },
-        components: {
-            'app-member-price': appMemberPrice,
-	        'app-sup-vip': svipPrice,
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-	.product-list {
-		width: #{750rpx};
-		.item {
-			height: #{268rpx};
-			background-color: #ffffff;
-			width: 100%;
-			padding: #{24rpx};
-			position: relative;
-			.item-in {
-				width: #{702rpx};
-				height: #{220rpx};
-				.goods-cover {
-					width: #{220rpx};
-					height: #{220rpx};
-					border-radius: #{12rpx};
-				}
-				.out-dialog {
-					width: #{220rpx};
-					height: #{220rpx};
-					position: absolute;
-					bottom: 0;
-					left: 0;
-					background-color: rgba(0,0,0,.5);
-					image {
-						width: #{220rpx};
-						height: #{220rpx};
-					}
-				}
-				.item-content {
-					width: #{458rpx};
-					height: #{220rpx};
-				}
-				.item-name {
-					width: #{458rpx};
-					line-height: #{40rpx};
-					padding: #{7rpx} 0;
-					font-size: #{25rpx};
-					color: #353535;
-					word-break: break-all;
-					text-overflow: ellipsis;
-					display: -webkit-box;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-				}
-				.item-time {
-					width: #{458rpx};
-					height: #{24rpx};
-					margin-top: #{8rpx};
-					line-height: #{24rpx};
-					.icon {
-						width: #{24rpx};
-						height: #{24rpx};
-						margin-right: #{12rpx};
-					}
-					.text {
-						font-size: #{25rpx};
-						color: #adadad;
-					}
-					.text-time {
-						font-size: #{25rpx};
-						color: #ff4544;
-					}
-				}
-				.price-button {
-					width: #{458rpx};
-					height: #{73rpx};
-					margin-bottom: #{28rpx};
-					.price {
-						width: #{354rpx};
-						height: #{73rpx};
-						.symbol {
-							display: inline-block;
-							padding: #{4rpx 4rpx};
-							font-size: #{24rpx};
-							color: #ff4544;
-							border: #{1rpx} solid #ff4544;
-							border-radius: #{8rpx};
-							line-height: 1;
-							margin: #{8upx 0 8upx 0};
-						}
-						.all-price {
-							line-height: 1;
-							font-size: #{28rpx};
-							margin-top: #{8upx};
-							.new-price {
-								font-size: #{28rpx};
-								color: #ff4544;
-								line-height: 1;
-							}
-							.old-price {
-								font-size: #{21rpx};
-								color: #999999;
-								text-decoration: line-through;
-								margin-left: #{12rpx};
-								line-height: 1;
-							}
-						}
-					}
-					.button {
-						width: #{104rpx};
-						height: #{56rpx};
-						margin-top: #{60rpx};
-						background-color: #ff4544;
-						border-radius: #{28rpx};
-						font-size: #{28rpx};
-						color: #ffffff;
-						text-align: center;
-						line-height: #{56rpx};
-					}
-				}
-			}
-		}
-		.item-bottom-bor {
-			border-bottom: #{1rpx} solid #eeeeee;
-		}
-	}
-</style>

+ 0 - 44
plugins/advance/components/index-swipe.vue

xqd
@@ -1,44 +0,0 @@
-<template>
-	<view class="swipe">
-		<swiper class="swipe" :indicator-dots="pictures.length > 1" :autoplay="pictures.length > 1" :circular="pictures.length > 1">
-			<swiper-item v-for="(item, index) in pictures" :key="index">
-				<app-form-id>
-					<image :lazy-load="true" :src="item.pic_url" class="image" @click="route_jump(item)"></image>
-				</app-form-id>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'index-swipe',
-	    props: {
-            pictures: {
-                type: Array,
-	            default() {
-                    return [];
-                }
-            }
-	    },
-	    methods: {
-            route_jump(data) {
-                this.$jump({
-	                url: data.page_url,
-                    open_type: data.open_type,
-                })
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.swipe {
-		width: #{750rpx};
-		height: #{280rpx};
-		.image {
-			width: #{750rpx};
-			height: #{280rpx};
-		}
-	}
-</style>

+ 0 - 97
plugins/advance/components/search-input.vue

xqd
@@ -1,97 +0,0 @@
-<template>
-	<view class="search-input dir-left-nowrap">
-		<view class="input-view main-center dir-top-nowrap">
-			<view class="input" @click="route_jump('/plugins/advance/search/search')">
-				<app-form-id>
-					<view class="input-in dir-left-nowrap main-center cross-center">
-						<image class="icon" src="/static/image/icon/search.png"></image>
-						<text class="font">搜索</text>
-					</view>
-				</app-form-id>
-			</view>
-		</view>
-		<view class="jump-button">
-			<app-form-id @click="route_jump('/plugins/advance/order/order')">
-				<div class="jump-button dir-left-wrap main-center cross-center">
-					<image class="icon" src="../image/pre-sale-logo.png"></image>
-					<text class="font">我的预定</text>
-				</div>
-			</app-form-id>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "search-input",
-	    methods: {
-            route_jump(data) {
-                if (this.$user.isLogin() && data === '/plugins/advance/order/order') {
-                    uni.navigateTo({
-                        url: data,
-                    })
-                } else if (!this.$user.isLogin() && data === '/plugins/advance/order/order') {
-                    this.$user.getInfo().then(info => {
-                        uni.navigateTo({
-                            url: data,
-                        })
-                    }).catch(error => {
-                    });
-                } else {
-                    uni.navigateTo({
-                        url: data,
-                    })
-                }
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.search-input {
-		height: #{88rpx};
-		box-shadow: inset 0 0 1px 0 rgba(0, 0, 0, 0.15);
-		background-color: #efeff4;
-		position: fixed;
-		top: 0;
-		left: 0;
-		z-index: 1500;
-	}
-	.jump-button {
-		width: #{224rpx};
-		height: #{88rpx};
-		.icon {
-			width: #{42rpx};
-			height: #{42rpx};
-			margin-right: #{8rpx};
-		}
-		.font {
-			font-size: #{26rpx};
-			text-align: center;
-			color: #ff4544;
-		}
-	}
-	.input-view {
-		width: #{526rpx};
-		.input {
-			width: #{503rpx};
-			height: #{56rpx};
-			margin-left: #{23rpx};
-			background-color: #ffffff;
-			border-radius: #{25rpx};
-			.input-in {
-				width: #{503rpx};
-				height: #{56rpx};
-				.icon {
-					width: #{26rpx};
-					height: #{26rpx};
-					margin-right: #{12rpx};
-				}
-				.font {
-					font-size: #{26rpx};
-					color: #b2b2b2;
-				}
-			}
-		}
-	}
-</style>

+ 0 - 48
plugins/advance/components/svip-price.vue

xqd
@@ -1,48 +0,0 @@
-<template>
-	<view class="vip-price dir-left-nowrap">
-		<view class="item left">
-			<image class="vip-icon" src="../image/S-VIP.png"></image>
-		</view>
-		<view class="item right">9.5折</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "vip-price"
-    }
-</script>
-
-<style scoped lang="scss">
-	.vip-price {
-		width: #{148upx};
-		height: #{27upx};
-		.item {
-			height: #{27upx};
-			width: 50%;
-		}
-		.left {
-			border-top-left-radius: #{13upx};
-			border-bottom-left-radius: #{13upx};
-			background-color: #4e4040;
-			position: relative;
-		}
-		.right {
-			border-top-right-radius: #{13upx};
-			border-bottom-right-radius: #{13upx};
-			background: linear-gradient(45deg, #edc9a8, #fdebde);
-			font-size: #{18upx};
-			line-height: #{27upx};
-			text-align: center;
-			color: #4e4040;
-		}
-		.vip-icon {
-			width: #{51upx};
-			height: #{14upx};
-			position:absolute;
-			top: 50%;
-			left: 50%;
-			transform: translate(-50%, -50%);
-		}
-	}
-</style>

+ 0 - 453
plugins/advance/detail/detail.vue

xqd
@@ -1,453 +0,0 @@
-<template>
-	<app-layout>
-		<view class="detail" v-if="loading">
-			<view>
-				<app-quick-navigation></app-quick-navigation>
-			</view>
-			<view class="goods-banner">
-				<app-goods-banner
-						:picList="detail.pic_url"
-						:share="detail.share"
-						:isCart="false"
-						:videoUrl="detail.video_url"
-						:goods_id="detail.id"
-						sign="advance"
-				></app-goods-banner>
-			</view>
-			<view class="detail-ad" v-if="detail.advanceGoods.end_prepayment_at">
-				<detail-ad :sales="detail.sales"
-				           :d="d"
-				           :h="h"
-				           :m="m"
-				           :s="s"
-				></detail-ad>
-			</view>
-			
-			<!-- 详情标题 -->
-			<view class="goods-name">
-				<app-name :name="detail.name"></app-name>
-			</view>	
-
-			<view class="price-share" v-if="detail.attr.length > 0">
-				<detail-price-share
-						:url="url"
-						:original_price="detail.original_price"
-						:attr="detail.attr"
-						:price_min="detail.price_min"
-						:price_max="detail.price_max"
-						:group_max_member_price="detail.group_max_member_price"
-						:group_min_member_price="detail.group_min_member_price"
-						:end_prepayment_at="detail.advanceGoods.end_prepayment_at"
-						:pay_limit="detail.advanceGoods.pay_limit"
-						:level_show="detail.level_show"
-						:cats="detail.goodsWarehouse.cats"
-						:id="detail.id"
-						:is_vip_card_user="detail.vip_card_appoint.is_vip_card_user"
-						:discount="detail.vip_card_appoint.discount"
-				></detail-price-share>
-			</view>
-			<view class="join-member" v-if="detail.level_show == 2">
-				<app-join-member
-						:member-min-price="`${detail.group_min_member_price}`"
-						:member-max-price="`${detail.group_min_member_price}`"
-						:price="`${detail.original_price}`"
-				></app-join-member>
-			</view>
-			<view class="detail-vip" v-if="detail.vip_card_appoint.discount > 0">
-				<app-vip-card
-					top="0"
-					background="#fff"
-				></app-vip-card>
-			</view>
-			<view class="detail-discount" v-if="detail.advanceGoods.ladder_rules.length>0">
-				<detail-discount :url="url"
-					:ladder_rules="detail.advanceGoods.ladder_rules"
-					             :sales="detail.sales"
-				></detail-discount>
-			</view>
-			<view class="goods-service" v-if="detail.services.length>0" >
-				<app-goods-service :list="detail.services" :border="false"></app-goods-service>
-			</view>
-			<view class="select-attr" @click="active = false">
-				<app-goods-attr
-						:selectAttr="{attr_list: select_attr_group}"
-						:attr-groups="detail.attr_groups">
-				</app-goods-attr>
-			</view>
-			<view class="app-goods-marketing">
-				<app-goods-marketing :express="item.express"></app-goods-marketing>
-			</view>
-			<view class="goods-detail">
-				<app-goods-detail :goods="detail"></app-goods-detail>
-			</view>
-			<view class="detail-attr" v-if="!active && detail.attr.length>0">
-				<detail-attr
-						:height="Number(110)"
-						:cover_pic="detail.cover_pic"
-						:attr="detail.attr"
-						:attr_groups="detail.attr_groups"
-						:goods_stock="detail.goods_stock"
-						:attr_deposit="attr_deposit"
-						:attr_swell_deposit="attr_swell_deposit"
-						:attr_stock="attr_stock"
-						:attr_price="attr_price"
-						:attr_price_member="attr_price_member"
-						:level_show="detail.level_show"
-						:attr_pic_url="attr_pic_url"
-						@select_attr="select_attr"
-						@close_attr="close_attr"
-						:num="num"
-						:detail="detail"
-						@change_num="change_num"
-						@change_num_data="change_num_data"
-				></detail-attr>
-			</view>
-
-			<!-- 相关推荐 -->
-			<view class="app-recommend">
-				<app-related-suggestion-product text="您或许会喜欢" sign="advance"  :list="list"></app-related-suggestion-product>
-			</view>
-
-			<!-- 空白格 -->
-			<view>
-				<app-empty-bottom :height="Number(110)"></app-empty-bottom>
-			</view>
-
-			<view class="app-button">
-				<app-iphone-x>
-					<view slot="empty-area">
-						<detail-bottom-button 
-							@close_attr="close_attr"
-							:favorite="detail.favorite"
-							:active="active"
-							:goods_id="detail.id"
-							@favorite="favorite"
-							:detail="detail"
-							:num="num"
-							:end_prepayment_at="detail.advanceGoods.end_prepayment_at"
-							@request="request_detail"
-						></detail-bottom-button>
-					</view>
-				</app-iphone-x>
-			</view>
-		</view>
-	</app-layout>
-</template>
-
-<script>
-	import {mapGetters} from'vuex';
-	import {mapState} from'vuex';
-    import appGoodsBanner from '../../../components/page-component/goods/app-goods-banner.vue';
-	import detailAd from '../components/detail-ad.vue';
-    import appIphoneX from '../../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-    import appGoodsDetail from '../../../components/page-component/goods/app-goods-detail.vue';
-	import detailPriceShare from '../components/detail-price-share.vue';
-	import detailBottomButton from '../components/detail-bottom-button.vue';
-    import appEmptyBottom from '../../../components/basic-component/app-empty-bottom/app-empty-bottom.vue';
-	import detailAttr from '../components/detail-attr.vue';
-    import appJoinMember from '../../../components/page-component/app-join-member/app-join-member.vue';
-	import appGoodsService from '../../../components/page-component/goods/app-goods-service.vue'
-    import appRelatedSuggestionProduct from '../../../components/page-component/app-related-suggestion-product/app-related-suggestion-product.vue';
-	import detailDiscount from '../components/detail-discount.vue';
-	import detailVip from '../components/detail-vip.vue';
-	import appVipCard from '../../../components/page-component/app-vip-card/app-vip-card.vue';
-	import appName from '../../../components/page-component/app-goods-detail/app-name.vue';
-
-    import appQuickNavigation from '../../../components/page-component/app-quick-navigation/app-quick-navigation.vue';
-	import appGoodsAttr from '../../../components/page-component/goods/app-goods-attr.vue';
-    import appGoodsMarketing from '../../../components/page-component/goods/app-goods-marketing.vue';
-	
-    export default {
-        name: "detail",
-	    data() {
-            return {
-                detail: {},
-                active: true,
-	            attr_deposit: '0',
-	            attr_swell_deposit: '0',
-	            attr_stock: 0,
-                attr_price: '0',
-                attr_price_member: 0,
-	            url: '',
-                level_show: 0,
-	            loading: false,
-	            select_attr_group: [],
-                zhe: false,
-                list: [],
-	            num: 1,
-                shareShow: false,
-                attr_pic_url: '',
-                goods_id: -1,
-                d: 0,
-                h: 0,
-                m: 0,
-                s: 0,
-                end_time: -1,
-            }
-	    },
-		onLoad(data) {
-            this.goods_id = data.id;
-	    },
-	    onShow() {
-            this.$nextTick(() => {
-				this.request_detail({id: this.goods_id});
-				this.$request({
-					url: this.$api.advance.goods_list,
-					data: {
-						goods_id: this.goods_id,
-					}
-            	}).then(response => {
-					if (response.code === 0) {
-						this.list = response.data.list;
-					} else if (response.code === 1) {
-						uni.showModal({
-							title: '提示',
-							content: response.msg,
-						});
-					}
-            	});
-			})
-	    },
-	    onHide() {
-            clearInterval(this.end_time);
-	    },
-        onUnload() {
-            clearInterval(this.end_time);
-        },
-	    methods: {
-            request_detail(data) {
-                uni.showLoading({
-	                title: '加载中',
-                });
-                this.$request({
-                    url: this.$api.advance.detail,
-                    data: {
-                        id: data.id,
-                    },
-                    method: 'get',
-                }).then(res => {
-                    if (res.code === 0) {
-                        uni.hideLoading();
-                        this.detail = res.data.detail;
-                        this.detail.num = 1;
-                        this.loading = true;
-                        this.url = `${this.$api.advance.poster}&goods_id=${this.detail.id}`;
-                        this.getTime(this.detail.advanceGoods.end_prepayment_at);
-                        this.set_attr_active();
-                    } else if (res.code === 1) {
-                        uni.showModal({
-                            title: '提示',
-                            content: res.msg,
-                        });
-                    }
-                });
-            },
-            open_share() {
-                this.shareShow = true;
-            },
-            change_num(data) {
-                this.num += data;
-            },
-            change_num_data(data) {
-                this.num = data;
-            },
-            favorite(data) {
-                this.detail.favorite = data;
-            },
-            select_attr(data, item) {
-                let attr_groups = this.detail.attr_groups;
-                let str = ':';
-                let sd = 0;
-                for (let i = 0; i < attr_groups.length;i++) {
-                    let attr_list = this.detail.attr_groups[i].attr_list;
-                    for (let j = 0; j < attr_list.length; j++) {
-                        if (attr_groups[i].attr_group_id === data && attr_list[j].attr_id === item) {
-                            this.$set(this.detail.attr_groups[i].attr_list[j], 'active', true);
-                        } else if (attr_groups[i].attr_group_id === data && attr_list[j].attr_id !== item){
-                            this.$set(this.detail.attr_groups[i].attr_list[j], 'active', false);
-                        }
-                        if (this.detail.attr_groups[i].attr_list[j].active) {
-                            sd = this.detail.attr_groups[i].attr_list[j].attr_id;
-                            str += `:${sd}`;
-                        }
-                    }
-                }
-                let result = str.substr(2);
-                this.get_price_stock(result);
-            },
-		    set_attr_active() {
-                let item = 0;
-                let str = ':';
-                for (let i = 0; i < this.detail.attr_groups.length;i++) {
-                    for (let j = 0; j < this.detail.attr_groups[i].attr_list.length; j++) {
-                        if (j !== 0) {
-                            this.$set(this.detail.attr_groups[i].attr_list[j], 'active', false);
-                        } else if (j === 0) {
-                            item = this.detail.attr_groups[i].attr_list[j].attr_id;
-                            str += `:${item}`;
-                            this.$set(this.detail.attr_groups[i].attr_list[j], 'active', true);
-                        }
-                    }
-                }
-                this.get_price_stock(str.substr(2));
-            },
-		    get_price_stock(data) {
-                let attr = this.detail.attr;
-                for (let i = 0; i < attr.length;i++) {
-                    if (attr[i].sign_id === data) {
-                        this.select_attr_group = attr[i].attr_list;
-                        let { deposit, swell_deposit, stock, price, price_member, pic_url } = attr[i];
-                        this.attr_deposit = deposit;
-                        this.attr_swell_deposit = swell_deposit;
-                        this.attr_stock = stock;
-                        this.attr_price = price;
-                        this.attr_price_member = price_member;
-                        this.attr_pic_url = pic_url
-                    }
-                }
-		    },
-            close_attr(data) {
-                this.active = data;
-            },
-		    getTime(end_prepayment_at) {
-                let time = new Date(end_prepayment_at.replace(/-/g, '/')).getTime() - (new Date()).getTime();
-                console.log(end_prepayment_at);
-                this.d = parseInt((time/1000/60/60/24));
-                this.h = parseInt((time/1000/60/60)%24);
-                this.m = parseInt((time/1000/60)%60);
-                this.s = parseInt((time/1000)%60);
-                this.end_time = setInterval(() => {
-                    let now = new Date().getTime();
-                    let timelog = new Date(end_prepayment_at.replace(/-/g, '/')).getTime();
-                    let time = timelog - now;
-                    if (time > 0) {
-                        let day = parseInt((time/1000/60/60/24));
-                        let hou = parseInt((time/1000/60/60)%24);
-                        let min = parseInt((time/1000/60)%60);
-                        let sec = parseInt((time/1000)%60);
-                        this.d = day;
-                        this.h = hou;
-                        this.m = min;
-                        this.s = sec;
-                    } else {
-                        clearInterval(this.end_time);
-                    }
-                }, 1000);
-		    },
-	    },
-        components: {
-            'app-goods-banner': appGoodsBanner,
-	        'detail-ad': detailAd,
-            'app-iphone-x': appIphoneX,
-            'app-goods-detail': appGoodsDetail,
-	        'detail-price-share': detailPriceShare,
-	        'detail-bottom-button': detailBottomButton,
-            'app-empty-bottom': appEmptyBottom,
-	        'detail-attr': detailAttr,
-            'app-join-member': appJoinMember,
-	        'app-goods-service': appGoodsService,
-            'app-related-suggestion-product': appRelatedSuggestionProduct,
-	        'detail-discount': detailDiscount,
-	        'detail-vip': detailVip,
-			'app-name': appName,
-	        'app-vip-card': appVipCard,
-            'app-quick-navigation': appQuickNavigation,
-	        'app-goods-attr': appGoodsAttr,
-			'app-goods-marketing': appGoodsMarketing,
-        },
-	    computed: {
-            ...mapGetters('mallConfig',{
-	           vip: 'getVip'
-            }),
-		    ...mapGetters('user', {
-                is_vip: 'is_vip'
-		    }),
-            ...mapState({
-                mall: state => state.mallConfig.mall,
-            })
-	    },
-        onShareAppMessage() {
-            return this.$shareAppMessage({
-                path: '/plugins/advance/detail/detail',
-                title: this.detail.app_share_title ? this.detail.app_share_title : this.detail.name,
-                imageUrl: this.detail.app_share_pic ? this.detail.app_share_pic : '',
-                params: {
-                    id: this.detail.id,
-                }
-            });
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-	
-	.join-member {
-		background-color: #ffffff;
-		padding: 0 #{24rpx};
-		box-sizing: border-box;
-	}
-	.border-top {
-		border-top: #{1rpx} solid #e2e2e2;
-	}
-	.select-attr {
-		width: #{750rpx};
-		line-height: #{100rpx};
-		background-color: white;
-		font-size: #{26rpx};
-		margin: #{20rpx 0};
-		.a-s {
-			height: #{100rpx};
-			line-height: #{100rpx};
-			display: inline-block;
-			white-space: nowrap;
-			width: 100%;
-			overflow: hidden;
-			-webkit-line-clamp: 1;
-			text-overflow: ellipsis;
-		}
-		>image {
-			width: #{12rpx};
-			height: #{22rpx};
-		}
-	}
-	.zhe {
-		height: #{80rpx};
-		background-color: white;
-		width: #{750rpx};
-		padding: 0 #{24rpx};
-		margin-top: #{20rpx};
-		.symbol {
-			width: #{116rpx};
-			font-size: #{20rpx};
-			color: #ff4544;
-			border: #{1rpx} solid #ff4544;
-			border-radius: #{4rpx};
-			text-align: center;
-		}
-		.image {
-			width: #{12rpx};
-			height: #{22rpx};
-		}
-		.content {
-			width: #{520rpx};
-			font-size: #{21rpx};
-			color: #666666;
-			word-break: break-all;
-			text-overflow: ellipsis;
-			display: -webkit-box;
-			-webkit-box-orient: vertical;
-			-webkit-line-clamp: 1;
-			overflow: hidden;
-			margin-left: #{12rpx};
-		}
-	}
-	.detail-discount {
-		margin: #{20rpx 0};
-	}
-	.goods-service {
-		margin-top: #{20rpx};
-	}
-	.detail-vip {
-		margin-bottom: #{10upx};
-	}
-</style>

BIN=BIN
plugins/advance/image/S-VIP-BG.png


BIN=BIN
plugins/advance/image/S-VIP.png


BIN=BIN
plugins/advance/image/delete.png


BIN=BIN
plugins/advance/image/open.png


BIN=BIN
plugins/advance/image/order.png


BIN=BIN
plugins/advance/image/pre-sale-logo.png


BIN=BIN
plugins/advance/image/product.png


BIN=BIN
plugins/advance/image/v-logo.png


+ 0 - 139
plugins/advance/index/index.vue

xqd
@@ -1,139 +0,0 @@
-<template>
-	<app-layout>
-		<view class="index">
-			<view class="search-input">
-				<search-input></search-input>
-			</view>
-			<view class="index-swipe" v-if="picture_list.length > 0">
-				<index-swipe :pictures="picture_list"></index-swipe>
-			</view>
-			<view class="index-product-list">
-				<product-list :product="product_list" ></product-list>
-			</view>
-		</view>
-	</app-layout>
-</template>
-
-<script>
-	import searchInput from '../components/search-input.vue';
-	import indexSwipe from '../components/index-swipe.vue';
-	import indexProductList from '../components/index-product-list.vue';
-	
-    export default {
-        name: 'index',
-	    data() {
-            return {
-                product_list: [],
-                picture_list: [],
-                page_count: 1,
-                interval: null,
-	            page: 1,
-            }
-	    },
-	    onHide() {
-            clearInterval(this.interval);
-	    },
-        onUnload() {
-            clearInterval(this.interval);
-        },
-	    onLoad() {
-            this.requestBanner().then(() => {
-                this.requestList();
-            });
-	    },
-	    methods: {
-            cutoffTime(product_list) {
-                let now = (new Date()).getTime();
-                product_list.map((item, index) => {
-                    let end_time = new Date(item.advanceGoods.end_prepayment_at.replace(/-/g, '/')).getTime();
-                    let timing = end_time - now;
-                    if (timing > 0) {
-                        let day = parseInt(timing/1000/60/60/24);
-                        let hou = parseInt((timing/1000/60/60)%24);
-                        let min = parseInt((timing/1000/60)%60);
-                        let sec = parseInt((timing/1000)%60);
-                        if (day > 0) {
-                            this.$set(product_list[index], 'html', `${day}天${hou}:${(min<10?"0"+min:min)}:${(sec<10?"0"+sec:sec)}`);
-                        } else {
-                            this.$set(product_list[index], 'html', `${hou}:${(min<10?"0"+min:min)}:${(sec<10?"0"+sec:sec)}`);
-                        }
-                    } else {
-                        this.$delete(product_list, index);
-                        if (this.product_list.length < 10 && this.page_count > 1) {
-                            this.product_list = [];
-                            this.requestList();
-                        }
-                    }
-                })
-            },
-		    
-            set_interval() {
-                clearInterval(this.interval);
-                this.cutoffTime(this.product_list);
-                this.interval = setInterval(() => {
-                    this.cutoffTime(this.product_list);
-                }, 1000);
-            },
-		    
-		    async requestList() {
-                const res = await this.$request({
-                    url: this.$api.advance.goods,
-                    method: 'get',
-                    data: {
-                        page: this.page,
-                    }
-                });
-                if (res.code === 0) {
-                    this.product_list.push(...res.data.list);
-                    this.page_count = res.data.pagination.page_count;
-                    this.set_interval();
-                }
-		    },
-		    
-		    async requestBanner() {
-                this.$request({
-                    url: this.$api.advance.banner,
-                    method: 'get',
-                }).then(res => {
-                    if (res.code === 0) {
-                        this.picture_list = res.data.list;
-                    }
-                })
-		    }
-	    },
-	    
-        components: {
-            'search-input': searchInput,
-            'index-swipe' : indexSwipe,
-	        'product-list': indexProductList,
-        },
-	    
-        onShareAppMessage() {
-            return this.$shareAppMessage({
-                path: '/plugins/advance/index/index',
-                title: this.$children[0].navigationBarTitle,
-            });
-        },
-	    
-        onReachBottom() {
-            if (this.page < this.page_count) {
-                this.page++;
-                this.requestList();
-            }
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-	.index {
-		position: absolute;
-		width: 100%;
-		height: 100%;
-		background-color: #f7f7f7;
-		padding-top: #{88upx};
-	}
-	.index-product-list {
-		margin-top: #{20rpx};
-	}
-
-</style>

+ 0 - 17
plugins/advance/order-detail/order-detail.vue

xqd
@@ -1,17 +0,0 @@
-<template>
-	<view class="order-detail"></view>
-</template>
-
-<script>
-    export default {
-        name: "order-detail"
-    }
-</script>
-
-<style scoped lang="scss">
-	.order-detail {
-		position: absolute;
-		width: #{750rpx};
-		height: 100%;
-	}
-</style>

+ 0 - 820
plugins/advance/order/order.vue

xqd
@@ -1,820 +0,0 @@
-<template>
-  <app-layout>
-	  <view class="order">
-		  <view  class="top dir-left-nowrap main-between cross-center">
-			  <view class="top-input cross-center" @click="go_search()" v-if="!search">
-				  <view class="input main-center cross-center">
-					 <image src="/static/image/icon/icon-search.png"></image>
-					  <text>搜索</text>
-				  </view>
-			  </view>
-			  <view class="to-top dir-left-nowrap main-center cross-center" v-if="!search" @click="active = true">
-				  <text>{{active_item}}</text>
-				  <image v-if="!active" class="icon" src="../image/open.png"></image>
-				  <image v-if="active" class="icon icon-active" src="../image/open.png"></image>
-			  </view>
-			  <view class="search dir-left-nowrap cross-center main-between" v-if="search">
-				  <input type="text" class="input" v-model="search_text" @blur="blur_request" @confirm="set_search">
-				  <image class="delete" v-show="search_text.length>0" @click="empyt_search" src="../image/delete.png"></image>
-				  <text style="color:#666666;font-size: 32rpx;" @click="set_search">搜索</text>
-			  </view>
-		  </view>
-		  <view class="do-top" v-if="active" @click.stop="active = false">
-			  <view class="do-top-item"
-			        v-for="(item, index) in select_list"
-			        :key="index"
-			        :class="{'active-item': item.active}"
-			        @click="set_active(item)"
-			  >
-				  {{item.text}}
-			  </view>
-		  </view>
-		  <view style="margin-top: 108rpx;"></view>
-		  <view class="item"  v-for="(item, index) in order_list" :key="index">
-			  <view class="item-top dir-left-wrap main-between cross-center" >
-				  <text class="order-number" style="color: #999999;">订单号{{item.advance_no}}</text>
-				  <text v-if="item.status_num == 1">定金待支付</text>
-				  <text v-else-if="item.status_num == 2">尾款支付未开始</text>
-				  <text v-else-if="item.status_num == 3">尾款待支付</text>
-				  <text v-else-if="item.status_num == 4">购买成功</text>
-				  <text v-else-if="item.status_num == 5">订单已取消</text>
-				  <text v-else-if="item.status_num == 6">订单已售后</text>
-				  <text v-else-if="item.status_num == 7">购买失败 定金支付超时</text>
-				  <text v-else-if="item.status_num == 8">购买失败 定金已退款</text>
-				  <text v-else-if="item.status_num == 9">购买失败 尾款支付超时</text>
-
-			  </view>
-			  <view class="item-center dir-left-nowrap" @click="route_go(item)">
-				  <image class="image" :src="item.goods.goodsWarehouse.cover_pic"></image>
-				  <view class="content">
-					  <view class="name">{{item.goods.goodsWarehouse.name}}</view>
-					  <view class="attr">
-						  <text>{{item.attr_name}}</text>
-					  </view>
-					  <view class="num-price dir-left-nowrap main-between cross-center">
-						  <text>×{{item.goods_num}}</text>
-						  <text>¥{{item.goodsAttr.price}}</text>
-					  </view>
-					  <view class="des-price dir-left-wrap main-right cross-center">
-						  <text>定金</text>
-						  <text :style="{color: item.is_pay == 0 ? '#ff4544' : '#353535'}">¥{{item.deposit}}</text>
-						  <text>抵¥{{item.swell_deposit}}</text>
-						  <text style="color: #ff4544;" v-if="item.status_num == 9">(定金不退)</text>
-					  </view>
-				  </view>
-			  </view>
-			  <view class="item-bottom">
-				  <view class="swell-price main-right cross-center" v-if="item.status_num == 2 || item.status_num == 3 || item.status_num == 4 || item.status_num == 9 ">
-					  <text>尾款</text>
-					  <text style="color: #ff4544;">¥{{item.tail_money}}</text>
-				  </view>
-                  <view v-if="item.status_num == 1" class="text-time">
-                      <text>距截止</text>
-                      <text style="color: #ff4544">{{item.html}}</text>
-                  </view>
-                  <view v-if="item.status_num == 3  && item.pay_limit != -1" class="text-time">
-                      <text>距截止</text>
-                      <text style="color: #ff4544">{{item.html}}</text>
-                  </view>
-				  <view class="filal-payment-time" v-if="item.status_num == 2">
-					  支付尾款时间:{{set_time(item.pay_limit, item.end_prepayment_at)}}
-				  </view>
-				  <view class="button" @click="payFinalPayment(item)" v-if="item.status_num == 3 && item.order_id == 0">
-					  <app-form-id>
-						  <text>
-							  去支付尾款
-						  </text>
-					  </app-form-id>
-				  </view>
-				  <view class="button" @click="payPayment(item, index)" v-else-if="item.status_num == 3 && item.order_id != 0 && item.pay_type != 2">
-					  <app-form-id>
-						  <text>
-							  付款
-						  </text>
-					  </app-form-id>
-				  </view>
-				  <view class="button" @click="payDeposit(item, index)" v-else-if="item.status_num == 1">
-					  <app-form-id>
-						  <text>
-							  去支付定金
-						  </text>
-					  </app-form-id>
-				  </view>
-			  </view>
-		  </view>
-		  <view class="order-empty" v-if="order_list.length === 0">
-			 <image src="../image/order.png"></image>
-			  <text>没有任何订单哦~</text>
-		  </view>
-	  </view>
-  </app-layout>
-</template>
-
-<script>
-export default {
-    name: 'order',
-    data() {
-	    return {
-	      active: false,
-	      active_item: '全部预定',
-	      select_list: [
-	        {
-	          id: -1,
-	          active: true,
-	          text: '全部预定',
-	        },
-	         {
-	           id: 1,
-	          active: false,
-	          text: '定金待支付',
-	        },
-	         {
-	           id: 2,
-	          active: false,
-	          text: '尾款支付未开始',
-	        },
-	         {
-	           id: 3,
-	          active: false,
-	          text: '尾款待支付',
-	        },
-	         {
-	           id: 4,
-	          active: false,
-	          text: '购买成功',
-	        },
-	         {
-	           id: 5,
-	          active: false,
-	          text: '购买失败',
-	        }
-	      ],
-	        order_list: [],
-		    page: 1,
-		    keyword: -1,
-            over: false,
-            interval: null,
-            search: false,
-            search_text: '',
-            oldOrder: [],
-			template_message: []
-	    }
-    },
-	onShow() {
-        this.order_list = [];
-        this.page = 1;
-        this.request(this.keyword).then(() => {
-            this.get_time();
-        });
-	},
-	onHide() {
-        clearInterval(this.interval);
-    },
-    onUnload() {
-        clearInterval(this.interval);
-    },
-    methods: {
-        empyt_search() {
-            this.search = false;
-            this.search_text = '';
-            this.set_active({id: -1});
-            this.active_item = '全部预定';
-        },
-	    set_active(data) {
-            clearInterval(this.interval);
-            this.order_list = [];
-            this.keyword = data.id;
-            this.over = false;
-            this.page = 1;
-            this.request().then(() => {
-                if (data.id === 1 || data.id === -1 || data.id === 3) this.get_time();
-            });
-            for (let i = 0; i < this.select_list.length; i++) {
-		        if (this.select_list[i].id === data.id) {
-		            this.select_list[i].active = true;
-		        } else {
-	                this.select_list[i].active = false;
-		        }
-		      }
-	        this.active = false;
-	        this.active_item = data.text;
-        },
-	    route_go(data) {
-			if (data.status_num == 4) {
-                uni.navigateTo({
-                    url: `/pages/order/order-detail/order-detail?id=${data.order_id}&sign=advance`
-                })
-			}
-	    },
-	    // 支付尾款
-	    payFinalPayment(item) {
-	        let data = [
-                {
-                    "mch_id": item.goods.mch_id,
-                    "goods_list": [
-                        {
-                            "id":item.goods_id,
-                            "attr": JSON.parse(item.goods_info).attr_list,
-                            "num":item.goods_num,
-                            "cat_id":0,
-                            "goods_attr_id":item.goodsAttr.id,
-	                        "advance_id": item.id,
-                        }
-                    ]
-                }
-            ];
-            this.$jump({
-                open_type: 'navigate',
-                url: `/pages/order-submit/order-submit?mch_list=${JSON.stringify(data)}&preview_url=${encodeURIComponent(this.$api.advance.order_preview)}&submit_url=${encodeURIComponent(this.$api.advance.order_sub)}&order_page_url=/plugins/advance/order/order&plugin=advance&total_title=尾款`
-            });
-	    },
-        payPayment(item, index) {
-	        this.$request({
-		        url: this.$api.order.list_pay_data,
-		        data: {
-		            id: item.order_id,
-		        },
-		        method: 'get'
-	        }).then(res => {
-	            if (res.code === 0) {
-                    this.$payment.pay(res.data.id).then(() => {
-                        // 支付成功
-	                    if (this.keyword === -1) {
-                            this.order_list[index].status_num = '4';
-	                    } else {
-                            this.$delete(this.order_list, index);
-                        }
-                    }).catch(() => {
-                        // 支付失败
-                    });
-	            }
-	        })
-        },
-	    // 去支付定金
-	    payDeposit(data, index) {
-			this.$subscribe(this.template_message).then(() => {
-				this.submit(data, index);
-			}).catch(() => {
-				this.submit(data, index);
-			});
-	    },
-		submit(data, index) {
-			let body = {
-				id: data.id,
-				goods_id: data.goods_id,
-				goods_num: data.goods_num,
-				goods_attr_id:data.goodsAttr.id,
-			};
-			this.get_submit(body).then(response => {
-				this.$payment.pay(response.data.id).then((res) => {
-					this.$request({
-						url: this.$api.advance.order,
-						method: 'get',
-						data: {
-							id: data.id,
-						}
-					}).then(response => {
-						if (response.code === 0) {
-							this.$set(this.order_list, index, response.data.list[0]);
-							let attr_name = '';
-							let attr_groups = JSON.parse(this.order_list[index].goods_info);
-							for (let j = 0; j < attr_groups.attr_list.length; j++) {
-								attr_name+= ` ${attr_groups.attr_list[j].attr_group_name}:${attr_groups.attr_list[j].attr_name}`
-							}
-							this.$set(this.order_list[index], 'attr_name', attr_name);
-						} else if (response.code === 1) {
-							uni.showModal({
-								title: '提示',
-								content: res.msg,
-								success(res) {
-									if (res.cancel) {
-										uni.navigateBack();
-									} else if (res.confirm) {
-										uni.navigateBack();
-									}
-								}
-							})
-						}
-					});
-				}).catch(() => {
-				});
-			});
-		},
-	    addDate(date, days) {
-	        if(days == undefined || days == '') {
-	            days = 1;
-	        }
-	        let newDate = new Date(date.replace(/-/g, '/'));
-            newDate.setDate(newDate.getDate() + days);
-            let month = newDate.getMonth() + 1;
-	        let day = newDate.getDate();
-	        let mm = "'" + month + "'";
-	        let dd = "'" + day + "'";
-	        if(mm.length == 3) {
-	            month = "0" + month;
-	        }
-	        if(dd.length == 3) {
-	            day = "0" + day;
-            }
-	       let hour = newDate.getHours();//得到小时
-	       let minu = newDate.getMinutes();//得到分钟
-	       let sec = newDate.getSeconds();//得到秒
-	       if (sec === 0) {
-	         sec = 59;
-	         if (minu === 0) {
-	           minu = 59;
-	           if (hour === 0) {
-                   hour = 23;
-                   day = '0' + Number(day) -1;
-	           } else {
-	               hour = hour -1;
-	           }
-	         } else {
-	           minu = minu - 1;
-	         }
-	       } else {
-	          sec = sec -1;
-	       }
-	       sec = `${sec}`;
-	       minu = `${minu}`;
-	       hour = `${hour}`;
-	       if (hour.length === 1) {
-	           hour = `0${hour}`
-	       }
-	       if (minu.length === 1) {
-	           minu = `0${minu}`
-	       }
-	       if (sec.length === 1) {
-	           sec = `0${sec}`
-	       }
-	       return newDate.getFullYear() + "." + month + "." + day + ' ' + hour +':' + minu + ':' + sec;
-	    },
-	    getDate(end_prepayment_at) {
-            let newDate = new Date(end_prepayment_at.replace(/-/g, '/'));
-            newDate.setDate(newDate.getDate());
-            let month = newDate.getMonth() + 1;
-            let day = newDate.getDate();
-            let mm = "'" + month + "'";
-            let dd = "'" + day + "'";
-            if(mm.length == 3) {
-                month = "0" + month;
-            }
-            if(dd.length == 3) {
-                day = "0" + day;
-            }
-            let hour = newDate.getHours();//得到小时
-            let minu = newDate.getMinutes();//得到分钟
-            let sec = newDate.getSeconds();//得到秒
-            sec = `${sec}`;
-            minu = `${minu}`;
-            hour = `${hour}`;
-            if (hour.length === 1) {
-                hour = `0${hour}`
-            }
-            if (minu.length === 1) {
-                minu = `0${minu}`
-            }
-            if (sec.length === 1) {
-                sec = `0${sec}`
-            }
-            return newDate.getFullYear() + "." + month + "." + day + ' ' + hour +':' + minu + ':' + sec;
-	    },
-	    async request() {
-	        uni.showLoading({
-                title: '加载中'
-	        });
-	        try {
-                const response = await this.$request({
-                    url: this.$api.advance.order,
-                    method: 'get',
-                    data: {
-                        keyword: this.keyword,
-                        page: this.page,
-	                    name: this.search_text,
-                    }
-                });
-                uni.hideLoading();
-                if (response.code === 0) {
-                    this.order_list = [...this.order_list, ...response.data.list];
-                    this.template_message = response.data.template_message;
-                    for (let i = 0; i < this.order_list.length; i++) {
-                        let attr_name = '';
-                        let attr_groups = JSON.parse(this.order_list[i].goods_info);
-                        for (let j = 0; j < attr_groups.attr_list.length; j++) {
-                            attr_name+= ` ${attr_groups.attr_list[j].attr_group_name}:${attr_groups.attr_list[j].attr_name}`
-                        }
-                        this.$set(this.order_list[i], 'attr_name', attr_name);
-                    }
-                }
-	        } catch (e) {
-                uni.hideLoading();
-                uni.navigateTo({
-	                url: `/plugins/advance/index/index`
-                });
-            }
-	    },
-        set_time(pay_limit, end_prepayment_at) {
-            if (pay_limit == -1) {
-                return `${this.getDate(end_prepayment_at)} ~ 无期限`
-            } else {
-                return `${this.getDate(end_prepayment_at)} ~ ${this.addDate(end_prepayment_at, Number(pay_limit))}`
-            }
-        },
-        async get_submit(body) {
-            const response = await this.$request({
-                url: this.$api.advance.order_submit,
-                method: 'post',
-                data: {
-                    ...body,
-                }
-            });
-            if (response.code === 0) {
-                return response;
-            } else if (response.code === 1) {
-                uni.showModal({
-                    title: '提示',
-                    content: response.msg,
-                    success(res) {
-                        if (res.cancel) {
-                            uni.navigateBack();
-                        } else if (res.confirm) {
-                            uni.navigateBack();
-                        }
-                    }
-                })
-            }
-        },
-	    get_time() {
-            clearInterval(this.interval);
-            let now = new Date().getTime();
-            for (let i = 0; i < this.order_list.length; i++) {
-                if (this.order_list[i].status_num == 1) {
-                    let timelog = new Date(this.order_list[i].end_prepayment_at.replace(/-/g, '/')).getTime();
-                    let time = timelog - now;
-                    if (time > 0) {
-                        let day = parseInt((time/1000/60/60/24)%30);
-                        let hou = parseInt((time/1000/60/60)%24);
-                        let min = parseInt((time/1000/60)%60);
-                        let sec = parseInt((time/1000)%60);
-                        if (day > 0) {
-                            this.$set(this.order_list[i], 'html', day+"天"+hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-                        } else {
-                            this.$set(this.order_list[i], 'html', hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-                        }
-                    }
-                } else if (this.order_list[i].status_num == 3) {
-                    if (this.order_list[i].pay_limit == -1) {
-                        this.$set(this.order_list[i], 'html', '不显示');
-                    } else {
-                        let newDate = new Date(this.order_list[i].end_prepayment_at.replace(/-/g, '/'));
-                        let timelog = newDate.setDate(newDate.getDate() + Number(this.order_list[i].pay_limit));
-                        let time =  new Date(timelog).getTime() - now;
-                        if (time > 0) {
-                            let day = parseInt((time/1000/60/60/24)%30);
-                            let hou = parseInt((time/1000/60/60)%24);
-                            let min = parseInt((time/1000/60)%60);
-                            let sec = parseInt((time/1000)%60);
-                            if (day > 0) {
-                                this.$set(this.order_list[i], 'html', day+"天"+hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-                            } else {
-                                this.$set(this.order_list[i], 'html', hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-                            }
-                        }
-                    }
-                }
-            }
-            this.interval = setInterval(() => {
-                let now = new Date().getTime();
-                if (this.order_list.length === 0) clearInterval(this.interval);
-                for (let i = 0; i < this.order_list.length; i++) {
-                    if (this.order_list[i].status_num == 1) {
-                        let timelog = new Date(this.order_list[i].end_prepayment_at.replace(/-/g, '/')).getTime();
-                        let time = timelog - now;
-                        if (time > 0) {
-                            let day = parseInt((time/1000/60/60/24)%30);
-                            let hou = parseInt((time/1000/60/60)%24);
-                            let min = parseInt((time/1000/60)%60);
-                            let sec = parseInt((time/1000)%60);
-                            if (day > 0) {
-                                this.$set(this.order_list[i], 'html', day+"天"+hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-                            } else {
-                                this.$set(this.order_list[i], 'html', hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-                            }
-                        }
-                    }  else if (this.order_list[i].status_num == 3) {
-                        if (this.order_list[i].pay_limit == -1) {
-                            this.$set(this.order_list[i], 'html', '不显示');
-                        } else {
-                            let newDate = new Date(this.order_list[i].end_prepayment_at.replace(/-/g, '/'));
-                            let timelog = newDate.setDate(newDate.getDate() + Number(this.order_list[i].pay_limit));
-                            let time =  new Date(timelog).getTime() - now;
-                            if (time > 0) {
-                                let day = parseInt((time/1000/60/60/24)%30);
-                                let hou = parseInt((time/1000/60/60)%24);
-                                let min = parseInt((time/1000/60)%60);
-                                let sec = parseInt((time/1000)%60);
-                                if (day > 0) {
-                                    this.$set(this.order_list[i], 'html', day+"天"+hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-                                } else {
-                                    this.$set(this.order_list[i], 'html', hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-                                }
-                            }
-                        }
-                    }
-                }
-            }, 1000);
-	    },
-	    async set_search() {
-            this.page = 1;
-            this.keyword = -1;
-            uni.showLoading({
-                title: '加载中'
-            });
-            const response = await this.$request({
-                url: this.$api.advance.order,
-                method: 'get',
-                data: {
-                    keyword: this.keyword,
-                    page: this.page,
-                    name: this.search_text,
-                }
-            });
-            if (response.code === 0) {
-                this.order_list = response.data.list;
-                for (let i = 0; i < this.order_list.length; i++) {
-                    let attr_name = '';
-                    let attr_groups = JSON.parse(this.order_list[i].goods_info);
-                    for (let j = 0; j < attr_groups.attr_list.length; j++) {
-                        attr_name+= ` ${attr_groups.attr_list[j].attr_group_name}:${attr_groups.attr_list[j].attr_name}`
-                    }
-                    this.$set(this.order_list[i], 'attr_name', attr_name);
-                }
-            }
-            uni.hideLoading();
-            this.get_time();
-	    },
-        blur_request() {
-            // this.order_list = this.oldOrder;
-        },
-        go_search() {
-            this.search = true;
-            this.active = false;
-            this.oldOrder = this.order_list;
-            this.order_list = [];
-        }
-	  },
-    onReachBottom() {
-        if (!this.over) {
-            this.page+=1;
-            this.$request({
-                url: this.$api.advance.order,
-                method: 'get',
-                data: {
-                    keyword: this.keyword,
-                    page: this.page,
-					name: this.search_text,
-                }
-            }).then(res => {
-                if (res.code === 0) {
-                    if (res.data.list.length > 0) {
-                        this.order_list = [...this.order_list, ...res.data.list];
-                        for (let i = 0; i < this.order_list.length; i++) {
-                            let attr_name = '';
-                            let attr_groups = JSON.parse(this.order_list[i].goods_info);
-                            for (let j = 0; j < attr_groups.attr_list.length; j++) {
-                                attr_name+= ` ${attr_groups.attr_list[j].attr_group_name}:${attr_groups.attr_list[j].attr_name}`
-                            }
-                            this.$set(this.order_list[i], 'attr_name', attr_name);
-                        }
-                        this.get_time();
-                    } else {
-                        this.over = true;
-                    }
-                }
-            })
-        }
-    },
-}
-</script>
-
-<style lang="scss" scoped>
-  .order {
-    position: absolute;
-    width: #{750rpx};
-    top: 0;
-    left: 0;
-    height: 100%;
-	  z-index: 1500;
-    background-color: #f7f7f7;
-    .top {
-      position: fixed;
-      top: 0;
-      left: 0;
-      background-color: #efeff4;
-      font-size: #{32rpx};
-	    z-index: 1500;
-	    width: #{750upx};
-      .to-top {
-        width: #{280rpx};
-        height: #{88rpx};
-        .icon {
-            width: #{22rpx};
-            height: #{12rpx};
-	        margin-left: #{16rpx};
-        }
-	      text {
-		      width: #{145rpx};
-		      text-align: center;
-		      word-break: break-all;
-		      text-overflow: ellipsis;
-		      display: -webkit-box;
-		      -webkit-box-orient: vertical;
-		      -webkit-line-clamp: 1;
-		      overflow: hidden;
-		      font-size: #{26rpx};
-		      color: #ff4544;
-	      }
-	      .icon-active {
-		      transform:rotate(180deg);
-	      }
-      }
-	    .top-input {
-		    height: #{88rpx};
-		    width: #{750-280rpx};
-		    .input {
-			   width: #{570upx};
-			    height: #{56upx};
-			    background-color: white;
-			    border-radius: #{30upx};
-			    margin-left: #{28upx};
-			    >image {
-				    width: #{26upx};
-				    height: #{26upx};
-				    margin-right: #{13upx};
-			    }
-			    >text {
-				    font-size: #{26rpx};
-				    color: #b2b2b2;
-			    }
-		    }
-	    }
-    }
-    .do-top {
-         position: fixed;
-	      top: #{88rpx};
-	      width: 100%;
-	      height: 100%;
-	    z-index: 1500;
-        background-color: rgba(0,0,0,.3);
-      .do-top-item {
-        width: 100%;
-        height: #{88rpx};
-        background-color: #ffffff;
-        font-size: #{32rpx};
-        color: #353535;
-        border-top: #{1rpx} solid #e2e2e2;
-        text-align: center;
-        line-height: #{88rpx};
-      }
-      .active-item {
-        color: #ff4544;
-      }
-    }
-    .item {
-      width: #{750rpx};
-      margin-bottom: #{20rpx};
-      background-color: #ffffff;
-      .item-top {
-        width: 100%;
-        line-height: #{80rpx};
-        background-color: #ffffff;
-        border-bottom: #{1rpx} solid #e2e2e2;
-        font-size: #{26rpx};
-        color: #ff4544;
-        padding: 0 #{24rpx};
-      }
-      .item-center {
-        width: 100%;
-        padding: #{24rpx 24rpx 0 24rpx};
-        .image {
-          width: #{220rpx};
-          height: #{220rpx};
-          border-radius: #{16rpx};
-        }
-        .content {
-          width: #{530-48rpx};
-          min-height: #{220rpx};
-          padding-left: #{24rpx};
-          .name {
-              margin-top: #{12rpx};
-              word-break: break-all;
-              text-overflow: ellipsis;
-              display: -webkit-box;
-              -webkit-box-orient: vertical;
-              -webkit-line-clamp: 2;
-              overflow: hidden;
-              font-size: #{28rpx};
-              color:#353535;
-          }
-          .attr {
-            margin-top: #{16rpx};
-            >text {
-              font-size: #{26rpx};
-              color:#999999;
-              margin-right: #{16rpx};
-            }
-          }
-          .num-price {
-            font-size: #{28rpx};
-            color: #353535;
-            margin-top: #{24rpx};
-          }
-          .des-price {
-            font-size: #{28rpx};
-            color: #353535;
-            margin-top: #{24rpx};
-          }
-        }
-      }
-      .item-bottom {
-        width: #{750rpx};
-        background-color: #ffffff;
-        padding: #{0 24rpx 32rpx 24rpx};
-        overflow: hidden;
-        .swell-price {
-          font-size: #{28rpx};
-          color: #353535;
-          margin-top: #{24rpx};
-        }
-        .button {
-          // display: inline-block;
-          float: right;
-          height: #{56rpx};
-          line-height: #{56rpx};
-          font-size: #{28rpx};
-          color: #ffffff;
-          padding: 0 #{24rpx};
-          border-radius: #{28rpx};
-          background-color: #ff4544;
-          margin-top: #{32rpx};
-        }
-      }
-    }
-  }
-	.order-empty {
-		position: absolute;
-		top: #{555rpx};
-		left: 50%;
-		transform: translate(-50%, -50%);
-		width: #{240rpx};
-		text-align: center;
-		>image {
-			height: #{240rpx};
-			width: #{240rpx};
-		}
-		>text {
-			font-size: #{24rpx};
-			color: #666666;
-		}
-	}
-	.text-time {
-		text-align: right;font-size: #{26upx};color: #999999;
-		margin-top: #{16upx};
-	}
-  .search {
-	  height: #{104rpx};
-	  width: 100%;
-	  background-color: #efeff4;
-	  padding: #{20rpx 24rpx};
-	  position: relative;
-	  overflow: hidden;
-	  .delete {
-		  width: #{32rpx};
-		  height: #{32rpx};
-	  }
-	  .input {
-		  height: #{64rpx};
-		  width: #{620rpx};
-		  border-radius: #{50rpx};
-		  background-color: #ffffff;
-		  padding-left: #{32rpx};
-		  font-size: #{26rpx};
-		  color: #353535;
-	  }
-	  .delete {
-		  position: absolute;
-		  right: #{125rpx};
-		  z-index: 1600;
-	  }
-  }
-	.order-number {
-	
-	}
-	
-	.filal-payment-time {
-		font-size:#{22upx};
-		color: #ff4544;
-		text-align: right;
-		margin-top: #{14upx};
-	}
-</style>

+ 0 - 236
plugins/advance/search/search.vue

xqd
@@ -1,236 +0,0 @@
-<template>
-    <app-layout>
-	    <view class="search" :style="{backgroundColor: search ? '#f7f7f7': '#ffffff'}">
-		    <view class="top dir-left-nowrap cross-center main-between">
-			    <input type="text" class="input" v-model="search_text" @blur="request">
-			    <image class="delete" v-show="search_text.length>0" @click="empyt_search" src="../image/delete.png"></image>
-			    <text style="color:#666666;font-size: 32rpx;" @click="request">搜索</text>
-		    </view>
-		    <view class="center" v-if="!search">
-			    <view class="strong dir-left-nowrap main-between cross-center" v-if="strong.length > 0">
-				    <text>历史搜索</text>
-				    <image class="delete" src="/static/image/icon/delete.png" @click="empty_strong"></image>
-			    </view>
-			    <view>
-				    <text @click="search_strong(item)" class="strong-item" v-for="(item, index) in strong" :key="index">
-					    {{item}}
-				    </text>
-			    </view>
-		    </view>
-		    <view class="bottom" v-if="search_list.length>0">
-			    <index-product-list :product="search_list"></index-product-list>
-		    </view>
-		    <view class="order-empty" v-if="search_list.length === 0 && search">
-			    <image src="../image/product.png"></image>
-			    <text>没有任何信息哦~</text>
-		    </view>
-	    </view>
-    </app-layout>
-</template>
-
-<script>
-import indexProductList from '../components/index-product-list.vue';
-
-let strong = "ADVANCE_SEARCH";
-
-export default {
-   name: 'search',
-   data() {
-        return {
-	        search_text: '',
-	        search_list: [],
-            strong: [],
-	        search: false,
-	        page: 1,
-            over: false,
-            interval: 0,
-        }
-	  },
-	  onLoad() {
-		    if (!this.$storage.getStorageSync(strong)) {
-		         this.$storage.setStorageSync(strong, []);
-		    } else {
-		        this.strong = this.$storage.getStorageSync(strong);
-		    }
-	  },
-	onHide() {
-        clearInterval(this.interval);
-	},
-    onUnload() {
-        clearInterval(this.interval);
-    },
-    onReachBottom() {
-        if (!this.over) {
-            this.page+=1;
-            this.$request({
-                url: this.$api.advance.goods,
-	            method: 'get',
-                data: {
-                    keyword: this.search_text,
-                    page: this.page,
-                }
-            }).then(res => {
-                if (res.code === 0) {
-                    if (res.data.list.length > 0) {
-                        this.search_list = [...this.search_list, ...res.data.list];
-                    } else {
-                        this.over = true;
-                    }
-                }
-            })
-        }
-    },
-    methods: {
-	    empyt_search() {
-		      this.search_text = '';
-		      this.search_list = [];
-		      this.search = false;
-            clearInterval(this.interval);
-	    },
-	    async request() {
-            this.search = true;
-            this.page = 1;
-            let getStrong = this.$storage.getStorageSync(strong);
-            if (this.search_text.match(/^[ ]*$/)) return;
-	        let newStrong = [...getStrong, this.search_text];
-	        const res = await this.$request({
-		        url: this.$api.advance.goods,
-                method: 'get',
-                data: {
-                    keyword: this.search_text,
-                    page: this.page,
-		        }
-	        });
-            if (res.code === 0) {
-                this.search_list = res.data.list;
-                this.set_interval();
-                this.$storage.setStorageSync(strong, newStrong);
-            }
-	    },
-        empty_strong() {
-	        this.$storage.removeStorageSync(strong);
-	        this.strong = [];
-	    },
-        search_strong(data) {
-		        this.search_text = data;
-		        this.request();
-	      },
-        set_interval() {
-	          clearInterval(this.interval);
-	          this.interval = setInterval(() => {
-	              let now = new Date().getTime();
-	              if (this.search_list.length === 0) clearInterval(this.interval);
-	              for (let i = 0; i < this.search_list.length; i++) {
-	                  let timelog = new Date(this.search_list[i].advanceGoods.end_prepayment_at.replace(/-/g, '/')).getTime();
-	                  let time = timelog - now;
-	                  if (time > 0) {
-	                      let day = parseInt((time/1000/60/60/24)%30);
-	                      let hou = parseInt((time/1000/60/60)%24);
-	                      let min = parseInt((time/1000/60)%60);
-	                      let sec = parseInt((time/1000)%60);
-	                      if (day > 0) {
-	                          this.$set(this.search_list[i], 'html', day+"天"+hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-	                      } else {
-	                          this.$set(this.search_list[i], 'html', hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-	                      }
-	                  } else {
-	                      this.$delete(this.search_list, i);
-	                      if (this.search_list.length < 10 && this.page_count > 1) {
-	                          this.$request({
-	                              url: this.$api.advance.goods,
-	                              method: 'get'
-	                          }).then(res => {
-	                              if (res.code === 0) {
-	                                  this.search_list = res.data.list;
-	                                  this.set_interval();
-	                              }
-	                          });
-	                      }
-	                  }
-	              }
-	          }, 1000);
-	      }
-  },
-  components: {
-    'index-product-list': indexProductList,
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-  .search {
-    position: absolute;
-    width: #{750rpx};
-    height: 100%;
-	  background-color: #ffffff;
-    .top {
-      height: #{104rpx};
-      width: 100%;
-      background-color: #efeff4;
-      padding: #{20rpx 24rpx};
-      position: relative;
-	    overflow: hidden;
-      .delete {
-        width: #{32rpx};
-        height: #{32rpx};
-      }
-      .input {
-        height: #{64rpx};
-        width: #{620rpx};
-        border-radius: #{50rpx};
-        background-color: #ffffff;
-        padding-left: #{32rpx};
-        font-size: #{28rpx};
-        color: #353535;
-      }
-      .delete {
-        position: absolute;
-        right: #{125rpx};
-        z-index: 1600;
-      }
-    }
-    .center {
-      font-size: #{28rpx};
-      padding: #{32rpx 24rpx 0 24rpx};
-      .strong {
-        color: #666666;
-        padding-bottom: #{24rpx};
-        text {
-          margin-top: #{4rpx};
-        }
-        .delete {
-          width: #{44rpx};
-          height: #{32rpx};
-          padding: 0 #{6rpx};
-        }
-      }
-	    .strong-item {
-		    display: inline-block;
-		    height: #{64rpx};
-		    line-height: #{64rpx};
-		    padding: 0 #{20rpx};
-		    margin: #{0 20rpx 16rpx 0};
-		    color: #353535;
-		    font-size: #{28rpx};
-		    border-radius: #{32rpx};
-		    background-color: #f7f7f7;
-	    }
-    }
-  }
-  .order-empty {
-	  position: absolute;
-	  top: #{555rpx};
-	  left: 50%;
-	  transform: translate(-50%, -50%);
-	  width: #{240rpx};
-	  text-align: center;
-	  >image {
-		  height: #{240rpx};
-		  width: #{240rpx};
-	  }
-	  >text {
-		  font-size: #{24rpx};
-		  color: #666666;
-	  }
-  }
-</style>

+ 0 - 1017
plugins/bargain/activity/activity.vue

xqd
@@ -1,1017 +0,0 @@
-<template>
-    <app-layout>
-        <view style="height:100%;padding-bottom:0;background:linear-gradient(to bottom, #ee3763, #fdac42);position: absolute;width: 100%">
-            <view class="page">
-                <view class='dialog-bg' v-if="dialog">
-                    <view class='in-bargain'>
-                        <image v-if="kanjia" class='bargain-gif-bg' src='./../image/light.png'></image>
-                        <image v-if="kanjia" class='bargain-gif' :src='bargainImg.app_image.activity_header'></image>
-                        <image class='dialog-header' v-if="!kanjia" :src='bargainImg.app_image.header'></image>
-                        <image class='dialog-header-gif-sec' :animation="animationData" v-if="!kanjia" :src='bargainImg.app_image.top1'></image>
-                        <view @click="dialog=false" v-if="!kanjia">
-                            <image class='dialog-close' src='./../image/close.png'></image>
-                        </view>
-                        <view class='dialog' v-if="!kanjia">
-                            <view class="self-dialog">
-                                <view v-if="bargain.user_id == info.user_id">你一出手就帮自己砍掉了
-                                    <text class='price'>{{info.price}}元</text>
-                                </view>
-                                <view v-if="bargain.user_id != info.user_id">你一出手就帮{{bargain.nickname}}</view>
-                                <view v-if="bargain.user_id != info.user_id">砍了
-                                    <text class='price'>{{info.price}}元</text>
-                                </view>
-                            </view>
-                            <view v-if="bargain.user_id == info.user_id">快邀请好友帮你一起砍价吧!</view>
-                            <view class="button-margin">
-                                <button open-type="share" v-if="bargain.user_id == info.user_id">
-                                    <image style="margin-top: 0" :src='bargainImg.app_image.find'></image>
-                                </button>
-                            </view>
-                            <view v-if="bargain.user_id != info.user_id" @click="toJoin">
-                                <image :src='bargainImg.app_image.join_small'></image>
-                            </view>
-                        </view>
-                    </view>
-                </view>
-                <view v-if="tip" class='dialog-bg'>
-                    <view class="dialog-item">
-                        <view class='dialog-tip-title'>提示</view>
-                        <view>{{tip}}</view>
-                        <view @click="tip=''" class='close-button'>确认</view>
-                    </view>
-                </view>
-                <view @click="toIndex">
-                    <view class='rules left-rules'>返回首页</view>
-                </view>
-                <view @click="toRules">
-                    <view class='rules right-rules'>活动规则</view>
-                </view>
-                <image class='top-banner' :src='bargainImg.app_image.top'></image>
-                <view class='info'>
-                    <image class='avatar' :src='detail.initiator_avatar'></image>
-                    <view class='username'>{{bargain.nickname}}</view>
-                    <view>我发现一件好货,来一起砍价优惠购!</view>
-                    <view class='goods'>
-                        <image :src='detail.cover_pic'></image>
-                        <view class='t-omit-two goods-name'>{{detail.goods_name}}</view>
-                        <view class='t-omit goods-attr'>
-                            <text v-for="attr in detail.select_attr_group" :key="attr.id">
-                                {{attr.attr_group_name}}:{{attr.attr_name}}
-                            </text>
-                        </view>
-                        <view class='end_time' v-if="detail.reset_time > 0">
-                            <text class="date-text" v-if="dd > 0">{{dd}}</text>
-                            <text v-if="dd > 0">天</text>
-                            <text class="date-text">{{hh}}</text>
-                            <text>:</text>
-                            <text class="date-text">{{mm}}</text>
-                            <text>:</text>
-                            <text class="date-text">{{ss}}</text>
-                            <text>后结束</text>
-                        </view>
-                        <view class='end_time' v-else>已结束</view>
-                        <view class='price'>当前价 ¥{{detail.now_price ?detail.now_price : 0}}</view>
-                    </view>
-                </view>
-                <view class='progress'>
-                    <view class='border' v-if="detail.bargain_price_per < 5" :style="{'left':`${detail.bargain_price_per}%`}"></view>
-                    <text class='begin' v-if="detail.bargain_price_per < 5">已砍{{detail.bargain_price ? detail.bargain_price : 0}}</text>
-                    <text class='progress-info progressing' v-else-if="detail.bargain_price_per < 100" :style="{'left':`${detail.bargain_price_per ? detail.bargain_price_per : 0}%`}">已砍{{detail.bargain_price ? detail.bargain_price : 0}}</text>
-                    <text class='progress-info over' v-else>已完成</text>
-                    <view class='progress-bg'>
-                        <image src='./../image/progress.png'></image>
-                        <view class='line' :class="[`${detail.bargain_price < 4 ? 'small-line':''}`]" :style="{'width':`${detail.bargain_price_per ? detail.bargain_price_per : 0}%`}"></view>
-                    </view>
-                    <text class='before-price'>原价¥{{detail.price ? detail.price : 0}}</text>
-                    <text class='after-price'>底价¥{{detail.min_price ? detail.min_price : 0}}</text>
-                </view>
-                <!-- 不是自己的砍价 -->
-                <view class='join main-center' v-if="status == 2">
-                    <view @click="toJoin">
-                        <image class="join-img" :animation="sizeAnimation" :src='bargainImg.app_image.join_big'></image>
-                    </view>
-                </view>
-                <!-- 砍价未完成 -->
-                <view class='button-view main-between' v-if="detail.now_price != detail.min_price && status != 2">
-                    <view @click="toBuy">
-                        <image :src='bargainImg.app_image.buy_small'></image>
-                    </view>
-                    <button open-type="share">
-                        <image :src='bargainImg.app_image.go_on'></image>
-                    </button>
-                </view>
-                <!-- 砍价完成 -->
-                <view class='join main-center' v-if="detail.now_price == detail.min_price && status != 2">
-                    <view @click="toBuy">
-                        <image class="join-img" :animation="sizeAnimation" :src='bargainImg.app_image.buy_now'></image>
-                    </view>
-                </view>
-                <view class='log'>
-                    <view class='main-center'>
-                        <text class='log-line'></text>
-                        <text class='log-title'>砍价记录</text>
-                        <text class='log-line'></text>
-                    </view>
-                    <view class='log-item' v-for="item in list" :key="item.id">
-                        <view class='log-user'>
-                            <image :src='item.avatar'></image>
-                            <text class="nickname">{{item.nickname}}</text>
-                        </view>
-                        <view class='log-info'>
-                            <image src='./../image/down.png'></image>
-                            <text>砍掉{{item.price}}元</text>
-                        </view>
-                    </view>
-                    <view @click="lookMore" v-if="toMore">
-                        <view class='look-more' v-if="more">
-                            <image src='./../image/to-down.png'></image>
-                            <text>查看更多</text>
-                        </view>
-                        <view catchtap='closeList' class='up' v-else>
-                            <image src='./../image/to-up.png'></image>
-                            <text>收起</text>
-                        </view>
-                    </view>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appLayout from "../../../components/basic-component/app-layout/app-layout.vue";
-    import appFormId from "../../../components/basic-component/app-form-id/app-form-id.vue";
-
-    import { mapState } from "vuex";
-
-    export default {
-        name: "activity",
-        components: {appLayout, appFormId},
-        data() {
-            return {
-                detail: {
-                    bargain_price_per: 0
-                },
-                list: [],
-                distance: 0,
-                more: false,
-                sizeAnimation: {},
-                status: 1,
-                animationData: '',
-                kanjia: false,
-                dialog: false,
-                info: {},
-                bargain: {},
-                toMore: false,
-                page: 1,
-                dd: 0,
-                hh:23,
-                mm:59,
-                ss:59,
-                reset_time: 0,
-                changeTimer: null,
-                timer: null,
-                tip: '',
-                title: '',
-                order_id: '',
-                rules: ''
-            }
-        },
-        computed: {
-            ...mapState({
-                theme: state => state.mallConfig.theme,
-                userInfo: state => state.user.info,
-                bargainImg: state => state.mallConfig.plugin.bargain,
-                mall: state => state.mallConfig.mall
-            }),
-        },
-        /**
-         * todo用户点击右上角分享
-         */
-        onShareAppMessage(object) {
-            let that = this;
-            return this.$shareAppMessage({
-                title: that.title,
-                path: "/plugins/bargain/activity/activity",
-                imageUrl: that.detail.app_share_pic ? that.detail.app_share_pic : '',
-                params: {
-                    user_id: that.userInfo.options.user_id,
-                    bargain_order_id: that.order_id,
-                }
-            });
-        },
-
-        onUnload() {
-            clearInterval(this.timer);
-            clearInterval(this.changeTimer);
-        },
-
-        /**
-         * 生命周期函数--监听页面加载
-         */
-        onLoad: function (options) {
-            var that = this;
-            that.$store.dispatch('user/info');
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.getSetting();
-            var getInfo = setInterval(function () {
-                if(that.userInfo) {
-                    clearInterval(getInfo);
-                    if (options.order_id) {
-                        that.join(options.order_id);
-                        that.order_id = options.order_id;
-                    } else if (options.id) {
-                        that.getDetail(options.id,1)
-                        that.order_id = options.id;
-                    } else if (options.bargain_order_id) {
-                        that.order_id = options.bargain_order_id;
-                        if (options.user_id == that.userInfo.options.user_id) {
-                            that.getDetail(options.bargain_order_id, 1)
-                        } else {
-                            that.status = 2;
-                            that.join(options.bargain_order_id)
-                        }
-                    }
-                    that.changeTimer = setInterval(() => {
-                        that.changeSize();
-                    }, 300) 
-                }
-            }, 300)  
-        },
-
-        methods: {
-            toRules() {
-                uni.navigateTo({
-                    url: '/plugins/bargain/rule/rule?rules=' + this.rules
-                })
-            },
-
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bargain.setting,
-                }).then(response=>{
-                    if(response.code == 0) {
-                        that.title = response.data.title.toString();
-                        that.rules = response.data.rule;
-                        if(response.data.title.indexOf("\n") > -1) {
-                            let title = response.data.title.split("\n");
-                            let index = Math.floor(Math.random() * title.length);
-                            that.title = title[index]
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            join(bargain_order_id) {
-                let that = this;
-                that.$request({
-                    url: that.$api.bargain.user_join_bargain,
-                    data: {
-                        bargain_order_id: bargain_order_id
-                    },
-                }).then(response=>{
-                    if(response.code == 0) {
-                        let queueId = response.data.queueId;
-                        let token = response.data.token;
-                        that.result(queueId, token, bargain_order_id)
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                        if (response.msg == "用户已参与本次砍价") {
-                            that.getDetail(bargain_order_id, 1)
-                        }
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            result(queueId, token, bargain_order_id) {
-                let that = this;
-                that.$request({
-                    url: that.$api.bargain.user_join_bargain_result,
-                    data: {
-                        queueId: queueId,
-                        token: token
-                    },
-                }).then(response=>{
-                    if(response.code == 0) {
-                        if (response.data.retry == 1) {
-                            setTimeout(() => {
-                                that.result(queueId, token, bargain_order_id)
-                            }, 1000)
-                        } else {
-                            that.$hideLoading();
-                            that.info = response.data.info;
-                            that.bargain = response.data.bargain;
-                            that.bargainAnimation();
-                            that.getDetail(bargain_order_id, 1)
-                        }
-                    }else {
-                        if (response.msg == "已砍至最低价") {
-                            that.tip = response.msg;
-                            that.getDetail(bargain_order_id, 1)
-                        }else {
-                            uni.showToast({
-                                title: response.msg,
-                                icon: 'none',
-                                duration: 1000
-                            });
-                        }
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            getDetail(bargain_order_id,page) {
-                let that = this;
-                that.$request({
-                    url: that.$api.bargain.activity,
-                    data: {
-                        bargain_order_id: bargain_order_id,
-                        page: page
-                    },
-                }).then(response=>{
-                    setTimeout(function(){
-                        that.$hideLoading();
-                    },500)
-                    if(response.code == 0) {
-                        if (response.data.list.length > 0) {
-                            that.detail = response.data;
-                            that.reset_time = that.detail.reset_time;
-                            if (response.data.total_people > 3) {
-                                    that.toMore = true;
-                                if (response.data.list.length == 3) {
-                                    that.more = true;
-                                }else {
-                                    that.more = false;
-                                }
-                            }
-                            that.list = that.list.concat(response.data.list);
-                            that.timer = setInterval(() => {
-                                that.time();
-                                if(that.reset_time == 0) {
-                                    clearInterval(that.timer)
-                                }
-                            }, 1000)
-                        } else {
-                            that.tip = '暂无更多用户'
-                            that.toMore = false
-                        }
-                    }else {
-                        uni.showModal({
-                            title: '提示',
-                            content: response.data.msg,
-                            showCancel: false,
-                            success: function (res) {
-                                if (res.confirm) {
-                                    uni.redirectTo({
-                                        url: '/pages/index/index'
-                                    });
-                                }
-                            }
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            time() {
-                this.reset_time = this.reset_time - 1;
-                this.dd = 0;
-                this.hh = parseInt(this.reset_time / 3600);
-                if (this.reset_time > 86400) {
-                    this.dd = parseInt(this.reset_time / 86400);
-                    this.hh = parseInt((this.reset_time - 86400 * dd) / 3600);
-                }
-                let h = this.reset_time % 3600;
-                this.mm = parseInt(h / 60);
-                this.ss = parseInt((h / 60 - this.mm) *    60);
-                if (this.hh < 10) {
-                    this.hh = '0' + this.hh.toString(); 
-                }
-                if (this.mm < 10) {
-                    this.mm = '0' + this.mm.toString();
-                }
-                if (this.ss < 10) {
-                    this.ss = '0' + this.ss.toString();
-                }
-            },
-            // 砍价动画
-            bargainAnimation() {
-                let that = this;
-                that.kanjia = true;
-                that.dialog = true;
-                setTimeout(function() {
-                    that.kanjia = false;
-                    that.success();
-                },1200)
-                that.$forceUpdate();
-            },
-            // 查看更多
-            lookMore() {
-                this.page++;
-                this.getDetail(this.order_id,this.page)
-            },
-            // 收起
-            closeList() {
-                this.list = this.list.slice(0,3);
-                this.page = 1;
-                this.more = true;
-            },
-            // 砍价成功
-            success() {
-                let that = this;
-                this.dialog = true;
-                var animation = uni.createAnimation({
-                    duration: 500,
-                    timingFunction: 'linear'
-                })
-                this.animation = animation;
-                animation.scale(1).step().rotate(2).step().rotate(-2).step().rotate(0).step();
-                this.animationData = animation.export();
-            },
-            // 按钮动画
-            changeSize() {
-                var size = uni.createAnimation({
-                    duration: 1000,
-                    timingFunction: 'linear'
-                })
-                this.size = size;
-                size.scale(0.8).step().scale(1).step();
-                this.sizeAnimation = size.export();
-            },
-            toIndex() {
-                uni.reLaunch({
-                    url:'/pages/index/index'
-                })
-            },
-            toBuy() {
-                const bargain = this.detail;
-                const mchList = [{
-                    "mch_id": 0,
-                    "bargain_order_id": bargain.bargain_order_id,
-                    "goods_list": [{
-                        "id": bargain.goods_id,
-                        "attr": [],
-                        "num": 1,
-                        "cart_id": 0,
-                        "goods_attr_id": bargain.goods_attr_id
-                    }]
-                }];
-                uni.navigateTo({
-                    url: '/pages/order-submit/order-submit?mch_list=' +
-                        JSON.stringify(mchList) +
-                        '&preview_url=' + encodeURIComponent(this.$api.bargain.order_preview) +
-                        '&submit_url=' + encodeURIComponent(this.$api.bargain.order_submit)
-                });
-            },
-            
-            toJoin() {
-                if (this.detail.goods_id) {
-                    uni.navigateTo({
-                        url: '/plugins/bargain/goods/goods?goods_id=' + this.detail.goods_id,
-                    }) 
-                } else {
-                    uni.showModal({
-                        title: '提示',
-                        content: '活动已结束',
-                        showCancel: false,
-                        success: function(res) {
-                            if (res.confirm) {
-                                uni.redirectTo({
-                                    url: '/pages/index/index'
-                                });
-                            }
-                        }
-                    });
-                }
-            },
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .goods-attr {
-        margin-top: #{6rpx};
-        margin-bottom: #{16rpx};
-        color: #999999;
-        font-size: #{26rpx};
-        width: 60%;
-        text {
-            margin-right: #{18rpx};
-        }
-    }
-    .page {
-        background:linear-gradient(to bottom, #ee3763, #fdac42);
-        padding-bottom: #{100rpx};
-        min-height:100%;
-    }
-
-    .self-dialog {
-        margin-bottom: #{14rpx};
-    }
-
-    .top-banner {
-        width: 100%;
-        height: #{100rpx};
-    }
-
-    .rules {
-        position: absolute;
-        top: #{32rpx};
-        height: #{40rpx};
-        line-height: #{40rpx};
-        width: #{136rpx};
-        text-align: center;
-        background-color: rgba(0, 0, 0, 0.2);
-        border-radius: #{20rpx};
-        font-size: 12px;
-        color: #fff;
-    }
-
-    .left-rules {
-        left: #{20rpx};
-    }
-
-    .right-rules {
-        right: #{20rpx};
-    }
-
-    .info {
-        background-color: #fff;
-        margin: 0 #{20rpx};
-        position: relative;
-        border-radius: #{16rpx};
-        text-align: center;
-        font-size: 16px;
-        color: #353535;
-        padding-top: #{65rpx};
-        padding-bottom: #{10rpx};
-    }
-
-    .info .avatar {
-        position: absolute;
-        top: #{-70rpx};
-        left: 0;
-        right: 0;
-        width: #{118rpx};
-        height: #{118rpx};
-        border-radius: 50%;
-        margin: 0 auto;
-        border: #{1rpx} solid #fff;
-    }
-
-    .info .username {
-        font-size: 14px;
-        color: #999;
-        margin-bottom: #{20rpx};
-    }
-
-    .goods {
-        margin: #{20rpx} #{24rpx} 0;
-        padding: #{24rpx} 0;
-        height: #{264rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        text-align: left;
-        font-size: 14px;
-        color: #353535;
-    }
-
-    .goods image {
-        height: #{216rpx};
-        width: #{216rpx};
-        float: left;
-        display: block;
-        margin-right: #{20rpx};
-    }
-
-    .goods .end_time {
-        font-size: 14px;
-        color: #666;
-        margin-top: #{10rpx};
-    }
-
-    .end_time text {
-        margin: 0 #{10rpx};
-    }
-
-    .end_time text:last-of-type {
-        margin: 0 0 0 #{10rpx};
-    }
-
-    .goods .end_time .date-text {
-        display: inline-block;
-        color: #fff;
-        height: #{46rpx};
-        line-height: #{46rpx};
-        text-align: center;
-        width: #{46rpx};
-        margin: 0;
-        background-color: #666;
-        border-radius: #{4rpx};
-    }
-
-    .goods .price {
-        font-size: 16px;
-        color: #ff5c5c;
-        margin-top: #{10rpx};
-    }
-
-    .progress {
-        padding-top: #{56rpx};
-        height: #{180rpx};
-        width: #{680rpx};
-        margin: #{32rpx} auto 0;
-        position: relative;
-    }
-
-    .progress-info,.begin {
-        font-size: 12px;
-        color: #ff5c5c;
-        padding: 0 #{20rpx};
-        display: inline-block;
-        border-radius: #{20rpx};
-        height: #{40rpx};
-        line-height: #{40rpx};
-        background-color: #fff;
-        position: absolute;
-        z-index: 5;
-        top: 0;
-        left:5%;
-        margin-left: #{-68rpx};
-        white-space:nowrap;
-    }
-
-    .progress-info.progressing {
-        margin-left: #{-68rpx};
-        min-width: #{82rpx};
-        white-space: nowrap;
-    }
-
-    .progress-info::after {
-        content: '';
-        position: absolute;
-        top: #{40rpx};
-        left: 50%;
-        margin-left: #{-8rpx};
-        border: #{8rpx} solid transparent;
-        border-top-color: #fff;
-    }
-
-    .progress .border {
-        position: absolute;
-        top: #{40rpx};
-        margin-left: #{-8rpx};
-        border: #{8rpx} solid transparent;
-        border-top-color: #fff;
-    }
-
-    .progress-info.over::after {
-        left: 75%;
-    }
-
-    .progress-info.over {
-        left:97%;
-        margin-left: #{-68rpx};
-        white-space:nowrap;
-    }
-
-    .progress .progress-bg {
-        width: #{680rpx};
-        height: #{28rpx};
-        position: relative;
-    }
-
-    .progress .progress-bg image {
-        width: #{680rpx};
-        height: #{28rpx};
-        position: absolute;
-    }
-
-    .progress .line {
-        position: absolute;
-        top: #{2rpx};
-        left: #{2rpx};
-        height: #{24rpx};
-        background-color: #ff9f9f;
-        border-radius: #{12rpx};
-        z-index: 5;
-        max-width: #{745rpx};
-    }
-
-    .progress .line.small-line {
-        border-top-right-radius: 0;
-        border-bottom-right-radius: 0;
-    }
-
-    .before-price, .after-price {
-        font-size: 12px;
-        color: #fff;
-        position: absolute;
-        bottom: #{40rpx};
-    }
-
-    .before-price {
-        left: 0;
-    }
-
-    .after-price {
-        right: 0;
-    }
-
-    .button-view {
-        height: #{122rpx};
-        padding-bottom: #{40rpx};
-        margin: 0 #{20rpx};
-    }
-
-    .button-view button {
-        height: #{82rpx};
-        width: #{328rpx};
-        padding: 0;
-        margin: 0;
-        border-radius: #{41rpx};  
-    }
-
-    .button-view image {
-        height: #{82rpx};
-        width: #{328rpx};
-    }
-
-    .log {
-        background-color: rgba(255, 255, 255, .3);
-        margin: 0 #{20rpx};
-        padding: #{40rpx};
-        border-radius: #{16rpx};
-        position: relative;
-    }
-
-    .log-line {
-        position: absolute;
-        top: #{60rpx};
-        left: 50%;
-        height: #{1rpx};
-        width: #{160rpx};
-        background-color: #fff;
-    }
-
-    .log .log-line:first-of-type {
-        margin-left: #{-254rpx};
-    }
-
-    .log .log-line:last-of-type {
-        margin-left: #{94rpx};
-    }
-
-    .log-title {
-        color: #fff;
-        font-size: 14px;
-        margin: 0 #{34rpx};
-    }
-
-    .log-item {
-        margin-top: #{40rpx};
-        height: #{80rpx};
-        line-height: #{80rpx};
-        color: #fff;
-    }
-
-    .log-item .log-user {
-        float: left;
-        width: 50%;
-    }
-
-    .log-item .log-user image {
-        height: #{80rpx};
-        width: #{80rpx};
-        border-radius: 50%;
-        margin-right: #{24rpx};
-        float: left;
-    }
-
-    .log-item .log-info {
-        float: right;
-        width: 50%;
-        text-align: right;
-    }
-
-    .log-item .log-info text {
-        float: right;
-    }
-
-    .log-item .log-info image {
-        margin-top: #{15rpx};
-        height: #{50rpx};
-        width: #{72rpx};
-        margin-right: #{16rpx};
-    }
-
-    .look-more,.up {
-        margin-top: #{48rpx};
-        width: 100%;
-        font-size: 12px;
-        color: #fff;
-        text-align: center;
-    }
-
-    .look-more image,.up image {
-        height: #{18rpx};
-        width: #{18rpx};
-        margin-right: #{16rpx};
-    }
-
-    .join {
-        height: #{152rpx};
-    }
-
-    .dialog-bg {
-        height: 100%;
-        width: 100%;
-        position: fixed;
-        left: 0;
-        top: 0;
-        z-index: 10;
-        background-color: rgba(0, 0, 0, 0.3);
-    }
-
-    .dialog-header {
-        position: absolute;
-        left: 0;
-        right: 0;
-        top: 0;
-        margin: 0 auto;
-        height: #{200rpx};
-        width: #{638rpx};
-        z-index: 15;
-    }
-
-    .dialog-header-gif {
-        position: absolute;
-        left: 0;
-        right: 0;
-        top: #{34rpx};
-        margin: 0 auto;
-        height: #{69rpx};
-        width: #{132rpx};
-        z-index: 20;    
-    }
-
-    .dialog-header-gif-sec {
-        position: absolute;
-        left: 0;
-        right: 0;
-        top: #{-70rpx};
-        margin: 0 auto;
-        height: #{276rpx};
-        width: #{525rpx};
-        z-index: 20;
-        transform: scale(0.25);
-    }
-
-
-    .dialog {
-        padding: #{60rpx} 0 #{48rpx};
-        background-color: #fff;
-        position: fixed;
-        top: #{504rpx};
-        left: 0;
-        right: 0;
-        margin: 0 auto;
-        width: #{638rpx};
-        text-align: center;
-        border-bottom-left-radius: #{16rpx};
-        border-bottom-right-radius: #{16rpx};
-    }
-
-    .dialog image {
-        margin-top: #{45rpx};
-        height: #{88rpx};
-        width: #{480rpx};
-    }
-
-    .button-margin {
-        margin-top: #{45rpx};
-    }
-
-    .button-margin button {
-        border: 0;
-    }
-
-    .dialog button {
-        background-color: #fff;
-    }
-
-    .dialog .price {
-        color: #ff5c5c;
-        font-size: 16px;
-        font-weight: blod;
-    }
-
-    .dialog-close {
-        height: #{50rpx};
-        width: #{50rpx};
-        position: fixed;
-        top: #{320rpx};
-        right: #{62rpx};
-        z-index: 20;
-    }
-
-    .in-bargain {
-        position: fixed;
-        top: #{300rpx};
-        left: 0;
-        right: 0;
-        margin: 0 auto;
-        width: #{638rpx};
-        height: #{535rpx};
-        border-radius: #{16rpx};
-        background-color: #fff;
-    }
-
-    .bargain-gif {
-        display: block;
-        position: absolute;
-        top: #{147.5rpx};
-        left: 0;
-        right: 0;
-        height: #{240rpx};
-        width: #{310rpx};
-        margin: 0 auto;
-    }
-
-    .bargain-gif-bg {
-        display: block;
-        position: absolute;
-        top: 0;
-        left: 0;
-        right: 0;
-        height: #{500rpx};
-        width: #{500rpx};
-        margin: 0 auto;   
-    }
-
-    page {
-        height: 100%;
-    }
-
-    .nickname {
-        white-space: nowrap;
-        overflow: hidden;
-        text-overflow: ellipsis;
-        display: inline-block;
-        width: 65%;
-    }
-
-    .dialog-item {
-        position: fixed;
-        top: #{400rpx};
-        left: 0;
-        right: 0;
-        height: #{300rpx};
-        width: #{640rpx};
-        margin: 0 auto;
-        z-index: 21;
-        background-color: #fff;
-        border-radius: #{20rpx};
-        text-align: center;
-        font-size: #{30rpx};
-    }
-
-    .close-button {
-        height: #{88rpx};
-        width: #{640rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        line-height: #{88rpx};
-        color: #ff4544;
-        position: absolute;
-        bottom: 0;
-        left: 0;
-    }
-
-    .dialog-tip-title {
-        margin: #{40rpx} auto #{35rpx};
-    }
-
-    .join-img {
-        width: #{680rpx};
-        height: #{110rpx};
-    }
-
-    .goods-name {
-        margin-top: #{6rpx};
-    }
-</style>

+ 0 - 117
plugins/bargain/common-buttom.vue

xqd
@@ -1,117 +0,0 @@
-<template>
-    <view>
-	    <view>
-		    <app-empty-bottom :height="Number(96)" backgroundColor="#f7f7f7"></app-empty-bottom>
-	    </view>
-        <view>
-	        <app-iphone-x>
-		        <view slot="empty-area" class='lottery-bottom dir-left-nowrap cross-center'>
-			        <view @click="nav1" class="box-grow-1 dir-left-nowrap main-center cross-center">
-				        <icon class="icon" :class="status==='index' ? 'icon-ht': 'icon-hf'"></icon>
-				        <view :class="status==='index' ? 'red': 'gray'">砍价会场</view>
-			        </view>
-			        <view class="line"></view>
-			        <view @click="nav2" class="box-grow-1 dir-left-nowrap main-center cross-center">
-				        <icon class="icon" :class="status==='index' ? 'icon-jf': 'icon-jt'"></icon>
-				        <view :class="status==='index' ? 'gray': 'red'">我的砍价</view>
-			        </view>
-		        </view>
-	        </app-iphone-x>
-        </view>
-    </view>
-</template>
-
-<script>
-    import {mapState} from 'vuex';
-    import appIphonexBottom from "../../components/page-component/app-iphonex-bottom/app-iphonex-bottom.vue";
-    import appIphoneX from '../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-    import appEmptyBottom from '../../components/basic-component/app-empty-bottom/app-empty-bottom.vue';
-    
-    export default {
-        name: 'common-buttom',
-        components: {appIphonexBottom, appEmptyBottom, appIphoneX},
-        computed: {
-            ...mapState('gConfig', {
-                iphone: (data) => {
-                    return data.iphone;
-                },
-                iphoneHeight: (state) => {
-                    return state.iphoneHeight;
-                },
-            })
-        },
-        props: {
-            status: {
-                type: String,
-                default: 'index',
-            },
-        },
-        data() {
-            return {}
-        },
-        methods: {
-            nav1() {
-                uni.redirectTo({url: `/plugins/bargain/index/index`});
-            },
-            nav2() {
-                uni.redirectTo({url: `/plugins/bargain/order-list/order-list`});
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .lottery-bottom {
-        width: 100%;
-        height: #{96rpx};
-        background-color: #fff;
-        border-top: #{1rpx} solid #e2e2e2;
-        color: #999;
-
-        .line {
-            height: #{48rpx};
-            width: #{1rpx};
-            background: #e2e2e2;
-        }
-
-        .icon {
-            width: #{34rpx};
-            height: #{33rpx};
-            background-repeat: no-repeat;
-            background-size: 100% 100%;
-            margin: 0 #{16rpx};
-        }
-
-        .icon.icon-ht {
-            background-image: url('./image/bargain-list-selected.png');
-        }
-
-        .icon.icon-hf {
-            background-image: url('./image/bargain-list.png');
-        }
-
-        .icon.icon-jt {
-            background-image: url('./image/bargain-my-selected.png');
-        }
-
-        .icon.icon-jf {
-            background-image: url('./image/bargain-my.png');
-        }
-
-        .gray {
-            color: #999999;
-        }
-
-        .red {
-            color: #ff4544;
-        }
-    }
-
-    .navbar + .body {
-        padding-bottom: #{115rpx};
-    }
-
-    .navbar + .body .lottery-bottom {
-        bottom: #{115rpx};
-    }
-</style>

+ 0 - 782
plugins/bargain/goods/goods.vue

xqd
@@ -1,782 +0,0 @@
-<template>
-    <app-layout>
-        <view class="all">
-            <app-goods-banner :pic-list="bargain.pic_url" :share="bargain.share"
-                              :goods_id="bargain.goods_id"
-                              sign="bargain"
-                              :video-url="bargain.video_url"></app-goods-banner>
-            <view v-if="begin_list || end_list" class="main-center cross-center time-bg">
-                <icon class="icon-time" :style="{'background-image': `url(${appImg.bargain_time})`}"></icon>
-                <view class="dir-left-nowrap time-desc main-center cross-center">
-                    <block v-if="begin_list">
-                        <view class="box-grow-0">距活动开始</view>
-                        <block v-if="begin_list.d">
-                            <view class="time-box">{{begin_list.d}}</view>
-                            <view>天</view>
-                        </block>
-                        <view class="time-box">{{begin_list.h}}</view>
-                        <view>:</view>
-                        <view class="time-box">{{begin_list.m}}</view>
-                        <view>:</view>
-                        <view class="time-box">{{begin_list.s}}</view>
-                    </block>
-                    <block v-if="!begin_list && end_list">
-                        <view class="box-grow-0">距活动结束</view>
-                        <block v-if="end_list.d">
-                            <view class='time-box'>{{end_list.d}}</view>
-                            <view>天</view>
-                        </block>
-                        <view class='time-box'>{{end_list.h}}</view>
-                        <view>:</view>
-                        <view class='time-box'>{{end_list.m}}</view>
-                        <view>:</view>
-                        <view class='time-box'>{{end_list.s}}</view>
-                    </block>
-                </view>
-            </view>
-            <view class="goods" v-if="bargain">
-                <view class="t-omit-three name">{{bargain.name}}</view>
-                <view class="dir-left-nowrap cross-center">
-                    <view class="detail box-grow-1 dir-top-nowrap">
-                        <view class="box-grow-0 dir-left-nowrap cross-bottom end">
-                            <view>最低</view>
-                            <view class="red">¥</view>
-                            <view class="red price">{{bargain.min_price}}</view>
-                            <view class="del" v-if="isUnderlinePirce == 1">原价{{bargain.price}}</view>
-                        </view>
-                        <view class="box-grow-0 num dir-left-nowrap">
-                            <view>库存:{{bargain.stock}}{{bargain.unit}}</view>
-                            <view>已有{{bargain.join_num}}人参与砍价</view>
-                        </view>
-                    </view>
-                    <view @click="shareClick" class="share box-grow-0 cross-center dir-top-nowrap">
-                        <icon class="icon"></icon>
-                        <view class="share">分享</view>
-                    </view>
-                    <view>
-                        <app-share-qr-code :url="poster + `&goods_id=` + goods_id" v-model="shareShow"></app-share-qr-code>
-                    </view>
-                </view>
-            </view>
-            <view class="attr-box">
-                <view class="attr dir-left-nowrap">
-                    <view class="box-grow-0 left cross-center dir-top-nowrap">
-                        <view>商品信息</view>
-                    </view>
-                    <view class="box-grow-1 right dir-left-wrap">
-                        <view class="attr-item" v-for="(item, index) in bargain.select_attr_group" :key="index">
-                            {{item.attr_group_name + ':' + item.attr_name}}
-                        </view>
-                    </view>
-                </view>
-            </view>
-            <view class="service">
-                <app-service :list="bargain.service"></app-service>
-            </view>
-            <view class="activity" v-if="bargain.bargain_info">
-                <view class="dir-left-nowrap cross-center">
-                    <image class="box-grow-0 user-img" :src="userInfo.avatar" load-lazy></image>
-                    <view class="dir-top-nowrap">
-                        <view class="dir-left-nowrap">
-                            <view>距本次砍价结束仅剩</view>
-                            <view class="yellow">
-                                <block v-if="finish_list">
-                                    {{finish_list.d}}天{{finish_list.h}}:{{finish_list.m}}:{{finish_list.s}}
-                                </block>
-                                <block v-else>0天0:0:0</block>
-                            </view>
-                        </view>
-
-                        <view v-if="bargain.bargain_info.now_price == bargain.bargain_info.min_price"
-                              class="yellow">已砍至最低价,赶快优惠购买吧!
-                        </view>
-                        <view class="yellow" v-else>快让你的好友助你一臂之力!</view>
-                    </view>
-                </view>
-
-                <view class="main-center">
-                    <view class="current">当前价¥{{bargain.bargain_info.now_price}}</view>
-                </view>
-                <view class='progress-box'>
-                    <view class='progress-view' :style="{width:bargain.bargain_info.bargain_price_per+'%'}"></view>
-                </view>
-                <view class='dir-left-nowrap price'>
-                    <view class='box-grow-1'>原价¥{{bargain.bargain_info.price}}</view>
-                    <view class='box-grow-0'>底价¥{{bargain.bargain_info.min_price}}</view>
-                </view>
-
-                <view class='info'>
-                    <scroll-view class="user-scroll" scroll-y :scroll-into-view="'user-'+user_index"
-                                 scroll-with-animation="true">
-                        <block v-for="(v,k) in bargain.bargain_info.list" :key="k">
-                            <view class="item dir-left-nowrap cross-center">
-                                <image class='box-grow-0' :src="v.avatar" load-lazy></image>
-                                <view class="box-grow-1 dir-left-nowrap cross-center">
-                                    <view class="nickname">{{v.nickname}}</view>
-                                    <view> 小刀一挥帮忙砍了</view>
-                                    <view class="red">{{v.price}}</view>
-                                    <view>元</view>
-                                </view>
-                            </view>
-                        </block>
-                    </scroll-view>
-                </view>
-            </view>
-
-            <view class="circuit-label dir-left-nowrap cross-center">
-                <icon class="icon-circuit"></icon>
-                <view>砍价流程</view>
-            </view>
-            <view class="circuit-value dir-left-nowrap main-center">
-                <block v-for="(v,k) in circuit" :key="k">
-                    <view class="cross-center dir-top-nowrap">
-                        <image :src="v.url" :class="v.name ? 'icon-circuit-i' : 'icon-circuit-j'"></image>
-                        <view class="box-grow-0 name">{{v.name}}</view>
-                    </view>
-                </block>
-            </view>
-            <view class="circuit-label dir-left-nowrap cross-center">
-                <icon class="icon-circuit"></icon>
-                <view>活动说明</view>
-            </view>
-            <view class="activity-time">
-                <view>本活动开始时间{{bargain.begin_time}}</view>
-                <view>本活动结束时间{{bargain.end_time}}</view>
-            </view>
-            <view class="app-goods-marketing">
-                <app-goods-marketing :express="bargain.express"></app-goods-marketing>
-            </view>
-
-            <view class="circuit-label dir-left-nowrap cross-center">
-                <icon class="icon-circuit"></icon>
-                <view>商品详情</view>
-            </view>
-            <view>
-                <app-rich-text :content="bargain.detail"></app-rich-text>
-            </view>
-        </view>
-	    <view>
-		    <app-empty-bottom :height="Number(120)"></app-empty-bottom>
-	    </view>
-	    <view>
-		    <app-iphone-x>
-		    <view class="bargain-goods-bottom main-center cross-center"  slot="empty-area">
-			    <block v-if="bargain.bargain_info">
-				    <block v-if="bargain.bargain_info.min_price < bargain.bargain_info.now_price">
-					    <view @click="submit" class="btn shop">立即购买</view>
-					    <view @click="bargainFriend" class="btn friend">找人帮砍</view>
-				    </block>
-				    <view v-else @click="submit" class="btn">立即购买</view>
-			    </block>
-			    <block v-else>
-                    <view v-if="bargain.stock == 0" class="btn" style="background: #CDCDCD;color: #fff;">已售罄</view>
-                    <view v-else @click="subscribe" class="btn">立即砍价</view>
-                </block>
-		    </view>
-		    </app-iphone-x>
-	    </view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapState} from 'vuex';
-    import appQuickNavigation from "../../../components/page-component/app-quick-navigation/app-quick-navigation";
-    import appRichText from "../../../components/basic-component/app-rich/parse.vue";
-    import appGoodsBanner from "../../../components/page-component/goods/app-goods-banner.vue";
-    import appService from "../../../components/page-component/goods/app-goods-service.vue";
-    import appIphonexBottom from "../../../components/page-component/app-iphonex-bottom/app-iphonex-bottom.vue";
-    import appShareQrCode
-        from '../../../components/page-component/app-share-qr-code-poster/app-share-qr-code-poster.vue';
-    import appIphoneX from '../../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-    import appEmptyBottom from '../../../components/basic-component/app-empty-bottom/app-empty-bottom.vue';
-    import appGoodsMarketing from '../../../components/page-component/goods/app-goods-marketing.vue';
-
-    export default {
-        name: "goods",
-        components: {appQuickNavigation, appRichText, appGoodsBanner, appService, appShareQrCode, appIphonexBottom, appEmptyBottom, appIphoneX, appGoodsMarketing},
-        computed: {
-            ...mapState({
-                appImg: state => state.mallConfig.plugin.bargain.app_image,
-                userInfo: state => state.user.info,
-                isUnderlinePrice: state => state.mallConfig.mall.setting.is_underline_price,
-            }),
-            ...mapState('gConfig', {
-                iphone: (data) => {
-                    return data.iphone;
-                },
-                iphoneHeight: (state) => {
-                    return state.iphoneHeight;
-                },
-            })
-        },
-
-        data() {
-            let timeIntegral;
-            return {
-                timeIntegral: null,
-                goods_id: '',
-                bargain: null,
-                finish_list: null,
-                begin_list: null,
-                end_list: null,
-
-                shareShow: false,
-                title: '砍价',
-                page: 1,
-
-                circuit: [{
-                    name: '点击砍价',
-                    url: './../image/bargain-click.png',
-                }, {
-                    name: '',
-                    url: './../image/bargain-jiantou.png',
-                }, {
-                    name: '找人砍价',
-                    url: './../image/bargain-help.png',
-                }, {
-                    name: '',
-                    url: './../image/bargain-jiantou.png',
-                }, {
-                    name: '价格合适',
-                    url: './../image/bargain-price.png',
-                }, {
-                    name: '',
-                    url: './../image/bargain-jiantou.png',
-                }, {
-                    name: '优惠购买',
-                    url: './../image/bargain-buy.png'
-                }],
-                poster: this.$api.bargain.poster,
-            }
-        },
-        onLoad(options) {
-            const self = this;
-            self.$store.dispatch('user/info');
-            self.goods_id = options.goods_id;
-
-            self.$showLoading();
-            self.$request({
-                url: self.$api.bargain.goods_detail,
-                data: {
-                    goods_id: self.goods_id,
-                }
-            }).then(info => {
-                self.$hideLoading();
-                if (info.code === 0) {
-                    self.bargain = info.data.bargain;
-                    //定时器
-                    if (self.bargain.bargain_info) {
-                        let func = function () {
-                            if (self.bargain.bargain_info) {
-                                [
-                                    self.finish_list,
-                                    self.begin_list,
-                                    self.end_list
-                                ] = [
-                                    self.setTimeStart(self.bargain.bargain_info.finish_at),
-                                    self.setTimeStart(self.bargain.begin_time),
-                                    self.setTimeStart(self.bargain.end_time)
-                                ];
-                            } else {
-                                clearInterval(self.timeIntegral);
-                            }
-                        }
-                        func();
-                        self.timeIntegral = setInterval(() => {
-                            func();
-                        },1000)
-                    }
-                } else {
-                    uni.showToast({icon: 'none', title: info.msg});
-                }
-            }).catch(info => {
-                self.$hideLoading();
-            });
-        },
-
-        onUnload() {
-            clearInterval(this.timeIntegral);
-        },
-
-        /**
-         * 用户点击右上角分享
-         */
-        onShareAppMessage: function () {
-            return this.$shareAppMessage({
-                title: this.bargain.goods.app_share_title ? this.bargain.goods.app_share_title : this.bargain.name,
-                path: '/plugins/bargain/goods/goods',
-                imageUrl: this.bargain.goods.app_share_pic ? this.bargain.goods.app_share_pic : this.bargain.cover_pic,
-                params: {
-                    goods_id: this.bargain.goods_id
-                }
-            });
-        },
-
-        methods: {
-            bargainFriend() {
-                uni.navigateTo({url: '/plugins/bargain/activity/activity?id=' + this.bargain.bargain_info.bargain_order_id});
-            },
-            userList() {
-                const self = this;
-                self.$request({
-                    url: self.$api.bargain.goods_detail,
-                    data: {
-                        goods_id: self.goods_id,
-                    }
-                }).then(info => {
-                    if (info.code === 0) {
-                        if (info.data.bargain.bargain_info) {
-                            let user_list = e.data.bargain.bargain_info.list;
-
-                            self.setData({
-                                user_list: user_list,
-                            })
-                            if (this.finishTime) {
-                                setTimeout(() => {
-                                    this.userList();
-                                }, 5000);
-                            }
-                        }
-                    }
-                });
-            },
-
-            setTimeStart: function (e) {
-                let time = e.replace(/-/g, '/');
-                let diff_time = parseInt((new Date(time).getTime() - new Date().getTime()) / 1000)
-                let day = 0, hour = 0, minute = 0, second = 0;
-
-                if (diff_time > 0) {
-                    day = Math.floor(diff_time / (60 * 60 * 24));
-                    hour = Math.floor(diff_time / (60 * 60)) - (day * 24);
-                    minute = Math.floor(diff_time / 60) - (day * 24 * 60) - (hour * 60);
-                    second = Math.floor(diff_time) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
-                } else {
-                    return null;
-                }
-                return {
-                    d: day,
-                    h: hour < 10 ? ('0' + hour) : hour,
-                    m: minute < 10 ? ('0' + minute) : minute,
-                    s: second < 10 ? ('0' + second) : second,
-                };
-            },
-
-            subscribe: function () {
-                const self = this;
-                this.$subscribe(this.bargain.template_message).then(res => {
-                    let tpl_id = self.bargain.template_message[0];
-                    if (res[tpl_id] == 'accept') {
-                        uni.showModal({
-                            title: '提示',
-                            content: '订阅成功',
-                            showCancel: false,
-                            success(res) {
-                                 self.save();
-                            }
-                        })
-                    } else {
-                        uni.showModal({
-                            title: '提示',
-                            content: '取消订阅',
-                            showCancel: false,
-                            success(res) {
-                                self.save();
-                            }
-                        })
-                    }
-                }).catch(res => {
-                    self.save();
-                });
-            },
-
-            save: function () {
-                const self = this;
-                self.$showLoading();
-                self.$request({
-                    url: self.$api.bargain.bargain_submit,
-                    data: {
-                        goods_id: self.bargain.goods_id
-                    },
-                }).then(info => {
-                    self.$hideLoading();
-                    if (info.code == 0) {
-                        self.bargainResult(info);
-                    } else {
-                        uni.showToast({icon: 'none', title: info.msg});
-                    }
-                }).catch(e => {
-                    self.$hideLoading();
-                });
-            },
-
-            bargainResult(data) {
-                const self = this;
-                self.$showLoading();
-                self.$request({
-                    url: self.$api.bargain.bargain_result,
-                    data: {
-                        queueId: data.data.queueId,
-                        token: data.data.token,
-                    },
-                }).then(info => {
-                    if (info.code === 0) {
-                        if (info.data.retry) {
-                            setTimeout(() => {
-                                self.bargainResult(data);
-                            }, 1000);
-                            return;
-                        }
-                        self.$hideLoading();
-                        uni.redirectTo({
-                            url: '/plugins/bargain/activity/activity?order_id=' + info.data.bargain_order_id,
-                        })
-                    } else {
-                        self.$hideLoading();
-                        uni.showToast({icon: 'none', title: info.msg});
-                    }
-                }).catch(e => {
-                    self.$hideLoading();
-                });
-            },
-
-            submit: function () {
-                const bargain = this.bargain;
-                const mchList = [{
-                    "mch_id": 0,
-                    "bargain_order_id": bargain.bargain_info.bargain_order_id,
-                    "goods_list": [{
-                        "id": bargain.goods_id,
-                        "attr": [],
-                        "num": 1,
-                        "cart_id": 0,
-                        "goods_attr_id": bargain.goods_attr_id
-                    }]
-                }];
-                uni.navigateTo({
-                    url: '/pages/order-submit/order-submit?mch_list=' +
-                        JSON.stringify(mchList) +
-                        '&preview_url=' + encodeURIComponent(this.$api.bargain.order_preview) +
-                        '&submit_url=' + encodeURIComponent(this.$api.bargain.order_submit)
-                });
-            },
-
-            shareClick() {
-                this.shareShow = true;
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .all {
-        margin-bottom: #{120rpx};
-    }
-
-    .time-bg {
-        width: 100%;
-        margin-top: #{24rpx};
-        height: #{80rpx};
-        background: #FFFFFF;
-
-        .icon-time {
-            position: relative;
-            height: 100%;
-            width: #{710rpx};
-            background-repeat: no-repeat;
-            background-size: 100% auto;
-        }
-
-        .time-desc {
-            position: absolute;
-            font-size: #{26rpx};
-            left: 0;
-            right: 0;
-            margin: 0 auto;
-            color: #353535;
-        }
-
-        .time-box {
-            height: #{42rpx};
-            color: #fff;
-            width: #{46rpx};
-            line-height: #{42rpx};
-            text-align: center;
-            background-color: #666;
-            border-radius: #{4rpx};
-            margin: 0 #{10rpx};
-        }
-    }
-
-    .activity {
-        font-size: #{28rpx};
-        color: #353535;
-        padding: #{24rpx};
-        background: #FFFFFF;
-
-        .user-img {
-            height: #{96rpx};
-            width: #{96rpx};
-            display: block;
-            margin-right: #{34rpx};
-        }
-
-        .yellow {
-            color: #ff8c40;
-        }
-
-        .current {
-            margin-top: #{20rpx};
-            font-size: #{38rpx};
-            color: #ff4544;
-        }
-
-        .progress-box {
-            width: 100%;
-            height: #{40rpx};
-            border-radius: #{20rpx};
-            border: #{1px} solid #ff5c5c;
-            overflow: hidden;
-            margin-top: #{28rpx};
-            margin-bottom: #{16rpx};
-        }
-
-        .progress-view {
-            width: 50%;
-            height: 100%;
-            border-radius: #{20rpx};
-            background-color: #ff9f9f;
-        }
-
-        .price {
-            font-size: #{26rpx};
-            color: #666666;
-            padding-bottom: #{20rpx};
-        }
-    }
-
-    .goods {
-        background: #FFFFFF;
-        padding: #{32rpx} #{24rpx} #{40rpx};
-        color: #999999;
-
-        .name {
-            color: #353535;
-            margin-bottom:#{32rpx};
-            font-size: #{32rpx};
-        }
-
-        .detail {
-            color: #999999;
-            font-size: #{28rpx};
-
-            .end {
-                line-height: 1;
-            }
-
-            .red {
-                color: #ff4544;
-            }
-
-            .price {
-                font-size: #{40rpx};
-            }
-
-            .del {
-                margin-left: #{16rpx};
-                text-decoration: line-through;
-            }
-
-            .num {
-                margin-top: #{32rpx};
-            }
-
-            .num view:first-child {
-                margin-right: #{32rpx};
-            }
-        }
-
-        .share {
-            margin-top: #{24rpx};
-
-            .icon {
-                height: #{40rpx};
-                width: #{40rpx};
-                background-image: url('../../../static/image/icon/icon-share.png');
-                background-repeat: no-repeat;
-                background-size: 100% 100%;
-            }
-
-            view {
-                font-size: #{22rpx};
-                color: #999999;
-                margin-top: #{10rpx};
-            }
-        }
-    }
-
-    .circuit-label {
-        height: #{88rpx};
-        margin-top: #{16rpx};
-        color: #ff4544;
-        font-size: #{32rpx};
-        background: #FFFFFF;
-        border-bottom: #{1px} solid #e2e2e2;
-
-        .icon-circuit {
-            height: #{34}rpx;
-            width: #{34rpx};
-            background-image: url("./../image/bargain-flow.png");
-            background-repeat: no-repeat;
-            background-size: 100% auto;
-            margin: 0 #{16rpx};
-        }
-    }
-
-    .user-scroll {
-        max-height: #{264rpx};
-    }
-
-    .info {
-        width: 100%;
-        border-radius: #{16rpx};
-        background-color: #fff7f7;
-        padding: #{32rpx} #{24rpx};
-
-        .nickname {
-            max-width: #{200rpx};
-            word-break: break-all;
-            text-overflow: ellipsis;
-            display: -webkit-box;
-            -webkit-box-orient: vertical;
-            -webkit-line-clamp: 1;
-            overflow: hidden;
-        }
-
-        .red {
-            color: #ff4544;
-        }
-
-        image {
-            width: #{64rpx};
-            height: #{64rpx};
-            margin-right: #{24rpx};
-        }
-
-
-        .item {
-            margin-bottom: #{32rpx};
-        }
-
-        .item:last-child {
-            margin-bottom: 0;
-        }
-    }
-
-    .circuit-value {
-        padding-top: #{20rpx};
-        background: #FFFFFF;
-        padding-bottom: #{30rpx};
-
-        .icon-circuit-i {
-            height: #{72rpx};
-            width: #{72rpx};
-        }
-
-        .name {
-            font-size: #{26rpx};
-            color: #999999;
-            margin-top: #{20rpx};
-        }
-
-        .icon-circuit-j {
-            margin-top: #{19rpx};
-            height: #{34rpx};
-            width: #{52rpx};
-        }
-
-        > view {
-            margin: 0 #{10rpx}
-        }
-    }
-
-    .activity-time {
-        padding-bottom: #{40rpx};
-        background: #FFFFFF;
-        padding-left: #{20rpx};
-
-        view {
-            padding-top: #{28rpx};
-            font-size: #{28rpx};
-            color: #666666;
-        }
-
-        view:before {
-            content: '●';
-            margin-right: #{20rpx};
-        }
-    }
-
-    .bargain-goods-bottom {
-        height: #{120rpx};
-        width: 100%;
-        background: #FFFFFF;
-        .btn {
-            color: #FFFFFF;
-            font-size: #{32rpx};
-            height: #{80rpx};
-            line-height: #{80rpx};
-            text-align: center;
-            width: #{702rpx};
-            border-radius: #{40rpx};
-            background: linear-gradient(#ff9292, #fc6969);
-        }
-
-        .btn.shop {
-            width: #{346rpx};
-        }
-
-        .btn.friend {
-            width: #{346rpx};
-            margin-left: #{12rpx};
-            background: linear-gradient(#ffc46b, #ffa13c);
-        }
-    }
-
-    .service {
-        margin-top: #{20rpx};
-    }
-
-    .attr-box {
-        padding: #{0 24rpx};
-        background: #ffffff;
-        .attr {
-            padding: #{28rpx 0};
-            border-top: #{1rpx solid #eeeeee};
-
-            .left {
-                color: #666666;
-                margin-right: #{24rpx};
-                font-size: $uni-font-size-weak-one;
-
-                view {
-                    border: #{1rpx solid #666666};
-                    padding: #{8rpx 16px};
-                    -webkit-border-radius: #{30rpx};
-                    -moz-border-radius: #{30rpx};
-                    border-radius: #{30rpx};
-                }
-            }
-
-            .right {
-                font-size: $uni-font-size-general-two;
-                margin-top: #{10rpx};
-
-                .attr-item {
-                    margin-right: #{10rpx};
-                }
-            }
-        }
-    }
-
-</style>

BIN=BIN
plugins/bargain/image/bargain-buy.png


BIN=BIN
plugins/bargain/image/bargain-click.png


BIN=BIN
plugins/bargain/image/bargain-flow.png


BIN=BIN
plugins/bargain/image/bargain-goods.png


BIN=BIN
plugins/bargain/image/bargain-help.png


BIN=BIN
plugins/bargain/image/bargain-jiantou.png


BIN=BIN
plugins/bargain/image/bargain-list-selected.png


BIN=BIN
plugins/bargain/image/bargain-list.png


BIN=BIN
plugins/bargain/image/bargain-my-selected.png


BIN=BIN
plugins/bargain/image/bargain-my.png


BIN=BIN
plugins/bargain/image/bargain-order-jiantou.png


BIN=BIN
plugins/bargain/image/bargain-price.png


BIN=BIN
plugins/bargain/image/bargain-shuoming.png


BIN=BIN
plugins/bargain/image/bargain-sku.png


BIN=BIN
plugins/bargain/image/bargain-sold-out.png


BIN=BIN
plugins/bargain/image/click.png


BIN=BIN
plugins/bargain/image/close.png


BIN=BIN
plugins/bargain/image/down.png


BIN=BIN
plugins/bargain/image/found.png


BIN=BIN
plugins/bargain/image/icon-bargain-list-right.png


BIN=BIN
plugins/bargain/image/light.png


BIN=BIN
plugins/bargain/image/progress.png


BIN=BIN
plugins/bargain/image/to-down.png


BIN=BIN
plugins/bargain/image/to-up.png


+ 0 - 256
plugins/bargain/index/index.vue

xqd
@@ -1,256 +0,0 @@
-<template>
-    <app-layout>
-        <app-swiper height="280" :list="banner_list"></app-swiper>
-        <view class="bargain-end">
-            <view v-for="(v,k) in list" class="dir-left-nowrap" :key="k">
-                <view class="bargain-left">
-                    <image load-lazy :src="v.cover_pic"></image>
-                    <icon v-if="v.stock == 0" class="sold-out"></icon>
-                </view>
-                <view @click="goods(v)" class="bargain-right">
-                    <view class="dir-top-nowrap list">
-                        <view class="bargain-name box-grow-0">{{v.name}}</view>
-                        <view class="dir-left-nowrap num box-grow-1 cross-center">
-                            <view class="dir-left-nowrap user box-grow-0">
-                                <block v-for="(v1,k1) in v.user_list" :key="k1" v-if="k1 < 3">
-                                    <image class="avatar" :src="v1.avatar" load-lazy></image>
-                                </block>
-                            </view>
-                            <view class="box-grow-1">{{v.sales}}人已参与</view>
-                        </view>
-                        <view class="dir-left-nowrap cross-bottom box-grow-0 min-price">
-                            <view class="box-grow-1 dir-top-nowrap">
-                                <view class="bargain-original">¥{{v.price}}</view>
-                                <view class="bargain-price-title">最低¥
-                                    <text class="bargain-price">{{v.min_price}}</text>
-                                </view>
-                            </view>
-                            <view v-if="v.status == 0 || v.stock == 0">
-                                <app-button width="180" font-size="28" background="#cdcdcd" height="64" color="#FFFFFF"
-                                            round
-                                            disabled>下次再来
-                                </app-button>
-                            </view>
-                            <view v-else class="box-grow-0">
-                                <view class="red-btn">立即参与</view>
-                            </view>
-                        </view>
-                    </view>
-                </view>
-            </view>
-            <app-load-text v-if="load"></app-load-text>
-        </view>
-	   
-        <view>
-	        <common-buttom status="index"></common-buttom>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appSwiper from "../../../components/page-component/app-swiper/app-swiper.vue";
-    import commonButtom from "../common-buttom.vue";
-    import appIphoneX from '../../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-    import appEmptyBottom from '../../../components/basic-component/app-empty-bottom/app-empty-bottom.vue';
-    import {mapGetters} from 'vuex';
-
-    export default {
-        name: "index",
-        components: {appSwiper, commonButtom, appEmptyBottom, appIphoneX},
-        computed: {
-            ...mapGetters('mallConfig',{
-                getVideo: 'getVideo'
-            }),
-        },
-        data() {
-            return {
-                list: null,
-                args: false,
-                page: 1,
-                load: false,
-                banner_list: null,
-                title: '砍价',
-            }
-        },
-        /**
-         * 用户点击右上角分享
-         */
-        onShareAppMessage: function () {
-            return this.$shareAppMessage({
-                title: this.title,
-                path: '/plugins/bargain/index/index',
-                params: {}
-            });
-        },
-
-        /**
-         * 生命周期函数--监听页面加载
-         */
-        onLoad: function (options) {
-            const self = this;
-            self.$request({
-                url: self.$api.bargain.banner,
-            }).then(info => {
-                if (info.code === 0) {
-                    self.banner_list = info.data.list;
-                }
-            })
-        },
-
-        onShow: function () {
-            const self = this;
-            self.$showLoading();
-            self.$request({
-                url: self.$api.bargain.goods_list,
-            }).then(info => {
-                self.$hideLoading();
-                if (info.code === 0) {
-                    self.list = info.data.list;
-                }
-                self.args = false;
-                self.page = 1;
-            }).catch(e => {
-                self.$hideLoading();
-            })
-        },
-
-        onReachBottom: function () {
-            const self = this;
-            if (self.args || self.load)
-                return;
-            self.load = true;
-            let page = self.page + 1;
-
-            self.$request({
-                url: self.$api.bargain.goods_list,
-                data: {
-                    page: page,
-                }
-            }).then(info => {
-                if (info.code === 0) {
-                    [self.page, self.args, self.list] = [page, info.data.list.length === 0, self.list.concat(info.data.list)];
-                }
-                self.load = false;
-            });
-        },
-        methods: {
-            goods(data) {
-                uni.navigateTo({
-                    url: '/plugins/bargain/goods/goods?goods_id=' + data.goods_id,
-                });
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .list {
-        height: #{220rpx};
-    }
-
-    .bargain-end {
-        margin-top: #{16rpx}
-    }
-
-    .bargain-end > view {
-        padding: #{24rpx};
-        background: #ffffff;
-        border-bottom: #{1rpx solid #e2e2e2};
-    }
-    .bargain-end >view:last-child {
-        border-bottom: none;
-    }
-    .bargain-left {
-        position: relative;
-
-        image {
-            width: #{220rpx};
-            height: #{220rpx};
-            display: block;
-        }
-
-        .sold-out {
-            position: absolute;
-            top: 0;
-            left: 0;
-            z-index: 1;
-            background-image: url("./../image/bargain-sold-out.png");
-            background-repeat: no-repeat;
-            background-size: 100% auto;
-            width: #{220rpx};
-            height: #{220rpx};
-            background-color: rgba(0,0,0,.5);
-        }
-    }
-
-    .bargain-right {
-        margin-left: #{24rpx};
-        width: 100%;
-
-        .bargain-name {
-            font-size: #{32rpx};
-            color: #353535;
-            word-break: break-all;
-            text-overflow: ellipsis;
-            display: -webkit-box;
-            -webkit-box-orient: vertical;
-            -webkit-line-clamp: 1;
-            line-height: 1.5;
-            overflow: hidden;
-        }
-
-        .num {
-        }
-
-        .num > view {
-            color: #999999;
-            font-size: #{24rpx};
-            margin-right: #{16rpx};
-        }
-
-        .avatar {
-            margin-left: -8rpx;
-            border: 1px solid #ffffff;
-            height: #{34rpx};
-            width: #{34rpx};
-            border-radius: 50%;
-        }
-
-        .user {
-            margin-right: #{16rpx};
-        }
-
-        .bargain-original {
-            font-size: #{24rpx};
-            color: #999999;
-            text-decoration: line-through;
-        }
-
-        .min-price {
-            margin-bottom: #{8rpx};
-        }
-
-        .bargain-price-title {
-            line-height: 1;
-            font-size: #{28rpx};
-            color: #ff4544;
-        }
-
-        .bargain-price {
-            margin-top: #{16rpx};
-            font-size: #{48rpx};
-            color: #ff4544;
-        }
-    }
-
-    .red-btn {
-        font-size: #{28rpx};
-        line-height: #{64rpx};
-        text-align: center;
-        height: #{64rpx};
-        color: #ff4544;
-        border-radius: #{33rpx};
-        border: #{1rpx} solid #ff4544;
-        width: #{176rpx};
-    }
-</style>

+ 0 - 258
plugins/bargain/order-list/order-list.vue

xqd
@@ -1,258 +0,0 @@
-<template>
-    <app-layout>
-        <view class="no-content" v-if="!list.length">
-            <view>你还没有进行中的砍价</view>
-            <view>去会场逛逛!</view>
-        </view>
-        <view class="order-list">
-            <block v-for="(v,k) in list" :key="k">
-                <view @click="navGoods(v)" class="bargain-list dir-left-nowrap">
-                    <view class="box-grow-0">
-                        <image :src="v.cover_pic"></image>
-                    </view>
-
-                    <view class="box-grow-1 dir-top-nowrap bargain-right">
-                        <view class="box-grow-0 bargain-name t-omit-two">{{v.goods_name}}</view>
-                        <view class="attr t-omit">{{v.select_attr_group_text}}</view>
-                        <block v-if="v.reset_time">
-                            <view class="box-grow-1 bargain-time dir-left-nowrap cross-center">
-                                <block v-if="v.times.day > 0">
-                                    <view class='info'>{{v.times.day}}</view>
-                                    <view class="mark">天</view>
-                                </block>
-                                <view class="info">{{v.times.hour}}</view>
-                                <view class="mark">:</view>
-                                <view class="info">{{v.times.minute}}</view>
-                                <view class="mark">:</view>
-                                <view class="info">{{v.times.second}}</view>
-                                <view class="mark">后结束</view>
-                            </view>
-                            <view class="box-grow-0 dir-left-nowrap cross-center">
-                                <view class="box-grow-1 dir-top-nowrap">
-                                    <view class='min-price'>
-                                        <block v-if="v.now_price == v.min_price">已砍至最低</block>
-                                        <block v-else>离最低¥{{v.min_price}}</block>
-                                    </view>
-                                    <view class='price'>
-                                        <block v-if="v.now_price == v.min_price">¥{{v.min_price}}</block>
-                                        <block v-else>还差¥{{v.reset_price}}</block>
-                                    </view>
-                                </view>
-                                <view class="box-grow-0">
-                                    <app-button v-if="v.now_price == v.min_price" @click="submit(v)" height="64"
-                                                width="176" color="#FFFFFF" background="#ff6700" font-size="28"
-                                                round>立即购买
-                                    </app-button>
-                                    <app-button v-else @click.native.stop="goto(v)" height="64" width="176" color="#FFFFFF"
-                                                background="#ff4544" font-size="28" round>继续砍价
-                                    </app-button>
-                                </view>
-                            </view>
-                        </block>
-                        <block v-else>
-                            <view class="box-grow-1"></view>
-                            <view class="box-grow-0">
-                                <view class="box-grow-1 bargain-content">{{v.content}}</view>
-                                <view class="box-grow-0 price">{{v.status_content}}</view>
-                            </view>
-                        </block>
-                    </view>
-                </view>
-            </block>
-        </view>
-        <common-buttom status="prize"></common-buttom>
-    </app-layout>
-</template>
-
-<script>
-    import commonButtom from "../common-buttom.vue";
-
-    export default {
-        name: "order-list",
-        components: {commonButtom},
-        data() {
-            let integral;
-            return {
-                integral,
-                list: null,
-                args: false,
-                page: 1,
-                load: false,
-            }
-        },
-        onReachBottom: function () {
-            const self = this;
-            if (self.args || self.load)
-                return;
-            self.load = true;
-            let page = self.page + 1;
-            self.$request({
-                url: self.$api.bargain.list,
-                data: {
-                    page: page,
-                }
-            }).then(info => {
-                if (info.code === 0) {
-                    [self.page, self.args] = [page, info.data.list.length === 0];
-                    self.getIntegral(self.list.concat(info.data.list));
-                }
-                self.load = false;
-            });
-        },
-
-        onShow: function () {
-            const self = this;
-            self.$showLoading();
-            self.$request({
-                url: self.$api.bargain.list,
-            }).then(info => {
-                self.$hideLoading();
-                if (info.code === 0) {
-                    self.getIntegral(info.data.list);
-                }
-                self.args = false;
-                self.page = 1;
-            }).catch(e => {
-                self.$hideLoading();
-            })
-        },
-        onUnload() {
-            clearInterval(this.integral);
-        },
-        methods: {
-            navGoods(v) {
-                uni.navigateTo({url: '/plugins/bargain/goods/goods?goods_id=' + v.goods_id});
-            },
-            goto(v) {
-                uni.navigateTo({url: "/plugins/bargain/activity/activity?id=" + v.bargain_order_id});
-            },
-            getIntegral: function (list) {
-                const self = this;
-                clearInterval(self.integral);
-                let func = function () {
-                    list.forEach((value, key, array) => {
-                        if (value.status) return;
-                        let time = value.finish_at.replace(/-/g, '/');
-                        let diff_time = parseInt((new Date(time).getTime() - new Date().getTime()) / 1000)
-                        let day = 0, hour = 0, minute = 0, second = 0;
-                        if (diff_time > 0) {
-                            day = Math.floor(diff_time / (60 * 60 * 24));
-                            hour = Math.floor(diff_time / (60 * 60)) - (day * 24);
-                            minute = Math.floor(diff_time / 60) - (day * 24 * 60) - (hour * 60);
-                            second = Math.floor(diff_time) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
-                            value.times = {day, hour, minute, second};
-                        } else {
-                            value.times = second;
-                        }
-                    });
-                    self.list = list;
-                }
-                func(list);
-                self.integral = setInterval(() => {
-                    func(list);
-                }, 1000);
-            },
-
-            submit: function (bargain) {
-                const mchList = [{
-                    "mch_id": 0,
-                    "bargain_order_id": bargain.bargain_order_id,
-                    "goods_list": [{
-                        "id": bargain.goods_id,
-                        "attr": [],
-                        "num": 1,
-                        "cart_id": 0,
-                        "goods_attr_id": bargain.goods_attr_id
-                    }]
-                }];
-
-                uni.navigateTo({
-                    url: '/pages/order-submit/order-submit?mch_list=' +
-                        JSON.stringify(mchList) +
-                        '&preview_url=' + encodeURIComponent(this.$api.bargain.order_preview) +
-                        '&submit_url=' + encodeURIComponent(this.$api.bargain.order_submit)
-                });
-            },
-        }
-
-    }
-</script>
-<style scoped lang="scss">
-    .no-content {
-        padding: #{150rpx} 0;
-        text-align: center;
-        color: #888;
-    }
-
-    .order-list {
-
-    }
-
-    .bargain-list {
-        padding: #{24rpx};
-        margin-bottom: #{8rpx};
-        background: #ffffff;
-
-        image {
-            height: #{216rpx};
-            width: #{215rpx};
-            display: block;
-        }
-
-        .bargain-right {
-            margin-left: #{20rpx};
-            min-height: #{216rpx};
-        }
-
-        .bargain-time {
-            margin: #{8rpx} 0;
-            font-size: #{26rpx};
-
-            .info {
-                width: #{45rpx};
-                height: #{38rpx};
-                background: #666666;
-                color: #FFFFFF;
-                text-align: center;
-                border-radius: #{4rpx};
-                line-height: #{38rpx};
-            }
-
-            .mark {
-                color: #666666;
-                margin: 0 #{10rpx};
-            }
-        }
-
-        .self {
-        }
-
-        .min-price {
-            color: #999999;
-            font-size: #{24rpx};
-        }
-
-        .price {
-            margin-top: #{8rpx};
-            color: #ff4544;
-            font-size: #{28rpx};
-        }
-
-        .bargain-content {
-            margin-bottom: #{64rpx};
-            color: #666666;
-            font-size: #{24rpx};
-        }
-
-        .bargain-name {
-            font-size: #{28rpx};
-            color: #353535;
-        }
-
-        .attr {
-            color: #999999;
-            margin: #{12rpx 0 16rpx 0};
-            font-size: $uni-font-size-weak-one;
-        }
-    }
-</style>

+ 0 - 46
plugins/bargain/rule/rule.vue

xqd
@@ -1,46 +0,0 @@
-<template>
-    <view class="app-layout">
-        <app-layout>
-            <view class="rule">
-                <text class="text" space="nbsp" v-text="rules"></text>
-            </view>
-        </app-layout>
-    </view>
-</template>
-
-<script>
-    import appLayout from "../../../components/basic-component/app-layout/app-layout.vue";
-
-    export default {
-        name: "rule",
-        components: {appLayout},
-
-        data() {
-            return {
-                rules: '',
-            }
-        },
-        onLoad: function (options) {
-            if (options.rules) {
-                this.rules = options.rules;
-            }
-        }
-
-    }
-</script>
-
-<style scoped lang="scss">
-    .app-layout /deep/ .app-layout {
-        background-color: #FFFFFF;
-        min-height: 100vh;
-    }
-
-    .rule {
-        padding: #{30rpx};
-
-        .text {
-            word-break: break-all;
-            text-align: justify;
-        }
-    }
-</style>

+ 0 - 92
plugins/bonus/about/about.vue

xqd
@@ -1,92 +0,0 @@
-<template>
-    <app-layout>
-        <view v-if="loadingOver" class="page">
-            <view class="list">提现比例分{{list.length}}个等级</view>
-            <view class="list" v-for="item in list" :key="item.id">
-                <text v-if="item.update_type == 0">分销佣金</text>
-                <text v-if="item.update_type == 1">已提现佣金</text>
-                <text v-if="item.update_type == 2">下线人数</text>
-                <text v-if="item.update_type == 3">下线分销商数</text>
-                <text v-if="item.update_type == 4">下级队长数</text>
-                <text>达到{{item.update_condition}}</text>
-                <text v-if="item.update_type > 1">人,</text>
-                <text v-if="item.update_type < 2">元,</text>
-                <text>提成等级比例为{{item.rate}}%</text>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appLayout from "../../../components/basic-component/app-layout/app-layout.vue";
-    import appFormId from "../../../components/basic-component/app-form-id/app-form-id.vue";
-
-    import { mapState } from "vuex";
-
-    export default {
-        data() {
-            return {
-                loadingOver: false,
-                list: []
-            }
-        },
-        components: {
-            "app-layout": appLayout,
-            "app-form-id": appFormId,
-        },
-        computed: {
-            ...mapState({
-                theme: state => state.mallConfig.theme,
-                userInfo: state => state.user.info,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus
-            })
-        },
-        methods: {
-            getList() {
-                this.$request({
-                    url: this.$api.bonus.member,
-                }).then(response=>{
-                    this.$hideLoading();
-                    if(response.code === 0) {
-                        this.list = response.data.list;
-                        this.loadingOver = true;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(() => {
-                    this.$hideLoading();
-                });
-            },
-        },
-
-        onLoad() {
-            let that = this;
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.getList();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .page {
-        font-size:#{28rpx};
-        color:#353535;
-        position: absolute;
-        width: 100%;
-        height: 100%;
-        background-color: #fff;
-        padding: #{28rpx} 0;
-    }
-
-    .list {
-        background-color: #fff;
-        padding: 0 #{28rpx};
-    }
-</style>

+ 0 - 219
plugins/bonus/cash-detail/cash-detail.vue

xqd
@@ -1,219 +0,0 @@
-f<template>
-    <app-layout>
-        <app-tab-nav :tabList="tabList" background="#f7f7f7" padding="0" :border="noBorder" :activeItem="activeTab" @click="tabStatus" :theme="theme"></app-tab-nav>
-        <view v-if="list.length == 0" class="tip main-center cross-center">暂无数据</view>
-        <view v-else class="list" v-for="item in list" :key="item.id">
-            <view class="item-header">{{item.date}}</view>
-            <view class="item" v-for="list in item.list" :key="list.id">
-                <view class="type">
-                    <text v-if="list.pay_type == 'auto'">自动打款</text>
-                    <text v-if="list.pay_type == 'balance'">提现至余额</text>
-                    <text v-if="list.pay_type == 'wechat'">提现至微信</text>
-                    <text v-if="list.pay_type == 'alipay'">提现至支付宝</text>
-                    <text v-if="list.pay_type == 'bank'">提现至银行卡</text>
-                    <text :class="[`status`,`${theme}-color`]">{{list.status_text}}</text></view>
-                <view>提现账户:{{list.extra.mobile}}</view>
-                <view>提现时间:{{list.time.created_at}}</view>
-                <view v-if="list.content.reject_content">驳回理由:<text style="word-wrap:break-word;">{{list.content.reject_content}}</text></view>
-                <view class="cash">
-                    <view class="cash-price">{{list.cash.price}}</view>
-                    <view>手续费{{list.cash.service_charge}}</view>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appLayout from "../../../components/basic-component/app-layout/app-layout.vue";
-    import appFormId from "../../../components/basic-component/app-form-id/app-form-id.vue";
-    import appTabNav from "../../../components/basic-component/app-tab-nav/app-tab-nav.vue";
-
-    import { mapState } from "vuex";
-
-    export default {
-        data() {
-            return {
-                tabList: [
-                    {id:-1, name: '全部'},
-                    {id:0, name: '待审核'},
-                    {id:1, name: '待打款'},
-                    {id:2, name: '已打款'},
-                    {id:3, name: '无效'},
-                ],
-                loading: null,
-                list: [],
-                activeTab: -1,
-                noBorder: false,
-                id: null,
-                page: 2
-            }
-        },
-        components: {
-            "app-layout": appLayout,
-            "app-form-id": appFormId,
-            "app-tab-nav": appTabNav,
-        },
-        computed: {
-            ...mapState({
-                theme: state => state.mallConfig.theme,
-                mall: state => state.mallConfig.mall,
-                custom_setting: state => state.mallConfig.share_setting_custom,
-                share_setting: state => state.mallConfig.share_setting,
-            })
-        },
-        methods: {
-            open(e) {
-                this.id = e;
-            },
-
-            tabStatus(e) {
-                uni.showLoading({
-                    title: '加载中...'
-                });
-                this.list = [];
-                this.page = 2;
-                this.activeTab = e.currentTarget.dataset.id;
-                this.getList();
-            },
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.detail,
-                    data: {
-                        status: that.activeTab
-                    },
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
-                        that.getSetting();
-                    });
-                });
-            },
-            getMore() {
-                let that = this;
-                uni.showLoading({
-                    title: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.bonus.detail,
-                    data: {
-                        status: that.activeTab,
-                        page: that.page
-                    },
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.loading = null;
-                        let more = response.data.list;
-                        if (more.length > 0) {
-                            if (that.list[that.list.length - 1].date == more[0].date) {
-                                that.list[that.list.length - 1].list = that.list[that.list.length - 1].list.concat(more[0].list);
-                                more.shift();
-                                that.list = that.list.concat(more)
-                            }else {
-                                that.list = that.list.concat(more)
-                            }
-                            that.page++;
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(e => {
-                    uni.hideLoading();
-                });
-            },
-            toGoods(id) {
-                uni.navigateTo({
-                    url: '/pages/goods/goods?id=' + id
-                });
-            },
-        },
-
-        onLoad(options) {
-            let that = this;
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.getList();
-        },
-        onReachBottom() {
-            this.getMore();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .list {
-        background-color: #fff;
-        margin: #{24rpx} #{24rpx} 0;
-        border-radius: #{8rpx};
-        box-shadow: rgba(0, 0, 0, .1) 0 0 #{20rpx};
-    }
-
-    .item-header {
-        color: #999999;
-        font-size: #{32rpx};
-        height: #{96rpx};
-        line-height: #{96rpx};
-        padding: 0 #{32rpx};
-    }
-
-    .list .item {
-        padding: #{32rpx};
-        font-size: #{24rpx};
-        color: #999999;
-        border-top: 1px solid #e2e2e2;
-        position: relative;
-    }
-
-    .type {
-        font-size: #{32rpx};
-        color: #353535;
-        margin-bottom: #{8rpx};
-    }
-
-    .status {
-        margin-left: #{20rpx};
-        font-size: #{24rpx};
-        padding: 0 #{10rpx};
-        border-radius: #{16rpx};
-        border: 1px solid #ff4544;
-    }
-
-    .cash {
-        position: absolute;
-        top: #{50rpx};
-        right: #{32rpx};
-        text-align: right;
-    }
-
-    .cash-price {
-        font-size: #{40rpx};
-        color: #353535;
-    }
-
-    .tip {
-        width: 100%;
-        color: #999999;
-        height: #{500rpx};
-    }
-</style>

+ 0 - 650
plugins/bonus/cash/cash.vue

xqd
@@ -1,650 +0,0 @@
-<template>
-    <app-layout>
-        <view class="info">
-            <view class="last">可提现金额:{{captain.total_bonus ? captain.total_bonus : 0}}元</view>
-        </view>
-        <view>
-            <view class="info input-money main-between cross-center">
-                <view class="input">
-                    <input v-model="moneyInput" type="digit" placeholder-style="color:#cdcdcd"
-                           :placeholder="'请输入' + custom_setting.words.cash_money.name">
-                    <view :class="[`price`,`${theme}-color`]">¥</view>
-                </view>
-            </view>
-            <view class="about"
-                  v-if="config.min_money > 0 || config.cash_service_charge > 0 || config.free_cash_min > 0 || config.free_cash_max > 0">
-                <view class="dir-left-nowrap">
-                    <view>说明:</view>
-                    <view>
-                        <view v-if="config.min_money > 0">金额不能少于¥{{config.min_money}}元</view>
-                        <view v-if="config.cash_service_charge > 0">提现需要加收{{config.cash_service_charge}}%手续费</view>
-                        <view v-if="config.free_cash_max > 0">
-                            免手续费提现金额区间为¥{{config.free_cash_min}}~¥{{config.free_cash_max}}
-                        </view>
-                    </view>
-                </view>
-            </view>
-
-            <view class="dir-left-nowrap cross-center cash-type" @click="cashTypeModel = true">
-                <view class="box-grow-1">提现方式</view>
-                <view class="box-grow-0">{{cashName}}</view>
-                <image class="box-grow-0 arrow-image" src="/static/image/icon/arrow-right.png"></image>
-            </view>
-
-            <view v-if="mark_num==1 || mark_num ==2 || mark_num == 3" class="cash-info">
-                <view class="info content">
-                    <view class="enter" v-if="mark_num==3">开户人</view>
-                    <view class="enter" v-else>姓名</view>
-                    <input class="info-input" v-model="name" placeholder="请输入正确的姓名"></input>
-                </view>
-                <view class="info content" v-if="mark_num==3">
-                    <view class="enter">开户行</view>
-                    <input class="info-input" v-model="bank_name" placeholder="请输入正确的银行名称"></input>
-                </view>
-                <view class="info content">
-                    <view class="enter">帐号</view>
-                    <input class="info-input" v-model="mobile" v-if="mark_num==1" placeholder="请输入正确的微信帐号"></input>
-                    <input class="info-input" v-model="mobile" v-if="mark_num==2" placeholder="请输入正确的支付宝帐号"></input>
-                    <input class="info-input" v-model="mobile" v-if="mark_num==3" type="number" placeholder="请输入正确的银行卡帐号"></input>
-                </view>
-            </view>
-            <view class="submit">
-                <button @click="subscribe" :class="[`${theme}-background`]">提交申请</button>
-            </view>
-        </view>
-        <view class="bg" v-if="submitOver || warningInfo">
-            <view class="dialog">
-                <view class="dialog-title">提示</view>
-                <view v-if="submitOver">提现申请提交成功</view>
-                <view v-if="warningInfo">{{warningInfo}}</view>
-                <view @click="toDetail" v-if="submitOver" class="close-button">确认</view>
-                <view @click="warningInfo = false" v-if="warningInfo" class="close-button">确认</view>
-            </view>
-        </view>
-        <app-cash-model
-                :is-auto="pay_type.auto"
-                :is-wx="pay_type.wechat"
-                :is-alipay="pay_type.alipay"
-                :is-bank="pay_type.bank"
-                :is-balance="pay_type.balance"
-                :pay-type="cashType"
-                @change="payTypeChange"
-                v-model="cashTypeModel"
-        ></app-cash-model>
-    </app-layout>
-</template>
-
-<script>
-    import appLayout from "../../../components/basic-component/app-layout/app-layout.vue";
-    import appFormId from "../../../components/basic-component/app-form-id/app-form-id.vue";
-    import appCashModel from "../../../components/page-component/app-cash-model/app-cash-model.vue"
-    import {mapState} from "vuex";
-
-    export default {
-        data() {
-            return {
-                cashTypeModel: false,
-                visible: false,
-                mark_num: -1,
-                captain: {},
-                pay_type: {
-                    auto: false,
-                    alipay: false,
-                    wechat: false,
-                    bank: false,
-                    balance: false,
-                },
-                warningInfo: '',
-                submitOver: false,
-                template_message: [],
-                config: [],
-                getMoney: null,
-                cashType: '',
-            }
-        },
-        components: {
-            "app-layout": appLayout,
-            "app-form-id": appFormId,
-            appCashModel,
-        },
-        computed: {
-            ...mapState({
-                theme: state => state.mallConfig.theme,
-                mall: state => state.mallConfig.mall,
-                custom_setting: state => state.mallConfig.share_setting_custom,
-                share_setting: state => state.mallConfig.share_setting,
-            }),
-            cashName() {
-                switch (this.cashType) {
-                    case 'auto':
-                        // #ifdef MP-WEIXIN
-                        return '微信零钱';
-                        // #endif
-                        // #ifdef MP-ALIPAY
-                        return '支付宝余额';
-                        // #endif
-                        // #ifndef MP-WEIXIN || MP-ALIPAY
-                        return '自动';
-                    // #endif
-                    case 'wx':
-                        return '微信线下打款';
-                    case 'alipay':
-                        return '支付宝线下打款';
-                    case 'bank':
-                        return '银联线下打款';
-                    case 'balance':
-                        return '商城余额';
-                    default:
-                        return;
-                        break;
-                }
-            },
-        },
-        methods: {
-            payTypeChange(value) {
-                this.cashType = value;
-                switch (value) {
-                    case 'auto':
-                        this.mark_num = 0;
-                        break;
-                    case 'wx':
-                        this.mark_num = 1;
-                        break;
-                    case 'alipay':
-                        this.mark_num = 2;
-                        break;
-                    case 'bank':
-                        this.mark_num = 3;
-                        break;
-                    case 'balance':
-                        this.mark_num = 4;
-                        break;
-                    default:
-                        this.mark_num = -1;
-                        break;
-                }
-            },
-
-            subscribe() {
-                if (this.mark_num == -1) {
-                    uni.showToast({title: '请选择提现方式', icon: 'none'});
-                    return;
-                }
-                console.log(this.mark_num,this.mark_num == -1);
-                this.$subscribe(this.template_message).then(res => {
-                    this.submit();
-                }).catch(res => {
-                    this.submit();
-                });
-            },
-            submit() {
-                let that = this;
-                let para = {
-                    price: that.moneyInput,
-                    type: 'auto'
-                };
-                if(that.mark_num == 4) {
-                    para.type = 'balance';
-                } else if(that.mark_num == 0) {
-                    para.type = 'auto';
-                } else {
-                    para.name = that.name;
-                    para.mobile = that.mobile;
-                    if (that.mark_num == 1) {
-                        para.type = 'wechat';
-                    }
-                    if (that.mark_num == 2) {
-                        para.type = 'alipay';
-                    }
-                    if (that.mark_num == 3) {
-                        para.type = 'bank';
-                        para.bank_name = that.bank_name;
-                    }
-                }
-                that.$request({
-                    url: that.$api.bonus.cash,
-                    data: para,
-                    method: 'post'
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.submitOver = true;
-                    }else {
-                        that.warningInfo = response.msg;
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-
-            toDetail() {
-                this.submitOver = false;
-                uni.redirectTo({
-                    url: '/plugins/bonus/cash-detail/cash-detail'
-                });
-            },
-
-            getStatus() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.status,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.captain = response.data.captain;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-
-            setting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.setting,
-                }).then(response=>{
-                    that.$hideLoading();
-                    that.getStatus();
-                    if(response.code == 0) {
-                        that.config = response.data.list;
-                        that.template_message = response.data.list.template_message_withdraw;
-                        for (let i = 0; i < that.config.pay_type.length; i++) {
-                            switch (that.config.pay_type[i]) {
-                                case "auto":
-                                    that.pay_type.auto = true;
-                                    //that.mark_num = 0;
-                                    break;
-                                case "alipay":
-                                    that.pay_type.alipay = true;
-                                    //that.mark_num = 2;
-                                    break;
-                                case "wechat":
-                                    that.pay_type.wechat = true;
-                                    //that.mark_num = 1;
-                                    break;
-                                case "balance":
-                                    that.pay_type.balance = true;
-                                    //that.mark_num = 4;
-                                    break;
-                                case "bank":
-                                    that.pay_type.bank = true;
-                                    //that.mark_num = 3;
-                                    break;
-                            }
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-        },
-
-        onLoad(options) {
-            let that = this;
-            if (options.money > 0) {
-                that.money = options.money;
-            };
-            that.setting();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .cash-type {
-        height: #{120rpx};
-        background: white;
-        color: #353535;
-        font-size: #{32rpx};
-        padding: 0 #{24rpx};
-        margin-top: #{24rpx};
-
-        .arrow-image {
-            width: #{12rpx};
-            height: #{24rpx};
-            display: block;
-            margin-left: #{12rpx};
-        }
-    }
-
-    .cash-info {
-        margin-top: #{20rpx};
-    }
-
-    .info {
-        background-color: #fff;
-        padding: #{32rpx} #{24rpx};
-        border-bottom: #{1rpx} solid #e2e2e2;
-        color: #353535;
-    }
-
-    .info.input-money {
-        border-bottom: 0;
-    }
-
-    .info.cash-type {
-        margin: #{20rpx} 0;
-        padding: #{32rpx} 0;
-    }
-
-    .last {
-        font-size: #{40rpx};
-        margin-bottom: #{15rpx};
-    }
-
-    .last-info {
-        font-size: #{24rpx};
-        color: #666;
-    }
-
-    .last-info view {
-        float: left;
-        height: #{44rpx};
-        line-height: #{44rpx};
-    }
-
-    .last-info .show-tip {
-        color: #666;
-        display: inline-block;
-        background-color: #fff;
-        font-size: #{24rpx};
-        padding: 0 #{12rpx};
-        height: #{44rpx};
-        line-height: #{44rpx};
-        border-radius: #{22rpx};
-        border: #{1rpx} solid #e2e2e2;
-    }
-
-    .last-info button::after {
-        border: 0;
-    }
-
-    .price {
-        height: #{80rpx};
-        line-height: #{80rpx};
-        font-size: #{46rpx};
-        position: absolute;
-        left: 0;
-        top: 0;
-    }
-
-    .all {
-        color: #666;
-    }
-
-    .input {
-        font-size: #{36rpx};
-        height: #{80rpx};
-        line-height: #{80rpx};
-        width: 70%;
-        padding-left: #{50rpx};
-        position: relative;
-    }
-
-    .input input {
-        height: #{80rpx};
-        line-height: #{80rpx};
-    }
-
-    .about {
-        font-size: #{24rpx};
-        padding: #{32rpx} #{24rpx} #{12rpx};
-        color: #666;
-    }
-
-    .icon {
-        height: #{40rpx};
-        width: #{40rpx};
-        margin-right: #{16rpx};
-        display: flex;
-        justify-content: center;
-    }
-
-    .mode-item {
-        width: #{200rpx};
-        border: #{1rpx} solid #999;
-        text-align: center;
-        padding: 0 #{24rpx};
-        height: #{66rpx};
-        line-height: #{66rpx};
-        border-radius: #{33rpx};
-        display: flex;
-        align-items: center;
-        margin: #{10rpx} #{24rpx};
-        font-size: #{30rpx};
-        position: relative;
-    }
-
-    .mode-title {
-        margin-bottom: #{25rpx};
-        padding-left: #{24rpx};
-        font-size: #{34rpx};
-    }
-
-    .enter {
-        color: #353535;
-        float: left;
-        width: #{100rpx};
-        height: #{56rpx};
-        line-height: #{56rpx};
-        font-size: #{32rpx};
-    }
-
-    .content {
-        height: #{120rpx};
-    }
-
-    .info-input {
-        font-size: #{32rpx};
-        height: #{56rpx};
-        padding: 0 #{32rpx};
-    }
-
-
-    .on-active {
-        height: #{32rpx};
-        width: #{32rpx};
-        position: absolute;
-        right: 0;
-        bottom: 0;
-    }
-
-    .submit {
-        margin-top: #{40rpx};
-    }
-
-    .submit button {
-        height: #{80rpx};
-        border-radius: #{40rpx};
-        line-height: #{80rpx};
-        width: 90%;
-        margin: 0 auto;
-        color: #fff;
-        font-size: #{32rpx};
-    }
-
-    .bg {
-        position: fixed;
-        top: 0;
-        left: 0;
-        height: 100%;
-        width: 100%;
-        background-color: rgba(0, 0, 0, .3);
-        z-index: 10;
-    }
-
-    .dialog {
-        position: fixed;
-        top: #{400rpx};
-        left: 0;
-        right: 0;
-        height: #{300rpx};
-        width: #{640rpx};
-        margin: 0 auto;
-        z-index: 21;
-        background-color: #fff;
-        border-radius: 10px;
-        text-align: center;
-        font-size: #{30rpx};
-    }
-
-    .dialog-title {
-        margin: #{40rpx} auto #{35rpx};
-    }
-
-    .dialog-btn {
-        height: #{88rpx};
-        width: #{640rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        line-height: #{88rpx};
-        position: absolute;
-        bottom: 0;
-        left: 0;
-    }
-
-    .dialog-close,.dialog-submit {
-        width: 50%;
-    }
-
-    .line {
-        height: #{44rpx};
-        margin-top: #{22rpx};
-        width: #{1rpx};
-        background-color: #e2e2e2;
-    }
-
-    .dialog-submit {
-        color: #ff4544;
-    }
-
-    .bg {
-        position: fixed;
-        top: 0;
-        left: 0;
-        right: 0;
-        height: 100%;
-        width: 100%;
-        z-index: 20;
-        background-color: rgba(0, 0, 0, 0.3);
-    }
-
-    .dialog {
-        position: fixed;
-        top: #{400rpx};
-        left: 0;
-        right: 0;
-        height: #{300rpx};
-        width: #{640rpx};
-        margin: 0 auto;
-        z-index: 21;
-        background-color: #fff;
-        border-radius: 10px;
-        text-align: center;
-        font-size: #{30rpx};
-    }
-
-    .close-button {
-        height: #{88rpx};
-        width: #{640rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        line-height: #{88rpx};
-        color: #ff4544;
-        position: absolute;
-        bottom: 0;
-        left: 0;
-    }
-
-    .dialog-title {
-        margin: #{40rpx} auto #{35rpx};
-    }
-    // 经典红
-    $classic-red-main-color: #ff4544;
-    $classic-red-secondary-color: #f39800;
-
-    // 活力黄
-    $vibrant-yellow-main-color: #fcc600;
-    $vibrant-yellow-secondary-color: #555555;
-
-    // 浪漫粉
-    $romantic-powder-main-color: #ff547b;
-    $romantic-powder-secondary-color: #ffe6e8;
-
-    // 流光金
-    $streamer-gold-main-color: #ddb766;
-    $streamer-gold-secondary-color: #f0ebd8;
-
-    // 优雅紫
-    $elegant-purple-main-color: #7783ea;
-    $elegant-purple-secondary-color: #e9ebff;
-
-    // 品味红
-    $taste-red-main-color: #ff4544;
-    $taste-red-secondary-color: #555555;
-
-    // 清醒绿
-    $fresh-green-main-color: #63be72;
-    $fresh-green-secondary-color: #e1f4e3;
-
-    // 商务蓝
-    $business-blue-main-color: #4a90e2;
-    $business-blue-secondary-color: #dbe9f9;
-
-    // 纯粹黑
-    $pure-black-main-color: #333333;
-    $pure-black-secondary-color: #dedede;
-
-    // 热情红
-    $passionate-red-main-color: #ff4544;
-    $passionate-red-secondary-color: #ffdada;
-
-    .classic-red-border {
-      border-color: $classic-red-main-color;
-    }
-
-    .vibrant-yellow-border {
-      border-color: $vibrant-yellow-main-color;
-    }
-
-    .romantic-powder-border {
-      border-color: $romantic-powder-main-color;
-    }
-
-    .streamer-gold-border {
-      border-color: $streamer-gold-main-color;
-    }
-
-    .elegant-purple-border {
-      border-color: $elegant-purple-main-color;
-    }
-
-    .taste-red-border {
-      border-color: $taste-red-main-color;
-    }
-
-    .fresh-green-border {
-      border-color: $fresh-green-main-color;
-    }
-
-    .business-blue-border {
-      border-color: $business-blue-main-color;
-    }
-
-    .pure-black-border {
-      border-color: $pure-black-main-color;
-    }
-
-    .passionate-red-border {
-      border-color: $passionate-red-main-color;
-    }
-</style>

BIN=BIN
plugins/bonus/image/check.png


BIN=BIN
plugins/bonus/image/progress.png


BIN=BIN
plugins/bonus/image/refuse.png


BIN=BIN
plugins/bonus/image/shop-price-less.png


BIN=BIN
plugins/bonus/image/shop-price-plus.png


+ 0 - 963
plugins/bonus/index/index.vue

xqd
@@ -1,963 +0,0 @@
-<template>
-    <app-layout>
-        <view v-if="captain.status == 1 && captain.is_delete != 1">
-            <view class="user-info">
-                <view class="main-between user-name">
-                    <view class="cross-center">
-                        <image class="avatar" :src='captain.avatar'></image>
-                        <view class="t-omit">{{captain.user.nickname}}</view>
-                    </view>
-                    <view class="cross-center rate">
-                        <text>{{setting.form.rate?setting.form.rate:'分红比例'}}{{captain.level ? captain.level.rate: setting.bonus_rate}}%</text>
-                        <view class="rate-icon" @click="toAbout">
-                            <image src="/static/image/icon/question.png"></image>
-                        </view>
-                    </view>
-                </view>
-                <view class="dir-left-nowrap user-bonus">
-                    <view @click="toStatics" class="user-bonus-item">
-                        <view>
-                            <text>{{captain.all_bonus}}</text>元
-                        </view>
-                        <view>{{setting.form.total_bonus?setting.form.total_bonus:'累计分红金额'}}
-                            <image class="right-arrow" src="/static/image/icon/arrow-right-white.png"></image>
-                        </view>
-                    </view>
-                    <view class="user-bonus-item">
-                        <view>
-                            <text>{{captain.expect_bonus}}</text>元
-                        </view>
-                        <view>{{setting.form.expect_bonus?setting.form.expect_bonus:'预计分红金额'}}</view>
-                    </view>
-                </view>
-            </view>
-            <view @click="toDetail">
-                <view class="main-between bonus-item cash-bonus">
-                    <view>{{setting.form.cashd_bonus?setting.form.cashd_bonus:'已提现分红'}}</view>
-                    <view class="bonus-price">
-                        <text>{{captain.cash_bonus}}</text>元
-                        <image src="/static/image/icon/arrow-right.png"></image>
-                    </view>
-                </view>
-            </view>
-            <view class="main-between bonus-item total-bonus">
-                <view>
-                    <view class="bonus-price">
-                        <text>{{captain.total_bonus}}</text>元
-                    </view>
-                    <view>{{setting.form.can_cash_bonus?setting.form.can_cash_bonus:'可提现分红'}}</view>
-                </view>
-                <view>
-                    <view @click="toCash" class="cash-btn">
-                        <button>提现</button>
-                    </view>
-                </view>
-            </view>
-            <view @click="toOrder">
-                <view class="dir-left-nowrap cross-center bonus-item cash-bonus order-item">
-                    <image class="order-icon" :src="bonusImg.order"></image>
-                    <view class="main-between">
-                        <view>{{setting.form.orders?setting.form.orders:'分红订单'}}</view>
-                        <image src="/static/image/icon/arrow-right.png"></image>
-                    </view>
-                </view>
-            </view>
-            <view @click="toMember">
-                <view class="dir-left-nowrap cross-center bonus-item cash-bonus member-item">
-                    <image :src="bonusImg.member"></image>
-                    <view class="main-between">
-                        <view>{{setting.form.members?setting.form.members:'队员'}}</view>
-                        <image src="/static/image/icon/arrow-right.png"></image>
-                    </view>
-                </view>
-            </view>
-        </view>
-        <view v-else style="position: absolute;width: 100%;height: 100%;background-color: #fff;">
-            <image load-lazy="true" class="banner" v-if="(captain.status != 1 && captain.status > -2) || captain.is_delete == 1" :src="setting.bg_url"></image>
-            <view class="apply-area" v-if="toApply && captain.status != 0 && captain.is_delete != 1">
-                <view class="apply">
-                    <view class="apply-input" style="border-top:0">欢迎申请{{setting.form.title ? setting.form.title : '团队分红'}},请填写申请信息</view>
-                    <view class="apply-input dir-left-nowrap">
-                        <view class="label">姓名</view>
-                        <input v-model="name" placeholder="请填写真实姓名" placeholder-style="color:#cdcdcd"></input>
-                    </view>
-                    <view class="apply-input dir-left-nowrap">
-                        <view class="label">手机号</view>
-                        <input v-model="mobile" type="number" placeholder="请填写手机号" placeholder-style="color:#cdcdcd"></input>
-                    </view>
-                    <view class="apply-input" v-if="setting.is_agreement == 1">
-                        <view class="read" @click="read=!read">
-                            <image src="/static/image/icon/icon-uncheck.png" v-if="read == false"></image>
-                            <image :class="[`${theme}-background`]" src="/static/image/icon/icon-checkbox-checked.png" v-else></image>
-                        </view>
-                        我已经阅读并了解
-                        <text style="color:#014c8c" @click="protocol=setting.agreement_content">《{{setting.agreement_title}}》</text>
-                    </view>
-                </view>
-                <view @click="subscribe" class="apply-sumbit be-apply">
-                    <button>申请成为队长</button>
-                </view>
-            </view>
-            <image v-if="toApply && captain.status != 0 && captain.is_delete != 1" :style="{'height':`${height}px`}" @load="imageLoad" class="rights" :src="setting.form.bottom_bg_url"></image>
-            <view v-if="wait" class="wait">
-                <image :src="bonusImg.wait"></image>
-                <view>谢谢您的支持,请等待审核...</view>
-                <view @click="toIndex" class="apply-sumbit to-mall">
-                    <button>去商城逛逛</button>
-                </view>
-            </view>
-            <view v-if="pass && !toApply && captain.status != 1" class="wait is-pass">
-                <image :src="bonusImg.success"></image>
-                <view>
-                    <view class="is-pass-text">您已达到成为队长条件</view>
-                    <view v-if="check.all_members > -1">{{setting.form.become_name ? setting.form.become_name : '下线'}}:{{check.condition}}人</view>
-                    <view v-if="check.all_shares > -1">{{setting.form.become_name ? setting.form.become_name : '下线分销商'}}:{{check.condition}}人</view>
-                    <view v-if="check.total_money > -1">{{setting.form.become_name ? setting.form.become_name : '累计佣金'}}:¥{{check.condition}}元</view>
-                    <view v-if="check.cash_money > -1">{{setting.form.become_name ? setting.form.become_name : '已提现佣金'}}:¥{{check.condition}}元</view>
-                </view>
-                <view @click="toApply=!toApply" class="apply-sumbit to-apply">
-                    <button>立即申请成为队长</button>
-                </view>
-            </view>
-            <view v-if="pass == false">
-                <image class="check-img" src="./../image/check.png"></image>
-                <view class="check-tip">您未达到成为队长条件</view>
-                <view class="check-status" v-if="check.cash_money > -1">还差
-                    <text>¥{{other}}</text>{{setting.form.become_name ? setting.form.become_name : "已提现佣金"}}成为队长</view>
-                <view class="check-status" v-if="check.total_money > -1">还差
-                    <text>¥{{other}}</text>{{setting.form.become_name ? setting.form.become_name : "累计佣金"}}成为队长</view>
-                <view class="check-status" v-if="check.all_shares > -1">还差
-                    <text>{{other}}</text>个{{setting.form.become_name ? setting.form.become_name : "下线分销商"}}成为队长</view>
-                <view class="check-status" v-if="check.all_members > -1">还差
-                    <text>{{other}}</text>个{{setting.form.become_name ? setting.form.become_name : "下线"}}成为队长</view>
-                <view class="progress">
-                    <view :style="{'width': `${rate}%`,'backgroundImage':`url(${bonusImg.progress})`}"></view>
-                </view>
-                <view class="main-between progress-text">
-                    <view v-if="check.cash_money > -1">已有{{setting.form.become_name ? setting.form.become_name : "已提现佣金"}}¥{{check.cash_money}}</view>
-                    <view v-if="check.total_money > -1">已有{{setting.form.become_name ? setting.form.become_name : "累计佣金"}}¥{{check.total_money}}</view>
-                    <view v-if="check.all_shares > -1">已有{{setting.form.become_name ? setting.form.become_name : "下线分销商"}}{{check.all_shares}}人</view>
-                    <view v-if="check.all_members > -1">已有{{setting.form.become_name ? setting.form.become_name : "下线"}}{{check.all_members}}人</view>
-                    <view v-if="check.cash_money > -1 || check.total_money > -1">¥{{check.condition}}</view>
-                    <view v-if="check.all_shares > -1|| check.all_members > -1">{{check.condition}}人</view>
-                </view>
-            </view>
-            <view v-if="captain.status == 2 || captain.is_delete == 1" class="refuse">
-                <image src="./../image/refuse.png"></image>
-                <view v-if="captain.status == 2 && captain.is_delete == 0">您的申请被拒</view>
-                <view v-if="captain.is_delete == 1 && captain.status == 1">您被解除队长身份</view>
-                <view class="refuse-info">
-                    <view>审核时间:
-                        <text>{{captain.apply_at}}</text>
-                    </view>
-                    <view class="refuse-reason" v-if="captain.status == 2">拒绝理由:
-                        <text style="word-wrap:break-word;">{{captain.reason ? captain.reason :"无"}}</text>
-                    </view>
-                    <view class="refuse-reason" v-if="captain.is_delete == 1 && captain.status == 1">解除理由:
-                        <text style="word-wrap:break-word;">{{captain.reason ? captain.reason :"无"}}</text>
-                    </view>
-                    <view @click="reApply" class="apply-sumbit to-mall">
-                        <button>再次申请</button>
-                    </view>
-                </view>
-            </view>
-        </view>
-
-        <!-- 分红协议(modal模式) -->
-        <view class="modal" v-if="protocol">
-            <view class="protocol">
-                <view class="protocol-name">{{setting.agreement_title}}</view>
-                <view class="protocol-content">
-                    <app-rich-text :content="protocol"></app-rich-text>
-                </view>
-                <view @click="protocol=null;read=true">
-                    <view class="read-over">我已阅读</view>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appLayout from "../../../components/basic-component/app-layout/app-layout.vue";
-    import appFormId from "../../../components/basic-component/app-form-id/app-form-id.vue";
-    import appRichText from "../../../components/basic-component/app-rich/parse.vue";
-
-    import { mapState } from "vuex";
-
-    export default {
-        data() {
-            return {
-                read: false,
-                toApply: false,
-                name: '',
-                mobile: '',
-                height: 0,
-                pass: null,
-                check: {},
-                rate: 0,
-                other: 0,
-                protocol: null,
-                setting: '',
-                template_message: [],
-                wait: false,
-                first: false,
-                captain: {
-                    status: 5
-                }
-            }
-        },
-        components: {
-            "app-layout": appLayout,
-            "app-form-id": appFormId,
-            "app-rich-text": appRichText
-        },
-        computed: {
-            ...mapState({
-                theme: state => state.mallConfig.theme,
-                userInfo: state => state.user.info,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus
-            })
-        },
-        methods: {
-            toDetail() {
-                uni.navigateTo({
-                    url: '/plugins/bonus/cash-detail/cash-detail'
-                }); 
-            },
-
-            toIndex() {
-                uni.navigateTo({
-                    url: '/pages/index/index'
-                }); 
-            },
-
-            toCash() {
-                uni.navigateTo({
-                    url: '/plugins/bonus/cash/cash'
-                }); 
-            },
-
-            toStatics() {
-                uni.navigateTo({
-                    url: '/plugins/bonus/statics/statics'
-                }); 
-            },
-
-            toAbout() {
-                uni.navigateTo({
-                    url: '/plugins/bonus/about/about'
-                }); 
-            },
-
-            toOrder() {
-                uni.navigateTo({
-                    url: '/plugins/bonus/order/order'
-                }); 
-            },
-
-            toMember() {
-                uni.navigateTo({
-                    url: '/plugins/bonus/memeber/memeber'
-                }); 
-            },
-
-
-            imageLoad: function (e) {
-                var $width = e.detail.width; //获取图片真实宽度
-                var $height = e.detail.height; //获取图片真实高度
-                this.height = $height * (750 / $width) / 2
-            },
-
-            subscribe() {
-                let that = this;
-                let is_agree = 0;
-                if(that.read) {
-                    is_agree = 1;   
-                }else {
-                    uni.showToast({
-                        title: '请先查看' + that.setting.agreement_title +'并同意',
-                        icon: 'none',
-                        duration: 1000
-                    });
-                    return false;
-                }
-                if(that.name && that.mobile) {
-                    if(that.mobile.length == 11 && (/0?(1)[0-9]{10}/.test(that.mobile))) {
-                        this.$subscribe(this.template_message).then(res => {
-                            this.submit(is_agree);
-                        }).catch(res => {
-                            this.submit(is_agree);
-                        });
-                    }else {
-                        uni.showToast({
-                            title: '请输入正确的手机号码',
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }else {
-                    uni.showToast({
-                        title: '请完善申请信息',
-                        icon: 'none',
-                        duration: 1000
-                    });
-                }
-                // this.$subscribe(this.template_message).then(res => {
-                //     this.submit();
-                // }).catch(res => {
-                //     this.submit();
-                // });
-            },
-            submit(is_agree) {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.apply,
-                    data: {
-                        name: that.name,
-                        mobile: that.mobile,
-                        is_agree: is_agree
-                    },
-                    method: 'post'
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        uni.showToast({
-                            title: response.msg,
-                            duration: 1000
-                        });
-                        setTimeout(function() {
-                            that.getStatus();
-                            that.wait = true;
-                        }, 500)
-                    }else {
-                        if (response.msg == '请先查看团队分红申请协议并同意') {
-                            response.msg = '请先查看' + that.setting.agreement_title +'并同意'
-                        }
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                }); 
-            },
-
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.setting,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.setting = response.data.list;
-                        that.template_message = response.data.list.template_message_captain;
-                        if (that.setting.form && that.setting.form.title) {
-                            uni.setNavigationBarTitle({
-                                title: that.setting.form.title,
-                            })
-                        }else {
-                            uni.setNavigationBarTitle({
-                                title: '团队分红',
-                            })
-                        }
-                        if (that.setting.is_agreement == 0) {
-                            that.read = true;
-                        }
-                        if (that.setting.bg_url == 'statics/img/app/bonus/banner.png') {
-                            that.setting.bg_url = that.bonusImg.banner
-                        }
-                        if (that.setting.form.bottom_bg_url == 'statics/img/app/bonus/right.png') {
-                            that.setting.form.bottom_bg_url = that.bonusImg.right
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-
-            getCheck() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.index,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.check = response.data;
-                        that.pass = response.data.pass;
-                        if(response.data.to_apply) {
-                            toApply = response.data.to_apply
-                        }
-                        let other;
-                        let rate;
-                        if (that.check.total_money > -1) {
-                            other = (that.check.condition - (+that.check.total_money)).toFixed(2)
-                            rate = (+that.check.total_money) / that.check.condition * 100
-                        }
-                        if (that.check.cash_money > -1) {
-                            other = (that.check.condition - (+that.check.cash_money)).toFixed(2)
-                            rate = (+that.check.cash_money) / that.check.condition * 100
-                        }
-                        if (that.check.all_shares > -1) {
-                            other = that.check.condition - (+that.check.all_shares)
-                            rate = (+that.check.all_shares) / that.check.condition * 100
-                        }
-                        if (that.check.all_members > -1) {
-                            other = that.check.condition - (+that.check.all_members)
-                            rate = (+that.check.all_members) / that.check.condition * 100
-                        }
-                        that.other = other;
-                        that.rate = rate;
-                        that.captain.status = 5;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                        if (e.data.msg == '你不是分销商') {
-                        setTimeout(function(){
-                                uni.redirectTo({
-                                    url: '/pages/index/index'
-                                })
-                            },1000)
-                        } else {
-                            that.getSetting();
-                            that.pass = true;
-                            that.captain.status = 5;
-                            captain.status = 5;
-                        }
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
-                        that.$store.dispatch('user/info');
-                        that.getStatus();
-                    });
-                });
-            },
-
-            reApply() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.clear,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.name = '';
-                        that.mobile = '';
-                        that.getCheck();
-                        if (that.setting.become_type != 0) {
-                            that.captain = {}
-                        }else {
-                            that.captain = {}
-                            that.captain.status = 5
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-
-            getStatus() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.status,
-                }).then(response=>{
-                    that.$hideLoading();
-                    that.getSetting();
-                    if(response.code == 0) {
-                        that.wait = false;
-                        that.captain = response.data.captain;
-                        if (that.captain.status == 0) {
-                            that.wait = true;
-                        } else if (that.captain.status == -1) {
-                            that.getCheck();
-                        }
-                        if (that.captain.status == 1) {
-                            that.toApply = false
-                        }
-                    }else {
-                        if (response.msg == '用户未申请队长') {
-                            that.getCheck();
-                        }else {
-                            uni.showToast({
-                                title: response.msg,
-                                icon: 'none',
-                                duration: 1000
-                            });
-                        }
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
-                        that.$store.dispatch('user/info');
-                        that.getStatus();
-                    });
-                });
-            },
-        },
-
-        onLoad() {
-            this.$store.dispatch('user/info');
-        },
-
-        onReady() {
-            this.getStatus();
-            this.first = true;
-        },
-
-        onShow() {
-            if(this.first) {
-                this.pass = null;
-                this.toApply = false;
-                this.read = false;
-                if(this.captain.status != 1) {
-                    this.captain = {};
-                }
-                this.getStatus();
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .banner {
-        height: #{360rpx};
-        width: 100%;
-        display: block;
-    }
-
-    .apply {
-        background-color: #fff;
-        padding: 0 #{24rpx};
-        margin-bottom: #{24rpx};
-    }
-
-    .apply-input {
-        height: #{80rpx};
-        line-height: #{80rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        font-size: #{28rpx};
-        color: #353535;
-    }
-
-    .apply-input .label {
-        width: #{126rpx};
-    }
-
-    .apply-area {
-        background-color: #f7f7f7;
-        padding: #{20rpx} 0 #{24rpx};
-    }
-
-    input {
-        border: 0;
-        width: #{560rpx};
-        height: #{60rpx};
-        line-height: #{60rpx};
-        margin-top: #{10rpx};
-    }
-
-    .read {
-        width: #{42rpx};
-        height: #{80rpx};
-        float: left;
-        padding-top: #{24rpx};
-        padding-right: #{10rpx};
-    }
-
-    .read image {
-        height: #{32rpx};
-        width: #{32rpx};
-        display: block;
-    }
-
-    .apply-sumbit {
-        margin: 0 auto;
-    }
-
-    .apply-sumbit button {
-        height: #{80rpx};
-        line-height: #{80rpx};
-        width: #{702rpx};
-        margin: 0 auto;
-        border-radius: #{40rpx};
-        background-color: #ff4544;
-        color: #fff;
-        font-size: #{32rpx};
-        text-align: center;
-    }
-
-    .apply-sumbit.be-apply {
-        width: #{702rpx};
-    }
-
-    .apply-sumbit.to-mall,.apply-sumbit.to-mall button {
-        width: #{320rpx};
-    }
-
-    .apply-sumbit.to-apply,.apply-sumbit.to-apply button {
-        width: #{440rpx};
-    }
-
-    .rights {
-        width: 100%;
-    }
-
-    .wait {
-        color: #666;
-        font-size: #{32rpx};
-        text-align: center;
-    }
-
-    .wait view {
-        margin-bottom: #{68rpx};
-    }
-
-    .wait.is-pass view{
-        margin-bottom: 0;
-    }
-
-    .wait.is-pass image{
-        height:#{320rpx};
-        width:#{420rpx};
-        margin:#{40rpx} auto;
-    }
-
-    .wait.is-pass>view {
-        padding-bottom: #{33rpx};
-        font-size:#{28rpx};
-    }
-
-    .wait.is-pass .is-pass-text {
-        font-size: #{36rpx};
-        color:#353535;
-    }
-
-    .wait image {
-        height: #{270rpx};
-        width: #{380rpx};
-        margin: #{120rpx} auto #{60rpx};
-    }
-
-    .check-img {
-        height: #{160rpx};
-        width: #{160rpx};
-        margin: #{80rpx} auto #{40rpx};
-        display: block;
-    }
-
-    .check-tip {
-        font-size: #{36rpx};
-        color: #353535;
-        text-align: center;
-        margin-bottom: #{14rpx};
-    }
-
-    .check-status {
-        font-size: #{28rpx};
-        color: #666;
-        text-align: center;
-    }
-
-    .check-status text {
-        font-size: #{40rpx};
-        font-family: DIN;
-        color: #ff8f17;
-        margin-right: #{8rpx};
-    }
-
-    .progress {
-        width: #{600rpx};
-        background-color: #f0f0f0;
-        border-radius: #{20rpx};
-        height: #{40rpx};
-        margin: #{40rpx} auto 0;
-        position: relative;
-    }
-
-    .progress view {
-        border-radius: #{20rpx};
-        height: #{40rpx};
-        position: absolute;
-        top: 0;
-        left: 0;
-        z-index: 2;
-    }
-
-    .progress-text {
-        margin: #{16rpx} auto 0;
-        color: #999;
-        font-size: #{26rpx};
-        width: #{600rpx};
-    }
-
-    .refuse image {
-        height: #{160rpx};
-        width: #{160rpx};
-        margin: #{80rpx} auto #{40rpx};
-    }
-
-    .refuse {
-        font-size: #{36rpx};
-        color: #353535;
-        text-align: center;
-    }
-
-    .refuse view {
-        margin-bottom:#{25rpx};
-    }
-
-    .refuse-reason {
-        margin:#{10rpx} 0 #{76rpx};
-    }
-
-    .refuse-info {
-        font-size: #{28rpx};
-        color: #999;
-        border-top: #{1rpx} solid #e2e2e2;
-        width: #{520rpx};
-        margin: 0 auto;
-        margin-bottom: 0;
-        padding-top: #{30rpx};
-        padding-left: #{20rpx};
-        text-align: left;
-    }
-
-    .refuse-info text {
-        color: #666;
-    }
-
-    .user-info {
-        margin: #{24rpx};
-        width: #{702rpx};
-        padding: #{40rpx};
-        background: linear-gradient(to bottom, #ff7757, #ff6362);
-        border-radius: #{16rpx};
-        font-size: #{36rpx};
-        color: #fff;
-    }
-
-    .user-info .avatar {
-        height: #{80rpx};
-        width: #{80rpx};
-        margin-right: #{28rpx};
-        border-radius: 50%;
-        border: #{2rpx} solid #fff;
-    }
-
-    .user-info .user-name {
-        height: #{80rpx};
-        line-height:#{80rpx};
-        margin-bottom: #{35rpx};
-    }
-
-    .user-info .avatar+view {
-        width: #{300rpx};
-    }
-
-    .rate {
-        font-size:#{26rpx};
-    }
-
-    .rate image {
-        height:#{28rpx};width:#{28rpx};display:block;
-    }
-
-    .rate-icon {
-        height:#{28rpx};
-        width:#{28rpx};
-        margin-left:#{12rpx};
-        display:block;
-    }
-
-    .user-bonus {
-        font-size: #{24rpx};
-    }
-
-    .user-bonus .user-bonus-item {
-        width: #{320rpx};
-    }
-
-    .user-bonus .user-bonus-item view:first-of-type {
-        font-size: #{28rpx};
-    }
-
-    .user-bonus .user-bonus-item text {
-        font-size: #{48rpx};
-        font-family: DIN;
-    }
-
-    .right-arrow {
-        height:#{14rpx};
-        width:#{8rpx};
-        margin-left:#{8rpx};
-    }
-
-    .bonus-item {
-        background-color: #fff;
-        font-size: #{28rpx};
-        color: #999;
-        border-radius: #{16rpx};
-        width: #{702rpx};
-        margin: 0 #{24rpx} #{16rpx};
-    }
-
-    .bonus-item.cash-bonus {
-        height: #{100rpx};
-        line-height: #{100rpx};
-        padding: 0 #{40rpx};
-    }
-
-    .bonus-item.total-bonus {
-        padding: #{32rpx} #{40rpx};
-        height: #{144rpx};
-    }
-
-    .bonus-item.cash-bonus .bonus-price image {
-        height:#{20rpx};
-        width:#{12rpx};
-        margin-left:#{16rpx};
-    }
-
-    .total-bonus .bonus-price {
-        margin-bottom:#{8rpx};
-        margin-top: #{-8rpx};
-    }
-
-    .bonus-price {
-        color: #353535;
-    }
-
-    .bonus-price text {
-        font-size: #{36rpx};
-        font-family: DIN;
-    }
-
-    .cash-btn button {
-        height: #{48rpx};
-        width: #{96rpx};
-        line-height: #{46rpx};
-        border-radius: #{24rpx};
-        border: #{1rpx} solid #ff4544;
-        color: #ff4544;
-        font-size: #{24rpx};
-        text-align: center;
-        margin-top: #{14rpx};
-        padding: 0;
-        background-color: #fff;
-    }
-
-    .cash-btn button::after {
-        border: 0
-    }
-
-    .order-item {
-        margin-bottom: 0;
-        border-bottom-left-radius: 0;
-        border-bottom-right-radius: 0;
-    }
-
-    .order-icon {
-        height:#{40rpx};
-        width:#{40rpx};
-        margin-right:#{32rpx};
-    }
-
-    .order-icon+view {
-        width:#{590rpx};
-    }
-
-    .order-icon+view image{
-        height:#{20rpx};
-        width:#{12rpx};
-        margin-top:#{40rpx};
-    }
-
-    .member-item {
-        border-top-left-radius: 0;
-        border-top-right-radius: 0;
-    }
-
-    .member-item>image {
-        height:#{40rpx};
-        width:#{40rpx};
-        margin-right:#{32rpx};
-    }
-
-    .member-item .main-between {
-        width:#{590rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-    }
-
-    .member-item .main-between image {
-        height:#{20rpx};
-        width:#{12rpx};
-        margin-top:#{40rpx};
-    }
-
-    .modal {
-        position: fixed;
-        top: 0;
-        left: 0;
-        right: 0;
-        height: 100%;
-        width: 100%;
-        z-index: 99;
-        background-color: rgba(0, 0, 0, 0.3);
-    }
-
-    .protocol {
-        position: relative;
-        z-index: 99;
-        background-color: #fff;
-        width: 80%;
-        border-radius: #{20rpx};
-        margin: #{100rpx} auto;
-    }
-
-    .protocol-name {
-        text-align: center;
-        height: #{100rpx};
-        line-height: #{100rpx};
-        color: #666;
-    }
-
-    .protocol-content {
-        padding: #{10rpx} #{20rpx};
-        height: #{720rpx};
-        overflow: auto;
-        color: #353535;
-    }
-
-    .read-over {
-        height: #{100rpx};
-        text-align: center;
-        line-height: #{100rpx};
-        background-color: #ff4544;
-        color: #fff;
-        font-size: #{30rpx};
-        border-bottom-right-radius: #{20rpx};
-        border-bottom-left-radius: #{20rpx};
-    }
-
-    .protocol image {
-        height: #{200rpx};
-        width: #{200rpx};
-    }
-</style>

+ 0 - 344
plugins/bonus/memeber/memeber.vue

xqd
@@ -1,344 +0,0 @@
-<template>
-    <app-layout>
-        <view class="search">
-            <view @click='beSearch' v-if="!toSearch" class="main-center search-content cross-center">
-                <image src="/static/image/icon/icon-search.png"></image>
-                <text>搜索</text>
-            </view>
-            <view v-else class="dir-left-nowrap cross-center search-area">
-                <view class="search-input">
-                    <image src='/static/image/icon/icon-search.png'></image>
-                    <input focus class="box-grow-1 t-small search-content" @confirm='goSearch' confirm-type='search' v-model='keyword' :placeholder="'请输入'+setting.form.members?setting.form.members:'队员'+'昵称搜索'"></input>
-                </view>
-                <view class="cancel" @click="cancelSeacrch">
-                    <view>取消</view>
-                </view>
-            </view>
-        </view>
-        <view @click="toggle" class='main-center cross-center sort'>
-            <text>{{setting.form.offer_text?setting.form.offer_text :'贡献分红金额'}}</text>
-            <image v-if="order_by == 'bonus_price desc'" src='./../image/shop-price-less.png'></image>
-            <image v-if="order_by == 'bonus_price'" src='./../image/shop-price-plus.png'></image>
-        </view>
-        <view class="placeholder"></view>
-        <view @click="toOrder(item.nickname)" v-for="item in list" :key="item.id">
-            <view class="main-between cross-center item">
-                <view class='item-info dir-left-nowrap'>
-                    <image class='avatar' :src='item.avatar'></image>
-                    <view>
-                        <view class="item-nickname">{{item.nickname}}</view>
-                        <view>
-                            <text class='info-label'>{{setting.form.offer_text?setting.form.offer_text :'贡献分红金额'}}</text>
-                            <text style='font-family:DIN'>¥{{item.bonus_price}}</text>
-                        </view>
-                    </view>
-                </view>
-                <view>
-                    <text>订单</text>
-                    <image class="arrow-right" src='/static/image/icon/arrow-right.png'></image>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appLayout from "../../../components/basic-component/app-layout/app-layout.vue";
-    import appFormId from "../../../components/basic-component/app-form-id/app-form-id.vue";
-    import appRichText from "../../../components/basic-component/app-rich/parse.vue";
-
-    import { mapState } from "vuex";
-
-    export default {
-        data() {
-            return {
-                order_by: 'bonus_price desc',
-                captain_id: null,
-                keyword: '',
-                page: 2,
-                setting: '',
-                more_list: false,
-                setting: '',
-                toSearch: false,
-                list: []
-            }
-        },
-        components: {
-            "app-layout": appLayout,
-            "app-form-id": appFormId,
-            "app-rich-text": appRichText
-        },
-        computed: {
-            ...mapState({
-                theme: state => state.mallConfig.theme,
-            })
-        },
-        methods: {
-            toOrder(nickname) {
-                uni.navigateTo({
-                    url: '/plugins/bonus/order/order?nickname=' + nickname
-                }); 
-            },
-
-            cancelSeacrch() {
-                this.keyword = '';
-                this.toSearch = !this.toSearch;
-                this.page = 2;
-                this.getList();
-            },
-
-            beSearch() {
-                this.toSearch = !this.toSearch;
-                this.page = 2;
-            },
-
-            goSearch() {
-                uni.showLoading({
-                    title: '加载中...'
-                });
-                this.getList();
-            },
-
-            toggle() {
-                if (this.order_by == 'bonus_price desc') {
-                    this.order_by = 'bonus_price'
-                } else if (this.order_by == 'bonus_price') {
-                    this.order_by = 'bonus_price desc'
-                }
-                this.list = [];
-                this.page = 2;
-                this.getList();
-            },
-
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.setting,
-                }).then(response=>{
-                    that.getList();
-                    if(response.code == 0) {
-                        that.setting = response.data.list;
-                        if (that.setting.form && that.setting.form.members) {
-                            uni.setNavigationBarTitle({
-                                title: that.setting.form.members,
-                            })
-                        } else {
-                            uni.setNavigationBarTitle({
-                                title: '队员',
-                            })
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                });
-            },
-
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.team,
-                    data: {
-                        keyword: that.keyword,
-                        keyword_1: 1,
-                        order_by: that.order_by,
-                    },
-                    method: 'post'
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    uni.hideLoading();
-                });
-            },
-
-            getMore() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.team,
-                    data: {
-                        keyword: that.keyword,
-                        keyword_1: 1,
-                        order_by: that.order_by,
-                        page: that.page
-                    }
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.list = that.list.concat(response.data.list);
-                        that.page++;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-        },
-
-        onLoad() {
-            let that = this;
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.getSetting();
-        },
-        onReachBottom() {
-            this.getMore();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .search {
-        height: #{88rpx};
-        padding: #{16rpx} #{26rpx};
-        background-color: #efeff4;
-        position: fixed;
-        top: 0;
-        left: 0;
-        right: 0;
-        z-index: 10;
-    }
-
-    .search input {
-        padding: 0 #{30rpx};
-    }
-
-    .search-content {
-        background-color: #fff;
-        height: #{56rpx};
-        border-radius: #{28rpx};
-    }
-
-    .search-content image {
-        height:#{24rpx};
-        width:#{24rpx};
-    }
-
-    .search-content text {
-        color:#b2b2b2;
-        font-size:#{24rpx};
-        margin:0 #{5rpx};
-    }
-
-    .search-area {
-        height: #{56rpx};
-    }
-
-    .placeholder {
-        height: #{192rpx};
-    }
-
-
-    .sort {
-        height: #{80rpx};
-        background-color: #fff;
-        position: fixed;
-        top: #{88rpx};
-        left: 0;
-        right: 0;
-        z-index: 10;
-        font-size: #{28rpx};
-        color: #666;
-    }
-
-    .sort image {
-        height: #{26rpx};
-        width: #{16rpx};
-        margin-left: #{16rpx};
-    }
-
-    .item {
-        width: #{702rpx};
-        margin: #{24rpx};
-        margin-top: 0;
-        background-color: #fff;
-        border-radius: #{16rpx};
-        padding: #{24rpx};
-        font-size: #{24rpx};
-        color: #999;
-    }
-
-    .item .avatar {
-        height: #{80rpx};
-        width: #{80rpx};
-        margin-right: #{24rpx};
-        border-radius: #{5rpx};
-    }
-
-    .item-info {
-        font-size: #{28rpx};
-        color: #353535;
-    }
-
-    .item-info .item-nickname {
-        margin-bottom: #{4rpx};
-    }
-
-    .info-label {
-        height: #{36rpx};
-        padding: 0 #{10rpx};
-        text-align: center;
-        line-height: #{36rpx};
-        font-size: #{24rpx};
-        color: #999;
-        background-color: #efeff4;
-        display: inline-block;
-    }
-
-    .search-input {
-        height: #{56rpx};
-        position: relative;
-        width: #{620rpx};
-    }
-
-    .search-input image {
-        height: #{22rpx};
-        width: #{22rpx};
-        position: absolute;
-        top: #{17rpx};
-        left: #{28rpx};
-        z-index: 10;
-    }
-
-    .search-input input {
-        padding-left: #{66rpx};
-        background-color: #fff;
-        border-radius: #{32rpx};
-        height: #{56rpx};
-        font-size: #{26rpx};
-        color: #353535;
-    }
-
-    .cancel view {
-        margin-left: #{16rpx};
-        font-size: #{28rpx};
-        color: #00c203;
-    }
-
-    .arrow-right {
-        height:#{20rpx};
-        width:#{12rpx};
-        margin-left:#{12rpx};
-    }
-</style>

+ 0 - 329
plugins/bonus/order/order.vue

xqd
@@ -1,329 +0,0 @@
-<template>
-    <app-layout>
-        <view class="search">
-            <view @click="toSearch=!toSearch" v-if="!toSearch" class="main-center search-content cross-center">
-                <image src="/static/image/icon/icon-search.png"></image>
-                <text>搜索</text>
-            </view>
-            <view v-else class="dir-left-norwap cross-center search-area" >
-                <view class="search-input">
-                    <image src="/static/image/icon/icon-search.png"></image>
-                    <input :focus="!haveKeyword" @confirm="getList" confirm-type="search" v-model="keyword" placeholder-style="color:#999999;font-size:13px;" placeholder="请输入订单号或昵称搜索"></input>
-                </view>
-                <view class="cancel" @click="cancelSeacrch">取消</view>
-            </view>
-        </view>
-        <app-tab-nav setTop="88" :tabList="tabList" :activeItem="activeTab" padding="0" @click="tabStatus" :theme="theme"></app-tab-nav>
-        <view class="placeholder"></view>
-        <view v-for="item in list" :key="item.id" class="order-item">
-            <view class="order-no">订单号 {{item.order_no}}</view>
-            <view class="main-between cross-center">
-                <view class="goods-item dir-left-nowrap">
-                    <image class="goods-img" :src="item.avatar"></image>
-                    <view class="t-omit order-nickname">{{item.nickname}}</view>
-                </view>
-                <view class="bonus-info">
-                    <view class="goods-price">商品金额
-                        <text>¥{{item.total_pay_price}}</text>
-                    </view>
-                    <view class="bonus-price">{{setting.form.price_text ? setting.form.price_text :"分红金额"}}
-                        <text>¥{{item.bonus_price}}</text>
-                    </view>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appLayout from "../../../components/basic-component/app-layout/app-layout.vue";
-    import appFormId from "../../../components/basic-component/app-form-id/app-form-id.vue";
-    import appTabNav from "../../../components/basic-component/app-tab-nav/app-tab-nav.vue";
-
-    import { mapState } from "vuex";
-
-    export default {
-        data() {
-            return {
-                tabList: [
-                    {id:1, name: '未完成'},
-                    {id:2, name: '已完成'}
-                ],
-                loading: null,
-                list: [],
-                activeTab: 1,
-                page: 2,
-                keyword: '',
-                toSearch: false,
-                haveKeyword: false,
-                list: []
-            }
-        },
-        components: {
-            "app-layout": appLayout,
-            "app-form-id": appFormId,
-            "app-tab-nav": appTabNav,
-        },
-        computed: {
-            ...mapState({
-                theme: state => state.mallConfig.theme,
-                mall: state => state.mallConfig.mall,
-            })
-        },
-        methods: {
-            open(e) {
-                this.id = e;
-            },
-
-            goSearch() {
-                uni.showLoading({
-                    title: '加载中...'
-                });
-                this.getList();
-            },
-            
-            tabStatus(e) {
-                uni.showLoading({
-                    title: '加载中...'
-                });
-                this.list = [];
-                this.page = 2;
-                this.activeTab = e.currentTarget.dataset.id;
-                this.getList();
-            },
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.setting,
-                }).then(response=>{
-                    if(response.code == 0) {
-                        that.setting = response.data.list;
-                        if (that.setting.form && that.setting.form.orders) {
-                            uni.setNavigationBarTitle({
-                                title: that.setting.form.orders,
-                            })
-                        } else {
-                            uni.setNavigationBarTitle({
-                                title: '分红订单',
-                            })
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
-                        that.getSetting();
-                    });
-                });
-            },
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.order,
-                    data: {
-                        status: that.activeTab,
-                        keyword: that.keyword
-                    },
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
-                        that.getList();
-                    });
-                });
-            },
-            getMore() {
-                let that = this;
-                let url;
-                uni.showLoading({
-                    title: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.bonus.order,
-                    data: {
-                        status: that.activeTab,
-                        keyword: that.keyword,
-                        page: that.page
-                    },
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        if(response.data.list.length > 0) {
-                            that.loading = null;
-                            that.list = that.list.concat(response.data.list);
-                            that.page++;
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(e => {
-                    uni.hideLoading();
-                });
-            },
-            cancelSeacrch() {
-                this.keyword = '';
-                this.toSearch = !this.toSearch;
-                this.getList();
-                this.$hideLoading();
-            },
-        },
-
-        onLoad(options) {
-            let that = this;
-            if (options.nickname) {
-                that.keyword = options.nickname;
-                that.haveKeyword = true;
-                that.toSearch = true;
-            }
-            that.$showLoading({
-                text: '加载中...'
-            });
-            that.getSetting();
-            that.getList();
-        },
-        onReachBottom() {
-            this.getMore();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .search {
-        height: #{88rpx};
-        padding: #{16rpx} #{26rpx};
-        background-color: #efeff4;
-        position: fixed;
-        top: 0;
-        left: 0;
-        right: 0;
-        z-index: 10;
-    }
-
-    .search input {
-        padding: 0 #{30rpx};
-    }
-
-    .search-content {
-        background-color: #fff;
-        height: #{56rpx};
-        border-radius: #{28rpx};
-    }
-
-    .search-content image {
-        height:#{24rpx};
-        width:#{24rpx};
-    }
-
-    .search-content text {
-        color:#b2b2b2;
-        font-size:#{24rpx};
-        margin:0 #{5rpx};
-    }
-
-    .search-area {
-        height: #{56rpx};
-    }
-
-    .placeholder {
-        height: #{88rpx};
-    }
-
-    .order-item {
-        margin: #{16rpx} #{24rpx} 0;
-        border-radius: #{16rpx};
-        background-color: #fff;
-        padding: #{28rpx} #{24rpx};
-        font-size: #{28rpx};
-        color: #353535;
-    }
-
-    .order-no {
-        margin-bottom: #{28rpx};
-    }
-
-    .order-nickname {
-        width: #{240rpx};
-    }
-
-    .goods-item {
-        height: #{80rpx};
-        line-height: #{80rpx};
-        width: #{330rpx};
-    }
-
-    .goods-img {
-        height: #{80rpx};
-        width: #{80rpx};
-        border-radius: #{10rpx};
-        margin-right: #{24rpx};
-    }
-
-    .bonus-info {
-        font-size: #{24rpx};
-        color: #999;
-    }
-
-    .search-input {
-        height: #{56rpx};
-        position: relative;
-        width: #{620rpx};
-    }
-
-    .search-input image {
-        height: #{22rpx};
-        width: #{22rpx};
-        position: absolute;
-        top: #{17rpx};
-        left: #{28rpx};
-        z-index: 10;
-    }
-
-    .search-input input {
-        padding-left: #{66rpx};
-        background-color: #fff;
-        border-radius: #{32rpx};
-        height: #{56rpx};
-        font-size: #{26rpx};
-        color: #353535;
-    }
-
-    .cancel {
-        margin-left: #{16rpx};
-        font-size: #{28rpx};
-        color: #00c203;
-    }
-
-    .goods-price {
-        margin-bottom: #{4rpx};
-    }
-
-    .goods-price text {
-        font-size:#{24rpx};
-        color:#353535;
-    }
-
-    .bonus-price text {
-        font-size:#{28rpx};
-        color:#ff4544;
-    }
-</style>

+ 0 - 336
plugins/bonus/statics/statics.vue

xqd
@@ -1,336 +0,0 @@
-<template>
-    <app-layout>
-        <view class='main-between total'>
-            <view class='box-grow-1'>
-                <view class='data-num'>{{all_data.day_data}}</view>
-                <view>昨日{{setting.form.statics_text ? setting.form.statics_text :'分红'}}</view>
-            </view>
-            <view class='box-grow-1'>
-                <view class='data-num'>{{all_data.day_7_data}}</view>
-                <view>7日{{setting.form.statics_text ? setting.form.statics_text :'分红'}}总计</view>
-            </view>
-            <view class='box-grow-1'>
-                <view class='data-num'>{{all_data.month_12_data}}</view>
-                <view>月{{setting.form.statics_text ? setting.form.statics_text :'分红'}}总计</view>
-            </view>
-        </view>
-        <view class='canvas'>
-            <view class="choose main-center">
-                <view class="choose-list main-center">
-                    <view :class="[_date==0?'active':'','cross-center','main-center','choose-item','left-choose-item']">
-                        <view @click="tablist(0)">昨日{{setting.form.statics_text ? setting.form.statics_text :'分红'}}</view>
-                    </view>
-                    <view :class="[_date==1?'active':'','cross-center','main-center','choose-item']">
-                        <view @click="tablist(1)">7日{{setting.form.statics_text ? setting.form.statics_text :'分红'}}</view>
-                    </view>
-                    <view :class="[_date==2?'active':'','cross-center','main-center','choose-item','right-choose-item']">
-                        <view @click="tablist(2)">月{{setting.form.statics_text ? setting.form.statics_text :'分红'}}</view>
-                    </view>
-                </view>
-            </view>
-            <view class="box">
-                <!--#ifdef MP-ALIPAY -->
-                <canvas @touchstart="touchIt($event,'canvasColumn')" canvas-id="canvasColumn" id="canvasColumn" class="charts" :style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
-                <!--#endif-->
-                <!--#ifndef MP-ALIPAY -->
-                <canvas @touchstart="touchIt($event)" canvas-id="canvasColumn" id="canvasColumn" class="charts"></canvas>
-                <!--#endif-->
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appLayout from "../../../components/basic-component/app-layout/app-layout.vue";
-    import appFormId from "../../../components/basic-component/app-form-id/app-form-id.vue";
-    import uCharts from '../../../components/u-charts/u-charts.min.js';
-    import { mapState } from "vuex";
-
-    var _self;
-    var canvaColumn=null;
-
-    export default {
-        data() {
-            return {
-                list: [],
-                setting: {},
-                cWidth:'',
-                cHeight:'',
-                pixelRatio:1,
-                _date: 0,
-                show: true,
-                all_data: []
-            }
-        },
-        components: {
-            "app-layout": appLayout,
-            "app-form-id": appFormId
-        },
-        computed: {
-            ...mapState({
-                theme: state => state.mallConfig.theme,
-            })
-        },
-        methods: {
-            tablist(e) {
-                let that = this;
-                this._date = e;
-                this.show = true;
-                let Column = {categories:[],series:[{name: '分红金额',data: []}]};
-                let date;
-                let padding;
-                if(e == 0) {
-                    that.list.day_list.forEach(function(row,index){
-                        date = that.list.day_list[index].created_at;
-                        Column.series[0].data.push(row.bonus_price);
-                        if(index % 6 == 0) {
-                            if(date < 10) {
-                                date = '0' + date + ':00'
-                            }else {
-                                date = date + ':00'
-                            }
-                            Column.categories.push(date);
-                        }else {
-                            Column.categories.push('')
-                        }
-                    })
-                    Column.categories.push('24:00')
-                    _self.showColumn("canvasColumn",Column,'line');
-                }else if(e == 1) {
-                    that.list.day_7_list.forEach(function(row,index){
-                        date = that.list.day_7_list[index].created_at.slice(5);
-                        Column.series[0].data.push(row.bonus_price);
-                        Column.categories.push(date);
-                    })
-                    padding = [15,15,4,-30]
-                    _self.showColumn("canvasColumn",Column,'column',padding);
-                }else if(e == 2) {
-                    that.list.month_12_list.forEach(function(row,index){
-                        date = that.list.month_12_list[index].created_at.slice(5) + '月';
-                        Column.series[0].data.push(row.bonus_price);
-                        Column.categories.push(date);
-                    })
-                    padding = [15,15,4,-30]
-                    _self.showColumn("canvasColumn",Column,'column',padding);
-                }
-                this.$forceUpdate();
-            },
-
-            touchIt(e) {
-                canvaColumn.showToolTip(e, {
-                    format: function (item, category) {
-                        item.color = 'rgba(0,0,0,0)';
-                        if(typeof item.data === 'object'){
-                            return category + ' ' + item.name + ':' + item.data.value 
-                        }else{
-                            return category + ' ' + item.name + ':' + item.data 
-                        }
-                    }
-                });
-            },
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.setting,
-                }).then(response=>{
-                    if(response.code == 0) {
-                        that.setting = response.data.list;
-                        if (that.setting.form && that.setting.form.orders) {
-                            uni.setNavigationBarTitle({
-                                title: that.setting.form.statistic_bonus,
-                            })
-                        } else {
-                            uni.setNavigationBarTitle({
-                                title: '分红统计',
-                            })
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            getList() {
-                let that = this;
-                uni.showLoading({
-                    title: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.bonus.data,
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                        that.all_data = response.data.all_data;
-                        let Column = {categories:[],series:[{name: '分红金额',data: []}]};
-                        let date;
-                        response.data.list.day_list.forEach(function(row,index){
-                            date = response.data.list.day_list[index].created_at;
-                            Column.series[0].data.push(row.bonus_price);
-                            if(index % 6 == 0) {
-                                if(date < 10) {
-                                    date = '0' + date + ':00'
-                                }else {
-                                    date = date + ':00'
-                                }
-                                Column.categories.push(date);
-                            }else {
-                                Column.categories.push('')
-                            }
-                        })
-                        Column.categories.push('24:00')
-                        _self.showColumn("canvasColumn",Column,'line');
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                });
-            },
-            showColumn(canvasId,chartData,type,padding){
-                canvaColumn=new uCharts({
-                    $this:_self,
-                    canvasId: canvasId,
-                    type: type ? type : 'column',
-                    legend:{
-                        show: false
-                    },
-                    fontSize:9,
-                    background:'#FFFFFF',
-                    colors: ["#ff4544"],
-                    pixelRatio:_self.pixelRatio,
-                    padding: padding ? padding : [15,15,4,0],
-                    categories: chartData.categories,
-                    series: chartData.series,
-                    xAxis: {
-                        disableGrid:true,
-                    },
-                    yAxis: {
-                        gridType: 'dash',
-                        data: {
-                            disabled: true
-                        }
-                    },
-                    dataLabel: false,
-                    dataPointShape: false,
-                    width: _self.cWidth*_self.pixelRatio,
-                    height: _self.cHeight*_self.pixelRatio,
-                    extra: {
-                        tooltip:{
-                            bgColor:'#000000',
-                            bgOpacity:0.7,
-                        }
-                    }
-                });
-            },
-            changeData(){
-                canvaColumn.updateData({
-                    series: _self.serverData.ColumnB.series,
-                    categories: _self.serverData.ColumnB.categories
-                });
-            }
-        },
-
-        onLoad() {
-            _self = this;
-            //#ifdef MP-ALIPAY
-            uni.getSystemInfo({
-                success: function (res) {
-                    if(res.pixelRatio>1){
-                        //正常这里给2就行,如果pixelRatio=3性能会降低一点
-                        //_self.pixelRatio =res.pixelRatio;
-                        _self.pixelRatio =2;
-                    }
-                }
-            });
-            //#endif
-            this.cWidth=uni.upx2px(650);
-            this.cHeight=uni.upx2px(440);
-            this.getList();
-            this.getSetting();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .total {
-        height: #{150rpx};
-        background-color: #fff;
-        text-align: center;
-        font-size: #{24rpx};
-        color: #999;
-    }
-
-    .data-num {
-        font-size: #{36rpx};
-        font-family: DIN;
-        color: #353535;
-        margin-top: #{36rpx};
-        margin-bottom: #{6rpx};
-    }
-
-    .canvas {
-        width: #{702rpx};
-        margin: #{24rpx};
-        background-color: #fff;
-        border-radius: #{16rpx};
-        padding: #{40rpx} #{24rpx} #{24rpx};
-    }
-
-    .choose {
-        width: 100%;
-        height: #{56rpx};
-        line-height: #{56rpx};
-        font-size: #{24rpx};
-        color: #666;
-        margin: 0 auto #{40rpx};
-    }
-
-    .choose-list {
-        border-radius: #{28rpx};
-    }
-
-    .choose .choose-item {
-        padding: 0 #{24rpx};
-        background-color: #fff;
-        border-bottom: #{1rpx} solid #ff4544;
-        border-top: #{1rpx} solid #ff4544;
-    }
-
-    .choose .choose-item.active {
-        background-color: #ff4544;
-        color: #fff;
-    }
-
-    .left-choose-item {
-        border-top-left-radius: #{28rpx};
-        border-left: #{1rpx} solid #ff4544;
-        border-bottom-left-radius: #{28rpx};
-    }
-
-    .right-choose-item {
-        border-top-right-radius: #{28rpx};
-        border-right: #{1rpx} solid #ff4544;
-        border-bottom-right-radius: #{28rpx};
-    }
-
-    .box {
-        width: 100%;
-        height: #{440rpx};
-    }
-    .charts{
-        width: #{650rpx};
-        height:#{440rpx};
-        background-color: #FFFFFF;
-    }
-
-</style>

+ 0 - 32
plugins/book/components/app-button.vue

xqd
@@ -1,32 +0,0 @@
-<template>
-	<view class="app-button">
-		<app-form-id>
-			<button class="button">预约</button>
-		</app-form-id>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "app-button"
-    }
-</script>
-
-<style scoped lang="scss">
-	.app-button {
-		display: inline-block;
-		height: #{48rpx};
-		.button {
-			width: 100%;
-			display: inline-block;
-			border: #{1rpx} solid #ff4544;
-			height: #{48rpx};
-			font-size: #{28rpx};
-			color: #ff4544;
-			padding: 0 #{28rpx};
-			line-height: #{48rpx};
-			border-radius: #{24rpx};
-			background-color: #fff5f5;
-		}
-	}
-</style>

+ 0 - 47
plugins/book/components/app-head-nav-list.vue

xqd
@@ -1,47 +0,0 @@
-<template>
-	<scroll-view scroll-x class="app-head-nav-list">
-		<text class="app-item" v-for="(item, index) in catList"
-		      :key="index"
-		      :class="{'app-active-item': cat_id == item.id}"
-		      @click="active(item.id)"
-		>{{item.name}}</text>
-	</scroll-view>
-</template>
-
-<script>
-    export default {
-        name: "app-head-nav-list",
-	    
-        props: [`catList`, `cat_id`],
-	    
-        methods: {
-            active(id) {
-                this.$emit('click', id);
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	.app-head-nav-list {
-		width: #{750rpx};
-		height: #{88rpx};
-		white-space: nowrap;
-		background-color: #ffecec;
-		.app-item {
-			display: inline-block;
-			height: #{56rpx};
-			line-height: #{56rpx};
-			font-size: #{28rpx};
-			text-align: center;
-			color: #666666;
-			margin: #{16rpx} #{23rpx};
-			border-radius: #{30rpx};
-			padding: 0 #{24rpx};
-		}
-		.app-active-item {
-			background: linear-gradient(140deg, #ffa360, #ff5c5c);
-			color: #ffffff;
-		}
-	}
-</style>

+ 0 - 84
plugins/book/components/app-head-navigation.vue

xqd
@@ -1,84 +0,0 @@
-<template>
-	<view class="app-head-navigation dir-left-nowrap">
-		<view class="app-item"
-		      v-for="(item, index) in list"
-		      :key="index"
-		      :class="{'app-active-item': activeIndex === item.id}"
-		      @click="active(item.id)"
-		>{{item.name}}</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'app-head-navigation',
-        props: {
-            list: {
-                type: Array,
-                default() {
-                    return [
-                        {
-                            name: '全部',
-                            id: 0,
-                        },
-                        {
-                            name: '待支付',
-                            id: 1
-                        },
-                        {
-                            name: '待使用',
-                            id: 2,
-                        },
-                        {
-                            name: '待评价',
-                            id: 4,
-                        }
-                        ,
-                        {
-                            name: '售后',
-                            id: 9,
-                        }
-                    ];
-                }
-            }
-        },
-        data() {
-            return {
-                activeIndex: 0
-            }
-        },
-        methods: {
-            active(index) {
-                this.activeIndex = index;
-                this.$emit('click', index);
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	.app-head-navigation {
-		width: #{750rpx};
-		height: #{80rpx};
-		background-color: white;
-		white-space: nowrap;
-		border-bottom: #{1rpx} solid #e2e2e2;
-		
-		.app-item {
-			display: inline-block;
-			height: #{80rpx};
-			line-height: #{80rpx};
-			width: #{150rpx};
-			border-bottom-width: #{4rpx};
-			border-bottom-style: solid;
-			border-bottom-color: transparent;
-			color: #666666;
-			font-size: #{32rpx};
-			text-align: center;
-		}
-		.app-active-item {
-			border-bottom-color: #ff5a5a;
-			color: #ff5a5a;
-		}
-	}
-</style>

+ 0 - 158
plugins/book/components/app-product-list.vue

xqd
@@ -1,158 +0,0 @@
-<template>
-	<view class="goods-list dir-top-nowrap">
-		<view v-if="goodsList.length > 0"  class="row dir-left-nowrap main-between box-grow-1" v-for="(item, key) in goodsList" :key="key" >
-			<view class="item box-grow-0" v-for="(good, index) in item"  :key="index" @click="route_go(good)">
-				<view class="image-name dir-top-nowrap main-left">
-					<view class="out-dialog" v-if="good.goods_stock == 0 && appSetting.is_show_stock == '1'">
-						<image :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>
-					</view>
-					<image :lazy-load="true"  class="cover_pic" :src="good.cover_pic"></image>
-					<view class="name t-omit">{{good.name}}</view>
-				</view>
-				<view class="content dir-top-nowrap main-right">
-					<view class="price-bottom" v-if="good.is_level == 1">
-						<app-member-price :price="good.level_price"></app-member-price>
-					</view>
-					<view v-if="good.discount > 0">
-						<app-sup-vip :is_vip_card_user="good.is_vip_card_user" :discount="good.discount"></app-sup-vip>
-					</view>
-					<view class="price-btn dir-left-nowrap main-between cross-center">
-						<view class="price">{{good.price_str}}</view>
-						<view v-if="good.goods_stock != 0" class="btn">预约</view>
-					</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    import {mapState, mapGetters} from 'vuex';
-    import appButton from '../components/app-button.vue';
-    import appMemberPrice from "../../../components/page-component/app-member-mark/app-member-price.vue";
-    import appSupVip from "../../../components/page-component/app-sup-vip/app-sup-vip.vue";
-
-    export default {
-        name: "app-product-list",
-	    
-        components: {
-            'app-button': appButton,
-			'app-member-price': appMemberPrice,
-            'app-sup-vip': appSupVip,
-        },
-	    
-        computed: {
-            ...mapState({
-                appImg: state => state.mallConfig.__wxapp_img.mall,
-                appSetting: state => state.mallConfig.mall.setting,
-            }),
-			...mapGetters('mallConfig', {
-				getVideo: 'getVideo'
-			}),
-        },
-
-        props: [`goodsList`],
-	    
-	    methods: {
-            route_go(data) {
-            	console.log(data);
-				// #ifndef MP-BAIDU
-				if (data.video_url && this.getVideo == 1) {
-					uni.navigateTo({
-						url: `/pages/goods/video?goods_id=${data.goods_id}&sign=booking`
-					});
-				} else {
-					uni.navigateTo({
-						url: `/plugins/book/goods/goods?goods_id=${data.goods_id}`,
-					});
-				}
-				// #endif
-
-				// #ifdef MP-BAIDU
-				uni.navigateTo({
-					url: `/plugins/book/goods/goods?goods_id=${data.goods_id}`,
-				});
-				// #endif
-
-            }
-	    },
-    }
-</script>
-
-<style scoped lang="scss">
-	
-	.goods-list {
-		width: calc(100% - #{32upx});
-		background-color: #f7f7f7;
-		margin: #{0 16upx};
-	}
-	.row {
-		margin-bottom: #{16upx};
-	}
-	.item {
-		width: #{350upx};
-		border-radius: #{15upx};
-		background-color: #ffffff;
-	}
-	
-	.image-name {
-		height: #{396upx};
-		margin-bottom: #{10upx};
-		position: relative;
-		.out-dialog {
-			width: #{350upx};
-			height: #{350upx};
-			position: absolute;
-			top: 0;
-			left: 0;
-			background-color: rgba(0,0,0,.5);
-			image {
-				width: #{350upx};
-				height: #{350upx};
-			}
-		}
-	}
-	
-	.content {
-		margin: #{0 20upx};
-		width: #{310upx};
-		height: calc(100% - #{405upx});
-	}
-	.cover_pic {
-		width: #{350upx};
-		height: #{350upx};
-		margin-bottom: #{20upx};
-		border-top-right-radius: #{15upx};
-		border-top-left-radius: #{15upx};
-	}
-	.name {
-		width: #{310upx};
-		margin: #{0 20upx};
-		font-size: #{28upx};
-		line-height: 1;
-		color: #353535;
-	}
-	.btn {
-		width: #{110upx};
-		height: #{45upx};
-		border-radius: #{22.5upx};
-		border: #{1upx} solid #ff4544;
-		font-size: #{26upx};
-		color: #ff4544;
-		line-height: 1;
-		padding: #{9upx 0};
-		text-align: center;
-		background-color: #fff5f5;
-	}
-	.price-bottom {
-		margin-bottom: #{10upx};
-	}
-	.price {
-		font-size: #{25upx};
-		color: #ff4544;
-	}
-	.price-btn {
-		margin-top: #{10upx};
-		margin-bottom: #{16upx};
-	}
-</style>

+ 0 - 184
plugins/book/components/app-reservation-form.vue

xqd
@@ -1,184 +0,0 @@
-<template>
-	<view class="app-reservation-form dir-left-wrap">
-		<view>
-			<app-jump-button form open_type="navigate" :url="`/plugins/book/orderDetails/orderDetails?id=${item.id}`">
-				<image class="app-image" :src="item.detail[0].goods_info.pic_url"></image>
-				<text class="app-status-text" v-if="item.cancel_status == 2">退款中</text>
-				<text class="app-status-text" v-else-if="item.cancel_status == 1 && item.is_pay == 0">已取消</text>
-				<text class="app-status-text" v-else-if="item.cancel_status == 1">已退款</text>
-				<text class="app-status-text" v-else-if="item.is_pay == 0">待付款</text>
-				<text class="app-status-text" v-else-if="item.is_confirm == 0">待使用</text>
-				<text class="app-status-text" v-else-if="item.is_confirm == 1">已使用</text>
-				<view class="app-title-price">
-					<view class="app-title">
-						{{item.detail[0].goods_info.name}}
-					</view>
-					<view class="app-price dir-left-wrap main-right cross-center">
-						<view class="app-attr">
-							<text v-for="(attr, i) in item.detail[0].goods_info.attr_list" :key="i">{{attr.attr_group_name}}: {{attr.attr_name}}</text>
-						</view>
-						<text class="app-old-price">{{item.total_goods_original_price}}</text>
-						<text  class="app-new-price">{{item.total_pay_price}}</text>
-					</view>
-				</view>
-			</app-jump-button>
-		</view>
-		<view class="app-buttons dir-left-nowrap main-right" v-if="item.cancel_status == 0 && item.is_sale == 0">
-			<view class="app-button" v-if="item.cancel_status != 2 && item.is_pay == 1 && item.is_confirm == 0" @click="refund('refund')">
-				<app-form-id>
-					<view class="button app-button-white">申请退款</view>
-				</app-form-id>
-			</view>
-			<view class="app-button" v-if="item.cancel_status != 2 && item.is_pay == 1 && item.is_confirm == 0" @click="refund('use')">
-				<app-form-id>
-					<view class="button app-button-red">立即使用</view>
-				</app-form-id>
-			</view>
-			<view class="app-button" v-if="item.is_sale == 0 && item.is_confirm == 1" @click="evaluation">
-				<app-form-id>
-					<view class="button app-button-red">去评价</view>
-				</app-form-id>
-			</view>
-			<view class="app-button" v-if="item.is_pay == 0" @click="refund('cancel')">
-				<app-form-id>
-					<view class="button app-button-white">申请取消</view>
-				</app-form-id>
-			</view>
-			<view class="app-button" v-if="item.is_pay == 0" @click="refund('pay')">
-				<app-form-id>
-					<view class="button app-button-red">去支付</view>
-				</app-form-id>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'app-reservation-form',
-        props: {
-            item: {
-                type: Object,
-                default() {
-                    return {}
-                }
-            }
-        },
-        methods: {
-            refund(data) {
-                this.$emit('click', data, this.item);
-            },
-            evaluation() {
-                this.$jump({
-                    open_type: 'navigate',
-                    url: `pages/order/appraise/appraise?id=${this.item.id}`
-                })
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	.app-reservation-form {
-		width: 100%;
-		margin-top: #{20rpx};
-		position: relative;
-		background-color:white;
-		.app-image {
-			width: #{208rpx};
-			height: #{160rpx};
-			border-radius: #{8rpx};
-			margin: #{24rpx} #{24rpx} #{24rpx} #{24rpx};
-		}
-		.app-status-text {
-			display: inline-block;
-			width: #{100rpx};
-			height: #{48rpx};
-			line-height: #{48rpx};
-			font-size: #{26rpx};
-			color: #FFFFFF;
-			background-color: #ff4544;
-			border-top-left-radius: #{8rpx};
-			text-align: center;
-			position: absolute;
-			top: #{24rpx};
-			left: #{24rpx};
-		}
-		.app-title-price {
-			width: #{470rpx};
-			height: #{24+160+24rpx};
-			margin-right: #{24rpx};
-			.app-title {
-				margin-top: #{32rpx};
-				height: #{64rpx};
-				width: #{470rpx};
-				font-size: #{28rpx};
-				line-height: #{32rpx};
-				color: #353535;
-				word-break: break-all;
-				text-overflow: ellipsis;
-				display: -webkit-box;
-				-webkit-box-orient: vertical;
-				-webkit-line-clamp: 2;
-				overflow: hidden;
-			}
-			.app-attr {
-				width: #{470rpx};
-				margin-top: #{6rpx};
-				font-size: 12px;
-				color: #c9c9c9;
-			}
-			.app-price>text {
-				margin-top: #{32rpx};
-				margin-bottom: #{32rpx};
-			}
-			.app-price>text:before {
-				content: '¥';
-			}
-			.app-old-price {
-				text-decoration:line-through;
-				font-size: #{26rpx};
-				color: #999999;
-				margin-right: #{24rpx};
-			}
-			.app-new-price {
-				font-size: #{32rpx};
-				color: #ff4544;
-			}
-		}
-		.app-buttons {
-			height: #{100rpx};
-			width: 100%;
-			border-top: #{1rpx} solid #e2e2e2;
-			padding-right: #{8rpx};
-			.app-button {
-				width: #{180rpx};
-				height: #{60rpx};
-				margin-right: #{16rpx};
-				padding-top: #{20rpx};
-				.button {
-					width: 100%;
-					height: #{60rpx};
-					line-height: #{60rpx};
-					border-radius: #{30rpx};
-					padding: 0;
-					font-size: #{32rpx};
-					border-width: #{1rpx};
-					border-style: solid;
-					text-align: center;
-					border-color: transparent;
-				}
-				.app-button-white {
-					background-color: white;
-					border-color: #cdcdcd;
-					color: #666666;
-				}
-				.app-button-red {
-					background-color: #fff5f5;
-					color: #ff4544;
-					border-color: #ff4544;
-				}
-			}
-		}
-	}
-</style>

+ 0 - 139
plugins/book/components/app-store.vue

xqd
@@ -1,139 +0,0 @@
-<template>
-	<view class="app-store">
-		<view class="app-text" :style="{'app-text-border': borderStyle}" v-if="title">门店信息</view>
-		<view class="app-list" :class="{'app-list-border': storeNum > 1}">
-			<app-jump-button form arrangement="a" open_type="navigate" :url="`/pages/store/detail?id=${store_id}`">
-				<text class="app-store-name" >
-					{{name}}
-				</text>
-				<text class="app-address">地址: {{address}}</text>
-				<text class="app-time">营业时间: {{business_hours}}</text>
-			</app-jump-button>
-		</view>
-		<view class="app-more" v-if="storeNum > 1">
-			<app-jump-button open_type="navigate" :url="`/pages/store/store?book_id=${goods_id}`" arrangement="left" form>
-				查看全部{{storeNum}}家分店
-				<icon class="app-icon" v-if="icon"></icon>
-			</app-jump-button>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "app-store",
-        props: {
-            borderStyle: {
-                type: Boolean,
-                default: function() {
-                    return true;
-                }
-            },
-            icon: {
-                type: Boolean,
-                default() {
-                    return true;
-                }
-            },
-            storeNum: {
-                type: Number,
-                default() {
-                    return 0;
-                }
-            },
-            business_hours: {
-                type: String,
-                default() {
-                    return '';
-                }
-            },
-            address: {
-                type: String,
-                default() {
-                    return '';
-                }
-            },
-            name: {
-                type: String,
-                default() {
-                    return '';
-                }
-            },
-            store_id: {
-                type: String,
-                default() {
-                    return '';
-                }
-            },
-            title: {
-                type: Boolean,
-                default() {
-                    return true;
-                }
-            },
-            goods_id: {
-                type: String,
-                default() {
-                    return '';
-                }
-            },
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	.app-store {
-		width: 100%;
-		background-color: white;
-		padding-left: #{24rpx};
-		margin-bottom: #{20rpx};
-		.app-text {
-			height: #{72rpx};
-			width: calc(100% - #{24rpx});
-			font-size: #{26rpx};
-			color: #999999;
-			line-height: #{72rpx};
-			border-bottom: #{1rpx} solid #e2e2e2;
-		}
-		.app-text-border {
-			border-bottom: #{1rpx} solid #e2e2e2;
-		}
-		.app-more {
-			height: #{80rpx};
-			line-height: #{80rpx};
-			font-size: #{28rpx};
-			color: #00a0e9;
-			position: relative;
-		}
-		.app-icon {
-			position: absolute;
-			top: #{30rpx};
-			right: #{24rpx};
-			width: #{10rpx};
-			height: #{22rpx};
-			background-size: 100% 100%;
-			background-repeat: no-repeat;
-			background-image: url("../../../static/image/icon/arrow-right.png");
-		}
-		.app-list-border {
-			border-bottom: #{1rpx} solid #e2e2e2;
-		}
-		.app-list {
-			padding-bottom: #{32rpx};
-			.app-store-name {
-				font-size: #{28rpx};
-				margin-top: #{32rpx};
-				margin-bottom: #{20rpx};
-				color: #353535;
-			}
-			.app-address {
-				font-size: #{28rpx};
-				color: #999999;
-			}
-			.app-time {
-				font-size: #{28rpx};
-				color: #999999;
-			}
-		}
-	}
-</style>

+ 0 - 105
plugins/book/components/app-write-off-code.vue

xqd
@@ -1,105 +0,0 @@
-<template>
-	<view class="app-write-off-code" v-if="hidden">
-		<view class="app-content">
-			<view class="app-icon" @click="hiddenHandler"></view>
-			<view class="app-text">核销码</view>
-			<image :src="file_path" class="app-image"></image>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'app-write-off-code',
-        props: {
-            hidden: {
-                type: Boolean,
-                default() {
-                    return false;
-                }
-            },
-            itemId: {
-                type: String,
-                default() {
-                    return '-1';
-                }
-            }
-        },
-        data() {
-            return {
-                file_path: '',
-            }
-        },
-        watch: {
-            hidden: {
-                handler: function(v) {
-                    if (v === true) {
-                        this.$request({
-                            url: this.$api.book.clerk_code,
-                            data: {
-                                id: this.itemId,
-                            }
-                        }).then(response => {
-                            if (response.code === 0) {
-                                this.file_path = response.data.file_path;
-                            }
-                        })
-                    }
-                }
-            }
-        },
-        methods: {
-            hiddenHandler() {
-                this.$emit('hiden', false);
-                this.file_path = '';
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	.app-write-off-code {
-		background-color: rgba(0,0,0, 0.6);
-		width: 100%;
-		height: 100%;
-		top: 0;
-		left:0;
-		position: fixed;
-		border-radius: 0;
-		z-index: 1500;
-		.app-content {
-			background-color: white;
-			width: #{600rpx};
-			height: #{600rpx};
-			border-radius: #{8rpx};
-			position: absolute;
-			top: 50%;
-			left: 50%;
-			transform: translate(-50%, -50%);
-			.app-icon {
-				width: #{30rpx};
-				height: #{30rpx};
-				position: absolute;
-				top: #{32rpx};
-				right: #{32rpx};
-				background-repeat: no-repeat;
-				background-size: 100% 100%;
-				background-image: url("../../../static/image/icon/close.png");
-			}
-			.app-text {
-				font-size: #{33rpx};
-				color: #353535;
-				margin-top: #{56rpx};
-				text-align: center;
-			}
-			.app-image {
-				width: #{360rpx};
-				height: #{360rpx};
-				margin-top: #{64rpx};
-				position: absolute;
-				left: 50%;
-				transform: translateX(-50%);
-			}
-		}
-	}
-</style>

+ 0 - 338
plugins/book/goods/goods.vue

xqd
@@ -1,338 +0,0 @@
-<template>
-	<app-layout>
-		<view class="app-details" v-if="loading">
-			
-			<view>
-				<app-quick-navigation></app-quick-navigation>
-			</view>
-			
-			<view class="app-banner">
-				<app-goods-banner
-						:picList="item.pic_url"
-	                    :isCart="isCart"
-						:share="item.share"
-						:goods_id="item.id"
-						:video-url="item.video_url"
-						sign="booking"
-				></app-goods-banner>
-			</view>
-
-			 <!-- 详情标题 -->
-			<view class="goods-name">
-				<app-name :name="item.name"></app-name>
-			</view>
-
-
-			<view class="app-price">
-				<app-goods-price
-				 		:is_vip_card_user="is_vip_card_user"
-				 		:discount='discount'
-						:goods="item"
-						:shareUrl="url"
-				></app-goods-price>
-			</view>
-			
-	        <view class="vip-card">
-	            <app-vip-card background="#fff" top="0" v-if="is_vip"></app-vip-card>
-	        </view>
-			
-			<view class="merchant-guarantee" v-if="item.services.length > 0">
-				<app-goods-service :list="item.services" :border="false"></app-goods-service>
-			</view>
-			
-			<view class="app-attr">
-				<app-attr :goods="item"
-				          :attrGroupList="item.attr_group"
-				          @attrtap="attrtap"
-				          :cartShow="cartShow"
-				          ref="attr"
-				          :selectAttr="selectAttr"
-				          buyText="立即预约"
-				          :previewUrl="previewUrl"
-				          :submitUrl="submitUrl"
-						  plugin="booking"
-				          :show="show"
-				>
-					<app-goods-attr
-							slot="button"
-							:attr-groups="item.attr_group"
-					        :selectAttr="selectAttr"
-							:attr="item.attr"
-					></app-goods-attr>
-				</app-attr>
-			</view>
-			
-			<view v-if="item.store.length > 0">
-				<app-store :store_id="item.store[0].id"
-				           :address="item.store[0].address"
-				           :name="item.store[0].name"
-				           :business_hours="item.store[0].business_hours"
-				           :storeNum="item.store.length"
-						   :goods_id="item.id"
-				></app-store>
-			</view>
-			
-			<view class="goods-detail">
-				<app-goods-detail :goods="item"></app-goods-detail>
-			</view>
-			
-			<view class="app-recommend">
-				<app-related-suggestion-product sign="booking" :list="list" ></app-related-suggestion-product>
-			</view>
-			
-			<view>
-				<app-empty-bottom backgroundColor="#f7f7f7" :height="Number(110)"></app-empty-bottom>
-			</view>
-			
-			<view class="app-buttons">
-				<app-iphone-x>
-					<view slot="empty-area">
-						<view class="app-reservation-button dir-left-nowrap" >
-							
-							<view class="app-back-home">
-								<app-jump-button form arrangement="column" open_type="redirect" url="/pages/index/index">
-									<image class="app-image" src="../../../static/image/icon/index.png"></image>
-									<text class="app-home">首页</text>
-								</app-jump-button>
-							</view>
-							<view class="app-jump" v-if="item.goods_num == 0" style="background-color: #CDCDCD;color: #fff;">已售罄</view>
-							<view class="app-jump" v-else>
-								<app-form-id @click="reservationNow">
-									立即预约
-								</app-form-id>
-							</view>
-						</view>
-					</view>
-				</app-iphone-x>
-			</view>
-		</view>
-	</app-layout>
-</template>
-
-<script>
-    import { mapState } from 'vuex';
-    import appGoodsBanner from '../../../components/page-component/goods/app-goods-banner.vue';
-	import appGoodsPrice from '../../../components/page-component/goods/app-goods-price.vue';
-	import appGoodsAttr from '../../../components/page-component/goods/app-goods-attr.vue';
-	import appAttr from '../../../components/page-component/app-attr/app-attr.vue';
-	import appStore from '../components/app-store.vue';
-	import appRelatedSuggestionProduct from '../../../components/page-component/app-related-suggestion-product/app-related-suggestion-product.vue';
-	import appGoodsDetail from '../../../components/page-component/goods/app-goods-detail.vue';
-    import appQuickNavigation from "../../../components/page-component/app-quick-navigation/app-quick-navigation.vue";
-    import appIphonexBottom from '../../../components/page-component/app-iphonex-bottom/app-iphonex-bottom.vue';
-    import appIphoneX from '../../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-    import appGoodsService from '../../../components/page-component/goods/app-goods-service.vue';
-    import AppVipCard from '../../../components/page-component/app-vip-card/app-vip-card';
-	import appName from '../../../components/page-component/app-goods-detail/app-name.vue';
-    import appEmptyBottom from '../../../components/basic-component/app-empty-bottom/app-empty-bottom.vue';
-
-    export default {
-        name: 'details',
-	    components: {
-            'app-goods-banner': appGoodsBanner,
-		    'app-goods-price': appGoodsPrice,
-		    'app-goods-attr': appGoodsAttr,
-		    'app-attr': appAttr,
-		    'app-store': appStore,
-		    'app-related-suggestion-product': appRelatedSuggestionProduct,
-		    'app-goods-detail': appGoodsDetail,
-            'app-quick-navigation': appQuickNavigation,
-            'app-iphone-bottom': appIphonexBottom,
-		    'app-iphone-x': appIphoneX,
-            'app-goods-service': appGoodsService,
-			'app-name': appName,
-            'app-vip-card': AppVipCard,
-            'app-empty-bottom': appEmptyBottom,
-        },
-	    data() {
-            return {
-                item: null,
-                selectAttr: {},
-                activeIndex: 0,
-                list: [],
-                submitUrl: this.$api.book.order_submit,
-                previewUrl: this.$api.book.order_preview,
-                url: '',
-                cartShow: false,
-                isCart: false,
-                is_vip: false,
-                is_vip_card_user: 0,
-                discount: null,
-                show: 0,
-                loading: false,
-            }
-	    },
-	    onShareAppMessage() {
-	        return this.$shareAppMessage({
-	            path: '/plugins/book/goods/goods',
-	            title: this.item.app_share_title ? this.item.app_share_title : this.item.name,
-                imageUrl: this.item.app_share_pic ? this.item.app_share_pic : '',
-                params: {
-                    goods_id: this.item.id,
-                }
-	        });
-	    },
-        onLoad(options) {
-            let _this = this;
-
-			uni.getLocation({
-                type:'wgs84',
-                success:function(res){
-                    let goods_id = options.goods_id;
-                    _this.$request({
-                        url: _this.$api.book.detail,
-                        data: {
-                            goods_id: goods_id,
-                            latitude: res.latitude,
-                            longitude: res.longitude,
-                        },
-                    }).then(response => {
-                        if (response.code === 0) {
-                            _this.loading = true;
-                            _this.item = response.data.list;
-                            _this.item.id = _this.item.goods_id;
-                            _this.url = `${_this.$api.book.poster}&goods_id=${_this.item.goods_id}`;
-                           _this.requestFun(goods_id);
-	                        if(_this.item.vip_card_appoint.discount > 0) {
-	                            _this.is_vip = true;
-	                            _this.discount = _this.item.vip_card_appoint.discount
-	                        }
-	                        _this.is_vip_card_user = _this.item.vip_card_appoint.is_vip_card_user
-                        }
-                    })
-                },
-                fail:function(e){
-                	console.log(e);
-                    uni.showModal({
-	                    title: '提示',
-	                    content: '请开启位置权限',
-                        success: function() {
-	                        uni.navigateBack();
-                        }
-                    });
-                },
-                complete:function(res){
-                }
-            });
-        },
-	    methods: {
-            attrtap(data)  {
-                if (data !== null) {
-                    this.selectAttr = data;
-                } else {
-                    this.selectAttr = {};
-                }
-            },
-		    requestFun(goods_id) {
-               this.$request({
-                    url: this.$api.goods.new_recommend,
-                    data: {
-                        goods_id: goods_id,
-                        page: this.page,
-                    }
-                }).then(response => {
-                    if (response.code === 0) {
-                        if (response.data.list.length > 0) {
-                            this.list = [...this.list, ...response.data.list];
-                        } else {
-                            this.over = true;
-                        }
-                    }
-                })
-		    },
-            reservationNow() {
-                this.show = Math.random();
-            }
-	    },
-	    computed: {
-            ...mapState({
-                mall: state => state.mallConfig.mall,
-            }),
-            ...mapState('gConfig',{
-                iphone: (data) => {
-                    return data.iphone;
-                },
-                iphoneHeight: (state) =>{
-                    return  state.iphoneHeight;
-                },
-            })
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-
-    .vip-card {
-        padding: 0 #{20rpx};
-        background-color: #fff;
-    }
-	.merchant-guarantee {
-        margin-top: #{20rpx};
-	}
-	.app-details {
-		background-color: #f7f7f7;
-		width: #{750rpx};
-		padding-bottom: #{100rpx};
-		.app-banner {
-			width: 100%;
-		}
-		
-		.app-attr {
-			width: 100%;
-			margin-bottom: #{20rpx};
-			margin-top: #{20rpx};
-		}
-		.app-rich-evaluation {
-			background-color: white;
-			width: #{750rpx};
-			.app-nav {
-				width: #{750rpx};
-				height: #{100rpx};
-				border-bottom: #{1rpx} solid #e2e2e2;
-				>view {
-					text-align: center;
-				}
-				text {
-					text-align: center;
-					height: #{100rpx};
-					line-height: #{100rpx};
-					border-bottom-width: #{1rpx};
-					border-bottom-style: solid;
-					border-bottom-color: transparent;
-					display: inline-block;
-				}
-				.app-active-color {
-					border-bottom-color: #ff4544;
-					color: #ff4544;
-				}
-			}
-		}
-		.app-reservation-button {
-			width: #{750rpx};
-			height: #{100rpx};
-			background-color:white;
-			border-top: #{1rpx} solid #e9e9e9;
-			.app-back-home {
-				width: #{110rpx};
-				height: #{100rpx};
-				.app-image {
-					width: #{40rpx};
-					height: #{40rpx};
-				}
-				.app-home {
-					font-size: #{18rpx};
-					color: #888888;
-				}
-			}
-			.app-jump {
-				width: #{640rpx};
-				height: #{110rpx};
-				line-height: #{100rpx};
-				background-color: #ff4544;
-				color: #ffffff;
-				font-size: #{32rpx};
-				text-align: center;
-			}
-		}
-	}
-</style>

+ 0 - 147
plugins/book/index/index.vue

xqd
@@ -1,147 +0,0 @@
-<template>
-	<app-layout>
-		<view class="book-index">
-			<view class="page-width quick-navigation">
-				<app-quick-navigation></app-quick-navigation>
-			</view>
-			
-			<view class="page-width head-nav-list">
-				<app-head-nav-list
-					v-bind:catList="catList"
-					@click="changeStatus"
-					v-bind:cat_id="cat_id"
-				></app-head-nav-list>
-			</view>
-			
-			<view class="page-width product-list" v-if="goods_list.length > 0">
-				<app-product-list v-bind:goodsList="goods_list"></app-product-list>
-			</view>
-			
-			<view class="page-width no-goods" v-else>
-				<app-no-goods background="#f7f7f7"></app-no-goods>
-			</view>
-		</view>
-	</app-layout>
-</template>
-
-<script>
-	import appHeadNavList from '../components/app-head-nav-list.vue';
-	import appProductList from '../components/app-product-list.vue';
-    import appQuickNavigation from "../../../components/page-component/app-quick-navigation/app-quick-navigation.vue";
-	import appNoGoods from '../../../components/page-component/app-no-goods/app-no-goods.vue';
-	
-    export default {
-        name: "index",
-	   
-	    data() {
-            return {
-                catList: [
-	                {
-	                    name: '全部',
-		                id: 0
-	                }
-                ],
-                cat_id: 0,
-                page: 1,
-                goods_list: [],
-                page_count: 1,
-            }
-	    },
-	    onLoad(option) {
-            uni.showLoading({
-	            title: '加载中',
-            });
-            if (option.cat_id) {
-                this.cat_id = option.cat_id;
-            } else {
-                this.cat_id = this.catList[0].id;
-            }
-            this.request();
-            this.$request({
-	            url: this.$api.book.cats
-            }).then(response => {
-                uni.hideLoading();
-                if (response.code === 0) {
-                    this.catList = [...this.catList, ...response.data.cat];
-	                // this.request();
-                }
-            });
-            
-        },
-	    methods: {
-            
-            changeStatus(status) {
-	            this.page = 1;
-	            this.cat_id = status;
-	            this.goods_list = [];
-                this.request();
-            },
-		    
-		    async request() {
-                uni.showLoading({
-                    title: '加载中',
-                });
-                const res = await this.$request({
-                    url: this.$api.book.list,
-                    data: {
-                        page: this.page,
-                        cat_id: this.cat_id,
-                    }
-                });
-                uni.hideLoading();
-                if (res.code === 0) {
-                    this.dataProcessing(res.data);
-                }
-		    },
-
-            dataProcessing(data) {
-                for (let i = 0; i < data.list.length; i+=2) {
-                    if (i+1 !== data.list.length) {
-                        this.goods_list.push([data.list[i], data.list[i+1]]);
-                    } else {
-                        this.goods_list.push([data.list[i]]);
-                    }
-                }
-                this.page_count = data.pagination.page_count;
-            }
-	    },
-	    onReachBottom() {
-            if (this.page < this.page_count) {
-                this.page++;
-                this.request();
-            }
-        },
-	    
-        onShareAppMessage() {
-            return this.$shareAppMessage({
-                path: '/plugins/book/index/index',
-                title: this.$children[0].navigationBarTitle,
-            });
-        },
-	    
-        components: {
-            'app-head-nav-list': appHeadNavList,
-            'app-product-list': appProductList,
-            'app-quick-navigation': appQuickNavigation,
-	        'app-no-goods': appNoGoods,
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-	
-	.head-nav-list {
-		position: fixed;
-		top: 0;
-		left: 0;
-		z-index: 1500;
-	}
-	
-	.product-list {
-		margin-top: #{100rpx};
-	}
-	
-	.no-goods {
-		margin-top: #{150rpx};
-	}
-</style>

+ 0 - 212
plugins/book/order/order.scss

xqd
@@ -1,212 +0,0 @@
-.order {
-  width: #{750rpx};
-  position: absolute;
-  top: 0;
-  left: 0;
-  height: 100%;
-  background-color: #f7f7f7;
-  .header {
-    height: #{88rpx};
-    width: 100%;
-    position: fixed;
-    top: 0;
-    left: 0;
-    z-index: 1000;
-    background-color: white;
-    border-bottom: #{1rpx} solid #e2e2e2;
-    .header-item {
-      line-height: #{88rpx};
-      text-align: center;
-      text {
-        display: inline-block;
-        height: #{87rpx};
-        line-height: #{86rpx};
-        font-size: #{32rpx};
-        color: #666666;
-        border-bottom-width: #{2rpx};
-        border-bottom-style: solid;
-        border-bottom-color:transparent;
-      }
-      .active-item {
-        color: #ff5c5c;
-        border-bottom-color: #ff5c5c;
-      }
-    }
-  }
-  .product-list {
-    margin-top: #{80rpx};
-    padding-top: #{20rpx};
-    .product {
-      width: 100%;
-      background-color: white;
-      margin-bottom: #{20rpx};
-      .top {
-        padding: #{24rpx};
-        height: #{248rpx};
-        .image-content {
-          width: #{200rpx};
-          height: #{200rpx};
-          position: relative;
-          >image {
-            width: #{200rpx};
-            height: #{200rpx};
-            border-radius: #{8rpx};
-          }
-          .tip-angle {
-            position: absolute;
-            top: 0;
-            left: 0;
-            background-color: #ff6868;
-            color: white;
-            font-size: #{26rpx};
-            border-top-left-radius: #{8rpx};
-            line-height: #{48rpx};
-            height: #{48rpx};
-            width: #{100rpx};
-            text-align: center;
-          }
-        }
-        .text-content {
-          width: #{750-24-200-24-24rpx};
-          height: #{200rpx};
-          .text-top {
-            margin-top: #{8rpx};
-            .name {
-              font-size: #{28rpx};
-              color: #353535;
-              word-break: break-all;
-              text-overflow: ellipsis;
-              display: -webkit-box;
-              -webkit-box-orient: vertical;
-              -webkit-line-clamp: 2;
-              overflow: hidden;
-            }
-            .attr {
-              font-size: #{24rpx};
-              color: #999999;
-              margin-top: #{20rpx};
-            }
-          }
-          .text-bottom {
-            margin-bottom: #{8rpx};
-            .original-price {
-              text-decoration:line-through;
-              font-size: #{26rpx};
-              color: #999999;
-              margin-right: #{24rpx};
-            }
-            .current-price {
-              font-size: #{32rpx};
-              color: #ff4544;
-            }
-          }
-        }
-      }
-      .bottom {
-        padding: 0 #{24rpx};
-        height: #{100rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        .but {
-          height: #{60rpx};
-          border-radius: #{30rpx};
-          border-style: solid;
-          border-width: #{1rpx};
-          font-size: #{32rpx};
-          line-height: #{60rpx};
-          text-align: center;
-          padding: 0 #{32rpx};
-        }
-        .no {
-          color: #666666;
-          border-color: #cdcdcd;
-          background-color: white;
-          margin-right: #{16rpx};
-        }
-        .ok {
-          background-color: #fff5f5;
-          color: #ff4544;
-          border-color: #ff4544;
-        }
-      }
-
-    }
-  }
-  .model {
-    position: fixed;
-    top: 0;
-    left: 0;
-    z-index: 1000;
-    width: 100%;
-    height: 100%;
-    background-color: rgba(0,0,0,.3);
-    .model-content {
-      width: #{620rpx};
-      border-radius: #{15rpx};
-      background-color: white;
-      text-align: center;
-      padding-top: #{20rpx};
-      position: absolute;
-      top: 50%;
-      left: 50%;
-      transform: translate(-50%, -50%);
-      .model-header {
-        font-size: #{32rpx};
-        color: #353535;
-
-        margin: #{64rpx 0};
-      }
-      .model-title-top {
-        font-size: #{32rpx};
-        text-align: center;
-        margin: #{20rpx 0 0rpx 0} ;
-        color: #353535;
-      }
-      .model-bottom {
-        border-top: #{1rpx} solid #e2e2e2;
-        .model-but {
-          width: #{309rpx};
-          height: #{88rpx};
-          line-height: #{88rpx};
-        }
-        .model-line {
-          width: #{2rpx};
-          height: #{32rpx};
-          background-color: #e2e2e2;
-        }
-      }
-    }
-    .model-use {
-      background-color: white;
-      width: #{600rpx};
-      box-sizing: border-box;
-      border-radius: #{8rpx};
-      margin: #{20rpx} 0;
-      position: absolute;
-      top: 50%;
-      left: 50%;
-      transform: translate(-50%, -50%);
-      z-index: 1700;
-      .image {
-        width: #{30rpx};
-        height: #{30rpx};
-        position: absolute;
-        right: #{32rpx};
-        top: #{32rpx};
-        background-size: 100% 100%;
-        background-repeat: no-repeat;
-        background-image: url("../../../static/image/icon/close.png");
-      }
-      .model-title {
-        font-size: #{32rpx};
-        margin-top: #{56rpx};
-        margin-bottom: #{64rpx};
-        text-align: center;
-      }
-      .model-image {
-        width: #{360rpx};
-        height: #{360rpx};
-        margin: #{0 120rpx 86rpx 120rpx};
-      }
-    }
-  }
-}

+ 0 - 346
plugins/book/order/order.vue

xqd
@@ -1,346 +0,0 @@
-<template>
-	<app-layout>
-		<view class="order">
-			<view class="header dir-left-nowrap">
-				<view class="header-item box-grow-1" @click="setActiveHeader(0)">
-					<app-form-id>
-						<text :class="{'active-item': status === 0}">
-							全部
-						</text>
-					</app-form-id>
-				</view>
-				<view class="header-item box-grow-1" @click="setActiveHeader(1)">
-					<app-form-id>
-						<text :class="{'active-item': status === 1}">
-							待支付
-						</text>
-					</app-form-id>
-				</view>
-				<view class="header-item box-grow-1" @click="setActiveHeader(2)">
-					<app-form-id>
-						<text :class="{'active-item': status === 2}">
-							待使用
-						</text>
-					</app-form-id>
-				</view>
-				<view class="header-item box-grow-1" @click="setActiveHeader(4)">
-					<app-form-id>
-						<text :class="{'active-item': status === 4}">
-							待评价
-						</text>
-					</app-form-id>
-				</view>
-			</view>
-			<view class="product-list" v-if="list.length > 0">
-				<view class="product" v-for="(item, index) in list" :key="index">
-					<view class="top dir-left-nowrap main-between" @click.stop="jump(item)">
-						<view class="image-content">
-							<image :src="item.detail[0].goods_info.pic_url"></image>
-							<view class="tip-angle" v-if="item.cancel_status == 2">
-								退款中
-							</view>
-							<view class="tip-angle" v-else-if="item.cancel_status == 1 && item.is_pay == 0">
-								已取消
-							</view>
-							<view class="tip-angle" v-else-if="item.cancel_status == 1">
-								已退款
-							</view>
-							<view class='tip-angle' v-else-if="item.is_comment == 1">
-								已评价
-							</view>
-							<view class="tip-angle" v-else-if="item.is_pay == 0">
-								待付款
-							</view>
-							<view class="tip-angle" v-else-if="item.is_confirm == 0">
-								待使用
-							</view>
-							<view class="tip-angle" v-else-if="item.is_confirm == 1">
-								已使用
-							</view>
-						</view>
-						<view class="text-content dir-top-nowrap main-between">
-							<view class="text-top">
-								<view class="name">
-									{{item.detail[0].goods_info.name}}
-								</view>
-								<view class="attr dir-left-nowrap">
-									<view :key="n" v-for="(attr, n) in item.detail[0].goods_info.attr_list">
-										{{attr.attr_group_name}}: {{attr.attr_name}}
-									</view>
-								</view>
-							</view>
-							<view class="text-bottom dir-left-nowrap main-right cross-center">
-								<view class="original-price">¥{{item.detail[0].total_original_price}}</view>
-								<view class="current-price">¥{{item.detail[0].total_price}}</view>
-							</view>
-						</view>
-					</view>
-					<view class="bottom dir-left-nowrap main-right cross-center"
-					      v-if="item.cancel_status === '0' && item.is_sale === '0' && item.sale_status === '0' && item.is_comment == 0"
-					>
-						<view class="but no" @click.stop="operationOrder(1, item)" v-if="item.cancel_status != 2 && item.is_pay == 1 && item.is_confirm == 0">
-							<app-form-id>
-								申请退款
-							</app-form-id>
-						</view>
-						<view class="but ok" @click.stop="operationOrder(2, item)" v-if="item.cancel_status != 2 && item.is_pay == 1 && item.is_confirm == 0">
-							<app-form-id>
-								立即使用
-							</app-form-id>
-						</view>
-						<view class="but ok" v-if="item.sale_status == 0 && item.is_sale == 0 && item.is_confirm == 1 && item.is_comment == 0">
-							<app-jump-button form :url="`/pages/order/appraise/appraise?id=${item.id}`">
-								去评价
-							</app-jump-button>
-						</view>
-						<view class="but no" @click.stop="operationOrder(3, item)" v-if="item.is_pay == 0">
-							<app-form-id>
-								申请取消
-							</app-form-id>
-						</view>
-						<view class="but ok"  v-if="item.is_pay == 0" @click.stop="operationOrder(4, item)">
-							<app-form-id>
-								去支付
-							</app-form-id>
-						</view>
-					</view>
-				</view>
-			</view>
-			<view class="model" v-if="model" @click.stop="model = false">
-				<view class="model-content" v-if="modelType !== 2">
-					<view class="model-title-top">提示</view>
-					<view class="model-header" v-if="modelType === 1">是否申请退款</view>
-					<view class="model-header" v-else-if="modelType === 3">是否申请取消订单</view>
-					<view class="model-header" v-else-if="modelType === 4">申请支付</view>
-					<view class="model-bottom dir-left-nowrap cross-center" v-if="modelType !== 2">
-						<view class="model-but" @click.stop="cancle">
-							<app-form-id>
-								取消
-							</app-form-id>
-						</view>
-						<view class="model-line"></view>
-						<view class="model-but" @click.stop="determine">
-							<app-form-id>
-								确定
-							</app-form-id>
-						</view>
-					</view>
-				</view>
-				<view class="model-use" v-if="modelType === 2">
-					<view class="image" @click.stop="model = false"></view>
-					<view class="model-title">核销码</view>
-					<image class="model-image" :src="writeOffChart" mode="aspectFill"></image>
-				</view>
-			</view>
-		</view>
-	</app-layout>
-</template>
-
-<script>
-    export default {
-        name: "order",
-	    data() {
-            return {
-                status: 0,
-	            list: [],
-	            page: 1,
-                over: false,
-                model: false,
-	            modelType: 0,
-	            setItem: {},
-                writeOffChart: '',
-            }
-	    },
-	    onLoad() {
-            this.request({
-                status: this.status,
-                page: this.page,
-            }).then(res => {
-                if (res) {
-                    this.list = res.list;
-                }
-            });
-	    },
-	    onReachBottom() {
-	        if (!this.over) {
-	            this.page+=1;
-	            this.pagingRequest({
-		            status: this.status,
-		            page: this.page,
-	            });
-	        }
-	    },
-	    methods: {
-            setActiveHeader(data) {
-                this.page = 1;
-                this.status = data;
-                this.over = false;
-                this.list = [];
-                this.request({
-	                status: this.status,
-	                page: this.page,
-                }).then(res => {
-                    if (res) {
-						this.list = res.list;
-                    }
-                })
-            },
-		    async request({status, page}) {
-                const res = await this.$request({
-	                url: this.$api.book.order_list,
-	                data: {
-                        status,
-                        page,
-	                }
-                });
-                if (res.code === 0) {
-                    return res.data;
-                } else {
-                    return false;
-                }
-		    },
-            operationOrder(number, data) {
-                this.model = true;
-                this.setItem = data;
-                switch (number) {
-	                case 1:
-                        this.modelType = 1;
-	                    break;
-	                case 2:
-                        uni.showLoading({
-                            mask: true,
-                            title: '加载中',
-                        });
-                        this.modelType = 2;
-                        this.$request({
-	                        url: this.$api.book.clerk_code,
-	                        data: {
-	                            id: data.id,
-	                        }
-                        }).then(res => {
-                            uni.hideLoading();
-                            if (res.code === 0) {
-                                this.writeOffChart = res.data.file_path;
-                            } else if (res.code === 1) {
-                                this.model = false;
-                                uni.showModal({
-	                                title: '提示',
-	                                content: res.msg,
-                                });
-                            }
-                        });
-	                    break;
-	                case 3:
-                        this.modelType = 3;
-	                    break;
-	                case 4:
-                        this.modelType = 4;
-	                    break;
-                }
-            },
-            pagingRequest({status, page}) {
-                this.request({
-	                status,
-	                page,
-                }).then(response => {
-                    if (response) {
-                        if (response.list.length > 0) {
-                            this.list = [...this.list, ...response.list];
-                        } else {
-                            this.over = true;
-                        }
-                    }
-                })
-            },
-            cancle() {
-                this.modelType = 0;
-                this.model = false;
-            },
-            determine() {
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中',
-                });
-                switch (this.modelType) {
-                    case 1:
-                        this.$request({
-	                        url: this.$api.order.cancel,
-	                        data: {
-	                            id: this.setItem.id,
-	                        }
-                        }).then(res => {
-                            if (res.code === 0) {
-                                uni.hideLoading();
-                                this.model = false;
-                                for (let i = 0; i < this.list.length; i++) {
-                                    if (this.setItem.id === this.list[i].id) {
-                                        this.list[i].cancel_status = '2';
-                                        if (this.status === 2) {
-                                            this.$delete(this.list, i);
-                                        }
-                                    }
-                                }
-                            }
-                        });
-                        break;
-                    case 3:
-                        this.$request({
-                            url: this.$api.order.cancel,
-                            data: {
-                                id: this.setItem.id,
-                            }
-                        }).then(res => {
-                            if (res.code === 0) {
-                                uni.hideLoading();
-                                this.model = false;
-                                for (let i = 0; i < this.list.length; i++) {
-                                    if (this.setItem.id === this.list[i].id) {
-                                        this.list[i].cancel_status = '1';
-                                        this.list[i].is_pay = '0';
-                                        if (this.status === 1) {
-                                            this.$delete(this.list, i);
-                                        }
-                                    }
-                                }
-                            }
-                        });
-                        break;
-                    case 4:
-                        this.$request({
-	                        url: this.$api.order.list_pay_data,
-	                        data: {
-	                            id: this.setItem.id,
-	                        }
-                        }).then(res => {
-                            if (res.code === 0) {
-                                uni.hideLoading();
-                                this.model = false;
-                                this.$payment.pay(res.data.id).then(() => {
-                                    for (let i = 0; i < this.list.length; i++) {
-                                        if (this.setItem.id === this.list[i].id) {
-                                            this.list[i].is_pay = '1';
-                                            if (this.status === 1) {
-                                                this.$delete(this.list, i);
-                                            }
-                                        }
-                                    }
-                                }).catch(() => {
-                                })
-                            }
-                        });
-                        break;
-                }
-            },
-            jump(data) {
-                this.$jump({
-                    open_type: 'navigate',
-	                url: `/plugins/book/orderDetails/orderDetails?id=${data.id}`
-                });
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	@import './order.scss';
-</style>

+ 0 - 304
plugins/book/orderDetails/orderDetails.vue

xqd
@@ -1,304 +0,0 @@
-<template>
-	<app-layout>
-		<view class="app-order-details">
-			<app-write-off-code :hidden="hidden" :itemId="item.id" @hiden="hidden = false"></app-write-off-code>
-			<view v-if="refundBoolean">
-				<app-prompt-box @click="close" text="是否确认申请退款该订单"></app-prompt-box>
-			</view>
-			<view v-if="payBoolean">
-				<app-prompt-box @click="goPay" text="是否确认支付该订单"></app-prompt-box>
-			</view>
-			<view v-if="cancelBoolean"></view>
-			<view class="app-image-title dir-left-nowrap">
-				<image class="app-image" :src="item.store.cover_url"></image>
-				<view class="app-content dir-top-nowrap">
-					<text class="app-content-title">{{item.store.name}}</text>
-					<view class="app-prices dir-left-nowrap main-right cross-center">
-						<text class="app-old-price">{{item.total_goods_original_price}}</text>
-						<text class="app-new-price">{{item.total_pay_price}}</text>
-					</view>
-				</view>
-			</view>
-			<text class="app-title">门店信息</text>
-			<view class="app-store">
-				<app-store :address="item.store.address" :business_hours="item.store.business_hours" :storeNum="item.store_list.length" :goods_id="item.id" :store_id="item.store.id"  :name="item.store.name" :sotreNum="item.store.length" :title="title" :borderStyle="borderStyle" :icon="icon"></app-store>
-			</view>
-			<text class="app-title">订单信息</text>
-			<view class="app-order-information dir-top-nowrap main-left">
-				<text>姓名: {{item.name}}</text>
-				<text>手机号: {{item.mobile}}</text>
-				<text>订单号: {{item.order_no}}</text>
-				<text>下单时间: {{item.created_at}}</text>
-			</view>
-			<text class="app-title" v-if="item.order_form.length > 0">其他信息</text>
-			<view class="app-other" v-if="item.order_form.length > 0">
-				<block v-for="(it, index) in item.order_form" :key="index">
-					<template v-if="it.key === 'img_upload'">
-						<view class="app-in dir-top-nowrap">
-							<text class="app-top">{{it.label}}</text>
-							<image class="app-image" :src="it.value"></image>
-						</view>
-					</template>
-					<template v-else>
-						<view class="app-in dir-top-nowrap"  v-if="it.value" :class="{'app-border': item.order_form.length-1 !== index}" >
-							<text class="app-top" >{{it.label}}</text>
-							<text class="app-bottom" >{{it.value}}</text>
-						</view>
-					</template>
-				</block>
-			</view>
-			<view class="empty" v-if="item.cancel_status == 0  && item.is_sale == 0"></view>
-			<view class="app-buttons dir-left-nowrap main-right cross-center" v-if="item.cancel_status == 0  && item.is_sale == 0">
-				<view class="app-button" v-if="item.is_pay == 0">
-					<app-form-id >
-						<button class="app-button app-red" @click="payBoolean = true">去支付</button>
-					</app-form-id>
-				</view>
-				<view class="app-button" v-if="item.is_pay == 0">
-					<app-form-id >
-						<button class="app-button app-white">申请取消</button>
-					</app-form-id>
-				</view>
-				<view class="app-button" v-if="item.is_confirm == 1" @click="evaluation">
-					<app-form-id>
-						<button class="app-button  app-red" >去评价</button>
-					</app-form-id>
-				</view>
-				<view class="app-button" v-if="item.cancel_status != 2 && item.is_pay == 1 && item.is_confirm == 0">
-					<app-form-id>
-						<view class="app-button app-red" @click="useImmediately">立即使用</view>
-					</app-form-id>
-				</view>
-				<view class="app-button" v-if="item.cancel_status != 2 && item.is_pay == 1 && item.is_confirm == 0">
-					<app-form-id >
-						<view class="app-button app-white" @click="refundBoolean = true">申请退款</view>
-					</app-form-id>
-				</view>
-			</view>
-		</view>
-	</app-layout>
-</template>
-
-<script>
-    import appStore from '../components/app-store.vue';
-    import appPromptBox from '../../../components/basic-component/app-prompt-box/app-prompt-box.vue';
-    import appWriteOffCode from '../components/app-write-off-code.vue';
-    
-	let borderStyle = false;
-	let icon = false;
-	let title = false;
-    export default {
-        name: 'orderDetails',
-	    components: {
-            'app-store': appStore,
-		    'app-prompt-box': appPromptBox,
-            'app-write-off-code': appWriteOffCode,
-	    },
-	    data() {
-            return {
-                item: null,
-                file_path: '',
-	            hidden: false,
-                refundBoolean: false,
-	            payBoolean: false,
-                cancelBoolean: false,
-            }
-	    },
-        onLoad(options) {
-            this.request(options);
-        },
-	    methods: {
-            request(options) {
-                this.$request({
-                    url: this.$api.book.order_detail,
-                    data: {
-                        id: options.id,
-                    }
-                }).then(response => {
-                    this.item = response.data.detail;
-                })
-            },
-            useImmediately() {
-                this.hidden = true;
-            },
-            close(boolean) {
-                if (boolean) {
-                    this.$request({
-	                    url: this.$api.order.cancel,
-	                    data: {
-	                        id: this.item.id
-	                    }
-                    }).then(response => {
-                        if (response.code === 0) {
-                            this.refundBoolean = false;
-                            this.request({
-	                            id: this.item.id
-                            });
-                        }
-                    });
-                } else {
-                    this.refundBoolean = false;
-                }
-            },
-            goPay(boolean) {
-                this.payBoolean = false;
-                if (boolean) {
-                   this.$request({
-	                   url: this.$api.order.list_pay_data,
-	                   data: {
-	                       id: this.item.id
-	                   }
-                   }).then(response => {
-                       if (response.code === 0) {
-                           this.$payment.pay(response.data.id).then(msg => {
-                               // 支付成功
-	                           this.item.is_pay = 1;
-                           }).catch(msg => {
-                               // 支付失败
-                           });
-                       } else {
-                       
-                       }
-                   })
-                } else {
-                    this.payBoolean = false;
-                }
-            },
-            evaluation() {
-				uni.navigateTo({
-					url: `/pages/order/appraise/appraise?id=${this.item.id}`
-				});
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.app-order-details {
-		background-color: #f7f7f7;
-		width: #{750rpx};
-		padding: #{20rpx} #{24rpx};
-		
-		.app-title {
-			display: inline-block;
-			margin-top: #{32rpx};
-			margin-bottom: #{24rpx};
-			color: #999999;
-			font-size: #{26rpx};
-		}
-		>view {
-			width: #{750-48rpx};
-			border-radius: #{16rpx};
-			background-color: white;
-		}
-		.app-image-title {
-			padding: #{24rpx};
-			.app-image {
-				width: #{208rpx};
-				height: #{160rpx};
-			}
-			.app-content {
-				width: #{750-48-48-24-208rpx};
-				margin-left: #{24rpx};
-				height: #{160rpx};
-				.app-content-title {
-					display: inline-block;
-					margin-top: #{10rpx};
-					font-size: #{28rpx};
-					color: #353535;
-					word-break: break-all;
-					text-overflow: ellipsis;
-					display: -webkit-box;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-					height: #{64rpx};
-					width: 100%;
-				}
-				.app-prices {
-					padding-top: #{50rpx};
-					>text:before {
-						content: '¥';
-					}
-					.app-old-price {
-						color: #a4a4a4;
-						font-size: #{24rpx};
-						text-decoration:line-through;
-					}
-					.app-new-price {
-						margin-left: #{24rpx};
-						font-size: #{32rpx};
-						color: #ff4544;
-					}
-				}
-			}
-		}
-		.app-order-information {
-			padding: #{28rpx} #{24rpx} #{12rpx} #{24rpx};
-			>text {
-				font-size: #{28rpx};
-				color: #353535;
-				margin-bottom: #{16rpx};
-			}
-		}
-		.app-other {
-			padding: 0 #{24rpx};
-			.app-in {
-				padding: #{28rpx} 0;
-				font-size: #{28rpx};
-				.app-top {
-					margin-bottom: #{24rpx};
-					color: #999999;
-				}
-				.app-bottom {
-					color: #353535;
-				}
-			}
-			.app-border {
-				border-bottom: #{1rpx} solid #e2e2e2;
-			}
-			.app-image {
-				width: #{150rpx};
-				height: #{150rpx};
-				border-radius: #{8rpx};
-			}
-		}
-		.app-buttons {
-			height: #{102rpx};
-			width: #{750rpx};
-			background-color: white;
-			border-top: #{1rpx} solid #e2e2e2;
-			position: fixed;
-			left: 0;
-			bottom: 0;
-			>view {
-				margin-right: #{15rpx};
-			}
-			.app-button {
-				height: #{60rpx};
-				line-height: #{60rpx};
-				font-size: #{28rpx};
-				border-radius: #{25rpx};
-				display: inline-block;
-			}
-			.app-red {
-				border: #{1rpx} solid #ff4544;
-				background-color: #fff5f5;
-				color: #ff4544;
-				padding: 0 #{30rpx};
-			}
-			.app-white {
-				background-color: white;
-				border: #{1rpx} solid #d4d4d4;
-				color: #565656;
-				padding: 0 #{30rpx};
-			}
-		}
-	}
-
-	.empty {
-		height: #{102rpx};
-		width: #{750rpx};
-		background-color: #f7f7f7 !important;
-	}
-</style>

+ 0 - 178
plugins/book/reservationList/reservationList.vue

xqd
@@ -1,178 +0,0 @@
-<template>
-	<app-layout>
-		<view class="app-reservationList">
-			<app-prompt-box v-if="hidden" :text="text" @click="confirmNegative"></app-prompt-box>
-			<app-write-off-code  :hidden="hiddenCode" :itemId="itemId" @hiden="hiddenCode = false"></app-write-off-code>
-			<view class="app-nav">
-				<app-head-navigation @click="classification"></app-head-navigation>
-			</view>
-			<view class="app-reservation">
-				<app-reservation-form @click="funHandler" v-for="(item, index) in list" :key="index" :item="item"></app-reservation-form>
-			</view>
-		</view>
-	</app-layout>
-</template>
-
-<script>
-    import appHeadNavigation from '../components/app-head-navigation.vue';
-    import appReservationForm from '../components/app-reservation-form.vue';
-	import appPromptBox from '../../../components/basic-component/app-prompt-box/app-prompt-box.vue';
-	import appWriteOffCode from '../components/app-write-off-code.vue';
-	
-    export default {
-        name: 'reservationList',
-	    components: {
-            'app-head-navigation': appHeadNavigation,
-		    'app-reservation-form': appReservationForm,
-		    'app-prompt-box': appPromptBox,
-		    'app-write-off-code': appWriteOffCode,
-	    },
-	    data() {
-            return {
-                list: [],
-	            page: 1,
-                over: false,
-	            status: 0,
-	            hidden: false,
-	            text: '',
-                confirm: false,
-	            back: '',
-	            item: null,
-                file_path: '',
-                hiddenCode: false,
-                itemId: '-1'
-            }
-	    },
-        onLoad(options) {
-            this.request(this.page, this.status);
-        },
-	    methods: {
-            classification(status) {
-                this.list = [];
-                this.status = status;
-                this.over = false;
-                this.page = 1;
-                this.request(this.page, status);
-            },
-		    request(page, status) {
-                this.$request({
-                    url: this.$api.book.order_list,
-                    data: {
-                        page: page,
-                        status: status,
-                    }
-                }).then(response => {
-                    if (response.code === 0) {
-                        if (response.data.list.length === 0) {
-                            this.over = true;
-                        } else {
-                            this.list = [...this.list, ...response.data.list];
-                        }
-                    }
-                }).catch(() => {
-                })
-		    },
-            confirmNegative(data) {
-                if (data) {
-                    this[this.back]();
-                } else {
-                    this.hidden = false;
-                }
-            },
-            funHandler(data, item) {
-                this.back = data;
-                this.item = item;
-                if (data === 'refund') {
-                    this.text = '是否申请退款';
-                    this.hidden = true;
-                } else if (data === 'cancel') {
-                    this.text = '是否申请取消订单';
-                    this.hidden = true;
-                } else if (data === 'use') {
-                    this[this.back]();
-                } else if (data === 'pay') {
-                    this.hidden = true;
-                    this.text = '申请支付';
-                }
-            },
-            refund() {
-                this.$request({
-                    url: this.$api.order.cancel,
-                    data: {
-                        id: this.item.id
-                    }
-                }).then(response => {
-                    if (response.code === 0) {
-	                    for (let i = 0; i < this.list.length; i++) {
-	                        if (this.list[i].id === this.item.id) {
-                                this.$delete(this.list, i);
-	                        }
-	                    }
-                        this.hidden = false;
-                    }
-                });
-            },
-            cancel() {
-                this.$request({
-	                url: this.$api.order.cancel,
-	                data: {
-	                    id: this.item.id,
-	                }
-                }).then(response => {
-                    if (response.code === 0) {
-                        for (let i = 0; i < this.list.length; i++) {
-                            if (this.list[i].id === this.item.id) {
-	                            this.$delete(this.list, i);
-                            }
-                        }
-                        this.hidden = false;
-                    }
-                })
-            },
-            use() {
-                this.itemId = this.item.id;
-                this.hiddenCode = true;
-            },
-            pay() {
-                this.hidden = false;
-                this.$request({
-                    url: this.$api.order.list_pay_data,
-                    data: {
-                        id: this.item.id
-                    }
-                }).then(response => {
-                    if (response.code === 0) {
-                        this.$payment.pay(response.data.id).then(() => {
-                            for (let i = 0; i < this.list.length; i++) {
-                                if (this.list[i].id === this.item.id) {
-                                    this.$delete(this.list, i);
-                                }
-                            }
-                        }).catch(() => {
-                        });
-                    }
-                })
-            }
-	    },
-        onReachBottom() {
-            if (!this.over) {
-                this.page+=1;
-                this.request(this.page, this.status);
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	.app-reservationList {
-		.app-nav {
-			position: fixed;
-			top: 0;
-			z-index: 1500;
-		}
-		.app-reservation {
-			margin-top:#{80rpx};
-			background-color: #f7f7f7;
-		}
-	}
-</style>

+ 0 - 459
plugins/composition/components/app-list/app-list.vue

xqd
@@ -1,459 +0,0 @@
-<template>
-    <view>
-        <view class="app-list" :style="{'margin-top': `${top}rpx`}">
-            <view class="app-item" v-for="(item,index) in list" :key="item.id">
-                <view class="dir-left-nowrap cross-center app-item-title">
-                    <view class="check-icon" @click="choose(index,item)">
-                        <image src="/static/image/icon/icon-uncheck.png" v-if="!item.choose"></image>
-                        <image class="classic-red-background" :style="{'opacity': `${item.type == 1 ? '0.3' : '1'}`}"  src="/static/image/icon/icon-checkbox-checked.png" v-else></image>
-                    </view>
-                    <view class="item-type">{{item.type_text}}</view>
-                    <view class="item-name">{{item.name}}</view>
-                </view>
-                <view class="item-goods dir-left-nowrap" v-for="(goods,idx) in item.host_list" :key="goods.id">
-                    <view class="check-icon">
-                        <image class="classic-red-background" :style="{'opacity': `${goods.opacity}`}" src="/static/image/icon/icon-checkbox-checked.png"></image>
-                    </view>
-                    <image @click="toDetail(goods.goods_id)" class="goods-img" :src="goods.cover_pic"></image>
-                    <view class="dir-top-nowrap goods-info">
-                        <view class="item-good-name">{{goods.name}}</view>
-                        <view class="item-good-num">x1</view>
-                        <view class="item-good-attr" v-if="!goods.choose_attr" @click="chooseAttr(goods,index)">
-                            <view class="item-good-attr-text t-omit-two">未选择</view>
-                            <image class="item-good-attr-arrow" src="/static/image/icon/bottom.png"></image>
-                        </view>
-                        <view class="item-good-attr" v-else @click="chooseAttr(goods,index)">
-                            <view class="item-good-attr-text t-omit-two">
-                                <text v-for="attr in goods.choose_attr.attr_list" :key="attr.attr_id">{{attr.attr_group_name}}:{{attr.attr_name}}</text>
-                            </view>
-                            <image class="item-good-attr-arrow" src="/static/image/icon/bottom.png"></image>
-                        </view>
-                        <view v-if="item.type == 2 && goods.choose_attr" class="choose_price">¥{{goods.total_price}}</view>
-                    </view>
-                </view>                    
-                <view class="item-goods dir-left-nowrap" v-for="(goods,idx) in item.goods_list" :key="goods.id">
-                    <view class="check-icon" v-if="item.type == 2" @click="chooseGoods(idx,index,goods)">
-                        <image src="/static/image/icon/icon-uncheck.png" v-if="!goods.choose_goods"></image>
-                        <image class="classic-red-background" src="/static/image/icon/icon-checkbox-checked.png" v-else></image>
-                    </view>
-                    <image @click="toDetail(goods.goods_id)" class="goods-img" :src="goods.cover_pic"></image>
-                    <view class="dir-top-nowrap goods-info">
-                        <view class="item-good-name">{{goods.name}}</view>
-                        <view class="item-good-num">x1</view>
-                        <view class="item-good-attr" v-if="!goods.choose_attr" @click="chooseAttr(goods,index)">
-                            <view class="item-good-attr-text t-omit-two">未选择</view>
-                            <image class="item-good-attr-arrow" src="/static/image/icon/bottom.png"></image>
-                        </view>
-                        <view class="item-good-attr" v-else @click="chooseAttr(goods,index)">
-                            <view class="item-good-attr-text t-omit-two">
-                                <text v-for="(attr,idx) in goods.choose_attr.attr_list" :key="attr.attr_id">
-                                    <text v-if="idx > 0">,</text>
-                                    <text>{{attr.attr_group_name}}:{{attr.attr_name}}</text>
-                                </text>
-                            </view>
-                            <image class="item-good-attr-arrow" src="/static/image/icon/bottom.png"></image>
-                        </view>
-                        <view v-if="item.type == 2 && goods.choose_attr" class="choose_price">¥{{goods.total_price}}</view>
-                    </view>
-                </view>
-                <view class="app-price">
-                    <span v-if="item.total_price && hidden">套餐价</span>
-                    <span v-if="item.total_price && hidden" class="total-price">¥{{item.total_price > -0.01 ? item.total_price : '0.00'}}</span>
-                </view>
-            </view>
-        </view>
-        <app-attr :goodsId="goods.goods_id"
-                  :goods="goods"
-                  :attrGroupList="goods.attr_groups"
-                  :cartShow="cartShow"
-                  :chooseNumber="cartShow"
-                  buyText="确定"
-                  :buyClick="buyBool"
-                  :show="attrShow"
-                  @buyClick="buyClick"></app-attr>
-    </view>
-</template>
-
-<script>
-    import { mapState } from "vuex";
-    import appAttr from "../../../../components/page-component/app-attr/app-attr.vue";
-
-    export default {
-        name: 'app-index',
-        props: {
-            list: {
-                type: Array
-            },
-            top: {
-                type: Number,
-                default() {
-                    return 388
-                }
-            },
-            search: {
-                type: Boolean,
-                default() {
-                    return false;
-                }
-            },
-            allCount: {
-                type: Boolean,
-                default() {
-                    return false;
-                }
-            },
-            hidden: {
-                type: Boolean,
-                default() {
-                    return true;
-                }
-            },
-        },
-        data() {
-            return {
-                attrShow: 0,
-                goods: null,
-                cartShow: false,
-                buyBool: true,
-                max_discount: '0.00',
-                noAttrList: [],
-                total: 0,
-            }
-        },
-        computed: {
-            ...mapState({
-                theme: state => state.mallConfig.theme
-            })
-        },
-        components: {
-            'app-attr': appAttr,
-        },
-        methods: {
-            toDetail(id) {
-                uni.navigateTo({
-                    url: '/pages/goods/goods?id=' + id
-                });
-            },
-            buyClick(data) {
-                let that = this;
-                console.log(data)
-                that.list[that.index].goods_list.forEach(v => {
-                    if(v.id == that.goods.id) {
-                        v.choose_attr = data;
-                        for(let i in data.attr_list) {
-                            for(let j in v.attr_groups) {
-                                if(v.attr_groups[j].attr_group_id == data.attr_list[i].attr_group_id) {
-                                    for(let z in v.attr_groups[j].attr_list) {
-                                        v.attr_groups[j].attr_list[z].checked = false;
-                                        if(v.attr_groups[j].attr_list[z].attr_id == data.attr_list[i].attr_id && v.attr_groups[j].attr_list[z].attr_name == data.attr_list[i].attr_name) {
-                                            v.attr_groups[j].attr_list[z].checked = true;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                        if(that.list[that.index].type == 2) {
-                            v.choose_goods = true;
-                            that.list[that.index].host_list[0].choose_goods = true
-                            that.list[that.index].host_list[0].opacity = 0.3
-                        }
-                        that.count();
-                        that.$forceUpdate();
-                    }
-                })
-                that.list[that.index].host_list.forEach(v => {
-                    if(v.id == that.goods.id) {
-                        for(let i in data.attr_list) {
-                            for(let j in v.attr_groups) {
-                                if(v.attr_groups[j].attr_group_id == data.attr_list[i].attr_group_id) {
-                                    for(let z in v.attr_groups[j].attr_list) {
-                                        v.attr_groups[j].attr_list[z].checked = false;
-                                        if(v.attr_groups[j].attr_list[z].attr_id == data.attr_list[i].attr_id && v.attr_groups[j].attr_list[z].attr_name == data.attr_list[i].attr_name) {
-                                            v.attr_groups[j].attr_list[z].checked = true;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                        v.choose_attr = data;
-                        v.choose_goods = true;
-                        that.count();
-                        that.$forceUpdate();
-                        if (that.search) {
-                            that.$emit('search', v, 1);
-                            return false;
-                        }
-                    }
-                })
-            },
-            chooseAttr(goods,index, type) {
-                this.goods = goods;
-                this.index = index;
-                this.attrShow = Math.random();
-            },
-            choose(index,item) {
-                if(this.list[index].type == 2) {
-                    this.list[index].choose = !this.list[index].choose;
-                    for(let i in this.list[index].goods_list) {
-                        this.list[index].goods_list[i].choose_goods = this.list[index].choose
-                    }
-                    this.count();
-                    this.$forceUpdate();
-                    if (this.search) {
-                        this.$emit('search', item);
-                    }
-                }
-            },
-            chooseGoods(idx,index,item) {
-                this.list[index].goods_list[idx].choose_goods = !this.list[index].goods_list[idx].choose_goods;
-                let all = true;
-                for(let i in this.list[index].goods_list) {
-                    if(!this.list[index].goods_list[i].choose_goods) {
-                        all = false;
-                    }
-                }
-                this.list[index].choose = all;
-                this.$forceUpdate();
-                this.$emit("updateList",this.list);
-                this.count();
-                if (this.search) {
-                    this.$emit('search', item, 1);
-                }
-            },
-            count() {
-                let that = this;
-                that.total = 0;
-                that.noAttrList = [];
-                that.max_discount = 0;
-                let i = 0;
-                if(that.list[i].type == 1) {
-                    that.list[i].total_price = 0;
-                    let allchoose = true;
-                    for(let x in that.list[i].goods_list) {
-                        if(that.list[i].goods_list[x].choose_attr) {
-                            if(that.list[i].goods_list[x].choose_attr.price > 0) {
-                                that.list[i].total_price += +that.list[i].goods_list[x].choose_attr.price;
-                            }
-                        }else {
-                            allchoose = false;
-                        }
-                        if(that.list[i].choose && that.list[i].goods_list[x].choose_attr == null ) {
-                            that.noAttrList.push(that.list[i].goods_list[x])
-                        }
-                    }
-                    if(that.list[i].total_price < 0) {
-                        that.list[i].total_price = 0
-                    }
-                    that.list[i].total_price = (+that.list[i].total_price - +that.list[i].price);
-                    if(that.list[i].total_price < 0) {
-                        that.list[i].total_price = 0
-                    }
-                    if(that.list[i].choose) {
-                        that.list[i].total_price = that.list[i].total_price.toFixed(2)
-                    }else {
-                        delete that.list[i].total_price
-                    }
-                    if(that.list[i].choose && allchoose) {
-                        that.total += +that.list[i].total_price
-                    }
-                }else if(that.list[i].type == 2) {
-                    that.list[i].total_price = 0;
-                    if(that.list[i].host_list[0].choose_attr) {
-                        that.list[i].total_price = +that.list[i].host_list[0].choose_attr.price - +that.list[i].host_list[0].price
-                        that.list[i].host_list[0].total_price = +that.list[i].host_list[0].choose_attr.price - +that.list[i].host_list[0].price
-                        that.max_discount += +that.list[i].host_list[0].price
-                        if(that.list[i].host_list[0].total_price < 0) {
-                            that.list[i].host_list[0].total_price = 0
-                        }else {
-                            that.list[i].host_list[0].total_price = +that.list[i].host_list[0].total_price.toFixed(2);
-                        }
-                        that.total += +that.list[i].host_list[0].total_price
-                    }else {
-                        that.noAttrList.push(that.list[i].host_list[0])
-                    }
-                    for(let x in that.list[i].goods_list) {
-                        if(that.list[i].goods_list[x].choose_goods && that.list[i].goods_list[x].choose_attr) {
-                            that.list[i].goods_list[x].total_price = +that.list[i].goods_list[x].choose_attr.price - +that.list[i].goods_list[x].price
-                            that.max_discount += +that.list[i].goods_list[x].price
-                            if(that.list[i].goods_list[x].total_price < 0) {
-                                that.list[i].goods_list[x].total_price = 0
-                            }else {
-                                that.list[i].goods_list[x].total_price = +that.list[i].goods_list[x].total_price.toFixed(2);
-                            }
-                            that.total += +that.list[i].goods_list[x].total_price
-                            if(that.list[i].total_price > 0) {
-                                that.list[i].total_price += +that.list[i].goods_list[x].total_price
-                            }
-                        }
-                        if(that.list[i].goods_list[x].choose_goods && that.list[i].goods_list[x].choose_attr == null ) {
-                            that.noAttrList.push(that.list[i].goods_list[x])
-                        }
-                    }
-                    if(that.list[i].total_price < 0) {
-                        that.list[i].total_price = 0
-                    }
-                    that.list[i].total_price = +that.list[i].total_price.toFixed(2);
-                    that.max_discount = +that.max_discount.toFixed(2);
-                }
-                that.total = that.total.toFixed(2);
-                that.$emit("updateList",that.list);
-                that.$emit("change",that.total,that.max_discount);
-                that.$emit("update",that.noAttrList);
-            },
-        },
-
-        mounted(options) {
-            let that = this;
-            var get = setInterval(function(){
-                if(that.list.length > 0) {
-                    clearInterval(get)
-                    that.count();
-                }
-            },500)
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .app-list {
-        .app-item {
-            background-color: #fff;
-            margin: #{10rpx} #{24rpx};
-            border-radius: #{16rpx};
-            padding: #{24rpx};
-            padding-top: 0;
-            padding-left: 0;
-            .app-price {
-                line-height: #{74rpx};
-                height: #{74rpx};
-                text-align: right;
-                color: #353535;
-                font-size: #{28rpx};
-                .total-price {
-                    color: #ff4544;
-                }
-                .max-discount {
-                    font-size: #{24rpx};
-                    color: #f39800;
-                    margin-left: #{16rpx};
-                }
-            }
-            .app-item-title {
-                padding-right: #{24rpx};
-                height: #{64rpx};
-                font-size: #{28rpx};
-                color: #353535;
-                font-weight: bold;
-                .check-icon {
-                    padding: #{28rpx} #{20rpx} 0 #{24rpx};
-                    width: #{72rpx};
-                    height: #{64rpx};
-                    image {
-                        height: #{32rpx};
-                        width: #{32rpx};
-                        border-radius: #{16rpx};
-                        display: block;
-                    }
-                }
-                .item-type {
-                    margin-top: #{24rpx};
-                    flex-shrink: 0;
-                    height: #{40rpx};
-                    line-height: #{38rpx};
-                    padding: 0 #{12rpx};
-                    border-radius: #{20rpx};
-                    margin-right: #{16rpx};
-                    color: #f39800;
-                    border: #{2rpx} solid #f39800;
-                    font-weight: 400;
-                }
-                .item-name {
-                    margin-top: #{24rpx};
-                    overflow: hidden;
-                    text-overflow: ellipsis;
-                    white-space: nowrap;
-                    word-break: break-all;
-                }
-            }
-            .item-goods {
-                margin-top: #{28rpx};
-                margin-left: #{76rpx};
-                padding-bottom: #{28rpx};
-                border-bottom: #{2rpx} solid #e2e2e2;
-                position: relative;
-                .check-icon {
-                    position: absolute;
-                    left: #{-76rpx};
-                    top: 50%;
-                    margin-top: #{-52rpx};
-                    padding: #{24rpx};
-                    width: #{80rpx};
-                    height: #{80rpx};
-                    image {
-                        height: #{32rpx};
-                        width: #{32rpx};
-                        border-radius: #{16rpx};
-                        display: block;
-                    }
-                }
-                .goods-img {
-                    height: #{180rpx};
-                    width: #{180rpx};
-                    border-radius: #{8rpx};
-                    margin-right: #{24rpx};
-                    position: relative;
-                }
-                .goods-info {
-                    font-size: #{28rpx};
-                    color: #353535;
-                    position: relative;
-                    .item-good-name {
-                        width: #{336rpx};
-                        max-height: #{90rpx};
-                        line-height: #{42rpx};
-                        word-break: break-all;
-                        overflow: hidden;
-                        text-overflow: ellipsis;
-                        white-space: nowrap;
-                    }
-                    .item-good-num {
-                        position: absolute;
-                        right: 0;
-                        top: 0;
-                    }
-                    .choose_price {
-                        font-size: #{28rpx};
-                        color: #ff4544;
-                        margin-top: #{20rpx};
-                    }
-                    .item-good-attr {
-                        margin-top: #{20rpx};
-                        background-color: #f7f7f7;
-                        width: #{398rpx};
-                        display: inline-block;
-                        padding: #{8rpx} #{16rpx};
-                        border-radius: #{8rpx};
-                        position: relative;
-                        .item-good-attr-text {
-                            width: #{314rpx};
-                            line-height: #{32rpx};
-                            max-height: #{68rpx};
-                            color: #999;
-                        }
-                        .item-good-attr-arrow {
-                            position: absolute;
-                            right: #{16rpx};
-                            top: 50%;
-                            margin-top: #{-6rpx};
-                            height: #{12rpx};
-                            width: #{22rpx};
-                        }
-                    }
-                }
-            }
-            .item-goods:last-of-type {
-                border-bottom: 0
-            }
-        }
-    }
-</style>

+ 0 - 494
plugins/composition/detail/detail.vue

xqd
@@ -1,494 +0,0 @@
-<template>
-    <app-layout>
-        <app-list v-if="loading" :hidden="false" top="0" :list="list" v-on:update="update" v-on:change="getTotal" v-on:updateList="updateList"></app-list>
-        <view class="list" v-if="other.length > 0">
-            <view class="title">其他套餐</view>
-            <view v-for="item in other" :key="item.id" class="item dir-left-nowrap">
-                <app-composition @click="choose(item)" @look="choose(item)" :item="item"></app-composition>
-            </view>
-        </view>
-        <view v-if="list.length > 0" :class="['bottom-space', `${iphone_x? 'iphone_x':''}`]"></view>
-        <view v-if="list.length > 0" :class="['bottom','main-between','cross-center', `${iphone_x? 'iphone_x':''}`]">
-            <view>
-                <view class="dir-left-nowrap cross-center">
-                    <view>总计</view>
-                    <view class="total-price">¥{{total == 0 ? '0.00' : total}}</view>
-                </view>
-                <view class="discount">已省¥{{max_discount}}</view>
-            </view>
-            <view @click="toBuy" class="submit-btn">立即购买</view>
-        </view>
-        <view class="dialog-bg" v-if="showNoAttr">
-            <view class="dialog">
-                <view class="dialog-title">
-                    <view class="dialog-big-title">以下商品未选择规格</view>
-                    <view>请选择规格后购买</view>
-                </view>
-                <view :class="[`${noAttrList.length > 4 ? 'dir-left-wrap' : 'main-center'}`,`dialog-goods-list`]">
-                    <view class="dialog-goods" v-for="item in noAttrList" :key="item.id">
-                        <image :src="item.cover_pic"></image>
-                    </view>
-                </view>
-                <view @click="close" class="dialog-close">我知道了</view>
-            </view>
-        </view>
-        <view class='no-tip' v-if="list.length == 0 && loading">
-            <image src="/static/image/pull-off.png"></image>
-            <view>您选购的套餐已下架</view>
-            <view @click="toComposition" class="to-composition">逛逛套餐专区</view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import { mapState } from "vuex";
-    import appList from '../components/app-list/app-list';
-    import appComposition from "../../../components/basic-component/app-composition/app-composition.vue";
-    export default {
-        data() {
-            return {
-                list: [],
-                other: [],
-                total: 0,
-                showNoAttr: false,
-                noAttrList: [],
-                goods_id: '',
-                max_discount: '0.00',
-                page: 2,
-                hidden: false,
-                iphone_x: false,
-                noMore: false,
-                composition_id: '',
-                loading: false
-            }
-        },
-        components: {
-            'app-list': appList,
-            'app-composition': appComposition
-        },
-        computed: {},
-        methods: {
-            choose(item) {
-                this.composition_id = item.id;
-                this.total = '0.00';
-                this.max_discount = '0.00';
-                this.getDetail();
-            },
-            toComposition() {
-                uni.redirectTo({
-                    url: '/plugins/composition/index/index'
-                });
-            },
-            toBuy() {
-                let that = this;
-                let attr = [];
-                let list = [
-                    {
-                        mch_id: 0,
-                        composition_list: []
-                    }
-                ]
-                if(that.noAttrList.length > 0) {
-                    that.showNoAttr = true;
-                }else {
-                    for(let i in that.list) {
-                        attr = [];
-                        if(that.list[i].choose) {
-                            let arr = {
-                                composition_id: that.list[i].id,
-                                goods_list: []
-                            }
-                            if(that.list[i].host_list.length > 0) {
-                                for(let x in that.list[i].host_list[0].choose_attr.attr_list) {
-                                    attr.push({
-                                        attr_id: that.list[i].host_list[0].choose_attr.attr_list[x].attr_id,
-                                        attr_group_id: that.list[i].host_list[0].choose_attr.attr_list[x].attr_group_id,
-                                    })
-                                }
-                                arr.goods_list.push({
-                                    id: that.list[i].host_list[0].goods_id,
-                                    num: 1,
-                                    goods_attr_id: that.list[i].host_list[0].choose_attr.goods_attr_id,
-                                    attr: []
-                                })
-                            }
-                            let goods_attr = [];
-                            for(let y in that.list[i].goods_list) {
-                                if(that.list[i].goods_list[y].choose_attr && that.list[i].goods_list[y].choose_attr.attr_list.length > 0) {
-                                    for(let x in that.list[i].goods_list[y].choose_attr.attr_list) {
-                                        attr.push({
-                                            attr_id: that.list[i].goods_list[y].choose_attr.attr_list[x].attr_id,
-                                            attr_group_id: that.list[i].goods_list[y].choose_attr.attr_list[x].attr_group_id,
-                                        })
-                                    }
-                                    arr.goods_list.push({
-                                        id: that.list[i].goods_list[y].goods_id,
-                                        num: 1,
-                                        goods_attr_id: that.list[i].goods_list[y].choose_attr.goods_attr_id,
-                                        attr: attr
-                                    })
-                                }
-                            }
-                            list[0].composition_list.push(arr);
-                        }else {
-                            let arr = {
-                                composition_id: that.list[i].id,
-                                goods_list: []
-                            }
-                            if(that.list[i].host_list.length > 0 && that.list[i].host_list[0].choose_goods) {
-                                for(let x in that.list[i].host_list[0].choose_attr.attr_list) {
-                                    attr.push({
-                                        attr_id: that.list[i].host_list[0].choose_attr.attr_list[x].attr_id,
-                                        attr_group_id: that.list[i].host_list[0].choose_attr.attr_list[x].attr_group_id,
-                                    })
-                                }
-                                arr.goods_list.push({
-                                    id: that.list[i].host_list[0].goods_id,
-                                    num: 1,
-                                    goods_attr_id: that.list[i].host_list[0].choose_attr.goods_attr_id,
-                                    attr: attr
-                                })
-                            }
-                            let noChoose = true;
-                            for(let y in that.list[i].goods_list) {
-                                if(that.list[i].goods_list[y].choose_goods && that.list[i].goods_list[y].choose_attr.attr_list) {
-                                    noChoose = false;
-                                    for(let x in that.list[i].goods_list[y].choose_attr.attr_list) {
-                                        attr.push({
-                                            attr_id: that.list[i].goods_list[y].choose_attr.attr_list[x].attr_id,
-                                            attr_group_id: that.list[i].goods_list[y].choose_attr.attr_list[x].attr_group_id,
-                                        })
-                                    }
-                                    arr.goods_list.push({
-                                        id: that.list[i].goods_list[y].goods_id,
-                                        num: 1,
-                                        goods_attr_id: that.list[i].goods_list[y].choose_attr.goods_attr_id,
-                                        attr: attr
-                                    })
-                                }
-                            }
-                            if(arr.goods_list.length > 0) {
-                                list[0].composition_list.push(arr);
-                            }
-                        }
-                    }
-                    if(list[0].composition_list.length == 0) {
-                        uni.showToast({
-                            title: '请选择套餐',
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }else {
-                        for(let i in list[0].composition_list) {
-                            if(list[0].composition_list[i].goods_list.length == 1) {
-                                list[0].composition_list.splice(i,1)
-                            }
-                        }
-                        if(list[0].composition_list.length == 0) {
-                            uni.showToast({
-                                title: '请选择搭配商品',
-                                icon: 'none',
-                                duration: 1000
-                            });
-                        }else {
-                            list[0].goods_list = [];
-                            for (let j in list[0].composition_list) {
-                                for (let y in list[0].composition_list[j].goods_list) {
-                                    list[0].composition_list[j].goods_list[y].cart_id = 0;
-                                    list[0].goods_list.push(list[0].composition_list[j].goods_list[y])
-                                }
-                            }
-                            let jump_url = `/pages/order-submit/order-submit?mch_list=${JSON.stringify(list)}`;
-                            jump_url += `&preview_url=${encodeURIComponent(this.$api.composition.order_preview)}&submit_url=${encodeURIComponent(this.$api.composition.order_submit)}&plugin=composition`;
-                            this.$jump({
-                                open_type: 'navigate',
-                                url: jump_url,
-                            });
-                        }
-                    }
-                }
-            },
-            close () {
-                this.showNoAttr = false;
-            },
-            updateList(e) {
-                this.list = e;
-            },
-            update(e) {
-                this.noAttrList = e;
-            },
-            getTotal(e,max_discount) {
-                this.total = e;
-                if(max_discount) {
-                    this.max_discount = max_discount.toFixed(2)
-                }
-            },
-            getDetail() {
-                let that = this;
-                that.loading = false;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...',
-                });
-                let para = {
-                    composition_id: that.composition_id
-                }
-                if(that.goods_id > 0) {
-                    para.goods_id = that.goods_id
-                }
-                that.$request({
-                    url: that.goods_id > 0 ? that.$api.composition.detail : that.$api.composition.composition_detail,
-                    data: para
-                }).then(response=>{
-                    that.loading = true;
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        if(that.goods_id > 0) {
-                            that.list = response.data.other_list;
-                            that.other = response.data.list;
-                        }else {
-                            that.list = [];
-                            that.list[0] = response.data.composition;
-                        }
-                        if(that.other.length < 4) {
-                            that.noMore = true;
-                        }
-                        for(let i in that.list) {
-                            that.list[i].choose = false;
-                            for(let idx in that.list[i].goods_list) {
-                                that.list[i].goods_list[idx].choose_attr = null;
-                                if(that.list[i].goods_list[idx].goods_attr.length == 1) {
-                                    that.list[i].goods_list[idx].choose_attr = that.list[i].goods_list[idx].goods_attr[0];
-                                    that.list[i].goods_list[idx].choose_attr.number = 1;
-                                    that.list[i].goods_list[idx].total_price = (+that.list[i].goods_list[idx].choose_attr.price - +that.list[i].goods_list[idx].price).toFixed(2)
-                                }
-                                if(that.list[i].type == 2) {
-                                    that.list[i].host_list[0].choose_attr = null;
-                                    if(that.list[i].host_list[0].goods_attr.length == 1) {
-                                        that.list[i].host_list[0].choose_attr = that.list[i].host_list[0].goods_attr[0];
-                                        that.list[i].host_list[0].choose_attr.number = 1;
-                                        that.list[i].host_list[0].total_price = (+that.list[i].host_list[0].choose_attr.price - +that.list[i].host_list[0].price).toFixed(2)
-                                    }
-                                    that.list[i].goods_list[idx].choose_goods = false;
-                                    that.list[i].host_list[0].choose_goods = true;
-                                    that.list[i].host_list[0].opacity = 0.3;
-                                }
-                            }
-                        }
-                        if(that.list[0].type == 1) {
-                            that.list[0].choose = true;
-                            that.max_discount = that.list[0].max_discount;
-                        }
-                    }else {
-                        uni.hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.loading = true;
-                    uni.hideLoading();
-                    that.$hideLoading();
-                });
-            },
-            getMore() {
-                let that = this;
-                uni.showLoading({
-                    title: '加载中'
-                });
-                that.$request({
-                    url: that.$api.composition.detail,
-                    data: {
-                        goods_id: that.goods_id,
-                        composition_id: that.composition_id,
-                        page: that.page
-                    }
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        if(response.data.list.length == 0) {
-                            this.noMore = true;
-                            return false;
-                        }
-                        that.page++;
-                        that.other = that.other.concat(response.data.list);
-                        for(let i in that.list) {
-                            that.list[i].choose = false;
-                            for(let idx in that.list[i].goods_list) {
-                                that.list[i].goods_list[idx].choose_attr = null;
-                                if(that.list[i].type == 2) {
-                                    that.list[i].host_list[0].choose_attr = null;
-                                    that.list[i].host_list[0].opacity = 1;
-                                    that.list[i].goods_list[idx].choose_goods = false;
-                                    that.list[i].host_list[0].choose_goods = false;
-                                }
-                            }
-                        }
-                    }else {
-                        uni.hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-        },
-        onReachBottom() {
-            if(!this.noMore) {
-                this.getMore();
-            }
-        },
-        onLoad(option) {
-            let that = this;
-            uni.getSystemInfo({
-                success: function (res) {
-                    if(res.model.indexOf('iPhone X') > -1 || res.model.indexOf('iPhone 11') > -1 || res.model.indexOf('iPhone11') > -1 || res.model.indexOf('iPhone12') > -1 || res.model.indexOf('Unknown Device') > -1) {
-                        that.iphone_x = true;
-                    }
-                }
-            })
-            this.goods_id = option.goods_id > 0 ? option.goods_id : '';
-            this.composition_id = option.composition_id;
-            that.getDetail();
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-    .no-tip {
-        position: fixed;
-        top: #{120rpx};
-        left: 0;
-        right: 0;
-        margin: 0 auto;
-        color: #666666;
-        font-size: #{24rpx};
-        width: #{240rpx};
-        text-align: center;
-        image {
-            height: #{240rpx};
-            width: #{240rpx};
-            margin-bottom: #{20rpx};
-        }
-        .to-composition {
-            background-color: #ff4544;
-            border-radius: #{33rpx};
-            width: #{246rpx};
-            text-align: center;
-            height: #{66rpx};
-            line-height: #{66rpx};
-            margin-top: #{38rpx};
-            color: #fff;
-        }
-    }
-    .list {
-        padding: #{24rpx};
-        .title {
-            font-size: #{28rpx};
-            color: #353535;
-        }
-        .item {
-            margin-top: #{20rpx};
-            padding: #{24rpx};
-            border-radius: #{16rpx};
-            background-color: #fff;
-        }
-    }
-    .dialog-bg {
-        position: fixed;
-        top: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        background-color: rgba(0,0,0,.3);
-        z-index: 202;
-        .dialog {
-            width: #{630rpx};
-            margin: #{260rpx} auto 0;
-            background-color: #fff;
-            padding-top: #{40rpx};
-            border-radius: #{16rpx};
-            .dialog-title {
-                text-align: center;
-                font-size: #{26rpx};
-                color: #999999;
-                .dialog-big-title {
-                    font-size: #{32rpx};
-                    color: #353535;
-                    margin-bottom: #{10rpx};
-                }
-            }
-            .dialog-goods-list {
-                padding: 0 #{65rpx};
-                margin: #{26rpx} 0 #{48rpx};
-                .dialog-goods {
-                    width: #{80rpx};
-                    height: #{80rpx};
-                    border-radius: #{8rpx};
-                    margin: #{10rpx};
-                    image {
-                        border-radius: #{8rpx};
-                        width: #{80rpx};
-                        height: #{80rpx};
-                    }
-                }
-            }
-            .dialog-close {
-                width: #{630rpx};
-                border-top: #{2rpx} solid #e2e2e2;
-                font-size: #{32rpx};
-                color: #ff4544;
-                text-align: center;
-                padding: #{25rpx} 0;
-            }
-        }
-    }
-    .bottom {
-        width: 100%;
-        height: #{120rpx};
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        z-index: 30;
-        background-color: #fff;
-        border-top: #{2rpx} solid #e2e2e2;
-        font-size: #{24rpx};
-        color: #353535;
-        padding: 0 #{20rpx};
-        &.iphone_x {
-            height: #{150rpx};
-            padding-bottom: #{50rpx};
-        }
-        .total-price {
-            font-size: #{36rpx};
-            color: #ff4544;
-            margin-left: #{8rpx};
-        }
-        .submit-btn {
-            width: #{222rpx};
-            height: #{78rpx};
-            border-radius: #{39rpx};
-            background-color: #ff4544;
-            color: #fff;
-            font-size: #{32rpx};
-            line-height: #{78rpx};
-            text-align: center;
-        }
-        .discount {
-            font-size: #{24rpx};
-            color: #f39800;
-        }
-    }
-    .bottom-space {
-        height: #{110rpx};
-        &.iphone_x {
-            height: #{160rpx};
-        }
-    }
-</style>

+ 0 - 451
plugins/composition/index/index.vue

xqd
@@ -1,451 +0,0 @@
-<template>
-    <app-layout>
-        <view class="banner">
-            <image v-if="activityBg == 'statics/img/plugins/composition-banner.png'" :src="compositionImg.banner"></image>
-            <image v-else :src="activityBg"></image>
-            <view @click="toRule" class="rule">活动规则</view>
-        </view>
-        <view class="search" @click="toSearch">
-            <view class="search-view dir-left-nowrap main-center cross-center">
-                <image class="image" src="/static/image/icon/icon-search.png"></image>
-                <view class="text">请输入商品名称搜索</view>
-            </view>
-        </view>
-        <view class='no-tip' v-if="list.length == 0">
-            <image src="/static/image/no-goods.png"></image>
-            <view>没有任何套餐哦~</view>
-        </view>
-        <view v-else class="list" :style="{ position: position}">
-            <view class="item" v-for="item in list" :key="item.id">
-                <app-composition @click="show(item)" @look="toDetail(item)" :item="item" :large="true">
-                    <template>
-                        <view class="look-goods main-center cross-center">
-                            <view>套餐商品</view>
-                            <image src="/static/image/icon/icon-down.png"></image>
-                        </view>
-                    </template>
-                </app-composition>
-            </view>
-        </view>
-        <view @click="close" class="dialog-bg" v-if="showGoods">
-            <view @click.stop="" :class="['dialog', `${iphone_x? 'iphone_x':''}`,`${tabbarbool? 'tabbarbool':''}`]" :style="{'bottom':height +'px'}" :animation="animationData">
-                <view class="dialog-title main-between cross-center">
-                    <view @click="toDetail(detail)" class="toBuy dir-left-nowrap cross-center">
-                        <image src="/static/image/icon/shopping-cart.png"></image>
-                        <view>去购买套餐</view>
-                    </view>
-                    <view class="close">
-                        <image @click="close" src="/static/image/icon/close.png"></image>
-                    </view>
-                </view>
-                <view class="dialog-goods-list">
-                    <view @click.stop="toGoods(item.goods_id)" class="dialog-goods dir-left-nowrap" :key="item.id" v-for="item in detail.host_list">
-                        <image :src="item.cover_pic"></image>
-                        <view>
-                            <view class="t-omit-two goods-name">{{item.name}}</view>
-                            <view class="goods-price">¥{{item.min_price}}{{item.max_price != item.min_price ? '~¥'+item.max_price : ''}}</view>
-                        </view>
-                    </view>
-                    <view @click.stop="toGoods(item.goods_id)" class="dialog-goods dir-left-nowrap" :key="item.id" v-for="item in detail.goods_list">
-                        <image :src="item.cover_pic"></image>
-                        <view>
-                            <view class="t-omit-two goods-name">{{item.name}}</view>
-                            <view class="goods-price">¥{{item.min_price}}{{item.max_price != item.min_price ? '~¥'+item.max_price : ''}}</view>
-                        </view>
-                    </view>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import { mapState } from "vuex";
-    // import appList from '../components/app-list/app-list';
-    import appComposition from'../../../components/basic-component/app-composition/app-composition.vue';
-    export default {
-        data() {
-            return {
-                about: '',
-                list: [],
-                detail: {},
-                position: 'static',
-                iphone_x: false,
-                noMore: false,
-                showGoods: false,
-                page: 2,
-                height: 0,
-                scrollHeight: 0,
-                tabbarbool: false,
-                animationData: {},
-                currentRoute: this.$platDiff.route(),
-                activityBg: ''
-            }
-        },
-        components: {
-            'app-composition': appComposition,
-        },
-        computed: {
-            ...mapState({
-                theme: state => state.mallConfig.theme,
-                tabBarNavs: state => state.mallConfig.navbar.navs,
-                compositionImg: state => state.mallConfig.__wxapp_img.composition
-            })
-        },
-        watch: {
-            tabBarNavs: {
-                handler: function() {
-                    this.b();
-                },
-                immediate: true,
-            }
-        },
-        methods: {
-            b() {
-                let currentRoute = this.currentRoute;
-                for (let i = 0; i < this.tabBarNavs.length; i++) {
-                    if(currentRoute.includes(this.tabBarNavs[i].url.split('?')[0])) {
-                        return this.tabbarbool = true;
-                    }
-                }
-                return  this.tabbarbool = false;
-            },
-            show(e) {
-                let that = this;
-                that.detail = e;
-                that.showGoods = true;
-                that.position = 'fixed'
-                var animation = uni.createAnimation({
-                    duration: 1000,
-                    timingFunction: 'ease',
-                })
-                that.animation = animation
-                animation.translateY(that.height).step()
-                that.animationData = animation.export();
-            },
-            close() {
-                this.detail = {};
-                this.showGoods = false;
-                this.position = 'static'
-            },
-            toRule() {
-                uni.navigateTo({
-                    url: '/plugins/composition/rule/rule'
-                });
-            },
-            toDetail(item) {
-                uni.navigateTo({
-                    url: '/plugins/composition/detail/detail?composition_id=' + item.id
-                });
-            },
-            toGoods(id) {
-                uni.navigateTo({
-                    url: '/pages/goods/goods?id=' + id
-                });
-            },
-            toSearch() {
-                uni.navigateTo({
-                    url: '/plugins/composition/search/search'
-                });
-            },
-            getSetting() {
-                let that = this;
-                that.$showLoading({
-                    type: 'global',
-                    text: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.composition.config,
-                }).then(response=>{
-                    if(response.code == 0) {
-                        that.getList();
-                        that.activityBg = response.data.activityBg;
-                    }else {
-                        that.$hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.composition.index,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                        if(that.list.length < 5) {
-                            that.noMore = true;
-                        }
-                        for(let i in that.list) {
-                            that.list[i].choose = false;
-                            for(let idx in that.list[i].goods_list) {
-                                that.list[i].goods_list[idx].choose_attr = null;
-                                if(that.list[i].type == 2) {
-                                    that.list[i].host_list[0].choose_attr = null;
-                                    that.list[i].host_list[0].opacity = 1;
-                                    that.list[i].goods_list[idx].choose_goods = false;
-                                    that.list[i].host_list[0].choose_goods = false;
-                                }
-                            }
-                        }
-                        uni.setStorage({
-                            key: "composition",
-                            data: that.list
-                        })
-                    }else {
-                        that.$hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            getMore() {
-                let that = this;
-                uni.showLoading({
-                    title: '加载中'
-                });
-                that.$request({
-                    url: that.$api.composition.index,
-                    data: {
-                        page: that.page
-                    }
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        if(response.data.list.length == 0) {
-                            this.noMore = true;
-                            return false;
-                        }
-                        that.page++;
-                        let list = response.data.list
-                        for(let i in list) {
-                            list[i].choose = false;
-                            for(let idx in list[i].goods_list) {
-                                list[i].goods_list[idx].choose_attr = null;
-                                if(list[i].type == 2) {
-                                    list[i].host_list[0].choose_attr = null;
-                                    list[i].host_list[0].opacity = 1;
-                                    list[i].goods_list[idx].choose_goods = false;
-                                    list[i].host_list[0].choose_goods = false;
-                                }
-                            }
-                        }
-                        that.list = that.list.concat(list);
-                        uni.setStorage({
-                            key: "composition",
-                            data: that.list
-                        })
-                    }else {
-                        uni.hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-        },
-        onLoad(option) {
-            let that = this;
-            uni.getSystemInfo({
-                success: function (res) {
-                    console.log(res)
-                    that.height = -res.screenHeight;
-                    if(res.model.indexOf('iPhone X') > -1 || res.model.indexOf('iPhone 11') > -1 || res.model.indexOf('iPhone11') > -1 || res.model.indexOf('iPhone12') > -1 || res.model.indexOf('Unknown Device') > -1) {
-                        that.iphone_x = true;
-                    }
-                }
-            })
-            that.getSetting();
-        },
-        onReachBottom() {
-            if(!this.noMore) {
-                this.getMore();
-            }
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-    .list {
-        margin-top: #{388rpx};
-        .item {
-            margin: 0 #{24rpx} #{20rpx};
-            background-color: #fff;
-            border-radius: #{16rpx};
-            padding: #{24rpx};
-            padding-bottom: #{16rpx};
-            .look-goods {
-                margin-top: #{8rpx};
-                border-radius: #{8rpx};
-                height: #{48rpx};
-                width: #{288rpx};
-                font-size: #{24rpx};
-                color: #666666;
-                background-color: #f7f7f7;
-                image {
-                    width: #{18rpx};
-                    height: #{10rpx};
-                    margin-left: #{16rpx};
-                }
-            }
-        }
-    }
-    .no-tip {
-        position: fixed;
-        top: 40%;
-        left: 0;
-        right: 0;
-        margin: 0 auto;
-        color: #666666;
-        font-size: #{24rpx};
-        width: #{240rpx};
-        text-align: center;
-        image {
-            height: #{240rpx};
-            width: #{240rpx};
-            margin-bottom: #{20rpx};
-        }
-    }
-    .banner {
-        position: fixed;
-        top: 0;
-        left: 0;
-        height: #{280rpx};
-        width: 100%;
-        z-index: 20;
-        image {
-            width: 100%;
-            height: #{280rpx};
-        }
-        .rule {
-            position: fixed;
-            right: #{24rpx};
-            top: #{24rpx};
-            padding: 0 #{16rpx};
-            border-radius: #{24rpx};
-            height: #{48rpx};
-            line-height: #{48rpx};
-            font-size: #{22rpx};
-            color: #fff;
-            background-color: rgba(0,0,0,.4);
-        }
-    }
-    .search {
-        width: #{750rpx};
-        height: #{88rpx};
-        position: fixed;
-        top: #{280rpx};
-        left: 0;
-        z-index: 100;
-        background-color: #efeff4;
-        padding: #{15rpx} #{24rpx};
-        box-sizing: border-box;
-        .search-view {
-            width: #{750-48rpx};
-            height: #{88-30rpx};
-            background-color: white;
-            border-radius: #{22rpx};
-            .image {
-            width: #{20rpx};
-            height: #{20rpx};
-            margin-right: #{11rpx};
-            }
-            .text {
-            font-size: #{26rpx};
-            color: #999999;
-            }
-        }
-    }
-    .dialog-bg {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        background-color: rgba(0,0,0,.3);
-        z-index: 202;
-        .dialog {
-            &.tabbarbool {
-                padding-bottom: #{110rpx};
-            }
-            &.tabbarbool.iphone_x { 
-                padding-bottom: #{160rpx};
-            }
-            width: 100%;
-            position: fixed;
-            left: 0;
-            z-index: 210;
-            background-color: #fff;
-            border-top-left-radius: #{16rpx};
-            border-top-right-radius: #{16rpx};
-            .dialog-title {
-                padding: #{36rpx} #{24rpx} #{24rpx};
-                font-size: #{32rpx};
-                color: #353535;
-                .toBuy {
-                    font-size: #{28rpx};
-                    color: #ff4544;
-                    image {
-                        width: #{36rpx};
-                        height: #{36rpx};
-                        margin-right: #{12rpx};
-                        display: block;
-                    }
-                }
-                .close {
-                    image {
-                        width: #{36rpx};
-                        height: #{36rpx};
-                    }
-                }
-            }
-            .dialog-goods-list {
-                padding: 0 #{24rpx};
-                max-height: #{750rpx};
-                overflow-y: auto;
-                .dialog-goods {
-                    font-size: #{32rpx};
-                    position: relative;
-                    padding: #{28rpx} 0;
-                    border-top: #{2rpx} solid #e2e2e2;
-                    image {
-                        width: #{180rpx};
-                        height: #{180rpx};
-                        margin-right: #{24rpx};
-                        border-radius: #{8rpx};
-                    }
-                    .goods-name {
-                        color: #353535;
-                        width: #{498rpx};
-                    }
-                    .goods-price {
-                        color: #ff4544;
-                        position: absolute;
-                        bottom: #{50rpx};
-                        left: #{204rpx};
-                    }
-                }
-                .dialog-goods:first-of-type {
-                    border-top: 0;
-                }
-            }
-        }
-    }
-</style>

+ 0 - 78
plugins/composition/rule/rule.vue

xqd
@@ -1,78 +0,0 @@
-<template>
-    <app-layout>
-        <view class="about">
-            <view class="title">{{title}}</view>
-            <view class="content">
-                <text space='nbsp'>{{rule}}</text>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import { mapState } from "vuex";
-    export default {
-        data() {
-            return {
-                title: '',
-                rule: ''
-            }
-        },
-        computed: {
-            ...mapState({
-                theme: state => state.mallConfig.theme
-            })
-        },
-        methods: {
-            getList() {
-                let that = this;
-                that.$showLoading({
-                    type: 'global',
-                    text: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.composition.config,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.title = response.data.title;
-                        that.rule = response.data.rule;
-                    }else {
-                        that.$hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-        },
-        onLoad(option) {
-            this.getList();
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-    .about {
-        position: absolute;
-        top: 0;
-        left: 0;
-        background-color: #fff;
-        width: 100%;
-        height: 100%;
-        z-index: 2;
-        color: #353535;
-        font-size: #{28rpx};
-        .title {
-            padding: #{28rpx} #{24rpx} 0;
-        }
-        .content {
-            background-color: #fff;
-            padding: #{20rpx} #{24rpx};
-        }
-    }
-</style>

+ 0 - 385
plugins/composition/search/search.vue

xqd
@@ -1,385 +0,0 @@
-<template>
-    <app-layout>
-        <view class="search dir-left-nowrap cross-centers">
-            <view class="search-view">
-                <input id="search" @confirm='toSearch' confirm-type='search' placeholder="请输入商品名称搜索" v-model="keyword" type="text" focus @focus="getFocus=true">
-                <image v-if="getFocus && keyword.length > 0" @click="clearSearch" class="search-clear" src="/static/image/icon/delete-yuan.png"></image>
-            </view>
-            <view @click="toSearch" class="search-btn">搜索</view>
-        </view>
-
-        <view class="main-center no-result" v-if="list.length == 0 && searchResult">
-            <view class="dir-left-nowrap cross-center">
-                <image class="box-grow-0 empty" src="/static/image/icon/empty.png"></image>
-                <view class="box-grow-1">
-                    <view>抱歉,没有相关商品</view>
-                </view>
-            </view>
-        </view>
-        <view class="list">
-            <view class="item" v-for="item in list" :key="item.id">
-                <app-composition @click="show(item)" @look="toDetail(item)" :item="item" :large="true">
-                    <template>
-                        <view class="look-goods main-center cross-center">
-                            <view>套餐商品</view>
-                            <image src="/static/image/icon/icon-down.png"></image>
-                        </view>
-                    </template>
-                </app-composition>
-            </view>
-        </view>
-        <view @click="close" class="dialog-bg" v-if="showGoods">
-            <view @click.stop="" class="dialog" :style="{'bottom':height +'px'}" :animation="animationData">
-                <view class="dialog-title main-between cross-center">
-                    <view @click="toDetail(detail)" class="toBuy dir-left-nowrap cross-center">
-                        <image src="/static/image/icon/shopping-cart.png"></image>
-                        <view>去购买套餐</view>
-                    </view>
-                    <view class="close">
-                        <image @click="close" src="/static/image/icon/close.png"></image>
-                    </view>
-                </view>
-                <view class="dialog-goods-list">
-                    <view @click.stop="toGoods(item.goods_id)" class="dialog-goods dir-left-nowrap" v-for="item in detail.host_list">
-                        <image :src="item.cover_pic"></image>
-                        <view>
-                            <view class="t-omit-two goods-name">{{item.name}}</view>
-                            <view class="goods-price">¥{{item.min_price}}{{item.max_price != item.min_price ? '~¥'+item.max_price : ''}}</view>
-                        </view>
-                    </view>
-                    <view @click.stop="toGoods(item.goods_id)" class="dialog-goods dir-left-nowrap" v-for="item in detail.goods_list">
-                        <image :src="item.cover_pic"></image>
-                        <view>
-                            <view class="t-omit-two goods-name">{{item.name}}</view>
-                            <view class="goods-price">¥{{item.min_price}}{{item.max_price != item.min_price ? '~¥'+item.max_price : ''}}</view>
-                        </view>
-                    </view>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import { mapState } from "vuex";
-    import appComposition from'../../../components/basic-component/app-composition/app-composition.vue';
-    export default {
-        data() {
-            return {
-                list: [],
-                keyword: '',
-                choose_list: [],
-                detail: {},
-                animationData: {},
-                height: 0,
-                searchResult: false,
-                searchMode: true,
-                getFocus: true,
-                showGoods: false,
-            }
-        },
-        components: {
-            'app-composition': appComposition,
-        },
-        computed: {
-            ...mapState({
-                theme: state => state.mallConfig.theme
-            })
-        },
-        methods: {
-            show(e) {
-                this.detail = e;
-                this.showGoods = true;
-                var animation = uni.createAnimation({
-                    duration: 1000,
-                    timingFunction: 'ease',
-                })
-                this.animation = animation
-                animation.translateY(this.height).step()
-                this.animationData = animation.export();
-            },
-            close() {
-                this.detail = {};
-                this.showGoods = false;
-            },
-            toDetail(item) {
-                this.close();
-                uni.navigateTo({
-                    url: '/plugins/composition/detail/detail?composition_id=' + item.id
-                });
-            },
-            toGoods(id) {
-                uni.navigateTo({
-                    url: '/pages/goods/goods?id=' + id
-                });
-            },
-            // updateList(e) {
-            //     this.list = e;
-            // },
-            // choose(row,type) {
-            //     let that = this;
-            //     if(type == 1) {
-            //         for(let i in that.choose_list) {
-            //             if(that.choose_list[i].type == 2) {
-            //                 if(that.choose_list[i].host_list[0].id == row.id) {
-            //                     that.choose_list[i].host_list[0] = row;
-            //                 }else {
-            //                     for(let x in that.choose_list[i].goods_list) {
-            //                         if(that.choose_list[i].goods_list[x].id == row.id) {
-            //                             that.choose_list[i].goods_list[x] = row;
-            //                         }
-            //                     }
-            //                 }
-            //             }
-            //         }
-            //         uni.setStorage({
-            //             key: "composition",
-            //             data: that.choose_list
-            //         })
-            //         uni.navigateBack();
-            //     }else {
-            //         let index = -1;
-            //         for(let i in that.choose_list) {
-            //             if(that.choose_list[i].id == row.id) {
-            //                 index = i;
-            //             }
-            //         }
-            //         if(index > -1) {
-            //             that.choose_list[index] = row;
-            //         }
-            //         uni.setStorage({
-            //             key: "composition",
-            //             data: that.choose_list
-            //         })
-            //         uni.navigateBack();
-            //     }
-            // },
-            clearSearch() {
-                this.keyword = '';
-                this.list = [];
-                this.searchResult = false;
-            },
-            toSearch() {
-                let that = this;
-                uni.showLoading({
-                    mask: true,
-                    title: '搜索中...',
-                });
-                that.$request({
-                    url: that.$api.composition.index,
-                    data: {
-                        keyword: that.keyword
-                    }
-                }).then(response=>{
-                    uni.hideLoading();
-                    that.searchResult = true;
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                        // for(let i in that.list) {
-                        //     that.list[i].choose = false;
-                        //     for(let idx in that.list[i].goods_list) {
-                        //         that.list[i].goods_list[idx].choose_attr = null;
-                        //         if(that.list[i].type == 2) {
-                        //             that.list[i].host_list[0].choose_attr = null;
-                        //             that.list[i].host_list[0].opacity = 1;
-                        //             that.list[i].goods_list[idx].choose_goods = false;
-                        //             that.list[i].host_list[0].choose_goods = false;
-                        //         }
-                        //     }
-                        // }
-                    }else {
-                        uni.hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-        },
-        onLoad(option) {
-            let that = this;
-            uni.getSystemInfo({
-                success: function (res) {
-                    console.log(res)
-                    that.height = -res.screenHeight;
-                }
-            })
-            // uni.getStorage({
-            //     key: 'composition',
-            //     success(res) {
-            //         that.choose_list = res.data;
-            //     }
-            // })
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-    .list {
-        margin-top: #{108rpx};
-        .item {
-            margin: 0 #{24rpx} #{20rpx};
-            background-color: #fff;
-            border-radius: #{16rpx};
-            padding: #{24rpx};
-            padding-bottom: #{16rpx};
-            .look-goods {
-                margin-top: #{8rpx};
-                border-radius: #{8rpx};
-                height: #{48rpx};
-                width: #{288rpx};
-                font-size: #{24rpx};
-                color: #666666;
-                background-color: #f7f7f7;
-                image {
-                    width: #{18rpx};
-                    height: #{10rpx};
-                    margin-left: #{16rpx};
-                }
-            }
-        }
-    }
-    .no-result {
-        height: #{156rpx};
-        padding: #{28rpx} 0;
-        margin-top: #{88rpx};
-        font-size: $uni-font-size-general-one;
-        background-color: #ffffff;
-
-        .text {
-            color: $uni-general-color-two;
-        }
-
-        .empty {
-            width: #{100rpx};
-            height: #{100rpx};
-            display: block;
-            margin-right: #{40rpx};
-        }
-    }
-    .search {
-        width: #{750rpx};
-        height: #{88rpx};
-        position: fixed;
-        top: 0;
-        left: 0;
-        z-index: 100;
-        background-color: #efeff4;
-        padding: #{15rpx} 0;
-        padding-left: #{24rpx};
-        box-sizing: border-box;
-        .search-view {
-            flex-shrink: 0;
-            position: relative;
-            width: #{626rpx};
-            height: #{88-30rpx};
-            background-color: white;
-            border-radius: #{29rpx};
-            .search-clear {
-              position: absolute;
-              right: #{15rpx};
-              top: #{14rpx};
-              width: #{30rpx};
-              height: #{30rpx};
-              z-index: 100;
-            }
-            input {
-                box-sizing: border-box;
-                padding: #{0 70rpx 0 30rpx};
-                font-size: #{26rpx};
-                height: #{58rpx};
-                line-height: #{58rpx};
-            }
-            .image {
-                width: #{20rpx};
-                height: #{20rpx};
-                margin-right: #{11rpx};
-            }
-            .text {
-                font-size: #{26rpx};
-                color: #999999;
-            }
-        }
-        .search-btn {
-            width: #{100rpx};
-            height: #{58rpx};
-            line-height: #{58rpx};
-            text-align: center;
-            font-size: #{28rpx};
-            color: #666;
-        }
-    }
-    .dialog-bg {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        background-color: rgba(0,0,0,.3);
-        z-index: 202;
-        .dialog {
-            width: 100%;
-            position: fixed;
-            left: 0;
-            z-index: 210;
-            background-color: #fff;
-            border-top-left-radius: #{16rpx};
-            border-top-right-radius: #{16rpx};
-            .dialog-title {
-                padding: #{36rpx} #{24rpx} #{24rpx};
-                font-size: #{32rpx};
-                color: #353535;
-                .toBuy {
-                    font-size: #{28rpx};
-                    color: #ff4544;
-                    image {
-                        width: #{36rpx};
-                        height: #{36rpx};
-                        margin-right: #{12rpx};
-                        display: block;
-                    }
-                }
-                .close {
-                    image {
-                        width: #{36rpx};
-                        height: #{36rpx};
-                    }
-                }
-            }
-            .dialog-goods-list {
-                padding: 0 #{24rpx};
-                max-height: #{750rpx};
-                overflow-y: auto;
-                .dialog-goods {
-                    font-size: #{32rpx};
-                    position: relative;
-                    padding: #{28rpx} 0;
-                    border-top: #{2rpx} solid #e2e2e2;
-                    image {
-                        width: #{180rpx};
-                        height: #{180rpx};
-                        margin-right: #{24rpx};
-                        border-radius: #{8rpx};
-                    }
-                    .goods-name {
-                        color: #353535;
-                        width: #{498rpx};
-                    }
-                    .goods-price {
-                        color: #ff4544;
-                        position: absolute;
-                        bottom: #{50rpx};
-                        left: #{204rpx};
-                    }
-                }
-                .dialog-goods:first-of-type {
-                    border-top: 0;
-                }
-            }
-        }
-    }
-</style>

+ 0 - 787
plugins/fxhb/detail/detail.vue

xqd
@@ -1,787 +0,0 @@
-<template>
-    <view class="app-layout">
-        <app-layout>
-            <view class="detail-bg">
-                <view class="fxhb-bg" :style="{'background-image': `url(${appImg.bg})`}">
-                    <view class="fxhb-right">
-                        <view @click="rules">活动规则</view>
-                        <view @click="homes">返回首页</view>
-                    </view>
-                </view>
-                <view class="fxhb-box">
-                    <!-- 正在进行 -->
-                    <view v-if="status === 0 && is_join == 1" class="detail-info">
-                        <view class="user-list dir-left-wrap main-center">
-                            <view v-for="(v,k) in list" :key="k" class="user-item">
-                                <image :src="v.avatar" load-lazy></image>
-                            </view>
-                            <view v-for="(v,k) in user_num_list" :key="k" class="user-item none">
-                                <image :src="appImg.fxhb_none" load-lazy></image>
-                            </view>
-                        </view>
-                        <view class="detail-info-text">还差{{user_num}}人即可瓜分{{coupon_total_money}}元红包,快邀好友来拆</view>
-                        <view class="detail-time-text">{{time_str}}后结束</view>
-                        <view class="main-center">
-                            <app-jump-button open_type="share">
-                                <app-button color="#FFFFFF" height="88" width="560"
-                                            background="#ff4544" round>邀请好友一起拆
-                                </app-button>
-                            </app-jump-button>
-                        </view>
-                    </view>
-
-                    <!-- 过期 -->
-                    <view v-if="status === 2" class="detail-info">
-                        <view class="detail-info-text cross-center dir-top-nowrap">
-                            <view>超过规定时间,该红包不能拆了</view>
-                            <icon class="icon-detail-time"></icon>
-                        </view>
-                        <view class="main-center">
-                            <app-button @click="openNew" height="88" width="560" background="#ff4544" color="#FFFFFF"
-                                        font-size="32" round>拆一个新红包
-                            </app-button>
-                        </view>
-                    </view>
-
-                    <!-- 未中奖 -->
-                    <view v-if="status === 1 && is_join == 0" class="detail-info">
-                        <view class="user-list dir-left-wrap main-center">
-                            <block v-for="(v,k) in list" :key="k">
-                                <view class="user-item">
-                                    <image :src="v.avatar" load-lazy></image>
-                                </view>
-                            </block>
-                        </view>
-                        <view class="detail-info-text">很遗憾,该红包已被瓜分完了</view>
-                        <view class="main-center detail-error">
-                            <app-button height="88" width="560" color="#FFFFFF" background="#ff4544" @click="openNew"
-                                        round>
-                                拆一个新红包
-                            </app-button>
-                        </view>
-                    </view>
-
-                    <!-- 已中奖 -->
-                    <view v-if="status === 1 && is_join == 1" class="detail-info">
-                        <view class="detail-info-text">恭喜您,已成功瓜分红包</view>
-                        <view class="dir-left-nowrap cross-center coupon">
-                            <view class="box-grow-1">
-                                <view class="coupon-title">满减券</view>
-                                <view class="coupon-desc">满{{min_price}}可用</view>
-                            </view>
-                            <view class="box-grow-0 dir-left-nowrap cross-bottom">
-                                <view class="coupon-unit cross-bottom">¥</view>
-                                <view class="coupon-money">{{user_price}}</view>
-                            </view>
-                        </view>
-                        <view class="main-center">
-                            <app-button @click="openNew" font-size="32" background="#ff4544" height="88" width="560"
-                                        color="#FFFFFF" round>拆一个新红包
-                            </app-button>
-                        </view>
-                        <view class="main-center coupon-set">
-                            <app-button @click="goods" font-size="32" background="#ffb82f" height="88" width="560"
-                                        color="#FFFFFF" round>立即使用
-                                <icon class="icon-right"></icon>
-                            </app-button>
-                        </view>
-                    </view>
-
-                    <!-- 中奖列表 -->
-                    <view v-if="status === 1" class="detail-info award-list">
-                        <view class="dir-left dir-left-nowrap main-center cross-center">
-                            <view class="box-grow-0 list-line"></view>
-                            <view class="box-grow-0 list-text">看看大家手气</view>
-                            <view class="box-grow-0 list-line"></view>
-                        </view>
-                        <view class="dir-left-nowrap cross-center list" v-for="(v,k) in list" :key="k">
-                            <view class="box-grow-0">
-                                <image class="user-avatar" :src="v.avatar" load-lazy></image>
-                            </view>
-                            <view class="box-grow-1">{{v.nickname}}</view>
-                            <view class="box-grow-0 dir-top-nowrap main-right">
-                                <view class="main-right">{{v.get_price}}元</view>
-                                <view class="dir-left main-center best" v-if="v.is_best">
-                                    <icon class="user-pond"></icon>
-                                    <view class="t-extra-small">手气最佳</view>
-                                </view>
-                            </view>
-                        </view>
-                    </view>
-
-                    <!-- 推荐商品 -->
-                    <view class="more-goods" v-if="goods_list && goods_list.length">
-                        <view class="tt-goods dir-left-nowrap cross-center main-center">
-                            <view class="line"></view>
-                            <view class="dir-left-nowrap cross-center">
-                                <icon class="icon-love"></icon>
-                                <view>商品推荐</view>
-                            </view>
-                            <view class="line"></view>
-                        </view>
-                        <app-goods-list :list="goods_list"></app-goods-list>
-                    </view>
-
-                    <!-- 模态框 -->
-                    <view v-if="show_share_model && user_num" class="act-modal">
-                        <view class="act-modal-bg"></view>
-                        <view class="act-modal-pic cross-center main-center">
-                            <view class="modal-box" :style="{'background-image': `url(${appImg.share_modal_bg})`}">
-                                <view class="modal-close" @click="closeShareModal">
-                                    <icon class="icon-close"></icon>
-                                </view>
-                                <view class="modal-text dir-left-nowrap main-center cross-bottom">
-                                    <view>还差</view>
-                                    <view class="bold-num">{{user_num}}</view>
-                                    <view>个人即可拆红包</view>
-                                </view>
-                                <view class="dir-left-nowrap main-center cross-bottom">
-                                    <view>一起瓜分</view>
-                                    <view class="bold-money">{{coupon_total_money}}</view>
-                                    <view>元!</view>
-                                </view>
-                                <view class="main-center btn">
-                                    <app-jump-button open_type="share">
-                                        <app-button height="80" width="440" color="#FFFFFF" font-size="28"
-                                                    background="#ff4544" round>邀请好友一起拆
-                                        </app-button>
-                                    </app-jump-button>
-                                </view>
-                            </view>
-                        </view>
-                    </view>
-
-                    <view v-if="is_new" class="hongbao dir-left main-center">
-                        <view class="hongbao-content" :style="{'background-image': `url(${appImg.hongbao_bg})`}">
-                            <view class="hongbao-desc">
-                                <view>{{config.count_price}}元红包已包好</view>
-                                <view>快拆开和小伙伴分红包</view>
-                            </view>
-                            <view @click="open">
-                                <icon class="hongbao-btn"></icon>
-                            </view>
-                        </view>
-                    </view>
-                </view>
-            </view>
-        </app-layout>
-    </view>
-</template>
-
-<script>
-    import {mapState} from 'vuex';
-    import appGoodsList from "../../../components/page-component/app-goods-list/app-goods-list.vue";
-
-    export default {
-        name: "detail",
-	    
-        components: {appGoodsList},
-	    
-        computed: {
-            ...mapState({
-                appImg: state => state.mallConfig.plugin.fxhb.app_image,
-            }),
-        },
-	    
-        data() {
-            let interval_time;
-            return {
-                interval_time,
-                user_activity_id: 0,
-                config: null,
-                goods_list: [],
-                show_share_model: false,
-                time_str: "00:00:00",
-                is_new: false,
-
-                coupon_total_money: 0,
-                is_join: 0,
-                is_my_hongbao: false,
-                list: null,
-                min_price: 0,
-                reset_time: null,
-                status: -1,
-                totalUser: 0,
-                user_num: 0,
-                user_num_list: [],
-                user_price: 0,
-                again_open: true,
-                page_url: '',
-            }
-        },
-	    
-        onLoad: function (options) {
-            this.user_activity_id = options.user_activity_id ? options.user_activity_id : '';
-            this.loadConfig();
-        },
-
-        onShareAppMessage() {
-            return this.$shareAppMessage({
-                title: this.config.share_title,
-                path: '/plugins/fxhb/detail/detail',
-                params: {
-                    user_activity_id: this.user_activity_id,
-                },
-                imageUrl: this.config.share_pic_url
-            });
-        },
-
-        onUnload: function () {
-            clearInterval(this.intervalTime);
-        },
-
-        methods: {
-            loadConfig() {
-                const self = this;
-                uni.showLoading({
-	                title: '加载中',
-                });
-                self.$request({
-                    url: self.$api.fxhb.index,
-                    data: {
-                        user_activity_id: self.user_activity_id
-                    }
-                }).then(info => {
-	                uni.hideLoading();
-                    if (info.code === 0) {
-                        self.config = info.data.config;
-
-                        if (info.data.user_activity_id) {
-                            self.user_activity_id = info.data.user_activity_id;
-                            self.loadData()
-                        } else {
-                            if (self.user_activity_id) {
-                                self.detailSubmit();
-                            } else {
-                                self.openNew();
-                            }
-                        }
-                    } else {
-                        uni.showToast({icon: 'none', title: info.msg});
-                        setTimeout(() => {
-                            uni.redirectTo({url: '/pages/index/index'})
-                        }, 2000)
-                    }
-                }).catch(() => {
-                    uni.hideLoading();
-                })
-            },
-
-            openNew() {
-                [this.status, this.is_new, this.goods_list] = [-1, true, []];
-            },
-            open() {
-                if (this.again_open) {
-                    this.user_activity_id = 0;
-                    this.detailSubmit();
-                    this.again_open = false;
-                }
-            },
-            rules() {
-                uni.navigateTo({url: `/plugins/fxhb/rule/rule?rules=` + this.config.remark});
-            },
-            homes() {
-                uni.navigateTo({url: `/pages/index/index`})
-            },
-            goods() {
-                uni.redirectTo({url: this.page_url});
-            },
-
-            detailSubmit() {
-                const self = this;
-	            uni.showLoading({
-		            title: '抢红包中',
-                    mask: true,
-                });
-                self.$request({
-                    url: self.$api.fxhb.join,
-                    method: 'post',
-                    data: {
-                        user_activity_id: self.user_activity_id,
-                    }
-                }).then(info => {
-	                uni.hideLoading();
-                    if (info.code === 0) {
-                        self.result(info.data.queueId, info.data.token);
-                    } else {
-                        self.openNew();
-                        uni.showToast({icon: 'none', title: info.msg});
-                    }
-                }).catch(() => {
-                    uni.hideLoading();
-                })
-            },
-
-            async loadData() {
-                const self = this;
-	            uni.showLoading({
-		            title: '加载中',
-		            mask: true,
-	            });
-                const info = await this.$request({
-                    url: self.$api.fxhb.detail,
-                    data: {
-                        user_activity_id: self.user_activity_id,
-                    }
-                });
-                uni.hideLoading();
-                if (info.code === 0) {
-                    let {coupon_total_money, is_join, is_my_hongbao, list, min_price, page_url, reset_time, status, totalUser, user_num, user_price} = info.data;
-                    this.coupon_total_money = coupon_total_money;
-                    this.is_join = is_join;
-                    this.is_my_hongbao = is_my_hongbao;
-                    this.list = list;
-                    this.min_price = min_price;
-                    this.page_url = page_url;
-                    this.reset_time = reset_time;
-                    this.totalUser = totalUser;
-                    this.status = status;
-                    this.user_num = user_num;
-                    this.user_price = user_price;
-                    this.user_num_list = [];
-                    for (let i = 0; i < this.user_num; i++) {
-                        this.user_num_list.push(i);
-                    }
-                    self.setTimeStart();
-                    self.getRecommend();
-                    this.again_open = true;
-                } else {
-                    uni.showToast({
-	                    icon: 'none',
-	                    title: info.msg,
-                        duration: 2000,
-                        success: function() {
-                            uni.redirectTo({
-                                url: '/pages/index/index'
-                            });
-                        }
-                    });
-                }
-            },
-
-            setTimeStart() {
-                const self = this;
-                clearInterval(this.interval_time);
-
-                let times = function () {
-                    let hour = 0,
-                        minute = 0,
-                        second = 0; //时间默认值
-                    let times = self.reset_time;
-                    times--;
-                    if (times > 0) {
-                        hour = Math.floor(times / (60 * 60));
-                        minute = Math.floor(times / 60) - (hour * 60);
-                        second = Math.floor(times) - (hour * 60 * 60) - (minute * 60);
-                    }
-                    [self.reset_time, self.time_list] = [times, {hour, minute, second}];
-                    self.time_str = (hour < 10 ? ('0' + hour) : hour) + ':' + (minute < 10 ? ('0' + minute) : minute) + ':' + (second < 10 ? ('0' + second) : second);
-                    if (times <= 0) {
-                        clearInterval(self.intervalTime);
-                    }
-                };
-                times();
-                this.interval_time = setInterval(() => {
-                    times();
-                }, 1000)
-            },
-
-            result(queueId, token) {
-	            uni.showLoading({
-		            title: '加载中',
-		            mask: true,
-	            });
-                const self = this;
-                self.$request({
-                    url: self.$api.fxhb.join_result,
-                    data: {
-                        queueId: queueId,
-                        token: token
-                    }
-                }).then(info => {
-                    if (info.code === 0) {
-                        if (info.data.retry && info.data.retry == 1) {
-                            setTimeout(() => {
-                                self.result(queueId, token)
-                            }, 1000);
-                        } else {
-                            self.user_activity_id = info.data.user_activity_id;
-                            self.loadData();
-                            uni.hideLoading();
-                            self.showShareModal();
-                        }
-                    } else {
-                        uni.hideLoading();
-                        self.status = 2;
-                        uni.showToast({
-                            icon: 'none',
-                            title: info.msg,
-                            duration: 2000,
-                            success: function() {
-                                uni.redirectTo({
-                                    url: '/pages/index/index'
-                                });
-                            }
-                        });
-                    }
-                })
-            },
-
-            //打开分享提示框
-            showShareModal: function () {
-                [this.is_new, this.show_share_model] = [false, true];
-            },
-
-            //关闭分享提示框
-            closeShareModal: function () {
-                [this.show_share_model] = [false];
-            },
-
-            async getRecommend () {
-                const self = this;
-	            uni.showLoading({
-		            title: '加载中',
-		            mask: true,
-	            });
-                const info = await self.$request({
-                    url: self.$api.fxhb.recommend,
-                });
-	            uni.hideLoading();
-                if (info.code === 0) {
-                    self.goods_list = info.data.list;
-                }
-            },
-        }
-    }
-</script>
-<style scoped lang="scss">
-    .app-layout .detail-bg {
-        background: #fe6b2e;
-        min-height: 100vh;
-    }
-    .app-layout /deep/ .app-layout {
-        background: #fe6b2e;
-        min-height: 100vh;
-    }
-    .fxhb-bg {
-        background-size: 100% auto;
-        background-repeat: no-repeat;
-        height: #{464rpx};
-        position: relative;
-        z-index: 50;
-    }
-
-    .fxhb-right {
-        font-size: #{24rpx};
-        color: #FFFFFF;
-        float: right;
-
-        view {
-            background: rgba(0, 0, 0, .5);
-            border-radius: #{28rpx} 0 0 #{28rpx};
-            line-height: #{56rpx};
-            text-align: center;
-            width: #{136rpx};
-            margin-top: #{24rpx};
-        }
-    }
-
-    .fxhb-start {
-        position: fixed;
-        width: 100%;
-        left: 0;
-        top: #{380rpx};
-        height: 100%;
-        z-index: 10;
-    }
-
-    .hongbao {
-        position: relative;
-        width: 100%;
-        left: 0;
-        height: 100%;
-        z-index: 51;
-
-        .hongbao-content {
-            font-size: #{36rpx};
-            padding: #{350rpx} #{25rpx} 0 #{25rpx};
-            background-size: 100% auto;
-            background-repeat: no-repeat;
-            width: #{602rpx};
-            height: #{712rpx};
-            text-align: center;
-
-            .hongbao-desc {
-                margin-bottom: #{100rpx};
-                line-height: 1.5;
-                color: #ffe15d;
-                font-size: 13pt;
-            }
-        }
-
-        .hongbao-btn {
-            background-image: url("./../image/open_hongbao_btn.png");
-            line-height: #{96rpx};
-            height: #{96rpx};
-            width: #{416rpx};
-            background-repeat: no-repeat;
-            background-size: 100% 100%;
-            text-align: center;
-        }
-    }
-
-    .fxhb-box {
-        margin-top: #{-68rpx};
-        background: #fe6b2e;
-
-        .detail-info {
-            background: rgba(255, 255, 255, 0.9);
-            border-radius: #{16rpx};
-            margin: 0 #{24rpx};
-            padding: #{50rpx};
-            z-index: 100;
-            position: relative;
-        }
-
-        .user-list {
-            overflow: hidden;
-            margin-bottom: #{16rpx};
-
-            .user-item {
-                border: #{2rpx} solid #ff5c5c;
-                width: #{104rpx};
-                height: #{104rpx};
-                margin-left: #{23rpx};
-                margin-right: #{23rpx};
-                margin-bottom: #{40rpx};
-                display: inline-block;
-                overflow: hidden;
-                border-radius: #{999rpx};
-                background-color: #fff;
-                float: left;
-            }
-
-            .none {
-                border-style: none;
-            }
-
-            image {
-                width: 100%;
-                height: 100%;
-            }
-        }
-
-        .detail-info-text {
-            text-align: center;
-            color: #666666;
-            font-size: #{28rpx};
-        }
-
-        .detail-time-text {
-            color: #999999;
-            text-align: center;
-            margin-top: #{24rpx};
-            margin-bottom: #{40rpx};
-            font-size: #{28rpx};
-        }
-
-        .icon-detail-time {
-            background-size: 100% 100%;
-            background-image: url("./../image/cry.png");
-            width: #{190rpx};
-            height: #{168rpx};
-            margin-top: #{48rpx};
-            margin-bottom: #{32rpx};
-        }
-    }
-
-    .more-goods {
-        padding-bottom: #{32rpx};
-        color: #FFFFFF;
-        font-size: #{24rpx};
-        margin-top: #{48rpx};
-
-        .tt-goods {
-            margin-bottom: #{12rpx};
-        }
-
-        .line {
-            height: #{1px};
-            width: #{40rpx};
-            background: #FFFFFF;
-            margin: 0 #{24rpx};
-        }
-
-        .icon-love {
-            width: #{24rpx};
-            height: #{24rpx};
-            background-size: 100% 100%;
-            background-repeat: no-repeat;
-            margin-right: #{12rpx};
-            background-image: url("./../image/love.png");
-        }
-
-    }
-
-    .detail-error {
-        margin-top: #{40rpx};
-    }
-
-    .award-list {
-        margin-top: #{32rpx} !important;
-        padding-top: #{48rpx} !important;
-        color: #353535;
-        padding-bottom: #{56rpx} !important;
-
-        .list {
-            margin-top: #{40rpx};
-        }
-
-        .list-line {
-            width: #{176rpx};
-            height: #{2rpx};
-            background: #dbdbdb;
-        }
-
-        .list-text {
-            font-size: #{32rpx};
-            padding: 0 #{50rpx};
-        }
-
-        .user-avatar {
-            width: #{80rpx};
-            height: #{80rpx};
-            border-radius: 50%;
-            margin-right: #{20rpx};
-        }
-
-        .best {
-            color: #ffb82f;
-            font-size: #{28rpx};
-            margin-top: #{10rpx};
-            .user-pond {
-                width: #{40rpx};
-                height: #{30rpx};
-                margin-right: #{10rpx};
-                background-image: url("./../image/best_icon.png");
-                background-repeat: no-repeat;
-                background-size: 100% auto;
-            }
-        }
-    }
-
-    .coupon-set {
-        margin-top: #{24rpx};
-        .icon-right {
-            width: #{12rpx};
-            height: #{22rpx};
-            margin-left: #{10rpx};
-            background-image: url("../../../static/image/icon/arrow-right-white.png");
-            background-repeat: no-repeat;
-            background-size: 100% auto;
-        }
-    }
-    .coupon {
-        margin-top: #{32rpx};
-        background-size: 100% 100%;
-        height: #{190rpx};
-        background-repeat: no-repeat;
-        background-image: url("./../image/coupon.png");
-        margin-bottom: #{24rpx};
-        .coupon-title {
-            font-size: #{48rpx};
-            padding-left: #{56rpx};
-            color: #8f4c1a;
-            margin-bottom: #{16rpx};
-        }
-        .coupon-desc {
-            font-size: #{28rpx};
-            padding-left: #{56rpx};
-            color: #8f4c1a;
-        }
-        .coupon-unit {
-            font-size: #{50rpx};
-            line-height: 1.35;
-            color: #ff5c5c;
-            padding-bottom: #{2rpx};
-        }
-        .coupon-money {
-            font-size: #{80rpx};
-            line-height: 1;
-            font-weight: bold;
-            padding-right: #{56rpx};
-            color: #ff5c5c;
-        }
-    }
-    .act-modal {
-        position: fixed;
-        left: 0;
-        top: 0;
-        width: 100%;
-        height: 100%;
-        z-index: 2001;
-        transition: 200ms;
-        .show {
-            visibility: visible;
-            opacity: 1;
-        }
-        .act-modal-bg {
-            background: rgba(0, 0, 0, 0.5);
-            position: fixed;
-            left: 0;
-            top: 0;
-            width: 100%;
-            height: 100%;
-            z-index: 1;
-        }
-        .act-modal-pic {
-            background: rgba(0, 0, 0, 0.25);
-            position: fixed;
-            left: 0;
-            top: 0;
-            width: 100%;
-            height: 100%;
-            z-index: 1;
-        }
-    }
-    .modal-box {
-        background-size: 100% 100%;
-        background-repeat: no-repeat;
-        height: #{816rpx};
-        width: #{606rpx};
-        text-align: center;
-        font-size: #{40rpx};
-        color: #666666;
-        .modal-close {
-            float: right;
-            margin-top: #{32rpx};
-            margin-right: #{32rpx};
-            .icon-close {
-                background-image: url("../../../static/image/icon/close.png");
-                background-repeat: no-repeat;
-                background-size: 100% auto;
-                height: #{30rpx};
-                width: #{30rpx};
-            }
-        }
-        .modal-text {
-            margin-top: #{448rpx};
-            margin-bottom: #{28rpx};
-        }
-        .bold-num {
-            font-size: #{54rpx};
-            color: #ffc73f;
-            line-height:1em;
-            font-weight: bold;
-        }
-        .bold-money {
-            font-size: #{68rpx};
-            color: #ffc73f;
-            line-height:1em;
-            font-weight: bold;
-        }
-        .btn {
-            margin-top: #{64rpx};
-        }
-    }
-</style>

BIN=BIN
plugins/fxhb/image/best_icon.png


BIN=BIN
plugins/fxhb/image/coupon.png


BIN=BIN
plugins/fxhb/image/cry.png


BIN=BIN
plugins/fxhb/image/love.png


BIN=BIN
plugins/fxhb/image/open_hongbao_btn.png


+ 0 - 39
plugins/fxhb/rule/rule.vue

xqd
@@ -1,39 +0,0 @@
-<template>
-    <app-layout>
-        <view class="rule">
-            <text class="text" space="nbsp" v-text="rules"></text>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appLayout from "../../../components/basic-component/app-layout/app-layout.vue";
-
-    export default {
-        name: "rule",
-        components: {appLayout},
-
-        data() {
-            return {
-                rules: '',
-            }
-        },
-        onLoad: function (options) {
-            if (options.rules) {
-                this.rules = options.rules;
-            }
-        }
-
-    }
-</script>
-
-<style scoped lang="scss">
-    .rule {
-        padding: #{30rpx};
-
-        .text {
-            word-break: break-all;
-            text-align: justify;
-        }
-    }
-</style>

+ 0 - 436
plugins/gift/address/address.vue

xqd
@@ -1,436 +0,0 @@
-<template>
-    <app-layout>
-        <view class="address" v-if="loading">
-
-            <app-submit-address
-                    v-bind:previewData="previewData"
-                    v-bind:theme="theme"
-                    v-bind:address="address"
-                    v-bind:name="name"
-                    v-bind:mobile="mobile"
-                    v-bind:goods_id="goods_id"
-                    v-bind:user_order_id="user_order_id"
-                    v-bind:store_list="store_list"
-                    v-bind:store_index="store_index"
-                    v-on:setMethod="setMethod"
-                    v-bind:send_type="send_type"
-                    v-bind:goods="goods"
-                    v-bind:remark="remark"
-                    v-bind:store="store"
-                    v-bind:mch="mch"
-                    v-bind:dis_send_type="dis_send_type"
-                    v-bind:diyForm="diyForm"
-                    v-on:city="city"
-                    v-on:delivery="delivery"
-                    :template_message_captain="template_message_captain"
-            ></app-submit-address>
-
-            <view class="some-good">
-                <view class="goods dir-left-nowrap" v-for="(item, index) in goods" :key="index">
-                    <image :src="item.cover_pic" class="pic"></image>
-                    <view class="content dir-top-nowrap main-left">
-                        <text class="name t-omit-two">
-                            {{item.name}}
-                        </text>
-                        <text class="attr t-omit">
-                            {{item.attr}}
-                        </text>
-                        <text class="number">×{{item.num}}</text>
-                    </view>
-                </view>
-            </view>
-
-            <view class="freight dir-left-nowrap main-between cross-center" v-if="mch.express_price != 0">
-                <text class="text">运费</text>
-                <text :class="theme+'-color'">¥{{mch.express_price}}</text>
-            </view>
-
-            <view v-if="mch.order_form && mch.order_form.status == '1'">
-                <app-diy-form
-                        v-bind:title="mch.order_form.name"
-                        v-bind:list="mch.order_form.value"
-                        v-bind:sign="mchIndex"
-                        label-position="top"
-                        v-on:input="diyFormInput"
-                        v-bind:show-scroll-btn="mch.order_form.show_scroll"
-                ></app-diy-form>
-            </view>
-            <view class="leave-message" v-else-if="mch.show_remark !== false && mch.has_goods_form !== true">
-                <textarea class="textarea" placeholder-class="place" v-model="remark" placeholder="备注留言"></textarea>
-            </view>
-
-            <template v-if="mch.has_goods_form">
-                <view style="padding: 24rpx; color: #666666">自定义表单</view>
-                <view v-for="(goodsItem, goodsIndex) in mch.goods_list"
-                      :key="goodsIndex"
-                      v-if="goodsItem.form && !goodsItem.form.same_form"
-                      style="margin-bottom: 20rpx">
-                    <view class="goods-list some-good" v-if="mch.diff_goods_form_count !== 1">
-                        <view v-for="(subGoodsItem, subGoodsIndex) in mch.goods_list"
-                              :key="subGoodsIndex"
-                              v-if="subGoodsItem.form && subGoodsItem.form.id == goodsItem.form.id"
-                              class="goods dir-left-nowrap">
-                            <image class="pic"
-                                   :src="subGoodsItem.goods_attr.pic_url ? subGoodsItem.goods_attr.pic_url : subGoodsItem.cover_pic"></image>
-                            <view class="box-grow-1 content">
-                                <view class="goods-name">{{subGoodsItem.name}}</view>
-                                <view class="dir-left-wrap attr-list">
-                                    <view v-for="(attrItem,attrIndex) in subGoodsItem.attr_list"
-                                          :key="attrIndex"
-                                          class="attr-item attr">
-                                        {{attrItem.attr_group_name}}:{{attrItem.attr_name}}
-                                    </view>
-                                </view>
-                                <view class="dir-left-nowrap">
-                                    <view class="box-grow-1 goods-num number">×{{subGoodsItem.num}}</view>
-                                </view>
-                            </view>
-                        </view>
-                    </view>
-                    <app-diy-form
-                            :list="goodsItem.form.value"
-                            @input="handleGoodsFormInput"
-                            @validate="handleGoodsFormValidate"
-                            :sign="`0,${goodsIndex},${goodsItem.form.id}`"></app-diy-form>
-                </view>
-            </template>
-
-            <!-- 空白格 -->
-            <view class="page-width empty">
-                <app-empty-bottom
-                        backgroundColor="#f7f7f7"
-                        v-bind:height="Number(110)"
-                ></app-empty-bottom>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appSubimtAddress from './app-submit-address.vue';
-    import {mapState} from 'vuex';
-    import appEmptyBottom from '../../../components/basic-component/app-empty-bottom/app-empty-bottom.vue';
-    import AppDiyForm from "../../../components/page-component/app-diy-form/app-diy-form";
-
-    export default {
-        name: 'address',
-
-        data() {
-            return {
-                previewData: {
-                    hasCity: false
-                },
-                address_id: '',
-                address: {},
-                goods_id: -1,
-                user_order_id: 0,
-                goods: [],
-                store_list: [],
-                store_index: 0,
-                send_type: [],
-                remark: '',
-                store: {},
-                mch: {},
-                send_data: null,
-                deli: '',
-                loading: false,
-                dis_send_type: '',
-                diyForm: [],
-                template_message_captain: []
-            }
-        },
-
-        onLoad(options) {
-            this.goods_id = options.goods_id;
-            this.user_order_id = options.id;
-            let url = '';
-            if (options.status == 2) {
-                url = this.$api.gift.join_detail
-            } else if (options.status == 1) {
-                url = this.$api.gift.win_detail;
-            }
-            this.$request({
-                url: url,
-                data: {
-                    user_order_id: options.id,
-                }
-            }).then(res => {
-                for (let i in res.data.detail.detail) {
-                    res.data.detail.detail[i].form_data = null;
-                }
-                this.template_message_captain = res.data.template_message_captain;
-                console.log(this.template_message_captain);
-                this.goods = res.data.detail.detail;
-                let data = {
-                    list: [
-                        {
-                            mch_id: 0,
-                            goods_list: [],
-                            use_integral: 0,
-                            user_coupon_id: 0,
-                            distance: 0,
-                            remark: '',
-                            order_form: [],
-                        }
-                    ],
-                    address_id: 0
-                };
-                for (let i = 0; i < this.goods.length; i++) {
-                    let good = {
-                        id: this.goods[i].goods_id,
-                        attr: [],
-                        num: this.goods[i].num,
-                        cat_id: 0,
-                        goods_attr_id: this.goods[i].goods_attr_id,
-                        cart_id: 0,
-                        user_order_id: options.id,
-                    };
-                    let attr = [];
-                    let attr_list = this.goods[i].goods_info;
-                    for (let j = 0; j < attr_list.length; j++) {
-                        attr.push({
-                            attr_id: attr_list[j].attr_id,
-                            attr_group_id: attr_list[j].attr_group_id,
-                        })
-                    }
-                    good.attr = attr;
-                    data.list[0].goods_list.push(good);
-                }
-
-                this.send_data = data;
-                this.$request({
-                    url: this.$api.gift.preview,
-                    method: 'post',
-                    data: {
-                        form_data: JSON.stringify(data)
-                    },
-                }).then(res => {
-                    if (res.code === 0) {
-
-                        this.send_type = res.data.mch_list[0].delivery.send_type_list;
-                        this.dis_send_type = res.data.mch_list[0].delivery.send_type;
-                        this.mch = res.data.mch_list[0];
-                        this.address = res.data.address;
-                        this.loading = true;
-
-                    } else {
-                        uni.showModal({
-                            title: '提示',
-                            content: res.msg,
-                            success: function () {
-                                uni.navigateBack();
-                            }
-                        })
-                    }
-                })
-            });
-        },
-
-        onShow() {
-            if (this.$store.state.gift.address_id && this.send_data) {
-                let data = this.send_data;
-
-                data.list[0].send_type = this.deli;
-                data.address_id = this.$store.state.gift.address_id;
-                this.$request({
-                    url: this.$api.gift.preview,
-                    method: 'post',
-                    data: {
-                        form_data: JSON.stringify(data)
-                    },
-                }).then(res => {
-                    if (res.code === 0) {
-                        this.send_type = res.data.mch_list[0].delivery.send_type_list;
-                        this.mch = res.data.mch_list[0];
-                        this.address = res.data.address;
-                    } else {
-                        uni.showModal({
-                            title: '提示',
-                            content: res.msg,
-                            success: function () {
-                                uni.navigateBack();
-                            }
-                        });
-                    }
-                })
-            }
-            if (this.$store.state.gift.store_id) {
-                for (let i = 0; i < this.store_list.length; i++) {
-                    if (this.store_list[i].id === this.$store.state.gift.store_id) {
-                        this.store = this.store_list[i];
-                    }
-                }
-            }
-        },
-
-        methods: {
-            delivery(data) {
-                this.deli = data;
-            },
-            setMethod() {
-                let _this = this;
-                uni.getLocation({
-                    type: 'wgs84',
-                    success: function (res) {
-                        _this.$request({
-                            url: _this.$api.order.store_list,
-                            data: {
-                                latitude: res.latitude,
-                                longitude: res.longitude,
-                                goods_id: _this.goods_id,
-                            }
-                        }).then(res => {
-                            _this.store_list = res.data.list;
-                            _this.store = res.data.list[0];
-                        })
-                    }
-                });
-            },
-
-            city() {
-                let data = this.send_data;
-                data.list[0].send_type = 'city';
-                if (this.address) {
-                    data.address_id = this.address.id;
-                }
-                this.$request({
-                    url: this.$api.gift.preview,
-                    method: 'post',
-                    data: {
-                        form_data: JSON.stringify(data)
-                    },
-                }).then(res => {
-                    this.send_type = res.data.mch_list[0].delivery.send_type_list;
-                    this.mch = res.data.mch_list[0];
-                    this.address = res.data.address;
-                })
-            },
-
-            diyFormInput(data) {
-                this.diyForm = data;
-            },
-
-            handleGoodsFormInput(data, sign) {
-                const signArr = sign.split(',');
-                const goodsIndex = parseInt(signArr[1]);
-                const result = [];
-                for (let i in data) {
-                    result[i] = {
-                        key: data[i].key,
-                        label: data[i].name,
-                        value: data[i].value,
-                        required: data[i].is_required,
-                    };
-                }
-                this.goods[goodsIndex].form_data = result;
-            },
-            handleGoodsFormValidate(result, sign) {
-                const signArr = sign.split(',');
-                const goodsIndex = parseInt(signArr[1]);
-                this.goods[goodsIndex].goods_form_validate_result = result;
-            },
-        },
-
-        computed: {
-            ...mapState('gift', {
-                theme: state => state.theme,
-            }),
-        },
-
-        components: {
-            'app-submit-address': appSubimtAddress,
-            'app-empty-bottom': appEmptyBottom,
-            'app-diy-form': AppDiyForm,
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-    @import '../css/gift';
-
-    /* 商品页面 */
-    .address {
-        position: absolute;
-        width: 100%;
-        min-height: 100%;
-        background-color: #f7f7f7;
-    }
-
-    .some-good {
-        background: #ffffff;
-        padding: #{28upx 24upx 0 24upx};
-        overflow: hidden;
-
-        .goods {
-            height: #{156upx};
-            margin-bottom: #{28upx};
-
-            .pic {
-                width: #{156upx};
-                height: #{156upx};
-                margin-right: #{24upx};
-            }
-
-            .content {
-                width: #{522upx};
-                height: #{156upx};
-
-                .name {
-                    font-size: #{32upx};
-                    color: #353535;
-                    line-height: #{38upx};
-                }
-
-                .attr {
-                    color: #999999;
-                    font-size: #{24upx};
-                    line-height: 1;
-                    margin-top: #{18upx};
-                }
-
-                .number {
-                    color: #999999;
-                    font-size: #{24upx};
-                    line-height: 1;
-                    margin-top: #{18upx}
-                }
-            }
-        }
-    }
-
-    .leave-message {
-        margin-top: #{24upx};
-        height: #{100upx};
-        line-height: #{100upx};
-        padding: #{18upx 24upx};
-        background-color: #ffffff;
-
-        .textarea {
-            font-size: #{32upx};
-            width: 100%;
-            height: 100%;
-            line-height: #{64upx};
-            padding: 0;
-        }
-
-        .place {
-            line-height: #{64upx};
-        }
-    }
-
-    .freight {
-        width: #{750upx};
-        background-color: #ffffff;
-        padding: #{0 24upx};
-        margin-top: #{20upx};
-        height: #{88upx};
-
-        text {
-            font-size: #{32upx};
-        }
-
-        .text {
-            color: #353535;
-        }
-    }
-</style>

+ 0 - 495
plugins/gift/address/app-submit-address.vue

xqd
@@ -1,495 +0,0 @@
-<template>
-    <view class="app-submit-address">
-
-        <view class="information dir-top-nowrap main-left">
-            <view class="express dir-left-nowrap cross-center" @click="navigateAddress"
-                  v-if="delivery === 'express' || delivery === 'city'">
-                <view class="dir-top-nowrap content" v-if="address">
-                    <view class="top dir-left-nowrap main-between">
-                        <text class="font">收货人:{{address.name}}</text>
-                        <text class="font">{{address.mobile}}</text>
-                    </view>
-                    <view class="bottom font t-omit-two">
-                        收货地址:{{address.province}}{{address.city}}{{address.district}}{{address.detail}}
-                    </view>
-                </view>
-                <view class="content font" v-else>请选择收货地址</view>
-                <view>
-                    <image class="icon-image" src="/static/image/icon/arrow-right.png"></image>
-                </view>
-            </view>
-            <view class="lifting dir-left-nowrap cross-center main-between" v-else>
-                <input type="text" placeholder="姓名" v-model="name">
-                <input type="number" placeholder="电话" v-model="mobile">
-            </view>
-            <image class="line" :src="appImg.common.address_bottom"></image>
-        </view>
-
-        <view class="delivery-method dir-left-nowrap main-between cross-center">
-            <view>配送方式</view>
-            <view class="dir-left-nowrap main-between method">
-                <text v-for="(item, index) in send_type" class="item" @click="setMethod(item.value)" :key="index"
-                      :class="[`${delivery === item.value ? theme + '-background '+'text-color' : 'item-default'}`]">
-                    {{item.name}}
-                </text>
-            </view>
-        </view>
-
-        <view class="store-information dir-top-nowrap" v-if="delivery === 'offline'">
-            <view class="font" v-if="Object.keys(store).length === 0">
-                暂无门店,请选择其他配送方式
-            </view>
-            <view class="font" v-if="store_list.length > 0">门店信息</view>
-            <view class="dir-left-nowrap main-between cross-center" v-if="Object.keys(store).length > 0"
-                  @click="route_go">
-                <view class="content dir-top-nowrap">
-                    <view class="dir-left-nowrap main-between">
-                        <view class="font">{{store.name}}</view>
-                        <view>
-                            <image class="location" src="/static/image/icon/location.png"></image>
-                            <text class="font">距您{{store.distance}}</text>
-                        </view>
-                    </view>
-                    <view class="address">
-                        {{store.address}}
-                    </view>
-                </view>
-                <image class="icon-image" src="/static/image/icon/arrow-right.png"></image>
-            </view>
-        </view>
-
-        <view class="city" v-if="delivery === 'city'">
-            <template v-if="mch.city.error">
-                <view class="dir-left-nowrap cross-center">
-                    <view class="box-grow-1 t-omit error">{{mch.city.error}}</view>
-                    <view class="box-grow-0 btn" @click="jump()">查看配送范围</view>
-                </view>
-            </template>
-            <template v-else>
-                <view class="t-omit">发货地址:{{mch.city.address}}</view>
-                <view class="t-omit" v-if="mch.city.explain">{{mch.city.explain}}</view>
-                <view class="dir-left-nowrap cross-center">
-                    <view class="box-grow-1 t-omit error" style="color: #353535;">该地址在配送范围内</view>
-                    <view class="box-grow-0 btn" @click="jump()">查看配送范围</view>
-                </view>
-            </template>
-        </view>
-
-        <view>
-            <app-iphone-x>
-                <view class="button" slot="empty-area" @click="submit" :class="[`${theme}-background`]">
-                    确认提交
-                </view>
-            </app-iphone-x>
-        </view>
-    </view>
-</template>
-
-<script>
-    import {mapState} from 'vuex';
-    import appIphoneX from '../../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-
-    export default {
-
-        props: [`theme`, `address`, `goods_id`, `user_order_id`, `store_list`, `store_index`, `send_type`, `goods`, `remark`, `mch`, `dis_send_type`, `diyForm`,
-            `store`, `template_message_captain`],
-
-        data() {
-            return {
-                delivery: 'express',
-                name: '',
-                mobile: '',
-                send_text: '',
-                hasCity: false,
-            }
-        },
-
-        methods: {
-            jump() {
-                uni.navigateTo({
-                    url: `/pages/order-submit/map`,
-                });
-            },
-            navigateAddress() {
-                let url = '/pages/order-submit/address-pick';
-                url += '?sign=gift&id=' + this.user_order_id + '&hasCity=' + this.hasCity;
-                uni.navigateTo({
-                    url: url,
-                });
-            },
-
-            setMethod(item) {
-                this.delivery = item;
-                this.send_text = item;
-                this.hasCity = false;
-                this.$emit('delivery', item);
-                if (this.delivery === 'offline') {
-                    this.$emit('setMethod');
-                } else if (this.delivery === 'city') {
-                    this.hasCity = true;
-                    this.$emit('city');
-                }
-            },
-
-            submit() {
-                this.$subscribe(this.template_message_captain).then(() => {
-                    this.submission();
-                }).catch(() => {
-                    this.submission();
-                });
-            },
-
-            submission() {
-                for (let i in this.goods) {
-                    const item = this.goods[i];
-                    if (!item.goods_form_validate_result) continue;
-                    if (item.goods_form_validate_result.hasError) {
-                        uni.showModal({
-                            title: '提示',
-                            content: item.goods_form_validate_result.errors[0].msg,
-                            showCancel: false,
-                        });
-                        return;
-                    }
-                }
-                uni.showLoading({
-                    title: '提交中'
-                });
-                let data = {
-                    list: [
-                        {
-                            mch_id: 0,
-                            goods_list: [],
-                            send_type: this.send_text,
-                            store_id: this.store.id,
-                            use_integral: 0,
-                            user_coupon_id: 0,
-                            remark: this.remark,
-                            order_form: this.diyForm,
-                        }
-                    ],
-                    address_id: this.address.id,
-                    address: {
-                        name: this.name,
-                        mobile: this.mobile,
-                    }
-                };
-                for (let i = 0; i < this.goods.length; i++) {
-                    let good = {
-                        id: this.goods[i].goods_id,
-                        attr: [],
-                        num: this.goods[i].num,
-                        cat_id: 0,
-                        goods_attr_id: this.goods[i].goods_attr_id,
-                        cart_id: 0,
-                        user_order_id: this.user_order_id,
-                        form_data: this.goods[i].form_data,
-                    };
-                    let attr = [];
-                    let attr_list = this.goods[i].goods_info;
-                    for (let j = 0; j < attr_list.length; j++) {
-                        attr.push({
-                            attr_id: attr_list[j].attr_id,
-                            attr_group_id: attr_list[j].attr_group_id,
-                        })
-                    }
-
-                    good.attr = attr;
-                    data.list[0].goods_list.push(good);
-                }
-                this.$request({
-                    url: this.$api.gift.convert,
-                    method: 'post',
-                    data: {
-                        form_data: JSON.stringify(data)
-                    },
-                }).then(res => {
-                    if (res.code === 0) {
-                        this.pay_data(res.data);
-                    } else {
-                        uni.hideLoading();
-                        uni.showModal({
-                            title: '提示',
-                            content: res.msg,
-                        })
-                    }
-                });
-            },
-            route_go() {
-                uni.navigateTo({
-                    url: `/pages/order-submit/store-pick?plugin=gift`
-                })
-            },
-
-            pay_data(data) {
-                this.$request({
-                    url: this.$api.order.pay_data,
-                    method: 'post',
-                    data: {
-                        ...data,
-                    }
-                }).then(res => {
-                    if (res.code === 0) {
-                        if (res.data.hasOwnProperty('id')) {
-                            let id = res.data.id;
-                            if (this.mch.express_price == 0) {
-                                this.$request({
-                                    url: this.$api.payment.get_payments,
-                                    method: 'get',
-                                    data: {
-                                        id: id,
-                                    }
-                                }).then(res => {
-                                    if (res.code === 0) {
-                                        console.log(res.data);
-                                        this.$request({
-                                            url: this.$api.payment.pay_data,
-                                            method: 'get',
-                                            data: {
-                                                id: id,
-                                                pay_type: 'balance',
-                                            }
-                                        }).then(res => {
-                                            if (res.code === 0) {
-                                                this.$request({
-                                                    url: this.$api.payment.pay_buy_balance,
-                                                    data: {
-                                                        id: id,
-                                                    }
-                                                }).then(res => {
-                                                    if (res.code === 0) {
-                                                        uni.hideLoading();
-                                                        uni.redirectTo({
-                                                            url: `/plugins/gift/order/order`,
-                                                        })
-                                                    } else {
-                                                        uni.hideLoading();
-                                                        uni.showModal({
-                                                            title: '提示',
-                                                            content: res.msg,
-                                                        })
-                                                    }
-                                                })
-                                            } else {
-                                                uni.hideLoading();
-                                                uni.showModal({
-                                                    title: '提示',
-                                                    content: res.msg,
-                                                })
-                                            }
-                                        })
-                                    } else {
-                                        uni.hideLoading();
-                                        uni.showModal({
-                                            title: '提示',
-                                            content: res.msg,
-                                        })
-                                    }
-                                })
-                            } else {
-                                this.$payment.pay(id).then(msg => {
-                                    // 支付成功
-                                    uni.hideLoading();
-                                    uni.redirectTo({
-                                        url: `/plugins/gift/order/order`,
-                                    })
-                                }).catch(msg => {
-                                    // 支付失败
-                                    uni.hideLoading();
-                                    uni.redirectTo({
-                                        url: `/plugins/gift/order/order`,
-                                    })
-                                });
-                            }
-                        } else {
-                            setTimeout(() => {
-                                this.pay_data(data);
-                            }, 1000);
-                        }
-                    } else {
-                        uni.hideLoading();
-                        uni.showModal({
-                            title: '提示',
-                            content: res.msg,
-                        })
-                    }
-                })
-            }
-        },
-        computed: {
-            ...mapState({
-                appImg: state => state.mallConfig.__wxapp_img,
-            }),
-        },
-
-        watch: {
-            send_type: {
-                handler(v) {
-                    if (v.length === 0) return;
-                    for (let i = 0; i < v.length; i++) {
-                        if (this.dis_send_type === v[0].value) {
-                            this.delivery = v[0].value;
-                            this.send_text = v[0].value;
-                            if (v[0].value === 'city') {
-                                this.hasCity = true;
-                            }
-                        }
-                    }
-                },
-                immediate: true
-            }
-        },
-
-        components: {
-            'app-iphone-x': appIphoneX,
-        }
-    }
-</script>
-
-
-<style lang="scss" scoped>
-    @import '../css/gift.scss';
-
-    .icon-image {
-        width: #{12upx};
-        height: #{22upx};
-    }
-
-    .information {
-        background-color: #ffffff;
-    }
-
-    .app-submit-address {
-        width: 100%;
-
-        .express {
-            .content {
-                width: #{660upx};
-                margin-right: #{28upx};
-            }
-
-            padding: #{32upx 24upx};
-
-            .top {
-                margin-bottom: #{22upx};
-            }
-
-            .font {
-                font-size: #{32upx};
-                line-height: 1;
-                color: #353535;
-            }
-
-            .bottom {
-                line-height: #{36upx};
-            }
-        }
-
-        .line {
-            width: 100%;
-            height: #{8upx};
-        }
-
-    }
-
-    .delivery-method {
-        font-size: #{32upx};
-        width: 100%;
-        margin-top: #{24upx};
-        background-color: #ffffff;
-        height: #{120upx};
-        padding: #{0 24upx};
-
-        .method {
-            .item {
-                width: #{170upx};
-                height: #{56upx};
-                border-radius: #{30upx};
-                line-height: #{56upx};
-                text-align: center;
-                margin-right: #{10upx};
-            }
-
-            .item-default {
-                background-color: #f7f7f7;
-            }
-        }
-    }
-
-    .button {
-        height: #{100upx};
-        line-height: #{100upx};
-        font-size: #{36upx};
-        color: #ffffff;
-        text-align: center;
-    }
-
-    .lifting {
-        padding: #{0 24upx};
-        width: 100%;
-        height: #{100upx};
-
-        input {
-            width: 50%;
-            color: #353535;
-            font-size: #{32upx};
-        }
-    }
-
-    /*门店信息*/
-    .store-information {
-        width: 100%;
-        padding: #{32upx 24upx 32upx 24upx};
-        background-color: #ffffff;
-        border-top: #{1upx} solid #e2e2e2;
-
-        .content {
-            padding: #{32upx 40upx 32upx 0};
-            width: #{662upx};
-        }
-
-        .font {
-            color: #353535;
-            font-size: #{32upx};
-            line-height: 1;
-        }
-
-        .location {
-            width: #{22upx};
-            height: #{26upx};
-            margin-right: #{8upx};
-        }
-
-        .address {
-            color: #999999;
-            font-size: #{28upx};
-            line-height: 1;
-            margin-top: #{20upx};
-        }
-    }
-
-    .city {
-        padding: #{32rpx 24rpx};
-        font-size: #{28upx};
-        background-color: #ffffff;
-        margin-bottom: #{20rpx};
-
-        .btn {
-            padding: #{10rpx} #{20rpx};
-            border-radius: #{100rpx};
-            border: #{1rpx} solid #cccccc;
-            font-size: $uni-font-size-general-two;
-            color: $uni-general-color-one;
-        }
-
-        .error {
-            color: #ff4544;
-            margin-right: #{24rpx};
-        }
-    }
-
-    .text-color {
-        color: #ffffff;
-    }
-</style>
-

+ 0 - 118
plugins/gift/billing-preview/billing-preview.vue

xqd
@@ -1,118 +0,0 @@
-<template>
-	<app-layout>
-		<view class="billing-preview">
-			<view v-for="(mch, index) in mch_list" :key="index">
-				<view class="shop-name">{{mch.mch.name}}</view>
-				<view class="goods-list">
-					<view class="item dir-left-nowrap" v-for="(good) in mch.goods_list">
-						<image :src="good.goods_attr.pic_url ? good.goods_attr.pic_url : good.goods_attr.cover_pic" class="pic"></image>
-						<view class="content">
-							<view class="name t-omit-two">{{good.name}}</view>
-							<view class="attr dir-left-nowrap">
-								<view v-for="attr in good.attr_list">
-									{{attr.attr_group_name}}:{{attr.attr_name}}
-								</view>
-							</view>
-							<view></view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-	</app-layout>
-</template>
-
-<script>
-	import {mapState} from 'vuex';
-	
-    export default {
-        name: "billing-preview",
-	    
-	    data() {
-            return {
-                mch_list: []
-            }
-	    },
-	    
-	    computed: {
-            ...mapState('gift', {
-                form_data: state => state.form_data
-            })
-	    },
-	    onLoad() {
-            this.request();
-	    },
-	    methods: {
-            async request() {
-                if (this.form_data.type === 'direct_open') {
-                    delete this.form_data.open_num;
-                    delete this.form_data.open_time;
-                } else if (this.method_type === 'time_open') {
-                    delete this.form_data.open_num;
-                } else if (this.method_type === 'num_open') {
-                    delete this.form_data.open_time;
-                }
-                try {
-	                const res = await this.$request({
-		                url: this.$api.gift.order_preview,
-		                method: 'post',
-		                data: {
-		                    ...this.form_data,
-		                }
-	                });
-	                if (res.code === 0) {
-	                    this.mch_list = res.data.mch_list;
-	                }
-                } catch(e) {}
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	 .billing-preview {
-		 width: #{750upx};
-		 background-color: #f7f7f7;
-		 position: absolute;
-		 min-height: 100%;
-	 }
-	.shop-name {
-		height: #{80upx};
-		line-height: #{80upx};
-		padding: #{0 24upx};
-		color: #666666;
-		font-size: #{28upx};
-	}
-	.goods-list {
-		width: #{750upx};
-		background-color: #ffffff;
-		overflow: hidden;
-		.item {
-			padding: #{0 24upx};
-			margin-top: #{28upx};
-		}
-		.pic {
-			width: #{155upx};
-			height: #{156upx};
-		}
-		.name {
-			font-size: #{28upx};
-			color: #353535;
-			line-height: #{32upx};
-			height: #{64upx};
-		}
-		.content {
-			width: #{547upx};
-			padding: #{0 0 0 24upx};
-		}
-		.attr {
-			margin-top: #{24upx};
-			> view {
-				margin-right: #{32upx};
-				font-size: #{24upx};
-				line-height: 1;
-				color: #999999;
-			}
-		}
-	}
-</style>

+ 0 - 109
plugins/gift/components/announcement/gift-navigation.vue

xqd
@@ -1,109 +0,0 @@
-<template>
-	<app-iphone-x>
-		<view slot="empty-area">
-			<view  class="page-width gift-navigation dir-left-nowrap cross-center">
-				<view
-						@click="routeGo(`/plugins/gift/index/index`)"
-						class="nav main-center cross-center"
-				>
-					<view
-							:class="['icon', 'gift-icon','background-image', `${tab_route === `plugins/gift/index/index` ? theme+'-background' : `default-background`}`]"
-					></view>
-					<text
-							:class="[`text`, `${tab_route === `plugins/gift/index/index` ? theme + '-color' : `default-text`}`]"
-					>送礼</text>
-				</view>
-				<view class="line"></view>
-				<view
-						@click="routeGo(`/plugins/gift/order/order`)"
-						class="nav main-center cross-center"
-				>
-					<view
-							:class="['icon', 'my-icon','background-image',`${tab_route === `plugins/gift/order/order`  ? theme+'-background' : `default-background`}`]"
-					></view>
-					<text
-							:class="[`text`, `${tab_route === `plugins/gift/order/order` ? theme + '-color' : `default-text`}`]"
-					>我的</text>
-				</view>
-			</view>
-			<view :style="{width: `100%`, height: `${botHeight}rpx`}" v-if="navBool"></view>
-		</view>
-	</app-iphone-x>
-</template>
-
-<script>
-    import appIphoneX from '../../../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-
-    export default {
-        name: 'gift-navigation',
-	    
-		props: [`theme`, `botHeight`, `navBool`],
-		
-		data() {
-				return {
-					tab_route: '',
-                    load_success: false,
-				}
-		},
-		
-		created() {
-			let page = getCurrentPages();
-			this.tab_route = page[page.length - 1].route;
-		},
-		
-	    methods: {
-            routeGo(data) {
-                uni.redirectTo({
-	                url: data
-                })
-            }
-	    },
-		components: {
-				'app-iphone-x': appIphoneX,
-		},
-    }
-</script>
-
-<style scoped lang="scss">
-	@import "../../css/gift.scss";
-
-	/*导航*/
-	.gift-navigation {
-		height: #{96upx};
-		border-top: #{1upx} solid #e2e2e2;
-		background-color: #ffffff;
-		.nav {
-			width: 49.8%;
-			height: 100%;
-			.icon {
-				width: #{34upx};
-				height: #{34upx};
-				margin-right: #{8upx};
-			}
-			.my-icon {
-				background-image: url("../../image/my.png");
-			}
-			.gift-icon {
-				background-image: url("../../image/gift-giving.png");
-			}
-			.text {
-				font-size: #{32upx};
-				margin-left: #{8upx};
-			}
-
-			.default-text {
-				color: #999999;
-			}
-			.default-background {
-				background-color: #999999;
-			}
-			
-		}
-		.line {
-			width: .4%;
-			height: #{48upx};
-			background-color: #e2e2e2;
-		}
-	}
-
-</style>

+ 0 - 37
plugins/gift/components/announcement/share-gift-text.vue

xqd
@@ -1,37 +0,0 @@
-<template>
-	<view class="page-width ready-send">
-        <view class="big">
-            {{big}}
-        </view>
-        <view class="small" v-if="small">
-            {{small}}
-        </view>
-    </view>
-</template>
-
-<script>
-    export default {
-        name: 'ready-send',
-
-        props: [`big`, `small`]
-    }
-</script>
-
-<style scoped lang="scss">
-    @import "../../css/gift.scss";
-
-    .ready-send {
-        color: #ffffff;
-        text-align: center;
-        .big {
-            line-height: 1;
-            font-size: #{40upx};
-            margin-top: #{64upx};
-        }
-        .small {
-            line-height: 1.1;
-            font-size: #{26upx};
-	        margin-top: #{26upx};
-        }
-    }
-</style>

+ 0 - 73
plugins/gift/components/detail/logistics.vue

xqd
@@ -1,73 +0,0 @@
-<template>
-	<view class="logistics dir-left-nowrap main-between cross-center" @click="routeGo()">
-		<view class="font" v-if="send_type != 1 && is_send == 1 && express_no" >
-			<view class="item margin">
-				<text class="gray">快递公司:</text>
-				<text class="black">{{express}}</text>
-			</view>
-			<view class="item">
-				<text class="gray">物流单号:</text>
-				<text class="black">{{express_no}}</text>
-			</view>
-		</view>
-		<view class="font" v-else-if="send_type == 1">
-			<view class="item margin">
-				<text class="gray">门店名称:</text>
-				<text class="black">{{store.name}}</text>
-			</view>
-			<view class="item margin">
-				<text class="gray">联系电话:</text>
-				<text class="black">{{store.mobile}}</text>
-			</view>
-			<view class="item">
-				<text class="gray">门店地址:</text>
-				<text class="black">{{store.address}}</text>
-			</view>
-		</view>
-		<image class="icon" src="/static/image/icon/arrow-right.png"></image>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'logistics',
-	    
-	    props: [`send_type`, `store`, `is_send`, `express`, `express_no`, `customer_name`, `cover_pic`],
-
-        methods: {
-            routeGo() {
-                if (this.send_type != 1 && this.is_send == 1 && this.express_no) {
-                    uni.navigateTo({
-                        url: `/pages/order/express-detail/express-detail?express=${this.express}&express_no=${this.express_no}&customer_name=${this.customer_name}&cover_pic=${this.cover_pic}`
-                    })
-                } else {
-                    uni.openLocation({
-                        latitude: parseFloat(this.store.latitude),
-	                    longitude: parseFloat(this.store.longitude),
-                        address: this.store.address,
-                        name: this.store.name,
-                    })
-                }
-            },
-	        
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	.logistics {
-		width: 100%;
-		background-color: #ffffff;
-		padding: #{28upx 24upx};
-		.icon {
-			width: #{12upx};
-			height: #{20upx};
-		}
-		.font {
-			font-size: #{24upx};
-		}
-		.margin {
-			margin-bottom: #{15upx};
-		}
-	}
-</style>

+ 0 - 71
plugins/gift/components/detail/order-information.vue

xqd
@@ -1,71 +0,0 @@
-<template>
-	<view class="order-information page-width">
-		<view class="page-width information">
-			<view class="top">
-				<view class="item">
-					<text class="gray">订单号:</text>
-					<text class="black">{{order_no}}</text>
-				</view>
-				<view class="item">
-					<text class="gray">付款时间:</text>
-					<text class="black">{{pay_time}}</text>
-				</view>
-			</view>
-			<view class="bottom">
-				<view class="item">
-					<text class="gray">礼物玩法:</text>
-					<text class="black">{{type === 'direct_open'? '直接领取' : type === 'time_open' ? '定时开奖' : '满人开奖'}}</text>
-				</view>
-				<view class="item" v-if="type === 'time_open'">
-					<text class="gray">开奖时间:</text>
-					<text class="black">{{open_time}}</text>
-				</view>
-				<view class="item" v-else-if="type === 'num_open'">
-					<text class="gray">开奖人数:</text>
-					<text class="black">满{{open_num}}人</text>
-				</view>
-				<view class="item">
-					<text class="gray">礼物状态:</text>
-					<text class="black">{{status}}</text>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'order-information',
-
-        props: [`status`, `order_no`, `type`, `pay_time`, `open_time`, `open_num`],
-    }
-</script>
-
-<style scoped lang="scss">
-	@import '../../css/gift.scss';
-	
-	/*订单信息*/
-	.order-information {
-		margin-top: #{24upx};
-		padding: #{0 24upx};
-		/*信息*/
-		.information {
-			background-color: #ffffff;
-			border-radius: #{16upx};
-			padding: #{28upx 24upx 12upx 24upx};
-			/*订单号 下单时间*/
-			.top {
-				border-bottom: #{1upx} solid #e2e2e2;
-			}
-			/*订单状态*/
-			.bottom {
-				margin-top: #{16upx};
-			}
-			.item {
-				font-size: #{24upx};
-				line-height: 1;
-				margin-bottom: #{16upx};
-			}
-		}
-	}
-</style>

+ 0 - 154
plugins/gift/components/detail/order.vue

xqd
@@ -1,154 +0,0 @@
-<template>
-	<view class="page-width order">
-		<view class="page-width order-content">
-			<view class="item dir-left-nowrap" v-for="(item, index) in order_list" :key="index">
-				<view class="image">
-					<image class="pic" :src="item.goods_info | getPicUrl"></image>
-					<text v-if="sign" :class="[`${theme}-background`, `sign`]">{{sign}}</text>
-				</view>
-				<view class="name-attr-price dir-top-nowrap main-left">
-					<view class="name">{{item.name}}</view>
-					<view class="attr">
-						<block
-							v-for="(name, key) in JSON.parse(item.goods_info).attr_list"
-							:key="key"
-						>
-							{{name.attr_group_name}}:{{name.attr_name}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-						</block>
-					</view>
-					<view class="number-price dir-left-nowrap main-between">
-						<text class="number gray">{{item.num}}</text>
-						<text class="price black">{{item.total_price}}</text>
-					</view>
-				</view>
-			</view>
-			<view class="total dir-left-nowrap main-right cross-center">
-				<text class="gray-word gray">合计</text>
-				<text class="black-word black">{{total_price}}</text>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "order",
-	    
-	    props: {
-            order_list: Array,
-            sign: String,
-		    theme: String,
-            total_price: Number,
-	    },
-	    
-        filters: {
-            getPicUrl(data) {
-                let goods_attr = JSON.parse(data).goods_attr;
-                return goods_attr.pic_url ? goods_attr.pic_url : goods_attr.cover_pic;
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	@import "../../css/gift.scss";
-	
-	.order {
-		padding: #{0 24upx};
-		margin-top: #{24upx};
-		.order-content {
-			background-color: #ffffff;
-			padding: #{24upx 24upx 0 24upx};
-			overflow: hidden;
-		}
-	}
-	
-	/*订单*/
-	.item {
-		margin-bottom: #{24upx};
-		.image {
-			width: #{160upx};
-			height: #{160upx};
-			position: relative;
-			.pic {
-				border-radius: #{8upx};
-				width: #{160upx};
-				height: #{160upx};
-			}
-		}
-		.sign {
-			position: absolute;
-			top: 0;
-			left: 0;
-			border-top-left-radius: #{8upx};
-			font-size: #{24upx};
-			color: #ffffff;
-			padding: #{10upx};
-		}
-	}
-	
-	/*名字价格规格*/
-	.name-attr-price {
-		width: calc(100% - #{160upx});
-		padding-left: #{20upx};
-		.name {
-			font-size: #{24upx};
-			line-height: #{30upx};
-			height: #{60upx};
-			margin-top: #{5upx};
-			word-break: break-all;
-			text-overflow: ellipsis;
-			display: -webkit-box;
-			-webkit-box-orient: vertical;
-			-webkit-line-clamp: 2;
-			overflow: hidden;
-			white-space: normal !important;
-		}
-		.attr {
-			font-size: #{24upx};
-			color: #999999;
-			margin-top: #{17upx};
-			word-break: break-all;
-			text-overflow: ellipsis;
-			display: -webkit-box;
-			-webkit-box-orient: vertical;
-			-webkit-line-clamp: 1;
-			overflow: hidden;
-			white-space: normal !important;
-		}
-		.number-price {
-			font-size: #{24upx};
-			line-height: 1;
-			margin-top: #{20upx};
-		
-			.number:before {
-				content: "×";
-				font-size: 80%;
-			}
-		
-			.price:before {
-				content: "¥";
-			}
-		}
-	}
-	
-	/*合计*/
-	.total {
-		padding: #{24upx 0};
-		/*灰字*/
-		.gray-word {
-			font-size: #{24upx};
-			line-height: 1;
-		}
-		/*黑字*/
-		.black-word {
-			font-size: #{28upx};
-			line-height: 1;
-		}
-		.black-word:before {
-			content: '¥';
-			font-size: 100%;
-		}
-	}
-	
-</style>

+ 0 - 82
plugins/gift/components/detail/receiving-status.vue

xqd
@@ -1,82 +0,0 @@
-<template>
-	<app-iphone-x> 
-		<view slot="empty-area" class="page-width receiving-status dir-left-nowrap cross-center main-right">
-			<view class="item" @click="route_go(`/plugins/gift/receive/receive?gift_id=${gift_id}&status=${status}`)">
-				查看领取详情
-			</view>
-			<view class="item" v-if="status != 0 && status_num == 1 && !notPayOrder && getConvert(detail)" @click="setShare">
-				转赠礼物
-			</view>
-			<view class="item" v-if="status != 0 && status_num == 1 && !notPayOrder  && getConvert(detail)" @click="route_go(`/plugins/gift/address/address?id=${user_id}&status=${status}`)">
-				填写地址
-			</view>
-			<view class="item" v-if="status != 0 && status_num == 2  && getConvert(detail)" @click="receipt">
-				确认收货
-			</view>
-			<view class="item" v-if="notPayOrder && getConvert(detail)" @click="route_go(`/pages/order/index/index?status=1`)">
-				去支付
-			</view>
-		</view>
-	</app-iphone-x>
-</template>
-
-<script>
-    import appIphoneX from '../../../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-
-    export default {
-        
-        name: "receiving-status",
-	    
-	    props: [`theme`, `type`, `gift_id`, `status`, `status_num`, `user_id`, `order_id`, `notPayOrder`, `detail`],
-
-        components: {
-            'app-iphone-x': appIphoneX,
-        },
-	    
-	    methods: {
-            route_go(data) {
-                uni.navigateTo({
-	                url: data,
-                })
-            },
-
-		    // 转赠礼物
-            setShare() {
-                this.$emit('setShare');
-            },
-
-            receipt() {
-                this.$emit('receipt', this.order_id);
-            },
-            getConvert(order_list){
-                let  is_convert = true;
-                for (let i = 0; i < order_list.length;i++) {
-                    if (order_list[i].is_convert == -1) {
-                        is_convert = false;
-                    }
-                }
-                return is_convert;
-            }
-	    },
-	   
-    }
-</script>
-
-<style scoped lang="scss">
-	.receiving-status {
-		background-color: #ffffff;
-		height: #{110upx};
-		padding: #{0 8upx};
-		
-		.item {
-			padding: #{0 28upx};
-			margin-right: #{16upx};
-			height: #{62upx};
-			line-height: #{62upx};
-			font-size: #{24upx};
-			color: #353535;
-			border-radius: #{38upx};
-			border: #{1upx} solid #bbbbbb;
-		}
-	}
-</style>

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio