Browse Source

提交信息

lizuxiao 2 năm trước cách đây
mục cha
commit
efdf4144c5
100 tập tin đã thay đổi với 12802 bổ sung0 xóa
  1. 1 0
      app.js
  2. 84 0
      app.json
  3. 779 0
      app.wxss
  4. 139 0
      common/main.js
  5. 192 0
      common/runtime.js
  6. 4299 0
      common/vendor.js
  7. 65 0
      components/empty.js
  8. 4 0
      components/empty.json
  9. 3 0
      components/empty.wxml
  10. 22 0
      components/empty.wxss
  11. 236 0
      components/tki-qrcode/tki-qrcode.js
  12. 4 0
      components/tki-qrcode/tki-qrcode.json
  13. 4 0
      components/tki-qrcode/tki-qrcode.wxml
  14. 14 0
      components/tki-qrcode/tki-qrcode.wxss
  15. 104 0
      components/uni-badge/uni-badge.js
  16. 4 0
      components/uni-badge/uni-badge.json
  17. 1 0
      components/uni-badge/uni-badge.wxml
  18. 76 0
      components/uni-badge/uni-badge.wxss
  19. 104 0
      components/uni-icons/uni-icons.js
  20. 4 0
      components/uni-icons/uni-icons.json
  21. 1 0
      components/uni-icons/uni-icons.wxml
  22. 2 0
      components/uni-icons/uni-icons.wxss
  23. 182 0
      components/uni-list-item/uni-list-item.js
  24. 7 0
      components/uni-list-item/uni-list-item.json
  25. 25 0
      components/uni-list-item/uni-list-item.wxml
  26. 96 0
      components/uni-list-item/uni-list-item.wxss
  27. 104 0
      components/uni-list/uni-list.js
  28. 4 0
      components/uni-list/uni-list.json
  29. 3 0
      components/uni-list/uni-list.wxml
  30. 12 0
      components/uni-list/uni-list.wxss
  31. 103 0
      components/uni-load-more/uni-load-more.js
  32. 4 0
      components/uni-load-more/uni-load-more.json
  33. 23 0
      components/uni-load-more/uni-load-more.wxml
  34. 132 0
      components/uni-load-more/uni-load-more.wxss
  35. 197 0
      components/uni-notice-bar/uni-notice-bar.js
  36. 6 0
      components/uni-notice-bar/uni-notice-bar.json
  37. 13 0
      components/uni-notice-bar/uni-notice-bar.wxml
  38. 102 0
      components/uni-notice-bar/uni-notice-bar.wxss
  39. 148 0
      components/uni-number-box.js
  40. 4 0
      components/uni-number-box.json
  41. 9 0
      components/uni-number-box.wxml
  42. 51 0
      components/uni-number-box.wxss
  43. 225 0
      components/uni-popup/uni-popup.js
  44. 6 0
      components/uni-popup/uni-popup.json
  45. 8 0
      components/uni-popup/uni-popup.wxml
  46. 58 0
      components/uni-popup/uni-popup.wxss
  47. 158 0
      components/uni-rate/uni-rate.js
  48. 6 0
      components/uni-rate/uni-rate.json
  49. 8 0
      components/uni-rate/uni-rate.wxml
  50. 23 0
      components/uni-rate/uni-rate.wxss
  51. 232 0
      components/uni-transition/uni-transition.js
  52. 4 0
      components/uni-transition/uni-transition.json
  53. 3 0
      components/uni-transition/uni-transition.wxml
  54. 60 0
      components/uni-transition/uni-transition.wxss
  55. 116 0
      components/wangding-pickerAddress/wangding-pickerAddress.js
  56. 4 0
      components/wangding-pickerAddress/wangding-pickerAddress.json
  57. 3 0
      components/wangding-pickerAddress/wangding-pickerAddress.wxml
  58. 0 0
      components/wangding-pickerAddress/wangding-pickerAddress.wxss
  59. 148 0
      pages/address/address.js
  60. 4 0
      pages/address/address.json
  61. 33 0
      pages/address/address.wxml
  62. 132 0
      pages/address/address.wxss
  63. 208 0
      pages/address/addressManage.js
  64. 9 0
      pages/address/addressManage.json
  65. 23 0
      pages/address/addressManage.wxml
  66. 66 0
      pages/address/addressManage.wxss
  67. 121 0
      pages/address/shopList.js
  68. 4 0
      pages/address/shopList.json
  69. 14 0
      pages/address/shopList.wxml
  70. 122 0
      pages/address/shopList.wxss
  71. 226 0
      pages/app/gsfh.js
  72. 7 0
      pages/app/gsfh.json
  73. 31 0
      pages/app/gsfh.wxml
  74. 150 0
      pages/app/gsfh.wxss
  75. 236 0
      pages/app/orderManage.js
  76. 7 0
      pages/app/orderManage.json
  77. 35 0
      pages/app/orderManage.wxml
  78. 376 0
      pages/app/orderManage.wxss
  79. 252 0
      pages/app/productAll.js
  80. 7 0
      pages/app/productAll.json
  81. 61 0
      pages/app/productAll.wxml
  82. 226 0
      pages/app/productAll.wxss
  83. 226 0
      pages/app/qmfh.js
  84. 7 0
      pages/app/qmfh.json
  85. 31 0
      pages/app/qmfh.wxml
  86. 150 0
      pages/app/qmfh.wxss
  87. 125 0
      pages/app/retailRank.js
  88. 4 0
      pages/app/retailRank.json
  89. 51 0
      pages/app/retailRank.wxml
  90. 301 0
      pages/app/retailRank.wxss
  91. 125 0
      pages/app/spreadRank.js
  92. 4 0
      pages/app/spreadRank.json
  93. 51 0
      pages/app/spreadRank.wxml
  94. 301 0
      pages/app/spreadRank.wxss
  95. 226 0
      pages/app/tjfh.js
  96. 7 0
      pages/app/tjfh.json
  97. 31 0
      pages/app/tjfh.wxml
  98. 150 0
      pages/app/tjfh.wxss
  99. 226 0
      pages/app/zsfh.js
  100. 7 0
      pages/app/zsfh.json

+ 1 - 0
app.js

@@ -0,0 +1 @@
+require("./common/runtime.js"), require("./common/vendor.js"), require("./common/main.js");

+ 84 - 0
app.json

@@ -0,0 +1,84 @@
+{
+    "pages": [
+        "pages/index/index",
+        "pages/public/register",
+        "pages/public/login",
+        "pages/public/wxLogin",
+        "pages/public/forget",
+        "pages/product/classify",
+        "pages/user/myteam",
+        "pages/product/product",
+        "pages/product/search",
+        "pages/set/set",
+        "pages/set/userinfo",
+        "pages/set/about",
+        "pages/set/password",
+        "pages/set/phone",
+        "pages/product/reply",
+        "pages/order/evaluate",
+        "pages/cart/cart",
+        "pages/user/user",
+        "pages/order/order",
+        "pages/order/orderDetail",
+        "pages/order/createOrder",
+        "pages/address/address",
+        "pages/address/shopList",
+        "pages/address/addressManage",
+        "pages/money/pay",
+        "pages/money/paySuccess",
+        "pages/award/award",
+        "pages/award/withdrawal",
+        "pages/product/list",
+        "pages/product/listSearch",
+        "pages/wallet/wallet",
+        "pages/wallet/freezeList",
+        "pages/wallet/account",
+        "pages/wallet/withdrawal",
+        "pages/wallet/recharge",
+        "pages/favorites/favorites",
+        "pages/redirect/redirect",
+        "pages/user/share",
+        "pages/award/withdmoenys",
+        "pages/app/productAll",
+        "pages/app/orderManage",
+        "pages/app/spreadRank",
+        "pages/app/retailRank",
+        "pages/app/gsfh",
+        "pages/app/zsfh",
+        "pages/app/qmfh",
+        "pages/app/tjfh"
+    ],
+    "window": {
+        "navigationBarTextStyle": "black",
+        "navigationBarTitleText": "uni-app",
+        "navigationBarBackgroundColor": "#FFFFFF",
+        "backgroundColor": "#f8f8f8"
+    },
+    "tabBar": {
+        "color": "#C0C4CC",
+        "selectedColor": "#5DBC7C",
+        "borderStyle": "black",
+        "backgroundColor": "#ffffff",
+        "list": [
+            {
+                "pagePath": "pages/index/index",
+                "text": "首页",
+                "iconPath": "static/tabBar/tab-home.png",
+                "selectedIconPath": "static/tabBar/tab-home-current.png"
+            },
+            {
+                "pagePath": "pages/cart/cart",
+                "text": "购物车",
+                "iconPath": "static/tabBar/tab-cart.png",
+                "selectedIconPath": "static/tabBar/tab-cart-current.png"
+            },
+            {
+                "pagePath": "pages/user/user",
+                "text": "我的",
+                "iconPath": "static/tabBar/tab-my.png",
+                "selectedIconPath": "static/tabBar/tab-my-current.png"
+            }
+        ]
+    },
+    "sitemapLocation": "sitemap.json"
+}

+ 779 - 0
app.wxss

@@ -0,0 +1,779 @@
+@font-face {
+    font-family: iconfont;
+    src: url("https://at.alicdn.com/t/font_1482221_x9emymthrxs.eot");
+    src: url("https://at.alicdn.com/t/font_1482221_x9emymthrxs.eot?#iefix") format("embedded-opentype"),url("https://at.alicdn.com/t/font_1482221_x9emymthrxs.woff2") format("woff2"),url("https://at.alicdn.com/t/font_1482221_x9emymthrxs.woff") format("woff"),url("https://at.alicdn.com/t/font_1482221_x9emymthrxs.ttf") format("truetype"),url("https://at.alicdn.com/t/font_1482221_x9emymthrxs.svg#iconfont") format("svg");
+}
+
+.iconfont {
+    font-family: iconfont!important;
+    font-size: 34rpx;
+    font-style: normal;
+    -webkit-font-smoothing: antialiased;
+    -webkit-text-stroke-width: 0rpx;
+    -moz-osx-font-smoothing: grayscale;
+}
+
+.iconedit:before {
+    content: "\e649";
+}
+
+.iconfavorfill:before {
+    content: "\e64b";
+}
+
+.iconfavor:before {
+    content: "\e64c";
+}
+
+.iconlocation:before {
+    content: "\e651";
+}
+
+.iconroundcheckfill:before {
+    content: "\e656";
+}
+
+.iconroundcheck:before {
+    content: "\e657";
+}
+
+.iconunfold:before {
+    content: "\e661";
+}
+
+.iconlikefill:before {
+    content: "\e668";
+}
+
+.iconlike:before {
+    content: "\e669";
+}
+
+.iconshop:before {
+    content: "\e676";
+}
+
+.iconcart:before {
+    content: "\e6af";
+}
+
+.icondelete:before {
+    content: "\e6b4";
+}
+
+.iconhome:before {
+    content: "\e6b8";
+}
+
+.iconcartfill:before {
+    content: "\e6b9";
+}
+
+.iconhomefill:before {
+    content: "\e6bb";
+}
+
+.iconlock:before {
+    content: "\e6c0";
+}
+
+.iconfriendadd:before {
+    content: "\e6ca";
+}
+
+.iconfold:before {
+    content: "\e6de";
+}
+
+.iconapps:before {
+    content: "\e729";
+}
+
+.iconadd:before {
+    content: "\e767";
+}
+
+.iconmove:before {
+    content: "\e768";
+}
+
+.icontriangledownfill:before {
+    content: "\e79b";
+}
+
+.icontriangleupfill:before {
+    content: "\e79c";
+}
+
+.iconshaixuan:before {
+    content: "\e74a";
+}
+
+.iconyanzhengma:before {
+    content: "\e684";
+}
+
+.iconjifen:before {
+    content: "\e60f";
+}
+
+.iconwuliuxinxi:before {
+    content: "\e62b";
+}
+
+.iconmessage:before {
+    content: "\e78a";
+}
+
+.iconsetting:before {
+    content: "\e78e";
+}
+
+.iconaddition:before {
+    content: "\e6e0";
+}
+
+.iconclose:before {
+    content: "\e6e9";
+}
+
+.iconenter:after {
+    content: "\e6f8";
+}
+
+.iconprompt:before {
+    content: "\e71b";
+}
+
+.iconreturn:before {
+    content: "\e720";
+}
+
+.iconsearch:before {
+    content: "\e741";
+}
+
+.iconpengyouquan:before {
+    content: "\e62c";
+}
+
+.iconweixin:before {
+    content: "\e60e";
+}
+
+.iconzhifubao:before {
+    content: "\e673";
+}
+
+.iconyue:before {
+    content: "\e618";
+}
+
+.iconweixin1:before {
+    content: "\e622";
+}
+
+.iconlock1:before {
+    content: "\e64d";
+}
+
+.iconuser:before {
+    content: "\e64e";
+}
+
+.iconchenggongtixianshouyi:before {
+    content: "\e64f";
+}
+
+.iconviptuiguangdingdan:before {
+    content: "\e650";
+}
+
+.icondaifukuan:before {
+    content: "\e652";
+}
+
+.icondaijiesuanshouyi:before {
+    content: "\e653";
+}
+
+.icondaidakuanshouyi:before {
+    content: "\e654";
+}
+
+.icondaifahuo:before {
+    content: "\e655";
+}
+
+.icondaishouhuoshouyi:before {
+    content: "\e658";
+}
+
+.icondaishouhuo:before {
+    content: "\e659";
+}
+
+.iconwuxiaoshouyi:before {
+    content: "\e65a";
+}
+
+.icontixianmingxi:before {
+    content: "\e65b";
+}
+
+.iconshouyi:before {
+    content: "\e65c";
+}
+
+.iconkouchutixianshouxufei:before {
+    content: "\e65d";
+}
+
+.iconyishenqingshouyi:before {
+    content: "\e65e";
+}
+
+.icontuihuanhuo:before {
+    content: "\e65f";
+}
+
+.hr {
+    width: 100%;
+    position: relative;
+    border-bottom: 1px solid #ddd;
+}
+
+.clamp {
+    white-space: nowrap;
+    display: block;
+}
+
+.clamp,.clamp2 {
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.clamp2 {
+    display: -webkit-box;
+    -webkit-line-clamp: 2;
+    -webkit-box-orient: vertical;
+}
+
+.common-hover {
+    background: #f5f5f5;
+}
+
+.corner {
+    background-color: #e51c23;
+    position: absolute;
+    right: -18rpx;
+    top: -18rpx;
+    color: #fff;
+    text-align: center;
+    border-radius: 999px;
+    font-size: 24rpx!important;
+    min-width: 35rpx;
+    min-height: 35rpx;
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: center;
+    justify-content: center;
+    line-height: 1;
+}
+
+.text-left {
+    text-align: left!important;
+}
+
+.text-center {
+    text-align: center!important;
+}
+
+.text-justify {
+    text-align: justify!important;
+}
+
+.text-right {
+    text-align: right!important;
+}
+
+.text-default {
+    color: #212121!important;
+}
+
+.text-white {
+    color: #fff!important;
+}
+
+.text-primary {
+    color: #00bcd4!important;
+}
+
+.text-success {
+    color: #009688!important;
+}
+
+.text-info {
+    color: #03a9f4!important;
+}
+
+.text-warning {
+    color: #ffc107!important;
+}
+
+.text-danger {
+    color: #e51c23!important;
+}
+
+.text-pink {
+    color: #e91e63!important;
+}
+
+.text-purple {
+    color: #673ab7!important;
+}
+
+.text-indigo {
+    color: #3f51b5!important;
+}
+
+.text-gray {
+    color: #999!important;
+}
+
+.bg-default {
+    background-color: #f5f5f5!important;
+}
+
+.bg-primary {
+    background-color: #00bcd4!important;
+}
+
+.bg-success {
+    background-color: #009688!important;
+}
+
+.bg-info {
+    background-color: #03a9f4!important;
+}
+
+.bg-warning {
+    background-color: #f1c40f!important;
+}
+
+.bg-danger {
+    background-color: #e51c23!important;
+}
+
+.bg-pink {
+    background-color: #e91e63!important;
+}
+
+.bg-purple {
+    background-color: #673ab7!important;
+}
+
+.bg-indigo {
+    background-color: #3f51b5!important;
+}
+
+.bg-white {
+    background-color: #fff!important;
+}
+
+.bg-gray {
+    background-color: #e3e3e3!important;
+}
+
+.border-radius-15 {
+    border-radius: 15rpx;
+}
+
+.border-radius-10 {
+    border-radius: 10rpx;
+}
+
+.border-radius-all {
+    border-radius: 1000rpx;
+}
+
+.borde-b {
+    border-bottom: 1px solid #ddd;
+}
+
+.flex {
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: justify;
+    justify-content: space-between;
+}
+
+.items-left {
+    -webkit-box-pack: start;
+    justify-content: flex-start;
+}
+
+.items-right {
+    -webkit-box-pack: end;
+    justify-content: flex-end;
+}
+
+.flex-shrink-false {
+    flex-shrink: 0;
+}
+
+.flex-grow-true {
+    -webkit-box-flex: 1;
+    flex-grow: 1;
+}
+
+.position-relative {
+    position: relative;
+}
+
+audio,button,camera,checkbox,cover-image,cover-view,form,icon,image,input,label,navigator,progress,radio,rich-text,scroll-view,slider,swiper,swiper-item,switch,text,textarea,video,view {
+    box-sizing: border-box;
+}
+
+.Skeleton {
+    background: #f3f3f3;
+    padding: 20rpx 0;
+    border-radius: 8rpx;
+}
+
+.image-wrapper {
+    font-size: 0;
+    background: #f3f3f3;
+    border-radius: 4px;
+}
+
+.image-wrapper image {
+    width: 100%;
+    height: 100%;
+    transition: .6s;
+    opacity: 0;
+}
+
+.image-wrapper image.loaded {
+    opacity: 1;
+}
+
+uni-rich-text ._img {
+    max-width: 100%!important;
+}
+
+.b-b:after,.b-t:after {
+    position: absolute;
+    z-index: 3;
+    left: 0;
+    right: 0;
+    height: 0;
+    content: "";
+    transform: scaleY(.5);
+    border-bottom: 1px solid #e4e7ed;
+}
+
+.b-b:after {
+    bottom: 0;
+}
+
+.b-t:after {
+    top: 0;
+}
+
+button,uni-button {
+    height: 80rpx;
+    line-height: 80rpx;
+    font-size: 34rpx;
+    font-weight: 400;
+}
+
+button.no-border:after,button.no-border:before,uni-button.no-border:after,uni-button.no-border:before {
+    border: 0;
+}
+
+button[type="default"],uni-button[type="default"] {
+    color: #303133;
+}
+
+.input-placeholder,.placeholder {
+    color: #999;
+}
+
+.margin-l-0 {
+    margin-left: 0rpx!important;
+}
+
+.margin-r-0 {
+    margin-right: 0rpx!important;
+}
+
+.margin-t-0 {
+    margin-top: 0rpx!important;
+}
+
+.margin-b-0 {
+    margin-bottom: 0rpx!important;
+}
+
+.margin-0 {
+    margin: 0rpx!important;
+}
+
+.margin-v-0 {
+    margin-top: 0rpx!important;
+    margin-bottom: 0rpx!important;
+}
+
+.margin-c-0 {
+    margin-left: 0rpx!important;
+    margin-right: 0rpx!important;
+}
+
+.padding-l-0 {
+    padding-left: 0rpx!important;
+}
+
+.padding-r-0 {
+    padding-right: 0rpx!important;
+}
+
+.padding-t-0 {
+    padding-top: 0rpx!important;
+}
+
+.padding-b-0 {
+    padding-bottom: 0rpx!important;
+}
+
+.padding-0 {
+    padding: 0rpx!important;
+}
+
+.padding-v-0 {
+    padding-top: 0rpx!important;
+    padding-bottom: 0rpx!important;
+}
+
+.padding-c-0 {
+    padding-left: 0rpx!important;
+    padding-right: 0rpx!important;
+}
+
+.margin-l-10 {
+    margin-left: 10rpx!important;
+}
+
+.margin-r-10 {
+    margin-right: 10rpx!important;
+}
+
+.margin-t-10 {
+    margin-top: 10rpx!important;
+}
+
+.margin-b-10 {
+    margin-bottom: 10rpx!important;
+}
+
+.margin-10 {
+    margin: 10rpx!important;
+}
+
+.margin-v-10 {
+    margin-top: 10rpx!important;
+    margin-bottom: 10rpx!important;
+}
+
+.margin-c-10 {
+    margin-left: 10rpx!important;
+    margin-right: 10rpx!important;
+}
+
+.padding-l-10 {
+    padding-left: 10rpx!important;
+}
+
+.padding-r-10 {
+    padding-right: 10rpx!important;
+}
+
+.padding-t-10 {
+    padding-top: 10rpx!important;
+}
+
+.padding-b-10 {
+    padding-bottom: 10rpx!important;
+}
+
+.padding-10 {
+    padding: 10rpx!important;
+}
+
+.padding-v-10 {
+    padding-top: 10rpx!important;
+    padding-bottom: 10rpx!important;
+}
+
+.padding-c-10 {
+    padding-left: 10rpx!important;
+    padding-right: 10rpx!important;
+}
+
+.margin-l-20 {
+    margin-left: 20rpx!important;
+}
+
+.margin-r-20 {
+    margin-right: 20rpx!important;
+}
+
+.margin-t-20 {
+    margin-top: 20rpx!important;
+}
+
+.margin-b-20 {
+    margin-bottom: 20rpx!important;
+}
+
+.margin-20 {
+    margin: 20rpx!important;
+}
+
+.margin-v-20 {
+    margin-top: 20rpx!important;
+    margin-bottom: 20rpx!important;
+}
+
+.margin-c-20 {
+    margin-left: 20rpx!important;
+    margin-right: 20rpx!important;
+}
+
+.padding-l-20 {
+    padding-left: 20rpx!important;
+}
+
+.padding-r-20 {
+    padding-right: 20rpx!important;
+}
+
+.padding-t-20 {
+    padding-top: 20rpx!important;
+}
+
+.padding-b-20 {
+    padding-bottom: 20rpx!important;
+}
+
+.padding-20 {
+    padding: 20rpx!important;
+}
+
+.padding-v-20 {
+    padding-top: 20rpx!important;
+    padding-bottom: 20rpx!important;
+}
+
+.padding-c-20 {
+    padding-left: 20rpx!important;
+    padding-right: 20rpx!important;
+}
+
+.margin-l-30 {
+    margin-left: 30rpx!important;
+}
+
+.margin-r-30 {
+    margin-right: 30rpx!important;
+}
+
+.margin-t-30 {
+    margin-top: 30rpx!important;
+}
+
+.margin-b-30 {
+    margin-bottom: 30rpx!important;
+}
+
+.margin-30 {
+    margin: 30rpx!important;
+}
+
+.margin-v-30 {
+    margin-top: 30rpx!important;
+    margin-bottom: 30rpx!important;
+}
+
+.margin-c-30 {
+    margin-left: 30rpx!important;
+    margin-right: 30rpx!important;
+}
+
+.padding-l-30 {
+    padding-left: 30rpx!important;
+}
+
+.padding-r-30 {
+    padding-right: 30rpx!important;
+}
+
+.padding-t-30 {
+    padding-top: 30rpx!important;
+}
+
+.padding-b-30 {
+    padding-bottom: 30rpx!important;
+}
+
+.padding-30 {
+    padding: 30rpx!important;
+}
+
+.padding-v-30 {
+    padding-top: 30rpx!important;
+    padding-bottom: 30rpx!important;
+}
+
+.padding-c-30 {
+    padding-left: 30rpx!important;
+    padding-right: 30rpx!important;
+}
+
+.font-size-sm {
+    font-size: 24rpx;
+}
+
+.font-size-base {
+    font-size: 28rpx;
+}
+
+.font-size-lg {
+    font-size: 32rpx;
+}
+
+.font-color-yellow {
+    color: #fd5b23;
+}
+
+.font-color-gray {
+    color: #999;
+}
+
+.font-color-red {
+    color: #fd5b23;
+}
+
+.border-color-yellow {
+    border: 1rpx solid #fd5b23;
+}
+
+uni-page-wrapper {
+    background-color: #f8f8f8;
+}
+
+[bind-data-custom-hidden="true"],[data-custom-hidden="true"] {
+    display: none!important;
+}

+ 139 - 0
common/main.js

@@ -0,0 +1,139 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "common/main" ], [ function(e, t, n) {
+    (function(e, t) {
+        function r(e) {
+            return e && e.__esModule ? e : {
+                default: e
+            };
+        }
+        function o(e, t) {
+            var n = Object.keys(e);
+            if (Object.getOwnPropertySymbols) {
+                var r = Object.getOwnPropertySymbols(e);
+                t && (r = r.filter(function(t) {
+                    return Object.getOwnPropertyDescriptor(e, t).enumerable;
+                })), n.push.apply(n, r);
+            }
+            return n;
+        }
+        function u(e, t, n) {
+            return t in e ? Object.defineProperty(e, t, {
+                value: n,
+                enumerable: !0,
+                configurable: !0,
+                writable: !0
+            }) : e[t] = n, e;
+        }
+        n(4);
+        var i = r(n(2)), c = r(n(5)), a = r(n(8));
+        i.default.config.productionTip = !1, i.default.prototype.$fire = new i.default(), 
+        i.default.prototype.$store = c.default, i.default.prototype.$api = {
+            msg: function(t) {
+                var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1500, r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "none";
+                !1 !== Boolean(t) && e.showToast({
+                    title: t,
+                    duration: n,
+                    mask: r,
+                    icon: o
+                });
+            },
+            prePage: function() {
+                console.log("请求")
+                var e = getCurrentPages();
+                return e[e.length - 2].$vm;
+            }
+        }, a.default.mpType = "app";
+        var f = new i.default(function(e) {
+            for (var t = 1; t < arguments.length; t++) {
+                var n = null != arguments[t] ? arguments[t] : {};
+                t % 2 ? o(Object(n), !0).forEach(function(t) {
+                    u(e, t, n[t]);
+                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : o(Object(n)).forEach(function(t) {
+                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));
+                });
+            }
+            return e;
+        }({}, a.default));
+        t(f).$mount();
+    }).call(this, n(1).default, n(1).createApp);
+}, , , , , , , , function(e, t, n) {
+    n.r(t);
+    var r = n(9);
+    for (var o in r) "default" !== o && function(e) {
+        n.d(t, e, function() {
+            return r[e];
+        });
+    }(o);
+    n(11);
+    var u = n(13), i = Object(u.default)(r.default, void 0, void 0, !1, null, null, null, !1, void 0, void 0);
+    i.options.__file = "App.vue", t.default = i.exports;
+}, function(e, t, n) {
+    n.r(t);
+    var r = n(10), o = n.n(r);
+    for (var u in r) "default" !== u && function(e) {
+        n.d(t, e, function() {
+            return r[e];
+        });
+    }(u);
+    t.default = o.a;
+}, function(e, t, n) {
+    (function(e) {
+        function r(e, t) {
+            var n = Object.keys(e);
+            if (Object.getOwnPropertySymbols) {
+                var r = Object.getOwnPropertySymbols(e);
+                t && (r = r.filter(function(t) {
+                    return Object.getOwnPropertyDescriptor(e, t).enumerable;
+                })), n.push.apply(n, r);
+            }
+            return n;
+        }
+        function o(e, t, n) {
+            return t in e ? Object.defineProperty(e, t, {
+                value: n,
+                enumerable: !0,
+                configurable: !0,
+                writable: !0
+            }) : e[t] = n, e;
+        }
+        Object.defineProperty(t, "__esModule", {
+            value: !0
+        }), t.default = void 0;
+        var u = {
+            data: function() {
+                return {};
+            },
+            onLaunch: function(t) {
+                var n = this;
+                (e.getStorageSync("userInfo") || "").uid && (n.login(), e.getStorage({
+                    key: "userInfo",
+                    success: function(e) {
+                        n.setUserInfo(e.data);
+                    }
+                }));
+            },
+            onShow: function() {},
+            onHide: function() {},
+            methods: function(e) {
+                for (var t = 1; t < arguments.length; t++) {
+                    var n = null != arguments[t] ? arguments[t] : {};
+                    t % 2 ? r(Object(n), !0).forEach(function(t) {
+                        o(e, t, n[t]);
+                    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : r(Object(n)).forEach(function(t) {
+                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));
+                    });
+                }
+                return e;
+            }({}, (0, n(6).mapMutations)("user", [ "setUserInfo", "login", "hasLogin" ]))
+        };
+        t.default = u;
+    }).call(this, n(1).default);
+}, function(e, t, n) {
+    n.r(t);
+    var r = n(12), o = n.n(r);
+    for (var u in r) "default" !== u && function(e) {
+        n.d(t, e, function() {
+            return r[e];
+        });
+    }(u);
+    t.default = o.a;
+}, function(e, t, n) {} ], [ [ 0, "common/runtime", "common/vendor" ] ] ]);

+ 192 - 0
common/runtime.js

