From d2f735d2f6f45ada2dece4fc4354ab1985470a5e Mon Sep 17 00:00:00 2001 From: lixin Date: Thu, 9 Jan 2025 16:16:11 +0800 Subject: [PATCH] init --- .gitignore | 31 + .hbuilderx/launch.json | 36 + .hintrc | 8 + .prettierrc | 8 + App.vue | 32 + README.md | 67 + androidPrivacy.json | 3 + build/cool/eps.d.ts | 1687 +++++++++++++++++ build/cool/eps.json | 1 + components/address/item.vue | 71 + components/address/select.vue | 150 ++ components/agree-btn.vue | 58 + components/coupon/get.vue | 166 ++ components/coupon/item/bg.png | Bin 0 -> 17704 bytes components/coupon/item/index.vue | 168 ++ components/coupon/select.vue | 134 ++ components/goods/cover.vue | 96 + components/goods/group.vue | 202 ++ components/goods/item.vue | 68 + components/goods/spec.vue | 393 ++++ components/sms-btn.vue | 229 +++ config/dev.ts | 17 + config/index.ts | 40 + config/prod.ts | 18 + config/proxy.ts | 13 + cool/bootstrap/eps.ts | 138 ++ cool/bootstrap/index.ts | 15 + cool/bootstrap/modules.ts | 38 + cool/hooks/app.ts | 28 + cool/hooks/comm.ts | 11 + cool/hooks/hmr.ts | 23 + cool/hooks/index.ts | 21 + cool/hooks/pager.ts | 168 ++ cool/hooks/wx.ts | 288 +++ cool/index.ts | 9 + cool/module/index.ts | 21 + cool/router/index.ts | 325 ++++ cool/service/base.ts | 123 ++ cool/service/index.ts | 9 + cool/service/request.ts | 132 ++ cool/service/sign.ts | 22 + cool/store/dict.ts | 66 + cool/store/index.ts | 9 + cool/store/user.ts | 94 + cool/types/index.d.ts | 43 + cool/upload/comm.ts | 48 + cool/upload/index.ts | 141 ++ cool/utils/canvas.ts | 603 ++++++ cool/utils/comm.ts | 163 ++ cool/utils/index.ts | 4 + cool/utils/storage.ts | 75 + cool/utils/ui.ts | 78 + hooks/index.ts | 29 + hooks/order.ts | 47 + hooks/shopping-cart.ts | 70 + hooks/spec.ts | 115 ++ index.html | 14 + main.js | 18 + manifest.json | 174 ++ package.json | 29 + pages.json | 268 +++ pages/goods/comment.vue | 57 + pages/goods/components/comment-item.vue | 81 + pages/goods/components/filter-bar.vue | 350 ++++ pages/goods/components/goods-comment.vue | 90 + pages/goods/components/goods-detail.vue | 36 + pages/goods/components/goods-info.vue | 158 ++ pages/goods/detail.vue | 250 +++ pages/goods/list.vue | 84 + pages/goods/search.vue | 164 ++ pages/index/category.vue | 243 +++ pages/index/components/banner.vue | 57 + pages/index/components/coupon-activity.vue | 179 ++ pages/index/components/hot-category.vue | 93 + pages/index/components/tabbar.vue | 146 ++ pages/index/home.vue | 147 ++ pages/index/my.vue | 298 +++ pages/index/shopping-cart.vue | 239 +++ pages/market/coupon.vue | 40 + pages/order/comment.vue | 99 + pages/order/components/cancel.vue | 113 ++ pages/order/components/comment.vue | 121 ++ pages/order/components/op-btns.vue | 41 + pages/order/components/op.vue | 80 + pages/order/components/pay.vue | 110 ++ pages/order/components/status-tag.vue | 23 + pages/order/detail.vue | 231 +++ pages/order/dict/index.ts | 92 + pages/order/list.vue | 240 +++ pages/order/logistics.vue | 108 ++ pages/order/refund.vue | 126 ++ pages/order/submit.vue | 209 ++ pages/user/about.vue | 57 + pages/user/address-edit.vue | 151 ++ pages/user/address-list.vue | 116 ++ pages/user/captcha.vue | 132 ++ pages/user/doc.vue | 37 + pages/user/edit.vue | 67 + pages/user/login.vue | 473 +++++ pages/user/set.vue | 154 ++ pages/user/static/icon/apple.png | Bin 0 -> 1568 bytes pages/user/static/icon/phone.png | Bin 0 -> 622 bytes pages/user/static/icon/wx.png | Bin 0 -> 2017 bytes router/index.ts | 27 + service/test.ts | 6 + static/css/common.scss | 47 + static/css/iconfont/font.ttf | Bin 0 -> 10168 bytes static/css/iconfont/font.woff | Bin 0 -> 6332 bytes static/css/iconfont/font.woff2 | Bin 0 -> 5416 bytes static/css/iconfont/index.scss | 134 ++ static/css/index.scss | 43 + static/empty/address.png | Bin 0 -> 27564 bytes static/empty/comm.png | Bin 0 -> 21205 bytes static/empty/coupon.png | Bin 0 -> 27948 bytes static/empty/message.png | Bin 0 -> 18895 bytes static/empty/network.png | Bin 0 -> 26563 bytes static/empty/order.png | Bin 0 -> 19039 bytes static/empty/spopping-cart.png | Bin 0 -> 27317 bytes static/icon/alipay.png | Bin 0 -> 995 bytes static/icon/tabbar/category.png | Bin 0 -> 2869 bytes static/icon/tabbar/category2.png | Bin 0 -> 2909 bytes static/icon/tabbar/home.png | Bin 0 -> 2207 bytes static/icon/tabbar/home2.png | Bin 0 -> 2201 bytes static/icon/tabbar/my.png | Bin 0 -> 2757 bytes static/icon/tabbar/my2.png | Bin 0 -> 2729 bytes static/icon/tabbar/shopping-cart.png | Bin 0 -> 1824 bytes static/icon/tabbar/shopping-cart2.png | Bin 0 -> 1812 bytes static/icon/wxpay.png | Bin 0 -> 914 bytes static/logo.png | Bin 0 -> 39386 bytes tsconfig.json | 21 + types/env.d.ts | 15 + types/shop.d.ts | 36 + uni.scss | 77 + .../cl-version-about/cl-version-about.vue | 32 + .../cl-version-upgrade/cl-version-upgrade.vue | 119 ++ uni_modules/cool-app/config.ts | 14 + uni_modules/cool-app/hooks/cache.ts | 46 + uni_modules/cool-app/hooks/index.ts | 2 + uni_modules/cool-app/hooks/version.ts | 171 ++ uni_modules/cool-app/index.ts | 2 + .../cool-app/pages/complain/detail.vue | 100 + uni_modules/cool-app/pages/complain/list.vue | 75 + .../cool-app/pages/complain/submit.vue | 116 ++ .../cool-app/pages/feedback/detail.vue | 91 + uni_modules/cool-app/pages/feedback/list.vue | 75 + .../cool-app/pages/feedback/submit.vue | 116 ++ uni_modules/cool-app/pages/version/demo.vue | 38 + uni_modules/cool-app/pages_init.json | 51 + uni_modules/cool-app/static/bg.png | Bin 0 -> 77218 bytes uni_modules/cool-app/utils/index.ts | 97 + uni_modules/cool-cs/components/msg-item.vue | 187 ++ uni_modules/cool-cs/components/msg-list.vue | 132 ++ .../cool-cs/components/tools/emoji.vue | 142 ++ uni_modules/cool-cs/components/tools/fn.vue | 85 + .../cool-cs/components/tools/index.vue | 40 + uni_modules/cool-cs/config.ts | 14 + uni_modules/cool-cs/hooks/index.ts | 4 + uni_modules/cool-cs/hooks/message.ts | 120 ++ uni_modules/cool-cs/hooks/session.ts | 24 + uni_modules/cool-cs/hooks/socket.ts | 96 + uni_modules/cool-cs/hooks/tools.ts | 61 + uni_modules/cool-cs/pages/chat.vue | 142 ++ uni_modules/cool-cs/pages_init.json | 15 + uni_modules/cool-cs/static/add.png | Bin 0 -> 2068 bytes uni_modules/cool-cs/static/emoji.png | Bin 0 -> 2255 bytes .../cool-cs/static/emoji/angry-face.png | Bin 0 -> 3669 bytes .../cool-cs/static/emoji/anguished-face.png | Bin 0 -> 3584 bytes .../cool-cs/static/emoji/astonished-face.png | Bin 0 -> 3584 bytes .../cool-cs/static/emoji/confounded-face.png | Bin 0 -> 3683 bytes .../cool-cs/static/emoji/confused-face.png | Bin 0 -> 3670 bytes .../cool-cs/static/emoji/crying-face.png | Bin 0 -> 3824 bytes .../emoji/disappointed-but-relieved-face.png | Bin 0 -> 3709 bytes .../static/emoji/disappointed-face.png | Bin 0 -> 3584 bytes .../cool-cs/static/emoji/dizzy-face.png | Bin 0 -> 3683 bytes .../cool-cs/static/emoji/drooling-face.png | Bin 0 -> 3552 bytes .../static/emoji/expressionless-face.png | Bin 0 -> 3553 bytes .../emoji/face-savouring-delicious-food.png | Bin 0 -> 3701 bytes .../static/emoji/face-screaming-in-fear.png | Bin 0 -> 3672 bytes .../static/emoji/face-throwing-a-kiss.png | Bin 0 -> 3744 bytes .../static/emoji/face-with-cold-sweat.png | Bin 0 -> 3545 bytes .../static/emoji/face-with-cowboy-hat.png | Bin 0 -> 3683 bytes .../face-with-finger-covering-closed-lips.png | Bin 0 -> 3797 bytes .../static/emoji/face-with-head-bandage.png | Bin 0 -> 3586 bytes .../emoji/face-with-look-of-triumph.png | Bin 0 -> 3809 bytes .../static/emoji/face-with-medical-mask.png | Bin 0 -> 3684 bytes .../static/emoji/face-with-monocle.png | Bin 0 -> 3609 bytes .../emoji/face-with-one-eyebrow-raised.png | Bin 0 -> 3483 bytes .../face-with-open-mouth-and-cold-sweat.png | Bin 0 -> 3377 bytes .../emoji/face-with-open-mouth-vomiting.png | Bin 0 -> 4011 bytes .../static/emoji/face-with-open-mouth.png | Bin 0 -> 3667 bytes .../face-with-party-horn-and-party-hat.png | Bin 0 -> 3971 bytes .../static/emoji/face-with-pleading-eyes.png | Bin 0 -> 3498 bytes .../static/emoji/face-with-rolling-eyes.png | Bin 0 -> 3461 bytes ...uck-out-tongue-and-tightly-closed-eyes.png | Bin 0 -> 3622 bytes ...-with-stuck-out-tongue-and-winking-eye.png | Bin 0 -> 3561 bytes .../emoji/face-with-stuck-out-tongue.png | Bin 0 -> 3535 bytes .../static/emoji/face-with-thermometer.png | Bin 0 -> 3560 bytes .../face-with-uneven-eyes-and-wavy-mouth.png | Bin 0 -> 3640 bytes .../static/emoji/face-without-mouth.png | Bin 0 -> 3664 bytes .../cool-cs/static/emoji/fearful-face.png | Bin 0 -> 3366 bytes .../cool-cs/static/emoji/flushed-face.png | Bin 0 -> 3611 bytes .../cool-cs/static/emoji/freezing-face.png | Bin 0 -> 3615 bytes .../emoji/frowning-face-with-open-mouth.png | Bin 0 -> 3666 bytes .../cool-cs/static/emoji/grimacing-face.png | Bin 0 -> 3695 bytes ...-face-with-one-large-and-one-small-eye.png | Bin 0 -> 3719 bytes .../emoji/grinning-face-with-smiling-eyes.png | Bin 0 -> 3677 bytes .../emoji/grinning-face-with-star-eyes.png | Bin 0 -> 3888 bytes .../cool-cs/static/emoji/grinning-face.png | Bin 0 -> 3675 bytes .../cool-cs/static/emoji/hugging-face.png | Bin 0 -> 4061 bytes .../cool-cs/static/emoji/hushed-face.png | Bin 0 -> 3548 bytes uni_modules/cool-cs/static/emoji/imp.png | Bin 0 -> 3972 bytes .../emoji/kissing-face-with-closed-eyes.png | Bin 0 -> 3613 bytes .../emoji/kissing-face-with-smiling-eyes.png | Bin 0 -> 3633 bytes .../cool-cs/static/emoji/kissing-face.png | Bin 0 -> 3589 bytes .../static/emoji/loudly-crying-face.png | Bin 0 -> 3671 bytes .../cool-cs/static/emoji/lying-face.png | Bin 0 -> 3755 bytes .../cool-cs/static/emoji/money-mouth-face.png | Bin 0 -> 3680 bytes .../cool-cs/static/emoji/nauseated-face.png | Bin 0 -> 3759 bytes .../cool-cs/static/emoji/nerd-face.png | Bin 0 -> 3673 bytes .../cool-cs/static/emoji/neutral-face.png | Bin 0 -> 3603 bytes .../cool-cs/static/emoji/overheated-face.png | Bin 0 -> 3440 bytes .../cool-cs/static/emoji/pensive-face.png | Bin 0 -> 3672 bytes .../cool-cs/static/emoji/persevering-face.png | Bin 0 -> 3628 bytes .../cool-cs/static/emoji/pouting-face.png | Bin 0 -> 3643 bytes .../cool-cs/static/emoji/relieved-face.png | Bin 0 -> 3716 bytes .../emoji/rolling-on-the-floor-laughing.png | Bin 0 -> 3698 bytes ...rious-face-with-symbols-covering-mouth.png | Bin 0 -> 3580 bytes .../shocked-face-with-exploding-head.png | Bin 0 -> 4401 bytes .../cool-cs/static/emoji/sleeping-face.png | Bin 0 -> 3525 bytes .../cool-cs/static/emoji/sleepy-face.png | Bin 0 -> 3477 bytes .../static/emoji/slightly-frowning-face.png | Bin 0 -> 3675 bytes .../static/emoji/slightly-smiling-face.png | Bin 0 -> 3737 bytes .../static/emoji/smiling-face-with-halo.png | Bin 0 -> 3981 bytes .../smiling-face-with-heart-shaped-eyes.png | Bin 0 -> 3690 bytes .../static/emoji/smiling-face-with-horns.png | Bin 0 -> 3957 bytes ...-face-with-open-mouth-and-smiling-eyes.png | Bin 0 -> 3710 bytes ...ith-open-mouth-and-tightly-closed-eyes.png | Bin 0 -> 3746 bytes .../emoji/smiling-face-with-open-mouth.png | Bin 0 -> 3581 bytes ...h-smiling-eyes-and-hand-covering-mouth.png | Bin 0 -> 3807 bytes ...ace-with-smiling-eyes-and-three-hearts.png | Bin 0 -> 3986 bytes .../emoji/smiling-face-with-smiling-eyes.png | Bin 0 -> 3684 bytes .../emoji/smiling-face-with-sunglasses.png | Bin 0 -> 3633 bytes .../cool-cs/static/emoji/smirking-face.png | Bin 0 -> 3566 bytes .../cool-cs/static/emoji/sneezing-face.png | Bin 0 -> 3686 bytes .../cool-cs/static/emoji/thinking-face.png | Bin 0 -> 3763 bytes .../cool-cs/static/emoji/tired-face.png | Bin 0 -> 3683 bytes .../cool-cs/static/emoji/upside-down-face.png | Bin 0 -> 3688 bytes .../cool-cs/static/emoji/weary-face.png | Bin 0 -> 3726 bytes .../static/emoji/white-frowning-face.png | Bin 0 -> 3590 bytes .../static/emoji/white-smiling-face.png | Bin 0 -> 3576 bytes .../cool-cs/static/emoji/winking-face.png | Bin 0 -> 3742 bytes .../cool-cs/static/emoji/worried-face.png | Bin 0 -> 3655 bytes .../static/emoji/zipper-mouth-face.png | Bin 0 -> 3747 bytes uni_modules/cool-cs/static/fn-camera.png | Bin 0 -> 861 bytes uni_modules/cool-cs/static/fn-pic.png | Bin 0 -> 773 bytes uni_modules/cool-cs/static/minus.png | Bin 0 -> 2250 bytes uni_modules/cool-cs/static/plus.png | Bin 0 -> 2068 bytes uni_modules/cool-cs/types/index.d.ts | 16 + uni_modules/cool-cs/utils/index.ts | 13 + uni_modules/cool-ui/changelog.md | 16 + .../cl-action-sheet/cl-action-sheet.vue | 132 ++ .../cl-avatar-group/cl-avatar-group.vue | 61 + .../components/cl-avatar/cl-avatar.vue | 101 + .../cool-ui/components/cl-badge/cl-badge.vue | 77 + .../components/cl-banner/cl-banner.vue | 280 +++ .../components/cl-button/cl-button.vue | 179 ++ .../components/cl-captcha/cl-captcha.vue | 123 ++ .../cool-ui/components/cl-card/cl-card.vue | 67 + .../cl-checkbox-group/cl-checkbox-group.vue | 61 + .../components/cl-checkbox/cl-checkbox.vue | 148 ++ .../cool-ui/components/cl-col/cl-col.vue | 65 + .../components/cl-confirm/cl-confirm.vue | 173 ++ .../components/cl-countdown/cl-countdown.vue | 273 +++ .../components/cl-dialog/cl-dialog.vue | 110 ++ .../components/cl-divider/cl-divider.vue | 53 + .../cool-ui/components/cl-empty/cl-empty.vue | 67 + .../cl-filter-bar/cl-filter-bar.vue | 124 ++ .../cl-filter-item/cl-filter-item.vue | 343 ++++ .../components/cl-footer/cl-footer.vue | 154 ++ .../components/cl-form-item/cl-form-item.vue | 286 +++ .../cool-ui/components/cl-form/cl-form.vue | 244 +++ .../components/cl-grid-item/cl-grid-item.vue | 28 + .../cool-ui/components/cl-grid/cl-grid.vue | 31 + .../cool-ui/components/cl-guide/cl-guide.vue | 321 ++++ .../cool-ui/components/cl-icon/cl-icon.vue | 39 + .../cool-ui/components/cl-image/cl-image.vue | 178 ++ .../cl-input-number/cl-input-number.vue | 206 ++ .../cool-ui/components/cl-input/cl-input.vue | 238 +++ .../cl-list-index/cl-list-index.vue | 455 +++++ .../components/cl-list-item/cl-list-item.vue | 258 +++ .../cool-ui/components/cl-list/cl-list.vue | 33 + .../cl-loading-mask/cl-loading-mask.vue | 64 + .../components/cl-loading/cl-loading.vue | 29 + .../components/cl-loadmore/cl-loadmore.vue | 79 + .../components/cl-noticebar/cl-noticebar.vue | 220 +++ .../cool-ui/components/cl-page/cl-page.vue | 231 +++ uni_modules/cool-ui/components/cl-pay/ali.png | Bin 0 -> 4606 bytes .../cool-ui/components/cl-pay/cl-pay.vue | 86 + uni_modules/cool-ui/components/cl-pay/wx.png | Bin 0 -> 4816 bytes .../cool-ui/components/cl-popup/cl-popup.vue | 295 +++ .../components/cl-progress/cl-progress.vue | 101 + .../cl-radio-group/cl-radio-group.vue | 48 + .../cool-ui/components/cl-radio/cl-radio.vue | 149 ++ .../cool-ui/components/cl-rate/cl-rate.vue | 138 ++ .../cool-ui/components/cl-row/cl-row.vue | 79 + .../components/cl-scroller/cl-scroller.vue | 261 +++ .../components/cl-search/cl-search.vue | 207 ++ .../cl-select-city/cl-select-city.vue | 305 +++ .../cl-select-date/cl-select-date.vue | 280 +++ .../cl-select-inner/cl-select-inner.vue | 53 + .../components/cl-select-inner/config.ts | 35 + .../cl-select-popup/cl-select-popup.vue | 298 +++ .../cl-select-region/cl-select-region.vue | 145 ++ .../components/cl-select/cl-select.vue | 236 +++ .../components/cl-service/cl-service.vue | 77 + .../cl-share-popup/cl-share-popup.vue | 72 + .../cool-ui/components/cl-share/alipay.png | Bin 0 -> 4606 bytes .../cool-ui/components/cl-share/cl-share.vue | 130 ++ .../cool-ui/components/cl-share/qq.png | Bin 0 -> 4047 bytes .../cool-ui/components/cl-share/wx.png | Bin 0 -> 4816 bytes .../cool-ui/components/cl-share/wx2.png | Bin 0 -> 5545 bytes .../components/cl-skeleton/cl-skeleton.vue | 39 + .../components/cl-slider/cl-slider.vue | 110 ++ .../cl-status-bar/cl-status-bar.vue | 64 + .../components/cl-sticky/cl-sticky.vue | 69 + .../components/cl-switch/cl-switch.vue | 64 + .../cool-ui/components/cl-tabs/cl-tabs.vue | 367 ++++ .../cool-ui/components/cl-tag/cl-tag.vue | 80 + .../cool-ui/components/cl-text/cl-text.vue | 167 ++ .../components/cl-textarea/cl-textarea.vue | 201 ++ .../cl-timeline-item/cl-timeline-item.vue | 89 + .../components/cl-timeline/cl-timeline.vue | 21 + .../cool-ui/components/cl-toast/cl-toast.vue | 144 ++ .../components/cl-topbar/cl-topbar.vue | 139 ++ .../components/cl-tree-item/cl-tree-item.vue | 238 +++ .../cl-tree-select/cl-tree-select.vue | 114 ++ .../cool-ui/components/cl-tree/cl-tree.vue | 30 + .../cool-ui/components/cl-tree/helper.ts | 158 ++ .../components/cl-upload/cl-upload.vue | 345 ++++ .../cool-ui/components/cl-video/cl-video.vue | 208 ++ .../cl-waterfall-column.vue | 53 + .../components/cl-waterfall/cl-waterfall.vue | 225 +++ uni_modules/cool-ui/config.ts | 7 + uni_modules/cool-ui/data/city-pca.json | 1 + uni_modules/cool-ui/hooks/index.ts | 31 + uni_modules/cool-ui/hooks/style.ts | 80 + uni_modules/cool-ui/index.scss | 2 + uni_modules/cool-ui/index.ts | 23 + uni_modules/cool-ui/readme.md | 3 + .../cool-ui/static/css/action-sheet.scss | 50 + uni_modules/cool-ui/static/css/avatar.scss | 70 + uni_modules/cool-ui/static/css/badge.scss | 58 + uni_modules/cool-ui/static/css/banner.scss | 147 ++ uni_modules/cool-ui/static/css/button.scss | 140 ++ uni_modules/cool-ui/static/css/captcha.scss | 58 + uni_modules/cool-ui/static/css/card.scss | 49 + uni_modules/cool-ui/static/css/checkbox.scss | 118 ++ uni_modules/cool-ui/static/css/col.scss | 48 + uni_modules/cool-ui/static/css/column.scss | 29 + uni_modules/cool-ui/static/css/common.scss | 8 + uni_modules/cool-ui/static/css/confirm.scss | 63 + uni_modules/cool-ui/static/css/countdown.scss | 13 + uni_modules/cool-ui/static/css/dialog.scss | 49 + uni_modules/cool-ui/static/css/divider.scss | 28 + uni_modules/cool-ui/static/css/empty.scss | 31 + .../cool-ui/static/css/filter-bar.scss | 225 +++ uni_modules/cool-ui/static/css/footer.scss | 38 + uni_modules/cool-ui/static/css/form.scss | 86 + uni_modules/cool-ui/static/css/grid.scss | 49 + uni_modules/cool-ui/static/css/guide.scss | 72 + uni_modules/cool-ui/static/css/icon.scss | 25 + uni_modules/cool-ui/static/css/image.scss | 64 + uni_modules/cool-ui/static/css/index.scss | 60 + .../cool-ui/static/css/input-number.scss | 93 + uni_modules/cool-ui/static/css/input.scss | 123 ++ .../cool-ui/static/css/list-index.scss | 133 ++ uni_modules/cool-ui/static/css/list.scss | 184 ++ .../cool-ui/static/css/loading-mask.scss | 69 + uni_modules/cool-ui/static/css/loading.scss | 16 + uni_modules/cool-ui/static/css/loadmore.scss | 12 + uni_modules/cool-ui/static/css/noticebar.scss | 54 + uni_modules/cool-ui/static/css/page.scss | 24 + uni_modules/cool-ui/static/css/pay.scss | 43 + uni_modules/cool-ui/static/css/popup.scss | 120 ++ uni_modules/cool-ui/static/css/progress.scss | 74 + uni_modules/cool-ui/static/css/radio.scss | 124 ++ uni_modules/cool-ui/static/css/rate.scss | 22 + uni_modules/cool-ui/static/css/row.scss | 59 + uni_modules/cool-ui/static/css/scroller.scss | 54 + uni_modules/cool-ui/static/css/search.scss | 53 + .../cool-ui/static/css/select-city.scss | 49 + .../cool-ui/static/css/select-date.scss | 12 + .../cool-ui/static/css/select-inner.scss | 53 + .../cool-ui/static/css/select-popup.scss | 38 + uni_modules/cool-ui/static/css/select.scss | 3 + uni_modules/cool-ui/static/css/share.scss | 55 + uni_modules/cool-ui/static/css/skeleton.scss | 23 + .../cool-ui/static/css/status-bar.scss | 15 + uni_modules/cool-ui/static/css/steps.scss | 61 + uni_modules/cool-ui/static/css/sticky.scss | 16 + uni_modules/cool-ui/static/css/switch.scss | 25 + uni_modules/cool-ui/static/css/tabs.scss | 127 ++ uni_modules/cool-ui/static/css/tag.scss | 67 + uni_modules/cool-ui/static/css/text.scss | 89 + uni_modules/cool-ui/static/css/textarea.scss | 33 + uni_modules/cool-ui/static/css/timeline.scss | 89 + uni_modules/cool-ui/static/css/toast.scss | 60 + uni_modules/cool-ui/static/css/topbar.scss | 99 + uni_modules/cool-ui/static/css/tree.scss | 66 + uni_modules/cool-ui/static/css/upload.scss | 88 + uni_modules/cool-ui/static/css/video.scss | 4 + uni_modules/cool-ui/static/css/waterfall.scss | 15 + uni_modules/cool-ui/static/iconfont/font.ttf | Bin 0 -> 27012 bytes uni_modules/cool-ui/static/iconfont/font.woff | Bin 0 -> 14724 bytes .../cool-ui/static/iconfont/font.woff2 | Bin 0 -> 12440 bytes .../cool-ui/static/iconfont/index.scss | 434 +++++ uni_modules/cool-ui/theme.scss | 38 + uni_modules/cool-ui/types/action-sheet.d.ts | 38 + uni_modules/cool-ui/types/confirm.d.ts | 25 + uni_modules/cool-ui/types/form.d.ts | 12 + uni_modules/cool-ui/types/index.d.ts | 18 + uni_modules/cool-ui/types/list-index.d.ts | 19 + uni_modules/cool-ui/types/loading.d.ts | 8 + uni_modules/cool-ui/types/page.d.ts | 8 + uni_modules/cool-ui/types/pay.d.ts | 18 + uni_modules/cool-ui/types/share.d.ts | 25 + uni_modules/cool-ui/types/timeline.d.ts | 10 + uni_modules/cool-ui/types/toast.d.ts | 24 + uni_modules/cool-ui/types/tree.d.ts | 15 + uni_modules/cool-ui/types/waterfall.d.ts | 8 + uni_modules/cool-ui/utils/async-validator.ts | 1409 ++++++++++++++ uni_modules/cool-ui/utils/index.ts | 36 + uni_modules/mp-html/README.md | 193 ++ uni_modules/mp-html/changelog.md | 138 ++ .../mp-html/components/mp-html/mp-html.vue | 498 +++++ .../mp-html/components/mp-html/node/node.vue | 579 ++++++ .../mp-html/components/mp-html/parser.js | 1372 ++++++++++++++ uni_modules/mp-html/package.json | 76 + .../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 + vite.config.ts | 30 + 442 files changed, 35859 insertions(+) create mode 100644 .gitignore create mode 100644 .hbuilderx/launch.json create mode 100644 .hintrc create mode 100644 .prettierrc create mode 100644 App.vue create mode 100644 README.md create mode 100644 androidPrivacy.json create mode 100644 build/cool/eps.d.ts create mode 100644 build/cool/eps.json create mode 100644 components/address/item.vue create mode 100644 components/address/select.vue create mode 100644 components/agree-btn.vue create mode 100644 components/coupon/get.vue create mode 100644 components/coupon/item/bg.png create mode 100644 components/coupon/item/index.vue create mode 100644 components/coupon/select.vue create mode 100644 components/goods/cover.vue create mode 100644 components/goods/group.vue create mode 100644 components/goods/item.vue create mode 100644 components/goods/spec.vue create mode 100644 components/sms-btn.vue create mode 100644 config/dev.ts create mode 100644 config/index.ts create mode 100644 config/prod.ts create mode 100644 config/proxy.ts create mode 100644 cool/bootstrap/eps.ts create mode 100644 cool/bootstrap/index.ts create mode 100644 cool/bootstrap/modules.ts create mode 100644 cool/hooks/app.ts create mode 100644 cool/hooks/comm.ts create mode 100644 cool/hooks/hmr.ts create mode 100644 cool/hooks/index.ts create mode 100644 cool/hooks/pager.ts create mode 100644 cool/hooks/wx.ts create mode 100644 cool/index.ts create mode 100644 cool/module/index.ts create mode 100644 cool/router/index.ts create mode 100644 cool/service/base.ts create mode 100644 cool/service/index.ts create mode 100644 cool/service/request.ts create mode 100644 cool/service/sign.ts create mode 100644 cool/store/dict.ts create mode 100644 cool/store/index.ts create mode 100644 cool/store/user.ts create mode 100644 cool/types/index.d.ts create mode 100644 cool/upload/comm.ts create mode 100644 cool/upload/index.ts create mode 100644 cool/utils/canvas.ts create mode 100644 cool/utils/comm.ts create mode 100644 cool/utils/index.ts create mode 100644 cool/utils/storage.ts create mode 100644 cool/utils/ui.ts create mode 100644 hooks/index.ts create mode 100644 hooks/order.ts create mode 100644 hooks/shopping-cart.ts create mode 100644 hooks/spec.ts create mode 100644 index.html create mode 100644 main.js create mode 100644 manifest.json create mode 100644 package.json create mode 100644 pages.json create mode 100644 pages/goods/comment.vue create mode 100644 pages/goods/components/comment-item.vue create mode 100644 pages/goods/components/filter-bar.vue create mode 100644 pages/goods/components/goods-comment.vue create mode 100644 pages/goods/components/goods-detail.vue create mode 100644 pages/goods/components/goods-info.vue create mode 100644 pages/goods/detail.vue create mode 100644 pages/goods/list.vue create mode 100644 pages/goods/search.vue create mode 100644 pages/index/category.vue create mode 100644 pages/index/components/banner.vue create mode 100644 pages/index/components/coupon-activity.vue create mode 100644 pages/index/components/hot-category.vue create mode 100644 pages/index/components/tabbar.vue create mode 100644 pages/index/home.vue create mode 100644 pages/index/my.vue create mode 100644 pages/index/shopping-cart.vue create mode 100644 pages/market/coupon.vue create mode 100644 pages/order/comment.vue create mode 100644 pages/order/components/cancel.vue create mode 100644 pages/order/components/comment.vue create mode 100644 pages/order/components/op-btns.vue create mode 100644 pages/order/components/op.vue create mode 100644 pages/order/components/pay.vue create mode 100644 pages/order/components/status-tag.vue create mode 100644 pages/order/detail.vue create mode 100644 pages/order/dict/index.ts create mode 100644 pages/order/list.vue create mode 100644 pages/order/logistics.vue create mode 100644 pages/order/refund.vue create mode 100644 pages/order/submit.vue create mode 100644 pages/user/about.vue create mode 100644 pages/user/address-edit.vue create mode 100644 pages/user/address-list.vue create mode 100644 pages/user/captcha.vue create mode 100644 pages/user/doc.vue create mode 100644 pages/user/edit.vue create mode 100644 pages/user/login.vue create mode 100644 pages/user/set.vue create mode 100644 pages/user/static/icon/apple.png create mode 100644 pages/user/static/icon/phone.png create mode 100644 pages/user/static/icon/wx.png create mode 100644 router/index.ts create mode 100644 service/test.ts create mode 100644 static/css/common.scss create mode 100644 static/css/iconfont/font.ttf create mode 100644 static/css/iconfont/font.woff create mode 100644 static/css/iconfont/font.woff2 create mode 100644 static/css/iconfont/index.scss create mode 100644 static/css/index.scss create mode 100644 static/empty/address.png create mode 100644 static/empty/comm.png create mode 100644 static/empty/coupon.png create mode 100644 static/empty/message.png create mode 100644 static/empty/network.png create mode 100644 static/empty/order.png create mode 100644 static/empty/spopping-cart.png create mode 100644 static/icon/alipay.png create mode 100644 static/icon/tabbar/category.png create mode 100644 static/icon/tabbar/category2.png create mode 100644 static/icon/tabbar/home.png create mode 100644 static/icon/tabbar/home2.png create mode 100644 static/icon/tabbar/my.png create mode 100644 static/icon/tabbar/my2.png create mode 100644 static/icon/tabbar/shopping-cart.png create mode 100644 static/icon/tabbar/shopping-cart2.png create mode 100644 static/icon/wxpay.png create mode 100644 static/logo.png create mode 100644 tsconfig.json create mode 100644 types/env.d.ts create mode 100644 types/shop.d.ts create mode 100644 uni.scss create mode 100644 uni_modules/cool-app/components/cl-version-about/cl-version-about.vue create mode 100644 uni_modules/cool-app/components/cl-version-upgrade/cl-version-upgrade.vue create mode 100644 uni_modules/cool-app/config.ts create mode 100644 uni_modules/cool-app/hooks/cache.ts create mode 100644 uni_modules/cool-app/hooks/index.ts create mode 100644 uni_modules/cool-app/hooks/version.ts create mode 100644 uni_modules/cool-app/index.ts create mode 100644 uni_modules/cool-app/pages/complain/detail.vue create mode 100644 uni_modules/cool-app/pages/complain/list.vue create mode 100644 uni_modules/cool-app/pages/complain/submit.vue create mode 100644 uni_modules/cool-app/pages/feedback/detail.vue create mode 100644 uni_modules/cool-app/pages/feedback/list.vue create mode 100644 uni_modules/cool-app/pages/feedback/submit.vue create mode 100644 uni_modules/cool-app/pages/version/demo.vue create mode 100644 uni_modules/cool-app/pages_init.json create mode 100644 uni_modules/cool-app/static/bg.png create mode 100644 uni_modules/cool-app/utils/index.ts create mode 100644 uni_modules/cool-cs/components/msg-item.vue create mode 100644 uni_modules/cool-cs/components/msg-list.vue create mode 100644 uni_modules/cool-cs/components/tools/emoji.vue create mode 100644 uni_modules/cool-cs/components/tools/fn.vue create mode 100644 uni_modules/cool-cs/components/tools/index.vue create mode 100644 uni_modules/cool-cs/config.ts create mode 100644 uni_modules/cool-cs/hooks/index.ts create mode 100644 uni_modules/cool-cs/hooks/message.ts create mode 100644 uni_modules/cool-cs/hooks/session.ts create mode 100644 uni_modules/cool-cs/hooks/socket.ts create mode 100644 uni_modules/cool-cs/hooks/tools.ts create mode 100644 uni_modules/cool-cs/pages/chat.vue create mode 100644 uni_modules/cool-cs/pages_init.json create mode 100644 uni_modules/cool-cs/static/add.png create mode 100644 uni_modules/cool-cs/static/emoji.png create mode 100644 uni_modules/cool-cs/static/emoji/angry-face.png create mode 100644 uni_modules/cool-cs/static/emoji/anguished-face.png create mode 100644 uni_modules/cool-cs/static/emoji/astonished-face.png create mode 100644 uni_modules/cool-cs/static/emoji/confounded-face.png create mode 100644 uni_modules/cool-cs/static/emoji/confused-face.png create mode 100644 uni_modules/cool-cs/static/emoji/crying-face.png create mode 100644 uni_modules/cool-cs/static/emoji/disappointed-but-relieved-face.png create mode 100644 uni_modules/cool-cs/static/emoji/disappointed-face.png create mode 100644 uni_modules/cool-cs/static/emoji/dizzy-face.png create mode 100644 uni_modules/cool-cs/static/emoji/drooling-face.png create mode 100644 uni_modules/cool-cs/static/emoji/expressionless-face.png create mode 100644 uni_modules/cool-cs/static/emoji/face-savouring-delicious-food.png create mode 100644 uni_modules/cool-cs/static/emoji/face-screaming-in-fear.png create mode 100644 uni_modules/cool-cs/static/emoji/face-throwing-a-kiss.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-cold-sweat.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-cowboy-hat.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-finger-covering-closed-lips.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-head-bandage.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-look-of-triumph.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-medical-mask.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-monocle.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-one-eyebrow-raised.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-open-mouth-and-cold-sweat.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-open-mouth-vomiting.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-open-mouth.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-party-horn-and-party-hat.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-pleading-eyes.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-rolling-eyes.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-stuck-out-tongue-and-tightly-closed-eyes.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-stuck-out-tongue-and-winking-eye.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-stuck-out-tongue.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-thermometer.png create mode 100644 uni_modules/cool-cs/static/emoji/face-with-uneven-eyes-and-wavy-mouth.png create mode 100644 uni_modules/cool-cs/static/emoji/face-without-mouth.png create mode 100644 uni_modules/cool-cs/static/emoji/fearful-face.png create mode 100644 uni_modules/cool-cs/static/emoji/flushed-face.png create mode 100644 uni_modules/cool-cs/static/emoji/freezing-face.png create mode 100644 uni_modules/cool-cs/static/emoji/frowning-face-with-open-mouth.png create mode 100644 uni_modules/cool-cs/static/emoji/grimacing-face.png create mode 100644 uni_modules/cool-cs/static/emoji/grinning-face-with-one-large-and-one-small-eye.png create mode 100644 uni_modules/cool-cs/static/emoji/grinning-face-with-smiling-eyes.png create mode 100644 uni_modules/cool-cs/static/emoji/grinning-face-with-star-eyes.png create mode 100644 uni_modules/cool-cs/static/emoji/grinning-face.png create mode 100644 uni_modules/cool-cs/static/emoji/hugging-face.png create mode 100644 uni_modules/cool-cs/static/emoji/hushed-face.png create mode 100644 uni_modules/cool-cs/static/emoji/imp.png create mode 100644 uni_modules/cool-cs/static/emoji/kissing-face-with-closed-eyes.png create mode 100644 uni_modules/cool-cs/static/emoji/kissing-face-with-smiling-eyes.png create mode 100644 uni_modules/cool-cs/static/emoji/kissing-face.png create mode 100644 uni_modules/cool-cs/static/emoji/loudly-crying-face.png create mode 100644 uni_modules/cool-cs/static/emoji/lying-face.png create mode 100644 uni_modules/cool-cs/static/emoji/money-mouth-face.png create mode 100644 uni_modules/cool-cs/static/emoji/nauseated-face.png create mode 100644 uni_modules/cool-cs/static/emoji/nerd-face.png create mode 100644 uni_modules/cool-cs/static/emoji/neutral-face.png create mode 100644 uni_modules/cool-cs/static/emoji/overheated-face.png create mode 100644 uni_modules/cool-cs/static/emoji/pensive-face.png create mode 100644 uni_modules/cool-cs/static/emoji/persevering-face.png create mode 100644 uni_modules/cool-cs/static/emoji/pouting-face.png create mode 100644 uni_modules/cool-cs/static/emoji/relieved-face.png create mode 100644 uni_modules/cool-cs/static/emoji/rolling-on-the-floor-laughing.png create mode 100644 uni_modules/cool-cs/static/emoji/serious-face-with-symbols-covering-mouth.png create mode 100644 uni_modules/cool-cs/static/emoji/shocked-face-with-exploding-head.png create mode 100644 uni_modules/cool-cs/static/emoji/sleeping-face.png create mode 100644 uni_modules/cool-cs/static/emoji/sleepy-face.png create mode 100644 uni_modules/cool-cs/static/emoji/slightly-frowning-face.png create mode 100644 uni_modules/cool-cs/static/emoji/slightly-smiling-face.png create mode 100644 uni_modules/cool-cs/static/emoji/smiling-face-with-halo.png create mode 100644 uni_modules/cool-cs/static/emoji/smiling-face-with-heart-shaped-eyes.png create mode 100644 uni_modules/cool-cs/static/emoji/smiling-face-with-horns.png create mode 100644 uni_modules/cool-cs/static/emoji/smiling-face-with-open-mouth-and-smiling-eyes.png create mode 100644 uni_modules/cool-cs/static/emoji/smiling-face-with-open-mouth-and-tightly-closed-eyes.png create mode 100644 uni_modules/cool-cs/static/emoji/smiling-face-with-open-mouth.png create mode 100644 uni_modules/cool-cs/static/emoji/smiling-face-with-smiling-eyes-and-hand-covering-mouth.png create mode 100644 uni_modules/cool-cs/static/emoji/smiling-face-with-smiling-eyes-and-three-hearts.png create mode 100644 uni_modules/cool-cs/static/emoji/smiling-face-with-smiling-eyes.png create mode 100644 uni_modules/cool-cs/static/emoji/smiling-face-with-sunglasses.png create mode 100644 uni_modules/cool-cs/static/emoji/smirking-face.png create mode 100644 uni_modules/cool-cs/static/emoji/sneezing-face.png create mode 100644 uni_modules/cool-cs/static/emoji/thinking-face.png create mode 100644 uni_modules/cool-cs/static/emoji/tired-face.png create mode 100644 uni_modules/cool-cs/static/emoji/upside-down-face.png create mode 100644 uni_modules/cool-cs/static/emoji/weary-face.png create mode 100644 uni_modules/cool-cs/static/emoji/white-frowning-face.png create mode 100644 uni_modules/cool-cs/static/emoji/white-smiling-face.png create mode 100644 uni_modules/cool-cs/static/emoji/winking-face.png create mode 100644 uni_modules/cool-cs/static/emoji/worried-face.png create mode 100644 uni_modules/cool-cs/static/emoji/zipper-mouth-face.png create mode 100644 uni_modules/cool-cs/static/fn-camera.png create mode 100644 uni_modules/cool-cs/static/fn-pic.png create mode 100644 uni_modules/cool-cs/static/minus.png create mode 100644 uni_modules/cool-cs/static/plus.png create mode 100644 uni_modules/cool-cs/types/index.d.ts create mode 100644 uni_modules/cool-cs/utils/index.ts create mode 100644 uni_modules/cool-ui/changelog.md create mode 100644 uni_modules/cool-ui/components/cl-action-sheet/cl-action-sheet.vue create mode 100644 uni_modules/cool-ui/components/cl-avatar-group/cl-avatar-group.vue create mode 100644 uni_modules/cool-ui/components/cl-avatar/cl-avatar.vue create mode 100644 uni_modules/cool-ui/components/cl-badge/cl-badge.vue create mode 100644 uni_modules/cool-ui/components/cl-banner/cl-banner.vue create mode 100644 uni_modules/cool-ui/components/cl-button/cl-button.vue create mode 100644 uni_modules/cool-ui/components/cl-captcha/cl-captcha.vue create mode 100644 uni_modules/cool-ui/components/cl-card/cl-card.vue create mode 100644 uni_modules/cool-ui/components/cl-checkbox-group/cl-checkbox-group.vue create mode 100644 uni_modules/cool-ui/components/cl-checkbox/cl-checkbox.vue create mode 100644 uni_modules/cool-ui/components/cl-col/cl-col.vue create mode 100644 uni_modules/cool-ui/components/cl-confirm/cl-confirm.vue create mode 100644 uni_modules/cool-ui/components/cl-countdown/cl-countdown.vue create mode 100644 uni_modules/cool-ui/components/cl-dialog/cl-dialog.vue create mode 100644 uni_modules/cool-ui/components/cl-divider/cl-divider.vue create mode 100644 uni_modules/cool-ui/components/cl-empty/cl-empty.vue create mode 100644 uni_modules/cool-ui/components/cl-filter-bar/cl-filter-bar.vue create mode 100644 uni_modules/cool-ui/components/cl-filter-item/cl-filter-item.vue create mode 100644 uni_modules/cool-ui/components/cl-footer/cl-footer.vue create mode 100644 uni_modules/cool-ui/components/cl-form-item/cl-form-item.vue create mode 100644 uni_modules/cool-ui/components/cl-form/cl-form.vue create mode 100644 uni_modules/cool-ui/components/cl-grid-item/cl-grid-item.vue create mode 100644 uni_modules/cool-ui/components/cl-grid/cl-grid.vue create mode 100644 uni_modules/cool-ui/components/cl-guide/cl-guide.vue create mode 100644 uni_modules/cool-ui/components/cl-icon/cl-icon.vue create mode 100644 uni_modules/cool-ui/components/cl-image/cl-image.vue create mode 100644 uni_modules/cool-ui/components/cl-input-number/cl-input-number.vue create mode 100644 uni_modules/cool-ui/components/cl-input/cl-input.vue create mode 100644 uni_modules/cool-ui/components/cl-list-index/cl-list-index.vue create mode 100644 uni_modules/cool-ui/components/cl-list-item/cl-list-item.vue create mode 100644 uni_modules/cool-ui/components/cl-list/cl-list.vue create mode 100644 uni_modules/cool-ui/components/cl-loading-mask/cl-loading-mask.vue create mode 100644 uni_modules/cool-ui/components/cl-loading/cl-loading.vue create mode 100644 uni_modules/cool-ui/components/cl-loadmore/cl-loadmore.vue create mode 100644 uni_modules/cool-ui/components/cl-noticebar/cl-noticebar.vue create mode 100644 uni_modules/cool-ui/components/cl-page/cl-page.vue create mode 100644 uni_modules/cool-ui/components/cl-pay/ali.png create mode 100644 uni_modules/cool-ui/components/cl-pay/cl-pay.vue create mode 100644 uni_modules/cool-ui/components/cl-pay/wx.png create mode 100644 uni_modules/cool-ui/components/cl-popup/cl-popup.vue create mode 100644 uni_modules/cool-ui/components/cl-progress/cl-progress.vue create mode 100644 uni_modules/cool-ui/components/cl-radio-group/cl-radio-group.vue create mode 100644 uni_modules/cool-ui/components/cl-radio/cl-radio.vue create mode 100644 uni_modules/cool-ui/components/cl-rate/cl-rate.vue create mode 100644 uni_modules/cool-ui/components/cl-row/cl-row.vue create mode 100644 uni_modules/cool-ui/components/cl-scroller/cl-scroller.vue create mode 100644 uni_modules/cool-ui/components/cl-search/cl-search.vue create mode 100644 uni_modules/cool-ui/components/cl-select-city/cl-select-city.vue create mode 100644 uni_modules/cool-ui/components/cl-select-date/cl-select-date.vue create mode 100644 uni_modules/cool-ui/components/cl-select-inner/cl-select-inner.vue create mode 100644 uni_modules/cool-ui/components/cl-select-inner/config.ts create mode 100644 uni_modules/cool-ui/components/cl-select-popup/cl-select-popup.vue create mode 100644 uni_modules/cool-ui/components/cl-select-region/cl-select-region.vue create mode 100644 uni_modules/cool-ui/components/cl-select/cl-select.vue create mode 100644 uni_modules/cool-ui/components/cl-service/cl-service.vue create mode 100644 uni_modules/cool-ui/components/cl-share-popup/cl-share-popup.vue create mode 100644 uni_modules/cool-ui/components/cl-share/alipay.png create mode 100644 uni_modules/cool-ui/components/cl-share/cl-share.vue create mode 100644 uni_modules/cool-ui/components/cl-share/qq.png create mode 100644 uni_modules/cool-ui/components/cl-share/wx.png create mode 100644 uni_modules/cool-ui/components/cl-share/wx2.png create mode 100644 uni_modules/cool-ui/components/cl-skeleton/cl-skeleton.vue create mode 100644 uni_modules/cool-ui/components/cl-slider/cl-slider.vue create mode 100644 uni_modules/cool-ui/components/cl-status-bar/cl-status-bar.vue create mode 100644 uni_modules/cool-ui/components/cl-sticky/cl-sticky.vue create mode 100644 uni_modules/cool-ui/components/cl-switch/cl-switch.vue create mode 100644 uni_modules/cool-ui/components/cl-tabs/cl-tabs.vue create mode 100644 uni_modules/cool-ui/components/cl-tag/cl-tag.vue create mode 100644 uni_modules/cool-ui/components/cl-text/cl-text.vue create mode 100644 uni_modules/cool-ui/components/cl-textarea/cl-textarea.vue create mode 100644 uni_modules/cool-ui/components/cl-timeline-item/cl-timeline-item.vue create mode 100644 uni_modules/cool-ui/components/cl-timeline/cl-timeline.vue create mode 100644 uni_modules/cool-ui/components/cl-toast/cl-toast.vue create mode 100644 uni_modules/cool-ui/components/cl-topbar/cl-topbar.vue create mode 100644 uni_modules/cool-ui/components/cl-tree-item/cl-tree-item.vue create mode 100644 uni_modules/cool-ui/components/cl-tree-select/cl-tree-select.vue create mode 100644 uni_modules/cool-ui/components/cl-tree/cl-tree.vue create mode 100644 uni_modules/cool-ui/components/cl-tree/helper.ts create mode 100644 uni_modules/cool-ui/components/cl-upload/cl-upload.vue create mode 100644 uni_modules/cool-ui/components/cl-video/cl-video.vue create mode 100644 uni_modules/cool-ui/components/cl-waterfall-column/cl-waterfall-column.vue create mode 100644 uni_modules/cool-ui/components/cl-waterfall/cl-waterfall.vue create mode 100644 uni_modules/cool-ui/config.ts create mode 100644 uni_modules/cool-ui/data/city-pca.json create mode 100644 uni_modules/cool-ui/hooks/index.ts create mode 100644 uni_modules/cool-ui/hooks/style.ts create mode 100644 uni_modules/cool-ui/index.scss create mode 100644 uni_modules/cool-ui/index.ts create mode 100644 uni_modules/cool-ui/readme.md create mode 100644 uni_modules/cool-ui/static/css/action-sheet.scss create mode 100644 uni_modules/cool-ui/static/css/avatar.scss create mode 100644 uni_modules/cool-ui/static/css/badge.scss create mode 100644 uni_modules/cool-ui/static/css/banner.scss create mode 100644 uni_modules/cool-ui/static/css/button.scss create mode 100644 uni_modules/cool-ui/static/css/captcha.scss create mode 100644 uni_modules/cool-ui/static/css/card.scss create mode 100644 uni_modules/cool-ui/static/css/checkbox.scss create mode 100644 uni_modules/cool-ui/static/css/col.scss create mode 100644 uni_modules/cool-ui/static/css/column.scss create mode 100644 uni_modules/cool-ui/static/css/common.scss create mode 100644 uni_modules/cool-ui/static/css/confirm.scss create mode 100644 uni_modules/cool-ui/static/css/countdown.scss create mode 100644 uni_modules/cool-ui/static/css/dialog.scss create mode 100644 uni_modules/cool-ui/static/css/divider.scss create mode 100644 uni_modules/cool-ui/static/css/empty.scss create mode 100644 uni_modules/cool-ui/static/css/filter-bar.scss create mode 100644 uni_modules/cool-ui/static/css/footer.scss create mode 100644 uni_modules/cool-ui/static/css/form.scss create mode 100644 uni_modules/cool-ui/static/css/grid.scss create mode 100644 uni_modules/cool-ui/static/css/guide.scss create mode 100644 uni_modules/cool-ui/static/css/icon.scss create mode 100644 uni_modules/cool-ui/static/css/image.scss create mode 100644 uni_modules/cool-ui/static/css/index.scss create mode 100644 uni_modules/cool-ui/static/css/input-number.scss create mode 100644 uni_modules/cool-ui/static/css/input.scss create mode 100644 uni_modules/cool-ui/static/css/list-index.scss create mode 100644 uni_modules/cool-ui/static/css/list.scss create mode 100644 uni_modules/cool-ui/static/css/loading-mask.scss create mode 100644 uni_modules/cool-ui/static/css/loading.scss create mode 100644 uni_modules/cool-ui/static/css/loadmore.scss create mode 100644 uni_modules/cool-ui/static/css/noticebar.scss create mode 100644 uni_modules/cool-ui/static/css/page.scss create mode 100644 uni_modules/cool-ui/static/css/pay.scss create mode 100644 uni_modules/cool-ui/static/css/popup.scss create mode 100644 uni_modules/cool-ui/static/css/progress.scss create mode 100644 uni_modules/cool-ui/static/css/radio.scss create mode 100644 uni_modules/cool-ui/static/css/rate.scss create mode 100644 uni_modules/cool-ui/static/css/row.scss create mode 100644 uni_modules/cool-ui/static/css/scroller.scss create mode 100644 uni_modules/cool-ui/static/css/search.scss create mode 100644 uni_modules/cool-ui/static/css/select-city.scss create mode 100644 uni_modules/cool-ui/static/css/select-date.scss create mode 100644 uni_modules/cool-ui/static/css/select-inner.scss create mode 100644 uni_modules/cool-ui/static/css/select-popup.scss create mode 100644 uni_modules/cool-ui/static/css/select.scss create mode 100644 uni_modules/cool-ui/static/css/share.scss create mode 100644 uni_modules/cool-ui/static/css/skeleton.scss create mode 100644 uni_modules/cool-ui/static/css/status-bar.scss create mode 100644 uni_modules/cool-ui/static/css/steps.scss create mode 100644 uni_modules/cool-ui/static/css/sticky.scss create mode 100644 uni_modules/cool-ui/static/css/switch.scss create mode 100644 uni_modules/cool-ui/static/css/tabs.scss create mode 100644 uni_modules/cool-ui/static/css/tag.scss create mode 100644 uni_modules/cool-ui/static/css/text.scss create mode 100644 uni_modules/cool-ui/static/css/textarea.scss create mode 100644 uni_modules/cool-ui/static/css/timeline.scss create mode 100644 uni_modules/cool-ui/static/css/toast.scss create mode 100644 uni_modules/cool-ui/static/css/topbar.scss create mode 100644 uni_modules/cool-ui/static/css/tree.scss create mode 100644 uni_modules/cool-ui/static/css/upload.scss create mode 100644 uni_modules/cool-ui/static/css/video.scss create mode 100644 uni_modules/cool-ui/static/css/waterfall.scss create mode 100644 uni_modules/cool-ui/static/iconfont/font.ttf create mode 100644 uni_modules/cool-ui/static/iconfont/font.woff create mode 100644 uni_modules/cool-ui/static/iconfont/font.woff2 create mode 100644 uni_modules/cool-ui/static/iconfont/index.scss create mode 100644 uni_modules/cool-ui/theme.scss create mode 100644 uni_modules/cool-ui/types/action-sheet.d.ts create mode 100644 uni_modules/cool-ui/types/confirm.d.ts create mode 100644 uni_modules/cool-ui/types/form.d.ts create mode 100644 uni_modules/cool-ui/types/index.d.ts create mode 100644 uni_modules/cool-ui/types/list-index.d.ts create mode 100644 uni_modules/cool-ui/types/loading.d.ts create mode 100644 uni_modules/cool-ui/types/page.d.ts create mode 100644 uni_modules/cool-ui/types/pay.d.ts create mode 100644 uni_modules/cool-ui/types/share.d.ts create mode 100644 uni_modules/cool-ui/types/timeline.d.ts create mode 100644 uni_modules/cool-ui/types/toast.d.ts create mode 100644 uni_modules/cool-ui/types/tree.d.ts create mode 100644 uni_modules/cool-ui/types/waterfall.d.ts create mode 100644 uni_modules/cool-ui/utils/async-validator.ts create mode 100644 uni_modules/cool-ui/utils/index.ts create mode 100644 uni_modules/mp-html/README.md create mode 100644 uni_modules/mp-html/changelog.md create mode 100644 uni_modules/mp-html/components/mp-html/mp-html.vue create mode 100644 uni_modules/mp-html/components/mp-html/node/node.vue create mode 100644 uni_modules/mp-html/components/mp-html/parser.js create mode 100644 uni_modules/mp-html/package.json create mode 100644 uni_modules/mp-html/static/app-plus/mp-html/js/handler.js create mode 100644 uni_modules/mp-html/static/app-plus/mp-html/js/uni.webview.min.js create mode 100644 uni_modules/mp-html/static/app-plus/mp-html/local.html create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..06d3451 --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +.DS_Store +node_modules/ +unpackage/ +dist/ + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.project +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* + +yarn.lock +package-lock.json +pnpm-lock.yaml + + + +types/auto-imports.d.ts +types/components.d.ts diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..b0d1694 --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,36 @@ +{ + // 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" : [ + { + "app-plus" : { + "launchtype" : "local" + }, + "default" : { + "launchtype" : "local" + }, + "h5" : { + "launchtype" : "local" + }, + "mp-alipay" : { + "launchtype" : "local" + }, + "mp-toutiao" : { + "launchtype" : "local" + }, + "mp-weixin" : { + "launchtype" : "local" + }, + "type" : "uniCloud" + }, + { + "playground" : "standard", + "type" : "uni-app:app-ios" + }, + { + "playground" : "standard", + "type" : "uni-app:app-android" + } + ] +} diff --git a/.hintrc b/.hintrc new file mode 100644 index 0000000..d5bb468 --- /dev/null +++ b/.hintrc @@ -0,0 +1,8 @@ +{ + "extends": [ + "development" + ], + "hints": { + "typescript-config/is-valid": "off" + } +} \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..5305129 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "tabWidth": 4, + "useTabs": true, + "semi": true, + "jsxBracketSameLine": true, + "singleQuote": false, + "printWidth": 100 +} diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..d6cd1d8 --- /dev/null +++ b/App.vue @@ -0,0 +1,32 @@ + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..f79f067 --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +# COOL-UNI + +让你不用想太多就能开发完功能,7.0 携带 vue3、vite、ts、pinia 等众多新特性细节曝光!![文档地址](https://cool-js.com/uni/introduce.html) + +## 更快 + +- 启动快:基于 `vite`,快速的冷启动,不需要等待打包,即时的热模块更新,真正的按需编译。 + +- 开发快:`eps` 模式下,无须手动添加接口请求方法。 + +## 更强 + +内置请求、路由、文件上传、组件通信、缓存等方法及 ui 库和 hooks + +```html + +``` + +## 更细 + +全面的代码描述 diff --git a/androidPrivacy.json b/androidPrivacy.json new file mode 100644 index 0000000..0d726ca --- /dev/null +++ b/androidPrivacy.json @@ -0,0 +1,3 @@ +{ + "prompt" : "template" +} diff --git a/build/cool/eps.d.ts b/build/cool/eps.d.ts new file mode 100644 index 0000000..2c2da2a --- /dev/null +++ b/build/cool/eps.d.ts @@ -0,0 +1,1687 @@ +declare namespace Eps { + interface AppComplainEntity { + /** + * ID + */ + id?: number; + /** + * 用户ID + */ + userId?: number; + /** + * 类型 + */ + type?: number; + /** + * 联系方式 + */ + contact?: string; + /** + * 内容 + */ + content?: string; + /** + * 图片 + */ + images?: json; + /** + * 状态 0-未处理 1-已处理 + */ + status?: number; + /** + * 处理人ID + */ + handlerId?: number; + /** + * 备注 + */ + remark?: string; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface AppFeedbackEntity { + /** + * ID + */ + id?: number; + /** + * 用户ID + */ + userId?: number; + /** + * 联系方式 + */ + contact?: string; + /** + * 类型 + */ + type?: number; + /** + * 内容 + */ + content?: string; + /** + * 图片 + */ + images?: json; + /** + * 状态 0-未处理 1-已处理 + */ + status?: number; + /** + * 处理人ID + */ + handlerId?: number; + /** + * 备注 + */ + remark?: string; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface AppGoodsEntity { + /** + * ID + */ + id?: number; + /** + * 标题 + */ + title?: string; + /** + * 价格 + */ + price?: number; + /** + * 原价 + */ + originalPrice?: number; + /** + * 描述 + */ + description?: string; + /** + * 状态 0-禁用 1-启用 + */ + status?: number; + /** + * 排序 + */ + sort?: number; + /** + * 类型 0-天 1-月 2-年 3-永久 + */ + type?: number; + /** + * 时长 + */ + duration?: number; + /** + * 标签 + */ + tag?: string; + /** + * 标签颜色 + */ + tagColor?: string; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface AppVersionEntity { + /** + * ID + */ + id?: number; + /** + * 名称 + */ + name?: string; + /** + * 版本号 + */ + version?: string; + /** + * 类型 + */ + type?: number; + /** + * 下载地址 + */ + url?: string; + /** + * 强制更新 0-否 1-是 + */ + forceUpdate?: number; + /** + * 状态 0-禁用 1-启用 + */ + status?: number; + /** + * 热更新 0-否 1-是 + */ + hotUpdate?: number; + /** + * 描述 + */ + description?: string; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface CsMsgEntity { + /** + * ID + */ + id?: number; + /** + * 用户ID + */ + userId?: number; + /** + * 会话ID + */ + sessionId?: number; + /** + * 消息内容 + */ + content?: json; + /** + * 类型 0-反馈 1-回复 + */ + type?: number; + /** + * 状态 0-未读 1-已读 + */ + status?: number; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface GoodsCommentEntity { + /** + * ID + */ + id?: number; + /** + * 用户ID + */ + userId?: number; + /** + * 商品ID + */ + goodsId?: number; + /** + * 订单ID + */ + orderId?: number; + /** + * 内容 + */ + content?: string; + /** + * 星数 + */ + starCount?: number; + /** + * 图片 + */ + pics?: json; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface GoodsInfoEntity { + /** + * ID + */ + id?: number; + /** + * 类型ID + */ + typeId?: number; + /** + * 标题 + */ + title?: string; + /** + * 副标题 + */ + subTitle?: string; + /** + * 主图 + */ + mainPic?: string; + /** + * 图片 + */ + pics?: json; + /** + * 价格 + */ + price?: number; + /** + * 已售 + */ + sold?: number; + /** + * 详情 + */ + content?: string; + /** + * 状态 0-下架 1-上架 + */ + status?: number; + /** + * 排序 + */ + sortNum?: number; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface GoodsSearchKeywordEntity { + /** + * ID + */ + id?: number; + /** + * 名称 + */ + name?: string; + /** + * 排序 + */ + sortNum?: number; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface GoodsSpecEntity { + /** + * ID + */ + id?: number; + /** + * 商品ID + */ + goodsId?: number; + /** + * 名称 + */ + name?: string; + /** + * 价格 + */ + price?: number; + /** + * 库存 + */ + stock?: number; + /** + * 排序 + */ + sortNum?: number; + /** + * 图片 + */ + images?: json; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface GoodsTypeEntity { + /** + * ID + */ + id?: number; + /** + * 名称 + */ + name?: string; + /** + * 父ID + */ + parentId?: number; + /** + * 排序 + */ + sortNum?: number; + /** + * 图片 + */ + pic?: string; + /** + * 状态 0-禁用 1-启用 + */ + status?: number; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface InfoBannerEntity { + /** + * ID + */ + id?: number; + /** + * 描述 + */ + description?: string; + /** + * 跳转路径 + */ + path?: string; + /** + * 图片 + */ + pic?: string; + /** + * 排序 + */ + sortNum?: number; + /** + * 状态 1:启用 2:禁用 + */ + status?: number; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface MarketCouponInfoEntity { + /** + * ID + */ + id?: number; + /** + * 标题 + */ + title?: string; + /** + * 描述 + */ + description?: string; + /** + * 类型 0-满减 + */ + type?: number; + /** + * 金额 + */ + amount?: number; + /** + * 数量 + */ + num?: number; + /** + * 已领取 + */ + receivedNum?: number; + /** + * 开始时间 + */ + startTime?: Date; + /** + * 结束时间 + */ + endTime?: Date; + /** + * 状态 0-禁用 1-启用 + */ + status?: number; + /** + * 条件 + */ + condition?: json; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface MarketCouponUserEntity { + /** + * ID + */ + id?: number; + /** + * 用户ID + */ + userId?: number; + /** + * 优惠券ID + */ + couponId?: number; + /** + * 状态 0-未使用 1-已使用 + */ + status?: number; + /** + * 使用时间 + */ + useTime?: Date; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface OrderInfoEntity { + /** + * ID + */ + id?: number; + /** + * 用户ID + */ + userId?: number; + /** + * 标题 + */ + title?: string; + /** + * 支付方式 0-待支付 1-微信 2-支付宝 + */ + payType?: number; + /** + * 支付时间 + */ + payTime?: Date; + /** + * 订单号 + */ + orderNum?: string; + /** + * 状态 0-待付款 1-待发货 2-待收货 3-待评价 4-交易完成 5-退款中 6-已退款 7-已关闭 + */ + status?: number; + /** + * 价格 + */ + price?: number; + /** + * 优惠金额 + */ + discountPrice?: number; + /** + * 优惠来源 + */ + discountSource?: json; + /** + * 地址 + */ + address?: json; + /** + * 物流信息 + */ + logistics?: json; + /** + * 退款 + */ + refund?: json; + /** + * 退款状态 + */ + refundStatus?: number; + /** + * 退款申请时间 + */ + refundApplyTime?: Date; + /** + * 备注 + */ + remark?: string; + /** + * 关闭备注 + */ + closeRemark?: string; + /** + * 已开票: 0-未开票 1-已开票 + */ + invoice?: number; + /** + * 微信类型 0-小程序 1-公众号 2-App + */ + wxType?: number; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface UserAddressEntity { + /** + * ID + */ + id?: number; + /** + * 用户ID + */ + userId?: number; + /** + * 联系人 + */ + contact?: string; + /** + * 手机号 + */ + phone?: string; + /** + * 省 + */ + province?: string; + /** + * 市 + */ + city?: string; + /** + * 区 + */ + district?: string; + /** + * 地址 + */ + address?: string; + /** + * 是否默认 + */ + isDefault?: boolean; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface UserInfoEntity { + /** + * ID + */ + id?: number; + /** + * 登录唯一ID + */ + unionid?: string; + /** + * 头像 + */ + avatarUrl?: string; + /** + * 昵称 + */ + nickName?: string; + /** + * 手机号 + */ + phone?: string; + /** + * 性别 0-未知 1-男 2-女 + */ + gender?: number; + /** + * 状态 0-禁用 1-正常 2-已注销 + */ + status?: number; + /** + * 登录方式 0-小程序 1-公众号 2-H5 + */ + loginType?: number; + /** + * 密码 + */ + password?: string; + /** + * 创建时间 + */ + createTime?: Date; + /** + * 更新时间 + */ + updateTime?: Date; + /** + * 任意键值 + */ + [key: string]: any; + } + + interface TestEntity { + /** + * 任意键值 + */ + [key: string]: any; + } + interface AppComplain { + /** + * 提交投诉举报 + */ + submit(data?: any): Promise; + /** + * 分页查询 + */ + page(data?: any): Promise<{ + pagination: { size: number; page: number; total: number; [key: string]: any }; + list: AppComplainEntity[]; + [key: string]: any; + }>; + /** + * 单个信息 + */ + info(data?: any): Promise; + /** + * 权限标识 + */ + permission: { submit: string; page: string; info: string }; + /** + * 权限状态 + */ + _permission: { submit: boolean; page: boolean; info: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface AppFeedback { + /** + * 提交意见反馈 + */ + submit(data?: any): Promise; + /** + * 分页查询 + */ + page(data?: any): Promise<{ + pagination: { size: number; page: number; total: number; [key: string]: any }; + list: AppFeedbackEntity[]; + [key: string]: any; + }>; + /** + * 单个信息 + */ + info(data?: any): Promise; + /** + * 权限标识 + */ + permission: { submit: string; page: string; info: string }; + /** + * 权限状态 + */ + _permission: { submit: boolean; page: boolean; info: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface AppGoods { + /** + * 列表查询 + */ + list(data?: any): Promise; + /** + * 权限标识 + */ + permission: { list: string }; + /** + * 权限状态 + */ + _permission: { list: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface AppVersion { + /** + * 检查版本 + */ + check(data?: any): Promise; + /** + * 权限标识 + */ + permission: { check: string }; + /** + * 权限状态 + */ + _permission: { check: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface BaseComm { + /** + * 文件上传模式 + */ + uploadMode(data?: any): Promise; + /** + * 文件上传 + */ + upload(data?: any): Promise; + /** + * 参数配置 + */ + param(data?: any): Promise; + /** + * 实体信息与路径 + */ + eps(data?: any): Promise; + /** + * 权限标识 + */ + permission: { uploadMode: string; upload: string; param: string; eps: string }; + /** + * 权限状态 + */ + _permission: { uploadMode: boolean; upload: boolean; param: boolean; eps: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface CsMsg { + /** + * 未读消息数 + */ + unreadCount(data?: any): Promise; + /** + * 标记已读 + */ + read(data?: any): Promise; + /** + * 分页查询 + */ + page(data?: any): Promise<{ + pagination: { size: number; page: number; total: number; [key: string]: any }; + list: CsMsgEntity[]; + [key: string]: any; + }>; + /** + * 权限标识 + */ + permission: { unreadCount: string; read: string; page: string }; + /** + * 权限状态 + */ + _permission: { unreadCount: boolean; read: boolean; page: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface CsSession { + /** + * 会话详情 + */ + detail(data?: any): Promise; + /** + * 创建会话 + */ + create(data?: any): Promise; + /** + * 权限标识 + */ + permission: { detail: string; create: string }; + /** + * 权限状态 + */ + _permission: { detail: boolean; create: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface DictInfo { + /** + * 获得字典数据 + */ + data(data?: any): Promise; + /** + * 权限标识 + */ + permission: { data: string }; + /** + * 权限状态 + */ + _permission: { data: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface GoodsComment { + /** + * 提交评论 + */ + submit(data?: any): Promise; + /** + * 分页查询 + */ + page(data?: any): Promise<{ + pagination: { size: number; page: number; total: number; [key: string]: any }; + list: GoodsCommentEntity[]; + [key: string]: any; + }>; + /** + * 权限标识 + */ + permission: { submit: string; page: string }; + /** + * 权限状态 + */ + _permission: { submit: boolean; page: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface GoodsInfo { + /** + * 分页查询 + */ + page(data?: any): Promise<{ + pagination: { size: number; page: number; total: number; [key: string]: any }; + list: GoodsInfoEntity[]; + [key: string]: any; + }>; + /** + * 单个信息 + */ + info(data?: any): Promise; + /** + * 权限标识 + */ + permission: { page: string; info: string }; + /** + * 权限状态 + */ + _permission: { page: boolean; info: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface GoodsSearchKeyword { + /** + * 删除 + */ + delete(data?: any): Promise; + /** + * 修改 + */ + update(data?: any): Promise; + /** + * 单个信息 + */ + info(data?: any): Promise; + /** + * 列表查询 + */ + list(data?: any): Promise; + /** + * 分页查询 + */ + page(data?: any): Promise<{ + pagination: { size: number; page: number; total: number; [key: string]: any }; + list: GoodsSearchKeywordEntity[]; + [key: string]: any; + }>; + /** + * 新增 + */ + add(data?: any): Promise; + /** + * 权限标识 + */ + permission: { + delete: string; + update: string; + info: string; + list: string; + page: string; + add: string; + }; + /** + * 权限状态 + */ + _permission: { + delete: boolean; + update: boolean; + info: boolean; + list: boolean; + page: boolean; + add: boolean; + }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface GoodsSpec { + /** + * 删除 + */ + delete(data?: any): Promise; + /** + * 修改 + */ + update(data?: any): Promise; + /** + * 单个信息 + */ + info(data?: any): Promise; + /** + * 列表查询 + */ + list(data?: any): Promise; + /** + * 分页查询 + */ + page(data?: any): Promise<{ + pagination: { size: number; page: number; total: number; [key: string]: any }; + list: GoodsSpecEntity[]; + [key: string]: any; + }>; + /** + * 新增 + */ + add(data?: any): Promise; + /** + * 权限标识 + */ + permission: { + delete: string; + update: string; + info: string; + list: string; + page: string; + add: string; + }; + /** + * 权限状态 + */ + _permission: { + delete: boolean; + update: boolean; + info: boolean; + list: boolean; + page: boolean; + add: boolean; + }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface GoodsType { + /** + * 列表查询 + */ + list(data?: any): Promise; + /** + * 权限标识 + */ + permission: { list: string }; + /** + * 权限状态 + */ + _permission: { list: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface InfoBanner { + /** + * 列表查询 + */ + list(data?: any): Promise; + /** + * 权限标识 + */ + permission: { list: string }; + /** + * 权限状态 + */ + _permission: { list: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface MarketCouponInfo { + /** + * 分页查询 + */ + page(data?: any): Promise<{ + pagination: { size: number; page: number; total: number; [key: string]: any }; + list: MarketCouponInfoEntity[]; + [key: string]: any; + }>; + /** + * 权限标识 + */ + permission: { page: string }; + /** + * 权限状态 + */ + _permission: { page: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface MarketCouponUser { + /** + * 领取优惠券 + */ + receive(data?: any): Promise; + /** + * 删除 + */ + delete(data?: any): Promise; + /** + * 修改 + */ + update(data?: any): Promise; + /** + * 单个信息 + */ + info(data?: any): Promise; + /** + * 列表查询 + */ + list(data?: any): Promise; + /** + * 分页查询 + */ + page(data?: any): Promise<{ + pagination: { size: number; page: number; total: number; [key: string]: any }; + list: MarketCouponUserEntity[]; + [key: string]: any; + }>; + /** + * 新增 + */ + add(data?: any): Promise; + /** + * 权限标识 + */ + permission: { + receive: string; + delete: string; + update: string; + info: string; + list: string; + page: string; + add: string; + }; + /** + * 权限状态 + */ + _permission: { + receive: boolean; + delete: boolean; + update: boolean; + info: boolean; + list: boolean; + page: boolean; + add: boolean; + }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface OrderInfo { + /** + * 物流信息 + */ + logistics(data?: any): Promise; + /** + * 用户订单统计 + */ + userCount(data?: any): Promise; + /** + * 确认收货 + */ + confirm(data?: any): Promise; + /** + * 创建订单 + */ + create(data?: any): Promise; + /** + * 取消订单 + */ + cancel(data?: any): Promise; + /** + * 退款 + */ + refund(data?: any): Promise; + /** + * 修改 + */ + update(data?: any): Promise; + /** + * 单个信息 + */ + info(data?: any): Promise; + /** + * 分页查询 + */ + page(data?: any): Promise<{ + pagination: { size: number; page: number; total: number; [key: string]: any }; + list: OrderInfoEntity[]; + [key: string]: any; + }>; + /** + * 权限标识 + */ + permission: { + logistics: string; + userCount: string; + confirm: string; + create: string; + cancel: string; + refund: string; + update: string; + info: string; + page: string; + }; + /** + * 权限状态 + */ + _permission: { + logistics: boolean; + userCount: boolean; + confirm: boolean; + create: boolean; + cancel: boolean; + refund: boolean; + update: boolean; + info: boolean; + page: boolean; + }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface OrderPay { + /** + * 微信小程序支付 + */ + wxMiniPay(data?: any): Promise; + /** + * 微信支付回调 + */ + wxNotify(data?: any): Promise; + /** + * 微信APP支付 + */ + wxAppPay(data?: any): Promise; + /** + * 微信公众号支付 + */ + wxMpPay(data?: any): Promise; + /** + * 权限标识 + */ + permission: { wxMiniPay: string; wxNotify: string; wxAppPay: string; wxMpPay: string }; + /** + * 权限状态 + */ + _permission: { wxMiniPay: boolean; wxNotify: boolean; wxAppPay: boolean; wxMpPay: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface UserAddress { + /** + * 默认地址 + */ + default(data?: any): Promise; + /** + * 删除 + */ + delete(data?: any): Promise; + /** + * 修改 + */ + update(data?: any): Promise; + /** + * 单个信息 + */ + info(data?: any): Promise; + /** + * 列表查询 + */ + list(data?: any): Promise; + /** + * 分页查询 + */ + page(data?: any): Promise<{ + pagination: { size: number; page: number; total: number; [key: string]: any }; + list: UserAddressEntity[]; + [key: string]: any; + }>; + /** + * 新增 + */ + add(data?: any): Promise; + /** + * 权限标识 + */ + permission: { + default: string; + delete: string; + update: string; + info: string; + list: string; + page: string; + add: string; + }; + /** + * 权限状态 + */ + _permission: { + default: boolean; + delete: boolean; + update: boolean; + info: boolean; + list: boolean; + page: boolean; + add: boolean; + }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface UserComm { + /** + * 获取微信公众号配置 + */ + wxMpConfig(data?: any): Promise; + /** + * 权限标识 + */ + permission: { wxMpConfig: string }; + /** + * 权限状态 + */ + _permission: { wxMpConfig: boolean }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface UserInfo { + /** + * 更新用户密码 + */ + updatePassword(data?: any): Promise; + /** + * 更新用户信息 + */ + updatePerson(data?: any): Promise; + /** + * 绑定手机号 + */ + bindPhone(data?: any): Promise; + /** + * 绑定小程序手机号 + */ + miniPhone(data?: any): Promise; + /** + * 获取用户信息 + */ + person(data?: any): Promise; + /** + * 注销 + */ + logoff(data?: any): Promise; + /** + * 权限标识 + */ + permission: { + updatePassword: string; + updatePerson: string; + bindPhone: string; + miniPhone: string; + person: string; + logoff: string; + }; + /** + * 权限状态 + */ + _permission: { + updatePassword: boolean; + updatePerson: boolean; + bindPhone: boolean; + miniPhone: boolean; + person: boolean; + logoff: boolean; + }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface UserLogin { + /** + * 刷新token + */ + refreshToken(data?: any): Promise; + /** + * 密码登录 + */ + password(data?: any): Promise; + /** + * 图片验证码 + */ + captcha(data?: any): Promise; + /** + * 验证码 + */ + smsCode(data?: any): Promise; + /** + * 微信APP授权登录 + */ + wxApp(data?: any): Promise; + /** + * 手机号登录 + */ + phone(data?: any): Promise; + /** + * 小程序登录 + */ + mini(data?: any): Promise; + /** + * 公众号登录 + */ + mp(data?: any): Promise; + /** + * 权限标识 + */ + permission: { + refreshToken: string; + password: string; + captcha: string; + smsCode: string; + wxApp: string; + phone: string; + mini: string; + mp: string; + }; + /** + * 权限状态 + */ + _permission: { + refreshToken: boolean; + password: boolean; + captcha: boolean; + smsCode: boolean; + wxApp: boolean; + phone: boolean; + mini: boolean; + mp: boolean; + }; + /** + * 请求 + */ + request: Service["request"]; + } + + interface Test { + /** + * page + */ + page(data?: any): Promise<{ + pagination: { size: number; page: number; total: number; [key: string]: any }; + list: TestEntity[]; + [key: string]: any; + }>; + /** + * list + */ + list(data?: any): Promise; + /** + * info + */ + info(data?: any): Promise; + /** + * delete + */ + delete(data?: any): Promise; + /** + * update + */ + update(data?: any): Promise; + /** + * add + */ + add(data?: any): Promise; + /** + * 权限标识 + */ + permission: { + page: string; + list: string; + info: string; + delete: string; + update: string; + add: string; + }; + /** + * 权限状态 + */ + _permission: { + page: boolean; + list: boolean; + info: boolean; + delete: boolean; + update: boolean; + add: boolean; + }; + /** + * 请求 + */ + request: Service["request"]; + } + + type json = any; + + type Service = { + request(options?: { + url: string; + method?: "POST" | "GET" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS"; + data?: any; + params?: any; + headers?: { + [key: string]: any; + }; + timeout?: number; + proxy?: boolean; + [key: string]: any; + }): Promise; + app: { complain: AppComplain; feedback: AppFeedback; goods: AppGoods; version: AppVersion }; + base: { comm: BaseComm }; + cs: { msg: CsMsg; session: CsSession }; + dict: { info: DictInfo }; + goods: { + comment: GoodsComment; + info: GoodsInfo; + searchKeyword: GoodsSearchKeyword; + spec: GoodsSpec; + type: GoodsType; + }; + info: { banner: InfoBanner }; + market: { coupon: { info: MarketCouponInfo; user: MarketCouponUser } }; + order: { info: OrderInfo; pay: OrderPay }; + user: { address: UserAddress; comm: UserComm; info: UserInfo; login: UserLogin }; + test: Test; + }; +} diff --git a/build/cool/eps.json b/build/cool/eps.json new file mode 100644 index 0000000..2069768 --- /dev/null +++ b/build/cool/eps.json @@ -0,0 +1 @@ +[{"prefix":"/app/app/complain","name":"AppComplainEntity","api":[{"method":"post","path":"/submit"},{"method":"post","path":"/page"},{"method":"get","path":"/info"}]},{"prefix":"/app/app/feedback","name":"AppFeedbackEntity","api":[{"method":"post","path":"/submit"},{"method":"post","path":"/page"},{"method":"get","path":"/info"}]},{"prefix":"/app/app/goods","name":"AppGoodsEntity","api":[{"method":"post","path":"/list"}]},{"prefix":"/app/app/version","name":"AppVersionEntity","api":[{"method":"get","path":"/check"}]},{"prefix":"/app/base/comm","name":"","api":[{"method":"get","path":"/uploadMode"},{"method":"post","path":"/upload"},{"method":"get","path":"/param"},{"method":"get","path":"/eps"}]},{"prefix":"/app/cs/msg","name":"CsMsgEntity","api":[{"method":"get","path":"/unreadCount"},{"method":"post","path":"/read"},{"method":"post","path":"/page"}]},{"prefix":"/app/cs/session","name":"","api":[{"method":"get","path":"/detail"},{"method":"post","path":"/create"}]},{"prefix":"/app/dict/info","name":"","api":[{"method":"post","path":"/data"}]},{"prefix":"/app/goods/comment","name":"GoodsCommentEntity","api":[{"method":"post","path":"/submit"},{"method":"post","path":"/page"}]},{"prefix":"/app/goods/info","name":"GoodsInfoEntity","api":[{"method":"post","path":"/page"},{"method":"get","path":"/info"}]},{"prefix":"/app/goods/searchKeyword","name":"GoodsSearchKeywordEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}]},{"prefix":"/app/goods/spec","name":"GoodsSpecEntity","api":[{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}]},{"prefix":"/app/goods/type","name":"GoodsTypeEntity","api":[{"method":"post","path":"/list"}]},{"prefix":"/app/info/banner","name":"InfoBannerEntity","api":[{"method":"post","path":"/list"}]},{"prefix":"/app/market/coupon/info","name":"MarketCouponInfoEntity","api":[{"method":"post","path":"/page"}]},{"prefix":"/app/market/coupon/user","name":"MarketCouponUserEntity","api":[{"method":"post","path":"/receive"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}]},{"prefix":"/app/order/info","name":"OrderInfoEntity","api":[{"method":"get","path":"/logistics"},{"method":"get","path":"/userCount"},{"method":"get","path":"/confirm"},{"method":"post","path":"/create"},{"method":"post","path":"/cancel"},{"method":"post","path":"/refund"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/page"}]},{"prefix":"/app/order/pay","name":"","api":[{"method":"post","path":"/wxMiniPay"},{"method":"post","path":"/wxNotify"},{"method":"post","path":"/wxAppPay"},{"method":"post","path":"/wxMpPay"}]},{"prefix":"/app/user/address","name":"UserAddressEntity","api":[{"method":"get","path":"/default"},{"method":"post","path":"/delete"},{"method":"post","path":"/update"},{"method":"get","path":"/info"},{"method":"post","path":"/list"},{"method":"post","path":"/page"},{"method":"post","path":"/add"}]},{"prefix":"/app/user/comm","name":"","api":[{"method":"post","path":"/wxMpConfig"}]},{"prefix":"/app/user/info","name":"UserInfoEntity","api":[{"method":"post","path":"/updatePassword"},{"method":"post","path":"/updatePerson"},{"method":"post","path":"/bindPhone"},{"method":"post","path":"/miniPhone"},{"method":"get","path":"/person"},{"method":"post","path":"/logoff"}]},{"prefix":"/app/user/login","name":"","api":[{"method":"post","path":"/refreshToken"},{"method":"post","path":"/password"},{"method":"get","path":"/captcha"},{"method":"post","path":"/smsCode"},{"method":"post","path":"/wxApp"},{"method":"post","path":"/phone"},{"method":"post","path":"/mini"},{"method":"post","path":"/mp"}]},{"prefix":"/","name":"","api":[{"method":"get","path":"/"}]},{"prefix":"/app/test","name":"TestEntity","api":[{"path":"/page"},{"path":"/list"},{"path":"/info"},{"path":"/delete"},{"path":"/update"},{"path":"/add"}]}] \ No newline at end of file diff --git a/components/address/item.vue b/components/address/item.vue new file mode 100644 index 0000000..31c6fe2 --- /dev/null +++ b/components/address/item.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/components/address/select.vue b/components/address/select.vue new file mode 100644 index 0000000..20307c5 --- /dev/null +++ b/components/address/select.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/components/agree-btn.vue b/components/agree-btn.vue new file mode 100644 index 0000000..80dd6ad --- /dev/null +++ b/components/agree-btn.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/components/coupon/get.vue b/components/coupon/get.vue new file mode 100644 index 0000000..4f52545 --- /dev/null +++ b/components/coupon/get.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/components/coupon/item/bg.png b/components/coupon/item/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..d15f48aa16146968feb905633eba96244d34de21 GIT binary patch literal 17704 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 literal 0 HcmV?d00001 diff --git a/components/coupon/item/index.vue b/components/coupon/item/index.vue new file mode 100644 index 0000000..3095936 --- /dev/null +++ b/components/coupon/item/index.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/components/coupon/select.vue b/components/coupon/select.vue new file mode 100644 index 0000000..a4add51 --- /dev/null +++ b/components/coupon/select.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/components/goods/cover.vue b/components/goods/cover.vue new file mode 100644 index 0000000..f6a1c49 --- /dev/null +++ b/components/goods/cover.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/components/goods/group.vue b/components/goods/group.vue new file mode 100644 index 0000000..f931058 --- /dev/null +++ b/components/goods/group.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/components/goods/item.vue b/components/goods/item.vue new file mode 100644 index 0000000..4c25343 --- /dev/null +++ b/components/goods/item.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/components/goods/spec.vue b/components/goods/spec.vue new file mode 100644 index 0000000..a5b4d5e --- /dev/null +++ b/components/goods/spec.vue @@ -0,0 +1,393 @@ + + + + + diff --git a/components/sms-btn.vue b/components/sms-btn.vue new file mode 100644 index 0000000..87b64d0 --- /dev/null +++ b/components/sms-btn.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/config/dev.ts b/config/dev.ts new file mode 100644 index 0000000..7d7ea94 --- /dev/null +++ b/config/dev.ts @@ -0,0 +1,17 @@ +import { proxy } from "./proxy"; + +export default { + // 根地址 + host: proxy["/dev/"].target, + + // 请求地址 + get baseUrl() { + // #ifdef H5 + return "/dev"; + // #endif + + // #ifndef H5 + return this.host + ""; + // #endif + }, +}; diff --git a/config/index.ts b/config/index.ts new file mode 100644 index 0000000..41652ef --- /dev/null +++ b/config/index.ts @@ -0,0 +1,40 @@ +import dev from "./dev"; +import prod from "./prod"; + +// 是否开发模式 +export const isDev = import.meta.env.MODE === "development"; + +// 配置 +export const config = { + // 应用信息 + app: { + // 应用名称 + name: "酷卖", + // 应用描述 + desc: "能用钱解决的事,就不要客气", + // 页面配置 + pages: { + login: "/pages/user/login", + }, + wx: { + debug: false, + }, + }, + + // 调试 + test: { + token: "", + mock: false, + eps: true, + }, + + // 忽略 + ignore: { + token: [], + }, + + // 当前环境 + ...(isDev ? dev : prod), +}; + +export * from "./proxy"; diff --git a/config/prod.ts b/config/prod.ts new file mode 100644 index 0000000..138645d --- /dev/null +++ b/config/prod.ts @@ -0,0 +1,18 @@ +import { proxy } from "./proxy"; + +export default { + // 根地址 + host: proxy["/prod/"].target, + + // 请求地址 + get baseUrl() { + // #ifdef H5 + return "/api"; + // #endif + + // #ifndef H5 + return "https://cool-mall-dev.cool-js.cloud"; + // return this.host + "/api"; + // #endif + }, +}; diff --git a/config/proxy.ts b/config/proxy.ts new file mode 100644 index 0000000..1305315 --- /dev/null +++ b/config/proxy.ts @@ -0,0 +1,13 @@ +export const proxy = { + "/dev/": { + target: "http://127.0.0.1:8001", + changeOrigin: true, + rewrite: (path: string) => path.replace(/^\/dev/, ""), + }, + + "/prod/": { + target: "https://cool-mall-dev.cool-js.cloud", + changeOrigin: true, + rewrite: (path: string) => path.replace(/^\/prod/, ""), + }, +}; diff --git a/cool/bootstrap/eps.ts b/cool/bootstrap/eps.ts new file mode 100644 index 0000000..9a4f57b --- /dev/null +++ b/cool/bootstrap/eps.ts @@ -0,0 +1,138 @@ +import { merge } from "lodash-es"; +import { BaseService, service } from "../service"; +import { path2Obj } from "../utils"; +import { config, isDev } from "/@/config"; +import { eps } from "virtual:eps"; + +// 读取本地所有 service +const files = import.meta.glob("/service/**/*", { + eager: true, +}); + +// 数据集合 +const services: any[] = []; + +// 取值 +for (const i in files) { + try { + // @ts-ignore + services.push(new files[i].default()); + } catch (e) { + console.error(`[service] ${i} error: `, e); + } +} + +// 更新事件 +function onUpdate() { + // 设置 request 方法 + function set(d: any) { + if (d.namespace) { + const a: any = new BaseService(d.namespace); + + for (const i in d) { + const { path, method = "get" } = d[i]; + + if (path) { + a.request = a.request; + + a[i] = function (data?: any) { + return this.request({ + url: path, + method, + [method.toLocaleLowerCase() == "post" ? "data" : "params"]: data, + }); + }; + } + } + + for (const i in a) { + d[i] = a[i]; + } + } else { + for (const i in d) { + set(d[i]); + } + } + } + + // 遍历每一个方法 + set(eps.service); + + // 合并 eps + merge(service, eps.service); + + // 合并[local] + merge( + service, + path2Obj( + services.map((e) => { + return { + path: (e.namespace || "").replace("app/", ""), + value: e, + }; + }), + ), + ); + + // 提示 + if (isDev) { + console.log("[cool-eps] updated"); + } +} + +export function createEps() { + // 更新 eps + onUpdate(); + + // #ifdef H5 + // 开发环境下,生成本地 service 的类型描述文件 + if (isDev && config.test.eps) { + const list = services.map((s) => { + const api = Array.from( + new Set([ + ...Object.getOwnPropertyNames(s.constructor.prototype), + "page", + "list", + "info", + "delete", + "update", + "add", + ]), + ) + .filter((e) => !["constructor", "namespace"].includes(e)) + .map((e) => { + return { + path: `/${e}`, + }; + }); + + return { + api, + module: s.namespace.split("/")[0], + name: s.constructor.name + "Entity", + prefix: `/app/${s.namespace}`, + }; + }); + + service.request({ + url: "/__cool_eps", + method: "POST", + proxy: false, + data: { + list, + }, + }); + } + // #endif +} + +// 监听 vite 触发事件 +if (import.meta.hot) { + import.meta.hot.on("eps-update", ({ service }) => { + if (service) { + eps.service = service; + } + + onUpdate(); + }); +} diff --git a/cool/bootstrap/index.ts b/cool/bootstrap/index.ts new file mode 100644 index 0000000..eda703e --- /dev/null +++ b/cool/bootstrap/index.ts @@ -0,0 +1,15 @@ +import { createPinia } from "pinia"; +import { createEps } from "./eps"; +import { createModules } from "./modules"; +import { type App } from "vue"; + +export async function bootstrap(app: App) { + // 状态共享存储 + app.use(createPinia()); + + // 创建 EPS + createEps(); + + // 创建 uni_modules + createModules(); +} diff --git a/cool/bootstrap/modules.ts b/cool/bootstrap/modules.ts new file mode 100644 index 0000000..7a48445 --- /dev/null +++ b/cool/bootstrap/modules.ts @@ -0,0 +1,38 @@ +import { keys, orderBy } from "lodash-es"; +import { module } from "../module"; + +export async function createModules() { + // 加载 uni_modules 插件 + const files: any = import.meta.glob("/uni_modules/cool-*/config.ts", { + eager: true, + }); + + const modules = orderBy( + keys(files).map((k) => { + const [, , name] = k.split("/"); + + return { + name, + value: files[k]?.default, + }; + }), + "order", + "desc", + ); + + for (let i in modules) { + const { name, value } = modules[i]; + const data = value ? value() : undefined; + + // 添加模块 + module.add({ + name, + ...data, + }); + + // 触发加载事件 + if (data) { + await data.onLoad?.(data.options); + } + } +} diff --git a/cool/hooks/app.ts b/cool/hooks/app.ts new file mode 100644 index 0000000..317f494 --- /dev/null +++ b/cool/hooks/app.ts @@ -0,0 +1,28 @@ +import { reactive, ref } from "vue"; +import { storage } from "../utils"; +import { config } from "/@/config"; +import { defineStore } from "pinia"; + +// 主题 +export const useTheme = defineStore("theme", () => { + const name = ref(storage.get("theme") || "default"); + + function set(value: string) { + name.value = value; + storage.set("theme", value); + } + + return { + name, + set, + }; +}); + +export function useApp() { + const info = reactive(config.app); + + return { + info, + theme: useTheme(), + }; +} diff --git a/cool/hooks/comm.ts b/cool/hooks/comm.ts new file mode 100644 index 0000000..520ca45 --- /dev/null +++ b/cool/hooks/comm.ts @@ -0,0 +1,11 @@ +import { reactive } from "vue"; +export function useRefs() { + const refs = reactive<{ [key: string]: any }>({}); + function setRefs(name: string) { + return (el: any) => { + refs[name] = el; + }; + } + + return { refs, setRefs }; +} diff --git a/cool/hooks/hmr.ts b/cool/hooks/hmr.ts new file mode 100644 index 0000000..e7526ae --- /dev/null +++ b/cool/hooks/hmr.ts @@ -0,0 +1,23 @@ +// 解决热更新后失效问题; +const data = import.meta.hot?.data.getData?.() || {}; + +if (import.meta.hot) { + import.meta.hot.data.getData = () => { + return data; + }; +} + +export const hmr = { + data, + + setData(key: string, value: any) { + data[key] = value; + }, + + getData(key: string, defaultValue?: any) { + if (defaultValue !== undefined && !data[key]) { + this.setData(key, defaultValue); + } + return data[key]; + } +}; diff --git a/cool/hooks/index.ts b/cool/hooks/index.ts new file mode 100644 index 0000000..5ce6407 --- /dev/null +++ b/cool/hooks/index.ts @@ -0,0 +1,21 @@ +import { router } from "../router"; +import { service } from "../service"; +import { upload } from "../upload"; +import { storage } from "../utils"; +import { useRefs } from "./comm"; + +export function useCool() { + return { + router, + service, + upload, + storage, + ...useRefs(), + }; +} + +export * from "./app"; +export * from "./comm"; +export * from "./hmr"; +export * from "./pager"; +export * from "./wx"; diff --git a/cool/hooks/pager.ts b/cool/hooks/pager.ts new file mode 100644 index 0000000..b8993fa --- /dev/null +++ b/cool/hooks/pager.ts @@ -0,0 +1,168 @@ +import { computed, getCurrentInstance, onUnmounted, reactive } from "vue"; +import { onPullDownRefresh, onReachBottom, onUnload } from "@dcloudio/uni-app"; +import { useUi } from "/$/cool-ui"; + +interface Res { + list: any[]; + pagination: { + total: number; + page: number; + size: number; + [key: string]: any; + }; + [key: string]: any; +} + +export function usePager() { + const { proxy }: any = getCurrentInstance(); + const ui = useUi(); + + // 分页信息 + const pager = reactive({ + params: {}, + pagination: { + page: 1, + size: 20, + total: 0, + }, + list: [] as T[], + loading: false, + finished: false, + }); + + // 事件 + const events: any = {}; + + // 列表 + const list = computed(() => pager.list); + + // 刷新 + async function refresh(params?: any) { + if (pager.loading) { + return false; + } + + if (proxy.refresh) { + await proxy.refresh(params); + } else if (proxy.$.exposed.refresh) { + await proxy.$.exposed.refresh(params); + } else { + console.log("use defineExpose({ refresh })"); + } + } + + // 数据 + function onData(cb: (list: T[]) => void) { + events.onData = cb; + } + + // 刷新 + function onRefresh(params: any = {}, options?: { clear?: boolean; loading?: boolean }) { + const { clear, loading = true } = options || {}; + + // 是否清空 + if (clear) { + if (params.page == 1) { + pager.list = []; + pager.finished = false; + } + } + + // 合并请求参数 + Object.assign(pager.params, params); + + const data = { + ...pager.pagination, + ...pager.params, + total: undefined, + }; + + // 是否显示加载动画 + if (data.page == 1 && loading) { + ui.showLoading(); + } + + pager.loading = true; + + // 完成 + function done() { + ui.hideLoading(); + pager.loading = false; + } + + return { + data, + done, + next: (req: Promise) => { + return new Promise((resolve, reject) => { + req.then((res: Res) => { + // 设置列表数据 + if (data.page == 1) { + pager.list = res.list; + } else { + pager.list.push(...res.list); + } + + // 追加事件 + if (events.onData) { + events.onData(res.list); + } + + // 是否加载完成 + pager.finished = pager.list.length === res.pagination.total; + // 分页信息 + pager.pagination = res.pagination; + + done(); + resolve(res); + }).catch((err) => { + done(); + ui.showToast(err.message); + reject(err); + }); + }); + }, + }; + } + + // 关闭 + function close() { + isReg = false; + ui.hideLoading(); + } + + // 是否注册,避免在组件中重复注入事件问题 + let isReg = true; + + // 上拉加载 + onReachBottom(() => { + if (isReg) { + if (!pager.finished) { + refresh({ page: pager.pagination.page + 1 }); + } + } + }); + + // 下拉刷新 + onPullDownRefresh(async () => { + if (isReg) { + await refresh({ page: 1 }); + uni.stopPullDownRefresh(); + } + }); + + // 组件销毁 + onUnmounted(close); + + // 离开页面 + onUnload(close); + + return { + pager, + list, + onData, + onRefresh, + onPullDownRefresh, + onReachBottom, + }; +} diff --git a/cool/hooks/wx.ts b/cool/hooks/wx.ts new file mode 100644 index 0000000..7ac051e --- /dev/null +++ b/cool/hooks/wx.ts @@ -0,0 +1,288 @@ +import { ref } from "vue"; +import { onReady, onShow } from "@dcloudio/uni-app"; +import { config } from "/@/config"; +import { getUrlParam, storage } from "../utils"; +import { service } from "../service"; + +// #ifdef H5 +import wx from "weixin-js-sdk"; +// #endif + +export function useWx() { + const { platform } = uni.getSystemInfoSync(); + + // 授权码 + const code = ref(""); + + // 获取授权码 + async function getCode() { + return new Promise((resolve) => { + // #ifdef MP-WEIXIN + uni.login({ + provider: "weixin", + success: (res) => { + code.value = res.code; + resolve(res.code); + }, + }); + // #endif + }); + } + + // 是否微信浏览器 + function isWxBrowser() { + // #ifdef H5 + const ua: any = window.navigator.userAgent.toLowerCase(); + if (ua.match(/MicroMessenger/i) == "micromessenger") { + return true; + } else { + return false; + } + // #endif + + // #ifndef H5 + return false; + // #endif + } + + // 是否安装了微信 + function hasApp() { + // #ifdef APP + return plus.runtime.isApplicationExist({ pname: "com.tencent.mm", action: "weixin://" }); + // #endif + + // #ifndef APP + return true; + // #endif + } + + // 下载微信 + function downloadApp() { + // #ifdef APP + if (platform == "android") { + const Uri: any = plus.android.importClass("android.net.Uri"); + const uri: any = Uri.parse("market://details?id=" + "com.tencent.mm"); + const Intent: any = plus.android.importClass("android.content.Intent"); + const intent: any = new Intent(Intent.ACTION_VIEW, uri); + const main: any = plus.android.runtimeMainActivity(); + main.startActivity(intent); + } else { + plus.runtime.openURL( + "itms-apps://" + "itunes.apple.com/cn/app/wechat/id414478124?mt=8", + ); + } + // #endif + } + + // 微信公众号配置 + const mpConfig = { + appId: "", + }; + + // 获取微信公众号配置 + function getMpConfig() { + // #ifdef H5 + if (isWxBrowser()) { + service.user.comm + .wxMpConfig({ + url: `${location.origin}${location.pathname}`, + }) + .then((res) => { + wx.config({ + debug: config.app.wx.debug, + jsApiList: ["chooseWXPay"], + ...res, + }); + + Object.assign(mpConfig, res); + }); + } + // #endif + } + + // 微信公众号授权 + function mpAuth() { + const redirect_uri = encodeURIComponent( + `${location.origin}${location.pathname}#/pages/user/login`, + ); + const response_type = "code"; + const scope = "snsapi_userinfo"; + const state = "STATE"; + + const url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${mpConfig.appId}&redirect_uri=${redirect_uri}&response_type=${response_type}&scope=${scope}&state=${state}#wechat_redirect`; + + location.href = url; + } + + // 微信公众号登录 + async function mpLogin() { + return new Promise((resolve) => { + const code = getUrlParam("code"); + const mpCode = storage.get("mpCode"); + + let url = window.location.href; + url = url.replace(/(\?[^#]*)#/, "#"); + window.history.replaceState({}, "", url); + + if (code != mpCode) { + storage.set("mpCode", code); + resolve(code); + } else { + resolve(null); + } + }); + } + + // 微信公众号支付 + async function mpPay(params: wx.IchooseWXPay & { timeStamp: number }): Promise { + return new Promise((resolve, reject) => { + if (!isWxBrowser()) { + return reject({ + message: "请在微信浏览器中打开", + }); + } + + wx.chooseWXPay({ + ...params, + timestamp: params.timeStamp, + success() { + resolve(); + }, + complete(e: { errMsg: string }) { + switch (e.errMsg) { + case "chooseWXPay:cancel": + reject({ message: "已取消支付" }); + break; + + default: + reject({ message: "支付失败" }); + } + }, + }); + }); + } + + // 微信app登录 + function appLogin(): Promise { + let all: any; + let Service: any; + return new Promise((resolve, reject) => { + plus.oauth.getServices((Services: any) => { + all = Services; + Object.keys(all).some((key) => { + if (all[key].id == "weixin") { + Service = all[key]; + } + }); + Service.authorize(resolve, reject); + }, reject); + }); + } + + // 微信app支付 + function appPay(orderInfo: { + appid: string; + noncestr: string; + package: string; + partnerid: string; + prepayid: string; + timestamp: string; + sign: string; + [key: string]: any; + }): Promise { + return new Promise((resolve, reject) => { + uni.requestPayment({ + provider: "wxpay", + orderInfo, + success() { + resolve(); + }, + fail() { + reject({ message: "已取消支付" }); + }, + }); + }); + } + + // 微信小程序登录 + async function miniLogin(): Promise<{ code: string; [key: string]: any }> { + return new Promise((resolve, reject) => { + // 兼容 Mac + const k = platform === "mac" ? "getUserInfo" : "getUserProfile"; + + uni[k]({ + lang: "zh_CN", + desc: "授权信息仅用于用户登录", + success({ iv, encryptedData, signature, rawData }) { + function next() { + resolve({ + iv, + encryptedData, + signature, + rawData, + code: code.value, + }); + } + + // 检查登录状态是否过期 + uni.checkSession({ + success() { + next(); + }, + fail() { + getCode().then(next); + }, + }); + }, + fail(err) { + console.error(err); + getCode(); + + reject({ + message: "登录授权失败", + }); + }, + }); + }); + } + + // 微信小程序支付 + function miniPay(params: any): Promise { + return new Promise((resolve, reject) => { + uni.requestPayment({ + provider: "wxpay", + ...params, + success() { + resolve(); + }, + fail() { + reject({ message: "已取消支付" }); + }, + }); + }); + } + + onShow(() => { + getCode(); + }); + + onReady(() => { + getMpConfig(); + }); + + return { + code, + getCode, + isWxBrowser, + hasApp, + downloadApp, + mpConfig, + mpAuth, + mpLogin, + mpPay, + miniLogin, + miniPay, + appLogin, + appPay, + }; +} diff --git a/cool/index.ts b/cool/index.ts new file mode 100644 index 0000000..550ef18 --- /dev/null +++ b/cool/index.ts @@ -0,0 +1,9 @@ +export * from "./hooks"; +export * from "./router"; +export * from "./store"; +export * from "./upload"; +export * from "./service"; +export * from "./module"; +export * from "../config"; +export type * from "./types"; +export { storage } from "./utils"; diff --git a/cool/module/index.ts b/cool/module/index.ts new file mode 100644 index 0000000..c24aa68 --- /dev/null +++ b/cool/module/index.ts @@ -0,0 +1,21 @@ +import type { Module } from "../types"; +import { hmr } from "../hooks"; + +// 模块列表 +const list: Module[] = hmr.getData("modules", []); + +// 模块对象 +const module = { + list, + get(name: string): Module { + return this.list.find((e) => e.name == name)!; + }, + config(name: string) { + return this.get(name).options || {}; + }, + add(data: Module) { + this.list.push(data); + }, +}; + +export { module }; diff --git a/cool/router/index.ts b/cool/router/index.ts new file mode 100644 index 0000000..2bca00c --- /dev/null +++ b/cool/router/index.ts @@ -0,0 +1,325 @@ +import { last } from "lodash-es"; +import { ctx } from "virtual:ctx"; +import { storage } from "../utils"; +import { config } from "../../config"; + +type PushOptions = + | string + | { + path: string; + mode?: "navigateTo" | "redirectTo" | "reLaunch" | "switchTab" | "preloadPage"; + events?: { + [key: string]: (data: any) => void; + }; + query?: { + [key: string]: any; + }; + params?: { + [key: string]: any; + }; + isGuard?: boolean; + [key: string]: any; + }; + +type Tabs = { + text?: string; + pagePath: string; + iconPath?: string; + selectedIconPath?: string; + [key: string]: any; +}[]; + +// 路由列表 +const routes = [...ctx.pages]; + +// 子包 +if (ctx.subPackages) { + ctx.subPackages.forEach((a: { pages: any[]; root: string }) => { + a.pages.forEach((b) => { + routes.push({ + ...b, + path: a.root + "/" + b.path, + }); + }); + }); +} + +// 钩子函数 +const fn: { [key: string]: (...args: any[]) => any } = {}; + +// 路由 +const router = { + // 底部导航 + get tabs(): Tabs { + if (ctx.tabBar) { + return ctx.tabBar.list || []; + } else { + return []; + } + }, + + // 全局样式配置 + globalStyle: ctx.globalStyle, + + // 路由列表 + routes, + + // 地址栏参数 + get query() { + const info = this.info(); + + return { + ...info?.query, + }; + }, + + // 临时参数 + get params() { + return storage.get("router-params") || {}; + }, + + // 页面地址 + get pages() { + return { + home: "/" + (ctx.tabBar ? this.tabs[0].pagePath : ctx.pages[0].path), + ...config.app.pages, + }; + }, + + // 当前页 + currentPage(): { [key: string]: any } { + return last(getCurrentPages())!; + }, + + // 当前页 + get path() { + return router.info()?.path; + }, + + // 当前路由信息 + info() { + const page = last(getCurrentPages()); + + if (page) { + const { route, $page, $vm, $getAppWebview }: any = page; + + const q: any = {}; + + try { + $page?.fullPath + .split("?")[1] + .split("&") + .forEach((e: string) => { + const [k, v] = e.split("="); + q[k] = decodeURIComponent(v); + }); + } catch (e) {} + + // 页面配置 + const style = this.routes.find((e) => e.path == route)?.style; + + let d = { + $vm, + $getAppWebview, + path: `/${route}`, + fullPath: $page?.fullPath, + query: q || {}, + isTab: this.isTab(route), + style, + isCustomNavbar: style?.navigationStyle == "custom", + }; + + return d; + } else { + return null; + } + }, + + // 跳转 + push(options: PushOptions) { + if (typeof options == "string") { + options = { + path: options, + mode: "navigateTo", + }; + } + + let { + path, + mode = "navigateTo", + animationType, + animationDuration, + events, + success, + fail, + complete, + query, + params, + isGuard = true, + } = options || {}; + + if (query) { + let arr = []; + + for (let i in query) { + if (query[i] !== undefined) { + arr.push(`${i}=${query[i]}`); + } + } + + path += "?" + arr.join("&"); + } + + if (params) { + storage.set("router-params", params); + } + + let data = { + url: path, + animationType, + animationDuration, + events, + success, + fail, + complete, + }; + + if (this.isTab(path)) { + mode = "switchTab"; + } + + const next = () => { + switch (mode) { + case "navigateTo": + uni.navigateTo(data); + break; + + case "redirectTo": + uni.redirectTo(data); + break; + + case "reLaunch": + uni.reLaunch(data); + break; + + case "switchTab": + uni.switchTab(data); + break; + + case "preloadPage": + uni.preloadPage(data); + break; + } + }; + + if (fn.beforeEach && isGuard) { + fn.beforeEach({ path: options.path, query }, next, (options: PushOptions) => { + this.push(options); + }); + } else { + next(); + } + }, + + // 后退 + back(options?: UniApp.NavigateBackOptions) { + if (this.isFirstPage()) { + this.home(); + } else { + uni.navigateBack(options || {}); + } + }, + + // 执行当前页面的某个方法 + callMethod(name: string, data?: any) { + const { $vm } = this.info()!; + + if ($vm) { + if ($vm.$.exposed?.[name]) { + return $vm.$.exposed[name](data); + } + } + }, + + // 页面栈长度是否只有1 + isFirstPage() { + return getCurrentPages().length == 1; + }, + + // 是否当前页 + isCurrentPage(path: string) { + return this.info()?.path == path; + }, + + // 回到首页 + home() { + this.push(this.pages.home); + }, + + // tabbar + switchTab(name: string) { + let item = this.tabs.find((e) => e.pagePath.includes(name)); + + if (item) { + this.push({ + path: `/${item.pagePath}`, + mode: "switchTab", + }); + } else { + console.error("不存在Tab页", name); + } + }, + + // 是否是Tab页 + isTab(path: string) { + return !!this.tabs.find((e) => path == `/${e.pagePath}`); + }, + + // 去登陆 + login(options?: { reLaunch: boolean }) { + const { reLaunch = false } = options || {}; + + this.push({ + path: this.pages.login, + mode: reLaunch ? "reLaunch" : "navigateTo", + isGuard: false, + }); + }, + + // 登录成功后操作 + nextLogin(type?: string) { + const pages = getCurrentPages(); + const index = pages.findIndex((e) => this.pages.login.includes(e.route!)); + + if (index <= 0) { + this.home(); + } else { + router.back({ + delta: pages.length - index, + }); + } + + // 登录方式 + storage.set("loginType", type); + + // 登录回调 + if (fn.afterLogin) { + fn.afterLogin(); + } + + // 事件 + uni.$emit("afterLogin", { type }); + }, + + // 跳转前钩子 + beforeEach(callback: (to: any, next: () => void) => void) { + fn.beforeEach = callback; + }, + + // 登录后回调 + afterLogin(callback: () => void) { + fn.afterLogin = callback; + }, +}; + +export { router }; diff --git a/cool/service/base.ts b/cool/service/base.ts new file mode 100644 index 0000000..3411af4 --- /dev/null +++ b/cool/service/base.ts @@ -0,0 +1,123 @@ +// @ts-nocheck +import { has } from "lodash-es"; +import { isDev, config } from "../../config"; +import request from "./request"; + +export function Service( + value: + | { + namespace?: string; + url?: string; + mock?: boolean; + } + | string +) { + return function (target: any) { + // 命名 + if (typeof value == "string") { + target.prototype.namespace = value; + } + + // 复杂项 + if (has(value, "namespace")) { + target.prototype.namespace = value.namespace; + target.prototype.mock = value.mock; + + if (value.url) { + target.prototype.url = value.url; + } + } + }; +} + +export class BaseService { + constructor( + options = {} as { + namespace?: string; + } + ) { + if (options?.namespace) { + this.namespace = options.namespace; + } + } + + request(options: any = {}) { + if (!options.params) options.params = {}; + + let ns = ""; + + // 是否 mock 模式 + if (this.mock || config.test.mock) { + // 测试 + } else { + if (isDev) { + ns = this.proxy || config.baseUrl; + } else { + ns = this.proxy ? this.url : config.baseUrl; + } + } + + // 拼接前缀 + if (this.namespace) { + ns += "/" + this.namespace; + } + + // 处理地址 + if (options.proxy === undefined || options.proxy) { + options.url = ns + options.url; + } + + // 处理参数 + options.data = + options.method?.toLocaleUpperCase() == "POST" ? options.data : options.params; + + return request(options); + } + + list(data: any) { + return this.request({ + url: "/list", + method: "POST", + data, + }); + } + + page(data: any) { + return this.request({ + url: "/page", + method: "POST", + data, + }); + } + + info(params: any) { + return this.request({ + url: "/info", + params, + }); + } + + update(data: any) { + return this.request({ + url: "/update", + method: "POST", + data, + }); + } + + delete(data: any) { + return this.request({ + url: "/delete", + method: "POST", + data, + }); + } + + add(data: any) { + return this.request({ + url: "/add", + method: "POST", + data, + }); + } +} diff --git a/cool/service/index.ts b/cool/service/index.ts new file mode 100644 index 0000000..8b6c684 --- /dev/null +++ b/cool/service/index.ts @@ -0,0 +1,9 @@ +import { BaseService } from "./base"; + +// service 数据集合 +// @ts-ignore +export const service: Eps.Service = { + request: new BaseService().request, +}; + +export * from "./base"; diff --git a/cool/service/request.ts b/cool/service/request.ts new file mode 100644 index 0000000..ce69a75 --- /dev/null +++ b/cool/service/request.ts @@ -0,0 +1,132 @@ +import { useStore } from "../store"; +import { router } from "../router"; +import { isDev, config } from "../../config"; +import { storage } from "../utils"; + +// 请求队列 +let requests: any[] = []; + +// Token 是否刷新中 +let isRefreshing = false; + +export default function request(options: any) { + // 缓存信息 + const { user } = useStore(); + + // 标识 + let Authorization = user.token || ""; + + // 忽略标识 + config.ignore.token.forEach((e) => { + if (options.url.includes(e)) { + Authorization = ""; + } + }); + + if (isDev) { + console.log(`[${options.method || "GET"}] ${options.url}`); + } + + return new Promise(async (resolve, reject) => { + // 继续请求 + function next() { + uni.request({ + ...options, + + header: { + Authorization, + ...options.header, + }, + + success(res) { + const { code, data, message } = res.data as { + code: number; + message: string; + data: any; + }; + + // 无权限 + if (res.statusCode === 401) { + if (router.info()?.path == router.pages.login) { + return reject({ message }); + } else { + user.logout(); + } + } + + // 服务异常 + if (res.statusCode === 502) { + return reject({ + message: "服务异常", + }); + } + + // 未找到 + if (res.statusCode === 404) { + return reject({ + message: `[404] ${options.url}`, + }); + } + + // 成功 + if (res.statusCode === 200) { + switch (code) { + case 1000: + resolve(data); + break; + default: + reject({ message, code }); + } + } else { + reject({ message: "服务异常" }); + } + }, + + fail(err) { + reject({ message: err.errMsg }); + }, + }); + } + + // 刷新token处理 + if (!options.url.includes("refreshToken")) { + if (Authorization) { + // 判断 token 是否过期 + if (storage.isExpired("token")) { + // 判断 refreshToken 是否过期 + if (storage.isExpired("refreshToken")) { + // 退出登录 + return user.logout(); + } + + // 是否在刷新中 + if (!isRefreshing) { + isRefreshing = true; + user.refreshToken() + .then((token) => { + requests.forEach((cb) => cb(token)); + requests = []; + isRefreshing = false; + }) + .catch((err) => { + user.logout(); + reject(err); + }); + } + + return new Promise((resolve) => { + // 继续请求 + requests.push((token: string) => { + // 重新设置 token + Authorization = token; + next(); + resolve(); + }); + }); + } + } + } + + next(); + }); +} diff --git a/cool/service/sign.ts b/cool/service/sign.ts new file mode 100644 index 0000000..c4a7b15 --- /dev/null +++ b/cool/service/sign.ts @@ -0,0 +1,22 @@ +import md5 from "md5"; + +function useSign(params: any) { + const timestamp = new Date().getTime(); + + let arr = [`timestamp=${timestamp}`]; + + for (const i in params) { + arr.push(`${i}=${decodeURIComponent(params[i])}`); + } + + arr.sort(); + + const sign = md5(arr.join("&")); + + return { + timestamp, + sign, + }; +} + +export { useSign }; diff --git a/cool/store/dict.ts b/cool/store/dict.ts new file mode 100644 index 0000000..804d929 --- /dev/null +++ b/cool/store/dict.ts @@ -0,0 +1,66 @@ +import { defineStore } from "pinia"; +import { computed, reactive, toRaw } from "vue"; +import { deepTree } from "../utils"; +import { service } from "../service"; +import { isDev } from "/@/config"; +import { isString } from "lodash-es"; +import type { Dict } from "../types"; + +const useDictStore = defineStore("dict", () => { + // 对象数据 + const data = reactive({}); + + function get(name: string) { + return computed(() => data[name]).value || []; + } + + // 获取名称 + function getLabel(name: string | any[], value: any): string { + const arr: any[] = String(value)?.split(",") || []; + + return arr + .map((e) => { + return (isString(name) ? get(name) : name).find((a) => a.value == e)?.label; + }) + .filter(Boolean) + .join(","); + } + + // 刷新 + async function refresh(types?: string[]) { + return service.dict.info + .data({ + types, + }) + .then((res: Dict.Data) => { + const d: any = {}; + + for (const [i, arr] of Object.entries(res)) { + arr.forEach((e) => { + e.label = e.name; + e.value = e.value !== undefined ? e.value : e.id; + }); + + d[i] = deepTree(arr, "desc"); + } + + Object.assign(data, d); + + if (isDev) { + console.log("字典数据:"); + console.log(toRaw(data)); + } + + return data; + }); + } + + return { + data, + get, + getLabel, + refresh, + }; +}); + +export { useDictStore }; diff --git a/cool/store/index.ts b/cool/store/index.ts new file mode 100644 index 0000000..f84ee40 --- /dev/null +++ b/cool/store/index.ts @@ -0,0 +1,9 @@ +import { useUserStore } from "./user"; +import { useDictStore } from "./dict"; + +export function useStore() { + return { + user: useUserStore(), + dict: useDictStore(), + }; +} diff --git a/cool/store/user.ts b/cool/store/user.ts new file mode 100644 index 0000000..39b3c8c --- /dev/null +++ b/cool/store/user.ts @@ -0,0 +1,94 @@ +import { defineStore } from "pinia"; +import { ref } from "vue"; +import { deepMerge, storage } from "../utils"; +import { router } from "../router"; +import { service } from "../service"; +import type { User } from "../types"; + +// 本地缓存 +const data = storage.info(); + +const useUserStore = defineStore("user", function () { + // 标识 + const token = ref(data.token || ""); + + // 设置标识 + function setToken(data: User.Token) { + token.value = data.token; + + // 访问 + storage.set("token", data.token, data.expire - 5); + // 刷新 + storage.set("refreshToken", data.refreshToken, data.refreshExpire - 5); + } + + // 刷新标识 + async function refreshToken() { + return service.user.login + .refreshToken({ + refreshToken: storage.get("refreshToken"), + }) + .then((res) => { + setToken(res); + return res.token; + }); + } + + // 用户信息 + const info = ref(data.userInfo); + + // 设置用户信息 + function set(value: User.Info) { + info.value = value; + storage.set("userInfo", value); + } + + // 更新用户信息 + async function update(data: User.Info & { [key: string]: any }) { + set(deepMerge(info.value, data)); + return service.user.info.updatePerson(data); + } + + // 清除用户 + function clear() { + storage.remove("userInfo"); + storage.remove("token"); + storage.remove("refreshToken"); + token.value = ""; + info.value = undefined; + } + + // 退出 + function logout() { + clear(); + router.login({ reLaunch: true }); + } + + // 获取用户信息 + async function get() { + return service.user.info + .person() + .then((res) => { + if (res) { + set(res); + } + return res; + }) + .catch(() => { + logout(); + }); + } + + return { + token, + setToken, + refreshToken, + info, + get, + set, + update, + logout, + }; +}); + +export { useUserStore }; diff --git a/cool/types/index.d.ts b/cool/types/index.d.ts new file mode 100644 index 0000000..923b8ce --- /dev/null +++ b/cool/types/index.d.ts @@ -0,0 +1,43 @@ +export declare interface ModuleConfig { + name?: string; + description?: string; + order?: number; + demo?: { label: string; path: string }; + options?: { + [key: string]: any; + }; + onLoad?(options?: any): any; +} + +export declare interface Module extends ModuleConfig { + name: string; + options: { + [key: string]: any; + }; + [key: string]: any; +} + +export namespace User { + interface Token { + token: string; + expire: number; + refreshToken: string; + refreshExpire: number; + } + + interface Info extends Eps.UserInfoEntity {} +} + +export namespace Dict { + interface Item { + id: string; + label: string; + value: any; + children?: Item[]; + [key: string]: any; + } + + interface Data { + [key: string]: Item[]; + } +} diff --git a/cool/upload/comm.ts b/cool/upload/comm.ts new file mode 100644 index 0000000..c99fa46 --- /dev/null +++ b/cool/upload/comm.ts @@ -0,0 +1,48 @@ +import { isArray, has } from "lodash-es"; + +function parse(rules: string[], { url, size }: any) { + if (!url) { + return ""; + } + + let h = 0; + let w = 0; + + if (isArray(size)) { + h = size[0]; + w = size[1]; + } else if (has(size, "h")) { + h = size.h; + w = size.w; + + if (size.m) { + rules.push(`m_${size.m}`); + } + } else { + h = w = size; + } + + url += url.includes("?") ? "&" : "?"; + + if (h) { + rules.push(`h_${h}`); + } + + if (w) { + rules.push(`w_${w}`); + } + + return `${url}${rules.join(",")}`; +} + +type Size = number | number[] | { h?: number; w?: number; m?: string }; + +function videoPoster(url: string, size: Size) { + return parse(["x-oss-process=video/snapshot,t_1000,f_jpg,m_fast"], { url, size }); +} + +function resizeImage(url: string, size: Size) { + return parse(["x-oss-process=image/resize"], { url, size }); +} + +export { videoPoster, resizeImage }; diff --git a/cool/upload/index.ts b/cool/upload/index.ts new file mode 100644 index 0000000..df2bb2f --- /dev/null +++ b/cool/upload/index.ts @@ -0,0 +1,141 @@ +import dayjs from "dayjs"; +import { config } from "../../config"; +import { service } from "../service"; +import { basename, pathJoin, uuid } from "../utils"; +import { useStore } from "../store"; +import { videoPoster, resizeImage } from "./comm"; + +declare interface UploadCallback { + onProgressUpdate?(options: UniApp.OnProgressUpdateResult): void; + onTask?(task: UniApp.UploadTask): void; +} + +export async function upload(file: any, cb?: UploadCallback): Promise { + const { onProgressUpdate, onTask } = cb || {}; + + // 获取上传模式 + const { mode, type } = await service.base.comm.uploadMode(); + + // 用户缓存 + const { user } = useStore(); + + // 本地上传 + const isLocal = mode == "local"; + + // 文件名 + const fileName = uuid() + "_" + (file.name || basename(file.path)); + + // Key + const key = isLocal ? fileName : pathJoin("app", dayjs().format("YYYY-MM-DD"), fileName); + + // 多种上传请求 + return new Promise((resolve, reject) => { + // 上传文件 + function next({ host, preview, data }: { host: string; preview?: string; data?: any }) { + // 签名数据 + const fd = { + ...data, + key, + }; + + // 上传 + const task = uni.uploadFile({ + url: host, + filePath: file.path, + name: "file", + header: isLocal + ? { + Authorization: user.token, + } + : {}, + formData: fd, + success(res) { + if (isLocal) { + const { code, data, message } = JSON.parse(res.data); + if (code == 1000) { + resolve(data); + } else { + reject(message); + } + } else { + resolve(pathJoin(preview || host, fd.key)); + } + }, + fail(err) { + reject(err); + }, + }); + + if (onTask) { + onTask(task); + } + + if (onProgressUpdate) { + task.onProgressUpdate(onProgressUpdate); + } + } + + if (isLocal) { + next({ + host: config.baseUrl + "/app/base/comm/upload", + }); + } else { + service.base.comm + .upload( + type == "aws" + ? { + key, + } + : {} + ) + .then((res) => { + switch (type) { + // 腾讯 + case "cos": + next({ + host: res.url, + data: res.credentials, + }); + break; + // 阿里 + case "oss": + next({ + host: res.host, + data: { + OSSAccessKeyId: res.OSSAccessKeyId, + policy: res.policy, + signature: res.signature, + }, + }); + break; + // 七牛 + case "qiniu": + next({ + host: res.uploadUrl, + preview: res.publicDomain, + data: { + token: res.token, + }, + }); + break; + // aws + case "aws": + next({ + host: res.url, + data: res.fields, + }); + break; + } + }) + .catch(reject); + } + }); +} + +export function useUpload() { + return { + upload, + videoPoster, + resizeImage, + }; +} diff --git a/cool/utils/canvas.ts b/cool/utils/canvas.ts new file mode 100644 index 0000000..e6cecc2 --- /dev/null +++ b/cool/utils/canvas.ts @@ -0,0 +1,603 @@ +import { getCurrentInstance } from "vue"; +import { isEmpty, isString, cloneDeep, isObject } from "lodash-es"; + +// 渲染参数 +declare interface RenderOptions { + x: number; + y: number; + height?: number; + width?: number; + [key: string]: any; +} + +// 文本渲染参数 +declare interface TextRenderOptions extends RenderOptions { + text: string; + color?: string; + fontSize?: number; + textAlign?: "left" | "right" | "center"; + overflow?: "ellipsis"; + lineClamp?: number; + letterSpace?: number; + lineHeight?: number; +} + +// 图片渲染参数 +declare interface ImageRenderOptions extends RenderOptions { + url: string; + mode?: "aspectFill" | "aspectFit"; + radius?: number; +} + +// 块渲染参数 +declare interface DivRenderOptions extends RenderOptions { + radius?: number; + backgroundColor?: string; + border?: { + width: number; + color: string; + }; +} + +// 导出图片参数 +declare interface CreateImageOptins { + x?: number; + y?: number; + width?: number; + height?: number; + destWidth?: number; + destHeight?: number; + fileType?: "jpg" | "png"; + quality?: number; +} + +class Canvas { + ctx: any; + canvasId: any; + scope: any; + renderQuene: any; + imageQueue: any; + + constructor(canvasId: string) { + // 绘图上下文 + this.ctx = null; + + // canvas id + this.canvasId = canvasId; + + // 当前页面作用域 + const { proxy }: any = getCurrentInstance(); + this.scope = proxy; + + // 渲染队列 + this.renderQuene = []; + + // 图片队列 + this.imageQueue = []; + + // 创建画布 + this.create(); + } + + // 创建画布 + create() { + this.ctx = uni.createCanvasContext(this.canvasId, this.scope); + return this; + } + + // 块 + div(options: DivRenderOptions) { + let render = () => { + this.divRender(options); + }; + this.renderQuene.push(render); + return this; + } + + // 文本 + text(options: TextRenderOptions) { + let render = () => { + this.textRender(options); + }; + this.renderQuene.push(render); + return this; + } + + // 图片 + image(options: ImageRenderOptions) { + let render = () => { + this.imageRender(options); + }; + this.imageQueue.push(options); + this.renderQuene.push(render); + return this; + } + + // 绘画 + draw(save = false) { + return new Promise((resolve) => { + let next = () => { + this.render(); + this.ctx.draw(save, () => { + resolve(true); + }); + }; + + if (!isEmpty(this.imageQueue)) { + this.preLoadImage().then(next); + } else { + next(); + } + }); + } + + // 生成图片 + createImage(options?: CreateImageOptins): Promise { + return new Promise((resolve, reject) => { + let data = { + canvasId: this.canvasId, + ...options, + success: (res: any) => { + // #ifdef MP-ALIPAY + resolve(res.apFilePath); + // #endif + + // #ifndef MP-ALIPAY + resolve(res.tempFilePath); + // #endif + }, + fail: reject, + }; + + // #ifdef MP-ALIPAY + this.ctx.toTempFilePath(data); + // #endif + + // #ifndef MP-ALIPAY + uni.canvasToTempFilePath(data, this.scope); + // #endif + }); + } + + // 保存图片 + saveImage(options?: CreateImageOptins) { + uni.showLoading({ + title: "图片下载中...", + }); + this.createImage(options).then((path: any) => { + return new Promise((resolve) => { + uni.hideLoading(); + uni.saveImageToPhotosAlbum({ + filePath: path, + success: () => { + uni.showToast({ + title: "保存图片成功", + }); + resolve(path); + }, + fail: (err) => { + // #ifdef MP-ALIPAY + uni.showToast({ + title: "保存图片成功", + }); + // #endif + + // #ifndef MP-ALIPAY + uni.showToast({ + title: "保存图片失败", + icon: "none", + }); + // #endif + }, + }); + }); + }); + } + + // 预览图片 + previewImage(options?: CreateImageOptins) { + this.createImage(options).then((url: string | any) => { + uni.previewImage({ + urls: [url], + }); + }); + } + + // 下载图片 + downLoadImage(item: any) { + return new Promise((resolve, reject) => { + if (!item.url) { + return reject("url 不能为空"); + } + + // 处理base64 + // #ifdef MP + if (item.url.indexOf("data:image") >= 0) { + let extName = item.url.match(/data\:\S+\/(\S+);/); + if (extName) { + extName = extName[1]; + } + const fs = uni.getFileSystemManager(); + const fileName = Date.now() + "." + extName; + // @ts-ignore + const filePath = wx.env.USER_DATA_PATH + "/" + fileName; + + return fs.writeFile({ + filePath, + data: item.url.replace(/^data:\S+\/\S+;base64,/, ""), + encoding: "base64", + success: () => { + item.url = filePath; + resolve(filePath); + }, + }); + } + // #endif + + // 是否网络图片 + const isHttp = item.url.includes("http"); + + uni.getImageInfo({ + src: item.url, + success: (result) => { + item.sheight = result.height; + item.swidth = result.width; + + if (isHttp) { + item.url = result.path; + } + + resolve(item.url); + }, + fail: (err) => { + console.log(err, item.url); + reject(err); + }, + }); + + return 1; + }); + } + + // 预加载图片 + async preLoadImage() { + await Promise.all(this.imageQueue.map(this.downLoadImage)); + } + + // 设置背景颜色 + setBackground(options: any) { + if (!options) return null; + + let backgroundColor; + + if (!isString(options)) { + backgroundColor = options; + } + + if (isString(options.backgroundColor)) { + backgroundColor = options.backgroundColor; + } + + if (isObject(options.backgroundColor)) { + let { startX, startY, endX, endY, gradient } = options.backgroundColor; + const rgb = this.ctx.createLinearGradient(startX, startY, endX, endY); + for (let i = 0, l = gradient.length; i < l; i++) { + rgb.addColorStop(gradient[i].step, gradient[i].color); + } + backgroundColor = rgb; + } + + this.ctx.setFillStyle(backgroundColor); + + return this; + } + + // 设置边框 + setBorder(options: any) { + if (!options.border) return this; + + let { x, y, width: w, height: h, border, radius: r } = options; + + if (border.width) { + this.ctx.setLineWidth(border.width); + } + + if (border.color) { + this.ctx.setStrokeStyle(border.color); + } + + // 偏移距离 + let p = border.width / 2; + + // 是否有圆角 + if (r) { + this.drawRadiusRoute(x - p, y - p, w + 2 * p, h + 2 * p, r + p); + this.ctx.stroke(); + } else { + this.ctx.strokeRect(x - p, y - p, w + 2 * p, h + 2 * p); + } + + return this; + } + + // 设置缩放,旋转 + setTransform(options: any) { + if (options.scale) { + } + if (options.rotate) { + } + } + + // 带有圆角的路径绘制 + drawRadiusRoute(x: number, y: number, w: number, h: number, r: number) { + this.ctx.beginPath(); + this.ctx.moveTo(x + r, y, y); + this.ctx.lineTo(x + w - r, y); + this.ctx.arc(x + w - r, y + r, r, 1.5 * Math.PI, 0); + this.ctx.lineTo(x + w, y + h - r); + this.ctx.arc(x + w - r, y + h - r, r, 0, 0.5 * Math.PI); + this.ctx.lineTo(x + r, y + h); + this.ctx.arc(x + r, y + h - r, r, 0.5 * Math.PI, Math.PI); + this.ctx.lineTo(x, y + r); + this.ctx.arc(x + r, y + r, r, Math.PI, 1.5 * Math.PI); + this.ctx.closePath(); + } + + // 裁剪图片 + cropImage( + mode: "aspectFill" | "aspectFit", + width: number, + height: number, + sWidth: number, + sHeight: number, + x: number, + y: number + ) { + let cx, cy, cw, ch, sx, sy, sw, sh; + switch (mode) { + case "aspectFill": + if (width <= height) { + let p = width / sWidth; + cw = width; + ch = sHeight * p; + cx = 0; + cy = (height - ch) / 2; + } else { + let p = height / sHeight; + cw = sWidth * p; + ch = height; + cx = (width - cw) / 2; + cy = 0; + } + break; + case "aspectFit": + if (width <= height) { + let p = height / sHeight; + sw = width / p; + sh = sHeight; + sx = x + (sWidth - sw) / 2; + sy = y; + } else { + let p = width / sWidth; + sw = sWidth; + sh = height / p; + sx = x; + sy = y + (sHeight - sh) / 2; + } + break; + } + return { cx, cy, cw, ch, sx, sy, sw, sh }; + } + + // 获取文本内容 + getTextRows({ + text, + fontSize = 14, + width = 100, + lineClamp = 1, + overflow, + letterSpace = 0, + }: any) { + let arr: any[] = [[]]; + let a = 0; + + for (let i = 0; i < text.length; i++) { + let b = this.getFontPx(text[i], { fontSize, letterSpace }); + + if (a + b > width) { + a = b; + arr.push(text[i]); + } else { + // 最后一行且设置超出省略号 + if ( + overflow == "ellipsis" && + arr.length == lineClamp && + a + 3 * this.getFontPx(".", { fontSize, letterSpace }) > width - 5 + ) { + arr[arr.length - 1] += "..."; + break; + } else { + a += b; + arr[arr.length - 1] += text[i]; + } + } + } + + return arr; + } + + // 获取单个字体像素大小 + getFontPx(text: string, { fontSize = 14, letterSpace }: any) { + if (!text) { + return fontSize / 2 + fontSize / 14 + letterSpace; + } + + let ch = text.charCodeAt(0); + + if ((ch >= 0x0001 && ch <= 0x007e) || (0xff60 <= ch && ch <= 0xff9f)) { + return fontSize / 2 + fontSize / 14 + letterSpace; + } else { + return fontSize + letterSpace; + } + } + + // 渲染块 + divRender(options: DivRenderOptions) { + this.ctx.save(); + this.setBackground(options); + this.setBorder(options); + this.setTransform(options); + + // 区分是否有圆角采用不同模式渲染 + if (options.radius) { + let { x, y } = options; + let w = options.width || 0; + let h = options.height || 0; + let r = options.radius || 0; + // 画路径 + this.drawRadiusRoute(x, y, w, h, r); + // 填充 + this.ctx.fill(); + } else { + this.ctx.fillRect(options.x, options.y, options.width, options.height); + } + this.ctx.restore(); + } + + // 渲染文本 + textRender(options: TextRenderOptions) { + let { + fontSize = 14, + textAlign, + width, + color = "#000000", + x, + y, + letterSpace, + lineHeight = 14, + } = options || {}; + + this.ctx.save(); + + // 设置字体大小 + this.ctx.setFontSize(fontSize); + + // 设置字体颜色 + this.ctx.setFillStyle(color); + + // 获取文本内容 + let rows = this.getTextRows(options); + + // 获取文本行高 + let lh = lineHeight - fontSize; + + // 左偏移 + let offsetLeft = 0; + + // 字体对齐 + if (textAlign && width) { + this.ctx.textAlign = textAlign; + + switch (textAlign) { + case "left": + break; + case "center": + offsetLeft = width / 2; + break; + case "right": + offsetLeft = width; + break; + } + } + + // 逐行写入 + for (let i = 0; i < rows.length; i++) { + let d = offsetLeft; + + if (letterSpace) { + for (let j = 0; j < rows[i].length; j++) { + // 写入文字 + this.ctx.fillText(rows[i][j], x + d, (i + 1) * fontSize + y + lh * i); + + // 设置偏移 + d += this.getFontPx(rows[i][j], options); + } + } else { + // 写入文字 + this.ctx.fillText(rows[i], x + offsetLeft, (i + 1) * fontSize + y + lh * i); + } + } + + this.ctx.restore(); + } + + // 渲染图片 + imageRender(options: ImageRenderOptions) { + this.ctx.save(); + + if (options.radius) { + // 画路径 + this.drawRadiusRoute( + options.x, + options.y, + options.width || options.swidth, + options.height || options.sHeight, + options.radius + ); + // 填充 + this.ctx.fill(); + // 裁剪 + this.ctx.clip(); + } + let temp = cloneDeep(this.imageQueue[0]); + + if (options.mode) { + let { cx, cy, cw, ch, sx, sy, sw, sh } = this.cropImage( + options.mode, + temp.swidth, + temp.sheight, + temp.width, + temp.height, + temp.x, + temp.y + ); + switch (options.mode) { + case "aspectFit": + this.ctx.drawImage(temp.url, sx, sy, sw, sh); + break; + case "aspectFill": + this.ctx.drawImage( + temp.url, + cx, + cy, + cw, + ch, + temp.x, + temp.y, + temp.width, + temp.height + ); + break; + } + } else { + this.ctx.drawImage( + temp.url, + temp.x, + temp.y, + temp.width || temp.swidth, + temp.height || temp.sheight + ); + } + this.imageQueue.shift(); + this.ctx.restore(); + } + + // 渲染全部 + render() { + this.renderQuene.forEach((ele: any) => { + ele(); + }); + } +} + +export { Canvas }; diff --git a/cool/utils/comm.ts b/cool/utils/comm.ts new file mode 100644 index 0000000..ff4619f --- /dev/null +++ b/cool/utils/comm.ts @@ -0,0 +1,163 @@ +import { orderBy } from "lodash-es"; + +export const { platform } = uni.getSystemInfoSync(); + +// 是否安卓 +export const isAndroid = platform == "android"; + +// 是否苹果 +export const isIos = platform == "ios"; + +// 是否小数 +export function isDecimal(value: any): boolean { + return String(value).length - String(value).indexOf(".") + 1 > 0; +} + +// 首字母大写 +export function firstUpperCase(value: string): string { + return value.replace(/\b(\w)(\w*)/g, function ($0, $1, $2) { + return $1.toUpperCase() + $2; + }); +} + +// 深度合并 +export function deepMerge(a: any, b: any) { + let k; + for (k in b) { + a[k] = + a[k] && a[k].toString() === "[object Object]" ? deepMerge(a[k], b[k]) : (a[k] = b[k]); + } + return a; +} + +// 获取地址栏参数 +export function getUrlParam(name: string): string | null { + const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); + const r = window.location.search.substr(1).match(reg); + if (r != null) return decodeURIComponent(r[2]); + return null; +} + +// 列表转树形 +export function deepTree(list: any[], sort?: "desc" | "asc"): any[] { + const newList: any[] = []; + const map: any = {}; + + orderBy(list, "orderNum", sort) + .map((e) => { + map[e.id] = e; + return e; + }) + .forEach((e) => { + const parent = map[e.parentId]; + + if (parent) { + (parent.children || (parent.children = [])).push(e); + } else { + newList.push(e); + } + }); + + return newList; +} + +// 路径转对象 +export function path2Obj(list: any[]) { + const data: any = {}; + + list.forEach(({ path, value }) => { + const arr: string[] = path.split("/"); + const parents = arr.slice(0, arr.length - 1); + const name = basename(path).replace(".ts", ""); + + let curr = data; + + parents.forEach((k) => { + if (!curr[k]) { + curr[k] = {}; + } + + curr = curr[k]; + }); + + curr[name] = value; + }); + + return data; +} + +// 路径拼接 +export function pathJoin(...parts: string[]): string { + if (parts.length === 0) { + return ""; + } + + const firstPart = parts[0]; + let isAbsolute = false; + + // 检查第一个部分是否以 "http" 开头,以确定路径类型(绝对还是相对) + if (firstPart.startsWith("http")) { + isAbsolute = true; + } + + // 标准化路径,去除任何开头或结尾的斜杠 + const normalizedParts = parts.map((part) => part.replace(/(^\/+|\/+$)/g, "")); + + if (isAbsolute) { + // 如果是绝对路径,使用斜杠连接部分 + return normalizedParts.join("/"); + } else { + // 如果是相对路径,使用平台特定的分隔符连接部分 + return normalizedParts.join("/"); + } +} + +// 文件名 +export function filename(path: string): string { + return basename(path.substring(0, path.lastIndexOf("."))); +} + +// 路径名称 +export function basename(path: string): string { + let index = path.lastIndexOf("/"); + index = index > -1 ? index : path.lastIndexOf("\\"); + if (index < 0) { + return path; + } + return path.substring(index + 1); +} + +// 文件扩展名 +export function extname(path: string): string { + return path.substring((path || "").lastIndexOf(".") + 1); +} + +// 横杠转驼峰 +export function toCamel(str: string): string { + return str.replace(/([^-])(?:-+([^-]))/g, function ($0, $1, $2) { + return $1 + $2.toUpperCase(); + }); +} + +// uuid +export function uuid(): string { + const s: any[] = []; + const hexDigits = "0123456789abcdef"; + for (let i = 0; i < 36; i++) { + s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); + } + s[14] = "4"; + s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); + s[8] = s[13] = s[18] = s[23] = "-"; + + return s.join(""); +} + +// 延迟 +export function sleep(duration: number) { + return new Promise((resolve) => { + setTimeout(() => { + resolve(true); + }, duration); + }); +} diff --git a/cool/utils/index.ts b/cool/utils/index.ts new file mode 100644 index 0000000..873f805 --- /dev/null +++ b/cool/utils/index.ts @@ -0,0 +1,4 @@ +export * from "./comm"; +export * from "./ui"; +export * from "./canvas"; +export * from "./storage"; diff --git a/cool/utils/storage.ts b/cool/utils/storage.ts new file mode 100644 index 0000000..d12606b --- /dev/null +++ b/cool/utils/storage.ts @@ -0,0 +1,75 @@ +export const storage = { + // 后缀标识 + suffix: "_deadtime", + + /** + * 获取 + * @param {*} key 关键字 + */ + get(key: string): any { + return uni.getStorageSync(key); + }, + + /** + * 获取全部 + */ + info() { + const { keys } = uni.getStorageInfoSync(); + const d: any = {}; + + keys.forEach((e: string) => { + d[e] = uni.getStorageSync(e); + }); + + return d; + }, + + /** + * 设置 + * @param {*} key 关键字 + * @param {*} value 值 + * @param {*} expires 过期时间 + */ + set(key: string, value: any, expires?: number): void { + uni.setStorageSync(key, value); + + if (expires) { + uni.setStorageSync( + `${key}${this.suffix}`, + Date.parse(String(new Date())) + expires * 1000 + ); + } + }, + + /** + * 是否过期 + * @param {*} key 关键字 + */ + isExpired(key: string): boolean { + return uni.getStorageSync(`${key}${this.suffix}`) - Date.parse(String(new Date())) <= 0; + }, + + /** + * 删除 + * @param {*} key 关键字 + */ + remove(key: string) { + return uni.removeStorageSync(key); + }, + + /** + * 清理 + */ + clear() { + uni.clearStorageSync(); + }, + + /** + * 获取一次后删除 + */ + once(key: string) { + const value = this.get(key); + this.remove(key); + return value; + }, +}; diff --git a/cool/utils/ui.ts b/cool/utils/ui.ts new file mode 100644 index 0000000..16b94e9 --- /dev/null +++ b/cool/utils/ui.ts @@ -0,0 +1,78 @@ +import { isArray, isEmpty, isNumber } from "lodash-es"; +import { computed, getCurrentInstance, nextTick, ref } from "vue"; + +// 获取父组件 +export function getParent(name: string, k1: string[], k2?: string[]) { + const { proxy }: any = getCurrentInstance(); + + const d = ref(); + let n = 10; + + const next = () => { + let parent = proxy.$parent; + + while (parent) { + if (parent.$options.name !== name) { + parent = parent.$parent; + } else { + if (isArray(k2)) { + nextTick(() => { + const child: any = {}; + + (k2 || []).map((key: string) => { + if (proxy[key]) { + child[key] = proxy[key]; + } + }); + + if (!parent.__children) { + parent.__children = []; + } + + if (!isEmpty(child)) { + parent.__children.push(child); + } + }); + } + + return (k1 || []).reduce((res: any, key: string) => { + res[key] = parent[key]; + + return res; + }, {}); + } + } + + // if (!d.value && n-- > 0) { + // setTimeout(() => { + // d.value = next(); + // }, 50); + // } + + return parent || d.value; + }; + + return computed(() => next()); +} + +// 获取元素位置信息 +export async function getRect(selector: string): Promise { + return new Promise((resolve) => { + uni.createSelectorQuery() + .select(selector) + .boundingClientRect((res) => { + resolve(res); + }) + .exec(); + }); +} + +// 解析rpx +export function parseRpx(val: any): string { + return isArray(val) ? val.map(parseRpx).join(" ") : isNumber(val) ? `${val}rpx` : val; +} + +// px 转 rpx +export function px2Rpx(px: number) { + return px / (uni.upx2px(100) / 100); +} diff --git a/hooks/index.ts b/hooks/index.ts new file mode 100644 index 0000000..1d68a8c --- /dev/null +++ b/hooks/index.ts @@ -0,0 +1,29 @@ +import { defineStore } from "pinia"; +import { ref } from "vue"; +import { service } from "/@/cool"; + +export const useAddress = defineStore("address", () => { + const info = ref(); + + function set(data: Eps.UserAddressEntity) { + info.value = data; + } + + function getDefault() { + if (!info.value || info.value?.isDefault) { + service.user.address.default().then((res) => { + info.value = res; + }); + } + } + + return { + info, + set, + getDefault, + }; +}); + +export * from "./shopping-cart"; +export * from "./spec"; +export * from "./order"; diff --git a/hooks/order.ts b/hooks/order.ts new file mode 100644 index 0000000..f55f85d --- /dev/null +++ b/hooks/order.ts @@ -0,0 +1,47 @@ +import { service, useWx } from "/@/cool"; + +export function useOrder() { + const wx = useWx(); + + const payTypes = [ + { + label: "微信支付", + value: 1, + key: "wxpay", + icon: "/static/icon/wxpay.png", + }, + // { + // label: "支付宝支付", + // value: 2, + // key: "alipay", + // icon: "/static/icon/alipay.png", + // }, + ]; + + async function toPay(orderId: number, type = "wxpay") { + // #ifdef MP-WEIXIN + return service.order.pay.wxMiniPay({ orderId }).then((res) => { + return wx.miniPay(res.data); + }); + // #endif + + // #ifdef H5 + if (wx.isWxBrowser()) { + return service.order.pay.wxMpPay({ orderId }).then((res) => { + return wx.mpPay(res.data); + }); + } + // #endif + + // #ifdef APP + return service.order.pay.wxAppPay({ orderId }).then((res) => { + return wx.appPay(res.data); + }); + // #endif + } + + return { + toPay, + payTypes, + }; +} diff --git a/hooks/shopping-cart.ts b/hooks/shopping-cart.ts new file mode 100644 index 0000000..e40bc85 --- /dev/null +++ b/hooks/shopping-cart.ts @@ -0,0 +1,70 @@ +import { defineStore } from "pinia"; +import { computed, ref, watch } from "vue"; +import { storage } from "/@/cool"; +import { uuid } from "/@/cool/utils"; + +// 购物车 +export const useShoppingCart = defineStore("shopping-cart", () => { + const list = ref(storage.get("shopping-cart.list") || []); + + // 购物车数量 + const num = computed(() => { + return list.value.length; + }); + + // 数量+1 + function add(data: OrderGoods) { + const d = list.value.find((e) => e.spec?.id == data.spec?.id); + + if (d) { + // 判定库存 + d.count += data.count || 1; + + if (d.count > data.spec.stock!) { + d.count = data.spec.stock || 1; + } + } else { + list.value.push({ + ...data, + id: uuid(), + }); + } + } + + // 删除规格 + function del(id: string) { + const i = list.value.findIndex((e) => e.id == id); + + if (i >= 0) { + list.value.splice(i, 1); + } + } + + // 删除规格根据 specId + function delBySpecId(id: number) { + const i = list.value.findIndex((e) => e.spec?.id == id); + + if (i >= 0) { + list.value.splice(i, 1); + } + } + + // 监听更新 + watch( + list, + (val) => { + storage.set("shopping-cart.list", val); + }, + { + deep: true, + }, + ); + + return { + list, + num, + add, + del, + delBySpecId, + }; +}); diff --git a/hooks/spec.ts b/hooks/spec.ts new file mode 100644 index 0000000..02fb13d --- /dev/null +++ b/hooks/spec.ts @@ -0,0 +1,115 @@ +import { defineStore } from "pinia"; +import { computed, ref } from "vue"; + +type Action = "select" | "spCart" | "buy" | "edit"; + +export const useSpec = defineStore("goods.spec", () => { + const visible = ref(false); + + // 打开类型 + const action = ref("select"); + + // 商品信息 + const goods = ref(); + + // 已选规格信息 + const info = ref(); + + // 已选数量 + const num = ref(1); + + // 指定规格id + const specId = ref(); + + // 回调函数 + let cb: ((action: Action) => void) | undefined; + + // 选中文案 + const text = computed(() => { + return info.value ? `已选:${info.value.name}` : "选择规格"; + }); + + // 打开弹窗 + function open(options: { + action: Action; + goods: Eps.GoodsInfoEntity; + spec?: Eps.GoodsSpecEntity; + specId?: number; + count?: number; + item?: OrderGoods; + callback?: typeof cb; + }) { + if (!options.goods) { + return false; + } + + visible.value = true; + action.value = options.action || "select"; + goods.value = options.goods; + specId.value = options.specId || options.spec?.id || specId.value; + + if (options.spec) { + info.value = options.spec; + } + + cb = options.callback; + + if (options.action == "edit") { + num.value = options.count || 0; + } + } + + // 关闭弹窗 + function close() { + visible.value = false; + } + + // 设置选中规格 + function set(data?: Eps.GoodsSpecEntity) { + info.value = data; + setId(data?.id!); + } + + // 设置规格id + function setId(id: number) { + specId.value = id; + } + + // 设置数量 + function setNum(val?: number) { + num.value = val || 0; + } + + // 回调 + function emit(action: Action) { + if (cb) { + cb(action); + } + } + + // 清空选项 + function clear() { + num.value = 1; + info.value = undefined; + goods.value = undefined; + specId.value = undefined; + cb = undefined; + } + + return { + visible, + action, + goods, + info, + emit, + num, + setNum, + specId, + text, + open, + close, + set, + setId, + clear, + }; +}); diff --git a/index.html b/index.html new file mode 100644 index 0000000..b61f63e --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + + + + +
+ + + diff --git a/main.js b/main.js new file mode 100644 index 0000000..d22761a --- /dev/null +++ b/main.js @@ -0,0 +1,18 @@ +import { createSSRApp } from "vue"; +import { bootstrap } from "/@/cool/bootstrap"; +import App from "./App.vue"; +import "./router"; + +export function createApp() { + const app = createSSRApp(App); + + // 启动 + bootstrap(app); + + // 隐藏底部导航栏 + uni.hideTabBar(); + + return { + app, + }; +} diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..4f9e44b --- /dev/null +++ b/manifest.json @@ -0,0 +1,174 @@ +{ + "name" : "酷卖", + "appid" : "__UNI__75A96B5", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : 100, + "transformPx" : false, + "app-plus" : { + "usingComponents" : true, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + "modules" : { + "VideoPlayer" : {}, + "Share" : {}, + "Payment" : {}, + "OAuth" : {}, + "Geolocation" : {}, + "Camera" : {} + }, + "distribute" : { + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ] + }, + "ios" : { + "capabilities" : { + "entitlements" : { + "com.apple.developer.associated-domains" : [] + } + }, + "idfa" : true, + "privacyDescription" : { + "NSUserTrackingUsageDescription" : "请放心,开启权限不会获取您在其他站点的隐私信息,该权限仅用于标识设备并保障服务安全与提示浏览体验" + } + }, + "sdkConfigs" : { + "payment" : { + "alipay" : { + "__platform__" : [ "ios", "android" ] + }, + "weixin" : { + "__platform__" : [ "ios", "android" ], + "appid" : "wx348f72db1512fa2e", + "UniversalLinks" : "" + } + }, + "ad" : {}, + "share" : { + "weixin" : { + "appid" : "wx348f72db1512fa2e", + "UniversalLinks" : "" + } + }, + "oauth" : { + "weixin" : { + "appid" : "wx348f72db1512fa2e", + "appsecret" : "test", + "UniversalLinks" : "" + }, + "apple" : {} + }, + "geolocation" : { + "system" : { + "__platform__" : [ "ios", "android" ] + } + }, + "push" : { + "unipush" : {} + }, + "maps" : {} + }, + "icons" : { + "android" : { + "hdpi" : "unpackage/res/icons/72x72.png", + "xhdpi" : "unpackage/res/icons/96x96.png", + "xxhdpi" : "unpackage/res/icons/144x144.png", + "xxxhdpi" : "unpackage/res/icons/192x192.png" + }, + "ios" : { + "appstore" : "unpackage/res/icons/1024x1024.png", + "ipad" : { + "app" : "unpackage/res/icons/76x76.png", + "app@2x" : "unpackage/res/icons/152x152.png", + "notification" : "unpackage/res/icons/20x20.png", + "notification@2x" : "unpackage/res/icons/40x40.png", + "proapp@2x" : "unpackage/res/icons/167x167.png", + "settings" : "unpackage/res/icons/29x29.png", + "settings@2x" : "unpackage/res/icons/58x58.png", + "spotlight" : "unpackage/res/icons/40x40.png", + "spotlight@2x" : "unpackage/res/icons/80x80.png" + }, + "iphone" : { + "app@2x" : "unpackage/res/icons/120x120.png", + "app@3x" : "unpackage/res/icons/180x180.png", + "notification@2x" : "unpackage/res/icons/40x40.png", + "notification@3x" : "unpackage/res/icons/60x60.png", + "settings@2x" : "unpackage/res/icons/58x58.png", + "settings@3x" : "unpackage/res/icons/87x87.png", + "spotlight@2x" : "unpackage/res/icons/80x80.png", + "spotlight@3x" : "unpackage/res/icons/120x120.png" + } + } + }, + "splashscreen" : { + "useOriginalMsgbox" : true + } + }, + "safearea" : { + "bottom" : { + "offset" : "none" + } + }, + "uniStatistics" : { + "enable" : true + } + }, + "quickapp" : {}, + "mp-weixin" : { + "appid" : "wxdebc4de0b5584ca4", + "setting" : { + "urlCheck" : false, + "es6" : true + }, + "usingComponents" : true + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "3", + "h5" : { + "router" : { + "base" : "./", + "mode" : "hash" + }, + "devServer" : { + "https" : false + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..bce91e0 --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "cool-uni", + "version": "7.3.0", + "license": "MIT", + "dependencies": { + "@dcloudio/uni-app": "3.0.0-3081220230817001", + "@hyoga/uni-socket.io": "^3.0.4", + "dayjs": "^1.11.10", + "js-pinyin": "^0.2.5", + "lodash-es": "^4.17.21", + "md5": "^2.3.0", + "pinia": "^2.1.7", + "vue": "^3.4.21", + "weixin-js-sdk": "^1.6.5" + }, + "engines": { + "node": ">= 16" + }, + "devDependencies": { + "@cool-vue/vite-plugin": "7.1.3", + "@dcloudio/types": "^3.4.8", + "@types/lodash-es": "^4.17.12", + "@types/md5": "^2.3.2", + "@types/node": "^20.11.26", + "@vue/tsconfig": "^0.5.1", + "typescript": "^5.2.2", + "vite": "^5.1.6" + } +} diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..3692d75 --- /dev/null +++ b/pages.json @@ -0,0 +1,268 @@ +{ + "pages": [ + { + "path": "pages/index/home", + "style": { + "enablePullDownRefresh": true + } + }, + { + "path": "pages/index/category", + "style": { + "disableScroll": true, + "navigationBarTitleText": "分类" + } + }, + { + "path": "pages/index/shopping-cart", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "购物车" + } + }, + { + "path": "pages/index/my", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "我的", + "navigationBarTextStyle": "white" + } + } + ], + "subPackages": [ + { + "root": "uni_modules/cool-app/pages", + "pages": [ + { + "path": "version/demo", + "style": { + "navigationBarTitleText": "版本升级" + } + }, + { + "path": "complain/detail", + "style": { + "navigationBarTitleText": "投诉详情" + } + }, + { + "path": "complain/list", + "style": { + "navigationBarTitleText": "投诉列表" + } + }, + { + "path": "complain/submit", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "feedback/detail", + "style": { + "navigationBarTitleText": "反馈详情" + } + }, + { + "path": "feedback/list", + "style": { + "navigationBarTitleText": "反馈列表" + } + }, + { + "path": "feedback/submit", + "style": { + "navigationStyle": "custom" + } + } + ], + "isTemp": true + }, + { + "root": "uni_modules/cool-cs/pages", + "pages": [ + { + "path": "chat", + "style": { + "navigationBarTitleText": "客服聊天" + } + } + ], + "isTemp": true + }, + { + "root": "pages/market", + "pages": [ + { + "path": "coupon", + "style": { + "navigationBarTitleText": "我的优惠券", + "enablePullDownRefresh": true + } + } + ] + }, + { + "root": "pages/order", + "pages": [ + { + "path": "refund", + "style": { + "navigationBarTitleText": "退款申请" + } + }, + { + "path": "comment", + "style": { + "navigationBarTitleText": "商品评价" + } + }, + { + "path": "logistics", + "style": { + "navigationBarTitleText": "物流详情", + "enablePullDownRefresh": true + } + }, + { + "path": "list", + "style": { + "navigationBarTitleText": "订单列表", + "enablePullDownRefresh": true + } + }, + { + "path": "detail", + "style": { + "navigationBarTitleText": "订单详情", + "enablePullDownRefresh": true, + "navigationStyle": "custom" + } + }, + { + "path": "submit", + "style": { + "navigationBarTitleText": "订单提交" + } + } + ] + }, + { + "root": "pages/goods", + "pages": [ + { + "path": "search", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "list", + "style": { + "navigationStyle": "custom", + "enablePullDownRefresh": true + } + }, + { + "path": "detail", + "style": { + "navigationStyle": "custom", + "enablePullDownRefresh": true + } + }, + { + "path": "comment", + "style": { + "navigationBarTitleText": "商品评价" + } + } + ] + }, + { + "root": "pages/user", + "pages": [ + { + "path": "address-list", + "style": { + "navigationBarTitleText": "收货地址", + "enablePullDownRefresh": true + } + }, + { + "path": "address-edit", + "style": { + "navigationBarTitleText": "" + } + }, + { + "path": "doc", + "style": { + "navigationBarTitleText": "" + } + }, + { + "path": "set", + "style": { + "navigationBarTitleText": "设置" + } + }, + { + "path": "edit", + "style": { + "navigationBarTitleText": "编辑" + } + }, + { + "path": "login", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "captcha", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "about", + "style": { + "navigationBarTitleText": "" + } + } + ] + } + ], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "酷卖", + "navigationBarBackgroundColor": "#ffffff", + "backgroundColor": "#f6f7fa" + }, + "tabBar": { + "backgroundColor": "#ffffff", + "borderStyle": "white", + "list": [ + { + "pagePath": "pages/index/home", + "iconPath": "static/icon/tabbar/home.png", + "selectedIconPath": "static/icon/tabbar/home2.png" + }, + { + "pagePath": "pages/index/category", + "iconPath": "static/icon/tabbar/category.png", + "selectedIconPath": "static/icon/tabbar/category2.png" + }, + { + "pagePath": "pages/index/shopping-cart", + "iconPath": "static/icon/tabbar/shopping-cart.png", + "selectedIconPath": "static/icon/tabbar/shopping-cart2.png" + }, + { + "pagePath": "pages/index/my", + "iconPath": "static/icon/tabbar/my.png", + "selectedIconPath": "static/icon/tabbar/my2.png" + } + ] + } +} \ No newline at end of file diff --git a/pages/goods/comment.vue b/pages/goods/comment.vue new file mode 100644 index 0000000..8369a57 --- /dev/null +++ b/pages/goods/comment.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/pages/goods/components/comment-item.vue b/pages/goods/components/comment-item.vue new file mode 100644 index 0000000..cee703d --- /dev/null +++ b/pages/goods/components/comment-item.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/pages/goods/components/filter-bar.vue b/pages/goods/components/filter-bar.vue new file mode 100644 index 0000000..1b7bbd7 --- /dev/null +++ b/pages/goods/components/filter-bar.vue @@ -0,0 +1,350 @@ + + + + + diff --git a/pages/goods/components/goods-comment.vue b/pages/goods/components/goods-comment.vue new file mode 100644 index 0000000..2316d97 --- /dev/null +++ b/pages/goods/components/goods-comment.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/pages/goods/components/goods-detail.vue b/pages/goods/components/goods-detail.vue new file mode 100644 index 0000000..e98977b --- /dev/null +++ b/pages/goods/components/goods-detail.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/pages/goods/components/goods-info.vue b/pages/goods/components/goods-info.vue new file mode 100644 index 0000000..01bcc35 --- /dev/null +++ b/pages/goods/components/goods-info.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/pages/goods/detail.vue b/pages/goods/detail.vue new file mode 100644 index 0000000..d2bdcf1 --- /dev/null +++ b/pages/goods/detail.vue @@ -0,0 +1,250 @@ + + + + + diff --git a/pages/goods/list.vue b/pages/goods/list.vue new file mode 100644 index 0000000..8d0dd16 --- /dev/null +++ b/pages/goods/list.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/pages/goods/search.vue b/pages/goods/search.vue new file mode 100644 index 0000000..c697192 --- /dev/null +++ b/pages/goods/search.vue @@ -0,0 +1,164 @@ + + + + + diff --git a/pages/index/category.vue b/pages/index/category.vue new file mode 100644 index 0000000..02f2891 --- /dev/null +++ b/pages/index/category.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/pages/index/components/banner.vue b/pages/index/components/banner.vue new file mode 100644 index 0000000..601eb71 --- /dev/null +++ b/pages/index/components/banner.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/pages/index/components/coupon-activity.vue b/pages/index/components/coupon-activity.vue new file mode 100644 index 0000000..20e3ec8 --- /dev/null +++ b/pages/index/components/coupon-activity.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/pages/index/components/hot-category.vue b/pages/index/components/hot-category.vue new file mode 100644 index 0000000..02a1d0f --- /dev/null +++ b/pages/index/components/hot-category.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/pages/index/components/tabbar.vue b/pages/index/components/tabbar.vue new file mode 100644 index 0000000..48be5cc --- /dev/null +++ b/pages/index/components/tabbar.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/pages/index/home.vue b/pages/index/home.vue new file mode 100644 index 0000000..94d7ff2 --- /dev/null +++ b/pages/index/home.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/pages/index/my.vue b/pages/index/my.vue new file mode 100644 index 0000000..d871cc2 --- /dev/null +++ b/pages/index/my.vue @@ -0,0 +1,298 @@ + + + + + diff --git a/pages/index/shopping-cart.vue b/pages/index/shopping-cart.vue new file mode 100644 index 0000000..d454e21 --- /dev/null +++ b/pages/index/shopping-cart.vue @@ -0,0 +1,239 @@ + + + + + diff --git a/pages/market/coupon.vue b/pages/market/coupon.vue new file mode 100644 index 0000000..5596a14 --- /dev/null +++ b/pages/market/coupon.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/pages/order/comment.vue b/pages/order/comment.vue new file mode 100644 index 0000000..7d99e33 --- /dev/null +++ b/pages/order/comment.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/pages/order/components/cancel.vue b/pages/order/components/cancel.vue new file mode 100644 index 0000000..6501161 --- /dev/null +++ b/pages/order/components/cancel.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/pages/order/components/comment.vue b/pages/order/components/comment.vue new file mode 100644 index 0000000..86ee711 --- /dev/null +++ b/pages/order/components/comment.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/pages/order/components/op-btns.vue b/pages/order/components/op-btns.vue new file mode 100644 index 0000000..3d25e4a --- /dev/null +++ b/pages/order/components/op-btns.vue @@ -0,0 +1,41 @@ + + + diff --git a/pages/order/components/op.vue b/pages/order/components/op.vue new file mode 100644 index 0000000..b0a47ce --- /dev/null +++ b/pages/order/components/op.vue @@ -0,0 +1,80 @@ + + + diff --git a/pages/order/components/pay.vue b/pages/order/components/pay.vue new file mode 100644 index 0000000..b718469 --- /dev/null +++ b/pages/order/components/pay.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/pages/order/components/status-tag.vue b/pages/order/components/status-tag.vue new file mode 100644 index 0000000..a0406a0 --- /dev/null +++ b/pages/order/components/status-tag.vue @@ -0,0 +1,23 @@ + + + diff --git a/pages/order/detail.vue b/pages/order/detail.vue new file mode 100644 index 0000000..e4e3591 --- /dev/null +++ b/pages/order/detail.vue @@ -0,0 +1,231 @@ + + + + + diff --git a/pages/order/dict/index.ts b/pages/order/dict/index.ts new file mode 100644 index 0000000..1311c2c --- /dev/null +++ b/pages/order/dict/index.ts @@ -0,0 +1,92 @@ +export const OrderStatus = [ + { + label: "待付款", + desc: "等待用户付款", + value: 0, + color: "info", + icon: "shop-icon-order-paid", + }, + { + label: "待发货", + desc: "等待商家发货", + value: 1, + icon: "shop-icon-order-not-shipped", + }, + { + label: "待收货", + desc: "等待用户收货", + value: 2, + icon: "shop-icon-order-received", + }, + { + label: "待评价", + desc: "等待用户评价", + value: 3, + icon: "shop-icon-order-comment", + }, + { + label: "已完成", + desc: "完成", + value: 4, + color: "success", + icon: "shop-icon-order-success", + }, + { + label: "退款中", + desc: "后台退款中", + value: 5, + color: "error", + icon: "shop-icon-order-refund", + }, + { + label: "已退款", + desc: "订单已退款", + value: 6, + color: "warning", + icon: "shop-icon-order-refund", + }, + { + label: "已关闭", + desc: "订单已关闭", + value: 7, + color: "info", + icon: "shop-icon-order-close", + }, +]; + +export const PayType = [ + { + label: "未支付", + value: 0, + }, + { + label: "微信", + value: 1, + key: "wxpay", + icon: "/static/icon/wxpay.png", + }, + { + label: "支付宝", + value: 2, + key: "alipay", + icon: "/static/icon/alipay.png", + }, +]; + +export const RefundStatus = [ + { + label: "申请中", + value: 0, + color: "warning", + }, + { + label: "已退款", + value: 1, + color: "success", + }, + { + label: "拒绝退款", + value: 2, + color: "error", + }, +]; diff --git a/pages/order/list.vue b/pages/order/list.vue new file mode 100644 index 0000000..81bfd6c --- /dev/null +++ b/pages/order/list.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/pages/order/logistics.vue b/pages/order/logistics.vue new file mode 100644 index 0000000..60117c6 --- /dev/null +++ b/pages/order/logistics.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/pages/order/refund.vue b/pages/order/refund.vue new file mode 100644 index 0000000..dbcbffd --- /dev/null +++ b/pages/order/refund.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/pages/order/submit.vue b/pages/order/submit.vue new file mode 100644 index 0000000..33e56a8 --- /dev/null +++ b/pages/order/submit.vue @@ -0,0 +1,209 @@ + + + + + diff --git a/pages/user/about.vue b/pages/user/about.vue new file mode 100644 index 0000000..db93eb9 --- /dev/null +++ b/pages/user/about.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/pages/user/address-edit.vue b/pages/user/address-edit.vue new file mode 100644 index 0000000..9d919b0 --- /dev/null +++ b/pages/user/address-edit.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/pages/user/address-list.vue b/pages/user/address-list.vue new file mode 100644 index 0000000..794a413 --- /dev/null +++ b/pages/user/address-list.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/pages/user/captcha.vue b/pages/user/captcha.vue new file mode 100644 index 0000000..112924e --- /dev/null +++ b/pages/user/captcha.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/pages/user/doc.vue b/pages/user/doc.vue new file mode 100644 index 0000000..1bc5b51 --- /dev/null +++ b/pages/user/doc.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/pages/user/edit.vue b/pages/user/edit.vue new file mode 100644 index 0000000..a8b7b6d --- /dev/null +++ b/pages/user/edit.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/pages/user/login.vue b/pages/user/login.vue new file mode 100644 index 0000000..acecfd9 --- /dev/null +++ b/pages/user/login.vue @@ -0,0 +1,473 @@ + + + + + diff --git a/pages/user/set.vue b/pages/user/set.vue new file mode 100644 index 0000000..6e09f09 --- /dev/null +++ b/pages/user/set.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/pages/user/static/icon/apple.png b/pages/user/static/icon/apple.png new file mode 100644 index 0000000000000000000000000000000000000000..2d0586e1d990fcd0c502bbefc8c7a67d97774d2b GIT binary patch literal 1568 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 literal 0 HcmV?d00001 diff --git a/router/index.ts b/router/index.ts new file mode 100644 index 0000000..4eb98c4 --- /dev/null +++ b/router/index.ts @@ -0,0 +1,27 @@ +import { router, useStore } from "/@/cool"; + +const ignoreToken = [ + "/pages/index/home", + "/pages/index/category", + "/pages/index/shopping-cart", + "/pages/goods/detail", + "/pages/goods/search", + "/pages/goods/list", + "/pages/user/login", + "/pages/user/captcha", + "/pages/user/doc", +]; + +router.beforeEach((to, next) => { + const { user } = useStore(); + + if (ignoreToken.includes(to.path) || to.path.startsWith("/pages/demo")) { + next(); + } else { + if (user.token) { + next(); + } else { + router.login(); + } + } +}); diff --git a/service/test.ts b/service/test.ts new file mode 100644 index 0000000..5b6aa7b --- /dev/null +++ b/service/test.ts @@ -0,0 +1,6 @@ +import { BaseService, Service } from "/@/cool"; + +@Service("test") +class Test extends BaseService {} + +export default Test; diff --git a/static/css/common.scss b/static/css/common.scss new file mode 100644 index 0000000..1bc6bbb --- /dev/null +++ b/static/css/common.scss @@ -0,0 +1,47 @@ +.cl-button { + &.is-custom { + height: 80rpx; + font-size: 30rpx; + width: 100%; + } +} + +.cl-empty { + &__icon { + height: 300rpx; + } +} + +.card { + background-color: #ffffff; + padding: 14rpx 24rpx; + margin-bottom: 24rpx; + border-radius: 24rpx; + + .label { + display: flex; + align-items: center; + font-size: 28rpx; + line-height: 1; + font-weight: 500; + padding: 10rpx 0 14rpx 0; + } + + :deep(.cl-list-item) { + .cl-list-item__label { + font-size: 26rpx; + } + + .cl-list-item__container { + padding: 0; + } + + .cl-list-item__content { + min-height: auto; + } + } + + &:last-child { + margin-bottom: 0; + } +} diff --git a/static/css/iconfont/font.ttf b/static/css/iconfont/font.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0d5b62037faf6d756fef2f4c949b393d96589222 GIT binary patch literal 10168 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 literal 0 HcmV?d00001 diff --git a/static/css/iconfont/font.woff b/static/css/iconfont/font.woff new file mode 100644 index 0000000000000000000000000000000000000000..0ee4622066f596ff695d53570468e4e81e7a25c7 GIT binary patch literal 6332 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�d&&PCJ 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�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 z7354⁢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 literal 0 HcmV?d00001 diff --git a/static/empty/order.png b/static/empty/order.png new file mode 100644 index 0000000000000000000000000000000000000000..5c30fc3b5d55528b448e5e558c53ec31c56618c8 GIT binary patch literal 19039 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 zbpxY8Sxolf8zN{;`5>ufU;`-rnv(E0000000000000000000000000 z0000000000000000D%9u2Zsaz0001j{=fEx2><{90000000000fJaFn207fZ87u$* N002ovPDHLkV1iFj4Tb;! literal 0 HcmV?d00001 diff --git a/static/empty/spopping-cart.png b/static/empty/spopping-cart.png new file mode 100644 index 0000000000000000000000000000000000000000..6d574f3c4d322e25e7884d16fab47dcaf5daf83e GIT binary patch literal 27317 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 literal 0 HcmV?d00001 diff --git a/static/icon/alipay.png b/static/icon/alipay.png new file mode 100644 index 0000000000000000000000000000000000000000..7f5b22cb4531d90b8920a4249c3829ac22c50f1e GIT binary patch literal 995 zcmV<9104K`P)Px&ok>JNRCr$PT0wH#FbrI3`h>>QTb-B0eo5kA=ob5?U&MY%?3Yx%Wt={t5j#-G zlq1suC`ua1QcjsM1pcU$r$qXX-v0fV)&bDd2?@G{oNvV9l|BWxyiU&j7YVG*F<^_ME9*-8u;X za-6#v@-IJt@`;JNKQGgJV)$!U@5)|oZ~FwhW~8Q?pgZy^Mv zH8?Tg;%GAU#zVkSLcPecZhdb#K(bMQVWOpy(@CNiTL(xt(m-v&;acUZ&Zyt`%Xrk4 zk$hIC!(f2OW&an=N$^&app*!=%K%Bzk)m{M-6GXmDnp`AD@o8QL>q=A!#YF00eN+* z6WW^h4uI4%l6B`yT{uT_BDu2141l+f51~H+F0ANj5K;rbEfp0| zmbV&M3j6*2Ia8Zzn1s^5F92xtObUyuKr>!n8DK6ZO};svxr=y}abfY(zYN)i~f zz5pK0*lpQH@^eq6PDWzY77L3*b08l2tmTrr^ZLtBDraeLR zg$tAe2DtYEK@6Zx>^U8i1Fm_-!>r&!OUf9hQmy}_YN)N$B3R&UbQpOh5D9RQK75b@ z5zGJ^2DE`uno88#;iOS!d(D6VFoTXz2?$L9Ah};8UKu8QDjYVgM`%lYK00N$8Zl zKL_|+p2ln^>2%53Bnp9MQ8ttxPRq$N;2)xBR9_CF RQA7X$002ovPDHLkV1jg$tk(bl literal 0 HcmV?d00001 diff --git a/static/icon/tabbar/category.png b/static/icon/tabbar/category.png new file mode 100644 index 0000000000000000000000000000000000000000..309e9e6078ce7e5331311f203c493e32c5bc0d24 GIT binary patch literal 2869 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 Hu0mjfazcTO literal 0 HcmV?d00001 diff --git a/static/icon/tabbar/home.png b/static/icon/tabbar/home.png new file mode 100644 index 0000000000000000000000000000000000000000..ffc6ce365d59f6fe81a5df8ecabc68ae839369a5 GIT binary patch literal 2207 zcmV;Q2w?Y#P)75>hwQwKHWQB+Z>AVNWn*~ctZK%&j=##Is?1yO1tsq<*+BqYttv0W!|`li|JOv*zTvNJnt5 zsGEzx~b+OT$$y0DsbE4dWIkpVoy?I!|MkA>_Dk4J^Q!)bP&RzJPOM{nN0W27=oIqJ(YS8u5zY#Gi zlgYfdy1IHz`>_}AZQQ=+=6n)(y^&OZA|gu!QxXFF{@PhoHEf0bXYESqB7+*z+G$0^ znBLyrIfH|PRt*?gHBLVNDz^M`mrF^&V@6VWTtsFu%#;b3J-c@1^*0Q+fba!}vVVfi z1|xaqR52s0@rxHP-a0fi)J8<%@%ZB%FJtRdP5C02R~fpxK}2>T%#;YIt*x!<{nyBo zzsI5EEi%o;snnTQL=4PkvmcTqsg;>O<%VxR_5vEW=a&R99yWBvZRr$IJA#=K0RcH` zIbY|{_HSl$aaup~f`}EFOy=h5>T0WY+*t_U+IA8GoTfPfse za&?JA=p}#`8=87T#Gt;uz8m}d``eJeYPe2sK6)IxnhxZRG4nUmy85(;PA6tk1O&s; zXPL3oA#9L{m!y*Fb0UWH_V(T|Ffd@{{6Z1@DCW?ScI@7B$b|&lpVk$ZJSi;QGXViP zYAIRf5X;QGB(1AQMV!fGGBdA){oNvXC+5JxR_xu^?3NBo4Lxzti%d@h_(PE`Ay=q3;zb_yWi!IY+K7qvc@%UMfQ+0OKq z9ou&7#dGcUt%ucPWTyHqJ&~Bm)(Hs+grgh4_(6WyjQDQaX-PtQhXenb>sO5CQ+JMiL5_A?j* z=NP_vXE(~00>N1%jGfvW|!GFSMirFUB-nsyJ7u~UL7Z2 zMtpoTigD7=l`pyzAV;lkZJ>bhIWl=^Dy7CJ!gP0ce_xU$;aX8DqApzM#^XQT4C}YZ zwad_yu^p`=0%C0-{&F!1@F8IQNl6#QO%os#ip({Mgc`04UYFL?wXP8$%dw9P0SbX{ zDQr7GWN7NPY4WeAnqWAxoS9tuW_eRv4Na+^un1ZM0Xg<101r5e;rK~T7K>U~W`JLg ztR+lbc�wMCcf)t2jC0nS3IUY}sH8xp22_e*fsbvkq8G;N#(1>4k^}n-ch&=Tj5|h z=6vHU{CTb5aX7LbAlrBT9`e)P3n(!GvOI6jFr+`*9tPu4LsvG6JRl(gg5lU#nA!TM z!FKsz)@a(9bA=R@GXjFaNUgJ5^|mc^kD(=wmyCdsu23l2;qomYi0G)vrn5tA>mb>> zK^`K&YQ2qfVoWA6W`f9i_i(S%Nn+la($xn!~~fq+Tq zxqQ=&zFF~jd`NVzFaegpP-y-gCYi5`3U|kGlcA|!cN=qVguLo8fw^vPfD6g-M8K$^ zVt;-rq|o{gL0VIP=Z5izVogNs@)1^1DvlVMl9vueXL(5hr?6mf{vwvl05R7vXiiaO z5`Hh4+^p+rXThQwimZ?%X(5|@(?mEXSnnqdF#m;tH@b9n5>3}D<+7;Z*EnEODR3=u hQX$}4dYY5*<$olCnth6$AAkS=002ovPDHLkV1j00AJzZ> literal 0 HcmV?d00001 diff --git a/static/icon/tabbar/home2.png b/static/icon/tabbar/home2.png new file mode 100644 index 0000000000000000000000000000000000000000..9959444676facc2220abd3d1f6eabaa28d98ac7e GIT binary patch literal 2201 zcmV;K2xj+*P)t3%+8*W+8Pr|;ov?wEZprpW)AMWd3SdA-Mifj z(w%<@JHO}aH_!9D@B7Rg;eCG5`#gTs2&iSiG&2wiEm&fcGEV`nXQEF7db=t z2%DCrr>E1UX)S@E8s7%+ra}QS&<)~^*|h$P=^|lT2ngN~3m}I_0Nf@Q7(Hegsr%%x zQ$tmqfVxQZdOxF`L7_5TZLtjP&N5}nhF6t09A87k&v;;VT86fvtj8+>t|$R@b&EctTyeggfQ5qXf0ONN z%4CwSN%(}I8ea?W(|K6J4lAuaD5FCbQ!xVO&tLq(_lD2416VZCIDw84Q^GV4{!PZI z+i&0fA!T^h=H9{d9Vh$rYw}6pZB|m#hiM~|63g(TLsXr{EyBKCl1k~5p`@4HapZp5JNFUku zs!XQiFES3UxTWReK0loD`Mejt_l$v)eYyt;xZg50uccGQ>?meR1O(NX6MU0k?F_TM zDr zb=K6Ml?mpq`rR`JX3uH|bAt?C#GD>@4W|ZP@hXQkmYLdHj?S_O2!x}%h-jUM&aNVNIvpwlO#%i!X*d)&DY14|a->95b4-ruLkS4JiVGYWz`v?-dm?@w#kU-z{Uv!8A6s z>;X{GGrrRlo#rT9|6#V9WLBb*1O(LhPYL{u{H}xbmZ?1{8~njZXfG8LE=oW!9D4+W`$Yu=+?z49pUZmRw5;U`W>oD=@A%XrnR5R2H)7w>RCRr^5x*1Ewi(Ac9X!z z7~I@tbmXs{g$M|!vF!wW&%^iz%g}bpI<>N4?@j`JQx;zd+=L{X<=6M&nq{Qo6Mu9O5LDxT0C=ez zz~9dp`gU2*8yog)0hGRKvq#;TK=j>gI`yNmAKe6mWBnj}VC*J?ws0&a=gwZft0I8^GLZ23AP7%_BHJ+yk43$01HX7(Dyt|3nzSw@mGe z-UO&Ir-cTKIR6gWye5;;J;pQ_q#Bp*{WgfCdqt&)Iyc;d<2`?d^KXgkNz2g2ceFwV z#P@@EWho8tA!xm!WlQ3w2@noP=i5Y516Kxb%^La^&kRu2_$NmIjlkCy_nq&v4E?cb zim#-ZP$asJnRb-~0_~QeH5Y7x&W)fNUk>0Nu^CPj5?PcmTvbRwjcy@O!N%+C2o=H$ zIX^aab!x|p5-@htne-~k$mnY=R>(EjoD2bh$bu+Aadwv~fH?&ic?Y0QvPU*#GKc;t z%UT`*j3hB{9g{ECvq~O@E@VZFr;-5yHM*HV<8>z!n4e~RES>)AF&V5E0hX!VEF)WW z0s?Am5dkmCIOE3fe#_9sfvcyQOPhd5^loCB)E6H!6yJvrA5Qj_BJa{BKumw3K3%0H z^cu4H=3@0b-mk6(&Gc7tG5+`G@OaFdno_ZHLSQk|H1!i8nH{^C6S#^1-e%j1KYb zg9}s533lj*(cM-A2M_47P__bwddF4=2s+G)+1m{bW|PMp*TxSXEm bWMcU*1XP}VQ9`T^00000NkvXXu0mjfBw{t4 literal 0 HcmV?d00001 diff --git a/static/icon/tabbar/my.png b/static/icon/tabbar/my.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a4a753c6d834fb4e3a502db4c7a0ff98f1c18e GIT binary patch literal 2757 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

`7Dx_|$EF9~h$w-N+mKz6@tVq!r-%1O_duN3BO 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 rP2t#b?e%cYPx<%oMA7^D+HBG7{M{ zBkLe5``8(W=cn&q@qJv^!gxcSNfTteF7s@kEXUv+u;hR-V#t zlDL}*h##(WP2TLi-VAebTstJT78h8b5B;BT`n9B!i-~*<&WQOC_(~+*!Ak_KfML7v z6s?SHmIzx8hgQO2eIBrHj_`T{UA+_hvnzcs@zh=(>p=;q63Fy@Yf4eaDbmuLxB+3iv)WapjHOZz60tdu%EJ3h?;(m7zu@S zxkKQn4g4h>zvBR%(%_&B99Do)ENGV6EoKCVwcsFcz#jrVn&nTTq zu%KNXbclj#UeF@?I|dGR@SvA%;@>f*ww;3jgA!oQ6)ZjiGuq&27%W`}%?!oPFhJ1< zGge^t7TClcra-IhIX^VbVZKFWr4Rcqisxg}DN5bBzw`LFfgE|BtPavprW4c7n8Iu?c5OrvbPDuU zNNtZ_0yQVWguudk>8)0+(R|TgpCmU2lzy75kp2~;!uN);DP*y~#ls;DqhmY`vX2a% zKmKZbZN6EUQJSC<>Qp15|upXw5;@--T_^PfTM3D!TdOskbARDigcKZ=fp=38?TL9+sGvl$02J5LV*XKqkKoM5Wuh3`HDXCf!PB z*-=whUmN+r@ZOZ}iswSQ61lOe;GVQW+rK>OU-`~0OM7rvk;z{^soA@0$o_Y2zFji3L6)>CSG_&~UafC+n^) zQ)NtRltROkzbX`6!*7d=ZAK-68JEbf+G86UW?B-clps#;9*V&6xawz*8_fcLCN3z| z2gu6^@Vh<7m?j^0mbBrzx_IR7Xq}jy-v3>vpTPbpp?gL@xbe@1rnlT3!h@n>qni}b z(dn=QbRaVPZD~SIG=DH(kB-eh>y9^oX>5lOua{9lU9r5Fbl>`y#+_Ka_g_=x6I6Z z*SfZvcaM)ZoAoE(I6U;z4+=e8BHP&MnFz@2Y;_cBSO&1mnAhl=T*NGpo#UDWP zl7U{G7vF~U{Js_|g}PcMCF^cO`DiKn?$nr}VQHX7RP^IERcdU{(=9ICy|41Y>bJc1 z812Pkh!;*ymvsgciBTcehFbM*6K^^T*jTD5g5jd`<{L~ob#=JT;l>x{iR{qZh7rT) zG6WR6VdOdG8E$^Sa-pHDnli~-9&xuUa_DV)Zr!>iU(;_jk%!HDr;Sk9^Tfp!&C2{o zP^3dHPMtBizL7I=Xxp#q*3OGd!@T9m&)7Q-OGh;hh93JgH3(`r|LliuU#{us<34M^ zotEm074Hx%6tw!q^Pe+sQN;CZ7x?d^%ddN}9Ge&~y_ z&VU~DIjR+2D3m16pXICrPgc{`7UnLYYp8gF5KlOhWPmxt>{XlgFnips`n;*P@Nh2) zFLHvDtBYwqJO1iDu#IVNloNOiKd;lKxv5uIJOIPqs-ZO4jM*!Oq<(3+s(S>xUOiDr31aSw+uEuxT*fc-?!G2h-E4 zWsH@RXu6sF@W|&!O1fe&YVBIOoI`}rV(#VRi*mDc-a33bW*lQ;0kL`0juGnm@j-D) ztcmJj+gs0nQt|%r9RW>y2~%n~1YWy0Q_G9sYUalplFup^!*rrxHFKlz5m^|`FD7S@ z+{$xG!iL6*RK}l(Bgj>Cee&87aZw7f55t_(L+TB9@<`dxTmtPcvR@6K&yR?o${iaW zGEOEJUkX3zh>1Z>BV(OQi3UG^&8m#NEVF-YCwWjDIyGJwd}#Cbb1;b)#60J>#4w}U zXI$Tu64UaH8b!5zb`4Ok`wI%rnb6F_%L@t$7JbDd8_8keMF|J!yz;YzY25I#F8rPM5F%8^585%?$6ro429mGyA}Xv zhM%m-f3wG<(e>K|dVD9XDgWg$uiu$i@ z?reO#>l6~{X$rH!nOtel{;UVD46|#pOj5t( zM(a#|_K) dhets$$i6{W8EJK!>)-PV;q;6zm+RPu{}1~OM2`Rf literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/overheated-face.png b/uni_modules/cool-cs/static/emoji/overheated-face.png new file mode 100644 index 0000000000000000000000000000000000000000..b8c9f63abc6adc642dd52fb2c0a54907dc33368d GIT binary patch literal 3440 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/persevering-face.png b/uni_modules/cool-cs/static/emoji/persevering-face.png new file mode 100644 index 0000000000000000000000000000000000000000..daa2cc031ea924d404ba9a3795d02ab3fda2d7e6 GIT binary patch literal 3628 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 yT7XHVwGdjDz#q#0000Z3n!t(*u&M!U8i5yO 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 A@&Et; literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/relieved-face.png b/uni_modules/cool-cs/static/emoji/relieved-face.png new file mode 100644 index 0000000000000000000000000000000000000000..502f517dacce540e92ffe0d8c380bc436a2fd833 GIT binary patch literal 3716 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

