From 1b923e5cff63c13fe1f78cab964dca9e6b51ff8e Mon Sep 17 00:00:00 2001 From: gxwebsoft Date: Fri, 4 Aug 2023 13:14:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + .hbuilderx/launch.json | 20 + .idea/meihelove-uniapp.iml | 12 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + App.vue | 121 ++ androidPrivacy.json | 14 + api/apps-bc-agent.js | 24 + api/apps-bc-plan.js | 24 + api/apps-bc-temporary.js | 31 + api/article-comment.js | 29 + api/article-like.js | 24 + api/article.js | 25 + api/balance-log.js | 24 + api/cart.js | 23 + api/categoty.js | 21 + api/chat.js | 19 + api/chatgpt.js | 10 + api/demo.js | 16 + api/dict.js | 12 + api/equipment-goods.js | 20 + api/equipment.js | 20 + api/goods.js | 28 + api/house-info.js | 28 + api/house-reservation.js | 24 + api/index.js | 85 + api/login.js | 74 + api/love-certificate.js | 24 + api/love-profit.js | 24 + api/love-user-plan-equity.js | 24 + api/love-user-plan-log.js | 24 + api/love-user-plan.js | 24 + api/love-user-profile.js | 28 + api/merchant-withdraw.js | 24 + api/merchant.js | 28 + api/order-goods.js | 28 + api/order.js | 66 + api/payment.js | 35 + api/redis-util.js | 17 + api/setting.js | 8 + api/statistics.js | 16 + api/test.js | 16 + api/upload.js | 56 + api/user-comment.js | 20 + api/user-feedback.js | 20 + api/user-follow.js | 20 + api/user-grade.js | 20 + api/user-like.js | 24 + api/user-look.js | 24 + api/user-referee.js | 20 + api/user.js | 20 + api/ww-login.js | 8 + api/wx-login.js | 12 + api/wxofficial.js | 8 + app.scss | 43 + common/constant/index.js | 3 + common/constant/paginate.js | 7 + common/enum/Client.js | 12 + common/enum/coupon/ApplyRange.js | 10 + common/enum/coupon/CouponType.js | 10 + common/enum/coupon/ExpireType.js | 10 + common/enum/coupon/index.js | 5 + common/enum/dealer/apply/ApplyStatus.js | 11 + common/enum/dealer/apply/ApplyType.js | 10 + common/enum/dealer/apply/index.js | 4 + common/enum/dealer/withdraw/ApplyStatus.js | 12 + common/enum/dealer/withdraw/PayType.js | 11 + common/enum/dealer/withdraw/index.js | 4 + common/enum/enum.js | 85 + common/enum/goods/GoodsType.js | 10 + common/enum/goods/SpecType.js | 10 + common/enum/goods/index.js | 4 + common/enum/groupon/ActiveStatus.js | 11 + common/enum/groupon/ActiveType.js | 11 + common/enum/groupon/GoodsStatus.js | 10 + common/enum/groupon/TaskStatus.js | 11 + common/enum/groupon/index.js | 6 + common/enum/live/LiveStatus.js | 15 + common/enum/live/index.js | 3 + common/enum/order/DeliveryStatus.js | 10 + common/enum/order/DeliveryType.js | 11 + common/enum/order/OrderSource.js | 11 + common/enum/order/OrderStatus.js | 12 + common/enum/order/OrderType.js | 10 + common/enum/order/PayStatus.js | 10 + common/enum/order/PayType.js | 10 + common/enum/order/ReceiptStatus.js | 10 + common/enum/order/delivery/DeliveryMethod.js | 11 + common/enum/order/delivery/index.js | 3 + common/enum/order/index.js | 17 + common/enum/order/refund/AuditStatus.js | 11 + common/enum/order/refund/RefundStatus.js | 12 + common/enum/order/refund/RefundType.js | 10 + common/enum/order/refund/index.js | 9 + common/enum/payment/Method.js | 11 + common/enum/payment/index.js | 3 + common/enum/setting/Key.js | 42 + common/enum/sharp/ActiveStatus.js | 11 + common/enum/sharp/GoodsStatus.js | 11 + common/enum/sharp/index.js | 4 + common/enum/store/page/category/Style.js | 12 + common/enum/store/page/category/index.js | 3 + common/model/Region.js | 57 + common/model/Setting.js | 99 + common/model/dealer/Setting.js | 58 + common/model/groupon/Setting.js | 52 + .../components/UniAddressSelector.vue | 425 +++++ .../Luke-UniappAddressSelector/index.vue | 61 + .../Luke-UniappAddressSelector/readme.md | 31 + components/add-cart-btn/index.vue | 36 + components/add-cart-popup/index.vue | 178 ++ components/article-video/article-video.vue | 56 + components/avatar-image/index.vue | 57 + components/chat-input-bar/chat-input-bar.vue | 208 ++ components/chat-input-bar/emoji.js | 33 + .../chat-item-image/chat-item-image.vue | 63 + components/chat-item/chat-item.vue | 217 +++ components/countdown/index.vue | 183 ++ components/customer-btn/index.vue | 77 + components/empty/index.vue | 66 + components/goods-poster-popup/index.vue | 157 ++ components/goods-sku-popup/index.vue | 1367 ++++++++++++++ .../goods-sku-popup/number-box/index.vue | 450 +++++ components/jyf-parser/jyf-parser.vue | 645 +++++++ components/jyf-parser/libs/CssHandler.js | 100 + components/jyf-parser/libs/MpHtmlParser.js | 580 ++++++ components/jyf-parser/libs/config.js | 80 + components/jyf-parser/libs/handler.wxs | 22 + components/jyf-parser/libs/trees.vue | 506 +++++ .../mescroll-uni/components/mescroll-down.css | 55 + .../mescroll-uni/components/mescroll-down.vue | 47 + .../components/mescroll-empty.vue | 90 + .../mescroll-uni/components/mescroll-top.vue | 83 + .../mescroll-uni/components/mescroll-up.css | 47 + .../mescroll-uni/components/mescroll-up.vue | 39 + components/mescroll-uni/mescroll-body.css | 19 + components/mescroll-uni/mescroll-body.vue | 352 ++++ components/mescroll-uni/mescroll-mixins.js | 65 + .../mescroll-uni/mescroll-uni-option.js | 37 + components/mescroll-uni/mescroll-uni.css | 36 + components/mescroll-uni/mescroll-uni.js | 799 ++++++++ components/mescroll-uni/mescroll-uni.vue | 424 +++++ .../mescroll-uni/mixins/mescroll-comp.js | 48 + .../mescroll-uni/mixins/mescroll-more-item.js | 59 + .../mescroll-uni/mixins/mescroll-more.js | 74 + components/mescroll-uni/wxs/mixins.js | 109 ++ components/mescroll-uni/wxs/renderjs.js | 92 + components/mescroll-uni/wxs/wxs.wxs | 268 +++ .../page/diyComponents/article/index.vue | 123 ++ .../page/diyComponents/banner/index.vue | 166 ++ .../page/diyComponents/bargain/index.vue | 184 ++ components/page/diyComponents/blank/index.vue | 31 + .../page/diyComponents/coupon/index.vue | 199 ++ components/page/diyComponents/empty.vue | 39 + components/page/diyComponents/goods/index.vue | 257 +++ .../page/diyComponents/groupon/index.vue | 212 +++ components/page/diyComponents/guide/index.vue | 36 + .../page/diyComponents/hotZone/index.vue | 67 + components/page/diyComponents/image/index.vue | 47 + components/page/diyComponents/mixin.js | 55 + .../page/diyComponents/navBar/index.vue | 87 + .../page/diyComponents/notice/index.vue | 40 + .../diyComponents/officialAccount/index.vue | 37 + .../page/diyComponents/richText/index.vue | 33 + .../page/diyComponents/search/index.vue | 76 + .../page/diyComponents/service/index.vue | 90 + components/page/diyComponents/sharp/index.vue | 251 +++ components/page/diyComponents/shop/index.vue | 97 + .../page/diyComponents/special/index.vue | 102 + components/page/diyComponents/video/index.vue | 38 + .../page/diyComponents/window/index.vue | 171 ++ components/page/index.vue | 156 ++ components/recommended/index.vue | 323 ++++ components/search/index.vue | 69 + components/select-region/select-region.vue | 187 ++ components/share-sheet/index.vue | 369 ++++ components/shortcut/index.vue | 297 +++ components/static/add.png | Bin 0 -> 2004 bytes components/static/audio.png | Bin 0 -> 2971 bytes components/static/emoji.png | Bin 0 -> 2178 bytes components/static/jianpan.png | Bin 0 -> 966 bytes components/video-swiper/index.vue | 1675 +++++++++++++++++ config.js | 36 + core/app.js | 249 +++ core/bootstrap.js | 20 + core/config/defaultConfig.js | 46 + core/config/index.js | 54 + core/mixins/app.js | 40 + core/mixins/notice.js | 72 + core/mixins/tabbar.js | 73 + core/payment/alipay.js | 91 + core/payment/index.js | 4 + core/payment/wechat.js | 180 ++ core/platform.js | 64 + js_sdk/ican-H5Api/ican-H5Api.js | 71 + js_sdk/qqmap-wx-jssdk.min.js | 1 + js_sdk/queryStringify.js | 119 ++ main.js | 44 + manifest.json | 129 ++ package-lock.json | 80 + package.json | 21 + pages.json | 580 ++++++ pages/article/article.vue | 122 ++ pages/article/detail/detail.vue | 116 ++ pages/chat/chat.vue | 213 +++ pages/checkout/cashier/index.vue | 609 ++++++ pages/checkout/checkout.vue | 787 ++++++++ pages/comment/index.vue | 276 +++ pages/empty.vue | 29 + pages/flash/index.vue | 150 ++ pages/help/xieyi.vue | 55 + pages/home/home.vue | 135 ++ pages/house/house.vue | 290 +++ pages/index/index.vue | 231 +++ pages/login/components/main.vue | 456 +++++ pages/login/components/mp-weixin-mobile.vue | 312 +++ pages/login/components/mp-weixin.vue | 243 +++ pages/login/components/wx-official.vue | 124 ++ pages/login/index.vue | 102 + pages/love/category.vue | 1039 ++++++++++ pages/love/love copy.vue | 711 +++++++ pages/love/love.vue | 1160 ++++++++++++ pages/notice/notice.vue | 393 ++++ pages/order/index.vue | 477 +++++ pages/pair/pair.vue | 135 ++ pages/refund/apply.vue | 434 +++++ pages/refund/detail.vue | 481 +++++ pages/refund/index.vue | 263 +++ pages/search/index.vue | 601 ++++++ pages/shop/detail.vue | 198 ++ pages/shop/extract.vue | 198 ++ pages/user/password/password.vue | 264 +++ pages/user/user.vue | 1621 ++++++++++++++++ pages/zone/member/member.vue | 251 +++ pages/zone/zone.vue | 171 ++ polyfill/README.md | 35 + polyfill/base64Binary.js | 95 + polyfill/mixins.js | 148 ++ polyfill/polyfill.js | 1073 +++++++++++ static/channel/wechat.png | Bin 0 -> 2053 bytes static/default-avatar.png | Bin 0 -> 891 bytes static/empty-02.png | Bin 0 -> 8448 bytes static/goods/battery.png | Bin 0 -> 2344 bytes static/icon/08-2.png | Bin 0 -> 3293 bytes static/icon/08-3.png | Bin 0 -> 3488 bytes static/icon/08.svg | 1 + static/icon/1.png | Bin 0 -> 817 bytes static/icon/add.png | Bin 0 -> 3124 bytes static/icon/add2.png | Bin 0 -> 2987 bytes static/icon/add3.png | Bin 0 -> 3057 bytes static/icon/add4.png | Bin 0 -> 2992 bytes static/icon/add5.png | Bin 0 -> 1714 bytes static/icon/bai-xin.png | Bin 0 -> 549 bytes static/icon/boy.png | Bin 0 -> 3650 bytes static/icon/buy-user-01.png | Bin 0 -> 890 bytes static/icon/buy-user-02.png | Bin 0 -> 898 bytes static/icon/buy-user-03.png | Bin 0 -> 981 bytes static/icon/buy-user-04.png | Bin 0 -> 903 bytes static/icon/buy-user-05.png | Bin 0 -> 794 bytes static/icon/buy-user-06.png | Bin 0 -> 873 bytes static/icon/buy-user-07.png | Bin 0 -> 462 bytes static/icon/buy-user-08.png | Bin 0 -> 783 bytes static/icon/buy-user-09.png | Bin 0 -> 921 bytes static/icon/buy-user-10.png | Bin 0 -> 756 bytes static/icon/buy-user-11.png | Bin 0 -> 848 bytes static/icon/buy-user-12.png | Bin 0 -> 691 bytes static/icon/buy-user-13.png | Bin 0 -> 528 bytes static/icon/buy-user-14.png | Bin 0 -> 916 bytes static/icon/buy-user-15.png | Bin 0 -> 1053 bytes static/icon/buy-user-16.png | Bin 0 -> 784 bytes static/icon/buy-user-17.png | Bin 0 -> 727 bytes static/icon/buy-user-18.png | Bin 0 -> 349 bytes static/icon/buy-user-19.png | Bin 0 -> 739 bytes static/icon/buy-user-20.png | Bin 0 -> 572 bytes static/icon/buy-user-21.png | Bin 0 -> 712 bytes static/icon/buy-user-22.png | Bin 0 -> 1005 bytes static/icon/buy-user-23.png | Bin 0 -> 473 bytes static/icon/buy-user-24.png | Bin 0 -> 751 bytes static/icon/buy-user-25.png | Bin 0 -> 706 bytes static/icon/buy-user-26.png | Bin 0 -> 599 bytes static/icon/comment-active.png | Bin 0 -> 2724 bytes static/icon/comment.png | Bin 0 -> 2701 bytes static/icon/comment2-active.png | Bin 0 -> 982 bytes static/icon/comment2.png | Bin 0 -> 1012 bytes static/icon/danshen.png | Bin 0 -> 5407 bytes static/icon/emoji.png | Bin 0 -> 9406 bytes static/icon/follow.png | Bin 0 -> 3592 bytes static/icon/g.svg | 1 + static/icon/gift.png | Bin 0 -> 3469 bytes static/icon/gift2.png | Bin 0 -> 728 bytes static/icon/girl.png | Bin 0 -> 3495 bytes static/icon/gonggao.png | Bin 0 -> 692 bytes static/icon/gou.png | Bin 0 -> 816 bytes static/icon/grade-01.png | Bin 0 -> 833 bytes static/icon/grade-02.png | Bin 0 -> 699 bytes static/icon/grade-03.png | Bin 0 -> 698 bytes static/icon/grade-04.png | Bin 0 -> 694 bytes static/icon/grade-05.png | Bin 0 -> 663 bytes static/icon/huangguan.png | Bin 0 -> 758 bytes static/icon/invite.png | Bin 0 -> 819 bytes static/icon/marriage.png | Bin 0 -> 839 bytes static/icon/my-certification01.png | Bin 0 -> 742 bytes static/icon/my-certification02.png | Bin 0 -> 598 bytes static/icon/my-certification03.png | Bin 0 -> 577 bytes static/icon/my-certification04.png | Bin 0 -> 798 bytes static/icon/notice-01.png | Bin 0 -> 7166 bytes static/icon/notice-02.png | Bin 0 -> 7746 bytes static/icon/notice-03.png | Bin 0 -> 1616 bytes static/icon/notice-04.png | Bin 0 -> 2011 bytes static/icon/order.png | Bin 0 -> 670 bytes static/icon/path.png | Bin 0 -> 257 bytes static/icon/photograph.png | Bin 0 -> 573 bytes static/icon/poster-save.png | Bin 0 -> 689 bytes static/icon/poster-weixin.png | Bin 0 -> 757 bytes static/icon/release.png | Bin 0 -> 489 bytes static/icon/release2.png | Bin 0 -> 885 bytes static/icon/release3.png | Bin 0 -> 2350 bytes static/icon/screen2.png | Bin 0 -> 562 bytes static/icon/search.png | Bin 0 -> 3045 bytes static/icon/search2.png | Bin 0 -> 2947 bytes static/icon/send.png | Bin 0 -> 8018 bytes static/icon/setting.png | Bin 0 -> 4206 bytes static/icon/sex_man.png | Bin 0 -> 3002 bytes static/icon/sex_woman.png | Bin 0 -> 3202 bytes static/icon/share01.png | Bin 0 -> 890 bytes static/icon/share02.png | Bin 0 -> 860 bytes static/icon/share03.png | Bin 0 -> 1231 bytes static/icon/switch.png | Bin 0 -> 2069 bytes static/icon/switch2.png | Bin 0 -> 948 bytes static/icon/top1.png | Bin 0 -> 2975 bytes static/icon/top2.png | Bin 0 -> 4001 bytes static/icon/top3.png | Bin 0 -> 4099 bytes static/icon/vip.png | Bin 0 -> 969 bytes static/icon/vip2.png | Bin 0 -> 706 bytes static/icon/vip3.png | Bin 0 -> 1273 bytes static/icon/vip4.png | Bin 0 -> 1026 bytes static/icon/vip5.png | Bin 0 -> 1046 bytes static/icon/wallet.png | Bin 0 -> 599 bytes static/icon/wallet2.png | Bin 0 -> 498 bytes static/icon/xin.png | Bin 0 -> 2324 bytes static/icon/xin2.png | Bin 0 -> 2382 bytes static/not-dealer.png | Bin 0 -> 3267 bytes static/order/refund-bg.png | Bin 0 -> 1625 bytes static/order/status/close.png | Bin 0 -> 2500 bytes static/order/status/received.png | Bin 0 -> 1482 bytes static/order/status/wait_deliver.png | Bin 0 -> 4370 bytes static/order/status/wait_pay.png | Bin 0 -> 1448 bytes static/order/status/wait_receipt.png | Bin 0 -> 2221 bytes static/privacy.html | 746 ++++++++ static/protocol.html | 604 ++++++ static/star.svg | 2 + static/star1.svg | 2 + static/star2.svg | 2 + static/tabbar/home-active.png | Bin 0 -> 709 bytes static/tabbar/home.png | Bin 0 -> 640 bytes static/tabbar/house-active.png | Bin 0 -> 655 bytes static/tabbar/house.png | Bin 0 -> 645 bytes static/tabbar/love-active.png | Bin 0 -> 886 bytes static/tabbar/love.png | Bin 0 -> 836 bytes static/tabbar/notice-active.png | Bin 0 -> 1051 bytes static/tabbar/notice.png | Bin 0 -> 997 bytes static/tabbar/user-active.png | Bin 0 -> 907 bytes static/tabbar/user.png | Bin 0 -> 885 bytes static/tabbar/zone-active.png | Bin 0 -> 662 bytes static/tabbar/zone.png | Bin 0 -> 580 bytes static/user-base/n.png | Bin 0 -> 536 bytes static/user-base/y.png | Bin 0 -> 498 bytes store/getters.js | 37 + store/index.js | 25 + store/modules/app.js | 46 + store/modules/chat.js | 273 +++ store/modules/index.js | 6 + store/modules/notice.js | 37 + store/modules/theme.js | 40 + store/modules/user.js | 206 ++ store/mutation-types.js | 9 + sub_pages/app-plus/privacy.html | 746 ++++++++ sub_pages/app-plus/protocol.html | 604 ++++++ sub_pages/certification/car/car.vue | 244 +++ sub_pages/certification/certification.vue | 313 +++ .../certification/education/education.vue | 285 +++ sub_pages/certification/house/house.vue | 251 +++ sub_pages/certification/id-card/id-card.vue | 258 +++ sub_pages/checkout/checkout copy.vue | 725 +++++++ sub_pages/checkout/checkout.vue | 366 ++++ sub_pages/contact/contact.vue | 22 + sub_pages/dealer/dealer.vue | 1008 ++++++++++ sub_pages/dealer/grade/grade.vue | 620 ++++++ sub_pages/dealer/merchant/merchant.vue | 321 ++++ sub_pages/dealer/offline/offline.vue | 183 ++ sub_pages/dealer/poster/poster.vue | 366 ++++ sub_pages/dealer/qrcode/qrcode.vue | 41 + sub_pages/dealer/team/team.vue | 180 ++ sub_pages/feedback/feedback.vue | 321 ++++ sub_pages/goods/components/Comment.vue | 159 ++ sub_pages/goods/components/Service.vue | 158 ++ sub_pages/goods/components/SkuPopup.vue | 189 ++ sub_pages/goods/components/SlideImage.vue | 146 ++ sub_pages/goods/detail.scss | 229 +++ sub_pages/goods/detail.vue | 328 ++++ sub_pages/goods/list.vue | 463 +++++ sub_pages/house/add.vue | 797 ++++++++ sub_pages/house/detail.vue | 577 ++++++ sub_pages/house/house.vue | 295 +++ sub_pages/love/comment/comment.vue | 1049 +++++++++++ sub_pages/love/release/release.vue | 509 +++++ sub_pages/member/detail/detail.vue | 1601 ++++++++++++++++ sub_pages/member/member.vue | 168 ++ sub_pages/notice/comment.vue | 315 ++++ sub_pages/notice/fans.vue | 318 ++++ sub_pages/notice/like.vue | 307 +++ sub_pages/notice/look.vue | 318 ++++ sub_pages/order/delivery.vue | 319 ++++ sub_pages/order/delivery/cancel.vue | 103 + sub_pages/order/delivery/delivery.vue | 81 + sub_pages/order/delivery/me.vue | 355 ++++ sub_pages/order/delivery/others.vue | 311 +++ sub_pages/order/delivery/receipt.vue | 451 +++++ sub_pages/order/detail.vue | 637 +++++++ sub_pages/order/get-food/get-food.vue | 185 ++ sub_pages/order/index.vue | 451 +++++ sub_pages/profit/profit.vue | 565 ++++++ sub_pages/search/index.vue | 490 +++++ sub_pages/user/base/address/address.vue | 187 ++ sub_pages/user/base/avatar/avatar.vue | 218 +++ sub_pages/user/base/base.scss | 120 ++ sub_pages/user/base/birthday/birthday.vue | 94 + sub_pages/user/base/height/height.vue | 80 + sub_pages/user/base/nickname/nickname.vue | 129 ++ sub_pages/user/base/photo/photo.vue | 323 ++++ sub_pages/user/base/sex/sex.vue | 100 + sub_pages/user/base/yearpay/yearpay.vue | 80 + sub_pages/user/bind/index.vue | 311 +++ sub_pages/user/buy/buy.vue | 67 + sub_pages/user/grade/grade.vue | 623 ++++++ sub_pages/user/personal/index.vue | 959 ++++++++++ sub_pages/user/poster/poster.vue | 547 ++++++ sub_pages/user/poster/poster2.vue | 366 ++++ sub_pages/video-swiper/index.vue | 1474 +++++++++++++++ sub_pages/wallet/balance/log.vue | 378 ++++ sub_pages/wallet/gift/gift.vue | 345 ++++ sub_pages/wallet/index.vue | 167 ++ sub_pages/wallet/profit/profit.vue | 559 ++++++ sub_pages/wallet/recharge/index.vue | 333 ++++ sub_pages/wallet/recharge/order.vue | 351 ++++ sub_pages/withdraw/log/log.vue | 358 ++++ sub_pages/withdraw/withdraw.vue | 291 +++ template.h5.html | 30 + uni.scss | 92 + uni_modules/ksp-cropper/changelog.md | 33 + .../components/ksp-cropper/ksp-cropper.vue | 995 ++++++++++ uni_modules/ksp-cropper/package.json | 81 + uni_modules/ksp-cropper/readme.md | 78 + uni_modules/lime-painter/changelog.md | 193 ++ .../components/common/relation.js | 150 ++ .../l-painter-image/l-painter-image.vue | 28 + .../l-painter-qrcode/l-painter-qrcode.vue | 27 + .../l-painter-text/l-painter-text.vue | 29 + .../l-painter-view/l-painter-view.vue | 30 + .../components/l-painter/l-painter.vue | 418 ++++ .../lime-painter/components/l-painter/nvue.js | 190 ++ .../components/l-painter/painter.js | 1 + .../components/l-painter/props.js | 52 + .../components/l-painter/utils.js | 361 ++++ .../components/lime-painter/lime-painter.vue | 223 +++ .../lime-painter/hybrid/html/index.html | 119 ++ .../lime-painter/hybrid/html/painter.js | 1 + .../hybrid/html/uni.webview.1.5.3.js | 1 + uni_modules/lime-painter/package.json | 92 + uni_modules/lime-painter/readme.md | 927 +++++++++ uni_modules/liu-customize-sel/changelog.md | 10 + .../liu-customize-sel/liu-customize-sel.vue | 365 ++++ uni_modules/liu-customize-sel/license.md | 6 + uni_modules/liu-customize-sel/package.json | 81 + uni_modules/liu-customize-sel/readme.md | 44 + .../liu-customize-sel/static/noData.png | Bin 0 -> 5662 bytes uni_modules/mp-html/README.md | 182 ++ uni_modules/mp-html/changelog.md | 69 + .../mp-html/components/mp-html/mp-html.vue | 435 +++++ .../mp-html/components/mp-html/node/node.vue | 525 ++++++ .../mp-html/components/mp-html/parser.js | 1223 ++++++++++++ uni_modules/mp-html/package.json | 79 + .../static/app-plus/mp-html/js/handler.js | 1 + .../app-plus/mp-html/js/uni.webview.min.js | 1 + .../static/app-plus/mp-html/local.html | 1 + uni_modules/uni-badge/changelog.md | 31 + .../components/uni-badge/uni-badge.vue | 268 +++ uni_modules/uni-badge/package.json | 85 + uni_modules/uni-badge/readme.md | 10 + uni_modules/uni-config-center/changelog.md | 6 + uni_modules/uni-config-center/package.json | 81 + uni_modules/uni-config-center/readme.md | 93 + .../common/uni-config-center/index.js | 1 + .../common/uni-config-center/package.json | 9 + .../uni-config-center/uni-id/config.json | 58 + .../alipay/alipayCertPublicKey_RSA2.crt | 43 + .../uni-pay/alipay/alipayRootCert.crt | 88 + .../uni-pay/alipay/appCertPublicKey.crt | 24 + .../uni-config-center/uni-pay/config.js | 23 + .../uni-pay/wxpay/apiclient_cert.p12 | 0 .../uni-pay/wxpay/apiclient_cert.pem | 3 + .../uni-pay/wxpay/apiclient_key.pem | 3 + .../uni-pay/【重要】请先看这里.md | 137 ++ uni_modules/uni-data-select/changelog.md | 35 + .../uni-data-select/uni-data-select.vue | 517 +++++ uni_modules/uni-data-select/package.json | 85 + uni_modules/uni-data-select/readme.md | 8 + uni_modules/uni-icons/changelog.md | 22 + .../uni-icons/components/uni-icons/icons.js | 1169 ++++++++++++ .../components/uni-icons/uni-icons.vue | 96 + .../components/uni-icons/uniicons.css | 663 +++++++ .../components/uni-icons/uniicons.ttf | Bin 0 -> 35760 bytes uni_modules/uni-icons/package.json | 86 + uni_modules/uni-icons/readme.md | 8 + uni_modules/uni-id-common/changelog.md | 26 + uni_modules/uni-id-common/package.json | 87 + uni_modules/uni-id-common/readme.md | 3 + .../common/uni-id-common/index.js | 1 + .../common/uni-id-common/package.json | 16 + uni_modules/uni-list/changelog.md | 40 + .../components/uni-list-ad/uni-list-ad.vue | 107 ++ .../uni-list-chat/uni-list-chat.scss | 58 + .../uni-list-chat/uni-list-chat.vue | 571 ++++++ .../uni-list-item/uni-list-item.vue | 530 ++++++ .../uni-list/components/uni-list/uni-list.vue | 123 ++ .../components/uni-list/uni-refresh.vue | 65 + .../components/uni-list/uni-refresh.wxs | 87 + uni_modules/uni-list/package.json | 88 + uni_modules/uni-list/readme.md | 346 ++++ uni_modules/uni-load-more/changelog.md | 19 + .../components/uni-load-more/i18n/en.json | 5 + .../components/uni-load-more/i18n/index.js | 8 + .../uni-load-more/i18n/zh-Hans.json | 5 + .../uni-load-more/i18n/zh-Hant.json | 5 + .../uni-load-more/uni-load-more.vue | 399 ++++ uni_modules/uni-load-more/package.json | 86 + uni_modules/uni-load-more/readme.md | 14 + uni_modules/uni-pay/changelog.md | 50 + .../uni-pay/components/uni-pay/uni-pay.vue | 829 ++++++++ uni_modules/uni-pay/js_sdk/appleiap.js | 123 ++ uni_modules/uni-pay/js_sdk/js_sdk.js | 158 ++ uni_modules/uni-pay/package.json | 81 + .../ad-interactive-webview.vue | 18 + .../uni-pay/pages/pay-desk/pay-desk.vue | 116 ++ uni_modules/uni-pay/pages/success/success.vue | 233 +++ uni_modules/uni-pay/readme.md | 31 + uni_modules/uni-pay/static/alipay.png | Bin 0 -> 935 bytes uni_modules/uni-pay/static/wxpay.png | Bin 0 -> 1141 bytes .../cloudfunctions/common/uni-pay/LICENSE.md | 201 ++ .../cloudfunctions/common/uni-pay/index.js | 33 + .../common/uni-pay/package.json | 16 + .../cloudfunctions/uni-pay-co/common/error.js | 64 + .../uni-pay-co/config/permission.js | 9 + .../cloudfunctions/uni-pay-co/dao/index.js | 6 + .../cloudfunctions/uni-pay-co/dao/readme.md | 1 + .../uni-pay-co/dao/uniIdUsers.js | 25 + .../uni-pay-co/dao/uniPayOrders.js | 108 ++ .../cloudfunctions/uni-pay-co/index.obj.js | 268 +++ .../cloudfunctions/uni-pay-co/lang/en.js | 29 + .../cloudfunctions/uni-pay-co/lang/index.js | 22 + .../cloudfunctions/uni-pay-co/lang/zh-hans.js | 29 + .../cloudfunctions/uni-pay-co/libs/alipay.js | 145 ++ .../cloudfunctions/uni-pay-co/libs/common.js | 293 +++ .../cloudfunctions/uni-pay-co/libs/crypto.js | 82 + .../cloudfunctions/uni-pay-co/libs/index.js | 13 + .../cloudfunctions/uni-pay-co/libs/qrcode.js | 1 + .../cloudfunctions/uni-pay-co/libs/wxpay.js | 82 + .../uni-pay-co/middleware/access-control.js | 50 + .../uni-pay-co/middleware/auth.js | 21 + .../uni-pay-co/middleware/index.js | 7 + .../uni-pay-co/notify/appleiap.js | 78 + .../cloudfunctions/uni-pay-co/notify/test.js | 78 + .../uni-pay-co/notify/【重要】请先看这里.md | 51 + .../cloudfunctions/uni-pay-co/package.json | 17 + .../uni-pay-co/service/index.js | 5 + .../cloudfunctions/uni-pay-co/service/pay.js | 865 +++++++++ .../uni-pay-co/uni-pay-co.param.js | 13 + .../uni-pay/uniCloud/database/db_init.json | 38 + uni_modules/uni-popup/changelog.md | 64 + .../components/uni-popup-dialog/keypress.js | 45 + .../uni-popup-dialog/uni-popup-dialog.vue | 276 +++ .../uni-popup-message/uni-popup-message.vue | 143 ++ .../uni-popup-share/uni-popup-share.vue | 187 ++ .../components/uni-popup/i18n/en.json | 7 + .../components/uni-popup/i18n/index.js | 8 + .../components/uni-popup/i18n/zh-Hans.json | 7 + .../components/uni-popup/i18n/zh-Hant.json | 7 + .../components/uni-popup/keypress.js | 45 + .../uni-popup/components/uni-popup/popup.js | 26 + .../components/uni-popup/uni-popup.vue | 474 +++++ uni_modules/uni-popup/package.json | 87 + uni_modules/uni-popup/readme.md | 17 + uni_modules/uni-scss/changelog.md | 8 + uni_modules/uni-scss/index.scss | 1 + uni_modules/uni-scss/package.json | 82 + uni_modules/uni-scss/readme.md | 4 + uni_modules/uni-scss/styles/index.scss | 7 + .../uni-scss/styles/setting/_border.scss | 3 + .../uni-scss/styles/setting/_color.scss | 66 + .../uni-scss/styles/setting/_radius.scss | 55 + .../uni-scss/styles/setting/_space.scss | 56 + .../uni-scss/styles/setting/_styles.scss | 167 ++ .../uni-scss/styles/setting/_text.scss | 24 + .../uni-scss/styles/setting/_variables.scss | 146 ++ .../uni-scss/styles/tools/functions.scss | 19 + uni_modules/uni-scss/theme.scss | 31 + uni_modules/uni-scss/variables.scss | 62 + uni_modules/uni-transition/changelog.md | 20 + .../uni-transition/createAnimation.js | 128 ++ .../uni-transition/uni-transition.vue | 277 +++ uni_modules/uni-transition/package.json | 87 + uni_modules/uni-transition/readme.md | 11 + uni_modules/uview-ui/LICENSE | 21 + uni_modules/uview-ui/README.md | 66 + uni_modules/uview-ui/changelog.md | 362 ++++ .../uview-ui/components/u--form/u--form.vue | 78 + .../uview-ui/components/u--image/u--image.vue | 47 + .../uview-ui/components/u--input/u--input.vue | 73 + .../uview-ui/components/u--text/u--text.vue | 44 + .../components/u--textarea/u--textarea.vue | 48 + .../components/u-action-sheet/props.js | 54 + .../u-action-sheet/u-action-sheet.vue | 278 +++ .../uview-ui/components/u-album/props.js | 59 + .../uview-ui/components/u-album/u-album.vue | 263 +++ .../uview-ui/components/u-alert/props.js | 44 + .../uview-ui/components/u-alert/u-alert.vue | 243 +++ .../components/u-avatar-group/props.js | 52 + .../u-avatar-group/u-avatar-group.vue | 103 + .../uview-ui/components/u-avatar/props.js | 78 + .../uview-ui/components/u-avatar/u-avatar.vue | 172 ++ .../uview-ui/components/u-back-top/props.js | 54 + .../components/u-back-top/u-back-top.vue | 129 ++ .../uview-ui/components/u-badge/props.js | 72 + .../uview-ui/components/u-badge/u-badge.vue | 171 ++ .../uview-ui/components/u-button/nvue.scss | 46 + .../uview-ui/components/u-button/props.js | 161 ++ .../uview-ui/components/u-button/u-button.vue | 490 +++++ .../uview-ui/components/u-button/vue.scss | 80 + .../uview-ui/components/u-calendar/header.vue | 99 + .../uview-ui/components/u-calendar/month.vue | 579 ++++++ .../uview-ui/components/u-calendar/props.js | 144 ++ .../components/u-calendar/u-calendar.vue | 384 ++++ .../uview-ui/components/u-calendar/util.js | 85 + .../components/u-car-keyboard/props.js | 14 + .../u-car-keyboard/u-car-keyboard.vue | 311 +++ .../uview-ui/components/u-cell-group/props.js | 14 + .../components/u-cell-group/u-cell-group.vue | 61 + .../uview-ui/components/u-cell/props.js | 110 ++ .../uview-ui/components/u-cell/u-cell.vue | 229 +++ .../components/u-checkbox-group/props.js | 82 + .../u-checkbox-group/u-checkbox-group.vue | 103 + .../uview-ui/components/u-checkbox/props.js | 69 + .../components/u-checkbox/u-checkbox.vue | 344 ++++ .../components/u-circle-progress/props.js | 8 + .../u-circle-progress/u-circle-progress.vue | 198 ++ .../uview-ui/components/u-code-input/props.js | 79 + .../components/u-code-input/u-code-input.vue | 252 +++ .../uview-ui/components/u-code/props.js | 34 + .../uview-ui/components/u-code/u-code.vue | 129 ++ .../uview-ui/components/u-col/props.js | 29 + .../uview-ui/components/u-col/u-col.vue | 162 ++ .../components/u-collapse-item/props.js | 59 + .../u-collapse-item/u-collapse-item.vue | 225 +++ .../uview-ui/components/u-collapse/props.js | 19 + .../components/u-collapse/u-collapse.vue | 90 + .../components/u-column-notice/props.js | 55 + .../u-column-notice/u-column-notice.vue | 160 ++ .../uview-ui/components/u-count-down/props.js | 24 + .../components/u-count-down/u-count-down.vue | 163 ++ .../uview-ui/components/u-count-down/utils.js | 62 + .../uview-ui/components/u-count-to/props.js | 59 + .../components/u-count-to/u-count-to.vue | 184 ++ .../components/u-datetime-picker/props.js | 116 ++ .../u-datetime-picker/u-datetime-picker.vue | 360 ++++ .../uview-ui/components/u-divider/props.js | 44 + .../components/u-divider/u-divider.vue | 116 ++ .../components/u-dropdown-item/props.js | 36 + .../u-dropdown-item/u-dropdown-item.vue | 127 ++ .../uview-ui/components/u-dropdown/props.js | 65 + .../components/u-dropdown/u-dropdown.vue | 127 ++ .../uview-ui/components/u-empty/props.js | 59 + .../uview-ui/components/u-empty/u-empty.vue | 128 ++ .../uview-ui/components/u-form-item/props.js | 48 + .../components/u-form-item/u-form-item.vue | 235 +++ .../uview-ui/components/u-form/props.js | 45 + .../uview-ui/components/u-form/u-form.vue | 214 +++ .../uview-ui/components/u-gap/props.js | 24 + .../uview-ui/components/u-gap/u-gap.vue | 38 + .../uview-ui/components/u-grid-item/props.js | 14 + .../components/u-grid-item/u-grid-item.vue | 209 ++ .../uview-ui/components/u-grid/props.js | 19 + .../uview-ui/components/u-grid/u-grid.vue | 97 + .../uview-ui/components/u-icon/icons.js | 214 +++ .../uview-ui/components/u-icon/props.js | 89 + .../uview-ui/components/u-icon/u-icon.vue | 234 +++ .../uview-ui/components/u-image/props.js | 84 + .../uview-ui/components/u-image/u-image.vue | 232 +++ .../components/u-index-anchor/props.js | 29 + .../u-index-anchor/u-index-anchor.vue | 91 + .../uview-ui/components/u-index-item/props.js | 5 + .../components/u-index-item/u-index-item.vue | 87 + .../uview-ui/components/u-index-list/props.js | 29 + .../components/u-index-list/u-index-list.vue | 440 +++++ .../uview-ui/components/u-input/props.js | 187 ++ .../uview-ui/components/u-input/u-input.vue | 354 ++++ .../uview-ui/components/u-keyboard/props.js | 84 + .../components/u-keyboard/u-keyboard.vue | 164 ++ .../components/u-line-progress/props.js | 28 + .../u-line-progress/u-line-progress.vue | 144 ++ .../uview-ui/components/u-line/props.js | 33 + .../uview-ui/components/u-line/u-line.vue | 62 + .../uview-ui/components/u-link/props.js | 39 + .../uview-ui/components/u-link/u-link.vue | 83 + .../uview-ui/components/u-list-item/props.js | 9 + .../components/u-list-item/u-list-item.vue | 116 ++ .../uview-ui/components/u-list/props.js | 76 + .../uview-ui/components/u-list/u-list.vue | 157 ++ .../components/u-loading-icon/props.js | 59 + .../u-loading-icon/u-loading-icon.vue | 343 ++++ .../components/u-loading-page/props.js | 49 + .../u-loading-page/u-loading-page.vue | 115 ++ .../uview-ui/components/u-loadmore/props.js | 94 + .../components/u-loadmore/u-loadmore.vue | 150 ++ .../uview-ui/components/u-modal/props.js | 84 + .../uview-ui/components/u-modal/u-modal.vue | 227 +++ .../uview-ui/components/u-navbar/props.js | 84 + .../uview-ui/components/u-navbar/u-navbar.vue | 186 ++ .../uview-ui/components/u-no-network/props.js | 19 + .../components/u-no-network/u-no-network.vue | 220 +++ .../uview-ui/components/u-notice-bar/props.js | 70 + .../components/u-notice-bar/u-notice-bar.vue | 101 + .../uview-ui/components/u-notify/props.js | 49 + .../uview-ui/components/u-notify/u-notify.vue | 211 +++ .../uview-ui/components/u-number-box/props.js | 109 ++ .../components/u-number-box/u-number-box.vue | 416 ++++ .../components/u-number-keyboard/props.js | 19 + .../u-number-keyboard/u-number-keyboard.vue | 196 ++ .../uview-ui/components/u-overlay/props.js | 24 + .../components/u-overlay/u-overlay.vue | 68 + .../uview-ui/components/u-parse/node/node.vue | 499 +++++ .../uview-ui/components/u-parse/parser.js | 1075 +++++++++++ .../uview-ui/components/u-parse/props.js | 45 + .../uview-ui/components/u-parse/u-parse.vue | 366 ++++ .../components/u-picker-column/props.js | 5 + .../u-picker-column/u-picker-column.vue | 27 + .../uview-ui/components/u-picker/props.js | 79 + .../uview-ui/components/u-picker/u-picker.vue | 283 +++ .../uview-ui/components/u-popup/props.js | 79 + .../uview-ui/components/u-popup/u-popup.vue | 304 +++ .../components/u-radio-group/props.js | 85 + .../u-radio-group/u-radio-group.vue | 108 ++ .../uview-ui/components/u-radio/props.js | 64 + .../uview-ui/components/u-radio/u-radio.vue | 339 ++++ .../uview-ui/components/u-rate/props.js | 69 + .../uview-ui/components/u-rate/u-rate.vue | 306 +++ .../uview-ui/components/u-read-more/props.js | 61 + .../components/u-read-more/u-read-more.vue | 157 ++ .../uview-ui/components/u-row-notice/props.js | 39 + .../components/u-row-notice/u-row-notice.vue | 330 ++++ .../uview-ui/components/u-row/props.js | 19 + .../uview-ui/components/u-row/u-row.vue | 93 + .../components/u-safe-bottom/props.js | 5 + .../u-safe-bottom/u-safe-bottom.vue | 56 + .../uview-ui/components/u-scroll-list/nvue.js | 28 + .../components/u-scroll-list/other.js | 0 .../components/u-scroll-list/props.js | 34 + .../components/u-scroll-list/scrollWxs.wxs | 50 + .../u-scroll-list/u-scroll-list.vue | 224 +++ .../uview-ui/components/u-search/props.js | 118 ++ .../uview-ui/components/u-search/u-search.vue | 303 +++ .../uview-ui/components/u-skeleton/props.js | 59 + .../components/u-skeleton/u-skeleton.vue | 244 +++ .../uview-ui/components/u-slider/mpother.js | 113 ++ .../uview-ui/components/u-slider/mpwxs.js | 42 + .../uview-ui/components/u-slider/mpwxs.wxs | 121 ++ .../components/u-slider/nvue - 副本.js | 180 ++ .../uview-ui/components/u-slider/nvue.js | 193 ++ .../uview-ui/components/u-slider/props.js | 54 + .../uview-ui/components/u-slider/u-slider.vue | 55 + .../uview-ui/components/u-status-bar/props.js | 8 + .../components/u-status-bar/u-status-bar.vue | 46 + .../uview-ui/components/u-steps-item/props.js | 24 + .../components/u-steps-item/u-steps-item.vue | 316 ++++ .../uview-ui/components/u-steps/props.js | 39 + .../uview-ui/components/u-steps/u-steps.vue | 80 + .../uview-ui/components/u-sticky/props.js | 40 + .../uview-ui/components/u-sticky/u-sticky.vue | 212 +++ .../uview-ui/components/u-subsection/props.js | 49 + .../components/u-subsection/u-subsection.vue | 299 +++ .../u-swipe-action-item/index - backup.wxs | 256 +++ .../components/u-swipe-action-item/index.wxs | 225 +++ .../u-swipe-action-item/nvue - backup.js | 270 +++ .../components/u-swipe-action-item/nvue.js | 174 ++ .../components/u-swipe-action-item/props.js | 42 + .../u-swipe-action-item.vue | 193 ++ .../components/u-swipe-action-item/wxs.js | 15 + .../components/u-swipe-action/props.js | 9 + .../u-swipe-action/u-swipe-action.vue | 67 + .../components/u-swiper-indicator/props.js | 29 + .../u-swiper-indicator/u-swiper-indicator.vue | 110 ++ .../uview-ui/components/u-swiper/props.js | 125 ++ .../uview-ui/components/u-swiper/u-swiper.vue | 255 +++ .../uview-ui/components/u-switch/props.js | 54 + .../uview-ui/components/u-switch/u-switch.vue | 177 ++ .../components/u-tabbar-item/props.js | 35 + .../u-tabbar-item/u-tabbar-item.vue | 142 ++ .../uview-ui/components/u-tabbar/props.js | 44 + .../uview-ui/components/u-tabbar/u-tabbar.vue | 141 ++ .../uview-ui/components/u-table/props.js | 5 + .../uview-ui/components/u-table/u-table.vue | 29 + .../uview-ui/components/u-tabs-item/props.js | 5 + .../components/u-tabs-item/u-tabs-item.vue | 29 + .../uview-ui/components/u-tabs/props.js | 64 + .../uview-ui/components/u-tabs/u-tabs.vue | 354 ++++ .../uview-ui/components/u-tag/props.js | 84 + .../uview-ui/components/u-tag/u-tag.vue | 358 ++++ uni_modules/uview-ui/components/u-td/props.js | 5 + uni_modules/uview-ui/components/u-td/u-td.vue | 31 + .../uview-ui/components/u-text/props.js | 110 ++ .../uview-ui/components/u-text/u-text.vue | 223 +++ .../uview-ui/components/u-text/value.js | 85 + .../uview-ui/components/u-textarea/props.js | 119 ++ .../components/u-textarea/u-textarea.vue | 239 +++ .../uview-ui/components/u-toast/u-toast.vue | 291 +++ .../uview-ui/components/u-toolbar/props.js | 34 + .../components/u-toolbar/u-toolbar.vue | 102 + .../components/u-tooltip/clipboard.min.js | 58 + .../uview-ui/components/u-tooltip/props.js | 59 + .../components/u-tooltip/u-tooltip.vue | 365 ++++ uni_modules/uview-ui/components/u-tr/props.js | 5 + uni_modules/uview-ui/components/u-tr/u-tr.vue | 31 + .../components/u-transition/nvue.ani-map.js | 68 + .../uview-ui/components/u-transition/props.js | 24 + .../components/u-transition/transition.js | 157 ++ .../components/u-transition/u-transition.vue | 92 + .../u-transition/vue.ani-style.scss | 113 ++ .../uview-ui/components/u-upload/mixin.js | 21 + .../uview-ui/components/u-upload/props.js | 124 ++ .../uview-ui/components/u-upload/u-upload.vue | 558 ++++++ .../uview-ui/components/u-upload/utils.js | 151 ++ .../uview-ui/components/uview-ui/uview-ui.vue | 15 + uni_modules/uview-ui/index.js | 79 + uni_modules/uview-ui/index.scss | 23 + uni_modules/uview-ui/libs/config/color.js | 17 + uni_modules/uview-ui/libs/config/config.js | 34 + uni_modules/uview-ui/libs/config/props.js | 190 ++ .../uview-ui/libs/config/props/actionSheet.js | 25 + .../uview-ui/libs/config/props/album.js | 25 + .../uview-ui/libs/config/props/alert.js | 22 + .../uview-ui/libs/config/props/avatar.js | 28 + .../uview-ui/libs/config/props/avatarGroup.js | 23 + .../uview-ui/libs/config/props/backtop.js | 27 + .../uview-ui/libs/config/props/badge.js | 27 + .../uview-ui/libs/config/props/button.js | 42 + .../uview-ui/libs/config/props/calendar.js | 42 + .../uview-ui/libs/config/props/carKeyboard.js | 15 + .../uview-ui/libs/config/props/cell.js | 35 + .../uview-ui/libs/config/props/cellGroup.js | 17 + .../uview-ui/libs/config/props/checkbox.js | 27 + .../libs/config/props/checkboxGroup.js | 29 + .../libs/config/props/circleProgress.js | 15 + .../uview-ui/libs/config/props/code.js | 21 + .../uview-ui/libs/config/props/codeInput.js | 29 + uni_modules/uview-ui/libs/config/props/col.js | 19 + .../uview-ui/libs/config/props/collapse.js | 17 + .../libs/config/props/collapseItem.js | 25 + .../libs/config/props/columnNotice.js | 24 + .../uview-ui/libs/config/props/countDown.js | 18 + .../uview-ui/libs/config/props/countTo.js | 25 + .../libs/config/props/datetimePicker.js | 36 + .../uview-ui/libs/config/props/divider.js | 23 + .../uview-ui/libs/config/props/empty.js | 26 + .../uview-ui/libs/config/props/form.js | 22 + .../uview-ui/libs/config/props/formItem.js | 23 + uni_modules/uview-ui/libs/config/props/gap.js | 19 + .../uview-ui/libs/config/props/grid.js | 17 + .../uview-ui/libs/config/props/gridItem.js | 16 + .../uview-ui/libs/config/props/icon.js | 36 + .../uview-ui/libs/config/props/image.js | 30 + .../uview-ui/libs/config/props/indexAnchor.js | 19 + .../uview-ui/libs/config/props/indexList.js | 19 + .../uview-ui/libs/config/props/input.js | 48 + .../uview-ui/libs/config/props/keyboard.js | 30 + .../uview-ui/libs/config/props/line.js | 20 + .../libs/config/props/lineProgress.js | 19 + .../uview-ui/libs/config/props/link.js | 26 + .../uview-ui/libs/config/props/list.js | 28 + .../uview-ui/libs/config/props/listItem.js | 15 + .../uview-ui/libs/config/props/loadingIcon.js | 30 + .../uview-ui/libs/config/props/loadingPage.js | 23 + .../uview-ui/libs/config/props/loadmore.js | 32 + .../uview-ui/libs/config/props/modal.js | 30 + .../uview-ui/libs/config/props/navbar.js | 32 + .../uview-ui/libs/config/props/noNetwork.js | 18 + .../uview-ui/libs/config/props/noticeBar.js | 27 + .../uview-ui/libs/config/props/notify.js | 22 + .../uview-ui/libs/config/props/numberBox.js | 35 + .../libs/config/props/numberKeyboard.js | 17 + .../uview-ui/libs/config/props/overlay.js | 18 + .../uview-ui/libs/config/props/parse.js | 22 + .../uview-ui/libs/config/props/picker.js | 29 + .../uview-ui/libs/config/props/popup.js | 29 + .../uview-ui/libs/config/props/radio.js | 27 + .../uview-ui/libs/config/props/radioGroup.js | 30 + .../uview-ui/libs/config/props/rate.js | 26 + .../uview-ui/libs/config/props/readMore.js | 22 + uni_modules/uview-ui/libs/config/props/row.js | 17 + .../uview-ui/libs/config/props/rowNotice.js | 21 + .../uview-ui/libs/config/props/scrollList.js | 20 + .../uview-ui/libs/config/props/search.js | 37 + .../uview-ui/libs/config/props/section.js | 24 + .../uview-ui/libs/config/props/skeleton.js | 25 + .../uview-ui/libs/config/props/slider.js | 25 + .../uview-ui/libs/config/props/statusBar.js | 15 + .../uview-ui/libs/config/props/steps.js | 21 + .../uview-ui/libs/config/props/stepsItem.js | 18 + .../uview-ui/libs/config/props/sticky.js | 20 + .../uview-ui/libs/config/props/subsection.js | 23 + .../uview-ui/libs/config/props/swipeAction.js | 15 + .../libs/config/props/swipeActionItem.js | 21 + .../uview-ui/libs/config/props/swiper.js | 39 + .../libs/config/props/swipterIndicator.js | 19 + .../uview-ui/libs/config/props/switch.js | 24 + .../uview-ui/libs/config/props/tabbar.js | 22 + .../uview-ui/libs/config/props/tabbarItem.js | 20 + .../uview-ui/libs/config/props/tabs.js | 32 + uni_modules/uview-ui/libs/config/props/tag.js | 29 + .../uview-ui/libs/config/props/text.js | 38 + .../uview-ui/libs/config/props/textarea.js | 36 + .../uview-ui/libs/config/props/toast.js | 30 + .../uview-ui/libs/config/props/toolbar.js | 21 + .../uview-ui/libs/config/props/tooltip.js | 25 + .../uview-ui/libs/config/props/transition.js | 18 + .../uview-ui/libs/config/props/upload.js | 36 + uni_modules/uview-ui/libs/config/zIndex.js | 20 + uni_modules/uview-ui/libs/css/color.scss | 155 ++ uni_modules/uview-ui/libs/css/common.scss | 97 + uni_modules/uview-ui/libs/css/components.scss | 15 + uni_modules/uview-ui/libs/css/flex.scss | 257 +++ uni_modules/uview-ui/libs/css/h5.scss | 0 uni_modules/uview-ui/libs/css/mixin.scss | 8 + uni_modules/uview-ui/libs/css/mp.scss | 0 uni_modules/uview-ui/libs/css/nvue.scss | 0 uni_modules/uview-ui/libs/css/vue.scss | 27 + .../uview-ui/libs/function/colorGradient.js | 134 ++ .../uview-ui/libs/function/debounce.js | 29 + uni_modules/uview-ui/libs/function/digit.js | 167 ++ uni_modules/uview-ui/libs/function/index.js | 731 +++++++ .../uview-ui/libs/function/platform.js | 75 + uni_modules/uview-ui/libs/function/test.js | 288 +++ .../uview-ui/libs/function/throttle.js | 30 + .../libs/luch-request/adapters/index.js | 97 + .../luch-request/core/InterceptorManager.js | 50 + .../libs/luch-request/core/Request.js | 198 ++ .../libs/luch-request/core/buildFullPath.js | 20 + .../libs/luch-request/core/defaults.js | 29 + .../libs/luch-request/core/dispatchRequest.js | 3 + .../libs/luch-request/core/mergeConfig.js | 103 + .../uview-ui/libs/luch-request/core/settle.js | 16 + .../libs/luch-request/helpers/buildURL.js | 69 + .../libs/luch-request/helpers/combineURLs.js | 14 + .../luch-request/helpers/isAbsoluteURL.js | 14 + .../uview-ui/libs/luch-request/index.d.ts | 116 ++ .../uview-ui/libs/luch-request/index.js | 3 + .../uview-ui/libs/luch-request/utils.js | 131 ++ .../uview-ui/libs/luch-request/utils/clone.js | 264 +++ uni_modules/uview-ui/libs/mixin/button.js | 13 + uni_modules/uview-ui/libs/mixin/mixin.js | 160 ++ uni_modules/uview-ui/libs/mixin/mpMixin.js | 8 + uni_modules/uview-ui/libs/mixin/mpShare.js | 16 + uni_modules/uview-ui/libs/mixin/openType.js | 25 + uni_modules/uview-ui/libs/mixin/style.js | 228 +++ uni_modules/uview-ui/libs/mixin/touch.js | 59 + .../uview-ui/libs/util/async-validator.js | 1343 +++++++++++++ uni_modules/uview-ui/libs/util/calendar.js | 546 ++++++ uni_modules/uview-ui/libs/util/dayjs.js | 308 +++ uni_modules/uview-ui/libs/util/emitter.js | 51 + uni_modules/uview-ui/libs/util/route.js | 124 ++ uni_modules/uview-ui/package.json | 84 + uni_modules/uview-ui/theme.scss | 44 + uni_modules/z-paging/changelog.md | 12 + .../z-paging-cell/z-paging-cell.vue | 34 + .../z-paging-empty-view.vue | 162 ++ .../z-paging-swiper-item.vue | 143 ++ .../z-paging-swiper/z-paging-swiper.vue | 169 ++ .../components/z-paging-load-more.vue | 141 ++ .../z-paging/components/z-paging-refresh.vue | 182 ++ .../components/z-paging/config/index.js | 3 + .../components/z-paging/css/z-paging-main.css | 227 +++ .../z-paging/css/z-paging-static.css | 35 + .../z-paging/components/z-paging/i18n/en.json | 22 + .../components/z-paging/i18n/index.js | 8 + .../components/z-paging/i18n/zh-Hans.json | 22 + .../components/z-paging/i18n/zh-Hant.json | 22 + .../z-paging/js/hooks/useZPaging.js | 25 + .../z-paging/js/hooks/useZPagingComp.js | 26 + .../z-paging/js/modules/back-to-top.js | 100 + .../z-paging/js/modules/common-layout.js | 116 ++ .../z-paging/js/modules/data-handle.js | 717 +++++++ .../components/z-paging/js/modules/empty.js | 147 ++ .../components/z-paging/js/modules/i18n.js | 100 + .../z-paging/js/modules/load-more.js | 315 ++++ .../components/z-paging/js/modules/loading.js | 93 + .../components/z-paging/js/modules/nvue.js | 249 +++ .../z-paging/js/modules/refresher.js | 681 +++++++ .../z-paging/js/modules/scroller.js | 462 +++++ .../z-paging/js/modules/virtual-list.js | 395 ++++ .../components/z-paging/js/z-paging-config.js | 21 + .../z-paging/js/z-paging-constant.js | 12 + .../components/z-paging/js/z-paging-enum.js | 44 + .../z-paging/js/z-paging-interceptor.js | 48 + .../components/z-paging/js/z-paging-main.js | 423 +++++ .../components/z-paging/js/z-paging-mixin.js | 22 + .../components/z-paging/js/z-paging-static.js | 13 + .../components/z-paging/js/z-paging-utils.js | 220 +++ .../z-paging/wxs/z-paging-renderjs.js | 55 + .../components/z-paging/wxs/z-paging-wxs.wxs | 342 ++++ .../z-paging/components/z-paging/z-paging.vue | 307 +++ uni_modules/z-paging/package.json | 86 + uni_modules/z-paging/readme.md | 46 + utils/app.js | 285 +++ utils/color.js | 67 + utils/iconfont.scss | 346 ++++ utils/storage.js | 86 + utils/util.js | 330 ++++ utils/utils.scss | 340 ++++ utils/verify.js | 69 + version.json | 3 + vue.config.js | 3 + 当前是uniapp端的源码.txt | 1 + 1030 files changed, 128016 insertions(+) create mode 100644 .gitignore create mode 100644 .hbuilderx/launch.json create mode 100644 .idea/meihelove-uniapp.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100755 App.vue create mode 100755 androidPrivacy.json create mode 100644 api/apps-bc-agent.js create mode 100644 api/apps-bc-plan.js create mode 100644 api/apps-bc-temporary.js create mode 100644 api/article-comment.js create mode 100644 api/article-like.js create mode 100644 api/article.js create mode 100644 api/balance-log.js create mode 100644 api/cart.js create mode 100644 api/categoty.js create mode 100644 api/chat.js create mode 100644 api/chatgpt.js create mode 100644 api/demo.js create mode 100644 api/dict.js create mode 100644 api/equipment-goods.js create mode 100644 api/equipment.js create mode 100644 api/goods.js create mode 100644 api/house-info.js create mode 100644 api/house-reservation.js create mode 100644 api/index.js create mode 100644 api/login.js create mode 100644 api/love-certificate.js create mode 100644 api/love-profit.js create mode 100644 api/love-user-plan-equity.js create mode 100644 api/love-user-plan-log.js create mode 100644 api/love-user-plan.js create mode 100644 api/love-user-profile.js create mode 100644 api/merchant-withdraw.js create mode 100644 api/merchant.js create mode 100644 api/order-goods.js create mode 100644 api/order.js create mode 100644 api/payment.js create mode 100644 api/redis-util.js create mode 100644 api/setting.js create mode 100644 api/statistics.js create mode 100644 api/test.js create mode 100644 api/upload.js create mode 100644 api/user-comment.js create mode 100644 api/user-feedback.js create mode 100644 api/user-follow.js create mode 100644 api/user-grade.js create mode 100644 api/user-like.js create mode 100644 api/user-look.js create mode 100644 api/user-referee.js create mode 100644 api/user.js create mode 100644 api/ww-login.js create mode 100755 api/wx-login.js create mode 100755 api/wxofficial.js create mode 100755 app.scss create mode 100755 common/constant/index.js create mode 100755 common/constant/paginate.js create mode 100755 common/enum/Client.js create mode 100755 common/enum/coupon/ApplyRange.js create mode 100755 common/enum/coupon/CouponType.js create mode 100755 common/enum/coupon/ExpireType.js create mode 100755 common/enum/coupon/index.js create mode 100755 common/enum/dealer/apply/ApplyStatus.js create mode 100755 common/enum/dealer/apply/ApplyType.js create mode 100755 common/enum/dealer/apply/index.js create mode 100755 common/enum/dealer/withdraw/ApplyStatus.js create mode 100755 common/enum/dealer/withdraw/PayType.js create mode 100755 common/enum/dealer/withdraw/index.js create mode 100755 common/enum/enum.js create mode 100755 common/enum/goods/GoodsType.js create mode 100755 common/enum/goods/SpecType.js create mode 100755 common/enum/goods/index.js create mode 100755 common/enum/groupon/ActiveStatus.js create mode 100755 common/enum/groupon/ActiveType.js create mode 100755 common/enum/groupon/GoodsStatus.js create mode 100755 common/enum/groupon/TaskStatus.js create mode 100755 common/enum/groupon/index.js create mode 100755 common/enum/live/LiveStatus.js create mode 100755 common/enum/live/index.js create mode 100755 common/enum/order/DeliveryStatus.js create mode 100755 common/enum/order/DeliveryType.js create mode 100755 common/enum/order/OrderSource.js create mode 100755 common/enum/order/OrderStatus.js create mode 100755 common/enum/order/OrderType.js create mode 100755 common/enum/order/PayStatus.js create mode 100755 common/enum/order/PayType.js create mode 100755 common/enum/order/ReceiptStatus.js create mode 100755 common/enum/order/delivery/DeliveryMethod.js create mode 100755 common/enum/order/delivery/index.js create mode 100755 common/enum/order/index.js create mode 100755 common/enum/order/refund/AuditStatus.js create mode 100755 common/enum/order/refund/RefundStatus.js create mode 100755 common/enum/order/refund/RefundType.js create mode 100755 common/enum/order/refund/index.js create mode 100755 common/enum/payment/Method.js create mode 100755 common/enum/payment/index.js create mode 100755 common/enum/setting/Key.js create mode 100755 common/enum/sharp/ActiveStatus.js create mode 100755 common/enum/sharp/GoodsStatus.js create mode 100755 common/enum/sharp/index.js create mode 100755 common/enum/store/page/category/Style.js create mode 100755 common/enum/store/page/category/index.js create mode 100755 common/model/Region.js create mode 100755 common/model/Setting.js create mode 100755 common/model/dealer/Setting.js create mode 100755 common/model/groupon/Setting.js create mode 100644 components/Luke-UniappAddressSelector/components/UniAddressSelector.vue create mode 100644 components/Luke-UniappAddressSelector/index.vue create mode 100644 components/Luke-UniappAddressSelector/readme.md create mode 100755 components/add-cart-btn/index.vue create mode 100755 components/add-cart-popup/index.vue create mode 100644 components/article-video/article-video.vue create mode 100755 components/avatar-image/index.vue create mode 100644 components/chat-input-bar/chat-input-bar.vue create mode 100644 components/chat-input-bar/emoji.js create mode 100644 components/chat-item-image/chat-item-image.vue create mode 100644 components/chat-item/chat-item.vue create mode 100755 components/countdown/index.vue create mode 100755 components/customer-btn/index.vue create mode 100755 components/empty/index.vue create mode 100755 components/goods-poster-popup/index.vue create mode 100755 components/goods-sku-popup/index.vue create mode 100755 components/goods-sku-popup/number-box/index.vue create mode 100755 components/jyf-parser/jyf-parser.vue create mode 100755 components/jyf-parser/libs/CssHandler.js create mode 100755 components/jyf-parser/libs/MpHtmlParser.js create mode 100755 components/jyf-parser/libs/config.js create mode 100755 components/jyf-parser/libs/handler.wxs create mode 100755 components/jyf-parser/libs/trees.vue create mode 100755 components/mescroll-uni/components/mescroll-down.css create mode 100755 components/mescroll-uni/components/mescroll-down.vue create mode 100755 components/mescroll-uni/components/mescroll-empty.vue create mode 100755 components/mescroll-uni/components/mescroll-top.vue create mode 100755 components/mescroll-uni/components/mescroll-up.css create mode 100755 components/mescroll-uni/components/mescroll-up.vue create mode 100755 components/mescroll-uni/mescroll-body.css create mode 100755 components/mescroll-uni/mescroll-body.vue create mode 100755 components/mescroll-uni/mescroll-mixins.js create mode 100755 components/mescroll-uni/mescroll-uni-option.js create mode 100755 components/mescroll-uni/mescroll-uni.css create mode 100755 components/mescroll-uni/mescroll-uni.js create mode 100755 components/mescroll-uni/mescroll-uni.vue create mode 100755 components/mescroll-uni/mixins/mescroll-comp.js create mode 100755 components/mescroll-uni/mixins/mescroll-more-item.js create mode 100755 components/mescroll-uni/mixins/mescroll-more.js create mode 100755 components/mescroll-uni/wxs/mixins.js create mode 100755 components/mescroll-uni/wxs/renderjs.js create mode 100755 components/mescroll-uni/wxs/wxs.wxs create mode 100755 components/page/diyComponents/article/index.vue create mode 100755 components/page/diyComponents/banner/index.vue create mode 100755 components/page/diyComponents/bargain/index.vue create mode 100755 components/page/diyComponents/blank/index.vue create mode 100755 components/page/diyComponents/coupon/index.vue create mode 100755 components/page/diyComponents/empty.vue create mode 100755 components/page/diyComponents/goods/index.vue create mode 100755 components/page/diyComponents/groupon/index.vue create mode 100755 components/page/diyComponents/guide/index.vue create mode 100755 components/page/diyComponents/hotZone/index.vue create mode 100755 components/page/diyComponents/image/index.vue create mode 100755 components/page/diyComponents/mixin.js create mode 100755 components/page/diyComponents/navBar/index.vue create mode 100755 components/page/diyComponents/notice/index.vue create mode 100755 components/page/diyComponents/officialAccount/index.vue create mode 100755 components/page/diyComponents/richText/index.vue create mode 100755 components/page/diyComponents/search/index.vue create mode 100755 components/page/diyComponents/service/index.vue create mode 100755 components/page/diyComponents/sharp/index.vue create mode 100755 components/page/diyComponents/shop/index.vue create mode 100755 components/page/diyComponents/special/index.vue create mode 100755 components/page/diyComponents/video/index.vue create mode 100755 components/page/diyComponents/window/index.vue create mode 100755 components/page/index.vue create mode 100755 components/recommended/index.vue create mode 100755 components/search/index.vue create mode 100755 components/select-region/select-region.vue create mode 100755 components/share-sheet/index.vue create mode 100755 components/shortcut/index.vue create mode 100644 components/static/add.png create mode 100644 components/static/audio.png create mode 100644 components/static/emoji.png create mode 100644 components/static/jianpan.png create mode 100644 components/video-swiper/index.vue create mode 100755 config.js create mode 100755 core/app.js create mode 100755 core/bootstrap.js create mode 100755 core/config/defaultConfig.js create mode 100755 core/config/index.js create mode 100755 core/mixins/app.js create mode 100644 core/mixins/notice.js create mode 100644 core/mixins/tabbar.js create mode 100755 core/payment/alipay.js create mode 100755 core/payment/index.js create mode 100644 core/payment/wechat.js create mode 100755 core/platform.js create mode 100755 js_sdk/ican-H5Api/ican-H5Api.js create mode 100644 js_sdk/qqmap-wx-jssdk.min.js create mode 100755 js_sdk/queryStringify.js create mode 100755 main.js create mode 100755 manifest.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100755 pages.json create mode 100644 pages/article/article.vue create mode 100644 pages/article/detail/detail.vue create mode 100644 pages/chat/chat.vue create mode 100755 pages/checkout/cashier/index.vue create mode 100644 pages/checkout/checkout.vue create mode 100755 pages/comment/index.vue create mode 100755 pages/empty.vue create mode 100644 pages/flash/index.vue create mode 100755 pages/help/xieyi.vue create mode 100644 pages/home/home.vue create mode 100644 pages/house/house.vue create mode 100644 pages/index/index.vue create mode 100755 pages/login/components/main.vue create mode 100755 pages/login/components/mp-weixin-mobile.vue create mode 100755 pages/login/components/mp-weixin.vue create mode 100755 pages/login/components/wx-official.vue create mode 100755 pages/login/index.vue create mode 100644 pages/love/category.vue create mode 100644 pages/love/love copy.vue create mode 100644 pages/love/love.vue create mode 100644 pages/notice/notice.vue create mode 100755 pages/order/index.vue create mode 100644 pages/pair/pair.vue create mode 100755 pages/refund/apply.vue create mode 100755 pages/refund/detail.vue create mode 100755 pages/refund/index.vue create mode 100755 pages/search/index.vue create mode 100755 pages/shop/detail.vue create mode 100755 pages/shop/extract.vue create mode 100644 pages/user/password/password.vue create mode 100644 pages/user/user.vue create mode 100644 pages/zone/member/member.vue create mode 100644 pages/zone/zone.vue create mode 100644 polyfill/README.md create mode 100644 polyfill/base64Binary.js create mode 100644 polyfill/mixins.js create mode 100644 polyfill/polyfill.js create mode 100755 static/channel/wechat.png create mode 100755 static/default-avatar.png create mode 100755 static/empty-02.png create mode 100644 static/goods/battery.png create mode 100644 static/icon/08-2.png create mode 100644 static/icon/08-3.png create mode 100644 static/icon/08.svg create mode 100644 static/icon/1.png create mode 100644 static/icon/add.png create mode 100644 static/icon/add2.png create mode 100644 static/icon/add3.png create mode 100644 static/icon/add4.png create mode 100644 static/icon/add5.png create mode 100644 static/icon/bai-xin.png create mode 100644 static/icon/boy.png create mode 100644 static/icon/buy-user-01.png create mode 100644 static/icon/buy-user-02.png create mode 100644 static/icon/buy-user-03.png create mode 100644 static/icon/buy-user-04.png create mode 100644 static/icon/buy-user-05.png create mode 100644 static/icon/buy-user-06.png create mode 100644 static/icon/buy-user-07.png create mode 100644 static/icon/buy-user-08.png create mode 100644 static/icon/buy-user-09.png create mode 100644 static/icon/buy-user-10.png create mode 100644 static/icon/buy-user-11.png create mode 100644 static/icon/buy-user-12.png create mode 100644 static/icon/buy-user-13.png create mode 100644 static/icon/buy-user-14.png create mode 100644 static/icon/buy-user-15.png create mode 100644 static/icon/buy-user-16.png create mode 100644 static/icon/buy-user-17.png create mode 100644 static/icon/buy-user-18.png create mode 100644 static/icon/buy-user-19.png create mode 100644 static/icon/buy-user-20.png create mode 100644 static/icon/buy-user-21.png create mode 100644 static/icon/buy-user-22.png create mode 100644 static/icon/buy-user-23.png create mode 100644 static/icon/buy-user-24.png create mode 100644 static/icon/buy-user-25.png create mode 100644 static/icon/buy-user-26.png create mode 100644 static/icon/comment-active.png create mode 100644 static/icon/comment.png create mode 100644 static/icon/comment2-active.png create mode 100644 static/icon/comment2.png create mode 100644 static/icon/danshen.png create mode 100644 static/icon/emoji.png create mode 100644 static/icon/follow.png create mode 100644 static/icon/g.svg create mode 100644 static/icon/gift.png create mode 100644 static/icon/gift2.png create mode 100644 static/icon/girl.png create mode 100644 static/icon/gonggao.png create mode 100644 static/icon/gou.png create mode 100644 static/icon/grade-01.png create mode 100644 static/icon/grade-02.png create mode 100644 static/icon/grade-03.png create mode 100644 static/icon/grade-04.png create mode 100644 static/icon/grade-05.png create mode 100644 static/icon/huangguan.png create mode 100644 static/icon/invite.png create mode 100644 static/icon/marriage.png create mode 100644 static/icon/my-certification01.png create mode 100644 static/icon/my-certification02.png create mode 100644 static/icon/my-certification03.png create mode 100644 static/icon/my-certification04.png create mode 100644 static/icon/notice-01.png create mode 100644 static/icon/notice-02.png create mode 100644 static/icon/notice-03.png create mode 100644 static/icon/notice-04.png create mode 100644 static/icon/order.png create mode 100644 static/icon/path.png create mode 100644 static/icon/photograph.png create mode 100644 static/icon/poster-save.png create mode 100644 static/icon/poster-weixin.png create mode 100644 static/icon/release.png create mode 100644 static/icon/release2.png create mode 100644 static/icon/release3.png create mode 100644 static/icon/screen2.png create mode 100644 static/icon/search.png create mode 100644 static/icon/search2.png create mode 100644 static/icon/send.png create mode 100644 static/icon/setting.png create mode 100644 static/icon/sex_man.png create mode 100644 static/icon/sex_woman.png create mode 100644 static/icon/share01.png create mode 100644 static/icon/share02.png create mode 100644 static/icon/share03.png create mode 100644 static/icon/switch.png create mode 100644 static/icon/switch2.png create mode 100644 static/icon/top1.png create mode 100644 static/icon/top2.png create mode 100644 static/icon/top3.png create mode 100644 static/icon/vip.png create mode 100644 static/icon/vip2.png create mode 100644 static/icon/vip3.png create mode 100644 static/icon/vip4.png create mode 100644 static/icon/vip5.png create mode 100644 static/icon/wallet.png create mode 100644 static/icon/wallet2.png create mode 100644 static/icon/xin.png create mode 100644 static/icon/xin2.png create mode 100755 static/not-dealer.png create mode 100755 static/order/refund-bg.png create mode 100755 static/order/status/close.png create mode 100755 static/order/status/received.png create mode 100755 static/order/status/wait_deliver.png create mode 100755 static/order/status/wait_pay.png create mode 100755 static/order/status/wait_receipt.png create mode 100755 static/privacy.html create mode 100755 static/protocol.html create mode 100644 static/star.svg create mode 100644 static/star1.svg create mode 100644 static/star2.svg create mode 100644 static/tabbar/home-active.png create mode 100644 static/tabbar/home.png create mode 100644 static/tabbar/house-active.png create mode 100644 static/tabbar/house.png create mode 100644 static/tabbar/love-active.png create mode 100644 static/tabbar/love.png create mode 100644 static/tabbar/notice-active.png create mode 100644 static/tabbar/notice.png create mode 100644 static/tabbar/user-active.png create mode 100644 static/tabbar/user.png create mode 100644 static/tabbar/zone-active.png create mode 100644 static/tabbar/zone.png create mode 100644 static/user-base/n.png create mode 100644 static/user-base/y.png create mode 100755 store/getters.js create mode 100755 store/index.js create mode 100755 store/modules/app.js create mode 100644 store/modules/chat.js create mode 100755 store/modules/index.js create mode 100755 store/modules/notice.js create mode 100755 store/modules/theme.js create mode 100755 store/modules/user.js create mode 100755 store/mutation-types.js create mode 100755 sub_pages/app-plus/privacy.html create mode 100755 sub_pages/app-plus/protocol.html create mode 100644 sub_pages/certification/car/car.vue create mode 100644 sub_pages/certification/certification.vue create mode 100644 sub_pages/certification/education/education.vue create mode 100644 sub_pages/certification/house/house.vue create mode 100644 sub_pages/certification/id-card/id-card.vue create mode 100644 sub_pages/checkout/checkout copy.vue create mode 100644 sub_pages/checkout/checkout.vue create mode 100644 sub_pages/contact/contact.vue create mode 100644 sub_pages/dealer/dealer.vue create mode 100644 sub_pages/dealer/grade/grade.vue create mode 100644 sub_pages/dealer/merchant/merchant.vue create mode 100644 sub_pages/dealer/offline/offline.vue create mode 100644 sub_pages/dealer/poster/poster.vue create mode 100644 sub_pages/dealer/qrcode/qrcode.vue create mode 100644 sub_pages/dealer/team/team.vue create mode 100644 sub_pages/feedback/feedback.vue create mode 100755 sub_pages/goods/components/Comment.vue create mode 100755 sub_pages/goods/components/Service.vue create mode 100755 sub_pages/goods/components/SkuPopup.vue create mode 100755 sub_pages/goods/components/SlideImage.vue create mode 100755 sub_pages/goods/detail.scss create mode 100755 sub_pages/goods/detail.vue create mode 100755 sub_pages/goods/list.vue create mode 100644 sub_pages/house/add.vue create mode 100644 sub_pages/house/detail.vue create mode 100644 sub_pages/house/house.vue create mode 100644 sub_pages/love/comment/comment.vue create mode 100644 sub_pages/love/release/release.vue create mode 100644 sub_pages/member/detail/detail.vue create mode 100644 sub_pages/member/member.vue create mode 100644 sub_pages/notice/comment.vue create mode 100644 sub_pages/notice/fans.vue create mode 100644 sub_pages/notice/like.vue create mode 100644 sub_pages/notice/look.vue create mode 100755 sub_pages/order/delivery.vue create mode 100644 sub_pages/order/delivery/cancel.vue create mode 100644 sub_pages/order/delivery/delivery.vue create mode 100644 sub_pages/order/delivery/me.vue create mode 100644 sub_pages/order/delivery/others.vue create mode 100644 sub_pages/order/delivery/receipt.vue create mode 100755 sub_pages/order/detail.vue create mode 100644 sub_pages/order/get-food/get-food.vue create mode 100755 sub_pages/order/index.vue create mode 100644 sub_pages/profit/profit.vue create mode 100755 sub_pages/search/index.vue create mode 100644 sub_pages/user/base/address/address.vue create mode 100644 sub_pages/user/base/avatar/avatar.vue create mode 100644 sub_pages/user/base/base.scss create mode 100644 sub_pages/user/base/birthday/birthday.vue create mode 100644 sub_pages/user/base/height/height.vue create mode 100644 sub_pages/user/base/nickname/nickname.vue create mode 100644 sub_pages/user/base/photo/photo.vue create mode 100644 sub_pages/user/base/sex/sex.vue create mode 100644 sub_pages/user/base/yearpay/yearpay.vue create mode 100644 sub_pages/user/bind/index.vue create mode 100644 sub_pages/user/buy/buy.vue create mode 100644 sub_pages/user/grade/grade.vue create mode 100755 sub_pages/user/personal/index.vue create mode 100644 sub_pages/user/poster/poster.vue create mode 100644 sub_pages/user/poster/poster2.vue create mode 100644 sub_pages/video-swiper/index.vue create mode 100755 sub_pages/wallet/balance/log.vue create mode 100644 sub_pages/wallet/gift/gift.vue create mode 100755 sub_pages/wallet/index.vue create mode 100644 sub_pages/wallet/profit/profit.vue create mode 100755 sub_pages/wallet/recharge/index.vue create mode 100755 sub_pages/wallet/recharge/order.vue create mode 100755 sub_pages/withdraw/log/log.vue create mode 100644 sub_pages/withdraw/withdraw.vue create mode 100755 template.h5.html create mode 100755 uni.scss create mode 100644 uni_modules/ksp-cropper/changelog.md create mode 100644 uni_modules/ksp-cropper/components/ksp-cropper/ksp-cropper.vue create mode 100644 uni_modules/ksp-cropper/package.json create mode 100644 uni_modules/ksp-cropper/readme.md create mode 100644 uni_modules/lime-painter/changelog.md create mode 100644 uni_modules/lime-painter/components/common/relation.js create mode 100644 uni_modules/lime-painter/components/l-painter-image/l-painter-image.vue create mode 100644 uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.vue create mode 100644 uni_modules/lime-painter/components/l-painter-text/l-painter-text.vue create mode 100644 uni_modules/lime-painter/components/l-painter-view/l-painter-view.vue create mode 100644 uni_modules/lime-painter/components/l-painter/l-painter.vue create mode 100644 uni_modules/lime-painter/components/l-painter/nvue.js create mode 100644 uni_modules/lime-painter/components/l-painter/painter.js create mode 100644 uni_modules/lime-painter/components/l-painter/props.js create mode 100644 uni_modules/lime-painter/components/l-painter/utils.js create mode 100644 uni_modules/lime-painter/components/lime-painter/lime-painter.vue create mode 100644 uni_modules/lime-painter/hybrid/html/index.html create mode 100644 uni_modules/lime-painter/hybrid/html/painter.js create mode 100644 uni_modules/lime-painter/hybrid/html/uni.webview.1.5.3.js create mode 100644 uni_modules/lime-painter/package.json create mode 100644 uni_modules/lime-painter/readme.md create mode 100644 uni_modules/liu-customize-sel/changelog.md create mode 100644 uni_modules/liu-customize-sel/components/liu-customize-sel/liu-customize-sel.vue create mode 100644 uni_modules/liu-customize-sel/license.md create mode 100644 uni_modules/liu-customize-sel/package.json create mode 100644 uni_modules/liu-customize-sel/readme.md create mode 100644 uni_modules/liu-customize-sel/static/noData.png create mode 100755 uni_modules/mp-html/README.md create mode 100755 uni_modules/mp-html/changelog.md create mode 100755 uni_modules/mp-html/components/mp-html/mp-html.vue create mode 100755 uni_modules/mp-html/components/mp-html/node/node.vue create mode 100755 uni_modules/mp-html/components/mp-html/parser.js create mode 100755 uni_modules/mp-html/package.json create mode 100755 uni_modules/mp-html/static/app-plus/mp-html/js/handler.js create mode 100755 uni_modules/mp-html/static/app-plus/mp-html/js/uni.webview.min.js create mode 100755 uni_modules/mp-html/static/app-plus/mp-html/local.html create mode 100644 uni_modules/uni-badge/changelog.md create mode 100644 uni_modules/uni-badge/components/uni-badge/uni-badge.vue create mode 100644 uni_modules/uni-badge/package.json create mode 100644 uni_modules/uni-badge/readme.md create mode 100644 uni_modules/uni-config-center/changelog.md create mode 100644 uni_modules/uni-config-center/package.json create mode 100644 uni_modules/uni-config-center/readme.md create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/index.js create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/package.json create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-pay/alipay/alipayCertPublicKey_RSA2.crt create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-pay/alipay/alipayRootCert.crt create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-pay/alipay/appCertPublicKey.crt create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-pay/config.js create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-pay/wxpay/apiclient_cert.p12 create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-pay/wxpay/apiclient_cert.pem create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-pay/wxpay/apiclient_key.pem create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-pay/【重要】请先看这里.md create mode 100644 uni_modules/uni-data-select/changelog.md create mode 100644 uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue create mode 100644 uni_modules/uni-data-select/package.json create mode 100644 uni_modules/uni-data-select/readme.md create mode 100644 uni_modules/uni-icons/changelog.md create mode 100644 uni_modules/uni-icons/components/uni-icons/icons.js create mode 100644 uni_modules/uni-icons/components/uni-icons/uni-icons.vue create mode 100644 uni_modules/uni-icons/components/uni-icons/uniicons.css create mode 100644 uni_modules/uni-icons/components/uni-icons/uniicons.ttf create mode 100644 uni_modules/uni-icons/package.json create mode 100644 uni_modules/uni-icons/readme.md create mode 100644 uni_modules/uni-id-common/changelog.md create mode 100644 uni_modules/uni-id-common/package.json create mode 100644 uni_modules/uni-id-common/readme.md create mode 100644 uni_modules/uni-id-common/uniCloud/cloudfunctions/common/uni-id-common/index.js create mode 100644 uni_modules/uni-id-common/uniCloud/cloudfunctions/common/uni-id-common/package.json create mode 100644 uni_modules/uni-list/changelog.md create mode 100644 uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue create mode 100644 uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss create mode 100644 uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue create mode 100644 uni_modules/uni-list/components/uni-list-item/uni-list-item.vue create mode 100644 uni_modules/uni-list/components/uni-list/uni-list.vue create mode 100644 uni_modules/uni-list/components/uni-list/uni-refresh.vue create mode 100644 uni_modules/uni-list/components/uni-list/uni-refresh.wxs create mode 100644 uni_modules/uni-list/package.json create mode 100644 uni_modules/uni-list/readme.md create mode 100644 uni_modules/uni-load-more/changelog.md create mode 100644 uni_modules/uni-load-more/components/uni-load-more/i18n/en.json create mode 100644 uni_modules/uni-load-more/components/uni-load-more/i18n/index.js create mode 100644 uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json create mode 100644 uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json create mode 100644 uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue create mode 100644 uni_modules/uni-load-more/package.json create mode 100644 uni_modules/uni-load-more/readme.md create mode 100644 uni_modules/uni-pay/changelog.md create mode 100644 uni_modules/uni-pay/components/uni-pay/uni-pay.vue create mode 100644 uni_modules/uni-pay/js_sdk/appleiap.js create mode 100644 uni_modules/uni-pay/js_sdk/js_sdk.js create mode 100644 uni_modules/uni-pay/package.json create mode 100644 uni_modules/uni-pay/pages/ad-interactive-webview/ad-interactive-webview.vue create mode 100644 uni_modules/uni-pay/pages/pay-desk/pay-desk.vue create mode 100644 uni_modules/uni-pay/pages/success/success.vue create mode 100644 uni_modules/uni-pay/readme.md create mode 100644 uni_modules/uni-pay/static/alipay.png create mode 100644 uni_modules/uni-pay/static/wxpay.png create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/common/uni-pay/LICENSE.md create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/common/uni-pay/index.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/common/uni-pay/package.json create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/common/error.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/config/permission.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/dao/index.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/dao/readme.md create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/dao/uniIdUsers.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/dao/uniPayOrders.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/index.obj.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/lang/en.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/lang/index.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/lang/zh-hans.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/libs/alipay.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/libs/common.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/libs/crypto.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/libs/index.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/libs/qrcode.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/libs/wxpay.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/middleware/access-control.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/middleware/auth.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/middleware/index.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/notify/appleiap.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/notify/test.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/notify/【重要】请先看这里.md create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/package.json create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/service/index.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/service/pay.js create mode 100644 uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/uni-pay-co.param.js create mode 100644 uni_modules/uni-pay/uniCloud/database/db_init.json create mode 100644 uni_modules/uni-popup/changelog.md create mode 100644 uni_modules/uni-popup/components/uni-popup-dialog/keypress.js create mode 100644 uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue create mode 100644 uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue create mode 100644 uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue create mode 100644 uni_modules/uni-popup/components/uni-popup/i18n/en.json create mode 100644 uni_modules/uni-popup/components/uni-popup/i18n/index.js create mode 100644 uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json create mode 100644 uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json create mode 100644 uni_modules/uni-popup/components/uni-popup/keypress.js create mode 100644 uni_modules/uni-popup/components/uni-popup/popup.js create mode 100644 uni_modules/uni-popup/components/uni-popup/uni-popup.vue create mode 100644 uni_modules/uni-popup/package.json create mode 100644 uni_modules/uni-popup/readme.md create mode 100644 uni_modules/uni-scss/changelog.md create mode 100644 uni_modules/uni-scss/index.scss create mode 100644 uni_modules/uni-scss/package.json create mode 100644 uni_modules/uni-scss/readme.md create mode 100644 uni_modules/uni-scss/styles/index.scss create mode 100644 uni_modules/uni-scss/styles/setting/_border.scss create mode 100644 uni_modules/uni-scss/styles/setting/_color.scss create mode 100644 uni_modules/uni-scss/styles/setting/_radius.scss create mode 100644 uni_modules/uni-scss/styles/setting/_space.scss create mode 100644 uni_modules/uni-scss/styles/setting/_styles.scss create mode 100644 uni_modules/uni-scss/styles/setting/_text.scss create mode 100644 uni_modules/uni-scss/styles/setting/_variables.scss create mode 100644 uni_modules/uni-scss/styles/tools/functions.scss create mode 100644 uni_modules/uni-scss/theme.scss create mode 100644 uni_modules/uni-scss/variables.scss create mode 100644 uni_modules/uni-transition/changelog.md create mode 100644 uni_modules/uni-transition/components/uni-transition/createAnimation.js create mode 100644 uni_modules/uni-transition/components/uni-transition/uni-transition.vue create mode 100644 uni_modules/uni-transition/package.json create mode 100644 uni_modules/uni-transition/readme.md create mode 100644 uni_modules/uview-ui/LICENSE create mode 100644 uni_modules/uview-ui/README.md create mode 100644 uni_modules/uview-ui/changelog.md create mode 100644 uni_modules/uview-ui/components/u--form/u--form.vue create mode 100644 uni_modules/uview-ui/components/u--image/u--image.vue create mode 100644 uni_modules/uview-ui/components/u--input/u--input.vue create mode 100644 uni_modules/uview-ui/components/u--text/u--text.vue create mode 100644 uni_modules/uview-ui/components/u--textarea/u--textarea.vue create mode 100644 uni_modules/uview-ui/components/u-action-sheet/props.js create mode 100644 uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue create mode 100644 uni_modules/uview-ui/components/u-album/props.js create mode 100644 uni_modules/uview-ui/components/u-album/u-album.vue create mode 100644 uni_modules/uview-ui/components/u-alert/props.js create mode 100644 uni_modules/uview-ui/components/u-alert/u-alert.vue create mode 100644 uni_modules/uview-ui/components/u-avatar-group/props.js create mode 100644 uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue create mode 100644 uni_modules/uview-ui/components/u-avatar/props.js create mode 100644 uni_modules/uview-ui/components/u-avatar/u-avatar.vue create mode 100644 uni_modules/uview-ui/components/u-back-top/props.js create mode 100644 uni_modules/uview-ui/components/u-back-top/u-back-top.vue create mode 100644 uni_modules/uview-ui/components/u-badge/props.js create mode 100644 uni_modules/uview-ui/components/u-badge/u-badge.vue create mode 100644 uni_modules/uview-ui/components/u-button/nvue.scss create mode 100644 uni_modules/uview-ui/components/u-button/props.js create mode 100644 uni_modules/uview-ui/components/u-button/u-button.vue create mode 100644 uni_modules/uview-ui/components/u-button/vue.scss create mode 100644 uni_modules/uview-ui/components/u-calendar/header.vue create mode 100644 uni_modules/uview-ui/components/u-calendar/month.vue create mode 100644 uni_modules/uview-ui/components/u-calendar/props.js create mode 100644 uni_modules/uview-ui/components/u-calendar/u-calendar.vue create mode 100644 uni_modules/uview-ui/components/u-calendar/util.js create mode 100644 uni_modules/uview-ui/components/u-car-keyboard/props.js create mode 100644 uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue create mode 100644 uni_modules/uview-ui/components/u-cell-group/props.js create mode 100644 uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue create mode 100644 uni_modules/uview-ui/components/u-cell/props.js create mode 100644 uni_modules/uview-ui/components/u-cell/u-cell.vue create mode 100644 uni_modules/uview-ui/components/u-checkbox-group/props.js create mode 100644 uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue create mode 100644 uni_modules/uview-ui/components/u-checkbox/props.js create mode 100644 uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue create mode 100644 uni_modules/uview-ui/components/u-circle-progress/props.js create mode 100644 uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue create mode 100644 uni_modules/uview-ui/components/u-code-input/props.js create mode 100644 uni_modules/uview-ui/components/u-code-input/u-code-input.vue create mode 100644 uni_modules/uview-ui/components/u-code/props.js create mode 100644 uni_modules/uview-ui/components/u-code/u-code.vue create mode 100644 uni_modules/uview-ui/components/u-col/props.js create mode 100644 uni_modules/uview-ui/components/u-col/u-col.vue create mode 100644 uni_modules/uview-ui/components/u-collapse-item/props.js create mode 100644 uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue create mode 100644 uni_modules/uview-ui/components/u-collapse/props.js create mode 100644 uni_modules/uview-ui/components/u-collapse/u-collapse.vue create mode 100644 uni_modules/uview-ui/components/u-column-notice/props.js create mode 100644 uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue create mode 100644 uni_modules/uview-ui/components/u-count-down/props.js create mode 100644 uni_modules/uview-ui/components/u-count-down/u-count-down.vue create mode 100644 uni_modules/uview-ui/components/u-count-down/utils.js create mode 100644 uni_modules/uview-ui/components/u-count-to/props.js create mode 100644 uni_modules/uview-ui/components/u-count-to/u-count-to.vue create mode 100644 uni_modules/uview-ui/components/u-datetime-picker/props.js create mode 100644 uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue create mode 100644 uni_modules/uview-ui/components/u-divider/props.js create mode 100644 uni_modules/uview-ui/components/u-divider/u-divider.vue create mode 100644 uni_modules/uview-ui/components/u-dropdown-item/props.js create mode 100644 uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue create mode 100644 uni_modules/uview-ui/components/u-dropdown/props.js create mode 100644 uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue create mode 100644 uni_modules/uview-ui/components/u-empty/props.js create mode 100644 uni_modules/uview-ui/components/u-empty/u-empty.vue create mode 100644 uni_modules/uview-ui/components/u-form-item/props.js create mode 100644 uni_modules/uview-ui/components/u-form-item/u-form-item.vue create mode 100644 uni_modules/uview-ui/components/u-form/props.js create mode 100644 uni_modules/uview-ui/components/u-form/u-form.vue create mode 100644 uni_modules/uview-ui/components/u-gap/props.js create mode 100644 uni_modules/uview-ui/components/u-gap/u-gap.vue create mode 100644 uni_modules/uview-ui/components/u-grid-item/props.js create mode 100644 uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue create mode 100644 uni_modules/uview-ui/components/u-grid/props.js create mode 100644 uni_modules/uview-ui/components/u-grid/u-grid.vue create mode 100644 uni_modules/uview-ui/components/u-icon/icons.js create mode 100644 uni_modules/uview-ui/components/u-icon/props.js create mode 100644 uni_modules/uview-ui/components/u-icon/u-icon.vue create mode 100644 uni_modules/uview-ui/components/u-image/props.js create mode 100644 uni_modules/uview-ui/components/u-image/u-image.vue create mode 100644 uni_modules/uview-ui/components/u-index-anchor/props.js create mode 100644 uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue create mode 100644 uni_modules/uview-ui/components/u-index-item/props.js create mode 100644 uni_modules/uview-ui/components/u-index-item/u-index-item.vue create mode 100644 uni_modules/uview-ui/components/u-index-list/props.js create mode 100644 uni_modules/uview-ui/components/u-index-list/u-index-list.vue create mode 100644 uni_modules/uview-ui/components/u-input/props.js create mode 100644 uni_modules/uview-ui/components/u-input/u-input.vue create mode 100644 uni_modules/uview-ui/components/u-keyboard/props.js create mode 100644 uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue create mode 100644 uni_modules/uview-ui/components/u-line-progress/props.js create mode 100644 uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue create mode 100644 uni_modules/uview-ui/components/u-line/props.js create mode 100644 uni_modules/uview-ui/components/u-line/u-line.vue create mode 100644 uni_modules/uview-ui/components/u-link/props.js create mode 100644 uni_modules/uview-ui/components/u-link/u-link.vue create mode 100644 uni_modules/uview-ui/components/u-list-item/props.js create mode 100644 uni_modules/uview-ui/components/u-list-item/u-list-item.vue create mode 100644 uni_modules/uview-ui/components/u-list/props.js create mode 100644 uni_modules/uview-ui/components/u-list/u-list.vue create mode 100644 uni_modules/uview-ui/components/u-loading-icon/props.js create mode 100644 uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue create mode 100644 uni_modules/uview-ui/components/u-loading-page/props.js create mode 100644 uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue create mode 100644 uni_modules/uview-ui/components/u-loadmore/props.js create mode 100644 uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue create mode 100644 uni_modules/uview-ui/components/u-modal/props.js create mode 100644 uni_modules/uview-ui/components/u-modal/u-modal.vue create mode 100644 uni_modules/uview-ui/components/u-navbar/props.js create mode 100644 uni_modules/uview-ui/components/u-navbar/u-navbar.vue create mode 100644 uni_modules/uview-ui/components/u-no-network/props.js create mode 100644 uni_modules/uview-ui/components/u-no-network/u-no-network.vue create mode 100644 uni_modules/uview-ui/components/u-notice-bar/props.js create mode 100644 uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue create mode 100644 uni_modules/uview-ui/components/u-notify/props.js create mode 100644 uni_modules/uview-ui/components/u-notify/u-notify.vue create mode 100644 uni_modules/uview-ui/components/u-number-box/props.js create mode 100644 uni_modules/uview-ui/components/u-number-box/u-number-box.vue create mode 100644 uni_modules/uview-ui/components/u-number-keyboard/props.js create mode 100644 uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue create mode 100644 uni_modules/uview-ui/components/u-overlay/props.js create mode 100644 uni_modules/uview-ui/components/u-overlay/u-overlay.vue create mode 100644 uni_modules/uview-ui/components/u-parse/node/node.vue create mode 100644 uni_modules/uview-ui/components/u-parse/parser.js create mode 100644 uni_modules/uview-ui/components/u-parse/props.js create mode 100644 uni_modules/uview-ui/components/u-parse/u-parse.vue create mode 100644 uni_modules/uview-ui/components/u-picker-column/props.js create mode 100644 uni_modules/uview-ui/components/u-picker-column/u-picker-column.vue create mode 100644 uni_modules/uview-ui/components/u-picker/props.js create mode 100644 uni_modules/uview-ui/components/u-picker/u-picker.vue create mode 100644 uni_modules/uview-ui/components/u-popup/props.js create mode 100644 uni_modules/uview-ui/components/u-popup/u-popup.vue create mode 100644 uni_modules/uview-ui/components/u-radio-group/props.js create mode 100644 uni_modules/uview-ui/components/u-radio-group/u-radio-group.vue create mode 100644 uni_modules/uview-ui/components/u-radio/props.js create mode 100644 uni_modules/uview-ui/components/u-radio/u-radio.vue create mode 100644 uni_modules/uview-ui/components/u-rate/props.js create mode 100644 uni_modules/uview-ui/components/u-rate/u-rate.vue create mode 100644 uni_modules/uview-ui/components/u-read-more/props.js create mode 100644 uni_modules/uview-ui/components/u-read-more/u-read-more.vue create mode 100644 uni_modules/uview-ui/components/u-row-notice/props.js create mode 100644 uni_modules/uview-ui/components/u-row-notice/u-row-notice.vue create mode 100644 uni_modules/uview-ui/components/u-row/props.js create mode 100644 uni_modules/uview-ui/components/u-row/u-row.vue create mode 100644 uni_modules/uview-ui/components/u-safe-bottom/props.js create mode 100644 uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue create mode 100644 uni_modules/uview-ui/components/u-scroll-list/nvue.js create mode 100644 uni_modules/uview-ui/components/u-scroll-list/other.js create mode 100644 uni_modules/uview-ui/components/u-scroll-list/props.js create mode 100644 uni_modules/uview-ui/components/u-scroll-list/scrollWxs.wxs create mode 100644 uni_modules/uview-ui/components/u-scroll-list/u-scroll-list.vue create mode 100644 uni_modules/uview-ui/components/u-search/props.js create mode 100644 uni_modules/uview-ui/components/u-search/u-search.vue create mode 100644 uni_modules/uview-ui/components/u-skeleton/props.js create mode 100644 uni_modules/uview-ui/components/u-skeleton/u-skeleton.vue create mode 100644 uni_modules/uview-ui/components/u-slider/mpother.js create mode 100644 uni_modules/uview-ui/components/u-slider/mpwxs.js create mode 100644 uni_modules/uview-ui/components/u-slider/mpwxs.wxs create mode 100644 uni_modules/uview-ui/components/u-slider/nvue - 副本.js create mode 100644 uni_modules/uview-ui/components/u-slider/nvue.js create mode 100644 uni_modules/uview-ui/components/u-slider/props.js create mode 100644 uni_modules/uview-ui/components/u-slider/u-slider.vue create mode 100644 uni_modules/uview-ui/components/u-status-bar/props.js create mode 100644 uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue create mode 100644 uni_modules/uview-ui/components/u-steps-item/props.js create mode 100644 uni_modules/uview-ui/components/u-steps-item/u-steps-item.vue create mode 100644 uni_modules/uview-ui/components/u-steps/props.js create mode 100644 uni_modules/uview-ui/components/u-steps/u-steps.vue create mode 100644 uni_modules/uview-ui/components/u-sticky/props.js create mode 100644 uni_modules/uview-ui/components/u-sticky/u-sticky.vue create mode 100644 uni_modules/uview-ui/components/u-subsection/props.js create mode 100644 uni_modules/uview-ui/components/u-subsection/u-subsection.vue create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/index - backup.wxs create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/index.wxs create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/nvue - backup.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/nvue.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/props.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/wxs.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action/props.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action/u-swipe-action.vue create mode 100644 uni_modules/uview-ui/components/u-swiper-indicator/props.js create mode 100644 uni_modules/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue create mode 100644 uni_modules/uview-ui/components/u-swiper/props.js create mode 100644 uni_modules/uview-ui/components/u-swiper/u-swiper.vue create mode 100644 uni_modules/uview-ui/components/u-switch/props.js create mode 100644 uni_modules/uview-ui/components/u-switch/u-switch.vue create mode 100644 uni_modules/uview-ui/components/u-tabbar-item/props.js create mode 100644 uni_modules/uview-ui/components/u-tabbar-item/u-tabbar-item.vue create mode 100644 uni_modules/uview-ui/components/u-tabbar/props.js create mode 100644 uni_modules/uview-ui/components/u-tabbar/u-tabbar.vue create mode 100644 uni_modules/uview-ui/components/u-table/props.js create mode 100644 uni_modules/uview-ui/components/u-table/u-table.vue create mode 100644 uni_modules/uview-ui/components/u-tabs-item/props.js create mode 100644 uni_modules/uview-ui/components/u-tabs-item/u-tabs-item.vue create mode 100644 uni_modules/uview-ui/components/u-tabs/props.js create mode 100644 uni_modules/uview-ui/components/u-tabs/u-tabs.vue create mode 100644 uni_modules/uview-ui/components/u-tag/props.js create mode 100644 uni_modules/uview-ui/components/u-tag/u-tag.vue create mode 100644 uni_modules/uview-ui/components/u-td/props.js create mode 100644 uni_modules/uview-ui/components/u-td/u-td.vue create mode 100644 uni_modules/uview-ui/components/u-text/props.js create mode 100644 uni_modules/uview-ui/components/u-text/u-text.vue create mode 100644 uni_modules/uview-ui/components/u-text/value.js create mode 100644 uni_modules/uview-ui/components/u-textarea/props.js create mode 100644 uni_modules/uview-ui/components/u-textarea/u-textarea.vue create mode 100644 uni_modules/uview-ui/components/u-toast/u-toast.vue create mode 100644 uni_modules/uview-ui/components/u-toolbar/props.js create mode 100644 uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue create mode 100644 uni_modules/uview-ui/components/u-tooltip/clipboard.min.js create mode 100644 uni_modules/uview-ui/components/u-tooltip/props.js create mode 100644 uni_modules/uview-ui/components/u-tooltip/u-tooltip.vue create mode 100644 uni_modules/uview-ui/components/u-tr/props.js create mode 100644 uni_modules/uview-ui/components/u-tr/u-tr.vue create mode 100644 uni_modules/uview-ui/components/u-transition/nvue.ani-map.js create mode 100644 uni_modules/uview-ui/components/u-transition/props.js create mode 100644 uni_modules/uview-ui/components/u-transition/transition.js create mode 100644 uni_modules/uview-ui/components/u-transition/u-transition.vue create mode 100644 uni_modules/uview-ui/components/u-transition/vue.ani-style.scss create mode 100644 uni_modules/uview-ui/components/u-upload/mixin.js create mode 100644 uni_modules/uview-ui/components/u-upload/props.js create mode 100644 uni_modules/uview-ui/components/u-upload/u-upload.vue create mode 100644 uni_modules/uview-ui/components/u-upload/utils.js create mode 100644 uni_modules/uview-ui/components/uview-ui/uview-ui.vue create mode 100644 uni_modules/uview-ui/index.js create mode 100644 uni_modules/uview-ui/index.scss create mode 100644 uni_modules/uview-ui/libs/config/color.js create mode 100644 uni_modules/uview-ui/libs/config/config.js create mode 100644 uni_modules/uview-ui/libs/config/props.js create mode 100644 uni_modules/uview-ui/libs/config/props/actionSheet.js create mode 100644 uni_modules/uview-ui/libs/config/props/album.js create mode 100644 uni_modules/uview-ui/libs/config/props/alert.js create mode 100644 uni_modules/uview-ui/libs/config/props/avatar.js create mode 100644 uni_modules/uview-ui/libs/config/props/avatarGroup.js create mode 100644 uni_modules/uview-ui/libs/config/props/backtop.js create mode 100644 uni_modules/uview-ui/libs/config/props/badge.js create mode 100644 uni_modules/uview-ui/libs/config/props/button.js create mode 100644 uni_modules/uview-ui/libs/config/props/calendar.js create mode 100644 uni_modules/uview-ui/libs/config/props/carKeyboard.js create mode 100644 uni_modules/uview-ui/libs/config/props/cell.js create mode 100644 uni_modules/uview-ui/libs/config/props/cellGroup.js create mode 100644 uni_modules/uview-ui/libs/config/props/checkbox.js create mode 100644 uni_modules/uview-ui/libs/config/props/checkboxGroup.js create mode 100644 uni_modules/uview-ui/libs/config/props/circleProgress.js create mode 100644 uni_modules/uview-ui/libs/config/props/code.js create mode 100644 uni_modules/uview-ui/libs/config/props/codeInput.js create mode 100644 uni_modules/uview-ui/libs/config/props/col.js create mode 100644 uni_modules/uview-ui/libs/config/props/collapse.js create mode 100644 uni_modules/uview-ui/libs/config/props/collapseItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/columnNotice.js create mode 100644 uni_modules/uview-ui/libs/config/props/countDown.js create mode 100644 uni_modules/uview-ui/libs/config/props/countTo.js create mode 100644 uni_modules/uview-ui/libs/config/props/datetimePicker.js create mode 100644 uni_modules/uview-ui/libs/config/props/divider.js create mode 100644 uni_modules/uview-ui/libs/config/props/empty.js create mode 100644 uni_modules/uview-ui/libs/config/props/form.js create mode 100644 uni_modules/uview-ui/libs/config/props/formItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/gap.js create mode 100644 uni_modules/uview-ui/libs/config/props/grid.js create mode 100644 uni_modules/uview-ui/libs/config/props/gridItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/icon.js create mode 100644 uni_modules/uview-ui/libs/config/props/image.js create mode 100644 uni_modules/uview-ui/libs/config/props/indexAnchor.js create mode 100644 uni_modules/uview-ui/libs/config/props/indexList.js create mode 100644 uni_modules/uview-ui/libs/config/props/input.js create mode 100644 uni_modules/uview-ui/libs/config/props/keyboard.js create mode 100644 uni_modules/uview-ui/libs/config/props/line.js create mode 100644 uni_modules/uview-ui/libs/config/props/lineProgress.js create mode 100644 uni_modules/uview-ui/libs/config/props/link.js create mode 100644 uni_modules/uview-ui/libs/config/props/list.js create mode 100644 uni_modules/uview-ui/libs/config/props/listItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/loadingIcon.js create mode 100644 uni_modules/uview-ui/libs/config/props/loadingPage.js create mode 100644 uni_modules/uview-ui/libs/config/props/loadmore.js create mode 100644 uni_modules/uview-ui/libs/config/props/modal.js create mode 100644 uni_modules/uview-ui/libs/config/props/navbar.js create mode 100644 uni_modules/uview-ui/libs/config/props/noNetwork.js create mode 100644 uni_modules/uview-ui/libs/config/props/noticeBar.js create mode 100644 uni_modules/uview-ui/libs/config/props/notify.js create mode 100644 uni_modules/uview-ui/libs/config/props/numberBox.js create mode 100644 uni_modules/uview-ui/libs/config/props/numberKeyboard.js create mode 100644 uni_modules/uview-ui/libs/config/props/overlay.js create mode 100644 uni_modules/uview-ui/libs/config/props/parse.js create mode 100644 uni_modules/uview-ui/libs/config/props/picker.js create mode 100644 uni_modules/uview-ui/libs/config/props/popup.js create mode 100644 uni_modules/uview-ui/libs/config/props/radio.js create mode 100644 uni_modules/uview-ui/libs/config/props/radioGroup.js create mode 100644 uni_modules/uview-ui/libs/config/props/rate.js create mode 100644 uni_modules/uview-ui/libs/config/props/readMore.js create mode 100644 uni_modules/uview-ui/libs/config/props/row.js create mode 100644 uni_modules/uview-ui/libs/config/props/rowNotice.js create mode 100644 uni_modules/uview-ui/libs/config/props/scrollList.js create mode 100644 uni_modules/uview-ui/libs/config/props/search.js create mode 100644 uni_modules/uview-ui/libs/config/props/section.js create mode 100644 uni_modules/uview-ui/libs/config/props/skeleton.js create mode 100644 uni_modules/uview-ui/libs/config/props/slider.js create mode 100644 uni_modules/uview-ui/libs/config/props/statusBar.js create mode 100644 uni_modules/uview-ui/libs/config/props/steps.js create mode 100644 uni_modules/uview-ui/libs/config/props/stepsItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/sticky.js create mode 100644 uni_modules/uview-ui/libs/config/props/subsection.js create mode 100644 uni_modules/uview-ui/libs/config/props/swipeAction.js create mode 100644 uni_modules/uview-ui/libs/config/props/swipeActionItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/swiper.js create mode 100644 uni_modules/uview-ui/libs/config/props/swipterIndicator.js create mode 100644 uni_modules/uview-ui/libs/config/props/switch.js create mode 100644 uni_modules/uview-ui/libs/config/props/tabbar.js create mode 100644 uni_modules/uview-ui/libs/config/props/tabbarItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/tabs.js create mode 100644 uni_modules/uview-ui/libs/config/props/tag.js create mode 100644 uni_modules/uview-ui/libs/config/props/text.js create mode 100644 uni_modules/uview-ui/libs/config/props/textarea.js create mode 100644 uni_modules/uview-ui/libs/config/props/toast.js create mode 100644 uni_modules/uview-ui/libs/config/props/toolbar.js create mode 100644 uni_modules/uview-ui/libs/config/props/tooltip.js create mode 100644 uni_modules/uview-ui/libs/config/props/transition.js create mode 100644 uni_modules/uview-ui/libs/config/props/upload.js create mode 100644 uni_modules/uview-ui/libs/config/zIndex.js create mode 100644 uni_modules/uview-ui/libs/css/color.scss create mode 100644 uni_modules/uview-ui/libs/css/common.scss create mode 100644 uni_modules/uview-ui/libs/css/components.scss create mode 100644 uni_modules/uview-ui/libs/css/flex.scss create mode 100644 uni_modules/uview-ui/libs/css/h5.scss create mode 100644 uni_modules/uview-ui/libs/css/mixin.scss create mode 100644 uni_modules/uview-ui/libs/css/mp.scss create mode 100644 uni_modules/uview-ui/libs/css/nvue.scss create mode 100644 uni_modules/uview-ui/libs/css/vue.scss create mode 100644 uni_modules/uview-ui/libs/function/colorGradient.js create mode 100644 uni_modules/uview-ui/libs/function/debounce.js create mode 100644 uni_modules/uview-ui/libs/function/digit.js create mode 100644 uni_modules/uview-ui/libs/function/index.js create mode 100644 uni_modules/uview-ui/libs/function/platform.js create mode 100644 uni_modules/uview-ui/libs/function/test.js create mode 100644 uni_modules/uview-ui/libs/function/throttle.js create mode 100644 uni_modules/uview-ui/libs/luch-request/adapters/index.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/InterceptorManager.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/Request.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/buildFullPath.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/defaults.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/dispatchRequest.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/mergeConfig.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/settle.js create mode 100644 uni_modules/uview-ui/libs/luch-request/helpers/buildURL.js create mode 100644 uni_modules/uview-ui/libs/luch-request/helpers/combineURLs.js create mode 100644 uni_modules/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js create mode 100644 uni_modules/uview-ui/libs/luch-request/index.d.ts create mode 100644 uni_modules/uview-ui/libs/luch-request/index.js create mode 100644 uni_modules/uview-ui/libs/luch-request/utils.js create mode 100644 uni_modules/uview-ui/libs/luch-request/utils/clone.js create mode 100644 uni_modules/uview-ui/libs/mixin/button.js create mode 100644 uni_modules/uview-ui/libs/mixin/mixin.js create mode 100644 uni_modules/uview-ui/libs/mixin/mpMixin.js create mode 100644 uni_modules/uview-ui/libs/mixin/mpShare.js create mode 100644 uni_modules/uview-ui/libs/mixin/openType.js create mode 100644 uni_modules/uview-ui/libs/mixin/style.js create mode 100644 uni_modules/uview-ui/libs/mixin/touch.js create mode 100644 uni_modules/uview-ui/libs/util/async-validator.js create mode 100644 uni_modules/uview-ui/libs/util/calendar.js create mode 100644 uni_modules/uview-ui/libs/util/dayjs.js create mode 100644 uni_modules/uview-ui/libs/util/emitter.js create mode 100644 uni_modules/uview-ui/libs/util/route.js create mode 100644 uni_modules/uview-ui/package.json create mode 100644 uni_modules/uview-ui/theme.scss create mode 100644 uni_modules/z-paging/changelog.md create mode 100644 uni_modules/z-paging/components/z-paging-cell/z-paging-cell.vue create mode 100644 uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.vue create mode 100644 uni_modules/z-paging/components/z-paging-swiper-item/z-paging-swiper-item.vue create mode 100644 uni_modules/z-paging/components/z-paging-swiper/z-paging-swiper.vue create mode 100644 uni_modules/z-paging/components/z-paging/components/z-paging-load-more.vue create mode 100644 uni_modules/z-paging/components/z-paging/components/z-paging-refresh.vue create mode 100644 uni_modules/z-paging/components/z-paging/config/index.js create mode 100644 uni_modules/z-paging/components/z-paging/css/z-paging-main.css create mode 100644 uni_modules/z-paging/components/z-paging/css/z-paging-static.css create mode 100644 uni_modules/z-paging/components/z-paging/i18n/en.json create mode 100644 uni_modules/z-paging/components/z-paging/i18n/index.js create mode 100644 uni_modules/z-paging/components/z-paging/i18n/zh-Hans.json create mode 100644 uni_modules/z-paging/components/z-paging/i18n/zh-Hant.json create mode 100644 uni_modules/z-paging/components/z-paging/js/hooks/useZPaging.js create mode 100644 uni_modules/z-paging/components/z-paging/js/hooks/useZPagingComp.js create mode 100644 uni_modules/z-paging/components/z-paging/js/modules/back-to-top.js create mode 100644 uni_modules/z-paging/components/z-paging/js/modules/common-layout.js create mode 100644 uni_modules/z-paging/components/z-paging/js/modules/data-handle.js create mode 100644 uni_modules/z-paging/components/z-paging/js/modules/empty.js create mode 100644 uni_modules/z-paging/components/z-paging/js/modules/i18n.js create mode 100644 uni_modules/z-paging/components/z-paging/js/modules/load-more.js create mode 100644 uni_modules/z-paging/components/z-paging/js/modules/loading.js create mode 100644 uni_modules/z-paging/components/z-paging/js/modules/nvue.js create mode 100644 uni_modules/z-paging/components/z-paging/js/modules/refresher.js create mode 100644 uni_modules/z-paging/components/z-paging/js/modules/scroller.js create mode 100644 uni_modules/z-paging/components/z-paging/js/modules/virtual-list.js create mode 100644 uni_modules/z-paging/components/z-paging/js/z-paging-config.js create mode 100644 uni_modules/z-paging/components/z-paging/js/z-paging-constant.js create mode 100644 uni_modules/z-paging/components/z-paging/js/z-paging-enum.js create mode 100644 uni_modules/z-paging/components/z-paging/js/z-paging-interceptor.js create mode 100644 uni_modules/z-paging/components/z-paging/js/z-paging-main.js create mode 100644 uni_modules/z-paging/components/z-paging/js/z-paging-mixin.js create mode 100644 uni_modules/z-paging/components/z-paging/js/z-paging-static.js create mode 100644 uni_modules/z-paging/components/z-paging/js/z-paging-utils.js create mode 100644 uni_modules/z-paging/components/z-paging/wxs/z-paging-renderjs.js create mode 100644 uni_modules/z-paging/components/z-paging/wxs/z-paging-wxs.wxs create mode 100644 uni_modules/z-paging/components/z-paging/z-paging.vue create mode 100644 uni_modules/z-paging/package.json create mode 100644 uni_modules/z-paging/readme.md create mode 100755 utils/app.js create mode 100755 utils/color.js create mode 100755 utils/iconfont.scss create mode 100755 utils/storage.js create mode 100755 utils/util.js create mode 100755 utils/utils.scss create mode 100755 utils/verify.js create mode 100644 version.json create mode 100644 vue.config.js create mode 100755 当前是uniapp端的源码.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a70bc78 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/unpackage +/node_modules diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..d190751 --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,20 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "default" : + { + "launchtype" : "local" + }, + "h5" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/.idea/meihelove-uniapp.iml b/.idea/meihelove-uniapp.iml new file mode 100644 index 0000000..0c8867d --- /dev/null +++ b/.idea/meihelove-uniapp.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..9c8bd27 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/App.vue b/App.vue new file mode 100755 index 0000000..9608f69 --- /dev/null +++ b/App.vue @@ -0,0 +1,121 @@ + + + diff --git a/androidPrivacy.json b/androidPrivacy.json new file mode 100755 index 0000000..4896361 --- /dev/null +++ b/androidPrivacy.json @@ -0,0 +1,14 @@ +{ + "version" : "1", + "prompt" : "template", + "title" : "服务协议和隐私政策", + "message" : "  请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。
  你可阅读《服务协议》《隐私政策》了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。", + "buttonAccept" : "同意并接受", + "buttonRefuse" : "暂不同意", + "second" : { + "title" : "确认提示", + "message" : "  进入应用前,你需先同意《服务协议》《隐私政策》,否则将退出应用。", + "buttonAccept" : "同意并继续", + "buttonRefuse" : "退出应用" + } +} diff --git a/api/apps-bc-agent.js b/api/apps-bc-agent.js new file mode 100644 index 0000000..83a0d0e --- /dev/null +++ b/api/apps-bc-agent.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询余额明细 +export const pageAgentUser = (params) => http.get('/open/bc-agent/page', {params}) + +// 分页查询余额明细 +export const listAgentUser = (params) => http.get('/open/bc-agent', {params}) + +// 查询余额明细 +export const getAgentUser = (AgentUserId) => http.get('/open/bc-agent/' + AgentUserId) + +// 添加余额明细 +export const addAgentUser = (data) => http.post('/open/bc-agent', data) + +// 删除余额明细 +export const removeAgentUser = (id) => http.get('/open/user-balance-log/remove/' + id) + +export default { + pageAgentUser, + listAgentUser, + getAgentUser, + addAgentUser, + removeAgentUser +} diff --git a/api/apps-bc-plan.js b/api/apps-bc-plan.js new file mode 100644 index 0000000..48d4b89 --- /dev/null +++ b/api/apps-bc-plan.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询发布菜品 +export const pageBCPlan = (params) => http.get('/apps/bc-plan/page', {params}) + +// 查询全部发布菜品 +export const listBCPlan = (params) => http.get('/apps/bc-plan', {params}) + +// 查询单天发布菜品 +export const getBCPlan = (orderId) => http.get('/apps/bc-plan/' + orderId) + +// 发布菜品 +export const addBCPlan = (data) => http.post('/apps/bc-plan', data) + +// 删除发布菜品 +export const removeBCPlan = (id) => http.get('/apps/bc-plan/remove/' + id) + +export default { + pageBCPlan, + listBCPlan, + getBCPlan, + addBCPlan, + removeBCPlan +} diff --git a/api/apps-bc-temporary.js b/api/apps-bc-temporary.js new file mode 100644 index 0000000..8dd6af8 --- /dev/null +++ b/api/apps-bc-temporary.js @@ -0,0 +1,31 @@ +import http from './index.js'; + +// 分页查询临时报餐 +export const pageTemporary = (params) => http.get('/apps/bc-temporary/page', {params}) + +// 分页查询临时报餐 +export const pageTemporaryUser = (params) => http.get('/open/bc-temporary/page', {params}) + +// 分页查询临时报餐 +export const listTemporaryUser = (params) => http.get('/open/bc-temporary', {params}) + +// 查询临时报餐 +export const getTemporaryUser = (TemporaryUserId) => http.get('/open/bc-temporary/' + TemporaryUserId) + +// 修改 +export const updateTemporary = (data) => http.put('/apps/bc-temporary', data) + +export const removeTemporary = (id) => http.delete('/apps/bc-temporary/' + id) + +// 申请临时报餐 +export const applyTemporary = (data) => http.post('/apps/bc-temporary/apply', data) + +export default { + updateTemporary, + pageTemporary, + pageTemporaryUser, + listTemporaryUser, + getTemporaryUser, + applyTemporary, + removeTemporary +} diff --git a/api/article-comment.js b/api/article-comment.js new file mode 100644 index 0000000..5a912d1 --- /dev/null +++ b/api/article-comment.js @@ -0,0 +1,29 @@ +import http from './index.js'; + +// 分页查询文章评论 +export const pageArticleComment = (params) => http.get('/cms/article-comment/page', {params}) + +// 查询文章评论 +export const getArticleComment = (ArticleCommentId) => http.get('/cms/article-comment/' + ArticleCommentId) + +// 查询全部评论 +export const listArticleComment = (params) => http.get('/cms/article-comment', {params}) + +// 添加文章评论 +export const addArticleComment = (data) => http.post('/cms/article-comment', data) + +// 删除文章评论 +export const removeArticleComment = (id) => http.delete('/cms/article-comment/' + id) + + +// 未读评论数 +export const getArticleCommentUnreadCount = () => http.get('/cms/article-comment/unread') + +export default { + pageArticleComment, + listArticleComment, + getArticleComment, + addArticleComment, + removeArticleComment, + getArticleCommentUnreadCount +} diff --git a/api/article-like.js b/api/article-like.js new file mode 100644 index 0000000..f3d4ba5 --- /dev/null +++ b/api/article-like.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询文章点赞 +export const pageArticleLike = (params) => http.get('/cms/article-like/page', {params}) + +// 查询文章点赞 +export const getArticleLike = (ArticleLikeId) => http.get('/cms/article-like/' + ArticleLikeId) + +// 查询全部文字 +export const listArticleLike = (params) => http.get('/cms/article-like', {params}) + +// 添加文章点赞 +export const addArticleLike = (data) => http.post('/cms/article-like', data) + +// 删除文章点赞 +export const removeArticleLike = (id) => http.delete('/cms/article-like/' + id) + +export default { + pageArticleLike, + listArticleLike, + getArticleLike, + addArticleLike, + removeArticleLike +} diff --git a/api/article.js b/api/article.js new file mode 100644 index 0000000..3c21be8 --- /dev/null +++ b/api/article.js @@ -0,0 +1,25 @@ +import http from './index.js'; + +// 分页查询文章 +export const pageArticle = (params) => http.get('/cms/article/page', {params}) + +// 查询文章 +export const getArticle = (articleId) => http.get('/cms/article/' + articleId) + +// 查询全部文字 +export const listArticle = (params) => http.get('/cms/article', {params}) + +// 添加文章 +export const addArticle = (data) => http.post('/cms/article', data) + +// 删除文章 +export const removeArticle = (id) => http.delete('/cms/article/' + id) + + +export default { + pageArticle, + listArticle, + getArticle, + addArticle, + removeArticle +} diff --git a/api/balance-log.js b/api/balance-log.js new file mode 100644 index 0000000..a64e8eb --- /dev/null +++ b/api/balance-log.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询余额明细 +export const pageBalanceLog = (params) => http.get('/shop/user-balance-log/page', {params}) + +// 分页查询余额明细 +export const listBalanceLog = (params) => http.get('/shop/user-balance-log', {params}) + +// 查询余额明细 +export const getBalanceLog = (balanceLogId) => http.get('/shop/user-balance-log/' + balanceLogId) + +// 添加余额明细 +export const addBalanceLog = (data) => http.post('/shop/user-balance-log', data) + +// 删除余额明细 +export const removeBalanceLog = (id) => http.get('/open/user-balance-log/remove/' + id) + +export default { + pageBalanceLog, + listBalanceLog, + getBalanceLog, + addBalanceLog, + removeBalanceLog +} diff --git a/api/cart.js b/api/cart.js new file mode 100644 index 0000000..395d5f4 --- /dev/null +++ b/api/cart.js @@ -0,0 +1,23 @@ +import http from './index.js'; + +// 查询购物车商品 +export const showCart = (data) => http.post('/apps/bc-cart/showCart',data) + +// 添加购物车 +export const addCart = (data) => http.post('/apps/bc-cart/addCart', data) +export const addCartPro = (data) => http.post('/apps/bc-cart/addCart',data) +// 清空购物车 +export const clearCart = () => http.get('/apps/bc-cart/clearCart') +// 生成订单 +export const createOrder = (data) => http.post('/apps/bc-cart/createOrder', data) + +// 清空购物车 +export const removeCart = () => http.get('/apps/bc-cart/removeCart') + +export default { + showCart, + addCart, + addCartPro, + createOrder, + removeCart +} diff --git a/api/categoty.js b/api/categoty.js new file mode 100644 index 0000000..fa779c1 --- /dev/null +++ b/api/categoty.js @@ -0,0 +1,21 @@ +import http from './index.js'; + +// 分页查询商品分类 +export const pageCategory = (params) => http.get('/open/category/page', {params}) + +// 分页查询全部商品分类 +export const listCategory = (params) => http.get('/open/category', {params}) + +// 查询商品分类 +export const getCategory = (categoryId) => http.get('/open/category/' + categoryId) + +// 添加商品分类 +export const addCategory = (data) => http.post('/open/category', data) + + +export default { + pageCategory, + listCategory, + getCategory, + addCategory +} diff --git a/api/chat.js b/api/chat.js new file mode 100644 index 0000000..bf16313 --- /dev/null +++ b/api/chat.js @@ -0,0 +1,19 @@ +import http from './index.js'; + + +export const getConversationList = () => http.get('/love/chat-conversation/app') + +export const sendMessage = (data) => http.post('/love/chat-message/app/send', data) + +export const getFriemdMessages = (friendId) => http.get('/love/chat-message/app/list/' + friendId) + +export const postMarkRead = (data) => http.post('/love/chat-conversation/app/read', data) + +export const removeConversation = (id) => http.delete('/love/chat-conversation/' + id) +export default { + getConversationList, + sendMessage, + getFriemdMessages, + postMarkRead, + removeConversation +} diff --git a/api/chatgpt.js b/api/chatgpt.js new file mode 100644 index 0000000..40fb423 --- /dev/null +++ b/api/chatgpt.js @@ -0,0 +1,10 @@ +import http from './index.js'; + +// 提交问题 +export const chat = (data) => http.post('https://chatgpt.websoft.top/api/open/chat/chat', data) + +// export const chat = (data) => http.post('/open/chat/chat', data) + +export default { + chat +} diff --git a/api/demo.js b/api/demo.js new file mode 100644 index 0000000..6807a7d --- /dev/null +++ b/api/demo.js @@ -0,0 +1,16 @@ +import http from './index.js'; + +// 添加购物车 +export const ServerTime = () => http.post('http://127.0.0.1:9090/hxz/v1/ServerTime') + +export const QRCodeTransaction = (data) => http.post('http://127.0.0.1:9090/hxz/v1/QRCodeTransaction',data) +export const QRCodeTransaction2 = (data) => http.post('https://server.gxwebsoft.com/hxz/v1/QRCodeTransaction',data) +export const TransactionInquiry = (data) => http.post('http://127.0.0.1:9090/hxz/v1/TransactionInquiry',data) + + +export default { + ServerTime, + QRCodeTransaction, + QRCodeTransaction2, + TransactionInquiry +} diff --git a/api/dict.js b/api/dict.js new file mode 100644 index 0000000..49d7000 --- /dev/null +++ b/api/dict.js @@ -0,0 +1,12 @@ +import http from './index.js'; + +// 读取字典数据 +export const getDictionaryOptions = (params) => http.get('/system/dict-data', {params}) + +export const listDictionary = (params) => http.get('/system/dict/tree', {params}) + + +export default { + getDictionaryOptions, + listDictionary +} diff --git a/api/equipment-goods.js b/api/equipment-goods.js new file mode 100644 index 0000000..e79f9aa --- /dev/null +++ b/api/equipment-goods.js @@ -0,0 +1,20 @@ +import http from './index.js'; + +// 分页查询设备列表 +export const pageEquipmentGoods = (params) => http.get('/apps/equipment-goods/page', {params}) + +// 查询设备 +export const getEquipmentGoods = (goodsId) => http.get('/apps/equipment-goods/' + goodsId) + +// 绑定设备 +export const bindEquipment = (data) => http.post('/open/equipment/bind', data) + +// 绑定设备 +export const changeEquipment = (data) => http.post('/open/equipment/change', data) + +export default { + pageEquipmentGoods, + getEquipmentGoods, + bindEquipment, + changeEquipment +} diff --git a/api/equipment.js b/api/equipment.js new file mode 100644 index 0000000..3952d90 --- /dev/null +++ b/api/equipment.js @@ -0,0 +1,20 @@ +import http from './index.js'; + +// 分页查询设备列表 +export const pageEquipment = (params) => http.get('/apps/equipment/page', {params}) + +// 查询设备 +export const getEquipment = (equipmentId) => http.get('/apps/equipment/' + equipmentId) + +// 绑定设备 +export const bindEquipment = (data) => http.post('/open/equipment/bind', data) + +// 绑定设备 +export const changeEquipment = (data) => http.post('/open/equipment/change', data) + +export default { + pageEquipment, + getEquipment, + bindEquipment, + changeEquipment +} diff --git a/api/goods.js b/api/goods.js new file mode 100644 index 0000000..4d403c1 --- /dev/null +++ b/api/goods.js @@ -0,0 +1,28 @@ +import http from './index.js'; + +// 分页查询商品 +export const pageGoods = (params) => http.get('/open/goods/page', {params}) + +// 分页查询全部商品 +export const listGoods = (params) => http.get('/open/goods', {params}) + +// 查询商品 +export const getGoods = (GoodsId) => http.get('/open/Goods/' + GoodsId) + +// 添加商品 +export const addGoods = (data) => http.post('/shop/Goods', data) + +// 查询菜品列表 +export const getFoodList = (params) => http.get('/apps/bc-food/getFoodList', {params}) + +// 查询一周菜谱 +export const getWeekFood = (params) => http.get('/apps/bc-food/getWeekFood', {params}) + +export default { + pageGoods, + listGoods, + getGoods, + addGoods, + getFoodList, + getWeekFood +} diff --git a/api/house-info.js b/api/house-info.js new file mode 100644 index 0000000..dac6828 --- /dev/null +++ b/api/house-info.js @@ -0,0 +1,28 @@ +import http from './index.js'; + +// 分页查询房源信息 +export const pageHouseInfo = (params) => http.get('/house/info/page', {params}) + +// 查询全部房源信息 +export const listHouseInfo = (params) => http.get('/house/info', {params}) + +// 查询房源信息(当期登录用户) +export const getHouseInfo = (userId) => http.get('/house/info/' + userId) + +// 查询会员资料 +export const getUserDetail = (userId) => http.get('/house/info/detail/' + userId) + +// 新增房源信息 +export const addHouseInfo = (data) => http.post('/house/info', data) + +// 删除房源信息 +export const removeHouseInfo = (id) => http.get('/house/info/remove/' + id) + +export default { + pageHouseInfo, + listHouseInfo, + getHouseInfo, + getUserDetail, + removeHouseInfo, + addHouseInfo +} diff --git a/api/house-reservation.js b/api/house-reservation.js new file mode 100644 index 0000000..5a409d3 --- /dev/null +++ b/api/house-reservation.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询房源信息 +export const pageHouseReservation = (params) => http.get('/house/reservation/page', {params}) + +// 查询全部房源信息 +export const listHouseReservation = (params) => http.get('/house/reservation', {params}) + +// 查询房源信息(当期登录用户) +export const getHouseReservation = (userId) => http.get('/house/reservation/' + userId) + +// 新增房源信息 +export const addHouseReservation = (data) => http.post('/house/reservation', data) + +// 删除房源信息 +export const removeHouseReservation = (id) => http.get('/house/reservation/remove/' + id) + +export default { + pageHouseReservation, + listHouseReservation, + getHouseReservation, + removeHouseReservation, + addHouseReservation +} diff --git a/api/index.js b/api/index.js new file mode 100644 index 0000000..8bedcbc --- /dev/null +++ b/api/index.js @@ -0,0 +1,85 @@ +import Request from 'luch-request' +import storage from '@/utils/storage' +import { + apiUrl, + tenantId, + appId, + appSecret +} from '@/config.js'; +import { + getSign +} from '@/utils/util.js' +import { + ACCESS_TOKEN +} from '@/store/mutation-types' + +const http = new Request(); + + +/** + * @description 修改全局默认配置 + * @param {Function} + */ +http.setConfig((config) => { + /* config 为默认全局配置*/ + config.baseURL = apiUrl; /* 根域名 */ + + return config +}) + +// 拦截器(请求之前拦截) +http.interceptors.request.use((config) => { // 可使用async await 做异步操作 + const token = storage.get(ACCESS_TOKEN) + config.header = { + ...config.header, + tenantId + } + if(token){ + config.header.Authorization = token + config.header.appId = appId + } + if (config.data) { + config.data.tenantId = tenantId + } + if (!token) { + // 如果token不存在,需要加签 + config.params.tenantId = tenantId + config.params.sign = getSign(config.params,appSecret); + }else { + + } + /** + /* 演示 + if (!token) { // 如果token不存在,return Promise.reject(config) 会取消本次请求 + return Promise.reject(config) + } + **/ + return config +}, config => { // 可使用async await 做异步操作 + return Promise.reject(config) +}) + +// 拦截器(请求之后拦截) +http.interceptors.response.use((response) => { + /* 对响应成功做点什么 可使用async await 做异步操作*/ + // if (response.data.code !== 200) { // 服务端返回的状态码不等于200,则reject() + // return Promise.reject(response) // return Promise.reject 可使promise状态进入catch + // if (response.config.custom.verification) { // 演示自定义参数的作用 + // return response.data + // } + + // token过期 + if (response.data.code == 401) { + + } + if (response.data.code == 1) { + return Promise.reject(response.data) + } + return response.data +}, (response) => { + /* 对响应错误做点什么 (statusCode !== 200)*/ + console.log(response) + return Promise.reject(response) +}) + +export default http diff --git a/api/login.js b/api/login.js new file mode 100644 index 0000000..1a6839d --- /dev/null +++ b/api/login.js @@ -0,0 +1,74 @@ +import http from './index.js'; +import { + apiUrl, + fileUrl, + accessKey, + userId +} from '@/config.js'; +import { + ACCESS_TOKEN, + USER_ID, + USER_INFO +} from '@/store/mutation-types' +import store from '@/store' +import storage from '@/utils/storage' + +// 免密登录 +export const getToken = () => http.get(apiUrl + '/token/' + userId + '/' + accessKey + '/').then(result => { + console.log("免密登录: ", result); + const { + access_token, + user + } = result.data + + // 过期时间30天 + const expiryTime = 30 * 86400 + // 保存tokne和userId到缓存 + storage.set(USER_ID, user.userId, expiryTime) + storage.set(USER_INFO, user, expiryTime) + storage.set(ACCESS_TOKEN, access_token, expiryTime) + store.dispatch('setToken', access_token) + store.dispatch('setUserId', user.userId) +}) + +// 获取图形验证码 +export const getCaptcha = (params) => http.get('/captcha', { + params +}) + +// 发送短信验证码 +export const sendSmsCaptcha = (params) => http.post('/open/sendSmsCaptcha', { + params +}) + +// 获取微信openId +export const getWxOpenId = (data) => http.post('/wx-login/getWxOpenId', data) + +// 支付宝授权码换取userId +export const getAuthCode = (data) => http.post('/open/login-alipay/getAuthCode', data) + +// 微信手机号码登录 +export const loginMpWxMobile = (data) => http.post('/wx-login/loginByMpWxPhone', data) + +// 获取支付宝手机号码 +export const getPhoneNumber = (data, config) => http.post('/shop/payment/getPhoneNumber', data, config) + +// 支付宝登录 +export const alipayLogin = (data) => http.post('/login-alipay/login', data) + +// 支付宝用户注册 +export const register = (data) => http.post('/login-alipay/register', data) + +// 游客登录 +export const login = (data) => http.post('/login', data) + +export default { + getToken, + getWxOpenId, + getCaptcha, + sendSmsCaptcha, + getAuthCode, + getPhoneNumber, + alipayLogin, + login +} diff --git a/api/love-certificate.js b/api/love-certificate.js new file mode 100644 index 0000000..e4d98f5 --- /dev/null +++ b/api/love-certificate.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询会员证件 +export const pageCertificate = (params) => http.get('/love/certificate/page', {params}) + +// 查询全部会员证件 +export const listCertificate = (params) => http.get('/love/certificate', {params}) + +// 上传会员证件 +export const addCertificate = (data) => http.post('/love/certificate', data) + +// 修改会员证件 +export const updateCertificate = (data) => http.put('/love/certificate', data) + +// 删除会员证件 +export const removeCertificate = (id) => http.delete('/love/certificate/' + id) + +export default { + pageCertificate, + listCertificate, + addCertificate, + updateCertificate, + removeCertificate +} diff --git a/api/love-profit.js b/api/love-profit.js new file mode 100644 index 0000000..e5cd826 --- /dev/null +++ b/api/love-profit.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询收益明细 +export const pageProfit = (params) => http.get('/love/profit/page', {params}) + +// 分页查询收益明细 +export const listProfit = (params) => http.get('/love/profit', {params}) + +// 查询收益明细 +export const getProfit = (balanceLogId) => http.get('/love/profit/' + balanceLogId) + +// 添加收益明细 +export const addProfit = (data) => http.post('/love/profit', data) + +// 删除收益明细 +export const removeProfit = (id) => http.get('/love/profit/remove/' + id) + +export default { + pageProfit, + listProfit, + getProfit, + addProfit, + removeProfit +} diff --git a/api/love-user-plan-equity.js b/api/love-user-plan-equity.js new file mode 100644 index 0000000..ea5949f --- /dev/null +++ b/api/love-user-plan-equity.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询会员权益 +export const pageUserPlanEquity = (params) => http.get('/love/user-plan-equity/page', {params}) + +// 查询全部会员权益 +export const listUserPlanEquity = (params) => http.get('/love/user-plan-equity', {params}) + +// 修改会员权益 +export const addUserPlanEquity = (data) => http.post('/love/user-plan-equity', data) + +// 删除会员权益 +export const removeUserPlanEquity = (id) => http.delete('/love/user-plan-equity/' + id) + +// 创建会员订单记录 +export const getPlanByPriceId = (priceId) => http.get('/love/user-plan-equity/getPlanByPriceId/' + priceId) + +export default { + pageUserPlanEquity, + listUserPlanEquity, + addUserPlanEquity, + removeUserPlanEquity, + getPlanByPriceId +} diff --git a/api/love-user-plan-log.js b/api/love-user-plan-log.js new file mode 100644 index 0000000..c50a6aa --- /dev/null +++ b/api/love-user-plan-log.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询购买记录 +export const pageUserPlanLog = (params) => http.get('/love/user-plan-log/page', {params}) + +// 查询全部购买记录 +export const listUserPlanLog = (params) => http.get('/love/user-plan-log', {params}) + +// 修改购买记录 +export const addUserPlanLog = (data) => http.post('/love/user-plan-log', data) + +// 删除购买记录 +export const removeUserPlanLog = (id) => http.delete('/love/user-plan-log/' + id) + +// 创建会员订单记录 +export const getPlanByPriceId = (priceId) => http.get('/love/user-plan-log/getPlanByPriceId/' + priceId) + +export default { + pageUserPlanLog, + listUserPlanLog, + addUserPlanLog, + removeUserPlanLog, + getPlanByPriceId +} diff --git a/api/love-user-plan.js b/api/love-user-plan.js new file mode 100644 index 0000000..8374b71 --- /dev/null +++ b/api/love-user-plan.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询会员套餐 +export const pageUserPlan = (params) => http.get('/love/user-plan/page', {params}) + +// 查询全部会员套餐 +export const listUserPlan = (params) => http.get('/love/user-plan', {params}) + +// 查询会员套餐信息 +export const getUserPlan = (id) => http.get('/love/user-plan/' + id) + +// 修改会员套餐 +export const addUserPlan = (data) => http.post('/love/user-plan', data) + +// 删除会员套餐 +export const removeUserPlan = (id) => http.delete('/love/user-plan/' + id) + +export default { + pageUserPlan, + listUserPlan, + getUserPlan, + addUserPlan, + removeUserPlan +} diff --git a/api/love-user-profile.js b/api/love-user-profile.js new file mode 100644 index 0000000..719b711 --- /dev/null +++ b/api/love-user-profile.js @@ -0,0 +1,28 @@ +import http from './index.js'; + +// 分页查询用户资料 +export const pageUserProfile = (params) => http.get('/love/user-profile/page', {params}) + +// 查询全部用户资料 +export const listUserProfile = (params) => http.get('/love/user-profile', {params}) + +// 查询用户资料(当期登录用户) +export const getUserProfile = (userId) => http.get('/love/user-profile/' + userId) + +// 查询会员资料 +export const getUserDetail = (userId) => http.get('/love/user-profile/detail/' + userId) + +// 新增用户资料 +export const updateUserProfile = (data) => http.put('/love/user-profile', data) + +// 删除用户资料 +export const removeUserProfile = (id) => http.get('/love/user-profile/remove/' + id) + +export default { + pageUserProfile, + listUserProfile, + getUserProfile, + getUserDetail, + updateUserProfile, + removeUserProfile +} diff --git a/api/merchant-withdraw.js b/api/merchant-withdraw.js new file mode 100644 index 0000000..511e9c8 --- /dev/null +++ b/api/merchant-withdraw.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询提现明细 +export const pageMerchantWithdraw = (params) => http.get('/shop/merchant-withdraw/page', {params}) + +// 查询全部提现明细 +export const listMerchantWithdraw = (params) => http.get('/shop/merchant-withdraw', {params}) + +// 获取提现明细 +export const getMerchantWithdraw = (id) => http.get('/shop/merchant-withdraw/page', {id}) + +// 添加提现明细 +export const addMerchantWithdraw = (data) => http.post('/shop/merchant-withdraw', data) + +// 修改提现明细 +export const updateMerchantWithdraw = (data) => http.put('/shop/merchant-withdraw/', data) + +export default { + pageMerchantWithdraw, + listMerchantWithdraw, + getMerchantWithdraw, + addMerchantWithdraw, + updateMerchantWithdraw +} diff --git a/api/merchant.js b/api/merchant.js new file mode 100644 index 0000000..beae17e --- /dev/null +++ b/api/merchant.js @@ -0,0 +1,28 @@ +import http from './index.js'; + +// 分页查询商户列表 +export const pageMerchant = (params) => http.get('/shop/merchant/page', {params}) + +// 查询全部商户 +export const listMerchant = (params) => http.get('/shop/merchant', {params}) + +// 获取商户详情 +export const getMerchant = (merchantId) => http.get('/shop/merchant/page', {merchantId}) + +// 添加商户 +export const addMerchant = (data) => http.post('/shop/merchant', data) + +// 修改商户 +export const updateMerchant = (data) => http.put('/shop/merchant/', data) + +// 提现申请 +export const addWithdraw = (data) => http.post('/shop/merchant/addWithdraw', data) + +export default { + pageMerchant, + listMerchant, + getMerchant, + addMerchant, + updateMerchant, + addWithdraw +} diff --git a/api/order-goods.js b/api/order-goods.js new file mode 100644 index 0000000..b682b20 --- /dev/null +++ b/api/order-goods.js @@ -0,0 +1,28 @@ +import http from './index.js'; + +// 分页查询订单 +export const pageOrder = (params) => http.get('/shop/order-goods/page', {params}) + +// 分页查询订单 +export const listOrder = (params) => http.get('/shop/order-goods', {params}) + +// 查询订单 +export const getOrder = (orderId) => http.get('/shop/order-goods/' + orderId) + +// 添加订单 +export const addOrder = (data) => http.post('/shop/order-goods', data) + +// 删除订单 +export const removeOrder = (id) => http.get('/open/order-goods/remove/' + id) + +// 单个取消菜品 +export const cancelfood = (data) => http.post('/open/order-goods/cancel',data) + +export default { + pageOrder, + listOrder, + getOrder, + addOrder, + removeOrder, + cancelfood +} diff --git a/api/order.js b/api/order.js new file mode 100644 index 0000000..85e62c0 --- /dev/null +++ b/api/order.js @@ -0,0 +1,66 @@ +import http from './index.js'; + +// 分页查询订单 +export const pageOrder = (params) => http.get('/shop/order/page', {params}) + +// 查询订单列表 +export const listOrder = (params) => http.get('/shop/order', {params}) + +// 查询订单列表 +export const listByIds = (data) => http.post('/shop/order/listByIds', data) + +// 查询订单 +export const getOrder = (orderId) => http.get('/shop/order/' + orderId) + +// 添加订单 +export const addOrder = (data) => http.post('/shop/order', data) + +// 添加订单 +export const receiptOrder = (data) => http.post('/open/equipment/receipt', data) + +// 删除订单 +export const removeOrder = (id) => http.get('/open/order/remove/' + id) + +export const setPayStatus = (data) => http.post('/shop/order/setPayStatus', data) + +// 查询订单 +export const getMyOrder = (params) => http.get('/open/order/getMyOrder', { params }) + +// 查询核销订单 +export const getReceiptOrder = (params) => http.get('/open/order/getReceiptOrder', { params }) + +// 订单核销 +export const updateOrder = (data) => http.post('/shop/order', data) + +// 生成二维码 +export const generateQrCode = (params) => http.get('/shop/order/generateQrCode', { params }) + +// 核销二维码码 +export const verificationQrCode = (data) => http.put('/open/order/verification',data) + +// 取消报餐 +export const cancelOrder = (data) => http.post('/open/order/cancel', data) + +// 查询代取餐人员的报餐信息 +export const getOthersOrder = (params) => http.get('/apps/bc-food/getOthersFood', {params}) + +// 查询临时报餐订单 +export const getTemporaryOrder = (params) => http.get('/apps/bc-food/getTemporaryOrder',{params}) + +export default { + pageOrder, + listOrder, + listByIds, + getOrder, + addOrder, + receiptOrder, + removeOrder, + setPayStatus, + getMyOrder, + verificationQrCode, + cancelOrder, + updateOrder, + getOthersOrder, + getReceiptOrder, + getTemporaryOrder +} diff --git a/api/payment.js b/api/payment.js new file mode 100644 index 0000000..18d3637 --- /dev/null +++ b/api/payment.js @@ -0,0 +1,35 @@ +import http from './index.js'; + +// 分页查询支付方式 +export const pagePayment = (params) => http.get('/shop/payment/page', {params}) + +// 查询支付方式 +export const getPayment = (paymentId) => http.get('/shop/payment/' + paymentId) + +// 余额支付 +export const balance = (orderId) => http.get('/shop/payment/balance/' + orderId) + +// 余额支付批量 +export const balanceBatch = (data) => http.post('/shop/payment/balanceBatch', data) + +// 支付宝支付 +export const alipay = (orderId) => http.get('/shop/payment/mp-alipay/' + orderId) + +export const alipayReLet = (data) => http.post('/shop/payment/mp-alipay-relet/', data) + +export const test = (data) => http.post('/shop/payment/mp-alipay/test', data) + +export const payQuery = (orderId) => http.get('/shop/payment/mp-alipay/query/' + orderId) + +export const payQueryByRelet = (orderId) => http.get('/shop/payment/mp-alipay/query-relet/' + orderId) + +export default { + pagePayment, + getPayment, + alipay, + alipayReLet, + payQuery, + payQueryByRelet, + balance, + test +} diff --git a/api/redis-util.js b/api/redis-util.js new file mode 100644 index 0000000..ddf6d6a --- /dev/null +++ b/api/redis-util.js @@ -0,0 +1,17 @@ +import http from './index.js'; + +/** + * 缓存工具包 + * @author 科技小王子 + * @since 2023-06-23 11:34:03 + */ + +// 获取配置信息 +export const getConfig = () => http.get('/system/cache/config') +// 添加关注 +export const addFocus = (data) => http.post('/shop/user-follow', data) + +export default { + getConfig, + addFocus +} diff --git a/api/setting.js b/api/setting.js new file mode 100644 index 0000000..1de6d01 --- /dev/null +++ b/api/setting.js @@ -0,0 +1,8 @@ +import http from './index.js'; + +// 获取商户详情 +export const getSetting = (settingKey) => http.get('/open/system/setting/' + settingKey) + +export default { + getSetting +} diff --git a/api/statistics.js b/api/statistics.js new file mode 100644 index 0000000..cd08315 --- /dev/null +++ b/api/statistics.js @@ -0,0 +1,16 @@ +import http from './index.js'; + +// 菜品预定统计 +export const getBaocanUsers = (params) => http.get('/apps/bc-statistics/baoCanUsers', {params}) + +export const baoCanFoodCount = (params) => http.get('/apps/bc-statistics/baoCanFoodCount',{params}) + +export const baoCanUserCount = (params) => http.get('/apps/bc-statistics/baoCanUserCount',{params}) + +export const baoCanUserCount2 = (params) => http.get('/shop/order-goods',{params}) +export default { + getBaocanUsers, + baoCanFoodCount, + baoCanUserCount, + baoCanUserCount2 +} diff --git a/api/test.js b/api/test.js new file mode 100644 index 0000000..50c244f --- /dev/null +++ b/api/test.js @@ -0,0 +1,16 @@ +import http from './index.js'; + +// 分页查询订单 +export const pageTest = (params) => http.get('/shop/order/page', {params}) + +// 查询订单 +export const getTest = (orderId) => http.get('/shop/order/' + orderId) + +// 添加订单 +export const testIndex = (params) => http.get('/shop/test', params) + +export default { + pageTest, + getTest, + testIndex +} diff --git a/api/upload.js b/api/upload.js new file mode 100644 index 0000000..f615cd1 --- /dev/null +++ b/api/upload.js @@ -0,0 +1,56 @@ +import http from './index.js'; +import { + fileUrl +} from '@/config.js'; +import storage from '@/utils/storage' +import dayjs from "dayjs" +import appConfig from '@/config.js' + +// 文件服务器 +// export const uploadFile = (file) => http.upload(fileUrl + '/api/file/upload', file) + +// 阿里云OSS +export const uploadFile = (file) => http.upload('/oss/upload', file) +// export const uploadFile = async ({filePath}) => { + +// // 获取临时凭证 +// let sts = storage.get('sts'); +// if(!sts){ +// const stsRes = await http.get('/oss/getPostForm') +// sts = stsRes.data +// storage.set('sts', sts, 60) +// } +// const {polocyBase64,signature} = sts; +// var suffix = filePath.substring(filePath.lastIndexOf(".")); //.txt +// const fileName = dayjs().format('YYYYMMDD') + '/'+ uni.$u.guid() + suffix; +// return new Promise((reso, rej) => { +// uni.uploadFile({ +// url: appConfig.fileUrl, // 开发者服务器的URL。 +// filePath: filePath, +// name: 'file', // 必须填file。 +// formData: { +// key: fileName, +// 'policy': polocyBase64, +// 'OSSAccessKeyId': 'LTAI5t8UTh8CTXEi2dYxobhj', +// 'success_action_status': '200', //让服务端返回200,不然,默认会返回204 +// 'signature': signature, +// // 'x-oss-security-token': this.stsToken, +// }, +// success: (res) => { +// const webUrl = appConfig.fileUrl + '/' + fileName; +// reso({data: {url: webUrl,thumb: webUrl}}) +// }, +// fail: err => { +// rej(err) +// } +// }); +// }) + + +// } + +export const getTempOssToken = () => http.get('/oss/getTempToken') +export default { + uploadFile, + getTempOssToken +} \ No newline at end of file diff --git a/api/user-comment.js b/api/user-comment.js new file mode 100644 index 0000000..6dfbf69 --- /dev/null +++ b/api/user-comment.js @@ -0,0 +1,20 @@ +import http from './index.js'; + +// 分页查询评论 +export const pageComment = (params) => http.get('/shop/user-comment/page', {params}) + +// 查询全部评论 +export const listComment = (params) => http.get('/shop/user-comment', {params}) + +// 修改评论 +export const addComment = (data) => http.post('/shop/user-comment', data) + +// 删除评论 +export const removeComment = (id) => http.delete('/shop/user-comment/' + id) + +export default { + pageComment, + listComment, + addComment, + removeComment +} diff --git a/api/user-feedback.js b/api/user-feedback.js new file mode 100644 index 0000000..7126ec6 --- /dev/null +++ b/api/user-feedback.js @@ -0,0 +1,20 @@ +import http from './index.js'; + +// 分页查询意见反馈 +export const pageFeedback = (params) => http.get('/shop/user-feedback/page', {params}) + +// 查询全部意见反馈 +export const listFeedback = (params) => http.get('/shop/user-feedback', {params}) + +// 修改意见反馈 +export const addFeedback = (data) => http.post('/shop/user-feedback', data) + +// 删除意见反馈 +export const removeFeedback = (id) => http.delete('/shop/user-feedback/' + id) + +export default { + pageFeedback, + listFeedback, + addFeedback, + removeFeedback +} diff --git a/api/user-follow.js b/api/user-follow.js new file mode 100644 index 0000000..a742f6a --- /dev/null +++ b/api/user-follow.js @@ -0,0 +1,20 @@ +import http from './index.js'; + +// 分页查询关注记录 +export const pageFollow = (params) => http.get('/shop/user-follow/page', {params}) + +// 查询全部关注记录 +export const listFollow = (params) => http.get('/shop/user-follow', {params}) + +// 修改关注记录 +export const addFollow = (data) => http.post('/shop/user-follow', data) + +// 删除关注记录 +export const removeFollow = (id) => http.delete('/shop/user-follow/' + id) + +export default { + pageFollow, + listFollow, + addFollow, + removeFollow +} diff --git a/api/user-grade.js b/api/user-grade.js new file mode 100644 index 0000000..f9422e5 --- /dev/null +++ b/api/user-grade.js @@ -0,0 +1,20 @@ +import http from './index.js'; + +// 分页查询会员等级 +export const pageUsereGrade = (params) => http.get('/shop/user-grade/page', {params}) + +// 查询全部会员等级 +export const listUsereGrade = (params) => http.get('/shop/user-grade', {params}) + +// 修改会员等级 +export const addUsereGrade = (data) => http.post('/shop/user-grade', data) + +// 删除会员等级 +export const removeUsereGrade = (id) => http.delete('/shop/user-grade/' + id) + +export default { + pageUsereGrade, + listUsereGrade, + addUsereGrade, + removeUsereGrade +} diff --git a/api/user-like.js b/api/user-like.js new file mode 100644 index 0000000..9bd3694 --- /dev/null +++ b/api/user-like.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询点赞 +export const pageLike = (params) => http.get('/shop/user-like/page', {params}) + +// 查询全部点赞 +export const listLike = (params) => http.get('/shop/user-like', {params}) + +// 添加点赞 +export const addLike = (data) => http.post('/shop/user-like', data) + +// 修改点赞 +export const updateLike = (data) => http.put('/shop/user-like', data) + +// 删除点赞 +export const removeLike = (id) => http.delete('/shop/user-like/' + id) + +export default { + pageLike, + listLike, + addLike, + removeLike, + updateLike +} diff --git a/api/user-look.js b/api/user-look.js new file mode 100644 index 0000000..d07c88f --- /dev/null +++ b/api/user-look.js @@ -0,0 +1,24 @@ +import http from './index.js'; + +// 分页查询访客记录 +export const pageLook = (params) => http.get('/shop/user-look/page', {params}) + +// 查询全部访客记录 +export const listLook = (params) => http.get('/shop/user-look', {params}) + +// 添加访客记录 +export const addLook = (data) => http.post('/shop/user-look', data) + +// 修改访客记录 +export const updateLook = (data) => http.put('/shop/user-look', data) + +// 删除访客记录 +export const removeLook = (id) => http.delete('/shop/user-look/' + id) + +export default { + pageLook, + listLook, + addLook, + removeLook, + updateLook +} diff --git a/api/user-referee.js b/api/user-referee.js new file mode 100644 index 0000000..81537bb --- /dev/null +++ b/api/user-referee.js @@ -0,0 +1,20 @@ +import http from './index.js'; + +// 分页查询推荐关系 +export const pageUserReferee = (params) => http.get('/shop/user-referee/page', {params}) + +// 查询全部推荐关系 +export const listUserReferee = (params) => http.get('/shop/user-referee', {params}) + +// 修改推荐关系 +export const addUserReferee = (data) => http.post('/shop/user-referee', data) + +// 删除推荐关系 +export const removeUserReferee = (id) => http.delete('/shop/user-referee/' + id) + +export default { + pageUserReferee, + listUserReferee, + addUserReferee, + removeUserReferee +} diff --git a/api/user.js b/api/user.js new file mode 100644 index 0000000..e340f4c --- /dev/null +++ b/api/user.js @@ -0,0 +1,20 @@ +import http from './index.js'; + +// 获取用户资料 +export const getUser = (params) => http.get('/auth/user', {params}) + +// 修改用户资料 +export const updateUser = (data) => http.put('/system/user', data) +export const getMyQrCode = (data) => http.post('/open/user/myQrCode',data) +// 获取用户资料 +export const getAgentUser = (id) => http.get('/open/user/agentUser/' + id) + +export const updatePassword = (data) => http.put('/auth/password',data) + +export default { + getUser, + updateUser, + getMyQrCode, + getAgentUser, + updatePassword +} diff --git a/api/ww-login.js b/api/ww-login.js new file mode 100644 index 0000000..e2c84c7 --- /dev/null +++ b/api/ww-login.js @@ -0,0 +1,8 @@ +import http from './index.js'; + +// 企业微信登录 +export const wwLogin = (data) => http.post('/open/wx-work/accessToken', data) + +export default { + wwLogin +} diff --git a/api/wx-login.js b/api/wx-login.js new file mode 100755 index 0000000..f95cd03 --- /dev/null +++ b/api/wx-login.js @@ -0,0 +1,12 @@ +import http from './index.js'; +import { fileUrl } from '@/config.js'; + +// 获取微信openId +export const getWxQrCode = () => http.get('/wx-login/getQRCode') + +export const getWxQrCodeFile = () => http.get('/file-preview/getQRCode') + +export default { + getWxQrCode, + getWxQrCodeFile +} diff --git a/api/wxofficial.js b/api/wxofficial.js new file mode 100755 index 0000000..5402a0d --- /dev/null +++ b/api/wxofficial.js @@ -0,0 +1,8 @@ +import http from './index.js'; + +// 查询订单列表 +export const oauthUserInfo = (data) => http.post('/wxofficial/oauthUserInfo', data) + +export default { + oauthUserInfo +} diff --git a/app.scss b/app.scss new file mode 100755 index 0000000..d379b1c --- /dev/null +++ b/app.scss @@ -0,0 +1,43 @@ +/* utils.scss */ +@import "/utils/utils.scss"; + +page { + background: #f3f3f3; +} + +@keyframes rotate { + 0% { + transform: rotate(0deg) scale(1); + } + + 100% { + transform: rotate(360deg) scale(1); + } +} + +/* #ifdef H5*/ + +uni-page { + box-shadow: 0 1rpx 44rpx rgba(169, 169, 169, .3); +} + +.uni-app--showlayout+uni-tabbar.uni-tabbar-bottom, +.uni-app--showlayout+uni-tabbar.uni-tabbar-bottom .uni-tabbar, +.uni-app--showlayout+uni-tabbar.uni-tabbar-top, +.uni-app--showlayout+uni-tabbar.uni-tabbar-top .uni-tabbar { + left: var(--window-left); + right: var(--window-right); +} + +.footer-fixed { + left: var(--window-left) !important; + right: var(--window-right) !important; +} + +.u-mask,.u-drawer { + left: var(--window-left) !important; + right: var(--window-right) !important; +} + +/* #endif */ + diff --git a/common/constant/index.js b/common/constant/index.js new file mode 100755 index 0000000..4c1c240 --- /dev/null +++ b/common/constant/index.js @@ -0,0 +1,3 @@ +import paginate from './paginate' + +export { paginate } diff --git a/common/constant/paginate.js b/common/constant/paginate.js new file mode 100755 index 0000000..0617b7e --- /dev/null +++ b/common/constant/paginate.js @@ -0,0 +1,7 @@ +export default { + data: [], // 列表数据 + current_page: 1, // 当前页码 + last_page: 1, // 最大页码 + per_page: 15, // 每页记录数 + total: 0, // 总记录数 +} diff --git a/common/enum/Client.js b/common/enum/Client.js new file mode 100755 index 0000000..c558f90 --- /dev/null +++ b/common/enum/Client.js @@ -0,0 +1,12 @@ +import Enum from './enum' + +/** + * 枚举类:客户端类型 + * ClientEnum + */ +export default new Enum([ + { key: 'APP', name: 'APP端', value: 'APP' }, + { key: 'H5', name: 'H5端', value: 'H5' }, + { key: 'H5_WEIXIN', name: '微信公众号端', value: 'H5-WEIXIN' }, + { key: 'MP_WEIXIN', name: '微信小程序端', value: 'MP-WEIXIN' }, +]) diff --git a/common/enum/coupon/ApplyRange.js b/common/enum/coupon/ApplyRange.js new file mode 100755 index 0000000..7422e62 --- /dev/null +++ b/common/enum/coupon/ApplyRange.js @@ -0,0 +1,10 @@ +import Enum from '../enum' + +/** + * 枚举类:优惠券适用范围 + * ApplyRangeEnum + */ +export default new Enum([ + { key: 'ALL', name: '全部商品', value: 10 }, + { key: 'SOME_GOODS', name: '指定商品', value: 20 } +]) diff --git a/common/enum/coupon/CouponType.js b/common/enum/coupon/CouponType.js new file mode 100755 index 0000000..5f56fda --- /dev/null +++ b/common/enum/coupon/CouponType.js @@ -0,0 +1,10 @@ +import Enum from '../enum' + +/** + * 枚举类:优惠券类型 + * CouponTypeEnum + */ +export default new Enum([ + { key: 'FULL_DISCOUNT', name: '满减券', value: 10 }, + { key: 'DISCOUNT', name: '折扣券', value: 20 } +]) diff --git a/common/enum/coupon/ExpireType.js b/common/enum/coupon/ExpireType.js new file mode 100755 index 0000000..269b36c --- /dev/null +++ b/common/enum/coupon/ExpireType.js @@ -0,0 +1,10 @@ +import Enum from '../enum' + +/** + * 枚举类:优惠券到期类型 + * ExpireTypeEnum + */ +export default new Enum([ + { key: 'RECEIVE', name: '领取后', value: 10 }, + { key: 'FIXED_TIME', name: '固定时间', value: 20 } +]) diff --git a/common/enum/coupon/index.js b/common/enum/coupon/index.js new file mode 100755 index 0000000..be1bdc8 --- /dev/null +++ b/common/enum/coupon/index.js @@ -0,0 +1,5 @@ +import ApplyRangeEnum from './ApplyRange' +import ExpireTypeEnum from './ExpireType' +import CouponTypeEnum from './CouponType' + +export { ApplyRangeEnum, CouponTypeEnum, ExpireTypeEnum } diff --git a/common/enum/dealer/apply/ApplyStatus.js b/common/enum/dealer/apply/ApplyStatus.js new file mode 100755 index 0000000..4808d4c --- /dev/null +++ b/common/enum/dealer/apply/ApplyStatus.js @@ -0,0 +1,11 @@ +import Enum from '../../enum' + +/** + * 枚举类:分销商审核状态 + * ApplyStatusEnum + */ +export default new Enum([ + { key: 'WAIT', name: '待审核', value: 10 }, + { key: 'PASSED', name: '审核通过', value: 20 }, + { key: 'REJECT', name: '驳回', value: 30 } +]) diff --git a/common/enum/dealer/apply/ApplyType.js b/common/enum/dealer/apply/ApplyType.js new file mode 100755 index 0000000..31b80a1 --- /dev/null +++ b/common/enum/dealer/apply/ApplyType.js @@ -0,0 +1,10 @@ +import Enum from '../../enum' + +/** + * 枚举类:分销商申请方式 + * ApplyTypeEnum + */ +export default new Enum([ + { key: 'AUDIT', name: '需后台审核', value: 10 }, + { key: 'PASS', name: '无需审核', value: 20 } +]) diff --git a/common/enum/dealer/apply/index.js b/common/enum/dealer/apply/index.js new file mode 100755 index 0000000..63844d6 --- /dev/null +++ b/common/enum/dealer/apply/index.js @@ -0,0 +1,4 @@ +import ApplyStatusEnum from './ApplyStatus' +import ApplyTypeEnum from './ApplyType' + +export { ApplyStatusEnum, ApplyTypeEnum } diff --git a/common/enum/dealer/withdraw/ApplyStatus.js b/common/enum/dealer/withdraw/ApplyStatus.js new file mode 100755 index 0000000..2297ebe --- /dev/null +++ b/common/enum/dealer/withdraw/ApplyStatus.js @@ -0,0 +1,12 @@ +import Enum from '../../enum' + +/** + * 枚举类:分销商提现申请状态 + * ApplyStatusEnum + */ +export default new Enum([ + { key: 'WAIT', name: '待审核', value: 10 }, + { key: 'PASSED', name: '审核通过', value: 20 }, + { key: 'REJECT', name: '驳回', value: 30 }, + { key: 'PAYMENT', name: '已打款', value: 40 } +]) diff --git a/common/enum/dealer/withdraw/PayType.js b/common/enum/dealer/withdraw/PayType.js new file mode 100755 index 0000000..2b0c23d --- /dev/null +++ b/common/enum/dealer/withdraw/PayType.js @@ -0,0 +1,11 @@ +import Enum from '../../enum' + +/** + * 枚举类:分销商体现打款方式 + * PayTypeEnum + */ +export default new Enum([ + { key: 'WECHAT', name: '微信零钱', value: 10 }, + { key: 'ALIPAY', name: '支付宝', value: 20 }, + { key: 'BANK_CARD', name: '银行卡', value: 30 } +]) diff --git a/common/enum/dealer/withdraw/index.js b/common/enum/dealer/withdraw/index.js new file mode 100755 index 0000000..9e8210c --- /dev/null +++ b/common/enum/dealer/withdraw/index.js @@ -0,0 +1,4 @@ +import PayTypeEnum from './PayType' +import ApplyStatusEnum from './ApplyStatus' + +export { PayTypeEnum, ApplyStatusEnum } diff --git a/common/enum/enum.js b/common/enum/enum.js new file mode 100755 index 0000000..0894708 --- /dev/null +++ b/common/enum/enum.js @@ -0,0 +1,85 @@ +/** + * 枚举类 + * Enum.IMAGE.name => "图片" + * Enum.getNameByKey('IMAGE') => "图片" + * Enum.getValueByKey('IMAGE') => 10 + * Enum.getNameByValue(10) => "图片" + * Enum.getData() => [{key: "IMAGE", name: "图片", value: 10}] + */ +class Enum { + constructor (param) { + const keyArr = [] + const valueArr = [] + + if (!Array.isArray(param)) { + throw new Error('param is not an array!') + } + + param.map(element => { + if (!element.key || !element.name) { + return + } + // 保存key值组成的数组,方便A.getName(name)类型的调用 + keyArr.push(element.key) + valueArr.push(element.value) + // 根据key生成不同属性值,以便A.B.name类型的调用 + this[element.key] = element + if (element.key !== element.value) { + this[element.value] = element + } + }) + + + // 保存源数组 + this.data = param + this.keyArr = keyArr + this.valueArr = valueArr + + // 防止被修改 + // Object.freeze(this) + } + + // 根据key得到对象 + keyOf (key) { + return this.data[this.keyArr.indexOf(key)] + } + + // 根据key得到对象 + valueOf (key) { + return this.data[this.valueArr.indexOf(key)] + } + + // 根据key获取name值 + getNameByKey (key) { + const prop = this.keyOf(key) + if (!prop) { + throw new Error('No enum constant' + key) + } + return prop.name + } + + // 根据value获取name值 + getNameByValue (value) { + const prop = this.valueOf(value) + if (!prop) { + throw new Error('No enum constant' + value) + } + return prop.name + } + + // 根据key获取value值 + getValueByKey (key) { + const prop = this.keyOf(key) + if (!prop) { + throw new Error('No enum constant' + key) + } + return prop.key + } + + // 返回源数组 + getData () { + return this.data + } +} + +export default Enum diff --git a/common/enum/goods/GoodsType.js b/common/enum/goods/GoodsType.js new file mode 100755 index 0000000..235af2a --- /dev/null +++ b/common/enum/goods/GoodsType.js @@ -0,0 +1,10 @@ +import Enum from '../enum' + +/** + * 枚举类:商品类型 + * GoodsTypeEnum + */ +export default new Enum([ + { key: 'PHYSICAL', name: '实物商品', value: 10 }, + { key: 'VIRTUAL', name: '虚拟商品', value: 20 } +]) diff --git a/common/enum/goods/SpecType.js b/common/enum/goods/SpecType.js new file mode 100755 index 0000000..ec7832e --- /dev/null +++ b/common/enum/goods/SpecType.js @@ -0,0 +1,10 @@ +import Enum from '../enum' + +/** + * 枚举类:商品规格类型 + * SpecTypeEnum + */ +export default new Enum([ + { key: 'SINGLE', name: '单规格', value: 10 }, + { key: 'MULTI', name: '多规格', value: 20 } +]) diff --git a/common/enum/goods/index.js b/common/enum/goods/index.js new file mode 100755 index 0000000..b057a95 --- /dev/null +++ b/common/enum/goods/index.js @@ -0,0 +1,4 @@ +import GoodsTypeEnum from './GoodsType' +import SpecTypeEnum from './SpecType' + +export { GoodsTypeEnum, SpecTypeEnum } diff --git a/common/enum/groupon/ActiveStatus.js b/common/enum/groupon/ActiveStatus.js new file mode 100755 index 0000000..77c0350 --- /dev/null +++ b/common/enum/groupon/ActiveStatus.js @@ -0,0 +1,11 @@ +import Enum from '../enum' + +/** + * 枚举类:拼团活动状态 + * GoodsStatusEnum + */ +export default new Enum([ + { key: 'STATE_BEGIN', name: '已开始', value: 10 }, + { key: 'STATE_SOON', name: '未开始', value: 20 }, + { key: 'STATE_END', name: '已结束', value: 30 } +]) diff --git a/common/enum/groupon/ActiveType.js b/common/enum/groupon/ActiveType.js new file mode 100755 index 0000000..0a89d33 --- /dev/null +++ b/common/enum/groupon/ActiveType.js @@ -0,0 +1,11 @@ +import Enum from '../enum' + +/** + * 枚举类:拼团类型 + * ActiveTypeEnum + */ +export default new Enum([ + { key: 'NORMAL', name: '普通拼团', value: 10, name2: '多人拼团' }, + { key: 'PULL_NEW', name: '老带新拼团', value: 20, name2: '新人团' }, + { key: 'STEPS', name: '阶梯拼团', value: 30, name2: '阶梯团' } +]) diff --git a/common/enum/groupon/GoodsStatus.js b/common/enum/groupon/GoodsStatus.js new file mode 100755 index 0000000..039a02c --- /dev/null +++ b/common/enum/groupon/GoodsStatus.js @@ -0,0 +1,10 @@ +import Enum from '../enum' + +/** + * 枚举类:拼团商品状态 + * GoodsStatusEnum + */ +export default new Enum([ + { key: 'NORMAL', name: '进行中', value: 10 }, + { key: 'FINISH', name: '已结束', value: 20 } +]) diff --git a/common/enum/groupon/TaskStatus.js b/common/enum/groupon/TaskStatus.js new file mode 100755 index 0000000..6299cfd --- /dev/null +++ b/common/enum/groupon/TaskStatus.js @@ -0,0 +1,11 @@ +import Enum from '../enum' + +/** + * 枚举类:拼单状态 + * TaskStatusEnum + */ +export default new Enum([ + { key: 'NORMAL', name: '进行中', value: 10 }, + { key: 'SUCCESS', name: '拼单成功', value: 20 }, + { key: 'FAIL', name: '拼单失败', value: 30 } +]) diff --git a/common/enum/groupon/index.js b/common/enum/groupon/index.js new file mode 100755 index 0000000..316d18e --- /dev/null +++ b/common/enum/groupon/index.js @@ -0,0 +1,6 @@ +import GoodsStatusEnum from './GoodsStatus' +import TaskStatusEnum from './TaskStatus' +import ActiveTypeEnum from './ActiveType' +import ActiveStatusEnum from './ActiveStatus' + +export { GoodsStatusEnum, TaskStatusEnum, ActiveTypeEnum, ActiveStatusEnum } diff --git a/common/enum/live/LiveStatus.js b/common/enum/live/LiveStatus.js new file mode 100755 index 0000000..cbb683e --- /dev/null +++ b/common/enum/live/LiveStatus.js @@ -0,0 +1,15 @@ +import Enum from '../enum' + +/** + * 枚举类:微信小程序直播间状态 + * LiveStatusEnum + */ +export default new Enum([ + { key: 101, name: '直播中', value: 101 }, + { key: 102, name: '未开始', value: 102 }, + { key: 103, name: '已结束', value: 103 }, + { key: 104, name: '禁播', value: 104 }, + { key: 105, name: '暂停中', value: 105 }, + { key: 106, name: '异常', value: 106 }, + { key: 107, name: '已过期', value: 107 } +]) diff --git a/common/enum/live/index.js b/common/enum/live/index.js new file mode 100755 index 0000000..d8a53cc --- /dev/null +++ b/common/enum/live/index.js @@ -0,0 +1,3 @@ +import LiveStatusEnum from './LiveStatus' + +export { LiveStatusEnum } diff --git a/common/enum/order/DeliveryStatus.js b/common/enum/order/DeliveryStatus.js new file mode 100755 index 0000000..ed55f95 --- /dev/null +++ b/common/enum/order/DeliveryStatus.js @@ -0,0 +1,10 @@ +import Enum from '../enum' + +/** + * 枚举类:订单发货状态 + * DeliveryStatusEnum + */ +export default new Enum([ + { key: 'NOT_DELIVERED', name: '未发货', value: 10 }, + { key: 'DELIVERED', name: '已发货', value: 20 } +]) diff --git a/common/enum/order/DeliveryType.js b/common/enum/order/DeliveryType.js new file mode 100755 index 0000000..230eb18 --- /dev/null +++ b/common/enum/order/DeliveryType.js @@ -0,0 +1,11 @@ +import Enum from '../enum' + +/** + * 枚举类:配送方式 + * DeliveryTypeEnum + */ +export default new Enum([ + { key: 'EXPRESS', name: '快递配送', value: 10 }, + { key: 'EXTRACT', name: '上门自提', value: 20 }, + { key: 'NOTHING', name: '无需配送', value: 30 } +]) diff --git a/common/enum/order/OrderSource.js b/common/enum/order/OrderSource.js new file mode 100755 index 0000000..e46062c --- /dev/null +++ b/common/enum/order/OrderSource.js @@ -0,0 +1,11 @@ +import Enum from '../enum' + +/** + * 枚举类:订单来源 + * OrderSourceEnum + */ +export default new Enum([ + { key: 'MASTER', name: '普通订单', value: 10 }, + { key: 'BARGAIN', name: '砍价订单', value: 20 }, + { key: 'SHARP', name: '秒杀订单', value: 30 } +]) diff --git a/common/enum/order/OrderStatus.js b/common/enum/order/OrderStatus.js new file mode 100755 index 0000000..f706e43 --- /dev/null +++ b/common/enum/order/OrderStatus.js @@ -0,0 +1,12 @@ +import Enum from '../enum' + +/** + * 枚举类:订单状态 + * OrderStatusEnum + */ +export default new Enum([ + { key: 'NORMAL', name: '进行中', value: 10 }, + { key: 'CANCELLED', name: '已取消', value: 20 }, + { key: 'APPLY_CANCEL', name: '待取消', value: 21 }, + { key: 'COMPLETED', name: '已完成', value: 30 } +]) diff --git a/common/enum/order/OrderType.js b/common/enum/order/OrderType.js new file mode 100755 index 0000000..de77681 --- /dev/null +++ b/common/enum/order/OrderType.js @@ -0,0 +1,10 @@ +import Enum from '../enum' + +/** + * 枚举类:订单类型 + * OrderTypeEnum + */ +export default new Enum([ + { key: 'PHYSICAL', name: '实物订单', value: 10 }, + { key: 'VIRTUAL', name: '虚拟订单', value: 20 } +]) diff --git a/common/enum/order/PayStatus.js b/common/enum/order/PayStatus.js new file mode 100755 index 0000000..f0e4b1d --- /dev/null +++ b/common/enum/order/PayStatus.js @@ -0,0 +1,10 @@ +import Enum from '../enum' + +/** + * 枚举类:订单支付状态 + * PayStatusEnum + */ +export default new Enum([ + { key: 'PENDING', name: '待支付', value: 10 }, + { key: 'SUCCESS', name: '已支付', value: 20 } +]) diff --git a/common/enum/order/PayType.js b/common/enum/order/PayType.js new file mode 100755 index 0000000..96612df --- /dev/null +++ b/common/enum/order/PayType.js @@ -0,0 +1,10 @@ +import Enum from '../enum' + +/** + * 枚举类:订单支付方式 + * PayTypeEnum + */ +export default new Enum([ + { key: 'BALANCE', name: '余额支付', value: 10 }, + { key: 'WECHAT', name: '微信支付', value: 20 } +]) diff --git a/common/enum/order/ReceiptStatus.js b/common/enum/order/ReceiptStatus.js new file mode 100755 index 0000000..34916a0 --- /dev/null +++ b/common/enum/order/ReceiptStatus.js @@ -0,0 +1,10 @@ +import Enum from '../enum' + +/** + * 枚举类:订单收货状态 + * ReceiptStatusEnum + */ +export default new Enum([ + { key: 'NOT_RECEIVED', name: '未收货', value: 10 }, + { key: 'RECEIVED', name: '已收货', value: 20 } +]) diff --git a/common/enum/order/delivery/DeliveryMethod.js b/common/enum/order/delivery/DeliveryMethod.js new file mode 100755 index 0000000..7d06cb1 --- /dev/null +++ b/common/enum/order/delivery/DeliveryMethod.js @@ -0,0 +1,11 @@ +import Enum from '../../enum' + +/** + * 枚举类:发货方式 + * DeliveryMethodEnum + */ +export default new Enum([ + { key: 'MANUAL', name: '手动发货', value: 10 }, + { key: 'UNWANTED', name: '无需物流', value: 20 }, + { key: 'EORDER', name: '电子面单', value: 30 } +]) diff --git a/common/enum/order/delivery/index.js b/common/enum/order/delivery/index.js new file mode 100755 index 0000000..171a078 --- /dev/null +++ b/common/enum/order/delivery/index.js @@ -0,0 +1,3 @@ +import DeliveryMethodEnum from './DeliveryMethod' + +export { DeliveryMethodEnum } diff --git a/common/enum/order/index.js b/common/enum/order/index.js new file mode 100755 index 0000000..56f507b --- /dev/null +++ b/common/enum/order/index.js @@ -0,0 +1,17 @@ +import DeliveryStatusEnum from './DeliveryStatus' +import DeliveryTypeEnum from './DeliveryType' +import OrderSourceEnum from './OrderSource' +import OrderStatusEnum from './OrderStatus' +import PayStatusEnum from './PayStatus' +import ReceiptStatusEnum from './ReceiptStatus' +import OrderTypeEnum from './OrderType' + +export { + DeliveryStatusEnum, + DeliveryTypeEnum, + OrderSourceEnum, + OrderStatusEnum, + PayStatusEnum, + ReceiptStatusEnum, + OrderTypeEnum +} diff --git a/common/enum/order/refund/AuditStatus.js b/common/enum/order/refund/AuditStatus.js new file mode 100755 index 0000000..2d9f5f0 --- /dev/null +++ b/common/enum/order/refund/AuditStatus.js @@ -0,0 +1,11 @@ +import Enum from '../../enum' + +/** + * 枚举类:商家审核状态 + * AuditStatusEnum + */ +export default new Enum([ + { key: 'WAIT', name: '待审核', value: 0 }, + { key: 'REVIEWED', name: '已同意', value: 10 }, + { key: 'REJECTED', name: '已拒绝', value: 20 } +]) diff --git a/common/enum/order/refund/RefundStatus.js b/common/enum/order/refund/RefundStatus.js new file mode 100755 index 0000000..78331b2 --- /dev/null +++ b/common/enum/order/refund/RefundStatus.js @@ -0,0 +1,12 @@ +import Enum from '../../enum' + +/** + * 枚举类:售后单状态 + * RefundStatusEnum + */ +export default new Enum([ + { key: 'NORMAL', name: '进行中', value: 0 }, + { key: 'REJECTED', name: '已拒绝', value: 10 }, + { key: 'COMPLETED', name: '已完成', value: 20 }, + { key: 'CANCELLED', name: '已取消', value: 30 } +]) diff --git a/common/enum/order/refund/RefundType.js b/common/enum/order/refund/RefundType.js new file mode 100755 index 0000000..63999cd --- /dev/null +++ b/common/enum/order/refund/RefundType.js @@ -0,0 +1,10 @@ +import Enum from '../../enum' + +/** + * 枚举类:售后类型 + * RefundTypeEnum + */ +export default new Enum([ + { key: 'RETURN', name: '退货退款', value: 10 }, + { key: 'EXCHANGE', name: '换货', value: 20 } +]) diff --git a/common/enum/order/refund/index.js b/common/enum/order/refund/index.js new file mode 100755 index 0000000..803b268 --- /dev/null +++ b/common/enum/order/refund/index.js @@ -0,0 +1,9 @@ +import AuditStatusEnum from './AuditStatus' +import RefundStatusEnum from './RefundStatus' +import RefundTypeEnum from './RefundType' + +export { + AuditStatusEnum, + RefundStatusEnum, + RefundTypeEnum +} diff --git a/common/enum/payment/Method.js b/common/enum/payment/Method.js new file mode 100755 index 0000000..e9213e4 --- /dev/null +++ b/common/enum/payment/Method.js @@ -0,0 +1,11 @@ +import Enum from '../enum' + +/** + * 枚举类:支付方式类型 + * PayMethodEnum + */ +export default new Enum([ + { key: 'WECHAT', name: '微信支付', value: 'wechat' }, + { key: 'ALIPAY', name: '支付宝支付', value: 'alipay' }, + { key: 'BALANCE', name: '余额支付', value: 'balance' } +]) diff --git a/common/enum/payment/index.js b/common/enum/payment/index.js new file mode 100755 index 0000000..030b061 --- /dev/null +++ b/common/enum/payment/index.js @@ -0,0 +1,3 @@ +import PayMethodEnum from './Method' + +export { PayMethodEnum } diff --git a/common/enum/setting/Key.js b/common/enum/setting/Key.js new file mode 100755 index 0000000..8bf7582 --- /dev/null +++ b/common/enum/setting/Key.js @@ -0,0 +1,42 @@ +import Enum from '../enum' + +/** + * 枚举类:设置项索引 + * SettingKeyEnum + */ +export default new Enum([{ + key: 'REGISTER', + name: '账户注册设置', + value: 'register' + }, + { + key: 'APP_THEME', + name: '店铺页面风格', + value: 'app_theme' + }, + { + key: 'PAGE_CATEGORY_TEMPLATE', + name: '分类页模板', + value: 'page_category_template' + }, + { + key: 'POINTS', + name: '积分设置', + value: 'points' + }, + { + key: 'RECHARGE', + name: '充值设置', + value: 'recharge' + }, + { + key: 'RECOMMENDED', + name: '商品推荐设置', + value: 'recommended' + }, + { + key: 'CUSTOMER', + name: '商城客服设置', + value: 'customer' + } +]) diff --git a/common/enum/sharp/ActiveStatus.js b/common/enum/sharp/ActiveStatus.js new file mode 100755 index 0000000..de89022 --- /dev/null +++ b/common/enum/sharp/ActiveStatus.js @@ -0,0 +1,11 @@ +import Enum from '../enum' + +/** + * 枚举类:整点秒杀-活动会场状态 + * ActiveStatusEnum + */ +export default new Enum([ + { key: 'STATE_BEGIN', name: '已开始', value: 10 }, + { key: 'STATE_SOON', name: '即将开始', value: 20 }, + { key: 'STATE_NOTICE', name: '预告', value: 30 } +]) diff --git a/common/enum/sharp/GoodsStatus.js b/common/enum/sharp/GoodsStatus.js new file mode 100755 index 0000000..f5eac32 --- /dev/null +++ b/common/enum/sharp/GoodsStatus.js @@ -0,0 +1,11 @@ +import Enum from '../enum' + +/** + * 枚举类:整点秒杀-活动商品状态 + * GoodsStatusEnum + */ +export default new Enum([ + { key: 'STATE_BEGIN', name: '已开始', value: 10 }, + { key: 'STATE_SOON', name: '未开始', value: 20 }, + { key: 'STATE_END', name: '已结束', value: 30 } +]) diff --git a/common/enum/sharp/index.js b/common/enum/sharp/index.js new file mode 100755 index 0000000..9a98bdb --- /dev/null +++ b/common/enum/sharp/index.js @@ -0,0 +1,4 @@ +import ActiveStatusEnum from './ActiveStatus' +import GoodsStatusEnum from './GoodsStatus' + +export { ActiveStatusEnum, GoodsStatusEnum } diff --git a/common/enum/store/page/category/Style.js b/common/enum/store/page/category/Style.js new file mode 100755 index 0000000..c33c486 --- /dev/null +++ b/common/enum/store/page/category/Style.js @@ -0,0 +1,12 @@ +import Enum from '../../../enum' + +/** + * 枚举类:地址类型 + * PageCategoryStyleEnum + */ +export default new Enum([ + { key: 'ONE_LEVEL_BIG', name: '一级分类[大图]', value: 10 }, + { key: 'ONE_LEVEL_SMALL', name: '一级分类[小图]', value: 11 }, + { key: 'TWO_LEVEL', name: '二级分类', value: 20 }, + { key: 'COMMODITY', name: '一级分类+商品', value: 30 } +]) diff --git a/common/enum/store/page/category/index.js b/common/enum/store/page/category/index.js new file mode 100755 index 0000000..bf350e1 --- /dev/null +++ b/common/enum/store/page/category/index.js @@ -0,0 +1,3 @@ +import PageCategoryStyleEnum from './Style' + +export { PageCategoryStyleEnum } diff --git a/common/model/Region.js b/common/model/Region.js new file mode 100755 index 0000000..a495513 --- /dev/null +++ b/common/model/Region.js @@ -0,0 +1,57 @@ +import * as Api from '@/api/region' +import storage from '@/utils/storage' + +const REGION_TREE = 'region_tree' + +/** + * 商品分类 model类 + * RegionModel + */ +export default { + + // 从服务端获取全部地区数据(树状) + getTreeDataFromApi () { + return new Promise((resolve, reject) => { + Api.tree().then(result => resolve(result.data.list)) + }) + }, + + // 获取所有地区(树状) + getTreeData () { + return new Promise((resolve, reject) => { + // 判断缓存中是否存在 + const data = storage.get(REGION_TREE) + // 从服务端获取全部地区数据 + if (data) { + resolve(data) + } else { + this.getTreeDataFromApi().then(list => { + // 缓存24小时 + storage.set(REGION_TREE, list, 24 * 60 * 60) + resolve(list) + }) + } + }) + }, + + // 获取所有地区的总数 + getCitysCount () { + return new Promise((resolve, reject) => { + // 获取所有地区(树状) + this.getTreeData().then(data => { + const cityIds = [] + // 遍历省份 + for (const pidx in data) { + const province = data[pidx] + // 遍历城市 + for (const cidx in province.city) { + const cityItem = province.city[cidx] + cityIds.push(cityItem.id) + } + } + resolve(cityIds.length) + }) + }) + } + +} diff --git a/common/model/Setting.js b/common/model/Setting.js new file mode 100755 index 0000000..c32be2a --- /dev/null +++ b/common/model/Setting.js @@ -0,0 +1,99 @@ +import store from '@/store' +import Config from '@/core/config' +import storage from '@/utils/storage' +import * as SettingApi from '@/api/setting' +import SettingKeyEnum from '@/common/enum/setting/Key' +import platform from '@/core/platform' + +const CACHE_KEY = 'Setting' +const OTHER = '_other' + +// 写入缓存, 到期时间10分钟 +const setStorage = (data) => { + const expireTime = 10 * 60 + storage.set(CACHE_KEY, data, expireTime) +} + +// 获取缓存中的数据 +const getStorage = () => { + return storage.get(CACHE_KEY) +} + +// 获取后端接口商城设置 (最新) +const getApiData = () => { + return new Promise((resolve, reject) => { + SettingApi.data() + .then(result => { + resolve(result.data.setting) + }) + }) +} + +/** + * 获取商城设置 + * 有缓存的情况下返回缓存, 没有缓存从后端api获取 + * @param {bool} isCache 是否从缓存中获取 [优点不用每次请求后端api 缺点后台更新设置后需等待时效性] + */ +const data = isCache => { + if (isCache == undefined) { + isCache = Config.get('enabledSettingCache') + } + return new Promise((resolve, reject) => { + const cacheData = getStorage() + if (isCache && cacheData) { + resolve(cacheData) + } else { + getApiData() + .then(data => { + setStorage(data) + resolve(data) + }) + } + }) +} + +// 获取商城设置(指定项) +const item = (key, isCache) => { + return new Promise((resolve, reject) => { + data(isCache).then(setting => resolve(setting[key])) + }) +} + +// 获取H5端访问地址 +const h5Url = (isCache = false) => { + return new Promise((resolve, reject) => { + data(isCache) + .then(setting => { + const h5Url = setting[OTHER]['h5Url'] + resolve(h5Url) + }) + }) +} + +// 设置全局自定义主题 +const setAppTheme = () => { + return new Promise((resolve, reject) => { + item(SettingKeyEnum.APP_THEME.value, false) + .then(appTheme => { + store.dispatch('SetAppTheme', appTheme) + resolve() + }) + }) +} + +// 是否显示客服按钮 (微信小程序客服只有在微信小程序端显示) +const isShowCustomerBtn = async () => { + const setting = await item(SettingKeyEnum.CUSTOMER.value, true) + if (!setting.enabled) { + return false + } + return setting.provider === 'wxqykf' || (setting.provider === 'mpwxkf' && platform === 'MP-WEIXIN') +} + +export default { + data, + item, + h5Url, + setAppTheme, + isShowCustomerBtn +} diff --git a/common/model/dealer/Setting.js b/common/model/dealer/Setting.js new file mode 100755 index 0000000..0d043e1 --- /dev/null +++ b/common/model/dealer/Setting.js @@ -0,0 +1,58 @@ +import * as SettingApi from '@/api/dealer/setting' +import storage from '@/utils/storage' + +const CACHE_KEY = 'Dealer-Setting' + +// 写入缓存, 到期时间30分钟 +const setStorage = (data) => { + const expireTime = 30 * 60 + storage.set(CACHE_KEY, data, expireTime) +} + +// 获取缓存中的数据 +const getStorage = () => { + return storage.get(CACHE_KEY) +} + +// 获取后端接口商城设置 (最新) +const getApiData = () => { + return new Promise((resolve, reject) => { + SettingApi.data() + .then(result => { + resolve(result.data.setting) + }) + }) +} + +/** + * 获取商城设置 + * 有缓存的情况下返回缓存, 没有缓存从后端api获取 + * @param {bool} isCache 是否从缓存中获取 + */ +const data = (isCache = false) => { + return new Promise((resolve, reject) => { + const cacheData = getStorage() + if (isCache && cacheData) { + resolve(cacheData) + } else { + getApiData().then(data => { + setStorage(data) + resolve(data) + }) + } + }) +} + +// 获取商城设置(指定项) +const item = (key, isCache = false) => { + return new Promise((resolve, reject) => { + data(isCache).then(setting => { + resolve(setting[key]) + }) + }) +} + +export default { + data, + item +} diff --git a/common/model/groupon/Setting.js b/common/model/groupon/Setting.js new file mode 100755 index 0000000..db7c284 --- /dev/null +++ b/common/model/groupon/Setting.js @@ -0,0 +1,52 @@ +import Config from '@/core/config' +import * as SettingApi from '@/api/groupon/setting' +import storage from '@/utils/storage' + +const CACHE_KEY = 'Groupon-Setting' + +// 写入缓存, 到期时间30分钟 +const setStorage = (data) => { + const expireTime = 30 * 60 + storage.set(CACHE_KEY, data, expireTime) +} + +// 获取缓存中的数据 +const getStorage = () => { + return storage.get(CACHE_KEY) +} + +// 获取后端接口商城设置 (最新) +const getApiData = () => { + return new Promise((resolve, reject) => { + SettingApi.data() + .then(result => { + resolve(result.data.setting) + }) + }) +} + +/** + * 获取商城设置 + * 有缓存的情况下返回缓存, 没有缓存从后端api获取 + * @param {bool} isCache 是否从缓存中获取 + */ +const data = (isCache = false) => { + if (isCache == undefined) { + isCache = Config.get('enabledSettingCache') + } + return new Promise((resolve, reject) => { + const cacheData = getStorage() + if (isCache && cacheData) { + resolve(cacheData) + } else { + getApiData().then(data => { + setStorage(data) + resolve(data) + }) + } + }) +} + +export default { + data +} diff --git a/components/Luke-UniappAddressSelector/components/UniAddressSelector.vue b/components/Luke-UniappAddressSelector/components/UniAddressSelector.vue new file mode 100644 index 0000000..fbf2a33 --- /dev/null +++ b/components/Luke-UniappAddressSelector/components/UniAddressSelector.vue @@ -0,0 +1,425 @@ + + + + + diff --git a/components/Luke-UniappAddressSelector/index.vue b/components/Luke-UniappAddressSelector/index.vue new file mode 100644 index 0000000..aef0816 --- /dev/null +++ b/components/Luke-UniappAddressSelector/index.vue @@ -0,0 +1,61 @@ + + + + + \ No newline at end of file diff --git a/components/Luke-UniappAddressSelector/readme.md b/components/Luke-UniappAddressSelector/readme.md new file mode 100644 index 0000000..5ec1d25 --- /dev/null +++ b/components/Luke-UniappAddressSelector/readme.md @@ -0,0 +1,31 @@ +# UniAddressSelector省市区街道三级四级联动(内附demo) + +### 概述 + +1. 支持uniapp(APP、H5、小程序)省市区街道三级四级联动 +2. 支持默认地区或已选择地区显示 +3. 数据来源可包括高德地图api、公司封装接口返回 + +### 预览 + +![](https://raw.githubusercontent.com/LukeLiou/picLuke/master/images/UniAddressSelector_watermark.gif) + +### API + +#### props + +| 属性 | 必填 | 说明 | 类型 | 默认值 | +| :------- | ------------- | ------------------------------------------------------------ | ------ | ------ | +| areaInfoSelected | 否 | 已选择的地址对象或默认显示地址对象,属性有:provinceObj,cityObjareaObj,streetObj | Object | {} | +| selectAreaLevelLimit | 否 | 指定选择的级别数,如只需要选择省市区,则指定值为3 | Number | 4 | + +#### events + +| 事件名 | 说明| 返回值 | +| :------- |--------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------ | +| cancel | 点击取消按钮时触发 | - | +| confirm | 点击确认按钮时触发 | 选中的省市区街道地址对象,包含如下属性:fullAreaText,provinceCode,,cityCode,areaCode,streetCode,provinceObj,cityObj,areaObj,streetObj | + +### 作者想说 + +欢迎大家留言、评论与star \ No newline at end of file diff --git a/components/add-cart-btn/index.vue b/components/add-cart-btn/index.vue new file mode 100755 index 0000000..3b73663 --- /dev/null +++ b/components/add-cart-btn/index.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/components/add-cart-popup/index.vue b/components/add-cart-popup/index.vue new file mode 100755 index 0000000..46ae2a8 --- /dev/null +++ b/components/add-cart-popup/index.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/components/article-video/article-video.vue b/components/article-video/article-video.vue new file mode 100644 index 0000000..66ca101 --- /dev/null +++ b/components/article-video/article-video.vue @@ -0,0 +1,56 @@ + + + + + \ No newline at end of file diff --git a/components/avatar-image/index.vue b/components/avatar-image/index.vue new file mode 100755 index 0000000..f16e91b --- /dev/null +++ b/components/avatar-image/index.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/components/chat-input-bar/chat-input-bar.vue b/components/chat-input-bar/chat-input-bar.vue new file mode 100644 index 0000000..6be5763 --- /dev/null +++ b/components/chat-input-bar/chat-input-bar.vue @@ -0,0 +1,208 @@ + + + + + + + \ No newline at end of file diff --git a/components/chat-input-bar/emoji.js b/components/chat-input-bar/emoji.js new file mode 100644 index 0000000..a69300b --- /dev/null +++ b/components/chat-input-bar/emoji.js @@ -0,0 +1,33 @@ +export default [ + "😀", "😁", "😃", "😄", "😅", "😆", "😉", "😊", "😋", "😎", "😍", + "😘", "😗", "😙", "😚", "☺", "😇", "😐", "😑", "😶", "😏", "😣", "😥", "😮", "😯", "😪", + "😫", "😴", "😌", "😛", "😜", "😝", "😒", "😓", "😔", "😕", "😲", "😷", "😖", "😞", "😟", + "😤", "😢", "😭", "😦", "😧", "😨", "😬", "😰", "😱", "😳", "😵", "😡", "😠", + "👦", "👧", "👨", "👩", "👴", "👵", "👶", "👱", "👮", "👲", "👳", "👷", "👸", "💂", "🎅", "👰", "👼", + "💆", "💇", "🙍", "🙎", "🙅", "🙆", "💁", "🙋", "🙇", "🙌", "🙏", "👤", "👥", "🚶", "🏃", "👯", + "💃", "👫", "👬", "👭", "💏", "💑", "👪", "💪", "👈", "👉", "☝", "👆", "👇", "✌", "✋", "👌", + "👍", "👎", "✊", "👊", "👋", "👏", "👐", "✍", "👣", "👀", "👂", "👃", "👅", "👄", "💋", "👓", + "👔", "👙", "👛", "👜", "👝", "🎒", "💼", "👞", "👟", "👠", "👡", "👢", "👑", + "👒", "🎩", "🎓", "💄", "💅", "💍", "🌂", "📶", "📳", "📴", "♻", "🏧","🚮", "🚰", "♿", "🚹", "🚺", + "🚻", "🚼", "🚾", "⚠", "🚸", "⛔", "🚫", "🚳", "🚭", "🚯", "🚱", "🚷", "🔞", "💈", + "🙈", "🐒", "🐶", "🐕", "🐩", "🐺", "🐱","🐈", "🐯", "🐅", "🐆", "🐴", "🐎", "🐮", "🐂", + "🐃","🐄","🐷","🐖","🐗","🐽","🐏","🐑","🐐","🐪","🐫","🐘","🐭", + "🐁","🐀","🐹","🐰","🐇","🐻","🐨","🐼","🐾","🐔","🐓","🐣","🐤","🐥", + "🐦", "🐧", "🐸", "🐊","🐢", "🐍", "🐲", "🐉", "🐳", "🐋", "🐬", "🐟", "🐠", "🐡", + "🐙", "🐚", "🐌", "🐛", "🐜", "🐝", "🐞", "🦋", "💐", "🌸", "💮", "🌹", "🌺", + "🌻", "🌼", "🌷", "🌱", "🌲", "🌳", "🌴", "🌵", "🌾", "🌿", "🍀", "🍁", "🍂", "🍃", + "🌍","🌎","🌏","🌐","🌑","🌒","🌓","🌔","🌕","🌖","🌗","🌘","🌙","🌚", + "🌛","🌜","☀","🌝","🌞","⭐","🌟","🌠","☁","⛅","☔","⚡","❄","🔥","💧","🌊", + "🏀", "🏈", "🏉", "🎾", "🎱", "🎳", "⛳", "🎣", "🎽", "🎿", + "😈", "👿", "👹", "👺", "💀", "☠", "👻", "👽", "👾", "💣", + "🌋", "🗻", "🏠", "🏡", "🏢", "🏣", "🏤", "🏥", "🏦", "🏨", + "⛲", "🌁", "🌃", "🌆", "🌇", "🎠", "🎡", "🎢", "🚂", + "🚌", "🚍", "🚎", "🚏", "🚐", "🚑", "🚒", "🚓", "🚔", "🚕", "🚖", "🚗", "🚘", + "💌", "💎", "🔪", "💈", "🚪", "🚽", "🚿", "🛁", "⌛", "⏳", "⌚", "⏰", "🎈", "🎉", + "💤", "💢", "💬", "💭", "♨", "🌀", "🔔", "🔕", "✡", "✝", "🔯", "📛", "🔰", "🔱", "⭕", "✅", + "☑", "✔", "✖", "❌", "❎", "➕", "➖", "➗", "➰", "➿", "〽", "✳", "✴", "❇", "‼", "⁉", "❓", "❔", "❕", "❗", + "🕛", "🕧", "🕐", "🕜", "🕑", "🕝", "🕒", "🕞", "🕓", "🕟", "🕔", "🕠", "🕕", "🕡", + "🕖", "🕢", "🕗", "🕣", "🕘", "🕤", "🕙", "🕥", "🕚", "🕦", "⏱", "⏲", "🕰", + "💘", "❤", "💓", "💔", "💕", "💖", "💗", "💙", "💚", "💛", "💜", "💝", "💞", "💟❣", + "🍇", "🍈", "🍉", "🍊", "🍋", "🍌", "🍍", "🍎", "🍏", "🍐", "🍑", "🍒", "🍓", +] \ No newline at end of file diff --git a/components/chat-item-image/chat-item-image.vue b/components/chat-item-image/chat-item-image.vue new file mode 100644 index 0000000..150134d --- /dev/null +++ b/components/chat-item-image/chat-item-image.vue @@ -0,0 +1,63 @@ + + + + + \ No newline at end of file diff --git a/components/chat-item/chat-item.vue b/components/chat-item/chat-item.vue new file mode 100644 index 0000000..74d9054 --- /dev/null +++ b/components/chat-item/chat-item.vue @@ -0,0 +1,217 @@ + + + + + + + \ No newline at end of file diff --git a/components/countdown/index.vue b/components/countdown/index.vue new file mode 100755 index 0000000..ce4208e --- /dev/null +++ b/components/countdown/index.vue @@ -0,0 +1,183 @@ + + + + + diff --git a/components/customer-btn/index.vue b/components/customer-btn/index.vue new file mode 100755 index 0000000..2a4b1e3 --- /dev/null +++ b/components/customer-btn/index.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/components/empty/index.vue b/components/empty/index.vue new file mode 100755 index 0000000..df7fa66 --- /dev/null +++ b/components/empty/index.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/components/goods-poster-popup/index.vue b/components/goods-poster-popup/index.vue new file mode 100755 index 0000000..71f5a6e --- /dev/null +++ b/components/goods-poster-popup/index.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/components/goods-sku-popup/index.vue b/components/goods-sku-popup/index.vue new file mode 100755 index 0000000..4969133 --- /dev/null +++ b/components/goods-sku-popup/index.vue @@ -0,0 +1,1367 @@ + + + + + diff --git a/components/goods-sku-popup/number-box/index.vue b/components/goods-sku-popup/number-box/index.vue new file mode 100755 index 0000000..ab8d9aa --- /dev/null +++ b/components/goods-sku-popup/number-box/index.vue @@ -0,0 +1,450 @@ + + + + + diff --git a/components/jyf-parser/jyf-parser.vue b/components/jyf-parser/jyf-parser.vue new file mode 100755 index 0000000..2af1369 --- /dev/null +++ b/components/jyf-parser/jyf-parser.vue @@ -0,0 +1,645 @@ + + + + + diff --git a/components/jyf-parser/libs/CssHandler.js b/components/jyf-parser/libs/CssHandler.js new file mode 100755 index 0000000..75c6015 --- /dev/null +++ b/components/jyf-parser/libs/CssHandler.js @@ -0,0 +1,100 @@ +const cfg = require('./config.js'), + isLetter = c => (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); + +function CssHandler(tagStyle) { + var styles = Object.assign(Object.create(null), cfg.userAgentStyles); + for (var item in tagStyle) + styles[item] = (styles[item] ? styles[item] + ';' : '') + tagStyle[item]; + this.styles = styles; +} +CssHandler.prototype.getStyle = function(data) { + this.styles = new parser(data, this.styles).parse(); +} +CssHandler.prototype.match = function(name, attrs) { + var tmp, matched = (tmp = this.styles[name]) ? tmp + ';' : ''; + if (attrs.class) { + var items = attrs.class.split(' '); + for (var i = 0, item; item = items[i]; i++) + if (tmp = this.styles['.' + item]) + matched += tmp + ';'; + } + if (tmp = this.styles['#' + attrs.id]) + matched += tmp + ';'; + return matched; +} +module.exports = CssHandler; + +function parser(data, init) { + this.data = data; + this.floor = 0; + this.i = 0; + this.list = []; + this.res = init; + this.state = this.Space; +} +parser.prototype.parse = function() { + for (var c; c = this.data[this.i]; this.i++) + this.state(c); + return this.res; +} +parser.prototype.section = function() { + return this.data.substring(this.start, this.i); +} +// 状态机 +parser.prototype.Space = function(c) { + if (c == '.' || c == '#' || isLetter(c)) { + this.start = this.i; + this.state = this.Name; + } else if (c == '/' && this.data[this.i + 1] == '*') + this.Comment(); + else if (!cfg.blankChar[c] && c != ';') + this.state = this.Ignore; +} +parser.prototype.Comment = function() { + this.i = this.data.indexOf('*/', this.i) + 1; + if (!this.i) this.i = this.data.length; + this.state = this.Space; +} +parser.prototype.Ignore = function(c) { + if (c == '{') this.floor++; + else if (c == '}' && !--this.floor) { + this.list = []; + this.state = this.Space; + } +} +parser.prototype.Name = function(c) { + if (cfg.blankChar[c]) { + this.list.push(this.section()); + this.state = this.NameSpace; + } else if (c == '{') { + this.list.push(this.section()); + this.Content(); + } else if (c == ',') { + this.list.push(this.section()); + this.Comma(); + } else if (!isLetter(c) && (c < '0' || c > '9') && c != '-' && c != '_') + this.state = this.Ignore; +} +parser.prototype.NameSpace = function(c) { + if (c == '{') this.Content(); + else if (c == ',') this.Comma(); + else if (!cfg.blankChar[c]) this.state = this.Ignore; +} +parser.prototype.Comma = function() { + while (cfg.blankChar[this.data[++this.i]]); + if (this.data[this.i] == '{') this.Content(); + else { + this.start = this.i--; + this.state = this.Name; + } +} +parser.prototype.Content = function() { + this.start = ++this.i; + if ((this.i = this.data.indexOf('}', this.i)) == -1) this.i = this.data.length; + var content = this.section(); + for (var i = 0, item; item = this.list[i++];) + if (this.res[item]) this.res[item] += ';' + content; + else this.res[item] = content; + this.list = []; + this.state = this.Space; +} diff --git a/components/jyf-parser/libs/MpHtmlParser.js b/components/jyf-parser/libs/MpHtmlParser.js new file mode 100755 index 0000000..aeb0fc3 --- /dev/null +++ b/components/jyf-parser/libs/MpHtmlParser.js @@ -0,0 +1,580 @@ +/** + * html 解析器 + * @tutorial https://github.com/jin-yufeng/Parser + * @version 20201029 + * @author JinYufeng + * @listens MIT + */ +const cfg = require('./config.js'), + blankChar = cfg.blankChar, + CssHandler = require('./CssHandler.js'), + windowWidth = uni.getSystemInfoSync().windowWidth; +var emoji; + +function MpHtmlParser(data, options = {}) { + this.attrs = {}; + this.CssHandler = new CssHandler(options.tagStyle, windowWidth); + this.data = data; + this.domain = options.domain; + this.DOM = []; + this.i = this.start = this.audioNum = this.imgNum = this.videoNum = 0; + options.prot = (this.domain || '').includes('://') ? this.domain.split('://')[0] : 'http'; + this.options = options; + this.state = this.Text; + this.STACK = []; + // 工具函数 + this.bubble = () => { + for (var i = this.STACK.length, item; item = this.STACK[--i];) { + if (cfg.richOnlyTags[item.name]) return false; + item.c = 1; + } + return true; + } + this.decode = (val, amp) => { + var i = -1, + j, en; + while (1) { + if ((i = val.indexOf('&', i + 1)) == -1) break; + if ((j = val.indexOf(';', i + 2)) == -1) break; + if (val[i + 1] == '#') { + en = parseInt((val[i + 2] == 'x' ? '0' : '') + val.substring(i + 2, j)); + if (!isNaN(en)) val = val.substr(0, i) + String.fromCharCode(en) + val.substr(j + 1); + } else { + en = val.substring(i + 1, j); + if (cfg.entities[en] || en == amp) + val = val.substr(0, i) + (cfg.entities[en] || '&') + val.substr(j + 1); + } + } + return val; + } + this.getUrl = url => { + if (url[0] == '/') { + if (url[1] == '/') url = this.options.prot + ':' + url; + else if (this.domain) url = this.domain + url; + } else if (this.domain && url.indexOf('data:') != 0 && !url.includes('://')) + url = this.domain + '/' + url; + return url; + } + this.isClose = () => this.data[this.i] == '>' || (this.data[this.i] == '/' && this.data[this.i + 1] == '>'); + this.section = () => this.data.substring(this.start, this.i); + this.parent = () => this.STACK[this.STACK.length - 1]; + this.siblings = () => this.STACK.length ? this.parent().children : this.DOM; +} +MpHtmlParser.prototype.parse = function() { + if (emoji) this.data = emoji.parseEmoji(this.data); + for (var c; c = this.data[this.i]; this.i++) + this.state(c); + if (this.state == this.Text) this.setText(); + while (this.STACK.length) this.popNode(this.STACK.pop()); + return this.DOM; +} +// 设置属性 +MpHtmlParser.prototype.setAttr = function() { + var name = this.attrName.toLowerCase(), + val = this.attrVal; + if (cfg.boolAttrs[name]) this.attrs[name] = 'T'; + else if (val) { + if (name == 'src' || (name == 'data-src' && !this.attrs.src)) this.attrs.src = this.getUrl(this.decode(val, 'amp')); + else if (name == 'href' || name == 'style') this.attrs[name] = this.decode(val, 'amp'); + else if (name.substr(0, 5) != 'data-') this.attrs[name] = val; + } + this.attrVal = ''; + while (blankChar[this.data[this.i]]) this.i++; + if (this.isClose()) this.setNode(); + else { + this.start = this.i; + this.state = this.AttrName; + } +} +// 设置文本节点 +MpHtmlParser.prototype.setText = function() { + var back, text = this.section(); + if (!text) return; + text = (cfg.onText && cfg.onText(text, () => back = true)) || text; + if (back) { + this.data = this.data.substr(0, this.start) + text + this.data.substr(this.i); + let j = this.start + text.length; + for (this.i = this.start; this.i < j; this.i++) this.state(this.data[this.i]); + return; + } + if (!this.pre) { + // 合并空白符 + var flag, tmp = []; + for (let i = text.length, c; c = text[--i];) + if (!blankChar[c]) { + tmp.unshift(c); + if (!flag) flag = 1; + } else { + if (tmp[0] != ' ') tmp.unshift(' '); + if (c == '\n' && flag == void 0) flag = 0; + } + if (flag == 0) return; + text = tmp.join(''); + } + this.siblings().push({ + type: 'text', + text: this.decode(text) + }); +} +// 设置元素节点 +MpHtmlParser.prototype.setNode = function() { + var node = { + name: this.tagName.toLowerCase(), + attrs: this.attrs + }, + close = cfg.selfClosingTags[node.name]; + if (this.options.nodes.length) node.type = 'node'; + this.attrs = {}; + if (!cfg.ignoreTags[node.name]) { + // 处理属性 + var attrs = node.attrs, + style = this.CssHandler.match(node.name, attrs, node) + (attrs.style || ''), + styleObj = {}; + if (attrs.id) { + if (this.options.compress & 1) attrs.id = void 0; + else if (this.options.useAnchor) this.bubble(); + } + if ((this.options.compress & 2) && attrs.class) attrs.class = void 0; + switch (node.name) { + case 'a': + case 'ad': // #ifdef APP-PLUS + case 'iframe': + // #endif + this.bubble(); + break; + case 'font': + if (attrs.color) { + styleObj['color'] = attrs.color; + attrs.color = void 0; + } + if (attrs.face) { + styleObj['font-family'] = attrs.face; + attrs.face = void 0; + } + if (attrs.size) { + var size = parseInt(attrs.size); + if (size < 1) size = 1; + else if (size > 7) size = 7; + var map = ['xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large']; + styleObj['font-size'] = map[size - 1]; + attrs.size = void 0; + } + break; + case 'embed': + // #ifndef APP-PLUS + var src = node.attrs.src || '', + type = node.attrs.type || ''; + if (type.includes('video') || src.includes('.mp4') || src.includes('.3gp') || src.includes('.m3u8')) + node.name = 'video'; + else if (type.includes('audio') || src.includes('.m4a') || src.includes('.wav') || src.includes('.mp3') || src.includes( + '.aac')) + node.name = 'audio'; + else break; + if (node.attrs.autostart) + node.attrs.autoplay = 'T'; + node.attrs.controls = 'T'; + // #endif + // #ifdef APP-PLUS + this.bubble(); + break; + // #endif + case 'video': + case 'audio': + if (!attrs.id) attrs.id = node.name + (++this[`${node.name}Num`]); + else this[`${node.name}Num`]++; + if (node.name == 'video') { + if (this.videoNum > 3) + node.lazyLoad = 1; + if (attrs.width) { + styleObj.width = parseFloat(attrs.width) + (attrs.width.includes('%') ? '%' : 'px'); + attrs.width = void 0; + } + if (attrs.height) { + styleObj.height = parseFloat(attrs.height) + (attrs.height.includes('%') ? '%' : 'px'); + attrs.height = void 0; + } + } + if (!attrs.controls && !attrs.autoplay) attrs.controls = 'T'; + attrs.source = []; + if (attrs.src) { + attrs.source.push(attrs.src); + attrs.src = void 0; + } + this.bubble(); + break; + case 'td': + case 'th': + if (attrs.colspan || attrs.rowspan) + for (var k = this.STACK.length, item; item = this.STACK[--k];) + if (item.name == 'table') { + item.flag = 1; + break; + } + } + if (attrs.align) { + if (node.name == 'table') { + if (attrs.align == 'center') styleObj['margin-inline-start'] = styleObj['margin-inline-end'] = 'auto'; + else styleObj['float'] = attrs.align; + } else styleObj['text-align'] = attrs.align; + attrs.align = void 0; + } + // 压缩 style + var styles = style.split(';'); + style = ''; + for (var i = 0, len = styles.length; i < len; i++) { + var info = styles[i].split(':'); + if (info.length < 2) continue; + let key = info[0].trim().toLowerCase(), + value = info.slice(1).join(':').trim(); + if (value[0] == '-' || value.includes('safe')) + style += `;${key}:${value}`; + else if (!styleObj[key] || value.includes('import') || !styleObj[key].includes('import')) + styleObj[key] = value; + } + if (node.name == 'img') { + if (attrs.src && !attrs.ignore) { + if (this.bubble()) + attrs.i = (this.imgNum++).toString(); + else attrs.ignore = 'T'; + } + if (attrs.ignore) { + style += ';-webkit-touch-callout:none'; + styleObj['max-width'] = '100%'; + } + var width; + if (styleObj.width) width = styleObj.width; + else if (attrs.width) width = attrs.width.includes('%') ? attrs.width : parseFloat(attrs.width) + 'px'; + if (width) { + styleObj.width = width; + attrs.width = '100%'; + if (parseInt(width) > windowWidth) { + styleObj.height = ''; + if (attrs.height) attrs.height = void 0; + } + } + if (styleObj.height) { + attrs.height = styleObj.height; + styleObj.height = ''; + } else if (attrs.height && !attrs.height.includes('%')) + attrs.height = parseFloat(attrs.height) + 'px'; + } + for (var key in styleObj) { + var value = styleObj[key]; + if (!value) continue; + if (key.includes('flex') || key == 'order' || key == 'self-align') node.c = 1; + // 填充链接 + if (value.includes('url')) { + var j = value.indexOf('('); + if (j++ != -1) { + while (value[j] == '"' || value[j] == "'" || blankChar[value[j]]) j++; + value = value.substr(0, j) + this.getUrl(value.substr(j)); + } + } + // 转换 rpx + else if (value.includes('rpx')) + value = value.replace(/[0-9.]+\s*rpx/g, $ => parseFloat($) * windowWidth / 750 + 'px'); + else if (key == 'white-space' && value.includes('pre') && !close) + this.pre = node.pre = true; + style += `;${key}:${value}`; + } + style = style.substr(1); + if (style) attrs.style = style; + if (!close) { + node.children = []; + if (node.name == 'pre' && cfg.highlight) { + this.remove(node); + this.pre = node.pre = true; + } + this.siblings().push(node); + this.STACK.push(node); + } else if (!cfg.filter || cfg.filter(node, this) != false) + this.siblings().push(node); + } else { + if (!close) this.remove(node); + else if (node.name == 'source') { + var parent = this.parent(); + if (parent && (parent.name == 'video' || parent.name == 'audio') && node.attrs.src) + parent.attrs.source.push(node.attrs.src); + } else if (node.name == 'base' && !this.domain) this.domain = node.attrs.href; + } + if (this.data[this.i] == '/') this.i++; + this.start = this.i + 1; + this.state = this.Text; +} +// 移除标签 +MpHtmlParser.prototype.remove = function(node) { + var name = node.name, + j = this.i; + // 处理 svg + var handleSvg = () => { + var src = this.data.substring(j, this.i + 1); + node.attrs.xmlns = 'http://www.w3.org/2000/svg'; + for (var key in node.attrs) { + if (key == 'viewbox') src = ` viewBox="${node.attrs.viewbox}"` + src; + else if (key != 'style') src = ` ${key}="${node.attrs[key]}"` + src; + } + src = '', this.i)) == -1) this.i = this.data.length; + if (name == 'svg') handleSvg(); + return; + } + } +} +// 节点出栈处理 +MpHtmlParser.prototype.popNode = function(node) { + // 空白符处理 + if (node.pre) { + node.pre = this.pre = void 0; + for (let i = this.STACK.length; i--;) + if (this.STACK[i].pre) + this.pre = true; + } + var siblings = this.siblings(), + len = siblings.length, + childs = node.children; + if (node.name == 'head' || (cfg.filter && cfg.filter(node, this) == false)) + return siblings.pop(); + var attrs = node.attrs; + // 替换一些标签名 + if (cfg.blockTags[node.name]) node.name = 'div'; + else if (!cfg.trustTags[node.name]) node.name = 'span'; + // 处理列表 + if (node.c && (node.name == 'ul' || node.name == 'ol')) { + if ((node.attrs.style || '').includes('list-style:none')) { + for (let i = 0, child; child = childs[i++];) + if (child.name == 'li') + child.name = 'div'; + } else if (node.name == 'ul') { + var floor = 1; + for (let i = this.STACK.length; i--;) + if (this.STACK[i].name == 'ul') floor++; + if (floor != 1) + for (let i = childs.length; i--;) + childs[i].floor = floor; + } else { + for (let i = 0, num = 1, child; child = childs[i++];) + if (child.name == 'li') { + child.type = 'ol'; + child.num = ((num, type) => { + if (type == 'a') return String.fromCharCode(97 + (num - 1) % 26); + if (type == 'A') return String.fromCharCode(65 + (num - 1) % 26); + if (type == 'i' || type == 'I') { + num = (num - 1) % 99 + 1; + var one = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'], + ten = ['X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'], + res = (ten[Math.floor(num / 10) - 1] || '') + (one[num % 10 - 1] || ''); + if (type == 'i') return res.toLowerCase(); + return res; + } + return num; + })(num++, attrs.type) + '.'; + } + } + } + // 处理表格 + if (node.name == 'table') { + var padding = parseFloat(attrs.cellpadding), + spacing = parseFloat(attrs.cellspacing), + border = parseFloat(attrs.border); + if (node.c) { + if (isNaN(padding)) padding = 2; + if (isNaN(spacing)) spacing = 2; + } + if (border) attrs.style = `border:${border}px solid gray;${attrs.style || ''}`; + if (node.flag && node.c) { + // 有 colspan 或 rowspan 且含有链接的表格转为 grid 布局实现 + attrs.style = `${attrs.style || ''};${spacing ? `;grid-gap:${spacing}px` : ';border-left:0;border-top:0'}`; + var row = 1, + col = 1, + colNum, + trs = [], + children = [], + map = {}; + (function f(ns) { + for (var i = 0; i < ns.length; i++) { + if (ns[i].name == 'tr') trs.push(ns[i]); + else f(ns[i].children || []); + } + })(node.children) + for (let i = 0; i < trs.length; i++) { + for (let j = 0, td; td = trs[i].children[j]; j++) { + if (td.name == 'td' || td.name == 'th') { + while (map[row + '.' + col]) col++; + var cell = { + name: 'div', + c: 1, + attrs: { + style: (td.attrs.style || '') + (border ? `;border:${border}px solid gray` + (spacing ? '' : + ';border-right:0;border-bottom:0') : '') + (padding ? `;padding:${padding}px` : '') + }, + children: td.children + } + if (td.attrs.colspan) { + cell.attrs.style += ';grid-column-start:' + col + ';grid-column-end:' + (col + parseInt(td.attrs.colspan)); + if (!td.attrs.rowspan) cell.attrs.style += ';grid-row-start:' + row + ';grid-row-end:' + (row + 1); + col += parseInt(td.attrs.colspan) - 1; + } + if (td.attrs.rowspan) { + cell.attrs.style += ';grid-row-start:' + row + ';grid-row-end:' + (row + parseInt(td.attrs.rowspan)); + if (!td.attrs.colspan) cell.attrs.style += ';grid-column-start:' + col + ';grid-column-end:' + (col + 1); + for (var k = 1; k < td.attrs.rowspan; k++) map[(row + k) + '.' + col] = 1; + } + children.push(cell); + col++; + } + } + if (!colNum) { + colNum = col - 1; + attrs.style += `;grid-template-columns:repeat(${colNum},auto)` + } + col = 1; + row++; + } + node.children = children; + } else { + attrs.style = `border-spacing:${spacing}px;${attrs.style || ''}`; + if (border || padding) + (function f(ns) { + for (var i = 0, n; n = ns[i]; i++) { + if (n.name == 'th' || n.name == 'td') { + if (border) n.attrs.style = `border:${border}px solid gray;${n.attrs.style || ''}`; + if (padding) n.attrs.style = `padding:${padding}px;${n.attrs.style || ''}`; + } else f(n.children || []); + } + })(childs) + } + if (this.options.autoscroll) { + var table = Object.assign({}, node); + node.name = 'div'; + node.attrs = { + style: 'overflow:scroll' + } + node.children = [table]; + } + } + this.CssHandler.pop && this.CssHandler.pop(node); + // 自动压缩 + if (node.name == 'div' && !Object.keys(attrs).length && childs.length == 1 && childs[0].name == 'div') + siblings[len - 1] = childs[0]; +} +// 状态机 +MpHtmlParser.prototype.Text = function(c) { + if (c == '<') { + var next = this.data[this.i + 1], + isLetter = c => (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); + if (isLetter(next)) { + this.setText(); + this.start = this.i + 1; + this.state = this.TagName; + } else if (next == '/') { + this.setText(); + if (isLetter(this.data[++this.i + 1])) { + this.start = this.i + 1; + this.state = this.EndTag; + } else this.Comment(); + } else if (next == '!' || next == '?') { + this.setText(); + this.Comment(); + } + } +} +MpHtmlParser.prototype.Comment = function() { + var key; + if (this.data.substring(this.i + 2, this.i + 4) == '--') key = '-->'; + else if (this.data.substring(this.i + 2, this.i + 9) == '[CDATA[') key = ']]>'; + else key = '>'; + if ((this.i = this.data.indexOf(key, this.i + 2)) == -1) this.i = this.data.length; + else this.i += key.length - 1; + this.start = this.i + 1; + this.state = this.Text; +} +MpHtmlParser.prototype.TagName = function(c) { + if (blankChar[c]) { + this.tagName = this.section(); + while (blankChar[this.data[this.i]]) this.i++; + if (this.isClose()) this.setNode(); + else { + this.start = this.i; + this.state = this.AttrName; + } + } else if (this.isClose()) { + this.tagName = this.section(); + this.setNode(); + } +} +MpHtmlParser.prototype.AttrName = function(c) { + if (c == '=' || blankChar[c] || this.isClose()) { + this.attrName = this.section(); + if (blankChar[c]) + while (blankChar[this.data[++this.i]]); + if (this.data[this.i] == '=') { + while (blankChar[this.data[++this.i]]); + this.start = this.i--; + this.state = this.AttrValue; + } else this.setAttr(); + } +} +MpHtmlParser.prototype.AttrValue = function(c) { + if (c == '"' || c == "'") { + this.start++; + if ((this.i = this.data.indexOf(c, this.i + 1)) == -1) return this.i = this.data.length; + this.attrVal = this.section(); + this.i++; + } else { + for (; !blankChar[this.data[this.i]] && !this.isClose(); this.i++); + this.attrVal = this.section(); + } + this.setAttr(); +} +MpHtmlParser.prototype.EndTag = function(c) { + if (blankChar[c] || c == '>' || c == '/') { + var name = this.section().toLowerCase(); + for (var i = this.STACK.length; i--;) + if (this.STACK[i].name == name) break; + if (i != -1) { + var node; + while ((node = this.STACK.pop()).name != name) this.popNode(node); + this.popNode(node); + } else if (name == 'p' || name == 'br') + this.siblings().push({ + name, + attrs: {} + }); + this.i = this.data.indexOf('>', this.i); + this.start = this.i + 1; + if (this.i == -1) this.i = this.data.length; + else this.state = this.Text; + } +} +module.exports = MpHtmlParser; diff --git a/components/jyf-parser/libs/config.js b/components/jyf-parser/libs/config.js new file mode 100755 index 0000000..1f772e9 --- /dev/null +++ b/components/jyf-parser/libs/config.js @@ -0,0 +1,80 @@ +/* 配置文件 */ +var cfg = { + // 出错占位图 + errorImg: null, + // 过滤器函数 + filter: null, + // 代码高亮函数 + highlight: null, + // 文本处理函数 + onText: null, + // 实体编码列表 + entities: { + quot: '"', + apos: "'", + semi: ';', + nbsp: '\xA0', + ensp: '\u2002', + emsp: '\u2003', + ndash: '–', + mdash: '—', + middot: '·', + lsquo: '‘', + rsquo: '’', + ldquo: '“', + rdquo: '”', + bull: '•', + hellip: '…' + }, + blankChar: makeMap(' ,\xA0,\t,\r,\n,\f'), + boolAttrs: makeMap('allowfullscreen,autoplay,autostart,controls,ignore,loop,muted'), + // 块级标签,将被转为 div + blockTags: makeMap('address,article,aside,body,caption,center,cite,footer,header,html,nav,pre,section'), + // 将被移除的标签 + ignoreTags: makeMap('area,base,canvas,frame,iframe,input,link,map,meta,param,script,source,style,svg,textarea,title,track,wbr'), + // 只能被 rich-text 显示的标签 + richOnlyTags: makeMap('a,colgroup,fieldset,legend'), + // 自闭合的标签 + selfClosingTags: makeMap('area,base,br,col,circle,ellipse,embed,frame,hr,img,input,line,link,meta,param,path,polygon,rect,source,track,use,wbr'), + // 信任的标签 + trustTags: makeMap('a,abbr,ad,audio,b,blockquote,br,code,col,colgroup,dd,del,dl,dt,div,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,source,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,title,ul,video'), + // 默认的标签样式 + userAgentStyles: { + address: 'font-style:italic', + big: 'display:inline;font-size:1.2em', + blockquote: 'background-color:#f6f6f6;border-left:3px solid #dbdbdb;color:#6c6c6c;padding:5px 0 5px 10px', + caption: 'display:table-caption;text-align:center', + center: 'text-align:center', + cite: 'font-style:italic', + dd: 'margin-left:40px', + mark: 'background-color:yellow', + pre: 'font-family:monospace;white-space:pre;overflow:scroll', + s: 'text-decoration:line-through', + small: 'display:inline;font-size:0.8em', + u: 'text-decoration:underline' + } +} + +function makeMap(str) { + var map = Object.create(null), + list = str.split(','); + for (var i = list.length; i--;) + map[list[i]] = true; + return map; +} + +// #ifdef MP-WEIXIN +if (wx.canIUse('editor')) { + cfg.blockTags.pre = void 0; + cfg.ignoreTags.rp = true; + Object.assign(cfg.richOnlyTags, makeMap('bdi,bdo,caption,rt,ruby')); + Object.assign(cfg.trustTags, makeMap('bdi,bdo,caption,pre,rt,ruby')); +} +// #endif + +// #ifdef APP-PLUS +cfg.ignoreTags.iframe = void 0; +Object.assign(cfg.trustTags, makeMap('embed,iframe')); +// #endif + +module.exports = cfg; diff --git a/components/jyf-parser/libs/handler.wxs b/components/jyf-parser/libs/handler.wxs new file mode 100755 index 0000000..d3b1aaa --- /dev/null +++ b/components/jyf-parser/libs/handler.wxs @@ -0,0 +1,22 @@ +var inline = { + abbr: 1, + b: 1, + big: 1, + code: 1, + del: 1, + em: 1, + i: 1, + ins: 1, + label: 1, + q: 1, + small: 1, + span: 1, + strong: 1, + sub: 1, + sup: 1 +} +module.exports = { + use: function(item) { + return !item.c && !inline[item.name] && (item.attrs.style || '').indexOf('display:inline') == -1 + } +} diff --git a/components/jyf-parser/libs/trees.vue b/components/jyf-parser/libs/trees.vue new file mode 100755 index 0000000..9c4d68b --- /dev/null +++ b/components/jyf-parser/libs/trees.vue @@ -0,0 +1,506 @@ +