From bacce1a2c6609e6e65fe995c30dc60da7d4f4a00 Mon Sep 17 00:00:00 2001 From: kk_888 <1422704179@qq.com> Date: Mon, 8 Nov 2021 15:53:58 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=95=AA=E8=8C=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .hbuilderx/launch.json | 4 + common/config.js | 2 +- components/uni-badge/uni-badge.vue | 151 -- components/uni-goods-nav/uni-goods-nav.vue | 227 --- components/uni-icons/icons.js | 132 -- components/uni-icons/uni-icons.vue | 67 - components/uni-list/changelog.md | 15 + .../components/uni-list-ad/uni-list-ad.vue | 107 ++ .../uni-list-chat/uni-list-chat.scss | 58 + .../uni-list-chat/uni-list-chat.vue | 534 +++++++ .../uni-list-item/uni-list-item.vue | 461 ++++++ .../uni-list/components/uni-list/uni-list.vue | 106 ++ .../components/uni-list/uni-refresh.vue | 65 + .../components/uni-list/uni-refresh.wxs | 87 ++ components/uni-list/package.json | 91 ++ components/uni-list/readme.md | 347 +++++ components/uni-load-more/uni-load-more.vue | 194 --- main.js | 2 + manifest.json | 8 +- pages.json | 170 +- pages/index/index.vue | 1379 +++++------------ pages/index/taskDetail.vue | 344 ++-- pages/index/tasksdetails.vue | 934 +++++++++++ pages/member/cash.vue | 389 ++--- pages/member/feedback.vue | 494 +++--- pages/my/account.vue | 116 -- pages/my/cooperation.vue | 70 +- pages/my/customer.vue | 4 +- pages/my/index.vue | 253 +-- pages/my/moneydetails.vue | 4 +- pages/my/myVIP.vue | 536 ++----- pages/my/setting.vue | 68 + pages/my/zhifubao.vue | 53 + pages/order/index.vue | 281 ++-- pages/order/release.vue | 117 +- pages/public/login.vue | 96 +- project.config.json | 69 + static/img/home/banner.png | Bin 0 -> 30613 bytes static/img/home/chaoshi.png | Bin 0 -> 3890 bytes static/img/home/coco.png | Bin 0 -> 6228 bytes static/img/home/elme.png | Bin 0 -> 522 bytes static/img/home/fanli.png | Bin 0 -> 1483 bytes static/img/home/guanggao.png | Bin 0 -> 12894 bytes static/img/home/guanggao2.png | Bin 0 -> 12333 bytes static/img/home/haoping.png | Bin 0 -> 1490 bytes static/img/home/huangguan.png | Bin 0 -> 1039 bytes static/img/home/kefuxin.png | Bin 0 -> 1898 bytes static/img/home/mae.png | Bin 0 -> 3616 bytes static/img/home/meishi.png | Bin 0 -> 3873 bytes static/img/home/meituan.png | Bin 0 -> 403 bytes static/img/home/naicha.png | Bin 0 -> 3708 bytes static/img/home/qianggou.png | Bin 0 -> 1556 bytes static/img/home/shangjia.png | Bin 0 -> 43008 bytes static/img/home/shaokao.png | Bin 0 -> 2683 bytes static/img/home/waimai.png | Bin 0 -> 1525 bytes static/img/home/welfare.png | Bin 0 -> 2830 bytes static/img/home/xiangqing.png | Bin 0 -> 196650 bytes static/img/my/alipay.png | Bin 0 -> 769 bytes static/img/my/callus.png | Bin 0 -> 1915 bytes static/img/my/cash.png | Bin 0 -> 6324 bytes static/img/my/huiyuantiao.png | Bin 0 -> 1868 bytes static/img/my/money.png | Bin 0 -> 5545 bytes static/img/my/mybackgorund.png | Bin 0 -> 24335 bytes static/img/my/rules.png | Bin 0 -> 499 bytes static/img/my/setting.png | Bin 0 -> 1743 bytes static/img/my/tequan.png | Bin 0 -> 721 bytes static/img/my/vip.png | Bin 0 -> 235706 bytes static/img/my/wchart.png | Bin 0 -> 865 bytes static/img/my/xieyi.png | Bin 0 -> 778 bytes static/img/my/yijian.png | Bin 0 -> 1326 bytes static/img/my/zhifubaored.png | Bin 0 -> 970 bytes static/img/my/zhiwen.png | Bin 0 -> 1718 bytes static/img/tabbar/home-selected.png | Bin 3213 -> 0 bytes static/img/tabbar/home.png | Bin 3482 -> 1334 bytes static/img/tabbar/homeselected.png | Bin 0 -> 1014 bytes static/img/tabbar/mine-selected.png | Bin 0 -> 1799 bytes static/img/tabbar/mine.png | Bin 0 -> 2115 bytes static/img/tabbar/order-selected.png | Bin 0 -> 993 bytes static/img/tabbar/order.png | Bin 0 -> 1035 bytes uni.scss | 4 + uview-ui/LICENSE | 21 + uview-ui/README.md | 106 ++ .../u-action-sheet/u-action-sheet.vue | 190 +++ .../components/u-alert-tips/u-alert-tips.vue | 256 +++ .../u-avatar-cropper/u-avatar-cropper.vue | 290 ++++ .../components/u-avatar-cropper/weCropper.js | 1265 +++++++++++++++ uview-ui/components/u-avatar/u-avatar.vue | 244 +++ uview-ui/components/u-back-top/u-back-top.vue | 153 ++ uview-ui/components/u-badge/u-badge.vue | 216 +++ uview-ui/components/u-button/u-button.vue | 596 +++++++ uview-ui/components/u-calendar/u-calendar.vue | 639 ++++++++ .../u-car-keyboard/u-car-keyboard.vue | 257 +++ uview-ui/components/u-card/u-card.vue | 299 ++++ .../components/u-cell-group/u-cell-group.vue | 70 + .../components/u-cell-item/u-cell-item.vue | 316 ++++ .../u-checkbox-group/u-checkbox-group.vue | 123 ++ uview-ui/components/u-checkbox/u-checkbox.vue | 284 ++++ .../u-circle-progress/u-circle-progress.vue | 220 +++ .../u-line-progress/u-line-progress.vue | 147 ++ uview-ui/components/u-col/u-col.vue | 156 ++ .../u-collapse-item/u-collapse-item.vue | 204 +++ uview-ui/components/u-collapse/u-collapse.vue | 99 ++ .../u-column-notice/u-column-notice.vue | 237 +++ .../components/u-count-down/u-count-down.vue | 318 ++++ uview-ui/components/u-count-to/u-count-to.vue | 241 +++ uview-ui/components/u-divider/u-divider.vue | 153 ++ .../u-dropdown-item/u-dropdown-item.vue | 132 ++ uview-ui/components/u-dropdown/u-dropdown.vue | 298 ++++ uview-ui/components/u-empty/u-empty.vue | 193 +++ uview-ui/components/u-field/u-field.vue | 384 +++++ .../components/u-form-item/u-form-item.vue | 431 ++++++ uview-ui/components/u-form/u-form.vue | 134 ++ .../u-full-screen/u-full-screen.vue | 52 + uview-ui/components/u-gap/u-gap.vue | 54 + .../components/u-grid-item/u-grid-item.vue | 126 ++ uview-ui/components/u-grid/u-grid.vue | 108 ++ uview-ui/components/u-icon/u-icon.vue | 336 ++++ uview-ui/components/u-image/u-image.vue | 267 ++++ .../u-index-anchor/u-index-anchor.vue | 89 ++ .../components/u-index-list/u-index-list.vue | 315 ++++ uview-ui/components/u-input/u-input.vue | 387 +++++ uview-ui/components/u-keyboard/u-keyboard.vue | 217 +++ .../components/u-lazy-load/u-lazy-load.vue | 244 +++ .../u-line-progress/u-line-progress.vue | 147 ++ uview-ui/components/u-line/u-line.vue | 84 + uview-ui/components/u-link/u-link.vue | 89 ++ .../u-loading-page/u-loading-page.vue | 25 + uview-ui/components/u-loading/u-loading.vue | 103 ++ uview-ui/components/u-loadmore/u-loadmore.vue | 203 +++ uview-ui/components/u-mask/u-mask.vue | 123 ++ .../u-message-input/u-message-input.vue | 311 ++++ uview-ui/components/u-modal/u-modal.vue | 283 ++++ uview-ui/components/u-navbar/u-navbar.vue | 315 ++++ .../components/u-no-network/u-no-network.vue | 233 +++ .../components/u-notice-bar/u-notice-bar.vue | 272 ++++ .../components/u-number-box/u-number-box.vue | 363 +++++ .../u-number-keyboard/u-number-keyboard.vue | 158 ++ .../components/u-parse/libs/CssHandler.js | 100 ++ .../components/u-parse/libs/MpHtmlParser.js | 580 +++++++ uview-ui/components/u-parse/libs/config.js | 80 + uview-ui/components/u-parse/libs/handler.wxs | 22 + uview-ui/components/u-parse/libs/trees.vue | 505 ++++++ uview-ui/components/u-parse/u-parse.vue | 645 ++++++++ uview-ui/components/u-picker/u-picker.vue | 676 ++++++++ uview-ui/components/u-popup/u-popup.vue | 456 ++++++ .../u-radio-group/u-radio-group.vue | 128 ++ uview-ui/components/u-radio/u-radio.vue | 271 ++++ uview-ui/components/u-rate/u-rate.vue | 275 ++++ .../components/u-read-more/u-read-more.vue | 179 +++ .../components/u-row-notice/u-row-notice.vue | 269 ++++ uview-ui/components/u-row/u-row.vue | 84 + uview-ui/components/u-search/u-search.vue | 342 ++++ uview-ui/components/u-section/u-section.vue | 154 ++ uview-ui/components/u-select/u-select.vue | 417 +++++ uview-ui/components/u-skeleton/u-skeleton.vue | 199 +++ uview-ui/components/u-slider/u-slider.vue | 257 +++ uview-ui/components/u-steps/u-steps.vue | 200 +++ uview-ui/components/u-sticky/u-sticky.vue | 157 ++ .../components/u-subsection/u-subsection.vue | 355 +++++ .../u-swipe-action/u-swipe-action.vue | 255 +++ uview-ui/components/u-swiper/u-swiper.vue | 340 ++++ uview-ui/components/u-switch/u-switch.vue | 163 ++ uview-ui/components/u-tabbar/u-tabbar.vue | 330 ++++ uview-ui/components/u-table/u-table.vue | 84 + .../u-tabs-swiper/u-tabs-swiper.vue | 488 ++++++ uview-ui/components/u-tabs/u-tabs.vue | 369 +++++ uview-ui/components/u-tag/u-tag.vue | 294 ++++ uview-ui/components/u-td/u-td.vue | 66 + uview-ui/components/u-th/u-th.vue | 62 + .../u-time-line-item/u-time-line-item.vue | 83 + .../components/u-time-line/u-time-line.vue | 43 + uview-ui/components/u-toast/u-toast.vue | 220 +++ uview-ui/components/u-top-tips/u-top-tips.vue | 121 ++ uview-ui/components/u-tr/u-tr.vue | 25 + uview-ui/components/u-upload/u-upload.vue | 654 ++++++++ .../u-verification-code.vue | 164 ++ .../components/u-waterfall/u-waterfall.vue | 176 +++ uview-ui/iconfont.css | 910 +++++++++++ uview-ui/index.js | 141 ++ uview-ui/index.scss | 23 + uview-ui/libs/config/config.js | 15 + uview-ui/libs/config/zIndex.js | 20 + uview-ui/libs/css/color.scss | 155 ++ uview-ui/libs/css/common.scss | 176 +++ uview-ui/libs/css/style.components.scss | 7 + uview-ui/libs/css/style.h5.scss | 8 + uview-ui/libs/css/style.mp.scss | 72 + uview-ui/libs/css/style.nvue.scss | 3 + uview-ui/libs/css/style.vue.scss | 175 +++ uview-ui/libs/function/$parent.js | 18 + uview-ui/libs/function/addUnit.js | 8 + uview-ui/libs/function/bem.js | 5 + uview-ui/libs/function/color.js | 37 + uview-ui/libs/function/colorGradient.js | 134 ++ uview-ui/libs/function/debounce.js | 29 + uview-ui/libs/function/deepClone.js | 23 + uview-ui/libs/function/deepMerge.js | 30 + uview-ui/libs/function/getParent.js | 47 + uview-ui/libs/function/guid.js | 41 + uview-ui/libs/function/md5.js | 385 +++++ uview-ui/libs/function/queryParams.js | 58 + uview-ui/libs/function/random.js | 10 + uview-ui/libs/function/randomArray.js | 7 + uview-ui/libs/function/route.js | 122 ++ uview-ui/libs/function/sys.js | 9 + uview-ui/libs/function/test.js | 232 +++ uview-ui/libs/function/throttle.js | 32 + uview-ui/libs/function/timeFormat.js | 51 + uview-ui/libs/function/timeFrom.js | 47 + uview-ui/libs/function/toast.js | 9 + uview-ui/libs/function/trim.js | 15 + uview-ui/libs/function/type2icon.js | 35 + uview-ui/libs/mixin/mixin.js | 64 + uview-ui/libs/mixin/mpShare.js | 18 + uview-ui/libs/request/index.js | 169 ++ uview-ui/libs/store/index.js | 19 + uview-ui/libs/util/area.js | 1 + uview-ui/libs/util/async-validator.js | 1356 ++++++++++++++++ uview-ui/libs/util/city.js | 1 + uview-ui/libs/util/emitter.js | 51 + uview-ui/libs/util/province.js | 1 + uview-ui/package.json | 39 + uview-ui/theme.scss | 38 + 223 files changed, 33282 insertions(+), 3467 deletions(-) delete mode 100644 components/uni-badge/uni-badge.vue delete mode 100644 components/uni-goods-nav/uni-goods-nav.vue delete mode 100644 components/uni-icons/icons.js delete mode 100644 components/uni-icons/uni-icons.vue create mode 100644 components/uni-list/changelog.md create mode 100644 components/uni-list/components/uni-list-ad/uni-list-ad.vue create mode 100644 components/uni-list/components/uni-list-chat/uni-list-chat.scss create mode 100644 components/uni-list/components/uni-list-chat/uni-list-chat.vue create mode 100644 components/uni-list/components/uni-list-item/uni-list-item.vue create mode 100644 components/uni-list/components/uni-list/uni-list.vue create mode 100644 components/uni-list/components/uni-list/uni-refresh.vue create mode 100644 components/uni-list/components/uni-list/uni-refresh.wxs create mode 100644 components/uni-list/package.json create mode 100644 components/uni-list/readme.md delete mode 100644 components/uni-load-more/uni-load-more.vue create mode 100644 pages/index/tasksdetails.vue delete mode 100644 pages/my/account.vue create mode 100644 pages/my/setting.vue create mode 100644 pages/my/zhifubao.vue create mode 100644 project.config.json create mode 100644 static/img/home/banner.png create mode 100644 static/img/home/chaoshi.png create mode 100644 static/img/home/coco.png create mode 100644 static/img/home/elme.png create mode 100644 static/img/home/fanli.png create mode 100644 static/img/home/guanggao.png create mode 100644 static/img/home/guanggao2.png create mode 100644 static/img/home/haoping.png create mode 100644 static/img/home/huangguan.png create mode 100644 static/img/home/kefuxin.png create mode 100644 static/img/home/mae.png create mode 100644 static/img/home/meishi.png create mode 100644 static/img/home/meituan.png create mode 100644 static/img/home/naicha.png create mode 100644 static/img/home/qianggou.png create mode 100644 static/img/home/shangjia.png create mode 100644 static/img/home/shaokao.png create mode 100644 static/img/home/waimai.png create mode 100644 static/img/home/welfare.png create mode 100644 static/img/home/xiangqing.png create mode 100644 static/img/my/alipay.png create mode 100644 static/img/my/callus.png create mode 100644 static/img/my/cash.png create mode 100644 static/img/my/huiyuantiao.png create mode 100644 static/img/my/money.png create mode 100644 static/img/my/mybackgorund.png create mode 100644 static/img/my/rules.png create mode 100644 static/img/my/setting.png create mode 100644 static/img/my/tequan.png create mode 100644 static/img/my/vip.png create mode 100644 static/img/my/wchart.png create mode 100644 static/img/my/xieyi.png create mode 100644 static/img/my/yijian.png create mode 100644 static/img/my/zhifubaored.png create mode 100644 static/img/my/zhiwen.png delete mode 100644 static/img/tabbar/home-selected.png create mode 100644 static/img/tabbar/homeselected.png create mode 100644 static/img/tabbar/mine-selected.png create mode 100644 static/img/tabbar/mine.png create mode 100644 static/img/tabbar/order-selected.png create mode 100644 static/img/tabbar/order.png create mode 100644 uview-ui/LICENSE create mode 100644 uview-ui/README.md create mode 100644 uview-ui/components/u-action-sheet/u-action-sheet.vue create mode 100644 uview-ui/components/u-alert-tips/u-alert-tips.vue create mode 100644 uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue create mode 100644 uview-ui/components/u-avatar-cropper/weCropper.js create mode 100644 uview-ui/components/u-avatar/u-avatar.vue create mode 100644 uview-ui/components/u-back-top/u-back-top.vue create mode 100644 uview-ui/components/u-badge/u-badge.vue create mode 100644 uview-ui/components/u-button/u-button.vue create mode 100644 uview-ui/components/u-calendar/u-calendar.vue create mode 100644 uview-ui/components/u-car-keyboard/u-car-keyboard.vue create mode 100644 uview-ui/components/u-card/u-card.vue create mode 100644 uview-ui/components/u-cell-group/u-cell-group.vue create mode 100644 uview-ui/components/u-cell-item/u-cell-item.vue create mode 100644 uview-ui/components/u-checkbox-group/u-checkbox-group.vue create mode 100644 uview-ui/components/u-checkbox/u-checkbox.vue create mode 100644 uview-ui/components/u-circle-progress/u-circle-progress.vue create mode 100644 uview-ui/components/u-circle-progress/u-line-progress/u-line-progress.vue create mode 100644 uview-ui/components/u-col/u-col.vue create mode 100644 uview-ui/components/u-collapse-item/u-collapse-item.vue create mode 100644 uview-ui/components/u-collapse/u-collapse.vue create mode 100644 uview-ui/components/u-column-notice/u-column-notice.vue create mode 100644 uview-ui/components/u-count-down/u-count-down.vue create mode 100644 uview-ui/components/u-count-to/u-count-to.vue create mode 100644 uview-ui/components/u-divider/u-divider.vue create mode 100644 uview-ui/components/u-dropdown-item/u-dropdown-item.vue create mode 100644 uview-ui/components/u-dropdown/u-dropdown.vue create mode 100644 uview-ui/components/u-empty/u-empty.vue create mode 100644 uview-ui/components/u-field/u-field.vue create mode 100644 uview-ui/components/u-form-item/u-form-item.vue create mode 100644 uview-ui/components/u-form/u-form.vue create mode 100644 uview-ui/components/u-full-screen/u-full-screen.vue create mode 100644 uview-ui/components/u-gap/u-gap.vue create mode 100644 uview-ui/components/u-grid-item/u-grid-item.vue create mode 100644 uview-ui/components/u-grid/u-grid.vue create mode 100644 uview-ui/components/u-icon/u-icon.vue create mode 100644 uview-ui/components/u-image/u-image.vue create mode 100644 uview-ui/components/u-index-anchor/u-index-anchor.vue create mode 100644 uview-ui/components/u-index-list/u-index-list.vue create mode 100644 uview-ui/components/u-input/u-input.vue create mode 100644 uview-ui/components/u-keyboard/u-keyboard.vue create mode 100644 uview-ui/components/u-lazy-load/u-lazy-load.vue create mode 100644 uview-ui/components/u-line-progress/u-line-progress.vue create mode 100644 uview-ui/components/u-line/u-line.vue create mode 100644 uview-ui/components/u-link/u-link.vue create mode 100644 uview-ui/components/u-loading-page/u-loading-page.vue create mode 100644 uview-ui/components/u-loading/u-loading.vue create mode 100644 uview-ui/components/u-loadmore/u-loadmore.vue create mode 100644 uview-ui/components/u-mask/u-mask.vue create mode 100644 uview-ui/components/u-message-input/u-message-input.vue create mode 100644 uview-ui/components/u-modal/u-modal.vue create mode 100644 uview-ui/components/u-navbar/u-navbar.vue create mode 100644 uview-ui/components/u-no-network/u-no-network.vue create mode 100644 uview-ui/components/u-notice-bar/u-notice-bar.vue create mode 100644 uview-ui/components/u-number-box/u-number-box.vue create mode 100644 uview-ui/components/u-number-keyboard/u-number-keyboard.vue create mode 100644 uview-ui/components/u-parse/libs/CssHandler.js create mode 100644 uview-ui/components/u-parse/libs/MpHtmlParser.js create mode 100644 uview-ui/components/u-parse/libs/config.js create mode 100644 uview-ui/components/u-parse/libs/handler.wxs create mode 100644 uview-ui/components/u-parse/libs/trees.vue create mode 100644 uview-ui/components/u-parse/u-parse.vue create mode 100644 uview-ui/components/u-picker/u-picker.vue create mode 100644 uview-ui/components/u-popup/u-popup.vue create mode 100644 uview-ui/components/u-radio-group/u-radio-group.vue create mode 100644 uview-ui/components/u-radio/u-radio.vue create mode 100644 uview-ui/components/u-rate/u-rate.vue create mode 100644 uview-ui/components/u-read-more/u-read-more.vue create mode 100644 uview-ui/components/u-row-notice/u-row-notice.vue create mode 100644 uview-ui/components/u-row/u-row.vue create mode 100644 uview-ui/components/u-search/u-search.vue create mode 100644 uview-ui/components/u-section/u-section.vue create mode 100644 uview-ui/components/u-select/u-select.vue create mode 100644 uview-ui/components/u-skeleton/u-skeleton.vue create mode 100644 uview-ui/components/u-slider/u-slider.vue create mode 100644 uview-ui/components/u-steps/u-steps.vue create mode 100644 uview-ui/components/u-sticky/u-sticky.vue create mode 100644 uview-ui/components/u-subsection/u-subsection.vue create mode 100644 uview-ui/components/u-swipe-action/u-swipe-action.vue create mode 100644 uview-ui/components/u-swiper/u-swiper.vue create mode 100644 uview-ui/components/u-switch/u-switch.vue create mode 100644 uview-ui/components/u-tabbar/u-tabbar.vue create mode 100644 uview-ui/components/u-table/u-table.vue create mode 100644 uview-ui/components/u-tabs-swiper/u-tabs-swiper.vue create mode 100644 uview-ui/components/u-tabs/u-tabs.vue create mode 100644 uview-ui/components/u-tag/u-tag.vue create mode 100644 uview-ui/components/u-td/u-td.vue create mode 100644 uview-ui/components/u-th/u-th.vue create mode 100644 uview-ui/components/u-time-line-item/u-time-line-item.vue create mode 100644 uview-ui/components/u-time-line/u-time-line.vue create mode 100644 uview-ui/components/u-toast/u-toast.vue create mode 100644 uview-ui/components/u-top-tips/u-top-tips.vue create mode 100644 uview-ui/components/u-tr/u-tr.vue create mode 100644 uview-ui/components/u-upload/u-upload.vue create mode 100644 uview-ui/components/u-verification-code/u-verification-code.vue create mode 100644 uview-ui/components/u-waterfall/u-waterfall.vue create mode 100644 uview-ui/iconfont.css create mode 100644 uview-ui/index.js create mode 100644 uview-ui/index.scss create mode 100644 uview-ui/libs/config/config.js create mode 100644 uview-ui/libs/config/zIndex.js create mode 100644 uview-ui/libs/css/color.scss create mode 100644 uview-ui/libs/css/common.scss create mode 100644 uview-ui/libs/css/style.components.scss create mode 100644 uview-ui/libs/css/style.h5.scss create mode 100644 uview-ui/libs/css/style.mp.scss create mode 100644 uview-ui/libs/css/style.nvue.scss create mode 100644 uview-ui/libs/css/style.vue.scss create mode 100644 uview-ui/libs/function/$parent.js create mode 100644 uview-ui/libs/function/addUnit.js create mode 100644 uview-ui/libs/function/bem.js create mode 100644 uview-ui/libs/function/color.js create mode 100644 uview-ui/libs/function/colorGradient.js create mode 100644 uview-ui/libs/function/debounce.js create mode 100644 uview-ui/libs/function/deepClone.js create mode 100644 uview-ui/libs/function/deepMerge.js create mode 100644 uview-ui/libs/function/getParent.js create mode 100644 uview-ui/libs/function/guid.js create mode 100644 uview-ui/libs/function/md5.js create mode 100644 uview-ui/libs/function/queryParams.js create mode 100644 uview-ui/libs/function/random.js create mode 100644 uview-ui/libs/function/randomArray.js create mode 100644 uview-ui/libs/function/route.js create mode 100644 uview-ui/libs/function/sys.js create mode 100644 uview-ui/libs/function/test.js create mode 100644 uview-ui/libs/function/throttle.js create mode 100644 uview-ui/libs/function/timeFormat.js create mode 100644 uview-ui/libs/function/timeFrom.js create mode 100644 uview-ui/libs/function/toast.js create mode 100644 uview-ui/libs/function/trim.js create mode 100644 uview-ui/libs/function/type2icon.js create mode 100644 uview-ui/libs/mixin/mixin.js create mode 100644 uview-ui/libs/mixin/mpShare.js create mode 100644 uview-ui/libs/request/index.js create mode 100644 uview-ui/libs/store/index.js create mode 100644 uview-ui/libs/util/area.js create mode 100644 uview-ui/libs/util/async-validator.js create mode 100644 uview-ui/libs/util/city.js create mode 100644 uview-ui/libs/util/emitter.js create mode 100644 uview-ui/libs/util/province.js create mode 100644 uview-ui/package.json create mode 100644 uview-ui/theme.scss diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json index 9cba30d..075b9c5 100644 --- a/.hbuilderx/launch.json +++ b/.hbuilderx/launch.json @@ -6,6 +6,10 @@ { "launchtype" : "remote" }, + "h5" : + { + "launchtype" : "remote" + }, "mp-weixin" : { "launchtype" : "remote" diff --git a/common/config.js b/common/config.js index 9a9b6be..04be87d 100644 --- a/common/config.js +++ b/common/config.js @@ -1,4 +1,4 @@ -const ROOTPATH1 = "https://bwc.xianmxkj.com/sqx_fast"; +const ROOTPATH1 = "http://192.168.0.112:8891/sqx_fast"; const ROOTPATH = "https://bwc.xianmxkj.com/sqx_fast"; module.exports = { APIHOST: ROOTPATH, diff --git a/components/uni-badge/uni-badge.vue b/components/uni-badge/uni-badge.vue deleted file mode 100644 index 9ee0c7c..0000000 --- a/components/uni-badge/uni-badge.vue +++ /dev/null @@ -1,151 +0,0 @@ - - - - - diff --git a/components/uni-goods-nav/uni-goods-nav.vue b/components/uni-goods-nav/uni-goods-nav.vue deleted file mode 100644 index fcf60c5..0000000 --- a/components/uni-goods-nav/uni-goods-nav.vue +++ /dev/null @@ -1,227 +0,0 @@ - - - - - diff --git a/components/uni-icons/icons.js b/components/uni-icons/icons.js deleted file mode 100644 index 60b7332..0000000 --- a/components/uni-icons/icons.js +++ /dev/null @@ -1,132 +0,0 @@ -export default { - "pulldown": "\ue588", - "refreshempty": "\ue461", - "back": "\ue471", - "forward": "\ue470", - "more": "\ue507", - "more-filled": "\ue537", - "scan": "\ue612", - "qq": "\ue264", - "weibo": "\ue260", - "weixin": "\ue261", - "pengyouquan": "\ue262", - "loop": "\ue565", - "refresh": "\ue407", - "refresh-filled": "\ue437", - "arrowthindown": "\ue585", - "arrowthinleft": "\ue586", - "arrowthinright": "\ue587", - "arrowthinup": "\ue584", - "undo-filled": "\ue7d6", - "undo": "\ue406", - "redo": "\ue405", - "redo-filled": "\ue7d9", - "bars": "\ue563", - "chatboxes": "\ue203", - "camera": "\ue301", - "chatboxes-filled": "\ue233", - "camera-filled": "\ue7ef", - "cart-filled": "\ue7f4", - "cart": "\ue7f5", - "checkbox-filled": "\ue442", - "checkbox": "\ue7fa", - "arrowleft": "\ue582", - "arrowdown": "\ue581", - "arrowright": "\ue583", - "smallcircle-filled": "\ue801", - "arrowup": "\ue580", - "circle": "\ue411", - "eye-filled": "\ue568", - "eye-slash-filled": "\ue822", - "eye-slash": "\ue823", - "eye": "\ue824", - "flag-filled": "\ue825", - "flag": "\ue508", - "gear-filled": "\ue532", - "reload": "\ue462", - "gear": "\ue502", - "hand-thumbsdown-filled": "\ue83b", - "hand-thumbsdown": "\ue83c", - "hand-thumbsup-filled": "\ue83d", - "heart-filled": "\ue83e", - "hand-thumbsup": "\ue83f", - "heart": "\ue840", - "home": "\ue500", - "info": "\ue504", - "home-filled": "\ue530", - "info-filled": "\ue534", - "circle-filled": "\ue441", - "chat-filled": "\ue847", - "chat": "\ue263", - "mail-open-filled": "\ue84d", - "email-filled": "\ue231", - "mail-open": "\ue84e", - "email": "\ue201", - "checkmarkempty": "\ue472", - "list": "\ue562", - "locked-filled": "\ue856", - "locked": "\ue506", - "map-filled": "\ue85c", - "map-pin": "\ue85e", - "map-pin-ellipse": "\ue864", - "map": "\ue364", - "minus-filled": "\ue440", - "mic-filled": "\ue332", - "minus": "\ue410", - "micoff": "\ue360", - "mic": "\ue302", - "clear": "\ue434", - "smallcircle": "\ue868", - "close": "\ue404", - "closeempty": "\ue460", - "paperclip": "\ue567", - "paperplane": "\ue503", - "paperplane-filled": "\ue86e", - "person-filled": "\ue131", - "contact-filled": "\ue130", - "person": "\ue101", - "contact": "\ue100", - "images-filled": "\ue87a", - "phone": "\ue200", - "images": "\ue87b", - "image": "\ue363", - "image-filled": "\ue877", - "location-filled": "\ue333", - "location": "\ue303", - "plus-filled": "\ue439", - "plus": "\ue409", - "plusempty": "\ue468", - "help-filled": "\ue535", - "help": "\ue505", - "navigate-filled": "\ue884", - "navigate": "\ue501", - "mic-slash-filled": "\ue892", - "search": "\ue466", - "settings": "\ue560", - "sound": "\ue590", - "sound-filled": "\ue8a1", - "spinner-cycle": "\ue465", - "download-filled": "\ue8a4", - "personadd-filled": "\ue132", - "videocam-filled": "\ue8af", - "personadd": "\ue102", - "upload": "\ue402", - "upload-filled": "\ue8b1", - "starhalf": "\ue463", - "star-filled": "\ue438", - "star": "\ue408", - "trash": "\ue401", - "phone-filled": "\ue230", - "compose": "\ue400", - "videocam": "\ue300", - "trash-filled": "\ue8dc", - "download": "\ue403", - "chatbubble-filled": "\ue232", - "chatbubble": "\ue202", - "cloud-download": "\ue8e4", - "cloud-upload-filled": "\ue8e5", - "cloud-upload": "\ue8e6", - "cloud-download-filled": "\ue8e9", - "headphones":"\ue8bf", - "shop":"\ue609" -} diff --git a/components/uni-icons/uni-icons.vue b/components/uni-icons/uni-icons.vue deleted file mode 100644 index 5f303e4..0000000 --- a/components/uni-icons/uni-icons.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - diff --git a/components/uni-list/changelog.md b/components/uni-list/changelog.md new file mode 100644 index 0000000..dd6f01d --- /dev/null +++ b/components/uni-list/changelog.md @@ -0,0 +1,15 @@ +## 1.1.3(2021-08-30) +- 修复 在vue3中to属性在发行应用的时候报错的bug +## 1.1.2(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.1(2021-07-21) +- 修复 与其他组件嵌套使用时,点击失效的Bug +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.17(2021-05-12) +- 新增 组件示例地址 +## 1.0.16(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.15(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 uni-list-chat 角标显示不正常的问题 diff --git a/components/uni-list/components/uni-list-ad/uni-list-ad.vue b/components/uni-list/components/uni-list-ad/uni-list-ad.vue new file mode 100644 index 0000000..e256e4c --- /dev/null +++ b/components/uni-list/components/uni-list-ad/uni-list-ad.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/components/uni-list/components/uni-list-chat/uni-list-chat.scss b/components/uni-list/components/uni-list-chat/uni-list-chat.scss new file mode 100644 index 0000000..311f8d9 --- /dev/null +++ b/components/uni-list/components/uni-list-chat/uni-list-chat.scss @@ -0,0 +1,58 @@ +/** + * 这里是 uni-list 组件内置的常用样式变量 + * 如果需要覆盖样式,这里提供了基本的组件样式变量,您可以尝试修改这里的变量,去完成样式替换,而不用去修改源码 + * + */ + +// 背景色 +$background-color : #fff; +// 分割线颜色 +$divide-line-color : #e5e5e5; + +// 默认头像大小,如需要修改此值,注意同步修改 js 中的值 const avatarWidth = xx ,目前只支持方形头像 +// nvue 页面不支持修改头像大小 +$avatar-width : 45px ; + +// 头像边框 +$avatar-border-radius: 5px; +$avatar-border-color: #eee; +$avatar-border-width: 1px; + +// 标题文字样式 +$title-size : 16px; +$title-color : #3b4144; +$title-weight : normal; + +// 描述文字样式 +$note-size : 12px; +$note-color : #999; +$note-weight : normal; + +// 右侧额外内容默认样式 +$right-text-size : 12px; +$right-text-color : #999; +$right-text-weight : normal; + +// 角标样式 +// nvue 页面不支持修改圆点位置以及大小 +// 角标在左侧时,角标的位置,默认为 0 ,负数左/下移动,正数右/上移动 +$badge-left: 0px; +$badge-top: 0px; + +// 显示圆点时,圆点大小 +$dot-width: 10px; +$dot-height: 10px; + +// 显示角标时,角标大小和字体大小 +$badge-size : 18px; +$badge-font : 12px; +// 显示角标时,角标前景色 +$badge-color : #fff; +// 显示角标时,角标背景色 +$badge-background-color : #ff5a5f; +// 显示角标时,角标左右间距 +$badge-space : 6px; + +// 状态样式 +// 选中颜色 +$hover : #f5f5f5; diff --git a/components/uni-list/components/uni-list-chat/uni-list-chat.vue b/components/uni-list/components/uni-list-chat/uni-list-chat.vue new file mode 100644 index 0000000..70345af --- /dev/null +++ b/components/uni-list/components/uni-list-chat/uni-list-chat.vue @@ -0,0 +1,534 @@ + + + + + diff --git a/components/uni-list/components/uni-list-item/uni-list-item.vue b/components/uni-list/components/uni-list-item/uni-list-item.vue new file mode 100644 index 0000000..167222b --- /dev/null +++ b/components/uni-list/components/uni-list-item/uni-list-item.vue @@ -0,0 +1,461 @@ + + + + + diff --git a/components/uni-list/components/uni-list/uni-list.vue b/components/uni-list/components/uni-list/uni-list.vue new file mode 100644 index 0000000..1c85003 --- /dev/null +++ b/components/uni-list/components/uni-list/uni-list.vue @@ -0,0 +1,106 @@ + + + + diff --git a/components/uni-list/components/uni-list/uni-refresh.vue b/components/uni-list/components/uni-list/uni-refresh.vue new file mode 100644 index 0000000..3b4c5a2 --- /dev/null +++ b/components/uni-list/components/uni-list/uni-refresh.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/components/uni-list/components/uni-list/uni-refresh.wxs b/components/uni-list/components/uni-list/uni-refresh.wxs new file mode 100644 index 0000000..818a6b7 --- /dev/null +++ b/components/uni-list/components/uni-list/uni-refresh.wxs @@ -0,0 +1,87 @@ +var pullDown = { + threshold: 95, + maxHeight: 200, + callRefresh: 'onrefresh', + callPullingDown: 'onpullingdown', + refreshSelector: '.uni-refresh' +}; + +function ready(newValue, oldValue, ownerInstance, instance) { + var state = instance.getState() + state.canPullDown = newValue; + // console.log(newValue); +} + +function touchStart(e, instance) { + var state = instance.getState(); + state.refreshInstance = instance.selectComponent(pullDown.refreshSelector); + state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined); + if (!state.canPullDown) { + return + } + + // console.log("touchStart"); + + state.height = 0; + state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY; + state.refreshInstance.setStyle({ + 'height': 0 + }); + state.refreshInstance.callMethod("onchange", true); +} + +function touchMove(e, ownerInstance) { + var instance = e.instance; + var state = instance.getState(); + if (!state.canPullDown) { + return + } + + var oldHeight = state.height; + var endY = e.touches[0].pageY || e.changedTouches[0].pageY; + var height = endY - state.touchStartY; + if (height > pullDown.maxHeight) { + return; + } + + var refreshInstance = state.refreshInstance; + refreshInstance.setStyle({ + 'height': height + 'px' + }); + + height = height < pullDown.maxHeight ? height : pullDown.maxHeight; + state.height = height; + refreshInstance.callMethod(pullDown.callPullingDown, { + height: height + }); +} + +function touchEnd(e, ownerInstance) { + var state = e.instance.getState(); + if (!state.canPullDown) { + return + } + + state.refreshInstance.callMethod("onchange", false); + + var refreshInstance = state.refreshInstance; + if (state.height > pullDown.threshold) { + refreshInstance.callMethod(pullDown.callRefresh); + return; + } + + refreshInstance.setStyle({ + 'height': 0 + }); +} + +function propObserver(newValue, oldValue, instance) { + pullDown = newValue; +} + +module.exports = { + touchmove: touchMove, + touchstart: touchStart, + touchend: touchEnd, + propObserver: propObserver +} diff --git a/components/uni-list/package.json b/components/uni-list/package.json new file mode 100644 index 0000000..f7f7ef9 --- /dev/null +++ b/components/uni-list/package.json @@ -0,0 +1,91 @@ +{ + "id": "uni-list", + "displayName": "uni-list 列表", + "version": "1.1.3", + "description": "List 组件 ,帮助使用者快速构建列表。", + "keywords": [ + "", + "uni-ui", + "uniui", + "列表", + "", + "list" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-badge", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "u" + } + } + } + } +} \ No newline at end of file diff --git a/components/uni-list/readme.md b/components/uni-list/readme.md new file mode 100644 index 0000000..e4a5d73 --- /dev/null +++ b/components/uni-list/readme.md @@ -0,0 +1,347 @@ + + +## List 列表 +> **组件名:uni-list** +> 代码块: `uList`、`uListItem` +> 关联组件:`uni-list-item`、`uni-badge`、`uni-icons`、`uni-list-chat`、`uni-list-ad` + + +List 列表组件,包含基本列表样式、可扩展插槽机制、长列表性能优化、多端兼容。 + +在vue页面里,它默认使用页面级滚动。在app-nvue页面里,它默认使用原生list组件滚动。这样的长列表,在滚动出屏幕外后,系统会回收不可见区域的渲染内存资源,不会造成滚动越长手机越卡的问题。 + +uni-list组件是父容器,里面的核心是uni-list-item子组件,它代表列表中的一个可重复行,子组件可以无限循环。 + +uni-list-item有很多风格,uni-list-item组件通过内置的属性,满足一些常用的场景。当内置属性不满足需求时,可以通过扩展插槽来自定义列表内容。 + +内置属性可以覆盖的场景包括:导航列表、设置列表、小图标列表、通信录列表、聊天记录列表。 + +涉及很多大图或丰富内容的列表,比如类今日头条的新闻列表、类淘宝的电商列表,需要通过扩展插槽实现。 + +下文均有样例给出。 + +uni-list不包含下拉刷新和上拉翻页。上拉翻页另见组件:[uni-load-more](https://ext.dcloud.net.cn/plugin?id=29) + + +### 安装方式 + +本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 + +如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) + +> **注意事项** +> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 +> - 组件需要依赖 `sass` 插件 ,请自行手动安装 +> - 组件内部依赖 `'uni-icons'` 、`uni-badge` 组件 +> - `uni-list` 和 `uni-list-item` 需要配套使用,暂不支持单独使用 `uni-list-item` +> - 只有开启点击反馈后,会有点击选中效果 +> - 使用插槽时,可以完全自定义内容 +> - note 、rightText 属性暂时没做限制,不支持文字溢出隐藏,使用时应该控制长度显示或通过默认插槽自行扩展 +> - 支付宝小程序平台需要在支付宝小程序开发者工具里开启 component2 编译模式,开启方式: 详情 --> 项目配置 --> 启用 component2 编译 +> - 如果需要修改 `switch`、`badge` 样式,请使用插槽自定义 +> - 在 `HBuilderX` 低版本中,可能会出现组件显示 `undefined` 的问题,请升级最新的 `HBuilderX` 或者 `cli` +> - 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + +### 基本用法 + +- 设置 `title` 属性,可以显示列表标题 +- 设置 `disabled` 属性,可以禁用当前项 + +```html + + + + + +``` + +### 多行内容显示 + +- 设置 `note` 属性 ,可以在第二行显示描述文本信息 + +```html + + + + + +``` + +### 右侧显示角标、switch + +- 设置 `show-badge` 属性 ,可以显示角标内容 +- 设置 `show-switch` 属性,可以显示 switch 开关 + +```html + + + + + +``` + +### 左侧显示略缩图、图标 + +- 设置 `thumb` 属性 ,可以在列表左侧显示略缩图 +- 设置 `show-extra-icon` 属性,并指定 `extra-icon` 可以在左侧显示图标 + +```html + + + + +``` + +### 开启点击反馈和右侧箭头 +- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 +- 设置 `link` 属性,会自动开启点击反馈,并给列表右侧添加一个箭头 +- 设置 `to` 属性,可以跳转页面,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` + +```html + + + + + + + +``` + + +### 聊天列表示例 +- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 +- 设置 `link` 属性,会自动开启点击反馈,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` +- 设置 `to` 属性,可以跳转页面 +- `time` 属性,通常会设置成时间显示,但是这个属性不仅仅可以设置时间,你可以传入任何文本,注意文本长度可能会影响显示 +- `avatar` 和 `avatarList` 属性同时只会有一个生效,同时设置的话,`avatarList` 属性的长度大于1 ,`avatar` 属性将失效 +- 可以通过默认插槽自定义列表右侧内容 + +```html + + + + + + + + + + + + + + + + + 刚刚 + + + + + + + +``` + +```javascript + +export default { + components: {}, + data() { + return { + avatarList: [{ + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }, { + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }, { + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }] + } + } +} + +``` + + +```css + +.chat-custom-right { + flex: 1; + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: column; + justify-content: space-between; + align-items: flex-end; +} + +.chat-custom-text { + font-size: 12px; + color: #999; +} + +``` + +## API + +### List Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +border |Boolean |true | 是否显示边框 + + +### ListItem Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +title |String |- | 标题 +note |String |- | 描述 +ellipsis |Number |0 | title 是否溢出隐藏,可选值,0:默认; 1:显示一行; 2:显示两行;【nvue 暂不支持】 +thumb |String |- | 左侧缩略图,若thumb有值,则不会显示扩展图标 +thumbSize |String |medium | 略缩图尺寸,可选值,lg:大图; medium:一般; sm:小图; +showBadge |Boolean |false | 是否显示数字角标 +badgeText |String |- | 数字角标内容 +badgeType |String |- | 数字角标类型,参考[uni-icons](https://ext.dcloud.net.cn/plugin?id=21) +rightText |String |- | 右侧文字内容 +disabled |Boolean |false | 是否禁用 +showArrow |Boolean |true | 是否显示箭头图标 +link |String |navigateTo | 新页面跳转方式,可选值见下表 +to |String |- | 新页面跳转地址,如填写此属性,click 会返回页面是否跳转成功 +clickable |Boolean |false | 是否开启点击反馈 +showSwitch |Boolean |false | 是否显示Switch +switchChecked |Boolean |false | Switch是否被选中 +showExtraIcon |Boolean |false | 左侧是否显示扩展图标 +extraIcon |Object |- | 扩展图标参数,格式为 ``{color: '#4cd964',size: '22',type: 'spinner'}``,参考 [uni-icons](https://ext.dcloud.net.cn/plugin?id=28) +direction | String |row | 排版方向,可选值,row:水平排列; column:垂直排列; 3个插槽是水平排还是垂直排,也受此属性控制 + + +#### Link Options + +属性名 | 说明 +:-: | :-: +navigateTo | 同 uni.navigateTo() +redirectTo | 同 uni.reLaunch() +reLaunch | 同 uni.reLaunch() +switchTab | 同 uni.switchTab() + +### ListItem Events + +事件称名 |说明 |返回参数 +:-: |:-: |:-: +click |点击 uniListItem 触发事件,需开启点击反馈 |- +switchChange |点击切换 Switch 时触发,需显示 switch |e={value:checked} + + + +### ListItem Slots + +名称 | 说明 +:-: | :-: +header | 左/上内容插槽,可完全自定义默认显示 +body | 中间内容插槽,可完全自定义中间内容 +footer | 右/下内容插槽,可完全自定义右侧内容 + + +> **通过插槽扩展** +> 需要注意的是当使用插槽时,内置样式将会失效,只保留排版样式,此时的样式需要开发者自己实现 +> 如果 `uni-list-item` 组件内置属性样式无法满足需求,可以使用插槽来自定义uni-list-item里的内容。 +> uni-list-item提供了3个可扩展的插槽:`header`、`body`、`footer` +> - 当 `direction` 属性为 `row` 时表示水平排列,此时 `header` 表示列表的左边部分,`body` 表示列表的中间部分,`footer` 表示列表的右边部分 +> - 当 `direction` 属性为 `column` 时表示垂直排列,此时 `header` 表示列表的上边部分,`body` 表示列表的中间部分,`footer` 表示列表的下边部分 +> 开发者可以只用1个插槽,也可以3个一起使用。在插槽中可自主编写view标签,实现自己所需的效果。 + + +**示例** + +```html + + + + + + + + + 自定义插槽 + + + + +``` + + + + + +### ListItemChat Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +title |String |- | 标题 +note |String |- | 描述 +clickable |Boolean |false | 是否开启点击反馈 +badgeText |String |- | 数字角标内容,设置为 `dot` 将显示圆点 +badgePositon |String |right | 角标位置 +link |String |navigateTo | 是否展示右侧箭头并开启点击反馈,可选值见下表 +clickable |Boolean |false | 是否开启点击反馈 +to |String |- | 跳转页面地址,如填写此属性,click 会返回页面是否跳转成功 +time |String |- | 右侧时间显示 +avatarCircle |Boolean |false | 是否显示圆形头像 +avatar |String |- | 头像地址,avatarCircle 不填时生效 +avatarList |Array |- | 头像组,格式为 [{url:''}] + +#### Link Options + +属性名 | 说明 +:-: | :-: +navigateTo | 同 uni.navigateTo() +redirectTo | 同 uni.reLaunch() +reLaunch | 同 uni.reLaunch() +switchTab | 同 uni.switchTab() + +### ListItemChat Slots + +名称 | 说明 +:- | :- +default | 自定义列表右侧内容(包括时间和角标显示) + +### ListItemChat Events +事件称名 | 说明 | 返回参数 +:-: | :-: | :-: +@click | 点击 uniListChat 触发事件 | {data:{}} ,如有 to 属性,会返回页面跳转信息 + + + + + + +## 基于uni-list扩展的页面模板 + +通过扩展插槽,可实现多种常见样式的列表 + +**新闻列表类** + +1. 云端一体混合布局:[https://ext.dcloud.net.cn/plugin?id=2546](https://ext.dcloud.net.cn/plugin?id=2546) +2. 云端一体垂直布局,大图模式:[https://ext.dcloud.net.cn/plugin?id=2583](https://ext.dcloud.net.cn/plugin?id=2583) +3. 云端一体垂直布局,多行图文混排:[https://ext.dcloud.net.cn/plugin?id=2584](https://ext.dcloud.net.cn/plugin?id=2584) +4. 云端一体垂直布局,多图模式:[https://ext.dcloud.net.cn/plugin?id=2585](https://ext.dcloud.net.cn/plugin?id=2585) +5. 云端一体水平布局,左图右文:[https://ext.dcloud.net.cn/plugin?id=2586](https://ext.dcloud.net.cn/plugin?id=2586) +6. 云端一体水平布局,左文右图:[https://ext.dcloud.net.cn/plugin?id=2587](https://ext.dcloud.net.cn/plugin?id=2587) +7. 云端一体垂直布局,无图模式,主标题+副标题:[https://ext.dcloud.net.cn/plugin?id=2588](https://ext.dcloud.net.cn/plugin?id=2588) + +**商品列表类** + +1. 云端一体列表/宫格视图互切:[https://ext.dcloud.net.cn/plugin?id=2651](https://ext.dcloud.net.cn/plugin?id=2651) +2. 云端一体列表(宫格模式):[https://ext.dcloud.net.cn/plugin?id=2671](https://ext.dcloud.net.cn/plugin?id=2671) +3. 云端一体列表(列表模式):[https://ext.dcloud.net.cn/plugin?id=2672](https://ext.dcloud.net.cn/plugin?id=2672) + +## 组件示例 + +点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/list/list](https://hellouniapp.dcloud.net.cn/pages/extUI/list/list) \ No newline at end of file diff --git a/components/uni-load-more/uni-load-more.vue b/components/uni-load-more/uni-load-more.vue deleted file mode 100644 index 6c43365..0000000 --- a/components/uni-load-more/uni-load-more.vue +++ /dev/null @@ -1,194 +0,0 @@ - - - - - \ No newline at end of file diff --git a/main.js b/main.js index d6a61f5..b1b34c3 100644 --- a/main.js +++ b/main.js @@ -19,6 +19,8 @@ import loadMore from '@/components/load-more'; Vue.component('load-more', loadMore); import tuinoData from '@/components/tui-no-data/tui-no-data'; Vue.component('tui-no-data', tuinoData); +import uView from 'uview-ui'; +Vue.use(uView) import 'js_sdk/ican-H5Api/ican-H5Api' diff --git a/manifest.json b/manifest.json index e7a0a72..ee3c7bd 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "name" : "省钱兄霸王餐", - "appid" : "__UNI__uni_sqx", + "appid" : "__UNI__ECA82D8", "description" : "", "versionName" : "1.0.6", "versionCode" : 106, @@ -135,10 +135,12 @@ "quickapp" : {}, /* 小程序特有相关 */ "mp-weixin" : { - "appid" : "wxeaed7238f075ca19", + "appid" : "wx5f5b49c361569a10", "setting" : { "urlCheck" : false, - "es6" : true + "es6" : true, + "postcss" : true, + "minified" : true }, "plugins" : { "citySelector" : { diff --git a/pages.json b/pages.json index d12afeb..6fc288f 100644 --- a/pages.json +++ b/pages.json @@ -1,13 +1,33 @@ { + "easycom": { + "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue" + }, "pages": [{ "path": "pages/index/index", "style": { "backgroundColor": "#FFFFFF", - "navigationBarTitleText": "首页", + "navigationBarTitleText": "番茄饭团", "enablePullDownRefresh": false // "navigationStyle": "custom" } }, + { + "path": "pages/index/citys", + "style": { + "backgroundColor": "#FFFFFF", + "navigationBarTitleText": "选择城市", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/index/tasksdetails", + "style": { + "backgroundColor": "#FFFFFF", + "navigationBarTitleText": "任务详情", + "enablePullDownRefresh": false + } + }, + { "path": "pages/index/taskDetail", "style": { @@ -48,107 +68,27 @@ "enablePullDownRefresh": false } }, - { - "path": "pages/index/citys", - "style": { - "backgroundColor": "#FFFFFF", - "navigationBarTitleText": "选择城市", - "enablePullDownRefresh": false - } - }, + { "path": "pages/order/index", "style": { - "navigationBarTitleText": "我的作业", + "navigationBarTitleText": "我的订单", "enablePullDownRefresh": false } }, { "path": "pages/order/release", "style": { - "navigationBarTitleText": "凭证上传", + "navigationBarTitleText": "上传凭证", "enablePullDownRefresh": false } }, - // task-task - { - "path": "pages/task/search", - "style": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "搜索", - "enablePullDownRefresh": false, - "app-plus": { - "bounce": "none", - "scrollIndicator": "none", - "titleNView": true - } - } - }, - { - "path": "pages/task/tasklist", - "style": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "任务列表", - "enablePullDownRefresh": false, - "app-plus": { - "scrollIndicator": "none", - "bounce": "none", - "titleNView": true - } - } - }, - { - "path": "pages/task/renwu", - "style": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "消息中心", - "enablePullDownRefresh": false, - "app-plus": { - "bounce": "none", - "scrollIndicator": "none", - "titleNView": true - } - } - }, - { - "path": "pages/task/recharge", - "style": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "充值", - "enablePullDownRefresh": false, - "app-plus": { - "bounce": "none", - "scrollIndicator": "none", - "titleNView": { - "buttons": [{ - "text": "明细", - "fontSize": "28upx", - "color": "#000000", - "fontWeight": "bold", - "float": "right" - }] - } - } - } - }, - { - "path": "pages/task/rechargeDetail", - "style": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "充值明细", - "enablePullDownRefresh": false, - "app-plus": { - "bounce": "none", - "scrollIndicator": "none", - "titleNView": true - } - } - }, + // my-my { "path": "pages/my/index", "style": { - "navigationStyle": "custom", + "navigationBarTitleText": "个人中心", "enablePullDownRefresh": false } }, @@ -206,7 +146,7 @@ } }, { - "path": "pages/my/account", + "path": "pages/my/setting", "style": { "navigationBarTitleText": "设置", "enablePullDownRefresh": false @@ -297,7 +237,7 @@ { "path": "pages/my/cooperation", "style": { - "navigationBarTitleText": "商户线上合作", + "navigationBarTitleText": "商户入驻", "enablePullDownRefresh": false, "app-plus": { "titleNView": true, @@ -357,18 +297,8 @@ "path": "pages/member/cash", "style": { "navigationBarTitleText": "提现", - "enablePullDownRefresh": false, - "app-plus": { - "bounce": "none", - "titleNView": { - "buttons": [{ - "text": "提现记录", - "float": "right", - "fontSize": "15px", - "fontWeight": "bold" - }] - } - } + "enablePullDownRefresh": false + } }, @@ -422,25 +352,41 @@ "enablePullDownRefresh": false } } + ,{ + "path" : "pages/my/zhifubao", + "style" : + { + "navigationBarTitleText": "绑定支付宝", + "enablePullDownRefresh": false + } + + } + ], "globalStyle": { "navigationBarTextStyle": "black", - "navigationBarTitleText": "省钱兄霸王餐", + "navigationBarTitleText": "番茄饭团", "navigationBarBackgroundColor": "#FFFFFF", "backgroundColor": "#FFFFFF" }, "tabBar": { - "color": "#B3B3B3", - "selectedColor": "#ffc705", + "color": "#D4D4D4", + "selectedColor": "#FF4848", "borderStyle": "black", "backgroundColor": "#ffffff", "list": [{ "pagePath": "pages/index/index", "iconPath": "static/img/tabbar/home.png", - "selectedIconPath": "static/img/tabbar/home-selected.png", + "selectedIconPath": "static/img/tabbar/homeselected.png", "text": "首页" }, // { + // "pagePath": "pages/index/index", + // "iconPath": "static/img/tabbar/home.png", + // "selectedIconPath": "static/img/tabbar/homeselected.png", + // "text": "首页" + // }, + // { // "pagePath": "pages/my/myVIP", // "iconPath": "static/img/tabbar/huiyuan.png", // "selectedIconPath": "static/img/tabbar/huiyuan-act.png", @@ -448,16 +394,17 @@ // }, { "pagePath": "pages/order/index", - "iconPath": "static/img/tabbar/myorder.png", - "selectedIconPath": "static/img/tabbar/myorder-act.png", - "text": "作业" + "iconPath": "static/img/tabbar/order.png", + "selectedIconPath": "./static/img/tabbar/order-selected.png", + "text": "我的订单" }, // { // "pagePath": "pages/errands/index", // "iconPath": "static/img/tabbar/order.png", // "selectedIconPath": "static/img/tabbar/order-selected.png", // "text": "外卖优惠" - // }, { + // }, + // { // "pagePath": "pages/my/shareFriends", // "iconPath": "static/img/tabbar/errands.png", // "selectedIconPath": "static/img/tabbar/errands-selected.png", @@ -465,10 +412,13 @@ // }, { "pagePath": "pages/my/index", - "iconPath": "static/img/tabbar/my.png", - "selectedIconPath": "static/img/tabbar/my-selected.png", + "iconPath": "static/img/tabbar/mine.png", + "selectedIconPath": "static/img/tabbar/mine-selected.png", "text": "我的" } ] + }, + "Window":{ + "navigationStyle":"custom" } } diff --git a/pages/index/index.vue b/pages/index/index.vue index a6dd92d..7723674 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,71 +1,101 @@ @@ -81,1037 +111,318 @@ }, data() { return { - localCampus: '未知', - city: '', - meituanList: {}, - elemeList: {}, - banners: [], - latitude: '', - longitude: '', - mtelmCheck: '', - authorize: false, - weizhinames: '', - weizhidizhi: '', - categoryHeight: '320rpx', //菜单默认高度 - currentPageindex: 0, //菜单滚动小点 - navlist: [], - sortType: 0, - typeId: 0, - recommendList: [], - content: "", - phone: "", - isDisable: false, - tuijianList: [], - goodsHomeList: [], - page: 1, - limit: 10, - loadingType: 0, - contentText: { - contentdown: '上拉显示更多', - contentrefresh: '正在加载...', - contentnomore: '没有更多数据了' - }, - filterData: [ - [{ - text: '综合分类', - value: '' - }, { - text: '返现最高', - value: 1 - }, { - text: '最新发布', - value: 2 - }, { - text: '距离最近', - value: 3 - }] - ], - defaultIndex: [0, 0], - arr: [], - showModal: true - } - }, - onLoad(e) { - let that = this; - if (e.userByinvitationId) { - this.$queue.setData('userByinvitationId', e.userByinvitationId); - } - - // #ifdef MP-WEIXIN - if (e.scene) { - const scene = decodeURIComponent(e.scene); - this.$queue.setData('userByinvitationId', scene.split(',')[0]); - } - // #endif - - // #ifdef MP-WEIXIN - // 实例化API核心类 - qqmapsdk = new QQMapWX({ - key: 'J5FBZ-XCUKI-UFEG2-5KOJJ-XD4L3-KNFNG' - }); - that.authorizationLocation(); - // #endif - this.getBannerList(); - this.getnavlistClassify(); - this.getClassify(); - - //美团饿了么优惠券开关 - this.$Request.getT('/common/type/138').then(res => { - if (res.code == 0) { - if (res.data && res.data.value) { - this.mtelmCheck = res.data.value; - } - } - }); - - this.$Request.getT('/banner/selectBannerList?classify=4&state=1').then(res => { - if (res.code === 0) { - this.meituanList = res.data[0]; - } - }); - this.$Request.getT('/banner/selectBannerList?classify=4&state=2').then(res => { - if (res.code === 0) { - this.elemeList = res.data[0]; - } - }); - - - // 订单审核提醒 202 - // 最新活动通知 204 - // 点评提醒 205 - // 活动反馈推送提醒 209 - - - // 会员到期提醒 207 - // 收益到账通知 208 - // 积分变动提醒 206 - // 提现审核提醒 203 - - that.$Request.getT('/common/type/209').then(res => { //活动反馈推送提醒 - if (res.code == 0) { - if (res.data && res.data.value) { - that.arr.push(res.data.value) - } - } - }) - that.$Request.getT('/common/type/208').then(res => { //收益到账通知 - if (res.code == 0) { - if (res.data && res.data.value) { - that.arr.push(res.data.value) - } - } - }) - that.$Request.getT('/common/type/206').then(res => { //积分变动提醒 - if (res.code == 0) { - if (res.data && res.data.value) { - that.arr.push(res.data.value) - } - } - }) - }, - onShow() { - let that = this; - var city = this.$queue.getData('city'); - var localCampus = this.$queue.getData('localCampus'); - if (city && localCampus) { - console.log(city) - this.latitude = this.$queue.getData('latitude'); - this.longitude = this.$queue.getData('longitude'); - this.city = city; - this.localCampus = localCampus; - this.$queue.remove('localCampus'); - this.page = 1; - this.getHaoDianTuiJian1(); - this.getHaoDianTuiJian(); - } - - let userId = this.$queue.getData('userId'); - if (userId) { - //订阅 - if (!uni.getStorageSync('sendindexMsg')) { - this.openMsg() - } - } - }, - methods: { - // 开启订阅消息 - openMsg() { - var that = this - wx.getSetting({ - withSubscriptions: true, //是否获取用户订阅消息的订阅状态,默认false不返回 - success(ret) { - // console.log(ret,'------------------') - // console.log(Object.keys(ret.subscriptionsSetting.itemSettings).length) - // if (JSON.stringify(ret.subscriptionsSetting.itemSettings).indexOf('accept')!=-1) { - if (ret.subscriptionsSetting.itemSettings) { - uni.setStorageSync('sendindexMsg', true) - uni.openSetting({ // 打开设置页 - success(rea) { - console.log(rea.authSetting) - } - }); - } else { // 用户没有点击“总是保持以上,不再询问”则每次都会调起订阅消息 - uni.setStorageSync('sendindexMsg', false) - uni.showModal({ - title: '提示', - content: '为了更好的体验,请绑定消息推送', - confirmText: '确定', - cancelText: '取消', - success: function(res) { - if (res.confirm) { - uni.requestSubscribeMessage({ - tmplIds: that.arr, - success(re) { - // console.log(re,'**********') - var datas = JSON.stringify(re); - if (datas.indexOf("accept") != -1) { - console.log(re) - } - }, - fail: (res) => { - console.log(res) - } - }) - that.showModal = false - } else if (res.cancel) { - that.showModal = true - } - } - }) - } - } - }) - }, - // 点击优惠券跳转小程序 - gochegnxu(classify) { - let token = this.$queue.getData('token'); - let userId = this.$queue.getData('userId'); - if (token) { - if (uni.getStorageSync('sendindexMsg')) { - uni.requestSubscribeMessage({ - tmplIds: this.arr, - success(re) { - // console.log(re,'**********') - var datas = JSON.stringify(re); - if (datas.indexOf("accept") != -1) { - console.log(re) - } - }, - fail: (res) => { - console.log(res) - } - }) - } - if (classify == 1) { //美团 - // #ifdef MP-WEIXIN - uni.navigateToMiniProgram({ - appId: 'wxde8ac0a21135c07d', - path: this.meituanList.url, - fail(res) { - console.error(res) - } - }) - // #endif - } else if (classify == 2) { //饿了么 - // #ifdef MP-WEIXIN - uni.navigateToMiniProgram({ - appId: 'wxece3a9a4c82f58c9', - path: this.elemeList.url, - fail(res) { - console.error(res) - } - }) - // #endif - } - } else { - this.goLogin(); - } - }, - tuijianClickItem(index) { - let token = this.$queue.getData('token'); - let userId = this.$queue.getData('userId'); - if (token) { - if (uni.getStorageSync('sendindexMsg')) { - uni.requestSubscribeMessage({ - tmplIds: this.arr, - success(re) { - // console.log(re,'**********') - var datas = JSON.stringify(re); - if (datas.indexOf("accept") != -1) { - console.log(re) - } + number: 4, + keyword: '', + value1: 1, + value2: 2, + items: [{ + text: "一年级", + value: "1-0", + children: [{ + text: "1.1班", + value: "1-1" }, - fail: (res) => { - console.log(res) - } - }) - } - uni.navigateTo({ - url: '/pages/index/tuijianList' - }); - } else { - this.goLogin(); - } - }, - ed(res) { - console.log(res) - }, - dateChange(d) { - console.log(d) - }, - getHaoDianTuiJian() { - this.loadingType = 1; - uni.showLoading({ - title: '加载中...', - }); - let data = { - page: 1, - limit: 4, - longitude: this.longitude, - latitude: this.latitude, - city: this.city, - search: '', - isGoods: '1' - } - this.$Request.getT('/wm/selectHomeGoodsList', data).then(res => { - if (res.code === 0) { - this.tuijianList = []; - - res.data.list.forEach(d => { - d.distance = this.setMorKm(d.distance); - this.tuijianList.push(d) - }); - } - uni.hideLoading(); - }) - }, - getHaoDianTuiJian1() { - this.loadingType = 1; - uni.showLoading({ - title: '加载中...', - }); - let data = { - page: this.page, - limit: this.limit, - longitude: this.longitude, - latitude: this.latitude, - city: this.city, - search: '', - sort: this.sortType, - typeId: this.typeId - - } - this.$Request.getT('/wm/selectHomeGoodsList', data).then(res => { - if (res.code === 0) { - if (this.page === 1) { - this.goodsHomeList = []; - } - - res.data.list.forEach(d => { - d.distance = this.setMorKm(d.distance); - this.goodsHomeList.push(d) - }); - if (res.data.list.length === this.limit) { - this.loadingType = 0; - } else { - this.loadingType = 3; - } - } else { - this.loadingType = 2; - } - uni.hideLoading(); - }) - }, - setMorKm(m) { - var n = '' - if (m) { - if (m >= 1000) { - n = (m / 1000).toFixed(0) + 'km' - } else { - n = parseInt(m) + 'm' - } - } else { - n = '0m' - } - return n - }, - getClassify() { - this.$Request.getT('/helpClassify/selectClassifyList').then(res => { - if (res.code === 0) { - this.navlist = res.data; - } - }); - }, - getnavlistClassify() { - this.$Request.getT('/banner/selectBannerList?state=-1&classify=2').then(res => { - if (res.code === 0) { - let dataList = []; - let data = { - text: '全部品类', - value: 0 - } - dataList.push(data); - - res.data.forEach(d => { - let data = { - text: '', - value: '' - } - data.text = d.name; - data.value = d.id; - if (d.state == 1) { - dataList.push(data); + { + text: "1.2班", + value: "1-2" } - - }); - this.filterData.push(dataList); - } - }); - }, - initLocation(latitude, longitude) { - var that = this; - qqmapsdk.reverseGeocoder({ - location: latitude + ',' + longitude || '', - success: function(res) { //成功后的回调 - if (res.status == 0) { - console.log(res) - that.authorize = false; - var res = res.result; - that.latitude = latitude; - that.longitude = longitude; - that.$queue.setData('latitude', latitude) - that.$queue.setData('longitude', longitude) - let s = res.ad_info.city.substring(0, res.ad_info.city.length - 1); - that.city = s; - that.$queue.setData('city', that.city); - that.localCampus = res.address_reference.landmark_l2.title; - that.getHaoDianTuiJian1(); - that.getHaoDianTuiJian(); - } + ] }, - fail: function(error) { - console.error(error); + { + text: "二年级", + value: "2-0" }, - complete: function(res) { - console.log(res); - } - }) - }, - startSetting() { - let that = this; - // #ifdef APP-PLUS - permision.gotoAppSetting(); - // #endif - // #ifdef MP-WEIXIN - uni.openSetting({ - success(res3) { - console.log(res3) - if (res3.authSetting[ - 'scope.userLocation' - ]) { - uni.hideToast(); - that.initMyPosition(); - } else { - that.authorizationLocation(); - } - // 已授权-(获取位置信息) - } - }); - // #endif - }, - initMyPosition() { - let that = this; - uni.getLocation({ - type: 'gcj02', - altitude: true, - success: res => { - that.initLocation(res.latitude, res.longitude); + { + text: "三年级", + value: "3-0" } - }); - }, - authorizationLocation: function() { - let that = this; - uni.getSetting({ - success(res1) { - if (!res1.authSetting['scope.userLocation']) { - // 未授权 - uni.authorize({ - scope: 'scope.userLocation', - success() { //1.1 允许授权 - that.initMyPosition(); - }, - fail() { //1.2 拒绝授权 - that.authorize = true; //用户是否拒绝了定位授权 true:用户拒绝 false:用户授权 - } - }) - } else { - // 已授权-(获取位置信息) - that.initMyPosition(); - } + ], + listbanner: [{ + image: 'https://cdn.uviewui.com/uview/swiper/1.jpg', + title: '昨夜星辰昨夜风,画楼西畔桂堂东' + }, + { + image: 'https://cdn.uviewui.com/uview/swiper/2.jpg', + title: '身无彩凤双飞翼,心有灵犀一点通' + }, + { + image: 'https://cdn.uviewui.com/uview/swiper/3.jpg', + title: '谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳' } - }); - }, - getBannerList() { - this.$Request.getT('/banner/selectBannerList?state=-1&classify=1').then(res => { - if (res.code === 0) { - this.banners = []; - res.data.forEach(d => { - if (d.state == 1) { - this.banners.push(d); - } - }); + ], + list: [{ + name: '综合' + }, { + name: '距离' + }, { + name: '佣金', + }], + current: 0, + value1: 0, + options1: [{ + label: '双平台', + value: 0, + }, + { + label: '美团', + value: 1, + }, + { + label: '饿了么', + value: 2, } - }); - }, - // 轮播图跳转小程序 - toGoodsInfo: function(url) { - if (uni.getStorageSync('sendindexMsg')) { - uni.requestSubscribeMessage({ - tmplIds: this.arr, - success(re) { - // console.log(re,'**********') - var datas = JSON.stringify(re); - if (datas.indexOf("accept") != -1) { - console.log(re) - } - }, - fail: (res) => { - console.log(res) - } - }) - } - let token = this.$queue.getData('token'); - let userId = this.$queue.getData('userId'); - if (url.indexOf('/pages/') !== -1) { - uni.navigateTo({ - url - }); - } else { - //#ifndef H5 - uni.navigateTo({ - url: '/pages/public/webview?url=' + url - }); - //#endif - //#ifdef H5 - window.location.href = url; - //#endif - } - }, - goSearch() { - if (uni.getStorageSync('sendindexMsg')) { - uni.requestSubscribeMessage({ - tmplIds: this.arr, - success(re) { - // console.log(re,'**********') - var datas = JSON.stringify(re); - if (datas.indexOf("accept") != -1) { - console.log(re) - } - }, - fail: (res) => { - console.log(res) - } - }) - } - uni.navigateTo({ - url: '/pages/task/search' - }); + ], + } + }, + methods: { + change(index) { + this.current = index; }, goSelectCity() { - if (uni.getStorageSync('sendindexMsg')) { - uni.requestSubscribeMessage({ - tmplIds: this.arr, - success(re) { - // console.log(re,'**********') - var datas = JSON.stringify(re); - if (datas.indexOf("accept") != -1) { - console.log(re) - } - }, - fail: (res) => { - console.log(res) - } - }) - } - if (!this.authorize) { - uni.navigateTo({ - url: '/pages/index/selectCampus?city=' + this.city - }); - } else { - this.startSetting(); - } - }, - goLogin() { - this.$queue.setData('href', '/pages/index/index'); uni.navigateTo({ - url: '/pages/public/login' - }); - }, - navClick: function(res) { - if (uni.getStorageSync('sendindexMsg')) { - uni.requestSubscribeMessage({ - tmplIds: this.arr, - success(re) { - // console.log(re,'**********') - var datas = JSON.stringify(re); - if (datas.indexOf("accept") != -1) { - console.log(re) - } - }, - fail: (res) => { - console.log(res) - } - }) - } - console.log('点击', res) - this.page = 1; - if (res.index1 == 0) { - this.sortType = res.index ? res.index : 0; - this.getHaoDianTuiJian1(); - } else if (res.index1 == 1) { - this.typeId = res.index ? res.index : 0; - this.getHaoDianTuiJian1(); - } - }, - clickItem: function(options) { - let token = this.$queue.getData('token'); - let userId = this.$queue.getData('userId'); - if (token) { - if (uni.getStorageSync('sendindexMsg')) { - uni.requestSubscribeMessage({ - tmplIds: this.arr, - success(re) { - // console.log(re,'**********') - var datas = JSON.stringify(re); - if (datas.indexOf("accept") != -1) { - console.log(re) - } - }, - fail: (res) => { - console.log(res) - } - }) - } - uni.navigateTo({ - url: '/pages/index/taskDetail?goodsId=' + options.item.goodsId + '&latitude=' + this - .latitude + '&longitude=' + this.longitude - }) - } else { - this.goLogin(); - } - }, - toNavList: function(item) { - let token = this.$queue.getData('token'); - let userId = this.$queue.getData('userId'); - if (token) { - if (uni.getStorageSync('sendindexMsg')) { - uni.requestSubscribeMessage({ - tmplIds: this.arr, - success(re) { - // console.log(re,'**********') - var datas = JSON.stringify(re); - if (datas.indexOf("accept") != -1) { - console.log(re) - } - }, - fail: (res) => { - console.log(res) - } - }) - } - uni.navigateTo({ - url: '/pages/task/tasklist?searchValue=&classifyId=' + item.id + '&name=' + item - .classifyName - }); - } else { - this.goLogin(); - } - }, - // 传进数组和指定个数,进行拆分 - chunk: function(array, size) { - const length = array.length - if (!length || !size || size < 1) { - return [] - } - let index = 0 - let resIndex = 0 - let result = new Array(Math.ceil(length / size)) - while (index < length) { - result[resIndex++] = array.slice(index, (index += size)) - } - return result + url: '/pages/index/citys' + }) }, - topScrollTap: function() { - uni.pageScrollTo({ - scrollTop: 0, - duration: 300 - }); + totasks() { + uni.navigateTo({ + url: '/pages/index/tasksdetails', + + }) } - }, - onPageScroll: function(e) { - this.scrollTop = e.scrollTop > 200; - }, - onReachBottom: function() { - this.page = this.page + 1; - this.getHaoDianTuiJian1(); } + } + + // this.$Request.getT('/banner/selectBannerList?classify=4&state=2').then(res => { + // if (res.code === 0) { + // this.elemeList = res.data[0]; + // } + // }); diff --git a/pages/index/taskDetail.vue b/pages/index/taskDetail.vue index 1b71ec7..b985045 100644 --- a/pages/index/taskDetail.vue +++ b/pages/index/taskDetail.vue @@ -7,140 +7,100 @@ - - + + + + + - - - - - - {{info.goodsTitle}} - - - - - {{info.endTime}} + + + + 番茄会员满18元返18元 + + + + + + + + 限时 - - - 还剩{{info.endNum}}份 + + 抢购 + - + + + 剩余20{{info.endNum}}份 + + + + + + + + + - 会员满{{info.memberPrice}}返{{info.memberMoney}} + 美团会员满20{{info.memberPrice}}返12{{info.memberMoney}} - 非会员满{{info.price}}返{{info.money}} - - + 非美团会员满20{{info.price}}返{{info.money}} - - - - - {{info.numStar}}星好评 - {{info.numImg}}张配图 - {{info.numWord}}字评论 - - - - {{info.numStar}}星好评 - {{info.numImg}}张配图 - {{info.numWord}}字评论 - - - - {{info.numStar}}星好评 - {{info.numImg}}张配图 - {{info.numWord}}字评论 - - - - - - + - - 分享赚钱 - - - 分享赚钱 - - - + + + + 进入番茄饭团福利群 - 粉丝福利号 - - 已有999人加入 + style="margin-top: 15rpx;font-size: 11px;font-family: PingFang SC;font-weight: 500;color: #000000;"> + 添加客服微信进入番茄饭团福利群 + + 添加 - - - 立即添加 - - - + + 订单返现流程规则 + - - 优惠流程 - + - 立即抢单 + 抢购订单 - + @@ -148,22 +108,22 @@ 外卖平台下单 - + - 订单上传 + 好评上传 - + - 评鉴上传 + 返现到账 @@ -179,7 +139,7 @@ - + + + + + - | - - - 上传凭证 + + 立即抢单 - | - - - 立即下单 + + 复制店名 @@ -225,16 +176,16 @@ // 页面信息 info: {}, items: [{ - title: "立即抢单", + title: "抢购订单", }, { title: "外卖平台下单", }, { - title: "订单上传", + title: "好评上传", }, { - title: "评鉴上传", + title: "返利到账", }, ], banners: [], @@ -290,10 +241,10 @@ this.longitude = e.longitude; let token = this.$queue.getData('token'); let userId = this.$queue.getData('userId'); - if (!token) { - this.goLogin(); - } - + // if (!token) { + // this.goLogin(); + // } + // 订单审核提醒 202 // 最新活动通知 204 // 点评提醒 205 @@ -322,17 +273,17 @@ }) }, onShow() { - if (this.goodsId != '') { - this.initHelpOrder(this.goodsId); - } - - let userId = this.$queue.getData('userId'); - if (userId) { - //订阅 - if(this.showModal) { - this.openMsg() - } - } + // if (this.goodsId != '') { + // this.initHelpOrder(this.goodsId); + // } + + // let userId = this.$queue.getData('userId'); + // if (userId) { + // //订阅 + // if(this.showModal) { + // this.openMsg() + // } + // } }, methods: { // 开启订阅消息 @@ -355,7 +306,7 @@ uni.setStorageSync('sendorderMsg', false) uni.showModal({ title: '提示', - content: '为了更好的体验,请绑定消息推送', + content: '为了更好的体验,请绑定消息推送', confirmText: '确定', cancelText: '取消', success: function(res) { @@ -383,8 +334,8 @@ } }) }, - fensiImage(){ - if(uni.getStorageSync('sendorderMsg')) { + fensiImage() { + if (uni.getStorageSync('sendorderMsg')) { uni.requestSubscribeMessage({ tmplIds: this.arr, success(re) { @@ -398,7 +349,7 @@ console.log(res) } }) - } + } let fensiImage = this.$queue.getData('fensiImage'); //#ifndef H5 uni.navigateTo({ @@ -585,7 +536,7 @@ }, // 联系 kefu() { - if(uni.getStorageSync('sendorderMsg')) { + if (uni.getStorageSync('sendorderMsg')) { uni.requestSubscribeMessage({ tmplIds: this.arr, success(re) { @@ -599,14 +550,14 @@ console.log(res) } }) - } + } uni.navigateTo({ url: '/pages/my/customer' }); }, // 立即下单 打开美团外卖 btns() { - if(uni.getStorageSync('sendorderMsg')) { + if (uni.getStorageSync('sendorderMsg')) { uni.requestSubscribeMessage({ tmplIds: this.arr, success(re) { @@ -620,7 +571,7 @@ console.log(res) } }) - } + } this.$queue.showLoading('抢单中...'); let userId = this.$queue.getData('userId'); this.$Request.postT('/wm/insertOrders?goodsId=' + this.goodsId + '&userId=' + userId).then(res => { @@ -658,7 +609,7 @@ }, // 放弃任务 fangqi(id) { - if(uni.getStorageSync('sendorderMsg')) { + if (uni.getStorageSync('sendorderMsg')) { uni.requestSubscribeMessage({ tmplIds: this.arr, success(re) { @@ -672,7 +623,7 @@ console.log(res) } }) - } + } uni.showModal({ title: '温馨提示', content: '您是否要放弃当前任务?', @@ -700,7 +651,7 @@ }, // 上传凭证 shangchuan(id) { - if(uni.getStorageSync('sendorderMsg')) { + if (uni.getStorageSync('sendorderMsg')) { uni.requestSubscribeMessage({ tmplIds: this.arr, success(re) { @@ -714,13 +665,13 @@ console.log(res) } }) - } + } uni.navigateTo({ url: '/pages/order/release?orderId=' + id }); }, callContact(phone) { - if(uni.getStorageSync('sendorderMsg')) { + if (uni.getStorageSync('sendorderMsg')) { uni.requestSubscribeMessage({ tmplIds: this.arr, success(re) { @@ -734,7 +685,7 @@ console.log(res) } }) - } + } uni.makePhoneCall({ phoneNumber: phone }); @@ -756,17 +707,16 @@ } .fxandfl_view { - width: 95%; + // width:100%; + width: 375px; display: flex; - margin: 25rpx 30rpx; .fx_view { - width: 335rpx; - height: 226rpx; - opacity: 1; + width: 375px; + height: 113px; background: #ffffff; - border-radius: 16rpx; - padding: 25rpx 20rpx; + border-radius: 8px; + padding: 12px 18px; .title { font-size: 28rpx; @@ -776,17 +726,17 @@ } .btn { - width: 295rpx; - height: 54rpx; - opacity: 1; - background: #fed00b; - border-radius: 8rpx; - font-size: 24rpx; - font-family: PingFang SC Medium, PingFang SC Medium-Medium; - font-weight: 500; + width: 48px; + height: 19px; text-align: center; - color: #333333; - line-height: 54rpx; + font-size: 12px; + font-family: PingFang SC; + font-weight: 500; + line-height: 19px; + color: #FFFFFF; + background: linear-gradient(141deg, #FF4848 0%, #FF2929 100%); + opacity: 1; + border-radius: 10px; } } } @@ -873,13 +823,13 @@ } .user-card-bottom { - width: 690rpx; - height: 326rpx; - margin: -80upx 30upx 0; + width: 343px; + height: 152px; + // margin: 80upx 30upx 0; + margin: 50px 0 100px 20px; background: #FFFFFF; - padding: 30rpx; - border-radius: 24rpx; - position: absolute; + padding: 15px; + border-radius: 12px; .first-row { justify-content: space-between; @@ -928,10 +878,10 @@ .tag-item { font-size: 12px; - color: #d3a25a; - background: #fff4e5; - border: 2rpx solid #d3a25a; - border-radius: 4rpx; + color: #FF4848; + // background: #fff4e5; + // border: 2rpx solid #d3a25a; + // border-radius: 4rpx; display: inline-block; height: 38upx; line-height: 38upx; @@ -975,6 +925,7 @@ } .schedule-card { + height: 65px; background-color: #FFF; width: 91%; margin: 25rpx 30rpx; @@ -1040,16 +991,21 @@ } .recommend-img { - width: 60upx; + width: 30px; + margin-top: 11px; } .recommend-title { - font-size: 20upx; - color: #333; - line-height: 40upx; + width: 60px; + height: 14px; + font-size: 10px; + font-family: PingFang SC; + font-weight: 600; + color: #000000; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + margin-top: 4px; } .jiantou { @@ -1204,16 +1160,16 @@ justify-content: space-between; .payinfo { - - width: 100rpx; - color: #666; - font-size: 20rpx; + width: 152px; + height: 32px; + background: linear-gradient(127deg, #FF8A6B 0%, #FF2929 100%); + opacity: 1; + border-radius: 17px 0px 0px 15px; + font-size: 12px; + font-weight: 500; + color: #FFFFFF; + line-height: 32px; text-align: center; - - image { - width: 42rpx; - height: 50rpx; - } } .payinfo1 { diff --git a/pages/index/tasksdetails.vue b/pages/index/tasksdetails.vue new file mode 100644 index 0000000..7c31be9 --- /dev/null +++ b/pages/index/tasksdetails.vue @@ -0,0 +1,934 @@ + + + + + diff --git a/pages/member/cash.vue b/pages/member/cash.vue index b4c631c..4548a95 100644 --- a/pages/member/cash.vue +++ b/pages/member/cash.vue @@ -1,43 +1,49 @@ @@ -46,228 +52,119 @@ export default { data() { return { - money: '', - zhifubao: '', - mayMoney: '0', - zhifubaoName: '', - moneyList: [], - value: 0, - min: '' - }; - }, - onShow: function(e) { - this.getMoney(); - this.getMoneyClassifyList(); - this.getasdas(); - }, - onNavigationBarButtonTap() { - this.list(); - }, - methods: { - getasdas() { - this.$Request.getT('/common/type/87').then(res => { - if (res.code === 0) { - this.min = res.data.min; - this.value = res.data.value; - } - }); - }, - getMoneyClassifyList() { - this.$Request.getT('/cashClassify/selectCashClassifyList').then(res => { - if (res.code === 0) { - this.moneyList = []; - res.data.forEach(d => { - this.moneyList.push(d); - }); - } - }); - }, - list() { - uni.navigateTo({ - url: '/pages/member/cashList' - }); - }, - goZhifuBao() { - uni.navigateTo({ - url: '/pages/member/zhifubao' - }); - }, - getMoney() { - let that = this; - let token = this.$queue.getData('token'); - let userId = this.$queue.getData('userId'); - if (token) { - //this.$queue.showLoading("加载中..."); - //可以提现金额查询预估收入查询 - this.$Request.getT('/userMoney/selectUserMoney?userId=' + userId).then(res => { - if (res.code === 0 && res.data) { - that.mayMoney = res.data.money; - } else if (res.code === -102) { - this.$queue.showToast(res.msg); - this.$queue.logout(); - uni.navigateTo({ - url: '/pages/public/login' - }); - } else { - that.mayMoney = '0'; - //this.$queue.showToast(res.msg); - } - }); - this.$Request.postT('/app/selectUserById?userId=' + userId).then(res => { - if (res.code === 0 && res.data) { - that.zhifubao = res.data.zhifubao; - that.zhifubaoName = res.data.zhifubaoName; - } - uni.hideLoading(); - }); - } - }, - getOut() { - let that = this; - let token = this.$queue.getData('token'); - let userId = this.$queue.getData('userId'); - if (token) { - if (that.zhifubao && that.zhifubaoName) { - if (!/^\d+$/.test(this.money)) { - uni.showToast({ - icon: 'none', - title: '请输入正确金额,不能包含中文,英文,特殊字符和小数' - }); - return; - } - if (parseFloat(this.money).toFixed(1) >= this.value) { - uni.showModal({ - title: '提现申请提示', - content: '请仔细确认收款人信息\n\n姓名:' + that.zhifubaoName + '\t\t金额:' + this.money + '\n\n收款账号:' + that.zhifubao + '', - success: e => { - if (e.confirm) { - this.$queue.showLoading('提现中...'); - this.$Request.postT('/userMoney/cashMoney?userId=' + userId + '&money=' + this.money).then(res => { - if (res.code === 0) { - that.$queue.showToast('提现申请成功,预计三个工作日到账'); - that.getMoney(); - } else { - uni.showModal({ - title: '温馨提示', - content: res.msg, - showCancel: false, - cancelText: '取消', - confirmText: '确认' - }); - } - uni.hideLoading(); - }); - } - } - }); - } else { - this.$queue.showToast('提现金额必须大于或等于10元才可提现'); - } - } else { - uni.navigateTo({ - url: '/pages/member/zhifubao' - }); - } - } else { - uni.navigateTo({ - url: '/pages/public/login' - }); - } - }, - getOut1(money) { - let that = this; - let token = this.$queue.getData('token'); - let userId = this.$queue.getData('userId'); - if (token) { - if (that.zhifubao && that.zhifubaoName) { - if (parseFloat(money).toFixed(1) >= 10) { - uni.showModal({ - title: '提现申请提示', - content: '请仔细确认收款人信息\n\n姓名:' + that.zhifubaoName + '\t\t金额:' + money + '\n\n收款账号:' + that.zhifubao + '', - success: e => { - if (e.confirm) { - this.$queue.showLoading('提现中...'); - this.$Request.postT('/userMoney/cashMoney?userId=' + userId + '&money=' + money).then(res => { - if (res.code === 0) { - that.$queue.showToast('提现申请成功,预计三个工作日到账'); - that.getMoney(); - } else { - uni.showModal({ - title: '温馨提示', - content: res.msg, - showCancel: false, - cancelText: '取消', - confirmText: '确认' - }); - } - uni.hideLoading(); - }); - } - } - }); - } else { - this.$queue.showToast('提现金额必须大于或等于10元才可提现'); - } - } else { - uni.navigateTo({ - url: '/pages/member/zhifubao' - }); - } - } else { - uni.navigateTo({ - url: '/pages/public/login' - }); - } + message: 10 } } - }; + + } - diff --git a/pages/member/feedback.vue b/pages/member/feedback.vue index a2e0760..537a041 100644 --- a/pages/member/feedback.vue +++ b/pages/member/feedback.vue @@ -1,306 +1,236 @@