@@ -0,0 +1,192 @@
+var e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
+    return typeof e;
+} : function(e) {
+    return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
+};
+
+!function() {
+    try {
+        var e = Function("return this")();
+        e && !e.Math && (Object.assign(e, {
+            isFinite: isFinite,
+            Array: Array,
+            Date: Date,
+            Error: Error,
+            Function: Function,
+            Math: Math,
+            Object: Object,
+            RegExp: RegExp,
+            String: String,
+            TypeError: TypeError,
+            setTimeout: setTimeout,
+            clearTimeout: clearTimeout,
+            setInterval: setInterval,
+            clearInterval: clearInterval
+        }), "undefined" != typeof Reflect && (e.Reflect = Reflect));
+    } catch (e) {}
+}(), function(n) {
+    function t(e) {
+        for (var t, r, i = e[0], c = e[1], u = e[2], a = 0, m = []; a < i.length; a++) r = i[a], 
+        Object.prototype.hasOwnProperty.call(p, r) && p[r] && m.push(p[r][0]), p[r] = 0;
+        for (t in c) Object.prototype.hasOwnProperty.call(c, t) && (n[t] = c[t]);
+        for (l && l(e); m.length; ) m.shift()();
+        return s.push.apply(s, u || []), o();
+    }
+    function o() {
+        for (var e, n = 0; n < s.length; n++) {
+            for (var t = s[n], o = !0, r = 1; r < t.length; r++) {
+                var c = t[r];
+                0 !== p[c] && (o = !1);
+            }
+            o && (s.splice(n--, 1), e = i(i.s = t[0]));
+        }
+        return e;
+    }
+    function r(e) {
+        return i.p + "" + e + ".js";
+    }
+    function i(e) {
+        if (c[e]) return c[e].exports;
+        var t = c[e] = {
+            i: e,
+            l: !1,
+            exports: {}
+        };
+        return n[e].call(t.exports, t, t.exports, i), t.l = !0, t.exports;
+    }
+    var c = {}, u = {
+        "common/runtime": 0
+    }, p = {
+        "common/runtime": 0
+    }, s = [];
+    i.e = function(e) {
+        var n = [], t = {
+            "components/empty": 1,
+            "components/uni-load-more/uni-load-more": 1,
+            "pages/product/common/contentText": 1,
+            "pages/product/common/discounts": 1,
+            "pages/product/common/estimate": 1,
+            "pages/product/common/freshDetail": 1,
+            "pages/product/common/guessLike": 1,
+            "pages/product/common/productBottom": 1,
+            "pages/product/common/productContent": 1,
+            "pages/product/common/topSwiper": 1,
+            "components/uni-list-item/uni-list-item": 1,
+            "components/uni-list/uni-list": 1,
+            "components/uni-rate/uni-rate": 1,
+            "components/uni-number-box": 1,
+            "components/tki-qrcode/tki-qrcode": 1,
+            "components/uni-popup/uni-popup": 1,
+            "components/uni-notice-bar/uni-notice-bar": 1,
+            "components/uni-icons/uni-icons": 1,
+            "components/uni-badge/uni-badge": 1,
+            "components/uni-transition/uni-transition": 1
+        };
+        u[e] ? n.push(u[e]) : 0 !== u[e] && t[e] && n.push(u[e] = new Promise(function(n, t) {
+            for (var o = ({
+                "components/empty": "components/empty",
+                "components/uni-load-more/uni-load-more": "components/uni-load-more/uni-load-more",
+                "pages/product/common/contentText": "pages/product/common/contentText",
+                "pages/product/common/discounts": "pages/product/common/discounts",
+                "pages/product/common/estimate": "pages/product/common/estimate",
+                "pages/product/common/freshDetail": "pages/product/common/freshDetail",
+                "pages/product/common/guessLike": "pages/product/common/guessLike",
+                "pages/product/common/productBottom": "pages/product/common/productBottom",
+                "pages/product/common/productContent": "pages/product/common/productContent",
+                "pages/product/common/topSwiper": "pages/product/common/topSwiper",
+                "components/uni-list-item/uni-list-item": "components/uni-list-item/uni-list-item",
+                "components/uni-list/uni-list": "components/uni-list/uni-list",
+                "components/uni-rate/uni-rate": "components/uni-rate/uni-rate",
+                "components/uni-number-box": "components/uni-number-box",
+                "components/tki-qrcode/tki-qrcode": "components/tki-qrcode/tki-qrcode",
+                "components/uni-popup/uni-popup": "components/uni-popup/uni-popup",
+                "components/wangding-pickerAddress/wangding-pickerAddress": "components/wangding-pickerAddress/wangding-pickerAddress",
+                "components/uni-notice-bar/uni-notice-bar": "components/uni-notice-bar/uni-notice-bar",
+                "components/uni-icons/uni-icons": "components/uni-icons/uni-icons",
+                "components/uni-badge/uni-badge": "components/uni-badge/uni-badge",
+                "components/uni-transition/uni-transition": "components/uni-transition/uni-transition"
+            }[e] || e) + ".wxss", r = i.p + o, c = document.getElementsByTagName("link"), p = 0; p < c.length; p++) {
+                var s = c[p], a = s.getAttribute("data-href") || s.getAttribute("href");
+                if ("stylesheet" === s.rel && (a === o || a === r)) return n();
+            }
+            var m = document.getElementsByTagName("style");
+            for (p = 0; p < m.length; p++) if (s = m[p], (a = s.getAttribute("data-href")) === o || a === r) return n();
+            var d = document.createElement("link");
+            d.rel = "stylesheet", d.type = "text/css", d.onload = n, d.onerror = function(n) {
+                var o = n && n.target && n.target.src || r, i = new Error("Loading CSS chunk " + e + " failed.\n(" + o + ")");
+                i.code = "CSS_CHUNK_LOAD_FAILED", i.request = o, delete u[e], d.parentNode.removeChild(d), 
+                t(i);
+            }, d.href = r, document.getElementsByTagName("head")[0].appendChild(d);
+        }).then(function() {
+            u[e] = 0;
+        }));
+        var o = p[e];
+        if (0 !== o) if (o) n.push(o[2]); else {
+            var c = new Promise(function(n, t) {
+                o = p[e] = [ n, t ];
+            });
+            n.push(o[2] = c);
+            var s, a = document.createElement("script");
+            a.charset = "utf-8", a.timeout = 120, i.nc && a.setAttribute("nonce", i.nc), a.src = r(e);
+            var m = new Error();
+            s = function(n) {
+                a.onerror = a.onload = null, clearTimeout(d);
+                var t = p[e];
+                if (0 !== t) {
+                    if (t) {
+                        var o = n && ("load" === n.type ? "missing" : n.type), r = n && n.target && n.target.src;
+                        m.message = "Loading chunk " + e + " failed.\n(" + o + ": " + r + ")", m.name = "ChunkLoadError", 
+                        m.type = o, m.request = r, t[1](m);
+                    }
+                    p[e] = void 0;
+                }
+            };
+            var d = setTimeout(function() {
+                s({
+                    type: "timeout",
+                    target: a
+                });
+            }, 12e4);
+            a.onerror = a.onload = s, document.head.appendChild(a);
+        }
+        return Promise.all(n);
+    }, i.m = n, i.c = c, i.d = function(e, n, t) {
+        i.o(e, n) || Object.defineProperty(e, n, {
+            enumerable: !0,
+            get: t
+        });
+    }, i.r = function(e) {
+        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
+            value: "Module"
+        }), Object.defineProperty(e, "__esModule", {
+            value: !0
+        });
+    }, i.t = function(n, t) {
+        if (1 & t && (n = i(n)), 8 & t) return n;
+        if (4 & t && "object" === (void 0 === n ? "undefined" : e(n)) && n && n.__esModule) return n;
+        var o = Object.create(null);
+        if (i.r(o), Object.defineProperty(o, "default", {
+            enumerable: !0,
+            value: n
+        }), 2 & t && "string" != typeof n) for (var r in n) i.d(o, r, function(e) {
+            return n[e];
+        }.bind(null, r));
+        return o;
+    }, i.n = function(e) {
+        var n = e && e.__esModule ? function() {
+            return e.default;
+        } : function() {
+            return e;
+        };
+        return i.d(n, "a", n), n;
+    }, i.o = function(e, n) {
+        return Object.prototype.hasOwnProperty.call(e, n);
+    }, i.p = "/", i.oe = function(e) {
+        throw console.error(e), e;
+    };
+    var a = global.webpackJsonp = global.webpackJsonp || [], m = a.push.bind(a);
+    a.push = t, a = a.slice();
+    for (var d = 0; d < a.length; d++) t(a[d]);
+    var l = m;
+    o();
+}([]);

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 4299 - 0
common/vendor.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 65 - 0
components/empty.js


+ 4 - 0
components/empty.json

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

+ 3 - 0
components/empty.wxml

@@ -0,0 +1,3 @@
+<view class="empty-content">
+    <image class="empty-content-image" mode="aspectFit" src="{{setSrc}}"></image>
+</view>

+ 22 - 0
components/empty.wxss

@@ -0,0 +1,22 @@
+.empty-content {
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: center;
+    justify-content: center;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    position: fixed;
+    left: 0;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    background: #f8f8f8;
+    padding-bottom: 120rpx;
+}
+
+.empty-content-image {
+    width: 200rpx;
+    height: 200rpx;
+}

+ 236 - 0
components/tki-qrcode/tki-qrcode.js

@@ -0,0 +1,236 @@
+var t = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
+    return typeof t;
+} : function(t) {
+    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
+};
+
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "components/tki-qrcode/tki-qrcode" ], {
+    511: function(t, e, n) {
+        n.r(e);
+        var o = n(512), i = n(514);
+        for (var r in i) "default" !== r && function(t) {
+            n.d(e, t, function() {
+                return i[t];
+            });
+        }(r);
+        n(517);
+        var u = n(13), c = Object(u.default)(i.default, o.render, o.staticRenderFns, !1, null, null, null, !1, o.components, void 0);
+        c.options.__file = "components/tki-qrcode/tki-qrcode.vue", e.default = c.exports;
+    },
+    512: function(t, e, n) {
+        n.r(e);
+        var o = n(513);
+        n.d(e, "render", function() {
+            return o.render;
+        }), n.d(e, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), n.d(e, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), n.d(e, "components", function() {
+            return o.components;
+        });
+    },
+    513: function(t, e, n) {
+        n.r(e), n.d(e, "render", function() {
+            return o;
+        }), n.d(e, "staticRenderFns", function() {
+            return r;
+        }), n.d(e, "recyclableRender", function() {
+            return i;
+        }), n.d(e, "components", function() {});
+        var o = function() {
+            var t = this;
+            t.$createElement;
+            t._self._c;
+        }, i = !1, r = [];
+        o._withStripped = !0;
+    },
+    514: function(t, e, n) {
+        n.r(e);
+        var o = n(515), i = n.n(o);
+        for (var r in o) "default" !== r && function(t) {
+            n.d(e, t, function() {
+                return o[t];
+            });
+        }(r);
+        e.default = i.a;
+    },
+    515: function(e, n, o) {
+        (function(e) {
+            Object.defineProperty(n, "__esModule", {
+                value: !0
+            }), n.default = void 0;
+            var i, r = function(t) {
+                return t && t.__esModule ? t : {
+                    default: t
+                };
+            }(o(516)), u = {
+                name: "tkiQrcodes",
+                props: {
+                    cid: {
+                        type: String,
+                        default: "tki-qrcode-canvas"
+                    },
+                    size: {
+                        type: Number,
+                        default: 200
+                    },
+                    unit: {
+                        type: String,
+                        default: "rpx"
+                    },
+                    show: {
+                        type: Boolean,
+                        default: !0
+                    },
+                    val: {
+                        type: String,
+                        default: ""
+                    },
+                    background: {
+                        type: String,
+                        default: "#ffffff"
+                    },
+                    foreground: {
+                        type: String,
+                        default: "#000000"
+                    },
+                    pdground: {
+                        type: String,
+                        default: "#000000"
+                    },
+                    icon: {
+                        type: String,
+                        default: ""
+                    },
+                    iconSize: {
+                        type: Number,
+                        default: 40
+                    },
+                    lv: {
+                        type: Number,
+                        default: 3
+                    },
+                    onval: {
+                        type: Boolean,
+                        default: !1
+                    },
+                    loadMake: {
+                        type: Boolean,
+                        default: !1
+                    },
+                    usingComponents: {
+                        type: Boolean,
+                        default: !0
+                    },
+                    showLoading: {
+                        type: Boolean,
+                        default: !0
+                    },
+                    loadingText: {
+                        type: String,
+                        default: "二维码生成中"
+                    }
+                },
+                data: function() {
+                    return {
+                        result: ""
+                    };
+                },
+                methods: {
+                    _makeCode: function() {
+                        this.cpSize;
+                        var t = this;
+                        this._empty(this.val) ? e.showToast({
+                            title: "二维码内容不能为空",
+                            icon: "none",
+                            duration: 2e3
+                        }) : i = new r.default({
+                            context: t,
+                            canvasId: t.cid,
+                            usingComponents: t.usingComponents,
+                            showLoading: t.showLoading,
+                            loadingText: t.loadingText,
+                            text: t.val,
+                            size: t.cpSize,
+                            background: t.background,
+                            foreground: t.foreground,
+                            pdground: t.pdground,
+                            correctLevel: t.lv,
+                            image: t.icon,
+                            imageSize: t.iconSize,
+                            cbResult: function(e) {
+                                t._result(e);
+                            }
+                        });
+                    },
+                    _clearCode: function() {
+                        this._result(""), i.clear();
+                    },
+                    _saveCode: function() {
+                        var t = this;
+                        "" != this.result && e.saveImageToPhotosAlbum({
+                            filePath: t.result,
+                            success: function() {
+                                e.showToast({
+                                    title: "二维码保存成功",
+                                    icon: "none",
+                                    duration: 2e3
+                                });
+                            }
+                        });
+                    },
+                    _result: function(t) {
+                        this.result = t, this.$emit("result", t);
+                    },
+                    _empty: function(e) {
+                        var n = void 0 === e ? "undefined" : t(e), o = !1;
+                        return "number" == n && "" == String(e) || "undefined" == n ? o = !0 : "object" == n ? "{}" != JSON.stringify(e) && "[]" != JSON.stringify(e) && null != e || (o = !0) : "string" == n ? "" != e && "undefined" != e && "null" != e && "{}" != e && "[]" != e || (o = !0) : "function" == n && (o = !1), 
+                        o;
+                    }
+                },
+                watch: {
+                    size: function(t, e) {
+                        var n = this;
+                        t == e || this._empty(t) || (this.cSize = t, this._empty(this.val) || setTimeout(function() {
+                            n._makeCode();
+                        }, 100));
+                    },
+                    val: function(t, e) {
+                        var n = this;
+                        this.onval && (t == e || this._empty(t) || setTimeout(function() {
+                            n._makeCode();
+                        }, 0));
+                    }
+                },
+                computed: {
+                    cpSize: function() {
+                        return "upx" == this.unit ? e.upx2px(this.size) : this.size;
+                    }
+                },
+                mounted: function() {
+                    var t = this;
+                    this.loadMake && (this._empty(this.val) || setTimeout(function() {
+                        t._makeCode();
+                    }, 0));
+                }
+            };
+            n.default = u;
+        }).call(this, o(1).default);
+    },
+    517: function(t, e, n) {
+        n.r(e);
+        var o = n(518), i = n.n(o);
+        for (var r in o) "default" !== r && function(t) {
+            n.d(e, t, function() {
+                return o[t];
+            });
+        }(r);
+        e.default = i.a;
+    },
+    518: function(t, e, n) {}
+} ]), (global.webpackJsonp = global.webpackJsonp || []).push([ "components/tki-qrcode/tki-qrcode-create-component", {
+    "components/tki-qrcode/tki-qrcode-create-component": function(t, e, n) {
+        n("1").createComponent(n(511));
+    }
+}, [ [ "components/tki-qrcode/tki-qrcode-create-component" ] ] ]);

+ 4 - 0
components/tki-qrcode/tki-qrcode.json

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

+ 4 - 0
components/tki-qrcode/tki-qrcode.wxml

@@ -0,0 +1,4 @@
+<view class="tki-qrcode">
+    <canvas canvasId="{{cid}}" class="tki-qrcode-canvas" style="{{'width:'+cpSize+'px'+';'+'height:'+cpSize+'px'+';'}}"></canvas>
+    <image class="img" hidden="{{!show}}" src="{{result}}" style="{{'width:'+cpSize+'px'+';'+'height:'+cpSize+'px'+';'}}"></image>
+</view>

+ 14 - 0
components/tki-qrcode/tki-qrcode.wxss

@@ -0,0 +1,14 @@
+.tki-qrcode {
+    height: 100%;
+}
+
+.tki-qrcode-canvas {
+    position: relative;
+    top: 0rpx;
+    left: -99999rpx;
+}
+
+.img {
+    margin-top: -240rpx!important;
+    height: 100%;
+}

+ 104 - 0
components/uni-badge/uni-badge.js

@@ -0,0 +1,104 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "components/uni-badge/uni-badge" ], {
+    549: function(n, e, t) {
+        t.r(e);
+        var r = t(550), o = t(552);
+        for (var u in o) "default" !== u && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(u);
+        t(554);
+        var a = t(13), i = Object(a.default)(o.default, r.render, r.staticRenderFns, !1, null, "26a60cd2", null, !1, r.components, void 0);
+        i.options.__file = "components/uni-badge/uni-badge.vue", e.default = i.exports;
+    },
+    550: function(n, e, t) {
+        t.r(e);
+        var r = t(551);
+        t.d(e, "render", function() {
+            return r.render;
+        }), t.d(e, "staticRenderFns", function() {
+            return r.staticRenderFns;
+        }), t.d(e, "recyclableRender", function() {
+            return r.recyclableRender;
+        }), t.d(e, "components", function() {
+            return r.components;
+        });
+    },
+    551: function(n, e, t) {
+        t.r(e), t.d(e, "render", function() {
+            return r;
+        }), t.d(e, "staticRenderFns", function() {
+            return u;
+        }), t.d(e, "recyclableRender", function() {
+            return o;
+        }), t.d(e, "components", function() {});
+        var r = function() {
+            var n = this;
+            n.$createElement;
+            n._self._c;
+        }, o = !1, u = [];
+        r._withStripped = !0;
+    },
+    552: function(n, e, t) {
+        t.r(e);
+        var r = t(553), o = t.n(r);
+        for (var u in r) "default" !== u && function(n) {
+            t.d(e, n, function() {
+                return r[n];
+            });
+        }(u);
+        e.default = o.a;
+    },
+    553: function(n, e, t) {
+        Object.defineProperty(e, "__esModule", {
+            value: !0
+        }), e.default = void 0;
+        var r = {
+            name: "UniBadge",
+            props: {
+                type: {
+                    type: String,
+                    default: "default"
+                },
+                inverted: {
+                    type: Boolean,
+                    default: !1
+                },
+                text: {
+                    type: [ String, Number ],
+                    default: ""
+                },
+                size: {
+                    type: String,
+                    default: "normal"
+                }
+            },
+            data: function() {
+                return {
+                    width: "display: inline-block;width: ".concat(15 * String(this.text).length + 25, "rpx")
+                };
+            },
+            methods: {
+                onClick: function() {
+                    this.$emit("click");
+                }
+            }
+        };
+        e.default = r;
+    },
+    554: function(n, e, t) {
+        t.r(e);
+        var r = t(555), o = t.n(r);
+        for (var u in r) "default" !== u && function(n) {
+            t.d(e, n, function() {
+                return r[n];
+            });
+        }(u);
+        e.default = o.a;
+    },
+    555: function(n, e, t) {}
+} ]), (global.webpackJsonp = global.webpackJsonp || []).push([ "components/uni-badge/uni-badge-create-component", {
+    "components/uni-badge/uni-badge-create-component": function(n, e, t) {
+        t("1").createComponent(t(549));
+    }
+}, [ [ "components/uni-badge/uni-badge-create-component" ] ] ]);

+ 4 - 0
components/uni-badge/uni-badge.json

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

+ 1 - 0
components/uni-badge/uni-badge.wxml

@@ -0,0 +1 @@
+<text bindtap="__e" class="{{['uni-badge data-v-26a60cd2',inverted?'uni-badge--'+type+' uni-badge--'+size+' uni-badge--'+type+'-inverted':'uni-badge--'+type+' uni-badge--'+size]}}" data-event-opts="{{[ [ 'tap',[ ['onClick'] ] ] ]}}" style="{{width}}" wx:if="{{text}}">{{text}}</text>

+ 76 - 0
components/uni-badge/uni-badge.wxss

@@ -0,0 +1,76 @@
+.uni-badge.data-v-26a60cd2 {
+    display: flex;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    flex-direction: row;
+    height: 40rpx;
+    line-height: 40rpx;
+    color: #333;
+    border-radius: 100px;
+    background-color: #f1f1f1;
+    background-color: transparent;
+    text-align: center;
+    font-family: Helvetica Neue,Helvetica,sans-serif;
+    font-size: 12px;
+    padding: 0;
+}
+
+.uni-badge--inverted.data-v-26a60cd2 {
+    padding: 0 5px 0 0;
+    color: #f1f1f1;
+}
+
+.uni-badge--default.data-v-26a60cd2 {
+    color: #333;
+    background-color: #f1f1f1;
+}
+
+.uni-badge--default-inverted.data-v-26a60cd2 {
+    color: #999;
+    background-color: transparent;
+}
+
+.uni-badge--primary.data-v-26a60cd2 {
+    color: #fff;
+    background-color: #dd524d;
+}
+
+.uni-badge--primary-inverted.data-v-26a60cd2 {
+    color: #dd524d;
+    background-color: transparent;
+}
+
+.uni-badge--success.data-v-26a60cd2 {
+    color: #fff;
+    background-color: #4cd964;
+}
+
+.uni-badge--success-inverted.data-v-26a60cd2 {
+    color: #4cd964;
+    background-color: transparent;
+}
+
+.uni-badge--warning.data-v-26a60cd2 {
+    color: #fff;
+    background-color: #f0ad4e;
+}
+
+.uni-badge--warning-inverted.data-v-26a60cd2 {
+    color: #f0ad4e;
+    background-color: transparent;
+}
+
+.uni-badge--error.data-v-26a60cd2 {
+    color: #fff;
+    background-color: #dd524d;
+}
+
+.uni-badge--error-inverted.data-v-26a60cd2 {
+    color: #dd524d;
+    background-color: transparent;
+}
+
+.uni-badge--small.data-v-26a60cd2 {
+    transform: scale(.8);
+    transform-origin: center center;
+}

+ 104 - 0
components/uni-icons/uni-icons.js

@@ -0,0 +1,104 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "components/uni-icons/uni-icons" ], {
+    541: function(n, e, t) {
+        t.r(e);
+        var o = t(542), c = t(544);
+        for (var r in c) "default" !== r && function(n) {
+            t.d(e, n, function() {
+                return c[n];
+            });
+        }(r);
+        t(547);
+        var u = t(13), i = Object(u.default)(c.default, o.render, o.staticRenderFns, !1, null, "0bf90c00", null, !1, o.components, void 0);
+        i.options.__file = "components/uni-icons/uni-icons.vue", e.default = i.exports;
+    },
+    542: function(n, e, t) {
+        t.r(e);
+        var o = t(543);
+        t.d(e, "render", function() {
+            return o.render;
+        }), t.d(e, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), t.d(e, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), t.d(e, "components", function() {
+            return o.components;
+        });
+    },
+    543: function(n, e, t) {
+        t.r(e), t.d(e, "render", function() {
+            return o;
+        }), t.d(e, "staticRenderFns", function() {
+            return r;
+        }), t.d(e, "recyclableRender", function() {
+            return c;
+        }), t.d(e, "components", function() {});
+        var o = function() {
+            var n = this;
+            n.$createElement;
+            n._self._c;
+        }, c = !1, r = [];
+        o._withStripped = !0;
+    },
+    544: function(n, e, t) {
+        t.r(e);
+        var o = t(545), c = t.n(o);
+        for (var r in o) "default" !== r && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(r);
+        e.default = c.a;
+    },
+    545: function(n, e, t) {
+        Object.defineProperty(e, "__esModule", {
+            value: !0
+        }), e.default = void 0;
+        var o = function(n) {
+            return n && n.__esModule ? n : {
+                default: n
+            };
+        }(t(546)), c = {
+            name: "UniIcons",
+            props: {
+                type: {
+                    type: String,
+                    default: ""
+                },
+                color: {
+                    type: String,
+                    default: "#333333"
+                },
+                size: {
+                    type: [ Number, String ],
+                    default: 16
+                }
+            },
+            data: function() {
+                return {
+                    icons: o.default
+                };
+            },
+            methods: {
+                _onClick: function() {
+                    this.$emit("click");
+                }
+            }
+        };
+        e.default = c;
+    },
+    547: function(n, e, t) {
+        t.r(e);
+        var o = t(548), c = t.n(o);
+        for (var r in o) "default" !== r && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(r);
+        e.default = c.a;
+    },
+    548: function(n, e, t) {}
+} ]), (global.webpackJsonp = global.webpackJsonp || []).push([ "components/uni-icons/uni-icons-create-component", {
+    "components/uni-icons/uni-icons-create-component": function(n, e, t) {
+        t("1").createComponent(t(541));
+    }
+}, [ [ "components/uni-icons/uni-icons-create-component" ] ] ]);

+ 4 - 0
components/uni-icons/uni-icons.json

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

+ 1 - 0
components/uni-icons/uni-icons.wxml

@@ -0,0 +1 @@
+<text bindtap="__e" class="uni-icons data-v-0bf90c00" data-event-opts="{{[ [ 'tap',[ [ '_onClick',['$event'] ] ] ] ]}}" style="{{'color:'+color+';'+'font-size:'+size+'px'+';'}}">{{icons[type]}}</text>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2 - 0
components/uni-icons/uni-icons.wxss


+ 182 - 0
components/uni-list-item/uni-list-item.js

@@ -0,0 +1,182 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "components/uni-list-item/uni-list-item" ], {
+    490: function(n, e, t) {
+        t.r(e);
+        var o = t(491), i = t(493);
+        for (var r in i) "default" !== r && function(n) {
+            t.d(e, n, function() {
+                return i[n];
+            });
+        }(r);
+        t(495);
+        var c = t(13), u = Object(c.default)(i.default, o.render, o.staticRenderFns, !1, null, "1093b690", null, !1, o.components, void 0);
+        u.options.__file = "components/uni-list-item/uni-list-item.vue", e.default = u.exports;
+    },
+    491: function(n, e, t) {
+        t.r(e);
+        var o = t(492);
+        t.d(e, "render", function() {
+            return o.render;
+        }), t.d(e, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), t.d(e, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), t.d(e, "components", function() {
+            return o.components;
+        });
+    },
+    492: function(n, e, t) {
+        var o;
+        t.r(e), t.d(e, "render", function() {
+            return i;
+        }), t.d(e, "staticRenderFns", function() {
+            return c;
+        }), t.d(e, "recyclableRender", function() {
+            return r;
+        }), t.d(e, "components", function() {
+            return o;
+        });
+        try {
+            o = {
+                uniIcons: function() {
+                    return Promise.all([ t.e("common/vendor"), t.e("components/uni-icons/uni-icons") ]).then(t.bind(null, 541));
+                },
+                uniBadge: function() {
+                    return t.e("components/uni-badge/uni-badge").then(t.bind(null, 549));
+                }
+            };
+        } catch (n) {
+            if (-1 === n.message.indexOf("Cannot find module") || -1 === n.message.indexOf(".vue")) throw n;
+            console.error(n.message), console.error("1. 排查组件名称拼写是否正确"), console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"), 
+            console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件");
+        }
+        var i = function() {
+            var n = this;
+            n.$createElement;
+            n._self._c;
+        }, r = !1, c = [];
+        i._withStripped = !0;
+    },
+    493: function(n, e, t) {
+        t.r(e);
+        var o = t(494), i = t.n(o);
+        for (var r in o) "default" !== r && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(r);
+        e.default = i.a;
+    },
+    494: function(n, e, t) {
+        Object.defineProperty(e, "__esModule", {
+            value: !0
+        }), e.default = void 0;
+        var o = {
+            name: "UniListItem",
+            components: {
+                uniIcons: function() {
+                    Promise.all([ t.e("common/vendor"), t.e("components/uni-icons/uni-icons") ]).then(function() {
+                        return resolve(t(541));
+                    }.bind(null, t)).catch(t.oe);
+                },
+                uniBadge: function() {
+                    t.e("components/uni-badge/uni-badge").then(function() {
+                        return resolve(t(549));
+                    }.bind(null, t)).catch(t.oe);
+                }
+            },
+            props: {
+                title: {
+                    type: String,
+                    default: ""
+                },
+                note: {
+                    type: String,
+                    default: ""
+                },
+                disabled: {
+                    type: [ Boolean, String ],
+                    default: !1
+                },
+                showArrow: {
+                    type: [ Boolean, String ],
+                    default: !0
+                },
+                showBadge: {
+                    type: [ Boolean, String ],
+                    default: !1
+                },
+                showSwitch: {
+                    type: [ Boolean, String ],
+                    default: !1
+                },
+                switchChecked: {
+                    type: [ Boolean, String ],
+                    default: !1
+                },
+                switchColor: {
+                    type: String,
+                    default: ""
+                },
+                badgeText: {
+                    type: String,
+                    default: ""
+                },
+                badgeType: {
+                    type: String,
+                    default: "success"
+                },
+                thumb: {
+                    type: String,
+                    default: ""
+                },
+                showExtraIcon: {
+                    type: [ Boolean, String ],
+                    default: !1
+                },
+                extraIcon: {
+                    type: Object,
+                    default: function() {
+                        return {
+                            type: "contact",
+                            color: "#000000",
+                            size: 20
+                        };
+                    }
+                }
+            },
+            inject: [ "list" ],
+            data: function() {
+                return {
+                    isFirstChild: !1
+                };
+            },
+            mounted: function() {
+                this.list.firstChildAppend || (this.list.firstChildAppend = !0, this.isFirstChild = !0);
+            },
+            methods: {
+                onClick: function() {
+                    this.$emit("click");
+                },
+                onSwitchChange: function(n) {
+                    this.$emit("switchChange", n.detail);
+                }
+            }
+        };
+        e.default = o;
+    },
+    495: function(n, e, t) {
+        t.r(e);
+        var o = t(496), i = t.n(o);
+        for (var r in o) "default" !== r && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(r);
+        e.default = i.a;
+    },
+    496: function(n, e, t) {}
+} ]), (global.webpackJsonp = global.webpackJsonp || []).push([ "components/uni-list-item/uni-list-item-create-component", {
+    "components/uni-list-item/uni-list-item-create-component": function(n, e, t) {
+        t("1").createComponent(t(490));
+    }
+}, [ [ "components/uni-list-item/uni-list-item-create-component" ] ] ]);

+ 7 - 0
components/uni-list-item/uni-list-item.json

@@ -0,0 +1,7 @@
+{
+    "component": true,
+    "usingComponents": {
+        "uni-icons": "/components/uni-icons/uni-icons",
+        "uni-badge": "/components/uni-badge/uni-badge"
+    }
+}

+ 25 - 0
components/uni-list-item/uni-list-item.wxml

@@ -0,0 +1,25 @@
+<view bindtap="__e" class="{{['uni-list-item data-v-1093b690',disabled?'uni-list-item--disabled':'']}}" data-event-opts="{{[ [ 'tap',[ [ 'onClick',['$event'] ] ] ] ]}}" hoverClass="{{disabled||showSwitch?'':'uni-list-item--hover'}}">
+    <view class="{{['uni-list-item__container data-v-1093b690',isFirstChild?'uni-list-item--first':'']}}">
+        <view class="uni-list-item__icon data-v-1093b690" wx:if="{{thumb}}">
+            <image class="uni-list-item__icon-img data-v-1093b690" mode="aspectFit" src="{{thumb}}"></image>
+        </view>
+        <block wx:else>
+            <view class="uni-list-item__icon data-v-1093b690" wx:if="{{showExtraIcon}}">
+                <uni-icons bind:__l="__l" class="uni-icon-wrapper data-v-1093b690" color="{{extraIcon.color}}" size="{{extraIcon.size}}" type="{{extraIcon.type}}" vueId="01e39c76-1"></uni-icons>
+            </view>
+        </block>
+        <view class="uni-list-item__content data-v-1093b690">
+            <slot></slot>
+            <text class="uni-list-item__content-title data-v-1093b690">{{title}}</text>
+            <text class="uni-list-item__content-note data-v-1093b690" wx:if="{{note}}">{{note}}</text>
+        </view>
+        <view class="uni-list-item__slot data-v-1093b690">
+            <slot name="right"></slot>
+        </view>
+        <view class="uni-list-item__extra data-v-1093b690" wx:if="{{showBadge||showArrow||showSwitch}}">
+            <uni-badge bind:__l="__l" class="data-v-1093b690" text="{{badgeText}}" type="{{badgeType}}" vueId="01e39c76-2" wx:if="{{showBadge}}"></uni-badge>
+            <switch bindchange="__e" checked="{{switchChecked}}" class="data-v-1093b690" color="{{switchColor}}" data-event-opts="{{[ [ 'change',[ [ 'onSwitchChange',['$event'] ] ] ] ]}}" disabled="{{disabled}}" wx:if="{{showSwitch}}"></switch>
+            <uni-icons bind:__l="__l" class="uni-icon-wrapper data-v-1093b690" color="#bbb" size="{{20}}" type="arrowright" vueId="01e39c76-3" wx:if="{{showArrow}}"></uni-icons>
+        </view>
+    </view>
+</view>

+ 96 - 0
components/uni-list-item/uni-list-item.wxss

@@ -0,0 +1,96 @@
+.uni-list-item.data-v-1093b690 {
+    font-size: 32rpx;
+    position: relative;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    -webkit-box-pack: justify;
+    justify-content: space-between;
+    padding-left: 30rpx;
+}
+
+.uni-list-item--disabled.data-v-1093b690 {
+    opacity: .3;
+}
+
+.uni-list-item--hover.data-v-1093b690 {
+    background-color: #f1f1f1;
+}
+
+.uni-list-item__container.data-v-1093b690 {
+    display: flex;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    flex-direction: row;
+    padding: 24rpx 30rpx 24rpx 0;
+    -webkit-box-flex: 1;
+    flex: 1;
+    position: relative;
+    -webkit-box-pack: justify;
+    justify-content: space-between;
+    -webkit-box-align: center;
+    align-items: center;
+    border-top: 1px solid #ebeef5;
+}
+
+.uni-list-item--first.data-v-1093b690 {
+    border-top-width: 0;
+}
+
+.uni-list-item__content.data-v-1093b690 {
+    display: flex;
+    -webkit-box-flex: 1;
+    flex: 1;
+    overflow: hidden;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    color: #3b4144;
+}
+
+.uni-list-item__content-title.data-v-1093b690 {
+    font-size: 28rpx;
+    color: #3b4144;
+    overflow: hidden;
+}
+
+.uni-list-item__content-note.data-v-1093b690 {
+    margin-top: 6rpx;
+    color: #999;
+    font-size: 24rpx;
+    overflow: hidden;
+}
+
+.uni-list-item__extra.data-v-1093b690 {
+    -webkit-box-pack: end;
+    justify-content: flex-end;
+}
+
+.uni-list-item__extra.data-v-1093b690,.uni-list-item__icon.data-v-1093b690 {
+    display: flex;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    flex-direction: row;
+    -webkit-box-align: center;
+    align-items: center;
+}
+
+.uni-list-item__icon.data-v-1093b690 {
+    margin-right: 18rpx;
+    -webkit-box-pack: center;
+    justify-content: center;
+}
+
+.uni-list-item__icon-img.data-v-1093b690 {
+    height: 36rpx;
+    width: 36rpx;
+}
+
+switch.data-v-1093b690 {
+    transform: translateX(16rpx) scale(.84);
+}
+
+.uni-list-item__slot.data-v-1093b690 {
+    color: #909399;
+    font-size: 28rpx;
+}

