From ef7bda51146a8c9e215fafeff53e68d883231c5d Mon Sep 17 00:00:00 2001 From: Chadwuo <41413559+Chadwuo@users.noreply.github.com> Date: Tue, 27 Sep 2022 05:41:20 +0000 Subject: [PATCH 01/14] =?UTF-8?q?=F0=9F=93=83=20docs:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miniprogram/pages/question/index.wxml | 1 + 1 file changed, 1 insertion(+) diff --git a/miniprogram/pages/question/index.wxml b/miniprogram/pages/question/index.wxml index d6511efc..d8a09b8c 100644 --- a/miniprogram/pages/question/index.wxml +++ b/miniprogram/pages/question/index.wxml @@ -7,6 +7,7 @@ +
\ No newline at end of file From d43c7e6acc8c44e6e9da28e6d17bd286ecb8293c Mon Sep 17 00:00:00 2001 From: Chadwuo Date: Mon, 19 Dec 2022 23:42:53 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E5=86=8D=E6=AC=A1=E5=85=A8=E6=96=B0?= =?UTF-8?q?=E5=90=AF=E8=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miniprogram/alicloud/services/giftReceive.js | 2 +- miniprogram/app.js | 47 +- miniprogram/app.json | 218 ++++---- miniprogram/app.scss | 3 + miniprogram/app.wxss | 12 - miniprogram/config/ColorUI.js | 41 ++ miniprogram/config/mp-sdk.js | 25 + .../components/app-footer/app-footer.js | 15 + .../components/app-footer/app-footer.json | 4 + .../components/app-footer/app-footer.scss | 10 + .../components/app-footer/app-footer.wxml | 5 + .../components/app-navbar/app-navbar.js | 15 + .../components/app-navbar/app-navbar.json | 6 + .../components/app-navbar/app-navbar.scss | 0 .../components/app-navbar/app-navbar.wxml | 3 + .../ui-avatar-stack/ui-avatar-stack.js | 19 + .../ui-avatar-stack/ui-avatar-stack.json | 4 + .../ui-avatar-stack/ui-avatar-stack.scss | 7 + .../ui-avatar-stack/ui-avatar-stack.wxml | 3 + .../colorUI/components/ui-avatar/ui-avatar.js | 43 ++ .../components/ui-avatar/ui-avatar.json | 4 + .../components/ui-avatar/ui-avatar.scss | 199 +++++++ .../components/ui-avatar/ui-avatar.wxml | 10 + .../colorUI/components/ui-card/ui-card.js | 42 ++ .../colorUI/components/ui-card/ui-card.json | 4 + .../colorUI/components/ui-card/ui-card.scss | 51 ++ .../colorUI/components/ui-card/ui-card.wxml | 25 + .../ui-change-theme/ui-change-theme.js | 44 ++ .../ui-change-theme/ui-change-theme.json | 8 + .../ui-change-theme/ui-change-theme.scss | 38 ++ .../ui-change-theme/ui-change-theme.wxml | 50 ++ .../ui-checkbox-group/ui-checkbox-group.js | 123 +++++ .../ui-checkbox-group/ui-checkbox-group.json | 4 + .../ui-checkbox-group/ui-checkbox-group.scss | 0 .../ui-checkbox-group/ui-checkbox-group.wxml | 3 + .../components/ui-checkbox/ui-checkbox.js | 144 ++++++ .../components/ui-checkbox/ui-checkbox.json | 4 + .../components/ui-checkbox/ui-checkbox.scss | 60 +++ .../components/ui-checkbox/ui-checkbox.wxml | 7 + .../colorUI/components/ui-code/ui-code.js | 91 ++++ .../colorUI/components/ui-code/ui-code.json | 4 + .../colorUI/components/ui-code/ui-code.scss | 0 .../colorUI/components/ui-code/ui-code.wxml | 16 + .../colorUI/components/ui-fixed/ui-fixed.js | 151 ++++++ .../colorUI/components/ui-fixed/ui-fixed.json | 4 + .../colorUI/components/ui-fixed/ui-fixed.scss | 25 + .../colorUI/components/ui-fixed/ui-fixed.wxml | 13 + .../components/ui-form-group/ui-form-group.js | 57 +++ .../ui-form-group/ui-form-group.json | 4 + .../ui-form-group/ui-form-group.scss | 68 +++ .../ui-form-group/ui-form-group.wxml | 13 + .../colorUI/components/ui-form/ui-form.js | 18 + .../colorUI/components/ui-form/ui-form.json | 4 + .../colorUI/components/ui-form/ui-form.scss | 0 .../colorUI/components/ui-form/ui-form.wxml | 3 + .../mp-cu/colorUI/components/ui-img/ui-img.js | 141 +++++ .../colorUI/components/ui-img/ui-img.json | 6 + .../colorUI/components/ui-img/ui-img.scss | 35 ++ .../colorUI/components/ui-img/ui-img.wxml | 13 + .../components/ui-input-box/ui-input-box.js | 67 +++ .../components/ui-input-box/ui-input-box.json | 4 + .../components/ui-input-box/ui-input-box.scss | 57 +++ .../components/ui-input-box/ui-input-box.wxml | 14 + .../components/ui-loading/ui-loading.js | 32 ++ .../components/ui-loading/ui-loading.json | 4 + .../components/ui-loading/ui-loading.scss | 113 ++++ .../components/ui-loading/ui-loading.wxml | 13 + .../components/ui-menu-item/ui-menu-item.js | 36 ++ .../components/ui-menu-item/ui-menu-item.json | 4 + .../components/ui-menu-item/ui-menu-item.scss | 0 .../components/ui-menu-item/ui-menu-item.wxml | 19 + .../colorUI/components/ui-menu/ui-menu.js | 39 ++ .../colorUI/components/ui-menu/ui-menu.json | 4 + .../colorUI/components/ui-menu/ui-menu.scss | 0 .../colorUI/components/ui-menu/ui-menu.wxml | 3 + .../colorUI/components/ui-modal/ui-modal.js | 170 ++++++ .../colorUI/components/ui-modal/ui-modal.json | 6 + .../colorUI/components/ui-modal/ui-modal.scss | 142 +++++ .../colorUI/components/ui-modal/ui-modal.wxml | 20 + .../colorUI/components/ui-navbar/ui-navbar.js | 116 +++++ .../components/ui-navbar/ui-navbar.json | 6 + .../components/ui-navbar/ui-navbar.scss | 144 ++++++ .../components/ui-navbar/ui-navbar.wxml | 38 ++ .../components/ui-popover/ui-popover.js | 191 +++++++ .../components/ui-popover/ui-popover.json | 4 + .../components/ui-popover/ui-popover.scss | 82 +++ .../components/ui-popover/ui-popover.wxml | 19 + .../components/ui-progress/ui-progress.js | 65 +++ .../components/ui-progress/ui-progress.json | 6 + .../components/ui-progress/ui-progress.scss | 84 +++ .../components/ui-progress/ui-progress.wxml | 10 + .../ui-radio-group/ui-radio-group.js | 74 +++ .../ui-radio-group/ui-radio-group.json | 4 + .../ui-radio-group/ui-radio-group.scss | 0 .../ui-radio-group/ui-radio-group.wxml | 3 + .../colorUI/components/ui-radio/ui-radio.js | 138 +++++ .../colorUI/components/ui-radio/ui-radio.json | 4 + .../colorUI/components/ui-radio/ui-radio.scss | 169 ++++++ .../colorUI/components/ui-radio/ui-radio.wxml | 8 + .../colorUI/components/ui-steps/ui-steps.js | 43 ++ .../colorUI/components/ui-steps/ui-steps.json | 4 + .../colorUI/components/ui-steps/ui-steps.scss | 0 .../colorUI/components/ui-steps/ui-steps.wxml | 10 + .../colorUI/components/ui-swiper/ui-swiper.js | 73 +++ .../components/ui-swiper/ui-swiper.json | 4 + .../components/ui-swiper/ui-swiper.scss | 201 ++++++++ .../components/ui-swiper/ui-swiper.wxml | 18 + .../colorUI/components/ui-switch/ui-switch.js | 64 +++ .../components/ui-switch/ui-switch.json | 4 + .../components/ui-switch/ui-switch.scss | 43 ++ .../components/ui-switch/ui-switch.wxml | 5 + .../mp-cu/colorUI/components/ui-sys/ui-sys.js | 141 +++++ .../colorUI/components/ui-sys/ui-sys.json | 10 + .../colorUI/components/ui-sys/ui-sys.scss | 39 ++ .../colorUI/components/ui-sys/ui-sys.wxml | 17 + .../mp-cu/colorUI/components/ui-tab/ui-tab.js | 170 ++++++ .../colorUI/components/ui-tab/ui-tab.json | 4 + .../colorUI/components/ui-tab/ui-tab.scss | 203 ++++++++ .../colorUI/components/ui-tab/ui-tab.wxml | 36 ++ .../colorUI/components/ui-tabbar/ui-tabbar.js | 80 +++ .../components/ui-tabbar/ui-tabbar.json | 6 + .../components/ui-tabbar/ui-tabbar.scss | 60 +++ .../components/ui-tabbar/ui-tabbar.wxml | 25 + .../mp-cu/colorUI/components/ui-tag/ui-tag.js | 36 ++ .../colorUI/components/ui-tag/ui-tag.json | 4 + .../colorUI/components/ui-tag/ui-tag.scss | 91 ++++ .../colorUI/components/ui-tag/ui-tag.wxml | 9 + .../components/ui-text-size/ui-text-size.js | 30 ++ .../components/ui-text-size/ui-text-size.json | 8 + .../components/ui-text-size/ui-text-size.scss | 0 .../components/ui-text-size/ui-text-size.wxml | 15 + .../colorUI/components/ui-title/ui-title.js | 70 +++ .../colorUI/components/ui-title/ui-title.json | 4 + .../colorUI/components/ui-title/ui-title.scss | 277 ++++++++++ .../colorUI/components/ui-title/ui-title.wxml | 27 + .../colorUI/components/ui-toast/ui-toast.js | 72 +++ .../colorUI/components/ui-toast/ui-toast.json | 4 + .../colorUI/components/ui-toast/ui-toast.scss | 57 +++ .../colorUI/components/ui-toast/ui-toast.wxml | 9 + miniprogram/mp-cu/colorUI/scss/_main.scss | 301 +++++++++++ miniprogram/mp-cu/colorUI/scss/_mixins.scss | 59 +++ miniprogram/mp-cu/colorUI/scss/_var.scss | 158 ++++++ .../mp-cu/colorUI/scss/icon/_icon.scss | 178 +++++++ .../mp-cu/colorUI/scss/icon/_style.scss | 43 ++ .../mp-cu/colorUI/scss/style/_background.scss | 219 ++++++++ .../mp-cu/colorUI/scss/style/_border.scss | 141 +++++ .../mp-cu/colorUI/scss/style/_button.scss | 91 ++++ .../mp-cu/colorUI/scss/style/_card.scss | 353 +++++++++++++ .../mp-cu/colorUI/scss/style/_code.scss | 59 +++ .../mp-cu/colorUI/scss/style/_flex.scss | 67 +++ .../mp-cu/colorUI/scss/style/_form.scss | 151 ++++++ .../mp-cu/colorUI/scss/style/_grid.scss | 117 +++++ .../mp-cu/colorUI/scss/style/_markdown.scss | 62 +++ .../mp-cu/colorUI/scss/style/_menu.scss | 65 +++ .../mp-cu/colorUI/scss/style/_prism.scss | 143 ++++++ .../mp-cu/colorUI/scss/style/_shadow.scss | 91 ++++ .../mp-cu/colorUI/scss/style/_steps.scss | 166 ++++++ .../mp-cu/colorUI/scss/style/_table.scss | 134 +++++ .../mp-cu/colorUI/scss/style/_tag.scss | 8 + .../mp-cu/colorUI/scss/style/_text.scss | 134 +++++ .../mp-cu/colorUI/scss/theme/_dark.scss | 40 ++ .../mp-cu/colorUI/scss/theme/_light.scss | 41 ++ .../mp-cu/colorUI/scss/theme/_style.scss | 53 ++ miniprogram/mp-cu/colorUI/scss/ui.scss | 22 + miniprogram/mp-cu/lib/diff.js | 72 +++ miniprogram/mp-cu/lib/prism.js | 484 ++++++++++++++++++ miniprogram/mp-cu/main.js | 396 ++++++++++++++ miniprogram/mp-cu/store/index.js | 158 ++++++ .../components/app-nav-li/app-nav-li.js | 29 ++ .../components/app-nav-li/app-nav-li.json | 4 + .../components/app-nav-li/app-nav-li.scss | 113 ++++ .../components/app-nav-li/app-nav-li.wxml | 15 + .../components/ui-parameter/ui-parameter.js | 15 + .../components/ui-parameter/ui-parameter.json | 6 + .../components/ui-parameter/ui-parameter.scss | 0 .../components/ui-parameter/ui-parameter.wxml | 40 ++ miniprogram/mp-sdk/icon/doc.scss | 452 ++++++++++++++++ miniprogram/mp-sdk/index.js | 47 ++ miniprogram/mp-sdk/lib/array.js | 157 ++++++ miniprogram/mp-sdk/lib/dataType.js | 29 ++ miniprogram/mp-sdk/lib/date.js | 74 +++ miniprogram/mp-sdk/lib/index.js | 15 + miniprogram/mp-sdk/lib/object.js | 21 + miniprogram/mp-sdk/lib/random.js | 45 ++ miniprogram/mp-sdk/lib/request.js | 47 ++ miniprogram/mp-sdk/lib/tools.js | 31 ++ miniprogram/mp-sdk/wxs/tools.wxs | 20 + miniprogram/pages/about/index.js | 5 +- miniprogram/pages/about/index.json | 1 - miniprogram/pages/about/index.scss | 1 + miniprogram/pages/about/index.wxml | 51 +- miniprogram/pages/about/index.wxss | 39 -- miniprogram/pages/family/index.js | 2 +- miniprogram/pages/friend/index.js | 10 + miniprogram/pages/friend/index.wxml | 21 +- miniprogram/pages/giftOut/index.js | 10 + miniprogram/pages/giftOut/index.wxml | 25 +- miniprogram/pages/index/index.js | 412 +++++++-------- miniprogram/pages/index/index.wxml | 92 ++-- miniprogram/pages/mine/index.js | 274 +++++----- miniprogram/pages/mine/index.wxml | 135 +++-- miniprogram/pages/mine/index.wxss | 77 +-- miniprogram/pages/set/index.js | 66 +++ miniprogram/pages/set/index.json | 3 + miniprogram/pages/set/index.scss | 1 + miniprogram/pages/set/index.wxml | 11 + miniprogram/static/favicon.png | Bin 0 -> 6184 bytes miniprogram/static/img/4put2.png | Bin 0 -> 27960 bytes miniprogram/static/img/bg_book.png | Bin 0 -> 4146 bytes miniprogram/static/img/bg_book_add.png | Bin 0 -> 1773 bytes miniprogram/static/img/bg_summary.png | Bin 0 -> 7554 bytes miniprogram/static/img/bg_summary_bill.png | Bin 0 -> 15597 bytes miniprogram/static/img/pa1m9.png | Bin 0 -> 5164 bytes miniprogram/static/img/share.jpg | Bin 0 -> 23661 bytes miniprogram/static/img/share2.jpg | Bin 0 -> 148495 bytes miniprogram/static/lang/flag-en-US.png | Bin 0 -> 1964 bytes miniprogram/static/lang/flag-zh-CN.png | Bin 0 -> 1840 bytes miniprogram/static/lang/flag-zh-TW.png | Bin 0 -> 1840 bytes miniprogram/static/logo.png | Bin 0 -> 6184 bytes miniprogram/static/size/df.png | Bin 0 -> 1261 bytes miniprogram/static/size/lg.png | Bin 0 -> 2174 bytes miniprogram/static/size/sm.png | Bin 0 -> 2405 bytes miniprogram/static/size/xl.png | Bin 0 -> 2228 bytes miniprogram/static/size/xxl.png | Bin 0 -> 634 bytes miniprogram/static/tab_icon/book.png | Bin 0 -> 1636 bytes miniprogram/static/tab_icon/book_cur.png | Bin 0 -> 2305 bytes miniprogram/static/tab_icon/contact.png | Bin 0 -> 2932 bytes miniprogram/static/tab_icon/contact_cur.png | Bin 0 -> 3146 bytes miniprogram/static/tab_icon/icon_post.png | Bin 0 -> 1900 bytes miniprogram/static/tab_icon/icon_post_cur.png | Bin 0 -> 4156 bytes miniprogram/static/tab_icon/mine.png | Bin 0 -> 2520 bytes miniprogram/static/tab_icon/mine_cur.png | Bin 0 -> 2325 bytes project.config.json | 3 + 233 files changed, 11613 insertions(+), 645 deletions(-) create mode 100644 miniprogram/app.scss delete mode 100644 miniprogram/app.wxss create mode 100644 miniprogram/config/ColorUI.js create mode 100644 miniprogram/config/mp-sdk.js create mode 100644 miniprogram/mp-cu/colorUI/components/app-footer/app-footer.js create mode 100644 miniprogram/mp-cu/colorUI/components/app-footer/app-footer.json create mode 100644 miniprogram/mp-cu/colorUI/components/app-footer/app-footer.scss create mode 100644 miniprogram/mp-cu/colorUI/components/app-footer/app-footer.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.js create mode 100644 miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.json create mode 100644 miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.scss create mode 100644 miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-card/ui-card.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-card/ui-card.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-card/ui-card.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-card/ui-card.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-code/ui-code.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-code/ui-code.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-code/ui-code.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-code/ui-code.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-form/ui-form.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-form/ui-form.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-form/ui-form.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-form/ui-form.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-img/ui-img.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-img/ui-img.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-img/ui-img.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-img/ui-img.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-title/ui-title.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-title/ui-title.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-title/ui-title.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-title/ui-title.wxml create mode 100644 miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.js create mode 100644 miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.json create mode 100644 miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.scss create mode 100644 miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.wxml create mode 100644 miniprogram/mp-cu/colorUI/scss/_main.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/_mixins.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/_var.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/icon/_icon.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/icon/_style.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_background.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_border.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_button.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_card.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_code.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_flex.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_form.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_grid.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_markdown.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_menu.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_prism.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_shadow.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_steps.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_table.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_tag.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/style/_text.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/theme/_dark.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/theme/_light.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/theme/_style.scss create mode 100644 miniprogram/mp-cu/colorUI/scss/ui.scss create mode 100644 miniprogram/mp-cu/lib/diff.js create mode 100644 miniprogram/mp-cu/lib/prism.js create mode 100644 miniprogram/mp-cu/main.js create mode 100644 miniprogram/mp-cu/store/index.js create mode 100644 miniprogram/mp-sdk/components/app-nav-li/app-nav-li.js create mode 100644 miniprogram/mp-sdk/components/app-nav-li/app-nav-li.json create mode 100644 miniprogram/mp-sdk/components/app-nav-li/app-nav-li.scss create mode 100644 miniprogram/mp-sdk/components/app-nav-li/app-nav-li.wxml create mode 100644 miniprogram/mp-sdk/components/ui-parameter/ui-parameter.js create mode 100644 miniprogram/mp-sdk/components/ui-parameter/ui-parameter.json create mode 100644 miniprogram/mp-sdk/components/ui-parameter/ui-parameter.scss create mode 100644 miniprogram/mp-sdk/components/ui-parameter/ui-parameter.wxml create mode 100644 miniprogram/mp-sdk/icon/doc.scss create mode 100644 miniprogram/mp-sdk/index.js create mode 100644 miniprogram/mp-sdk/lib/array.js create mode 100644 miniprogram/mp-sdk/lib/dataType.js create mode 100644 miniprogram/mp-sdk/lib/date.js create mode 100644 miniprogram/mp-sdk/lib/index.js create mode 100644 miniprogram/mp-sdk/lib/object.js create mode 100644 miniprogram/mp-sdk/lib/random.js create mode 100644 miniprogram/mp-sdk/lib/request.js create mode 100644 miniprogram/mp-sdk/lib/tools.js create mode 100644 miniprogram/mp-sdk/wxs/tools.wxs create mode 100644 miniprogram/pages/about/index.scss delete mode 100644 miniprogram/pages/about/index.wxss create mode 100644 miniprogram/pages/set/index.js create mode 100644 miniprogram/pages/set/index.json create mode 100644 miniprogram/pages/set/index.scss create mode 100644 miniprogram/pages/set/index.wxml create mode 100644 miniprogram/static/favicon.png create mode 100644 miniprogram/static/img/4put2.png create mode 100644 miniprogram/static/img/bg_book.png create mode 100644 miniprogram/static/img/bg_book_add.png create mode 100644 miniprogram/static/img/bg_summary.png create mode 100644 miniprogram/static/img/bg_summary_bill.png create mode 100644 miniprogram/static/img/pa1m9.png create mode 100644 miniprogram/static/img/share.jpg create mode 100644 miniprogram/static/img/share2.jpg create mode 100644 miniprogram/static/lang/flag-en-US.png create mode 100644 miniprogram/static/lang/flag-zh-CN.png create mode 100644 miniprogram/static/lang/flag-zh-TW.png create mode 100644 miniprogram/static/logo.png create mode 100644 miniprogram/static/size/df.png create mode 100644 miniprogram/static/size/lg.png create mode 100644 miniprogram/static/size/sm.png create mode 100644 miniprogram/static/size/xl.png create mode 100644 miniprogram/static/size/xxl.png create mode 100644 miniprogram/static/tab_icon/book.png create mode 100644 miniprogram/static/tab_icon/book_cur.png create mode 100644 miniprogram/static/tab_icon/contact.png create mode 100644 miniprogram/static/tab_icon/contact_cur.png create mode 100644 miniprogram/static/tab_icon/icon_post.png create mode 100644 miniprogram/static/tab_icon/icon_post_cur.png create mode 100644 miniprogram/static/tab_icon/mine.png create mode 100644 miniprogram/static/tab_icon/mine_cur.png diff --git a/miniprogram/alicloud/services/giftReceive.js b/miniprogram/alicloud/services/giftReceive.js index dfb2e84b..bcea8126 100644 --- a/miniprogram/alicloud/services/giftReceive.js +++ b/miniprogram/alicloud/services/giftReceive.js @@ -70,7 +70,7 @@ exports.getGiftReceivePage = async (parameter) => { }, { $sort: { - date: -1 + money: -1 } }, { diff --git a/miniprogram/app.js b/miniprogram/app.js index 87093fca..10bb34e8 100644 --- a/miniprogram/app.js +++ b/miniprogram/app.js @@ -1,24 +1,35 @@ const { - getUserInfo + getUserInfo } = require('./alicloud/services/user'); +import { + colorUI +} from './config/ColorUI' +import { + colorUISdk +} from './config/mp-sdk' + + App({ - userInfo: null, - async onLaunch() { - // 查询缓存中用户信息 - this.userInfo = wx.getStorageSync('user') - if (!this.userInfo) { - // 如果缓存中没有,去数据库中 查询 - const res = await getUserInfo() - if (res.success) { - //TODO 这里有问题 此处为 app.onLaunch与page.onLoad异步问题 导致 index page的onLoad方法 无法拿到userInfo - this.userInfo = res.data - wx.setStorageSync('user', res.data) - } + colorUI, //挂载到app上 + colorUISdk, + userInfo: null, + async onLaunch() { + console.log("软件版本", colorUISdk.version) + // 查询缓存中用户信息 + this.userInfo = wx.getStorageSync('user') + if (!this.userInfo) { + // 如果缓存中没有,去数据库中 查询 + const res = await getUserInfo() + if (res.success) { + //TODO 这里有问题 此处为 app.onLaunch与page.onLoad异步问题 导致 index page的onLoad方法 无法拿到userInfo + this.userInfo = res.data + wx.setStorageSync('user', res.data) + } - // wx.navigateTo({ - // url: '/pages/login/index', - // }) - } - }, + // wx.navigateTo({ + // url: '/pages/login/index', + // }) + } + }, }); \ No newline at end of file diff --git a/miniprogram/app.json b/miniprogram/app.json index ac276583..64e2c99e 100644 --- a/miniprogram/app.json +++ b/miniprogram/app.json @@ -1,95 +1,127 @@ { - "pages": [ - "pages/index/index", - "pages/book/details/index", - "pages/book/edit/index", - "pages/book/select/index", - "pages/giftOut/index", - "pages/giftOut/edit/index", - "pages/giftReceive/edit/index", - "pages/friend/index", - "pages/friend/details/index", - "pages/friend/edit/index", - "pages/friend/select/index", - "pages/mine/index", - "pages/profile/index", - "pages/login/index", - "pages/about/index", - "pages/issue/index", - "pages/question/index", - "pages/sponsor/index", - "pages/family/index", - "pages/calendar/index" - ], - "window": { - "backgroundColor": "#F76664", - "backgroundTextStyle": "light", - "navigationBarBackgroundColor": "#F76664", - "navigationBarTitleText": "礼记", - "navigationBarTextStyle": "white" - }, - "tabBar": { - "color": "#7A7E83", - "selectedColor": "#F76664", - "borderStyle": "black", - "backgroundColor": "#ffffff", - "list": [{ - "pagePath": "pages/index/index", - "text": "礼记", - "iconPath": "./images/book_gray.png", - "selectedIconPath": "./images/book_red.png" - }, - { - "text": "送礼", - "pagePath": "pages/giftOut/index", - "iconPath": "./images/icon_post.png", - "selectedIconPath": "./images/icon_post_red.png" - }, - { - "pagePath": "pages/friend/index", - "text": "亲友", - "iconPath": "./images/contact_gray.png", - "selectedIconPath": "./images/contact_red.png" - }, - { - "pagePath": "pages/mine/index", - "text": "我的", - "iconPath": "./images/mine_gray.png", - "selectedIconPath": "./images/mine_red.png" - } - ] - }, - "sitemapLocation": "sitemap.json", - "usingComponents": { - "footer": "/components/footer/index", - "van-action-sheet": "@vant/weapp/action-sheet/index", - "van-button": "@vant/weapp/button/index", - "van-row": "@vant/weapp/row/index", - "van-col": "@vant/weapp/col/index", - "van-cell": "@vant/weapp/cell/index", - "van-cell-group": "@vant/weapp/cell-group/index", - "van-divider": "@vant/weapp/divider/index", - "van-dialog": "@vant/weapp/dialog/index", - "van-empty": "@vant/weapp/empty/index", - "van-field": "@vant/weapp/field/index", - "van-grid": "@vant/weapp/grid/index", - "van-grid-item": "@vant/weapp/grid-item/index", - "van-icon": "@vant/weapp/icon/index", - "van-index-bar": "@vant/weapp/index-bar/index", - "van-index-anchor": "@vant/weapp/index-anchor/index", - "van-image": "@vant/weapp/image/index", - "van-notify": "@vant/weapp/notify/index", - "van-notice-bar": "@vant/weapp/notice-bar/index", - "van-radio": "@vant/weapp/radio/index", - "van-radio-group": "@vant/weapp/radio-group/index", - "van-popup": "@vant/weapp/popup/index", - "van-picker": "@vant/weapp/picker/index", - "van-sticky": "@vant/weapp/sticky/index", - "van-search": "@vant/weapp/search/index", - "van-swipe-cell": "@vant/weapp/swipe-cell/index", - "van-tab": "@vant/weapp/tab/index", - "van-tabs": "@vant/weapp/tabs/index", - "van-tag": "@vant/weapp/tag/index", - "van-transition": "@vant/weapp/transition/index" - } + "pages": [ + "pages/index/index", + "pages/book/details/index", + "pages/book/edit/index", + "pages/book/select/index", + "pages/giftOut/index", + "pages/giftOut/edit/index", + "pages/giftReceive/edit/index", + "pages/friend/index", + "pages/friend/details/index", + "pages/friend/edit/index", + "pages/friend/select/index", + "pages/mine/index", + "pages/profile/index", + "pages/login/index", + "pages/about/index", + "pages/issue/index", + "pages/question/index", + "pages/sponsor/index", + "pages/family/index", + "pages/set/index", + "pages/calendar/index" + ], + "window": { + "backgroundTextStyle": "light", + "navigationBarBackgroundColor": "#FFFFFF", + "navigationBarTitleText": "礼记", + "navigationBarTextStyle": "black", + "navigationStyle": "custom" + }, + "tabBar": { + "color": "#DA372A", + "selectedColor": "#DA372A", + "borderStyle": "white", + "backgroundColor": "#fff", + "list": [{ + "pagePath": "pages/index/index", + "text": "礼记", + "iconPath": "/static/tab_icon/book.png", + "selectedIconPath": "/static/tab_icon/book_cur.png" + }, + { + "text": "送礼", + "pagePath": "pages/giftOut/index", + "iconPath": "/static/tab_icon/icon_post.png", + "selectedIconPath": "/static/tab_icon/icon_post_cur.png" + }, + { + "pagePath": "pages/friend/index", + "text": "亲友", + "iconPath": "/static/tab_icon/contact.png", + "selectedIconPath": "./static/tab_icon/contact_cur.png" + }, + { + "pagePath": "pages/mine/index", + "text": "我的", + "iconPath": "/static/tab_icon/mine.png", + "selectedIconPath": "/static/tab_icon/mine_cur.png" + } + ] + }, + "sitemapLocation": "sitemap.json", + "usingComponents": { + "ui-sys": "mp-cu/colorUI/components/ui-sys/ui-sys", + "ui-title": "mp-cu/colorUI/components/ui-title/ui-title", + "ui-code": "mp-cu/colorUI/components/ui-code/ui-code", + "ui-loading": "mp-cu/colorUI/components/ui-loading/ui-loading", + "ui-menu": "mp-cu/colorUI/components/ui-menu/ui-menu", + "ui-menu-item": "mp-cu/colorUI/components/ui-menu-item/ui-menu-item", + "ui-avatar": "mp-cu/colorUI/components/ui-avatar/ui-avatar", + "ui-avatar-stack": "mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack", + "ui-modal": "mp-cu/colorUI/components/ui-modal/ui-modal", + "ui-toast": "mp-cu/colorUI/components/ui-toast/ui-toast", + "ui-switch": "mp-cu/colorUI/components/ui-switch/ui-switch", + "ui-radio-group": "mp-cu/colorUI/components/ui-radio-group/ui-radio-group", + "ui-radio": "mp-cu/colorUI/components/ui-radio/ui-radio", + "ui-card": "mp-cu/colorUI/components/ui-card/ui-card", + "ui-fixed": "mp-cu/colorUI/components/ui-fixed/ui-fixed", + "ui-img": "mp-cu/colorUI/components/ui-img/ui-img", + "ui-navbar": "/mp-cu/colorUI/components/ui-navbar/ui-navbar", + "ui-swiper": "/mp-cu/colorUI/components/ui-swiper/ui-swiper", + "ui-text-size": "/mp-cu/colorUI/components/ui-text-size/ui-text-size", + "ui-tag": "/mp-cu/colorUI/components/ui-tag/ui-tag", + "ui-progress": "/mp-cu/colorUI/components/ui-progress/ui-progress", + "ui-tab": "/mp-cu/colorUI/components/ui-tab/ui-tab", + "ui-popover": "/mp-cu/colorUI/components/ui-popover/ui-popover", + "ui-steps": "/mp-cu/colorUI/components/ui-steps/ui-steps", + "ui-form": "/mp-cu/colorUI/components/ui-form/ui-form", + "ui-form-group": "/mp-cu/colorUI/components/ui-form-group/ui-form-group", + "ui-input-box": "/mp-cu/colorUI/components/ui-input-box/ui-input-box", + "ui-checkbox": "/mp-cu/colorUI/components/ui-checkbox/ui-checkbox", + "ui-checkbox-group": "/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group", + "ui-change-theme": "/mp-cu/colorUI/components/ui-change-theme/ui-change-theme", + "ui-parameter": "/mp-sdk/components/ui-parameter/ui-parameter", + "footer": "/components/footer/index", + "van-action-sheet": "@vant/weapp/action-sheet/index", + "van-button": "@vant/weapp/button/index", + "van-row": "@vant/weapp/row/index", + "van-col": "@vant/weapp/col/index", + "van-cell": "@vant/weapp/cell/index", + "van-cell-group": "@vant/weapp/cell-group/index", + "van-divider": "@vant/weapp/divider/index", + "van-dialog": "@vant/weapp/dialog/index", + "van-empty": "@vant/weapp/empty/index", + "van-field": "@vant/weapp/field/index", + "van-grid": "@vant/weapp/grid/index", + "van-grid-item": "@vant/weapp/grid-item/index", + "van-icon": "@vant/weapp/icon/index", + "van-index-bar": "@vant/weapp/index-bar/index", + "van-index-anchor": "@vant/weapp/index-anchor/index", + "van-image": "@vant/weapp/image/index", + "van-notify": "@vant/weapp/notify/index", + "van-notice-bar": "@vant/weapp/notice-bar/index", + "van-radio": "@vant/weapp/radio/index", + "van-radio-group": "@vant/weapp/radio-group/index", + "van-popup": "@vant/weapp/popup/index", + "van-picker": "@vant/weapp/picker/index", + "van-sticky": "@vant/weapp/sticky/index", + "van-search": "@vant/weapp/search/index", + "van-swipe-cell": "@vant/weapp/swipe-cell/index", + "van-tab": "@vant/weapp/tab/index", + "van-tabs": "@vant/weapp/tabs/index", + "van-tag": "@vant/weapp/tag/index", + "van-transition": "@vant/weapp/transition/index" + } } \ No newline at end of file diff --git a/miniprogram/app.scss b/miniprogram/app.scss new file mode 100644 index 00000000..914c6151 --- /dev/null +++ b/miniprogram/app.scss @@ -0,0 +1,3 @@ +/* 整个页面的布局 */ +@import './mp-cu/colorUI/scss/ui'; +@import './mp-sdk/icon/doc'; diff --git a/miniprogram/app.wxss b/miniprogram/app.wxss deleted file mode 100644 index 10adc649..00000000 --- a/miniprogram/app.wxss +++ /dev/null @@ -1,12 +0,0 @@ -/* 整个页面的布局 */ -page { - display: flex; - flex-direction: column; - min-height: 100%; - background-color: #f6f6f6; -} - -/* footer置底 */ -footer { - margin-top: auto; -} \ No newline at end of file diff --git a/miniprogram/config/ColorUI.js b/miniprogram/config/ColorUI.js new file mode 100644 index 00000000..7a32456c --- /dev/null +++ b/miniprogram/config/ColorUI.js @@ -0,0 +1,41 @@ +//框架核心配置 +import ColorUI from '../mp-cu/main' +export const colorUI = new ColorUI({ + config: { + theme: 'auto', + main: 'red', + text: 1, + footer: true, + share: false, + shareTitle: '可能是东半球最好用的人情记账工具', + homePath: '/pages/index/index', + tabBar: [{ + title: '礼记', + icon: '/static/tab_icon/book.png', + curIcon: '/static/tab_icon/book_cur.png', + url: '/pages/index/index', + type: 'tab' + }, + { + title: '送礼', + icon: '/static/tab_icon/icon_post.png', + curIcon: '/static/tab_icon/icon_post_cur.png', + url: '/pages/giftOut/index', + type: 'tab' + }, + { + title: '亲友', + icon: '/static/tab_icon/contact.png', + curIcon: '/static/tab_icon/contact_cur.png', + url: '/pages/friend/index', + type: 'tab' + }, + { + title: '我的', + icon: '/static/tab_icon/mine.png', + curIcon: '/static/tab_icon/mine_cur.png', + url: '/pages/mine/index', + type: 'tab' + }], + } +}) \ No newline at end of file diff --git a/miniprogram/config/mp-sdk.js b/miniprogram/config/mp-sdk.js new file mode 100644 index 00000000..3704d4a3 --- /dev/null +++ b/miniprogram/config/mp-sdk.js @@ -0,0 +1,25 @@ +//扩展方法函数配置 +import ColorUISdk from '../mp-sdk/index' +export const colorUISdk = new ColorUISdk({ + //当前环境,produce,dev,host + env: 'dev', + //实际项目版本 + version: '2.1.0', + api: { + //生产环境 + produce: { + url: '请求域名' + }, + //开发环境 + dev: { + url: '请求域名' + }, + //本地环境 + host: { + url: '请求域名' + }, + header: { + "Content-Type": "application/json" + }, + }, +}) diff --git a/miniprogram/mp-cu/colorUI/components/app-footer/app-footer.js b/miniprogram/mp-cu/colorUI/components/app-footer/app-footer.js new file mode 100644 index 00000000..6e3e14e8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/app-footer/app-footer.js @@ -0,0 +1,15 @@ +Component({ + options: { + addGlobalClass: true + }, + properties: { + text: { + type: String, + value: '', + }, + loading: { + type: Boolean, + value: false, + } + }, +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/app-footer/app-footer.json b/miniprogram/mp-cu/colorUI/components/app-footer/app-footer.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/app-footer/app-footer.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/app-footer/app-footer.scss b/miniprogram/mp-cu/colorUI/components/app-footer/app-footer.scss new file mode 100644 index 00000000..b99c35a4 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/app-footer/app-footer.scss @@ -0,0 +1,10 @@ +.page-footer { + opacity: 0.5; + width: 495rpx; + height: 150rpx; +} +.mp-cu-text { + font-size: 20rpx; + color: #cecece; + margin-top: 12rpx; +} diff --git a/miniprogram/mp-cu/colorUI/components/app-footer/app-footer.wxml b/miniprogram/mp-cu/colorUI/components/app-footer/app-footer.wxml new file mode 100644 index 00000000..f80d6f6e --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/app-footer/app-footer.wxml @@ -0,0 +1,5 @@ + + + {{text}} + Copyright © Chadwuo Design. All Rights Reserved + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.js b/miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.js new file mode 100644 index 00000000..fb94994d --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.js @@ -0,0 +1,15 @@ +Component({ + options: { + addGlobalClass: true + }, + properties: { + navBg: { + type: String, + value: 'bg-blur' + }, + title: { + type: String, + value: '' + } + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.json b/miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.json new file mode 100644 index 00000000..778b94ce --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "ui-navbar": "../ui-navbar/ui-navbar" + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.scss b/miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.scss new file mode 100644 index 00000000..e69de29b diff --git a/miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.wxml b/miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.wxml new file mode 100644 index 00000000..f43127fc --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/app-navbar/app-navbar.wxml @@ -0,0 +1,3 @@ + + {{ title }} + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.js b/miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.js new file mode 100644 index 00000000..836237a3 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.js @@ -0,0 +1,19 @@ +Component({ + options: { + addGlobalClass: true, + //multipleSlots: true + }, + properties: { + ui: { + type: String, + value: '' + }, + reverse: { + type: Boolean, + value: false + } + }, + methods: { + + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.json b/miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.scss b/miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.scss new file mode 100644 index 00000000..9b19837d --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.scss @@ -0,0 +1,7 @@ +.ui-avatar-stack { + display: inline-block; + &.reverse { + direction: rtl; + unicode-bidi: bidi-override; + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.wxml b/miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.wxml new file mode 100644 index 00000000..e86e4880 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-avatar-stack/ui-avatar-stack.wxml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.js b/miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.js new file mode 100644 index 00000000..45d81468 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.js @@ -0,0 +1,43 @@ +Component({ + options: { + addGlobalClass: true, + //multipleSlots: true + }, + properties: { + bg: { + type: String, + value: 'ui-BG' + }, + ui: { + type: String, + value: '' + }, + src: { + type: String, + value: '' + }, + srcs: { + type: Array, + value: [] + }, + icon: { + type: String, + value: '' + }, + stack: { + type: Boolean, + value: false + }, + reverse: { + type: Boolean, + value: false + }, + first: { + type: Boolean, + value: false + }, + }, + methods: { + + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.json b/miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.scss b/miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.scss new file mode 100644 index 00000000..3ab67b2e --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.scss @@ -0,0 +1,199 @@ +@import '../../scss/var'; + +.ui-avatar { + position: relative; + text-align: center; + display: inline-flex; + justify-content: center; + align-items: center; + margin: 0 0.14em; + padding: 0; + color: var(--text-a); + background-color: var(--ui-BG-3); + white-space: nowrap; + width: 64rpx; + height: 64rpx; + background-size: cover; + background-position: center; + vertical-align: middle; + font-size: 22rpx; + border-radius: $radius; + &::after { + border-radius: calc(#{$radius} * 2); + } + + &.round::after { + border-radius: $round-pill; + } + &.sm { + width: 48rpx; + height: 48rpx; + font-size: 16rpx; + } + &.lg { + width: 80rpx; + height: 80rpx; + font-size: 28rpx; + } + + &.xl { + width: 96rpx; + height: 96rpx; + font-size: 34rpx; + } + &.xxl { + width: 112rpx; + height: 112rpx; + font-size: 40rpx; + } + + &.sl { + width: 128rpx; + height: 128rpx; + font-size: 46rpx; + } + + &.ellipse { + mask-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjE5NjMxNjI4MjE3IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjE0MzAyIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiPjxkZWZzPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTEwMDcuMzI3NjgxODQgNTEwLjQ3NzQyODU0Yy0xLjYwNDMxNTM3IDQxLjcxMjIxMTc1LTIuNDk1NjAyNDMgODMuNjAyNjgyMjgtNS4xNjk0NjIyNiAxMjUuMzE0ODk0MDUtMy43NDM0MDQzNSA1Ny43NTUzNzA4NS0xMi4yOTk3NTQ3OCAxMTQuNjE5NDU2MDEtMzAuNDgyMDAxNDkgMTcwLjA1NzQ4MDQ0LTI2LjU2MDMzOTcxIDgwLjU3MjMwNzYtODAuNzUwNTY1MDMgMTMzLjE1ODIxNjE4LTE1OS4xODM3ODUwMiAxNjIuNzQ4OTMxOTQtMzEuNzI5ODAyIDExLjk0MzIzOTkyLTY0LjcwNzQwNTkyIDE4LjAwMzk4OTI5LTk3Ljg2MzI2NzI2IDIzLjUyOTk2NjQyLTYwLjI1MDk3MzMgMTAuMTYwNjY3MTQtMTIxLjIxNDk3NjIzIDEyLjI5OTc1NDc4LTE4Mi4xNzg5Nzc3OCAxMi4yOTk3NTQ3OC00My42NzMwNDMzIDAtODcuMzQ2MDg1MjUtMC4zNTY1MTQ4Mi0xMzEuMDE5MTI5OTQtMi42NzM4NTk4Ny02MS42NzcwMzI1OC0zLjIwODYzMjEtMTIyLjgxOTI5MTU5LTEwLjMzODkyNDU5LTE4Mi4xNzg5Nzc4Mi0yOS41OTA3MTU3Ny00Ny41OTQ3MDM2OS0xNS4zMzAxMjk0NS04OC43NzIxNDQ1Ny00MC4xMDc4OTYzOC0xMjEuMjE0OTc2MjMtNzguNjExNDc2MDNDNzIuMDExNTM1MTkgODYyLjcxMzg4ODIgNTQuNzIwNTc1NTggODI3LjA2MjQyNDQxIDQzLjg0Njg3ODc1IDc4OC41NTg4NDM0MWMtNy42NjUwNjQ3Mi0yNy4yNzMzNjkzOS0xMy45MDQwNzAxNC01NS4yNTk3Njg0MS0xNy40NjkyMTcwNi04My40MjQ0MjQ4OS00Ljk5MTIwNDg4LTM5LjM5NDg2Njc0LTcuODQzMzIyMTQtNzguOTY3OTkyMjQtMTAuMTYwNjY3MTUtMTE4LjU0MTExNjM2LTEuNzgyNTcyNzgtMzEuMTk1MDMxMTMtMS40MjYwNTc5NS02Mi4zOTAwNjA4Ny0xLjQyNjA1Nzk1LTkzLjU4NTA5MDY4LTAuMTc4MjU3NC01MS4xNTk4NTA2MiAyLjEzOTA4NzYxLTEwMi4zMTk2OTk4NiA3LjQ4NjgwNzMyLTE1My4zMDEyOTQ0NCA0LjgxMjk0NzQ2LTQ0LjU2NDMyODk5IDEzLjE5MTA0MTgzLTg4LjQxNTYyOTc0IDI3LjgwODE0MTYzLTEzMC42NjI2MTM3NCAyNi41NjAzMzk3MS03Ni4xMTU4NzUgNzcuNzIwMTkwMzUtMTI4Ljg4MDA0MDk2IDE1My4zMDEyOTMwOC0xNTcuNDAxMjEwODUgMzMuNjkwNjMzNTctMTIuNjU2MjY5NTkgNjguNjI5MDY3NjYtMjEuMDM0MzYzOTcgMTA0LjI4MDUzMTQtMjYuMjAzODI2MjYgODQuNjcyMjI1MzktMTIuNDc4MDEyMTggMTY5Ljg3OTIyNDQzLTEzLjcyNTgxNDEgMjU1LjI2NDQ3ODExLTExLjU4NjcyNTA5IDMzLjY5MDYzMzU3IDAuODkxMjg3MDggNjcuMzgxMjY1NzcgMi42NzM4NTk4NCAxMDAuODkzNjQxOTEgNS41MjU5NzU3MyA1NS45NzI3OTgwOCA0Ljk5MTIwNDg4IDExMC44NzYwNTE2NyAxNS4zMzAxMjk0NSAxNjMuNjQwMjE3NjMgMzYuMTg2MjM2IDczLjc5ODUyOTk2IDI5LjQxMjQ1Njk3IDEyMC4xNDU0MzE3NSA4My45NTkxOTcxIDE0NC45MjMyMDAwNyAxNTcuOTM1OTgzMTIgMTEuNTg2NzI1MSAzNC41ODE5MTkyNyAxOS4yNTE3ODk4NCA3MC4wNTUxMjU2MSAyMy43MDgyMjM4NSAxMDYuMjQxMzYxNjEgNy44NDMzMjIxNCA2My40NTk2MDU0IDEwLjg3MzY5NjgzIDEyNi45MTkyMTA3NiAxMS4yMzAyMTAyNSAxOTAuNzM1MzMwOTh6IiBwLWlkPSIxNDMwMyI+PC9wYXRoPjwvc3ZnPg==); + mask-size: cover; + } + .avatar-sm-text { + font-size: 0.8em; + } + + .ui-avatar-image { + position: absolute; + width: 100%; + height: 100%; + border-radius: inherit; + top: 0; + left: 0; + z-index: 1; + } + .view, .text { + position: relative; + z-index: 2; + } + .ui-avatar-icon { + font-size: 150%; + } + &.stack { + margin-left: -1em; + background-color: inherit; + z-index: 1; + &.isFirstChild { + margin-left: 0px; + } + &.reverse { + margin: 0 -1em 0 0.14em; + } + &::after { + content: ''; + background-color: inherit; + transform: scale(1.1); + display: block; + position: absolute; + width: 100%; + height: 100%; + z-index: 0; + } + &::after { + border-radius: #{$radius}; + } + + &.round::after { + border-radius: $round-pill; + } + + &.ellipse::after { + border-radius: 0px; + mask-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjE5NjMxNjI4MjE3IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjE0MzAyIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiPjxkZWZzPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTEwMDcuMzI3NjgxODQgNTEwLjQ3NzQyODU0Yy0xLjYwNDMxNTM3IDQxLjcxMjIxMTc1LTIuNDk1NjAyNDMgODMuNjAyNjgyMjgtNS4xNjk0NjIyNiAxMjUuMzE0ODk0MDUtMy43NDM0MDQzNSA1Ny43NTUzNzA4NS0xMi4yOTk3NTQ3OCAxMTQuNjE5NDU2MDEtMzAuNDgyMDAxNDkgMTcwLjA1NzQ4MDQ0LTI2LjU2MDMzOTcxIDgwLjU3MjMwNzYtODAuNzUwNTY1MDMgMTMzLjE1ODIxNjE4LTE1OS4xODM3ODUwMiAxNjIuNzQ4OTMxOTQtMzEuNzI5ODAyIDExLjk0MzIzOTkyLTY0LjcwNzQwNTkyIDE4LjAwMzk4OTI5LTk3Ljg2MzI2NzI2IDIzLjUyOTk2NjQyLTYwLjI1MDk3MzMgMTAuMTYwNjY3MTQtMTIxLjIxNDk3NjIzIDEyLjI5OTc1NDc4LTE4Mi4xNzg5Nzc3OCAxMi4yOTk3NTQ3OC00My42NzMwNDMzIDAtODcuMzQ2MDg1MjUtMC4zNTY1MTQ4Mi0xMzEuMDE5MTI5OTQtMi42NzM4NTk4Ny02MS42NzcwMzI1OC0zLjIwODYzMjEtMTIyLjgxOTI5MTU5LTEwLjMzODkyNDU5LTE4Mi4xNzg5Nzc4Mi0yOS41OTA3MTU3Ny00Ny41OTQ3MDM2OS0xNS4zMzAxMjk0NS04OC43NzIxNDQ1Ny00MC4xMDc4OTYzOC0xMjEuMjE0OTc2MjMtNzguNjExNDc2MDNDNzIuMDExNTM1MTkgODYyLjcxMzg4ODIgNTQuNzIwNTc1NTggODI3LjA2MjQyNDQxIDQzLjg0Njg3ODc1IDc4OC41NTg4NDM0MWMtNy42NjUwNjQ3Mi0yNy4yNzMzNjkzOS0xMy45MDQwNzAxNC01NS4yNTk3Njg0MS0xNy40NjkyMTcwNi04My40MjQ0MjQ4OS00Ljk5MTIwNDg4LTM5LjM5NDg2Njc0LTcuODQzMzIyMTQtNzguOTY3OTkyMjQtMTAuMTYwNjY3MTUtMTE4LjU0MTExNjM2LTEuNzgyNTcyNzgtMzEuMTk1MDMxMTMtMS40MjYwNTc5NS02Mi4zOTAwNjA4Ny0xLjQyNjA1Nzk1LTkzLjU4NTA5MDY4LTAuMTc4MjU3NC01MS4xNTk4NTA2MiAyLjEzOTA4NzYxLTEwMi4zMTk2OTk4NiA3LjQ4NjgwNzMyLTE1My4zMDEyOTQ0NCA0LjgxMjk0NzQ2LTQ0LjU2NDMyODk5IDEzLjE5MTA0MTgzLTg4LjQxNTYyOTc0IDI3LjgwODE0MTYzLTEzMC42NjI2MTM3NCAyNi41NjAzMzk3MS03Ni4xMTU4NzUgNzcuNzIwMTkwMzUtMTI4Ljg4MDA0MDk2IDE1My4zMDEyOTMwOC0xNTcuNDAxMjEwODUgMzMuNjkwNjMzNTctMTIuNjU2MjY5NTkgNjguNjI5MDY3NjYtMjEuMDM0MzYzOTcgMTA0LjI4MDUzMTQtMjYuMjAzODI2MjYgODQuNjcyMjI1MzktMTIuNDc4MDEyMTggMTY5Ljg3OTIyNDQzLTEzLjcyNTgxNDEgMjU1LjI2NDQ3ODExLTExLjU4NjcyNTA5IDMzLjY5MDYzMzU3IDAuODkxMjg3MDggNjcuMzgxMjY1NzcgMi42NzM4NTk4NCAxMDAuODkzNjQxOTEgNS41MjU5NzU3MyA1NS45NzI3OTgwOCA0Ljk5MTIwNDg4IDExMC44NzYwNTE2NyAxNS4zMzAxMjk0NSAxNjMuNjQwMjE3NjMgMzYuMTg2MjM2IDczLjc5ODUyOTk2IDI5LjQxMjQ1Njk3IDEyMC4xNDU0MzE3NSA4My45NTkxOTcxIDE0NC45MjMyMDAwNyAxNTcuOTM1OTgzMTIgMTEuNTg2NzI1MSAzNC41ODE5MTkyNyAxOS4yNTE3ODk4NCA3MC4wNTUxMjU2MSAyMy43MDgyMjM4NSAxMDYuMjQxMzYxNjEgNy44NDMzMjIxNCA2My40NTk2MDU0IDEwLjg3MzY5NjgzIDEyNi45MTkyMTA3NiAxMS4yMzAyMTAyNSAxOTAuNzM1MzMwOTh6IiBwLWlkPSIxNDMwMyI+PC9wYXRoPjwvc3ZnPg==); + mask-size: cover; + } + } +} +.ui-avatar-group { + display: flex; + flex-wrap: wrap; + width: 100%; + height: 100%; + padding: 1px; + .ui-avatar-image { + position: relative; + float: left; + border-radius: #{$radius}; + margin: 1px; + display: block; + } + /*1个*/ + &.nth-1 .ui-avatar-image { + width: calc(100% - 2px); + height: calc(100% - 2px); + } + /*2个*/ + &.nth-2 .ui-avatar-image { + width: calc((100% - 5px) / 2); + height: calc((100% - 5px) / 2); + } + &.nth-2 .ui-avatar-image:last-child { + margin-left: calc(50% + 1px); + } + /*3个*/ + &.nth-3 .ui-avatar-image { + width: calc((100% - 5px) / 2); + height: calc((100% - 5px) / 2); + float: left; + } + &.nth-3 .ui-avatar-image:first-child { + margin-left: calc(25% + 1px); + } + /*4个*/ + &.nth-4 .ui-avatar-image { + width: calc(50% - 2px); + height: calc(50% - 2px); + float: left; + } + /*5/6个*/ + &.nth-5 .ui-avatar-image, + &.nth-6 .ui-avatar-image { + width: calc((100% - 6px) / 3); + height: calc((100% - 6px) / 3); + border-radius: #{$radius - 2}; + } + &.nth-5 .ui-avatar-image:first-child, + &.nth-6 .ui-avatar-image:first-child { + width: calc((100% - 6px) / 3 * 2 + 2px); + height: calc((100% - 6px) / 3 * 2 + 2px); + border-radius: #{$radius}; + } + &.nth-5 .ui-avatar-image:last-child { + top: -33.33%; + } + &.nth-6 .ui-avatar-image:last-child { + top: -66.66%; + left: 66.66%; + } + // &.nth-5 .ui-avatar-image:nth-last-child(1),&.nth-5 .ui-avatar-image:nth-last-child(2),&.nth-5 .ui-avatar-image:nth-last-child(3), + // &.nth-6 .ui-avatar-image:nth-last-child(1),&.nth-6 .ui-avatar-image:nth-last-child(2),&.nth-6 .ui-avatar-image:nth-last-child(3),{ + // margin-top: 2px; + // } + /* 7个 8个 9个 */ + &.nth-7 .ui-avatar-image:first-child { + margin-left: calc(100% / 3 + 1px); + margin-right: calc(100% / 3 + 1px); + } + &.nth-8 .ui-avatar-image:first-child { + margin-left: calc(100% / 3 / 2 + 1px); + } + &.nth-7, + &.nth-8, + &.nth-9 { + display: flex; + flex-wrap: wrap; + .ui-avatar-image { + width: calc((100% - 6px) / 3); + height: calc((100% - 6px) / 3); + border-radius: #{$radius - 2}; + } + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.wxml b/miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.wxml new file mode 100644 index 00000000..097044c5 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-avatar/ui-avatar.wxml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/miniprogram/mp-cu/colorUI/components/ui-card/ui-card.js b/miniprogram/mp-cu/colorUI/components/ui-card/ui-card.js new file mode 100644 index 00000000..e9f3bb28 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-card/ui-card.js @@ -0,0 +1,42 @@ +Component({ + options: { + addGlobalClass: true, + multipleSlots: true + }, + properties: { + img: { + type: String + }, + imgHeight: { + type: String, + value: 'auto' + }, + title: { + type: String + }, + fixedTitle: { + type: Boolean, + value: false + }, + desc: { + type: String + }, + ui: { + type: String + }, + imgUi: { + type: String + }, + isTitle: { + type: Boolean, + value: true + }, + isTag: { + type: Boolean, + value: false + }, + }, + methods: { + + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-card/ui-card.json b/miniprogram/mp-cu/colorUI/components/ui-card/ui-card.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-card/ui-card.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-card/ui-card.scss b/miniprogram/mp-cu/colorUI/components/ui-card/ui-card.scss new file mode 100644 index 00000000..887c33e7 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-card/ui-card.scss @@ -0,0 +1,51 @@ +.ui-card { + position: relative; + background-color: var(--ui-BG); + overflow: hidden; + margin: 2em 0; + .ui-card-title { + padding: 0.5em 1em 0; + } + .ui-card-desc { + padding: 0.5em 1em 0; + height: 3.7em; + line-height: 1.6; + } + .ui-card-main { + width: 100%; + position: relative; + .ui-card-tag{ + position: absolute; + width: 100%; + left: 0; + top: 0; + z-index: 2; + border-radius: inherit; + } + .ui-card-fixedTitle { + padding: 1.5em 1em 1em; + position: absolute; + width: 100%; + left: 0; + bottom: 0; + z-index: 2; + &::before{ + opacity: .6; + } + } + .ui-card-image { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + z-index: 1; + } + } + .ui-card-other { + padding: 0.5em 1em; + } + .ui-card-other:first-child { + padding: 0; + } +} diff --git a/miniprogram/mp-cu/colorUI/components/ui-card/ui-card.wxml b/miniprogram/mp-cu/colorUI/components/ui-card/ui-card.wxml new file mode 100644 index 00000000..d66bc374 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-card/ui-card.wxml @@ -0,0 +1,25 @@ + + + + + + {{ title }} + + + + + + + + + + {{ title }} + + + {{ desc }} + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.js b/miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.js new file mode 100644 index 00000000..9f32b993 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.js @@ -0,0 +1,44 @@ +Component({ + data: { + color: ['red', 'orange', 'yellow', 'olive', 'green', 'cyan', 'blue', 'purple', 'mauve', 'pink', 'brown', 'grey'], + target: '', + }, + options: { + addGlobalClass: true, + multipleSlots: true, + }, + properties: { + ui: { + type: String, + value: '' + }, + }, + lifetimes: { + created() { + + }, + attached() { + + }, + ready() { + + }, + }, + methods: { + tapAutoThemeChange(e) { + let val = e.currentTarget.dataset.value; + this.setTheme( val === 'auto'?'light':'auto') + }, + tapThemeChange(e) { + this.setTheme(e.currentTarget.dataset.value) + }, + tapColorPicker() { + this.setData({ + target: 'colorPicker' + }) + }, + tapChooseColor(e) { + this.setMain(e.currentTarget.dataset.value) + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.json b/miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.json new file mode 100644 index 00000000..185462a4 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "ui-switch": "../ui-switch/ui-switch", + "ui-modal": "../ui-modal/ui-modal", + "ui-radio": "../ui-radio/ui-radio" + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.scss b/miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.scss new file mode 100644 index 00000000..f371b2b7 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.scss @@ -0,0 +1,38 @@ +.mobile-phone { + width: 170rpx; + height: 305rpx; + border-radius: 10px; + padding: 10rpx 15rpx; + background-color: #ffffff; + margin-bottom: 10px; + + &:after { + display: none; + } + + &.cur:after { + display: block; + border: 10rpx solid var(--ui-BG-Main) !important; + border-radius: 20px; + } + + .ui-BG-Main { + height: 100rpx; + margin-top: 10px; + background-color: rgba(122, 122, 122, 0.5) !important; + } + + &.cur .ui-BG-Main { + background-color: var(--ui-BG-Main) !important; + } + + .bg-gray, + .bg-dark-4 { + height: 40rpx; + margin-top: 10rpx; + } + + &.dark { + background-color: #232323; + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.wxml b/miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.wxml new file mode 100644 index 00000000..0905e2e3 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-change-theme/ui-change-theme.wxml @@ -0,0 +1,50 @@ + + + + 跟随系统 + + + + + + + + + + + + + + + 浅色 + + + + + + + + + 深色 + + + + + 主题色 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.js b/miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.js new file mode 100644 index 00000000..681f9f6e --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.js @@ -0,0 +1,123 @@ +Component({ + relations: { + '../ui-checkbox/ui-checkbox': { + type: 'child', // 关联的目标节点应为子节点 + linked(target) { + // 每次有子组件被插入时执行,target是该节点实例对象,触发在该节点attached生命周期之后 + }, + linkChanged(target) { + // 每次有子组件被移动后执行,target是该节点实例对象,触发在该节点moved生命周期之后 + }, + unlinked(target) { + // 每次有子组件被移除时执行,target是该节点实例对象,触发在该节点detached生命周期之后 + } + } + }, + data: { + group:[], + all:[], + isAllChecked:false, + isIndeterminate:false + }, + options: { + addGlobalClass: true, + multipleSlots: true + }, + properties: { + ui: { + type: String, + value: '' + }, + value: { + type: String, + optionalTypes: Array, + value: '' + }, + disabled: { + type: Boolean, + value: false + }, + bg: { + type: String, + value: 'ui-BG-Main' + }, + clearable: { + type: Boolean, + value: false + } + }, + lifetimes: { + ready() { + this._deepSetValue() + }, + }, + observers: { + 'value'(val) { + this.setData({ + all: [], + group: val + }); + this._deepSetValue() + }, + 'group'(val) { + let {all, group} = this.data; + this.setData({ + isAllChecked: all.length === group.length, + isIndeterminate: group.length > 0 + }); + } + }, + methods: { + _deepSetValue() { + let _this = this, all = this.data.all; + let nodes = this.getRelationNodes('../ui-checkbox/ui-checkbox'); + if (Array.isArray(nodes)) { + nodes.forEach((child) => { + if(!child.data.all) { + all.push(child.data.value); + _this.setData({ + all: all + }); + } + if (typeof child._setValue == 'function') { + child._setValue(_this.data.value) + } + }); + } + }, + _onCheckboxChange(value) { + let group = this.data.group; + let index = group.indexOf(value); + if(index === -1){ + group.push(value) + } else { + group.splice(index,1) + } + this.setData({ + group: group + }); + this._onChangeEvent(group); + }, + _onCheckboxAll(isAll){ + let {group, all} = this.data; + if(isAll){ + group = all; + } else { + group = []; + } + this.setData({ + group: group + }); + this._onChangeEvent(group); + }, + _onChangeEvent(val) { + let {isAllChecked, isIndeterminate} = this.data; + this.triggerEvent('input', val); + this.triggerEvent('change', val); + this.triggerEvent('all', { + value: isAllChecked, + indeterminate: isIndeterminate + }); + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.json b/miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.scss b/miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.scss new file mode 100644 index 00000000..e69de29b diff --git a/miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.wxml b/miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.wxml new file mode 100644 index 00000000..08f1c722 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group.wxml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.js b/miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.js new file mode 100644 index 00000000..5819a537 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.js @@ -0,0 +1,144 @@ +Component({ + relations: { + '../ui-checkbox-group/ui-checkbox-group': { + type: 'parent' + } + }, + data: { + currentValue: null, + isIndeterminate:false, + isGroup: null, + isDisabled: null, + isChecked: null, + hasUiCard: null + }, + options: { + addGlobalClass: true, + multipleSlots: true + }, + properties: { + ui: { + type: String, + value: '' + }, + value: { + type: String, + optionalTypes: [Number, Boolean], + value: '' + }, + disabled: { + type: Boolean, + value: false + }, + bg: { + type: String, + value: 'ui-BG-Main' + }, + unbg: { + type: String, + value: 'borderss' + }, + indeterminate: { + type: Boolean, + value: false + }, + all: { + type: Boolean, + value: false + } + }, + lifetimes: { + ready() { + let parent = this._nodesSetValue(); + if (parent) { + this._setValue(parent.data.value); + } + }, + }, + observers: { + 'value'(val) { + this.setData({ + currentValue: val + }); + this.isComputed(); + }, + 'indeterminate'(val) { + this.setData({ + isIndeterminate: val + }); + this.isComputed(); + } + }, + methods: { + _nodesSetValue() { + let radioNodes = this.getRelationNodes('../ui-checkbox-group/ui-checkbox-group'); + if (Array.isArray(radioNodes) && radioNodes.length > 0) { + return radioNodes[0]; + } else { + return false; + } + }, + isComputed() { + let {disabled, currentValue, value, ui} = this.data; + let parent = this._nodesSetValue(); + //isGroup + let isGroup = !!parent; + //isDisabled + let isDisabled = isGroup?parent.data.disabled:disabled; + //isChecked + let isChecked; + if (typeof currentValue == 'boolean') { + isChecked = currentValue; + } else { + isChecked = isGroup && parent.data.group.indexOf(value) !== -1; + } + //_has + let hasUiCard = ui.indexOf('card') !== -1; + + //isAllChecked="{{isAllChecked}}" + //isIndeterminate="{{isIndeterminate}}" + + //设置数据 + this.setData({ + isGroup: isGroup, + isDisabled: isDisabled, + isChecked: isChecked, + hasUiCard: hasUiCard + }); + }, + _onCheckboxClick() { + let {isGroup, isDisabled, isChecked} = this.data; + if (isGroup && !isDisabled) { + this._choose(); + } + if (!isGroup && !isDisabled) { + this.triggerEvent('input', !isChecked); + this.triggerEvent('change', !isChecked); + } + }, + _choose() { + let {isGroup, isChecked, value, all} = this.data; + this.triggerEvent('input', !isChecked); + this.triggerEvent('change', !isChecked); + if (isGroup) { + let parent = this._nodesSetValue(); + if(all) { + parent._onCheckboxAll(!isChecked); + } else { + parent._onCheckboxChange(value); + } + } else { + this.setData({ + isIndeterminate: false + }); + } + }, + _setValue(val) { + let value = this.data.value; + this.setData({ + currentValue: val.indexOf(value) !== -1 + }); + this.isComputed(); + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.json b/miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.scss b/miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.scss new file mode 100644 index 00000000..81941cc4 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.scss @@ -0,0 +1,60 @@ +@import '../../scss/var'; + +.ui-checkbox { + display: inline-flex; + align-items: center; + margin: 0 1em 0 0.14286em; + cursor: pointer; + .ui-checkbox-input { + margin: 0 0.5em 0 0.14286em; + display: inline-block; + width: 1.2em; + height: 1.2em; + vertical-align: middle; + position: relative; + &::before { + font-family: 'colorui'; + content: '\e69f'; + width: 1em; + height: 1em; + font-size: 0%; + background-color: transparent; + position: absolute !important; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + } + &.indeterminate::before { + content: '\e768'; + width: 1em; + height: 1em; + font-size: 80%; + } + } + + &.round { + .ui-checkbox-input, + .ui-checkbox-input::after { + border-radius: $round-pill !important; + } + } + .ui-checkbox-input.cur { + &::before { + content: '\e69f'; + width: 1em; + height: 1em; + font-size: 80%; + } + } + + &:last-child { + margin: 0 0.14286em; + } + &.lg { + .ui-checkbox-input { + font-size: 18px; + } + } +} diff --git a/miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.wxml b/miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.wxml new file mode 100644 index 00000000..1a88a31f --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-checkbox/ui-checkbox.wxml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-code/ui-code.js b/miniprogram/mp-cu/colorUI/components/ui-code/ui-code.js new file mode 100644 index 00000000..8da9f34e --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-code/ui-code.js @@ -0,0 +1,91 @@ +import Prism from '../../../lib/prism' + +Component({ + data: { + nodes: [], + rich: false + }, + options: { + addGlobalClass: true + }, + properties: { + ui: { + type: String, + value: '' + }, + title: { + type: Boolean, + optionalTypes: String, + value: false + }, + content: { + type: String, + value: '' + }, + bg: { + type: String, + value: 'ui-BG' + }, + text: { + type: String, + value: 'ui-TC-Main' + }, + tag: { + type: String, + value: 'code' + }, + lang: { + type: String, + value: 'null' + }, + scroll: { + type: Boolean, + value: false + } + }, + lifetimes: { + attached() { + this.initCode(); + } + }, + observers: { + 'content'(res) { + this.initCode(); + } + }, + methods: { + initCode() { + let langArr = [], nodes, content = this.data.content, lang = this.data.lang; + if (this.data.tag === 'pre') { + langArr = this.SupportList(); + if (langArr.indexOf(lang) === -1) { + nodes = content; + } else { + nodes = Prism.highlight(content, Prism.languages[lang], lang); + this.setData({ rich: true }) + } + } + if (this.data.tag === 'code') { + nodes = content; + } + this.setData({ + nodes: nodes + }) + }, + SupportList() { + let langs = [], i = 0; + for (let language in Prism.languages) { + if (Object.prototype.toString.call(Prism.languages[language]) !== '[object Function]') { + langs[i] = language; + i++; + } + } + return langs; + }, + copyCode() { + wx.setClipboardData({ + data: this.data.content + }); + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-code/ui-code.json b/miniprogram/mp-cu/colorUI/components/ui-code/ui-code.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-code/ui-code.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-code/ui-code.scss b/miniprogram/mp-cu/colorUI/components/ui-code/ui-code.scss new file mode 100644 index 00000000..e69de29b diff --git a/miniprogram/mp-cu/colorUI/components/ui-code/ui-code.wxml b/miniprogram/mp-cu/colorUI/components/ui-code/ui-code.wxml new file mode 100644 index 00000000..1ba72aea --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-code/ui-code.wxml @@ -0,0 +1,16 @@ + + + + + + + + + {{ nodes }} + + + + + + {{title==true?'示例代码:':title}} + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.js b/miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.js new file mode 100644 index 00000000..670424f6 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.js @@ -0,0 +1,151 @@ +Component({ + data: { + _uid: '', + content: {}, + fixed: true + }, + options: { + addGlobalClass: true + }, + properties: { + noNav: { + type: Boolean, + value: false + }, + noSafe: { + type: Boolean, + value: false + }, + bottom: { + type: Boolean, + value: false + }, + bg: { + type: String, + value: 'bg-none' + }, + val: { + type: Number, + value: 0 + }, + width: { + type: Number, + optionalTypes: String, + value: 0 + }, + opacity: { + type: Boolean, + value: false + }, + opacityVal: { + type: Number, + value: 0 + }, + zIndex: { + type: Number, + optionalTypes: String, + value: 12 + }, + placeholder: { + type: Boolean, + value: false + }, + sticky: { + type: Boolean, + value: false + }, + noFixed: { + type: Boolean, + value: false + }, + ui: { + type: String, + value: '' + }, + clickTo: { + type: Boolean, + value: false + }, + scrollTop: { + type: Number, + optionalTypes: String, + value: 0 + } + }, + lifetimes: { + created() { + + }, + attached() { + let _uid = this.getRandom(8); + this.setData({_uid: _uid}) + }, + ready() { + if (this.data.sticky) { + this.setData({fixed: false}) + } + this._computedQuery(); + }, + }, + observers: { + 'scrollTop'(val) { + if (this.data.sticky) { + this._setFixed(val); + } + }, + 'noFixed'(val) { + if (val) { + this.setData({fixed: false}) + } + } + }, + methods: { + //生成随机字符串 + getRandom(num) { + let chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' + let maxPos = chars.length, value = ''; + for (let i = 0; i < num; i++) { + value += chars.charAt(Math.floor(Math.random() * maxPos)); + } + return value; + }, + _computedQuery() { + let _this = this; + wx.createSelectorQuery() + .in(_this) + .select('#fixed-' + _this.data._uid) + .boundingClientRect(data => { + if (data != null) { + //this.$emit('getHeight', data.height); + //this.$emit('update:height', data.height); + _this.setData({content: data}) + if (_this.data.sticky) { + _this._setFixed(_this.data.scrollTop); + } + } else { + console.log('fixed-' + _this.data._uid + ' data error'); + } + }) + .exec(); + }, + _setFixed(value) { + let {bottom, content, noNav, val, sys_navBar} = this.data; + if (bottom) { + let fixed = value >= content.bottom - wx.getSystemInfoSync().windowHeight + content.height + val; + this.setData({fixed: fixed}) + } else { + let fixed = value >= content.top - (noNav ? this.data.val : val + sys_navBar); + this.setData({fixed: fixed}) + } + }, + _toTop() { + let {clickTo, content} = this.data; + if (clickTo) { + wx.pageScrollTo({ + scrollTop: content.top, + duration: 100 + }); + } + } + }, +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.json b/miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.scss b/miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.scss new file mode 100644 index 00000000..5920a8f2 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.scss @@ -0,0 +1,25 @@ +.ui-fixed { + .ui-fixed-box { + position: relative; + width: 100%; + &.fixed { + position: fixed; + } + .ui-fixed-content { + position: relative; + //z-index: 11; + } + .ui-fixed-bg { + position: absolute; + width: 100%; + height: 100%; + top: 0; + z-index: 1; + pointer-events: none; + } + .ui-fixed-bottom{ + height: calc(constant(safe-area-inset-bottom) / 5 * 3); + height: calc(env(safe-area-inset-bottom) / 5 * 3); + } + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.wxml b/miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.wxml new file mode 100644 index 00000000..134e211a --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-fixed/ui-fixed.wxml @@ -0,0 +1,13 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.js b/miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.js new file mode 100644 index 00000000..5561d99f --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.js @@ -0,0 +1,57 @@ +Component({ + data: { + slots: {}, + }, + options: { + addGlobalClass: true, + multipleSlots: true + }, + properties: { + ui: { + type: String, + value: '' + }, + contentui: { + type: String, + value: '' + }, + icon: { + type: String, + value: '' + }, + disabled: { + type: Boolean, + value: false + }, + required: { + type: Boolean, + value: false + }, + titleTop: { + type: Boolean, + value: false + }, + title: { + type: String, + value: '' + }, + isAction: { + type: Boolean, + value: false + }, + }, + lifetimes: { + attached() { + + }, + ready() { + + }, + }, + observers: { + + }, + methods: { + + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.json b/miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.scss b/miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.scss new file mode 100644 index 00000000..a8cd2ccc --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.scss @@ -0,0 +1,68 @@ +@import '../../scss/var'; +.ui-form-group { + display: flex; + align-items: center; + justify-content: space-between; + position: relative; + padding: .5em 30rpx; + &.disabled { + .ui-form-title, + .ui-form-content, + .ui-form-action { + pointer-events: none; + } + } + .ui-form-title { + text-align: justify; + font-size: 1.1em; + position: relative; + padding-left: 0; + display: flex; + align-items: center; + margin-right: 30rpx; + &.self-start{ + min-height: 2.6572em; + align-self: flex-start; + } + .ui-form-icon { + margin: 0 0.28572em 0 0; + transform: scale(1.2); + } + .ui-form-required { + position: relative; + color: $red; + font-size: 20px; + top: -0.4em; + right: 0em; + } + } + .ui-form-content { + flex: 1; + // background-color: var(--ui-BG-1); + // padding: 0 1em; + border-radius: $radius; + display: flex; + align-items: center; + min-height: 3em; + } + .ui-form-action { + margin-left: 1em; + } + &::after { + content: ' '; + width: 200%; + left: 0rpx; + position: absolute; + top: 0; + box-sizing: border-box; + height: 200%; + border-top: 1px solid var(--ui-Border); + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + } + &.first-item::after { + display: none; + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.wxml b/miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.wxml new file mode 100644 index 00000000..42dd84f9 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-form-group/ui-form-group.wxml @@ -0,0 +1,13 @@ + + + + {{ title }} + * + + + + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-form/ui-form.js b/miniprogram/mp-cu/colorUI/components/ui-form/ui-form.js new file mode 100644 index 00000000..09cb6d11 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-form/ui-form.js @@ -0,0 +1,18 @@ +Component({ + data: { + titleWidth: 0 + }, + options: { + addGlobalClass: true, + multipleSlots: true + }, + properties: { + ui: { + type: String, + value: '' + } + }, + methods: { + + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-form/ui-form.json b/miniprogram/mp-cu/colorUI/components/ui-form/ui-form.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-form/ui-form.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-form/ui-form.scss b/miniprogram/mp-cu/colorUI/components/ui-form/ui-form.scss new file mode 100644 index 00000000..e69de29b diff --git a/miniprogram/mp-cu/colorUI/components/ui-form/ui-form.wxml b/miniprogram/mp-cu/colorUI/components/ui-form/ui-form.wxml new file mode 100644 index 00000000..9a1bc707 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-form/ui-form.wxml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-img/ui-img.js b/miniprogram/mp-cu/colorUI/components/ui-img/ui-img.js new file mode 100644 index 00000000..00424145 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-img/ui-img.js @@ -0,0 +1,141 @@ +Component({ + data: { + _uid: '', + isLoad: true, + error: false, + detail: {}, + imgW: '', + imgH: '' + }, + options: { + addGlobalClass: true + }, + properties: { + src: { + type: String, + value: '' + }, + ui: { + type: String, + value: '' + }, + mode: { + type: String, + value: 'cover' //width cover self + }, + width: { + type: String, + value: '' + }, + height: { + type: String, + value: '' + }, + preview: { + type: Boolean, + value: false + }, + urls: { + type: Array, + value: [] + }, + current: { + type: Number, + value: 0 + }, + //加载本地图片 + local: { + type: Boolean, + value: false + }, + }, + lifetimes: { + ready() { + let _uid = this.getRandom(8); + this.setData({_uid: _uid}) + this._computed(this.data.detail); + }, + }, + observers: { + 'width'(val) { + this.setData({imgW: val}) + }, + 'height'(val) { + this.setData({imgH: val}) + } + }, + methods: { + //生成随机字符串 + getRandom(num) { + let chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' + let maxPos = chars.length, value = ''; + for (let i = 0; i < num; i++) { + value += chars.charAt(Math.floor(Math.random() * maxPos)); + } + return value; + }, + _computed({ is_width, is_height }) { + let _this = this, {width, height} = this.data; + if (width==='' && height==='') { + wx.createSelectorQuery() + .in(this) + .select('#image-' + _this.data._uid) + .boundingClientRect(data => { + if (data != null) { + //let imgH = (data.width * is_height) / is_width + 'px'; + //console.log(data.height,is_height,is_width) + _this.setData({imgH: data.height + 'px'}) + } else { + console.log('image-' + _this.data._uid + ' data error'); + } + }) + .exec(); + return false; + } + if (width!=='' && height==='') { + let imgH = (width * is_height) / is_width + 'px'; + _this.setData({imgH: imgH}) + return false; + } + if (width==='' && height!=='') { + let imgW = (height * is_width) / is_height + 'px'; + _this.setData({imgW: imgW}) + return false; + } + }, + _computedWidth(width) { + return width + 'px'; + }, + _computedHeight(height) { + return height + 'px'; + }, + _load(e) { + this.setData({ + detail: e.detail, + isLoad: false + }) + this._computed(e.detail); + }, + _error(e) { + this.setData({error: true}) + }, + _preview() { + if (this.data.preview) { + let _this = this; + wx.previewImage({ + urls: _this.data.urls.length<1?[_this.data.src]:_this.data.urls, + current: _this.data.current, + longPressActions: { + itemList: ['发送给朋友', '保存图片', '收藏'], + success(data) { + console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片'); + }, + fail(err) { + console.log(err.errMsg); + } + } + }); + } + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-img/ui-img.json b/miniprogram/mp-cu/colorUI/components/ui-img/ui-img.json new file mode 100644 index 00000000..b669b1b6 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-img/ui-img.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "ui-loading": "../ui-loading/ui-loading" + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-img/ui-img.scss b/miniprogram/mp-cu/colorUI/components/ui-img/ui-img.scss new file mode 100644 index 00000000..b4e48653 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-img/ui-img.scss @@ -0,0 +1,35 @@ +.mp-ui-img-box { + position: relative; + .ui-img-box { + position: relative; + width: 100%; + height: 280rpx; + max-width: 100%; + .ui-img-load { + position: absolute; + width: 100%; + height: 100%; + border-radius: inherit; + z-index: 1; + background-color: var(--ui-BG-4); + display: flex; + align-items: center; + justify-content: center; + } + .ui-img { + border-radius: inherit; + display: none; + } + &.cover { + background-size: cover; + } + } + .ui-img-box.mp-img-local { + position: relative; + .ui-img { + display: block; + width: 100%; + height: 100%; + } + } +} diff --git a/miniprogram/mp-cu/colorUI/components/ui-img/ui-img.wxml b/miniprogram/mp-cu/colorUI/components/ui-img/ui-img.wxml new file mode 100644 index 00000000..3b570000 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-img/ui-img.wxml @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.js b/miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.js new file mode 100644 index 00000000..27484161 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.js @@ -0,0 +1,67 @@ +Component({ + data: { + isVisible: false + }, + options: { + addGlobalClass: true, + multipleSlots: true + }, + properties: { + ui: { + type: String, + value: '' + }, + isType: { + type: String, + value: 'text' + }, + value: { + type: String, + optionalTypes: Number, + value: '' + }, + showTag: { + type: Boolean, + value: false + }, + maxlength: { + type: Number, + optionalTypes: String, + value: 140 + }, + clear: { + type: Boolean, + value: false + }, + isDisabled: { + type: Boolean, + value: false + }, + }, + lifetimes: { + attached() { + //let _uid = this.getRandom(8); + //this.setData({_uid: _uid}) + }, + ready() { + //this._computedQuery(); + }, + }, + observers: { + /*'value'(val) { + this._setCurValue(val); + },*/ + }, + methods: { + _clear() { + this.triggerEvent('clear'); + }, + _toggleVisible() { + let isVisible = this.data.isVisible; + this.triggerEvent('visible',!isVisible); + this.setData({ + isVisible: !isVisible + }) + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.json b/miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.scss b/miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.scss new file mode 100644 index 00000000..6ba99c52 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.scss @@ -0,0 +1,57 @@ +.ui-form-input { + position: relative; + display: inline-flex; + width: 100%; + border-radius: inherit; + align-items: center; + .ui-input-wrapper,.ui-textarea-wrapper { + border-radius: inherit; + color: var(--ui-TC-1); + padding: 0.8em 0; + font-size: 28rpx; + width: 100%; + /* #ifdef H5 */ + background-color: transparent; + border: none; + /* #endif */ + &:focus-visible { + outline: none; + } + } + .ui-input-wrapper { + display: flex; + align-items: center; + } + .ui-textarea-wrapper { + min-height: 3.2em; + line-height: 1.4em; + } + .ui-textarea-wrapper.show-tag { + min-height: 5.6em; + padding-bottom: 2.4em; + } + .ui-textarea-tag{ + position: absolute; + bottom: 0; + right: 0; + } + .ui-input-visible { + font-size: 16px; + text-align: center; + } + .ui-input-icon { + width: 2em; + height: 2.6em; + line-height: 2.6em; + font-size: 28rpx; + text-align: center; + right: 0; + top: 0; + z-index: 3; + padding-left: .6em; + } + .tips-text { + height: 1em; + margin-top: 0.3em; + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.wxml b/miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.wxml new file mode 100644 index 00000000..4a3ef07e --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-input-box/ui-input-box.wxml @@ -0,0 +1,14 @@ + + + + {{value.length}} / {{maxlength}} + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.js b/miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.js new file mode 100644 index 00000000..2fadfdfe --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.js @@ -0,0 +1,32 @@ +Component({ + options: { + addGlobalClass: true, + multipleSlots: true + }, + properties: { + ui: { + type: String, + value: '' + }, + size: { + type: String, + value: '' + }, + img: { + type: String, + value: '' + }, + color: { + type: String, + optionalTypes: Boolean, + value: '' + }, + isSlot: { + type: Boolean, + value: false + }, + }, + methods: { + + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.json b/miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.scss b/miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.scss new file mode 100644 index 00000000..990e9f24 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.scss @@ -0,0 +1,113 @@ +@import '../../scss/var'; + +.ui-loading-box { + display: inline-block; + vertical-align: middle; + .ui-loading { + width: 1em; + height: 1em; + margin: 0 0.5em; + animation: loading_spin 0.7s linear infinite; + .ui-loading-cut { + //position: relative; + width: 0.5em; + height: 1em; + overflow: hidden; + position: absolute; + top: 0; + left: 0; + .ui-loading-loop { + box-sizing: border-box; + width: 1em; + height: 1em; + color: var(--ui-TC-3); + border: 4rpx solid currentColor; + border-radius: 50%; + border-left-color: transparent; + border-bottom-color: transparent; + position: absolute; + top: 0; + left: 0; + background: none; + margin: 0; + &.default { + animation: loop_spin 2s cubic-bezier(0.4, 0, 0.22, 1) infinite; + } + &.color { + animation: loop_spin_color 2s cubic-bezier(0.4, 0, 0.22, 1) infinite; + } + } + } + } + + &.loop { + position: relative; + .ui-loading { + position: relative; + z-index: 1; + width: 6em; + height: 6em; + margin: 0; + .ui-loading-cut { + width: 3em; + height: 6em; + .ui-loading-loop { + width: 6em; + height: 6em; + } + } + } + + .ui-loading-content { + position: absolute; + border-radius: 50%; + width: 6em; + height: 6em; + left: 0; + top: 0; + border: 4rpx solid var(--ui-BG-4); + .ui-loading-image,.ui-loading-icon { + width: 80% !important; + height: 80% !important; + margin: 10%; + display: flex; + align-items: center; + justify-content: center; + } + } + } +} + +@keyframes loading_spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +@keyframes loop_spin { + 0% { + transform: rotate(0); + } + 50% { + transform: rotate(-140deg); + } + 100% { + transform: rotate(0); + } +} +@keyframes loop_spin_color { + 0% { + transform: rotate(0); + color: $green; + } + 50% { + transform: rotate(-140deg); + color: $blue; + } + 100% { + transform: rotate(0); + color: $red; + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.wxml b/miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.wxml new file mode 100644 index 00000000..d0b67348 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-loading/ui-loading.wxml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.js b/miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.js new file mode 100644 index 00000000..4cb73b6b --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.js @@ -0,0 +1,36 @@ +Component({ + options: { + addGlobalClass: true, + multipleSlots: true + }, + properties: { + ui: { + type: String, + value: '' + }, + title: { + type: String, + value: '' + }, + icon: { + type: String, + value: '' + }, + arrow: { + type: Boolean, + optionalTypes: String, + value: false + }, + isIcon: { + type: Boolean, + value: false + }, + isAction: { + type: Boolean, + value: false + } + }, + methods: { + + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.json b/miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.scss b/miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.scss new file mode 100644 index 00000000..e69de29b diff --git a/miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.wxml b/miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.wxml new file mode 100644 index 00000000..1f7607e0 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-menu-item/ui-menu-item.wxml @@ -0,0 +1,19 @@ + + + + + + + + + + + {{title}} + + + + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.js b/miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.js new file mode 100644 index 00000000..25b4a90f --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.js @@ -0,0 +1,39 @@ +Component({ + options: { + addGlobalClass: true, + //multipleSlots: true + }, + properties: { + ui:{ + type: String, + value: '' + }, + bg: { + type: String, + value: 'ui-BG' + }, + border: { + type: Boolean, + optionalTypes: String, + value: false + }, + smBorder: { + type: Boolean, + optionalTypes: String, + value: false + }, + shadow: { + type: Boolean, + optionalTypes: String, + value: false + }, + radius: { + type: Boolean, + optionalTypes: String, + value: false + }, + }, + methods: { + + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.json b/miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.scss b/miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.scss new file mode 100644 index 00000000..e69de29b diff --git a/miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.wxml b/miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.wxml new file mode 100644 index 00000000..86a38b17 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-menu/ui-menu.wxml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.js b/miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.js new file mode 100644 index 00000000..3012ca47 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.js @@ -0,0 +1,170 @@ +Component({ + data: { + touch: false, + showKey: false + }, + options: { + addGlobalClass: true, + multipleSlots: true + }, + properties: { + show: { + type: Boolean, + value: false + }, + noNav: { + type: Boolean, + value: false + }, + target: { + type: String, + value: '' + }, + ui: { + type: String, + value: '' + }, + title: { + type: String, + value: '' + }, + content: { + type: String, + value: '' + }, + iconCancel: { + type: Boolean, + optionalTypes: String, + value: false + }, + showCancel: { + type: Boolean, + optionalTypes: String, + value: true + }, + option: { + type: Boolean, + optionalTypes: String, + value: true + }, + cancelText: { + type: String, + value: '取消' + }, + confirmText: { + type: String, + value: '确定' + }, + name: { + type: String, + value: '' + }, + align: { + type: String, + value: '' + }, + dialog: { + type: String, + value: '' + }, + tpl: { + type: String, + value: 'default' + }, + transparent: { + type: Boolean, + optionalTypes: String, + value: false + }, + mask: { + type: Boolean, + optionalTypes: String, + value: true + }, + duration: { + type: Number, + value: 0 + }, + top: { + type: Number, + value: 0 + } + }, + lifetimes: { + created() { + //this.opacityStatus(); + + }, + attached() { + /*this.setData({ + isFristPage: app.cu_tools.sys_isFirstPage() + });*/ + }, + ready() { + + }, + }, + observers: { + show(res) { + if (res) { + this.setData({ + showKey : true + }) + if (this.data.duration != 0) { + setTimeout(() => { + this.hide(); + }, this.data.duration); + } + setTimeout(() => { + this.setData({ + touch: true, + }) + }, 500); + }else{ + this.setData({ + showKey : false + }) + } + }, + }, + methods: { + hide() { + if (this.data.touch) { + this.setData({ + showKey : false + }) + this.closeModal() + } + }, + _cancel() { + this.hide(); + if(typeof this.successBack == 'function') this.successBack( { 'cancel': true,'confirm': false}) + this.triggerEvent("success", { 'cancel': true,'confirm': false }); + }, + _confirm() { + this.hide(); + if(typeof this.successBack == 'function') this.successBack( { 'confirm': true ,'cancel': false}) + this.triggerEvent("success", { 'confirm': true ,'cancel': false}); + }, + _catchTap() { + //this.hide(); + } + /*opacityStatus() { + let top = this.data.scrollTop; + let val = top > this.data.sys_navBar ? 1 : top * 0.01; + this.setData({ + opacityVal: val + }) + }, + _navBack() { + if (this.stopBack) { + this.triggerEvent("navback"); + } else { + app.cu_tools._backPage(); + } + }, + _navHome() { + app.cu_tools._toHome(); + },*/ + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.json b/miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.json new file mode 100644 index 00000000..ee36a822 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "ui-title": "../ui-title/ui-title" + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.scss b/miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.scss new file mode 100644 index 00000000..5542dbc3 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.scss @@ -0,0 +1,142 @@ +.ui-modal { + display: flex; + align-items: center; + justify-content: center; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 880; + opacity: 0; + outline: 0; + text-align: center; + transform: scale(1); + backface-visibility: hidden; + perspective: 2000rpx; + transition: 0.3s; + pointer-events: none; + .ui-dialog { + position: relative; + display: inline-block; + vertical-align: middle; + margin-left: auto; + margin-right: auto; + width: 680rpx; + max-width: 100%; + background-color: var(--ui-BG); + border-radius: 10rpx; + overflow: hidden; + text-align: left; + color: var(--ui-TC); + .ui-modal-title { + // padding-top: 20rpx; + } + .ui-modal-content { + padding: 10rpx 50rpx 50rpx; + font-size: 32rpx; + color: var(--ui-TC-2); + } + .ui-modal-content:first-child { + padding: 50rpx; + color: var(--ui-TC); + + } + .ui-modal-option { + display: flex; + padding: 15rpx 0; + justify-content: center; + .ui-modal-btn { + flex: 1; + padding: 15rpx 0; + text-align: center; + } + } + &.bg-none .ui-modal-option { + background: transparent; + color: #FFFFFF; + .ui-modal-btn{ + border: 1px solid #FFFFFF; + border-radius: 500px; + margin: 0 40rpx; + color: #FFFFFF !important; + } + } + } + + &.show { + opacity: 1; + transform: scale(1); + overflow-x: hidden; + overflow-y: auto; + pointer-events: auto; + } + &.show.bg-none { + pointer-events: none; + .ui-dialog { + pointer-events: auto; + } + } + + &.bottom { + margin-bottom: -1000rpx; + &::after { + vertical-align: bottom; + } + .ui-dialog { + align-self: flex-end; + width: 100%; + border-radius: 0; + padding-bottom: calc(env(safe-area-inset-bottom) / 4 * 3); + } + &.show { + margin-bottom: 0; + } + } + &.top { + margin-top: -1000rpx; + &::after { + vertical-align: top; + } + .ui-dialog { + align-self: flex-start; + width: 100%; + border-radius: 0; + } + &.show { + margin-top: 0; + } + } + + &.left, + &.right { + transform: scale(1); + display: flex; + } + &.right { + justify-content: flex-end; + } + &.left .ui-dialog, + &.right .ui-dialog { + height: 100%; + min-width: 200rpx; + border-radius: 0; + margin: initial; + transition: 0.3s; + width: auto; + padding-bottom: calc(env(safe-area-inset-bottom) / 4 * 3); + } + + &.left .ui-dialog { + transform: translateX(-100%); + } + + &.right .ui-dialog { + transform: translateX(100%); + } + + &.left.show .ui-dialog, + &.right.show .ui-dialog { + transform: translateX(0%); + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.wxml b/miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.wxml new file mode 100644 index 00000000..402d9421 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-modal/ui-modal.wxml @@ -0,0 +1,20 @@ + + + + + + + + {{ content }} + + {{ cancelText }} + {{ confirmText }} + + + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.js b/miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.js new file mode 100644 index 00000000..beb6e847 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.js @@ -0,0 +1,116 @@ +Component({ + data: { + statusCur: '', + capsuleStyle: {}, + capsuleBack: {}, + opacityVal: 0, + isFirstPage: true + }, + options: { + addGlobalClass: true, + multipleSlots: true + }, + properties: { + back: { + //是否返回上一页 + type: Boolean, + value: true + }, + backtext: { + //返回文本 + type: String, + value: '' + }, + ui: { + type: String, + value: '' + }, + bg: { + type: String, + value: 'bg-blur' + }, + status: { + //状态栏颜色 可以选择light dark/其他字符串视为黑色 + type: String, + value: '' + }, + opacity: { + //是否开启滑动渐变 + type: Boolean, + value: false + }, + opacityChange: { + //开启滑动渐变后 文本样式是否翻转 + type: Boolean, + value: false + }, + opacityBg: { + //开启滑动渐变后 返回按钮是否添加背景 + type: Boolean, + value: false + }, + noFixed: { + //是否浮动 + type: Boolean, + value: false + }, + capsule: { + //是否开启胶囊返回 + type: Boolean, + value: false + }, + stopBack: { + type: Boolean, + value: false + }, + placeholder: { + type: Boolean, + value: true + }, + isSlot: { + type: Boolean, + value: false + }, + isCenter: { + type: Boolean, + value: false + }, + isRight: { + type: Boolean, + value: false + }, + scrollTop: { + type: Number, + value: 0 + }, + }, + lifetimes: { + ready() { + const page = this.sys_isFirstPage(); + this.setData({isFirstPage: page}); + this.opacityStatus(); + }, + }, + observers: { + 'scrollTop'() { + this.opacityStatus(); + }, + }, + methods: { + opacityStatus() { + let {scrollTop, sys_navBar} = this.data; + let val = scrollTop > sys_navBar ? 1 : scrollTop * 0.01; + this.setData({opacityVal: val}) + }, + _navBack() { + if (this.data.stopBack) { + this.triggerEvent("navBack"); + } else { + this._backPage(); + } + }, + _navHome() { + this._toHome(); + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.json b/miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.json new file mode 100644 index 00000000..15bd0943 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "ui-fixed": "../ui-fixed/ui-fixed" + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.scss b/miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.scss new file mode 100644 index 00000000..d7d9842b --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.scss @@ -0,0 +1,144 @@ +.ui-navbar-box { + background-color: transparent; + width: 100%; + .ui-bar { + position: relative; + z-index: 2; + white-space: nowrap; + display: flex; + align-items: center; + justify-content: space-between; + .left { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + flex: 1; + .back { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + .back-icon { + display: flex; + align-items: center; + justify-content: center; + width: 56rpx; + height: 56rpx; + margin: 0 10rpx; + &.opacityIcon { + position: relative; + border-radius: 50%; + background-color: rgba(127, 127, 127, 0.5); + &::after { + content: ''; + display: block; + position: absolute; + height: 200%; + width: 200%; + left: 0; + top: 0; + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + opacity: 0.1; + border: 1px solid currentColor; + pointer-events: none; + } + &::before { + transform: scale(0.9); + } + } + } + } + .capsule { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + border-radius: 100px; + &.dark { + background-color: rgba(255, 255, 255, 0.5); + } + &.light { + background-color: rgba(0, 0, 0, 0.15); + } + &::after { + content: ''; + display: block; + position: absolute; + height: 60%; + width: 1px; + left: 50%; + top: 20%; + background-color: currentColor; + opacity: 0.1; + pointer-events: none; + } + &::before { + content: ''; + display: block; + position: absolute; + height: 200%; + width: 200%; + left: 0; + top: 0; + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + opacity: 0.1; + border: 1px solid currentColor; + pointer-events: none; + } + .capsule-back, + .capsule-home { + display: flex; + align-items: center; + justify-content: center; + flex: 1; + } + &.isFirstPage { + .capsule-back, + &::after { + display: none; + } + } + } + } + .right { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + flex: 1; + .right-content { + position: relative; + display: flex; + align-items: center; + flex-direction: row-reverse; + flex: 1; + } + } + .center { + display: flex; + align-items: center; + justify-content: center; + text-overflow: ellipsis; + text-align: center; + flex: 2; + .image { + display: block; + height: 36px; + max-width: calc(100vw - 200px); + } + } + } + .ui-bar-bg { + position: absolute; + width: 100%; + height: 100%; + top: 0; + z-index: 1; + pointer-events: none; + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.wxml b/miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.wxml new file mode 100644 index 00000000..4df2bea8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-navbar/ui-navbar.wxml @@ -0,0 +1,38 @@ + + + + + + + + + + + {{ backtext }} + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.js b/miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.js new file mode 100644 index 00000000..a56674be --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.js @@ -0,0 +1,191 @@ +let button = {} +Component({ + name : 'UiPopover', + data: { + popover: false, + BoxStyle: '', + contentStyle: '', + arrowStyle: '', + content: {}, + _uid: 0, + sys_layer: 0 + }, + options: { + addGlobalClass: true, + multipleSlots: true + }, + properties: { + ui: { + type: String, + value: '' + }, + tips: { + type: String, + value: '' + }, + bg: { + type: String, + value: 'ui-BG' + }, + mask: { + type: Boolean, + value: false + }, + show: { + type: Boolean, + optionalTypes: String, + value: 'change' + }, + hover: { + type: Boolean, + value: false + }, + index: { + type: Number, + value: 0 + }, + time: { + type: Number, + value: 0 + }, + bottom: { + type: Boolean, + value: false + }, + isChange: { + type: Boolean, + value: false + }, + zIndex: { + type: Number, + optionalTypes: String, + value: 0 + }, + }, + + lifetimes: { + attached() { + this.setData({ + _uid: this.__wxWebviewId__ + }) + wx.nextTick(() => { + this._computedQuery(wx.getSystemInfoSync().windowWidth, wx.getSystemInfoSync().windowHeight); + }) + }, + }, + observers: { + 'popover'(val) { + this._computedQuery(wx.getSystemInfoSync().windowWidth, wx.getSystemInfoSync().windowHeight); + if (val) { + if (this.data.tips != '' || this.data.time > 0) { + setTimeout( + () => { + this.setData({ + popover: false + }) + }, + this.data.time == 0 ? 3000 : this.data.time + ); + } + this.setData({ + zIndex : this.data.zIndex + 600 + }) + }else{ + this.setData({ + zIndex : this.data.zIndex + 600 + }) + } + // this.$emit('update:show', val); + }, + 'show'(val) { + this.setData({ + popover : val + }) + } + }, + methods: { + closePopover(){ + this.setData({ + popover : false + }) + }, + _computedQuery(w, h) { + wx.createSelectorQuery() + .in(this) + .select('#popover-button-' + this.data._uid) + .boundingClientRect(res => { + if (res != null) { + button = res; + } else { + console.log('popover-button-' + this.data._uid + ' data error'); + } + }) + .select('#popover-content-' + this.data._uid) + .boundingClientRect( + content => { + if (content != null) { + this.setData({ + content: content + }) + let contentStyle = ''; + let arrowStyle = ''; + this.setData({ + BoxStyle: `width:${w}px; left:-${button.left}px;z-index: ${this.data.zIndex + 102}` + }) + // 判断气泡在上面还是下面 + if (button.bottom < h / 2 || this.data.bottom) { + // '下'; + contentStyle = contentStyle + `top:10px;`; + arrowStyle = arrowStyle + `top:${-5}px;`; + } else { + // '上'; + contentStyle = contentStyle + `bottom:${button.height + 10}px;`; + arrowStyle = arrowStyle + `bottom:${-5}px;`; + } + + // 判断气泡箭头在左中右 + let btnCenter = button.right - button.width / 2; + let contentCenter = content.right - content.width / 2; + if ((btnCenter < w / 3 && content.width > btnCenter) || (content.width > w / 2 && + btnCenter < w / 2)) { + // '左'; + contentStyle = contentStyle + `left:10px;`; + arrowStyle = arrowStyle + `left:${btnCenter - 17}px;`; + } else if ((btnCenter > (w / 6) * 4 && content.width > w - btnCenter) || (content.width > + w / 2 && btnCenter > w / 2)) { + // '右'; + contentStyle = contentStyle + `right:10px;`; + arrowStyle = arrowStyle + `right:${w - btnCenter - 17}px;`; + } else { + // '中'; + contentStyle = contentStyle + + `left:${button.left - content.width / 2 + button.width / 2}px;`; + arrowStyle = arrowStyle + `left:0px;right:0px;margin:auto;`; + } + this.setData({ + arrowStyle: arrowStyle + `z-index:${this.data.zIndex + 1};`, + contentStyle: contentStyle + `z-index:${this.data.zIndex + 2};` + }) + } else { + console.log('popover-content-' + this.data._uid + ' data error'); + } + } + ) + .exec() + }, + popoverClick() { + if (this.data.isChange) { + return false + } + if (this.data.tips == '') { + this.setData({ + popover: !this.data.popover + }) + } else { + this.setData({ + popover: true + }) + } + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.json b/miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.scss b/miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.scss new file mode 100644 index 00000000..2ca04e07 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.scss @@ -0,0 +1,82 @@ +.ui-popover { + position: relative; + display: inline-block; + + .ui-popover-button { + position: relative; + } + + .ui-popover-box { + position: absolute; + + .ui-popover-content-box { + position: absolute; + + .ui-popover-content { + position: relative; + } + + .ui-popover-arrow { + position: absolute; + height: 15px; + width: 15px; + border-radius: 2px; + transform: rotate(45deg); + } + + &::after { + content: ''; + width: 100%; + height: 110%; + position: absolute; + background-color: #000000; + top: 5%; + left: 0; + filter: blur(15px); + opacity: 0.15; + } + } + } + + .ui-popover-mask { + position: fixed; + width: 100%; + height: 100%; + top: 0; + left: 0; + } + + &.show { + .ui-popover-button {} + + .ui-popover-content-box { + opacity: 1; + pointer-events: auto; + } + + .ui-popover-arrow { + display: block; + } + + .ui-popover-mask { + display: block; + } + } + + &.hide { + .ui-popover-button {} + + .ui-popover-content-box { + opacity: 0; + pointer-events: none; + } + + .ui-popover-arrow { + display: none; + } + + .ui-popover-mask { + display: none; + } + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.wxml b/miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.wxml new file mode 100644 index 00000000..9be03f77 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-popover/ui-popover.wxml @@ -0,0 +1,19 @@ + + + + + + + + {{ tips }} + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.js b/miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.js new file mode 100644 index 00000000..e26dae04 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.js @@ -0,0 +1,65 @@ +Component({ + options: { + addGlobalClass: true + }, + properties: { + ui: { + type: String, + value: '' + }, + progress: { + type: Number, + optionalTypes: String, + value: 0 + }, + progressArray: { + type: Array, + value: [] + }, + bg: { + type: String, + optionalTypes: Array, + value: 'ui-BG-Main' + }, + bgArray: { + type: Array, + value: ['ui-BG-Main', 'ui-BG-Main-1', 'ui-BG-Main-2', 'ui-BG-Main-3'] + }, + active: { + type: Boolean, + value: false + }, + striped: { + type: Boolean, + value: false + }, + radius: { + type: Boolean, + value: true + }, + round: { + type: Boolean, + value: false + }, + border: { + type: Boolean, + value: false + }, + lg: { + type: Boolean, + value: false + }, + sm: { + type: Boolean, + value: false + }, + shadow: { + type: String, + optionalTypes: Boolean, + value: '' + } + }, + methods: { + + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.json b/miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.json new file mode 100644 index 00000000..15bd0943 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "ui-fixed": "../ui-fixed/ui-fixed" + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.scss b/miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.scss new file mode 100644 index 00000000..c54f4e28 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.scss @@ -0,0 +1,84 @@ +.ui-progress { + height: 1em; + margin: 0.14286em 0; + background-color: var(--ui-BG-4); + display: inline-flex; + align-items: center; + width: 100%; + font-size: 32rpx; + + &.lg { + font-size: 40rpx; + } + + &.sm { + font-size: 24rpx; + height: 0.7em; + margin: 0.5em 0; + } + + .ui-progress-bar { + width: 0; + height: 100%; + align-items: center; + display: flex; + justify-items: flex-end; + justify-content: space-around; + font-size: 20rpx; + color: var(--white); + transition: width 0.6s ease; + position: relative; + z-index: 1; + + &:first-child { + border-top-left-radius: inherit; + border-bottom-left-radius: inherit; + } + + &:last-child { + border-top-right-radius: inherit; + border-bottom-right-radius: inherit; + } + } + + .ui-progress-text { + align-items: center; + display: flex; + font-size: 0.75em; + position: relative; + z-index: 2; + text-indent: 10rpx; + flex: 1; + justify-content: center; + } + + &.text-progress { + padding-right: 60rpx; + } + + &.striped .ui-progress-bar { + background-image: linear-gradient(45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent); + background-size: 72rpx 72rpx; + } + + &.active .view { + animation: progress-stripes 2s linear infinite; + } +} + +@keyframes progress-stripes { + from { + background-position: 72rpx 0; + } + + to { + background-position: 0 0; + } +} diff --git a/miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.wxml b/miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.wxml new file mode 100644 index 00000000..619a2f26 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-progress/ui-progress.wxml @@ -0,0 +1,10 @@ + + + + {{ item }}% + + + + {{ progress }}% + + diff --git a/miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.js b/miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.js new file mode 100644 index 00000000..a70147c6 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.js @@ -0,0 +1,74 @@ +Component({ + relations: { + '../ui-radio/ui-radio': { + type: 'child', // 关联的目标节点应为子节点 + linked(target) { + // 每次有子组件被插入时执行,target是该节点实例对象,触发在该节点attached生命周期之后 + }, + linkChanged(target) { + // 每次有子组件被移动后执行,target是该节点实例对象,触发在该节点moved生命周期之后 + }, + unlinked(target) { + // 每次有子组件被移除时执行,target是该节点实例对象,触发在该节点detached生命周期之后 + } + } + }, + options: { + addGlobalClass: true + }, + properties: { + ui: { + type: String, + value: '' + }, + value: { + type: String, + optionalTypes: [Number, Boolean], + value: '' + }, + label: { + type: String, + optionalTypes: [Number, Boolean], + value: '' + }, + disabled: { + type: Boolean, + value: false + }, + bg: { + type: String, + value: 'ui-BG-Main' + }, + clearable: { + type: Boolean, + value: false + } + }, + lifetimes: { + ready() { + //this._deepSetValue() + }, + }, + observers: { + 'value'(res) { + this._deepSetValue() + } + }, + methods: { + _deepSetValue() { + let _this = this; + let nodes = this.getRelationNodes('../ui-radio/ui-radio'); + if (Array.isArray(nodes)) { + nodes.forEach((child) => { + if (typeof child._setValue == 'function') { + child._setValue(_this.data.value) + } + }); + } + }, + _onRadioChange(label) { + this.triggerEvent('input', label); + this.triggerEvent('change', label); + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.json b/miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.scss b/miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.scss new file mode 100644 index 00000000..e69de29b diff --git a/miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.wxml b/miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.wxml new file mode 100644 index 00000000..3cc4bf17 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-radio-group/ui-radio-group.wxml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.js b/miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.js new file mode 100644 index 00000000..e0531230 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.js @@ -0,0 +1,138 @@ +Component({ + relations: { + '../ui-radio-group/ui-radio-group': { + type: 'parent' + } + }, + data: { + currentValue: null, + isGroup: null, + isDisabled: null, + isClearable: null, + isChecked: null, + hasUiCard: null + }, + options: { + addGlobalClass: true + }, + properties: { + ui: { + type: String, + value: '' + }, + value: { + type: String, + optionalTypes: [Number, Boolean], + value: '' + }, + label: { + type: String, + optionalTypes: [Number, Boolean], + value: '' + }, + disabled: { + type: Boolean, + value: false + }, + bg: { + type: String, + value: 'ui-BG-Main' + }, + unbg: { + type: String, + value: 'borderss' + }, + src: { + type: String, + value: '' + }, + clearable: { + type: Boolean, + value: false + }, + none: { + type: Boolean, + value: false + } + }, + lifetimes: { + ready() { + let parent = this._nodesSetValue(); + if (parent) { + this._setValue(parent.data.value); + } + }, + }, + observers: { + 'value'(val) { + this._setValue(val); + } + }, + methods: { + _nodesSetValue() { + let radioNodes = this.getRelationNodes('../ui-radio-group/ui-radio-group'); + if (Array.isArray(radioNodes) && radioNodes.length > 0) { + return radioNodes[0]; + } else { + return false; + } + }, + isComputed() { + let {disabled, clearable, label, currentValue, ui} = this.data; + let parent = this._nodesSetValue(); + let isGroup = !!parent; + //isDisabled + let isDisabled = isGroup?parent.data.disabled:disabled; + //isClearable + let isClearable = isGroup?parent.data.clearable:clearable; + //isChecked + let isChecked = (isGroup && parent.data.value == label) || (!isGroup && currentValue == label); + //_has + let hasUiCard = ui.indexOf('card') !== -1; + //设置数据 + this.setData({ + isGroup: isGroup, + isDisabled: isDisabled, + isClearable: isClearable, + isChecked: isChecked, + hasUiCard: hasUiCard + }); + }, + _onRadioClick() { + let {isGroup, isDisabled, label} = this.data; + if (isGroup && !isDisabled) { + this._choose(); + } + if (!isGroup && !isDisabled) { + this.triggerEvent('input', label); + this.triggerEvent('change', label); + } + }, + _choose() { + let {currentValue, label, isGroup, isClearable} = this.data; + if (currentValue != label) { + this.setData({currentValue: label}); + this.triggerEvent('input', label); + this.triggerEvent('change', label); + if (isGroup) { + let parent = this._nodesSetValue(); + parent._onRadioChange(label); + } + } else if (isClearable) { + this.setData({currentValue: null}); + this.triggerEvent('input', null); + this.triggerEvent('change', null); + if (isGroup) { + let parent = this._nodesSetValue(); + parent._onRadioChange(null); + } + } + }, + _setValue(groupValue) { + this.setData({ + currentValue: groupValue + }); + this.isComputed(); + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.json b/miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.scss b/miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.scss new file mode 100644 index 00000000..eed6a866 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.scss @@ -0,0 +1,169 @@ +@import '../../scss/var'; + +.ui-radio { + display: inline-flex; + align-items: center; + margin: 0 1em 0 0.14286em; + + .ui-radio-input { + margin: 0 0.5em 0 0.14286em; + display: inline-block; + width: 18px; + height: 18px; + vertical-align: middle; + &::before { + content: ''; + position: absolute; + width: 0%; + height: 0%; + background-color: currentColor; + border-radius: 50%; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + } + } + + .ui-radio-input.cur { + position: relative; + &::before { + width: 10px; + height: 10px; + transition: $transition-base; + } + } + &.check { + .ui-radio-input { + &::before { + font-family: 'colorui'; + content: '\e69f'; + width: 18px; + height: 18px; + font-size: 0%; + background-color: transparent; + } + } + .ui-radio-input.cur { + &::before { + width: 18px; + height: 18px; + font-size: 1em; + transform: scale(0.8); + text-align: center; + line-height: 18px; + } + } + } + &.line { + .ui-radio-input.cur { + &::before { + width: calc(100% - 2px); + height: calc(100% - 2px); + background-color: var(--ui-BG); + } + &::after { + content: ''; + position: absolute; + width: 10px; + height: 10px; + background-color: inherit; + border-radius: 50%; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + } + } + } + &.lg { + .ui-radio-input { + font-size: 18px; + } + } + &.img { + position: relative; + margin: 0 0.28572em 0 0.28572em; + .ui-radio-input { + width: 42px; + height: 42px; + border-radius: 0px; + position: absolute; + margin: 0; + left: -1px; + top: -1px; + // opacity: 0; + &::before { + width: 40px; + height: 40px; + border-radius: $radius; + } + &.cur { + width: 44px; + height: 44px; + top: -2px; + left: -2px; + border-radius: 7px !important; + opacity: 0.8; + } + } + .ui-radio-img { + position: relative; + width: 40px; + height: 40px; + display: block; + overflow: hidden; + border-radius: 10px; + } + } + &.card { + display: flex; + margin: 30rpx; + padding: 30rpx; + position: relative; + border-radius: $radius !important; + flex-direction: row-reverse; + justify-content: space-between; + .ui-radio-bg { + content: ''; + position: absolute; + width: 200%; + height: 200%; + transform: scale(0.5); + border-radius: #{$radius * 2} !important; + z-index: 0; + left: 0; + top: 0; + transform-origin: 0 0; + background-color: var(--ui-BG); + } + .ui-radio-input { + position: relative; + z-index: 1; + margin-right: 0; + } + .ui-radio-bg::after { + content: ''; + position: absolute; + width: calc(200% - 16px); + height: calc(200% - 16px); + transform: scale(0.5); + transform-origin: 0 0; + // border: 1px solid inherit; + background-color: var(--ui-BG) !important; + left: 4px; + top: 4px; + border-radius: #{$radius * 2 + 8} !important; + z-index: 0; + } + .ui-radio-content { + position: relative; + z-index: 1; + display: flex; + align-items: center; + flex: 1; + } + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.wxml b/miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.wxml new file mode 100644 index 00000000..d618c508 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-radio/ui-radio.wxml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.js b/miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.js new file mode 100644 index 00000000..66c5f34a --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.js @@ -0,0 +1,43 @@ +Component({ + options: { + addGlobalClass: true + }, + properties: { + direction: { + type: String, + value: 'row' + }, + ui: { + type: String, + value: '' + }, + arrow: { + type: Boolean, + value: false + }, + number: { + type: Boolean, + value: false + }, + column: { + type: Boolean, + value: false + }, + cur: { + type: Number, + value: 0 + }, + curStyle: { + type: String, + value: 'ui-TC-Main' + }, + err: { + type: Number, + value: 0 + }, + info: { + type: Array, + value: [] + } + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.json b/miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.scss b/miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.scss new file mode 100644 index 00000000..e69de29b diff --git a/miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.wxml b/miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.wxml new file mode 100644 index 00000000..ac1c2eb8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-steps/ui-steps.wxml @@ -0,0 +1,10 @@ + + + + + + {{ item.title }} + {{ item.desc }} + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.js b/miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.js new file mode 100644 index 00000000..349744de --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.js @@ -0,0 +1,73 @@ +Component({ + data: { + cur: 0, + }, + options: { + addGlobalClass: true + }, + properties: { + circular: { + type: Boolean, + value: true + }, + autoplay: { + type: Boolean, + value: true + }, + interval: { + type: Number, + value: 3000 + }, + duration: { + type: Number, + value: 800 + }, + info: { + type: Array, + value: [] + }, + swiperCss: { + type: String, + value: 'bg-none' + }, + mode: { + type: String, + value: 'default' + }, + dotStyle: { + type: String, + value: 'default' + }, + dotCur: { + type: String, + value: 'bg-black' + }, + height: { + type: String, + value: '272rpx' + }, + imgHeight: { + type: String, + value: '272rpx' + }, + imgName: { + type: String, + value: 'img' + } + }, + methods: { + swiperChange(e) { + this.setData({cur: e.detail.current}) + this.triggerEvent("change",e.detail.current); + }, + toTap(e) { + let item = e.currentTarget.dataset.item; + //如果类型、url为空,或者类型为eve时,以事件返回。 + if (!item.type || !item.url || item.type === 'eve') { + this.triggerEvent("uiTap", item); + } else { + this._toPath(item.url,item.type); + } + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.json b/miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.scss b/miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.scss new file mode 100644 index 00000000..606587e2 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.scss @@ -0,0 +1,201 @@ +.ui-swiper { + position: relative; + .ui-swiper-main { + width: 100%; + height: 100%; + } + .ui-swiper-main .image { + width: 100%; + height: 100%; + } + .ui-swiper-dot { + position: absolute; + width: 100%; + bottom: 20rpx; + height: 30rpx; + display: flex; + align-items: center; + justify-content: center; + &.default .view { + display: inline-flex; + border-radius: 50rpx; + width: 6px; + height: 6px; + border: 2px solid transparent; + margin: 0 10rpx; + opacity: 0.3; + position: relative; + justify-content: center; + align-items: center; + &.cur { + width: 8px; + height: 8px; + opacity: 1; + border: 0px solid transparent; + } + &.cur::after { + content: ''; + border-radius: 50rpx; + width: 4px; + height: 4px; + background-color: #fff; + } + } + &.long .view { + display: inline-block; + border-radius: 100rpx; + width: 6px; + height: 6px; + margin: 0 10rpx; + opacity: 0.3; + position: relative; + &.cur { + width: 24rpx; + opacity: 1; + } + &.cur::after { + } + } + &.line { + bottom: 20rpx; + .view { + display: inline-block; + width: 30px; + height: 3px; + opacity: 0.3; + position: relative; + &.cur { + opacity: 1; + } + } + } + &.tag { + justify-content: flex-end; + position: absolute; + bottom: 20rpx; + right: 20rpx; + } + } + &.card { + .swiper-item { + width: 610rpx !important; + left: 70rpx; + box-sizing: border-box; + padding: 20rpx 0rpx 60rpx; + overflow: initial; + } + .swiper-item .ui-swiper-main { + width: 100%; + display: block; + height: 100%; + border-radius: 10rpx; + transform: scale(0.9); + transition: all 0.2s ease-in 0s; + position: relative; + background-size: cover; + .image { + height: 100%; + border-radius: inherit; + } + } + .swiper-item .ui-swiper-main::before { + content: ''; + display: block; + background: inherit; + filter: blur(5px); + position: absolute; + width: 100%; + height: 100%; + top: 10rpx; + left: 10rpx; + z-index: -1; + opacity: 0.3; + transform-origin: 0 0; + border-radius: inherit; + transform: scale(1, 1); + } + .swiper-item.cur .ui-swiper-main { + transform: scale(1); + transition: all 0.2s ease-in 0s; + } + .ui-swiper-dot.tag { + position: absolute; + bottom: 85rpx; + right: 75rpx; + } + } + &.hotelCard { + .swiper-item { + width: 650rpx !important; + left: 30rpx; + box-sizing: border-box; + padding: 0rpx 0rpx 50rpx; + overflow: initial; + } + .swiper-item .ui-swiper-main { + width: 100%; + display: block; + height: 100%; + border-radius: 10rpx; + transform: scale(0.9); + opacity: 0.8; + transition: all 0.2s ease-in 0s; + position: relative; + background-size: cover; + .image { + width: 100%; + height: 400rpx; + border-radius: 10rpx 10rpx 0 0; + } + } + .swiper-item .ui-swiper-main::before { + content: ''; + display: block; + background: inherit; + filter: blur(5px); + position: absolute; + width: 100%; + height: 100%; + top: 10rpx; + left: 10rpx; + z-index: -1; + opacity: 0.3; + transform-origin: 0 0; + border-radius: inherit; + transform: scale(1, 1); + } + .swiper-item.cur .ui-swiper-main { + transform: scale(1); + transition: all 0.2s ease-in 0s; + opacity: 1; + } + .ui-swiper-dot { + display: none; + } + } + &.hotelDetail { + .swiper-item { + width: 690rpx !important; + left: 30rpx; + box-sizing: border-box; + padding: 20rpx 0rpx; + overflow: initial; + } + .swiper-item .ui-swiper-main { + width: 100%; + display: block; + height: 100%; + transform: scale(0.96); + transition: all 0.2s ease-in 0s; + position: relative; + background-size: cover; + .image { + height: 100%; + } + } + .swiper-item.cur .ui-swiper-main { + transform: scale(0.96); + transition: all 0.2s ease-in 0s; + } + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.wxml b/miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.wxml new file mode 100644 index 00000000..cdb5b765 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-swiper/ui-swiper.wxml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + {{ cur + 1 }} / {{ info.length }} + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.js b/miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.js new file mode 100644 index 00000000..697718f5 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.js @@ -0,0 +1,64 @@ +Component({ + data: { + tempChecked: false + }, + options: { + addGlobalClass: true + }, + properties: { + ui: { + type: String, + value: '' + }, + bg: { + type: String, + value: 'ui-BG-Main' + }, + text: { + type: String, + value: '' + }, + checked: { + type: Boolean, + value: false + }, + size: { + type: String, + value: 'sm' + }, + disabled: { + type: Boolean, + value: false + } + }, + lifetimes: { + created() { + let checked = this.data.checked; + this.setData({ + tempChecked: checked + }); + }, + attached() { + + }, + ready() { + + }, + }, + observers: { + 'checked'(res) { + this.setData({ + tempChecked: res + }); + } + }, + methods: { + clickSwitch() { + let val = !this.data.tempChecked; + this.setData({ + tempChecked: val + }); + this.triggerEvent('change', val); + } + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.json b/miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.scss b/miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.scss new file mode 100644 index 00000000..6f1276a9 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.scss @@ -0,0 +1,43 @@ +.ui-switch { + display: inline-block; + cursor: pointer; + .ui-switch-wrapper { + display: inline-flex; + align-items: center; + vertical-align: middle; + } + .ui-switch-input { + appearance: none; + position: relative; + width: 47px; + height: 26px; + outline: 0; + border-radius: 16px; + box-sizing: border-box; + background-color: rgba(119,119,119,.3); + transition: background-color 0.1s, border 0.1s; + &:after { + content: ' '; + position: absolute; + top: 0; + left: 0; + border-radius: 200px; + transition: transform 0.3s; + width: 20px; + height: 20px; + margin: 3px; + background-color: #fff; + } + &.ui-switch-input-checked { + &:after { + transform: translateX(21px); + } + } + } + &.disabled { + cursor: not-allowed; + .ui-switch-input { + opacity: 0.7; + } + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.wxml b/miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.wxml new file mode 100644 index 00000000..8c80971b --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-switch/ui-switch.wxml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.js b/miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.js new file mode 100644 index 00000000..8b39e0d8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.js @@ -0,0 +1,141 @@ +Component({ + data: { + isLoading: false, + tabBarIndex: 0, + isFooter: false, + }, + options: { + addGlobalClass: true, + }, + properties: { + bg: { //背景颜色 + type: String, + value: 'ui-BG-2' + }, + ui: { //其他class + type: String, + value: '' + }, + img: { + type: String, + value: '' + }, + title: { + type: String, + value: '' + }, + navBg: { + type: String, + value: 'bg-blur' + }, + styles: { //样式 + type: String, + value: '' + }, + loading: { //是否加载 + type: String, + optionalTypes: Boolean, + value: 'auto' + }, + tabbar: { + type: Boolean, + value: false + }, + footer: { + type: Boolean, + value: '' + }, + footerText: { + type: String, + value: '每一份人情都值得礼记' + }, + loadingIcon: { + type: String, + value: '_icon-loading' + }, + }, + lifetimes: { + created() { + this.setLoading(); + }, + attached() { + let loading = this.data.loading; + this.setData({ + isLoading: loading + }); + }, + ready() { + this.setTabBar(); + this.setFooterShow(); + }, + }, + observers: { + 'tabbar'() { + this.setTabBar(); + }, + 'loading'(val) { + this.setData({ + isLoading: val + }) + this.setLoading(); + }, + 'footer'() { + this.setFooterShow(); + }, + }, + methods: { + setTabBar() { + let tabBar = this.data.tabbar; + if (tabBar) { + wx.hideTabBar(); + this._onPage(); + } + }, + setFooterShow() { + let footer = this.data.footer; + let cuFooter = this.data.$cuConfig.footer; + let isFooter = cuFooter; + if (footer === '') { + isFooter = cuFooter; + } else { + isFooter = footer; + } + this.setData({ + isFooter: isFooter + }) + }, + _onPage() { + let page = getCurrentPages(); + if (page.length > 0) { + let _this = this, + tabBar = this.data.$cuConfig.tabBar; + let url = page[page.length - 1].route + tabBar.map((item, index) => { + if (item.url === '/' + url) { + _this.setData({ + tabBarIndex: index + }) + } + }) + } else { + this.setData({ + tabBarIndex: 0 + }) + } + }, + setLoading() { + let _this = this, + loading = this.data.loading; + setTimeout(() => { + if (loading === 'auto') { + _this.setData({ + isLoading: false + }) + } + }, 800); + }, + modalSuccess() { + return this.data.$cuStore.$Modal + }, + }, +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.json b/miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.json new file mode 100644 index 00000000..deb8104e --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.json @@ -0,0 +1,10 @@ +{ + "component": true, + "usingComponents": { + "app-navbar": "../app-navbar/app-navbar", + "app-footer": "../app-footer/app-footer", + "ui-tabbar": "../ui-tabbar/ui-tabbar", + "ui-modal": "../ui-modal/ui-modal", + "ui-toast": "../ui-toast/ui-toast" + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.scss b/miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.scss new file mode 100644 index 00000000..84568929 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.scss @@ -0,0 +1,39 @@ +.ui-page { + position: relative; + color: var(--ui-TC); + background-color: var(--ui-BG-1) !important; + z-index: 2; + display: flex; + .page-body { + flex: 1; + min-height: 100vh; + position: relative; + z-index: 1; + overflow: hidden; + .page-body-main { + position: relative; + z-index: 1; + } + .page-img { + height: 177vw; + width: 100vw; + position: absolute; + top: 0; + left: 0; + z-index: 0; + } + } +} +.loading-body { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + z-index: 999; + // opacity: .98; +} diff --git a/miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.wxml b/miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.wxml new file mode 100644 index 00000000..5276d416 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-sys/ui-sys.wxml @@ -0,0 +1,17 @@ + + + + + + + + + + 加载中 + + + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.js b/miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.js new file mode 100644 index 00000000..357fe0d9 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.js @@ -0,0 +1,170 @@ +Component({ + data: { + _uid: '', + curValue: 0, + tabNodeList: [], + scrollLeft: 0, + markLeft: 0, + markWidth: 0, + content: { + width: 100 + }, + over: false, + }, + options: { + addGlobalClass: true, + multipleSlots: true + }, + properties: { + value: { + type: Number, + value: 0 + }, + ui: { + type: String, + value: '' + }, + bg: { + type: String, + value: 'ui-BG' + }, + tab: { + type: Array, + value: [] + }, + // line dot long + tpl: { + type: String, + value: 'line' + }, + mark: { + type: String, + value: '' + }, + align: { + type: String, + value: '' + }, + curColor: { + type: String, + value: 'ui-TC' + }, + scroll: { + type: Boolean, + value: false + }, + inline: { + type: Boolean, + value: false + } + }, + lifetimes: { + attached() { + let _uid = this.getRandom(8); + this.setData({_uid: _uid}) + }, + ready() { + this._computedQuery(); + }, + }, + observers: { + 'tab'() { + this._computedChildQuery(); + }, + 'value'(val) { + if (val === this.data.curValue) { + return false; + } else { + this._setCurValue(val); + } + }, + }, + methods: { + //生成随机字符串 + getRandom(num) { + let chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' + let maxPos = chars.length, value = ''; + for (let i = 0; i < num; i++) { + value += chars.charAt(Math.floor(Math.random() * maxPos)); + } + return value; + }, + _computedQuery() { + let _this = this, _uid = this.data._uid; + wx.createSelectorQuery().in(this).select('#ui-tab-' + _uid).boundingClientRect(data => { + if (data != null) { + if (data.left === 0 && data.right === 0) { + _this._computedQuery(); + } else { + _this.setData({content: data}) + _this._computedChildQuery(); + setTimeout(() => { + _this.setData({over: true}) + }, 300); + } + } + }).exec(); + }, + _computedChildQuery() { + let _this = this, {tab, _uid, tabNodeList, curValue} = this.data; + for (let i = 0; i < tab.length; i++) { + let item = '#ui-tab-item-' + _uid + '-' + i; + wx.createSelectorQuery().in(this).select(item).boundingClientRect(data => { + if (data != null) { + tabNodeList[i] = data; + _this.setData({ + tabNodeList: tabNodeList + }) + if (i === curValue) { + _this._computedMark(); + } + } + }).exec(); + } + }, + _setCurValue(value) { + let curValue = this.data.curValue; + if (value === curValue) { + return false; + } else { + this.setData({curValue: value}) + this._computedMark(); + } + }, + _click(e) { + let {index, item} = e.currentTarget.dataset; + this._setCurValue(index); + this.triggerEvent('input', index); + this.triggerEvent('change', { index: index, data: item }); + }, + _computedMark() { + let {tabNodeList, curValue, content} = this.data; + if (tabNodeList.length === 0) return; + let list = tabNodeList, cur = curValue; + let markLeft = list[cur].left - content.left; + let markWidth = list[cur].width; + this.setData({ + markLeft: markLeft, + markWidth: markWidth + }) + }, + _computedScroll() { + let {tabNodeList, curValue} = this.data; + if (curValue === 0 || curValue === tabNodeList.length - 1) { + return false; + } else { + let i = 0, left = 0, list = tabNodeList; + for (i in list) { + if (i === curValue && i !== 0) { + left = left - list[i - 1].width; + break; + } + left = left + list[i].width; + } + this.setData({ + scrollLeft: left + }) + } + } + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.json b/miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.scss b/miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.scss new file mode 100644 index 00000000..53215142 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.scss @@ -0,0 +1,203 @@ +@import '../../scss/var'; + +.ui-tab { + position: relative; + display: flex; + height: 4em; + align-items: center; + .ui-tab-item { + display: inline-flex; + align-items: center; + padding: 0 1em; + min-height: 1.5em; + line-height: 1.5em; + position: relative; + z-index: 1; + opacity: .6; + transition: opacity 0.3s; + .ui-tab-icon{ + margin: 0 .25em; + font-size: 120%; + } + &.cur { + opacity: 1; + } + &.btn{ + .ui-tab-text{ + transform: scale(.9); + transition: color 0.3s; + } + } + } + &.ui-tab-scrolls { + width: 100%; + .ui-tab-scroll-warp { + overflow: hidden; + height: inherit; + width: 100%; + .ui-tab-scroll { + position: relative; + display: block; + white-space: nowrap; + overflow: auto; + height: calc(4em + 17px); + padding-bottom: 17px; + line-height: 4em; + width: 100% !important; + .ui-tab-mark-warp { + height: 4em; + } + } + } + } + .ui-tab-mark-warp { + color: inherit; + position: absolute; + top: 0; + height: 100%; + z-index: 0; + &.over { + transition: 0.3s; + } + .ui-tab-mark { + color: var(--ui-BG-Main); + height: 100%; + &.ui-btn { + .text { + opacity: 0; + } + } + } + } + &.line { + .ui-tab-mark { + border-bottom: 2px solid currentColor; + } + } + &.topline { + .ui-tab-mark { + border-top: 2px solid currentColor; + } + } + &.dot { + .ui-tab-mark::after { + content: ''; + width: 0.5em; + height: 0.5em; + background-color: currentColor; + border-radius: 50%; + display: block; + position: absolute; + bottom: 0.3em; + left: 0; + right: 0; + margin: auto; + } + } + &.dot { + .ui-tab-mark::after { + content: ''; + width: 0.5em; + height: 0.5em; + background-color: currentColor; + border-radius: 50%; + display: block; + position: absolute; + bottom: 0.5em; + left: 0; + right: 0; + margin: auto; + } + } + &.long { + .ui-tab-mark::after { + content: ''; + width: 2em; + height: 0.35em; + background-color: currentColor; + border-radius: 5em; + display: block; + position: absolute; + bottom: 0.5em; + left: 0; + right: 0; + margin: auto; + } + } + &.trapezoid { + .ui-tab-mark::after { + content: ''; + width: calc(100% - 2em); + height: 0.35em; + background-color: currentColor; + border-radius: 5em 5em 0 0; + display: block; + position: absolute; + bottom: 0; + left: 0; + right: 0; + margin: auto; + } + } + &.btn { + .ui-tab-mark-warp { + display: flex; + align-items: center; + justify-content: center; + .ui-tab-mark.ui-btn { + height: calc(100% - 1.6em); + width: calc(100% - 0.6em); + } + } + &.sm .ui-tab-mark.ui-btn { + height: calc(100% - 2px); + width: calc(100% - 2px); + border-radius: #{$radius - 2}; + } + } + &.ui-tab-inline { + display: inline-flex; + height: 3.5em; + &.ui-tab-scrolls { + .ui-tab-scroll { + height: calc(3.5em + 17px); + line-height: 3.5em; + .ui-tab-mark-warp { + height: 3.5em; + } + } + } + &.btn { + .ui-tab-mark-warp { + .ui-tab-mark.ui-btn { + height: calc(100% - 10px); + width: calc(100% - 10px); + } + } + + } + } + + &.sm { + height: 70rpx !important; + + &.ui-tab-inline{ + height: 70rpx; + &.ui-tab-scrolls { + .ui-tab-scroll { + height: calc(70rpx + 17px); + line-height: 70rpx; + .ui-tab-mark-warp { + height: 70rpx; + } + } + } + &.btn .ui-tab-mark.ui-btn { + height: calc(100% - 2px); + width: calc(100% - 2px); + border-radius: #{$radius - 2}; + } + } + } +} + diff --git a/miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.wxml b/miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.wxml new file mode 100644 index 00000000..1826e132 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-tab/ui-tab.wxml @@ -0,0 +1,36 @@ + + + + + + + {{ item.name?item.name:item }} + {{ item.tag }} + + + + + + {{ tab[curValue].name ? tab[curValue].name : tab[curValue] }} + + + + + + + + + {{ item.name?item.name:item }} + {{ item.tag }} + + + + + {{ tab[curValue].name ? tab[curValue].name : tab[curValue] }} + + + + diff --git a/miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.js b/miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.js new file mode 100644 index 00000000..81e85003 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.js @@ -0,0 +1,80 @@ +Component({ + data: { + //cur: 0 + }, + options: { + addGlobalClass: true + }, + properties: { + datas: { + type: Array, + value: [] + }, + cur: { + type: Number, + value: 0 + }, + tpl: { + type: String, + value: '' + }, + icon: { + type: String, + value: '' + }, + bg: { + type: String, + value: 'bg-blur' + }, + ui: { + type: String, + value: '' + }, + curText: { + type: String, + value: 'ui-TC-Main' + }, + text: { + type: String, + value: 'text-c' + }, + noFixed: { + type: Boolean, + value: false + }, + main: { //主色 + type: String, + value: 'blur' + }, + }, + lifetimes: { + created() { + + }, + attached() { + + }, + ready() { + + }, + }, + methods: { + clickItem(e) { + let item = e.currentTarget.dataset.item; + if (item.type === 'tab') { + wx.switchTab({ + url: item.url + }); + this.setState({ + sys_home_page : item.url + }) + } else if (item.type === 'nav') { + wx.navigateTo({ + url: item.url + }); + } else if (item.type === 'tap') { + this.triggerEvent("tap",item); + } + } + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.json b/miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.json new file mode 100644 index 00000000..15bd0943 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "ui-fixed": "../ui-fixed/ui-fixed" + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.scss b/miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.scss new file mode 100644 index 00000000..5be790c6 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.scss @@ -0,0 +1,60 @@ +.ui-tabbar-box { + .ui-tabbar { + padding: 10rpx; + display: flex; + + .ui-tabbar-item { + text-align: center; + flex: 1; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + position: relative; + z-index: 10; + + .ui-tabbar-icon { + height: 60rpx; + width: 60rpx; + position: relative; + display: flex; + align-items: center; + justify-content: center; + font-size: 45rpx; + + // background-color: #f1f1f1; + .ui-tabbar-image { + width: 50rpx; + height: 50rpx; + } + + &.center { + background-color: var(--ui-BG-Main); + border-radius: 50%; + color: #ffffff; + font-size: 32rpx; + transform: scale(1.3) translateY(-6px); + } + + .badge { + top: 0; + } + } + + .ui-btn { + margin-top: -10px; + margin-bottom: 5px; + position: relative; + } + + .ui-tabbar-text { + font-size: 24rpx; + color: var(--ui-TC-2); + } + + &.cur .ui-tabbar-text { + color: var(--ui-TC-Main); + } + } + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.wxml b/miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.wxml new file mode 100644 index 00000000..3062847b --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-tabbar/ui-tabbar.wxml @@ -0,0 +1,25 @@ + + var indexOf = function (item) { + return item.indexOf('/') !== -1 + } + module.exports = { + indexOf: indexOf + } + + + + + + + + + + + {{ item.title }} + + + + + + diff --git a/miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.js b/miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.js new file mode 100644 index 00000000..8292ab64 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.js @@ -0,0 +1,36 @@ +Component({ + options: { + addGlobalClass: true + }, + properties: { + ui: { + type: String, + value: '' + }, + bg: { + type: String, + value: 'ui-BG-3' + }, + info: { + type: String, + value: '' + }, + src: { + type: String, + value: '' + }, + badge: { + type: Boolean, + optionalTypes: String, + value: false + }, + icon: { + type: Boolean, + value: false + }, + isSlot: { + type: Boolean, + value: false + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.json b/miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.scss b/miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.scss new file mode 100644 index 00000000..f7fdb213 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.scss @@ -0,0 +1,91 @@ +@import '../../scss/var'; +.ui-tag { + font-size: calc(28rpx + var(--textSize)); + vertical-align: middle; + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + padding: .5833em .833em; + white-space: nowrap; + border-radius: $radius; + line-height: initial; + margin: 0 .14286em; + &.xs { + transform: scale(0.7); + padding: .2em .5em; + margin: 0; + } + &.sm { + transform: scale(0.8); + margin: 0 0.02em 0 0; + } + &.lg { + font-size: calc(#{map-get($fontsize, lg)}rpx + var(--textSize)) !important; + } + &.xl { + font-size: calc(#{map-get($fontsize, xl)}rpx + var(--textSize)) !important; + } + &.xxl { + font-size: calc(#{map-get($fontsize, xxl)}rpx + var(--textSize)) !important; + } + &.img { + padding: .5833em .833em .5833em .5em; + line-height: 1; + .tag-img { + margin: -.5833em .5em -.5833em -.5em; + width: 2.5666em; + height: 2.5666em; + border-radius: $radius 0 0 $radius; + } + } + &.badge { + border-radius: 200rpx; + position: absolute; + z-index: 1; + margin: 0; + font-size: 2em; + top: 0; + right: 0; + line-height: 1; + padding: 0.4em 0.6em 0.3em; + transform: scale(0.3) translateX(0.5em) translatey(-0.6em); + transform-origin: 100% 0; + &.badge-br{ + top: auto; + bottom: 0; + right: 0; + transform: scale(0.3) translateX(0.5em) translatey(0.4em); + transform-origin: 100% 100%; + } + &.badge-bl{ + top: auto; + bottom: 0; + right: auto; + left: 0; + transform: scale(0.3) translateX(-0.5em) translatey(0.4em); + transform-origin: 0 100%; + } + &.badge-tl{ + right: auto; + left: 0; + transform: scale(0.3) translateX(-0.5em) translatey(-0.6em); + transform-origin: 0 0; + } + } + + &.badge:not([class*='bg-']) { + background-color: $red !important; + color: $white; + } + + &.empty { + padding: 0; + width: 40px; + height: 40px; + } + &.icon { + padding: 0.4em; + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.wxml b/miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.wxml new file mode 100644 index 00000000..69364c35 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-tag/ui-tag.wxml @@ -0,0 +1,9 @@ + + + + + + + {{info}} + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.js b/miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.js new file mode 100644 index 00000000..549003b3 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.js @@ -0,0 +1,30 @@ +Component({ + data: { + textSizeSet: false, + size: ['sm', 'df', 'lg', 'xl', 'xxl'] + }, + options: { + addGlobalClass: true + }, + properties: { + ui: { + type: String, + value: '' + } + }, + lifetimes: { + ready() { + + }, + }, + methods: { + textSizeSetShow() { + this.setData({ + textSizeSet: true + }) + }, + sliderChange(e) { + this.setText(e.detail.value) + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.json b/miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.json new file mode 100644 index 00000000..e4951c37 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "ui-modal": "../ui-modal/ui-modal", + "ui-menu": "../ui-menu/ui-menu", + "ui-menu-item": "../ui-menu-item/ui-menu-item" + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.scss b/miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.scss new file mode 100644 index 00000000..e69de29b diff --git a/miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.wxml b/miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.wxml new file mode 100644 index 00000000..80695a73 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-text-size/ui-text-size.wxml @@ -0,0 +1,15 @@ + + + + + + 选择合适的文字大小来动态调整界面布局。 + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-title/ui-title.js b/miniprogram/mp-cu/colorUI/components/ui-title/ui-title.js new file mode 100644 index 00000000..e6143194 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-title/ui-title.js @@ -0,0 +1,70 @@ +Component({ + options: { + addGlobalClass: true, + multipleSlots: true, + //sys_navBar: getApp().ColorUi.sys_navBar + }, + properties: { + ui: { + type: String, + value: '' + }, + bg: { + type: String, + value: 'bg-none' + }, + title: { + type: String, + value: '' + }, + desc: { + type: String, + value: '' + }, + titleUi: { + type: String, + value: 'ui-TC' + }, + descUi: { + type: String, + value: 'ui-TC-3' + }, + depth: { + type: Number, + optionalTypes: String, + value: 0 + }, + dot: { + type: String, + value: 'ui-BG-Main' + }, + line: { + type: String, + value: 'ui-BG-Main' + }, + isIcon: { + type: Boolean, + value: false + }, + hasDot: { + type: Boolean, + value: false + }, + hasLine: { + type: Boolean, + value: false + }, + align: { + type: String, + value: 'left' + }, + tpl: { + type: String, + value: 'default' + }, + inLine: { + type: Boolean, + value: false + } + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-title/ui-title.json b/miniprogram/mp-cu/colorUI/components/ui-title/ui-title.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-title/ui-title.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-title/ui-title.scss b/miniprogram/mp-cu/colorUI/components/ui-title/ui-title.scss new file mode 100644 index 00000000..d478315d --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-title/ui-title.scss @@ -0,0 +1,277 @@ +@import '../../scss/var'; + +.ui-title { + position: relative; + display: flex; + justify-content: space-between; + align-items: center; + // padding: 30rpx; + .anchor { + pointer-events: none; + position: absolute; + } + &.line { + padding: 0 30rpx; + } + .action-icon { + margin-left: -10rpx; + margin-right: 10rpx; + } + .action { + display: flex; + align-items: center; + &.hasLine { + position: relative; + z-index: 2; + .action-line { + position: absolute; + width: 68%; + height: 0.5em; + bottom: 0; + z-index: -1; + opacity: 0.7; + } + } + &.hasDot { + position: relative; + margin-left: 10rpx; + z-index: 2; + .action-dot { + position: absolute; + width: 18px; + height: 18px; + border-radius: 50%; + top: -0.3em; + z-index: -1; + margin-left: -0.5em; + opacity: 0.7; + } + } + .action-title { + font-weight: bold; + } + .action-desc { + margin-left: 10rpx; + text-transform: Capitalize; + } + } + &.center { + justify-content: center; + letter-spacing: 5rpx; + .hasLine { + .action-line { + left: 0; + right: 0; + margin: auto; + } + } + } + &.right { + justify-content: flex-end; + letter-spacing: 5rpx; + .hasDot { + .action-dot { + left: auto; + right: 0; + } + } + .hasLine { + .action-line { + left: auto; + right: 0; + } + } + } + &.stack { + .action { + position: relative; + &.hasLine { + .action-line { + width: 100%; + } + } + .action-title { + position: relative; + z-index: 2; + top: 10rpx; + } + .action-desc { + position: absolute; + z-index: 1; + left: 30rpx; + margin: 0; + font-size: 60rpx; + font-weight: bold; + opacity: 0.3; + top: -10rpx; + } + } + &.center,&.right { + position: relative; + z-index: 1; + .action { + position: initial; + } + .action-desc { + top: 10rpx; + left: 0; + right: 0; + margin: auto; + text-align: center; + } + } + &.right { + .action-desc { + text-align: right; + } + } + } + &.center-column { + justify-content: center; + letter-spacing: 5rpx; + .action { + flex-direction: column; + .action-desc { + font-size: 24rpx; + margin: 0; + } + &.hasDot { + position: relative; + .action-dot { + height: 0px; + width: 100%; + top: 0; + bottom: 0; + left: 0; + right: 0; + margin: auto; + .view { + height: 1px; + background: inherit; + width: 100rpx; + position: absolute; + top: 0; + bottom: 0; + margin: auto; + &:first-child { + left: -500rpx; + right: 0; + transform: rotate(180deg); + } + &:last-child { + left: 0; + right: -500rpx; + } + &::after { + content: ''; + width: 4px; + height: 12px; + border-radius: 20px; + background: inherit; + display: block; + position: absolute; + top: -5px; + left: -10px; + transform: rotate(30deg); + } + &::before { + content: ''; + width: 4px; + height: 20px; + border-radius: 20px; + background: inherit; + display: block; + position: absolute; + top: -10px; + left: -20px; + transform: rotate(30deg); + } + } + } + } + &.hasLine { + position: relative; + .action-line { + height: 0px; + width: 100%; + top: 0; + bottom: 0; + left: 0; + right: 0; + margin: auto; + .view { + height: 1px; + background: inherit; + width: 160rpx; + position: absolute; + top: 0; + bottom: 0; + margin: auto; + &:first-child { + left: -480rpx; + right: 0; + transform: rotate(180deg); + } + &:last-child { + left: 0; + right: -480rpx; + } + &::after { + content: ''; + width: 100%; + height: 100%; + background: linear-gradient(to left, var(--ui-BG), rgba(255, 255, 255, 0)); + display: block; + position: absolute; + } + } + } + } + } + } +} + +.heading-0 { + padding-top: #{map-get($spacers, 4)}; + padding-bottom: #{map-get($spacers, 4)}; + font-size: calc(#{map-get($fontsize, xl)}rpx + var(--textSize)) !important; + .action-desc{ + font-size: calc(#{map-get($fontsize, df)}rpx + var(--textSize)) !important; + } +} + +.heading-1 { + padding-top: #{map-get($spacers, 5)}; + padding-bottom: #{map-get($spacers, 4)}; + font-size: calc(#{map-get($fontsize, xxl)}rpx + var(--textSize)) !important; + .action-desc{ + font-size: calc(#{map-get($fontsize, lg)}rpx + var(--textSize)) !important; + } +} + +.heading-2 { + padding-top: #{map-get($spacers, 4)}; + padding-bottom: #{map-get($spacers, 3)}; + font-size: calc(#{map-get($fontsize, xl)}rpx + var(--textSize)) !important; + .action-desc{ + font-size: calc(#{map-get($fontsize, df)}rpx + var(--textSize)) !important; + } +} + +.heading-3 { + padding-top: #{map-get($spacers, 3)}; + padding-bottom: #{map-get($spacers, 2)}; + font-size: calc(#{map-get($fontsize, lg)}rpx + var(--textSize)) !important; + .action-desc{ + font-size: calc(#{map-get($fontsize, sm)}rpx + var(--textSize)) !important; + } +} + +.heading-4 { + padding-top: #{map-get($spacers, 2)}; + padding-bottom: #{map-get($spacers, 1)}; + font-size: calc(#{map-get($fontsize, df)}rpx + var(--textSize)) !important; + .action-desc{ + font-size: calc(#{map-get($fontsize, xs)}rpx + var(--textSize)) !important; + } +} diff --git a/miniprogram/mp-cu/colorUI/components/ui-title/ui-title.wxml b/miniprogram/mp-cu/colorUI/components/ui-title/ui-title.wxml new file mode 100644 index 00000000..cb9d75f4 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-title/ui-title.wxml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + {{ title }} + + + + + + + + + + + {{ desc }} + + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.js b/miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.js new file mode 100644 index 00000000..fff3b639 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.js @@ -0,0 +1,72 @@ +Component({ + data: { + touch: false, + }, + options: { + addGlobalClass: true, + //multipleSlots: true + }, + properties: { + title: { + type: String, + value: '' + }, + icon: { + type: String, + value: '' + }, + position: { + type: String, + value: '' + }, + duration: { + type: Number, + value: 1500 + }, + mask: { + type: Boolean, + optionalTypes: String, + value: false + }, + isLoading: { + type: Boolean, + optionalTypes: String, + value: false + }, + }, + lifetimes: { + created() { + //this.opacityStatus(); + }, + attached() { + /*this.setData({ + isFristPage: app.cu_tools.sys_isFirstPage() + });*/ + }, + ready() { + + }, + }, + observers: { + title(val) { + let _this = this; + if (val && !_this.data.isLoading) { + setTimeout(() => { + _this.hide(); + }, _this.data.duration); + } + } + }, + methods: { + hide(){ + this.setState({ + '$toast.title':'', + '$toast.icon':'', + '$toast.image':'', + '$toast.duration': 0, + '$toast.mask': false, + '$toast.isLoading': false, + }) + } + } +}) \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.json b/miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.scss b/miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.scss new file mode 100644 index 00000000..48da1dc5 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.scss @@ -0,0 +1,57 @@ +@import '../../scss/var'; +.ui-toast-box { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 880; + opacity: 0; + outline: 0; + text-align: center; + transform: scale(1); + backface-visibility: hidden; + perspective: 2000rpx; + pointer-events: none; + .ui-toast { + position: relative; + display: inline-block; + vertical-align: middle; + margin-left: auto; + margin-right: auto; + background-color: var(--ui-BG); + //border-radius: 10rpx; + overflow: hidden; + text-align: left; + color: var(--ui-TC); + padding: 0.5em 1em; + border-radius: $radius; + max-width: 90vw; + &.hasIcon { + text-align: center; + padding: 0.5em 1em 1em; + .ui-toast-icon { + width: 170rpx; + height: 150rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 80rpx; + } + } + } + &::before { + content: '\200B'; + display: inline-block; + height: 100%; + vertical-align: middle; + } + + &.show { + opacity: 1; + transform: scale(1); + transition: 0.3s; + overflow-x: hidden; + overflow-y: auto; + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.wxml b/miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.wxml new file mode 100644 index 00000000..cee89186 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/components/ui-toast/ui-toast.wxml @@ -0,0 +1,9 @@ + + + + + + + {{ title.length > 255 ? title + '...' : title }} + + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/scss/_main.scss b/miniprogram/mp-cu/colorUI/scss/_main.scss new file mode 100644 index 00000000..dd8f510e --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/_main.scss @@ -0,0 +1,301 @@ +@import 'var'; +@import 'mixins'; + +page { + font-size: 28rpx; + color: var(--text-a); + background-color: var(--ui-BG-1) !important; + -webkit-tap-highlight-color: transparent; + font-family: 'ui-num',system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; +} + +/* ================== + 初始化 + ==================== */ +view { + box-sizing: border-box; +} +.ui-link{ + cursor: pointer; +} +navigator { + display: inline-flex; +} +navigator.navigator-hover { + background-color: inherit; + transform: translate(1rpx, 1rpx); +} + + +/* ================== + 辅助类 + ==================== */ +.none { + display: none !important; +} +.inline { + display: inline !important; +} +.inline-block { + display: inline-block !important; +} +.block { + display: block !important; +} +.touch-none { + pointer-events: none; +} +.touch-all { + pointer-events: all; +} +.flex { + display: flex !important; +} +.inline-flex { + display: inline-flex !important; +} +.w-100{ + width: 100%; +} + +/* -- 浮动 -- */ +.cf::after, +.cf::before { + content: ''; + display: table; +} +.cf::after { + clear: both; +} +.fl { + float: left; +} +.fr { + float: right; +} +.position-center{ + @include position-center; +} +.position-relative{ + position: relative; +} + +/* -- 工具类 -- */ +@function negativify-map($map) { + $result: (); + @each $key, $value in $map { + @if $key != 0 { + $result: map-merge($result, ("n" + $key: (-$value))); + } + } + @return $result; +} + +$utilities: () !default; +$utilities: map-merge( + ( + 'margin': ( + responsive: true, + property: margin, + class: m, + values: + map-merge($spacers, (auto: auto)) + ), + 'margin-x': ( + property: margin-right margin-left, + class: mx, + values: + map-merge($spacers, (auto: auto)) + ), + 'margin-y': ( + property: margin-top margin-bottom, + class: my, + values: + map-merge($spacers, (auto: auto)) + ), + 'margin-top': ( + property: margin-top, + class: mt, + values: + map-merge($spacers, (auto: auto)) + ), + 'margin-right': ( + property: margin-right, + class: mr, + values: + map-merge($spacers, (auto: auto)) + ), + 'margin-bottom': ( + property: margin-bottom, + class: mb, + values: + map-merge($spacers, (auto: auto)) + ), + 'margin-left': ( + property: margin-left, + class: ml, + values: + map-merge($spacers, (auto: auto)) + ), + 'padding': ( + responsive: true, + property: padding, + class: p, + values: $spacers + ), + 'padding-x': ( + property: padding-right padding-left, + class: px, + values: $spacers + ), + 'padding-y': ( + property: padding-top padding-bottom, + class: py, + values: $spacers + ), + 'padding-top': ( + property: padding-top, + class: pt, + values: $spacers + ), + 'padding-right': ( + property: padding-right, + class: pr, + values: $spacers + ), + 'padding-bottom': ( + property: padding-bottom, + class: pb, + values: $spacers + ), + 'padding-left': ( + property: padding-left, + class: pl, + values: $spacers + ), + 'font-weight': ( + property: font-weight, + class: text, + values: ( + light: $font-weight-light, + lighter: $font-weight-lighter, + normal: $font-weight-normal, + bold: $font-weight-bold, + bolder: $font-weight-bolder + ) + ), + 'text-align': ( + property: text-align, + class: text, + values: left right center + ), + 'font-color': ( + property: color, + class: text, + values: + map-merge($colors, map-merge($grays, map-merge($darks, ('reset': inherit)))) + ), + 'line-height': ( + property: line-height, + class: lh, + values: ( + 1: 1, + sm: $line-height-sm, + base: $line-height-base, + lg: $line-height-lg + ) + ), + 'white-space': ( + property: white-space, + class: text, + values: (nowrap: nowrap) + ), + 'radius': ( + property: border-radius, + class: radius, + values: ( + null: $radius, + sm: $radius-sm, + lg: $radius-lg, + 0: 0 + ) + ), + 'round': ( + property: border-radius, + class: round, + values: ( + null: $round-pill, + circle: 50% + ) + ), + 'radius-top': ( + property: border-top-left-radius border-top-right-radius, + class: radius-top, + values: (null: $radius) + ), + 'radius-right': ( + property: border-top-right-radius border-bottom-right-radius, + class: radius-right, + values: (null: $radius) + ), + 'radius-bottom': ( + property: border-bottom-right-radius border-bottom-left-radius, + class: radius-bottom, + values: (null: $radius) + ), + 'radius-left': ( + property: border-bottom-left-radius border-top-left-radius, + class: radius-left, + values: (null: $radius) + ), + 'radius-lr': ( + property: border-top-left-radius border-bottom-right-radius, + class: radius-lr, + values: (null: $radius) + ), + 'radius-lrs': ( + property: border-top-right-radius border-bottom-left-radius, + class: radius-lr, + values: (null: 0) + ), + 'radius-rl': ( + property: border-top-right-radius border-bottom-left-radius, + class: radius-rl, + values: (null: $radius) + ), + 'radius-rls': ( + property: border-top-left-radius border-bottom-right-radius, + class: radius-rl, + values: (null: 0) + ), + ), + $utilities +); +@each $key, $utility in $utilities { + @if type-of($utility) == 'map' { + $values: map-get($utility, values); + @if type-of($values) == 'string' or type-of(nth($values, 1)) != 'list' { + $values: zip($values, $values); + } + @each $key, $value in $values { + $properties: map-get($utility, property); + @if type-of($properties) == 'string' { + $properties: append((), $properties); + } + $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1)); + $property-class: if($property-class == null, '', $property-class); + $property-class-modifier: if($key, if($property-class == '', '', '-') + $key, ''); + .#{$property-class + $property-class-modifier} { + @each $property in $properties { + #{$property}: $value !important; + } + } + } + } +} + + +.flex-bar image.page-cur { + width: 50rpx; + height: 50rpx; +} diff --git a/miniprogram/mp-cu/colorUI/scss/_mixins.scss b/miniprogram/mp-cu/colorUI/scss/_mixins.scss new file mode 100644 index 00000000..3be9662f --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/_mixins.scss @@ -0,0 +1,59 @@ +@mixin bg-square { + background: { + color: #fff; + image: linear-gradient(45deg, #eee 25%, transparent 25%, transparent 75%, #eee 75%), linear-gradient(45deg, #eee 25%, transparent 25%, transparent 75%, #eee 75%); + size: 40rpx 40rpx; + position: 0 0, 20rpx 20rpx; + } +} + +@mixin flex { + position: relative; + display: flex; + align-items: center; +} +@mixin flex-bar { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; +} +@mixin flex-center { + display: flex; + align-items: center; + justify-content: center; +} + +@mixin arrow { + content: ''; + height: 0; + width: 0; + position: absolute; +} +@mixin arrow-top { + @include arrow; + // border-color: transparent transparent $ui-BG; + border-style: none solid solid; + border-width: 0 20rpx 20rpx; +} + +@mixin arrow-right { + @include arrow; + // border-color: transparent $ui-BG transparent; + border-style: solid solid solid none; + border-width: 20rpx 20rpx 20rpx 0; +} +@mixin position-center { + position: absolute !important; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; +} + +@mixin blur { + -webkit-backdrop-filter: blur(20px); + backdrop-filter: blur(20px); + color: var(--ui-TC); +} diff --git a/miniprogram/mp-cu/colorUI/scss/_var.scss b/miniprogram/mp-cu/colorUI/scss/_var.scss new file mode 100644 index 00000000..38f1a7ff --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/_var.scss @@ -0,0 +1,158 @@ +//颜色 +$yellow: #fbbd08; +$orange: #f37b1d; +$red: #F76664; +$pink: #e03997; +$mauve: #b745cb; +$purple: #8044de; +$blue: #0081ff; +$cyan: #37c0fe; +$green: #3eb93b; +$olive: #8dc63f; +$grey: #8799a3; +$brown: #a5673f; + +$colors: (); +$colors: map-merge( + ( + 'yellow': $yellow, + 'orange': $orange, + 'red': $red, + 'pink': $pink, + 'mauve': $mauve, + 'purple': $purple, + 'violet': $purple, + 'blue': $blue, + 'cyan': $cyan, + 'green': $green, + 'olive': $olive, + 'grey': $grey, + 'brown': $brown, + ), + $colors +); + +//灰度 +$white: #ffffff; +$gray-f: #f8f9fa; +$gray-e: #eeeeee; +$gray-d: #dddddd; +$gray-c: #cccccc; +$gray-b: #bbbbbb; +$gray-a: #aaaaaa; +$dark-9: #999999; +$dark-8: #888888; +$dark-7: #777777; +$dark-6: #666666; +$dark-5: #555555; +$dark-4: #444444; +$dark-3: #333333; +$dark-2: #222222; +$dark-1: #111111; +$black: #000000; + +$grays: (); +$grays: map-merge( + ( + 'white': $white, + 'gray-f': $gray-f, + 'gray-e': $gray-e, + 'gray-d': $gray-d, + 'gray-c': $gray-c, + 'gray-b': $gray-b, + 'gray-a': $gray-a, + 'gray': $gray-a, + ), + $grays +); + +$darks: (); +$darks: map-merge( + ( + 'dark-9': $dark-9, + 'dark-8': $dark-8, + 'dark-7': $dark-7, + 'dark-6': $dark-6, + 'dark-5': $dark-5, + 'dark-4': $dark-4, + 'dark-3': $dark-3, + 'dark-2': $dark-2, + 'dark-1': $dark-1, + 'black': $black, + ), + $darks +); + + +// 边框 +$border-width: 1rpx !default; // 边框大小 + +// 圆角 +$radius: 10rpx !default; // 默认圆角大小 +$radius-lg: 40rpx !default; // 大圆角 +$radius-sm: 6rpx !default; // 小圆角 +$round-pill: 1000rpx !default; // 半圆 + +// 动画过渡 +$transition-base: all .2s ease-in-out !default; // 默认过渡 +$transition-base-out: all .04s ease-in-out !default; // 进场过渡 +$transition-fade: opacity .15s linear !default; // 透明过渡 +$transition-collapse: height .35s ease !default; // 收缩过渡 + +// 间距 +$spacer: 20rpx !default; +$spacers: () !default; +$spacers: map-merge( + ( + 0: 0, + 1: $spacer * 0.25, + 2: $spacer * .5, + 3: $spacer, + 4: $spacer * 1.5, + 5: $spacer * 3, + 6: $spacer * 5, + ), + $spacers +); + +// 字形 +$font-weight-lighter: lighter !default; +$font-weight-light: 300 !default; +$font-weight-normal: 400 !default; +$font-weight-bold: 700 !default; +$font-weight-bolder: 900 !default; +$fontsize: () !default; +$fontsize: map-merge( + ( + xs: 20, + sm: 24, + df: 28, + lg: 32, + xl: 36, + xxl: 44, + sl: 80, + xsl: 120 + ), + $fontsize +); + +// 段落 +$line-height-base: 1.5 !default; +$line-height-lg: 2 !default; +$line-height-sm: 1.25 !default; + +// 图标 +$iconsize: () !default; +$iconsize: map-merge( + ( + xs: 0.5, + sm: 0.75, + df: 1, + lg: 1.25, + xl: 1.5, + xxl: 2, + sl: 6, + xsl: 10 + ), + $iconsize +); diff --git a/miniprogram/mp-cu/colorUI/scss/icon/_icon.scss b/miniprogram/mp-cu/colorUI/scss/icon/_icon.scss new file mode 100644 index 00000000..acd60cd5 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/icon/_icon.scss @@ -0,0 +1,178 @@ +@font-face { + font-family: 'colorui'; + src: url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'); +} + +[class*='_icon-'] { + font-family: 'colorui', serif !important; + display: inline-block; +} + +@font-face { + font-family: 'ui-num'; + src: url('data:application/x-font-ttf;base64,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') + format('woff2'); + font-weight: normal; + font-style: normal; +} + +._icon-checkbox:before { + content: "\e713"; +} + +._icon-box:before { + content: "\e714"; +} + +._icon-checkbox-o:before { + content: "\e715"; +} + +._icon-round:before { + content: "\e716"; +} + +._icon-home-o:before { + content: "\e70a"; +} + +._icon-home:before { + content: "\e70d"; +} + +._icon-edit:before { + content: "\e649"; +} + +._icon-close:before { + content: "\e6ed"; +} + +._icon-check-round:before { + content: "\e6f1"; +} + +._icon-check-round-o:before { + content: "\e6f2"; +} + +._icon-close-round:before { + content: "\e6f3"; +} + +._icon-close-round-o:before { + content: "\e6f4"; +} + +._icon-waiting:before { + content: "\e6f8"; +} + +._icon-waiting-o:before { + content: "\e6f9"; +} + +._icon-warn:before { + content: "\e662"; +} + +._icon-warn-o:before { + content: "\e675"; +} + +._icon-more:before { + content: "\e688"; +} + +._icon-delete:before { + content: "\e707"; +} + +._icon-delete-o:before { + content: "\e709"; +} + +._icon-add-round:before { + content: "\e717"; +} + +._icon-add-round-o:before { + content: "\e718"; +} + +._icon-add:before { + content: "\e6e4"; +} + +._icon-info:before { + content: "\e6ef"; +} + +._icon-info-o:before { + content: "\e705"; +} + +._icon-move:before { + content: "\e768"; +} + +._icon-title:before { + content: "\e82f"; +} + +._icon-titles:before { + content: "\e745"; +} + +._icon-loading:before { + content: "\e746"; +} + +._icon-copy-o:before { + content: "\e7bc"; +} + +._icon-copy:before { + content: "\e85c"; +} + +._icon-loader:before { + content: "\e76d"; +} + +._icon-search:before { + content: "\e782"; +} + +._icon-back:before { + content: "\e600"; +} + +._icon-forward:before { + content: "\e601"; +} + +._icon-arrow:before { + content: "\e608"; +} + +._icon-drop-down:before { + content: "\e61c"; +} + +._icon-drop-up:before { + content: "\e61d"; +} + +._icon-check:before { + content: "\e69f"; +} + +._icon-move-round:before { + content: "\e602"; +} + +._icon-move-round-o:before { + content: "\e603"; +} + diff --git a/miniprogram/mp-cu/colorUI/scss/icon/_style.scss b/miniprogram/mp-cu/colorUI/scss/icon/_style.scss new file mode 100644 index 00000000..0aced73e --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/icon/_style.scss @@ -0,0 +1,43 @@ +@import '../var'; +@import './icon'; //核心图标库 + +.icon-spin { + animation: icon-spin 2s infinite linear; +} + +.icon-pulse { + animation: icon-spin 1s infinite steps(8); +} + +@keyframes icon-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} +.icon-90 { + transform: rotate(90deg); +} +.icon-180 { + transform: rotate(180deg); +} +.icon-270 { + transform: rotate(270deg); +} +.icon-x { + transform: scale(-1, 1); +} +.icon-y { + transform: scale(1, -1); +} +.icon-fw { + width: (18em / 14); + text-align: center; +} +@each $class, $value in $iconsize { + .icon-#{$class} { + transform: scale(#{$value}); + } +} diff --git a/miniprogram/mp-cu/colorUI/scss/style/_background.scss b/miniprogram/mp-cu/colorUI/scss/style/_background.scss new file mode 100644 index 00000000..5e4dc0f4 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_background.scss @@ -0,0 +1,219 @@ +/* ================== + 背景 + ==================== */ +@import '../var'; +@import '../mixins'; + +/* -- 基础色 -- */ +@each $color, $value in map-merge($colors, $darks) { + .bg-#{$color} { + background-color: $value !important; + @if $color == 'yellow' { + color: #333333 !important; + } @else { + color: #ffffff !important; + } + } + .bg-stripes-#{$color} { + background-color: #{mix(rgba(255, 255, 255, 0), desaturate($value, 45%), 93%)} !important; + background-image: linear-gradient( 225deg, + #{mix(rgba(255, 255, 255, 0), $value, 50%)} 10%, + transparent 0,transparent 50%, + #{mix(rgba(255, 255, 255, 0), $value, 50%)} 0, + #{mix(rgba(255, 255, 255, 0), $value, 50%)} 60%, + transparent 0,transparent + ); + background-size: 7.07px 7.07px; + z-index: -1; + } +} + +/* -- 浅色 -- */ +@each $color, $value in $colors { + .bg-#{$color}-light { + background-image: linear-gradient(45deg, white, mix(white, $value, 85%)) !important; + color: $value !important; + } + + .bg-#{$color}-thin { + background-color: rgba($value, var(--ui-BG-opacity)) !important; + color: $value !important; + } +} + +/* -- 渐变色 -- */ + +@each $color, $value in $colors { + @each $colorsub, $valuesub in $colors { + @if $color != $colorsub { + .bg-#{$color}-#{$colorsub} { + // background-color: $value !important; + background-image: linear-gradient(130deg, $value, $valuesub) !important; + color: #ffffff !important; + } + } + } +} +.bg-yellow-gradient { + background-image: linear-gradient(45deg, #f5fe00, #ff6600) !important; + color: $dark-3 !important; +} +.bg-orange-gradient { + background-image: linear-gradient(45deg, #ff9700, #ed1c24) !important; + color: $white !important; +} +.bg-red-gradient { + background-image: linear-gradient(45deg, #f33a41, #ed0586) !important; + color: $white !important; +} +.bg-pink-gradient { + background-image: linear-gradient(45deg, #fea894, #ff1047) !important; + color: $white !important; +} +.bg-mauve-gradient { + background-image: linear-gradient(45deg, #c01f95, #7115cc) !important; + color: $white !important; +} +.bg-purple-gradient { + background-image: linear-gradient(45deg, #9829ea, #5908fb) !important; + color: $white !important; +} +.bg-blue-gradient { + background-image: linear-gradient(45deg, #00b8f9, #0166eb) !important; + color: $white !important; +} +.bg-cyan-gradient { + background-image: linear-gradient(45deg, #06edfe, #48b2fe) !important; + color: $white !important; +} +.bg-green-gradient { + background-image: linear-gradient(45deg, #3ab54a, #8cc63f) !important; + color: $white !important; +} +.bg-olive-gradient { + background-image: linear-gradient(45deg, #90e630, #39d266) !important; + color: $white !important; +} +.bg-grey-gradient { + background-image: linear-gradient(45deg, #9aadb9, #354855) !important; + color: $white !important; +} +.bg-brown-gradient { + background-image: linear-gradient(45deg, #ca6f2e, #cb1413) !important; + color: $white !important; +} + +@each $color, $value in $grays { + .bg-#{$color} { + background-color: $value !important; + color: #333333 !important; + } +} + +.bg-square { + @include bg-square; +} +.bg-none { + background: transparent !important; + color: inherit !important; +} + +[class*='bg-mask'] { + position: relative; + //background: transparent !important; + color: #FFFFFF !important; + > view, + > text { + position: relative; + z-index: 1; + color: #ffffff; + } + &::before { + content: ''; + border-radius: inherit; + width: 100%; + height: 100%; + @include position-center; + background-color: rgba(0, 0, 0, 0.4); + z-index: 0; + } + @at-root .bg-mask-80::before { + background: rgba(0, 0, 0, 0.8) !important; + } + @at-root .bg-mask-50::before { + background: rgba(0, 0, 0, 0.5) !important; + } + @at-root .bg-mask-20::before { + background: rgba(0, 0, 0, 0.2) !important; + } + @at-root .bg-mask-top::before { + background-color: rgba(0, 0, 0, 0); + background-image: linear-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.618), rgba(0, 0, 0, 0.01)); + } + @at-root .bg-white-top { + background-color: rgba(0, 0, 0, 0); + background-image: linear-gradient(rgba(255, 255, 255, 1), rgba(255, 255, 255, 0.3)); + } + @at-root .bg-mask-bottom::before { + background-color: rgba(0, 0, 0, 0); + background-image: linear-gradient(rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 0.618), rgba(0, 0, 0, 1)); + } +} +.bg-img { + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} + +[class*='bg-blur'] { + position: relative; + > view, + > text { + position: relative; + z-index: 1; + } + &::before { + content: ''; + width: 100%; + height: 100%; + @include position-center; + border-radius: inherit; + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + } +} +@supports (-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px)) { + .bg-blur::before { + @include blur; + background-color: var(--ui-Blur-1); + } + .bg-blur-1::before { + @include blur; + background-color: var(--ui-Blur-2); + } + .bg-blur-2::before { + @include blur; + background-color: var(--ui-Blur-3); + } +} +@supports not (backdrop-filter: blur(5px)) { + .bg-blur { + color: var(--ui-TC); + &::before { + background-color: var(--ui-BG); + } + } + .bg-blur-1 { + color: var(--ui-TC); + &::before { + background-color: var(--ui-BG-1); + } + } + .bg-blur-2 { + color: var(--ui-TC); + &::before { + background-color: var(--ui-BG-2); + } + } +} diff --git a/miniprogram/mp-cu/colorUI/scss/style/_border.scss b/miniprogram/mp-cu/colorUI/scss/style/_border.scss new file mode 100644 index 00000000..ec0db1ed --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_border.scss @@ -0,0 +1,141 @@ +/* ================== + 边框 + ==================== */ +@import '../var'; + +/* -- 实线 -- */ +.border { + overflow: initial !important; + @at-root [class*='border'], + [class*='dashed'] { + position: relative; + &.dline{ + --ui-Border:var(--ui-BG-3) + } + &::after { + content: ' '; + width: 200%; + height: 200%; + position: absolute; + z-index: 0; + top: 0; + left: 0; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + border-radius: inherit; + } + &.radius::after { + border-radius: calc(#{$radius} * 2); + } + &.round::after { + border-radius: #{$round-pill}; + } + } + &::after { + border: 1px solid var(--ui-Border); + } + &s::after { + border: 4rpx solid var(--ui-Border); + } + &ss::after { + border: 8rpx solid var(--ui-Border); + } + @each $value in (top, right, bottom, left) { + &-#{$value}::after { + border-#{$value}: 1px solid var(--ui-Border); + } + &s-#{$value}::after { + border-#{$value}: 4rpx solid var(--ui-Border); + } + &ss-#{$value}::after { + border-#{$value}: 8rpx solid var(--ui-Border); + } + } +} +/* -- 虚线 -- */ +.dashed { + &::after { + border: 4rpx dashed var(--ui-Border); + } + &s::after { + border: 6rpx dashed var(--ui-Border); + } + @each $value in (top, right, bottom, left) { + &-#{$value}::after { + border-#{$value}: 4rpx dashed var(--ui-Border); + } + &s-#{$value}::after { + border-#{$value}: 6rpx dashed var(--ui-Border); + } + } +} +@each $color, $value in map-merge($colors, map-merge($darks, $grays)) { + .border-#{$color}::after,.border-#{$color}[class*='-shine']::before { + border-color: $value !important; + } +} +@each $value in (a, b, c, d, e) { + .main-#{$value}-border::after, + .main-#{$value}-border[class*='-shine']::before { + border-color: var(--main-#{$value}) !important; + } +} +.dashed-shine, +.dasheds-shine { + position: relative; + overflow: hidden; + &::after, + &::before { + border-style: dashed; + border-color: var(--ui-Border); + animation: shineafter 1s infinite linear; + width: calc(200% + 40px); + height: 200%; + border-width: 2px 0; + } + &::before { + content: ' '; + position: absolute; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + animation: shinebefore 1s infinite linear; + width: 200%; + height: calc(200% + 40px); + border-width: 0 2px; + } +} +.dasheds-shine { + &::after, + &::before { + border-width: 4px 0; + } + &::before { + border-width: 0 4px; + } +} + +@keyframes shineafter { + 0% { + top: 0; + left: -22px; + } + 100% { + top: 0; + left: 0; + } +} + +@keyframes shinebefore { + 0% { + top: -22px; + left: 0; + } + 100% { + top: 0; + left: 0; + } +} diff --git a/miniprogram/mp-cu/colorUI/scss/style/_button.scss b/miniprogram/mp-cu/colorUI/scss/style/_button.scss new file mode 100644 index 00000000..d10c882a --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_button.scss @@ -0,0 +1,91 @@ +@import '../var'; + + +.ui-btn-box { + display: inline-block; +} +.ui-btn { + position: relative; + border: 0rpx; + display: inline-block; + align-items: center; + justify-content: center; + box-sizing: border-box; + padding: .7857em 1.5em .7857em; + font-size: 28rpx; + line-height: 1em; + text-align: center; + text-decoration: none; + overflow: visible; + margin: 0 0.25em 0 0; + transform: translate(0, 0); + border-radius: $radius; + white-space: nowrap; + color: var(--text-a); + background-color: var(--ui-BG); + vertical-align: baseline; + &:first-child:last-child{ + margin: 0; + } + &:not([class*='round'])::after { + border-radius: calc(#{$radius} * 2); + } + &:not([class*='border'])::after { + // content: ' '; + // width: 200%; + // height: 200%; + // display: block; + // position: absolute; + // z-index: 0; + // top: 0; + // left: 0; + // transform: scale(0.5); + // transform-origin: 0 0; + // pointer-events: none; + // box-sizing: border-box; + display: none; + } + &.round::after { + border-radius: #{$round-pill}; + } + &.icon { + padding: 0.8em 0.8em; + } + + &.sm { + font-size: 24rpx; + } + + &.lg { + font-size: 32rpx; + } + + &.xl { + font-size: 36rpx; + } + + &.block { + width: 100%; + display: block; + font-size: 32rpx; + } + &:not([disabled]):not(.none-style):active { + transform: translate(.5px, .5px); + } + &[disabled] { + opacity: 0.6; + } + &.none-style { + background-color: transparent !important; + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + display: flex; + } +} + +.ui-btn:not(.icon) [class*='icon-'] { + margin: 0 .25em; +} diff --git a/miniprogram/mp-cu/colorUI/scss/style/_card.scss b/miniprogram/mp-cu/colorUI/scss/style/_card.scss new file mode 100644 index 00000000..facd2cf2 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_card.scss @@ -0,0 +1,353 @@ +/* ================== + 卡片 + ==================== */ + +.ui-cards { + display: block; + overflow: hidden; + & .ui-btn.badge { + top: 0; + right: 0; + font-size: 24rpx; + padding: 0rpx 15rpx; + height: 40rpx; + } + &.no-card > .ui-item { + margin: 0rpx; + border-radius: 0rpx; + } + & > .ui-item { + display: block; + overflow: hidden; + border-radius: 10rpx; + margin: 30rpx; + } + & > .ui-item.shadow-blur { + overflow: initial; + } + .grid.grid-square { + margin-bottom: -20rpx; + } + &.article { + display: block; + & > .ui-item { + padding: 30rpx; + background-color: var(--box-bg); + display: flex; + align-items: flex-start; + } + & > .time { + padding: 30rpx 0 0 30rpx; + } + & > .ui-item .title { + font-size: 30rpx; + font-weight: 900; + color: #333333; + } + & > .ui-item .content { + flex: 1; + } + & > .ui-item > image { + width: 240rpx; + height: 6.4em; + margin-left: 20rpx; + border-radius: 6rpx; + } + & > .ui-item .content .desc { + font-size: 12px; + color: var(--text-c); + } + & > .ui-item .content .text-content { + font-size: 28rpx; + color: #888; + } + } + &.case { + .image { + position: relative; + image { + width: 100%; + display: block; + } + .ui-tag { + position: absolute; + right: 0; + top: 0; + } + .ui-bar { + position: absolute; + bottom: 0; + width: 100%; + background-color: transparent; + padding: 0rpx 30rpx; + } + .bg-black { + position: absolute; + bottom: 0; + width: 100%; + background-color: rgba(0, 0, 0, 0.6); + } + } + &.no-card .image { + margin: 30rpx 30rpx 0; + overflow: hidden; + border-radius: 10rpx; + } + } + &.dynamic { + display: block; + & > .ui-item { + display: block; + overflow: hidden; + & > .text-content { + padding: 0 30rpx 0; + font-size: 30rpx; + margin-bottom: 20rpx; + } + & .square-img { + width: 100%; + height: 200rpx; + border-radius: 6rpx; + } + & .only-img { + width: 100%; + height: 320rpx; + border-radius: 6rpx; + } + } + } + &.goods { + display: block; + & > .ui-item { + padding: 30rpx; + display: flex; + position: relative; + background-color: var(--ui-BG); + & + .ui-item { + border-top: 1rpx solid #eeeeee; + } + .content { + width: 410rpx; + padding: 0rpx; + } + .title { + font-size: 30rpx; + font-weight: 900; + color: #333333; + line-height: 1.4; + height: 1.4em; + overflow: hidden; + } + } + &.col-goods.col-twice { + display: flex; + flex-wrap: wrap; + padding-bottom: 30rpx; + & > .ui-item { + width: calc(50% - 30rpx); + margin: 20rpx 20rpx 0rpx 20rpx; + .content { + padding: 20rpx; + } + } + & > .ui-item:nth-child(2n) { + margin-left: 0rpx; + } + } + &.col-goods > .ui-item { + padding: 0rpx; + display: block; + border: 0px; + .content { + width: 100%; + padding: 30rpx; + } + } + &.no-card > .ui-item .content { + width: 470rpx; + padding: 0rpx; + } + &.no-card > .ui-item .title, + &.col-goods > .ui-item .title { + height: 3em; + overflow: hidden; + } + & > .ui-item .text-linecut-2 { + -webkit-line-clamp: 1; + } + &.no-card > .ui-item .text-linecut-2, + &.col-goods > .ui-item .text-linecut-2 { + -webkit-line-clamp: 2; + line-height: 1.6em; + height: 3.2em; + } + & > .ui-item > image { + width: 200rpx; + height: 200rpx; + margin-right: 20rpx; + border-radius: 6rpx; + } + &.no-card > .ui-item > image { + width: 220rpx; + height: 170rpx; + } + &.col-goods > .ui-item > image { + width: 100%; + height: 340rpx; + border-bottom-left-radius: 0rpx; + border-bottom-right-radius: 0rpx; + display: block; + } + &.col-goods.col-twice > .ui-item > image { + height: 236rpx; + } + } + &.loan { + display: block; + & > .ui-item { + padding: 30rpx 0 30rpx 30rpx; + display: flex; + position: relative; + background-color: var(--box-bg); + + .content { + width: 450rpx; + padding: 0rpx; + .tag-list { + width: 450rpx; + display: flex; + flex-wrap: wrap; + font-size: 12px; + margin-top: 18rpx; + } + } + .action { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + } + } + } + &.houses { + display: block; + & > .ui-item { + padding: 20rpx; + display: flex; + position: relative; + background-color: var(--box-bg); + .image { + width: 230rpx; + height: 180rpx; + margin-right: 20rpx; + border-radius: 6rpx; + } + .content { + width: 400rpx; + padding: 0rpx; + .tag-list { + width: 400rpx; + display: flex; + flex-wrap: wrap; + font-size: 12px; + margin-top: 10rpx; + .ui-item { + height: 20px; + line-height: 20px; + } + } + } + .action { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + } + } + } + + &.product { + display: flex; + flex-wrap: wrap; + padding-bottom: 30rpx; + & > .ui-item { + width: calc(100% - 15rpx); + margin: 20rpx 20rpx 0rpx 20rpx; + background-color: var(--box-bg); + position: relative; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + // display: flex; + // flex-wrap: wrap; + .content { + padding: 20rpx; + // width: calc(100% - 345rpx); + .text-cut { + font-size: 16px; + } + } + .image { + width: 100%; + height: 240rpx; + border-radius: 6rpx 0 0 6rpx; + display: block; + } + .ui-progress-tag { + width: 4em; + text-align: right; + font-size: 12px; + } + .border-top { + width: 100%; + } + .ui-tag { + position: absolute; + top: 0; + left: 0; + border-radius: 6rpx 0 6rpx 0; + } + } + // & > .ui-item:nth-child(2n) { + // margin-left: 0rpx; + // } + } + &.shop { + display: flex; + flex-wrap: wrap; + padding-bottom: 30rpx; + & > .ui-item { + width: calc(50% - 30rpx); + margin: 20rpx 20rpx 0rpx 20rpx; + background-color: var(--box-bg); + padding: 20rpx; + .content { + margin-top: 15rpx; + } + .image { + width: 100%; + height: 285rpx; + border-radius: 6rpx; + display: block; + } + } + & > .ui-item:nth-child(2n) { + margin-left: 0rpx; + } + } + + &.orders .ui-item { + margin-top: 30rpx; + .address-box { + padding: 15rpx; + margin: 0 30rpx 30rpx; + border: 1px solid; + border-color: var(--main-a); + border-radius: 10px; + position: relative; + .ui-form-group { + min-height: 10px; + } + } + } +} diff --git a/miniprogram/mp-cu/colorUI/scss/style/_code.scss b/miniprogram/mp-cu/colorUI/scss/style/_code.scss new file mode 100644 index 00000000..76b21a7f --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_code.scss @@ -0,0 +1,59 @@ +@import '../var'; + +.ui-code { + font-family: Monaco, Menlo, Consolas, 'Courier New', serif; + font-size: 90%; + position: relative; + z-index: 1; + color: var(--ui-TC); + .ui-rich-text { + display: inline-block; + } + + &.code { + display: inline-block; + padding: 0 10rpx; + margin: 0 10rpx; + border-radius: $radius-sm; + line-height: 1.6; + vertical-align: baseline; + } + + &.pre { + display: block; + margin: 1em 0; + line-height: 1.6; + &.hasTitle { + margin: 3.2em 0 1em; + } + // border-radius: $radius-sm; + .ui-code-title { + position: absolute; + top: -2.2em; + color: var(--ui-TC-2); + left: 0; + } + .ui-rich-text { + padding: 40rpx; + white-space: pre-wrap; + word-break: break-all; + word-wrap: break-word; + } + .ui-scroll-view { + &.ui-scroll { + max-height: 500px; + white-space: pre; + } + } + .ui-copy-btn { + position: absolute; + z-index: 2; + top: 0; + right: 0; + padding: 0.8em; + border-radius: 0 $radius-sm 0 $radius-sm; + } + } +} + +@import 'prism'; //代码高亮 diff --git a/miniprogram/mp-cu/colorUI/scss/style/_flex.scss b/miniprogram/mp-cu/colorUI/scss/style/_flex.scss new file mode 100644 index 00000000..75551dd7 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_flex.scss @@ -0,0 +1,67 @@ +/* ================== + 弹性布局 + ==================== */ +@import '../var'; +@import '../mixins'; + +.flex { + display: flex !important; + &-sub { + flex: 1 !important; + } + &-twice { + flex: 2 !important; + } + &-treble { + flex: 3 !important; + } + &-column { + flex-direction: column !important; + } + &-row { + flex-direction: row !important; + } + &-column-reverse { + flex-direction: column-reverse !important; + } + &-row-reverse { + flex-direction: row-reverse !important; + } + &-wrap { + flex-wrap: wrap !important; + } + &-center { + @include flex-center; + } + &-bar { + @include flex-bar; + } +} +.basis { + @each $class, $value in (xs: 20%, sm: 40%, df: 50%, lg: 60%, xl: 80%) { + &-#{$class} { + flex-basis: $value !important; + } + } +} +.align { + @each $class, $value in (start: flex-start, end: flex-end, center: center, stretch: stretch, baseline: baseline) { + &-#{$class} { + align-items: $value !important; + } + } +} +.self { + @each $class, $value in (start: flex-start, end: flex-end, center: center, stretch: stretch, baseline: baseline) { + &-#{$class} { + align-self: $value !important; + } + } +} +.justify { + @each $class, $value in (start: flex-start, end: flex-end, center: center, between: space-between, around: space-around) { + &-#{$class} { + justify-content: $value !important; + } + } +} diff --git a/miniprogram/mp-cu/colorUI/scss/style/_form.scss b/miniprogram/mp-cu/colorUI/scss/style/_form.scss new file mode 100644 index 00000000..e223137c --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_form.scss @@ -0,0 +1,151 @@ +/* ================== + 表单 + ==================== */ +.ui-form-groups { + padding: 1rpx 24rpx; + display: flex; + align-items: center; + min-height: 100rpx; + justify-content: space-between; + .title { + text-align: justify; + padding-right: 30rpx; + font-size: 30rpx; + position: relative; + height: 60rpx; + line-height: 60rpx; + } + .content { + flex: 1; + } + input { + flex: 1; + font-size: 30rpx; + color: #555; + padding-right: 20rpx; + } + text[class*='icon-'] { + font-size: 36rpx; + padding: 0; + box-sizing: border-box; + } + textarea { + margin: 32rpx 0 30rpx; + height: 4.6em; + width: 100%; + line-height: 1.2em; + flex: 1; + font-size: 28rpx; + padding: 0; + } + picker, + .arrow { + flex: 1; + padding-right: 40rpx; + overflow: hidden; + position: relative; + } + picker .picker, + .arrow > view { + line-height: 100rpx; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + width: 100%; + } + picker::after, + .arrow::after { + font-family: 'colorui'; + display: block; + content: '\e601'; + position: absolute; + font-size: 34rpx; + color: #8799a3; + line-height: 100rpx; + width: 60rpx; + text-align: center; + top: 0; + bottom: 0; + right: -20rpx; + margin: auto; + } + textarea[disabled], + textarea[disabled] .placeholder { + color: transparent; + } + &.align-start .title { + height: 1em; + margin-top: 32rpx; + line-height: 1em; + } + .grid-square { + > view { + background-color: #f8f8f8; + border-radius: 12rpx; + .mask { + background-color: rgba(0, 0, 0, 0.6); + position: absolute; + font-size: 20rpx; + color: #ffffff; + width: 100%; + bottom: 0; + text-align: center; + padding: 6rpx 0; + &.red-mask { + background-color: rgba(255, 80, 80, 0.6); + } + } + [class*='icon'] { + position: absolute; + width: 100%; + height: 100%; + display: flex; + align-items: center; + transform: scale(1.5); + justify-content: center; + } + .text-gray { + position: absolute; + width: 100%; + font-size: 24rpx; + text-align: center; + bottom: 20rpx; + } + } + } +} +.disabled { + opacity: 0.6; + cursor: not-allowed !important; +} + +//小程序的组件元素结构与uni-app不一样,需要特殊处理 +ui-form-group { + display: contents; +} +ui-input-box { + display: contents; + input { + width: 100%; + } +} +ui-form ui-form-group:first-child .ui-form-group:after { + display: none; +} +ui-form ui-form-group ui-input-box { + width: 100%; + position: relative; + display: flex; + align-items: center; + input { + flex: 1; + } + textarea { + flex: 1; + width: 100%; + } +} + +ui-radio:last-child .ui-radio:not(.card) { + margin: 0 0.14286em; +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/scss/style/_grid.scss b/miniprogram/mp-cu/colorUI/scss/style/_grid.scss new file mode 100644 index 00000000..a8116d06 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_grid.scss @@ -0,0 +1,117 @@ +/* ================== + 栅栏 + ==================== */ + +.ui-container { + box-sizing: border-box; + margin-left: auto; + margin-right: auto; + padding-left: 30rpx; + padding-right: 30rpx; + width: 100%; + max-width: 1440px; + &-fluid{ + max-width: 100%; + padding-left: 0; + padding-right: 0; + } +} +.ui-grid { + display: flex; + flex-wrap: wrap; + &.multi-column{ + display: block; + column-count: 2; + column-width: 0px; + column-gap: 0px;; + > .ui-item { + break-inside: avoid; + padding: 0.001em; + } + } + &.grid-square { + overflow: hidden; + > .ui-item { + margin-right: 20rpx; + margin-bottom: 20rpx; + position: relative; + overflow: hidden; + } + @for $i from 1 through 12 { + &.ui-cols-#{$i} > .ui-item { + padding-bottom: calc((100% - #{20rpx * ($i - 1)}) / #{$i}); + width: calc((100% - #{20rpx * ($i - 1)}) / #{$i}); + height: 0; + } + } + @for $i from 1 through 12 { + &.ui-cols-#{$i} > .ui-item:nth-child(#{$i}n) { + margin-right: 0; + } + } + } +} +@for $i from 1 through 12 { + .ui-cols-#{$i} .ui-item { + width: calc(100% / #{$i}); + } +} +@for $i from 1 through 12 { + .ui-col-#{$i} { + width: calc(100% / 12 * #{$i}); + } +} +@for $i from 1 through 24 { + .ui-col-lg-#{$i} { + width: calc(100% / 24 * #{$i}); + } +} + +@mixin make_col($screen) { + @for $i from 1 through 12 { + .ui-col-#{$screen}-#{$i} { + width: calc(100% / 12 * #{$i}); + } + .ui-cols-#{$screen}-#{$i} .ui-item { + width: calc(100% / #{$i}); + } + } +} + +// 小屏 +@media screen and (min-width: 0px) { + @include make_col('xs'); +} + +// 小屏 +@media screen and (min-width: 320px) { + @include make_col('sm'); +} + +// 中屏 +@media screen and (min-width: 768px) { + @include make_col('md'); +} + +// 普通屏 +@media screen and (min-width: 1025px) { + @include make_col('lg'); +} + +// 大屏 +@media screen and (min-width: 1440px) { + @include make_col('xl'); +} + +// 超大屏 +@media screen and (min-width: 1920px) { + @include make_col('xxl'); +} + + + + + +ui-col { + display: contents; +} diff --git a/miniprogram/mp-cu/colorUI/scss/style/_markdown.scss b/miniprogram/mp-cu/colorUI/scss/style/_markdown.scss new file mode 100644 index 00000000..546ab419 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_markdown.scss @@ -0,0 +1,62 @@ +.cu-markdown { + position: relative; + z-index: 1; + &.selectable { + cursor: auto; + user-select: text; + } + inline { + display: inline-block; + } + + .list { + .list-item { + line-height: 1.8; + .list { + margin-left: 1.28571em; + .ui-title { + transform: scale(0.6); + &:before { + content: '\e716'; + } + } + } + } + .list-item-p { + position: relative; + padding-left: 1.5em; + .list-item-t { + display: block; + width: 1.3em; + text-align: center; + position: absolute; + left: 0; + } + } + } + .md-table + .md-table { + margin-top: 30rpx; + } +} + +.paragraph { + margin: 0 0 40rpx; + line-height: 1.8; +} + +.blockquote { + @extend .paragraph; + padding: 20rpx 30rpx; + border-left-style: solid; + border-left-width: 10rpx; + border-color: var(--ui-Border); + background: none repeat scroll 0 0 rgba(102, 128, 153, 0.05); + + .paragraph { + margin-bottom: 30rpx; + } + + .paragraph:last-child { + margin-bottom: 0; + } +} diff --git a/miniprogram/mp-cu/colorUI/scss/style/_menu.scss b/miniprogram/mp-cu/colorUI/scss/style/_menu.scss new file mode 100644 index 00000000..0b19c94f --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_menu.scss @@ -0,0 +1,65 @@ +@import '../var'; + +.ui-menu { + background-color: var(--ui-BG); +} + +.ui-menu-item { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + min-height: 4em; + padding: 0 30rpx; + .ui-menu-item-icon { + width: 1.7em; + margin-right: 0.3em; + position: relative; + display: flex; + align-items: center; + justify-content: center; + transform: scale(1.3); + } + .ui-menu-item-icon .ui-menu-item-image { + width: 1.2em; + height: 1.2em; + display: inline-block; + } + .ui-menu-item-content { + flex: 1; + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + } + .ui-menu-item-arrow { + width: 1.6em; + text-align: center; + color: var(--ui-TC-3); + } + &:after { + content: ' '; + width: calc(200% - 120rpx); + left: 30rpx; + position: absolute; + top: 0; + box-sizing: border-box; + height: 200%; + border-top: 1px solid var(--ui-Border); + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + } + &.first-item:after { + display: none; + } + &:first-child:after{ + //display: none; + } +} + +ui-menu ui-menu-item:first-child .ui-menu-item:after { + display: none; + //border-top: 0; +} diff --git a/miniprogram/mp-cu/colorUI/scss/style/_prism.scss b/miniprogram/mp-cu/colorUI/scss/style/_prism.scss new file mode 100644 index 00000000..32593384 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_prism.scss @@ -0,0 +1,143 @@ +/* PrismJS 1.19.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ + +@import '../var'; + +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.comment, +.prolog, +.doctype, +.cdata { + color: slategray; +} + +.punctuation { + color: $grey; +} + +.namespace { + opacity: .7; +} + +.property, +.tag, +.boolean, +.number, +.constant, +.symbol, +.deleted { + color: $green; +} + +.selector, +.attr-name, +.string, +.char, +.builtin, +.inserted { + color: $blue; +} + +.operator, +.entity, +.url, +.language-css .string, +.style .string { + color: $brown; +} + +.atrule, +.attr-value, +.keyword { + color: $cyan; +} + +.function, +.class-name { + color: $red; +} + +.regex, +.important, +.variable { + color: $orange; +} + +.important, +.bold { + font-weight: bold; +} +.italic { + font-style: italic; +} + +.entity { + cursor: help; +} + diff --git a/miniprogram/mp-cu/colorUI/scss/style/_shadow.scss b/miniprogram/mp-cu/colorUI/scss/style/_shadow.scss new file mode 100644 index 00000000..28da801b --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_shadow.scss @@ -0,0 +1,91 @@ +/* ================== + 阴影 + ==================== */ +@import '../var'; + +.shadow { + box-shadow: var(--ui-Shadow); + &-sm { + box-shadow: var(--ui-Shadow-sm); + } + &-lg { + box-shadow: var(--ui-Shadow-lg); + } + &-inset { + box-shadow: var(--ui-Shadow-inset); + } + @each $color, $value in $colors { + @at-root .shadow-#{$color} { + box-shadow: 0 .5em 1em rgba($value, var(--ui-Shadow-opacity)); + } + &-sm.shadow-#{$color} { + box-shadow: 0 .125em .25em rgba($value, var(--ui-Shadow-opacity)); + } + &-lg.shadow-#{$color} { + box-shadow: 0 1em 3em rgba($value, var(--ui-Shadow-opacity-lg)); + } + } + + &-warp { + position: relative; + } + &-warp:before, + &-warp:after { + position: absolute; + content: ''; + bottom: -10rpx; + left: 20rpx; + width: calc(50% - #{40rpx}); + height: 30rpx; + transform: skew(0deg, -6deg); + transform-origin: 50% 50%; + background-color: rgba(0, 0, 0, var(--ui-Shadow-opacity)); + filter: blur(20rpx); + z-index: -1; + opacity: 0.5; + } + &-warp:after { + right: 20rpx; + left: auto; + transform: skew(0deg, 6deg); + } + &-blur { + position: relative; + } + &-blur::before { + content: ''; + display: block; + background: inherit; + filter: blur(20rpx); + position: absolute; + width: 100%; + height: 100%; + top: .5em; + left: .5em; + z-index: -1; + opacity: var(--ui-Shadow-opacity-lg); + transform-origin: 0 0; + border-radius: inherit; + transform: scale(1, 1); + } +} +.drop-shadow { + filter: drop-shadow(0 0 30rpx rgba(0, 0, 0, 0.1)); + &-sm { + filter: drop-shadow( 0 4rpx 4rpx rgba(0, 0, 0, 0.06)); + } + &-lg { + filter: drop-shadow( 0 30rpx 60rpx rgba(0, 0, 0, 0.2)); + } + @each $color, $value in $colors { + @at-root .drop-shadow-#{$color} { + filter: drop-shadow( 0 15rpx 15rpx rgba(darken($value, 10%), 0.3)); + } + &-sm.drop-shadow-#{$color} { + filter: drop-shadow( 0 4rpx 4rpx rgba(darken($value, 10%), 0.3)); + } + &-lg.drop-shadow-#{$color} { + filter: drop-shadow( 0 50rpx 100rpx rgba(darken($value, 10%), 0.2)); + } + } +} diff --git a/miniprogram/mp-cu/colorUI/scss/style/_steps.scss b/miniprogram/mp-cu/colorUI/scss/style/_steps.scss new file mode 100644 index 00000000..e5242f19 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_steps.scss @@ -0,0 +1,166 @@ +.ui-steps { + display: flex; + width: 100%; + .ui-step { + flex: 1; + text-align: center; + position: relative; + min-width: 100rpx; + .ui-steps-icon, + .ui-steps-num { + display: block; + font-size: 40rpx; + line-height: 80rpx; + } + &:not([class*='text-']) { + color: #8799a3; + } + + &::before, + &::after { + content: ''; + display: block; + position: absolute; + height: 0; + width: calc(100% - 80rpx); + border-bottom: 1px solid #ccc; + left: calc(0px - (100% - 80rpx) / 2); + top: 40rpx; + z-index: 0; + } + &::after { + border-bottom: 1px solid currentColor; + width: 0; + transition: all 0.3s ease-in-out 0s; + } + &[class*='text-']::after { + width: calc(100% - 80rpx); + color: currentColor !important; + } + + &:first-child::before, + &:first-child::after { + display: none; + } + } + &.steps-scroll { + display: block; + white-space: nowrap; + .ui-step { + display: inline-block; + } + } + + &.steps-number { + .ui-step { + .ui-steps-num { + width: 40rpx; + height: 40rpx; + border-radius: 50%; + line-height: 40rpx; + margin: 20rpx auto; + font-size: 24rpx; + border: 1px solid currentColor; + position: relative; + overflow: hidden; + + &::before, + &::after { + content: attr(data-index); + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + margin: auto; + transition: all 0.3s ease-in-out 0s; + transform: translateY(0); + } + + &::after { + transform: translateY(40rpx); + color: #ffffff; + transition: all 0.3s ease-in-out 0s; + } + } + + &[class*='ui-TC-'] .ui-steps-num { + background-color: currentColor; + &::before { + transform: translateY(-40rpx); + color: #ffffff; + } + &::after { + content: "\e69f"; + font-family: 'colorui'; + color: #ffffff; + transform: translateY(0); + } + &.ui-steps-err::after { + content: "\e6ed"; + } + } + } + } + + &.steps-column { + flex-direction: column; + .ui-step { + display: flex; + flex: initial; + height: 60px; + .ui-steps-text{ + padding-top: 10px; + text-align: left; + padding-left: 10px; + .ui-steps-title{ + font-size: 16px; + } + .ui-steps-desc{ + font-size: 12px; + opacity: .7; + } + } + .ui-steps-num{ + margin: 20rpx 0; + } + &::before, + &::after { + width: 0; + height: 30px; + border-left: 1px solid #ccc; + top: -25px; + left: 10px; + z-index: 0; + } + &::after { + border-left: 1px solid currentColor; + height: 0; + transition: all 0.3s ease-in-out 0s; + } + &[class*='text-']::after { + height: 30px; + color: currentColor !important; + } + } + } + + &.steps-arrow { + .ui-step { + &::before, + &::after { + width: calc(100% - 80rpx); + content: "\e601"; + font-family: 'colorui'; + height: 30rpx; + border-bottom-width: 0; + line-height: 30rpx; + top: 0; + bottom: 0; + margin: auto; + color: #ccc; + font-size: 40rpx; + } + } + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/scss/style/_table.scss b/miniprogram/mp-cu/colorUI/scss/style/_table.scss new file mode 100644 index 00000000..3da052fb --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_table.scss @@ -0,0 +1,134 @@ +@import '../var'; +.ui-table { + background-color: var(--ui-BG); + max-width: 100%; + display: table; + &.table-full { + width: 100%; + } + &.table-radius{ + border-radius: $radius; + .ui-table-header { + .ui-table-tr { + border-top-left-radius: $radius; + border-top-right-radius: $radius; + } + .ui-table-th { + &:first-child { + border-top-left-radius: $radius; + } + &:last-child { + border-top-right-radius: $radius; + } + } + } + } + .ui-table-header { + display: table-header-group; + .ui-table-th { + font-weight: bold; + border-bottom: 1px solid var(--ui-Border); + white-space: nowrap; + + padding: 1em .8em; + } + } + + .ui-table-tr { + display: table-row; + z-index: 1; + } + + .ui-table-body { + display: table-row-group; + position: relative; + .ui-table-tr:hover { + background-color: var(--ui-BG-1) !important; + } + .ui-table-loading { + min-height: 300px; + position: absolute !important; + width: 100%; + height: 100%; + z-index: 2; + display: flex; + align-items: center; + justify-content: center; + border: 1px solid var(--ui-Border); + } + } + + .ui-table-td, + .ui-table-th { + display: table-cell; + text-align: unset; + padding: 0.5em .8em; + // font-size: 90%; + vertical-align: middle; + } +} + +.ui-table.table-border { + &, + & .ui-table-td, + & .ui-table-th { + position: relative; + &::after { + content: ' '; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + border: 1px solid var(--ui-Border); + z-index: 1; + } + } + .ui-table-td, + .ui-table-th { + &::after { + border-width: 1px 1px 0 0; + } + &:last-child::after { + border-right: none; + } + } +} +.ui-table.table-radius { + &::after { + border-radius: calc(#{$radius} * 2); + } + & .ui-table-tr .ui-table-th:first-child{ + border-top-left-radius: calc(#{$radius} * 2); + } + & .ui-table-tr .ui-table-th:last-child { + border-top-right-radius: calc(#{$radius} * 2); + } + & .ui-table-tr:last-child .ui-table-td:first-child{ + border-bottom-left-radius: #{$radius}; + } + & .ui-table-tr:last-child .ui-table-td:last-child { + border-bottom-right-radius: #{$radius}; + } +} +.ui-table.table-striped > .ui-table-body > .ui-table-tr:nth-child(2n + 1), +.ui-table.table-striped > .ui-table-body > .ui-table-tr:nth-child(2n + 1) { + background-color: var(--ui-BG-1); +} + +.table-responsive { + width: inherit; + height: 100%; + max-width: 100%; + overflow: hidden; + box-sizing: border-box; + .table-responsive-box { + position: relative; + overflow: hidden; + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/scss/style/_tag.scss b/miniprogram/mp-cu/colorUI/scss/style/_tag.scss new file mode 100644 index 00000000..a8c1f1dd --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_tag.scss @@ -0,0 +1,8 @@ +ui-tag { + &:first-child{ + margin-left: 0; + } + &:last-child{ + margin-right: 0; + } +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/scss/style/_text.scss b/miniprogram/mp-cu/colorUI/scss/style/_text.scss new file mode 100644 index 00000000..c6fdf433 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/style/_text.scss @@ -0,0 +1,134 @@ +/* ================== + 文本 + ==================== */ +@import '../var'; + +.font-0{ + font-size: 24rpx; + --textSize:-4rpx; +} +.font-1{ + font-size: 28rpx; + --textSize:0rpx; +} +.font-2{ + font-size: 32rpx; + --textSize:4rpx; +} +.font-3{ + font-size: 36rpx; + --textSize:8rpx; +} +.font-4{ + font-size: 40rpx; + --textSize:12rpx; +} +.text { + @each $class, $value in $fontsize { + &-#{$class}, + &-#{$value / 2} { + font-size: calc(#{$value}rpx + var(--textSize)) !important; + } + } + &-cut { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } + @at-root [class*='text-linecut'] { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; + word-break: break-all; + } + @for $i from 2 through 10 { + &-linecut-#{$i} { + -webkit-line-clamp: #{$i}; + } + } + &-justify { + text-align: justify; + } + &-justify-line { + text-align: justify; + line-height: 0.5em; + margin-top: 0.5em; + &::after { + content: '.'; + display: inline-block; + width: 100%; + } + } + + &-Abc { + text-transform: Capitalize !important; + } + &-ABC { + text-transform: Uppercase !important; + } + &-abc { + text-transform: Lowercase !important; + } + &-del, + &-line { + text-decoration: line-through !important; + } + &-bottomline { + text-decoration: underline !important; + } + &-italic { + font-style: italic !important; + } + &-style-none { + text-decoration: none !important; + } + &-break { + word-break: break-word !important; + overflow-wrap: break-word !important; + } + &-reset { + color: inherit !important; + } + &-price::before { + content: '¥'; + font-size: 80%; + margin-right: 4rpx; + } + &-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; + } +} + +.heading-1 { + margin: 60rpx 0 30rpx; + font-size: #{map-get($fontsize, xxl)}rpx !important; +} + +.heading-2 { + margin: 40rpx 0 20rpx; + font-size: #{map-get($fontsize, xl)}rpx !important; +} + +.heading-3 { + margin: 30rpx 0 10rpx; + font-size: #{map-get($fontsize, lg)}rpx !important; +} + +.heading-4 { + margin: 20rpx 0 10rpx; + font-size: #{map-get($fontsize, df)}rpx !important; +} + +.heading-5 { + margin: 10rpx 0 10rpx; + font-size: #{map-get($fontsize, sm)}rpx !important; +} + +.heading-6 { + font-size: #{map-get($fontsize, xs)}rpx !important; +} \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/scss/theme/_dark.scss b/miniprogram/mp-cu/colorUI/scss/theme/_dark.scss new file mode 100644 index 00000000..aeb49987 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/theme/_dark.scss @@ -0,0 +1,40 @@ +// 核心主题样式文件 +@mixin theme-dark { + + // 背景色 + --ui-BG: #393939; + --ui-BG-1: #333333; + --ui-BG-2: #2c2c2c; + --ui-BG-3: #292929; + --ui-BG-4: #222222; + + // 文本色 + --ui-TC: #ffffff; + --ui-TC-1: #d4d4d4; + --ui-TC-2: #919191; + --ui-TC-3: #6a6a6a; + --ui-TC-4: #474747; + + // 模糊 + --ui-Blur: rgba(38, 38, 38, 0.98); + --ui-Blur-1: rgba(38, 38, 38, 0.75); + --ui-Blur-2: rgba(38, 38, 38, 0.25); + --ui-Blur-3: rgba(38, 38, 38, 0.05); + + // 边框 + --ui-Border: rgba(119, 119, 119, 0.25); + --ui-Outline: rgba(255,255,255,0.1); + --ui-Line: rgba(119,119,119,0.25); + + // 透明与阴影 + --ui-Shadow: 0 .5em 1em rgba(0, 0, 0, 0.45); + --ui-Shadow-sm: 0 .125em .25em rgba(0, 0, 0, 0.475); + --ui-Shadow-lg: 0 1em 3em rgba(0, 0, 0, 0.475); + --ui-Shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.475); + + --ui-Shadow-opacity: 0.55; + --ui-Shadow-opacity-sm: 0.175; + --ui-Shadow-opacity-lg: 0.75; + + --ui-BG-opacity: .1; +} diff --git a/miniprogram/mp-cu/colorUI/scss/theme/_light.scss b/miniprogram/mp-cu/colorUI/scss/theme/_light.scss new file mode 100644 index 00000000..60bc2c66 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/theme/_light.scss @@ -0,0 +1,41 @@ +// 核心主题样式文件 +@mixin theme-light { + + // 背景色 + --ui-BG: #ffffff; + --ui-BG-1: #f6f6f6; + --ui-BG-2: #f1f1f1; + --ui-BG-3: #e8e8e8; + --ui-BG-4: #e0e0e0; + + // 文本色 + --ui-TC: #303030; + --ui-TC-1: #525252; + --ui-TC-2: #777777; + --ui-TC-3: #9e9e9e; + --ui-TC-4: #c6c6c6; + + // 模糊 + --ui-Blur: rgba(255, 255, 255, 0.98); + --ui-Blur-1: rgba(255, 255, 255, 0.75); + --ui-Blur-2: rgba(255,255,255,0.25); + --ui-Blur-3: rgba(255,255,255,0.05); + + // 边框 + --ui-Border: rgba(119,119,119,0.25); + --ui-Outline: rgba(0,0,0,0.1); + --ui-Line: rgba(119,119,119,0.25); + + // 透明与阴影 + --ui-Shadow: 0 .5em 1em rgba(0, 0, 0, 0.15); + --ui-Shadow-sm: 0 .125em .25em rgba(0, 0, 0, 0.075); + --ui-Shadow-lg: 0 1em 3em rgba(0, 0, 0, 0.175); + --ui-Shadow-inset: inset 0 .1em .2em rgba(0, 0, 0, 0.075); + + --ui-Shadow-opacity: 0.45; + --ui-Shadow-opacity-sm: 0.075; + --ui-Shadow-opacity-lg: 0.65; + + --ui-BG-opacity: .1; +} + \ No newline at end of file diff --git a/miniprogram/mp-cu/colorUI/scss/theme/_style.scss b/miniprogram/mp-cu/colorUI/scss/theme/_style.scss new file mode 100644 index 00000000..4bc3e017 --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/theme/_style.scss @@ -0,0 +1,53 @@ +@import '../var'; +@import '../mixins'; +@import './light'; //浅蓝主题 +@import './dark'; //深蓝主题 + +// 多主题 +.theme-light { + @include theme-light; +} +.theme-dark { + @include theme-dark; +} +.theme-auto { + @include theme-light; +} +@media (prefers-color-scheme: dark) { + .theme-auto { + @include theme-dark; + } +} + +@each $value in ('', '-1', '-2', '-3', '-4') { + .ui-BG#{$value} { + background-color: var(--ui-BG#{$value}) !important; + color: var(--ui-TC); + } + .ui-TC#{$value} { + color: var(--ui-TC#{$value}) !important; + } + .ui-BG-Main#{$value} { + background-color: var(--ui-BG-Main#{$value}) !important; + color: var(--ui-BG-Main-TC) !important; + } + .ui-TC-Main#{$value} { + color: var(--ui-BG-Main#{$value}) !important; + } +} + +@each $color, $value in $colors { + .main-#{$color} { + --ui-BG-Main: #{$value}; + --ui-BG-Main-1: #{mix(rgba(255, 255, 255, 0.7), desaturate($value, 20%), 10%)}; + --ui-BG-Main-2: #{mix(rgba(255, 255, 255, 0.6), desaturate($value, 40%), 20%)}; + --ui-BG-Main-3: #{mix(rgba(119, 119, 119, 0.2), desaturate($value, 40%), 40%)}; + --ui-BG-Main-4: #{mix(rgba(119, 119, 119, 0.1), desaturate($value, 40%), 60%)}; + + @if $color == 'yellow' { + --ui-BG-Main-TC: #333333 !important; + } @else { + --ui-BG-Main-TC: #ffffff !important; + } + } +} diff --git a/miniprogram/mp-cu/colorUI/scss/ui.scss b/miniprogram/mp-cu/colorUI/scss/ui.scss new file mode 100644 index 00000000..6648d89c --- /dev/null +++ b/miniprogram/mp-cu/colorUI/scss/ui.scss @@ -0,0 +1,22 @@ +@import './var'; //主样式* +@import './_mixins'; //主样式* + +@import './theme/style'; //系统主题 +@import './main'; //主样式* + +@import './style/background'; //背景 +@import './style/grid'; //列 +@import './style/flex'; //布局 +@import './style/border'; //边框 +@import './style/text'; //文本 +@import './style/shadow'; //阴影 +@import './icon/style'; //图标 +@import './style/tag'; //标签 +@import './style/button'; //按钮 +@import './style/form'; //表单 +@import './style/menu'; //菜单 +@import './style/markdown'; //文本 +@import './style/card'; //卡片 +@import './style/table'; //表格 +@import './style/code'; //代码片段 +@import './style/_steps'; //步骤条 diff --git a/miniprogram/mp-cu/lib/diff.js b/miniprogram/mp-cu/lib/diff.js new file mode 100644 index 00000000..98624089 --- /dev/null +++ b/miniprogram/mp-cu/lib/diff.js @@ -0,0 +1,72 @@ +/** + * diff库 + * @author Leisure + * @update 2019.11.27 + * @param {object} current - 当前状态 + * @param {object} prev - 之前状态 + */ +const diff = function diff(current = {}, prev = {}) { + let result = {}; + updateDiff(current, prev, "", result); + nullDiff(current, prev, "", result); + return result; +}; + +/** + * 判断是否为数组 + * @param value + * @returns {boolean} + */ +const ifArray = (value) => { + return value instanceof Array || Object.prototype.toString.call(value) === '[object Array]'; +}; + +/** + * 判断是否为对象 + * @param value + * @returns {boolean} + */ +const ifObject = (value) => { + return Object.prototype.toString.call(value) === '[object Object]'; +}; + +const updateDiff = function updateDiff(current = {}, prev = {}, root = "", result = {}) { + if(ifArray(current) && ((ifArray(prev) && current.length !== prev.length) || !ifArray(prev))){ + result[root] = current + return; + } + Object.entries(current).forEach(item => { + let key = item[0], value = item[1], path = root === "" ? key : root + "." + key; + if (ifArray(current)) { + path = root === "" ? key : root + "[" + key + "]"; + } + if (!prev.hasOwnProperty(key)) { + result[path] = value; + } else if ((ifObject(prev[key]) && ifObject(current[key])) || (ifArray(prev[key]) && ifArray(current[key]))) { + updateDiff(current[key], prev[key], path, result); + } else if (prev[key] !== current[key]) { + result[path] = value; + } + }); + return result; +}; + +const nullDiff = function nullDiff(current = {}, prev = {}, root = "", result = {}) { + if(ifArray(current) && ((ifArray(prev) && current.length !== prev.length) || !ifArray(prev))){ + return; + } + Object.entries(prev).forEach(item => { + let key = item[0], path = root === "" ? key : root + "." + key; + if (ifArray(current)) { + path = root === "" ? key : root + "[" + key + "]"; + } + if (!current.hasOwnProperty(key)) { + result[path] = null; + } else if ((ifObject(prev[key]) && ifObject(current[key])) || (ifArray(prev[key]) && ifArray(current[key]))) { + nullDiff(current[key], prev[key], path, result); + } + }); + return result; +}; + +export default diff; \ No newline at end of file diff --git a/miniprogram/mp-cu/lib/prism.js b/miniprogram/mp-cu/lib/prism.js new file mode 100644 index 00000000..d8d12aba --- /dev/null +++ b/miniprogram/mp-cu/lib/prism.js @@ -0,0 +1,484 @@ +/* PrismJS 1.19.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +var _self = "undefined" != typeof window ? window : "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope ? + self : {}, + Prism = function(u) { + var c = /\blang(?:uage)?-([\w-]+)\b/i, + n = 0, + C = { + manual: u.Prism && u.Prism.manual, + disableWorkerMessageHandler: u.Prism && u.Prism.disableWorkerMessageHandler, + util: { + encode: function(e) { + return e instanceof _ ? new _(e.type, C.util.encode(e.content), e.alias) : Array.isArray(e) ? e.map(C.util.encode) : + e.replace(/&/g, "&").replace(/ e.length) return; + if (!(k instanceof _)) { + if (h && y != n.length - 1) { + if (c.lastIndex = v, !(O = c.exec(e))) break; + for (var b = O.index + (f && O[1] ? O[1].length : 0), w = O.index + O[0].length, A = y, P = v, x = n.length; A < + x && (P < w || !n[A].type && !n[A - 1].greedy); ++A)(P += n[A].length) <= b && (++y, v = P); + if (n[y] instanceof _) continue; + S = A - y, k = e.slice(v, P), O.index -= v + } else { + c.lastIndex = 0; + var O = c.exec(k), + S = 1 + } + if (O) { + f && (d = O[1] ? O[1].length : 0); + w = (b = O.index + d) + (O = O[0].slice(d)).length; + var j = k.slice(0, b), + N = k.slice(w), + E = [y, S]; + j && (++y, v += j.length, E.push(j)); + var L = new _(l, g ? C.tokenize(O, g) : O, m, O, h); + if (E.push(L), N && E.push(N), Array.prototype.splice.apply(n, E), 1 != S && C.matchGrammar(e, n, r, y, v, + !0, l + "," + u), i) break + } else if (i) break + } + } + } + } + }, + tokenize: function(e, n) { + var r = [e], + t = n.rest; + if (t) { + for (var a in t) n[a] = t[a]; + delete n.rest + } + return C.matchGrammar(e, r, n, 0, 0, !1), r + }, + hooks: { + all: {}, + add: function(e, n) { + var r = C.hooks.all; + r[e] = r[e] || [], r[e].push(n) + }, + run: function(e, n) { + var r = C.hooks.all[e]; + if (r && r.length) + for (var t, a = 0; t = r[a++];) t(n) + } + }, + Token: _ + }; + + function _(e, n, r, t, a) { + this.type = e, this.content = n, this.alias = r, this.length = 0 | (t || "").length, this.greedy = !!a + } + if (u.Prism = C, _.stringify = function(e, n) { + if ("string" == typeof e) return e; + if (Array.isArray(e)) return e.map(function(e) { + return _.stringify(e, n) + }).join(""); + var r = { + type: e.type, + content: _.stringify(e.content, n), + tag: "span", + classes: ["token", e.type], + attributes: {}, + language: n + }; + if (e.alias) { + var t = Array.isArray(e.alias) ? e.alias : [e.alias]; + Array.prototype.push.apply(r.classes, t) + } + C.hooks.run("wrap", r); + var a = Object.keys(r.attributes).map(function(e) { + return e + '="' + (r.attributes[e] || "").replace(/"/g, """) + '"' + }).join(" "); + return "<" + r.tag + ' class="' + r.classes.join(" ") + '"' + (a ? " " + a : "") + ">" + r.content + "" + }, !u.document) return u.addEventListener && (C.disableWorkerMessageHandler || u.addEventListener("message", + function(e) { + var n = JSON.parse(e.data), + r = n.language, + t = n.code, + a = n.immediateClose; + u.postMessage(C.highlight(t, C.languages[r], r)), a && u.close() + }, !1)), C; + var e = C.util.currentScript(); + + function r() { + C.manual || C.highlightAll() + } + if (e && (C.filename = e.src, e.hasAttribute("data-manual") && (C.manual = !0)), !C.manual) { + var t = document.readyState; + "loading" === t || "interactive" === t && e && e.defer ? document.addEventListener("DOMContentLoaded", r) : window.requestAnimationFrame ? + window.requestAnimationFrame(r) : window.setTimeout(r, 16) + } + return C + }(_self); +"undefined" != typeof module && module.exports && (module.exports = Prism), "undefined" != typeof global && (global.Prism = + Prism); +Prism.languages.markup = { + comment: //, + prolog: /<\?[\s\S]+?\?>/, + doctype: { + pattern: /"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!)*\]\s*)?>/i, + greedy: !0 + }, + cdata: //i, + tag: { + pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i, + greedy: !0, + inside: { + tag: { + pattern: /^<\/?[^\s>\/]+/i, + inside: { + punctuation: /^<\/?/, + namespace: /^[^\s>\/:]+:/ + } + }, + "attr-value": { + pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i, + inside: { + punctuation: [/^=/, { + pattern: /^(\s*)["']|["']$/, + lookbehind: !0 + }] + } + }, + punctuation: /\/?>/, + "attr-name": { + pattern: /[^\s>\/]+/, + inside: { + namespace: /^[^\s>\/:]+:/ + } + } + } + }, + entity: /&#?[\da-z]{1,8};/i + }, Prism.languages.markup.tag.inside["attr-value"].inside.entity = Prism.languages.markup.entity, Prism.hooks.add( + "wrap", + function(a) { + "entity" === a.type && (a.attributes.title = a.content.replace(/&/, "&")) + }), Object.defineProperty(Prism.languages.markup.tag, "addInlined", { + value: function(a, e) { + var s = {}; + s["language-" + e] = { + pattern: /(^$)/i, + lookbehind: !0, + inside: Prism.languages[e] + }, s.cdata = /^$/i; + var n = { + "included-cdata": { + pattern: //i, + inside: s + } + }; + n["language-" + e] = { + pattern: /[\s\S]+/, + inside: Prism.languages[e] + }; + var t = {}; + t[a] = { + pattern: RegExp("(<__[\\s\\S]*?>)(?:\\s*|[\\s\\S])*?(?=<\\/__>)".replace(/__/g, a), + "i"), + lookbehind: !0, + greedy: !0, + inside: n + }, Prism.languages.insertBefore("markup", "cdata", t) + } + }), Prism.languages.xml = Prism.languages.extend("markup", {}), Prism.languages.html = Prism.languages.markup, Prism.languages + .mathml = Prism.languages.markup, Prism.languages.svg = Prism.languages.markup; +! function(s) { + var e = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/; + s.languages.css = { + comment: /\/\*[\s\S]*?\*\//, + atrule: { + pattern: /@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/, + inside: { + rule: /^@[\w-]+/, + "selector-function-argument": { + pattern: /(\bselector\s*\((?!\s*\))\s*)(?:[^()]|\((?:[^()]|\([^()]*\))*\))+?(?=\s*\))/, + lookbehind: !0, + alias: "selector" + } + } + }, + url: { + pattern: RegExp("url\\((?:" + e.source + "|[^\n\r()]*)\\)", "i"), + inside: { + function: /^url/i, + punctuation: /^\(|\)$/ + } + }, + selector: RegExp("[^{}\\s](?:[^{};\"']|" + e.source + ")*?(?=\\s*\\{)"), + string: { + pattern: e, + greedy: !0 + }, + property: /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, + important: /!important\b/i, + function: /[-a-z0-9]+(?=\()/i, + punctuation: /[(){};:,]/ + }, s.languages.css.atrule.inside.rest = s.languages.css; + var t = s.languages.markup; + t && (t.tag.addInlined("style", "css"), s.languages.insertBefore("inside", "attr-value", { + "style-attr": { + pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, + inside: { + "attr-name": { + pattern: /^\s*style/i, + inside: t.tag.inside + }, + punctuation: /^\s*=\s*['"]|['"]\s*$/, + "attr-value": { + pattern: /.+/i, + inside: s.languages.css + } + }, + alias: "language-css" + } + }, t.tag)) +}(Prism); +Prism.languages.clike = { + comment: [{ + pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, + lookbehind: !0 + }, { + pattern: /(^|[^\\:])\/\/.*/, + lookbehind: !0, + greedy: !0 + }], + string: { + pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + greedy: !0 + }, + "class-name": { + pattern: /(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i, + lookbehind: !0, + inside: { + punctuation: /[.\\]/ + } + }, + keyword: /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, + boolean: /\b(?:true|false)\b/, + function: /\w+(?=\()/, + number: /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, + operator: /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/, + punctuation: /[{}[\];(),.:]/ +}; +Prism.languages.javascript = Prism.languages.extend("clike", { + "class-name": [Prism.languages.clike["class-name"], { + pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/, + lookbehind: !0 + }], + keyword: [{ + pattern: /((?:^|})\s*)(?:catch|finally)\b/, + lookbehind: !0 + }, { + pattern: /(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/, + lookbehind: !0 + }], + number: /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/, + function: /#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/, + operator: /--|\+\+|\*\*=?|=>|&&|\|\||[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?[.?]?|[~:]/ + }), Prism.languages.javascript["class-name"][0].pattern = + /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/, Prism.languages.insertBefore("javascript", + "keyword", { + regex: { + pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*[\s\S]*?\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/, + lookbehind: !0, + greedy: !0 + }, + "function-variable": { + pattern: /#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/, + alias: "function" + }, + parameter: [{ + pattern: /(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/, + lookbehind: !0, + inside: Prism.languages.javascript + }, { + pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i, + inside: Prism.languages.javascript + }, { + pattern: /(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/, + lookbehind: !0, + inside: Prism.languages.javascript + }, { + pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/, + lookbehind: !0, + inside: Prism.languages.javascript + }], + constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/ + }), Prism.languages.insertBefore("javascript", "string", { + "template-string": { + pattern: /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/, + greedy: !0, + inside: { + "template-punctuation": { + pattern: /^`|`$/, + alias: "string" + }, + interpolation: { + pattern: /((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/, + lookbehind: !0, + inside: { + "interpolation-punctuation": { + pattern: /^\${|}$/, + alias: "punctuation" + }, + rest: Prism.languages.javascript + } + }, + string: /[\s\S]+/ + } + } + }), Prism.languages.markup && Prism.languages.markup.tag.addInlined("script", "javascript"), Prism.languages.js = + Prism.languages.javascript; diff --git a/miniprogram/mp-cu/main.js b/miniprogram/mp-cu/main.js new file mode 100644 index 00000000..6f12fa28 --- /dev/null +++ b/miniprogram/mp-cu/main.js @@ -0,0 +1,396 @@ +import { CUStoreInit } from '/store/index' +/** + * @author bypanghu@163.com (https://github.com/bypanghu) + * @author iZaiZaiA (https://github.com/iZaiZaiA) + */ + +let version = '3.3.2'; + +let store = {}, sys_info = wx.getSystemInfoSync(); +let baseMethod = { + //设置主题 + setTheme(data) { + store.setState({'sys_theme': data}) + wx.setStorageSync('sys_theme', data); + //跟随系统 + if (data === 'auto') { + setStatusStyle(wx.getSystemInfoSync().theme === 'light' ? 'dark' : 'light'); + } else { + setStatusStyle(data === 'light' ? 'dark' : 'light'); + } + }, + //设置主颜色 + setMain(data) { + store.setState({sys_main: data}); + wx.setStorageSync('sys_main', data); + }, + //设置字号等级 + setText(data) { + store.setState({sys_text: data}); + wx.setStorageSync('sys_text', data); + }, + $showDialog({title , content , showCancel , cancelText, confirmText , success}) { + store.$p.map(item =>{ + if(item.is.indexOf('components/ui-modal/ui-modal') > -1 ){ + //强制更新所有页面的successBack 为设定的success + item['successBack'] = success + } + }) + store.setState({ + '$Modal.show': true, + '$dialog.title' : title, + '$dialog.content' : content, + '$dialog.showCancel' : showCancel, + '$dialog.cancelText' : cancelText, + '$dialog.confirmText' : confirmText + }); + }, + setToast( data) { + let key ={} + Object.assign(key,data); + console.log(key) + // state.toast = Object.assign(state.toast,data); + }, + $tips(res, duration = 1500, mask = false, icon= '') { + if(_object(res)) { + store.setState({ + '$toast.title': res.title || '', + '$toast.duration': res.duration || duration, + '$toast.icon': res.icon || icon, + '$toast.mask': res.mask || mask + }) + } else { + store.setState({ + '$toast.title': res, + '$toast.duration': duration, + '$toast.icon': icon, + '$toast.mask': mask, + }) + } + }, + $success(_,title='成功',duration=1500){ + store.setState({ + '$toast.title': title, + '$toast.duration': duration, + '$toast.icon': '_icon-check' + }) + }, + $error(_,title='错误',duration=1500){ + store.setState({ + '$toast.title' : title, + '$toast.duration' : duration, + '$toast.icon' : '_icon-warn', + + }) + }, + $loading(title = '加载中' , duration = 1500){ + store.setState({ + '$toast.title' : title , + '$toast.duration' : duration, + '$toast.icon' : '_icon-loading', + '$toast.isLoading':true + }) + }, + $hideLoading(){ + store.setState({ + '$toast.title' : '', + '$toast.icon' : '', + '$toast.isLoading':false + }) + }, + closeModal(){ + store.setState({ + '$Modal.show': false, + }); + }, + _toHome() { + wx.switchTab({ + url: this.data.$cuStore.sys_home_page + }); + }, + _toPath(url, type = '') { + switch (type) { + case 'switchTab': + wx.switchTab({ + url: url, + fail(res) { + console.log(res); + } + }); + break; + case 'reLaunch': + wx.reLaunch({ + url: url, + success(res) { + console.log(res); + }, + fail(res) { + console.log(res); + } + }); + break; + case 'redirectTo': + wx.redirectTo({ + url: url, + fail(res) { + console.log(res); + } + }); + break; + default: + wx.navigateTo({ + url: url, + fail(res) { + console.log(res); + } + }) + break; + } + }, + _backPage() { + if (this.sys_isFirstPage()) { + this._toHome(); + } else { + wx.navigateBack({ + delta: 1 + }); + } + }, + //实例是否为路由栈的第一个页面 + sys_isFirstPage() { + return getCurrentPages().length === 1 + }, +} + +//是否为对象 +const _object = function (value) { + return Object.prototype.toString.call(value) === '[object Object]'; +}; + + +/** + * ColorUi 主Js文件 + * config 下 + * @param theme 设置默认主题 + * @param main 设置默认强调色 + * @param text 设置默认字号等级(0-4) + * @param footer 显示底部colorUI版权(如果属于开源作品,请带上ColorUI版权!!!) + * @param homePath 设置首页路径(一些组件会用到跳回主页,请每个项目设置好!) + * @param tabBar 配置系统tabBar + */ +export default class ColorUI { + constructor({config, data, state, methods}) { + //默认配置,防止没自定义配置时,出问题。 + config.theme = config.theme||'auto' + config.main = config.main||'blue' + config.text = config.text||1 + config.homePath = config.homePath||'/pages/index/index' + config.tabBar = config.tabBar||[] + config.shareTitle = config.shareTitle||'' + //处理数据 + this.config = config + this.data = data + this.methods = methods + this.state = state + this.$cuState = {}; + this.colorUiInit() + } + //colorUi 主框架初始化 + colorUiInit() { + //创建时,添加组件 + const _create = function (r, o = {}) { + r.$cuStore = {}; + const { useProp } = o; + if (o.hasOwnProperty("useProp")) { + if ((useProp && typeof useProp === "string") || Object.prototype.toString.call(useProp) === "[object Array]") { + r.$cuStore.useProp = [].concat(useProp); + } else { + r.$cuStore.useProp = []; + } + } + store.$p.push(r); + if (r.$cuStore.useProp) { + r.setData({ + $cuStore: _filterKey(store.$cuStore, r.$cuStore.useProp, (key, useKey) => key === useKey), + }); + } else { + r.setData({ + $cuStore: store.state, + }) + } + }; + //销毁时,移除组件 + const _destroy = function (r) { + let index = store.$p.findIndex((item) => item === r); + if (index > -1) { + store.$p.splice(index, 1); + } + }; + store = CUStoreInit(this.config) + if (this.config.theme === 'auto') { + wx.onThemeChange((res) => { + store.setState({sys_theme: 'auto'}) + wx.setStorageSync('sys_theme', 'auto'); + setStatusStyle(wx.getSystemInfoSync().theme === 'light' ? 'dark' : 'light') + }) + } else { + wx.setStorageSync('sys_theme', this.config.theme) + setStatusStyle(this.config.theme === 'light' ? 'dark' : 'light'); + } + const originPage = Page + const originComponent = Component; + let that = this; + const _objData = function (o) { + return { + ...(o.data || {}), + sys_info: sys_info, + sys_navBar: sys_info.statusBarHeight + 50, + sys_statusBar: sys_info.statusBarHeight, + sys_capsule: sys_capsule(), + version: version, + $cuData: that.data, + $cuConfig: that.config, + $cuStore: store.state + } + }; + App.Page = function (o = {}, ...args) { + //将config 和 data 组装进data 里面 + o.data = _objData(o); + //注入colorUi 函数体 + Object.keys(baseMethod).forEach(key => { + if (typeof baseMethod[key] === 'function') { + o[key] = baseMethod[key] + } + }) + o['setState'] = store.setState + //如果有配置methods,就注入设定的methods + if (that.methods) { + let pageLife = [ + "data", "onLoad", "onShow", "onReady", "onHide", "onUnload", "onPullDownRefresh", + "onReachBottom", "onShareAppMessage", "onPageScroll", "onTabItemTap", "setTheme", + "setMain", "setText", "_toHome", "_toPath", "_backPage", "sys_isFirstPage" + ] + Object.keys(that.methods).forEach((key) => { + if (typeof that.methods[key] === "function" && !pageLife.some((item) => item === key)) { + o[key] = that.methods[key]; + } + }); + } + + const originCreate = o.onLoad; + o.onLoad = function () { + _create(this, o); + originCreate && originCreate.apply(this, arguments); + }; + + const originonDestroy = o.onUnload; + o.onUnload = function () { + _destroy(this); + originonDestroy && originonDestroy.apply(this, arguments); + }; + + //开启全局分享 + if (that.config.share) { + //分享到朋友 + //const onShareApp = o.onShareAppMessage; + o.onShareAppMessage = function () { + return { + title: that.config.shareTitle, + path: that.config.homePath + } + //_create(this, o); + //onShareApp && onShareApp.apply(this, arguments); + }; + //分享到朋友圈 + //const onShareTime = o.onShareTimeline; + o.onShareTimeline = function () { + return { + title: that.config.shareTitle, + query: that.config.homePath + } + //_create(this, o); + //onShareTime && onShareTime.apply(this, arguments); + }; + } + + originPage(o, ...args); + //console.log(o) + } + try { + Page = App.Page + } catch (e) { } + + //重写组件 + App.Component = function (o = {}, ...args) { + o.data = _objData(o); + o.methods || (o.methods = {}) + o.methods['setState'] = store.setState + Object.keys(baseMethod).forEach(key => { + if (typeof baseMethod[key] === 'function') { + o.methods[key] = baseMethod[key] + } + }) + const { lifetimes = {} } = o; + let originCreate = lifetimes.attached || o.attached, originonDestroy = lifetimes.detached || o.detached; + const attached = function () { + _create(this, o); + originCreate && originCreate.apply(this, arguments); + }; + const detached = function () { + _destroy(this); + originonDestroy && originonDestroy.apply(this, arguments); + }; + if (Object.prototype.toString.call(o.lifetimes) === "[object Object]") { + o.lifetimes.attached = attached; + o.lifetimes.detached = detached; + } else { + o.attached = attached; + o.detached = detached; + } + originComponent(o, ...args); + }; + try { + Component = App.Component; + } catch (e) { } + + console.log( + `%c colorUI 启动成功 %c 当前版本V` + version + `%c`, + 'background:#0081ff; padding: 1px; border-radius: 3px 0 0 3px; color: #fff', + 'background:#354855; padding: 1px 5px; border-radius: 0 3px 3px 0; color: #fff; font-weight: bold;', + 'background:transparent' + ) + } +} + +//设置系统颜色 版本 +export const setStatusStyle = (status) => { + if (status === 'light') { + wx.setNavigationBarColor({ + frontColor: '#ffffff', + backgroundColor: '#000000', + animation: { + duration: 200, + timingFunc: 'easeIn' + } + }); + } else { + wx.setNavigationBarColor({ + frontColor: '#000000', + backgroundColor: '#ffffff', + animation: { + duration: 200, + timingFunc: 'easeIn' + } + }); + } +} + +//获取胶囊信息 +export const sys_capsule = () => { + let capsule = wx.getMenuButtonBoundingClientRect(); + if (!capsule) { + console.error('getMenuButtonBoundingClientRect error'); + capsule = { bottom: 56, height: 32, left: 278, right: 365, top: 24, width: 87 }; + } + return capsule; +} diff --git a/miniprogram/mp-cu/store/index.js b/miniprogram/mp-cu/store/index.js new file mode 100644 index 00000000..b450fa89 --- /dev/null +++ b/miniprogram/mp-cu/store/index.js @@ -0,0 +1,158 @@ +import diff from '../lib/diff' + +/*** + * @author bypanghu@163.com (https://github.com/bypanghu) + * @author iZaiZaiA (https://github.com/iZaiZaiA) + * 此处参考 https://github.com/xiaoyao96/wxMiniStore + */ + +/** + * 数组或对象深拷贝 + * @param data + * @returns {any} + */ +const nextArr = (data) => { + return JSON.parse(JSON.stringify(data)); +}; + +/** + * 判断是否为数组 + * @param value + * @returns {boolean} + */ +const ifArray = (value) => { + return value instanceof Array || Object.prototype.toString.call(value) === '[object Array]'; +}; + +/** + * 判断是否为对象 + * @param value + * @returns {boolean} + */ +const ifObject = (value) => { + return Object.prototype.toString.call(value) === '[object Object]'; +}; + +const setData = (obj, data) => { + let result = nextArr(data), origin = nextArr(obj); + Object.keys(origin).forEach((key) => { + dataHandler(key, origin[key], result); + }); + return result; +}; +const dataHandler = (key, result, data) => { + let arr = pathHandler(key),d = data; + for (let i = 0; i < arr.length - 1; i++) { + keyToData(arr[i], arr[i + 1], d); + d = d[arr[i]]; + } + d[arr[arr.length - 1]] = result; +}; + +const pathHandler = (key) => { + let current = "", keyArr = []; + for (let i = 0, len = key.length; i < len; i++) { + if (key[0] === "[") { + throw new Error("key值不能以[]开头"); + } + if (key[i].match(/\.|\[/g)) { + cleanAndPush(current, keyArr); + current = ""; + } + current += key[i]; + } + cleanAndPush(current, keyArr); + return keyArr; +}; + +const cleanAndPush = (key, arr) => { + let r = cleanKey(key); + if (r !== "") { + arr.push(r); + } +}; + +const keyToData = (prev, current, data) => { + if (prev === "") { + return; + } + if (typeof current === "number" && !ifArray(data[prev])) { + data[prev] = []; + } else if (typeof current === "string" && !ifObject(data[prev])) { + data[prev] = {}; + } +}; + +const cleanKey = (key) => { + if (key.match(/\[\S+\]/g)) { + let result = key.replace(/\[|\]/g, ""); + if (!Number.isNaN(parseInt(result))) { + return +result; + } else { + throw new Error(`[]中必须为数字`); + } + } + return key.replace(/\[|\.|\]| /g, ""); +}; + +export const CUStoreInit = (config) => { + let $store = { + state: {}, + $p: [], + setState(obj, fn = () => { }) { + if (!ifObject(obj)) { + throw new Error("setState的第一个参数须为object!"); + } + let prev = $store.state; + let current = setData(obj, prev); + $store.state = current; + //如果有组件 + if ($store.$p.length > 0) { + let diffObj = diff(current, prev); + let keys = Object.keys(diffObj); + if (keys.length > 0) { + const newObj = {}; + keys.forEach((key) => { + newObj["$cuStore." + key] = diffObj[key]; + }); + let pros = $store.$p.map((r) => { + if (r.$cuStore.hasOwnProperty("useProp")) { + let useProps = _filterKey(newObj, r.$cuStore.useProp, + (key, useKey) => key === "$cuStore." + useKey || + !!key.match(new RegExp("^[$]cuStore." + useKey + "[.|[]", "g")) + ); + if (Object.keys(useProps).length > 0) { + return new Promise((resolve) => { + r.setData(useProps, resolve); + }); + } else { + return Promise.resolve(); + } + } + return new Promise((resolve) => { + r.setData(newObj, resolve); + }); + }); + Promise.all(pros).then(fn); + } else { + fn(); + } + } else { + fn(); + } + } + } + $store.state.sys_theme = wx.getStorageSync('sys_theme') ? wx.getStorageSync('sys_theme') : config.theme + $store.state.sys_main = wx.getStorageSync('sys_main') ? wx.getStorageSync('sys_main') : config.main + $store.state.sys_text = wx.getStorageSync('sys_text') ? wx.getStorageSync('sys_text') : config.text + $store.state.sys_home_page = config.homePath + const modal = { + show: false, + dialog: {title:'', content:'', showCancel:true, cancelText:'取消', cancelColor:'', confirmText:'确定', confirmColor:'', success : ()=>{}}, + toast: {title:'', icon:'', image:'', duration:1500, mask:false, isLoading:false, success:()=>{}}, + } + $store.state.$Modal = modal + $store.state.$dialog = modal.dialog + $store.state.$toast = modal.toast + return $store +} diff --git a/miniprogram/mp-sdk/components/app-nav-li/app-nav-li.js b/miniprogram/mp-sdk/components/app-nav-li/app-nav-li.js new file mode 100644 index 00000000..7969fb3e --- /dev/null +++ b/miniprogram/mp-sdk/components/app-nav-li/app-nav-li.js @@ -0,0 +1,29 @@ +Component({ + data: { + colorName: '' + }, + options: { + addGlobalClass: true + }, + properties: { + data: { + type: Object, + optionalTypes: Array, + value: {} + } + }, + lifetimes: { + attached() { + this.setData({ + colorName: this.getColor() + }); + } + }, + methods:{ + //随机生成库内颜色名 + getColor() { + let colorArr = ['yellow', 'orange', 'red', 'pink', 'mauve', 'purple', 'blue', 'cyan', 'green', 'olive', 'grey', 'brown']; + return colorArr[Math.floor(Math.random() * colorArr.length)] + } + }, +}) \ No newline at end of file diff --git a/miniprogram/mp-sdk/components/app-nav-li/app-nav-li.json b/miniprogram/mp-sdk/components/app-nav-li/app-nav-li.json new file mode 100644 index 00000000..e8cfaaf8 --- /dev/null +++ b/miniprogram/mp-sdk/components/app-nav-li/app-nav-li.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/mp-sdk/components/app-nav-li/app-nav-li.scss b/miniprogram/mp-sdk/components/app-nav-li/app-nav-li.scss new file mode 100644 index 00000000..2ac2b4a7 --- /dev/null +++ b/miniprogram/mp-sdk/components/app-nav-li/app-nav-li.scss @@ -0,0 +1,113 @@ +.doc-card { + position: relative; + .doc-card-navigator { + position: relative; + z-index: 2; + overflow: hidden; + } + .doc-bg { + position: relative; + z-index: 2; + text-shadow: 2px 3px 5px rgba(0,0,0,.1); + } + .doc-title { + position: relative; + display: inline-block; + padding-bottom: 20rpx; + font-size: 34rpx; + &::after { + content: ''; + position: absolute; + width: calc(100% + 20rpx); + height: 2px; + background-color: currentColor; + left: 0; + bottom: 0; + } + } + .doc-name { + position: relative; + display: block; + padding-top: 20rpx; + &::after { + content: ''; + position: absolute; + width: 100%; + height: 1px; + background-color: currentColor; + left: 0; + top: 0; + } + } + .doc-text{ + position: relative; + z-index: 2; + padding-right: 50px !important; + } + .doc-icon{ + position: absolute; + z-index: 2; + right: 0; + } + .doc-dot { + position: absolute; + z-index: 1; + border-radius: 50%; + transition: all 0.6s cubic-bezier(.08,.82,.17,1); + opacity: .3; + &.doc-dot1 { + width: 400rpx; + height: 400rpx; + left: 0; + top: auto; + right: auto; + bottom: -300rpx; + filter: hue-rotate(30deg) brightness(160%); + } + &.doc-dot2 { + left: -40px; + top: auto; + right: auto; + bottom: -20rpx; + width: 300rpx; + height: 300rpx; + filter: brightness(80%); + } + &.doc-dot3 { + top: -120rpx; + right: -120rpx; + opacity: 0.6; + width: 240rpx; + height: 240rpx; + filter: brightness(120%); + } + } + .doc-bg { + position: absolute; + z-index: 0; + width: calc(100% - 40rpx); + height: 30rpx; + bottom: -15rpx; + left: 0; + right: 0; + margin: auto; + border-radius: 10rpx; + // filter: blur(10px); + opacity: 0.2; + } + + &:hover { + .doc-dot1 { + transform: translateX(-100rpx) translatey(-360rpx); + filter: hue-rotate(-30deg) brightness(80%); + } + .doc-dot2 { + transform: translateX(300rpx) translatey(0px); + filter: brightness(120%); + } + .doc-dot3 { + filter: brightness(80%); + transform: translateX(-300rpx) translatey(240rpx); + } + } +} \ No newline at end of file diff --git a/miniprogram/mp-sdk/components/app-nav-li/app-nav-li.wxml b/miniprogram/mp-sdk/components/app-nav-li/app-nav-li.wxml new file mode 100644 index 00000000..13f6d305 --- /dev/null +++ b/miniprogram/mp-sdk/components/app-nav-li/app-nav-li.wxml @@ -0,0 +1,15 @@ + + + + {{ data.title }} + {{ data.name }} + + + + + + + + + + diff --git a/miniprogram/mp-sdk/components/ui-parameter/ui-parameter.js b/miniprogram/mp-sdk/components/ui-parameter/ui-parameter.js new file mode 100644 index 00000000..9a898e2c --- /dev/null +++ b/miniprogram/mp-sdk/components/ui-parameter/ui-parameter.js @@ -0,0 +1,15 @@ +Component({ + options: { + addGlobalClass: true + }, + properties: { + data: { + type: Array, + value: [] + }, + slots: { + type: Array, + value: [] + }, + } +}) \ No newline at end of file diff --git a/miniprogram/mp-sdk/components/ui-parameter/ui-parameter.json b/miniprogram/mp-sdk/components/ui-parameter/ui-parameter.json new file mode 100644 index 00000000..4b353ee4 --- /dev/null +++ b/miniprogram/mp-sdk/components/ui-parameter/ui-parameter.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "ui-title": "/mp-cu/colorUI/components/ui-title/ui-title" + } +} \ No newline at end of file diff --git a/miniprogram/mp-sdk/components/ui-parameter/ui-parameter.scss b/miniprogram/mp-sdk/components/ui-parameter/ui-parameter.scss new file mode 100644 index 00000000..e69de29b diff --git a/miniprogram/mp-sdk/components/ui-parameter/ui-parameter.wxml b/miniprogram/mp-sdk/components/ui-parameter/ui-parameter.wxml new file mode 100644 index 00000000..526dd3ff --- /dev/null +++ b/miniprogram/mp-sdk/components/ui-parameter/ui-parameter.wxml @@ -0,0 +1,40 @@ + + + + + + 属性名 + 类型/默认值 + 说明 + + + + + {{ item.name }} + + [{{ item.type }}] + {{ item.default }} + + {{ item.info }} + + + + + + + + + + + 名称 + 说明 + + + + + {{ item.name }} + {{ item.info }} + + + + diff --git a/miniprogram/mp-sdk/icon/doc.scss b/miniprogram/mp-sdk/icon/doc.scss new file mode 100644 index 00000000..5341ec0a --- /dev/null +++ b/miniprogram/mp-sdk/icon/doc.scss @@ -0,0 +1,452 @@ +@font-face { + font-family: 'coloricon'; + src: url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'); + font-weight: normal; + font-style: normal; +} +[class*='cicon-'] { + font-family: 'coloricon', serif; + display: inline-block; +} + +.cicon-Aa:before {content: "\e7a1";} +.cicon-accounts:before {content: "\e681";} +.cicon-accounts-o:before {content: "\e686";} +.cicon-add:before {content: "\e6e4";} +.cicon-add-round:before {content: "\e717";} +.cicon-add-round-o:before {content: "\e718";} +.cicon-alarm:before {content: "\e61e";} +.cicon-album:before {content: "\e759";} +.cicon-alipay:before {content: "\e6e1";} +.cicon-android:before {content: "\e6e2";} +.cicon-angle:before {content: "\e605";} +.cicon-apple:before {content: "\e8e7";} +.cicon-apps:before {content: "\e737";} +.cicon-archive:before {content: "\e7ae";} +.cicon-archive-o:before {content: "\e7ad";} +.cicon-arrow:before {content: "\e608";} +.cicon-at-line:before {content: "\e75c";} +.cicon-avatar:before {content: "\e663";} +.cicon-avatar-o:before {content: "\e665";} +.cicon-avatars:before {content: "\e67e";} +.cicon-avatars-o:before {content: "\e680";} +.cicon-back:before {content: "\e600";} +.cicon-backspace:before {content: "\e6a9";} +.cicon-backup:before {content: "\e61f";} +.cicon-backup-restore:before {content: "\e62d";} +.cicon-barcode:before {content: "\e71f";} +.cicon-book:before {content: "\e6a2";} +.cicon-bookmark:before {content: "\e6a3";} +.cicon-bookmark-o:before {content: "\e697";} +.cicon-bookmarks:before {content: "\e6a6";} +.cicon-box:before {content: "\e714";} +.cicon-box-block:before {content: "\e6ac";} +.cicon-box-right:before {content: "\e6a0";} +.cicon-brand:before {content: "\e726";} +.cicon-brand-o:before {content: "\e727";} +.cicon-building:before {content: "\e6c3";} +.cicon-building-o:before {content: "\e6c7";} +.cicon-camera:before {content: "\e6fa";} +.cicon-camera-add:before {content: "\e736";} +.cicon-camera-add-o:before {content: "\e735";} +.cicon-camera-lens:before {content: "\e68f";} +.cicon-camera-lens-o:before {content: "\e68e";} +.cicon-camera-o:before {content: "\e6fb";} +.cicon-camera-rotate:before {content: "\e71e";} +.cicon-card:before {content: "\e744";} +.cicon-cardboard:before {content: "\e7a9";} +.cicon-cardboard-o:before {content: "\e7aa";} +.cicon-cardboard-off-o:before {content: "\e7af";} +.cicon-cart:before {content: "\e70b";} +.cicon-cart-o:before {content: "\e708";} +.cicon-chat:before {content: "\e739";} +.cicon-chat-bubble:before {content: "\e69b";} +.cicon-chat-bubble-o:before {content: "\e6a7";} +.cicon-chat-list:before {content: "\e69d";} +.cicon-chat-list-o:before {content: "\e6aa";} +.cicon-chat-o:before {content: "\e73c";} +.cicon-chat-smile:before {content: "\e779";} +.cicon-chat-smile-o:before {content: "\e78e";} +.cicon-chat-smiles:before {content: "\e76b";} +.cicon-chat-smiles-o:before {content: "\e74a";} +.cicon-check:before {content: "\e69f";} +.cicon-checkbox:before {content: "\e713";} +.cicon-checkbox-o:before {content: "\e715";} +.cicon-check-round:before {content: "\e6f1";} +.cicon-check-round-o:before {content: "\e6f2";} +.cicon-choiceness:before {content: "\e728";} +.cicon-choiceness-o:before {content: "\e729";} +.cicon-chrome:before {content: "\e6e3";} +.cicon-circle:before {content: "\e7b0";} +.cicon-circle-o:before {content: "\e7b1";} +.cicon-close:before {content: "\e6ed";} +.cicon-close-round:before {content: "\e6f3";} +.cicon-close-round-o:before {content: "\e6f4";} +.cicon-clothes:before {content: "\e72a";} +.cicon-clothes-o:before {content: "\e72b";} +.cicon-cloud:before {content: "\e64e";} +.cicon-cloud-done:before {content: "\e641";} +.cicon-cloud-download:before {content: "\e647";} +.cicon-cloud-o:before {content: "\e646";} +.cicon-cloud-off:before {content: "\e64b";} +.cicon-cloud-upload:before {content: "\e687";} +.cicon-code-box:before {content: "\e7c3";} +.cicon-coin:before {content: "\e78a";} +.cicon-coin-o:before {content: "\e79d";} +.cicon-comment:before {content: "\e738";} +.cicon-comment-o:before {content: "\e70e";} +.cicon-community:before {content: "\e742";} +.cicon-community-o:before {content: "\e743";} +.cicon-countdown:before {content: "\e722";} +.cicon-countdown-o:before {content: "\e723";} +.cicon-creative:before {content: "\e72c";} +.cicon-creative-o:before {content: "\e72d";} +.cicon-crop:before {content: "\e6d9";} +.cicon-crown:before {content: "\e776";} +.cicon-crown-o:before {content: "\e777";} +.cicon-cut:before {content: "\e74b";} +.cicon-DarkMode:before {content: "\e7c4";} +.cicon-dashboard:before {content: "\e62e";} +.cicon-delete:before {content: "\e6bd";} +.cicon-delete-close:before {content: "\e6ae";} +.cicon-delete-line:before {content: "\e707";} +.cicon-delete-line-o:before {content: "\e709";} +.cicon-delete-o:before {content: "\e69a";} +.cicon-deliver:before {content: "\e7f7";} +.cicon-deliver-o:before {content: "\e6ff";} +.cicon-demo:before {content: "\e916";} +.cicon-discover:before {content: "\e70c";} +.cicon-discover-o:before {content: "\e702";} +.cicon-discuss-fill:before {content: "\e790";} +.cicon-discuss-line:before {content: "\e78f";} +.cicon-dollar:before {content: "\e79f";} +.cicon-dollar-o:before {content: "\e79e";} +.cicon-done:before {content: "\e633";} +.cicon-done-all:before {content: "\e62a";} +.cicon-douyin:before {content: "\e6e7";} +.cicon-drop-down:before {content: "\e61c";} +.cicon-drop-up:before {content: "\e61d";} +.cicon-eject:before {content: "\e63a";} +.cicon-ellipse:before {content: "\e74c";} +.cicon-emoji:before {content: "\e78d";} +.cicon-emoji-o:before {content: "\e6ee";} +.cicon-equalizer:before {content: "\e802";} +.cicon-eraser:before {content: "\e770";} +.cicon-eraser-o:before {content: "\e772";} +.cicon-evaluate:before {content: "\e7f0";} +.cicon-evaluate-o:before {content: "\e700";} +.cicon-event-close:before {content: "\e6a5";} +.cicon-event-done:before {content: "\e6b2";} +.cicon-event-list:before {content: "\e6b8";} +.cicon-explore:before {content: "\e628";} +.cicon-explore-line:before {content: "\e719";} +.cicon-explore-line-o:before {content: "\e710";} +.cicon-explore-o:before {content: "\e626";} +.cicon-extension:before {content: "\e620";} +.cicon-extension-o:before {content: "\e63f";} +.cicon-eye:before {content: "\e740";} +.cicon-eye-favor:before {content: "\e7b4";} +.cicon-eye-favor-o:before {content: "\e7b5";} +.cicon-eye-o:before {content: "\e741";} +.cicon-eye-off:before {content: "\e7b3";} +.cicon-eye-off-o:before {content: "\e7b2";} +.cicon-facebook:before {content: "\e6ea";} +.cicon-favorite:before {content: "\e623";} +.cicon-favorite-o:before {content: "\e621";} +.cicon-female:before {content: "\e72f";} +.cicon-file:before {content: "\e857";} +.cicon-file-copy:before {content: "\e85c";} +.cicon-file-copy-o:before {content: "\e7bc";} +.cicon-file-o:before {content: "\e7bb";} +.cicon-file-text:before {content: "\e858";} +.cicon-file-text-o:before {content: "\e7b9";} +.cicon-filter:before {content: "\e6ec";} +.cicon-fingerprint:before {content: "\e63b";} +.cicon-first-page:before {content: "\e60c";} +.cicon-flag:before {content: "\e64d";} +.cicon-flag-o:before {content: "\e64c";} +.cicon-flash-close:before {content: "\e73b";} +.cicon-flash-off:before {content: "\e6d5";} +.cicon-flash-on:before {content: "\e6dc";} +.cicon-flash-open:before {content: "\e74f";} +.cicon-folder:before {content: "\e6a1";} +.cicon-folder-add:before {content: "\e6b4";} +.cicon-folder-o:before {content: "\e6b0";} +.cicon-folder-special:before {content: "\e65c";} +.cicon-forward:before {content: "\e601";} +.cicon-fullscreen:before {content: "\e915";} +.cicon-fullscreen-exit:before {content: "\e914";} +.cicon-game:before {content: "\e6c0";} +.cicon-game-o:before {content: "\e6d1";} +.cicon-git-commit:before {content: "\e7be";} +.cicon-git-commit-o:before {content: "\e7bd";} +.cicon-github:before {content: "\e6e9";} +.cicon-github-circle:before {content: "\ead8";} +.cicon-goods:before {content: "\e778";} +.cicon-goodsnew:before {content: "\e7bf";} +.cicon-goodsnew-o:before {content: "\e7c0";} +.cicon-goods-o:before {content: "\e70f";} +.cicon-GooglePlaylogo:before {content: "\e6e5";} +.cicon-grid:before {content: "\e6ce";} +.cicon-grid-o:before {content: "\e6cc";} +.cicon-group:before {content: "\e7f5";} +.cicon-group-o:before {content: "\e753";} +.cicon-guanli:before {content: "\e750";} +.cicon-headset:before {content: "\e6a4";} +.cicon-headset-mic:before {content: "\e6b1";} +.cicon-help:before {content: "\e66b";} +.cicon-help-o:before {content: "\e65e";} +.cicon-home:before {content: "\e70d";} +.cicon-home-2:before {content: "\e6fd";} +.cicon-home-2-o:before {content: "\e6cf";} +.cicon-home-3:before {content: "\e6fc";} +.cicon-home-3-o:before {content: "\e6e0";} +.cicon-home-4:before {content: "\e732";} +.cicon-home-4-o:before {content: "\e6e6";} +.cicon-home-community:before {content: "\e799";} +.cicon-home-dot:before {content: "\e794";} +.cicon-home-dot-o:before {content: "\e797";} +.cicon-home-line:before {content: "\e793";} +.cicon-home-line-o:before {content: "\e792";} +.cicon-home-o:before {content: "\e70a";} +.cicon-home-sm:before {content: "\e798";} +.cicon-home-smile:before {content: "\e79c";} +.cicon-home-smile-o:before {content: "\e7a0";} +.cicon-home-smline:before {content: "\e791";} +.cicon-home-smline-o:before {content: "\e731";} +.cicon-home-sm-o:before {content: "\e79b";} +.cicon-hotel:before {content: "\e7a8";} +.cicon-hotel-o:before {content: "\e7a3";} +.cicon-huohu:before {content: "\e72e";} +.cicon-IE:before {content: "\e922";} +.cicon-image-text:before {content: "\e781";} +.cicon-image-text-o:before {content: "\e758";} +.cicon-import-export:before {content: "\e615";} +.cicon-info:before {content: "\e6ef";} +.cicon-info-o:before {content: "\e705";} +.cicon-input:before {content: "\e75f";} +.cicon-input-o:before {content: "\e6c8";} +.cicon-keyboard:before {content: "\e6b6";} +.cicon-kinds:before {content: "\e748";} +.cicon-last-page:before {content: "\e60d";} +.cicon-layout:before {content: "\e7e8";} +.cicon-layout-o:before {content: "\e7e7";} +.cicon-LightMode:before {content: "\e7ba";} +.cicon-link:before {content: "\e6ab";} +.cicon-link-off:before {content: "\e6b9";} +.cicon-loader-fill:before {content: "\e76d";} +.cicon-loading:before {content: "\e746";} +.cicon-loading1:before {content: "\e749";} +.cicon-loading2:before {content: "\e7f1";} +.cicon-location-off:before {content: "\e671";} +.cicon-location-off-o:before {content: "\e66d";} +.cicon-location-on:before {content: "\e65f";} +.cicon-location-on-o:before {content: "\e661";} +.cicon-lock:before {content: "\e6ad";} +.cicon-lock-o:before {content: "\e6b3";} +.cicon-lock-open:before {content: "\e6ba";} +.cicon-logout:before {content: "\e76e";} +.cicon-loop:before {content: "\e616";} +.cicon-magic:before {content: "\e6b7";} +.cicon-magic-o:before {content: "\e6c2";} +.cicon-mail:before {content: "\e6be";} +.cicon-mail-o:before {content: "\e6bc";} +.cicon-male:before {content: "\e730";} +.cicon-mic:before {content: "\e656";} +.cicon-mic-none:before {content: "\e642";} +.cicon-mic-off:before {content: "\e652";} +.cicon-miniprogram:before {content: "\e7d6";} +.cicon-mobile:before {content: "\e854";} +.cicon-mobile-o:before {content: "\e7b6";} +.cicon-moneybag:before {content: "\e7ce";} +.cicon-moneybag-o:before {content: "\e7d1";} +.cicon-more:before {content: "\e688";} +.cicon-more-tag:before {content: "\e672";} +.cicon-move:before {content: "\e768";} +.cicon-move-round:before {content: "\e602";} +.cicon-move-round-o:before {content: "\e603";} +.cicon-music:before {content: "\e795";} +.cicon-music-off:before {content: "\e796";} +.cicon-my:before {content: "\e78c";} +.cicon-my-o:before {content: "\e78b";} +.cicon-near-me:before {content: "\e654";} +.cicon-near-me-o:before {content: "\e649";} +.cicon-not:before {content: "\e667";} +.cicon-notice:before {content: "\e666";} +.cicon-notice-active:before {content: "\e66f";} +.cicon-notice-active-o:before {content: "\e65d";} +.cicon-notice-o:before {content: "\e664";} +.cicon-notice-off:before {content: "\e6b5";} +.cicon-notice-off-o:before {content: "\e6bb";} +.cicon-numcode:before {content: "\e755";} +.cicon-order:before {content: "\e786";} +.cicon-order-o:before {content: "\e7b8";} +.cicon-paint:before {content: "\e75d";} +.cicon-paint-o:before {content: "\e75a";} +.cicon-palette:before {content: "\e696";} +.cicon-palette-o:before {content: "\e691";} +.cicon-pause:before {content: "\e669";} +.cicon-pause-circle:before {content: "\e678";} +.cicon-person:before {content: "\e679";} +.cicon-person-add:before {content: "\e668";} +.cicon-person-add-o:before {content: "\e66a";} +.cicon-person-o:before {content: "\e67d";} +.cicon-person-pin-circle:before {content: "\e66c";} +.cicon-person-pin-circle-o:before {content: "\e670";} +.cicon-phone:before {content: "\e6f0";} +.cicon-phone-call:before {content: "\e6d7";} +.cicon-pic:before {content: "\e756";} +.cicon-pic-o:before {content: "\e69e";} +.cicon-pin-drop:before {content: "\e648";} +.cicon-pin-drop-o:before {content: "\e655";} +.cicon-place:before {content: "\e651";} +.cicon-place-o:before {content: "\e650";} +.cicon-play-arrow:before {content: "\e66e";} +.cicon-play-circle:before {content: "\e674";} +.cicon-play-circle-o:before {content: "\e67f";} +.cicon-popover:before {content: "\e74e";} +.cicon-popover-o:before {content: "\e757";} +.cicon-present:before {content: "\e73a";} +.cicon-present-o:before {content: "\e711";} +.cicon-progress:before {content: "\e784";} +.cicon-qq:before {content: "\e7d9";} +.cicon-qr-code-fill:before {content: "\e767";} +.cicon-qr-code-line:before {content: "\e75e";} +.cicon-quill:before {content: "\e760";} +.cicon-quill-o:before {content: "\e761";} +.cicon-radio:before {content: "\e6d4";} +.cicon-radiobox:before {content: "\e763";} +.cicon-radiobox-o:before {content: "\e75b";} +.cicon-recharge:before {content: "\e71c";} +.cicon-recharge-o:before {content: "\e71d";} +.cicon-record:before {content: "\e7a4";} +.cicon-record-o:before {content: "\e7a6";} +.cicon-redo:before {content: "\e612";} +.cicon-redpacket:before {content: "\e7d3";} +.cicon-redpacket-o:before {content: "\e71a";} +.cicon-refresh:before {content: "\e611";} +.cicon-repair:before {content: "\e73f";} +.cicon-repair-o:before {content: "\e73e";} +.cicon-repeat:before {content: "\e617";} +.cicon-replay:before {content: "\e619";} +.cicon-reply:before {content: "\e618";} +.cicon-reply-all:before {content: "\e614";} +.cicon-road-map:before {content: "\e769";} +.cicon-road-map-o:before {content: "\e76a";} +.cicon-round:before {content: "\e716";} +.cicon-round-angle:before {content: "\e6f5";} +.cicon-round-angle-o:before {content: "\e6f6";} +.cicon-round-arrow-line:before {content: "\e734";} +.cicon-round-box:before {content: "\e604";} +.cicon-safe:before {content: "\e77f";} +.cicon-safe-check:before {content: "\e875";} +.cicon-safe-check-o:before {content: "\e876";} +.cicon-safe-flash:before {content: "\e783";} +.cicon-safe-flash-o:before {content: "\e775";} +.cicon-safe-key:before {content: "\e76c";} +.cicon-safe-key-o:before {content: "\e766";} +.cicon-safe-o:before {content: "\e77e";} +.cicon-save:before {content: "\e677";} +.cicon-save-o:before {content: "\e684";} +.cicon-scan:before {content: "\e703";} +.cicon-scissors:before {content: "\e762";} +.cicon-search:before {content: "\e6f7";} +.cicon-search-line:before {content: "\e771";} +.cicon-searchlist:before {content: "\e720";} +.cicon-search-o:before {content: "\e782";} +.cicon-search-sm:before {content: "\e631";} +.cicon-service:before {content: "\e73d";} +.cicon-service-fill:before {content: "\e704";} +.cicon-service-o:before {content: "\e721";} +.cicon-set:before {content: "\e773";} +.cicon-set-list:before {content: "\e76f";} +.cicon-set-o:before {content: "\e774";} +.cicon-settings:before {content: "\e77a";} +.cicon-settings-o:before {content: "\e780";} +.cicon-share:before {content: "\e6c5";} +.cicon-share-line-o:before {content: "\e74d";} +.cicon-shengji:before {content: "\e747";} +.cicon-shopping-cart:before {content: "\e685";} +.cicon-shopping-cart-o:before {content: "\e676";} +.cicon-show:before {content: "\e785";} +.cicon-show-o:before {content: "\e787";} +.cicon-shuffle:before {content: "\e61a";} +.cicon-sip:before {content: "\e764";} +.cicon-sip-o:before {content: "\e765";} +.cicon-skip-next:before {content: "\e6dd";} +.cicon-skip-previous:before {content: "\e6d6";} +.cicon-slack:before {content: "\e87b";} +.cicon-slack-square:before {content: "\e891";} +.cicon-sort:before {content: "\e6bf";} +.cicon-sort-order:before {content: "\e6fe";} +.cicon-sound:before {content: "\e77b";} +.cicon-sponsor:before {content: "\e77c";} +.cicon-sponsor-o:before {content: "\e77d";} +.cicon-star:before {content: "\e683";} +.cicon-star-half:before {content: "\e67c";} +.cicon-star-o:before {content: "\e67b";} +.cicon-stock:before {content: "\e789";} +.cicon-stop:before {content: "\e6db";} +.cicon-store:before {content: "\e7ac";} +.cicon-store-0:before {content: "\e7ab";} +.cicon-store-2:before {content: "\e7a7";} +.cicon-store-2-o:before {content: "\e7a5";} +.cicon-sub-left:before {content: "\e60b";} +.cicon-sub-right:before {content: "\e60f";} +.cicon-subtitles:before {content: "\e6da";} +.cicon-subtitles-o:before {content: "\e6d8";} +.cicon-sync-alt:before {content: "\e613";} +.cicon-tag:before {content: "\e751";} +.cicon-tag-o:before {content: "\e752";} +.cicon-taobao:before {content: "\e712";} +.cicon-terminal:before {content: "\e7c1";} +.cicon-terminal-o:before {content: "\e7c2";} +.cicon-thumb-down:before {content: "\e6c1";} +.cicon-thumb-down-o:before {content: "\e6c9";} +.cicon-thumb-up:before {content: "\e6c6";} +.cicon-thumb-up-line:before {content: "\e71b";} +.cicon-thumb-up-line-o:before {content: "\e6eb";} +.cicon-thumb-up-o:before {content: "\e6cb";} +.cicon-ticket:before {content: "\e800";} +.cicon-ticket-o:before {content: "\e701";} +.cicon-time:before {content: "\e6f8";} +.cicon-time-o:before {content: "\e6f9";} +.cicon-timer:before {content: "\e69c";} +.cicon-title:before {content: "\e82f";} +.cicon-titles:before {content: "\e745";} +.cicon-toggle:before {content: "\e706";} +.cicon-toggle-o:before {content: "\e733";} +.cicon-topbar:before {content: "\e788";} +.cicon-translate:before {content: "\e79a";} +.cicon-tree:before {content: "\e659";} +.cicon-Tt:before {content: "\e7a2";} +.cicon-twiter:before {content: "\e6e8";} +.cicon-cicon-community-o:before {content: "\e6df";} +.cicon-undo:before {content: "\e61b";} +.cicon-unfold-less:before {content: "\e60e";} +.cicon-unfold-more:before {content: "\e609";} +.cicon-upstage:before {content: "\e724";} +.cicon-upstage-o:before {content: "\e725";} +.cicon-view-agenda:before {content: "\e639";} +.cicon-view-array:before {content: "\e636";} +.cicon-view-carousel:before {content: "\e638";} +.cicon-view-column:before {content: "\e632";} +.cicon-view-day:before {content: "\e627";} +.cicon-view-headline:before {content: "\e62b";} +.cicon-view-list:before {content: "\e63c";} +.cicon-view-module:before {content: "\e629";} +.cicon-view-quilt:before {content: "\e630";} +.cicon-volume:before {content: "\e6c4";} +.cicon-volume-off:before {content: "\e6cd";} +.cicon-warn:before {content: "\e662";} +.cicon-warn-o:before {content: "\e675";} +.cicon-wechat-pay:before {content: "\e7e6";} +.cicon-weibo-fill:before {content: "\e7e4";} +.cicon-weibo-o:before {content: "\e7e3";} +.cicon-weixin:before {content: "\e6de";} +.cicon-whatshot:before {content: "\e6ca";} +.cicon-whatshot-o:before {content: "\e6d0";} +.cicon-wifi:before {content: "\e6d2";} +.cicon-wifi-off:before {content: "\e6d3";} +.cicon-yamaxun:before {content: "\e7b7";} +.cicon-zuoji:before {content: "\e754";} diff --git a/miniprogram/mp-sdk/index.js b/miniprogram/mp-sdk/index.js new file mode 100644 index 00000000..99c2a9c9 --- /dev/null +++ b/miniprogram/mp-sdk/index.js @@ -0,0 +1,47 @@ +import baseLib from './lib/index' +import {request} from './lib/request' + +export default class ColorUISdk { + constructor({env, version, api}) { + //默认配置,防止没自定义配置时,出问题。 + env = env||'dev' + version = version||'1.0.0' + if (!api.header) { + api.header = {}; + api.header['Content-Type'] = 'application/json'; + } + this.env = env; + this.version = version; + this.api = api; + this.ColorUISdkInit(); + } + ColorUISdkInit() { + Object.keys(baseLib).forEach(key => { + if (typeof baseLib[key] === 'function') { + this[key] = baseLib[key] + } + if (typeof baseLib[key] === 'object') { + //二级方法函数 + Object.keys(baseLib[key]).forEach(k => { + if (typeof baseLib[key][k] === 'function' || typeof baseLib[key][k] === 'object') { + this[k] = baseLib[key][k] + } + }) + } + }) + //console.log(this) + } + //发起请求 + request(data, loading = false) { + return new Promise( (resolve, reject) => { + request(data, loading, { + env: this.env, + api: this.api + }).then(res=> { + resolve(res); + }).catch(err=> { + reject(err) + }); + }); + } +} diff --git a/miniprogram/mp-sdk/lib/array.js b/miniprogram/mp-sdk/lib/array.js new file mode 100644 index 00000000..c123009d --- /dev/null +++ b/miniprogram/mp-sdk/lib/array.js @@ -0,0 +1,157 @@ +module.exports = { + //数组操作 + isArr: { + //数组中是否存在 + ifItemKey(arr, item) { + return arr.indexOf(item) !== -1; + }, + //数组或对象深拷贝 + nextArr(arr) { + return JSON.parse(JSON.stringify(arr)); + }, + //获取数组索引 + getItemIndex(arr, item) { + return arr.indexOf(item); + }, + //移除数组中指定元素 + delItem(arr, item) { + let index = arr.indexOf(item); + let items = [...arr]; + items.splice(index, 1); + return [...items]; + }, + //移除数组中其它元素 + delItemKey(arr, item) { + let index = arr.indexOf(item); + let items = [...arr]; + for (let i = 0; i < arr.length; i++) { + if (index !== i) items.splice(i, 1); + } + return [...items]; + }, + //移除数组中左边的元素 + delItemLeft(arr, item) { + let index = arr.indexOf(item); + let items = [...arr]; + for (let i = 0; i < arr.length; i++) { + if (index >= i) return; + items.splice(i, 1); + } + return [...items]; + }, + //移除数组中右边的元素 + delItemRight(arr, item) { + let index = arr.indexOf(item); + let items = [...arr]; + for (let i = 0; i < arr.length; i++) { + if (index > i) items.splice(i, 1); + } + return [...items]; + }, + //替换数组中两个元素的位置 + replaceItem(arr, item_a, item_b) { + let index_a = arr.indexOf(item_a); + let index_b = arr.indexOf(item_b); + let items = [...arr]; + items.splice(index_a, 1); + items.splice(index_b, 0, item_a); + return [...items]; + }, + //数组中是否存在 + ifKey(arr, keyName, key) { + for (let i = 0; i < arr.length; i++) { + if (arr[i][keyName] === key) { + return true; + } + } + return false; + }, + //获取数组索引 + getIndex(arr, keyName, key) { + for (let i = 0; i < arr.length; i++) { + if (arr[i][keyName] === key) { + return i; + } + } + return false; + }, + //移除数组中指定元素 + del(arr, keyName, key) { + let s = false, name = '', ArrData = []; + for (let i = 0; i < arr.length; i++) { + if (arr[i][keyName] !== key) { + if (!s) name = arr[i][keyName]; + ArrData.push(arr[i]); + } else { + s = true; + } + } + return {key: name, arr: ArrData}; + }, + //移除数组中其它元素 + delKey(arr, keyName, key) { + let ArrData = []; + for (let i = 0; i < arr.length; i++) { + if (arr[i][keyName] === key) { + ArrData.push(arr[i]); + } + } + return ArrData; + }, + //移除数组中左边的元素 + delLeft(arr, keyName, key) { + let s = false, ArrData = []; + for (let i = 0; i < arr.length; i++) { + if (arr[i][keyName] === key) { + s = true; + ArrData.push(arr[i]); + } else { + if (s) ArrData.push(arr[i]); + } + } + return ArrData; + }, + //移除数组中右边的元素 + delRight(arr, keyName, key) { + let s = true, ArrData = []; + for (let i = 0; i < arr.length; i++) { + if (arr[i][keyName] === key) { + s = false; + ArrData.push(arr[i]); + } else { + if (s) ArrData.push(arr[i]); + } + } + return ArrData; + }, + isForEach(arr, fn) { + if (!arr.length || !fn) return; + let i = -1, len = arr.length; + while (++i < len) { + let item = arr[i]; + fn(item, i, arr); + } + }, + //得到两个数组的交集, 两个数组的元素为数值或字符串 + intersection(arr1, arr2) { + let len = Math.min(arr1.length, arr2.length) + let i = -1, res = []; + while (++i < len) { + if (arr1.indexOf(arr2[i]) > -1) res.push(arr2[i]) + } + return res + }, + //得到两个数组的并集, 两个数组的元素为数值或字符串 + getUnion(arr1, arr2) { + return Array.from(new Set([...arr1, ...arr2])); + }, + //判断要查询的数组是否至少有一个元素包含在目标数组中 + hasOneOf(arr1, arr2) { + return arr1.some(_ => arr2.indexOf(_) > -1); + }, + //判断下级数组是否为空 + hasChild(arr, key = 'children') { + return arr[key] && arr[key].length !== 0 + } + } +} diff --git a/miniprogram/mp-sdk/lib/dataType.js b/miniprogram/mp-sdk/lib/dataType.js new file mode 100644 index 00000000..a1d824a9 --- /dev/null +++ b/miniprogram/mp-sdk/lib/dataType.js @@ -0,0 +1,29 @@ +module.exports = { + //判断数据类型 + isDataType: { + ifNull(value) { + return value === undefined || value === null || value === ''; + }, + ifBoolean(value) { + return typeof value == 'boolean'; + }, + ifFunction(value) { + return typeof value == 'function'; + }, + ifObject(value) { + return Object.prototype.toString.call(value) === '[object Object]'; + }, + ifArray(value) { + return value instanceof Array || Object.prototype.toString.call(value) === '[object Array]'; + }, + ifDate(value) { + return value instanceof Date || Object.prototype.toString.call(value) === '[object Date]'; + }, + ifNumber(value) { + return value instanceof Number || Object.prototype.toString.call(value) === '[object Number]'; + }, + ifString(value) { + return value instanceof String || Object.prototype.toString.call(value) === '[object String]'; + } + } +} diff --git a/miniprogram/mp-sdk/lib/date.js b/miniprogram/mp-sdk/lib/date.js new file mode 100644 index 00000000..062f2c8f --- /dev/null +++ b/miniprogram/mp-sdk/lib/date.js @@ -0,0 +1,74 @@ +//日期时间操作 +module.exports = { + isDate: { + new_date: new Date() , + year: new Date().getFullYear(), //当前年 + month: new Date().getMonth(), //当前月 + date: new Date().getDate(), //当前日 + day: new Date().getDay(), //今天本周的第几天 + //获取当前的日期 + currentDate() { + return this.formatDate(new Date()); + }, + //获得本周的开端日期 + weekStartDate() { + return this.formatDate(new Date(this.year,this.month, this.date - this.day)); + }, + //获得本周的停止日期 + weekEndDate() { + return this.formatDate(new Date(this.year,this.month, this.date + (6 - this.day))); + }, + //获得上周的停止日期 + weekLastEndDate() { + return this.formatDate(new Date(this.year,this.month, this.date + (6 - this.day - 7))); + }, + //获得本月的开端日期 + monthStartDate() { + return this.formatDate(new Date(this.year,this.month, 1)); + }, + //获得本月的停止日期 + monthEndDate() { + return this.formatDate(new Date(this.year,this.month, this.monthDays(this.month))); + }, + //获得上月开端时候 + monthLastStartDate() { + return this.formatDate(new Date(this.year,this.month - 1, 1)); + }, + //获得上月停止时候 + monthLastEndDate() { + const day = new Date(this.year, this.month, 0).getDate(); + return this.formatDate(new Date(this.year,this.month - 1, day)); + }, + //获取今年的开头 + currentYear() { + return this.new_date.getFullYear() + "-01-01"; + }, + //获取今天之前的多少天的日期 + DateCountDay(Day) { + return this.formatDate(new Date().setDate(this.date + Day)); + }, + //获得某月的天数 + monthDays(month) { + let StartDate = new Date(this.year, month, 1); + let EndDate = new Date(this.year, month + 1, 1); + return (StartDate - EndDate)/(1000 * 60 * 60 * 24); + }, + //格局化日期:yyyy-MM-dd + formatDate(date) { + let y = date.getFullYear(); + let m = date.getMonth() + 1; + let d = date.getDate(); + if (m < 10) m = "0" + m; + if (d < 10) d = "0" + d; + return (y + "-" + m + "-" + d); + }, + //字段拼接 + substrDataStr(date) { + let strArr = []; + strArr.push(date.substr(0, 4)) + strArr.push(date.substr(4, 2)) + strArr.push(date.substr(6, 2)) + return strArr + } + }, +} \ No newline at end of file diff --git a/miniprogram/mp-sdk/lib/index.js b/miniprogram/mp-sdk/lib/index.js new file mode 100644 index 00000000..3684fdc6 --- /dev/null +++ b/miniprogram/mp-sdk/lib/index.js @@ -0,0 +1,15 @@ +import dataType from './dataType' +import array from './array' +import object from './object' +import date from './date' +import random from './random' +import tools from './tools' + +module.exports = { + dataType: dataType, + array: array, + object: object, + date: date, + random: random, + tools: tools, +} diff --git a/miniprogram/mp-sdk/lib/object.js b/miniprogram/mp-sdk/lib/object.js new file mode 100644 index 00000000..6c6ec888 --- /dev/null +++ b/miniprogram/mp-sdk/lib/object.js @@ -0,0 +1,21 @@ +module.exports = { + //对象操作 + isObj: { + //判断一个对象是否存在key + hasKey(obj, key) { + //如果传入第二个参数key,则是判断这个obj对象是否存在key这个属性 + //如果没有传入key这个参数,则判断obj对象是否有键值对 + if (key) return key in obj; + let keysArr = Object.keys(obj); + return keysArr.length; + }, + // 判断两个对象是否相等,这两个对象的值只能是数字或字符串 + objEqual(obj1, obj2) { + const keysArr1 = Object.keys(obj1) + const keysArr2 = Object.keys(obj2) + if (keysArr1.length !== keysArr2.length) return false + else if (keysArr1.length === 0 && keysArr2.length === 0) return true + else return !keysArr1.some(key => obj1[key] != obj2[key]) + }, + } +} diff --git a/miniprogram/mp-sdk/lib/random.js b/miniprogram/mp-sdk/lib/random.js new file mode 100644 index 00000000..b82a82a9 --- /dev/null +++ b/miniprogram/mp-sdk/lib/random.js @@ -0,0 +1,45 @@ +module.exports = { + //随机字符串操作 + isRandom: { + NUM: '0123456789', + XEU: 'abcdefghijklmnopqrstuvwxyz', + DEU: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', + //生成随机字符串,默认为全部类型 + getRandom(num, chars) { + if (!chars) chars = this.NUM + this.XEU + this.DEU + let maxPos = chars.length, value = ''; + for (let i = 0; i < num; i++) { + value += chars.charAt(Math.floor(Math.random() * maxPos)); + } + return value; + }, + //数字 + getRandomNUM(num) { + return this.getRandom(num, this.NUM); + }, + //小写字母 + getRandomXEU(num) { + return this.getRandom(num, this.XEU); + }, + //大写字母 + getRandomDEU(num) { + return this.getRandom(num, this.DEU); + }, + //数字+ 小写字母 + getRandomNUM_XEU(num) { + return this.getRandom(num, this.NUM + this.XEU); + }, + //数字 + 大写字母 + getRandomNUM_DEU(num) { + return this.getRandom(num, this.NUM + this.DEU); + }, + //小写字母 + 大写字母 + getRandomXEU_DEU(num) { + return this.getRandom(num, this.XEU + this.DEU); + }, + //范围随机数 + getRandomFrom(lower, upper) { + return Math.floor(Math.random() * (upper - lower + 1) + lower); + } + } +} \ No newline at end of file diff --git a/miniprogram/mp-sdk/lib/request.js b/miniprogram/mp-sdk/lib/request.js new file mode 100644 index 00000000..123a5a25 --- /dev/null +++ b/miniprogram/mp-sdk/lib/request.js @@ -0,0 +1,47 @@ +//发起请求 +const request = (promise, loading = false, config) => { + return new Promise( (resolve, reject) => { + if (['produce','dev','host'].includes(config.env)) { + if (loading) { + wx.showLoading({ + title:'请求中', + mask: true + }) + } + wx.request({ + url: config.api[config.env].url + promise.url, + method: promise.method || 'GET', + header: promise.header || config.api.header, + data: promise.data, + success: res => { + if (res.statusCode === 200) { + resolve(res.data); + } else { + wx.showToast({ + title: res.msg, + icon: 'none', + duration: 2000 + }); + reject(res.msg) + } + }, + fail: err => { + wx.showToast({title: "网络异常",icon: 'none'}); + reject(err) + }, + complete() { + if (loading) { + wx.hideLoading() + } + } + }); + } else { + wx.showToast({title: "环境异常",icon: 'none'}); + reject({msg: "环境异常"}) + } + }); +}; + +module.exports = { + request: request +} diff --git a/miniprogram/mp-sdk/lib/tools.js b/miniprogram/mp-sdk/lib/tools.js new file mode 100644 index 00000000..97c27bdb --- /dev/null +++ b/miniprogram/mp-sdk/lib/tools.js @@ -0,0 +1,31 @@ +module.exports = { + //金额处理:保留几位小数,不四舍五入(关于金额数值的处理用这个方法,以防金额计算出错) + priceFormat(price, decimal=2) { + if (price) { + let price = (price * 100) / 100; + return parseFloat(price) + .toFixed(decimal) + .toString() + .split('') + .reverse() + .join('') + .replace(/(\d{3})/g, '$1,') + .replace(/\,$/, '') + .split('') + .reverse() + .join('') + } else { + return 0; + } + }, + //数字格式化 + numberFormat(num) { + if (num > 1000 && num < 10000) { + return Math.floor(num / 1000) + 'k'; + } else if (num > 10000) { + return Math.floor(num / 10000) + 'W'; + } else { + return num; + } + }, +} diff --git a/miniprogram/mp-sdk/wxs/tools.wxs b/miniprogram/mp-sdk/wxs/tools.wxs new file mode 100644 index 00000000..a7d71639 --- /dev/null +++ b/miniprogram/mp-sdk/wxs/tools.wxs @@ -0,0 +1,20 @@ +//tools.wxs文件 +indexOf = function (arr, value) { + return arr.indexOf(value) >= 0; +} + +//数字格式化 +numberFormat = function (Num) { + if (Num > 1000 && Num < 10000) { + return Math.floor(Num / 1000) + 'k'; + } else if (Num > 10000) { + return Math.floor(Num / 10000) + 'W'; + } else { + return Num; + } +} + +module.exports = { + indexOf: indexOf, + numberFormat: numberFormat +} \ No newline at end of file diff --git a/miniprogram/pages/about/index.js b/miniprogram/pages/about/index.js index dfe0df3b..07e32da8 100644 --- a/miniprogram/pages/about/index.js +++ b/miniprogram/pages/about/index.js @@ -5,7 +5,7 @@ Page({ * 页面的初始数据 */ data: { - + version: '' }, Chadwuo() { const arr = ['你拍了拍作者头顶\r\n却没摸到秀发', '要不要来一把LOL', '花生,你发现了彩蛋'] @@ -20,6 +20,9 @@ Page({ * 生命周期函数--监听页面加载 */ onLoad: function (options) { + this.setData({ + version: getApp().colorUISdk.version + }) wx.showShareMenu({ menus: ['shareAppMessage', 'shareTimeline'] }) diff --git a/miniprogram/pages/about/index.json b/miniprogram/pages/about/index.json index 08abe5c1..8835af06 100644 --- a/miniprogram/pages/about/index.json +++ b/miniprogram/pages/about/index.json @@ -1,4 +1,3 @@ { - "navigationBarTitleText": "关于礼记", "usingComponents": {} } \ No newline at end of file diff --git a/miniprogram/pages/about/index.scss b/miniprogram/pages/about/index.scss new file mode 100644 index 00000000..b02b8c2c --- /dev/null +++ b/miniprogram/pages/about/index.scss @@ -0,0 +1 @@ +/* pages/about/index.wxss */ \ No newline at end of file diff --git a/miniprogram/pages/about/index.wxml b/miniprogram/pages/about/index.wxml index 5708b4ef..b8173b60 100644 --- a/miniprogram/pages/about/index.wxml +++ b/miniprogram/pages/about/index.wxml @@ -1,20 +1,35 @@ - - - 礼记 - 记得住恩情,守得住初心 - - 礼尚往来,是中华民族的传统美德,老一辈人一般会在举行宴席的时候用手写人情簿的方式来记录每一个亲友的送礼,然后在对方有宴席邀请的时候翻阅人情簿,计算出送礼金额。这种方式存在很多弊端,比如人情簿丢失、无法携带在身边、很难搜索到某个人的送礼记录、由于手写原因无法辨认清楚内容等等。 + + + + + + + 礼记 + 记得住恩情,守得住初心 + - 「礼记」是一个基于微信小程序的在线人情簿,随身携带、快速查找、统计汇总、亲友往来、家庭共享,为记账带来了全新体验。 - - - - - - - - -
\ No newline at end of file + + 礼尚往来,是中华民族的传统美德,老一辈人一般会在举行宴席的时候用手写人情簿的方式来记录每一个亲友的送礼,然后在对方有宴席邀请的时候翻阅人情簿,计算出送礼金额。这种方式存在很多弊端,比如人情簿丢失、无法携带在身边、很难搜索到某个人的送礼记录、由于手写原因无法辨认清楚内容等等。 + + + + 「礼记」是一个基于微信小程序的在线人情簿,随身携带、快速查找、统计汇总、亲友往来、家庭共享,为记账带来了全新体验。 + + + + + Chadwuo + + + v{{version}} + + + 微信8.0.16及以上 + + + GPL-3.0 license + + +
+ \ No newline at end of file diff --git a/miniprogram/pages/about/index.wxss b/miniprogram/pages/about/index.wxss deleted file mode 100644 index da6b66ea..00000000 --- a/miniprogram/pages/about/index.wxss +++ /dev/null @@ -1,39 +0,0 @@ -/* pages/about/index.wxss */ -.container { - display: flex; - flex-direction: column; - align-items: center; - padding: 0 50rpx; -} - -.container .logo { - margin-top: 80rpx; - text-align: center; -} - -.container .logo image { - width: 128rpx; - height: 128rpx; -} - -.container .title { - font-weight: 500; - color: #000000; - font-size: 38rpx; - margin: 36rpx 0; -} - -.container .title_info { - font-family: PingFang SC; - font-weight: 300; - color: #000000; - font-size: 30rpx; - margin-bottom: 24rpx; -} - -.container .describe { - font-size: 28rpx; - font-family: PingFang SC; - color: #888888; - margin-bottom: 56rpx; -} \ No newline at end of file diff --git a/miniprogram/pages/family/index.js b/miniprogram/pages/family/index.js index c32abcc5..58994f6f 100644 --- a/miniprogram/pages/family/index.js +++ b/miniprogram/pages/family/index.js @@ -124,7 +124,7 @@ Page({ return { title: '和我一起记录家里的人情往来', path: `pages/family/index?familyId=${this.data._id}&word=${app.userInfo.nickName}邀请你加入家庭共享记账`, - imageUrl: '../../images/share.jpg' + imageUrl: '/static/img/share2.jpg' } } }) \ No newline at end of file diff --git a/miniprogram/pages/friend/index.js b/miniprogram/pages/friend/index.js index bc0d331e..3a43cdc0 100644 --- a/miniprogram/pages/friend/index.js +++ b/miniprogram/pages/friend/index.js @@ -5,9 +5,19 @@ Page({ * 页面的初始数据 */ data: { + scrollTop: 0, friendsList: [], keyword: '' }, + // 监听用户滑动页面事件。 + onPageScroll(e) { + // 注意:请只在需要的时候才在 page 中定义此方法,不要定义空方法。以减少不必要的事件派发对渲染层-逻辑层通信的影响。 + // 注意:请避免在 onPageScroll 中过于频繁的执行 setData 等引起逻辑层-渲染层通信的操作。尤其是每次传输大量数据,会影响通信耗时。 + // https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onPageScroll-Object-object + this.setData({ + scrollTop: e.scrollTop + }) + }, onSearch() { wx.showToast({ title: '搜索...马上写完,真的', diff --git a/miniprogram/pages/friend/index.wxml b/miniprogram/pages/friend/index.wxml index 3a1212fc..ce02700d 100644 --- a/miniprogram/pages/friend/index.wxml +++ b/miniprogram/pages/friend/index.wxml @@ -1,5 +1,22 @@ - + + + + + 礼记 + + + + + + 键入类名搜索释义 + + + + + + + @@ -18,4 +35,4 @@ -
\ No newline at end of file + \ No newline at end of file diff --git a/miniprogram/pages/giftOut/index.js b/miniprogram/pages/giftOut/index.js index 9ac311c0..20d68763 100644 --- a/miniprogram/pages/giftOut/index.js +++ b/miniprogram/pages/giftOut/index.js @@ -6,10 +6,20 @@ Page({ * 页面的初始数据 */ data: { + scrollTop: 0, pageNo: 0, giftList: [], total: '0.00', }, + // 监听用户滑动页面事件。 + onPageScroll(e) { + // 注意:请只在需要的时候才在 page 中定义此方法,不要定义空方法。以减少不必要的事件派发对渲染层-逻辑层通信的影响。 + // 注意:请避免在 onPageScroll 中过于频繁的执行 setData 等引起逻辑层-渲染层通信的操作。尤其是每次传输大量数据,会影响通信耗时。 + // https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onPageScroll-Object-object + this.setData({ + scrollTop: e.scrollTop + }) +}, onSearch() { wx.showToast({ title: '搜索...马上写完,真的', diff --git a/miniprogram/pages/giftOut/index.wxml b/miniprogram/pages/giftOut/index.wxml index 47fc0abe..8c12511a 100644 --- a/miniprogram/pages/giftOut/index.wxml +++ b/miniprogram/pages/giftOut/index.wxml @@ -1,5 +1,22 @@ - + + + + + 礼记 + + + + + + 键入类名搜索释义 + + + + + + + @@ -18,8 +35,6 @@ {{item.money}}元 -
+ - - -
\ No newline at end of file + \ No newline at end of file diff --git a/miniprogram/pages/index/index.js b/miniprogram/pages/index/index.js index 866747b5..9af6e302 100644 --- a/miniprogram/pages/index/index.js +++ b/miniprogram/pages/index/index.js @@ -3,222 +3,232 @@ const bookService = require('../../alicloud/services/book') Page({ - /** - * 页面的初始数据 - */ - data: { - keyword: '', - pageNo: 0, - giftBooks: [], - showBookAction: false, - bookActions: [{ - name: '编辑', - }, - { - name: '删除', - subname: '该礼簿所有来往记录都将被删除', - }, - ], - bookActionDetail: {} - }, - onSearch() { - wx.showToast({ - title: '搜索...马上写完,真的', - icon: 'none', - }) - }, - // 添加收礼 - onAddGift() { - wx.navigateTo({ - url: '/pages/giftReceive/edit/index', - events: { - // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 - refresh: () => { - this.loadData(1) - }, - } - }); - }, - // 添加礼簿 - onAddBook() { - wx.navigateTo({ - url: '/pages/book/edit/index', - events: { - refresh: () => { - this.loadData(1) - }, - } - }); - }, - // 点击礼簿 - onBookClick(e) { - wx.navigateTo({ - url: '/pages/book/details/index', - events: { - refresh: () => { - this.loadData(1) - }, - }, - success: function (res) { - // 通过 eventChannel 向被打开页面传送数据 - res.eventChannel.emit('acceptDataFromOpenerPage', { - book: e.currentTarget.dataset.book + /** + * 页面的初始数据 + */ + data: { + scrollTop: 0, + keyword: '', + pageNo: 0, + giftBooks: [], + showBookAction: false, + bookActions: [{ + name: '编辑', + }, + { + name: '删除', + subname: '该礼簿所有来往记录都将被删除', + }, + ], + bookActionDetail: {} + }, + // 监听用户滑动页面事件。 + onPageScroll(e) { + // 注意:请只在需要的时候才在 page 中定义此方法,不要定义空方法。以减少不必要的事件派发对渲染层-逻辑层通信的影响。 + // 注意:请避免在 onPageScroll 中过于频繁的执行 setData 等引起逻辑层-渲染层通信的操作。尤其是每次传输大量数据,会影响通信耗时。 + // https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onPageScroll-Object-object + this.setData({ + scrollTop: e.scrollTop }) - } - }); - }, - // 长按礼簿 - onBookLongPress(e) { - this.setData({ - showBookAction: true, - bookActionDetail: e.currentTarget.dataset.book - }); - }, - // 长按礼簿-关闭 - onCloseBookAction() { - this.setData({ - showBookAction: false - }); - }, - // 长按礼簿-动作 - onSelectBookAction(event) { - const that = this - switch (event.detail.name) { - case '删除': - wx.showModal({ - title: '删除礼簿?', - content: '该礼簿所有来往记录都将被删除,确定删除?', - async success(result) { - if (result.confirm) { - const res = await bookService.deleteBook({ - _id: that.data.bookActionDetail._id - }) - if (res.success) { - that.loadData(1) - wx.showToast({ - title: '删除成功', - }) - } - } - } + }, + onSearch() { + wx.showToast({ + title: '搜索...马上写完,真的', + icon: 'none', }) - break; - case '编辑': - console.log(that.data.actionId) + }, + // 添加收礼 + onAddGift() { + wx.navigateTo({ + url: '/pages/giftReceive/edit/index', + events: { + // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 + refresh: () => { + this.loadData(1) + }, + } + }); + }, + // 添加礼簿 + onAddBook() { + wx.navigateTo({ + url: '/pages/book/edit/index', + events: { + refresh: () => { + this.loadData(1) + }, + } + }); + }, + // 点击礼簿 + onBookClick(e) { wx.navigateTo({ - url: `/pages/book/edit/index`, - success: function (res) { - // 通过 eventChannel 向被打开页面传送数据 - res.eventChannel.emit('acceptDataFromOpenerPage', that.data.bookActionDetail) - }, - events: { - refresh: () => { - this.loadData(1) + url: '/pages/book/details/index', + events: { + refresh: () => { + this.loadData(1) + }, }, - } + success: function (res) { + // 通过 eventChannel 向被打开页面传送数据 + res.eventChannel.emit('acceptDataFromOpenerPage', { + book: e.currentTarget.dataset.book + }) + } }); - break; - default: - break; - } - }, - // 计算礼簿收礼金额 - computeTotal(datas) { - return datas.map(i => { - i.giftCount = i.giftList.length || 0 - i.giftTotal = 0 - for (let item of i.giftList) { - i.giftTotal += Number(item.money) - } - return i - }) - }, - // 加载数据 - async loadData(page) { - if (page == 1) { - this.setData({ - giftBooks: [] - }) - } - const that = this - const res = await bookService.getBookPage({ - page: page, - limit: 10 - }) - if (res.success) { - const resList = that.computeTotal(res.data) - that.setData({ - giftBooks: this.data.giftBooks.concat(resList), - pageNo: page - }); - } - }, - /** - * 生命周期函数--监听页面加载 - */ - async onLoad(options) { - wx.showLoading({ - title: '加载中', - mask: true - }) - // 人为延迟一点,避免loading动画闪烁 - setTimeout(async () => { - // TODO 定时器,用以临时解决 app.onLaunch与page.onLoad异步问题 - await this.loadData(1) - wx.hideLoading() - }, 888) - }, + }, + // 长按礼簿 + onBookLongPress(e) { + this.setData({ + showBookAction: true, + bookActionDetail: e.currentTarget.dataset.book + }); + }, + // 长按礼簿-关闭 + onCloseBookAction() { + this.setData({ + showBookAction: false + }); + }, + // 长按礼簿-动作 + onSelectBookAction(event) { + const that = this + switch (event.detail.name) { + case '删除': + wx.showModal({ + title: '删除礼簿?', + content: '该礼簿所有来往记录都将被删除,确定删除?', + async success(result) { + if (result.confirm) { + const res = await bookService.deleteBook({ + _id: that.data.bookActionDetail._id + }) + if (res.success) { + that.loadData(1) + wx.showToast({ + title: '删除成功', + }) + } + } + } + }) + break; + case '编辑': + console.log(that.data.actionId) + wx.navigateTo({ + url: `/pages/book/edit/index`, + success: function (res) { + // 通过 eventChannel 向被打开页面传送数据 + res.eventChannel.emit('acceptDataFromOpenerPage', that.data.bookActionDetail) + }, + events: { + refresh: () => { + this.loadData(1) + }, + } + }); + break; + default: + break; + } + }, + // 计算礼簿收礼金额 + computeTotal(datas) { + return datas.map(i => { + i.giftCount = i.giftList.length || 0 + i.giftTotal = 0 + for (let item of i.giftList) { + i.giftTotal += Number(item.money) + } + return i + }) + }, + // 加载数据 + async loadData(page) { + if (page == 1) { + this.setData({ + giftBooks: [] + }) + } + const that = this + const res = await bookService.getBookPage({ + page: page, + limit: 10 + }) + if (res.success) { + const resList = that.computeTotal(res.data) + that.setData({ + giftBooks: this.data.giftBooks.concat(resList), + pageNo: page + }); + } + }, + /** + * 生命周期函数--监听页面加载 + */ + async onLoad(options) { + wx.showLoading({ + title: '加载中', + mask: true + }) + // 人为延迟一点,避免loading动画闪烁 + setTimeout(async () => { + // TODO 定时器,用以临时解决 app.onLaunch与page.onLoad异步问题 + await this.loadData(1) + wx.hideLoading() + }, 888) + }, - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady() { + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { - }, + }, - /** - * 生命周期函数--监听页面显示 - */ - onShow() { + /** + * 生命周期函数--监听页面显示 + */ + onShow() { - }, + }, - /** - * 生命周期函数--监听页面隐藏 - */ - onHide() { + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { - }, + }, - /** - * 生命周期函数--监听页面卸载 - */ - onUnload() { + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { - }, + }, - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh() { - // 感觉延迟一下,会舒服点 - setTimeout(async () => { - await this.loadData(1) - wx.stopPullDownRefresh() - }, 666); - }, + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + // 感觉延迟一下,会舒服点 + setTimeout(async () => { + await this.loadData(1) + wx.stopPullDownRefresh() + }, 666); + }, - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom() { - this.loadData(this.data.pageNo + 1) - }, + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + this.loadData(this.data.pageNo + 1) + }, - /** - * 用户点击右上角分享 - */ - onShareAppMessage() { + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { - } + } }) \ No newline at end of file diff --git a/miniprogram/pages/index/index.wxml b/miniprogram/pages/index/index.wxml index 1b029dbd..6d6eca21 100644 --- a/miniprogram/pages/index/index.wxml +++ b/miniprogram/pages/index/index.wxml @@ -1,44 +1,54 @@ - - - - - - - - - - - - - - - {{ item.title||'' }} - 共 {{ item.giftCount||0 }} 笔 - - - ¥ {{ item.giftTotal||'0.00' }} - {{ item.date.value }} - {{ item.date.lunar_month }}{{ item.date.lunar_day }} - - - - - - - - - - - - 添加礼簿 + + + + + 礼记 + + + + + + 键入类名搜索释义 + - - - - - + + + + + + + + + + + + + {{ item.title||'' }} + 共 {{ item.giftCount||0 }} 笔 + + + ¥{{ item.giftTotal||'0.00' }} + {{ item.date.value }} + {{ item.date.lunar_month }}{{ item.date.lunar_day }} + + + + + + + + + + + + 添加礼簿 + + + + + + + - - -
\ No newline at end of file + \ No newline at end of file diff --git a/miniprogram/pages/mine/index.js b/miniprogram/pages/mine/index.js index 4a32e2df..60a2d8b4 100644 --- a/miniprogram/pages/mine/index.js +++ b/miniprogram/pages/mine/index.js @@ -3,156 +3,154 @@ const giftReceiveService = require('../../alicloud/services/giftReceive') const jinrishici = require('../../utils/jinrishici.js') Page({ - /** - * 页面的初始数据 - */ - data: { - welcome: '', - giveTotal: 0.00, - receiveTotal: 0.00, - menus: [{ - page: "family", - icon: "shop-o", - name: "我的家庭" - }, - { - page: "export", - icon: "peer-pay", - name: "数据导出" - }, - { - page: "chart", - icon: "chart-trending-o", - name: "统计分析" - }, - // { - // page: "sponsor", - // icon: "good-job-o", - // name: "赞赏" - // }, - { - page: "question", - icon: "question-o", - name: "常见问题" - }, - { - page: "issue", - icon: "smile-comment-o", - name: "意见反馈" - }, - { - page: "share", - icon: "share-o", - open_type: 'share', - name: "分享" - }, - { - page: "about", - icon: "info-o", - name: "关于" - } - ] - }, - jumpProfile() { - wx.navigateTo({ - url: '/pages/profile/index', - }); - }, - jumpPage(e) { - if (e.currentTarget.dataset.page === 'chart') { - wx.showToast({ - title: '统计分析,马上写完,真的...', - icon: 'none', - }) - return - } - if (e.currentTarget.dataset.page === 'export') { - wx.showToast({ - title: '数据导出,马上写完,真的...', - icon: 'none', - }) - return - } + /** + * 页面的初始数据 + */ + data: { + scrollTop: 0, + welcome: '', + giveTotal: 0.00, + receiveTotal: 0.00, + menus: [{ + icon: "cicon-home-community", + name: "我的家庭", + color: "#9DCA06", + path: "/pages/family/index" + }, + { + icon: "cicon-backup", + name: "数据导出", + color: "#FFB300", + path: "/pages/export/index" + }, + { + icon: "cicon-demo", + name: "统计分析", + color: "#53bcf5", + path: "/pages/chart/index" + }, + { + icon: "cicon-service-fill", + name: "亲友关系", + color: "#F37D7D", + path: "/pages/chart/index" + } + ], + }, + // 监听用户滑动页面事件。 + onPageScroll(e) { + // 注意:请只在需要的时候才在 page 中定义此方法,不要定义空方法。以减少不必要的事件派发对渲染层-逻辑层通信的影响。 + // 注意:请避免在 onPageScroll 中过于频繁的执行 setData 等引起逻辑层-渲染层通信的操作。尤其是每次传输大量数据,会影响通信耗时。 + // https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onPageScroll-Object-object + this.setData({ + scrollTop: e.scrollTop + }) + }, + jumpProfile() { + wx.navigateTo({ + url: '/pages/profile/index', + }); + }, + tapToUrl(e) { + wx.navigateTo({ + url: e.currentTarget.dataset.url + }) + }, + jumpPage(e) { + if (e.currentTarget.dataset.page === 'chart') { + wx.showToast({ + title: '统计分析,马上写完,真的...', + icon: 'none', + }) + return + } + if (e.currentTarget.dataset.page === 'export') { + wx.showToast({ + title: '数据导出,马上写完,真的...', + icon: 'none', + }) + return + } - wx.navigateTo({ - url: `/pages/${e.currentTarget.dataset.page}/index`, - }); - }, - /** - * 生命周期函数--监听页面加载 - */ - onLoad: function (options) { - jinrishici.load(result => { - this.setData({ - welcome: result.data.content - }) - }) - wx.showShareMenu({ - menus: ['shareAppMessage', 'shareTimeline'] - }) - }, + wx.navigateTo({ + url: `/pages/${e.currentTarget.dataset.page}/index`, + }); + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + jinrishici.load(result => { + this.setData({ + welcome: result.data.content + }) + }) + wx.showShareMenu({ + menus: ['shareAppMessage', 'shareTimeline'] + }) + }, - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady: function () { + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { - }, + }, - /** - * 生命周期函数--监听页面显示 - */ - async onShow() { - const { - data: rTotal - } = await giftReceiveService.computedTotalGiftReceive() - this.setData({ - receiveTotal: rTotal || 0, - }); - const { - data: oTotal - } = await giftOutService.computedTotalGiftOut() - this.setData({ - giveTotal: oTotal || 0, - }); - }, + /** + * 生命周期函数--监听页面显示 + */ + async onShow() { + const { + data: rTotal + } = await giftReceiveService.computedTotalGiftReceive() + this.setData({ + receiveTotal: rTotal || 0, + }); + const { + data: oTotal + } = await giftOutService.computedTotalGiftOut() + this.setData({ + giveTotal: oTotal || 0, + }); + }, - /** - * 生命周期函数--监听页面隐藏 - */ - onHide: function () { + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { - }, + }, - /** - * 生命周期函数--监听页面卸载 - */ - onUnload: function () { + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { - }, + }, - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh: function () { + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { - }, + }, - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom: function () { + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { - }, + }, - /** - * 用户点击右上角分享 - */ - onShareAppMessage: function () { - return { - title: '可能是东半球最好用的人情记账工具', - path: "pages/index/index", - imageUrl: '../../images/share.jpg' + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + return { + title: '可能是东半球最好用的人情记账工具', + path: "pages/index/index", + imageUrl: '/static/img/share.jpg' + } } - } }) \ No newline at end of file diff --git a/miniprogram/pages/mine/index.wxml b/miniprogram/pages/mine/index.wxml index 0608883f..9f21fd43 100644 --- a/miniprogram/pages/mine/index.wxml +++ b/miniprogram/pages/mine/index.wxml @@ -1,46 +1,95 @@ - - - - - - + + + 我的 + + + + + + + + Hello,啄木鸟 + {{welcome}} + - - - - - - + + + + + + + + {{receiveTotal}} + 收礼 + + + {{giveTotal}} + 送礼 + + + + + + + + + + {{item.name}} + + + + - {{welcome}} - + + + + + + + + + + + + + + + + - - - - - - - {{receiveTotal}} - - - {{giveTotal}} - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/miniprogram/pages/mine/index.wxss b/miniprogram/pages/mine/index.wxss index 4da1ac77..183298ae 100644 --- a/miniprogram/pages/mine/index.wxss +++ b/miniprogram/pages/mine/index.wxss @@ -14,13 +14,13 @@ button { width: 100%; height: 100%; outline: none; - } - - button::after { +} + +button::after { border: none; - } - - .container .header { +} + +.container .header { display: flex; flex-wrap: wrap; align-items: center; @@ -29,9 +29,9 @@ button { height: 190rpx; position: relative; background-color: #F76664 !important; - } - - .container .header:after { +} + +.container .header:after { position: absolute; left: 0; right: 0; @@ -42,55 +42,70 @@ button { width: 100%; border-radius: 0 0 50% 50%; background-color: #F76664; - } - - .container .header .picTxt { +} + +.container .header .picTxt { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; - } - - .container .header .picTxt .pictrue { +} + +.container .header .picTxt .pictrue { position: relative; display: flex; flex-direction: column; align-items: center; - } - - .container .header .picTxt .pictrue .avatar { +} + +.container .header .picTxt .pictrue .avatar { overflow: hidden; display: block; width: 120rpx; height: 120rpx; border-radius: 50%; border: 2px solid #f5f5f5; - } - - .container .header .picTxt .text { +} + +.container .header .picTxt .text { width: 434rpx; color: rgba(255, 255, 255, 1); margin-left: 35rpx; - } - - .container .header .picTxt .text .name { +} + +.container .header .picTxt .text .name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #fff; font-size: 36rpx; max-width: 470rpx; - } - - .container .header .picTxt .text .desc { +} + +.container .header .picTxt .text .desc { color: rgba(255, 255, 255, 0.6); font-size: 26rpx; margin-top: 15rpx; - } - - .container .header .icon-shezhi { +} + +.container .header .icon-shezhi { font-size: 38rpx; color: #fff; margin-top: 15rpx; margin-right: 30rpx; - } \ No newline at end of file +} + + +.ui-item { + display: block; + text-align: center; +} + +.open-btn { + position: absolute; + top: 0; + left: 0; + min-height: 4em; + width: 100%; + opacity: 0; +} \ No newline at end of file diff --git a/miniprogram/pages/set/index.js b/miniprogram/pages/set/index.js new file mode 100644 index 00000000..1b1982d9 --- /dev/null +++ b/miniprogram/pages/set/index.js @@ -0,0 +1,66 @@ +// pages/set/index.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/miniprogram/pages/set/index.json b/miniprogram/pages/set/index.json new file mode 100644 index 00000000..8835af06 --- /dev/null +++ b/miniprogram/pages/set/index.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/miniprogram/pages/set/index.scss b/miniprogram/pages/set/index.scss new file mode 100644 index 00000000..5fea6b41 --- /dev/null +++ b/miniprogram/pages/set/index.scss @@ -0,0 +1 @@ +/* pages/set/index.wxss */ \ No newline at end of file diff --git a/miniprogram/pages/set/index.wxml b/miniprogram/pages/set/index.wxml new file mode 100644 index 00000000..974116bd --- /dev/null +++ b/miniprogram/pages/set/index.wxml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/miniprogram/static/favicon.png b/miniprogram/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..c61d3ba94042ce06f971d56e2c5954c92920035c GIT binary patch literal 6184 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 literal 0 HcmV?d00001 diff --git a/miniprogram/static/img/bg_book_add.png b/miniprogram/static/img/bg_book_add.png new file mode 100644 index 0000000000000000000000000000000000000000..5e4c91ca3cf9f11b2e40261b73b18172a3e25679 GIT binary patch literal 1773 zcmbVNX;4#F6b@kvplq^OmJu3Iiv(1xnouMOK^84gHU+dOf^ET3KvWPFOc`VuX`rAP zSN6J4KoA5pLqUZI$fE2q2?-Dafds-10ebYc%=B;H%)9qH-#O>I-?{I{OZISc+Nf%v zibA0_x;RrjVQ0cC#K^;X-y+}+3WeU{aoF2&a&mHEVPR%wW@Kb!?Z3~^(9r1U=sFKT zBoaXhki)~n0FY23kw9u{YHDn344C=(c~Il?`LIHbP$&fb+1c6U<>iTq319#t0I)zH z7#|-W92^9UJkSo75R4ox7K{H)t^qSQH;06XK1cxxmViW3APAPg05CAZdM^M-ak*UZ z2^au`NEQ^3DPZOCcrXPbh*Tmrpc0J15paQkWilDkyRHBLW`ubW1_l8sLWbPeK4H zJsY|-P2P!|B~7c-sngwuPD?Aw8^Xs$ob)M7;7|irx-*F%9j@^+i`StVkekk-vP3$~ zq}j$r^oc>Ey{k9!Wy@E7Y#tpsu*`T@bvH(!(tetcQhTBFe$Jot-Ao&eZYR5y-AZ0! zHOZIiin+?coB9Xvao?_#W*Um0G36%WomLbaq=%}A8NG{+E@$!n$Y~c0AN*MDgkB(vG#*x@S;# zjU96-k#v?GvsJo^-q+~h^5U1*-99-rr{?{qrYjAr-E9OT9!(=I3-g@wS$c+%mCGmb zT@|qx?=1#8cdzzWy-&Qa8+-sC>&J;Ba$3uAd#CHQB)R4yuU~_$Lw;{7Rw=&sm9tz% zWns$A+AL-HHEIiem3>8-k8T*qBKBCT$6CFp;+HYhxp; zrCyY$<)(TcmTQKo#P7+_B*Tnp^H{UebtRdm+059DqaA6?B%a}lYBim9CWLW1*XYql zXYi6tVo|w96p?Pdc0HlsP?K(vFMFc(2s*+dlUTn+C(4Xxu2t)QmaCRYq<^d+wmuam z#XdwE_%<_`s^+vO)~+U%Jta9<@ms60qd36^94!b(dq*Jf#lATyU6I`VZl365_6Kxd zK_2#uyLXwt?3mgRLyw6yH|AY%^-Xn%->lrxp`{+?hf{j9KPe+^KRuAxt`()A8Kq!M za{7$EY%SIVYTAiw9S~2eVF=VkMFrzJ8Je1wjg8O73Na=^AR+i?qX$A?oh%n(fj&sB z_mG@WpH;sc@jr#%4A>TjRHX5*A4_B_;MyFFerv=S=v~BVTr9Hk{*WFKZS?2KKZfP% zd~4E1#`+zji>m$f`*IZ`aYVv{wrdZZ8$%0rTsJZ|rY-amk`~eu>^+PrvQWG(!DOyP zpHjDDw_qRTvXj-vb4lTikJ<<(>FN1sPn-Hcjr33H*%FH`2eXpy$?AN0&w~V$f>jDL zHM^60?gl%L;{43pDMZDbq^@#7=W2eibM;|nyJ;s%d-EB!s9;WEqNah)?ZVO`s$A#h zvc51CQOxr=`%pCbYFIF%Ryu1Ms-4jtpfhyVJyeNoqqwVZ+$>a&Y?m*qGy7n7*Pm)M zI_HCa-Pe=#$Pu$~Tzgksjo8R+Nk5^i(BSwc+m`#bS_LT6v8s+w^FCS i%e>kjc1^wDialzV?)Fky>m~Sqp-?W4Zj@s33F_avgGCqs literal 0 HcmV?d00001 diff --git a/miniprogram/static/img/bg_summary.png b/miniprogram/static/img/bg_summary.png new file mode 100644 index 0000000000000000000000000000000000000000..b70748cc5bc09110d1f302949bb3e2b56e884889 GIT binary patch literal 7554 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 literal 0 HcmV?d00001 diff --git a/miniprogram/static/img/bg_summary_bill.png b/miniprogram/static/img/bg_summary_bill.png new file mode 100644 index 0000000000000000000000000000000000000000..c93141f4fa4298c606cb0e20214e4f95aa797937 GIT binary patch literal 15597 zcmch;_dna;8$YZ??Nw@z(%QR}T2Zsws@W2IM5|Vnkj8H9t==d~M5-+sMQZOYYS#>* zs1aKfv5NcU^ZovC-~Yg!$HPc+&Na^Uysq;);~8gS^nihuo0g1>jNzeyt{EBG)jZ(; zP3mjF?^*J%uYo^Tpk@!W$w~)#*MK(^u3AsD$jC4$bpMfsM{wVuN5w`Pq~Zd>^)5!>mr?Zy`~g!>HkdJVvv|M+m_WC?u#X;KI{!`?7&Y>*8OJ(y_ z)v-sfahP?fQka3&dd*NZ-eI;>;J1|WVOeI*08`q|*W82e%LyC~b;tkqWS7{Kka*vQ zv%)b`Jbrv7Y<-XwkdnGrJL`E~3)T#-xAhJSZU{IUoOM4~<{c7&pUy`-e>8Uidvo#k z0yD^b*|@LXuIZnDudAl@tD3pmfV03e4(9_Ra`Ua8uCDIV3BN<>T(fnF zKy$#}dCnW(M4rj5$LMiQ*@>JBXDTrv;MGx48+P2Vys{9~H;#1}NPTrwgOxp|Lgq>xF}nKx%~Xj74#`mS}CV&`RGlPje9?=(C2?2i@!k+IDE)C z-Dx@eDO#g)&HjkA5VNzM*^vM!>BnxtPIF}K7s(Bd6tYUR{@26qh~l4b#qs$-4&6DU z$-gcC2~J>8iW{P~ItorRSCRwZU0=LlEq-C7BO%CJ&Axz&sm9ELg#hn_EfS%G1(0FR z(y{#e=CLkq{vC^i)69z|@a)Co<20=0GBgFw zEy|=wpqY+k`wRLYQ~F3NKHk$Ycxnj5$d%n(?jeUN(*^TxMuB^Qe+y@)$btCTl3%r&Y^`J6|4)_L{;`|+ z_zEXzYBzx%arW&?;lDg%Qa)f(=8Luxo%uv9Rxpt#9M_CHzYZF;oL~~tacyxqAL9wS z4>z?F0sKY9~(;)fma0bZ&`)6S^IbuJq=ly~#FXA8J?i6`EpzmtXlTlPb9=6(s)EuNT&wKyTHAb0W}pf zSObRYI*`?(k>#AKkedpEC77Ga`pa4EJ|E_@n}38}=c-?Rv3JHR-Y|=c07fd8u6=Sw zyHFC#o?H`Yys2~Y*rjKL^L#Tww%TC`^Ou;U0W|7SxoPW9gOI9x5+zU|P(f*I5Ym2P z=(75%20z#MKh#@qw`kaSzY(CA!x#RZY4w(9rj`I`DxN`Q(fI_F;N{oq$&00&mkqHDPgpcl2LkBcd&rC7qwzrh#4e$VS=2`t#r&!Z+E^_$Fd7HNJw=rv?TBqDA)zLZ z$S00%(r%HBY^t#NX6g^rshR=1#}!PP>o@pE$t4&*qe3draH5o72`cL1aM0LW38R38yznsnNXO4 zQ2N@D?1ef0kL4-h1Sfx@)B@{;5hOfGJ{4u{DG>T*@BDOUspl9DQHzi58TDh#6?f?* zD&fkfuFC$zqVsE~k6%$EuA#)epi-}Y+V~$ywXx#O9ROH4H=Vyo&P`FSP6Kjxki76r zjcTCj9qZ{AGHm!Pc>c=~VGaDdt8eq%EQk@o{?T^&!2+~J75;&keZmSU;`bKPsRnrs>>x@iwSSYbt?G)YG6)gI9J_H|ExF*KheuK`wJ)*EQu$S}h zd8is*OINpEWnDtFSrgMrLjny+!2blX-}jkO3ErkKVX~y5vxi!qi0)?}2v!qzMekhe z8((>#0+WEp$L6kQ4aYHeYvb8ABaN8ysHcwNLrspx>s$#9tHBwp zsD#KW@mzz}pBIvS{uS`^v$yxnN$Lql4WIOXA@A)`U`^ zq=?vgawJixQ@iO~r69487P2Z9BgNjl(tj#U$~fSwj=_lEap^lCVQKSxm8v-lKY`h^ zWS$y4pI40& z>9R|tM1?=f(^;|xujVd3-eANAZjKKcEbQI;Es8;w%#~{-nx~@bfd?=6-Z8s-DW_jL~tF;yI+#+>*c<=;cDpZwI6(d0NB5fs%JB`AaU86bAbciI%f~t>&1ZvcoNTORTDls}J zR;RdY6>$}k=^A!hiBiEUfg?qfD2pEaG}md*2|d2!=mys(HubQgdGQBs6k4)y-Gcl4 z5$YDfMw=be!Xu(lMvOaY`cRlHy7W?~D*e_h$mArk~h^T8q zkHRpKY6F^;-S3yumAvRrJ&ZauUMo|yn8LAhMQ)KSm4{3W^hmAY_`7}+UAs?rxd7%6QuY+GFVhGVx zLF*EWmS@EDCX-HU9api?5;@SbfPci?-;9-URhCO^w1`u?Kfm1Q7%|j5HtPaMUM1&Vs{>bDiV^g&Y$Rp11tNV|epUk61&k;JVGK{8Er}FnB?vL zh?Jd;%5&-vO6qVyHhbEYb7qeb6Sza?Ip(~bN9VioB)bQsI0aBd4k)@tiI#@{xcWxAdAL)_I_DX9`R(;j zBj70-#E~YAGj!2X?XklZZHF6I%ew3{XrObECvtDTAF$v@>)5!iQW|5B(OaU6CMAY4 z&LypOtkNZJTA#2Y|5XBTc)Y1_A;&V`^xex+&5FA5TBWO$|GG6egu?D19c4mflYDBQ z+ilX{Iyggi%`dzsHvcf-(HF+N6w3qth{E5K$E&;Ut~bg1+qM9$%Z&09dZGCmXa zWuVPdaG}F+Cuj*ss*yByLVS%*z>Fl*-(yI~&ZOsf24|qTdvPX~G z`}tfPJ{T$8jTyc#qg!%6DM~=6;Qd#<*n@Y5##Sc2^PZ7Ln>y{2xleZ83m;;C6?rkQ zN2-6@5C*q6sjc*7D0V|ks$-5r;zNe6oU8kC0r7j+-cDO_BbQ|l@{-Mza%f5{;eov) z5b=g$`z^n~x~3ek?Bjt*-eDP3VvBViHgk9)x&HfzCgl)U>unvMY-dx_;{Q5Yi6!WP z4IizJ%{kBcWS+SHXQ`&pH1qq3oxAwF zK)=bhWb5+PB;AUoN%u;|hD3r6_@3u4t<_GDykAIG*N%oBev$9=%$)C3eJ!X)Gn)j2 zAvtbb#X@;y@U-ic<_uP9T${Q3Vd}8G@%j4Ahfa2AzdG+T+o$6%yleJ#+Mw4O%i*bU zQLeP>^Kp>pXE#Sp*&`cG(xZf>K|^Le5`u>PE^~OR>~$tw$X;k%$nynO;0bS42U4Py zhc={-_K`vA9jKRRFpT?@Loyb{;6^j)0Msn*TRHS7rt965Vr({LQ>8H4 zw>29u*IDmosbMbgBVh6w7v%gx&bUC8Y@0&2^>CN-Ud{WJnl`4)1E#FCi=*b~* z(AZra-`U7v2X@de@2tlU+!M>>Gz;{5(BzJJ9ZE_YCQ}?tU)BO%@@SuePf?(WdVwW5 z$|0JL+q>Fk@sDMcN|=)}1dOHfN;F;mJ!)g3dnbF-)uu$BKIBd&8c}Mxb90Q=?eD?O z38Re`MI`PYq_;L)PPTw^6&B9Fo!NeqrzO)Q{H14RjWh)7(vGQUW-)4mwwsu&m_%Cb z>Y6%+2rWK~4;K5^{NC!lP(ts_z?ysE<>-u8jcybkIB-jP^4H({x_RMbue2iCc|Ybj z{*3A<;tz_sH~H66D6#qd8JoH&Z5oP=IWvJ?@;=0Z!&q(QsT8=S2OeO0=p1~VdG6o>1??O#{B6ehwaiVi7(^}ITxphGTAO5W`@%SsrGu)0;^ zG{-VzTFD3f>SK6(&q|;Z6dxk$Eed=D+ZinES!3N5@AN#i|t{ z#ST@TL?akm*o($MJ$J*$nWny@9R1kV#h#LF0c$*ptwyXk z$NOS-dke)I>V*aNo4rDr<&@elf~yqp#qa9$%TEMT*14@unD$CPMyNr5MS$;Awf^*D z$WJ=S7_0Is1w1S=RlF`M;g8Dx5Ai8(C#^Zv$B8aa)(;Zcf)gG%a~H+kqdBS|YNoKv`)V@A510cPB2AEeY+0)I6?Qw_z)^x8JZiqIl=T9 z>2mZ)ez0pQL5cQgOjG)l?M?l3U4bc+;21rSHtidQTJ!y=z1e@hYCJ*hQ%n(V{1U-R z09Ztn2M=A*m-(2buKdG=?Zno7C>3ZqVoazFYe_rLgUh zQ*|b^N8zM#d23u4!7)<)#l<;|K+H(#?(ZR6yz_U3fbAbA_k?NlSm&dJ*pusSOxDA# z!^Ggpk7x|*sDpf}(FkBB%Q$=DMn{2SVyXYetn@%Bxlu&Bl(i(f-_%aI3C101Lzc$-FgC8pvhwF0Fu1^am{~JM|8a~rQlw*XUV%zPW5cNv(9OTx{0o7 zj?;$H4D;6oT>+hPj!;x=7bH0<jU+=BtR zCdrdF@{2`4-Ps@7|7z1$^_sn^L3IQ@2Q8K4H>h-pzu+?>F9_I|#|5(JYfTj54gpMc z$R%_83r^Bn=&ZD+Xp$b42=sUhpkf2T{TOpUuN=A*=1V(hKIA zyrAqRU-<&!F{k=oz5-|L+Wo1)JG}N%&buaBv(jHnc3e1nh1h9JVvK^~_~<@X25zF) zWQ;=Mt42KZ>@-(eCu8f4rl(Uv4CdX zC5!5A-W{{pW$DxVsiiRfE(hU{9s~P}(pV(U+PA&y3*wk3l-hamnNfuG%LN50lbszQ zBo!<h3%Sg7xA@hduh1Shp!uuP!D!ZWA#ms{OTjQpeT9;Lh%`sqOD~7rK zDn(sbR1TE550S>^r4I+Re>5VLI~;U^TxNRRzMh~8a=KefuDNpM=aU6KQ>vrlRgD>D z^w!~RfaIo|FYDc5H)2Ax(v~SsiN^U??Y&$@g4LSr$L_kguYX+i|25&WX?|dC=_eC( zH1>GA>7(;e<@^+9KJzs$x$-QeAUEpmN-4GM<_c^FuLFJf?mS6#klit|HZz$WB6sN>j?;QkU8 z?h0wGmwVkePsxOQdq&JZdi@riSAvmVub;!zgI-OZC66EY9B#&(%U;p!B}5}ynlpUJ z{MC{x_uyJ*jaZ4445WuBJUY}XHl)S71>zqvQ+mpW-dKdq?ts@Y&RTw?4Q(>Yv?!y$ zbRUdI4tyH6-vArkc&8R%27gBEKdXbDM}EYgs-NMUHTJ7M9t?^1Hj?DC;YTya`8T;H zMYb#czfxrzbfoWV7KX<7GT!v62#wjlxONfxeIpb*y;rLUumABr!g!+f+8tineBbMm z>8!Mf{y`{(zYU}K;XsPlS@itF6N|y21V^dFq~W+T1E&m;)2;MI{_`DF zb53bf%&Rf0Nx_6HLL}h!Q5-E`X2@!%rG?4!%mairAmc2$)py#gBnp3 z^Q>jR4f`nt05?s&ZCBc2l1ea)HgAx;b?{GKM!qT4@R-Wx&!~#HK5fyZb5}y4u@@mb z4?=3PZuB)9^Yh-ioyR3q^hcK-M%R9C5bdCkNX%Lz)M%`>@HMHkT^--Dv%=S(bN z`TOAsj(LnbB-gMtzO354_8vpvMS;;9(vidXf zOPKKMtKC`?)Cf+6&u?i7boZLs>l~(L(#|%u4T_kGIQ-9e8W7yn#Vgh08_nq|0^Q$Y zjCsmjg8N3NmN${#5{eJh`7zsbH+(Se=x1uYF|MtG=c8z}6O6Uv1 zCtx5davykh)TxEv5ahL~_vWQyIOo-xjkZ9|l6cpGST;P?ETvv!h~p^M9ZQ!ka~MkV zO(|?8^!c74V})wu#|7V6$Ew$fkEH3bFR=+*pEXY`R+>{LKSvI6NU9DluXVG7j2ZJv z>HRLkIEg;<9P*xy7h_f>PEd1gtL;L4f#`FM8edSy-f4i&uNPe_V2k%Au_Jq%i8O>E zo=&Bzw$OWwEkn>?%>(bw69=QwRhwLVK2QlYq6WA3-+ijc(j(GiUH#?8&23yChV4ry z8w*r`lBI*!JM>)@z7mg@=GTI+aySu{Mc$z!u3ZCGOA|ff9rBsyJt3p3H8aSPq0{a` zM9ufI;i<1>H`nJ<4y!_c7l1^4aYmYdc&`b+UeWHM{Zd&0Dv5C2wowZE%(F3RBHOq< z4){F1Uc=`w&O}&RtW2~Sd&>zrAYYwI6b>e_tJ`t?lQ9hM>4=~aY!m4<)Gj*P=Syk$ zaQgmWPi2hIHG$li8h%CJKf?#0}WN^`Ux-s)n<6e$@{IcoW=C9o|4 zWiD`Ab+DO0xysEl0& zMgBgt7uUMt3l=LMqR@YytshBFigAeLnS9UMzhmLE%J2(j_(xQ z=<*T~Ipph56{->e@C6X=Q%t+qsnvzJUtUsEm*jY?&>3>PQ{L_S9M0%u{`w;?>cv_X z&`(@uD7{8-o;1Avj-YK8XB8(exTyRT()u4c7kTdfU;DveLzr#VjAe=D&=-*M7rWJ+ zv2Bza-6!GK&Hr%cUKbBgj}ND^-}2!CHu6D}5NvYl0TX;KaGrtUu031Z;yIH!AI`rChXo}fTJfYLebn+LPtOvib^5TuC56$FG z-dZ}66`x4B_f;c!x>f|Lb;8o&x@dd9bl3CAy_y7|(uu^=u||t)^#r_4Acm-0th?~+ zFFDH6iYjr`>hn|}7U|F0PBwGbp(fL@p}g65ishz8d=|{NhJd5id+{U9h5@;(^Z%6F z@hq@zQzqPAr4ZKKWB=LeW4q;G?hTu$!MzUnK$Xmdy#)`p72jgsGU_w3*diy;k>ryE z%_j!16m2w5WI%ybb=~Mzu@i>tKOd=8512ms>>hhX@ezJgUcOcyXa1nVXf*-Rqw2W= zy9YB2-7E%VU_-(EdN#)h z(|%c*$Fl9cG4K5gN;?gB{q?t>tf*0DPr?)rjn1luAfMLI>G?NtF|Du2lbDXbOt6sq2pb7#G)VR6e-9_O0U zeOut>#EVhil2x7wZ(nXTs(>ppi|l8)<-5|xu3DmFO@d>K=3{qfCi!6fI`fP5rpOy0 z+3pF&{Qz~2_su(ClTG~12tc=mv~fA4(*(}AslxLO;)o4;_(i%d1jZ|Vzam^-B+Gzw zmrY5DCS^f(6yF)Of24*gVIXZ4nbHS#=AqwJ;lFIbHtXxB)b`P(F#EhF>t%l~UuhSA z-yY{P689^tR&s#YBRkr~CKeDzAX{>T$);tPuxoq&q&eJ`PL}yDo?T?#JRmC(7aCKp zgk7xrFp@WHp{DPN?G%ugv_0aEpRUt3r}<3H?56Ec>+AKenb4Y7_C%FYQv}vO!j#At zHMmh;&+I<;-W_WB{jNG6kJ^f$xRYq&DJRIZ0+*W_n!odX0t>xTbf&_aH@X_``rQ!J zULEr=K)l2bGoWKK{Q>W}aI$dHa`>I;`Sqx9SVjvAueRIbqhcL=sc=mjZBmS(-LFQm zL{kUPkdhPJ^F`~E8xe(*o%KeHT<8Uu)Dk$RsC3jG4GeBUiPo+y*+gU{Wp{HT2tLv4 zqMpBr6x}Fh)F{*(8U~-X`+$G7S1S^`OJ!cBv_Z2hcQ(n5h++aOA5)dC3-^A z_OIfgOi$dr?J7rfUAvq-*PUM^s9jUf4i?HJ9bFIN&kRWXsQzjy>%;l@-PckFJk}m? z?gyLTn3B@T(#RoQO*v%DxX`};`o-hup(%5_-S^&i$PD`q-*7 z8ROK)Bab&bocsmHw91l7UNH`^dBADZeC+3WyNGe~+AA6A17A7{fsJIiPZFiaBTF?q zyVlJnZI|{q+g@OYoE8!BuKxYTO?XI&$I38(=#6{b*EI%NfG`g-<%-fF->(d*dQCpw zX-ZhA$fe3`cSbIlw?SWk+pbzrbknDGHAlC1iRAQr0hm37ree8{i|5X2a%DGHi z*fKo)I~viU(5;DB^YR>f9h|~D2hM0EcWPE_cMZ?)T*=8DbiZ*@4`Nz74T&-aHgk(3 z3NI>CGIMcD0u}Wyr^3sGge~(kaWNi=0&?+pdA|nl=9ezYL>p7wKI{Dw%14WoGUNxg zR`mfFl-97NGT`b}$Z*<25nq|*5c6u2=q`m6V~SOzAKE22|*G zu&2HW9GW5*Ro?EO6-EQvvtLSs-P(Wr1i>o7YnBo}qnzm1-3hN3Y&+-Is(zFrb=uZz zt8#ep>BE7^P|GM|yR%J>lRe(cF%)se{0*n{{Lfg=u1M}3Zt1!T72Aub!G(mj(Wg~V zgGMh*vhl$mt?!Ziv3ughx4K+uBKrZ@+$%F%dKL z^Nrg#+}Yqwkq>E&o!C_@#rZrjrO{v}JTr?irVzF}3$FhQLyaN-&%hN$h{lhzg}rfQ zVC?|H_}RF+Pk8vyUz;=Y4m~6QDf)epM(t~H!d{Vl%YUkG*VhT72YjF#>Y}AG7WU=D zs=R)4a}j+p0|{;4R~ETmzdU4OLHtwTj14X*u@d$lf##)Pce$2kJlA=hTQ# z{H<$jfgFeEecznAUU<)n6tuo` z3FGqmENjfiwwQRK9QtRwzl`fglqK6$;N80`l-Ws7xROyVLur)8Kt|trBTS){o4`ev zPi;nb)MnT6)l$NaB-pNc3)tA~Q)Cf;N zn_8ePW~YLKeTkGNbcXeEzv7yD(@rMto~RuxHeZ$pEnxFV`)&;yVZy;rM|DD{Kf=mp z88zq@+cp~cG0>|dPZG{=vEGsZRfJp_3s1kgsg|qTTu?leN z;*Zhtabh+2EE$sZGB6rAj<5e3#4{z|6DrKCm0NLzAs_eQYT9qAUOt}7*mcuAmolS9 z9QBI);dLb9Cr!Zn<|Vn0P|%P1H`Fmnyb*rp+AN*NJdF(b%-Ukx1qYCrrmK;m=u?hw zm(B|MzxylntQ0o*R9vL^CGJmnSr(c2{aD_D$U!gu2QrBYO4ptrz24?-W7Q66Vz(HT zU%|=u`21;<{?lmmXg<E88i;jyaO4ONc@ zb;Qu}r@Rd-8sz)I6z!L++Jyf_)Ysq1olOil8_T@bIy0`<8L#t^%yT4m%tY}p%E)oi zsJqKur>MXlvQZx-?jLekjj4Vd_NP(lppoejS(INXZ2p|u_H(J>)c=Gze-YD?F|f}C z4#~{z?n~YO{IFFd(O`^QRWLP7CDk@T1`S`rp3laD`Fa?mO*S(- zIM8>^op)l4&$=!nZh&cBi~6ZuXz%P@ln~89rR1c`%TDbe=lLu4Z%*Rehrx?Ew1@Wm-2wxGFIBVV^38Rm9~I@$uEaZ5ZLPnbJ`Ya~ z((12gf;snJyml)XRxvL6u0x&Yk2t*FKP{EHyw_5+q0{AIprcx&20Ve=GZvV`1DgMR z6gDC9W|~FX%IGJ3T0$v!xu!keRu}7ZehYY*(4V7C2)6PnT1StM(V;z>YT~M_N((54 zib^>mCo`h`N^P8i7`@mHu)b}#t461Drq9%qW(nfR#?!wL${|6?DAC?7QT75(Re6Ic ziqzS5$22ZHE;4oM2Xc5+{V%1U3@0cWcl6(yV;d_N0m`iZZIe@;RB2gSRwDZ@q@`3a za`GeJTJTO(2$7fnk&awb&$yYoF?FV+rIHnX^hj?txO6_i&c2@!6QXk^KFR=9(O||r z@;R0@R8do-cWUiXA=&z?Tfv{M6*Sww*KmCqQ6-wBGhxs5;m5?-`o|wJlQ$)jk_tLc zzrw)aE=!885(?~5Q=>OcTC&E2ob^yxmx9K;!&H9eIsDgpJBg_)dWt4DZdRFraf*rc zXY<#G^JzS3Nm0z%98pF-7ChPmck4h7+E%Q8p+N(aoV=oC0(bEilOM?+#o|Si5D890 z0-KeZvxF7W!Z;GwnmL;BNef4^HB5eXRaDF`@3Ubbl7fp)=#Bs_!c5X>D2hAu)wwN( zv?%FOm}qPjBT@amR8y3w3KK73IGvH2#A}wnlf{Zh36<{|p?Z(+mM~>K%u)RT ztY#JjR(t-j@qE*ql;rP0##nW+G6g%8R66=%Cr+OoBFjeel|{tkHrUL~A*k8!&ywHs zt4k06pvaNKkOkeZKYtq_SJJc#D|fl=+yjb^34exu0W!~Ax6+QqHzre8A>;ljxVj;l zb!=^&oo1s`gaa%ie7=#B#lAdVRhR$29m~9gTy+)1lUTVrDfsF)f+wy}akLRIHN+(7 zJL7{ok&3&Ym`Fzp$N!G4PIcYwTV#@|z6=cb?h!vSga-7{JzLm{riUM7dl{8{hDcw+)%cW%==ctuy7na;JC%gRlugMtm(pf zUz_DMinH^R$@}+ll!I3p-m~7EG^H}OaU|Xi?OE+esbzL1ZCk4OwE!1^C(qntwt+j% z8}$xb!)L&4V7o)~mk?>suPVjE;&v#K%~8VNkF66)g+-Ix4wjXnJ?ZoDgf~+ZSq)}n ztqD&|+C`o^jcylc%fqGMe}uu@)-Gd2OLgbfM8fRSZfkd3f6jQc?M5H>`^jt7u-y3X z%ICQyc0v&U3S9F)_8bc6GZD?mtMiRy+06I6E}rItMf>Cea73bMY50PU{_Vz|dl{PV zXpU`_mwZ~gW2xZ--X&B42*-^c@pXUfBxexgh)61?9=Q2;a6^e^rN}Ut_~&{8S!8+f zC%I60csM1i=dCOH-G%?^Z&MTMdLVC;7+74ZuH4lup%E$L@YGPbX7lC|@%9!AS4B?F zkmg1E){D~zN?a?S3g3f#ri+|cWB4SGejUt*V^9IpWMo~rq-)h;@ z?+TUhd3pg0k~#33zt$boLU&#$*Gf+?AtzX!WSoDAb={VX(tigXaVAnQiAxRl5XW~2 zGc<_M!M$USwRZQ2GIGzt&bG+5@tOaR~GCy(I&`DXSn2}YtunHQnoVb>XshAG{2rG;^ zZ00u-bpI#eD#3HCjrGw>m6geZo`ZRb!V6&`YQhg{!p9`?R2?~3uosR7Iln}jDf!0xan}nr`eAro| z-on2hP+4DkGy`7;!G8RV+r#9fH_yg}761jTA@taTeeCO}y-4G7rVXiVC3bar8Sa*+ z_Sd@3f7cJq1rPpFQ9Pdc0hRHkMKhhYyIPcKkivdAaCJ0aOC_*n$MdRrzxt44sTr^3 z_2^G$AuEWTc_zj$-4IEYe$QS#7}QZX^N^UjQI5`Cv(2DX%dHT~HHS6p<+V?wl*4c* zKH+zw_aIK2KM1UsvVdcQIY*S&CO2KGNCU4)%#iO52K+;^|N7KcBnlDAsS22?+hu|x zDSfpQmEw?lGXjuIjg+4BC0zEaG6&fY8(RWkI1l;-U;J*{}q)DIbYdh9!j7gBqD%?WVtHKM7B=3W)N?xcwef*-0!fx z!9NSjJK!vygdfa;H(j3p8ga=?wvKRp5oVS~A-smg$f6}*_YSAaf9&?w;jh^Q2|?ep z67YDSFln%_Mwc4;Qm5IX%#EIDKjE~YMY?`C84G<_Gi0;lA(DFwcCM@I0{5K>4zei) zov&|opohSK_hE}s$X%>RZp~67J4+Ssws%Kuc3~K)#R%HKN z>4+JQyQm=NQ0e|n%w8pbfYkzfH-2WUGlmFoEbx}^-2&K8?+aG8z3KuE91w=pMXNGJQWOncD6rj+ z%j7NZDR!oghsZ@62Vb|5ZQA+akdS`z)nmTov;o8cuy~AAUi`)Tp8e&JIwG~ZnxwE!%&{-Id5+%Bk+uZ zO+TCJvbM9Fd*aW}EI-OaqAfKK?Pj0Ov$15?@XF)8bxtCKtnx>+zYdE}vgw#{Wm?f# z1q4se!I5w>J={#dj!5Kr(P=St$j=jNUEQy@uze)FbH(xWY~U#eJB4hqlo_~3!3GB? ziLZ|~zAu;4f5W6P@jSA8YPI3>wj~Qo_E%on!?{cDSA`s0{CQjZAH>vEV6rA>CV$F> z1{OM`>;I_d$gO`@WKYlCg|18)8MEx)Y0ApI6a&isB=)8d38&h&<7 zu-E9XQbZYX#p>tBFDgl*q>>$4pA8E}o3wnIVpkO8w`@;tC_0HfK*h!yIwXIH@pb^h z8@i_X#ftrVWskUDFQ?*F3*HXk)=SqeeXTKVAV-)ADAF)!Ew^gm8MZYUQ*?UEDFgt~ zUMl2y4PMy6S2n@Ydh_L~p~KXbI9t5YeEgycn%wr*Ox=D+kb~GwHX&Z2bbc1Yt>s-# zDIZGKg*#Q~g8(~EhwfxyXRO0v3czu*Oit(X_Ws>i0nm_o!<~`6+8@|80VmL^Z@bg^OSVe&ME^)oZ%5hW2YIwxCmQ~#xI3P(R37n%*}M`6Z3UX9>m^4SHFg>?-gik{Cv*M7 zTl;B(^!xw=kevK7AWJkghjSM>%O~e^R&Ukytd6FE`zE)jZr*`O&AjtUfEGN6$-^Iq z0(_s49`V1O_>IW~{1!;AHEP6$krYDv33`WI(9E zCH&&mot<_$H{}6>ql`EfTR59{v0oS#_NLuI$!wJk7?$i5UcR8(*}02F%tFOo;1Pke zpK%uqkm_{1#S6PbU)BDdI(Ysj3UG`iHQ;9|riJJCUI38FK{~GO+!BCgLW>_3orh{B z%Q(DR+>7t}t<1-Hm7p%axMMHAccvoRr7%Mb0@W~S7G1ReYDOby5tm<%R)W1kk>-Dn zUmfjzJg=EOj2;9OoBdC*H)i%+9ow<@JFhADIE;NG#&~1i%HG-X{}^1^brOmwSfG3b zARtYfz_iV8A5smiQiw900GMxpN70x3(~ss0%dh&jNE>hPr*lUc!1KVR2W|~^Ugw0B z4yL&QAL5UiL(uUOtgi0j{4xV4?)|TKx>xeM$%aeb;rm00Cxo-@Wu8VEG!?G+O5q51)T*t3FuGHT&%(l{!ad1 zPV0}&(T$^Tm5p>7R*9V vpuJ`-#wr_xBm4%*RZi_f?^90B1rzTLSZO53%Lss?O!iRENVinmG5r4l#xQQe literal 0 HcmV?d00001 diff --git a/miniprogram/static/img/pa1m9.png b/miniprogram/static/img/pa1m9.png new file mode 100644 index 0000000000000000000000000000000000000000..f4010f3bdf8d021602fd887f8851c253bde743a0 GIT binary patch literal 5164 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 literal 0 HcmV?d00001 diff --git a/miniprogram/static/img/share.jpg b/miniprogram/static/img/share.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9660282740d434f3d3fed0e228ba36cdd4a32e3f GIT binary patch literal 23661 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 O0Pj<{lhr3Kr~VfYbOm1k literal 0 HcmV?d00001 diff --git a/miniprogram/static/lang/flag-zh-CN.png b/miniprogram/static/lang/flag-zh-CN.png new file mode 100644 index 0000000000000000000000000000000000000000..0d5158b3134acf4e868c10113adc1438afa61ae5 GIT binary patch literal 1840 zcmV-02haG4P) zB@o>r5aBuw-z^W^9}(k34fUo3`ojYFwFBTZ4%{6P|M39xo(1AR4(o0S@s9@o=>YJF z2km_b`^W+R=K%lS0QtKD|LXw$+5qTX3;*Q+|KR}URSW;)0R7bf@|FhVN)7zc0qk`N z{LKOBV+!Cg59((M?}7*07ZK%84EC-B9Vf%Q000JONkl6r!ZkUSB~x1}Pz&Aa;i%4bi}HKTGL!t!ZM+lpr2DAI>Hnt$}jOCa0*{+5F8E z-G$1Wu+20?M3=&1{d_6RZlNJ2dS#f|3o}clAtsoth5wNOAw+~Wj{o6%c|t0l4LGJ- z`Mq|tUR6rNli9&-^u%)@Z+4!gPj<`p5`-I2ZuyJ1#;^OUY!A;w?}j@K*Q0kY{AJe7 z%LGZoQ_-WFcHmSN!s3i)W;+5!3gOA%VC%L6ynaqy4u947bncnW#{r&@Ubq`JV>s@u zPc?ohh1qWCIrn6i?ds~KSLI%l!p}XO+i7?{xZeuPc8_o!RQP*O=cQCnTJQIbAG9%C zDR@4#vdnB(bkFq43BvP9d;YWqPwy$5nXZR(gch26{^I8i&qQw98BEtkTKSA#Rm?$? z8*%zD%znEy!uE*JCgC3p%m+bJ=-o22NZ2Q~49*<~uDN?s9o`*(vRw_WulL3(UeS26 z6h4un((ov#&cH)%_SqR8!Fm)H ze!7hwwsy>xQk=p6R-7Tr4B;aCX)%1WPQv0%f3M&%bk%#4KjVLsKYN>Be8Z+mXR%rJ zx9mBrJ$=~P)0OjlJMUJhhD)K+q;cPwIA#`WtQT{9*xHeHYsm4Cn2@j=XmTfle z_LhFwf86{|ZDjk=b(FWmB6n?Pd>pA&Ab>nfC_}S@VqaqED zM0L;bwaly}ym>M*Z8?t8gOL@!hSvuGb$H|TRP#Osl(B9Ua2-l zS(3b zt&I*j&QZZH3UhW%Mv5?5O6$_6q25ieB=|yQ&v0`gI=yo&vpu#lDkpZd*AVFa%K7_4 zbcm?_>##D+ZgC*3wNjY2sorgoX*~1H@{Wp6l4RVe>bjf>v+w8A$!gR+9&2n(R8Gvi z^L=$R?i;x)M2EXAFAHXIpMS>~W9@Lcz}7^Eyq|!A?-WeDzbjIts=o0Ygf7yKsGQj@ z2q6fN7F%;yh)!X)v>bRhMb(z5+}|(5sm0$FqNDLK9BlgHov{x_(z zWqn7*j|*XTR@(C_6_zz!96%`%Zbg}8HpeNu@Ve~7DY%rn?}$U}3J&$$h}&t12kvL) zv`yA9m0?#yJajpneco9}bx+0$qCt~+LLsKQ(GZU;RqzE>0ue!s{%fN#z!V~-%XbY? zQiFA-qx@7d;&Hgp5RXnu>i0>OFEvC%EqeJ_YXqRoiPQ?>p;yDA`@W|`T?lif;+j#c zwcE*}=U9r4f{4(kyzaNnAd461y7j^DU8KHk%CC*x)5=OS(xqUfDjFp zY=>@n%&W|W*9YQ|9%qw9qDbqm2_IvP0VXw&#?$3ri000o=Z@s_>C6dW*000000000000000000000000000000 e00000000mw|Mcb#Z`g+b0000 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 literal 0 HcmV?d00001 diff --git a/miniprogram/static/size/sm.png b/miniprogram/static/size/sm.png new file mode 100644 index 0000000000000000000000000000000000000000..16c1d7dd9a446a9130dcfd1534689dbc5e5fa46b GIT binary patch literal 2405 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 B@*)5L literal 0 HcmV?d00001 diff --git a/miniprogram/static/size/xl.png b/miniprogram/static/size/xl.png new file mode 100644 index 0000000000000000000000000000000000000000..53ac8389d1fc64f9d041803d2aac3913b44b9b14 GIT binary patch literal 2228 zcmYjRdpy(o8{b5w;!shPZEj%|DzsFxxh1vbPPxrFlEaCjn0p92Bt)kB#WlAzWbRCg zVYv~9dVSuX_wziT=ly)1*X#585HDhFY+q#hQew5NPJ3asH)lB)=&#IroKVV{RZF-Ko zAryi9|C{RmgW<1l7<{w_b&ht~QMx85AI3qEISvmziR{6E2wn!nU*rpi*V@(&DtLK$ z34~&>V_se!*!|O|PwnmPVDOjtv17-GMB?J&VpLQV27^gWP3`aR$Kh~6K|xbfQ`Obg zg@uJnOG}_KiS%O}pxppyGmzljfp&epkC>&BT@oKRphX{O)tC6X12hAP?pSIro7PP@?#3I zSOSQ66Ggh+=!I4fiH8$7IJ^_3+iT9Yx8*lCg!aX=iZxj!TFc!L0tY*wNf!`r$kplq z%}9Pr<8NKj8LAgo~4dUgdZG`qf>DO)Vw&7ZCkQ?>Z5&HNd%<2zr8w`KsxOi<%47f$GSnGf*tOynir?To{#S!og zDohzuhgZBA11GM1VPyRMrJ>u$zeLhWTMXxgFj(H=%6cLGhl zxRpckq*<3Vl5Zc=q2_8p;UxOD1tsizaCSNhpLr{|)|vmlCr^qw89SD4Mn@9OUM)S% zjjV&6%zjg^m=d7!Z&b;iCIUI(US3{~0{H{}ijr%Vdv%8etuuj`Y?i(b9;NIv zr2U6{I{E_7{(eJ}iPgf3qENNmri0ja;^FzR8uzzFmmiIPt_|2@rd7+$c!+C^fSJFZ z#HTc-`}Is@gd99S?%FyN#Gon{&%l!c#v6krP`MoyPb(QKD-3VWpT8zwl4l-qwJIGxW=1a+T{BdJcNjGWcW4nQ+k(Trw;GMwwKf<7I>b!_X} zRn;D!A1H0QU%rG5q1q#thf1t1)90rPEJon=e?sNw=g}xb$T}l+%h_}ph>3=>b-^IS zh&^~jqhb?RVdAP`R^naqrg1D1rD5&&E;37b?BGBLXFws5SRnIfLw<+RJL^$vhxEjq zQaPz%S-VRIJ%>-1j^Zk5x0N}ll(p|zg!(Az=vbJ&ES9y`B_x~Cc~>dy%*ael8pJG? zIhb1;zgCe?llCGYR{>3wj#>#bsCRdf5~{5iu65VC=t#v#N!(w*Lm#TpzdndXlBV8x zB`%TA$&GcWJtmru*<09V`wmd#V`WTKGfFUie6nFpv8t)o*{D_3oN$}Ymqtj+Z|%N8 zf@?<)6+lDI?mPjh?1cm%#6BaDceWk1yGWqNA=dWZj9FBY9EeULD$jM`eehn1D)W6Q z@WUPGe84$h8y=UyRe@r+>q*iK$O`Oc@K&kJt8YRMko?6Wt1dlYKqVVHu8X^j1; z`}?irADH4%y(Zr}I|4t4Qg2wwHxSnfh7CuvwwziVWJ=(b8noV)h}2J4=g5jjoO9xB zEAUP+Wzg<2=HwM9C$h6}JLMQ^#}mv4f=A#08v4gti|$)T)SC2zf?gk@?N?CBDWT5F z{?xydTO1R3r^%`_IY*kJye8P+R-pUt1zt$TVbjbce<{y+>^ZfnHV7$WWK6<>uW-9l zG}ydHI~vnm8ZS_c5~YW!tqy!gckA5hkFe6 fJp0&kfP2#KrjA?2(HAk`w+*qi!dg~hd=mZx7YVG2 literal 0 HcmV?d00001 diff --git a/miniprogram/static/size/xxl.png b/miniprogram/static/size/xxl.png new file mode 100644 index 0000000000000000000000000000000000000000..c6008c68f630a500c7528dacc677d09acabb0149 GIT binary patch literal 634 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 literal 0 HcmV?d00001 diff --git a/miniprogram/static/tab_icon/contact_cur.png b/miniprogram/static/tab_icon/contact_cur.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4be870146e4f463c0deab1d9f63b0839fd40bf GIT binary patch literal 3146 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 literal 0 HcmV?d00001 diff --git a/miniprogram/static/tab_icon/icon_post.png b/miniprogram/static/tab_icon/icon_post.png new file mode 100644 index 0000000000000000000000000000000000000000..70371d30d16c9722a49cb37ffd22290d23e34e8e GIT binary patch literal 1900 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 literal 0 HcmV?d00001 diff --git a/project.config.json b/project.config.json index b2eb3bf2..6cd5df09 100644 --- a/project.config.json +++ b/project.config.json @@ -21,6 +21,9 @@ "disablePlugins": [], "outputPath": "" }, + "useCompilerPlugins": [ + "sass" + ], "ignoreUploadUnusedFiles": true }, "condition": {}, From 26efa03b7a036ee398e254f5f7b9d3f31c4499e4 Mon Sep 17 00:00:00 2001 From: Chadwuo <41413559+Chadwuo@users.noreply.github.com> Date: Wed, 21 Dec 2022 12:11:39 +0000 Subject: [PATCH 03/14] =?UTF-8?q?=E4=B8=80=E4=BA=9B=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miniprogram/pages/mine/index.wxml | 4 ++-- miniprogram/pages/question/index.json | 1 - miniprogram/pages/question/index.scss | 0 miniprogram/pages/question/index.wxml | 5 ++--- miniprogram/pages/question/index.wxss | 3 --- 5 files changed, 4 insertions(+), 9 deletions(-) create mode 100644 miniprogram/pages/question/index.scss delete mode 100644 miniprogram/pages/question/index.wxss diff --git a/miniprogram/pages/mine/index.wxml b/miniprogram/pages/mine/index.wxml index 9f21fd43..865e23be 100644 --- a/miniprogram/pages/mine/index.wxml +++ b/miniprogram/pages/mine/index.wxml @@ -82,8 +82,8 @@ - - + + diff --git a/miniprogram/pages/question/index.json b/miniprogram/pages/question/index.json index 4e697901..8835af06 100644 --- a/miniprogram/pages/question/index.json +++ b/miniprogram/pages/question/index.json @@ -1,4 +1,3 @@ { - "navigationBarTitleText": "常见问题", "usingComponents": {} } \ No newline at end of file diff --git a/miniprogram/pages/question/index.scss b/miniprogram/pages/question/index.scss new file mode 100644 index 00000000..e69de29b diff --git a/miniprogram/pages/question/index.wxml b/miniprogram/pages/question/index.wxml index d8a09b8c..5283e03b 100644 --- a/miniprogram/pages/question/index.wxml +++ b/miniprogram/pages/question/index.wxml @@ -1,4 +1,4 @@ - + @@ -9,5 +9,4 @@ - -
\ No newline at end of file + \ No newline at end of file diff --git a/miniprogram/pages/question/index.wxss b/miniprogram/pages/question/index.wxss deleted file mode 100644 index ff102a4e..00000000 --- a/miniprogram/pages/question/index.wxss +++ /dev/null @@ -1,3 +0,0 @@ -.container { - margin-top: 32rpx; -} \ No newline at end of file From bd5dae40feda6964bb4460fb6e9c6c7d8d7059a5 Mon Sep 17 00:00:00 2001 From: Chadwuo Date: Thu, 22 Dec 2022 22:16:37 +0800 Subject: [PATCH 04/14] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E9=83=A8=E5=88=86=EF=BC=8C=E5=8F=88=E5=8F=88=E5=8F=88=E9=87=8D?= =?UTF-8?q?=E5=86=99=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miniprogram/pages/issue/index.json | 1 - miniprogram/pages/issue/index.wxml | 5 +- miniprogram/pages/mine/index.js | 37 ++------- miniprogram/pages/mine/index.scss | 13 +++ miniprogram/pages/mine/index.wxml | 75 +++++++---------- miniprogram/pages/mine/index.wxss | 111 -------------------------- miniprogram/pages/profile/index.wxml | 4 +- miniprogram/pages/question/index.wxml | 69 +++++++++++++--- miniprogram/utils/index.js | 10 +++ 9 files changed, 122 insertions(+), 203 deletions(-) create mode 100644 miniprogram/pages/mine/index.scss delete mode 100644 miniprogram/pages/mine/index.wxss create mode 100644 miniprogram/utils/index.js diff --git a/miniprogram/pages/issue/index.json b/miniprogram/pages/issue/index.json index eb7305e8..69b19d43 100644 --- a/miniprogram/pages/issue/index.json +++ b/miniprogram/pages/issue/index.json @@ -1,5 +1,4 @@ { - "navigationBarTitleText": "意见反馈", "enablePullDownRefresh": true, "usingComponents": {} } \ No newline at end of file diff --git a/miniprogram/pages/issue/index.wxml b/miniprogram/pages/issue/index.wxml index 8f4c6e8b..47ac33e2 100644 --- a/miniprogram/pages/issue/index.wxml +++ b/miniprogram/pages/issue/index.wxml @@ -1,5 +1,5 @@ - + @@ -45,5 +45,4 @@ - -
\ No newline at end of file +
\ No newline at end of file diff --git a/miniprogram/pages/mine/index.js b/miniprogram/pages/mine/index.js index 60a2d8b4..a3dd3c34 100644 --- a/miniprogram/pages/mine/index.js +++ b/miniprogram/pages/mine/index.js @@ -12,25 +12,25 @@ Page({ giveTotal: 0.00, receiveTotal: 0.00, menus: [{ - icon: "cicon-home-community", + icon: "cicon-home-smile-o", name: "我的家庭", - color: "#9DCA06", + color: "#A5ADF6", path: "/pages/family/index" }, { - icon: "cicon-backup", + icon: "cicon-event-list", name: "数据导出", - color: "#FFB300", + color: "#4EB9FA", path: "/pages/export/index" }, { icon: "cicon-demo", name: "统计分析", - color: "#53bcf5", + color: "#FFC667", path: "/pages/chart/index" }, { - icon: "cicon-service-fill", + icon: "cicon-goods-o", name: "亲友关系", color: "#F37D7D", path: "/pages/chart/index" @@ -46,36 +46,11 @@ Page({ scrollTop: e.scrollTop }) }, - jumpProfile() { - wx.navigateTo({ - url: '/pages/profile/index', - }); - }, tapToUrl(e) { wx.navigateTo({ url: e.currentTarget.dataset.url }) }, - jumpPage(e) { - if (e.currentTarget.dataset.page === 'chart') { - wx.showToast({ - title: '统计分析,马上写完,真的...', - icon: 'none', - }) - return - } - if (e.currentTarget.dataset.page === 'export') { - wx.showToast({ - title: '数据导出,马上写完,真的...', - icon: 'none', - }) - return - } - - wx.navigateTo({ - url: `/pages/${e.currentTarget.dataset.page}/index`, - }); - }, /** * 生命周期函数--监听页面加载 */ diff --git a/miniprogram/pages/mine/index.scss b/miniprogram/pages/mine/index.scss new file mode 100644 index 00000000..efa4d5ad --- /dev/null +++ b/miniprogram/pages/mine/index.scss @@ -0,0 +1,13 @@ +.ui-item { + display: block; + text-align: center; +} + +.open-btn { + position: absolute; + top: 0; + left: 0; + min-height: 4em; + width: 100%; + opacity: 0; +} \ No newline at end of file diff --git a/miniprogram/pages/mine/index.wxml b/miniprogram/pages/mine/index.wxml index 865e23be..de14178b 100644 --- a/miniprogram/pages/mine/index.wxml +++ b/miniprogram/pages/mine/index.wxml @@ -3,53 +3,15 @@ 我的 - - + - Hello,啄木鸟 + Hello,礼记者 {{welcome}} - - @@ -77,18 +39,41 @@ - - - + + + + + + + + + 在线客服 + + + + + - - + + + + + + + + + 分享 + + + + + diff --git a/miniprogram/pages/mine/index.wxss b/miniprogram/pages/mine/index.wxss deleted file mode 100644 index 183298ae..00000000 --- a/miniprogram/pages/mine/index.wxss +++ /dev/null @@ -1,111 +0,0 @@ -button { - position: relative; - display: inline; - margin-left: auto; - margin-right: auto; - padding-left: 0px; - padding-right: 0px; - box-sizing: border-box; - text-align: center; - text-decoration: none; - line-height: 1.35; - -webkit-tap-highlight-color: transparent; - overflow: hidden; - width: 100%; - height: 100%; - outline: none; -} - -button::after { - border: none; -} - -.container .header { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - padding: 0 30rpx; - height: 190rpx; - position: relative; - background-color: #F76664 !important; -} - -.container .header:after { - position: absolute; - left: 0; - right: 0; - bottom: -98rpx; - z-index: -1; - content: ''; - height: 100rpx; - width: 100%; - border-radius: 0 0 50% 50%; - background-color: #F76664; -} - -.container .header .picTxt { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; -} - -.container .header .picTxt .pictrue { - position: relative; - display: flex; - flex-direction: column; - align-items: center; -} - -.container .header .picTxt .pictrue .avatar { - overflow: hidden; - display: block; - width: 120rpx; - height: 120rpx; - border-radius: 50%; - border: 2px solid #f5f5f5; -} - -.container .header .picTxt .text { - width: 434rpx; - color: rgba(255, 255, 255, 1); - margin-left: 35rpx; -} - -.container .header .picTxt .text .name { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - color: #fff; - font-size: 36rpx; - max-width: 470rpx; -} - -.container .header .picTxt .text .desc { - color: rgba(255, 255, 255, 0.6); - font-size: 26rpx; - margin-top: 15rpx; -} - -.container .header .icon-shezhi { - font-size: 38rpx; - color: #fff; - margin-top: 15rpx; - margin-right: 30rpx; -} - - -.ui-item { - display: block; - text-align: center; -} - -.open-btn { - position: absolute; - top: 0; - left: 0; - min-height: 4em; - width: 100%; - opacity: 0; -} \ No newline at end of file diff --git a/miniprogram/pages/profile/index.wxml b/miniprogram/pages/profile/index.wxml index 36428bc1..ce33b793 100644 --- a/miniprogram/pages/profile/index.wxml +++ b/miniprogram/pages/profile/index.wxml @@ -1,6 +1,6 @@ - + + + + + + + \ No newline at end of file diff --git a/miniprogram/pages/book/select/index.json b/miniprogram/pages/book/select/index.json index d49cafdd..8835af06 100644 --- a/miniprogram/pages/book/select/index.json +++ b/miniprogram/pages/book/select/index.json @@ -1,4 +1,3 @@ { - "navigationBarTitleText": "选择礼簿", "usingComponents": {} } \ No newline at end of file diff --git a/miniprogram/pages/book/select/index.scss b/miniprogram/pages/book/select/index.scss new file mode 100644 index 00000000..42bb6a03 --- /dev/null +++ b/miniprogram/pages/book/select/index.scss @@ -0,0 +1 @@ +/* pages/book/select/index.wxss */ \ No newline at end of file diff --git a/miniprogram/pages/book/select/index.wxml b/miniprogram/pages/book/select/index.wxml index 9cea4b0e..e37f1c7a 100644 --- a/miniprogram/pages/book/select/index.wxml +++ b/miniprogram/pages/book/select/index.wxml @@ -1,16 +1,18 @@ - - - - - - - {{item.title}} - - - {{item.date.value}} {{ item.date.lunar_month }}{{ item.date.lunar_day }} - - - - - \ No newline at end of file + + + + + + + + {{item.title}} + + + {{item.date.value}} {{ item.date.lunar_month }}{{ item.date.lunar_day }} + + + + + + \ No newline at end of file diff --git a/miniprogram/pages/book/select/index.wxss b/miniprogram/pages/book/select/index.wxss deleted file mode 100644 index 64673e31..00000000 --- a/miniprogram/pages/book/select/index.wxss +++ /dev/null @@ -1,4 +0,0 @@ -/* pages/book/select/index.wxss */ -.container { - margin: 32rpx 0; -} \ No newline at end of file diff --git a/miniprogram/pages/friend/edit/index.scss b/miniprogram/pages/friend/edit/index.scss index 7ed5fcc4..1d0fdb4e 100644 --- a/miniprogram/pages/friend/edit/index.scss +++ b/miniprogram/pages/friend/edit/index.scss @@ -1,21 +1,4 @@ /* pages/friend/edit/index.wxss */ -.container { - margin: 32rpx 0; - margin-bottom: 120rpx; - padding-bottom: constant(safe-area-inset-bottom); - /*兼容 IOS<11.2*/ - padding-bottom: env(safe-area-inset-bottom); - /*兼容 IOS>11.2*/ -} - -.submit-bar { - position: fixed; - left: 0; - right: 0; - bottom: 32rpx; - margin: 0 32rpx; - padding-bottom: constant(safe-area-inset-bottom); - /*兼容 IOS<11.2*/ - padding-bottom: env(safe-area-inset-bottom); - /*兼容 IOS>11.2*/ +.ui-form-title{ + min-width: 30%; } \ No newline at end of file diff --git a/miniprogram/pages/friend/edit/index.wxml b/miniprogram/pages/friend/edit/index.wxml index 48029421..f165fcd3 100644 --- a/miniprogram/pages/friend/edit/index.wxml +++ b/miniprogram/pages/friend/edit/index.wxml @@ -1,20 +1,33 @@ - - - - - - - - - - 删除 - - - - 保 存 - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/pages/friend/select/index.json b/miniprogram/pages/friend/select/index.json index d0ce5f35..8835af06 100644 --- a/miniprogram/pages/friend/select/index.json +++ b/miniprogram/pages/friend/select/index.json @@ -1,4 +1,3 @@ { - "navigationBarTitleText": "选择亲友", "usingComponents": {} } \ No newline at end of file diff --git a/miniprogram/pages/friend/select/index.scss b/miniprogram/pages/friend/select/index.scss new file mode 100644 index 00000000..d5a1580c --- /dev/null +++ b/miniprogram/pages/friend/select/index.scss @@ -0,0 +1 @@ +/* pages/friend/select/index.wxss */ \ No newline at end of file diff --git a/miniprogram/pages/friend/select/index.wxml b/miniprogram/pages/friend/select/index.wxml index e36535c0..6b97ea2d 100644 --- a/miniprogram/pages/friend/select/index.wxml +++ b/miniprogram/pages/friend/select/index.wxml @@ -1,17 +1,15 @@ - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/pages/friend/select/index.wxss b/miniprogram/pages/friend/select/index.wxss deleted file mode 100644 index 9b9a54c5..00000000 --- a/miniprogram/pages/friend/select/index.wxss +++ /dev/null @@ -1,4 +0,0 @@ -/* pages/friend/select/index.wxss */ -.container { - margin: 32rpx 0; -} \ No newline at end of file diff --git a/miniprogram/pages/giftOut/edit/index.json b/miniprogram/pages/giftOut/edit/index.json index e061ac45..8835af06 100644 --- a/miniprogram/pages/giftOut/edit/index.json +++ b/miniprogram/pages/giftOut/edit/index.json @@ -1,4 +1,3 @@ { - "navigationBarTitleText": "添加送礼", "usingComponents": {} } \ No newline at end of file diff --git a/miniprogram/pages/giftOut/edit/index.scss b/miniprogram/pages/giftOut/edit/index.scss index e160e65e..71938704 100644 --- a/miniprogram/pages/giftOut/edit/index.scss +++ b/miniprogram/pages/giftOut/edit/index.scss @@ -1,25 +1,4 @@ /* pages/giftOut/edit/index.wxss */ -page { - background-color: white; -} - -.container { - margin: 32rpx 0; - margin-bottom: 120rpx; - padding-bottom: constant(safe-area-inset-bottom); - /*兼容 IOS<11.2*/ - padding-bottom: env(safe-area-inset-bottom); - /*兼容 IOS>11.2*/ -} - -.submit-bar { - position: fixed; - left: 0; - right: 0; - bottom: 32rpx; - margin: 0 32rpx; - padding-bottom: constant(safe-area-inset-bottom); - /*兼容 IOS<11.2*/ - padding-bottom: env(safe-area-inset-bottom); - /*兼容 IOS>11.2*/ +.ui-form-title{ + min-width: 30%; } \ No newline at end of file diff --git a/miniprogram/pages/giftOut/edit/index.wxml b/miniprogram/pages/giftOut/edit/index.wxml index 748bc9ff..edd1096b 100644 --- a/miniprogram/pages/giftOut/edit/index.wxml +++ b/miniprogram/pages/giftOut/edit/index.wxml @@ -1,23 +1,45 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tips:你可以点击联系人图标快速选取来宾。 + + + - 删除 + - - 保 存 - + - + \ No newline at end of file diff --git a/miniprogram/pages/giftOut/index.json b/miniprogram/pages/giftOut/index.json index 2ed30a0d..69b19d43 100644 --- a/miniprogram/pages/giftOut/index.json +++ b/miniprogram/pages/giftOut/index.json @@ -1,5 +1,4 @@ { - "navigationBarTitleText": "送礼", "enablePullDownRefresh": true, "usingComponents": {} } \ No newline at end of file diff --git a/miniprogram/pages/giftOut/index.wxml b/miniprogram/pages/giftOut/index.wxml index 138907ca..4adbf1cd 100644 --- a/miniprogram/pages/giftOut/index.wxml +++ b/miniprogram/pages/giftOut/index.wxml @@ -20,6 +20,4 @@ {{item.money}}元 - - - \ No newline at end of file + \ No newline at end of file diff --git a/miniprogram/pages/giftReceive/edit/index.scss b/miniprogram/pages/giftReceive/edit/index.scss index 45ef7b17..d16922f9 100644 --- a/miniprogram/pages/giftReceive/edit/index.scss +++ b/miniprogram/pages/giftReceive/edit/index.scss @@ -1,16 +1,4 @@ /* pages/giftReceive/edit/index.wxss */ .ui-form-title{ min-width: 30%; -} - -.submit-bar { - position: fixed; - left: 0; - right: 0; - bottom: 32rpx; - margin: 0 32rpx; - padding-bottom: constant(safe-area-inset-bottom); - /*兼容 IOS<11.2*/ - padding-bottom: env(safe-area-inset-bottom); - /*兼容 IOS>11.2*/ } \ No newline at end of file diff --git a/miniprogram/pages/giftReceive/edit/index.wxml b/miniprogram/pages/giftReceive/edit/index.wxml index 426b2982..806bf2f9 100644 --- a/miniprogram/pages/giftReceive/edit/index.wxml +++ b/miniprogram/pages/giftReceive/edit/index.wxml @@ -21,16 +21,15 @@ Tips:你可以点击联系人图标快速选取来宾。 - - + + + - 删除 + - - 保 存 - + - + \ No newline at end of file From d109bc10e6df75b4f8b2d5408a091bb981d68506 Mon Sep 17 00:00:00 2001 From: Chadwuo <41413559+Chadwuo@users.noreply.github.com> Date: Fri, 30 Dec 2022 02:35:45 +0000 Subject: [PATCH 13/14] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=97=A0=E6=95=88?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miniprogram/components/footer/index.js | 30 ------------------------ miniprogram/components/footer/index.json | 5 ---- miniprogram/components/footer/index.wxml | 9 ------- miniprogram/components/footer/index.wxss | 1 - 4 files changed, 45 deletions(-) delete mode 100644 miniprogram/components/footer/index.js delete mode 100644 miniprogram/components/footer/index.json delete mode 100644 miniprogram/components/footer/index.wxml delete mode 100644 miniprogram/components/footer/index.wxss diff --git a/miniprogram/components/footer/index.js b/miniprogram/components/footer/index.js deleted file mode 100644 index e64ba646..00000000 --- a/miniprogram/components/footer/index.js +++ /dev/null @@ -1,30 +0,0 @@ -// components/footer.js -Component({ - /** - * 组件的属性列表 - */ - properties: { - innerText: { - type: String, - value: '每一份人情都值得礼记', - }, - loading:{ - type: Boolean, - value: false, - } - }, - - /** - * 组件的初始数据 - */ - data: { - - }, - - /** - * 组件的方法列表 - */ - methods: { - - } -}) \ No newline at end of file diff --git a/miniprogram/components/footer/index.json b/miniprogram/components/footer/index.json deleted file mode 100644 index 6d293cfd..00000000 --- a/miniprogram/components/footer/index.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "component": true, - "usingComponents": { - "van-loading": "@vant/weapp/loading/index"} -} \ No newline at end of file diff --git a/miniprogram/components/footer/index.wxml b/miniprogram/components/footer/index.wxml deleted file mode 100644 index 401b9f39..00000000 --- a/miniprogram/components/footer/index.wxml +++ /dev/null @@ -1,9 +0,0 @@ - - - - 加载中... - - - {{innerText}} - - \ No newline at end of file diff --git a/miniprogram/components/footer/index.wxss b/miniprogram/components/footer/index.wxss deleted file mode 100644 index 5b6d03c7..00000000 --- a/miniprogram/components/footer/index.wxss +++ /dev/null @@ -1 +0,0 @@ -/* components/footer/index.wxss */ \ No newline at end of file From 786a8c8d41bc0d56fe224cbb625dd818b9b8a652 Mon Sep 17 00:00:00 2001 From: Chadwuo Date: Mon, 2 Jan 2023 21:01:44 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E2=9C=A8=20feat:=20v2.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miniprogram/app.json | 20 +- miniprogram/components/footer/index.js | 30 -- miniprogram/components/footer/index.json | 5 - miniprogram/components/footer/index.wxml | 9 - miniprogram/components/footer/index.wxss | 1 - miniprogram/images/bg_book.png | Bin 4146 -> 0 bytes miniprogram/images/bg_book_add.png | Bin 1773 -> 0 bytes miniprogram/images/bg_summary.png | Bin 7554 -> 0 bytes miniprogram/images/bg_summary_bill.png | Bin 15597 -> 0 bytes miniprogram/images/book_gray.png | Bin 1636 -> 0 bytes miniprogram/images/book_red.png | Bin 2305 -> 0 bytes miniprogram/images/contact_gray.png | Bin 2932 -> 0 bytes miniprogram/images/contact_red.png | Bin 3146 -> 0 bytes miniprogram/images/home_gray.png | Bin 1672 -> 0 bytes miniprogram/images/home_red.png | Bin 1779 -> 0 bytes miniprogram/images/icon_post.png | Bin 1900 -> 0 bytes miniprogram/images/icon_post_red.png | Bin 4156 -> 0 bytes miniprogram/images/logo.png | Bin 6184 -> 0 bytes miniprogram/images/mine_gray.png | Bin 2520 -> 0 bytes miniprogram/images/mine_red.png | Bin 2325 -> 0 bytes miniprogram/images/share.jpg | Bin 23661 -> 0 bytes miniprogram/pages/book/details/index.wxml | 4 +- miniprogram/pages/family/index.js | 8 +- miniprogram/pages/family/index.json | 1 - miniprogram/pages/family/index.scss | 1 + miniprogram/pages/family/index.wxml | 106 ++++--- miniprogram/pages/family/index.wxss | 8 - miniprogram/pages/friend/details/index.wxml | 2 +- miniprogram/pages/friend/index.wxml | 2 +- miniprogram/pages/giftOut/edit/index.js | 295 +++++++++++--------- miniprogram/pages/giftOut/edit/index.wxml | 8 +- miniprogram/pages/index/index.scss | 30 +- miniprogram/pages/index/index.wxml | 20 +- miniprogram/pages/mine/index.wxml | 18 +- miniprogram/pages/sponsor/index.js | 66 ----- miniprogram/pages/sponsor/index.json | 4 - miniprogram/pages/sponsor/index.wxml | 7 - miniprogram/pages/sponsor/index.wxss | 14 - miniprogram/static/img/share2.jpg | Bin 148495 -> 18289 bytes 39 files changed, 249 insertions(+), 410 deletions(-) delete mode 100644 miniprogram/components/footer/index.js delete mode 100644 miniprogram/components/footer/index.json delete mode 100644 miniprogram/components/footer/index.wxml delete mode 100644 miniprogram/components/footer/index.wxss delete mode 100644 miniprogram/images/bg_book.png delete mode 100644 miniprogram/images/bg_book_add.png delete mode 100644 miniprogram/images/bg_summary.png delete mode 100644 miniprogram/images/bg_summary_bill.png delete mode 100644 miniprogram/images/book_gray.png delete mode 100644 miniprogram/images/book_red.png delete mode 100644 miniprogram/images/contact_gray.png delete mode 100644 miniprogram/images/contact_red.png delete mode 100644 miniprogram/images/home_gray.png delete mode 100644 miniprogram/images/home_red.png delete mode 100644 miniprogram/images/icon_post.png delete mode 100644 miniprogram/images/icon_post_red.png delete mode 100644 miniprogram/images/logo.png delete mode 100644 miniprogram/images/mine_gray.png delete mode 100644 miniprogram/images/mine_red.png delete mode 100644 miniprogram/images/share.jpg create mode 100644 miniprogram/pages/family/index.scss delete mode 100644 miniprogram/pages/family/index.wxss delete mode 100644 miniprogram/pages/sponsor/index.js delete mode 100644 miniprogram/pages/sponsor/index.json delete mode 100644 miniprogram/pages/sponsor/index.wxml delete mode 100644 miniprogram/pages/sponsor/index.wxss diff --git a/miniprogram/app.json b/miniprogram/app.json index fc175829..9de28766 100644 --- a/miniprogram/app.json +++ b/miniprogram/app.json @@ -17,7 +17,6 @@ "pages/about/index", "pages/issue/index", "pages/question/index", - "pages/sponsor/index", "pages/family/index", "pages/set/index", "pages/calendar/index" @@ -85,35 +84,20 @@ "ui-checkbox-group": "/mp-cu/colorUI/components/ui-checkbox-group/ui-checkbox-group", "ui-change-theme": "/mp-cu/colorUI/components/ui-change-theme/ui-change-theme", "ui-parameter": "/mp-sdk/components/ui-parameter/ui-parameter", - "footer": "/components/footer/index", "van-action-sheet": "@vant/weapp/action-sheet/index", - "van-button": "@vant/weapp/button/index", "van-row": "@vant/weapp/row/index", "van-col": "@vant/weapp/col/index", "van-cell": "@vant/weapp/cell/index", "van-cell-group": "@vant/weapp/cell-group/index", - "van-divider": "@vant/weapp/divider/index", "van-dialog": "@vant/weapp/dialog/index", "van-empty": "@vant/weapp/empty/index", - "van-field": "@vant/weapp/field/index", - "van-grid": "@vant/weapp/grid/index", - "van-grid-item": "@vant/weapp/grid-item/index", - "van-icon": "@vant/weapp/icon/index", "van-index-bar": "@vant/weapp/index-bar/index", "van-index-anchor": "@vant/weapp/index-anchor/index", - "van-image": "@vant/weapp/image/index", "van-notify": "@vant/weapp/notify/index", "van-notice-bar": "@vant/weapp/notice-bar/index", - "van-radio": "@vant/weapp/radio/index", - "van-radio-group": "@vant/weapp/radio-group/index", - "van-popup": "@vant/weapp/popup/index", - "van-picker": "@vant/weapp/picker/index", - "van-sticky": "@vant/weapp/sticky/index", "van-search": "@vant/weapp/search/index", - "van-swipe-cell": "@vant/weapp/swipe-cell/index", "van-tab": "@vant/weapp/tab/index", - "van-tabs": "@vant/weapp/tabs/index", - "van-tag": "@vant/weapp/tag/index", - "van-transition": "@vant/weapp/transition/index" + "van-swipe-cell": "@vant/weapp/swipe-cell/index", + "van-tabs": "@vant/weapp/tabs/index" } } \ No newline at end of file diff --git a/miniprogram/components/footer/index.js b/miniprogram/components/footer/index.js deleted file mode 100644 index e64ba646..00000000 --- a/miniprogram/components/footer/index.js +++ /dev/null @@ -1,30 +0,0 @@ -// components/footer.js -Component({ - /** - * 组件的属性列表 - */ - properties: { - innerText: { - type: String, - value: '每一份人情都值得礼记', - }, - loading:{ - type: Boolean, - value: false, - } - }, - - /** - * 组件的初始数据 - */ - data: { - - }, - - /** - * 组件的方法列表 - */ - methods: { - - } -}) \ No newline at end of file diff --git a/miniprogram/components/footer/index.json b/miniprogram/components/footer/index.json deleted file mode 100644 index 6d293cfd..00000000 --- a/miniprogram/components/footer/index.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "component": true, - "usingComponents": { - "van-loading": "@vant/weapp/loading/index"} -} \ No newline at end of file diff --git a/miniprogram/components/footer/index.wxml b/miniprogram/components/footer/index.wxml deleted file mode 100644 index 401b9f39..00000000 --- a/miniprogram/components/footer/index.wxml +++ /dev/null @@ -1,9 +0,0 @@ - - - - 加载中... - - - {{innerText}} - - \ No newline at end of file diff --git a/miniprogram/components/footer/index.wxss b/miniprogram/components/footer/index.wxss deleted file mode 100644 index 5b6d03c7..00000000 --- a/miniprogram/components/footer/index.wxss +++ /dev/null @@ -1 +0,0 @@ -/* components/footer/index.wxss */ \ No newline at end of file diff --git a/miniprogram/images/bg_book.png b/miniprogram/images/bg_book.png deleted file mode 100644 index 5de3c40975684d773b4411a2de35cf0b269f7166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4146 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 diff --git a/miniprogram/images/bg_book_add.png b/miniprogram/images/bg_book_add.png deleted file mode 100644 index 5e4c91ca3cf9f11b2e40261b73b18172a3e25679..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1773 zcmbVNX;4#F6b@kvplq^OmJu3Iiv(1xnouMOK^84gHU+dOf^ET3KvWPFOc`VuX`rAP zSN6J4KoA5pLqUZI$fE2q2?-Dafds-10ebYc%=B;H%)9qH-#O>I-?{I{OZISc+Nf%v zibA0_x;RrjVQ0cC#K^;X-y+}+3WeU{aoF2&a&mHEVPR%wW@Kb!?Z3~^(9r1U=sFKT zBoaXhki)~n0FY23kw9u{YHDn344C=(c~Il?`LIHbP$&fb+1c6U<>iTq319#t0I)zH z7#|-W92^9UJkSo75R4ox7K{H)t^qSQH;06XK1cxxmViW3APAPg05CAZdM^M-ak*UZ z2^au`NEQ^3DPZOCcrXPbh*Tmrpc0J15paQkWilDkyRHBLW`ubW1_l8sLWbPeK4H zJsY|-P2P!|B~7c-sngwuPD?Aw8^Xs$ob)M7;7|irx-*F%9j@^+i`StVkekk-vP3$~ zq}j$r^oc>Ey{k9!Wy@E7Y#tpsu*`T@bvH(!(tetcQhTBFe$Jot-Ao&eZYR5y-AZ0! zHOZIiin+?coB9Xvao?_#W*Um0G36%WomLbaq=%}A8NG{+E@$!n$Y~c0AN*MDgkB(vG#*x@S;# zjU96-k#v?GvsJo^-q+~h^5U1*-99-rr{?{qrYjAr-E9OT9!(=I3-g@wS$c+%mCGmb zT@|qx?=1#8cdzzWy-&Qa8+-sC>&J;Ba$3uAd#CHQB)R4yuU~_$Lw;{7Rw=&sm9tz% zWns$A+AL-HHEIiem3>8-k8T*qBKBCT$6CFp;+HYhxp; zrCyY$<)(TcmTQKo#P7+_B*Tnp^H{UebtRdm+059DqaA6?B%a}lYBim9CWLW1*XYql zXYi6tVo|w96p?Pdc0HlsP?K(vFMFc(2s*+dlUTn+C(4Xxu2t)QmaCRYq<^d+wmuam z#XdwE_%<_`s^+vO)~+U%Jta9<@ms60qd36^94!b(dq*Jf#lATyU6I`VZl365_6Kxd zK_2#uyLXwt?3mgRLyw6yH|AY%^-Xn%->lrxp`{+?hf{j9KPe+^KRuAxt`()A8Kq!M za{7$EY%SIVYTAiw9S~2eVF=VkMFrzJ8Je1wjg8O73Na=^AR+i?qX$A?oh%n(fj&sB z_mG@WpH;sc@jr#%4A>TjRHX5*A4_B_;MyFFerv=S=v~BVTr9Hk{*WFKZS?2KKZfP% zd~4E1#`+zji>m$f`*IZ`aYVv{wrdZZ8$%0rTsJZ|rY-amk`~eu>^+PrvQWG(!DOyP zpHjDDw_qRTvXj-vb4lTikJ<<(>FN1sPn-Hcjr33H*%FH`2eXpy$?AN0&w~V$f>jDL zHM^60?gl%L;{43pDMZDbq^@#7=W2eibM;|nyJ;s%d-EB!s9;WEqNah)?ZVO`s$A#h zvc51CQOxr=`%pCbYFIF%Ryu1Ms-4jtpfhyVJyeNoqqwVZ+$>a&Y?m*qGy7n7*Pm)M zI_HCa-Pe=#$Pu$~Tzgksjo8R+Nk5^i(BSwc+m`#bS_LT6v8s+w^FCS i%e>kjc1^wDialzV?)Fky>m~Sqp-?W4Zj@s33F_avgGCqs diff --git a/miniprogram/images/bg_summary.png b/miniprogram/images/bg_summary.png deleted file mode 100644 index b70748cc5bc09110d1f302949bb3e2b56e884889..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7554 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 diff --git a/miniprogram/images/bg_summary_bill.png b/miniprogram/images/bg_summary_bill.png deleted file mode 100644 index c93141f4fa4298c606cb0e20214e4f95aa797937..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15597 zcmch;_dna;8$YZ??Nw@z(%QR}T2Zsws@W2IM5|Vnkj8H9t==d~M5-+sMQZOYYS#>* zs1aKfv5NcU^ZovC-~Yg!$HPc+&Na^Uysq;);~8gS^nihuo0g1>jNzeyt{EBG)jZ(; zP3mjF?^*J%uYo^Tpk@!W$w~)#*MK(^u3AsD$jC4$bpMfsM{wVuN5w`Pq~Zd>^)5!>mr?Zy`~g!>HkdJVvv|M+m_WC?u#X;KI{!`?7&Y>*8OJ(y_ z)v-sfahP?fQka3&dd*NZ-eI;>;J1|WVOeI*08`q|*W82e%LyC~b;tkqWS7{Kka*vQ zv%)b`Jbrv7Y<-XwkdnGrJL`E~3)T#-xAhJSZU{IUoOM4~<{c7&pUy`-e>8Uidvo#k z0yD^b*|@LXuIZnDudAl@tD3pmfV03e4(9_Ra`Ua8uCDIV3BN<>T(fnF zKy$#}dCnW(M4rj5$LMiQ*@>JBXDTrv;MGx48+P2Vys{9~H;#1}NPTrwgOxp|Lgq>xF}nKx%~Xj74#`mS}CV&`RGlPje9?=(C2?2i@!k+IDE)C z-Dx@eDO#g)&HjkA5VNzM*^vM!>BnxtPIF}K7s(Bd6tYUR{@26qh~l4b#qs$-4&6DU z$-gcC2~J>8iW{P~ItorRSCRwZU0=LlEq-C7BO%CJ&Axz&sm9ELg#hn_EfS%G1(0FR z(y{#e=CLkq{vC^i)69z|@a)Co<20=0GBgFw zEy|=wpqY+k`wRLYQ~F3NKHk$Ycxnj5$d%n(?jeUN(*^TxMuB^Qe+y@)$btCTl3%r&Y^`J6|4)_L{;`|+ z_zEXzYBzx%arW&?;lDg%Qa)f(=8Luxo%uv9Rxpt#9M_CHzYZF;oL~~tacyxqAL9wS z4>z?F0sKY9~(;)fma0bZ&`)6S^IbuJq=ly~#FXA8J?i6`EpzmtXlTlPb9=6(s)EuNT&wKyTHAb0W}pf zSObRYI*`?(k>#AKkedpEC77Ga`pa4EJ|E_@n}38}=c-?Rv3JHR-Y|=c07fd8u6=Sw zyHFC#o?H`Yys2~Y*rjKL^L#Tww%TC`^Ou;U0W|7SxoPW9gOI9x5+zU|P(f*I5Ym2P z=(75%20z#MKh#@qw`kaSzY(CA!x#RZY4w(9rj`I`DxN`Q(fI_F;N{oq$&00&mkqHDPgpcl2LkBcd&rC7qwzrh#4e$VS=2`t#r&!Z+E^_$Fd7HNJw=rv?TBqDA)zLZ z$S00%(r%HBY^t#NX6g^rshR=1#}!PP>o@pE$t4&*qe3draH5o72`cL1aM0LW38R38yznsnNXO4 zQ2N@D?1ef0kL4-h1Sfx@)B@{;5hOfGJ{4u{DG>T*@BDOUspl9DQHzi58TDh#6?f?* zD&fkfuFC$zqVsE~k6%$EuA#)epi-}Y+V~$ywXx#O9ROH4H=Vyo&P`FSP6Kjxki76r zjcTCj9qZ{AGHm!Pc>c=~VGaDdt8eq%EQk@o{?T^&!2+~J75;&keZmSU;`bKPsRnrs>>x@iwSSYbt?G)YG6)gI9J_H|ExF*KheuK`wJ)*EQu$S}h zd8is*OINpEWnDtFSrgMrLjny+!2blX-}jkO3ErkKVX~y5vxi!qi0)?}2v!qzMekhe z8((>#0+WEp$L6kQ4aYHeYvb8ABaN8ysHcwNLrspx>s$#9tHBwp zsD#KW@mzz}pBIvS{uS`^v$yxnN$Lql4WIOXA@A)`U`^ zq=?vgawJixQ@iO~r69487P2Z9BgNjl(tj#U$~fSwj=_lEap^lCVQKSxm8v-lKY`h^ zWS$y4pI40& z>9R|tM1?=f(^;|xujVd3-eANAZjKKcEbQI;Es8;w%#~{-nx~@bfd?=6-Z8s-DW_jL~tF;yI+#+>*c<=;cDpZwI6(d0NB5fs%JB`AaU86bAbciI%f~t>&1ZvcoNTORTDls}J zR;RdY6>$}k=^A!hiBiEUfg?qfD2pEaG}md*2|d2!=mys(HubQgdGQBs6k4)y-Gcl4 z5$YDfMw=be!Xu(lMvOaY`cRlHy7W?~D*e_h$mArk~h^T8q zkHRpKY6F^;-S3yumAvRrJ&ZauUMo|yn8LAhMQ)KSm4{3W^hmAY_`7}+UAs?rxd7%6QuY+GFVhGVx zLF*EWmS@EDCX-HU9api?5;@SbfPci?-;9-URhCO^w1`u?Kfm1Q7%|j5HtPaMUM1&Vs{>bDiV^g&Y$Rp11tNV|epUk61&k;JVGK{8Er}FnB?vL zh?Jd;%5&-vO6qVyHhbEYb7qeb6Sza?Ip(~bN9VioB)bQsI0aBd4k)@tiI#@{xcWxAdAL)_I_DX9`R(;j zBj70-#E~YAGj!2X?XklZZHF6I%ew3{XrObECvtDTAF$v@>)5!iQW|5B(OaU6CMAY4 z&LypOtkNZJTA#2Y|5XBTc)Y1_A;&V`^xex+&5FA5TBWO$|GG6egu?D19c4mflYDBQ z+ilX{Iyggi%`dzsHvcf-(HF+N6w3qth{E5K$E&;Ut~bg1+qM9$%Z&09dZGCmXa zWuVPdaG}F+Cuj*ss*yByLVS%*z>Fl*-(yI~&ZOsf24|qTdvPX~G z`}tfPJ{T$8jTyc#qg!%6DM~=6;Qd#<*n@Y5##Sc2^PZ7Ln>y{2xleZ83m;;C6?rkQ zN2-6@5C*q6sjc*7D0V|ks$-5r;zNe6oU8kC0r7j+-cDO_BbQ|l@{-Mza%f5{;eov) z5b=g$`z^n~x~3ek?Bjt*-eDP3VvBViHgk9)x&HfzCgl)U>unvMY-dx_;{Q5Yi6!WP z4IizJ%{kBcWS+SHXQ`&pH1qq3oxAwF zK)=bhWb5+PB;AUoN%u;|hD3r6_@3u4t<_GDykAIG*N%oBev$9=%$)C3eJ!X)Gn)j2 zAvtbb#X@;y@U-ic<_uP9T${Q3Vd}8G@%j4Ahfa2AzdG+T+o$6%yleJ#+Mw4O%i*bU zQLeP>^Kp>pXE#Sp*&`cG(xZf>K|^Le5`u>PE^~OR>~$tw$X;k%$nynO;0bS42U4Py zhc={-_K`vA9jKRRFpT?@Loyb{;6^j)0Msn*TRHS7rt965Vr({LQ>8H4 zw>29u*IDmosbMbgBVh6w7v%gx&bUC8Y@0&2^>CN-Ud{WJnl`4)1E#FCi=*b~* z(AZra-`U7v2X@de@2tlU+!M>>Gz;{5(BzJJ9ZE_YCQ}?tU)BO%@@SuePf?(WdVwW5 z$|0JL+q>Fk@sDMcN|=)}1dOHfN;F;mJ!)g3dnbF-)uu$BKIBd&8c}Mxb90Q=?eD?O z38Re`MI`PYq_;L)PPTw^6&B9Fo!NeqrzO)Q{H14RjWh)7(vGQUW-)4mwwsu&m_%Cb z>Y6%+2rWK~4;K5^{NC!lP(ts_z?ysE<>-u8jcybkIB-jP^4H({x_RMbue2iCc|Ybj z{*3A<;tz_sH~H66D6#qd8JoH&Z5oP=IWvJ?@;=0Z!&q(QsT8=S2OeO0=p1~VdG6o>1??O#{B6ehwaiVi7(^}ITxphGTAO5W`@%SsrGu)0;^ zG{-VzTFD3f>SK6(&q|;Z6dxk$Eed=D+ZinES!3N5@AN#i|t{ z#ST@TL?akm*o($MJ$J*$nWny@9R1kV#h#LF0c$*ptwyXk z$NOS-dke)I>V*aNo4rDr<&@elf~yqp#qa9$%TEMT*14@unD$CPMyNr5MS$;Awf^*D z$WJ=S7_0Is1w1S=RlF`M;g8Dx5Ai8(C#^Zv$B8aa)(;Zcf)gG%a~H+kqdBS|YNoKv`)V@A510cPB2AEeY+0)I6?Qw_z)^x8JZiqIl=T9 z>2mZ)ez0pQL5cQgOjG)l?M?l3U4bc+;21rSHtidQTJ!y=z1e@hYCJ*hQ%n(V{1U-R z09Ztn2M=A*m-(2buKdG=?Zno7C>3ZqVoazFYe_rLgUh zQ*|b^N8zM#d23u4!7)<)#l<;|K+H(#?(ZR6yz_U3fbAbA_k?NlSm&dJ*pusSOxDA# z!^Ggpk7x|*sDpf}(FkBB%Q$=DMn{2SVyXYetn@%Bxlu&Bl(i(f-_%aI3C101Lzc$-FgC8pvhwF0Fu1^am{~JM|8a~rQlw*XUV%zPW5cNv(9OTx{0o7 zj?;$H4D;6oT>+hPj!;x=7bH0<jU+=BtR zCdrdF@{2`4-Ps@7|7z1$^_sn^L3IQ@2Q8K4H>h-pzu+?>F9_I|#|5(JYfTj54gpMc z$R%_83r^Bn=&ZD+Xp$b42=sUhpkf2T{TOpUuN=A*=1V(hKIA zyrAqRU-<&!F{k=oz5-|L+Wo1)JG}N%&buaBv(jHnc3e1nh1h9JVvK^~_~<@X25zF) zWQ;=Mt42KZ>@-(eCu8f4rl(Uv4CdX zC5!5A-W{{pW$DxVsiiRfE(hU{9s~P}(pV(U+PA&y3*wk3l-hamnNfuG%LN50lbszQ zBo!<h3%Sg7xA@hduh1Shp!uuP!D!ZWA#ms{OTjQpeT9;Lh%`sqOD~7rK zDn(sbR1TE550S>^r4I+Re>5VLI~;U^TxNRRzMh~8a=KefuDNpM=aU6KQ>vrlRgD>D z^w!~RfaIo|FYDc5H)2Ax(v~SsiN^U??Y&$@g4LSr$L_kguYX+i|25&WX?|dC=_eC( zH1>GA>7(;e<@^+9KJzs$x$-QeAUEpmN-4GM<_c^FuLFJf?mS6#klit|HZz$WB6sN>j?;QkU8 z?h0wGmwVkePsxOQdq&JZdi@riSAvmVub;!zgI-OZC66EY9B#&(%U;p!B}5}ynlpUJ z{MC{x_uyJ*jaZ4445WuBJUY}XHl)S71>zqvQ+mpW-dKdq?ts@Y&RTw?4Q(>Yv?!y$ zbRUdI4tyH6-vArkc&8R%27gBEKdXbDM}EYgs-NMUHTJ7M9t?^1Hj?DC;YTya`8T;H zMYb#czfxrzbfoWV7KX<7GT!v62#wjlxONfxeIpb*y;rLUumABr!g!+f+8tineBbMm z>8!Mf{y`{(zYU}K;XsPlS@itF6N|y21V^dFq~W+T1E&m;)2;MI{_`DF zb53bf%&Rf0Nx_6HLL}h!Q5-E`X2@!%rG?4!%mairAmc2$)py#gBnp3 z^Q>jR4f`nt05?s&ZCBc2l1ea)HgAx;b?{GKM!qT4@R-Wx&!~#HK5fyZb5}y4u@@mb z4?=3PZuB)9^Yh-ioyR3q^hcK-M%R9C5bdCkNX%Lz)M%`>@HMHkT^--Dv%=S(bN z`TOAsj(LnbB-gMtzO354_8vpvMS;;9(vidXf zOPKKMtKC`?)Cf+6&u?i7boZLs>l~(L(#|%u4T_kGIQ-9e8W7yn#Vgh08_nq|0^Q$Y zjCsmjg8N3NmN${#5{eJh`7zsbH+(Se=x1uYF|MtG=c8z}6O6Uv1 zCtx5davykh)TxEv5ahL~_vWQyIOo-xjkZ9|l6cpGST;P?ETvv!h~p^M9ZQ!ka~MkV zO(|?8^!c74V})wu#|7V6$Ew$fkEH3bFR=+*pEXY`R+>{LKSvI6NU9DluXVG7j2ZJv z>HRLkIEg;<9P*xy7h_f>PEd1gtL;L4f#`FM8edSy-f4i&uNPe_V2k%Au_Jq%i8O>E zo=&Bzw$OWwEkn>?%>(bw69=QwRhwLVK2QlYq6WA3-+ijc(j(GiUH#?8&23yChV4ry z8w*r`lBI*!JM>)@z7mg@=GTI+aySu{Mc$z!u3ZCGOA|ff9rBsyJt3p3H8aSPq0{a` zM9ufI;i<1>H`nJ<4y!_c7l1^4aYmYdc&`b+UeWHM{Zd&0Dv5C2wowZE%(F3RBHOq< z4){F1Uc=`w&O}&RtW2~Sd&>zrAYYwI6b>e_tJ`t?lQ9hM>4=~aY!m4<)Gj*P=Syk$ zaQgmWPi2hIHG$li8h%CJKf?#0}WN^`Ux-s)n<6e$@{IcoW=C9o|4 zWiD`Ab+DO0xysEl0& zMgBgt7uUMt3l=LMqR@YytshBFigAeLnS9UMzhmLE%J2(j_(xQ z=<*T~Ipph56{->e@C6X=Q%t+qsnvzJUtUsEm*jY?&>3>PQ{L_S9M0%u{`w;?>cv_X z&`(@uD7{8-o;1Avj-YK8XB8(exTyRT()u4c7kTdfU;DveLzr#VjAe=D&=-*M7rWJ+ zv2Bza-6!GK&Hr%cUKbBgj}ND^-}2!CHu6D}5NvYl0TX;KaGrtUu031Z;yIH!AI`rChXo}fTJfYLebn+LPtOvib^5TuC56$FG z-dZ}66`x4B_f;c!x>f|Lb;8o&x@dd9bl3CAy_y7|(uu^=u||t)^#r_4Acm-0th?~+ zFFDH6iYjr`>hn|}7U|F0PBwGbp(fL@p}g65ishz8d=|{NhJd5id+{U9h5@;(^Z%6F z@hq@zQzqPAr4ZKKWB=LeW4q;G?hTu$!MzUnK$Xmdy#)`p72jgsGU_w3*diy;k>ryE z%_j!16m2w5WI%ybb=~Mzu@i>tKOd=8512ms>>hhX@ezJgUcOcyXa1nVXf*-Rqw2W= zy9YB2-7E%VU_-(EdN#)h z(|%c*$Fl9cG4K5gN;?gB{q?t>tf*0DPr?)rjn1luAfMLI>G?NtF|Du2lbDXbOt6sq2pb7#G)VR6e-9_O0U zeOut>#EVhil2x7wZ(nXTs(>ppi|l8)<-5|xu3DmFO@d>K=3{qfCi!6fI`fP5rpOy0 z+3pF&{Qz~2_su(ClTG~12tc=mv~fA4(*(}AslxLO;)o4;_(i%d1jZ|Vzam^-B+Gzw zmrY5DCS^f(6yF)Of24*gVIXZ4nbHS#=AqwJ;lFIbHtXxB)b`P(F#EhF>t%l~UuhSA z-yY{P689^tR&s#YBRkr~CKeDzAX{>T$);tPuxoq&q&eJ`PL}yDo?T?#JRmC(7aCKp zgk7xrFp@WHp{DPN?G%ugv_0aEpRUt3r}<3H?56Ec>+AKenb4Y7_C%FYQv}vO!j#At zHMmh;&+I<;-W_WB{jNG6kJ^f$xRYq&DJRIZ0+*W_n!odX0t>xTbf&_aH@X_``rQ!J zULEr=K)l2bGoWKK{Q>W}aI$dHa`>I;`Sqx9SVjvAueRIbqhcL=sc=mjZBmS(-LFQm zL{kUPkdhPJ^F`~E8xe(*o%KeHT<8Uu)Dk$RsC3jG4GeBUiPo+y*+gU{Wp{HT2tLv4 zqMpBr6x}Fh)F{*(8U~-X`+$G7S1S^`OJ!cBv_Z2hcQ(n5h++aOA5)dC3-^A z_OIfgOi$dr?J7rfUAvq-*PUM^s9jUf4i?HJ9bFIN&kRWXsQzjy>%;l@-PckFJk}m? z?gyLTn3B@T(#RoQO*v%DxX`};`o-hup(%5_-S^&i$PD`q-*7 z8ROK)Bab&bocsmHw91l7UNH`^dBADZeC+3WyNGe~+AA6A17A7{fsJIiPZFiaBTF?q zyVlJnZI|{q+g@OYoE8!BuKxYTO?XI&$I38(=#6{b*EI%NfG`g-<%-fF->(d*dQCpw zX-ZhA$fe3`cSbIlw?SWk+pbzrbknDGHAlC1iRAQr0hm37ree8{i|5X2a%DGHi z*fKo)I~viU(5;DB^YR>f9h|~D2hM0EcWPE_cMZ?)T*=8DbiZ*@4`Nz74T&-aHgk(3 z3NI>CGIMcD0u}Wyr^3sGge~(kaWNi=0&?+pdA|nl=9ezYL>p7wKI{Dw%14WoGUNxg zR`mfFl-97NGT`b}$Z*<25nq|*5c6u2=q`m6V~SOzAKE22|*G zu&2HW9GW5*Ro?EO6-EQvvtLSs-P(Wr1i>o7YnBo}qnzm1-3hN3Y&+-Is(zFrb=uZz zt8#ep>BE7^P|GM|yR%J>lRe(cF%)se{0*n{{Lfg=u1M}3Zt1!T72Aub!G(mj(Wg~V zgGMh*vhl$mt?!Ziv3ughx4K+uBKrZ@+$%F%dKL z^Nrg#+}Yqwkq>E&o!C_@#rZrjrO{v}JTr?irVzF}3$FhQLyaN-&%hN$h{lhzg}rfQ zVC?|H_}RF+Pk8vyUz;=Y4m~6QDf)epM(t~H!d{Vl%YUkG*VhT72YjF#>Y}AG7WU=D zs=R)4a}j+p0|{;4R~ETmzdU4OLHtwTj14X*u@d$lf##)Pce$2kJlA=hTQ# z{H<$jfgFeEecznAUU<)n6tuo` z3FGqmENjfiwwQRK9QtRwzl`fglqK6$;N80`l-Ws7xROyVLur)8Kt|trBTS){o4`ev zPi;nb)MnT6)l$NaB-pNc3)tA~Q)Cf;N zn_8ePW~YLKeTkGNbcXeEzv7yD(@rMto~RuxHeZ$pEnxFV`)&;yVZy;rM|DD{Kf=mp z88zq@+cp~cG0>|dPZG{=vEGsZRfJp_3s1kgsg|qTTu?leN z;*Zhtabh+2EE$sZGB6rAj<5e3#4{z|6DrKCm0NLzAs_eQYT9qAUOt}7*mcuAmolS9 z9QBI);dLb9Cr!Zn<|Vn0P|%P1H`Fmnyb*rp+AN*NJdF(b%-Ukx1qYCrrmK;m=u?hw zm(B|MzxylntQ0o*R9vL^CGJmnSr(c2{aD_D$U!gu2QrBYO4ptrz24?-W7Q66Vz(HT zU%|=u`21;<{?lmmXg<E88i;jyaO4ONc@ zb;Qu}r@Rd-8sz)I6z!L++Jyf_)Ysq1olOil8_T@bIy0`<8L#t^%yT4m%tY}p%E)oi zsJqKur>MXlvQZx-?jLekjj4Vd_NP(lppoejS(INXZ2p|u_H(J>)c=Gze-YD?F|f}C z4#~{z?n~YO{IFFd(O`^QRWLP7CDk@T1`S`rp3laD`Fa?mO*S(- zIM8>^op)l4&$=!nZh&cBi~6ZuXz%P@ln~89rR1c`%TDbe=lLu4Z%*Rehrx?Ew1@Wm-2wxGFIBVV^38Rm9~I@$uEaZ5ZLPnbJ`Ya~ z((12gf;snJyml)XRxvL6u0x&Yk2t*FKP{EHyw_5+q0{AIprcx&20Ve=GZvV`1DgMR z6gDC9W|~FX%IGJ3T0$v!xu!keRu}7ZehYY*(4V7C2)6PnT1StM(V;z>YT~M_N((54 zib^>mCo`h`N^P8i7`@mHu)b}#t461Drq9%qW(nfR#?!wL${|6?DAC?7QT75(Re6Ic ziqzS5$22ZHE;4oM2Xc5+{V%1U3@0cWcl6(yV;d_N0m`iZZIe@;RB2gSRwDZ@q@`3a za`GeJTJTO(2$7fnk&awb&$yYoF?FV+rIHnX^hj?txO6_i&c2@!6QXk^KFR=9(O||r z@;R0@R8do-cWUiXA=&z?Tfv{M6*Sww*KmCqQ6-wBGhxs5;m5?-`o|wJlQ$)jk_tLc zzrw)aE=!885(?~5Q=>OcTC&E2ob^yxmx9K;!&H9eIsDgpJBg_)dWt4DZdRFraf*rc zXY<#G^JzS3Nm0z%98pF-7ChPmck4h7+E%Q8p+N(aoV=oC0(bEilOM?+#o|Si5D890 z0-KeZvxF7W!Z;GwnmL;BNef4^HB5eXRaDF`@3Ubbl7fp)=#Bs_!c5X>D2hAu)wwN( zv?%FOm}qPjBT@amR8y3w3KK73IGvH2#A}wnlf{Zh36<{|p?Z(+mM~>K%u)RT ztY#JjR(t-j@qE*ql;rP0##nW+G6g%8R66=%Cr+OoBFjeel|{tkHrUL~A*k8!&ywHs zt4k06pvaNKkOkeZKYtq_SJJc#D|fl=+yjb^34exu0W!~Ax6+QqHzre8A>;ljxVj;l zb!=^&oo1s`gaa%ie7=#B#lAdVRhR$29m~9gTy+)1lUTVrDfsF)f+wy}akLRIHN+(7 zJL7{ok&3&Ym`Fzp$N!G4PIcYwTV#@|z6=cb?h!vSga-7{JzLm{riUM7dl{8{hDcw+)%cW%==ctuy7na;JC%gRlugMtm(pf zUz_DMinH^R$@}+ll!I3p-m~7EG^H}OaU|Xi?OE+esbzL1ZCk4OwE!1^C(qntwt+j% z8}$xb!)L&4V7o)~mk?>suPVjE;&v#K%~8VNkF66)g+-Ix4wjXnJ?ZoDgf~+ZSq)}n ztqD&|+C`o^jcylc%fqGMe}uu@)-Gd2OLgbfM8fRSZfkd3f6jQc?M5H>`^jt7u-y3X z%ICQyc0v&U3S9F)_8bc6GZD?mtMiRy+06I6E}rItMf>Cea73bMY50PU{_Vz|dl{PV zXpU`_mwZ~gW2xZ--X&B42*-^c@pXUfBxexgh)61?9=Q2;a6^e^rN}Ut_~&{8S!8+f zC%I60csM1i=dCOH-G%?^Z&MTMdLVC;7+74ZuH4lup%E$L@YGPbX7lC|@%9!AS4B?F zkmg1E){D~zN?a?S3g3f#ri+|cWB4SGejUt*V^9IpWMo~rq-)h;@ z?+TUhd3pg0k~#33zt$boLU&#$*Gf+?AtzX!WSoDAb={VX(tigXaVAnQiAxRl5XW~2 zGc<_M!M$USwRZQ2GIGzt&bG+5@tOaR~GCy(I&`DXSn2}YtunHQnoVb>XshAG{2rG;^ zZ00u-bpI#eD#3HCjrGw>m6geZo`ZRb!V6&`YQhg{!p9`?R2?~3uosR7Iln}jDf!0xan}nr`eAro| z-on2hP+4DkGy`7;!G8RV+r#9fH_yg}761jTA@taTeeCO}y-4G7rVXiVC3bar8Sa*+ z_Sd@3f7cJq1rPpFQ9Pdc0hRHkMKhhYyIPcKkivdAaCJ0aOC_*n$MdRrzxt44sTr^3 z_2^G$AuEWTc_zj$-4IEYe$QS#7}QZX^N^UjQI5`Cv(2DX%dHT~HHS6p<+V?wl*4c* zKH+zw_aIK2KM1UsvVdcQIY*S&CO2KGNCU4)%#iO52K+;^|N7KcBnlDAsS22?+hu|x zDSfpQmEw?lGXjuIjg+4BC0zEaG6&fY8(RWkI1l;-U;J*{}q)DIbYdh9!j7gBqD%?WVtHKM7B=3W)N?xcwef*-0!fx z!9NSjJK!vygdfa;H(j3p8ga=?wvKRp5oVS~A-smg$f6}*_YSAaf9&?w;jh^Q2|?ep z67YDSFln%_Mwc4;Qm5IX%#EIDKjE~YMY?`C84G<_Gi0;lA(DFwcCM@I0{5K>4zei) zov&|opohSK_hE}s$X%>RZp~67J4+Ssws%Kuc3~K)#R%HKN z>4+JQyQm=NQ0e|n%w8pbfYkzfH-2WUGlmFoEbx}^-2&K8?+aG8z3KuE91w=pMXNGJQWOncD6rj+ z%j7NZDR!oghsZ@62Vb|5ZQA+akdS`z)nmTov;o8cuy~AAUi`)Tp8e&JIwG~ZnxwE!%&{-Id5+%Bk+uZ zO+TCJvbM9Fd*aW}EI-OaqAfKK?Pj0Ov$15?@XF)8bxtCKtnx>+zYdE}vgw#{Wm?f# z1q4se!I5w>J={#dj!5Kr(P=St$j=jNUEQy@uze)FbH(xWY~U#eJB4hqlo_~3!3GB? ziLZ|~zAu;4f5W6P@jSA8YPI3>wj~Qo_E%on!?{cDSA`s0{CQjZAH>vEV6rA>CV$F> z1{OM`>;I_d$gO`@WKYlCg|18)8MEx)Y0ApI6a&isB=)8d38&h&<7 zu-E9XQbZYX#p>tBFDgl*q>>$4pA8E}o3wnIVpkO8w`@;tC_0HfK*h!yIwXIH@pb^h z8@i_X#ftrVWskUDFQ?*F3*HXk)=SqeeXTKVAV-)ADAF)!Ew^gm8MZYUQ*?UEDFgt~ zUMl2y4PMy6S2n@Ydh_L~p~KXbI9t5YeEgycn%wr*Ox=D+kb~GwHX&Z2bbc1Yt>s-# zDIZGKg*#Q~g8(~EhwfxyXRO0v3czu*Oit(X_Ws>i0nm_o!<~`6+8@|80VmL^Z@bg^OSVe&ME^)oZ%5hW2YIwxCmQ~#xI3P(R37n%*}M`6Z3UX9>m^4SHFg>?-gik{Cv*M7 zTl;B(^!xw=kevK7AWJkghjSM>%O~e^R&Ukytd6FE`zE)jZr*`O&AjtUfEGN6$-^Iq z0(_s49`V1O_>IW~{1!;AHEP6$krYDv33`WI(9E zCH&&mot<_$H{}6>ql`EfTR59{v0oS#_NLuI$!wJk7?$i5UcR8(*}02F%tFOo;1Pke zpK%uqkm_{1#S6PbU)BDdI(Ysj3UG`iHQ;9|riJJCUI38FK{~GO+!BCgLW>_3orh{B z%Q(DR+>7t}t<1-Hm7p%axMMHAccvoRr7%Mb0@W~S7G1ReYDOby5tm<%R)W1kk>-Dn zUmfjzJg=EOj2;9OoBdC*H)i%+9ow<@JFhADIE;NG#&~1i%HG-X{}^1^brOmwSfG3b zARtYfz_iV8A5smiQiw900GMxpN70x3(~ss0%dh&jNE>hPr*lUc!1KVR2W|~^Ugw0B z4yL&QAL5UiL(uUOtgi0j{4xV4?)|TKx>xeM$%aeb;rm00Cxo-@Wu8VEG!?G+O5q51)T*t3FuGHT&%(l{!ad1 zPV0}&(T$^Tm5p>7R*9V vpuJ`-#wr_xBm4%*RZi_f?^90B1rzTLSZO53%Lss?O!iRENVinmG5r4l#xQQe diff --git a/miniprogram/images/book_gray.png b/miniprogram/images/book_gray.png deleted file mode 100644 index bab16856f09b6d87a34c3792af279c0023d170d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1636 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 diff --git a/miniprogram/images/contact_red.png b/miniprogram/images/contact_red.png deleted file mode 100644 index 4c4be870146e4f463c0deab1d9f63b0839fd40bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3146 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 diff --git a/miniprogram/images/home_gray.png b/miniprogram/images/home_gray.png deleted file mode 100644 index f35aa212753c0f7d9795c5f1305cd55fe16383b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1672 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 It!`xe4FLsB?EnA( diff --git a/miniprogram/images/icon_post.png b/miniprogram/images/icon_post.png deleted file mode 100644 index 70371d30d16c9722a49cb37ffd22290d23e34e8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1900 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 diff --git a/miniprogram/images/share.jpg b/miniprogram/images/share.jpg deleted file mode 100644 index 9660282740d434f3d3fed0e228ba36cdd4a32e3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23661 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 - - + + diff --git a/miniprogram/pages/family/index.js b/miniprogram/pages/family/index.js index 58994f6f..a1b129e7 100644 --- a/miniprogram/pages/family/index.js +++ b/miniprogram/pages/family/index.js @@ -1,7 +1,6 @@ // pages/family/index.js const familyService = require('../../alicloud/services/family') const app = getApp(); -import Notify from '@vant/weapp/notify/notify'; Page({ /** @@ -16,10 +15,9 @@ Page({ async onUpdateName() { const res = await familyService.updateFamily(this.data) if (res.success) { - Notify({ - type: 'success', - message: '家庭名称已保存' - }); + wx.showToast({ + title: '家庭名称已保存', + }) } }, async onCreate() { diff --git a/miniprogram/pages/family/index.json b/miniprogram/pages/family/index.json index 94b31bcb..8835af06 100644 --- a/miniprogram/pages/family/index.json +++ b/miniprogram/pages/family/index.json @@ -1,4 +1,3 @@ { - "navigationBarTitleText": "我的家庭", "usingComponents": {} } \ No newline at end of file diff --git a/miniprogram/pages/family/index.scss b/miniprogram/pages/family/index.scss new file mode 100644 index 00000000..f8b78d9d --- /dev/null +++ b/miniprogram/pages/family/index.scss @@ -0,0 +1 @@ +/* pages/family/index.wxss */ \ No newline at end of file diff --git a/miniprogram/pages/family/index.wxml b/miniprogram/pages/family/index.wxml index 15eceaac..b90a5473 100644 --- a/miniprogram/pages/family/index.wxml +++ b/miniprogram/pages/family/index.wxml @@ -1,61 +1,51 @@ - - - - - - 创建家庭 - - - - - - - 同意 - - - 首页 - - - - - - - - - - - - {{item.user.nickName}} - - - - - - - - {{item.user.nickName}} - - - - 删除 - + + + + + - - - - - 邀请家庭成员 - - - + + + + - Tips:向左滑动来展示操作按钮。 - - - -
\ No newline at end of file + + + + + + + + + + + + + + + + {{item.user.nickName}} + + + + + + + + {{item.user.nickName}} + + + + + + + + + + + + + Tips:向左滑动来展示操作按钮。 +
+ \ No newline at end of file diff --git a/miniprogram/pages/family/index.wxss b/miniprogram/pages/family/index.wxss deleted file mode 100644 index 2490c419..00000000 --- a/miniprogram/pages/family/index.wxss +++ /dev/null @@ -1,8 +0,0 @@ -/* pages/family/index.wxss */ -.container { - padding: 0 32rpx; -} - -.van-field__label { - padding: 24rpx 0; -} \ No newline at end of file diff --git a/miniprogram/pages/friend/details/index.wxml b/miniprogram/pages/friend/details/index.wxml index bb0d7979..513bdfbe 100644 --- a/miniprogram/pages/friend/details/index.wxml +++ b/miniprogram/pages/friend/details/index.wxml @@ -3,7 +3,7 @@ - + diff --git a/miniprogram/pages/friend/index.wxml b/miniprogram/pages/friend/index.wxml index d800c1d4..d793ed70 100644 --- a/miniprogram/pages/friend/index.wxml +++ b/miniprogram/pages/friend/index.wxml @@ -14,7 +14,7 @@ - + diff --git a/miniprogram/pages/giftOut/edit/index.js b/miniprogram/pages/giftOut/edit/index.js index e1d92447..220f112c 100644 --- a/miniprogram/pages/giftOut/edit/index.js +++ b/miniprogram/pages/giftOut/edit/index.js @@ -2,156 +2,175 @@ const giftOutService = require('../../../alicloud/services/giftOut') Page({ - /** - * 页面的初始数据 - */ - data: { - _id: '', - friendId: '', - friendName: '', - title: '', - date: {}, - money: '', - remarks: '', - }, - async onSave() { - const eventChannel = this.getOpenerEventChannel() - if (this.data._id) { - const res = await giftOutService.updateGiftOut(this.data) - if (res.success) { - wx.showToast({ - title: '修改成功', - }) - eventChannel.emit('refresh'); - setTimeout(() => { - wx.navigateBack() - }, 1000); - } - } else { - const res = await giftOutService.addGiftOut(this.data) - if (res.success) { - wx.showToast({ - title: '添加成功', - }) - eventChannel.emit('refresh'); - setTimeout(() => { - wx.navigateBack() - }, 1000); - } - } - }, - async onDelete() { - let delData = this.data - const eventChannel = this.getOpenerEventChannel() - wx.showModal({ - title: '删除来往记录?', - content: '此操作无法恢复,确定删除?', - async success(res) { - if (res.confirm) { - const result = await giftOutService.deleteGiftOut(delData) - if (result.success) { - wx.showToast({ - title: '删除成功', - }) - eventChannel.emit('refresh'); - setTimeout(() => { - wx.navigateBack() - }, 1000); - } - } - } - }) - }, - showCalendar() { - let that = this - wx.navigateTo({ - url: `/pages/calendar/index?date=${this.data.date.value}`, - events: { - // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 - handleCalendarDateChange: function (data) { - that.setData({ - date: data - }) - }, - } - }); - }, - showFriendSelect() { - let that = this - wx.navigateTo({ - url: '/pages/friend/select/index', - events: { - // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 - dialogResult: function (data) { - that.setData({ - friendId: data._id, - friendName: data.name, - }) - }, - } - }); - }, - /** - * 生命周期函数--监听页面加载 - */ - onLoad(options) { - const eventChannel = this.getOpenerEventChannel() - eventChannel.on('acceptDataFromOpenerPage', (data) => { - this.setData({ - ...data - }) - wx.setNavigationBarTitle({ - title: '编辑记录' - }) - }) - }, + /** + * 页面的初始数据 + */ + data: { + _id: '', + friendId: '', + friendName: '', + title: '', + date: {}, + money: '', + remarks: '', + columns: ['结婚', '满月', '乔迁', '开业', '生日', '生病', '白事', '自定义'], + pickerCustom: false + }, + showTitlePicker() { + this.setData({ + pickerCustom: false + }) + }, + bindPickerChange: function (e) { + let sel_val = this.data.columns[e.detail.value] + if (sel_val == '自定义') { + this.setData({ + pickerCustom: true + }) + } else { + this.setData({ + title: sel_val + }) + } + }, + async onSave() { + const eventChannel = this.getOpenerEventChannel() + if (this.data._id) { + const res = await giftOutService.updateGiftOut(this.data) + if (res.success) { + wx.showToast({ + title: '修改成功', + }) + eventChannel.emit('refresh'); + setTimeout(() => { + wx.navigateBack() + }, 1000); + } + } else { + const res = await giftOutService.addGiftOut(this.data) + if (res.success) { + wx.showToast({ + title: '添加成功', + }) + eventChannel.emit('refresh'); + setTimeout(() => { + wx.navigateBack() + }, 1000); + } + } + }, + async onDelete() { + let delData = this.data + const eventChannel = this.getOpenerEventChannel() + wx.showModal({ + title: '删除来往记录?', + content: '此操作无法恢复,确定删除?', + async success(res) { + if (res.confirm) { + const result = await giftOutService.deleteGiftOut(delData) + if (result.success) { + wx.showToast({ + title: '删除成功', + }) + eventChannel.emit('refresh'); + setTimeout(() => { + wx.navigateBack() + }, 1000); + } + } + } + }) + }, + showCalendar() { + let that = this + wx.navigateTo({ + url: `/pages/calendar/index?date=${this.data.date.value}`, + events: { + // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 + handleCalendarDateChange: function (data) { + that.setData({ + date: data + }) + }, + } + }); + }, + showFriendSelect() { + let that = this + wx.navigateTo({ + url: '/pages/friend/select/index', + events: { + // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 + dialogResult: function (data) { + that.setData({ + friendId: data._id, + friendName: data.name, + }) + }, + } + }); + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + const eventChannel = this.getOpenerEventChannel() + eventChannel.on('acceptDataFromOpenerPage', (data) => { + this.setData({ + ...data + }) + wx.setNavigationBarTitle({ + title: '编辑记录' + }) + }) + }, - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady() { + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { - }, + }, - /** - * 生命周期函数--监听页面显示 - */ - onShow() { + /** + * 生命周期函数--监听页面显示 + */ + onShow() { - }, + }, - /** - * 生命周期函数--监听页面隐藏 - */ - onHide() { + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { - }, + }, - /** - * 生命周期函数--监听页面卸载 - */ - onUnload() { + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { - }, + }, - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh() { + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { - }, + }, - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom() { + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { - }, + }, - /** - * 用户点击右上角分享 - */ - onShareAppMessage() { + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { - } + } }) \ No newline at end of file diff --git a/miniprogram/pages/giftOut/edit/index.wxml b/miniprogram/pages/giftOut/edit/index.wxml index edd1096b..aed3aaf8 100644 --- a/miniprogram/pages/giftOut/edit/index.wxml +++ b/miniprogram/pages/giftOut/edit/index.wxml @@ -14,9 +14,13 @@ - + - + + + + + diff --git a/miniprogram/pages/index/index.scss b/miniprogram/pages/index/index.scss index d0324774..284c5445 100644 --- a/miniprogram/pages/index/index.scss +++ b/miniprogram/pages/index/index.scss @@ -17,36 +17,8 @@ position: absolute; z-index: 9; height: 100%; - width: 100%; display: flex; flex-direction: column; justify-content: space-around; -} - -.book .content .name { - font-size: large; - color: #F76664; - font-weight: bold; - padding-bottom: 24rpx; - margin: 0 24rpx; -} - -.book .content .count { - font-size: small; - color: #969799; - margin: 0 24rpx; -} - -.book .content .total { - font-size: large; - color: #333; - font-weight: bold; - padding-bottom: 24rpx; - margin: 0 24rpx; -} - -.book .content .date { - font-size: small; - color: #969799; - margin: 0 24rpx; + margin: 0 32rpx; } \ No newline at end of file diff --git a/miniprogram/pages/index/index.wxml b/miniprogram/pages/index/index.wxml index 0caee516..8e563619 100644 --- a/miniprogram/pages/index/index.wxml +++ b/miniprogram/pages/index/index.wxml @@ -9,16 +9,16 @@ - + - {{ item.title||'' }} - 共 {{ item.giftCount||0 }} 笔 + {{ item.title||'' }} + 共 {{ item.giftCount||0 }} 笔 - ¥{{ item.giftTotal||'0.00' }} - {{ item.date.value }} - {{ item.date.lunar_month }}{{ item.date.lunar_day }} + {{ item.giftTotal||'0' }} + {{ item.date.value }} + {{ item.date.lunar_month }}{{ item.date.lunar_day }} @@ -28,10 +28,10 @@ - - - - + + + + 添加礼簿 diff --git a/miniprogram/pages/mine/index.wxml b/miniprogram/pages/mine/index.wxml index de14178b..130e3cdf 100644 --- a/miniprogram/pages/mine/index.wxml +++ b/miniprogram/pages/mine/index.wxml @@ -56,7 +56,23 @@ - + + + + + + + + + + 意见反馈 + + + + + + + diff --git a/miniprogram/pages/sponsor/index.js b/miniprogram/pages/sponsor/index.js deleted file mode 100644 index f1022680..00000000 --- a/miniprogram/pages/sponsor/index.js +++ /dev/null @@ -1,66 +0,0 @@ -// pages/sponsor/index.js -Page({ - - /** - * 页面的初始数据 - */ - data: { - - }, - - /** - * 生命周期函数--监听页面加载 - */ - onLoad(options) { - - }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady() { - - }, - - /** - * 生命周期函数--监听页面显示 - */ - onShow() { - - }, - - /** - * 生命周期函数--监听页面隐藏 - */ - onHide() { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload() { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh() { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom() { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage() { - - } -}) \ No newline at end of file diff --git a/miniprogram/pages/sponsor/index.json b/miniprogram/pages/sponsor/index.json deleted file mode 100644 index a08c29df..00000000 --- a/miniprogram/pages/sponsor/index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "navigationBarTitleText": "赞赏作者", - "usingComponents": {} -} \ No newline at end of file diff --git a/miniprogram/pages/sponsor/index.wxml b/miniprogram/pages/sponsor/index.wxml deleted file mode 100644 index 4a3638b1..00000000 --- a/miniprogram/pages/sponsor/index.wxml +++ /dev/null @@ -1,7 +0,0 @@ - - - - 如果你也喜欢这个项目,可以通过上方的二维码来赞助 礼记 的开发 —— 就好像偶尔给我买杯咖啡 :) - - -
\ No newline at end of file diff --git a/miniprogram/pages/sponsor/index.wxss b/miniprogram/pages/sponsor/index.wxss deleted file mode 100644 index a4b9d25b..00000000 --- a/miniprogram/pages/sponsor/index.wxss +++ /dev/null @@ -1,14 +0,0 @@ -/* pages/sponsor/index.wxss */ -.container { - display: flex; - flex-direction: column; - box-sizing: border-box; - align-items: center; - padding: 32rpx 50rpx; -} - -.container .top_tip { - margin-top: 52rpx; - font-size: 24rpx; - color: #888888; -} diff --git a/miniprogram/static/img/share2.jpg b/miniprogram/static/img/share2.jpg index 67c61d9fd9a1a1f0ed4c9a4a509a5eb69a4bfda6..ee561f51646841bf6866370a07d8e9a7f15c56ba 100644 GIT binary patch literal 18289 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
;I?OFkbdF+aAX1Y1)&(#zg7$uM!g`>8e`1n%1} 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