3ExPr5W{+xe@#{A zl~h-ASJ&C{FrIk}K$gUO>GdN_IcFs2!B?>zbq!KwO9~El7P1goV`FJ5A2;@9M880& z$;JwuVGzTk4=v3APK^4v5er8OZEVjOPf^jIqt@N{TY5Img%PBBTvVI)#&s`>lqE^S z`S!ET(%;gk`HH5tiOG*X(of5)nGe3GVZJ|Odf>Ga=!2{|?fsOVo?gASyZgLPP5ZYx z;rMCh+%rUro8V{OjrC`c-7YvyqM4{i!0l#V!NEXAhGR{;jg9(baQS_c>_DW{8ijbx zl(5J%9|j5K@uti<9P`SqO+B@vrdi-(!2Yl7(m`}3Iy72^=Ji{9SV>VTaelk{J;T(@ z(pQ`4=;*k|DTPILFxb6dsB9Ua?fnMokY;0pcQmIFx9fI$vw-?tz`Cjd=8+B(zu6AB zU@kHDqh(@h$a5%EF`Q&xX}@^Ca6|-@hIHJ-&)932-0h@Y9wSk6I;v%5Wjiyt!;WAJ z8kJu05JT>+vMN?{9WH!k+Cox|9Y@@=A8b`&RmIfDR#C1j8I`=fb)+W#sn)p{D*4{1oxR|I@#3wi!&6QKhM~C357D81N)%8zMy@TQ*_#`9 z>l<(b+gvA9n8cvz2$^Uv9}cZNdzz+0!eYJdxLLpBaJp;!f#?0G(6HTTCh<`{i1#JL zAo*$o;!8xO4~;f7)!FHETWN;tIe07UbG&930R_3PEL;belvZ%}D_*({$FP;nO1hg{ zm_fbTMIM^bj~dr@&Xw^q(vOmFF`3q^CKH3y*o4fSedDvZoLYQl+WN3ns2)}ia~}z5 znr8YnNIL)8!)|$&F=;US=>&DR^he!2jixP$ClrM<7n`0!k5sL2kHj2`V>VB2zK9Fb z)0S7*tXbVHak(E0LtnWImPuz3$I-Inu$gWm3htBOnNw=vbA8n zJ=&;RWb?i?X7$l7PtjL*`>30l^%?(%5u}pjkxWV6v?o}~dnL5l-(6t=M6(;~21lKC zge^7y%ffUEzl&-c5j)}!vs#)5F$@}`+~Bw3yi1mfDKf!X4_yeSpzJkjO z{9&)%mFW3X@@R|Cuo*roA|B5Wuk7=*Fst2h8^61pek^tk4ntUJ&2pHt+d~f}syBS^ zSH~{T=^DEsn6uO>1;khpJ=p*|*MsT1Ops@b{tn-UKyPPMo;hPzDV7+2phM^Q8(AyB{f?fG8Hn%k<5`~FLlx}o`!Lx3!@CKxscBfBDEAbd`NHlb}MwR*_c!A&UCW^3dSM`s_N^!hVUS3YP7Pl(RLy! zepAt<*`4SeT_JPz{p3RRo%IRFBu3AJlJu7k0@#I*dtLZ*f7?CW$RJQj%(WK-_vN^` mU%Sg;Jun}61RUJyaR9q;-_eCS;L^Wq2T)VeQmmG@`t(1%KlQu- literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/sleeping-face.png b/uni_modules/cool-cs/static/emoji/sleeping-face.png new file mode 100644 index 0000000000000000000000000000000000000000..749e4ee2ac9033f5cac7b8b62b53cbc962e367c6 GIT binary patch literal 3525 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/sleepy-face.png b/uni_modules/cool-cs/static/emoji/sleepy-face.png new file mode 100644 index 0000000000000000000000000000000000000000..21b72c12dd5e612428781b34384d194b9d66df29 GIT binary patch literal 3477 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 UiKJ>>KEV)eO#_W$HEYa&02%gsQ2+n{ literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/slightly-smiling-face.png b/uni_modules/cool-cs/static/emoji/slightly-smiling-face.png new file mode 100644 index 0000000000000000000000000000000000000000..a0d68d143670f86a470f17d698344f3deb0ffafe GIT binary patch literal 3737 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 IM6N<$g1LwSkN^Mx literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/smiling-face-with-horns.png b/uni_modules/cool-cs/static/emoji/smiling-face-with-horns.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b56af317f9129fb29f2392a386f94edc01c6d6 GIT binary patch literal 3957 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 P00000NkvXXu0mjfnYKJH literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/smiling-face-with-open-mouth-and-smiling-eyes.png b/uni_modules/cool-cs/static/emoji/smiling-face-with-open-mouth-and-smiling-eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..a702c9355a956dc2de1c3b12335c9493e21e68b2 GIT binary patch literal 3710 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 X4wN$N)#mwszchqV*Hx=fu@3n^HY}O; literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/smiling-face-with-open-mouth.png b/uni_modules/cool-cs/static/emoji/smiling-face-with-open-mouth.png new file mode 100644 index 0000000000000000000000000000000000000000..7798b4114bcce2d2c2ce97aa15a84e4bfb07afe1 GIT binary patch literal 3581 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 Vqw&a&Z*%|v002ovPDHLkV1lXsSdRbz literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/smiling-face-with-smiling-eyes-and-three-hearts.png b/uni_modules/cool-cs/static/emoji/smiling-face-with-smiling-eyes-and-three-hearts.png new file mode 100644 index 0000000000000000000000000000000000000000..d621f0dd7030683fac524dccf253219de6060677 GIT binary patch literal 3986 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 Ef}M+JX#fBK literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/thinking-face.png b/uni_modules/cool-cs/static/emoji/thinking-face.png new file mode 100644 index 0000000000000000000000000000000000000000..7431ed01ee4c7e13e09787212877cd20b3c99532 GIT binary patch literal 3763 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 BK~Vqz literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/upside-down-face.png b/uni_modules/cool-cs/static/emoji/upside-down-face.png new file mode 100644 index 0000000000000000000000000000000000000000..677f7460ac9f189e797e2ea4c1427d9c507b4165 GIT binary patch literal 3688 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 AE&u=k literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/weary-face.png b/uni_modules/cool-cs/static/emoji/weary-face.png new file mode 100644 index 0000000000000000000000000000000000000000..74325b9be3d81ceeb8456ef4e243348185344c45 GIT binary patch literal 3726 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/worried-face.png b/uni_modules/cool-cs/static/emoji/worried-face.png new file mode 100644 index 0000000000000000000000000000000000000000..8638920c4bf8da93de56986ce9f1a647b9342db1 GIT binary patch literal 3655 zcmV-N4!H4&P)Px&08mU+MMrQ<$$})!fgJm;8T_LL%8M<_eH-zf6#1qH zy_HkSeICkc0Lph2#c2cfpby1p0{4vo%W46|Z3o|m7VCll#%>A5Y6Qe=3CD2^-g*Gb zdlk!S0mO3?%WVVrlLG351m}?*-HIUWl^Vfj0oQc_)OQN+mjmX73*CMU@RbnnoF2q! z1jTCx#%KZSf&%oI3;L)J(QyLBX93}V2knRj(QpCuj05F;0rr{+_o5K=p&0n56!xSP z|F|Ikwi^HAE%>Sn{`Go(+ zD)68O+k^t~qYV784*&hi|H(A}{m}pRWBX`_mV*%NJ0sr}X|L;rx z%ryVtEdT!2Z!`e^$|nEMF#p{&bU6V3{^r+u0OgGW|H~}@#W4TCBm1fj|M`}bR|435 z0sqA$|J^J9(kcI=0{{Kn|N5x^!v=>-0sifP|MN`$_;dgJwg3CE{gwd#)hhq~;ekZ~ z|J4!y^-=%!SMik#|G+Wzo(=uoKL6-V|FZ-CsRIAH1pnwg|L|b{!YKdmQl4J{jZXmX zlL7zcMg5)u|Km9S-bw%OSpUondq4pG-)P-|0srDZ|I|PKt_1(+b%am{>!~9C)>Qw) zG46=~|I|nS@sy8K0srSz|G5$W^NRo2H~;jUwwXhteJ$jJ0Ku&k2&iWS zr+XccUJ|!{4D!n+|Jqu+jwIW&J>$}8^yzy0$tL&1G_!*j-@HK9u`Z-^49uoD`R{G= z-f)_19`4mO_p~L!m?O@X73#k$&!Zgf#zXhjE5VWz|K1+$!z0YKO=2bh|HKvO)m!Mt zQ~%K)^}Z?Aj1c+JC`{)iL;wH)J#e}JK;L|V>!>9lN3YzRzI}jH zK_U{QBSqTMk#>%2S$l6=-gjq)K+yHM@4d4>JjcnsGe7>{H*;qu$jSYGP?7s1A(Q`C zgR;ERI?c7(n>TOPUaPiTLGiy6Dk`nr{I|bvo1=FPp*LsSKQ?KvQy~4`YE;*5`s;DM zYp<)$5mdc?ea(H_*3Ih_e}{&oq`lR?AhW9K+;bhrLzhcRN-kLLd=9eAqPlIHH03|m zqpJOvLeQLhem={_|H#>IfwLK&4qbO@o+Fj|Cbf@BrKq_z9cd~$9B|1LXU}?u)yJL7 zEGk^RLFpsnY*<}blzFbbYwwYaBN-VPX9-~Q2;kq5UzJ&qzE$%-T!G|uYs3(zrggvP zUQbU?I5L9(Heq1z-o5@=W+;^Q2Ro Y1jsXlu@00-eN4BP_4{`*h1R~6OeY*+Yz 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 N002ovPDHLkV1m#$SbqQj literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/fn-camera.png b/uni_modules/cool-cs/static/fn-camera.png new file mode 100644 index 0000000000000000000000000000000000000000..9593ed653408e80f1d403c132c29c967c9ef80b9 GIT binary patch literal 861 zcmV-j1ETziP)Px&7fD1xRCr$PT3v49Fc2OK4$_{ad%0yY>02pKbNGl(do&y9?0P4E_aL#>7TZziE z*1k%*gD3#Tn7;rZ;`g^elxBe#04b~=K#^pD7yv1(KSwMW1;7{+qWG+Io-CKuM~P%0JtS= zUDxlo$ewD!lLK&-cYUCG^DQ%4`Eq%s zRMWQYiFSHFWdj4LqyY2|^U8co%nC4-?PT$!c=fchpQJ@t%-@q)5Ju+d5b01bGI zz%wsQvjv0{+ScI8@8x$8UggTlD_-_|Pf9ggz5SZTuD0Kw@=-A|g zD7rz+N&>(pbpErtaWl@|->`~Uy| zwODNA?qa~b>2wewV4zi1_RIea((@k(GRJ5|s3T4Z zl~N}zZ?MmeL%bmpag-j z6Xzm}>>2w&d-X<0u=83($?p!O^M$bQS)R%DW{VUgv4@fmXKv<&3II%?vfWk~kgaK% niWLShfy#DUVL-N~Wh(X$%qdS_4mdy?00000NkvXXu0mjfSg2^d literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/fn-pic.png b/uni_modules/cool-cs/static/fn-pic.png new file mode 100644 index 0000000000000000000000000000000000000000..2584560fda3fa72bc3dd995d1c82b503a273c603 GIT binary patch literal 773 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 Y0S++3rCQvx)Bpeg07*qoM6N<$f^!cug#Z8m literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/plus.png b/uni_modules/cool-cs/static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..38acc2c91c88a61e006cbe5c25df4c122faad14b GIT binary patch literal 2068 zcmV+v2Px+&PhZ;RCr$PosZELH4w%_1uhi`6(AJ|6$ljw6$lk56$ljw6$ljw6`&P}6&Nef zd7RBm=G;wo^Y4P+-OM{LeDB@m^2>9(n@uivD_q-B0=Jfyb`=&b;EP3Y0l$DRCa}1; zOW_yr5QvCE2w#N|?u8KUWFPz;Tl$Xt|4$(V{2Sl+{1!s^HO82JUyM~RZX1OY(Ss1e zHz5Rk1NMmRJ-~+$-o+U4@6)$afoG7PWU8G71adL2S|5o1IHOxdOZ zCnDHsz)m5YRspE^WeDLzFJ!HN3_i?RP5FTRbXHU|1vn7_;CB^?Kuxb>j31^*NjWJI zeGR*9xa**F>^F293Y;U5Un+4l6b(nU6!eiAgGZy66b};zwRf4fyzF7X`L+dYtpd1J zpPUU^0FTHCcVp?gAC9u?Lx3A#4_C^_``qB%A(kP~yMY^EKZ`NG8VP9Dxrhi(RkPbe zpmzbUz=qv>w3`X3H5PZyepL1Y^!q(Fy%+dL#X$~HLk-TX--!qvC-@^Nq^YYUc%ik?MStok zxOHE}cepF=EuV5nKc}XuOTb+xDuH72ggd4-?XAWeze^)c_Dm(T|77L77gO-!D;avqGUv6kFcl*~TLIUmRCqwF+Si>UQWUP{ zRHiGORgRfVcoJbmlp@U-Krxtl+_N>!Ro@bL4~65g8^+s2eKJx2EKkbgNwH*#lW3l6>6*?a7ap0SGm@KGJk(=i14nC^0xL-9G@q zx34R?eglDz8)9SNc(@49G3Hx!?!`>-n<-qf-(7>q(lA?f?!`?2UKsOL?Kim8M(vyC zUfdAik~yhn8!a=huBmQ^!C6wrXpR z0DL^hCcve;-qc620+)K7V6l8s(AmHXvA1dP!U|k-p6)@{Ue#{^eEuURY*w_D7OIob zdm-n?p9y@#gJmX#rwS{1gYFd;JPo2;LueV`c9x5g9cclcYABeO;{~ooEXy3IGSg{# z`9!2Wf$j2RF5qlhr0y(!!sFM+CjvYoGVe=7NI9gz>*wLd7zGFIvvs44k2BD=akKZY>p3mhFHbo-?XgL#2X z|Ew0QsVw1&x}Z+Y4!R3Ct6YmullZ1ADLP5n7;Gu6=+?b_cQo$U5Bc*iKZ|kSX+EZ1|ec2?w6GfQoCc9>~jFwut-^;2C%*-SQrW znovglz6^A_;HAJ1;5~0283j0 + + + + {{ conf.title }} + + + + + + + + + + + + diff --git a/uni_modules/cool-ui/components/cl-avatar-group/cl-avatar-group.vue b/uni_modules/cool-ui/components/cl-avatar-group/cl-avatar-group.vue new file mode 100644 index 0000000..c71c87c --- /dev/null +++ b/uni_modules/cool-ui/components/cl-avatar-group/cl-avatar-group.vue @@ -0,0 +1,61 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-avatar/cl-avatar.vue b/uni_modules/cool-ui/components/cl-avatar/cl-avatar.vue new file mode 100644 index 0000000..22a2fc4 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-avatar/cl-avatar.vue @@ -0,0 +1,101 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-badge/cl-badge.vue b/uni_modules/cool-ui/components/cl-badge/cl-badge.vue new file mode 100644 index 0000000..e7fe5d5 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-badge/cl-badge.vue @@ -0,0 +1,77 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-banner/cl-banner.vue b/uni_modules/cool-ui/components/cl-banner/cl-banner.vue new file mode 100644 index 0000000..aa857e8 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-banner/cl-banner.vue @@ -0,0 +1,280 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-button/cl-button.vue b/uni_modules/cool-ui/components/cl-button/cl-button.vue new file mode 100644 index 0000000..2f90066 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-button/cl-button.vue @@ -0,0 +1,179 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-captcha/cl-captcha.vue b/uni_modules/cool-ui/components/cl-captcha/cl-captcha.vue new file mode 100644 index 0000000..50b3612 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-captcha/cl-captcha.vue @@ -0,0 +1,123 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-card/cl-card.vue b/uni_modules/cool-ui/components/cl-card/cl-card.vue new file mode 100644 index 0000000..b184e2c --- /dev/null +++ b/uni_modules/cool-ui/components/cl-card/cl-card.vue @@ -0,0 +1,67 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-checkbox-group/cl-checkbox-group.vue b/uni_modules/cool-ui/components/cl-checkbox-group/cl-checkbox-group.vue new file mode 100644 index 0000000..42a4dbf --- /dev/null +++ b/uni_modules/cool-ui/components/cl-checkbox-group/cl-checkbox-group.vue @@ -0,0 +1,61 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-checkbox/cl-checkbox.vue b/uni_modules/cool-ui/components/cl-checkbox/cl-checkbox.vue new file mode 100644 index 0000000..998f80d --- /dev/null +++ b/uni_modules/cool-ui/components/cl-checkbox/cl-checkbox.vue @@ -0,0 +1,148 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-col/cl-col.vue b/uni_modules/cool-ui/components/cl-col/cl-col.vue new file mode 100644 index 0000000..9e69e8f --- /dev/null +++ b/uni_modules/cool-ui/components/cl-col/cl-col.vue @@ -0,0 +1,65 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-confirm/cl-confirm.vue b/uni_modules/cool-ui/components/cl-confirm/cl-confirm.vue new file mode 100644 index 0000000..715f232 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-confirm/cl-confirm.vue @@ -0,0 +1,173 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-countdown/cl-countdown.vue b/uni_modules/cool-ui/components/cl-countdown/cl-countdown.vue new file mode 100644 index 0000000..9624843 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-countdown/cl-countdown.vue @@ -0,0 +1,273 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-dialog/cl-dialog.vue b/uni_modules/cool-ui/components/cl-dialog/cl-dialog.vue new file mode 100644 index 0000000..7ee6d63 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-dialog/cl-dialog.vue @@ -0,0 +1,110 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-divider/cl-divider.vue b/uni_modules/cool-ui/components/cl-divider/cl-divider.vue new file mode 100644 index 0000000..cf75419 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-divider/cl-divider.vue @@ -0,0 +1,53 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-empty/cl-empty.vue b/uni_modules/cool-ui/components/cl-empty/cl-empty.vue new file mode 100644 index 0000000..1d54518 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-empty/cl-empty.vue @@ -0,0 +1,67 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-filter-bar/cl-filter-bar.vue b/uni_modules/cool-ui/components/cl-filter-bar/cl-filter-bar.vue new file mode 100644 index 0000000..588804a --- /dev/null +++ b/uni_modules/cool-ui/components/cl-filter-bar/cl-filter-bar.vue @@ -0,0 +1,124 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-filter-item/cl-filter-item.vue b/uni_modules/cool-ui/components/cl-filter-item/cl-filter-item.vue new file mode 100644 index 0000000..8e89c61 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-filter-item/cl-filter-item.vue @@ -0,0 +1,343 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-footer/cl-footer.vue b/uni_modules/cool-ui/components/cl-footer/cl-footer.vue new file mode 100644 index 0000000..66d4e94 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-footer/cl-footer.vue @@ -0,0 +1,154 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-form-item/cl-form-item.vue b/uni_modules/cool-ui/components/cl-form-item/cl-form-item.vue new file mode 100644 index 0000000..b78fa5c --- /dev/null +++ b/uni_modules/cool-ui/components/cl-form-item/cl-form-item.vue @@ -0,0 +1,286 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-form/cl-form.vue b/uni_modules/cool-ui/components/cl-form/cl-form.vue new file mode 100644 index 0000000..5d0908b --- /dev/null +++ b/uni_modules/cool-ui/components/cl-form/cl-form.vue @@ -0,0 +1,244 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-grid-item/cl-grid-item.vue b/uni_modules/cool-ui/components/cl-grid-item/cl-grid-item.vue new file mode 100644 index 0000000..66f5dc4 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-grid-item/cl-grid-item.vue @@ -0,0 +1,28 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-grid/cl-grid.vue b/uni_modules/cool-ui/components/cl-grid/cl-grid.vue new file mode 100644 index 0000000..c67d35e --- /dev/null +++ b/uni_modules/cool-ui/components/cl-grid/cl-grid.vue @@ -0,0 +1,31 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-guide/cl-guide.vue b/uni_modules/cool-ui/components/cl-guide/cl-guide.vue new file mode 100644 index 0000000..5d6e21d --- /dev/null +++ b/uni_modules/cool-ui/components/cl-guide/cl-guide.vue @@ -0,0 +1,321 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-icon/cl-icon.vue b/uni_modules/cool-ui/components/cl-icon/cl-icon.vue new file mode 100644 index 0000000..e10305a --- /dev/null +++ b/uni_modules/cool-ui/components/cl-icon/cl-icon.vue @@ -0,0 +1,39 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-image/cl-image.vue b/uni_modules/cool-ui/components/cl-image/cl-image.vue new file mode 100644 index 0000000..82c2304 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-image/cl-image.vue @@ -0,0 +1,178 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-input-number/cl-input-number.vue b/uni_modules/cool-ui/components/cl-input-number/cl-input-number.vue new file mode 100644 index 0000000..65c5a31 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-input-number/cl-input-number.vue @@ -0,0 +1,206 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-input/cl-input.vue b/uni_modules/cool-ui/components/cl-input/cl-input.vue new file mode 100644 index 0000000..444eb0a --- /dev/null +++ b/uni_modules/cool-ui/components/cl-input/cl-input.vue @@ -0,0 +1,238 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-list-index/cl-list-index.vue b/uni_modules/cool-ui/components/cl-list-index/cl-list-index.vue new file mode 100644 index 0000000..bc42c4f --- /dev/null +++ b/uni_modules/cool-ui/components/cl-list-index/cl-list-index.vue @@ -0,0 +1,455 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-list-item/cl-list-item.vue b/uni_modules/cool-ui/components/cl-list-item/cl-list-item.vue new file mode 100644 index 0000000..bd5432f --- /dev/null +++ b/uni_modules/cool-ui/components/cl-list-item/cl-list-item.vue @@ -0,0 +1,258 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-list/cl-list.vue b/uni_modules/cool-ui/components/cl-list/cl-list.vue new file mode 100644 index 0000000..942700b --- /dev/null +++ b/uni_modules/cool-ui/components/cl-list/cl-list.vue @@ -0,0 +1,33 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-loading-mask/cl-loading-mask.vue b/uni_modules/cool-ui/components/cl-loading-mask/cl-loading-mask.vue new file mode 100644 index 0000000..9177e4e --- /dev/null +++ b/uni_modules/cool-ui/components/cl-loading-mask/cl-loading-mask.vue @@ -0,0 +1,64 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-loading/cl-loading.vue b/uni_modules/cool-ui/components/cl-loading/cl-loading.vue new file mode 100644 index 0000000..f18acbb --- /dev/null +++ b/uni_modules/cool-ui/components/cl-loading/cl-loading.vue @@ -0,0 +1,29 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-loadmore/cl-loadmore.vue b/uni_modules/cool-ui/components/cl-loadmore/cl-loadmore.vue new file mode 100644 index 0000000..179ad67 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-loadmore/cl-loadmore.vue @@ -0,0 +1,79 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-noticebar/cl-noticebar.vue b/uni_modules/cool-ui/components/cl-noticebar/cl-noticebar.vue new file mode 100644 index 0000000..5969570 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-noticebar/cl-noticebar.vue @@ -0,0 +1,220 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-page/cl-page.vue b/uni_modules/cool-ui/components/cl-page/cl-page.vue new file mode 100644 index 0000000..32704b2 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-page/cl-page.vue @@ -0,0 +1,231 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-pay/ali.png b/uni_modules/cool-ui/components/cl-pay/ali.png new file mode 100644 index 0000000000000000000000000000000000000000..94baa0864259a09951dc43e648d51232ca5b70c4 GIT binary patch literal 4606 zcmVPx`xJg7oRCr$PU3-um#d-gIJ&!$fAfr+lmjOS(3VtI3g%Q}qAt*-N&I*Z#FjNVf zO2q^}Qk8%o5g`aCQXB|QnGge#%K@2GFam_MvnN2ZP2$9ahmeg;LSkctz$5~MEXjA= z%bW~{2x+Hhc4l_=cDri-ny4AB>Hhlr2>sU67NDNizOOv`0O)ZL^a0QZ zK#yCX$JOu80DS=TxCMG#{oa`Y?qUOnVsM7QVCZ2`3Jfw~Q2C!2BSK=ts99ANI`kQUp9J%h0R4oF=9Avgz%vPXl%Bl% z0pRki0RtyWmM0;k(?NVXfVbpi`Q2dpAq@VZAhBgE#1n96S59LU!nP{`FtCo_&8ED7 zi53BT3IL-JYrT1p5THkh`95ljwPTBETZiOGJ#1G2pi<`{CV2q>^^4x$C2Au8))I@g zUX6xJBv(sO$`62byAH2dGnX>+QV^Zo6^3PgjEKJD1$(}O#j}20W|>P1fXe+mhnw;e z0P6RyG8?glY|jB$L#9~cEudeNQHRn2pt62!4ovF`=E(6g%4oC{GK~^p4Vu9X-Z=xM z0z#<(P-%ppW2R*QADP0)UC@PIB;u7`)%b_92wMsOSi?Mzn3sXMRu;qLDhE-WiB<+f z^dGs7qrtr60I(b3HDFu?z|xR+I*|lmxzev$%R8x5#{gh$@J}QmRsgi1lLqMg*nB@r zc~!8`exehybOZpF8(vPp3IMY@p>zqy+{M6Efn(fUv}}a~z^*rM2a#Ig_uKv!U|!?b z%uf|*m_h+yxpFgs&n!~GZX1h1-wPZuzbLs21Ay&@KLzliq7>`$aen4I#)pg0p%4IA z^>7CfjwnK*=`sd0UJ7c)+w#^YcL3OK$ayOoxO4V8!$j01J6=WPLCJcbW9wIe`beWxP;A`Ia3?ZgodIppv?N0zGM7FQu`(cz`9+B+t$noGlDT#D!C6nIH3O=0}qBP6U97`}vI|1Eitt10apnCiaF{RFmWoXJ094w$FL^cNdL1ul1Hg8hKLY4f9j2wE z=^+3B{IKtsr|I}X4*;8awml|ybTAv2jxMcfdI|st{Q>bd%%`1khSLH-#cfs@B|%1=x)A`j8$J%;q>N0Ejt%pre@O$iuZ_G^aLR=DMc zHxlp#P0o3eJ>xsZob&*=iw%2*Z00FpxA0~eo*FE)wK99!u6zXGMCbB(*})$bW~=fy ztzQAdJkyp^eFFA)qo;gFXeGF+)Pqkji3iGJFkgtbV2Jh{OrDkim~lV9z1fs6mPMIP z$&n=Ny5fenFc5nMtteegQye+Efc`fX04nQw4jc04MG0Hparh$NG4G6(Z+P!pD{}BD z2ER3ywjcru#cz4%9K2RR%Nf9`^IRgSB7l3gF|Z>L;<#4R=%jJ1MtB)9ZYh(on8gV} zjno~E1Gbg`FkL=PK>m9v6k@yx@OA(%gJ>rcUM0W-a1=8iMWCa=I0}TrvXqyYzvb1; zKh)uAH{=6gj@^IP;guDQg!pLFp&xY{075XYk>E8Zh18$o45< zo=2cl7^JF-*=Y?*kPAG=ie1!M8~J1k<)dlG$*W&m04Vwuz~CQ1(szS!&v%nvaA;+~ zD18kXX8~LTC5UPw`ftA~-lyXns~+A&gwN^F7D?0AE1xU%4s9(03;7HrdK^rb_zwM7k^hXzvCQ?sM@e7_ zQIu%m-BV?V`-YyRwcSwFK3LWX`QyfH>oXAfZv?II9plgAlu&Y5Ayj^!ia~f~Y!o}O zgtFhDx_8fP%N|?;W(5e(cSLM8lZiixI{7PQp{qC$x84cNaVwZe)V%7O;|#40{yY-K zA^^vL=om;o7KGUc07(F%SHQfJL9Y<_`x4@zrof{ZBK37pNV7MDUxC117cy9iLE762 zR?Fuc4ucr-hQP6|oYco^_@@wz1z>yhH^M(*#@7om#K8y2 z6bR9*w!xnVVO$8t#hovcBR=dqq%QQPp8-@)+YMC-^w<#NIA=;BKh_+wqO%3t4b{JY zZd{*&o^KH>zC8JA%4AIS1vQ98V7{(XYsvgjt+&;!75_$5gEO2FGRz-;~^ zc?->raXhsE0GDUkkT17$J^T$*QvO@aaeAxtn)mrtp%vz>m{}W|pU&$wF|dJ;QLhLP zEn@KaS5lkJ7vcyEk@8u~rU!s%(WU}JxQ+K0J?uMTUw_*Tw*ojJPQYBACv^UljOg1~ z^0j#ZA$mQ!!RbU|5wW_9!LjuX4s4&S6GV*f*tMG?<^|s|-Z3e#?S|^~Or4??-C{RK zrV3;?!rQ^vzu0x|K)?e$Xg9-!6R!w0QzdytT;)5)N*%*$&j6Vui891o|7?0Pno=A7 z3B<+^035C(XeKn83!{A?ZG_(jqgBSO{DBb7zWjb7=`gceFT|$lArkNPs`NiPHq!=x zVwORgxWDxsWK#eR3u&B9RCH?Iwy;5w?aD9~oOnD!4Ohc~|IQ;3m@&*S&TYY3(~y z>dhf0QlGq97eV#|NMS&j@gN@=cwv=DQ~_4OEaSc;aj{>emfOEmWljWu$YE`!id9Jy zJjZxLoq>Vj;P)gO4KNRA{^K;r=w1rLTfB3uO&Y}GV01%uaFWHIKw&_LUZ<*V6U!<< zRlh1u)YUh_OA_MoDJY9%(Y(ZW%(YX;wiywRs`#F7vCnQAwcnTjlCoJSm<571C< z<0NCejexIvLaZt>kaenv=>d>^*|;YNxXlydcAblux^^}<^2ewt&nJRf;B_MUNJmr! zgl~8(R-s0tIvuj2NezIBSs;(Xk#p>UjOD|<9b|wIbK;Skv0u+0fE=%Eij~BfF@M_Z=TRnQ-;6d~LB(Y0o z0Eq733qysC%}OFbpEkJ#k{tKOanB3@Y9PxEFDD@XJN|K6P3PwcPy6CbktqP8S3$jb zJBap=pox>C|6IcY4BQYn#=c9n8eL*ZG6%r;OdvNCSRLl{TSgYpjq^`BTrL0@UlfKv zO&L^?REJ)m-|IU@E(JSs13)wr)WaQ}zaQ7#_+a4Wz%g<=w8|9#6Ei{EdHTECh3!aB zPxy|=wdh3d0GI&5GXPpe^&PRK2t5k} z!1zoc@9NZ5=^~7o%@}-#@0d%o;T6xNPyj?A=^2%3y$7t^scD&EuKv6gV#$N}~ zj-k31*55Xc+(Azh@n(lUTcnRhpxiC^!?Pn%67tTmA?y2j4wRO6 zX#ucLp>?|suUIpeGV@XpMMN9XII9;d8#@XW4uxrfLwwn0NM`1R><(jEKE13lByKa)vfyhZ~*g139du) zc!1}E=y*W=v@4*$3dXCdHX$IN1=CiNa;qm^+lt!ESGwBU2M~T*0^op7x{D1QioqEI zgQ15(DKN-{L82fOhPBfJUc~}>b-Fn?PM_WZK%6Cd^m!iuJ?i*Lwfg|*1E9w((Bta& oXMjEcdfWm%u6}<8=y3r2KU1yl+aL?7hyVZp07*qoM6N<$f``m;Bme*a literal 0 HcmV?d00001 diff --git a/uni_modules/cool-ui/components/cl-pay/cl-pay.vue b/uni_modules/cool-ui/components/cl-pay/cl-pay.vue new file mode 100644 index 0000000..ff472e1 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-pay/cl-pay.vue @@ -0,0 +1,86 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-pay/wx.png b/uni_modules/cool-ui/components/cl-pay/wx.png new file mode 100644 index 0000000000000000000000000000000000000000..99aab1288ba47bb6bf2ed0ed874736152c63f7ba GIT binary patch literal 4816 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 + + + + + + + + {{ title }} + + + + + + + + + + + + + + diff --git a/uni_modules/cool-ui/components/cl-progress/cl-progress.vue b/uni_modules/cool-ui/components/cl-progress/cl-progress.vue new file mode 100644 index 0000000..60dfed3 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-progress/cl-progress.vue @@ -0,0 +1,101 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-radio-group/cl-radio-group.vue b/uni_modules/cool-ui/components/cl-radio-group/cl-radio-group.vue new file mode 100644 index 0000000..71d8ee6 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-radio-group/cl-radio-group.vue @@ -0,0 +1,48 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-radio/cl-radio.vue b/uni_modules/cool-ui/components/cl-radio/cl-radio.vue new file mode 100644 index 0000000..626a54b --- /dev/null +++ b/uni_modules/cool-ui/components/cl-radio/cl-radio.vue @@ -0,0 +1,149 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-rate/cl-rate.vue b/uni_modules/cool-ui/components/cl-rate/cl-rate.vue new file mode 100644 index 0000000..07db621 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-rate/cl-rate.vue @@ -0,0 +1,138 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-row/cl-row.vue b/uni_modules/cool-ui/components/cl-row/cl-row.vue new file mode 100644 index 0000000..2cfe563 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-row/cl-row.vue @@ -0,0 +1,79 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-scroller/cl-scroller.vue b/uni_modules/cool-ui/components/cl-scroller/cl-scroller.vue new file mode 100644 index 0000000..a320b2c --- /dev/null +++ b/uni_modules/cool-ui/components/cl-scroller/cl-scroller.vue @@ -0,0 +1,261 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-search/cl-search.vue b/uni_modules/cool-ui/components/cl-search/cl-search.vue new file mode 100644 index 0000000..c58f040 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-search/cl-search.vue @@ -0,0 +1,207 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-select-city/cl-select-city.vue b/uni_modules/cool-ui/components/cl-select-city/cl-select-city.vue new file mode 100644 index 0000000..77a191f --- /dev/null +++ b/uni_modules/cool-ui/components/cl-select-city/cl-select-city.vue @@ -0,0 +1,305 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-select-date/cl-select-date.vue b/uni_modules/cool-ui/components/cl-select-date/cl-select-date.vue new file mode 100644 index 0000000..5603176 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-select-date/cl-select-date.vue @@ -0,0 +1,280 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-select-inner/cl-select-inner.vue b/uni_modules/cool-ui/components/cl-select-inner/cl-select-inner.vue new file mode 100644 index 0000000..672f72c --- /dev/null +++ b/uni_modules/cool-ui/components/cl-select-inner/cl-select-inner.vue @@ -0,0 +1,53 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-select-inner/config.ts b/uni_modules/cool-ui/components/cl-select-inner/config.ts new file mode 100644 index 0000000..f14f2f5 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-select-inner/config.ts @@ -0,0 +1,35 @@ +export const Props = { + // 组件高 + height: [String, Number], + // 占位文本 + placeholder: { + type: String, + default: "请选择", + }, + // 是否禁用 + disabled: { + type: Boolean, + default: null, + }, + // 是否带有边框 + border: { + type: Boolean, + default: true, + }, + // 是否圆角 + round: { + type: Boolean, + default: null, + }, + // 图标 + arrowIcon: { + type: String, + default: "cl-icon-arrow-bottom", + }, + // 背景色 + backgroundColor: String, + // 圆角边框 + borderRadius: [String, Number, Array], + // 内间距 + padding: [String, Number, Array], +}; diff --git a/uni_modules/cool-ui/components/cl-select-popup/cl-select-popup.vue b/uni_modules/cool-ui/components/cl-select-popup/cl-select-popup.vue new file mode 100644 index 0000000..e9e305e --- /dev/null +++ b/uni_modules/cool-ui/components/cl-select-popup/cl-select-popup.vue @@ -0,0 +1,298 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-select-region/cl-select-region.vue b/uni_modules/cool-ui/components/cl-select-region/cl-select-region.vue new file mode 100644 index 0000000..1a6704c --- /dev/null +++ b/uni_modules/cool-ui/components/cl-select-region/cl-select-region.vue @@ -0,0 +1,145 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-select/cl-select.vue b/uni_modules/cool-ui/components/cl-select/cl-select.vue new file mode 100644 index 0000000..fb7b6f1 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-select/cl-select.vue @@ -0,0 +1,236 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-service/cl-service.vue b/uni_modules/cool-ui/components/cl-service/cl-service.vue new file mode 100644 index 0000000..8ff5bb2 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-service/cl-service.vue @@ -0,0 +1,77 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-share-popup/cl-share-popup.vue b/uni_modules/cool-ui/components/cl-share-popup/cl-share-popup.vue new file mode 100644 index 0000000..ddfbf61 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-share-popup/cl-share-popup.vue @@ -0,0 +1,72 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-share/alipay.png b/uni_modules/cool-ui/components/cl-share/alipay.png new file mode 100644 index 0000000000000000000000000000000000000000..94baa0864259a09951dc43e648d51232ca5b70c4 GIT binary patch literal 4606 zcmVPx`xJg7oRCr$PU3-um#d-gIJ&!$fAfr+lmjOS(3VtI3g%Q}qAt*-N&I*Z#FjNVf zO2q^}Qk8%o5g`aCQXB|QnGge#%K@2GFam_MvnN2ZP2$9ahmeg;LSkctz$5~MEXjA= z%bW~{2x+Hhc4l_=cDri-ny4AB>Hhlr2>sU67NDNizOOv`0O)ZL^a0QZ zK#yCX$JOu80DS=TxCMG#{oa`Y?qUOnVsM7QVCZ2`3Jfw~Q2C!2BSK=ts99ANI`kQUp9J%h0R4oF=9Avgz%vPXl%Bl% z0pRki0RtyWmM0;k(?NVXfVbpi`Q2dpAq@VZAhBgE#1n96S59LU!nP{`FtCo_&8ED7 zi53BT3IL-JYrT1p5THkh`95ljwPTBETZiOGJ#1G2pi<`{CV2q>^^4x$C2Au8))I@g zUX6xJBv(sO$`62byAH2dGnX>+QV^Zo6^3PgjEKJD1$(}O#j}20W|>P1fXe+mhnw;e z0P6RyG8?glY|jB$L#9~cEudeNQHRn2pt62!4ovF`=E(6g%4oC{GK~^p4Vu9X-Z=xM z0z#<(P-%ppW2R*QADP0)UC@PIB;u7`)%b_92wMsOSi?Mzn3sXMRu;qLDhE-WiB<+f z^dGs7qrtr60I(b3HDFu?z|xR+I*|lmxzev$%R8x5#{gh$@J}QmRsgi1lLqMg*nB@r zc~!8`exehybOZpF8(vPp3IMY@p>zqy+{M6Efn(fUv}}a~z^*rM2a#Ig_uKv!U|!?b z%uf|*m_h+yxpFgs&n!~GZX1h1-wPZuzbLs21Ay&@KLzliq7>`$aen4I#)pg0p%4IA z^>7CfjwnK*=`sd0UJ7c)+w#^YcL3OK$ayOoxO4V8!$j01J6=WPLCJcbW9wIe`beWxP;A`Ia3?ZgodIppv?N0zGM7FQu`(cz`9+B+t$noGlDT#D!C6nIH3O=0}qBP6U97`}vI|1Eitt10apnCiaF{RFmWoXJ094w$FL^cNdL1ul1Hg8hKLY4f9j2wE z=^+3B{IKtsr|I}X4*;8awml|ybTAv2jxMcfdI|st{Q>bd%%`1khSLH-#cfs@B|%1=x)A`j8$J%;q>N0Ejt%pre@O$iuZ_G^aLR=DMc zHxlp#P0o3eJ>xsZob&*=iw%2*Z00FpxA0~eo*FE)wK99!u6zXGMCbB(*})$bW~=fy ztzQAdJkyp^eFFA)qo;gFXeGF+)Pqkji3iGJFkgtbV2Jh{OrDkim~lV9z1fs6mPMIP z$&n=Ny5fenFc5nMtteegQye+Efc`fX04nQw4jc04MG0Hparh$NG4G6(Z+P!pD{}BD z2ER3ywjcru#cz4%9K2RR%Nf9`^IRgSB7l3gF|Z>L;<#4R=%jJ1MtB)9ZYh(on8gV} zjno~E1Gbg`FkL=PK>m9v6k@yx@OA(%gJ>rcUM0W-a1=8iMWCa=I0}TrvXqyYzvb1; zKh)uAH{=6gj@^IP;guDQg!pLFp&xY{075XYk>E8Zh18$o45< zo=2cl7^JF-*=Y?*kPAG=ie1!M8~J1k<)dlG$*W&m04Vwuz~CQ1(szS!&v%nvaA;+~ zD18kXX8~LTC5UPw`ftA~-lyXns~+A&gwN^F7D?0AE1xU%4s9(03;7HrdK^rb_zwM7k^hXzvCQ?sM@e7_ zQIu%m-BV?V`-YyRwcSwFK3LWX`QyfH>oXAfZv?II9plgAlu&Y5Ayj^!ia~f~Y!o}O zgtFhDx_8fP%N|?;W(5e(cSLM8lZiixI{7PQp{qC$x84cNaVwZe)V%7O;|#40{yY-K zA^^vL=om;o7KGUc07(F%SHQfJL9Y<_`x4@zrof{ZBK37pNV7MDUxC117cy9iLE762 zR?Fuc4ucr-hQP6|oYco^_@@wz1z>yhH^M(*#@7om#K8y2 z6bR9*w!xnVVO$8t#hovcBR=dqq%QQPp8-@)+YMC-^w<#NIA=;BKh_+wqO%3t4b{JY zZd{*&o^KH>zC8JA%4AIS1vQ98V7{(XYsvgjt+&;!75_$5gEO2FGRz-;~^ zc?->raXhsE0GDUkkT17$J^T$*QvO@aaeAxtn)mrtp%vz>m{}W|pU&$wF|dJ;QLhLP zEn@KaS5lkJ7vcyEk@8u~rU!s%(WU}JxQ+K0J?uMTUw_*Tw*ojJPQYBACv^UljOg1~ z^0j#ZA$mQ!!RbU|5wW_9!LjuX4s4&S6GV*f*tMG?<^|s|-Z3e#?S|^~Or4??-C{RK zrV3;?!rQ^vzu0x|K)?e$Xg9-!6R!w0QzdytT;)5)N*%*$&j6Vui891o|7?0Pno=A7 z3B<+^035C(XeKn83!{A?ZG_(jqgBSO{DBb7zWjb7=`gceFT|$lArkNPs`NiPHq!=x zVwORgxWDxsWK#eR3u&B9RCH?Iwy;5w?aD9~oOnD!4Ohc~|IQ;3m@&*S&TYY3(~y z>dhf0QlGq97eV#|NMS&j@gN@=cwv=DQ~_4OEaSc;aj{>emfOEmWljWu$YE`!id9Jy zJjZxLoq>Vj;P)gO4KNRA{^K;r=w1rLTfB3uO&Y}GV01%uaFWHIKw&_LUZ<*V6U!<< zRlh1u)YUh_OA_MoDJY9%(Y(ZW%(YX;wiywRs`#F7vCnQAwcnTjlCoJSm<571C< z<0NCejexIvLaZt>kaenv=>d>^*|;YNxXlydcAblux^^}<^2ewt&nJRf;B_MUNJmr! zgl~8(R-s0tIvuj2NezIBSs;(Xk#p>UjOD|<9b|wIbK;Skv0u+0fE=%Eij~BfF@M_Z=TRnQ-;6d~LB(Y0o z0Eq733qysC%}OFbpEkJ#k{tKOanB3@Y9PxEFDD@XJN|K6P3PwcPy6CbktqP8S3$jb zJBap=pox>C|6IcY4BQYn#=c9n8eL*ZG6%r;OdvNCSRLl{TSgYpjq^`BTrL0@UlfKv zO&L^?REJ)m-|IU@E(JSs13)wr)WaQ}zaQ7#_+a4Wz%g<=w8|9#6Ei{EdHTECh3!aB zPxy|=wdh3d0GI&5GXPpe^&PRK2t5k} z!1zoc@9NZ5=^~7o%@}-#@0d%o;T6xNPyj?A=^2%3y$7t^scD&EuKv6gV#$N}~ zj-k31*55Xc+(Azh@n(lUTcnRhpxiC^!?Pn%67tTmA?y2j4wRO6 zX#ucLp>?|suUIpeGV@XpMMN9XII9;d8#@XW4uxrfLwwn0NM`1R><(jEKE13lByKa)vfyhZ~*g139du) zc!1}E=y*W=v@4*$3dXCdHX$IN1=CiNa;qm^+lt!ESGwBU2M~T*0^op7x{D1QioqEI zgQ15(DKN-{L82fOhPBfJUc~}>b-Fn?PM_WZK%6Cd^m!iuJ?i*Lwfg|*1E9w((Bta& oXMjEcdfWm%u6}<8=y3r2KU1yl+aL?7hyVZp07*qoM6N<$f``m;Bme*a literal 0 HcmV?d00001 diff --git a/uni_modules/cool-ui/components/cl-share/cl-share.vue b/uni_modules/cool-ui/components/cl-share/cl-share.vue new file mode 100644 index 0000000..3d991ed --- /dev/null +++ b/uni_modules/cool-ui/components/cl-share/cl-share.vue @@ -0,0 +1,130 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-share/qq.png b/uni_modules/cool-ui/components/cl-share/qq.png new file mode 100644 index 0000000000000000000000000000000000000000..f1159240030a6b5aab514fcef30c9caf6e8513d4 GIT binary patch literal 4047 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-ui/components/cl-skeleton/cl-skeleton.vue b/uni_modules/cool-ui/components/cl-skeleton/cl-skeleton.vue new file mode 100644 index 0000000..2b0030a --- /dev/null +++ b/uni_modules/cool-ui/components/cl-skeleton/cl-skeleton.vue @@ -0,0 +1,39 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-slider/cl-slider.vue b/uni_modules/cool-ui/components/cl-slider/cl-slider.vue new file mode 100644 index 0000000..f50fec0 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-slider/cl-slider.vue @@ -0,0 +1,110 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-status-bar/cl-status-bar.vue b/uni_modules/cool-ui/components/cl-status-bar/cl-status-bar.vue new file mode 100644 index 0000000..5865297 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-status-bar/cl-status-bar.vue @@ -0,0 +1,64 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-sticky/cl-sticky.vue b/uni_modules/cool-ui/components/cl-sticky/cl-sticky.vue new file mode 100644 index 0000000..081f04f --- /dev/null +++ b/uni_modules/cool-ui/components/cl-sticky/cl-sticky.vue @@ -0,0 +1,69 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-switch/cl-switch.vue b/uni_modules/cool-ui/components/cl-switch/cl-switch.vue new file mode 100644 index 0000000..521e05b --- /dev/null +++ b/uni_modules/cool-ui/components/cl-switch/cl-switch.vue @@ -0,0 +1,64 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-tabs/cl-tabs.vue b/uni_modules/cool-ui/components/cl-tabs/cl-tabs.vue new file mode 100644 index 0000000..ffb692f --- /dev/null +++ b/uni_modules/cool-ui/components/cl-tabs/cl-tabs.vue @@ -0,0 +1,367 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-tag/cl-tag.vue b/uni_modules/cool-ui/components/cl-tag/cl-tag.vue new file mode 100644 index 0000000..759c05e --- /dev/null +++ b/uni_modules/cool-ui/components/cl-tag/cl-tag.vue @@ -0,0 +1,80 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-text/cl-text.vue b/uni_modules/cool-ui/components/cl-text/cl-text.vue new file mode 100644 index 0000000..42dbb98 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-text/cl-text.vue @@ -0,0 +1,167 @@ + + + diff --git a/uni_modules/cool-ui/components/cl-textarea/cl-textarea.vue b/uni_modules/cool-ui/components/cl-textarea/cl-textarea.vue new file mode 100644 index 0000000..277d5a7 --- /dev/null +++ b/uni_modules/cool-ui/components/cl-textarea/cl-textarea.vue @@ -0,0 +1,201 @@ +

=iGXY{ax(P&Uodo9f3)52$WQG7Ghiek=1Vp0m0Cc;}mq7NT%Dl4!uSaOXi2OAH zODtGFjSC>!(_>VzAbe;&uVm)c$wX|&a2?~FfV>YV8T@oojb*0B!ANvHf!6go;qeG9 z|5IKv_$p0{HDu-?L-;Wi3El}9%YZYy1}s=mJGrcaegU$R!K#`n zAvK}h?JTn-1h@%gv~Px&Oi4sRRCr$PnqO`jF%ZVb2{}iJO3#tyJygmG0w+m1NpgcqrSCQ8C{gJ-O50vFxylW5#13H zzi0C@iuPA;wEg~3zl1Cb1~C0xO(zq2&du1w> zt#%8orS(7nW}E6;?mOS6gx7n0dp3X%U#g{1N9m98HJ4N%Dqyy$o`~qv7_H}Z?-qLP zTe}G0{nzSQ8Cs4MfZi?i{44-t^#7W{1wc_iE-t{anTWJ9$M@~wKzmMBILBbgP9`)} zhNf>U46Qye>;fI&n0kK03f1H|F6r`8Kn&U zG>YDNnk;ZM0nUNp72pHFJBlVRlH5C7jH7@rCrA%K>L}ZO{yMau55kQCK$NV#0}{y3j8xMCpUe%1Ca7|aZCfiR)8X0Y4=a;0@WXz20$|`vLQFuRIxIo9KiJi z>RliSl;`s_09=XO)!?wVM8`PIe_Xo@XmN$INCTi&>Zbl(K{5cLJ2lk!0-#)v=W;zh zl*WC}MT#^rR)bYn3j2^b#fA$4KG@(qx|xl=>6}(?rCOu8D98n3TM~1=0w5;s9Oo(u o$Z=OChZ*Ox_AZr0Uv-IU%QAw4*&oF07*qoM6N<$f{fIYCIA2c literal 0 HcmV?d00001 diff --git a/static/logo.png b/static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..587669ec97a87149551da99dd9c12e7a1a1fbed4 GIT binary patch literal 39386 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 literal 0 HcmV?d00001 diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..9086324 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "@vue/tsconfig/tsconfig.json", + "compilerOptions": { + "ignoreDeprecations": "5.0", + "verbatimModuleSyntax": true, + "experimentalDecorators": true, + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "allowJs": true, + "paths": { + "/@/*": ["./*"], + "/$/*": ["./uni_modules/*"] + }, + "lib": ["esnext", "dom"], + "types": ["@dcloudio/types"], + "outDir": "esbuild" + }, + "include": ["**/*.ts", "**/*.vue", "main.js", "types/*.d.ts"], + "exclude": ["node_modules", "dist"] +} diff --git a/types/env.d.ts b/types/env.d.ts new file mode 100644 index 0000000..0efc421 --- /dev/null +++ b/types/env.d.ts @@ -0,0 +1,15 @@ +/// +/// +/// +/// + +declare module "*.vue" { + import { DefineComponent } from "vue"; + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types + const component: DefineComponent<{}, {}, any>; + export default component; +} + +declare module "virtual:ctx"; +declare module "virtual:eps"; +declare module "@dcloudio/vite-plugin-uni"; diff --git a/types/shop.d.ts b/types/shop.d.ts new file mode 100644 index 0000000..fec2de3 --- /dev/null +++ b/types/shop.d.ts @@ -0,0 +1,36 @@ +declare interface OrderGoods { + id?: any; + count: number; + isComment?: number; + orderId?: number; + price?: any; + spec: Eps.GoodsSpecEntity; + goodsInfo: Eps.GoodsInfoEntity; + [key: string]: any; +} + +declare interface CouponInfo extends Eps.MarketCouponInfoEntity { + condition?: { + fullAmount: number; + }; +} + +declare interface OrderInfo extends Eps.OrderInfoEntity { + address?: Eps.UserAddressEntity; + discountSource?: { + type: number; + objectId: number; + info: CouponInfo; + }; + goodsList?: OrderGoods[]; + refund?: { + orderNum: string; + amount: number; + realAmount: number; + status: number; + applyTime: Date; + time: Date; + reason: string; + refuseReason: string; + }; +} diff --git a/uni.scss b/uni.scss new file mode 100644 index 0000000..31e990f --- /dev/null +++ b/uni.scss @@ -0,0 +1,77 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ +@import "/$/cool-ui/theme.scss"; + +/* 行为相关颜色 */ +$uni-color-primary: #6b69f8; +$uni-color-success: #4cd964; +$uni-color-warning: #f0ad4e; +$uni-color-error: #dd524d; + +/* 文字基本颜色 */ +$uni-text-color: #333; //基本色 +$uni-text-color-inverse: #fff; //反色 +$uni-text-color-grey: #999; //辅助灰色,如加载更多的提示信息 +$uni-text-color-placeholder: #808080; +$uni-text-color-disable: #c0c0c0; + +/* 背景颜色 */ +$uni-bg-color: #ffffff; +$uni-bg-color-grey: #f8f8f8; +$uni-bg-color-hover: #f1f1f1; //点击状态颜色 +$uni-bg-color-mask: rgba(0, 0, 0, 0.4); //遮罩颜色 + +/* 边框颜色 */ +$uni-border-color: #c8c7cc; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm: 24upx; +$uni-font-size-base: 28upx; +$uni-font-size-lg: 32upx; + +/* 图片尺寸 */ +$uni-img-size-sm: 40upx; +$uni-img-size-base: 52upx; +$uni-img-size-lg: 80upx; + +/* Border Radius */ +$uni-border-radius-sm: 4upx; +$uni-border-radius-base: 6upx; +$uni-border-radius-lg: 12upx; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 10px; +$uni-spacing-row-base: 20upx; +$uni-spacing-row-lg: 30upx; + +/* 垂直间距 */ +$uni-spacing-col-sm: 8upx; +$uni-spacing-col-base: 16upx; +$uni-spacing-col-lg: 24upx; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2c405a; // 文章标题颜色 +$uni-font-size-title: 40upx; +$uni-color-subtitle: #555555; // 二级标题颜色 +$uni-font-size-subtitle: 36upx; +$uni-color-paragraph: #3f536e; // 文章段落颜色 +$uni-font-size-paragraph: 30upx; diff --git a/uni_modules/cool-app/components/cl-version-about/cl-version-about.vue b/uni_modules/cool-app/components/cl-version-about/cl-version-about.vue new file mode 100644 index 0000000..c4c54a1 --- /dev/null +++ b/uni_modules/cool-app/components/cl-version-about/cl-version-about.vue @@ -0,0 +1,32 @@ + + + diff --git a/uni_modules/cool-app/components/cl-version-upgrade/cl-version-upgrade.vue b/uni_modules/cool-app/components/cl-version-upgrade/cl-version-upgrade.vue new file mode 100644 index 0000000..137a565 --- /dev/null +++ b/uni_modules/cool-app/components/cl-version-upgrade/cl-version-upgrade.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/uni_modules/cool-app/config.ts b/uni_modules/cool-app/config.ts new file mode 100644 index 0000000..c6e38f9 --- /dev/null +++ b/uni_modules/cool-app/config.ts @@ -0,0 +1,14 @@ +import type { ModuleConfig } from "/@/cool"; + +export default (): ModuleConfig => { + return { + description: "APP应用管理模块:版本升级、意见反馈、投诉建议、套餐设置", + + // #ifdef APP + demo: { + label: "Version 版本升级", + path: "/uni_modules/cool-app/pages/version/demo", + }, + // #endif + }; +}; diff --git a/uni_modules/cool-app/hooks/cache.ts b/uni_modules/cool-app/hooks/cache.ts new file mode 100644 index 0000000..0cfe626 --- /dev/null +++ b/uni_modules/cool-app/hooks/cache.ts @@ -0,0 +1,46 @@ +import { onShow } from "@dcloudio/uni-app"; +import { defineStore } from "pinia"; +import { ref } from "vue"; + +// 缓存 +export const useCache = defineStore("app.cache", () => { + // 缓存大小 + const size = ref("0KB"); + + // 获取缓存 + function get() { + // #ifdef APP + // @ts-ignore + plus.cache.calculate(function (s: number) { + //size是多少个字节单位是b + if (s < 1024) { + size.value = s + "B"; + } else if (s / 1024 >= 1 && s / 1024 / 1024 < 1) { + size.value = Math.floor((s / 1024) * 100) / 100 + "KB"; + } else if (s / 1024 / 1024 >= 1) { + size.value = Math.floor((s / 1024 / 1024) * 100) / 100 + "M"; + } + }); + // #endif + } + + // 清空缓存 + function clear() { + // #ifdef APP + // @ts-ignore + plus.cache.clear(function () { + get(); + }); + // #endif + } + + onShow(() => { + get(); + }); + + return { + size, + get, + clear, + }; +}); diff --git a/uni_modules/cool-app/hooks/index.ts b/uni_modules/cool-app/hooks/index.ts new file mode 100644 index 0000000..eb96e32 --- /dev/null +++ b/uni_modules/cool-app/hooks/index.ts @@ -0,0 +1,2 @@ +export * from "./version"; +export * from "./cache"; diff --git a/uni_modules/cool-app/hooks/version.ts b/uni_modules/cool-app/hooks/version.ts new file mode 100644 index 0000000..1ddb53f --- /dev/null +++ b/uni_modules/cool-app/hooks/version.ts @@ -0,0 +1,171 @@ +import { defineStore } from "pinia"; +import { ref } from "vue"; +import { service } from "/@/cool"; +import { useUi } from "/$/cool-ui"; +import { compareVersions, getVersion } from "../utils"; +import { isAndroid } from "/@/cool/utils"; + +// 版本信息 +export function useVersion() { + const ui = useUi(); + + const store = defineStore("app.version", () => { + // 版本号 + const num = ref(); + + // 是否能升级 + const isUpgrade = ref(false); + + // 检测状态 + const loading = ref(false); + + // 下载进度 + const progress = ref(); + + // 新版本信息 + const updateInfo = ref(); + + let req: any; + let task: UniApp.DownloadTask | null; + + // 检测更新 + async function check() { + // #ifdef APP + loading.value = true; + + await req; + + await service.app.version + .check({ + version: num.value, + type: isAndroid ? 0 : 1, + }) + .then((res) => { + if (res) { + console.log("[cool-app] 新版本信息", res); + updateInfo.value = res; + isUpgrade.value = compareVersions(res?.version, num.value) === 1; + } + }) + .catch((err) => { + ui.showToast(err.message); + }); + + loading.value = false; + // #endif + } + + // 更新资源包 + function update(isConfirm: boolean = true, cb?: () => void) { + const { url, forceUpdate, version, description, hotUpdate } = updateInfo.value || {}; + + function next() { + if (!isUpgrade.value) { + return false; + } + + if (!updateInfo.value) { + return ui.showToast("未检测到版本信息"); + } + + if (!url) { + return ui.showToast(hotUpdate ? "资源包错误" : "APP下载地址错误"); + } + + if (hotUpdate) { + ui.showLoading({ + text: "下载资源包", + border: true, + }); + + task = uni.downloadFile({ + url, + success(res) { + if (cb) { + cb(); + } + + ui.hideLoading(); + + if (res.statusCode == 200) { + plus.runtime.install( + res.tempFilePath, + { force: !!forceUpdate }, + () => { + num.value = version; + ui.showToast("更新成功,重启中"); + plus.runtime.restart(); + }, + ); + } else { + ui.showToast("下载资源包失败"); + } + }, + complete() { + ui.hideLoading(); + }, + }); + + task.onProgressUpdate((res) => { + progress.value = res.progress; + }); + } else { + plus.runtime.openURL(url); + } + } + + if (isUpgrade.value) { + if (isConfirm) { + ui.showConfirm({ + title: "检查到新版本", + message: description, + confirmButtonText: "立即更新", + callback(action) { + if (action == "confirm") { + next(); + } + }, + }); + } else { + next(); + } + } else { + ui.showToast("当前已是最新版本"); + } + } + + // 取消下载 + function cancel() { + task?.abort(); + } + + // 清空 + function clear() { + progress.value = 0; + } + + // 获取版本号 + function get() { + req = getVersion().then((res) => { + num.value = res; + }); + } + + get(); + + return { + num, + progress, + updateInfo, + isUpgrade, + loading, + check, + update, + get, + clear, + cancel, + }; + }); + + return store(); +} diff --git a/uni_modules/cool-app/index.ts b/uni_modules/cool-app/index.ts new file mode 100644 index 0000000..c2da53d --- /dev/null +++ b/uni_modules/cool-app/index.ts @@ -0,0 +1,2 @@ +export * from "./hooks"; +export * from "./utils"; diff --git a/uni_modules/cool-app/pages/complain/detail.vue b/uni_modules/cool-app/pages/complain/detail.vue new file mode 100644 index 0000000..faf6b6d --- /dev/null +++ b/uni_modules/cool-app/pages/complain/detail.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/uni_modules/cool-app/pages/complain/list.vue b/uni_modules/cool-app/pages/complain/list.vue new file mode 100644 index 0000000..69309de --- /dev/null +++ b/uni_modules/cool-app/pages/complain/list.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/uni_modules/cool-app/pages/complain/submit.vue b/uni_modules/cool-app/pages/complain/submit.vue new file mode 100644 index 0000000..38958e1 --- /dev/null +++ b/uni_modules/cool-app/pages/complain/submit.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/uni_modules/cool-app/pages/feedback/detail.vue b/uni_modules/cool-app/pages/feedback/detail.vue new file mode 100644 index 0000000..4a66266 --- /dev/null +++ b/uni_modules/cool-app/pages/feedback/detail.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/uni_modules/cool-app/pages/feedback/list.vue b/uni_modules/cool-app/pages/feedback/list.vue new file mode 100644 index 0000000..8fbe46c --- /dev/null +++ b/uni_modules/cool-app/pages/feedback/list.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/uni_modules/cool-app/pages/feedback/submit.vue b/uni_modules/cool-app/pages/feedback/submit.vue new file mode 100644 index 0000000..948d431 --- /dev/null +++ b/uni_modules/cool-app/pages/feedback/submit.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/uni_modules/cool-app/pages/version/demo.vue b/uni_modules/cool-app/pages/version/demo.vue new file mode 100644 index 0000000..b25369f --- /dev/null +++ b/uni_modules/cool-app/pages/version/demo.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/uni_modules/cool-app/pages_init.json b/uni_modules/cool-app/pages_init.json new file mode 100644 index 0000000..33ca272 --- /dev/null +++ b/uni_modules/cool-app/pages_init.json @@ -0,0 +1,51 @@ +{ + "subPackages": [ + { + "root": "uni_modules/cool-app/pages", + "pages": [ + { + "path": "version/demo", + "style": { + "navigationBarTitleText": "版本升级" + } + }, + { + "path": "complain/detail", + "style": { + "navigationBarTitleText": "投诉详情" + } + }, + { + "path": "complain/list", + "style": { + "navigationBarTitleText": "投诉列表" + } + }, + { + "path": "complain/submit", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "feedback/detail", + "style": { + "navigationBarTitleText": "反馈详情" + } + }, + { + "path": "feedback/list", + "style": { + "navigationBarTitleText": "反馈列表" + } + }, + { + "path": "feedback/submit", + "style": { + "navigationStyle": "custom" + } + } + ] + } + ] +} diff --git a/uni_modules/cool-app/static/bg.png b/uni_modules/cool-app/static/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..bf114e02f70293df4dea7ba29de7afe27ad3d9db GIT binary patch literal 77218 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𝔗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 XFyO;P)T_R20OF@8t0q$;1qu6q{<>+u literal 0 HcmV?d00001 diff --git a/uni_modules/cool-app/utils/index.ts b/uni_modules/cool-app/utils/index.ts new file mode 100644 index 0000000..ab9ba3e --- /dev/null +++ b/uni_modules/cool-app/utils/index.ts @@ -0,0 +1,97 @@ +import { isAndroid, uuid } from "/@/cool/utils"; + +// 版本比较 +export function compareVersions(v1: string, v2: string) { + const arr1 = v1.split(".").map(Number); + const arr2 = v2.split(".").map(Number); + const maxLength = Math.max(arr1.length, arr2.length); + + for (let i = 0; i < maxLength; i++) { + const num1 = arr1[i] || 0; + const num2 = arr2[i] || 0; + + if (num1 > num2) return 1; + if (num2 > num1) return -1; + } + + return 0; +} + +// 获取版本号 +export function getVersion(): Promise { + return new Promise((resolve) => { + // #ifdef APP + const packVersion: any = plus.runtime.version; + const appid: any = plus.runtime.appid; + plus.runtime.getProperty(appid, function (widgetInfo) { + resolve( + String(packVersion) > String(widgetInfo.version) ? packVersion : widgetInfo.version, + ); + }); + // #endif + + // #ifndef APP + resolve("1.0.0"); + // #endif + }); +} + +// 获取 deviceId +export function getDeviceId(): string { + // #ifdef APP + return plus.device.uuid!; + // #endif + + // #ifndef APP + return uuid(); + // #endif +} + +// 获取 oaid +export function getOAID() { + return new Promise((resolve) => { + plus.device.getOAID({ + success(res) { + resolve(res.oaid); + }, + fail() { + resolve(0); + }, + }); + }); +} + +// 获取 androidId +export function getAndroidId() { + if (isAndroid) { + const Settings = plus.android.importClass("android.provider.Settings"); + const main = plus.android.runtimeMainActivity(); + // @ts-ignore + return Settings.Secure.getString(main.getContentResolver(), Settings.Secure.ANDROID_ID); + } +} + +// 获取 mac +export function getMac() { + if (isAndroid) { + const net = plus.android.importClass("java.net.NetworkInterface"); + // @ts-ignore + const wl0 = net.getByName("wlan0"); + const macByte = wl0.getHardwareAddress(); + let str = ""; + for (let i = 0; i < macByte.length; i++) { + let tmp = ""; + let num = macByte[i]; + if (num < 0) { + tmp = (255 + num + 1).toString(16); + } else { + tmp = num.toString(16); + } + if (tmp.length == 1) { + tmp = "0" + tmp; + } + str += tmp; + } + return str; + } +} diff --git a/uni_modules/cool-cs/components/msg-item.vue b/uni_modules/cool-cs/components/msg-item.vue new file mode 100644 index 0000000..788c57e --- /dev/null +++ b/uni_modules/cool-cs/components/msg-item.vue @@ -0,0 +1,187 @@ + + + + + diff --git a/uni_modules/cool-cs/components/msg-list.vue b/uni_modules/cool-cs/components/msg-list.vue new file mode 100644 index 0000000..13f0739 --- /dev/null +++ b/uni_modules/cool-cs/components/msg-list.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/uni_modules/cool-cs/components/tools/emoji.vue b/uni_modules/cool-cs/components/tools/emoji.vue new file mode 100644 index 0000000..4ad9a51 --- /dev/null +++ b/uni_modules/cool-cs/components/tools/emoji.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/uni_modules/cool-cs/components/tools/fn.vue b/uni_modules/cool-cs/components/tools/fn.vue new file mode 100644 index 0000000..81c9e2e --- /dev/null +++ b/uni_modules/cool-cs/components/tools/fn.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/uni_modules/cool-cs/components/tools/index.vue b/uni_modules/cool-cs/components/tools/index.vue new file mode 100644 index 0000000..9f834a8 --- /dev/null +++ b/uni_modules/cool-cs/components/tools/index.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/uni_modules/cool-cs/config.ts b/uni_modules/cool-cs/config.ts new file mode 100644 index 0000000..7934d87 --- /dev/null +++ b/uni_modules/cool-cs/config.ts @@ -0,0 +1,14 @@ +import { config, type ModuleConfig } from "/@/cool"; + +export default (): ModuleConfig => { + return { + description: "客服聊天模块", + options: { + url: config.host + "/cs", + }, + demo: { + label: "CS 客服聊天", + path: "/uni_modules/cool-cs/pages/chat", + }, + }; +}; diff --git a/uni_modules/cool-cs/hooks/index.ts b/uni_modules/cool-cs/hooks/index.ts new file mode 100644 index 0000000..54134f4 --- /dev/null +++ b/uni_modules/cool-cs/hooks/index.ts @@ -0,0 +1,4 @@ +export * from "./tools"; +export * from "./socket"; +export * from "./session"; +export * from "./message"; diff --git a/uni_modules/cool-cs/hooks/message.ts b/uni_modules/cool-cs/hooks/message.ts new file mode 100644 index 0000000..da9fa2a --- /dev/null +++ b/uni_modules/cool-cs/hooks/message.ts @@ -0,0 +1,120 @@ +import { defineStore } from "pinia"; +import { computed, ref } from "vue"; +import type { Cs } from "../types"; +import dayjs from "dayjs"; +import { service, useStore } from "/@/cool"; +import { last } from "lodash-es"; +import { useSession } from "./session"; +import { uuid } from "/@/cool/utils"; +import { useScroller } from "./tools"; +import { dateFormatter } from "../utils"; + +export const useMessage = defineStore("cs.message", () => { + const session = useSession(); + const scroller = useScroller(); + const { user } = useStore(); + + // 加载中 + const loading = ref(false); + + // 所有页 + const data = ref<{ id: string; data: Cs.Msg[] }[]>([]); + + // 列表 + const list = computed(() => { + data.value.forEach((e) => { + if (e.data[0]) { + let date = e.data[0].createTime; + + if (date) { + e.data.forEach((a, i) => { + const d = dateFormatter(a.createTime); + + if (i == 0) { + a.date = d; + } + + if (dayjs(a.createTime).subtract(10, "minute").isAfter(dayjs(date))) { + a.date = d; + date = a.createTime; + } + }); + } + } + }); + + return data.value; + }); + + // 追加消息 + function append(item: Cs.Msg) { + const list = last(data.value)?.data; + + if (list) { + list.push({ + sessionId: session.info?.id, + type: 0, + nickName: user.info?.nickName, + avatarUrl: user.info?.avatarUrl, + ...item, + isAnimation: true, + }); + + scroller.scrollToBottom(); + } + } + + // 清除消息 + function clear() { + data.value = []; + } + + // 读消息 + function read(id: number) { + service.cs.msg.read({ + msgIds: [id], + }); + } + + // 获取消息 + async function refresh(params?: any) { + loading.value = true; + + if (params.page == 1) { + data.value = []; + } + + await service.cs.msg + .page({ + sessionId: session.info?.id, + order: "createTime", + sort: "desc", + ...params, + }) + .then((res) => { + res.list.forEach((e) => { + if (e.type == 1) { + e.avatarUrl = e.adminUserHeadImg; + e.nickName = e.adminUserName; + } + }); + + data.value.unshift({ + id: uuid(), + data: res.list.reverse() as any[], + }); + }); + + loading.value = false; + } + + return { + data, + list, + loading, + append, + clear, + read, + refresh, + }; +}); diff --git a/uni_modules/cool-cs/hooks/session.ts b/uni_modules/cool-cs/hooks/session.ts new file mode 100644 index 0000000..f221f29 --- /dev/null +++ b/uni_modules/cool-cs/hooks/session.ts @@ -0,0 +1,24 @@ +import { defineStore } from "pinia"; +import { ref } from "vue"; +import type { Cs } from "../types"; + +export const useSession = defineStore("cs.session", () => { + // 详情 + const info = ref(); + + // 设置会话 + function set(data: Cs.Session) { + info.value = data; + } + + // 清除会话 + function clear() { + info.value = undefined; + } + + return { + info, + set, + clear, + }; +}); diff --git a/uni_modules/cool-cs/hooks/socket.ts b/uni_modules/cool-cs/hooks/socket.ts new file mode 100644 index 0000000..03324f0 --- /dev/null +++ b/uni_modules/cool-cs/hooks/socket.ts @@ -0,0 +1,96 @@ +import { defineStore } from "pinia"; +// @ts-ignore +import io, { type Socket } from "@hyoga/uni-socket.io"; +import type { Cs } from "../types"; +import { useStore, module } from "/@/cool"; +import { useSession } from "./session"; +import { useMessage } from "./message"; + +export const useSocket = defineStore("cs.socket", () => { + const config = module.config("cool-cs"); + const { user } = useStore(); + const session = useSession(); + const message = useMessage(); + + let client = undefined as Socket | undefined; + + // 连接 + function connect() { + if (!user.token) { + return false; + } + + if (client) { + disconnect(); + } + + if (!client) { + client = io(config.url, { + transports: ["websocket", "polling"], + auth: { + isAdmin: false, + token: user.token, + }, + }); + + client.on("connect", () => { + console.log("[cs] connect"); + }); + + client.on("disconnect", () => { + console.log("[cs] disconnect"); + }); + + client.on("msg", (data: Cs.Msg) => { + if (data.type == 1) { + if (data.sessionId == session.info?.id) { + // 追加消息 + message.append({ + ...data.user, + ...data, + isAnimation: true, + }); + + // 读消息 + message.read(data.id!); + } + } + }); + } + } + + // 断开连接 + function disconnect() { + client?.disconnect(); + client = undefined; + } + + // 发送消息 + function send(content: Cs.Content) { + if (client) { + // 发送事件 + client.emit("send", { + sessionId: session.info?.id, + content, + }); + + // 追加消息 + message.append({ content }); + } else { + console.log("[cs] client error"); + } + } + + // 监听退出 + uni.$on("user.logout", () => { + session.clear(); + message.clear(); + disconnect(); + }); + + return { + connect, + client, + send, + }; +}); diff --git a/uni_modules/cool-cs/hooks/tools.ts b/uni_modules/cool-cs/hooks/tools.ts new file mode 100644 index 0000000..bc06901 --- /dev/null +++ b/uni_modules/cool-cs/hooks/tools.ts @@ -0,0 +1,61 @@ +import { defineStore } from "pinia"; +import { nextTick, ref } from "vue"; +import { throttle } from "lodash-es"; + +export const useTools = defineStore("cs.tools", () => { + const visible = ref(false); + const mode = ref(""); + + // 打开 + function open(m: string) { + if (visible.value && mode.value === m) { + return close(); + } + + visible.value = true; + mode.value = m; + } + + // 关闭 + function close() { + visible.value = false; + } + + return { + visible, + mode, + open, + close, + }; +}); + +export const useScroller = defineStore("cs.scroller", () => { + // 滚动距离 + const top = ref(0); + + // 滚动动画 + const animation = ref(true); + + let n = 0; + + // 滚动到指定位置 + const scrollTo = throttle((scrollTop: number, smooth: boolean = true) => { + nextTick().then(() => { + top.value = scrollTop; + + animation.value = smooth; + }); + }, 500); + + // 滚动到底部 + const scrollToBottom = (smooth?: boolean) => { + scrollTo(100000 + n++, smooth); + }; + + return { + animation, + top, + scrollToBottom, + scrollTo, + }; +}); diff --git a/uni_modules/cool-cs/pages/chat.vue b/uni_modules/cool-cs/pages/chat.vue new file mode 100644 index 0000000..bb2780a --- /dev/null +++ b/uni_modules/cool-cs/pages/chat.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/uni_modules/cool-cs/pages_init.json b/uni_modules/cool-cs/pages_init.json new file mode 100644 index 0000000..fccd4e3 --- /dev/null +++ b/uni_modules/cool-cs/pages_init.json @@ -0,0 +1,15 @@ +{ + "subPackages": [ + { + "root": "uni_modules/cool-cs/pages", + "pages": [ + { + "path": "chat", + "style": { + "navigationBarTitleText": "客服聊天" + } + } + ] + } + ] +} diff --git a/uni_modules/cool-cs/static/add.png b/uni_modules/cool-cs/static/add.png new file mode 100644 index 0000000000000000000000000000000000000000..38acc2c91c88a61e006cbe5c25df4c122faad14b GIT binary patch literal 2068 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/anguished-face.png b/uni_modules/cool-cs/static/emoji/anguished-face.png new file mode 100644 index 0000000000000000000000000000000000000000..fa4678b59d5aeeffa2134e8dc4d0838efddf7abf GIT binary patch literal 3584 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 BUP1r> literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/confused-face.png b/uni_modules/cool-cs/static/emoji/confused-face.png new file mode 100644 index 0000000000000000000000000000000000000000..b01d70e81b11b0b8d5e1204da063a07e1b8af876 GIT binary patch literal 3670 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 tehq(X% literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/crying-face.png b/uni_modules/cool-cs/static/emoji/crying-face.png new file mode 100644 index 0000000000000000000000000000000000000000..c5aae1ce8fba3448325f11fd2db2cca39b4b2559 GIT binary patch literal 3824 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/disappointed-but-relieved-face.png b/uni_modules/cool-cs/static/emoji/disappointed-but-relieved-face.png new file mode 100644 index 0000000000000000000000000000000000000000..f4f6e3eb594055bb555cfaa577fc9614a0a25f3c GIT binary patch literal 3709 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/disappointed-face.png b/uni_modules/cool-cs/static/emoji/disappointed-face.png new file mode 100644 index 0000000000000000000000000000000000000000..aa3e501ac4bf447b92e59dce19bc94451ff64f3a GIT binary patch literal 3584 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 BJEQ;r literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/drooling-face.png b/uni_modules/cool-cs/static/emoji/drooling-face.png new file mode 100644 index 0000000000000000000000000000000000000000..a7e254504ae64b40ac3305a4fce22cfd297abbd8 GIT binary patch literal 3552 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 a#sC0D%Jxpe2kQ+00000gj5k{$<_&TUv_0XfLbz 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/face-savouring-delicious-food.png b/uni_modules/cool-cs/static/emoji/face-savouring-delicious-food.png new file mode 100644 index 0000000000000000000000000000000000000000..7f3d4344c71b57a2451a506de0afdf55b38ad4b2 GIT binary patch literal 3701 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 T@mRcn00000NkvXXu0mjfB!>uD literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/face-with-cowboy-hat.png b/uni_modules/cool-cs/static/emoji/face-with-cowboy-hat.png new file mode 100644 index 0000000000000000000000000000000000000000..5801afc7807f5e9b3eec3cf305e43426cae3c663 GIT binary patch literal 3683 zcmV-p4xI6cP)Px&08mU+MMrQ5z?!>Ee9eK6^_S@o|R zpL|QpYXNaxO}dFvZCFLZZW7071Z`GAT}wF5Z2@mvNr`4i%54YZeF2erWLii!!)y&@ zP&#*DOO8>eRh zTthE4BoZ+p5oAj=j86hSD;Skn0_l|oR68d0qzd?{45nrQ;fMlYMlv}m8SkD6S3oQO z%_(wJGymE# z@I?Q*Apf=-`LY>)WKOY}fdBfJ{^?Br+bnESJgJd-|JpqM>{^FQ0X{Jy|K3m8(}VDm z0sr)3XG$#p+E+}H*;7*{hk7!glcz`RiU9qT0RQcQc1#@Rry5}{0sqiB|H(Ao#5w=kVE?BCh*KHEtB`nfQN+Kx z^t&SD*nscaHp;0W*qs{b(pIyjm_aZF{O^kY{G#;ZeA?BHkzX6+nh*c{roFMIj$tv! zym7a12-v+>!>Ci8ZVanq5Vw&e`o<{S*p}PYlheDPW+e5$Lc90l{KeL{bC+t3*W+ zP(&8BY_cfg=yBi9sCDZ&YIWMq{O)@RRf02z{xRQkINbYw_kP~@_q+GL_hMr5|B$(v zi-UuUnK{8?xr>Xf#UI5GY#ruiWY~SV`in1Ce`zOj{>){{AHtYhIjhw|p{mqQtF_}Z zgzDXj1uo{}2TieFBJ}d|lFBsvsw%!pCMA-|>LpednJPG*UM@(Tgmc zZ9Ptsg*BOsaX4-=MU~c00}VGId6CCQvap&1X(0{zRf$RDT@~d1Ox!d)zy2>g5{9ls(KTds5>6sXoE=O}R%ECV1~}Rr0PW4u0tuni87m0p%U91U27#av5&Pc9|Tu zEk~}z<8UXEYXDu*RHZEeJC}a_C+JsXszh5|)TE$Oy{S}hY#dc5=WsZ3-7H58+9>=+xLY^@^v~%twf>&7%Hf@URe1^-uaSRxS=jz61uOw9!W@+x^b*=&>WdehBjL} zy;gFP)ZE;BD_%SAOs0XULNcD3?IIyV%>a^{oEk9j@?{_Y`|mJ) zkMuXaQ2RT*_^)0LG?SrT|LnU+5DeGuY-#&Tt=v&Y|^mp&x zix>X@y?6o5Z*e_(^ytZJE@gl!m&#Ns256Bje%7r^K>*^&#mWD^a`*P_n3$Mt+qT_( z^7!_hJ9qw$1pl%Awrvo*ef#c>{*E7CDmgL@U`k6@>W`b_5Rc=Z^rM@69#ZHZ+mzsRK;#F=enIBP5Ud_F_t_Dfhh zEZkpF5g#A_ypEDr^Ek?&__wHk0|FKM_ZJop4Mmsr^vPumK7WbL@6QpdC47~%Zw43| z0@8la(e2$eY+B8~;teXipNINKQLqq!z|xN#DS)isdmurHp7oZcwhiq#b?VgiojZ5l zpiuUD!67I15xLumVU7_y_SHM;CfAAnZA_adJ%pQwrLz1Z2-wgX7pK`@ag zpmZZ9rVDvAo*?fv3IS$ETU%>zS?@C<*~#|(7rpKL;hwUD&em2S?a0c?`UXwpQJ!Xf zqt}HzwkLqIkYGq#Yb)dyt6Ana`W@mpt*0!lbFeix_sEeWF!%z6?a33r4+1cRAbupb zb?|&=LhqTsI2yf1%s%faOYJ;AIG78lJ$nw|pzf@{>V@?w-4FsyZtfs}(#m@5jXzH& z%qX~+y7~P1!6X>AXV0E4F`D@LfC1D+L8-llNUm>g(qQHJ&A|X#YGwqQd8WW4HF)#J z%E}~PUtcEkDjSMRd43@L04{w$oC(pSq{_;T04neKe6rDdb|Qe%Qa5k(@nNwdeFFoT zuf;qr<=TO8gSxRkGtk#JlEv}?PHK92!Hfw;-yik>ibj@ve743#W@j_6QMhbcS2)uE z!uvtl*^zNueKsOP2>_Zp8f5zEnF9BOv|vQqx-~8?GO&v+rWA)WaRo7%SU(6bz`+b* zpif3;X0{YSiD}4^p2WOH>+WI(1!0(=prG(;w5MHxaX1HoqCLtBA|{UhTCxOCxdDWd zi^~qbdNn*SFi5Y!Am}rZpLal;j6r5gBMQo~BH@-;k&%&sf!W!CBg%#qfQu}g1E2(t z^_#+sK&GEYY+CP;pa=PEWg$|eZ?*vi4RnFUG8lqdyZigaeqy|8VVnH1YByZj>{D6E zVj+|-5-_m;2*YAkR{Ctb(hv-pCAt@^i=Aq`k7C#PyC+7cHgLHe{a1eSsbnRwl9G~q zN0gL=Fg`zB>F*GT`%z})Yu9}=!FXpUuUlL0k&xD3HxN=IUej^C5u+g(666Go#_Ju& zXf+`N11Eyh5}`y9lO`LVwU1Dd5~CaQs;l{ZAt7}&V&1Xhj9jY8TQ1)$IbGTZv)+200HhgUm*4}j-aa!z(QH9p7i=AdU*4O^DSg_=t*htZ~pgSKw zz6+nP7hr&cKyN7h(H`#po3pW$a5yh7kJb;T!{09=`D2T*e=<%? z2}8*xoDg#b@az#&DEIF_`~lO$`@@tx3PsF@i1;j?*oO>(rD@3#en3hu77IMrtnuXW z1OhIX&BY`T@I28)fw(x`10@!gV*jC^ZiJcBW4HMEulHyurXkW8@)XdHH6RWoHpZ^j zb4<)WP6;!RxV$kqJm54YAkLQ9=`#rg!iPwZ9FSmNHgwR~ywRpSd2CuS?q^GEioNLv zK_&#kgh@EbJ^lI`Fy-m_E{01JoJfcD0!~=UpDa!O(}^AHHV6Y@0ItCT8zGR8I%G!~ z+o4<6AS$FRW@IU4Kn&je0QSN=@FKtyu=Wk|E%Hr2O2D zQ*$bsFTfzM_u|xaW1AZ1h~4YXAE`?66sZ2Q_)R~JOFNly$gRI*0#XPY&sd`88^+7j z^?lz>m+xWj1{^M;7ffzDT5@q530^ax@^kvpw!<*A`qf#Ox|E*f+;!%j{8w9*9J;E& zf&h^Nl2pKOp~8S}aAt|3H%|#oF;;;FM#WeL-3Vn{dMvW#ilEo%1VG7>17=e5QpgAx zy49H_ppbR+A|-_=Awo(O+3^7wy4f+*6Lrwx`8~8fh#kgOfc1_wv*SAAE+vFIK1KmT z*mo#dnLSq){ka&*l&{P~*Ri#l>>ueLY|Whqe*pXRygl*H_-_CJ002ovPDHLkV1k-c B=M?|| literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/face-with-finger-covering-closed-lips.png b/uni_modules/cool-cs/static/emoji/face-with-finger-covering-closed-lips.png new file mode 100644 index 0000000000000000000000000000000000000000..3e37c47b1a547d5b1942199161ad28278fa6bff3 GIT binary patch literal 3797 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 LNkvXXu0mjfJjzFj literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/face-with-head-bandage.png b/uni_modules/cool-cs/static/emoji/face-with-head-bandage.png new file mode 100644 index 0000000000000000000000000000000000000000..00471c046c47524d8cc9df502bea2226716bb857 GIT binary patch literal 3586 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/face-with-look-of-triumph.png b/uni_modules/cool-cs/static/emoji/face-with-look-of-triumph.png new file mode 100644 index 0000000000000000000000000000000000000000..fa3bb8e3d5325e354b332f6c6df3a6b6bf6ba174 GIT binary patch literal 3809 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 Xucez-Fvj-$00000NkvXXu0mjf#!s=4 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/face-with-medical-mask.png b/uni_modules/cool-cs/static/emoji/face-with-medical-mask.png new file mode 100644 index 0000000000000000000000000000000000000000..8b237f5b51cc5b1f826766e7bd29468f1a987d59 GIT binary patch literal 3684 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/face-with-one-eyebrow-raised.png b/uni_modules/cool-cs/static/emoji/face-with-one-eyebrow-raised.png new file mode 100644 index 0000000000000000000000000000000000000000..c14f913df3a32a531b221a788075df65a8c30dd9 GIT binary patch literal 3483 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 RJHG$`002ovPDHLkV1jy~pG5!w literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/face-with-open-mouth.png b/uni_modules/cool-cs/static/emoji/face-with-open-mouth.png new file mode 100644 index 0000000000000000000000000000000000000000..6b9af1edfb0a617b49b2883a01b412297daadb3b GIT binary patch literal 3667 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/face-with-pleading-eyes.png b/uni_modules/cool-cs/static/emoji/face-with-pleading-eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..39012990a2ae0fd407055a003fc90822a116a214 GIT binary patch literal 3498 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 Y0JlbC5vj`2HUIzs07*qoM6N<$g8E*?y#N3J literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/face-with-rolling-eyes.png b/uni_modules/cool-cs/static/emoji/face-with-rolling-eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..3c1c93331f479b73ae3d015fd230ee7c000a1251 GIT binary patch literal 3461 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/face-with-stuck-out-tongue-and-winking-eye.png b/uni_modules/cool-cs/static/emoji/face-with-stuck-out-tongue-and-winking-eye.png new file mode 100644 index 0000000000000000000000000000000000000000..3c6c27629369c0c7a08b16cad9f09dcb8a1d9efe GIT binary patch literal 3561 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 z zB?CSt2W7h7B!^&RJv{|#ZEgMici7EWeHa)PY2 zEkFMZ==ycob(ya7}N(jn%e4c+FTG*T^mUu>DHLu!^T@}<8k{zaW`&I?ReWI zsysBuNNpYtf`EkCg=AR!@3h?b@JUz$XEchx&?zxP$x@y=}POo#sT4CH8OtIyA&NGyGWL@}C5w@wGp)kB~> zZ|^*8ubyq|%s@;;xH!>3pY=QrA*pDnuF&LzsgR72&g*CMz6Tx3%R7W^-r4J&5rFX# z^EH<-G@j2PBn_sTu0bMHD#C|={-G2BL3cPmafz-T^MxRaq@ilG1YC(bTl>Ai3XS>x zkavG;r&tV_m8vYldEtLE2#UopGSE!ye0nAss(gqDYMy-NX=kG5l9degm)My?LD5xp zmwo)~RDT><0A%vx`cFOkc$qG^d8wW0uHY(WeDr2pKdfo87~_)re|+;Jh8kr4Dt4xu zg1g;ofB!MR|G%4Y{P>LHGp;OpX(!3a0r3GIr3p=T! zWMD0vlE$hMK%i002ov JPDHLkV1kri#0mfa literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/face-with-thermometer.png b/uni_modules/cool-cs/static/emoji/face-with-thermometer.png new file mode 100644 index 0000000000000000000000000000000000000000..407c0c86298f222dda335ae47571760ed788d867 GIT binary patch literal 3560 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 OME{17Zn?HY)c*h$zg?vO literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/fearful-face.png b/uni_modules/cool-cs/static/emoji/fearful-face.png new file mode 100644 index 0000000000000000000000000000000000000000..f1927f0ffb0ba32a0bcb00fb7f2305b604a8a88b GIT binary patch literal 3366 zcmV+>4cYREP)Px&08mU+MMrQ%pH~y^z zqJmcpi}Av13CCyw!fOh`aS+362)=wIE05F}kL<>10wj>z7>@1_h4~qZ za}O7f;2n|WFNx9!T!%Q{>L<@X94@yHvhsj{nRu5%QXJdH2kg) z?VJeRhXS<0`RJAg@uCa=xEkb>2HJrE@1F|civy0K*8aL8*x&x*j|9za0RFKM)p-G~ zy!YVd{@8v2`@u5wqzsv<eEEz(M*k`!wY`*5NP@7?EV#b{FJ4@`m`GR%rv>g`IV=v@v|bGs;Lfe z^oL#*mSqoBI~n!9G{MaKf<^(ZvyT*E`iH3LfuiEm$zl7vEX<1+mXT;~GytWpoSd`v zYef>j%KFB)XN#n^i>LaOrQnyZ@zAwdk)^lm#6T2#>{E-m!JI2^in5Qa?-4~~-K;9? zvoNiPIJdTc9!zPktb@Cw8lsI+z_@eMy;yfV0EMK&CWhQTh|7GO z`hQIb8(jNmjm#-nezLKHZjhL#iiGyMDBGeYyn!2!q^QrDAJC~eSdFK$q-VIFPQjf*(#c^sc=e=u7<8P`UVEQ- zQy8G6iiwql$bAsJj4wom>|~egT!#Crr+(Ip4ydAWC2#eBY&lMQ`(#cgFlhUPm&I6& z%zB{4u&sENdoM_IszqctX8-^IG;~rkP2^l)ap(5On4a^!y__^26aWATgh@m}R9M5kmz{eI1n9;DwM@i znr+*nqoc#aGr}Ej-^cczW73`qp8E}sn>KAan2|xbC>w4;5}tAJAPnv-xD2L=#?SgN zfTw8J{Q^g1Cy}9xhFHL{lMElYwX0~tMD1txRkZ7J!SbM>aZI%3n@8ptEk9))_BLxY`S?-Tf+flw2Xps5DBR{ zaQIe{x%uxj7s%Mcysho_x5(j~Q%y}xIp1#H9JCoHFAqWoyxAO)4I`&=vPoHXTbsFs z#)9)^)z!7#J`ChE{nA`{wUn;SzbEvem z^og&p?-mulTi~sGM``KM>1M1sjn(y*mhX=~a<9#-uYa18bLF(Ze`RN>d!a8l=zML#g*}dfW9Z51bu_Eit)kgVerRC7lA+Rd$A2s??t6zf@@+A{udnp@@#6^z3HVI-l4k2@ zzT8UhPav#HfGHh)ee+)#>1=*WOUF0BcZBWVZ3jLbhwY!@$abpi8$wGf!y+uhwQ z7cN}*3&mG7AAR+aCdxso6ehKFcfYOtzB78O`}*}YO7^eWk9<5H`#&aQYt*=Yz56X4 zTJ*{rd3o2bUAy)f#qQ5`@811;_!*bo1SlfFth~H8l#BH0n|XQn?%w?y@GqdEqT(mm zQSpaysJNGR?`_|UgMO^RTA0$`50hV~Mf1wb2L}EDe2ttuc@jKe8u&M`XU`sd;szLagd-22#xWUz(9Wf)vNhwKmSRCpVM$8e*mjUc~{q^OE=4B(4raV zZfGkdIG=m* z+)*5eLJpPZD^gQa8x>KXk0DCY2m^}zn};*Rn4$UWEeNhuc}TdOHWUaOox)N5}8CI8(h1dA`Bk%tF?nTQWAzD zs7^0SsjlJ=$1&;8zhRsMzv^sCN)L|3#Ka_r^$re}thHXhaQ%8~+CjF~)}NOQ4)%s6 zLs1OW_N1hot>Qbx8PXp%U8&2`fU|z`p1ne$5NndHPnOTF0!%FBqUz=3b?1ChXF zV*@5zTM~&tIbgepA3k5dBBllb3>f|OcRbECohPX)1B0IUqN|gyS(JCdB21PbD z&=>?FOC(huGzLeXMfJ99vB%1dHcAswEl{`68We3@>9Kej1PXBTX6dS~*;Dl31h9ul zAC8!mD%%)gPmeIhme!EID9?v>em)RLpl2}hb;OiXkyIvSC}DMOt5_ltx7MUsjl@xU zAkb15sg~M(#9THmw=*=SGNDRX-I}?NMs_2Gw$Pqsej;ZKq&oQIxJ|}L_C6vz%0#L5 z=4S4z&6MG%LI%Q+b3)?TNO|l;K5)ofq^e^^o!qQAIB?h;F_BQh+}heqNr+e+7$_Ep zNHX`yYJ?;X}K z42C{C&c%%^6PSpqT2dK-tKWM)=*EQUC=2O9I#G8%gmX`m++IM5~%sx>oYlm|?b%v=&DSOgweAaAMKIi$R+ z#pb+;$wwrz166A#1`1R`A`OFv_P_$gv30pz4H3_fMVVZENT^|%1P+!OVmLFaNE{#1 zmy5vDkjLO^Ml!->A|_~06fDmT5x1Vdc=0HL-xaNaffwb$BJjA<9xWXPS5w4g=xBKg zAQL~p)fq#{;o=KxOXJ}I7gjlm;~GGDCQlj11G_kkDO#S;of{uR`S?J8!NKsfvr|5U zMLwXhcj7BOoN+|Nq{GB@a)VGr1s#flgGJN>dqPcs6W56d4B1jxCyh?AMO?1VG_J$~8i*tC)YCQMfah6%Yom#4 zz+~f^yFr8C3b3aMAQsTL2&8N+1J3h2w8=<+G7D5L#Km_49m0n!VDT16S*E&1SohpN z{m}#~r8}AJDMc5^lsKRz&XaAbtHa^E$TOnSXX>#$rEvmpZx@0$NTi-DJ*GaLx~kNbkv8LgsSItKc)4VhX1({Q%Ffew%HGMbTCDC2T?JR>6> wkG$l(tVWrOn#xgs!TnAD_v4Ppo-YCZ1Bc7oZe`%@hX4Qo07*qoM6N<$g56S*h5!Hn literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/flushed-face.png b/uni_modules/cool-cs/static/emoji/flushed-face.png new file mode 100644 index 0000000000000000000000000000000000000000..adad5ca268aaeda4a967192f2c764a161c0eaa7c GIT binary patch literal 3611 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/freezing-face.png b/uni_modules/cool-cs/static/emoji/freezing-face.png new file mode 100644 index 0000000000000000000000000000000000000000..97a93106a6969a1f345213a1150a54a7d5f25629 GIT binary patch literal 3615 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/frowning-face-with-open-mouth.png b/uni_modules/cool-cs/static/emoji/frowning-face-with-open-mouth.png new file mode 100644 index 0000000000000000000000000000000000000000..1ec8ac6f5064a382f5a439d86e22a5bb20d18b45 GIT binary patch literal 3666 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/grimacing-face.png b/uni_modules/cool-cs/static/emoji/grimacing-face.png new file mode 100644 index 0000000000000000000000000000000000000000..82ca911e9f63a2d18c8904bb16b44bab75f909e9 GIT binary patch literal 3695 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/grinning-face-with-smiling-eyes.png b/uni_modules/cool-cs/static/emoji/grinning-face-with-smiling-eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..d90a62d4e9e8c343c85df443a511e74ffecd31ff GIT binary patch literal 3677 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/grinning-face-with-star-eyes.png b/uni_modules/cool-cs/static/emoji/grinning-face-with-star-eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..9d3a0983168d1b61b2b401bf30252818017d205d GIT binary patch literal 3888 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/hugging-face.png b/uni_modules/cool-cs/static/emoji/hugging-face.png new file mode 100644 index 0000000000000000000000000000000000000000..edc9e01e49376d7f9f84ed3acad88b773a61bce7 GIT binary patch literal 4061 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 literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/kissing-face-with-smiling-eyes.png b/uni_modules/cool-cs/static/emoji/kissing-face-with-smiling-eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..f041364589496091ec783188c0c5f3d41f9f2fa6 GIT binary patch literal 3633 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 XcV4Z=Ih6l9)sTsSnf@m|o6!FORYkBe literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/money-mouth-face.png b/uni_modules/cool-cs/static/emoji/money-mouth-face.png new file mode 100644 index 0000000000000000000000000000000000000000..e72b3b88e4bec38b36a416c76b6260eec606a59c GIT binary patch literal 3680 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 Cg8mo) literal 0 HcmV?d00001 diff --git a/uni_modules/cool-cs/static/emoji/nerd-face.png b/uni_modules/cool-cs/static/emoji/nerd-face.png new file mode 100644 index 0000000000000000000000000000000000000000..c9158633dd922344da30e1aa8a3ccb25a5f216d9 GIT binary patch literal 3673 zcmV-f4yN&mP)Px&08mU+MMrQ<`;-93ZV2Ok0LXqOPMe0LW+n?T7}h`1ITd>^oarTi2(el3-X;A$7li4 zas|Y456f-_=YImkX#>%72I__f%WDG2X#vA#0_ukf`kDjgeF5~B3-qKL?U)_FWdih# z1hQlS`l%82q7(6l0``;z_@NH?p$+w>3-Y52?VJb+2@L0z1=)WA{3u@L{wH4hID|I#V{`lSE38{&)u|M{5z`?BMZ1pn4C_^1v4 z&@}(MCI8wo|I;+hZ2Vqr-iQL#b^!aU51d^A|JyA8{^S4p zpa0Az`>qWC)++q15C6wC)_MT{_=x|>H>G6(|M`vo$twT-*8lv+|E>f6;yC~LlmFi` z7#SWSBPJRb5dXq5|Isi1-z;}M0sp-P^_~LJasbL%^tQ!CDWBA81|M+14@`nHM zlg_0c|KVx>=xNuwE&uRs_qQsoudY2lK4482*s3V+!!O{rEw89sI4u%DHyHozgzt|4 z|H2ag)ervbH*;SbigO-JJ{9-dGge6$R#i&o!!+iL0qT$e|HlUZ-4_4LHP@6E`_C~h zCKIxN7q^TTt(YnN{ru$Tu^utBzRdq8a9@DbkuH^Yrn2Y##m3MgQhX|Niau!6)IF7QvA! zsdo=-Q58)_Ex(Z!^X^=~q9@YT((lePoroml!zN}d0Fhh;%C0H@w+@DKFu#BofPY-) z;#pdcJK zz}8mnQ9GWVb{614SOUb*umlOXf<)O-ga8Q;M1-&efdC?_>;;q^MTb=psO*b?z*JF0 zL~s}PrM2zM{oYFmh{rB7XZ|O=oOkb+AOCyr_Z}}uN&RmmFZF*DiA0i@hr@rxkWrA` zq^9;4keb>iSp}ItMI$N6s(tgdD*4VyTzAN-Uw@+}tMo^EAtS5ycU53C78ahxRan?~ zGT@HtKh$Jp{t)I%RnLGkjfH20!$*U+y1FI?A01|&Eo?j!;HmoMrbWMZk_4vk>~OH2 z$KgHy!nNn{PP4>r|3Vxk`@0HMTDt*Z*uiE;4)2+(1G^H35o*Iy1=4TZ`6?zlppl)p z>j2VW5JI4LJm6tE+!zoY_P5_MC9{4*So9gk&}}ec>wm|~&dP!Cv@g%cWIxPB0=(k9E1Wjyhn}~r!@C8X$ z(LnlOpGfO*PLiqVUXTPfBM}3Vrlv_r1zV!Sq}P9FcCssDqEDtIB_(-znVQa_5h54> zG4=BDf@PuZ(J?D!KX8ry6&e&