+ 104 - 0
components/uni-list/uni-list.js

@@ -0,0 +1,104 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "components/uni-list/uni-list" ], {
+    483: function(n, t, e) {
+        e.r(t);
+        var o = e(484), r = e(486);
+        for (var i in r) "default" !== i && function(n) {
+            e.d(t, n, function() {
+                return r[n];
+            });
+        }(i);
+        e(488);
+        var u = e(13), c = Object(u.default)(r.default, o.render, o.staticRenderFns, !1, null, "34219f38", null, !1, o.components, void 0);
+        c.options.__file = "components/uni-list/uni-list.vue", t.default = c.exports;
+    },
+    484: function(n, t, e) {
+        e.r(t);
+        var o = e(485);
+        e.d(t, "render", function() {
+            return o.render;
+        }), e.d(t, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), e.d(t, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), e.d(t, "components", function() {
+            return o.components;
+        });
+    },
+    485: function(n, t, e) {
+        e.r(t), e.d(t, "render", function() {
+            return o;
+        }), e.d(t, "staticRenderFns", function() {
+            return i;
+        }), e.d(t, "recyclableRender", function() {
+            return r;
+        }), e.d(t, "components", function() {});
+        var o = function() {
+            var n = this;
+            n.$createElement;
+            n._self._c;
+        }, r = !1, i = [];
+        o._withStripped = !0;
+    },
+    486: function(n, t, e) {
+        e.r(t);
+        var o = e(487), r = e.n(o);
+        for (var i in o) "default" !== i && function(n) {
+            e.d(t, n, function() {
+                return o[n];
+            });
+        }(i);
+        t.default = r.a;
+    },
+    487: function(n, t, e) {
+        Object.defineProperty(t, "__esModule", {
+            value: !0
+        }), t.default = void 0;
+        var o = {
+            name: "UniList",
+            "mp-weixin": {
+                options: {
+                    multipleSlots: !1
+                }
+            },
+            props: {
+                enableBackToTop: {
+                    type: [ Boolean, String ],
+                    default: !1
+                },
+                scrollY: {
+                    type: [ Boolean, String ],
+                    default: !1
+                }
+            },
+            provide: function() {
+                return {
+                    list: this
+                };
+            },
+            created: function() {
+                this.firstChildAppend = !1;
+            },
+            methods: {
+                loadMore: function(n) {
+                    this.$emit("scrolltolower");
+                }
+            }
+        };
+        t.default = o;
+    },
+    488: function(n, t, e) {
+        e.r(t);
+        var o = e(489), r = e.n(o);
+        for (var i in o) "default" !== i && function(n) {
+            e.d(t, n, function() {
+                return o[n];
+            });
+        }(i);
+        t.default = r.a;
+    },
+    489: function(n, t, e) {}
+} ]), (global.webpackJsonp = global.webpackJsonp || []).push([ "components/uni-list/uni-list-create-component", {
+    "components/uni-list/uni-list-create-component": function(n, t, e) {
+        e("1").createComponent(e(483));
+    }
+}, [ [ "components/uni-list/uni-list-create-component" ] ] ]);

+ 4 - 0
components/uni-list/uni-list.json

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

+ 3 - 0
components/uni-list/uni-list.wxml

@@ -0,0 +1,3 @@
+<view class="uni-list data-v-34219f38">
+    <slot></slot>
+</view>

+ 12 - 0
components/uni-list/uni-list.wxss

@@ -0,0 +1,12 @@
+.uni-list.data-v-34219f38 {
+    display: flex;
+    background-color: #fff;
+    position: relative;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+}
+
+.uni-list.data-v-34219f38:after,.uni-list.data-v-34219f38:before {
+    height: 0;
+}

+ 103 - 0
components/uni-load-more/uni-load-more.js

@@ -0,0 +1,103 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "components/uni-load-more/uni-load-more" ], {
+    413: function(n, e, t) {
+        t.r(e);
+        var o = t(414), r = t(416);
+        for (var u in r) "default" !== u && function(n) {
+            t.d(e, n, function() {
+                return r[n];
+            });
+        }(u);
+        t(418);
+        var c = t(13), a = Object(c.default)(r.default, o.render, o.staticRenderFns, !1, null, null, null, !1, o.components, void 0);
+        a.options.__file = "components/uni-load-more/uni-load-more.vue", e.default = a.exports;
+    },
+    414: function(n, e, t) {
+        t.r(e);
+        var o = t(415);
+        t.d(e, "render", function() {
+            return o.render;
+        }), t.d(e, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), t.d(e, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), t.d(e, "components", function() {
+            return o.components;
+        });
+    },
+    415: function(n, e, t) {
+        t.r(e), t.d(e, "render", function() {
+            return o;
+        }), t.d(e, "staticRenderFns", function() {
+            return u;
+        }), t.d(e, "recyclableRender", function() {
+            return r;
+        }), t.d(e, "components", function() {});
+        var o = function() {
+            var n = this;
+            n.$createElement;
+            n._self._c;
+        }, r = !1, u = [];
+        o._withStripped = !0;
+    },
+    416: function(n, e, t) {
+        t.r(e);
+        var o = t(417), r = t.n(o);
+        for (var u in o) "default" !== u && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(u);
+        e.default = r.a;
+    },
+    417: function(n, e, t) {
+        Object.defineProperty(e, "__esModule", {
+            value: !0
+        }), e.default = void 0;
+        var o = {
+            name: "uni-load-more",
+            props: {
+                status: {
+                    type: String,
+                    default: "more"
+                },
+                showIcon: {
+                    type: Boolean,
+                    default: !0
+                },
+                color: {
+                    type: String,
+                    default: "#777777"
+                },
+                contentText: {
+                    type: Object,
+                    default: function() {
+                        return {
+                            contentdown: "上拉显示更多",
+                            contentrefresh: "正在加载...",
+                            contentnomore: "没有更多数据了"
+                        };
+                    }
+                }
+            },
+            data: function() {
+                return {};
+            }
+        };
+        e.default = o;
+    },
+    418: function(n, e, t) {
+        t.r(e);
+        var o = t(419), r = t.n(o);
+        for (var u in o) "default" !== u && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(u);
+        e.default = r.a;
+    },
+    419: function(n, e, t) {}
+} ]), (global.webpackJsonp = global.webpackJsonp || []).push([ "components/uni-load-more/uni-load-more-create-component", {
+    "components/uni-load-more/uni-load-more-create-component": function(n, e, t) {
+        t("1").createComponent(t(413));
+    }
+}, [ [ "components/uni-load-more/uni-load-more-create-component" ] ] ]);

+ 4 - 0
components/uni-load-more/uni-load-more.json

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

+ 23 - 0
components/uni-load-more/uni-load-more.wxml

@@ -0,0 +1,23 @@
+<view class="uni-load-more">
+    <view class="uni-load-more__img" hidden="{{!(status==='loading'&&showIcon)}}">
+        <view class="load1">
+            <view style="{{'background:'+color+';'}}"></view>
+            <view style="{{'background:'+color+';'}}"></view>
+            <view style="{{'background:'+color+';'}}"></view>
+            <view style="{{'background:'+color+';'}}"></view>
+        </view>
+        <view class="load2">
+            <view style="{{'background:'+color+';'}}"></view>
+            <view style="{{'background:'+color+';'}}"></view>
+            <view style="{{'background:'+color+';'}}"></view>
+            <view style="{{'background:'+color+';'}}"></view>
+        </view>
+        <view class="load3">
+            <view style="{{'background:'+color+';'}}"></view>
+            <view style="{{'background:'+color+';'}}"></view>
+            <view style="{{'background:'+color+';'}}"></view>
+            <view style="{{'background:'+color+';'}}"></view>
+        </view>
+    </view>
+    <text class="uni-load-more__text" style="{{'color:'+color+';'}}">{{status==='more'?contentText.contentdown:status==='loading'?contentText.contentrefresh:contentText.contentnomore}}</text>
+</view>

+ 132 - 0
components/uni-load-more/uni-load-more.wxss

@@ -0,0 +1,132 @@
+.uni-load-more {
+    display: flex;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    flex-direction: row;
+    height: 80rpx;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: center;
+    justify-content: center;
+}
+
+.uni-load-more__text {
+    font-size: 28rpx;
+    color: #999;
+}
+
+.uni-load-more__img {
+    height: 24px;
+    width: 24px;
+    margin-right: 10px;
+}
+
+.uni-load-more__img>view {
+    position: absolute;
+}
+
+.uni-load-more__img>view view {
+    width: 6px;
+    height: 2px;
+    border-top-left-radius: 1px;
+    border-bottom-left-radius: 1px;
+    background: #999;
+    position: absolute;
+    opacity: .2;
+    transform-origin: 50%;
+    animation: load 1.56s ease infinite;
+}
+
+.uni-load-more__img>view view:nth-child(1) {
+    transform: rotate(90deg);
+    top: 2px;
+    left: 9px;
+}
+
+.uni-load-more__img>view view:nth-child(2) {
+    transform: rotate(180deg);
+    top: 11px;
+    right: 0;
+}
+
+.uni-load-more__img>view view:nth-child(3) {
+    transform: rotate(270deg);
+    bottom: 2px;
+    left: 9px;
+}
+
+.uni-load-more__img>view view:nth-child(4) {
+    top: 11px;
+    left: 0;
+}
+
+.load1,.load2,.load3 {
+    height: 24px;
+    width: 24px;
+}
+
+.load2 {
+    transform: rotate(30deg);
+}
+
+.load3 {
+    transform: rotate(60deg);
+}
+
+.load1 view:nth-child(1) {
+    animation-delay: 0s;
+}
+
+.load2 view:nth-child(1) {
+    animation-delay: .13s;
+}
+
+.load3 view:nth-child(1) {
+    animation-delay: .26s;
+}
+
+.load1 view:nth-child(2) {
+    animation-delay: .39s;
+}
+
+.load2 view:nth-child(2) {
+    animation-delay: .52s;
+}
+
+.load3 view:nth-child(2) {
+    animation-delay: .65s;
+}
+
+.load1 view:nth-child(3) {
+    animation-delay: .78s;
+}
+
+.load2 view:nth-child(3) {
+    animation-delay: .91s;
+}
+
+.load3 view:nth-child(3) {
+    animation-delay: 1.04s;
+}
+
+.load1 view:nth-child(4) {
+    animation-delay: 1.17s;
+}
+
+.load2 view:nth-child(4) {
+    animation-delay: 1.3s;
+}
+
+.load3 view:nth-child(4) {
+    animation-delay: 1.43s;
+}
+
+@-webkit-keyframes load {
+    0% {
+        opacity: 1;
+    }
+
+    100% {
+        opacity: .2;
+    }
+}

+ 197 - 0
components/uni-notice-bar/uni-notice-bar.js

@@ -0,0 +1,197 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "components/uni-notice-bar/uni-notice-bar" ], {
+    534: function(n, e, t) {
+        t.r(e);
+        var o = t(535), i = t(537);
+        for (var c in i) "default" !== c && function(n) {
+            t.d(e, n, function() {
+                return i[n];
+            });
+        }(c);
+        t(539);
+        var r = t(13), a = Object(r.default)(i.default, o.render, o.staticRenderFns, !1, null, "24a05de4", null, !1, o.components, void 0);
+        a.options.__file = "components/uni-notice-bar/uni-notice-bar.vue", e.default = a.exports;
+    },
+    535: function(n, e, t) {
+        t.r(e);
+        var o = t(536);
+        t.d(e, "render", function() {
+            return o.render;
+        }), t.d(e, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), t.d(e, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), t.d(e, "components", function() {
+            return o.components;
+        });
+    },
+    536: function(n, e, t) {
+        var o;
+        t.r(e), t.d(e, "render", function() {
+            return i;
+        }), t.d(e, "staticRenderFns", function() {
+            return r;
+        }), t.d(e, "recyclableRender", function() {
+            return c;
+        }), t.d(e, "components", function() {
+            return o;
+        });
+        try {
+            o = {
+                uniIcons: function() {
+                    return Promise.all([ t.e("common/vendor"), t.e("components/uni-icons/uni-icons") ]).then(t.bind(null, 541));
+                }
+            };
+        } catch (n) {
+            if (-1 === n.message.indexOf("Cannot find module") || -1 === n.message.indexOf(".vue")) throw n;
+            console.error(n.message), console.error("1. 排查组件名称拼写是否正确"), console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"), 
+            console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件");
+        }
+        var i = function() {
+            var n = this;
+            n.$createElement;
+            n._self._c;
+        }, c = !1, r = [];
+        i._withStripped = !0;
+    },
+    537: function(n, e, t) {
+        t.r(e);
+        var o = t(538), i = t.n(o);
+        for (var c in o) "default" !== c && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(c);
+        e.default = i.a;
+    },
+    538: function(n, e, t) {
+        (function(n) {
+            Object.defineProperty(e, "__esModule", {
+                value: !0
+            }), e.default = void 0;
+            var o = {
+                name: "UniNoticeBar",
+                components: {
+                    uniIcons: function() {
+                        Promise.all([ t.e("common/vendor"), t.e("components/uni-icons/uni-icons") ]).then(function() {
+                            return resolve(t(541));
+                        }.bind(null, t)).catch(t.oe);
+                    }
+                },
+                props: {
+                    text: {
+                        type: String,
+                        default: ""
+                    },
+                    moreText: {
+                        type: String,
+                        default: ""
+                    },
+                    backgroundColor: {
+                        type: String,
+                        default: "#fffbe8"
+                    },
+                    speed: {
+                        type: [ String, Number ],
+                        default: 100
+                    },
+                    color: {
+                        type: String,
+                        default: "#de8c17"
+                    },
+                    moreColor: {
+                        type: String,
+                        default: "#999999"
+                    },
+                    single: {
+                        type: [ String, Boolean ],
+                        default: !1
+                    },
+                    scrollable: {
+                        type: [ String, Boolean ],
+                        default: !1
+                    },
+                    showIcon: {
+                        type: [ String, Boolean ],
+                        default: !1
+                    },
+                    showGetMore: {
+                        type: [ String, Boolean ],
+                        default: !1
+                    },
+                    showClose: {
+                        type: [ String, Boolean ],
+                        default: !1
+                    }
+                },
+                data: function() {
+                    return {
+                        textWidth: 0,
+                        boxWidth: 0,
+                        wrapWidth: "",
+                        webviewHide: !1,
+                        elId: "Uni_".concat(Math.ceil(1e6 * Math.random()).toString(36)),
+                        elIdBox: "Uni_".concat(Math.ceil(1e6 * Math.random()).toString(36)),
+                        show: !0,
+                        animationDuration: "none",
+                        animationPlayState: "paused",
+                        animationDelay: "0s"
+                    };
+                },
+                mounted: function() {
+                    var n = this;
+                    this.$nextTick(function() {
+                        n.initSize();
+                    });
+                },
+                methods: {
+                    initSize: function() {
+                        var e = this;
+                        if (this.scrollable) {
+                            var t = [], o = new Promise(function(t, o) {
+                                n.createSelectorQuery().in(e).select("#".concat(e.elId)).boundingClientRect().exec(function(n) {
+                                    e.textWidth = n[0].width, t();
+                                });
+                            }), i = new Promise(function(t, o) {
+                                n.createSelectorQuery().in(e).select("#".concat(e.elIdBox)).boundingClientRect().exec(function(n) {
+                                    e.boxWidth = n[0].width, t();
+                                });
+                            });
+                            t.push(o), t.push(i), Promise.all(t).then(function() {
+                                e.animationDuration = "".concat(e.textWidth / e.speed, "s"), e.animationDelay = "-".concat(e.boxWidth / e.speed, "s"), 
+                                setTimeout(function() {
+                                    e.animationPlayState = "running";
+                                }, 1e3);
+                            });
+                        }
+                    },
+                    loopAnimation: function() {},
+                    clickMore: function() {
+                        this.$emit("getmore");
+                    },
+                    close: function() {
+                        this.show = !1, this.$emit("close");
+                    },
+                    onClick: function() {
+                        this.$emit("click");
+                    }
+                }
+            };
+            e.default = o;
+        }).call(this, t(1).default);
+    },
+    539: function(n, e, t) {
+        t.r(e);
+        var o = t(540), i = t.n(o);
+        for (var c in o) "default" !== c && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(c);
+        e.default = i.a;
+    },
+    540: function(n, e, t) {}
+} ]), (global.webpackJsonp = global.webpackJsonp || []).push([ "components/uni-notice-bar/uni-notice-bar-create-component", {
+    "components/uni-notice-bar/uni-notice-bar-create-component": function(n, e, t) {
+        t("1").createComponent(t(534));
+    }
+}, [ [ "components/uni-notice-bar/uni-notice-bar-create-component" ] ] ]);

+ 6 - 0
components/uni-notice-bar/uni-notice-bar.json

@@ -0,0 +1,6 @@
+{
+    "component": true,
+    "usingComponents": {
+        "uni-icons": "/components/uni-icons/uni-icons"
+    }
+}

+ 13 - 0
components/uni-notice-bar/uni-notice-bar.wxml

@@ -0,0 +1,13 @@
+<view bindtap="__e" class="uni-noticebar data-v-24a05de4" data-event-opts="{{[ [ 'tap',[ [ 'onClick',['$event'] ] ] ] ]}}" style="{{'background-color:'+backgroundColor+';'}}" wx:if="{{show}}">
+    <uni-icons bind:__l="__l" bind:click="__e" class="uni-noticebar-close data-v-24a05de4" color="{{color}}" data-event-opts="{{[ [ '^click',[ ['close'] ] ] ]}}" size="12" type="closefill" vueId="6f6bdfa2-1" wx:if="{{showClose===true||showClose==='true'}}"></uni-icons>
+    <uni-icons bind:__l="__l" class="uni-noticebar-icon data-v-24a05de4" color="{{color}}" size="14" type="sound" vueId="6f6bdfa2-2" wx:if="{{showIcon===true||showIcon==='true'}}"></uni-icons>
+    <view class="{{['uni-noticebar__content-wrapper data-v-24a05de4 vue-ref',scrollable?'uni-noticebar__content-wrapper--scrollable':'',!scrollable&&(single||moreText)?'uni-noticebar__content-wrapper--single':'']}}" data-ref="textBox">
+        <view class="{{['uni-noticebar__content data-v-24a05de4',scrollable?'uni-noticebar__content--scrollable':'',!scrollable&&(single||moreText)?'uni-noticebar__content--single':'']}}" id="{{elIdBox}}">
+            <text class="{{['uni-noticebar__content-text data-v-24a05de4 vue-ref',scrollable?'uni-noticebar__content-text--scrollable':'',!scrollable&&(single||moreText)?'uni-noticebar__content-text--single':'']}}" data-ref="animationEle" id="{{elId}}" style="{{'color:'+color+';'+'width:'+wrapWidth+'px'+';'+'animation-duration:'+animationDuration+';'+'-webkit-animation-duration:'+animationDuration+';'+'animation-play-state:'+(webviewHide?'paused':animationPlayState)+';'+'-webkit-animation-play-state:'+(webviewHide?'paused':animationPlayState)+';'+'animation-delay:'+animationDelay+';'+'-webkit-animation-delay:'+animationDelay+';'}}">{{text}}</text>
+        </view>
+    </view>
+    <view bindtap="__e" class="uni-noticebar__more data-v-24a05de4" data-event-opts="{{[ [ 'tap',[ [ 'clickMore',['$event'] ] ] ] ]}}" wx:if="{{showGetMore===true||showGetMore==='true'}}">
+        <text class="uni-noticebar__more-text data-v-24a05de4" style="{{'color:'+moreColor+';'}}" wx:if="{{moreText}}">{{moreText}}</text>
+        <uni-icons bind:__l="__l" class="data-v-24a05de4" color="{{moreColor}}" size="14" type="arrowright" vueId="6f6bdfa2-3"></uni-icons>
+    </view>
+</view>

+ 102 - 0
components/uni-notice-bar/uni-notice-bar.wxss

@@ -0,0 +1,102 @@
+.uni-noticebar.data-v-24a05de4 {
+    display: flex;
+    width: 100%;
+    box-sizing: border-box;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    flex-direction: row;
+    -webkit-box-align: center;
+    align-items: center;
+    padding: 6px 12px;
+    margin-bottom: 10px;
+}
+
+.uni-noticebar-close.data-v-24a05de4,.uni-noticebar-icon.data-v-24a05de4 {
+    margin-right: 5px;
+}
+
+.uni-noticebar__content-wrapper.data-v-24a05de4 {
+    -webkit-box-flex: 1;
+    flex: 1;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    overflow: hidden;
+}
+
+.uni-noticebar__content-wrapper--single.data-v-24a05de4 {
+    line-height: 18px;
+}
+
+.uni-noticebar__content-wrapper--scrollable.data-v-24a05de4,.uni-noticebar__content-wrapper--single.data-v-24a05de4 {
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    flex-direction: row;
+}
+
+.uni-noticebar__content--scrollable.data-v-24a05de4 {
+    -webkit-box-flex: 1;
+    flex: 1;
+    display: block;
+    overflow: hidden;
+}
+
+.uni-noticebar__content--single.data-v-24a05de4 {
+    display: flex;
+    -webkit-box-flex: 0;
+    flex: none;
+    width: 100%;
+    -webkit-box-pack: center;
+    justify-content: center;
+}
+
+.uni-noticebar__content-text.data-v-24a05de4 {
+    font-size: 14px;
+    line-height: 18px;
+    word-break: break-all;
+}
+
+.uni-noticebar__content-text--single.data-v-24a05de4 {
+    display: inline-block;
+    width: 100%;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.uni-noticebar__content-text--scrollable.data-v-24a05de4 {
+    display: inline-block;
+    white-space: nowrap;
+    padding-left: 100%;
+    animation: notice-data-v-24a05de4 10s linear 0s infinite both;
+    animation-play-state: paused;
+}
+
+.uni-noticebar__more.data-v-24a05de4 {
+    display: -webkit-inline-box;
+    display: -webkit-inline-flex;
+    display: inline-flex;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    flex-direction: row;
+    flex-wrap: nowrap;
+    -webkit-box-align: center;
+    align-items: center;
+    padding-left: 5px;
+}
+
+.uni-noticebar__more-text.data-v-24a05de4 {
+    font-size: 14px;
+}
+
+@-webkit-keyframes notice-data-v-24a05de4 {
+    100% {
+        transform: translate3d(-100%,0,0);
+    }
+}
+
+@keyframes notice-data-v-24a05de4 {
+    100% {
+        transform: translate3d(-100%,0,0);
+    }
+}

+ 148 - 0
components/uni-number-box.js

@@ -0,0 +1,148 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "components/uni-number-box" ], {
+    504: function(e, n, t) {
+        t.r(n);
+        var i = t(505), a = t(507);
+        for (var u in a) "default" !== u && function(e) {
+            t.d(n, e, function() {
+                return a[e];
+            });
+        }(u);
+        t(509);
+        var r = t(13), o = Object(r.default)(a.default, i.render, i.staticRenderFns, !1, null, null, null, !1, i.components, void 0);
+        o.options.__file = "components/uni-number-box.vue", n.default = o.exports;
+    },
+    505: function(e, n, t) {
+        t.r(n);
+        var i = t(506);
+        t.d(n, "render", function() {
+            return i.render;
+        }), t.d(n, "staticRenderFns", function() {
+            return i.staticRenderFns;
+        }), t.d(n, "recyclableRender", function() {
+            return i.recyclableRender;
+        }), t.d(n, "components", function() {
+            return i.components;
+        });
+    },
+    506: function(e, n, t) {
+        t.r(n), t.d(n, "render", function() {
+            return i;
+        }), t.d(n, "staticRenderFns", function() {
+            return u;
+        }), t.d(n, "recyclableRender", function() {
+            return a;
+        }), t.d(n, "components", function() {});
+        var i = function() {
+            var e = this;
+            e.$createElement;
+            e._self._c;
+        }, a = !1, u = [];
+        i._withStripped = !0;
+    },
+    507: function(e, n, t) {
+        t.r(n);
+        var i = t(508), a = t.n(i);
+        for (var u in i) "default" !== u && function(e) {
+            t.d(n, e, function() {
+                return i[e];
+            });
+        }(u);
+        n.default = a.a;
+    },
+    508: function(e, n, t) {
+        Object.defineProperty(n, "__esModule", {
+            value: !0
+        }), n.default = void 0;
+        var i = {
+            name: "uni-number-box",
+            props: {
+                isMax: {
+                    type: Boolean,
+                    default: !1
+                },
+                isMin: {
+                    type: Boolean,
+                    default: !1
+                },
+                index: {
+                    type: Number,
+                    default: 0
+                },
+                value: {
+                    type: Number,
+                    default: 0
+                },
+                min: {
+                    type: Number,
+                    default: -1 / 0
+                },
+                max: {
+                    type: Number,
+                    default: 1 / 0
+                },
+                step: {
+                    type: Number,
+                    default: 1
+                },
+                disabled: {
+                    type: Boolean,
+                    default: !1
+                }
+            },
+            data: function() {
+                return {
+                    inputValue: this.value,
+                    minDisabled: !1,
+                    maxDisabled: !1
+                };
+            },
+            created: function() {
+                this.maxDisabled = this.isMax, this.minDisabled = this.isMin;
+            },
+            computed: {},
+            watch: {
+                inputValue: function(e) {
+                    var n = {
+                        number: e,
+                        index: this.index
+                    };
+                    this.$emit("eventChange", n);
+                }
+            },
+            methods: {
+                _calcValue: function(e) {
+                    var n = this._getDecimalScale(), t = this.inputValue * n, i = 0, a = this.step * n;
+                    "subtract" === e ? ((i = t - a) <= this.min && (this.minDisabled = !0), i < this.min && (i = this.min), 
+                    i < this.max && !0 === this.maxDisabled && (this.maxDisabled = !1)) : "add" === e && ((i = t + a) >= this.max && (this.maxDisabled = !0), 
+                    i > this.max && (i = this.max), i > this.min && !0 === this.minDisabled && (this.minDisabled = !1)), 
+                    i !== t && (this.inputValue = i / n);
+                },
+                _getDecimalScale: function() {
+                    var e = 1;
+                    return ~~this.step !== this.step && (e = Math.pow(10, (this.step + "").split(".")[1].length)), 
+                    e;
+                },
+                _onBlur: function(e) {
+                    var n = e.detail.value;
+                    n ? ((n = +n) > this.max ? n = this.max : n < this.min && (n = this.min), this.inputValue = n) : this.inputValue = 0;
+                }
+            }
+        };
+        n.default = i;
+    },
+    509: function(e, n, t) {
+        t.r(n);
+        var i = t(510), a = t.n(i);
+        for (var u in i) "default" !== u && function(e) {
+            t.d(n, e, function() {
+                return i[e];
+            });
+        }(u);
+        n.default = a.a;
+    },
+    510: function(e, n, t) {}
+} ]), (global.webpackJsonp = global.webpackJsonp || []).push([ "components/uni-number-box-create-component", {
+    "components/uni-number-box-create-component": function(e, n, t) {
+        t("1").createComponent(t(504));
+    }
+}, [ [ "components/uni-number-box-create-component" ] ] ]);

+ 4 - 0
components/uni-number-box.json

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

+ 9 - 0
components/uni-number-box.wxml

@@ -0,0 +1,9 @@
+<view class="uni-numbox">
+    <view bindtap="__e" class="uni-numbox-minus" data-event-opts="{{[ [ 'tap',[ [ '_calcValue',['subtract'] ] ] ] ]}}">
+        <text class="{{['iconfont iconmove',minDisabled?'uni-numbox-disabled':'']}}"></text>
+    </view>
+    <input bindblur="__e" class="uni-numbox-value" data-event-opts="{{[ [ 'blur',[ [ '_onBlur',['$event'] ] ] ] ]}}" disabled="{{disabled}}" type="number" value="{{inputValue}}"></input>
+    <view bindtap="__e" class="uni-numbox-plus" data-event-opts="{{[ [ 'tap',[ [ '_calcValue',['add'] ] ] ] ]}}">
+        <text class="{{['iconfont iconadd',maxDisabled?'uni-numbox-disabled':'']}}"></text>
+    </view>
+</view>

+ 51 - 0
components/uni-number-box.wxss

@@ -0,0 +1,51 @@
+.uni-numbox {
+    display: flex;
+    -webkit-box-pack: start;
+    justify-content: flex-start;
+    -webkit-box-align: center;
+    align-items: center;
+    width: 230rpx;
+    height: 70rpx;
+    background: #f5f5f5;
+}
+
+.uni-numbox-minus,.uni-numbox-plus {
+    margin: 0;
+    background-color: #f5f5f5;
+    width: 70rpx;
+    height: 100%;
+    line-height: 70rpx;
+    text-align: center;
+    position: relative;
+}
+
+.uni-numbox-minus .yticon,.uni-numbox-plus .yticon {
+    font-size: 36rpx;
+    color: #555;
+}
+
+.uni-numbox-minus {
+    border-right: none;
+    border-top-left-radius: 6rpx;
+    border-bottom-left-radius: 6rpx;
+}
+
+.uni-numbox-plus {
+    border-left: none;
+    border-top-right-radius: 6rpx;
+    border-bottom-right-radius: 6rpx;
+}
+
+.uni-numbox-value {
+    position: relative;
+    background-color: #f5f5f5;
+    width: 90rpx;
+    height: 50rpx;
+    text-align: center;
+    padding: 0;
+    font-size: 30rpx;
+}
+
+.uni-numbox-disabled.iconfont {
+    color: #d6d6d6;
+}

+ 225 - 0
components/uni-popup/uni-popup.js

@@ -0,0 +1,225 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "components/uni-popup/uni-popup" ], {
+    519: function(n, t, o) {
+        o.r(t);
+        var e = o(520), i = o(522);
+        for (var u in i) "default" !== u && function(n) {
+            o.d(t, n, function() {
+                return i[n];
+            });
+        }(u);
+        o(526);
+        var r = o(13), s = Object(r.default)(i.default, e.render, e.staticRenderFns, !1, null, "7da806a4", null, !1, e.components, void 0);
+        s.options.__file = "components/uni-popup/uni-popup.vue", t.default = s.exports;
+    },
+    520: function(n, t, o) {
+        o.r(t);
+        var e = o(521);
+        o.d(t, "render", function() {
+            return e.render;
+        }), o.d(t, "staticRenderFns", function() {
+            return e.staticRenderFns;
+        }), o.d(t, "recyclableRender", function() {
+            return e.recyclableRender;
+        }), o.d(t, "components", function() {
+            return e.components;
+        });
+    },
+    521: function(n, t, o) {
+        var e;
+        o.r(t), o.d(t, "render", function() {
+            return i;
+        }), o.d(t, "staticRenderFns", function() {
+            return r;
+        }), o.d(t, "recyclableRender", function() {
+            return u;
+        }), o.d(t, "components", function() {
+            return e;
+        });
+        try {
+            e = {
+                uniTransition: function() {
+                    return o.e("components/uni-transition/uni-transition").then(o.bind(null, 556));
+                }
+            };
+        } catch (n) {
+            if (-1 === n.message.indexOf("Cannot find module") || -1 === n.message.indexOf(".vue")) throw n;
+            console.error(n.message), console.error("1. 排查组件名称拼写是否正确"), console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"), 
+            console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件");
+        }
+        var i = function() {
+            var n = this;
+            n.$createElement;
+            n._self._c;
+        }, u = !1, r = [];
+        i._withStripped = !0;
+    },
+    522: function(n, t, o) {
+        o.r(t);
+        var e = o(523), i = o.n(e);
+        for (var u in e) "default" !== u && function(n) {
+            o.d(t, n, function() {
+                return e[n];
+            });
+        }(u);
+        t.default = i.a;
+    },
+    523: function(n, t, o) {
+        Object.defineProperty(t, "__esModule", {
+            value: !0
+        }), t.default = void 0;
+        var e = function(n) {
+            return n && n.__esModule ? n : {
+                default: n
+            };
+        }(o(524)), i = {
+            name: "UniPopup",
+            components: {
+                uniTransition: function() {
+                    o.e("components/uni-transition/uni-transition").then(function() {
+                        return resolve(o(556));
+                    }.bind(null, o)).catch(o.oe);
+                }
+            },
+            props: {
+                animation: {
+                    type: Boolean,
+                    default: !0
+                },
+                type: {
+                    type: String,
+                    default: "center"
+                },
+                maskClick: {
+                    type: Boolean,
+                    default: !0
+                }
+            },
+            provide: function() {
+                return {
+                    popup: this
+                };
+            },
+            mixins: [ e.default ],
+            watch: {
+                type: {
+                    handler: function(n) {
+                        this[this.config[n]]();
+                    },
+                    immediate: !0
+                },
+                maskClick: function(n) {
+                    this.mkclick = n;
+                }
+            },
+            data: function() {
+                return {
+                    duration: 300,
+                    ani: [],
+                    showPopup: !1,
+                    showTrans: !1,
+                    maskClass: {
+                        position: "fixed",
+                        bottom: 0,
+                        top: 0,
+                        left: 0,
+                        right: 0,
+                        backgroundColor: "rgba(0, 0, 0, 0.4)"
+                    },
+                    transClass: {
+                        position: "fixed",
+                        left: 0,
+                        right: 0
+                    },
+                    maskShow: !0,
+                    mkclick: !0,
+                    popupstyle: "top"
+                };
+            },
+            created: function() {
+                this.mkclick = this.maskClick, this.animation ? this.duration = 300 : this.duration = 0;
+            },
+            methods: {
+                clear: function(n) {
+                    n.stopPropagation();
+                },
+                open: function() {
+                    var n = this;
+                    this.showPopup = !0, this.$nextTick(function() {
+                        new Promise(function(t) {
+                            clearTimeout(n.timer), n.timer = setTimeout(function() {
+                                n.showTrans = !0, n.$nextTick(function() {
+                                    t();
+                                });
+                            }, 50);
+                        }).then(function(t) {
+                            clearTimeout(n.msgtimer), n.msgtimer = setTimeout(function() {
+                                n.customOpen && n.customOpen();
+                            }, 100), n.$emit("change", {
+                                show: !0,
+                                type: n.type
+                            });
+                        });
+                    });
+                },
+                close: function(n) {
+                    var t = this;
+                    this.showTrans = !1, this.$nextTick(function() {
+                        t.$emit("change", {
+                            show: !1,
+                            type: t.type
+                        }), clearTimeout(t.timer), t.customOpen && t.customClose(), t.timer = setTimeout(function() {
+                            t.showPopup = !1;
+                        }, 300);
+                    });
+                },
+                onTap: function() {
+                    this.mkclick && this.close();
+                },
+                top: function() {
+                    this.popupstyle = "top", this.ani = [ "slide-top" ], this.transClass = {
+                        position: "fixed",
+                        left: 0,
+                        right: 0
+                    };
+                },
+                bottom: function() {
+                    this.popupstyle = "bottom", this.ani = [ "slide-bottom" ], this.transClass = {
+                        position: "fixed",
+                        left: 0,
+                        right: 0,
+                        bottom: 0
+                    };
+                },
+                center: function() {
+                    this.popupstyle = "center", this.ani = [ "zoom-out", "fade" ], this.transClass = {
+                        position: "fixed",
+                        display: "flex",
+                        flexDirection: "column",
+                        bottom: 0,
+                        left: 0,
+                        right: 0,
+                        top: 0,
+                        justifyContent: "center",
+                        alignItems: "center"
+                    };
+                }
+            }
+        };
+        t.default = i;
+    },
+    526: function(n, t, o) {
+        o.r(t);
+        var e = o(527), i = o.n(e);
+        for (var u in e) "default" !== u && function(n) {
+            o.d(t, n, function() {
+                return e[n];
+            });
+        }(u);
+        t.default = i.a;
+    },
+    527: function(n, t, o) {}
+} ]), (global.webpackJsonp = global.webpackJsonp || []).push([ "components/uni-popup/uni-popup-create-component", {
+    "components/uni-popup/uni-popup-create-component": function(n, t, o) {
+        o("1").createComponent(o(519));
+    }
+}, [ [ "components/uni-popup/uni-popup-create-component" ] ] ]);

+ 6 - 0
components/uni-popup/uni-popup.json

@@ -0,0 +1,6 @@
+{
+    "component": true,
+    "usingComponents": {
+        "uni-transition": "/components/uni-transition/uni-transition"
+    }
+}

+ 8 - 0
components/uni-popup/uni-popup.wxml

@@ -0,0 +1,8 @@
+<view catchtouchmove="__e" class="{{['uni-popup data-v-7da806a4',popupstyle]}}" data-event-opts="{{[ [ 'touchmove',[ [ 'clear',['$event'] ] ] ] ]}}" wx:if="{{showPopup}}">
+    <uni-transition bind:__l="__l" bind:click="__e" class="data-v-7da806a4" data-event-opts="{{[ [ '^click',[ ['onTap'] ] ] ]}}" duration="{{duration}}" modeClass="{{['fade']}}" show="{{showTrans}}" styles="{{maskClass}}" vueId="37594ee2-1" wx:if="{{maskShow}}"></uni-transition>
+    <uni-transition bind:__l="__l" bind:click="__e" class="data-v-7da806a4" data-event-opts="{{[ [ '^click',[ ['onTap'] ] ] ]}}" duration="{{duration}}" modeClass="{{ani}}" show="{{showTrans}}" styles="{{transClass}}" vueId="37594ee2-2" vueSlots="{{['default']}}">
+        <view catchtap="__e" class="uni-popup__wrapper-box data-v-7da806a4" data-event-opts="{{[ [ 'tap',[ [ 'clear',['$event'] ] ] ] ]}}">
+            <slot></slot>
+        </view>
+    </uni-transition>
+</view>

+ 58 - 0
components/uni-popup/uni-popup.wxss

@@ -0,0 +1,58 @@
+.uni-popup.data-v-7da806a4 {
+    position: fixed;
+    z-index: 99;
+}
+
+.uni-popup__mask.data-v-7da806a4 {
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    background-color: rgba(0,0,0,.4);
+    opacity: 0;
+}
+
+.mask-ani.data-v-7da806a4 {
+    transition-property: opacity;
+    transition-duration: .2s;
+}
+
+.uni-bottom-mask.data-v-7da806a4,.uni-center-mask.data-v-7da806a4,.uni-top-mask.data-v-7da806a4 {
+    opacity: 1;
+}
+
+.uni-popup__wrapper.data-v-7da806a4 {
+    display: block;
+    position: absolute;
+}
+
+.top.data-v-7da806a4 {
+    top: 0;
+}
+
+.bottom.data-v-7da806a4 {
+    bottom: 0;
+}
+
+.uni-popup__wrapper-box.data-v-7da806a4 {
+    display: block;
+    position: relative;
+    padding-bottom: env(safe-area-inset-bottom);
+}
+
+.content-ani.data-v-7da806a4 {
+    transition-property: opacity,-webkit-transform;
+    transition-property: transform,opacity;
+    transition-property: transform,opacity,-webkit-transform;
+    transition-duration: .2s;
+}
+
+.uni-bottom-content.data-v-7da806a4,.uni-top-content.data-v-7da806a4 {
+    transform: translateY(0);
+}
+
+.uni-center-content.data-v-7da806a4 {
+    transform: scale(1);
+    opacity: 1;
+}

+ 158 - 0
components/uni-rate/uni-rate.js

@@ -0,0 +1,158 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "components/uni-rate/uni-rate" ], {
+    497: function(n, e, t) {
+        t.r(e);
+        var o = t(498), r = t(500);
+        for (var c in r) "default" !== c && function(n) {
+            t.d(e, n, function() {
+                return r[n];
+            });
+        }(c);
+        t(502);
+        var i = t(13), a = Object(i.default)(r.default, o.render, o.staticRenderFns, !1, null, "b7a28ab8", null, !1, o.components, void 0);
+        a.options.__file = "components/uni-rate/uni-rate.vue", e.default = a.exports;
+    },
+    498: function(n, e, t) {
+        t.r(e);
+        var o = t(499);
+        t.d(e, "render", function() {
+            return o.render;
+        }), t.d(e, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), t.d(e, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), t.d(e, "components", function() {
+            return o.components;
+        });
+    },
+    499: function(n, e, t) {
+        var o;
+        t.r(e), t.d(e, "render", function() {
+            return r;
+        }), t.d(e, "staticRenderFns", function() {
+            return i;
+        }), t.d(e, "recyclableRender", function() {
+            return c;
+        }), t.d(e, "components", function() {
+            return o;
+        });
+        try {
+            o = {
+                uniIcons: function() {
+                    return Promise.all([ t.e("common/vendor"), t.e("components/uni-icons/uni-icons") ]).then(t.bind(null, 541));
+                }
+            };
+        } catch (n) {
+            if (-1 === n.message.indexOf("Cannot find module") || -1 === n.message.indexOf(".vue")) throw n;
+            console.error(n.message), console.error("1. 排查组件名称拼写是否正确"), console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"), 
+            console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件");
+        }
+        var r = function() {
+            var n = this;
+            n.$createElement;
+            n._self._c;
+        }, c = !1, i = [];
+        r._withStripped = !0;
+    },
+    500: function(n, e, t) {
+        t.r(e);
+        var o = t(501), r = t.n(o);
+        for (var c in o) "default" !== c && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(c);
+        e.default = r.a;
+    },
+    501: function(n, e, t) {
+        Object.defineProperty(e, "__esModule", {
+            value: !0
+        }), e.default = void 0;
+        var o = {
+            name: "UniRate",
+            components: {
+                uniIcons: function() {
+                    Promise.all([ t.e("common/vendor"), t.e("components/uni-icons/uni-icons") ]).then(function() {
+                        return resolve(t(541));
+                    }.bind(null, t)).catch(t.oe);
+                }
+            },
+            props: {
+                isFill: {
+                    type: [ Boolean, String ],
+                    default: !0
+                },
+                color: {
+                    type: String,
+                    default: "#ececec"
+                },
+                activeColor: {
+                    type: String,
+                    default: "#ffca3e"
+                },
+                size: {
+                    type: [ Number, String ],
+                    default: 24
+                },
+                value: {
+                    type: [ Number, String ],
+                    default: 0
+                },
+                max: {
+                    type: [ Number, String ],
+                    default: 5
+                },
+                margin: {
+                    type: [ Number, String ],
+                    default: 0
+                },
+                disabled: {
+                    type: [ Boolean, String ],
+                    default: !1
+                }
+            },
+            data: function() {
+                return {
+                    valueSync: ""
+                };
+            },
+            computed: {
+                stars: function() {
+                    for (var n = this.valueSync ? this.valueSync : 0, e = [], t = Math.floor(n), o = Math.ceil(n), r = 0; r < this.max; r++) t > r ? e.push({
+                        activeWitch: "100%"
+                    }) : o - 1 === r ? e.push({
+                        activeWitch: 100 * (n - t) + "%"
+                    }) : e.push({
+                        activeWitch: "0"
+                    });
+                    return console.log("starList[4]: " + e[4].activeWitch), e;
+                }
+            },
+            created: function() {
+                this.valueSync = Number(this.value);
+            },
+            methods: {
+                _onClick: function(n) {
+                    this.disabled || (this.valueSync = n + 1, this.$emit("change", {
+                        value: this.valueSync
+                    }));
+                }
+            }
+        };
+        e.default = o;
+    },
+    502: function(n, e, t) {
+        t.r(e);
+        var o = t(503), r = t.n(o);
+        for (var c in o) "default" !== c && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(c);
+        e.default = r.a;
+    },
+    503: function(n, e, t) {}
+} ]), (global.webpackJsonp = global.webpackJsonp || []).push([ "components/uni-rate/uni-rate-create-component", {
+    "components/uni-rate/uni-rate-create-component": function(n, e, t) {
+        t("1").createComponent(t(497));
+    }
+}, [ [ "components/uni-rate/uni-rate-create-component" ] ] ]);

+ 6 - 0
components/uni-rate/uni-rate.json

@@ -0,0 +1,6 @@
+{
+    "component": true,
+    "usingComponents": {
+        "uni-icons": "/components/uni-icons/uni-icons"
+    }
+}

+ 8 - 0
components/uni-rate/uni-rate.wxml

@@ -0,0 +1,8 @@
+<view class="uni-rate data-v-b7a28ab8">
+    <view bindtap="__e" class="uni-rate__icon data-v-b7a28ab8" data-event-opts="{{[ [ 'tap',[ [ '_onClick',[index] ] ] ] ]}}" style="{{'margin-left:'+margin+'px'+';'}}" wx:for="{{stars}}" wx:for-item="star" wx:key="index">
+        <uni-icons bind:__l="__l" class="data-v-b7a28ab8" color="{{color}}" size="{{size}}" type="{{isFill?'star-filled':'star'}}" vueId="{{'3cadca3c-1-'+index}}"></uni-icons>
+        <view class="uni-rate__icon-on data-v-b7a28ab8" style="{{'width:'+star.activeWitch+';'+'top:'+-size/2+'px'+';'}}">
+            <uni-icons bind:__l="__l" class="data-v-b7a28ab8" color="{{activeColor}}" size="{{size}}" type="star-filled" vueId="{{'3cadca3c-2-'+index}}"></uni-icons>
+        </view>
+    </view>
+</view>

+ 23 - 0
components/uni-rate/uni-rate.wxss

@@ -0,0 +1,23 @@
+.uni-rate.data-v-b7a28ab8 {
+    display: flex;
+    line-height: 0;
+    font-size: 0;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    flex-direction: row;
+}
+
+.uni-rate__icon.data-v-b7a28ab8 {
+    position: relative;
+    line-height: 0;
+    font-size: 0;
+}
+
+.uni-rate__icon-on.data-v-b7a28ab8 {
+    overflow: hidden;
+    position: absolute;
+    top: 0;
+    left: 0;
+    line-height: 1;
+    text-align: left;
+}

+ 232 - 0
components/uni-transition/uni-transition.js

@@ -0,0 +1,232 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "components/uni-transition/uni-transition" ], {
+    556: function(t, n, e) {
+        e.r(n);
+        var r = e(557), o = e(559);
+        for (var i in o) "default" !== i && function(t) {
+            e.d(n, t, function() {
+                return o[t];
+            });
+        }(i);
+        e(561);
+        var a = e(13), c = Object(a.default)(o.default, r.render, r.staticRenderFns, !1, null, null, null, !1, r.components, void 0);
+        c.options.__file = "components/uni-transition/uni-transition.vue", n.default = c.exports;
+    },
+    557: function(t, n, e) {
+        e.r(n);
+        var r = e(558);
+        e.d(n, "render", function() {
+            return r.render;
+        }), e.d(n, "staticRenderFns", function() {
+            return r.staticRenderFns;
+        }), e.d(n, "recyclableRender", function() {
+            return r.recyclableRender;
+        }), e.d(n, "components", function() {
+            return r.components;
+        });
+    },
+    558: function(t, n, e) {
+        e.r(n), e.d(n, "render", function() {
+            return r;
+        }), e.d(n, "staticRenderFns", function() {
+            return i;
+        }), e.d(n, "recyclableRender", function() {
+            return o;
+        }), e.d(n, "components", function() {});
+        var r = function() {
+            var t = this;
+            t.$createElement;
+            t._self._c;
+        }, o = !1, i = [];
+        r._withStripped = !0;
+    },
+    559: function(t, n, e) {
+        e.r(n);
+        var r = e(560), o = e.n(r);
+        for (var i in r) "default" !== i && function(t) {
+            e.d(n, t, function() {
+                return r[t];
+            });
+        }(i);
+        n.default = o.a;
+    },
+    560: function(t, n, e) {
+        function r(t, n) {
+            var e = Object.keys(t);
+            if (Object.getOwnPropertySymbols) {
+                var r = Object.getOwnPropertySymbols(t);
+                n && (r = r.filter(function(n) {
+                    return Object.getOwnPropertyDescriptor(t, n).enumerable;
+                })), e.push.apply(e, r);
+            }
+            return e;
+        }
+        function o(t) {
+            for (var n = 1; n < arguments.length; n++) {
+                var e = null != arguments[n] ? arguments[n] : {};
+                n % 2 ? r(Object(e), !0).forEach(function(n) {
+                    i(t, n, e[n]);
+                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(e)) : r(Object(e)).forEach(function(n) {
+                    Object.defineProperty(t, n, Object.getOwnPropertyDescriptor(e, n));
+                });
+            }
+            return t;
+        }
+        function i(t, n, e) {
+            return n in t ? Object.defineProperty(t, n, {
+                value: e,
+                enumerable: !0,
+                configurable: !0,
+                writable: !0
+            }) : t[n] = e, t;
+        }
+        Object.defineProperty(n, "__esModule", {
+            value: !0
+        }), n.default = void 0;
+        var a = {
+            name: "uniTransition",
+            props: {
+                show: {
+                    type: Boolean,
+                    default: !1
+                },
+                modeClass: {
+                    type: Array,
+                    default: function() {
+                        return [];
+                    }
+                },
+                duration: {
+                    type: Number,
+                    default: 300
+                },
+                styles: {
+                    type: Object,
+                    default: function() {
+                        return {};
+                    }
+                }
+            },
+            data: function() {
+                return {
+                    isShow: !1,
+                    transform: "",
+                    ani: {
+                        in: "",
+                        active: ""
+                    }
+                };
+            },
+            watch: {
+                show: {
+                    handler: function(t) {
+                        t ? this.open() : this.close();
+                    },
+                    immediate: !0
+                }
+            },
+            computed: {
+                stylesObject: function() {
+                    var t = o(o({}, this.styles), {}, {
+                        "transition-duration": this.duration / 1e3 + "s"
+                    }), n = "";
+                    for (var e in t) n += this.toLine(e) + ":" + t[e] + ";";
+                    return n;
+                }
+            },
+            created: function() {},
+            methods: {
+                change: function() {
+                    this.$emit("click", {
+                        detail: this.isShow
+                    });
+                },
+                open: function() {
+                    var t = this;
+                    for (var n in clearTimeout(this.timer), this.isShow = !0, this.transform = "", this.ani.in = "", 
+                    this.getTranfrom(!1)) "opacity" === n ? this.ani.in = "fade-in" : this.transform += "".concat(this.getTranfrom(!1)[n], " ");
+                    this.$nextTick(function() {
+                        setTimeout(function() {
+                            t._animation(!0);
+                        }, 50);
+                    });
+                },
+                close: function(t) {
+                    clearTimeout(this.timer), this._animation(!1);
+                },
+                _animation: function(t) {
+                    var n = this, e = this.getTranfrom(t);
+                    for (var r in this.transform = "", e) "opacity" === r ? this.ani.in = "fade-".concat(t ? "out" : "in") : this.transform += "".concat(e[r], " ");
+                    this.timer = setTimeout(function() {
+                        t || (n.isShow = !1), n.$emit("change", {
+                            detail: n.isShow
+                        });
+                    }, this.duration);
+                },
+                getTranfrom: function(t) {
+                    var n = {
+                        transform: ""
+                    };
+                    return this.modeClass.forEach(function(e) {
+                        switch (e) {
+                          case "fade":
+                            n.opacity = t ? 1 : 0;
+                            break;
+
+                          case "slide-top":
+                            n.transform += "translateY(".concat(t ? "0" : "-100%", ") ");
+                            break;
+
+                          case "slide-right":
+                            n.transform += "translateX(".concat(t ? "0" : "100%", ") ");
+                            break;
+
+                          case "slide-bottom":
+                            n.transform += "translateY(".concat(t ? "0" : "100%", ") ");
+                            break;
+
+                          case "slide-left":
+                            n.transform += "translateX(".concat(t ? "0" : "-100%", ") ");
+                            break;
+
+                          case "zoom-in":
+                            n.transform += "scale(".concat(t ? 1 : .8, ") ");
+                            break;
+
+                          case "zoom-out":
+                            n.transform += "scale(".concat(t ? 1 : 1.2, ") ");
+                        }
+                    }), n;
+                },
+                _modeClassArr: function(t) {
+                    var n = this.modeClass;
+                    if ("string" != typeof n) {
+                        var e = "";
+                        return n.forEach(function(n) {
+                            e += n + "-" + t + ",";
+                        }), e.substr(0, e.length - 1);
+                    }
+                    return n + "-" + t;
+                },
+                toLine: function(t) {
+                    return t.replace(/([A-Z])/g, "-$1").toLowerCase();
+                }
+            }
+        };
+        n.default = a;
+    },
+    561: function(t, n, e) {
+        e.r(n);
+        var r = e(562), o = e.n(r);
+        for (var i in r) "default" !== i && function(t) {
+            e.d(n, t, function() {
+                return r[t];
+            });
+        }(i);
+        n.default = o.a;
+    },
+    562: function(t, n, e) {}
+} ]), (global.webpackJsonp = global.webpackJsonp || []).push([ "components/uni-transition/uni-transition-create-component", {
+    "components/uni-transition/uni-transition-create-component": function(t, n, e) {
+        e("1").createComponent(e(556));
+    }
+}, [ [ "components/uni-transition/uni-transition-create-component" ] ] ]);

+ 4 - 0
components/uni-transition/uni-transition.json

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

+ 3 - 0
components/uni-transition/uni-transition.wxml

@@ -0,0 +1,3 @@
+<view bindtap="__e" class="{{['uni-transition vue-ref',ani.in]}}" data-event-opts="{{[ [ 'tap',[ [ 'change',['$event'] ] ] ] ]}}" data-ref="ani" style="{{'transform:'+transform+';'+stylesObject}}" wx:if="{{isShow}}">
+    <slot></slot>
+</view>

+ 60 - 0
components/uni-transition/uni-transition.wxss

@@ -0,0 +1,60 @@
+.uni-transition {
+    transition-timing-function: ease;
+    transition-duration: .3s;
+    transition-property: opacity,-webkit-transform;
+    transition-property: transform,opacity;
+    transition-property: transform,opacity,-webkit-transform;
+}
+
+.fade-in {
+    opacity: 0;
+}
+
+.fade-active {
+    opacity: 1;
+}
+
+.slide-top-in {
+    transform: translateY(-100%);
+}
+
+.slide-top-active {
+    transform: translateY(0);
+}
+
+.slide-right-in {
+    transform: translateX(100%);
+}
+
+.slide-right-active {
+    transform: translateX(0);
+}
+
+.slide-bottom-in {
+    transform: translateY(100%);
+}
+
+.slide-bottom-active {
+    transform: translateY(0);
+}
+
+.slide-left-in {
+    transform: translateX(-100%);
+}
+
+.slide-left-active {
+    transform: translateX(0);
+    opacity: 1;
+}
+
+.zoom-in-in {
+    transform: scale(.8);
+}
+
+.zoom-out-active {
+    transform: scale(1);
+}
+
+.zoom-out-in {
+    transform: scale(1.2);
+}

+ 116 - 0
components/wangding-pickerAddress/wangding-pickerAddress.js

@@ -0,0 +1,116 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "components/wangding-pickerAddress/wangding-pickerAddress" ], {
+    528: function(e, n, t) {
+        t.r(n);
+        var r = t(529), a = t(531);
+        for (var i in a) "default" !== i && function(e) {
+            t.d(n, e, function() {
+                return a[e];
+            });
+        }(i);
+        var d = t(13), u = Object(d.default)(a.default, r.render, r.staticRenderFns, !1, null, null, null, !1, r.components, void 0);
+        u.options.__file = "components/wangding-pickerAddress/wangding-pickerAddress.vue", 
+        n.default = u.exports;
+    },
+    529: function(e, n, t) {
+        t.r(n);
+        var r = t(530);
+        t.d(n, "render", function() {
+            return r.render;
+        }), t.d(n, "staticRenderFns", function() {
+            return r.staticRenderFns;
+        }), t.d(n, "recyclableRender", function() {
+            return r.recyclableRender;
+        }), t.d(n, "components", function() {
+            return r.components;
+        });
+    },
+    530: function(e, n, t) {
+        t.r(n), t.d(n, "render", function() {
+            return r;
+        }), t.d(n, "staticRenderFns", function() {
+            return i;
+        }), t.d(n, "recyclableRender", function() {
+            return a;
+        }), t.d(n, "components", function() {});
+        var r = function() {
+            var e = this;
+            e.$createElement;
+            e._self._c;
+        }, a = !1, i = [];
+        r._withStripped = !0;
+    },
+    531: function(e, n, t) {
+        t.r(n);
+        var r = t(532), a = t.n(r);
+        for (var i in r) "default" !== i && function(e) {
+            t.d(n, e, function() {
+                return r[e];
+            });
+        }(i);
+        n.default = a.a;
+    },
+    532: function(e, n, t) {
+        Object.defineProperty(n, "__esModule", {
+            value: !0
+        }), n.default = void 0;
+        var r = function(e) {
+            return e && e.__esModule ? e : {
+                default: e
+            };
+        }(t(533)), a = [ "", "", "" ], i = {
+            data: function() {
+                return {
+                    value: [ 0, 0, 0 ],
+                    array: [],
+                    index: 0
+                };
+            },
+            created: function() {
+                this.initSelect();
+            },
+            methods: {
+                initSelect: function() {
+                    this.updateSourceDate().updateAddressDate().$forceUpdate();
+                },
+                columnchange: function(e) {
+                    this.updateSelectIndex(e.detail.column, e.detail.value).updateSourceDate().updateAddressDate().$forceUpdate();
+                },
+                updateSourceDate: function() {
+                    return this.array = [], this.array[0] = r.default.map(function(e) {
+                        return {
+                            name: e.name
+                        };
+                    }), this.array[1] = r.default[this.value[0]].city.map(function(e) {
+                        return {
+                            name: e.name
+                        };
+                    }), this.array[2] = r.default[this.value[0]].city[this.value[1]].area.map(function(e) {
+                        return {
+                            name: e
+                        };
+                    }), this;
+                },
+                updateSelectIndex: function(e, n) {
+                    var t = JSON.parse(JSON.stringify(this.value));
+                    return t[e] = n, 0 === e && (t[1] = 0, t[2] = 0), 1 === e && (t[2] = 0), this.value = t, 
+                    this;
+                },
+                updateAddressDate: function() {
+                    return a[0] = this.array[0][this.value[0]].name, a[1] = this.array[1][this.value[1]].name, 
+                    a[2] = this.array[2][this.value[2]].name, this;
+                },
+                bindPickerChange: function(e) {
+                    return this.$emit("change", {
+                        index: this.value,
+                        data: a
+                    }), this;
+                }
+            }
+        };
+        n.default = i;
+    }
+} ]), (global.webpackJsonp = global.webpackJsonp || []).push([ "components/wangding-pickerAddress/wangding-pickerAddress-create-component", {
+    "components/wangding-pickerAddress/wangding-pickerAddress-create-component": function(e, n, t) {
+        t("1").createComponent(t(528));
+    }
+}, [ [ "components/wangding-pickerAddress/wangding-pickerAddress-create-component" ] ] ]);

+ 4 - 0
components/wangding-pickerAddress/wangding-pickerAddress.json

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

+ 3 - 0
components/wangding-pickerAddress/wangding-pickerAddress.wxml

@@ -0,0 +1,3 @@
+<picker bindchange="__e" bindcolumnchange="__e" data-event-opts="{{[ [ 'change',[ [ 'bindPickerChange',['$event'] ] ] ],[ 'columnchange',[ [ 'columnchange',['$event'] ] ] ] ]}}" mode="multiSelector" range="{{array}}" rangeKey="name" value="{{value}}">
+    <slot></slot>
+</picker>

+ 0 - 0
components/wangding-pickerAddress/wangding-pickerAddress.wxss


+ 148 - 0
pages/address/address.js

@@ -0,0 +1,148 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "pages/address/address" ], {
+    200: function(e, n, t) {
+        (function(e) {
+            function n(e) {
+                return e && e.__esModule ? e : {
+                    default: e
+                };
+            }
+            t(4), n(t(2)), e(n(t(201)).default);
+        }).call(this, t(1).createPage);
+    },
+    201: function(e, n, t) {
+        t.r(n);
+        var d = t(202), r = t(204);
+        for (var s in r) "default" !== s && function(e) {
+            t.d(n, e, function() {
+                return r[e];
+            });
+        }(s);
+        t(207);
+        var a = t(13), i = Object(a.default)(r.default, d.render, d.staticRenderFns, !1, null, null, null, !1, d.components, void 0);
+        i.options.__file = "pages/address/address.vue", n.default = i.exports;
+    },
+    202: function(e, n, t) {
+        t.r(n);
+        var d = t(203);
+        t.d(n, "render", function() {
+            return d.render;
+        }), t.d(n, "staticRenderFns", function() {
+            return d.staticRenderFns;
+        }), t.d(n, "recyclableRender", function() {
+            return d.recyclableRender;
+        }), t.d(n, "components", function() {
+            return d.components;
+        });
+    },
+    203: function(e, n, t) {
+        t.r(n), t.d(n, "render", function() {
+            return d;
+        }), t.d(n, "staticRenderFns", function() {
+            return s;
+        }), t.d(n, "recyclableRender", function() {
+            return r;
+        }), t.d(n, "components", function() {});
+        var d = function() {
+            var e = this;
+            e.$createElement;
+            e._self._c;
+        }, r = !1, s = [];
+        d._withStripped = !0;
+    },
+    204: function(e, n, t) {
+        t.r(n);
+        var d = t(205), r = t.n(d);
+        for (var s in d) "default" !== s && function(e) {
+            t.d(n, e, function() {
+                return d[e];
+            });
+        }(s);
+        n.default = r.a;
+    },
+    205: function(e, n, t) {
+        (function(e) {
+            Object.defineProperty(n, "__esModule", {
+                value: !0
+            }), n.default = void 0;
+            var d = t(206), r = (t(56), {
+                data: function() {
+                    return {
+                        source: 0,
+                        addressList: [],
+                        isShow: !1
+                    };
+                },
+                onLoad: function(e) {
+                    this.source = e.source || 0, this.loadAddress();
+                },
+                methods: {
+                    loadAddress: function() {
+                        var e = this;
+                        (0, d.getAddressList)({
+                            page: 1,
+                            limit: 100
+                        }).then(function(n) {
+                            var t = n.data;
+                            e.addressList = t;
+                        });
+                    },
+                    defaultUp: function(e, n) {
+                        var t = this;
+                        this.addressList = this.addressList.map(function(e) {
+                            return e.is_default = 0, e;
+                        }), this.addressList[n].is_default = 1, (0, d.addressEdit)({
+                            real_name: e.real_name,
+                            phone: e.phone,
+                            address: {
+                                province: e.province,
+                                city: e.city,
+                                district: e.district
+                            },
+                            detail: e.detail,
+                            is_default: 1,
+                            id: e.id,
+                            type: 1
+                        }).then(function(e) {
+                            e.data, t.loadAddress();
+                        }).catch(function(e) {
+                            console.log(e);
+                        });
+                    },
+                    delAddress: function(e) {
+                        var n = this;
+                        (0, d.addressDel)({
+                            id: e.id
+                        }).then(function(e) {
+                            e.data, n.$api.msg("删除成功");
+                        });
+                        var t = this.addressList.indexOf(e);
+                        this.addressList.splice(t, 1);
+                    },
+                    checkAddress: function(n) {
+                        1 == this.source && (this.$api.prePage().addressData = n, e.navigateBack());
+                    },
+                    addAddress: function(n, t) {
+                        e.navigateTo({
+                            url: "/pages/address/addressManage?type=".concat(n, "&data=").concat(JSON.stringify(t))
+                        });
+                    },
+                    refreshList: function() {
+                        this.loadAddress();
+                    }
+                }
+            });
+            n.default = r;
+        }).call(this, t(1).default);
+    },
+    207: function(e, n, t) {
+        t.r(n);
+        var d = t(208), r = t.n(d);
+        for (var s in d) "default" !== s && function(e) {
+            t.d(n, e, function() {
+                return d[e];
+            });
+        }(s);
+        n.default = r.a;
+    },
+    208: function(e, n, t) {}
+}, [ [ 200, "common/runtime", "common/vendor" ] ] ]);

+ 4 - 0
pages/address/address.json

@@ -0,0 +1,4 @@
+{
+    "navigationBarTitleText": "收货地址",
+    "usingComponents": {}
+}

+ 33 - 0
pages/address/address.wxml

@@ -0,0 +1,33 @@
+<view class="content b-t">
+    <view bindtap="__e" class="list" data-event-opts="{{[ [ 'tap',[ [ 'checkAddress',['$0'],[ [ ['addressList','',index] ] ] ] ] ] ]}}" wx:for="{{addressList}}" wx:key="index">
+        <view class="wrapper">
+            <view class="address-box">
+                <text class="name">{{item.real_name}}</text>
+                <text class="mobile">{{item.phone}}</text>
+            </view>
+            <view class="u-box">
+                <text class="address">{{item.province+item.city+item.district+' '+item.detail}}</text>
+            </view>
+        </view>
+        <view class="buttom">
+            <view catchtap="__e" class="default-buttom" data-event-opts="{{[ [ 'tap',[ [ 'defaultUp',['$0',index],[ [ ['addressList','',index] ] ] ] ] ] ]}}">
+                <view class="{{['iconfont iconroundcheckfill checkbox',item.is_default==1?'checked':'']}}"></view>
+                <text class="text">设为默认地址</text>
+            </view>
+            <view class="operation">
+                <view catchtap="__e" data-event-opts="{{[ [ 'tap',[ [ 'addAddress',['edit','$0'],[ [ ['addressList','',index] ] ] ] ] ] ]}}">
+                    <text class="iconfont iconedit"></text>
+                    <text class="text">编辑</text>
+                </view>
+                <view class="blank"></view>
+                <view catchtap="__e" data-event-opts="{{[ [ 'tap',[ [ 'delAddress',['$0'],[ [ ['addressList','',index] ] ] ] ] ] ]}}">
+                    <text class="iconfont icondelete"></text>
+                    <text class="text">删除</text>
+                </view>
+            </view>
+        </view>
+    </view>
+    <view class="flex add-btn">
+        <button bindtap="__e" class="add-btn" data-event-opts="{{[ [ 'tap',[ [ 'addAddress',['add'] ] ] ] ]}}">新增地址</button>
+    </view>
+</view>

+ 132 - 0
pages/address/address.wxss

@@ -0,0 +1,132 @@
+page {
+    padding-bottom: 120rpx;
+    padding-top: 20rpx;
+}
+
+.content {
+    position: relative;
+}
+
+.list {
+    padding: 20rpx 30rpx;
+    background: #fff;
+    margin: 0 20rpx 20rpx;
+}
+
+.list,.list .buttom {
+    -webkit-box-align: center;
+    align-items: center;
+}
+
+.list .buttom {
+    display: flex;
+    -webkit-box-pack: justify;
+    justify-content: space-between;
+    padding-top: 10rpx;
+}
+
+.list .buttom .checkbox {
+    font-size: 44rpx;
+    line-height: 1;
+    padding: 4rpx;
+    color: #c0c4cc;
+    background: #fff;
+    border-radius: 50px;
+}
+
+.list .buttom .checkbox.checked {
+    color: #5dbc7c;
+}
+
+.list .buttom .default-buttom,.list .buttom .operation {
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+}
+
+.list .buttom .operation .blank {
+    width: 30rpx;
+}
+
+.list .buttom .text {
+    padding-left: 10rpx;
+    font-size: 24rpx;
+    color: #666;
+}
+
+.wrapper {
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    -webkit-box-flex: 1;
+    flex: 1;
+    border-bottom: 1px solid #f0f0f0;
+    padding-bottom: 20rpx;
+}
+
+.address-box,.wrapper {
+    display: flex;
+}
+
+.address-box {
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: justify;
+    justify-content: space-between;
+}
+
+.address-box .address {
+    font-size: 30rpx;
+    color: #303133;
+}
+
+.address-box .mobile {
+    font-size: 28rpx;
+    color: #333;
+}
+
+.u-box {
+    font-size: 28rpx;
+    color: #909399;
+    margin-top: 16rpx;
+}
+
+.u-box .name {
+    margin-right: 30rpx;
+}
+
+.icon-bianji {
+    font-size: 40rpx;
+    color: #909399;
+    padding-left: 30rpx;
+}
+
+.add-btn,.icon-bianji {
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    height: 80rpx;
+}
+
+.add-btn {
+    position: fixed;
+    left: 30rpx;
+    right: 30rpx;
+    bottom: 16rpx;
+    z-index: 95;
+    -webkit-box-pack: center;
+    justify-content: center;
+    width: 690rpx;
+}
+
+.add-btn,.btn {
+    font-size: 32rpx;
+    color: #fff;
+    background-color: #5dbc7c;
+    border-radius: 10rpx;
+}
+
+.btn {
+    width: 40%;
+    height: 80rpx;
+}

+ 208 - 0
pages/address/addressManage.js

@@ -0,0 +1,208 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "pages/address/addressManage" ], {
+    217: function(e, n, t) {
+        (function(e) {
+            function n(e) {
+                return e && e.__esModule ? e : {
+                    default: e
+                };
+            }
+            t(4), n(t(2)), e(n(t(218)).default);
+        }).call(this, t(1).createPage);
+    },
+    218: function(e, n, t) {
+        t.r(n);
+        var i = t(219), o = t(221);
+        for (var a in o) "default" !== a && function(e) {
+            t.d(n, e, function() {
+                return o[e];
+            });
+        }(a);
+        t(223);
+        var s = t(13), r = Object(s.default)(o.default, i.render, i.staticRenderFns, !1, null, null, null, !1, i.components, void 0);
+        r.options.__file = "pages/address/addressManage.vue", n.default = r.exports;
+    },
+    219: function(e, n, t) {
+        t.r(n);
+        var i = t(220);
+        t.d(n, "render", function() {
+            return i.render;
+        }), t.d(n, "staticRenderFns", function() {
+            return i.staticRenderFns;
+        }), t.d(n, "recyclableRender", function() {
+            return i.recyclableRender;
+        }), t.d(n, "components", function() {
+            return i.components;
+        });
+    },
+    220: function(e, n, t) {
+        var i;
+        t.r(n), t.d(n, "render", function() {
+            return o;
+        }), t.d(n, "staticRenderFns", function() {
+            return s;
+        }), t.d(n, "recyclableRender", function() {
+            return a;
+        }), t.d(n, "components", function() {
+            return i;
+        });
+        try {
+            i = {
+                uniList: function() {
+                    return t.e("components/uni-list/uni-list").then(t.bind(null, 483));
+                },
+                uniListItem: function() {
+                    return t.e("components/uni-list-item/uni-list-item").then(t.bind(null, 490));
+                }
+            };
+        } catch (e) {
+            if (-1 === e.message.indexOf("Cannot find module") || -1 === e.message.indexOf(".vue")) throw e;
+            console.error(e.message), console.error("1. 排查组件名称拼写是否正确"), console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"), 
+            console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件");
+        }
+        var o = function() {
+            var e = this;
+            e.$createElement;
+            e._self._c, e._isMounted || (e.e0 = function(n) {
+                !e.loading && e.confirm();
+            });
+        }, a = !1, s = [];
+        o._withStripped = !0;
+    },
+    221: function(e, n, t) {
+        t.r(n);
+        var i = t(222), o = t.n(i);
+        for (var a in i) "default" !== a && function(e) {
+            t.d(n, e, function() {
+                return i[e];
+            });
+        }(a);
+        n.default = o.a;
+    },
+    222: function(e, n, t) {
+        (function(e) {
+            Object.defineProperty(n, "__esModule", {
+                value: !0
+            }), n.default = void 0;
+            var i = t(206), o = {
+                components: {
+                    uniList: function() {
+                        t.e("components/uni-list/uni-list").then(function() {
+                            return resolve(t(483));
+                        }.bind(null, t)).catch(t.oe);
+                    },
+                    uniListItem: function() {
+                        t.e("components/uni-list-item/uni-list-item").then(function() {
+                            return resolve(t(490));
+                        }.bind(null, t)).catch(t.oe);
+                    },
+                    pickerAddress: function() {
+                        Promise.all([ t.e("common/vendor"), t.e("components/wangding-pickerAddress/wangding-pickerAddress") ]).then(function() {
+                            return resolve(t(528));
+                        }.bind(null, t)).catch(t.oe);
+                    },
+                    uniPopup: function() {
+                        Promise.all([ t.e("common/vendor"), t.e("components/uni-popup/uni-popup") ]).then(function() {
+                            return resolve(t(519));
+                        }.bind(null, t)).catch(t.oe);
+                    }
+                },
+                data: function() {
+                    return {
+                        addressDetail: "",
+                        addressData: {
+                            name: "",
+                            mobile: "",
+                            address: {
+                                province: "",
+                                city: "",
+                                district: ""
+                            },
+                            area: "",
+                            default: !1
+                        },
+                        loading: !1
+                    };
+                },
+                onLoad: function(n) {
+                    var t = "新增收货地址";
+                    if ("edit" === n.type) {
+                        t = "编辑收货地址";
+                        var i = JSON.parse(n.data);
+                        console.log(i), this.addressData = {
+                            name: i.real_name,
+                            mobile: i.phone,
+                            address: {
+                                province: i.province,
+                                city: i.city,
+                                district: i.district
+                            },
+                            area: i.detail,
+                            default: 1 == i.is_default,
+                            id: i.id
+                        }, this.addressDetail = i.province + i.city + i.district;
+                    }
+                    this.manageType = n.type, e.setNavigationBarTitle({
+                        title: t
+                    });
+                },
+                methods: {
+                    onCityClick: function(e) {
+                        var n = e.data, t = this.addressData.address;
+                        t.province = n[0], t.city = n[1], t.district = n[2], this.addressDetail = n.join("");
+                    },
+                    chooseLocation: function() {
+                        var n = this;
+                        e.chooseLocation({
+                            success: function(e) {
+                                console.log(e), n.addressData.addressName = e.name, n.addressData.address = e.name;
+                            }
+                        });
+                    },
+                    switchChange: function(e) {
+                        this.addressData.default = e.value;
+                    },
+                    confirm: function() {
+                        var n = this;
+                        console.log("1");
+                        var t = this, o = this.addressData;
+                        o.name ? /(^1[3|4|5|7|8][0-9]{9}$)/.test(o.mobile) ? o.address ? o.area ? (this.loading = !0, 
+                        (0, i.addressEdit)({
+                            real_name: o.name,
+                            phone: o.mobile,
+                            address: {
+                                province: o.address.province,
+                                city: o.address.city,
+                                district: o.address.district
+                            },
+                            detail: o.area,
+                            is_default: o.default,
+                            id: o.id || "",
+                            type: 1
+                        }).then(function(n) {
+                            t.$api.prePage().refreshList(), e.showToast({
+                                title: "提交成功",
+                                duration: 2e3
+                            }), setTimeout(function() {
+                                this.loading = !1, e.navigateBack();
+                            }, 800);
+                        }).catch(function(e) {
+                            console.log(e), n.loading = !1;
+                        })) : this.$api.msg("请填写门牌号信息") : this.$api.msg("请在地图选择所在位置") : this.$api.msg("请输入正确的手机号码") : this.$api.msg("请填写收货人姓名");
+                    }
+                }
+            };
+            n.default = o;
+        }).call(this, t(1).default);
+    },
+    223: function(e, n, t) {
+        t.r(n);
+        var i = t(224), o = t.n(i);
+        for (var a in i) "default" !== a && function(e) {
+            t.d(n, e, function() {
+                return i[e];
+            });
+        }(a);
+        n.default = o.a;
+    },
+    224: function(e, n, t) {}
+}, [ [ 217, "common/runtime", "common/vendor" ] ] ]);

+ 9 - 0
pages/address/addressManage.json

@@ -0,0 +1,9 @@
+{
+    "navigationBarTitleText": "新增修改地址",
+    "usingComponents": {
+        "uni-list": "/components/uni-list/uni-list",
+        "uni-list-item": "/components/uni-list-item/uni-list-item",
+        "picker-address": "/components/wangding-pickerAddress/wangding-pickerAddress",
+        "uni-popup": "/components/uni-popup/uni-popup"
+    }
+}

+ 23 - 0
pages/address/addressManage.wxml

@@ -0,0 +1,23 @@
+<view class="content">
+    <view class="row b-b">
+        <text class="tit">联系人</text>
+        <input bindinput="__e" class="input" data-event-opts="{{[ [ 'input',[ [ '__set_model',[ '$0','name','$event',[] ],['addressData'] ] ] ] ]}}" placeholder="收货人姓名" placeholderClass="placeholder" type="text" value="{{addressData.name}}"></input>
+    </view>
+    <view class="row b-b">
+        <text class="tit">手机号</text>
+        <input bindinput="__e" class="input" data-event-opts="{{[ [ 'input',[ [ '__set_model',[ '$0','mobile','$event',[] ],['addressData'] ] ] ] ]}}" placeholder="收货人手机号码" placeholderClass="placeholder" type="number" value="{{addressData.mobile}}"></input>
+    </view>
+    <view class="row b-b">
+        <text class="tit">地址</text>
+        <picker-address bind:__l="__l" bind:change="__e" class="input" data-event-opts="{{[ [ '^change',[ ['onCityClick'] ] ] ]}}" vueId="0e0a4db1-1" vueSlots="{{['default']}}">{{addressDetail||'请选择地址'}}</picker-address>
+        <text class="iconfont iconlocation"></text>
+    </view>
+    <view class="row b-b">
+        <text class="tit">门牌号</text>
+        <input bindinput="__e" class="input" data-event-opts="{{[ [ 'input',[ [ '__set_model',[ '$0','area','$event',[] ],['addressData'] ] ] ] ]}}" placeholder="楼号、门牌" placeholderClass="placeholder" type="text" value="{{addressData.area}}"></input>
+    </view>
+    <uni-list bind:__l="__l" class="margin-t-20" vueId="0e0a4db1-2" vueSlots="{{['default']}}">
+        <uni-list-item bind:__l="__l" bind:switchChange="__e" data-event-opts="{{[ [ '^switchChange',[ ['switchChange'] ] ] ]}}" showArrow="{{false}}" showSwitch="{{true}}" switchChecked="{{addressData.default}}" switchColor="#5dbc7c" title="设为默认" vueId="{{'0e0a4db1-3'+','+'0e0a4db1-2'}}"></uni-list-item>
+    </uni-list>
+    <button bindtap="__e" class="add-btn" data-event-opts="{{[ [ 'tap',[ [ 'e0',['$event'] ] ] ] ]}}">提交</button>
+</view>

+ 66 - 0
pages/address/addressManage.wxss

@@ -0,0 +1,66 @@
+page {
+    background: #f8f8f8;
+    padding-top: 16rpx;
+}
+
+.row {
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    position: relative;
+    padding: 0 30rpx;
+    height: 110rpx;
+    background: #fff;
+}
+
+.row .tit {
+    flex-shrink: 0;
+    width: 120rpx;
+}
+
+.row .input,.row .tit {
+    font-size: 30rpx;
+    color: #303133;
+}
+
+.row .input {
+    -webkit-box-flex: 1;
+    flex: 1;
+}
+
+.row .iconlocation {
+    font-size: 36rpx;
+    color: #909399;
+}
+
+.default-row {
+    margin-top: 16rpx;
+}
+
+.default-row .tit {
+    -webkit-box-flex: 1;
+    flex: 1;
+}
+
+.default-row switch {
+    transform: translateX(16rpx) scale(.9);
+}
+
+.add-btn {
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: center;
+    justify-content: center;
+    width: 690rpx;
+    height: 80rpx;
+    margin: 60rpx auto;
+    font-size: 32rpx;
+    color: #fff;
+    background-color: #5dbc7c;
+    border-radius: 10rpx;
+}
+
+.alert-box {
+    background-color: #fff;
+}

+ 121 - 0
pages/address/shopList.js

@@ -0,0 +1,121 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "pages/address/shopList" ], {
+    209: function(n, e, t) {
+        (function(n) {
+            function e(n) {
+                return n && n.__esModule ? n : {
+                    default: n
+                };
+            }
+            t(4), e(t(2)), n(e(t(210)).default);
+        }).call(this, t(1).createPage);
+    },
+    210: function(n, e, t) {
+        t.r(e);
+        var r = t(211), s = t(213);
+        for (var o in s) "default" !== o && function(n) {
+            t.d(e, n, function() {
+                return s[n];
+            });
+        }(o);
+        t(215);
+        var d = t(13), i = Object(d.default)(s.default, r.render, r.staticRenderFns, !1, null, null, null, !1, r.components, void 0);
+        i.options.__file = "pages/address/shopList.vue", e.default = i.exports;
+    },
+    211: function(n, e, t) {
+        t.r(e);
+        var r = t(212);
+        t.d(e, "render", function() {
+            return r.render;
+        }), t.d(e, "staticRenderFns", function() {
+            return r.staticRenderFns;
+        }), t.d(e, "recyclableRender", function() {
+            return r.recyclableRender;
+        }), t.d(e, "components", function() {
+            return r.components;
+        });
+    },
+    212: function(n, e, t) {
+        t.r(e), t.d(e, "render", function() {
+            return r;
+        }), t.d(e, "staticRenderFns", function() {
+            return o;
+        }), t.d(e, "recyclableRender", function() {
+            return s;
+        }), t.d(e, "components", function() {});
+        var r = function() {
+            var n = this;
+            n.$createElement;
+            n._self._c;
+        }, s = !1, o = [];
+        r._withStripped = !0;
+    },
+    213: function(n, e, t) {
+        t.r(e);
+        var r = t(214), s = t.n(r);
+        for (var o in r) "default" !== o && function(n) {
+            t.d(e, n, function() {
+                return r[n];
+            });
+        }(o);
+        e.default = s.a;
+    },
+    214: function(n, e, t) {
+        (function(n) {
+            Object.defineProperty(e, "__esModule", {
+                value: !0
+            }), e.default = void 0, t(206);
+            var r = {
+                data: function() {
+                    return {
+                        source: 0,
+                        addressList: [],
+                        value: "",
+                        addressListAll: []
+                    };
+                },
+                onLoad: function(n) {
+                  
+                    this.addressListAll = this.addressList =this.$api.prePage().store_list, console.log(this.addressListAll);
+                    this.getlist();
+                },
+                methods: {
+                
+                   getlist(){
+                    var t=this;
+                    wx.request({
+                      url: 'https://sc.manyuanchunjia.com/api/store_list',
+                      success (res) {
+                          console.log(res.data.data.list)
+                        t.addressList=res.data.data.list;
+                      }
+                    })
+                   }, 
+                   
+                    searchAddressList: function() {
+                     
+                        var n = this;
+                        console.log(n.addressListAll);
+                        n.addressList =n.addressListAll.filter(function(e) {
+                            return !!(e.name.indexOf(n.value) >= 0 && n.value) || 0 == n.value.length || void 0;
+                        }), console.log(n.addressList);
+                    },
+                    checkAddress: function(e) {
+                        this.$api.prePage().shopAddress = e, n.navigateBack();
+                    }
+                }
+            };
+            e.default = r;
+        }).call(this, t(1).default);
+    },
+    215: function(n, e, t) {
+        t.r(e);
+        var r = t(216), s = t.n(r);
+        for (var o in r) "default" !== o && function(n) {
+            t.d(e, n, function() {
+                return r[n];
+            });
+        }(o);
+        e.default = s.a;
+    },
+    216: function(n, e, t) {}
+}, [ [ 209, "common/runtime", "common/vendor" ] ] ]);

+ 4 - 0
pages/address/shopList.json

@@ -0,0 +1,4 @@
+{
+    "navigationBarTitleText": "门店列表",
+    "usingComponents": {}
+}

+ 14 - 0
pages/address/shopList.wxml

@@ -0,0 +1,14 @@
+<view class="content b-t">
+    <view bindtap="__e" class="list" data-event-opts="{{[ [ 'tap',[ [ 'checkAddress',['$0'],[ [ ['addressList','',index] ] ] ] ] ] ]}}" wx:for="{{addressList}}" wx:key="index">
+        <view class="wrapper">
+            <view class="address-box">
+                <text class="name">{{add_time}}</text>
+                <text class="mobile">{{item.phone}}</text>
+            </view>
+            <view class="u-box">
+                <view class="address">{{item.address}}</view>
+                <view class="address">{{item.detailed_address}}</view>
+            </view>
+        </view>
+    </view>
+</view>

+ 122 - 0
pages/address/shopList.wxss

@@ -0,0 +1,122 @@
+page {
+    padding-bottom: 120rpx;
+    padding-top: 20rpx;
+}
+
+.content {
+    position: relative;
+}
+
+.list {
+    padding: 20rpx 30rpx;
+    background: #fff;
+    margin: 0 20rpx 20rpx;
+}
+
+.list,.list .buttom {
+    -webkit-box-align: center;
+    align-items: center;
+}
+
+.list .buttom {
+    display: flex;
+    -webkit-box-pack: justify;
+    justify-content: space-between;
+    padding-top: 10rpx;
+}
+
+.list .buttom .checkbox {
+    font-size: 44rpx;
+    line-height: 1;
+    padding: 4rpx;
+    color: #c0c4cc;
+    background: #fff;
+    border-radius: 50px;
+}
+
+.list .buttom .checkbox.checked {
+    color: #5dbc7c;
+}
+
+.list .buttom .default-buttom,.list .buttom .operation {
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+}
+
+.list .buttom .operation .blank {
+    width: 30rpx;
+}
+
+.list .buttom .text {
+    padding-left: 10rpx;
+    font-size: 24rpx;
+    color: #666;
+}
+
+.wrapper {
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    -webkit-box-flex: 1;
+    flex: 1;
+}
+
+.address-box,.wrapper {
+    display: flex;
+}
+
+.address-box {
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: justify;
+    justify-content: space-between;
+}
+
+.address-box .address {
+    font-size: 30rpx;
+    color: #303133;
+}
+
+.address-box .mobile {
+    font-size: 28rpx;
+    color: #333;
+}
+
+.u-box {
+    font-size: 28rpx;
+    color: #909399;
+    margin-top: 16rpx;
+}
+
+.u-box .name {
+    margin-right: 30rpx;
+}
+
+.icon-bianji {
+    font-size: 40rpx;
+    color: #909399;
+    padding-left: 30rpx;
+}
+
+.add-btn,.icon-bianji {
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    height: 80rpx;
+}
+
+.add-btn {
+    position: fixed;
+    left: 30rpx;
+    right: 30rpx;
+    bottom: 16rpx;
+    z-index: 95;
+    -webkit-box-pack: center;
+    justify-content: center;
+    width: 690rpx;
+    font-size: 32rpx;
+    color: #fff;
+    background-color: #5dbc7c;
+    border-radius: 10rpx;
+}

+ 226 - 0
pages/app/gsfh.js

@@ -0,0 +1,226 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "pages/app/gsfh" ], {
+    381: function(n, e, t) {
+        (function(n) {
+            function e(n) {
+                return n && n.__esModule ? n : {
+                    default: n
+                };
+            }
+            t(4), e(t(2)), n(e(t(382)).default);
+        }).call(this, t(1).createPage);
+    },
+    382: function(n, e, t) {
+        t.r(e);
+        var o = t(383), r = t(385);
+        for (var a in r) "default" !== a && function(n) {
+            t.d(e, n, function() {
+                return r[n];
+            });
+        }(a);
+        t(387);
+        var i = t(13), u = Object(i.default)(r.default, o.render, o.staticRenderFns, !1, null, null, null, !1, o.components, void 0);
+        u.options.__file = "pages/app/gsfh.vue", e.default = u.exports;
+    },
+    383: function(n, e, t) {
+        t.r(e);
+        var o = t(384);
+        t.d(e, "render", function() {
+            return o.render;
+        }), t.d(e, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), t.d(e, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), t.d(e, "components", function() {
+            return o.components;
+        });
+    },
+    384: function(n, e, t) {
+        var o;
+        t.r(e), t.d(e, "render", function() {
+            return r;
+        }), t.d(e, "staticRenderFns", function() {
+            return i;
+        }), t.d(e, "recyclableRender", function() {
+            return a;
+        }), t.d(e, "components", function() {
+            return o;
+        });
+        try {
+            o = {
+                uniLoadMore: function() {
+                    return t.e("components/uni-load-more/uni-load-more").then(t.bind(null, 413));
+                }
+            };
+        } catch (n) {
+            if (-1 === n.message.indexOf("Cannot find module") || -1 === n.message.indexOf(".vue")) throw n;
+            console.error(n.message), console.error("1. 排查组件名称拼写是否正确"), console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"), 
+            console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件");
+        }
+        var r = function() {
+            var n = this, e = (n.$createElement, n._self._c, n._f("getMoneyStyle")(n.money));
+            n.$mp.data = Object.assign({}, {
+                $root: {
+                    f0: e
+                }
+            });
+        }, a = !1, i = [];
+        r._withStripped = !0;
+    },
+    385: function(n, e, t) {
+        t.r(e);
+        var o = t(386), r = t.n(o);
+        for (var a in o) "default" !== a && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(a);
+        e.default = r.a;
+    },
+    386: function(n, e, t) {
+        (function(n) {
+            function o(n, e, t, o, r, a, i) {
+                try {
+                    var u = n[a](i), c = u.value;
+                } catch (n) {
+                    return void t(n);
+                }
+                u.done ? e(c) : Promise.resolve(c).then(o, r);
+            }
+            function r(n) {
+                return function() {
+                    var e = this, t = arguments;
+                    return new Promise(function(r, a) {
+                        function i(n) {
+                            o(c, r, a, i, u, "next", n);
+                        }
+                        function u(n) {
+                            o(c, r, a, i, u, "throw", n);
+                        }
+                        var c = n.apply(e, t);
+                        i(void 0);
+                    });
+                };
+            }
+            Object.defineProperty(e, "__esModule", {
+                value: !0
+            }), e.default = void 0;
+            var a = function(n) {
+                return n && n.__esModule ? n : {
+                    default: n
+                };
+            }(t(23)), i = t(247), u = t(354), c = {
+                filters: {
+                    getMoneyStyle: (t(6), t(82)).getMoneyStyle
+                },
+                components: {
+                    empty: function() {
+                        t.e("components/empty").then(function() {
+                            return resolve(t(420));
+                        }.bind(null, t)).catch(t.oe);
+                    },
+                    uniLoadMore: function() {
+                        t.e("components/uni-load-more/uni-load-more").then(function() {
+                            return resolve(t(413));
+                        }.bind(null, t)).catch(t.oe);
+                    }
+                },
+                onReady: function() {
+                    var e = this;
+                    n.createSelectorQuery().select(".content").fields({
+                        size: !0
+                    }, function(n) {
+                        e.maxheight = n.height - Math.floor(n.width / 750 * 398), console.log(e.maxheight);
+                    }).exec();
+                },
+                data: function() {
+                    return {
+                        maxheight: "",
+                        tabCurrentIndex: 0,
+                        navList: [ {
+                            state: 0,
+                            text: "收入",
+                            loadingType: "more",
+                            orderList: [],
+                            page: 1,
+                            limit: 10
+                        } ],
+                        money: "",
+                        freezeMoney: ""
+                    };
+                },
+                onLoad: function(n) {},
+                onShow: function() {
+                    var n = this;
+                    this.loadData(), (0, u.mskList)({}).then(function(e) {
+                        var t = e.data;
+                        n.money = t.user.all_stock_right_bonus;
+                    });
+                },
+                methods: {
+                    navto: function(e) {
+                        n.navigateTo({
+                            url: e
+                        });
+                    },
+                    loadData: function(e) {
+                        var t = this;
+                        return r(a.default.mark(function o() {
+                            var r, u;
+                            return a.default.wrap(function(o) {
+                                for (;;) switch (o.prev = o.next) {
+                                  case 0:
+                                    if (r = t.tabCurrentIndex, (u = t.navList[r]).state, "tabChange" !== e || !0 !== u.loaded) {
+                                        o.next = 5;
+                                        break;
+                                    }
+                                    return o.abrupt("return");
+
+                                  case 5:
+                                    if ("loading" !== u.loadingType) {
+                                        o.next = 7;
+                                        break;
+                                    }
+                                    return o.abrupt("return");
+
+                                  case 7:
+                                    u.loadingType = "loading", (0, i.spreadCommission)({
+                                        page: u.page,
+                                        limit: u.limit
+                                    }, 5).then(function(e) {
+                                        var o = e.data;
+                                        o.length > 0 && (u.orderList = u.orderList.concat(o[0].list), console.log(u.orderList), 
+                                        u.page++), u.limit != o.length ? (u.loadingType = "noMore", n.hideLoading(), t.$set(u, "loaded", !0)) : u.loadingType = "more";
+                                    }).catch(function(n) {
+                                        console.log(n);
+                                    });
+
+                                  case 9:
+                                  case "end":
+                                    return o.stop();
+                                }
+                            }, o);
+                        }))();
+                    },
+                    changeTab: function(n) {
+                        this.tabCurrentIndex = n.target.current, this.loadData("tabChange");
+                    },
+                    tabClick: function(n) {
+                        this.tabCurrentIndex = n;
+                    }
+                }
+            };
+            e.default = c;
+        }).call(this, t(1).default);
+    },
+    387: function(n, e, t) {
+        t.r(e);
+        var o = t(388), r = t.n(o);
+        for (var a in o) "default" !== a && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(a);
+        e.default = r.a;
+    },
+    388: function(n, e, t) {}
+}, [ [ 381, "common/runtime", "common/vendor" ] ] ]);

+ 7 - 0
pages/app/gsfh.json

@@ -0,0 +1,7 @@
+{
+    "navigationBarTitleText": "公司分红",
+    "usingComponents": {
+        "uni-load-more": "/components/uni-load-more/uni-load-more",
+        "empty": "/components/empty"
+    }
+}

+ 31 - 0
pages/app/gsfh.wxml

@@ -0,0 +1,31 @@
+<view class="content">
+    <view class="content-money">
+        <view class="money-box flex">
+            <view>
+                <view class="text">公司分红(元)</view>
+                <view class="money">{{$root.f0}}</view>
+            </view>
+        </view>
+    </view>
+    <swiper bindchange="__e" class="swiper-box" current="{{tabCurrentIndex}}" data-event-opts="{{[ [ 'change',[ [ 'changeTab',['$event'] ] ] ] ]}}" duration="300" style="{{'height:'+maxheight+'px'+';'}}">
+        <swiper-item class="tab-content" wx:for="{{navList}}" wx:for-index="tabIndex" wx:for-item="tabItem" wx:key="tabIndex">
+            <scroll-view bindscrolltolower="__e" class="list-scroll-content" data-event-opts="{{[ [ 'scrolltolower',[ [ 'loadData',['$event'] ] ] ] ]}}" scrollY="{{true}}">
+                <empty bind:__l="__l" vueId="{{'6e0dfa51-1-'+tabIndex}}" wx:if="{{tabItem.loaded===true&&tabItem.orderList.length===0}}"></empty>
+                <view class="order-item flex" wx:for="{{tabItem.orderList}}" wx:key="index">
+                    <view class="title-box">
+                        <view class="title">
+                            <text>{{item.title}}</text>
+                        </view>
+                        <view class="time">
+                            <text>{{item.add_time}}</text>
+                        </view>
+                    </view>
+                    <view class="money">
+                        <text>{{(item.pm==0?'-':'+')+item.number}}</text>
+                    </view>
+                </view>
+                <uni-load-more bind:__l="__l" status="{{tabItem.loadingType}}" vueId="{{'6e0dfa51-2-'+tabIndex}}"></uni-load-more>
+            </scroll-view>
+        </swiper-item>
+    </swiper>
+</view>

+ 150 - 0
pages/app/gsfh.wxss

@@ -0,0 +1,150 @@
+page {
+    background: #fff;
+    height: 100%;
+}
+
+.content-money {
+    padding-bottom: 30rpx;
+    background: #f8f8f8;
+}
+
+.content-money .moneyTx {
+    top: 150rpx;
+}
+
+.content-money .moneyTx,.content-money .moneyTxs {
+    position: absolute;
+    right: 0rpx;
+    width: 150rpx;
+    padding: 10rpx 30rpx;
+    border: 2px solid #fff;
+    border-top-left-radius: 99rpx;
+    border-bottom-left-radius: 99rpx;
+    color: #fff;
+    line-height: 1;
+    font-size: 28rpx;
+}
+
+.content-money .moneyTxs {
+    top: 220rpx;
+}
+
+.content-money .buttom-box {
+    background-color: #fff;
+    text-align: center;
+    padding: 20rpx 0;
+    border-radius: 15rpx;
+    margin: -60rpx 30rpx 0;
+}
+
+.content-money .buttom-box .buttom {
+    font-size: 32rpx;
+    -webkit-box-flex: 1;
+    flex-grow: 1;
+}
+
+.content-money .buttom-box .interval {
+    width: 2px;
+    height: 60rpx;
+    background-color: #eee;
+}
+
+.content-money .buttom-box .icon {
+    height: 50rpx;
+    width: 48rpx;
+    margin: 0 auto;
+}
+
+.content-money .buttom-box .icon .icon-img {
+    width: 100%;
+    height: 100%;
+}
+
+.money-box {
+    background-color: #5dbc7c;
+    padding-top: 25px;
+    height: 368rpx;
+    color: #fff;
+    text-align: center;
+    justify-content: space-around;
+}
+
+.money-box .text {
+    font-size: 24rpx;
+}
+
+.money-box .money {
+    font-size: 56rpx;
+}
+
+.navbar {
+    height: 40px;
+    padding: 0 5px;
+    background: #fff;
+    box-shadow: 0 1px 5px rgba(0,0,0,.06);
+    z-index: 10;
+}
+
+.navbar,.navbar .nav-item {
+    display: flex;
+    position: relative;
+}
+
+.navbar .nav-item {
+    -webkit-box-flex: 1;
+    flex: 1;
+    -webkit-box-pack: center;
+    justify-content: center;
+    -webkit-box-align: center;
+    align-items: center;
+    height: 100%;
+    font-size: 15px;
+    color: #303133;
+}
+
+.navbar .nav-item.current {
+    color: #5dbc7c;
+}
+
+.navbar .nav-item.current:after {
+    content: "";
+    position: absolute;
+    left: 50%;
+    bottom: 0;
+    transform: translateX(-50%);
+    width: 44px;
+    height: 0;
+    border-bottom: 2px solid #5dbc7c;
+}
+
+.swiper-box {
+    padding-top: 10rpx;
+}
+
+.swiper-box .order-item {
+    padding: 20rpx 30rpx;
+    line-height: 1.5;
+}
+
+.swiper-box .order-item .title-box .title {
+    font-size: 32rpx;
+    color: #606266;
+}
+
+.swiper-box .order-item .title-box .time {
+    font-size: 28rpx;
+    color: #909399;
+}
+
+.swiper-box .order-item .money {
+    color: #fd5b23;
+    font-size: 32rpx;
+}
+
+.content,.list-scroll-content {
+    height: 100%;
+}
+
+.content .empty-content {
+    background-color: #fff;
+}

+ 236 - 0
pages/app/orderManage.js

@@ -0,0 +1,236 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "pages/app/orderManage" ], {
+    357: function(e, n, t) {
+        (function(e) {
+            function n(e) {
+                return e && e.__esModule ? e : {
+                    default: e
+                };
+            }
+            t(4), n(t(2)), e(n(t(358)).default);
+        }).call(this, t(1).createPage);
+    },
+    358: function(e, n, t) {
+        t.r(n);
+        var o = t(359), r = t(361);
+        for (var a in r) "default" !== a && function(e) {
+            t.d(n, e, function() {
+                return r[e];
+            });
+        }(a);
+        t(363);
+        var i = t(13), c = Object(i.default)(r.default, o.render, o.staticRenderFns, !1, null, null, null, !1, o.components, void 0);
+        c.options.__file = "pages/app/orderManage.vue", n.default = c.exports;
+    },
+    359: function(e, n, t) {
+        t.r(n);
+        var o = t(360);
+        t.d(n, "render", function() {
+            return o.render;
+        }), t.d(n, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), t.d(n, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), t.d(n, "components", function() {
+            return o.components;
+        });
+    },
+    360: function(e, n, t) {
+        var o;
+        t.r(n), t.d(n, "render", function() {
+            return r;
+        }), t.d(n, "staticRenderFns", function() {
+            return i;
+        }), t.d(n, "recyclableRender", function() {
+            return a;
+        }), t.d(n, "components", function() {
+            return o;
+        });
+        try {
+            o = {
+                uniLoadMore: function() {
+                    return t.e("components/uni-load-more/uni-load-more").then(t.bind(null, 413));
+                }
+            };
+        } catch (e) {
+            if (-1 === e.message.indexOf("Cannot find module") || -1 === e.message.indexOf(".vue")) throw e;
+            console.error(e.message), console.error("1. 排查组件名称拼写是否正确"), console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"), 
+            console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件");
+        }
+        var r = function() {
+            var e = this, n = (e.$createElement, e._self._c, e.__map(e.navList, function(n, t) {
+                return {
+                    $orig: e.__get_orig(n),
+                    l1: e.__map(n.orderList, function(n, t) {
+                        return {
+                            $orig: e.__get_orig(n),
+                            l0: e.__map(n.cartInfo, function(t, o) {
+                                return {
+                                    $orig: e.__get_orig(t),
+                                    m0: 1 === n.cartInfo.length ? e.moneyNum(t.productInfo.price) : null
+                                };
+                            }),
+                            m1: e.moneyNum(n.pay_postage),
+                            m2: e.moneyNum(n.pay_price)
+                        };
+                    })
+                };
+            }));
+            e.$mp.data = Object.assign({}, {
+                $root: {
+                    l2: n
+                }
+            });
+        }, a = !1, i = [];
+        r._withStripped = !0;
+    },
+    361: function(e, n, t) {
+        t.r(n);
+        var o = t(362), r = t.n(o);
+        for (var a in o) "default" !== a && function(e) {
+            t.d(n, e, function() {
+                return o[e];
+            });
+        }(a);
+        n.default = r.a;
+    },
+    362: function(e, n, t) {
+        (function(e) {
+            Object.defineProperty(n, "__esModule", {
+                value: !0
+            }), n.default = void 0;
+            var o = t(354), r = {
+                components: {
+                    uniLoadMore: function() {
+                        t.e("components/uni-load-more/uni-load-more").then(function() {
+                            return resolve(t(413));
+                        }.bind(null, t)).catch(t.oe);
+                    },
+                    empty: function() {
+                        t.e("components/empty").then(function() {
+                            return resolve(t(420));
+                        }.bind(null, t)).catch(t.oe);
+                    }
+                },
+                data: function() {
+                    return {
+                        tabCurrentIndex: 0,
+                        navList: [ {
+                            state: 1,
+                            text: "待发货",
+                            loadingType: "more",
+                            orderList: [],
+                            page: 1,
+                            limit: 10
+                        }, {
+                            state: 2,
+                            text: "待收货",
+                            loadingType: "more",
+                            orderList: [],
+                            page: 1,
+                            limit: 10
+                        }, {
+                            state: 3,
+                            text: "待评价",
+                            loadingType: "more",
+                            orderList: [],
+                            page: 1,
+                            limit: 10
+                        }, {
+                            state: 4,
+                            text: "已完成",
+                            loadingType: "more",
+                            orderList: [],
+                            page: 1,
+                            limit: 10
+                        } ]
+                    };
+                },
+                onLoad: function(e) {
+                    this.tabCurrentIndex = +e.state || 0, 0 == e.state && this.loadData();
+                },
+                methods: {
+                    moneyNum: function(e) {
+                        return +e;
+                    },
+                    loadData: function(n) {
+                        var t = this, r = this.tabCurrentIndex, a = this.navList[r], i = a.state;
+                        "tabChange" === n && !0 === a.loaded || "loading" !== a.loadingType && "noMore" !== a.loadingType && (a.loadingType = "loading", 
+                        (0, o.orderList)({
+                            type: i,
+                            page: a.page,
+                            limit: a.limit
+                        }).then(function(n) {
+                            var o = n.data;
+                            console.log(o);
+                            var r = o.data.map(function(e) {
+                                var n = t.orderStateExp(e.status);
+                                return e.stateTip = n.stateTip, e.stateTipColor = n.stateTipColor, e;
+                            });
+                            a.orderList = a.orderList.concat(r), a.page++, a.limit != o.length ? (a.loadingType = "noMore", 
+                            e.hideLoading(), t.$set(a, "loaded", !0)) : a.loadingType = "more";
+                        }).catch(function(e) {
+                            console.log(e);
+                        }));
+                    },
+                    changeTab: function(e) {
+                        this.tabCurrentIndex = e.target.current, this.loadData("tabChange");
+                    },
+                    tabClick: function(e) {
+                        this.tabCurrentIndex = e;
+                    },
+                    deleteOrder: function(n) {
+                        var t = this;
+                        e.showLoading({
+                            title: "请稍后"
+                        }), setTimeout(function() {
+                            t.navList[t.tabCurrentIndex].orderList.splice(n, 1), e.hideLoading();
+                        }, 600);
+                    },
+                    orderStateExp: function(e) {
+                        var n = "", t = "#fa436a";
+                        switch (+e) {
+                          case 0:
+                            n = "待付款";
+                            break;
+
+                          case 1:
+                            n = "待发货";
+                            break;
+
+                          case 2:
+                            n = "待收货";
+                            break;
+
+                          case 3:
+                            n = "待评价";
+                            break;
+
+                          case 4:
+                            n = "已完成", t = "#5dbc7c";
+                            break;
+
+                          case 9:
+                            n = "订单已关闭", t = "#909399";
+                        }
+                        return {
+                            stateTip: n,
+                            stateTipColor: t
+                        };
+                    }
+                }
+            };
+            n.default = r;
+        }).call(this, t(1).default);
+    },
+    363: function(e, n, t) {
+        t.r(n);
+        var o = t(364), r = t.n(o);
+        for (var a in o) "default" !== a && function(e) {
+            t.d(n, e, function() {
+                return o[e];
+            });
+        }(a);
+        n.default = r.a;
+    },
+    364: function(e, n, t) {}
+}, [ [ 357, "common/runtime", "common/vendor" ] ] ]);

+ 7 - 0
pages/app/orderManage.json

@@ -0,0 +1,7 @@
+{
+    "navigationBarTitleText": "订单管理",
+    "usingComponents": {
+        "uni-load-more": "/components/uni-load-more/uni-load-more",
+        "empty": "/components/empty"
+    }
+}

+ 35 - 0
pages/app/orderManage.wxml

@@ -0,0 +1,35 @@
+<view class="content">
+    <view class="navbar">
+        <view bindtap="__e" class="{{['nav-item',tabCurrentIndex===index?'current':'']}}" data-event-opts="{{[ [ 'tap',[ [ 'tabClick',[index] ] ] ] ]}}" wx:for="{{navList}}" wx:key="index">{{item.text}}</view>
+    </view>
+    <swiper bindchange="__e" class="swiper-box" current="{{tabCurrentIndex}}" data-event-opts="{{[ [ 'change',[ [ 'changeTab',['$event'] ] ] ] ]}}" duration="300">
+        <swiper-item class="tab-content" wx:for="{{$root.l2}}" wx:for-index="tabIndex" wx:for-item="tabItem" wx:key="tabIndex">
+            <scroll-view bindscrolltolower="__e" class="list-scroll-content" data-event-opts="{{[ [ 'scrolltolower',[ [ 'loadData',['$event'] ] ] ] ]}}" scrollY="{{true}}">
+                <empty bind:__l="__l" vueId="{{'7d9191ec-1-'+tabIndex}}" wx:if="{{tabItem[$orig].loaded===true&&tabItem[$orig].orderList.length===0}}"></empty>
+                <view bindtap="__e" class="order-item" data-event-opts="{{[ [ 'tap',[ [ 'goToOrderDetail',['$0'],[ [ ['navList','',tabIndex],['orderList','',index] ] ] ] ] ] ]}}" wx:for="{{tabItem.l1}}" wx:key="index">
+                    <view class="i-top b-b">
+                        <text class="time">{{'订单号:'+item[$orig].order_id}}</text>
+                        <text class="state" style="{{'color:'+item[$orig].stateTipColor+';'}}">{{item[$orig]._status._title}}</text>
+                        <text bindtap="__e" class="del-btn iconfont icondelete" data-event-opts="{{[ [ 'tap',[ [ 'deleteOrder',[index] ] ] ] ]}}" wx:if="{{item[$orig].status===4}}"></text>
+                    </view>
+                    <scroll-view class="goods-box" scrollX="{{true}}" wx:if="{{item[$orig].cartInfo.length>1}}">
+                        <view class="goods-item" wx:for="{{item[$orig].cartInfo}}" wx:for-index="goodsIndex" wx:for-item="goodsItem" wx:key="goodsIndex">
+                            <image class="goods-img" mode="aspectFill" src="{{goodsItem.productInfo.image}}"></image>
+                        </view>
+                    </scroll-view>
+                    <view class="goods-box-single" wx:if="{{item[$orig].cartInfo.length===1}}" wx:for="{{item.l0}}" wx:for-index="goodsIndex" wx:for-item="goodsItem" wx:key="goodsIndex">
+                        <image class="goods-img" mode="aspectFill" src="{{goodsItem[$orig].productInfo.image}}"></image>
+                        <view class="right">
+                            <text class="title clamp">{{goodsItem[$orig].productInfo.store_name}}</text>
+                            <text class="attr-box">{{(goodsItem[$orig].attrInfo?goodsItem[$orig].attrInfo.suk:'')+' x '+goodsItem[$orig].cart_num}}</text>
+                            <text class="price">{{goodsItem.m0}}</text>
+                        </view>
+                    </view>
+                    <view class="price-box">共<text class="num">{{item[$orig].cartInfo.length}}</text>件商品 邮费<text class="price">{{item.m1}}</text>实付款<text class="price">{{item.m2}}</text>
+                    </view>
+                </view>
+                <uni-load-more bind:__l="__l" status="{{tabItem[$orig].loadingType}}" vueId="{{'7d9191ec-2-'+tabIndex}}"></uni-load-more>
+            </scroll-view>
+        </swiper-item>
+    </swiper>
+</view>

+ 376 - 0
pages/app/orderManage.wxss

@@ -0,0 +1,376 @@
+@charset "UTF-8";
+
+.content,page {
+    background: #f8f8f8;
+    height: 100%;
+}
+
+.swiper-box {
+    height: calc(100% - 40px);
+}
+
+.list-scroll-content {
+    height: 100%;
+}
+
+.navbar {
+    height: 40px;
+    padding: 0 5px;
+    background: #fff;
+    box-shadow: 0 1px 5px rgba(0,0,0,.06);
+    z-index: 10;
+}
+
+.navbar,.navbar .nav-item {
+    display: flex;
+    position: relative;
+}
+
+.navbar .nav-item {
+    -webkit-box-flex: 1;
+    flex: 1;
+    -webkit-box-pack: center;
+    justify-content: center;
+    -webkit-box-align: center;
+    align-items: center;
+    height: 100%;
+    font-size: 15px;
+    color: #303133;
+}
+
+.navbar .nav-item.current {
+    color: #5dbc7c;
+}
+
+.navbar .nav-item.current:after {
+    content: "";
+    position: absolute;
+    left: 50%;
+    bottom: 0;
+    transform: translateX(-50%);
+    width: 44px;
+    height: 0;
+    border-bottom: 2px solid #5dbc7c;
+}
+
+.uni-swiper-item {
+    height: auto;
+}
+
+.order-item {
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    padding-left: 30rpx;
+    background: #fff;
+    margin-top: 16rpx;
+}
+
+.order-item,.order-item .i-top {
+    display: flex;
+}
+
+.order-item .i-top {
+    -webkit-box-align: center;
+    align-items: center;
+    height: 80rpx;
+    padding-right: 30rpx;
+    font-size: 28rpx;
+    color: #303133;
+    position: relative;
+}
+
+.order-item .i-top .time {
+    -webkit-box-flex: 1;
+    flex: 1;
+}
+
+.order-item .i-top .state {
+    color: #5dbc7c;
+}
+
+.order-item .i-top .del-btn {
+    padding: 10rpx 0 10rpx 36rpx;
+    font-size: 32rpx;
+    color: #909399;
+    position: relative;
+}
+
+.order-item .i-top .del-btn:after {
+    content: "";
+    width: 0;
+    height: 30rpx;
+    border-left: 1px solid #dcdfe6;
+    position: absolute;
+    left: 20rpx;
+    top: 50%;
+    transform: translateY(-50%);
+}
+
+.order-item .goods-box {
+    height: 160rpx;
+    padding: 20rpx 0;
+    white-space: nowrap;
+}
+
+.order-item .goods-box .goods-item {
+    width: 120rpx;
+    height: 120rpx;
+    display: inline-block;
+    margin-right: 24rpx;
+}
+
+.order-item .goods-box .goods-img {
+    display: block;
+    width: 100%;
+    height: 100%;
+}
+
+.order-item .goods-box-single {
+    display: flex;
+    padding: 20rpx 0;
+}
+
+.order-item .goods-box-single .goods-img {
+    display: block;
+    width: 120rpx;
+    height: 120rpx;
+}
+
+.order-item .goods-box-single .right {
+    -webkit-box-flex: 1;
+    flex: 1;
+    display: flex;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    padding: 0 30rpx 0 24rpx;
+    overflow: hidden;
+}
+
+.order-item .goods-box-single .right .title {
+    font-size: 30rpx;
+    color: #303133;
+    line-height: 1;
+}
+
+.order-item .goods-box-single .right .attr-box {
+    font-size: 26rpx;
+    color: #909399;
+    padding: 10rpx 12rpx;
+}
+
+.order-item .goods-box-single .right .price {
+    font-size: 30rpx;
+    color: #303133;
+}
+
+.order-item .goods-box-single .right .price:before {
+    content: "¥";
+    font-size: 24rpx;
+    margin: 0 2rpx 0 8rpx;
+}
+
+.order-item .price-box {
+    display: flex;
+    -webkit-box-pack: end;
+    justify-content: flex-end;
+    -webkit-box-align: baseline;
+    align-items: baseline;
+    padding: 0 30rpx 20rpx;
+    font-size: 26rpx;
+    color: #909399;
+}
+
+.order-item .price-box .num {
+    margin: 0 8rpx;
+    color: #303133;
+}
+
+.order-item .price-box .price {
+    font-size: 32rpx;
+    color: #303133;
+}
+
+.order-item .price-box .price:before {
+    content: "¥";
+    font-size: 24rpx;
+    margin: 0 2rpx 0 8rpx;
+}
+
+.order-item .action-box {
+    display: flex;
+    -webkit-box-pack: end;
+    justify-content: flex-end;
+    -webkit-box-align: center;
+    align-items: center;
+    height: 100rpx;
+    position: relative;
+    padding-right: 30rpx;
+}
+
+.order-item .action-btn {
+    width: 160rpx;
+    height: 60rpx;
+    margin: 0 0 0 24rpx;
+    padding: 0;
+    text-align: center;
+    line-height: 60rpx;
+    font-size: 26rpx;
+    color: #303133;
+    background: #fff;
+    border-radius: 100px;
+}
+
+.order-item .action-btn:after {
+    border-radius: 100px;
+}
+
+.order-item .action-btn.recom {
+    color: #5dbc7c;
+}
+
+.order-item .action-btn.recom:after {
+    border-color: #5dbc7c;
+}
+
+.order-item .action-btn.evaluate {
+    color: #fd5b23;
+}
+
+.order-item .action-btn.evaluate:after {
+    border-color: #fd5b23;
+}
+
+.uni-load-more {
+    display: flex;
+    -webkit-box-orient: horizontal;
+    -webkit-box-direction: normal;
+    flex-direction: row;
+    height: 80rpx;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: center;
+    justify-content: center;
+}
+
+.uni-load-more__text {
+    font-size: 28rpx;
+    color: #999;
+}
+
+.uni-load-more__img {
+    height: 24px;
+    width: 24px;
+    margin-right: 10px;
+}
+
+.uni-load-more__img>view {
+    position: absolute;
+}
+
+.uni-load-more__img>view view {
+    width: 6px;
+    height: 2px;
+    border-top-left-radius: 1px;
+    border-bottom-left-radius: 1px;
+    background: #999;
+    position: absolute;
+    opacity: .2;
+    transform-origin: 50%;
+    animation: load 1.56s ease infinite;
+}
+
+.uni-load-more__img>view view:nth-child(1) {
+    transform: rotate(90deg);
+    top: 2px;
+    left: 9px;
+}
+
+.uni-load-more__img>view view:nth-child(2) {
+    transform: rotate(180deg);
+    top: 11px;
+    right: 0;
+}
+
+.uni-load-more__img>view view:nth-child(3) {
+    transform: rotate(270deg);
+    bottom: 2px;
+    left: 9px;
+}
+
+.uni-load-more__img>view view:nth-child(4) {
+    top: 11px;
+    left: 0;
+}
+
+.load1,.load2,.load3 {
+    height: 24px;
+    width: 24px;
+}
+
+.load2 {
+    transform: rotate(30deg);
+}
+
+.load3 {
+    transform: rotate(60deg);
+}
+
+.load1 view:nth-child(1) {
+    animation-delay: 0s;
+}
+
+.load2 view:nth-child(1) {
+    animation-delay: .13s;
+}
+
+.load3 view:nth-child(1) {
+    animation-delay: .26s;
+}
+
+.load1 view:nth-child(2) {
+    animation-delay: .39s;
+}
+
+.load2 view:nth-child(2) {
+    animation-delay: .52s;
+}
+
+.load3 view:nth-child(2) {
+    animation-delay: .65s;
+}
+
+.load1 view:nth-child(3) {
+    animation-delay: .78s;
+}
+
+.load2 view:nth-child(3) {
+    animation-delay: .91s;
+}
+
+.load3 view:nth-child(3) {
+    animation-delay: 1.04s;
+}
+
+.load1 view:nth-child(4) {
+    animation-delay: 1.17s;
+}
+
+.load2 view:nth-child(4) {
+    animation-delay: 1.3s;
+}
+
+.load3 view:nth-child(4) {
+    animation-delay: 1.43s;
+}
+
+@-webkit-keyframes load {
+    0% {
+        opacity: 1;
+    }
+
+    100% {
+        opacity: .2;
+    }
+}

+ 252 - 0
pages/app/productAll.js

@@ -0,0 +1,252 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "pages/app/productAll" ], {
+    348: function(e, n, t) {
+        (function(e) {
+            function n(e) {
+                return e && e.__esModule ? e : {
+                    default: e
+                };
+            }
+            t(4), n(t(2)), e(n(t(349)).default);
+        }).call(this, t(1).createPage);
+    },
+    349: function(e, n, t) {
+        t.r(n);
+        var r = t(350), o = t(352);
+        for (var a in o) "default" !== a && function(e) {
+            t.d(n, e, function() {
+                return o[e];
+            });
+        }(a);
+        t(355);
+        var u = t(13), i = Object(u.default)(o.default, r.render, r.staticRenderFns, !1, null, null, null, !1, r.components, void 0);
+        i.options.__file = "pages/app/productAll.vue", n.default = i.exports;
+    },
+    350: function(e, n, t) {
+        t.r(n);
+        var r = t(351);
+        t.d(n, "render", function() {
+            return r.render;
+        }), t.d(n, "staticRenderFns", function() {
+            return r.staticRenderFns;
+        }), t.d(n, "recyclableRender", function() {
+            return r.recyclableRender;
+        }), t.d(n, "components", function() {
+            return r.components;
+        });
+    },
+    351: function(e, n, t) {
+        var r;
+        t.r(n), t.d(n, "render", function() {
+            return o;
+        }), t.d(n, "staticRenderFns", function() {
+            return u;
+        }), t.d(n, "recyclableRender", function() {
+            return a;
+        }), t.d(n, "components", function() {
+            return r;
+        });
+        try {
+            r = {
+                uniLoadMore: function() {
+                    return t.e("components/uni-load-more/uni-load-more").then(t.bind(null, 413));
+                }
+            };
+        } catch (e) {
+            if (-1 === e.message.indexOf("Cannot find module") || -1 === e.message.indexOf(".vue")) throw e;
+            console.error(e.message), console.error("1. 排查组件名称拼写是否正确"), console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"), 
+            console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件");
+        }
+        var o = function() {
+            var e = this;
+            e.$createElement;
+            e._self._c;
+        }, a = !1, u = [];
+        o._withStripped = !0;
+    },
+    352: function(e, n, t) {
+        t.r(n);
+        var r = t(353), o = t.n(r);
+        for (var a in r) "default" !== a && function(e) {
+            t.d(n, e, function() {
+                return r[e];
+            });
+        }(a);
+        n.default = o.a;
+    },
+    353: function(e, n, t) {
+        (function(e) {
+            function r(e, n, t, r, o, a, u) {
+                try {
+                    var i = e[a](u), c = i.value;
+                } catch (e) {
+                    return void t(e);
+                }
+                i.done ? n(c) : Promise.resolve(c).then(r, o);
+            }
+            function o(e) {
+                return function() {
+                    var n = this, t = arguments;
+                    return new Promise(function(o, a) {
+                        function u(e) {
+                            r(c, o, a, u, i, "next", e);
+                        }
+                        function i(e) {
+                            r(c, o, a, u, i, "throw", e);
+                        }
+                        var c = e.apply(n, t);
+                        u(void 0);
+                    });
+                };
+            }
+            function a(e, n) {
+                var t = Object.keys(e);
+                if (Object.getOwnPropertySymbols) {
+                    var r = Object.getOwnPropertySymbols(e);
+                    n && (r = r.filter(function(n) {
+                        return Object.getOwnPropertyDescriptor(e, n).enumerable;
+                    })), t.push.apply(t, r);
+                }
+                return t;
+            }
+            function u(e, n, t) {
+                return n in e ? Object.defineProperty(e, n, {
+                    value: t,
+                    enumerable: !0,
+                    configurable: !0,
+                    writable: !0
+                }) : e[n] = t, e;
+            }
+            Object.defineProperty(n, "__esModule", {
+                value: !0
+            }), n.default = void 0;
+            var i = function(e) {
+                return e && e.__esModule ? e : {
+                    default: e
+                };
+            }(t(23)), c = t(354), l = (t(27), t(6)), s = {
+                filters: {
+                    getMoneyStyle: t(82).getMoneyStyle
+                },
+                components: {
+                    empty: function() {
+                        t.e("components/empty").then(function() {
+                            return resolve(t(420));
+                        }.bind(null, t)).catch(t.oe);
+                    },
+                    uniLoadMore: function() {
+                        t.e("components/uni-load-more/uni-load-more").then(function() {
+                            return resolve(t(413));
+                        }.bind(null, t)).catch(t.oe);
+                    }
+                },
+                computed: function(e) {
+                    for (var n = 1; n < arguments.length; n++) {
+                        var t = null != arguments[n] ? arguments[n] : {};
+                        n % 2 ? a(Object(t), !0).forEach(function(n) {
+                            u(e, n, t[n]);
+                        }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : a(Object(t)).forEach(function(n) {
+                            Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(t, n));
+                        });
+                    }
+                    return e;
+                }({}, (0, l.mapState)("user", [ "userInfo" ])),
+                onReady: function() {},
+                data: function() {
+                    return {
+                        maxheight: "",
+                        tabCurrentIndex: 0,
+                        userData: {},
+                        userCode: {},
+                        navList: [ {
+                            state: 0,
+                            loadingType: "more",
+                            num: 0,
+                            orderList: [],
+                            page: 1,
+                            limit: 10
+                        } ]
+                    };
+                },
+                onLoad: function(e) {
+                    this.loadData(), this.mskList();
+                },
+                methods: {
+                    navto: function(n) {
+                        e.navigateTo({
+                            url: n
+                        });
+                    },
+                    mskList: function() {
+                        var e = this;
+                        (0, c.mskList)().then(function(n) {
+                            var t = n.data;
+                            e.userData = t.user, e.userCode = t.user_code;
+                        }).catch(function(e) {
+                            console.log(e);
+                        });
+                    },
+                    loadData: function(n) {
+                        var t = this;
+                        return o(i.default.mark(function r() {
+                            var o, a, u, l;
+                            return i.default.wrap(function(r) {
+                                for (;;) switch (r.prev = r.next) {
+                                  case 0:
+                                    if (o = t, a = o.tabCurrentIndex, u = o.navList[a], l = u.state, "tabChange" !== n || !0 !== u.loaded) {
+                                        r.next = 6;
+                                        break;
+                                    }
+                                    return r.abrupt("return");
+
+                                  case 6:
+                                    if ("loading" !== u.loadingType) {
+                                        r.next = 8;
+                                        break;
+                                    }
+                                    return r.abrupt("return");
+
+                                  case 8:
+                                    u.loadingType = "loading", (0, c.goodsList)({
+                                        page: u.page,
+                                        limit: u.limit,
+                                        grade: l,
+                                        keyword: "",
+                                        sort: ""
+                                    }).then(function(n) {
+                                        var t = n.data;
+                                        t.length > 0 && (u.orderList = u.orderList.concat(t), console.log(u.orderList), 
+                                        u.page++), u.limit != t.length ? (u.loadingType = "noMore", e.hideLoading(), o.$set(u, "loaded", !0)) : u.loadingType = "more";
+                                    }).catch(function(e) {
+                                        console.log(e);
+                                    });
+
+                                  case 10:
+                                  case "end":
+                                    return r.stop();
+                                }
+                            }, r);
+                        }))();
+                    },
+                    changeTab: function(e) {
+                        this.tabCurrentIndex = e.target.current, this.loadData("tabChange");
+                    },
+                    tabClick: function(e) {
+                        this.tabCurrentIndex = e;
+                    }
+                }
+            };
+            n.default = s;
+        }).call(this, t(1).default);
+    },
+    355: function(e, n, t) {
+        t.r(n);
+        var r = t(356), o = t.n(r);
+        for (var a in r) "default" !== a && function(e) {
+            t.d(n, e, function() {
+                return r[e];
+            });
+        }(a);
+        n.default = o.a;
+    },
+    356: function(e, n, t) {}
+}, [ [ 348, "common/runtime", "common/vendor" ] ] ]);

+ 7 - 0
pages/app/productAll.json

@@ -0,0 +1,7 @@
+{
+    "navigationBarTitleText": "商品汇总",
+    "usingComponents": {
+        "uni-load-more": "/components/uni-load-more/uni-load-more",
+        "empty": "/components/empty"
+    }
+}

+ 61 - 0
pages/app/productAll.wxml

@@ -0,0 +1,61 @@
+<view class="content">
+    <view class="content-money">
+        <view class="money-box">
+            <image class="andr-mt-avatar andr-mt-avatarBd" src="{{userInfo.avatar}}"></image>
+            <view class="text">{{userInfo.nickname}}</view>
+        </view>
+        <image mode=" " src="../../static/img/userbg.png" style="width:750rpx;height:81rpx;background-color:#FFFFFF;"></image>
+        <view class="flex buttom-box">
+            <view bindtap="__e" class="buttom" data-event-opts="{{[ [ 'tap',[ [ 'navto',['/pages/app/gsfh'] ] ] ] ]}}">
+                <view class="icon">
+                    <text class="moneyType">¥</text>{{''+userData.all_stock_right_bonus+''}}</view>
+                <text>公司分红</text>
+            </view>
+            <view class="interval"></view>
+            <view bindtap="__e" class="buttom" data-event-opts="{{[ [ 'tap',[ [ 'navto',['/pages/app/zsfh'] ] ] ] ]}}">
+                <view class="icon">
+                    <text class="moneyType">¥</text>{{''+userData.give_stock_right_bonus+''}}</view>
+                <text>赠送分紅</text>
+            </view>
+            <view class="interval"></view>
+            <view bindtap="__e" class="buttom" data-event-opts="{{[ [ 'tap',[ [ 'navto',['/pages/app/qmfh'] ] ] ] ]}}">
+                <view class="icon">
+                    <text class="moneyType">¥</text>{{''+userData.code_stock_right_bonus+''}}</view>
+                <text>全民分紅</text>
+            </view>
+        </view>
+    </view>
+    <view class="content-money padding-b-0 ">
+        <view class="flex buttom-box kcLIst">
+            <view class="buttom">
+                <view class="icon">{{''+userCode.total_stock+''}}</view>
+                <text>库存</text>
+            </view>
+            <view class="interval"></view>
+            <view class="buttom">
+                <view class="icon">{{''+userCode.total_sales+''}}</view>
+                <text>销量</text>
+            </view>
+            <view class="interval"></view>
+        </view>
+    </view>
+    <view class="tab-content goodList" wx:for="{{navList}}" wx:for-index="tabIndex" wx:for-item="tabItem" wx:key="tabIndex">
+        <view class="list-scroll-content">
+            <view class="andr-mt-flex andr-mt-lBox" wx:for="{{tabItem.orderList}}" wx:key="uid">
+                <image class="andr-mt-avatar andr-mt-marR20" src="{{item.goods_pic}}"></image>
+                <view class="andr-mt-flex andr-mt-fdC position-relative">
+                    <text class="andr-mt-lname clamp2">{{item.goods_name}}</text>
+                    <view class="andr-mt-ltime flex goodsDetail">
+                        <view class="goodsMoney">
+                            <view>库存<text class="num">{{item.goods_stock}}</text>件</view>
+                        </view>
+                        <view class="goodsRight">
+                            <view>销量<text class="num">{{item.goods_sales}}</text>件</view>
+                        </view>
+                    </view>
+                </view>
+            </view>
+            <uni-load-more bind:__l="__l" status="{{tabItem.loadingType}}" vueId="{{'5ab0bee6-1-'+tabIndex}}"></uni-load-more>
+        </view>
+    </view>
+</view>

+ 226 - 0
pages/app/productAll.wxss

@@ -0,0 +1,226 @@
+page {
+    background: #fff;
+    height: 100%;
+}
+
+.kcLIst .buttom {
+    line-height: 1.3!important;
+}
+
+.kcLIst .icon {
+    color: #5dbc7c!important;
+}
+
+.goodList {
+    font-size: 24rpx;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #999;
+}
+
+.goodList .goodsDetail {
+    position: absolute;
+    left: 0;
+    bottom: 0;
+    width: 100%;
+}
+
+.goodList .num {
+    color: #5dbc7c!important;
+}
+
+.content-money {
+    padding-bottom: 30rpx;
+    background: #f8f8f8;
+    line-height: 0;
+}
+
+.content-money .moneyTx {
+    position: absolute;
+    top: 150rpx;
+    right: 0rpx;
+    width: 150rpx;
+    padding: 10rpx 30rpx;
+    border: 2px solid #fff;
+    border-top-left-radius: 99rpx;
+    border-bottom-left-radius: 99rpx;
+    color: #fff;
+    line-height: 1;
+    font-size: 28rpx;
+}
+
+.content-money .buttom-box {
+    background-color: #fff;
+    text-align: center;
+    padding: 20rpx 0;
+    border-radius: 15rpx;
+    -webkit-box-align: stretch;
+    align-items: stretch;
+}
+
+.content-money .buttom-box .buttom {
+    -webkit-box-flex: 1;
+    flex-grow: 1;
+    font-size: 24rpx;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #666;
+    line-height: 58rpx;
+}
+
+.content-money .buttom-box .interval {
+    width: 2px;
+    background-color: #eee;
+}
+
+.content-money .buttom-box .icon {
+    font-size: 38rpx;
+    color: #ef041f;
+    font-weight: 700;
+    line-height: 1;
+}
+
+.content-money .buttom-box .icon .moneyType {
+    font-size: 29rpx;
+}
+
+.money-box {
+    background-color: #5dbc7c;
+    padding-top: 25px;
+    line-height: 1.5;
+    display: flex;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: center;
+    justify-content: center;
+    color: #fff;
+}
+
+.money-box .text {
+    font-size: 24rpx;
+}
+
+.money-box .money {
+    font-size: 56rpx;
+}
+
+.navbar {
+    height: 40px;
+    padding: 0 5px;
+    background: #fff;
+    box-shadow: 0 1px 5px rgba(0,0,0,.06);
+    z-index: 10;
+}
+
+.navbar,.navbar .nav-item {
+    display: flex;
+    position: relative;
+}
+
+.navbar .nav-item {
+    -webkit-box-flex: 1;
+    flex: 1;
+    -webkit-box-pack: center;
+    justify-content: center;
+    -webkit-box-align: center;
+    align-items: center;
+    height: 100%;
+    font-size: 15px;
+    color: #303133;
+}
+
+.navbar .nav-item.current {
+    color: #5dbc7c;
+}
+
+.navbar .nav-item.current:after {
+    content: "";
+    position: absolute;
+    left: 50%;
+    bottom: 0;
+    transform: translateX(-50%);
+    width: 44px;
+    height: 0;
+    border-bottom: 2px solid #5dbc7c;
+}
+
+.swiper-box {
+    padding-top: 10rpx;
+}
+
+.swiper-box .order-item {
+    padding: 20rpx 30rpx;
+    line-height: 1.5;
+}
+
+.swiper-box .order-item .title-box .title {
+    font-size: 32rpx;
+    color: #606266;
+}
+
+.swiper-box .order-item .title-box .time {
+    font-size: 28rpx;
+    color: #909399;
+}
+
+.swiper-box .order-item .money {
+    color: #fd5b23;
+    font-size: 32rpx;
+}
+
+.content,.list-scroll-content {
+    height: 100%;
+}
+
+.content .empty-content {
+    background-color: #fff;
+}
+
+.andr-mt-avatar {
+    width: 129rpx;
+    height: 129rpx;
+    border-radius: 999rpx;
+    flex-shrink: 0;
+}
+
+.andr-mt-avatarBd {
+    border: 2px solid #fff;
+}
+
+.andr-mt-cname {
+    font-size: 28rpx;
+    color: #fff;
+}
+
+.andr-mt-flex {
+    display: flex;
+}
+
+.andr-mt-lBox {
+    background-color: #fff;
+    padding: 20rpx;
+    border-bottom: 1px solid #f0f0f0;
+}
+
+.andr-mt-marR20 {
+    margin-right: 20rpx;
+}
+
+.andr-mt-fdC {
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+}
+
+.andr-mt-lname {
+    font-size: 30rpx;
+    color: #3f454b;
+}
+
+.andr-mt-ltime {
+    font-size: 22rpx;
+    color: #999;
+}

+ 226 - 0
pages/app/qmfh.js

@@ -0,0 +1,226 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "pages/app/qmfh" ], {
+    397: function(n, e, t) {
+        (function(n) {
+            function e(n) {
+                return n && n.__esModule ? n : {
+                    default: n
+                };
+            }
+            t(4), e(t(2)), n(e(t(398)).default);
+        }).call(this, t(1).createPage);
+    },
+    398: function(n, e, t) {
+        t.r(e);
+        var o = t(399), r = t(401);
+        for (var a in r) "default" !== a && function(n) {
+            t.d(e, n, function() {
+                return r[n];
+            });
+        }(a);
+        t(403);
+        var i = t(13), u = Object(i.default)(r.default, o.render, o.staticRenderFns, !1, null, null, null, !1, o.components, void 0);
+        u.options.__file = "pages/app/qmfh.vue", e.default = u.exports;
+    },
+    399: function(n, e, t) {
+        t.r(e);
+        var o = t(400);
+        t.d(e, "render", function() {
+            return o.render;
+        }), t.d(e, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), t.d(e, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), t.d(e, "components", function() {
+            return o.components;
+        });
+    },
+    400: function(n, e, t) {
+        var o;
+        t.r(e), t.d(e, "render", function() {
+            return r;
+        }), t.d(e, "staticRenderFns", function() {
+            return i;
+        }), t.d(e, "recyclableRender", function() {
+            return a;
+        }), t.d(e, "components", function() {
+            return o;
+        });
+        try {
+            o = {
+                uniLoadMore: function() {
+                    return t.e("components/uni-load-more/uni-load-more").then(t.bind(null, 413));
+                }
+            };
+        } catch (n) {
+            if (-1 === n.message.indexOf("Cannot find module") || -1 === n.message.indexOf(".vue")) throw n;
+            console.error(n.message), console.error("1. 排查组件名称拼写是否正确"), console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"), 
+            console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件");
+        }
+        var r = function() {
+            var n = this, e = (n.$createElement, n._self._c, n._f("getMoneyStyle")(n.money));
+            n.$mp.data = Object.assign({}, {
+                $root: {
+                    f0: e
+                }
+            });
+        }, a = !1, i = [];
+        r._withStripped = !0;
+    },
+    401: function(n, e, t) {
+        t.r(e);
+        var o = t(402), r = t.n(o);
+        for (var a in o) "default" !== a && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(a);
+        e.default = r.a;
+    },
+    402: function(n, e, t) {
+        (function(n) {
+            function o(n, e, t, o, r, a, i) {
+                try {
+                    var u = n[a](i), c = u.value;
+                } catch (n) {
+                    return void t(n);
+                }
+                u.done ? e(c) : Promise.resolve(c).then(o, r);
+            }
+            function r(n) {
+                return function() {
+                    var e = this, t = arguments;
+                    return new Promise(function(r, a) {
+                        function i(n) {
+                            o(c, r, a, i, u, "next", n);
+                        }
+                        function u(n) {
+                            o(c, r, a, i, u, "throw", n);
+                        }
+                        var c = n.apply(e, t);
+                        i(void 0);
+                    });
+                };
+            }
+            Object.defineProperty(e, "__esModule", {
+                value: !0
+            }), e.default = void 0;
+            var a = function(n) {
+                return n && n.__esModule ? n : {
+                    default: n
+                };
+            }(t(23)), i = t(247), u = t(354), c = {
+                filters: {
+                    getMoneyStyle: (t(6), t(82)).getMoneyStyle
+                },
+                components: {
+                    empty: function() {
+                        t.e("components/empty").then(function() {
+                            return resolve(t(420));
+                        }.bind(null, t)).catch(t.oe);
+                    },
+                    uniLoadMore: function() {
+                        t.e("components/uni-load-more/uni-load-more").then(function() {
+                            return resolve(t(413));
+                        }.bind(null, t)).catch(t.oe);
+                    }
+                },
+                onReady: function() {
+                    var e = this;
+                    n.createSelectorQuery().select(".content").fields({
+                        size: !0
+                    }, function(n) {
+                        e.maxheight = n.height - Math.floor(n.width / 750 * 398), console.log(e.maxheight);
+                    }).exec();
+                },
+                data: function() {
+                    return {
+                        maxheight: "",
+                        tabCurrentIndex: 0,
+                        navList: [ {
+                            state: 0,
+                            text: "收入",
+                            loadingType: "more",
+                            orderList: [],
+                            page: 1,
+                            limit: 10
+                        } ],
+                        money: "",
+                        freezeMoney: ""
+                    };
+                },
+                onLoad: function(n) {},
+                onShow: function() {
+                    var n = this;
+                    this.loadData(), (0, u.mskList)({}).then(function(e) {
+                        var t = e.data;
+                        n.money = t.user.code_stock_right_bonus;
+                    });
+                },
+                methods: {
+                    navto: function(e) {
+                        n.navigateTo({
+                            url: e
+                        });
+                    },
+                    loadData: function(e) {
+                        var t = this;
+                        return r(a.default.mark(function o() {
+                            var r, u;
+                            return a.default.wrap(function(o) {
+                                for (;;) switch (o.prev = o.next) {
+                                  case 0:
+                                    if (r = t.tabCurrentIndex, (u = t.navList[r]).state, "tabChange" !== e || !0 !== u.loaded) {
+                                        o.next = 5;
+                                        break;
+                                    }
+                                    return o.abrupt("return");
+
+                                  case 5:
+                                    if ("loading" !== u.loadingType) {
+                                        o.next = 7;
+                                        break;
+                                    }
+                                    return o.abrupt("return");
+
+                                  case 7:
+                                    u.loadingType = "loading", (0, i.spreadCommission)({
+                                        page: u.page,
+                                        limit: u.limit
+                                    }, 6).then(function(e) {
+                                        var o = e.data;
+                                        o.length > 0 && (u.orderList = u.orderList.concat(o[0].list), console.log(u.orderList), 
+                                        u.page++), u.limit != o.length ? (u.loadingType = "noMore", n.hideLoading(), t.$set(u, "loaded", !0)) : u.loadingType = "more";
+                                    }).catch(function(n) {
+                                        console.log(n);
+                                    });
+
+                                  case 9:
+                                  case "end":
+                                    return o.stop();
+                                }
+                            }, o);
+                        }))();
+                    },
+                    changeTab: function(n) {
+                        this.tabCurrentIndex = n.target.current, this.loadData("tabChange");
+                    },
+                    tabClick: function(n) {
+                        this.tabCurrentIndex = n;
+                    }
+                }
+            };
+            e.default = c;
+        }).call(this, t(1).default);
+    },
+    403: function(n, e, t) {
+        t.r(e);
+        var o = t(404), r = t.n(o);
+        for (var a in o) "default" !== a && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(a);
+        e.default = r.a;
+    },
+    404: function(n, e, t) {}
+}, [ [ 397, "common/runtime", "common/vendor" ] ] ]);

+ 7 - 0
pages/app/qmfh.json

@@ -0,0 +1,7 @@
+{
+    "navigationBarTitleText": "全民分红",
+    "usingComponents": {
+        "uni-load-more": "/components/uni-load-more/uni-load-more",
+        "empty": "/components/empty"
+    }
+}

+ 31 - 0
pages/app/qmfh.wxml

@@ -0,0 +1,31 @@
+<view class="content">
+    <view class="content-money">
+        <view class="money-box flex">
+            <view>
+                <view class="text">全民分红(元)</view>
+                <view class="money">{{$root.f0}}</view>
+            </view>
+        </view>
+    </view>
+    <swiper bindchange="__e" class="swiper-box" current="{{tabCurrentIndex}}" data-event-opts="{{[ [ 'change',[ [ 'changeTab',['$event'] ] ] ] ]}}" duration="300" style="{{'height:'+maxheight+'px'+';'}}">
+        <swiper-item class="tab-content" wx:for="{{navList}}" wx:for-index="tabIndex" wx:for-item="tabItem" wx:key="tabIndex">
+            <scroll-view bindscrolltolower="__e" class="list-scroll-content" data-event-opts="{{[ [ 'scrolltolower',[ [ 'loadData',['$event'] ] ] ] ]}}" scrollY="{{true}}">
+                <empty bind:__l="__l" vueId="{{'6d1979be-1-'+tabIndex}}" wx:if="{{tabItem.loaded===true&&tabItem.orderList.length===0}}"></empty>
+                <view class="order-item flex" wx:for="{{tabItem.orderList}}" wx:key="index">
+                    <view class="title-box">
+                        <view class="title">
+                            <text>{{item.title}}</text>
+                        </view>
+                        <view class="time">
+                            <text>{{item.add_time}}</text>
+                        </view>
+                    </view>
+                    <view class="money">
+                        <text>{{(item.pm==0?'-':'+')+item.number}}</text>
+                    </view>
+                </view>
+                <uni-load-more bind:__l="__l" status="{{tabItem.loadingType}}" vueId="{{'6d1979be-2-'+tabIndex}}"></uni-load-more>
+            </scroll-view>
+        </swiper-item>
+    </swiper>
+</view>

+ 150 - 0
pages/app/qmfh.wxss

@@ -0,0 +1,150 @@
+page {
+    background: #fff;
+    height: 100%;
+}
+
+.content-money {
+    padding-bottom: 30rpx;
+    background: #f8f8f8;
+}
+
+.content-money .moneyTx {
+    top: 150rpx;
+}
+
+.content-money .moneyTx,.content-money .moneyTxs {
+    position: absolute;
+    right: 0rpx;
+    width: 150rpx;
+    padding: 10rpx 30rpx;
+    border: 2px solid #fff;
+    border-top-left-radius: 99rpx;
+    border-bottom-left-radius: 99rpx;
+    color: #fff;
+    line-height: 1;
+    font-size: 28rpx;
+}
+
+.content-money .moneyTxs {
+    top: 220rpx;
+}
+
+.content-money .buttom-box {
+    background-color: #fff;
+    text-align: center;
+    padding: 20rpx 0;
+    border-radius: 15rpx;
+    margin: -60rpx 30rpx 0;
+}
+
+.content-money .buttom-box .buttom {
+    font-size: 32rpx;
+    -webkit-box-flex: 1;
+    flex-grow: 1;
+}
+
+.content-money .buttom-box .interval {
+    width: 2px;
+    height: 60rpx;
+    background-color: #eee;
+}
+
+.content-money .buttom-box .icon {
+    height: 50rpx;
+    width: 48rpx;
+    margin: 0 auto;
+}
+
+.content-money .buttom-box .icon .icon-img {
+    width: 100%;
+    height: 100%;
+}
+
+.money-box {
+    background-color: #5dbc7c;
+    padding-top: 25px;
+    height: 368rpx;
+    color: #fff;
+    text-align: center;
+    justify-content: space-around;
+}
+
+.money-box .text {
+    font-size: 24rpx;
+}
+
+.money-box .money {
+    font-size: 56rpx;
+}
+
+.navbar {
+    height: 40px;
+    padding: 0 5px;
+    background: #fff;
+    box-shadow: 0 1px 5px rgba(0,0,0,.06);
+    z-index: 10;
+}
+
+.navbar,.navbar .nav-item {
+    display: flex;
+    position: relative;
+}
+
+.navbar .nav-item {
+    -webkit-box-flex: 1;
+    flex: 1;
+    -webkit-box-pack: center;
+    justify-content: center;
+    -webkit-box-align: center;
+    align-items: center;
+    height: 100%;
+    font-size: 15px;
+    color: #303133;
+}
+
+.navbar .nav-item.current {
+    color: #5dbc7c;
+}
+
+.navbar .nav-item.current:after {
+    content: "";
+    position: absolute;
+    left: 50%;
+    bottom: 0;
+    transform: translateX(-50%);
+    width: 44px;
+    height: 0;
+    border-bottom: 2px solid #5dbc7c;
+}
+
+.swiper-box {
+    padding-top: 10rpx;
+}
+
+.swiper-box .order-item {
+    padding: 20rpx 30rpx;
+    line-height: 1.5;
+}
+
+.swiper-box .order-item .title-box .title {
+    font-size: 32rpx;
+    color: #606266;
+}
+
+.swiper-box .order-item .title-box .time {
+    font-size: 28rpx;
+    color: #909399;
+}
+
+.swiper-box .order-item .money {
+    color: #fd5b23;
+    font-size: 32rpx;
+}
+
+.content,.list-scroll-content {
+    height: 100%;
+}
+
+.content .empty-content {
+    background-color: #fff;
+}

+ 125 - 0
pages/app/retailRank.js

@@ -0,0 +1,125 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "pages/app/retailRank" ], {
+    373: function(n, t, e) {
+        (function(n) {
+            function t(n) {
+                return n && n.__esModule ? n : {
+                    default: n
+                };
+            }
+            e(4), t(e(2)), n(t(e(374)).default);
+        }).call(this, e(1).createPage);
+    },
+    374: function(n, t, e) {
+        e.r(t);
+        var o = e(375), r = e(377);
+        for (var a in r) "default" !== a && function(n) {
+            e.d(t, n, function() {
+                return r[n];
+            });
+        }(a);
+        e(379);
+        var i = e(13), u = Object(i.default)(r.default, o.render, o.staticRenderFns, !1, null, null, null, !1, o.components, void 0);
+        u.options.__file = "pages/app/retailRank.vue", t.default = u.exports;
+    },
+    375: function(n, t, e) {
+        e.r(t);
+        var o = e(376);
+        e.d(t, "render", function() {
+            return o.render;
+        }), e.d(t, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), e.d(t, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), e.d(t, "components", function() {
+            return o.components;
+        });
+    },
+    376: function(n, t, e) {
+        e.r(t), e.d(t, "render", function() {
+            return o;
+        }), e.d(t, "staticRenderFns", function() {
+            return a;
+        }), e.d(t, "recyclableRender", function() {
+            return r;
+        }), e.d(t, "components", function() {});
+        var o = function() {
+            var n = this, t = (n.$createElement, n._self._c, n._f("parseFloatNum")(n.Top2.wdc || 0)), e = n._f("parseFloatNum")(n.Top1.wdc || 0), o = n._f("parseFloatNum")(n.Top3.wdc || 0), r = n.list.length > 0 ? n.__map(n.list, function(t, e) {
+                return {
+                    $orig: n.__get_orig(t),
+                    f3: n._f("parseFloatNum")(t.wdc)
+                };
+            }) : null;
+            n.$mp.data = Object.assign({}, {
+                $root: {
+                    f0: t,
+                    f1: e,
+                    f2: o,
+                    l0: r
+                }
+            });
+        }, r = !1, a = [];
+        o._withStripped = !0;
+    },
+    377: function(n, t, e) {
+        e.r(t);
+        var o = e(378), r = e.n(o);
+        for (var a in o) "default" !== a && function(n) {
+            e.d(t, n, function() {
+                return o[n];
+            });
+        }(a);
+        t.default = r.a;
+    },
+    378: function(n, t, e) {
+        Object.defineProperty(t, "__esModule", {
+            value: !0
+        }), t.default = void 0;
+        var o = e(20), r = {
+            filters: {
+                parseFloatNum: function(n) {
+                    return parseFloat(n);
+                }
+            },
+            data: function() {
+                return {
+                    Top1: {},
+                    Top2: {},
+                    Top3: {},
+                    list: [],
+                    page: 1,
+                    limit: 20,
+                    loadingType: "more"
+                };
+            },
+            onLoad: function() {
+                this.loadData();
+            },
+            onReachBottom: function() {},
+            methods: {
+                loadData: function() {
+                    var n = this;
+                    "noMore" !== n.loadingType && (n.loadingType = "loading", (0, o.wdcRank)({
+                        page: 1,
+                        limit: n.limit
+                    }).then(function(t) {
+                        var e = t.data;
+                        1 == n.page && (n.Top1 = e[0], n.Top2 = e[1], n.Top3 = e[2]), n.list = n.list.concat(e), 
+                        n.limit != e.length ? n.loadingType = "noMore" : n.loadingType = "more";
+                    }));
+                }
+            }
+        };
+        t.default = r;
+    },
+    379: function(n, t, e) {
+        e.r(t);
+        var o = e(380), r = e.n(o);
+        for (var a in o) "default" !== a && function(n) {
+            e.d(t, n, function() {
+                return o[n];
+            });
+        }(a);
+        t.default = r.a;
+    },
+    380: function(n, t, e) {}
+}, [ [ 373, "common/runtime", "common/vendor" ] ] ]);

+ 4 - 0
pages/app/retailRank.json

@@ -0,0 +1,4 @@
+{
+    "navigationBarTitleText": "销量排行",
+    "usingComponents": {}
+}

+ 51 - 0
pages/app/retailRank.wxml

@@ -0,0 +1,51 @@
+<view class="content">
+    <view class="rank-top">
+        <image class="rank-bg" mode="widthFix" src="https://xls.shuibo.net/img/saleBg.png"></image>
+        <view class="rank-top-box">
+            <view class="rank-top2">
+                <view class="rank-top2-img-box">
+                    <image class="rank-top2-avatar" src="{{Top2.avatar||'/static/error/missing-face.png'}}"></image>
+                    <image class="rank-top2-no2" src="../../static/img/No2.png"></image>
+                </view>
+                <view class="rank-top2-name">{{Top2.nickname||'待定'}}</view>
+                <view class="rank-top2-num">{{$root.f0}}</view>
+            </view>
+            <view class="rank-top1">
+                <view class="rank-top1-img-box">
+                    <image class="rank-top1-avatar" src="{{Top1.avatar||'/static/error/missing-face.png'}}"></image>
+                    <image class="rank-top1-no1" src="../../static/img/No1.png"></image>
+                </view>
+                <view class="rank-top1-name">{{Top1.nickname||'待定'}}</view>
+                <view class="rank-top1-num">{{$root.f1}}</view>
+            </view>
+            <view class="rank-top3">
+                <view class="rank-top3-img-box">
+                    <image class="rank-top3-avatar" src="{{Top3.avatar||'/static/error/missing-face.png'}}"></image>
+                    <image class="rank-top3-no3" src="../../static/img/No3.png"></image>
+                </view>
+                <view class="rank-top3-name">{{Top3.nickname||'待定'}}</view>
+                <view class="rank-top3-num">{{$root.f2}}</view>
+            </view>
+        </view>
+    </view>
+    <view class="rank-box" wx:if="{{list.length>0}}">
+        <view class="rank-frame">
+            <view class="rank-list-title">
+                <view style="width:100rpx;">排名</view>
+                <view class="list-title">用户名</view>
+                <view class="list-sum">WDC数量</view>
+            </view>
+            <view class="rank-list-box" wx:for="{{$root.l0}}" wx:key="index">
+                <view class="rank-list-top">
+                    <image class="rank-list-bg" src="../../static/img/NoBg.png" wx:if="{{index+1<4}}"></image>
+                    <view class="{{[index+1<4?'rank-list-no':'']}}">{{index+1}}</view>
+                </view>
+                <view class="rank-list-user">
+                    <image class="rank-list-avatar" src="{{item[$orig].avatar||'/static/error/missing-face.png'}}"></image>
+                    <text class="rank-list-name">{{item[$orig].nickname}}</text>
+                </view>
+                <view class="rank-list-num">{{item.f3}}</view>
+            </view>
+        </view>
+    </view>
+</view>

+ 301 - 0
pages/app/retailRank.wxss

@@ -0,0 +1,301 @@
+.content .rank-top {
+    background: #ff4d35;
+    padding: 40rpx 16rpx 26rpx;
+    position: relative;
+}
+
+.content .rank-top .rank-bg {
+    width: 100%;
+    display: block;
+}
+
+.content .rank-top .rank-top-box {
+    position: absolute;
+    top: 40rpx;
+    height: 328rpx;
+}
+
+.content .rank-top .rank-top-box,.content .rank-top .rank-top-box .rank-top2 {
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+}
+
+.content .rank-top .rank-top-box .rank-top2 {
+    width: 215rpx;
+    height: 100%;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    -webkit-box-pack: end;
+    justify-content: flex-end;
+    padding-bottom: 33rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top2 .rank-top2-img-box {
+    position: relative;
+    width: 84rpx;
+    height: 84rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top2 .rank-top2-img-box .rank-top2-avatar {
+    width: 84rpx;
+    height: 84rpx;
+    border: 4rpx solid #c5d3e3;
+    border-radius: 50%;
+    background: #fcd012;
+}
+
+.content .rank-top .rank-top-box .rank-top2 .rank-top2-img-box .rank-top2-no2 {
+    width: 39rpx;
+    height: 39rpx;
+    position: absolute;
+    top: -20rpx;
+    left: -14rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top2 .rank-top2-name {
+    padding: 0 5rpx;
+    margin-top: 14rpx;
+    font-size: 24rpx;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #000;
+    width: 100%;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    text-align: center;
+}
+
+.content .rank-top .rank-top-box .rank-top2 .rank-top2-num {
+    margin-top: 16rpx;
+    font-size: 36rpx;
+    font-family: PingFang SC;
+    font-weight: 700;
+    color: #ef041f;
+    line-height: 1;
+}
+
+.content .rank-top .rank-top-box .rank-top1 {
+    width: 290rpx;
+    height: 100%;
+    display: flex;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: end;
+    justify-content: flex-end;
+    padding-bottom: 33rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top1 .rank-top1-img-box {
+    position: relative;
+    width: 127rpx;
+    height: 127rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top1 .rank-top1-img-box .rank-top1-avatar {
+    width: 127rpx;
+    height: 127rpx;
+    border: 8rpx solid #fcd012;
+    border-radius: 50%;
+    background: #fcd012;
+}
+
+.content .rank-top .rank-top-box .rank-top1 .rank-top1-img-box .rank-top1-no1 {
+    width: 52rpx;
+    height: 52rpx;
+    position: absolute;
+    top: -20rpx;
+    left: -14rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top1 .rank-top1-name {
+    padding: 0 5rpx;
+    margin-top: 14rpx;
+    font-size: 32rpx;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #000;
+    width: 100%;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    text-align: center;
+}
+
+.content .rank-top .rank-top-box .rank-top1 .rank-top1-num {
+    margin-top: 16rpx;
+    font-size: 48rpx;
+    font-family: PingFang SC;
+    font-weight: 700;
+    color: #ef041f;
+    line-height: 1;
+}
+
+.content .rank-top .rank-top-box .rank-top3 {
+    width: 215rpx;
+    height: 100%;
+    display: flex;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: end;
+    justify-content: flex-end;
+    padding-bottom: 33rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top3 .rank-top3-img-box {
+    position: relative;
+    width: 82rpx;
+    height: 82rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top3 .rank-top3-img-box .rank-top3-avatar {
+    width: 82rpx;
+    height: 82rpx;
+    border: 4rpx solid #f9a771;
+    border-radius: 50%;
+    background: #fcd012;
+}
+
+.content .rank-top .rank-top-box .rank-top3 .rank-top3-img-box .rank-top3-no3 {
+    width: 39rpx;
+    height: 39rpx;
+    position: absolute;
+    top: -20rpx;
+    left: -14rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top3 .rank-top3-name {
+    padding: 0 5rpx;
+    margin-top: 14rpx;
+    font-size: 24rpx;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #000;
+    width: 100%;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    text-align: center;
+}
+
+.content .rank-top .rank-top-box .rank-top3 .rank-top3-num {
+    margin-top: 16rpx;
+    font-size: 36rpx;
+    font-family: PingFang SC;
+    font-weight: 700;
+    color: #ef041f;
+    line-height: 1;
+}
+
+.content .rank-box {
+    padding: 20rpx 30rpx;
+}
+
+.content .rank-box .rank-frame {
+    background: #fff;
+    border-radius: 10rpx;
+    padding: 20rpx 42rpx;
+}
+
+.content .rank-box .rank-frame .rank-list-title {
+    font-size: 24rpx;
+    font-family: PingFang SC;
+    font-weight: 700;
+    color: #fff;
+    width: 100%;
+    height: 57rpx;
+    background: linear-gradient(90deg,#f85e1f,#f02e32);
+    border-radius: 29rpx;
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    text-align: center;
+    padding: 0 40rpx;
+}
+
+.content .rank-box .rank-frame .rank-list-title .list-title {
+    width: 246rpx;
+}
+
+.content .rank-box .rank-frame .rank-list-title .list-sum {
+    width: 180rpx;
+}
+
+.content .rank-box .rank-frame .rank-list-box {
+    padding: 0 40rpx;
+    height: 84rpx;
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    text-align: center;
+    border-bottom: 1px solid #e8e8e8;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-top {
+    font-size: 30rpx;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #333;
+    width: 100rpx;
+    position: relative;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-top .rank-list-bg {
+    width: 40rpx;
+    height: 54rpx;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-top .rank-list-no {
+    position: absolute;
+    top: 4rpx;
+    width: 100%;
+    color: #fff;
+    font-size: 20rpx;
+    font-family: PingFang SC;
+    font-weight: 700;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-user {
+    width: 246rpx;
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: center;
+    justify-content: center;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-user .rank-list-avatar {
+    width: 43rpx;
+    height: 43rpx;
+    background: #000;
+    border: 4rpx solid #fec900;
+    border-radius: 50%;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-user .rank-list-name {
+    margin-left: 12rpx;
+    font-size: 30rpx;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #ef041f;
+    max-width: 180rpx;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-num {
+    width: 180rpx;
+    font-size: 30rpx;
+    font-family: PingFang SC;
+    font-weight: 700;
+    color: #ef041f;
+}

+ 125 - 0
pages/app/spreadRank.js

@@ -0,0 +1,125 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "pages/app/spreadRank" ], {
+    365: function(n, t, e) {
+        (function(n) {
+            function t(n) {
+                return n && n.__esModule ? n : {
+                    default: n
+                };
+            }
+            e(4), t(e(2)), n(t(e(366)).default);
+        }).call(this, e(1).createPage);
+    },
+    366: function(n, t, e) {
+        e.r(t);
+        var o = e(367), r = e(369);
+        for (var a in r) "default" !== a && function(n) {
+            e.d(t, n, function() {
+                return r[n];
+            });
+        }(a);
+        e(371);
+        var i = e(13), u = Object(i.default)(r.default, o.render, o.staticRenderFns, !1, null, null, null, !1, o.components, void 0);
+        u.options.__file = "pages/app/spreadRank.vue", t.default = u.exports;
+    },
+    367: function(n, t, e) {
+        e.r(t);
+        var o = e(368);
+        e.d(t, "render", function() {
+            return o.render;
+        }), e.d(t, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), e.d(t, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), e.d(t, "components", function() {
+            return o.components;
+        });
+    },
+    368: function(n, t, e) {
+        e.r(t), e.d(t, "render", function() {
+            return o;
+        }), e.d(t, "staticRenderFns", function() {
+            return a;
+        }), e.d(t, "recyclableRender", function() {
+            return r;
+        }), e.d(t, "components", function() {});
+        var o = function() {
+            var n = this, t = (n.$createElement, n._self._c, n._f("parseFloatNum")(n.Top2.wdc || 0)), e = n._f("parseFloatNum")(n.Top1.wdc || 0), o = n._f("parseFloatNum")(n.Top3.wdc || 0), r = n.list.length > 0 ? n.__map(n.list, function(t, e) {
+                return {
+                    $orig: n.__get_orig(t),
+                    f3: n._f("parseFloatNum")(t.team_cts)
+                };
+            }) : null;
+            n.$mp.data = Object.assign({}, {
+                $root: {
+                    f0: t,
+                    f1: e,
+                    f2: o,
+                    l0: r
+                }
+            });
+        }, r = !1, a = [];
+        o._withStripped = !0;
+    },
+    369: function(n, t, e) {
+        e.r(t);
+        var o = e(370), r = e.n(o);
+        for (var a in o) "default" !== a && function(n) {
+            e.d(t, n, function() {
+                return o[n];
+            });
+        }(a);
+        t.default = r.a;
+    },
+    370: function(n, t, e) {
+        Object.defineProperty(t, "__esModule", {
+            value: !0
+        }), t.default = void 0;
+        var o = e(354), r = {
+            filters: {
+                parseFloatNum: function(n) {
+                    return parseFloat(n);
+                }
+            },
+            data: function() {
+                return {
+                    Top1: {},
+                    Top2: {},
+                    Top3: {},
+                    list: [],
+                    page: 1,
+                    limit: 20,
+                    loadingType: "more"
+                };
+            },
+            onLoad: function() {
+                this.loadData();
+            },
+            onReachBottom: function() {},
+            methods: {
+                loadData: function() {
+                    var n = this;
+                    "noMore" !== n.loadingType && (n.loadingType = "loading", (0, o.usersList)({
+                        page: 1,
+                        limit: n.limit
+                    }).then(function(t) {
+                        var e = t.data;
+                        console.log(e), 1 == n.page && (n.Top1 = e[0], n.Top2 = e[1], n.Top3 = e[2]), n.list = n.list.concat(e), 
+                        n.limit != e.length ? n.loadingType = "noMore" : n.loadingType = "more";
+                    }));
+                }
+            }
+        };
+        t.default = r;
+    },
+    371: function(n, t, e) {
+        e.r(t);
+        var o = e(372), r = e.n(o);
+        for (var a in o) "default" !== a && function(n) {
+            e.d(t, n, function() {
+                return o[n];
+            });
+        }(a);
+        t.default = r.a;
+    },
+    372: function(n, t, e) {}
+}, [ [ 365, "common/runtime", "common/vendor" ] ] ]);

+ 4 - 0
pages/app/spreadRank.json

@@ -0,0 +1,4 @@
+{
+    "navigationBarTitleText": "分销排行",
+    "usingComponents": {}
+}

+ 51 - 0
pages/app/spreadRank.wxml

@@ -0,0 +1,51 @@
+<view class="content">
+    <view class="rank-top">
+        <image class="rank-bg" mode="widthFix" src="https://xls.shuibo.net/img/saleBg.png"></image>
+        <view class="rank-top-box">
+            <view class="rank-top2">
+                <view class="rank-top2-img-box">
+                    <image class="rank-top2-avatar" src="{{Top2.avatar||'/static/error/missing-face.png'}}"></image>
+                    <image class="rank-top2-no2" src="../../static/img/No2.png"></image>
+                </view>
+                <view class="rank-top2-name">{{Top2.nickname||'待定'}}</view>
+                <view class="rank-top2-num">{{$root.f0}}</view>
+            </view>
+            <view class="rank-top1">
+                <view class="rank-top1-img-box">
+                    <image class="rank-top1-avatar" src="{{Top1.avatar||'/static/error/missing-face.png'}}"></image>
+                    <image class="rank-top1-no1" src="../../static/img/No1.png"></image>
+                </view>
+                <view class="rank-top1-name">{{Top1.nickname||'待定'}}</view>
+                <view class="rank-top1-num">{{$root.f1}}</view>
+            </view>
+            <view class="rank-top3">
+                <view class="rank-top3-img-box">
+                    <image class="rank-top3-avatar" src="{{Top3.avatar||'/static/error/missing-face.png'}}"></image>
+                    <image class="rank-top3-no3" src="../../static/img/No3.png"></image>
+                </view>
+                <view class="rank-top3-name">{{Top3.nickname||'待定'}}</view>
+                <view class="rank-top3-num">{{$root.f2}}</view>
+            </view>
+        </view>
+    </view>
+    <view class="rank-box" wx:if="{{list.length>0}}">
+        <view class="rank-frame">
+            <view class="rank-list-title">
+                <view style="width:100rpx;">排名</view>
+                <view class="list-title">用户名</view>
+                <view class="list-sum">销售数量</view>
+            </view>
+            <view class="rank-list-box" wx:for="{{$root.l0}}" wx:key="index">
+                <view class="rank-list-top">
+                    <image class="rank-list-bg" src="../../static/img/NoBg.png" wx:if="{{index+1<4}}"></image>
+                    <view class="{{[index+1<4?'rank-list-no':'']}}">{{index+1}}</view>
+                </view>
+                <view class="rank-list-user">
+                    <image class="rank-list-avatar" src="{{item[$orig].avatar||'/static/error/missing-face.png'}}"></image>
+                    <text class="rank-list-name">{{item[$orig].nickname}}</text>
+                </view>
+                <view class="rank-list-num">{{item.f3}}</view>
+            </view>
+        </view>
+    </view>
+</view>

+ 301 - 0
pages/app/spreadRank.wxss

@@ -0,0 +1,301 @@
+.content .rank-top {
+    background: #5dbc7c;
+    padding: 40rpx 16rpx 26rpx;
+    position: relative;
+}
+
+.content .rank-top .rank-bg {
+    width: 100%;
+    display: block;
+}
+
+.content .rank-top .rank-top-box {
+    position: absolute;
+    top: 40rpx;
+    height: 328rpx;
+}
+
+.content .rank-top .rank-top-box,.content .rank-top .rank-top-box .rank-top2 {
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+}
+
+.content .rank-top .rank-top-box .rank-top2 {
+    width: 215rpx;
+    height: 100%;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    -webkit-box-pack: end;
+    justify-content: flex-end;
+    padding-bottom: 33rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top2 .rank-top2-img-box {
+    position: relative;
+    width: 84rpx;
+    height: 84rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top2 .rank-top2-img-box .rank-top2-avatar {
+    width: 84rpx;
+    height: 84rpx;
+    border: 4rpx solid #c5d3e3;
+    border-radius: 50%;
+    background: #fcd012;
+}
+
+.content .rank-top .rank-top-box .rank-top2 .rank-top2-img-box .rank-top2-no2 {
+    width: 39rpx;
+    height: 39rpx;
+    position: absolute;
+    top: -20rpx;
+    left: -14rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top2 .rank-top2-name {
+    padding: 0 5rpx;
+    margin-top: 14rpx;
+    font-size: 24rpx;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #000;
+    width: 100%;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    text-align: center;
+}
+
+.content .rank-top .rank-top-box .rank-top2 .rank-top2-num {
+    margin-top: 16rpx;
+    font-size: 36rpx;
+    font-family: PingFang SC;
+    font-weight: 700;
+    color: #ef041f;
+    line-height: 1;
+}
+
+.content .rank-top .rank-top-box .rank-top1 {
+    width: 290rpx;
+    height: 100%;
+    display: flex;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: end;
+    justify-content: flex-end;
+    padding-bottom: 33rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top1 .rank-top1-img-box {
+    position: relative;
+    width: 127rpx;
+    height: 127rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top1 .rank-top1-img-box .rank-top1-avatar {
+    width: 127rpx;
+    height: 127rpx;
+    border: 8rpx solid #fcd012;
+    border-radius: 50%;
+    background: #fcd012;
+}
+
+.content .rank-top .rank-top-box .rank-top1 .rank-top1-img-box .rank-top1-no1 {
+    width: 52rpx;
+    height: 52rpx;
+    position: absolute;
+    top: -20rpx;
+    left: -14rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top1 .rank-top1-name {
+    padding: 0 5rpx;
+    margin-top: 14rpx;
+    font-size: 32rpx;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #000;
+    width: 100%;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    text-align: center;
+}
+
+.content .rank-top .rank-top-box .rank-top1 .rank-top1-num {
+    margin-top: 16rpx;
+    font-size: 48rpx;
+    font-family: PingFang SC;
+    font-weight: 700;
+    color: #ef041f;
+    line-height: 1;
+}
+
+.content .rank-top .rank-top-box .rank-top3 {
+    width: 215rpx;
+    height: 100%;
+    display: flex;
+    -webkit-box-orient: vertical;
+    -webkit-box-direction: normal;
+    flex-direction: column;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: end;
+    justify-content: flex-end;
+    padding-bottom: 33rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top3 .rank-top3-img-box {
+    position: relative;
+    width: 82rpx;
+    height: 82rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top3 .rank-top3-img-box .rank-top3-avatar {
+    width: 82rpx;
+    height: 82rpx;
+    border: 4rpx solid #f9a771;
+    border-radius: 50%;
+    background: #fcd012;
+}
+
+.content .rank-top .rank-top-box .rank-top3 .rank-top3-img-box .rank-top3-no3 {
+    width: 39rpx;
+    height: 39rpx;
+    position: absolute;
+    top: -20rpx;
+    left: -14rpx;
+}
+
+.content .rank-top .rank-top-box .rank-top3 .rank-top3-name {
+    padding: 0 5rpx;
+    margin-top: 14rpx;
+    font-size: 24rpx;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #000;
+    width: 100%;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    text-align: center;
+}
+
+.content .rank-top .rank-top-box .rank-top3 .rank-top3-num {
+    margin-top: 16rpx;
+    font-size: 36rpx;
+    font-family: PingFang SC;
+    font-weight: 700;
+    color: #ef041f;
+    line-height: 1;
+}
+
+.content .rank-box {
+    padding: 20rpx 30rpx;
+}
+
+.content .rank-box .rank-frame {
+    background: #fff;
+    border-radius: 10rpx;
+    padding: 20rpx 42rpx;
+}
+
+.content .rank-box .rank-frame .rank-list-title {
+    font-size: 24rpx;
+    font-family: PingFang SC;
+    font-weight: 700;
+    color: #fff;
+    width: 100%;
+    height: 57rpx;
+    background: #5dbc7c;
+    border-radius: 29rpx;
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    text-align: center;
+    padding: 0 40rpx;
+}
+
+.content .rank-box .rank-frame .rank-list-title .list-title {
+    width: 246rpx;
+}
+
+.content .rank-box .rank-frame .rank-list-title .list-sum {
+    width: 180rpx;
+}
+
+.content .rank-box .rank-frame .rank-list-box {
+    padding: 0 40rpx;
+    height: 84rpx;
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    text-align: center;
+    border-bottom: 1px solid #e8e8e8;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-top {
+    font-size: 30rpx;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #333;
+    width: 100rpx;
+    position: relative;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-top .rank-list-bg {
+    width: 40rpx;
+    height: 54rpx;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-top .rank-list-no {
+    position: absolute;
+    top: 4rpx;
+    width: 100%;
+    color: #fff;
+    font-size: 20rpx;
+    font-family: PingFang SC;
+    font-weight: 700;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-user {
+    width: 246rpx;
+    display: flex;
+    -webkit-box-align: center;
+    align-items: center;
+    -webkit-box-pack: center;
+    justify-content: center;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-user .rank-list-avatar {
+    width: 43rpx;
+    height: 43rpx;
+    background: #000;
+    border: 4rpx solid #fec900;
+    border-radius: 50%;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-user .rank-list-name {
+    margin-left: 12rpx;
+    font-size: 30rpx;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #ef041f;
+    max-width: 180rpx;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+
+.content .rank-box .rank-frame .rank-list-box .rank-list-num {
+    width: 180rpx;
+    font-size: 30rpx;
+    font-family: PingFang SC;
+    font-weight: 700;
+    color: #ef041f;
+}

+ 226 - 0
pages/app/tjfh.js

@@ -0,0 +1,226 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "pages/app/tjfh" ], {
+    405: function(n, e, t) {
+        (function(n) {
+            function e(n) {
+                return n && n.__esModule ? n : {
+                    default: n
+                };
+            }
+            t(4), e(t(2)), n(e(t(406)).default);
+        }).call(this, t(1).createPage);
+    },
+    406: function(n, e, t) {
+        t.r(e);
+        var o = t(407), r = t(409);
+        for (var a in r) "default" !== a && function(n) {
+            t.d(e, n, function() {
+                return r[n];
+            });
+        }(a);
+        t(411);
+        var i = t(13), u = Object(i.default)(r.default, o.render, o.staticRenderFns, !1, null, null, null, !1, o.components, void 0);
+        u.options.__file = "pages/app/tjfh.vue", e.default = u.exports;
+    },
+    407: function(n, e, t) {
+        t.r(e);
+        var o = t(408);
+        t.d(e, "render", function() {
+            return o.render;
+        }), t.d(e, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), t.d(e, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), t.d(e, "components", function() {
+            return o.components;
+        });
+    },
+    408: function(n, e, t) {
+        var o;
+        t.r(e), t.d(e, "render", function() {
+            return r;
+        }), t.d(e, "staticRenderFns", function() {
+            return i;
+        }), t.d(e, "recyclableRender", function() {
+            return a;
+        }), t.d(e, "components", function() {
+            return o;
+        });
+        try {
+            o = {
+                uniLoadMore: function() {
+                    return t.e("components/uni-load-more/uni-load-more").then(t.bind(null, 413));
+                }
+            };
+        } catch (n) {
+            if (-1 === n.message.indexOf("Cannot find module") || -1 === n.message.indexOf(".vue")) throw n;
+            console.error(n.message), console.error("1. 排查组件名称拼写是否正确"), console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"), 
+            console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件");
+        }
+        var r = function() {
+            var n = this, e = (n.$createElement, n._self._c, n._f("getMoneyStyle")(n.money));
+            n.$mp.data = Object.assign({}, {
+                $root: {
+                    f0: e
+                }
+            });
+        }, a = !1, i = [];
+        r._withStripped = !0;
+    },
+    409: function(n, e, t) {
+        t.r(e);
+        var o = t(410), r = t.n(o);
+        for (var a in o) "default" !== a && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(a);
+        e.default = r.a;
+    },
+    410: function(n, e, t) {
+        (function(n) {
+            function o(n, e, t, o, r, a, i) {
+                try {
+                    var u = n[a](i), c = u.value;
+                } catch (n) {
+                    return void t(n);
+                }
+                u.done ? e(c) : Promise.resolve(c).then(o, r);
+            }
+            function r(n) {
+                return function() {
+                    var e = this, t = arguments;
+                    return new Promise(function(r, a) {
+                        function i(n) {
+                            o(c, r, a, i, u, "next", n);
+                        }
+                        function u(n) {
+                            o(c, r, a, i, u, "throw", n);
+                        }
+                        var c = n.apply(e, t);
+                        i(void 0);
+                    });
+                };
+            }
+            Object.defineProperty(e, "__esModule", {
+                value: !0
+            }), e.default = void 0;
+            var a = function(n) {
+                return n && n.__esModule ? n : {
+                    default: n
+                };
+            }(t(23)), i = t(247), u = t(354), c = {
+                filters: {
+                    getMoneyStyle: (t(6), t(82)).getMoneyStyle
+                },
+                components: {
+                    empty: function() {
+                        t.e("components/empty").then(function() {
+                            return resolve(t(420));
+                        }.bind(null, t)).catch(t.oe);
+                    },
+                    uniLoadMore: function() {
+                        t.e("components/uni-load-more/uni-load-more").then(function() {
+                            return resolve(t(413));
+                        }.bind(null, t)).catch(t.oe);
+                    }
+                },
+                onReady: function() {
+                    var e = this;
+                    n.createSelectorQuery().select(".content").fields({
+                        size: !0
+                    }, function(n) {
+                        e.maxheight = n.height - Math.floor(n.width / 750 * 398), console.log(e.maxheight);
+                    }).exec();
+                },
+                data: function() {
+                    return {
+                        maxheight: "",
+                        tabCurrentIndex: 0,
+                        navList: [ {
+                            state: 0,
+                            text: "收入",
+                            loadingType: "more",
+                            orderList: [],
+                            page: 1,
+                            limit: 10
+                        } ],
+                        money: "",
+                        freezeMoney: ""
+                    };
+                },
+                onLoad: function(n) {},
+                onShow: function() {
+                    var n = this;
+                    this.loadData(), (0, u.mskList)({}).then(function(e) {
+                        var t = e.data;
+                        n.money = t.user.recommend_stock_right_bonus;
+                    });
+                },
+                methods: {
+                    navto: function(e) {
+                        n.navigateTo({
+                            url: e
+                        });
+                    },
+                    loadData: function(e) {
+                        var t = this;
+                        return r(a.default.mark(function o() {
+                            var r, u;
+                            return a.default.wrap(function(o) {
+                                for (;;) switch (o.prev = o.next) {
+                                  case 0:
+                                    if (r = t.tabCurrentIndex, (u = t.navList[r]).state, "tabChange" !== e || !0 !== u.loaded) {
+                                        o.next = 5;
+                                        break;
+                                    }
+                                    return o.abrupt("return");
+
+                                  case 5:
+                                    if ("loading" !== u.loadingType) {
+                                        o.next = 7;
+                                        break;
+                                    }
+                                    return o.abrupt("return");
+
+                                  case 7:
+                                    u.loadingType = "loading", (0, i.spreadCommission)({
+                                        page: u.page,
+                                        limit: u.limit
+                                    }, 8).then(function(e) {
+                                        var o = e.data;
+                                        o.length > 0 && (u.orderList = u.orderList.concat(o[0].list), console.log(u.orderList), 
+                                        u.page++), u.limit != o.length ? (u.loadingType = "noMore", n.hideLoading(), t.$set(u, "loaded", !0)) : u.loadingType = "more";
+                                    }).catch(function(n) {
+                                        console.log(n);
+                                    });
+
+                                  case 9:
+                                  case "end":
+                                    return o.stop();
+                                }
+                            }, o);
+                        }))();
+                    },
+                    changeTab: function(n) {
+                        this.tabCurrentIndex = n.target.current, this.loadData("tabChange");
+                    },
+                    tabClick: function(n) {
+                        this.tabCurrentIndex = n;
+                    }
+                }
+            };
+            e.default = c;
+        }).call(this, t(1).default);
+    },
+    411: function(n, e, t) {
+        t.r(e);
+        var o = t(412), r = t.n(o);
+        for (var a in o) "default" !== a && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(a);
+        e.default = r.a;
+    },
+    412: function(n, e, t) {}
+}, [ [ 405, "common/runtime", "common/vendor" ] ] ]);

+ 7 - 0
pages/app/tjfh.json

@@ -0,0 +1,7 @@
+{
+    "navigationBarTitleText": "推荐分红",
+    "usingComponents": {
+        "uni-load-more": "/components/uni-load-more/uni-load-more",
+        "empty": "/components/empty"
+    }
+}

+ 31 - 0
pages/app/tjfh.wxml

@@ -0,0 +1,31 @@
+<view class="content">
+    <view class="content-money">
+        <view class="money-box flex">
+            <view>
+                <view class="text">推荐分红(元)</view>
+                <view class="money">{{$root.f0}}</view>
+            </view>
+        </view>
+    </view>
+    <swiper bindchange="__e" class="swiper-box" current="{{tabCurrentIndex}}" data-event-opts="{{[ [ 'change',[ [ 'changeTab',['$event'] ] ] ] ]}}" duration="300" style="{{'height:'+maxheight+'px'+';'}}">
+        <swiper-item class="tab-content" wx:for="{{navList}}" wx:for-index="tabIndex" wx:for-item="tabItem" wx:key="tabIndex">
+            <scroll-view bindscrolltolower="__e" class="list-scroll-content" data-event-opts="{{[ [ 'scrolltolower',[ [ 'loadData',['$event'] ] ] ] ]}}" scrollY="{{true}}">
+                <empty bind:__l="__l" vueId="{{'4e9d0987-1-'+tabIndex}}" wx:if="{{tabItem.loaded===true&&tabItem.orderList.length===0}}"></empty>
+                <view class="order-item flex" wx:for="{{tabItem.orderList}}" wx:key="index">
+                    <view class="title-box">
+                        <view class="title">
+                            <text>{{item.title}}</text>
+                        </view>
+                        <view class="time">
+                            <text>{{item.add_time}}</text>
+                        </view>
+                    </view>
+                    <view class="money">
+                        <text>{{(item.pm==0?'-':'+')+item.number}}</text>
+                    </view>
+                </view>
+                <uni-load-more bind:__l="__l" status="{{tabItem.loadingType}}" vueId="{{'4e9d0987-2-'+tabIndex}}"></uni-load-more>
+            </scroll-view>
+        </swiper-item>
+    </swiper>
+</view>

+ 150 - 0
pages/app/tjfh.wxss

@@ -0,0 +1,150 @@
+page {
+    background: #fff;
+    height: 100%;
+}
+
+.content-money {
+    padding-bottom: 30rpx;
+    background: #f8f8f8;
+}
+
+.content-money .moneyTx {
+    top: 150rpx;
+}
+
+.content-money .moneyTx,.content-money .moneyTxs {
+    position: absolute;
+    right: 0rpx;
+    width: 150rpx;
+    padding: 10rpx 30rpx;
+    border: 2px solid #fff;
+    border-top-left-radius: 99rpx;
+    border-bottom-left-radius: 99rpx;
+    color: #fff;
+    line-height: 1;
+    font-size: 28rpx;
+}
+
+.content-money .moneyTxs {
+    top: 220rpx;
+}
+
+.content-money .buttom-box {
+    background-color: #fff;
+    text-align: center;
+    padding: 20rpx 0;
+    border-radius: 15rpx;
+    margin: -60rpx 30rpx 0;
+}
+
+.content-money .buttom-box .buttom {
+    font-size: 32rpx;
+    -webkit-box-flex: 1;
+    flex-grow: 1;
+}
+
+.content-money .buttom-box .interval {
+    width: 2px;
+    height: 60rpx;
+    background-color: #eee;
+}
+
+.content-money .buttom-box .icon {
+    height: 50rpx;
+    width: 48rpx;
+    margin: 0 auto;
+}
+
+.content-money .buttom-box .icon .icon-img {
+    width: 100%;
+    height: 100%;
+}
+
+.money-box {
+    background-color: #5dbc7c;
+    padding-top: 25px;
+    height: 368rpx;
+    color: #fff;
+    text-align: center;
+    justify-content: space-around;
+}
+
+.money-box .text {
+    font-size: 24rpx;
+}
+
+.money-box .money {
+    font-size: 56rpx;
+}
+
+.navbar {
+    height: 40px;
+    padding: 0 5px;
+    background: #fff;
+    box-shadow: 0 1px 5px rgba(0,0,0,.06);
+    z-index: 10;
+}
+
+.navbar,.navbar .nav-item {
+    display: flex;
+    position: relative;
+}
+
+.navbar .nav-item {
+    -webkit-box-flex: 1;
+    flex: 1;
+    -webkit-box-pack: center;
+    justify-content: center;
+    -webkit-box-align: center;
+    align-items: center;
+    height: 100%;
+    font-size: 15px;
+    color: #303133;
+}
+
+.navbar .nav-item.current {
+    color: #5dbc7c;
+}
+
+.navbar .nav-item.current:after {
+    content: "";
+    position: absolute;
+    left: 50%;
+    bottom: 0;
+    transform: translateX(-50%);
+    width: 44px;
+    height: 0;
+    border-bottom: 2px solid #5dbc7c;
+}
+
+.swiper-box {
+    padding-top: 10rpx;
+}
+
+.swiper-box .order-item {
+    padding: 20rpx 30rpx;
+    line-height: 1.5;
+}
+
+.swiper-box .order-item .title-box .title {
+    font-size: 32rpx;
+    color: #606266;
+}
+
+.swiper-box .order-item .title-box .time {
+    font-size: 28rpx;
+    color: #909399;
+}
+
+.swiper-box .order-item .money {
+    color: #fd5b23;
+    font-size: 32rpx;
+}
+
+.content,.list-scroll-content {
+    height: 100%;
+}
+
+.content .empty-content {
+    background-color: #fff;
+}

+ 226 - 0
pages/app/zsfh.js

@@ -0,0 +1,226 @@
+(global.webpackJsonp = global.webpackJsonp || []).push([ [ "pages/app/zsfh" ], {
+    389: function(n, e, t) {
+        (function(n) {
+            function e(n) {
+                return n && n.__esModule ? n : {
+                    default: n
+                };
+            }
+            t(4), e(t(2)), n(e(t(390)).default);
+        }).call(this, t(1).createPage);
+    },
+    390: function(n, e, t) {
+        t.r(e);
+        var o = t(391), r = t(393);
+        for (var a in r) "default" !== a && function(n) {
+            t.d(e, n, function() {
+                return r[n];
+            });
+        }(a);
+        t(395);
+        var i = t(13), u = Object(i.default)(r.default, o.render, o.staticRenderFns, !1, null, null, null, !1, o.components, void 0);
+        u.options.__file = "pages/app/zsfh.vue", e.default = u.exports;
+    },
+    391: function(n, e, t) {
+        t.r(e);
+        var o = t(392);
+        t.d(e, "render", function() {
+            return o.render;
+        }), t.d(e, "staticRenderFns", function() {
+            return o.staticRenderFns;
+        }), t.d(e, "recyclableRender", function() {
+            return o.recyclableRender;
+        }), t.d(e, "components", function() {
+            return o.components;
+        });
+    },
+    392: function(n, e, t) {
+        var o;
+        t.r(e), t.d(e, "render", function() {
+            return r;
+        }), t.d(e, "staticRenderFns", function() {
+            return i;
+        }), t.d(e, "recyclableRender", function() {
+            return a;
+        }), t.d(e, "components", function() {
+            return o;
+        });
+        try {
+            o = {
+                uniLoadMore: function() {
+                    return t.e("components/uni-load-more/uni-load-more").then(t.bind(null, 413));
+                }
+            };
+        } catch (n) {
+            if (-1 === n.message.indexOf("Cannot find module") || -1 === n.message.indexOf(".vue")) throw n;
+            console.error(n.message), console.error("1. 排查组件名称拼写是否正确"), console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"), 
+            console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件");
+        }
+        var r = function() {
+            var n = this, e = (n.$createElement, n._self._c, n._f("getMoneyStyle")(n.money));
+            n.$mp.data = Object.assign({}, {
+                $root: {
+                    f0: e
+                }
+            });
+        }, a = !1, i = [];
+        r._withStripped = !0;
+    },
+    393: function(n, e, t) {
+        t.r(e);
+        var o = t(394), r = t.n(o);
+        for (var a in o) "default" !== a && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(a);
+        e.default = r.a;
+    },
+    394: function(n, e, t) {
+        (function(n) {
+            function o(n, e, t, o, r, a, i) {
+                try {
+                    var u = n[a](i), c = u.value;
+                } catch (n) {
+                    return void t(n);
+                }
+                u.done ? e(c) : Promise.resolve(c).then(o, r);
+            }
+            function r(n) {
+                return function() {
+                    var e = this, t = arguments;
+                    return new Promise(function(r, a) {
+                        function i(n) {
+                            o(c, r, a, i, u, "next", n);
+                        }
+                        function u(n) {
+                            o(c, r, a, i, u, "throw", n);
+                        }
+                        var c = n.apply(e, t);
+                        i(void 0);
+                    });
+                };
+            }
+            Object.defineProperty(e, "__esModule", {
+                value: !0
+            }), e.default = void 0;
+            var a = function(n) {
+                return n && n.__esModule ? n : {
+                    default: n
+                };
+            }(t(23)), i = t(247), u = t(354), c = {
+                filters: {
+                    getMoneyStyle: (t(6), t(82)).getMoneyStyle
+                },
+                components: {
+                    empty: function() {
+                        t.e("components/empty").then(function() {
+                            return resolve(t(420));
+                        }.bind(null, t)).catch(t.oe);
+                    },
+                    uniLoadMore: function() {
+                        t.e("components/uni-load-more/uni-load-more").then(function() {
+                            return resolve(t(413));
+                        }.bind(null, t)).catch(t.oe);
+                    }
+                },
+                onReady: function() {
+                    var e = this;
+                    n.createSelectorQuery().select(".content").fields({
+                        size: !0
+                    }, function(n) {
+                        e.maxheight = n.height - Math.floor(n.width / 750 * 398), console.log(e.maxheight);
+                    }).exec();
+                },
+                data: function() {
+                    return {
+                        maxheight: "",
+                        tabCurrentIndex: 0,
+                        navList: [ {
+                            state: 0,
+                            text: "收入",
+                            loadingType: "more",
+                            orderList: [],
+                            page: 1,
+                            limit: 10
+                        } ],
+                        money: "",
+                        freezeMoney: ""
+                    };
+                },
+                onLoad: function(n) {},
+                onShow: function() {
+                    var n = this;
+                    this.loadData(), (0, u.mskList)({}).then(function(e) {
+                        var t = e.data;
+                        n.money = t.user.give_stock_right_bonus;
+                    });
+                },
+                methods: {
+                    navto: function(e) {
+                        n.navigateTo({
+                            url: e
+                        });
+                    },
+                    loadData: function(e) {
+                        var t = this;
+                        return r(a.default.mark(function o() {
+                            var r, u;
+                            return a.default.wrap(function(o) {
+                                for (;;) switch (o.prev = o.next) {
+                                  case 0:
+                                    if (r = t.tabCurrentIndex, (u = t.navList[r]).state, "tabChange" !== e || !0 !== u.loaded) {
+                                        o.next = 5;
+                                        break;
+                                    }
+                                    return o.abrupt("return");
+
+                                  case 5:
+                                    if ("loading" !== u.loadingType) {
+                                        o.next = 7;
+                                        break;
+                                    }
+                                    return o.abrupt("return");
+
+                                  case 7:
+                                    u.loadingType = "loading", (0, i.spreadCommission)({
+                                        page: u.page,
+                                        limit: u.limit
+                                    }, 7).then(function(e) {
+                                        var o = e.data;
+                                        o.length > 0 && (u.orderList = u.orderList.concat(o[0].list), console.log(u.orderList), 
+                                        u.page++), u.limit != o.length ? (u.loadingType = "noMore", n.hideLoading(), t.$set(u, "loaded", !0)) : u.loadingType = "more";
+                                    }).catch(function(n) {
+                                        console.log(n);
+                                    });
+
+                                  case 9:
+                                  case "end":
+                                    return o.stop();
+                                }
+                            }, o);
+                        }))();
+                    },
+                    changeTab: function(n) {
+                        this.tabCurrentIndex = n.target.current, this.loadData("tabChange");
+                    },
+                    tabClick: function(n) {
+                        this.tabCurrentIndex = n;
+                    }
+                }
+            };
+            e.default = c;
+        }).call(this, t(1).default);
+    },
+    395: function(n, e, t) {
+        t.r(e);
+        var o = t(396), r = t.n(o);
+        for (var a in o) "default" !== a && function(n) {
+            t.d(e, n, function() {
+                return o[n];
+            });
+        }(a);
+        e.default = r.a;
+    },
+    396: function(n, e, t) {}
+}, [ [ 389, "common/runtime", "common/vendor" ] ] ]);

+ 7 - 0
pages/app/zsfh.json

@@ -0,0 +1,7 @@
+{
+    "navigationBarTitleText": "赠送分红",
+    "usingComponents": {
+        "uni-load-more": "/components/uni-load-more/uni-load-more",
+        "empty": "/components/empty"
+    }
+}

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác