From dcfdea2f5fb89b9516bba2cf6662f942857615b1 Mon Sep 17 00:00:00 2001 From: lzh Date: Mon, 30 Jan 2023 10:30:09 +0800 Subject: [PATCH] =?UTF-8?q?UniApp=E9=A1=B9=E7=9B=AE=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- supervise-uniapp/App.vue | 29 + supervise-uniapp/common/app.scss | 130 ++ supervise-uniapp/common/config.js | 13 + supervise-uniapp/common/mixin.js | 7 + supervise-uniapp/common/props.js | 2 + supervise-uniapp/common/req.js | 13 + supervise-uniapp/common/request.api.js | 6 + .../components/page-nav/page-nav.vue | 113 ++ .../components/uni-section/uni-section.vue | 140 ++ supervise-uniapp/index.html | 14 + supervise-uniapp/main.js | 31 + supervise-uniapp/manifest.json | 153 ++ supervise-uniapp/pages.json | 30 + supervise-uniapp/pages/index/index.vue | 61 + supervise-uniapp/pages/login/index.vue | 150 ++ .../static/app-plus/mp-html/js/handler.js | 224 +++ .../app-plus/mp-html/js/uni.webview.min.js | 19 + .../static/app-plus/mp-html/local.html | 1 + supervise-uniapp/static/c1.png | Bin 0 -> 401 bytes supervise-uniapp/static/c2.png | Bin 0 -> 470 bytes supervise-uniapp/static/c3.png | Bin 0 -> 511 bytes supervise-uniapp/static/c4.png | Bin 0 -> 476 bytes supervise-uniapp/static/c5.png | Bin 0 -> 472 bytes supervise-uniapp/static/c6.png | Bin 0 -> 545 bytes supervise-uniapp/static/c7.png | Bin 0 -> 365 bytes supervise-uniapp/static/c8.png | Bin 0 -> 587 bytes supervise-uniapp/static/c9.png | Bin 0 -> 565 bytes .../static/common/js/touch-emulator.js | 363 +++++ supervise-uniapp/static/customicons.css | 20 + supervise-uniapp/static/customicons.ttf | Bin 0 -> 2416 bytes supervise-uniapp/static/logo.png | Bin 0 -> 4023 bytes supervise-uniapp/static/uni.png | Bin 0 -> 4162 bytes supervise-uniapp/static/uniui.png | Bin 0 -> 22521 bytes .../static/uview/common/favicon.ico | Bin 0 -> 4286 bytes .../static/uview/common/gray-logo.png | Bin 0 -> 10255 bytes supervise-uniapp/static/uview/common/logo.png | Bin 0 -> 15558 bytes .../static/uview/example/component.png | Bin 0 -> 1026 bytes .../static/uview/example/component_select.png | Bin 0 -> 1005 bytes supervise-uniapp/static/uview/example/js.png | Bin 0 -> 1966 bytes .../static/uview/example/js_bak.png | Bin 0 -> 3212 bytes .../static/uview/example/js_select.png | Bin 0 -> 2097 bytes .../static/uview/example/template.png | Bin 0 -> 1148 bytes .../static/uview/example/template_select.png | Bin 0 -> 1164 bytes supervise-uniapp/store/index.js | 75 + supervise-uniapp/template.h5.html | 42 + supervise-uniapp/uni.scss | 7 + .../uni_modules/uni-badge/changelog.md | 31 + .../components/uni-badge/uni-badge.vue | 268 ++++ .../uni_modules/uni-badge/package.json | 85 ++ .../uni_modules/uni-badge/readme.md | 10 + .../uni_modules/uni-breadcrumb/changelog.md | 6 + .../uni-breadcrumb-item.vue | 121 ++ .../uni-breadcrumb/uni-breadcrumb.vue | 41 + .../uni_modules/uni-breadcrumb/package.json | 88 ++ .../uni_modules/uni-breadcrumb/readme.md | 66 + .../uni_modules/uni-calendar/changelog.md | 20 + .../components/uni-calendar/calendar.js | 546 +++++++ .../components/uni-calendar/i18n/en.json | 12 + .../components/uni-calendar/i18n/index.js | 8 + .../components/uni-calendar/i18n/zh-Hans.json | 12 + .../components/uni-calendar/i18n/zh-Hant.json | 12 + .../uni-calendar/uni-calendar-item.vue | 188 +++ .../components/uni-calendar/uni-calendar.vue | 562 +++++++ .../components/uni-calendar/util.js | 350 +++++ .../uni_modules/uni-calendar/package.json | 85 ++ .../uni_modules/uni-calendar/readme.md | 103 ++ .../uni_modules/uni-card/changelog.md | 26 + .../uni-card/components/uni-card/uni-card.vue | 270 ++++ .../uni_modules/uni-card/package.json | 90 ++ .../uni_modules/uni-card/readme.md | 12 + .../uni_modules/uni-collapse/changelog.md | 36 + .../uni-collapse-item/uni-collapse-item.vue | 402 +++++ .../components/uni-collapse/uni-collapse.vue | 147 ++ .../uni_modules/uni-collapse/package.json | 89 ++ .../uni_modules/uni-collapse/readme.md | 12 + .../uni_modules/uni-combox/changelog.md | 15 + .../components/uni-combox/uni-combox.vue | 275 ++++ .../uni_modules/uni-combox/package.json | 90 ++ .../uni_modules/uni-combox/readme.md | 11 + .../uni_modules/uni-countdown/changelog.md | 24 + .../components/uni-countdown/i18n/en.json | 6 + .../components/uni-countdown/i18n/index.js | 8 + .../uni-countdown/i18n/zh-Hans.json | 6 + .../uni-countdown/i18n/zh-Hant.json | 6 + .../uni-countdown/uni-countdown.vue | 271 ++++ .../uni_modules/uni-countdown/package.json | 86 ++ .../uni_modules/uni-countdown/readme.md | 10 + .../uni-data-checkbox/changelog.md | 45 + .../uni-data-checkbox/uni-data-checkbox.vue | 821 ++++++++++ .../uni-data-checkbox/package.json | 84 ++ .../uni_modules/uni-data-checkbox/readme.md | 18 + .../uni_modules/uni-data-picker/changelog.md | 66 + .../components/uni-data-picker/keypress.js | 45 + .../uni-data-picker/uni-data-picker.vue | 547 +++++++ .../uni-data-pickerview/uni-data-picker.js | 622 ++++++++ .../uni-data-pickerview.vue | 321 ++++ .../uni_modules/uni-data-picker/package.json | 90 ++ .../uni_modules/uni-data-picker/readme.md | 22 + .../uni_modules/uni-data-select/changelog.md | 22 + .../uni-data-select/uni-data-select.vue | 440 ++++++ .../uni_modules/uni-data-select/package.json | 85 ++ .../uni_modules/uni-data-select/readme.md | 8 + .../uni_modules/uni-dateformat/changelog.md | 10 + .../components/uni-dateformat/date-format.js | 200 +++ .../uni-dateformat/uni-dateformat.vue | 88 ++ .../uni_modules/uni-dateformat/package.json | 88 ++ .../uni_modules/uni-dateformat/readme.md | 11 + .../uni-datetime-picker/changelog.md | 103 ++ .../uni-datetime-picker/calendar-item.vue | 187 +++ .../uni-datetime-picker/calendar.vue | 924 ++++++++++++ .../uni-datetime-picker/i18n/en.json | 22 + .../uni-datetime-picker/i18n/index.js | 8 + .../uni-datetime-picker/i18n/zh-Hans.json | 22 + .../uni-datetime-picker/i18n/zh-Hant.json | 22 + .../uni-datetime-picker/keypress.js | 45 + .../uni-datetime-picker/time-picker.vue | 946 ++++++++++++ .../uni-datetime-picker.vue | 1015 +++++++++++++ .../components/uni-datetime-picker/util.js | 410 +++++ .../uni-datetime-picker/package.json | 87 ++ .../uni_modules/uni-datetime-picker/readme.md | 21 + .../uni_modules/uni-drawer/changelog.md | 13 + .../components/uni-drawer/keypress.js | 45 + .../components/uni-drawer/uni-drawer.vue | 183 +++ .../uni_modules/uni-drawer/package.json | 87 ++ .../uni_modules/uni-drawer/readme.md | 10 + .../uni_modules/uni-easyinput/changelog.md | 86 ++ .../components/uni-easyinput/common.js | 56 + .../uni-easyinput/uni-easyinput.vue | 679 +++++++++ .../uni_modules/uni-easyinput/package.json | 87 ++ .../uni_modules/uni-easyinput/readme.md | 11 + .../uni_modules/uni-fab/changelog.md | 21 + .../uni-fab/components/uni-fab/uni-fab.vue | 490 ++++++ .../uni_modules/uni-fab/package.json | 84 ++ .../uni_modules/uni-fab/readme.md | 9 + .../uni_modules/uni-fav/changelog.md | 19 + .../uni-fav/components/uni-fav/i18n/en.json | 4 + .../uni-fav/components/uni-fav/i18n/index.js | 8 + .../components/uni-fav/i18n/zh-Hans.json | 4 + .../components/uni-fav/i18n/zh-Hant.json | 4 + .../uni-fav/components/uni-fav/uni-fav.vue | 161 ++ .../uni_modules/uni-fav/package.json | 89 ++ .../uni_modules/uni-fav/readme.md | 10 + .../uni_modules/uni-file-picker/changelog.md | 63 + .../uni-file-picker/choose-and-upload-file.js | 224 +++ .../uni-file-picker/uni-file-picker.vue | 656 ++++++++ .../uni-file-picker/upload-file.vue | 325 ++++ .../uni-file-picker/upload-image.vue | 292 ++++ .../components/uni-file-picker/utils.js | 109 ++ .../uni_modules/uni-file-picker/package.json | 86 ++ .../uni_modules/uni-file-picker/readme.md | 11 + .../uni_modules/uni-forms/changelog.md | 90 ++ .../uni-forms-item/uni-forms-item.vue | 631 ++++++++ .../components/uni-forms/uni-forms.vue | 397 +++++ .../uni-forms/components/uni-forms/utils.js | 293 ++++ .../components/uni-forms/validate.js | 486 ++++++ .../uni_modules/uni-forms/package.json | 88 ++ .../uni_modules/uni-forms/readme.md | 23 + .../uni_modules/uni-goods-nav/changelog.md | 18 + .../components/uni-goods-nav/i18n/en.json | 6 + .../components/uni-goods-nav/i18n/index.js | 8 + .../uni-goods-nav/i18n/zh-Hans.json | 6 + .../uni-goods-nav/i18n/zh-Hant.json | 6 + .../uni-goods-nav/uni-goods-nav.vue | 229 +++ .../uni_modules/uni-goods-nav/package.json | 88 ++ .../uni_modules/uni-goods-nav/readme.md | 10 + .../uni_modules/uni-grid/changelog.md | 13 + .../uni-grid-item/uni-grid-item.vue | 127 ++ .../uni-grid/components/uni-grid/uni-grid.vue | 142 ++ .../uni_modules/uni-grid/package.json | 86 ++ .../uni_modules/uni-grid/readme.md | 11 + .../uni_modules/uni-group/changelog.md | 16 + .../components/uni-group/uni-group.vue | 134 ++ .../uni_modules/uni-group/package.json | 87 ++ .../uni_modules/uni-group/readme.md | 9 + .../uni_modules/uni-icons/changelog.md | 22 + .../uni-icons/components/uni-icons/icons.js | 1169 ++++++++++++++ .../components/uni-icons/uni-icons.vue | 96 ++ .../components/uni-icons/uniicons.css | 663 ++++++++ .../components/uni-icons/uniicons.ttf | Bin 0 -> 35760 bytes .../uni_modules/uni-icons/package.json | 86 ++ .../uni_modules/uni-icons/readme.md | 8 + .../uni_modules/uni-indexed-list/changelog.md | 17 + .../uni-indexed-list-item.vue | 144 ++ .../uni-indexed-list/uni-indexed-list.vue | 367 +++++ .../uni_modules/uni-indexed-list/package.json | 89 ++ .../uni_modules/uni-indexed-list/readme.md | 11 + .../uni_modules/uni-link/changelog.md | 17 + .../uni-link/components/uni-link/uni-link.vue | 128 ++ .../uni_modules/uni-link/package.json | 87 ++ .../uni_modules/uni-link/readme.md | 11 + .../uni_modules/uni-list/changelog.md | 20 + .../components/uni-list-ad/uni-list-ad.vue | 107 ++ .../uni-list-chat/uni-list-chat.scss | 58 + .../uni-list-chat/uni-list-chat.vue | 538 +++++++ .../uni-list-item/uni-list-item.vue | 454 ++++++ .../uni-list/components/uni-list/uni-list.vue | 108 ++ .../components/uni-list/uni-refresh.vue | 65 + .../components/uni-list/uni-refresh.wxs | 87 ++ .../uni_modules/uni-list/package.json | 91 ++ .../uni_modules/uni-list/readme.md | 346 +++++ .../uni_modules/uni-load-more/changelog.md | 19 + .../components/uni-load-more/i18n/en.json | 5 + .../components/uni-load-more/i18n/index.js | 8 + .../uni-load-more/i18n/zh-Hans.json | 5 + .../uni-load-more/i18n/zh-Hant.json | 5 + .../uni-load-more/uni-load-more.vue | 399 +++++ .../uni_modules/uni-load-more/package.json | 86 ++ .../uni_modules/uni-load-more/readme.md | 14 + .../uni_modules/uni-nav-bar/changelog.md | 47 + .../components/uni-nav-bar/uni-nav-bar.vue | 357 +++++ .../components/uni-nav-bar/uni-status-bar.vue | 27 + .../uni_modules/uni-nav-bar/package.json | 86 ++ .../uni_modules/uni-nav-bar/readme.md | 15 + .../uni_modules/uni-notice-bar/changelog.md | 18 + .../uni-notice-bar/uni-notice-bar.vue | 426 ++++++ .../uni_modules/uni-notice-bar/package.json | 87 ++ .../uni_modules/uni-notice-bar/readme.md | 13 + .../uni_modules/uni-number-box/changelog.md | 25 + .../uni-number-box/uni-number-box.vue | 221 +++ .../uni_modules/uni-number-box/package.json | 85 ++ .../uni_modules/uni-number-box/readme.md | 13 + .../uni_modules/uni-pagination/changelog.md | 27 + .../components/uni-pagination/i18n/en.json | 5 + .../components/uni-pagination/i18n/es.json | 5 + .../components/uni-pagination/i18n/fr.json | 5 + .../components/uni-pagination/i18n/index.js | 12 + .../uni-pagination/i18n/zh-Hans.json | 5 + .../uni-pagination/i18n/zh-Hant.json | 5 + .../uni-pagination/uni-pagination.vue | 465 ++++++ .../uni_modules/uni-pagination/package.json | 83 + .../uni_modules/uni-pagination/readme.md | 11 + .../uni_modules/uni-popup/changelog.md | 60 + .../components/uni-popup-dialog/keypress.js | 45 + .../uni-popup-dialog/uni-popup-dialog.vue | 271 ++++ .../uni-popup-message/uni-popup-message.vue | 143 ++ .../uni-popup-share/uni-popup-share.vue | 187 +++ .../components/uni-popup/i18n/en.json | 7 + .../components/uni-popup/i18n/index.js | 8 + .../components/uni-popup/i18n/zh-Hans.json | 7 + .../components/uni-popup/i18n/zh-Hant.json | 7 + .../components/uni-popup/keypress.js | 45 + .../uni-popup/components/uni-popup/popup.js | 26 + .../components/uni-popup/uni-popup.vue | 479 ++++++ .../uni_modules/uni-popup/package.json | 90 ++ .../uni_modules/uni-popup/readme.md | 17 + .../uni_modules/uni-rate/changelog.md | 25 + .../uni-rate/components/uni-rate/uni-rate.vue | 361 +++++ .../uni_modules/uni-rate/package.json | 88 ++ .../uni_modules/uni-rate/readme.md | 12 + .../uni_modules/uni-row/changelog.md | 10 + .../uni-row/components/uni-col/uni-col.vue | 317 ++++ .../uni-row/components/uni-row/uni-row.vue | 190 +++ .../uni_modules/uni-row/package.json | 87 ++ .../uni_modules/uni-row/readme.md | 10 + .../uni_modules/uni-scss/changelog.md | 8 + .../uni_modules/uni-scss/index.scss | 1 + .../uni_modules/uni-scss/package.json | 82 + .../uni_modules/uni-scss/readme.md | 4 + .../uni_modules/uni-scss/styles/index.scss | 7 + .../uni-scss/styles/setting/_border.scss | 3 + .../uni-scss/styles/setting/_color.scss | 66 + .../uni-scss/styles/setting/_radius.scss | 55 + .../uni-scss/styles/setting/_space.scss | 56 + .../uni-scss/styles/setting/_styles.scss | 167 ++ .../uni-scss/styles/setting/_text.scss | 24 + .../uni-scss/styles/setting/_variables.scss | 146 ++ .../uni-scss/styles/tools/functions.scss | 19 + .../uni_modules/uni-scss/theme.scss | 31 + .../uni_modules/uni-scss/variables.scss | 62 + .../uni_modules/uni-search-bar/changelog.md | 33 + .../components/uni-search-bar/i18n/en.json | 4 + .../components/uni-search-bar/i18n/index.js | 8 + .../uni-search-bar/i18n/zh-Hans.json | 4 + .../uni-search-bar/i18n/zh-Hant.json | 4 + .../uni-search-bar/uni-search-bar.vue | 298 ++++ .../uni_modules/uni-search-bar/package.json | 89 ++ .../uni_modules/uni-search-bar/readme.md | 14 + .../uni_modules/uni-section/changelog.md | 2 + .../components/uni-section/uni-section.vue | 167 ++ .../uni_modules/uni-section/package.json | 87 ++ .../uni_modules/uni-section/readme.md | 8 + .../uni-segmented-control/changelog.md | 9 + .../uni-segmented-control.vue | 145 ++ .../uni-segmented-control/package.json | 87 ++ .../uni-segmented-control/readme.md | 13 + .../uni_modules/uni-steps/changelog.md | 16 + .../components/uni-steps/uni-steps.vue | 269 ++++ .../uni_modules/uni-steps/package.json | 89 ++ .../uni_modules/uni-steps/readme.md | 13 + .../uni_modules/uni-swipe-action/changelog.md | 41 + .../uni-swipe-action-item/bindingx.js | 302 ++++ .../components/uni-swipe-action-item/isPC.js | 12 + .../uni-swipe-action-item/mpalipay.js | 193 +++ .../uni-swipe-action-item/mpother.js | 259 ++++ .../components/uni-swipe-action-item/mpwxs.js | 83 + .../uni-swipe-action-item/render.js | 270 ++++ .../uni-swipe-action-item.vue | 347 +++++ .../components/uni-swipe-action-item/wx.wxs | 341 +++++ .../uni-swipe-action/uni-swipe-action.vue | 60 + .../uni_modules/uni-swipe-action/package.json | 87 ++ .../uni_modules/uni-swipe-action/readme.md | 11 + .../uni_modules/uni-swiper-dot/changelog.md | 12 + .../uni-swiper-dot/uni-swiper-dot.vue | 218 +++ .../uni_modules/uni-swiper-dot/package.json | 87 ++ .../uni_modules/uni-swiper-dot/readme.md | 11 + .../uni_modules/uni-table/changelog.md | 23 + .../components/uni-table/uni-table.vue | 455 ++++++ .../components/uni-tbody/uni-tbody.vue | 29 + .../uni-table/components/uni-td/uni-td.vue | 90 ++ .../components/uni-th/filter-dropdown.vue | 503 ++++++ .../uni-table/components/uni-th/uni-th.vue | 278 ++++ .../components/uni-thead/uni-thead.vue | 129 ++ .../components/uni-tr/table-checkbox.vue | 179 +++ .../uni-table/components/uni-tr/uni-tr.vue | 171 +++ .../uni_modules/uni-table/i18n/en.json | 9 + .../uni_modules/uni-table/i18n/es.json | 9 + .../uni_modules/uni-table/i18n/fr.json | 9 + .../uni_modules/uni-table/i18n/index.js | 12 + .../uni_modules/uni-table/i18n/zh-Hans.json | 9 + .../uni_modules/uni-table/i18n/zh-Hant.json | 9 + .../uni_modules/uni-table/package.json | 86 ++ .../uni_modules/uni-table/readme.md | 13 + .../uni_modules/uni-tag/changelog.md | 21 + .../uni-tag/components/uni-tag/uni-tag.vue | 252 ++++ .../uni_modules/uni-tag/package.json | 87 ++ .../uni_modules/uni-tag/readme.md | 13 + .../uni_modules/uni-test/changelog.md | 39 + .../uni-test/components/uni-test/uni-test.vue | 26 + .../uni_modules/uni-test/package.json | 83 + .../uni_modules/uni-test/readme.md | 10 + .../uni_modules/uni-title/changelog.md | 10 + .../components/uni-title/uni-title.vue | 171 +++ .../uni_modules/uni-title/package.json | 88 ++ .../uni_modules/uni-title/readme.md | 14 + .../uni_modules/uni-tooltip/changelog.md | 10 + .../components/uni-tooltip/uni-tooltip.vue | 68 + .../uni_modules/uni-tooltip/package.json | 88 ++ .../uni_modules/uni-tooltip/readme.md | 8 + .../uni_modules/uni-transition/changelog.md | 20 + .../uni-transition/createAnimation.js | 128 ++ .../uni-transition/uni-transition.vue | 281 ++++ .../uni_modules/uni-transition/package.json | 87 ++ .../uni_modules/uni-transition/readme.md | 11 + .../uni_modules/uni-ui/changelog.md | 473 ++++++ .../uni-ui/components/uni-ui/uni-ui.vue | 7 + .../uni_modules/uni-ui/package.json | 129 ++ supervise-uniapp/uni_modules/uni-ui/readme.md | 247 +++ supervise-uniapp/uni_modules/uview-ui/LICENSE | 21 + .../uni_modules/uview-ui/README.md | 66 + .../uni_modules/uview-ui/changelog.md | 357 +++++ .../uview-ui/components/u--form/u--form.vue | 78 + .../uview-ui/components/u--image/u--image.vue | 47 + .../uview-ui/components/u--input/u--input.vue | 73 + .../uview-ui/components/u--text/u--text.vue | 44 + .../components/u--textarea/u--textarea.vue | 48 + .../components/u-action-sheet/props.js | 54 + .../u-action-sheet/u-action-sheet.vue | 278 ++++ .../uview-ui/components/u-album/props.js | 59 + .../uview-ui/components/u-album/u-album.vue | 259 ++++ .../uview-ui/components/u-alert/props.js | 44 + .../uview-ui/components/u-alert/u-alert.vue | 243 +++ .../components/u-avatar-group/props.js | 52 + .../u-avatar-group/u-avatar-group.vue | 103 ++ .../uview-ui/components/u-avatar/props.js | 78 + .../uview-ui/components/u-avatar/u-avatar.vue | 172 +++ .../uview-ui/components/u-back-top/props.js | 54 + .../components/u-back-top/u-back-top.vue | 129 ++ .../uview-ui/components/u-badge/props.js | 72 + .../uview-ui/components/u-badge/u-badge.vue | 171 +++ .../uview-ui/components/u-button/nvue.scss | 46 + .../uview-ui/components/u-button/props.js | 161 ++ .../uview-ui/components/u-button/u-button.vue | 490 ++++++ .../uview-ui/components/u-button/vue.scss | 80 + .../uview-ui/components/u-calendar/header.vue | 99 ++ .../uview-ui/components/u-calendar/month.vue | 579 +++++++ .../uview-ui/components/u-calendar/props.js | 144 ++ .../components/u-calendar/u-calendar.vue | 384 +++++ .../uview-ui/components/u-calendar/util.js | 85 ++ .../components/u-car-keyboard/props.js | 14 + .../u-car-keyboard/u-car-keyboard.vue | 311 ++++ .../uview-ui/components/u-cell-group/props.js | 14 + .../components/u-cell-group/u-cell-group.vue | 61 + .../uview-ui/components/u-cell/props.js | 110 ++ .../uview-ui/components/u-cell/u-cell.vue | 229 +++ .../components/u-checkbox-group/props.js | 82 + .../u-checkbox-group/u-checkbox-group.vue | 103 ++ .../uview-ui/components/u-checkbox/props.js | 69 + .../components/u-checkbox/u-checkbox.vue | 344 +++++ .../components/u-circle-progress/props.js | 8 + .../u-circle-progress/u-circle-progress.vue | 198 +++ .../uview-ui/components/u-code-input/props.js | 79 + .../components/u-code-input/u-code-input.vue | 252 ++++ .../uview-ui/components/u-code/props.js | 34 + .../uview-ui/components/u-code/u-code.vue | 129 ++ .../uview-ui/components/u-col/props.js | 29 + .../uview-ui/components/u-col/u-col.vue | 162 ++ .../components/u-collapse-item/props.js | 59 + .../u-collapse-item/u-collapse-item.vue | 225 +++ .../uview-ui/components/u-collapse/props.js | 19 + .../components/u-collapse/u-collapse.vue | 90 ++ .../components/u-column-notice/props.js | 55 + .../u-column-notice/u-column-notice.vue | 160 ++ .../uview-ui/components/u-count-down/props.js | 24 + .../components/u-count-down/u-count-down.vue | 163 ++ .../uview-ui/components/u-count-down/utils.js | 62 + .../uview-ui/components/u-count-to/props.js | 59 + .../components/u-count-to/u-count-to.vue | 184 +++ .../components/u-datetime-picker/props.js | 116 ++ .../u-datetime-picker/u-datetime-picker.vue | 360 +++++ .../uview-ui/components/u-divider/props.js | 44 + .../components/u-divider/u-divider.vue | 116 ++ .../components/u-dropdown-item/props.js | 36 + .../u-dropdown-item/u-dropdown-item.vue | 127 ++ .../uview-ui/components/u-dropdown/props.js | 65 + .../components/u-dropdown/u-dropdown.vue | 127 ++ .../uview-ui/components/u-empty/props.js | 59 + .../uview-ui/components/u-empty/u-empty.vue | 128 ++ .../uview-ui/components/u-form-item/props.js | 48 + .../components/u-form-item/u-form-item.vue | 235 +++ .../uview-ui/components/u-form/props.js | 45 + .../uview-ui/components/u-form/u-form.vue | 214 +++ .../uview-ui/components/u-gap/props.js | 24 + .../uview-ui/components/u-gap/u-gap.vue | 38 + .../uview-ui/components/u-grid-item/props.js | 14 + .../components/u-grid-item/u-grid-item.vue | 209 +++ .../uview-ui/components/u-grid/props.js | 19 + .../uview-ui/components/u-grid/u-grid.vue | 97 ++ .../uview-ui/components/u-icon/icons.js | 214 +++ .../uview-ui/components/u-icon/props.js | 89 ++ .../uview-ui/components/u-icon/u-icon.vue | 234 +++ .../uview-ui/components/u-image/props.js | 84 ++ .../uview-ui/components/u-image/u-image.vue | 232 +++ .../components/u-index-anchor/props.js | 29 + .../u-index-anchor/u-index-anchor.vue | 91 ++ .../uview-ui/components/u-index-item/props.js | 5 + .../components/u-index-item/u-index-item.vue | 87 ++ .../uview-ui/components/u-index-list/props.js | 29 + .../components/u-index-list/u-index-list.vue | 440 ++++++ .../uview-ui/components/u-input/props.js | 187 +++ .../uview-ui/components/u-input/u-input.vue | 354 +++++ .../uview-ui/components/u-keyboard/props.js | 84 ++ .../components/u-keyboard/u-keyboard.vue | 164 ++ .../components/u-line-progress/props.js | 28 + .../u-line-progress/u-line-progress.vue | 144 ++ .../uview-ui/components/u-line/props.js | 33 + .../uview-ui/components/u-line/u-line.vue | 62 + .../uview-ui/components/u-link/props.js | 39 + .../uview-ui/components/u-link/u-link.vue | 83 + .../uview-ui/components/u-list-item/props.js | 9 + .../components/u-list-item/u-list-item.vue | 116 ++ .../uview-ui/components/u-list/props.js | 76 + .../uview-ui/components/u-list/u-list.vue | 157 ++ .../components/u-loading-icon/props.js | 59 + .../u-loading-icon/u-loading-icon.vue | 343 +++++ .../components/u-loading-page/props.js | 49 + .../u-loading-page/u-loading-page.vue | 115 ++ .../uview-ui/components/u-loadmore/props.js | 94 ++ .../components/u-loadmore/u-loadmore.vue | 150 ++ .../uview-ui/components/u-modal/props.js | 84 ++ .../uview-ui/components/u-modal/u-modal.vue | 227 +++ .../uview-ui/components/u-navbar/props.js | 84 ++ .../uview-ui/components/u-navbar/u-navbar.vue | 186 +++ .../uview-ui/components/u-no-network/props.js | 19 + .../components/u-no-network/u-no-network.vue | 220 +++ .../uview-ui/components/u-notice-bar/props.js | 70 + .../components/u-notice-bar/u-notice-bar.vue | 101 ++ .../uview-ui/components/u-notify/props.js | 49 + .../uview-ui/components/u-notify/u-notify.vue | 211 +++ .../uview-ui/components/u-number-box/props.js | 109 ++ .../components/u-number-box/u-number-box.vue | 416 +++++ .../components/u-number-keyboard/props.js | 19 + .../u-number-keyboard/u-number-keyboard.vue | 196 +++ .../uview-ui/components/u-overlay/props.js | 24 + .../components/u-overlay/u-overlay.vue | 68 + .../uview-ui/components/u-parse/node/node.vue | 499 ++++++ .../uview-ui/components/u-parse/parser.js | 1075 +++++++++++++ .../uview-ui/components/u-parse/props.js | 45 + .../uview-ui/components/u-parse/u-parse.vue | 366 +++++ .../components/u-picker-column/props.js | 5 + .../u-picker-column/u-picker-column.vue | 27 + .../uview-ui/components/u-picker/props.js | 79 + .../uview-ui/components/u-picker/u-picker.vue | 283 ++++ .../uview-ui/components/u-popup/props.js | 79 + .../uview-ui/components/u-popup/u-popup.vue | 304 ++++ .../components/u-radio-group/props.js | 85 ++ .../u-radio-group/u-radio-group.vue | 108 ++ .../uview-ui/components/u-radio/props.js | 64 + .../uview-ui/components/u-radio/u-radio.vue | 339 +++++ .../uview-ui/components/u-rate/props.js | 69 + .../uview-ui/components/u-rate/u-rate.vue | 306 ++++ .../uview-ui/components/u-read-more/props.js | 61 + .../components/u-read-more/u-read-more.vue | 157 ++ .../uview-ui/components/u-row-notice/props.js | 39 + .../components/u-row-notice/u-row-notice.vue | 330 ++++ .../uview-ui/components/u-row/props.js | 19 + .../uview-ui/components/u-row/u-row.vue | 93 ++ .../components/u-safe-bottom/props.js | 5 + .../u-safe-bottom/u-safe-bottom.vue | 56 + .../uview-ui/components/u-scroll-list/nvue.js | 28 + .../components/u-scroll-list/other.js | 0 .../components/u-scroll-list/props.js | 34 + .../components/u-scroll-list/scrollWxs.wxs | 50 + .../u-scroll-list/u-scroll-list.vue | 224 +++ .../uview-ui/components/u-search/props.js | 118 ++ .../uview-ui/components/u-search/u-search.vue | 303 ++++ .../uview-ui/components/u-skeleton/props.js | 59 + .../components/u-skeleton/u-skeleton.vue | 244 +++ .../uview-ui/components/u-slider/mpother.js | 113 ++ .../uview-ui/components/u-slider/mpwxs.js | 42 + .../uview-ui/components/u-slider/mpwxs.wxs | 121 ++ .../components/u-slider/nvue - 副本.js | 180 +++ .../components/u-slider/nvue - 鍓湰.js | 180 +++ .../uview-ui/components/u-slider/nvue.js | 193 +++ .../uview-ui/components/u-slider/props.js | 54 + .../uview-ui/components/u-slider/u-slider.vue | 55 + .../uview-ui/components/u-status-bar/props.js | 8 + .../components/u-status-bar/u-status-bar.vue | 46 + .../uview-ui/components/u-steps-item/props.js | 24 + .../components/u-steps-item/u-steps-item.vue | 316 ++++ .../uview-ui/components/u-steps/props.js | 39 + .../uview-ui/components/u-steps/u-steps.vue | 80 + .../uview-ui/components/u-sticky/props.js | 40 + .../uview-ui/components/u-sticky/u-sticky.vue | 212 +++ .../uview-ui/components/u-subsection/props.js | 49 + .../components/u-subsection/u-subsection.vue | 299 ++++ .../u-swipe-action-item/index - backup.wxs | 256 ++++ .../components/u-swipe-action-item/index.wxs | 225 +++ .../u-swipe-action-item/nvue - backup.js | 270 ++++ .../components/u-swipe-action-item/nvue.js | 174 +++ .../components/u-swipe-action-item/props.js | 41 + .../u-swipe-action-item.vue | 190 +++ .../components/u-swipe-action-item/wxs.js | 15 + .../components/u-swipe-action/props.js | 9 + .../u-swipe-action/u-swipe-action.vue | 67 + .../components/u-swiper-indicator/props.js | 29 + .../u-swiper-indicator/u-swiper-indicator.vue | 110 ++ .../uview-ui/components/u-swiper/props.js | 125 ++ .../uview-ui/components/u-swiper/u-swiper.vue | 255 ++++ .../uview-ui/components/u-switch/props.js | 54 + .../uview-ui/components/u-switch/u-switch.vue | 177 +++ .../components/u-tabbar-item/props.js | 35 + .../u-tabbar-item/u-tabbar-item.vue | 142 ++ .../uview-ui/components/u-tabbar/props.js | 44 + .../uview-ui/components/u-tabbar/u-tabbar.vue | 141 ++ .../uview-ui/components/u-table/props.js | 5 + .../uview-ui/components/u-table/u-table.vue | 29 + .../uview-ui/components/u-tabs-item/props.js | 5 + .../components/u-tabs-item/u-tabs-item.vue | 29 + .../uview-ui/components/u-tabs/props.js | 64 + .../uview-ui/components/u-tabs/u-tabs.vue | 354 +++++ .../uview-ui/components/u-tag/props.js | 84 ++ .../uview-ui/components/u-tag/u-tag.vue | 358 +++++ .../uview-ui/components/u-td/props.js | 5 + .../uview-ui/components/u-td/u-td.vue | 31 + .../uview-ui/components/u-text/props.js | 110 ++ .../uview-ui/components/u-text/u-text.vue | 223 +++ .../uview-ui/components/u-text/value.js | 85 ++ .../uview-ui/components/u-textarea/props.js | 119 ++ .../components/u-textarea/u-textarea.vue | 239 +++ .../uview-ui/components/u-toast/u-toast.vue | 291 ++++ .../uview-ui/components/u-toolbar/props.js | 34 + .../components/u-toolbar/u-toolbar.vue | 102 ++ .../components/u-tooltip/clipboard.min.js | 58 + .../uview-ui/components/u-tooltip/props.js | 59 + .../components/u-tooltip/u-tooltip.vue | 365 +++++ .../uview-ui/components/u-tr/props.js | 5 + .../uview-ui/components/u-tr/u-tr.vue | 31 + .../components/u-transition/nvue.ani-map.js | 68 + .../uview-ui/components/u-transition/props.js | 24 + .../components/u-transition/transition.js | 157 ++ .../components/u-transition/u-transition.vue | 92 ++ .../u-transition/vue.ani-style.scss | 113 ++ .../uview-ui/components/u-upload/mixin.js | 21 + .../uview-ui/components/u-upload/props.js | 124 ++ .../uview-ui/components/u-upload/u-upload.vue | 558 +++++++ .../uview-ui/components/u-upload/utils.js | 151 ++ .../uview-ui/components/uview-ui/uview-ui.vue | 15 + .../uni_modules/uview-ui/index.js | 79 + .../uni_modules/uview-ui/index.scss | 23 + .../uni_modules/uview-ui/libs/config/color.js | 17 + .../uview-ui/libs/config/config.js | 34 + .../uni_modules/uview-ui/libs/config/props.js | 190 +++ .../uview-ui/libs/config/props/actionSheet.js | 25 + .../uview-ui/libs/config/props/album.js | 25 + .../uview-ui/libs/config/props/alert.js | 22 + .../uview-ui/libs/config/props/avatar.js | 28 + .../uview-ui/libs/config/props/avatarGroup.js | 23 + .../uview-ui/libs/config/props/backtop.js | 27 + .../uview-ui/libs/config/props/badge.js | 27 + .../uview-ui/libs/config/props/button.js | 42 + .../uview-ui/libs/config/props/calendar.js | 42 + .../uview-ui/libs/config/props/carKeyboard.js | 15 + .../uview-ui/libs/config/props/cell.js | 35 + .../uview-ui/libs/config/props/cellGroup.js | 17 + .../uview-ui/libs/config/props/checkbox.js | 27 + .../libs/config/props/checkboxGroup.js | 29 + .../libs/config/props/circleProgress.js | 15 + .../uview-ui/libs/config/props/code.js | 21 + .../uview-ui/libs/config/props/codeInput.js | 29 + .../uview-ui/libs/config/props/col.js | 19 + .../uview-ui/libs/config/props/collapse.js | 17 + .../libs/config/props/collapseItem.js | 25 + .../libs/config/props/columnNotice.js | 24 + .../uview-ui/libs/config/props/countDown.js | 18 + .../uview-ui/libs/config/props/countTo.js | 25 + .../libs/config/props/datetimePicker.js | 36 + .../uview-ui/libs/config/props/divider.js | 23 + .../uview-ui/libs/config/props/empty.js | 26 + .../uview-ui/libs/config/props/form.js | 22 + .../uview-ui/libs/config/props/formItem.js | 23 + .../uview-ui/libs/config/props/gap.js | 19 + .../uview-ui/libs/config/props/grid.js | 17 + .../uview-ui/libs/config/props/gridItem.js | 16 + .../uview-ui/libs/config/props/icon.js | 36 + .../uview-ui/libs/config/props/image.js | 30 + .../uview-ui/libs/config/props/indexAnchor.js | 19 + .../uview-ui/libs/config/props/indexList.js | 19 + .../uview-ui/libs/config/props/input.js | 48 + .../uview-ui/libs/config/props/keyboard.js | 30 + .../uview-ui/libs/config/props/line.js | 20 + .../libs/config/props/lineProgress.js | 19 + .../uview-ui/libs/config/props/link.js | 26 + .../uview-ui/libs/config/props/list.js | 28 + .../uview-ui/libs/config/props/listItem.js | 15 + .../uview-ui/libs/config/props/loadingIcon.js | 30 + .../uview-ui/libs/config/props/loadingPage.js | 23 + .../uview-ui/libs/config/props/loadmore.js | 32 + .../uview-ui/libs/config/props/modal.js | 30 + .../uview-ui/libs/config/props/navbar.js | 32 + .../uview-ui/libs/config/props/noNetwork.js | 18 + .../uview-ui/libs/config/props/noticeBar.js | 27 + .../uview-ui/libs/config/props/notify.js | 22 + .../uview-ui/libs/config/props/numberBox.js | 35 + .../libs/config/props/numberKeyboard.js | 17 + .../uview-ui/libs/config/props/overlay.js | 18 + .../uview-ui/libs/config/props/parse.js | 22 + .../uview-ui/libs/config/props/picker.js | 29 + .../uview-ui/libs/config/props/popup.js | 29 + .../uview-ui/libs/config/props/radio.js | 27 + .../uview-ui/libs/config/props/radioGroup.js | 30 + .../uview-ui/libs/config/props/rate.js | 26 + .../uview-ui/libs/config/props/readMore.js | 22 + .../uview-ui/libs/config/props/row.js | 17 + .../uview-ui/libs/config/props/rowNotice.js | 21 + .../uview-ui/libs/config/props/scrollList.js | 20 + .../uview-ui/libs/config/props/search.js | 37 + .../uview-ui/libs/config/props/section.js | 24 + .../uview-ui/libs/config/props/skeleton.js | 25 + .../uview-ui/libs/config/props/slider.js | 25 + .../uview-ui/libs/config/props/statusBar.js | 15 + .../uview-ui/libs/config/props/steps.js | 21 + .../uview-ui/libs/config/props/stepsItem.js | 18 + .../uview-ui/libs/config/props/sticky.js | 20 + .../uview-ui/libs/config/props/subsection.js | 23 + .../uview-ui/libs/config/props/swipeAction.js | 15 + .../libs/config/props/swipeActionItem.js | 21 + .../uview-ui/libs/config/props/swiper.js | 39 + .../libs/config/props/swipterIndicator.js | 19 + .../uview-ui/libs/config/props/switch.js | 24 + .../uview-ui/libs/config/props/tabbar.js | 22 + .../uview-ui/libs/config/props/tabbarItem.js | 20 + .../uview-ui/libs/config/props/tabs.js | 32 + .../uview-ui/libs/config/props/tag.js | 29 + .../uview-ui/libs/config/props/text.js | 38 + .../uview-ui/libs/config/props/textarea.js | 36 + .../uview-ui/libs/config/props/toast.js | 30 + .../uview-ui/libs/config/props/toolbar.js | 21 + .../uview-ui/libs/config/props/tooltip.js | 25 + .../uview-ui/libs/config/props/transition.js | 18 + .../uview-ui/libs/config/props/upload.js | 36 + .../uview-ui/libs/config/zIndex.js | 20 + .../uni_modules/uview-ui/libs/css/color.scss | 155 ++ .../uni_modules/uview-ui/libs/css/common.scss | 97 ++ .../uview-ui/libs/css/components.scss | 15 + .../uni_modules/uview-ui/libs/css/flex.scss | 257 ++++ .../uni_modules/uview-ui/libs/css/h5.scss | 0 .../uni_modules/uview-ui/libs/css/mixin.scss | 8 + .../uni_modules/uview-ui/libs/css/mp.scss | 0 .../uni_modules/uview-ui/libs/css/nvue.scss | 0 .../uni_modules/uview-ui/libs/css/vue.scss | 27 + .../uview-ui/libs/function/colorGradient.js | 134 ++ .../uview-ui/libs/function/debounce.js | 29 + .../uview-ui/libs/function/digit.js | 167 ++ .../uview-ui/libs/function/index.js | 705 +++++++++ .../uview-ui/libs/function/platform.js | 75 + .../uview-ui/libs/function/test.js | 288 ++++ .../uview-ui/libs/function/throttle.js | 30 + .../libs/luch-request/adapters/index.js | 97 ++ .../luch-request/core/InterceptorManager.js | 50 + .../libs/luch-request/core/Request.js | 198 +++ .../libs/luch-request/core/buildFullPath.js | 20 + .../libs/luch-request/core/defaults.js | 29 + .../libs/luch-request/core/dispatchRequest.js | 3 + .../libs/luch-request/core/mergeConfig.js | 103 ++ .../uview-ui/libs/luch-request/core/settle.js | 16 + .../libs/luch-request/helpers/buildURL.js | 69 + .../libs/luch-request/helpers/combineURLs.js | 14 + .../luch-request/helpers/isAbsoluteURL.js | 14 + .../uview-ui/libs/luch-request/index.d.ts | 116 ++ .../uview-ui/libs/luch-request/index.js | 3 + .../uview-ui/libs/luch-request/utils.js | 131 ++ .../uview-ui/libs/luch-request/utils/clone.js | 264 ++++ .../uni_modules/uview-ui/libs/mixin/button.js | 13 + .../uni_modules/uview-ui/libs/mixin/mixin.js | 160 ++ .../uview-ui/libs/mixin/mpMixin.js | 8 + .../uview-ui/libs/mixin/mpShare.js | 13 + .../uview-ui/libs/mixin/openType.js | 25 + .../uni_modules/uview-ui/libs/mixin/style.js | 228 +++ .../uni_modules/uview-ui/libs/mixin/touch.js | 59 + .../uview-ui/libs/util/async-validator.js | 1343 +++++++++++++++++ .../uview-ui/libs/util/calendar.js | 546 +++++++ .../uni_modules/uview-ui/libs/util/dayjs.js | 308 ++++ .../uni_modules/uview-ui/libs/util/emitter.js | 51 + .../uni_modules/uview-ui/libs/util/route.js | 124 ++ .../uni_modules/uview-ui/package.json | 84 ++ .../uni_modules/uview-ui/theme.scss | 44 + supervise-uniapp/utils/auth.token.js | 13 + supervise-uniapp/utils/request/index.js | 13 + .../utils/request/requestInterceptors.js | 35 + .../utils/request/responseInterceptors.js | 130 ++ supervise-uniapp/utils/requester.js | 196 +++ 721 files changed, 78229 insertions(+) create mode 100644 supervise-uniapp/App.vue create mode 100644 supervise-uniapp/common/app.scss create mode 100644 supervise-uniapp/common/config.js create mode 100644 supervise-uniapp/common/mixin.js create mode 100644 supervise-uniapp/common/props.js create mode 100644 supervise-uniapp/common/req.js create mode 100644 supervise-uniapp/common/request.api.js create mode 100644 supervise-uniapp/components/page-nav/page-nav.vue create mode 100644 supervise-uniapp/components/uni-section/uni-section.vue create mode 100644 supervise-uniapp/index.html create mode 100644 supervise-uniapp/main.js create mode 100644 supervise-uniapp/manifest.json create mode 100644 supervise-uniapp/pages.json create mode 100644 supervise-uniapp/pages/index/index.vue create mode 100644 supervise-uniapp/pages/login/index.vue create mode 100644 supervise-uniapp/static/app-plus/mp-html/js/handler.js create mode 100644 supervise-uniapp/static/app-plus/mp-html/js/uni.webview.min.js create mode 100644 supervise-uniapp/static/app-plus/mp-html/local.html create mode 100644 supervise-uniapp/static/c1.png create mode 100644 supervise-uniapp/static/c2.png create mode 100644 supervise-uniapp/static/c3.png create mode 100644 supervise-uniapp/static/c4.png create mode 100644 supervise-uniapp/static/c5.png create mode 100644 supervise-uniapp/static/c6.png create mode 100644 supervise-uniapp/static/c7.png create mode 100644 supervise-uniapp/static/c8.png create mode 100644 supervise-uniapp/static/c9.png create mode 100644 supervise-uniapp/static/common/js/touch-emulator.js create mode 100644 supervise-uniapp/static/customicons.css create mode 100644 supervise-uniapp/static/customicons.ttf create mode 100644 supervise-uniapp/static/logo.png create mode 100644 supervise-uniapp/static/uni.png create mode 100644 supervise-uniapp/static/uniui.png create mode 100644 supervise-uniapp/static/uview/common/favicon.ico create mode 100644 supervise-uniapp/static/uview/common/gray-logo.png create mode 100644 supervise-uniapp/static/uview/common/logo.png create mode 100644 supervise-uniapp/static/uview/example/component.png create mode 100644 supervise-uniapp/static/uview/example/component_select.png create mode 100644 supervise-uniapp/static/uview/example/js.png create mode 100644 supervise-uniapp/static/uview/example/js_bak.png create mode 100644 supervise-uniapp/static/uview/example/js_select.png create mode 100644 supervise-uniapp/static/uview/example/template.png create mode 100644 supervise-uniapp/static/uview/example/template_select.png create mode 100644 supervise-uniapp/store/index.js create mode 100644 supervise-uniapp/template.h5.html create mode 100644 supervise-uniapp/uni.scss create mode 100644 supervise-uniapp/uni_modules/uni-badge/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-badge/components/uni-badge/uni-badge.vue create mode 100644 supervise-uniapp/uni_modules/uni-badge/package.json create mode 100644 supervise-uniapp/uni_modules/uni-badge/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-breadcrumb/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-breadcrumb/components/uni-breadcrumb-item/uni-breadcrumb-item.vue create mode 100644 supervise-uniapp/uni_modules/uni-breadcrumb/components/uni-breadcrumb/uni-breadcrumb.vue create mode 100644 supervise-uniapp/uni_modules/uni-breadcrumb/package.json create mode 100644 supervise-uniapp/uni_modules/uni-breadcrumb/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-calendar/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/calendar.js create mode 100644 supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json create mode 100644 supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js create mode 100644 supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json create mode 100644 supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json create mode 100644 supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue create mode 100644 supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue create mode 100644 supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/util.js create mode 100644 supervise-uniapp/uni_modules/uni-calendar/package.json create mode 100644 supervise-uniapp/uni_modules/uni-calendar/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-card/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-card/components/uni-card/uni-card.vue create mode 100644 supervise-uniapp/uni_modules/uni-card/package.json create mode 100644 supervise-uniapp/uni_modules/uni-card/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-collapse/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue create mode 100644 supervise-uniapp/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue create mode 100644 supervise-uniapp/uni_modules/uni-collapse/package.json create mode 100644 supervise-uniapp/uni_modules/uni-collapse/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-combox/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-combox/components/uni-combox/uni-combox.vue create mode 100644 supervise-uniapp/uni_modules/uni-combox/package.json create mode 100644 supervise-uniapp/uni_modules/uni-combox/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-countdown/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json create mode 100644 supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js create mode 100644 supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json create mode 100644 supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json create mode 100644 supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue create mode 100644 supervise-uniapp/uni_modules/uni-countdown/package.json create mode 100644 supervise-uniapp/uni_modules/uni-countdown/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-data-checkbox/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue create mode 100644 supervise-uniapp/uni_modules/uni-data-checkbox/package.json create mode 100644 supervise-uniapp/uni_modules/uni-data-checkbox/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-data-picker/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js create mode 100644 supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue create mode 100644 supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js create mode 100644 supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue create mode 100644 supervise-uniapp/uni_modules/uni-data-picker/package.json create mode 100644 supervise-uniapp/uni_modules/uni-data-picker/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-data-select/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue create mode 100644 supervise-uniapp/uni_modules/uni-data-select/package.json create mode 100644 supervise-uniapp/uni_modules/uni-data-select/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-dateformat/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js create mode 100644 supervise-uniapp/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue create mode 100644 supervise-uniapp/uni_modules/uni-dateformat/package.json create mode 100644 supervise-uniapp/uni_modules/uni-dateformat/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/package.json create mode 100644 supervise-uniapp/uni_modules/uni-datetime-picker/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-drawer/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-drawer/components/uni-drawer/keypress.js create mode 100644 supervise-uniapp/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue create mode 100644 supervise-uniapp/uni_modules/uni-drawer/package.json create mode 100644 supervise-uniapp/uni_modules/uni-drawer/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-easyinput/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-easyinput/components/uni-easyinput/common.js create mode 100644 supervise-uniapp/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue create mode 100644 supervise-uniapp/uni_modules/uni-easyinput/package.json create mode 100644 supervise-uniapp/uni_modules/uni-easyinput/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-fab/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-fab/components/uni-fab/uni-fab.vue create mode 100644 supervise-uniapp/uni_modules/uni-fab/package.json create mode 100644 supervise-uniapp/uni_modules/uni-fab/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-fav/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/en.json create mode 100644 supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/index.js create mode 100644 supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json create mode 100644 supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json create mode 100644 supervise-uniapp/uni_modules/uni-fav/components/uni-fav/uni-fav.vue create mode 100644 supervise-uniapp/uni_modules/uni-fav/package.json create mode 100644 supervise-uniapp/uni_modules/uni-fav/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-file-picker/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js create mode 100644 supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue create mode 100644 supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue create mode 100644 supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue create mode 100644 supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/utils.js create mode 100644 supervise-uniapp/uni_modules/uni-file-picker/package.json create mode 100644 supervise-uniapp/uni_modules/uni-file-picker/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-forms/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue create mode 100644 supervise-uniapp/uni_modules/uni-forms/components/uni-forms/uni-forms.vue create mode 100644 supervise-uniapp/uni_modules/uni-forms/components/uni-forms/utils.js create mode 100644 supervise-uniapp/uni_modules/uni-forms/components/uni-forms/validate.js create mode 100644 supervise-uniapp/uni_modules/uni-forms/package.json create mode 100644 supervise-uniapp/uni_modules/uni-forms/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-goods-nav/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json create mode 100644 supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js create mode 100644 supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json create mode 100644 supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json create mode 100644 supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue create mode 100644 supervise-uniapp/uni_modules/uni-goods-nav/package.json create mode 100644 supervise-uniapp/uni_modules/uni-goods-nav/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-grid/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue create mode 100644 supervise-uniapp/uni_modules/uni-grid/components/uni-grid/uni-grid.vue create mode 100644 supervise-uniapp/uni_modules/uni-grid/package.json create mode 100644 supervise-uniapp/uni_modules/uni-grid/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-group/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-group/components/uni-group/uni-group.vue create mode 100644 supervise-uniapp/uni_modules/uni-group/package.json create mode 100644 supervise-uniapp/uni_modules/uni-group/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-icons/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-icons/components/uni-icons/icons.js create mode 100644 supervise-uniapp/uni_modules/uni-icons/components/uni-icons/uni-icons.vue create mode 100644 supervise-uniapp/uni_modules/uni-icons/components/uni-icons/uniicons.css create mode 100644 supervise-uniapp/uni_modules/uni-icons/components/uni-icons/uniicons.ttf create mode 100644 supervise-uniapp/uni_modules/uni-icons/package.json create mode 100644 supervise-uniapp/uni_modules/uni-icons/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-indexed-list/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue create mode 100644 supervise-uniapp/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue create mode 100644 supervise-uniapp/uni_modules/uni-indexed-list/package.json create mode 100644 supervise-uniapp/uni_modules/uni-indexed-list/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-link/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-link/components/uni-link/uni-link.vue create mode 100644 supervise-uniapp/uni_modules/uni-link/package.json create mode 100644 supervise-uniapp/uni_modules/uni-link/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-list/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue create mode 100644 supervise-uniapp/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss create mode 100644 supervise-uniapp/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue create mode 100644 supervise-uniapp/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue create mode 100644 supervise-uniapp/uni_modules/uni-list/components/uni-list/uni-list.vue create mode 100644 supervise-uniapp/uni_modules/uni-list/components/uni-list/uni-refresh.vue create mode 100644 supervise-uniapp/uni_modules/uni-list/components/uni-list/uni-refresh.wxs create mode 100644 supervise-uniapp/uni_modules/uni-list/package.json create mode 100644 supervise-uniapp/uni_modules/uni-list/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-load-more/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json create mode 100644 supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js create mode 100644 supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json create mode 100644 supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json create mode 100644 supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue create mode 100644 supervise-uniapp/uni_modules/uni-load-more/package.json create mode 100644 supervise-uniapp/uni_modules/uni-load-more/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-nav-bar/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue create mode 100644 supervise-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue create mode 100644 supervise-uniapp/uni_modules/uni-nav-bar/package.json create mode 100644 supervise-uniapp/uni_modules/uni-nav-bar/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-notice-bar/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue create mode 100644 supervise-uniapp/uni_modules/uni-notice-bar/package.json create mode 100644 supervise-uniapp/uni_modules/uni-notice-bar/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-number-box/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue create mode 100644 supervise-uniapp/uni_modules/uni-number-box/package.json create mode 100644 supervise-uniapp/uni_modules/uni-number-box/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-pagination/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json create mode 100644 supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json create mode 100644 supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json create mode 100644 supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js create mode 100644 supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json create mode 100644 supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json create mode 100644 supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue create mode 100644 supervise-uniapp/uni_modules/uni-pagination/package.json create mode 100644 supervise-uniapp/uni_modules/uni-pagination/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-popup/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js create mode 100644 supervise-uniapp/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue create mode 100644 supervise-uniapp/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue create mode 100644 supervise-uniapp/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue create mode 100644 supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/en.json create mode 100644 supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/index.js create mode 100644 supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json create mode 100644 supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json create mode 100644 supervise-uniapp/uni_modules/uni-popup/components/uni-popup/keypress.js create mode 100644 supervise-uniapp/uni_modules/uni-popup/components/uni-popup/popup.js create mode 100644 supervise-uniapp/uni_modules/uni-popup/components/uni-popup/uni-popup.vue create mode 100644 supervise-uniapp/uni_modules/uni-popup/package.json create mode 100644 supervise-uniapp/uni_modules/uni-popup/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-rate/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-rate/components/uni-rate/uni-rate.vue create mode 100644 supervise-uniapp/uni_modules/uni-rate/package.json create mode 100644 supervise-uniapp/uni_modules/uni-rate/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-row/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-row/components/uni-col/uni-col.vue create mode 100644 supervise-uniapp/uni_modules/uni-row/components/uni-row/uni-row.vue create mode 100644 supervise-uniapp/uni_modules/uni-row/package.json create mode 100644 supervise-uniapp/uni_modules/uni-row/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-scss/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-scss/index.scss create mode 100644 supervise-uniapp/uni_modules/uni-scss/package.json create mode 100644 supervise-uniapp/uni_modules/uni-scss/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-scss/styles/index.scss create mode 100644 supervise-uniapp/uni_modules/uni-scss/styles/setting/_border.scss create mode 100644 supervise-uniapp/uni_modules/uni-scss/styles/setting/_color.scss create mode 100644 supervise-uniapp/uni_modules/uni-scss/styles/setting/_radius.scss create mode 100644 supervise-uniapp/uni_modules/uni-scss/styles/setting/_space.scss create mode 100644 supervise-uniapp/uni_modules/uni-scss/styles/setting/_styles.scss create mode 100644 supervise-uniapp/uni_modules/uni-scss/styles/setting/_text.scss create mode 100644 supervise-uniapp/uni_modules/uni-scss/styles/setting/_variables.scss create mode 100644 supervise-uniapp/uni_modules/uni-scss/styles/tools/functions.scss create mode 100644 supervise-uniapp/uni_modules/uni-scss/theme.scss create mode 100644 supervise-uniapp/uni_modules/uni-scss/variables.scss create mode 100644 supervise-uniapp/uni_modules/uni-search-bar/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json create mode 100644 supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js create mode 100644 supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json create mode 100644 supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json create mode 100644 supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue create mode 100644 supervise-uniapp/uni_modules/uni-search-bar/package.json create mode 100644 supervise-uniapp/uni_modules/uni-search-bar/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-section/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-section/components/uni-section/uni-section.vue create mode 100644 supervise-uniapp/uni_modules/uni-section/package.json create mode 100644 supervise-uniapp/uni_modules/uni-section/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-segmented-control/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue create mode 100644 supervise-uniapp/uni_modules/uni-segmented-control/package.json create mode 100644 supervise-uniapp/uni_modules/uni-segmented-control/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-steps/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-steps/components/uni-steps/uni-steps.vue create mode 100644 supervise-uniapp/uni_modules/uni-steps/package.json create mode 100644 supervise-uniapp/uni_modules/uni-steps/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-swipe-action/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js create mode 100644 supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js create mode 100644 supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js create mode 100644 supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js create mode 100644 supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js create mode 100644 supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js create mode 100644 supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue create mode 100644 supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs create mode 100644 supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue create mode 100644 supervise-uniapp/uni_modules/uni-swipe-action/package.json create mode 100644 supervise-uniapp/uni_modules/uni-swipe-action/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-swiper-dot/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue create mode 100644 supervise-uniapp/uni_modules/uni-swiper-dot/package.json create mode 100644 supervise-uniapp/uni_modules/uni-swiper-dot/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-table/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-table/components/uni-table/uni-table.vue create mode 100644 supervise-uniapp/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue create mode 100644 supervise-uniapp/uni_modules/uni-table/components/uni-td/uni-td.vue create mode 100644 supervise-uniapp/uni_modules/uni-table/components/uni-th/filter-dropdown.vue create mode 100644 supervise-uniapp/uni_modules/uni-table/components/uni-th/uni-th.vue create mode 100644 supervise-uniapp/uni_modules/uni-table/components/uni-thead/uni-thead.vue create mode 100644 supervise-uniapp/uni_modules/uni-table/components/uni-tr/table-checkbox.vue create mode 100644 supervise-uniapp/uni_modules/uni-table/components/uni-tr/uni-tr.vue create mode 100644 supervise-uniapp/uni_modules/uni-table/i18n/en.json create mode 100644 supervise-uniapp/uni_modules/uni-table/i18n/es.json create mode 100644 supervise-uniapp/uni_modules/uni-table/i18n/fr.json create mode 100644 supervise-uniapp/uni_modules/uni-table/i18n/index.js create mode 100644 supervise-uniapp/uni_modules/uni-table/i18n/zh-Hans.json create mode 100644 supervise-uniapp/uni_modules/uni-table/i18n/zh-Hant.json create mode 100644 supervise-uniapp/uni_modules/uni-table/package.json create mode 100644 supervise-uniapp/uni_modules/uni-table/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-tag/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-tag/components/uni-tag/uni-tag.vue create mode 100644 supervise-uniapp/uni_modules/uni-tag/package.json create mode 100644 supervise-uniapp/uni_modules/uni-tag/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-test/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-test/components/uni-test/uni-test.vue create mode 100644 supervise-uniapp/uni_modules/uni-test/package.json create mode 100644 supervise-uniapp/uni_modules/uni-test/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-title/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-title/components/uni-title/uni-title.vue create mode 100644 supervise-uniapp/uni_modules/uni-title/package.json create mode 100644 supervise-uniapp/uni_modules/uni-title/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-tooltip/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue create mode 100644 supervise-uniapp/uni_modules/uni-tooltip/package.json create mode 100644 supervise-uniapp/uni_modules/uni-tooltip/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-transition/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-transition/components/uni-transition/createAnimation.js create mode 100644 supervise-uniapp/uni_modules/uni-transition/components/uni-transition/uni-transition.vue create mode 100644 supervise-uniapp/uni_modules/uni-transition/package.json create mode 100644 supervise-uniapp/uni_modules/uni-transition/readme.md create mode 100644 supervise-uniapp/uni_modules/uni-ui/changelog.md create mode 100644 supervise-uniapp/uni_modules/uni-ui/components/uni-ui/uni-ui.vue create mode 100644 supervise-uniapp/uni_modules/uni-ui/package.json create mode 100644 supervise-uniapp/uni_modules/uni-ui/readme.md create mode 100644 supervise-uniapp/uni_modules/uview-ui/LICENSE create mode 100644 supervise-uniapp/uni_modules/uview-ui/README.md create mode 100644 supervise-uniapp/uni_modules/uview-ui/changelog.md create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u--form/u--form.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u--image/u--image.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u--input/u--input.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u--text/u--text.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u--textarea/u--textarea.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-action-sheet/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-album/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-album/u-album.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-alert/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-alert/u-alert.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-avatar-group/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-avatar/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-avatar/u-avatar.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-back-top/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-back-top/u-back-top.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-badge/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-badge/u-badge.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-button/nvue.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-button/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-button/u-button.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-button/vue.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-calendar/header.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-calendar/month.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-calendar/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-calendar/u-calendar.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-calendar/util.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-car-keyboard/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-cell-group/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-cell/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-cell/u-cell.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-checkbox-group/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-checkbox/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-circle-progress/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-code-input/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-code-input/u-code-input.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-code/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-code/u-code.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-col/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-col/u-col.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-collapse-item/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-collapse/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-collapse/u-collapse.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-column-notice/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-count-down/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-count-down/u-count-down.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-count-down/utils.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-count-to/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-count-to/u-count-to.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-datetime-picker/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-divider/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-divider/u-divider.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-dropdown-item/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-dropdown/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-empty/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-empty/u-empty.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-form-item/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-form-item/u-form-item.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-form/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-form/u-form.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-gap/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-gap/u-gap.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-grid-item/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-grid/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-grid/u-grid.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-icon/icons.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-icon/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-icon/u-icon.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-image/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-image/u-image.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-index-anchor/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-index-item/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-index-item/u-index-item.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-index-list/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-index-list/u-index-list.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-input/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-input/u-input.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-keyboard/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-line-progress/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-line/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-line/u-line.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-link/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-link/u-link.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-list-item/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-list-item/u-list-item.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-list/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-list/u-list.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-loading-icon/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-loading-page/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-loadmore/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-modal/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-modal/u-modal.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-navbar/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-navbar/u-navbar.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-no-network/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-no-network/u-no-network.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-notice-bar/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-notify/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-notify/u-notify.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-number-box/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-number-box/u-number-box.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-number-keyboard/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-overlay/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-overlay/u-overlay.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-parse/node/node.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-parse/parser.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-parse/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-parse/u-parse.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-picker-column/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-picker-column/u-picker-column.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-picker/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-picker/u-picker.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-popup/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-popup/u-popup.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-radio-group/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-radio-group/u-radio-group.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-radio/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-radio/u-radio.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-rate/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-rate/u-rate.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-read-more/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-read-more/u-read-more.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-row-notice/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-row-notice/u-row-notice.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-row/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-row/u-row.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-safe-bottom/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-scroll-list/nvue.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-scroll-list/other.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-scroll-list/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-scroll-list/scrollWxs.wxs create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-scroll-list/u-scroll-list.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-search/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-search/u-search.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-skeleton/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-skeleton/u-skeleton.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-slider/mpother.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-slider/mpwxs.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-slider/mpwxs.wxs create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-slider/nvue - 副本.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-slider/nvue - 鍓湰.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-slider/nvue.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-slider/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-slider/u-slider.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-status-bar/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-steps-item/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-steps-item/u-steps-item.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-steps/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-steps/u-steps.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-sticky/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-sticky/u-sticky.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-subsection/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-subsection/u-subsection.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swipe-action-item/index - backup.wxs create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swipe-action-item/index.wxs create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swipe-action-item/nvue - backup.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swipe-action-item/nvue.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swipe-action-item/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swipe-action-item/wxs.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swipe-action/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swipe-action/u-swipe-action.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swiper-indicator/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swiper/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-swiper/u-swiper.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-switch/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-switch/u-switch.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tabbar-item/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tabbar-item/u-tabbar-item.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tabbar/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tabbar/u-tabbar.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-table/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-table/u-table.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tabs-item/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tabs-item/u-tabs-item.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tabs/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tabs/u-tabs.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tag/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tag/u-tag.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-td/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-td/u-td.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-text/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-text/u-text.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-text/value.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-textarea/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-textarea/u-textarea.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-toast/u-toast.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-toolbar/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tooltip/clipboard.min.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tooltip/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tooltip/u-tooltip.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tr/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-tr/u-tr.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-transition/nvue.ani-map.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-transition/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-transition/transition.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-transition/u-transition.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-transition/vue.ani-style.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-upload/mixin.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-upload/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-upload/u-upload.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/u-upload/utils.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/components/uview-ui/uview-ui.vue create mode 100644 supervise-uniapp/uni_modules/uview-ui/index.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/index.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/color.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/config.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/actionSheet.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/album.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/alert.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/avatar.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/avatarGroup.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/backtop.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/badge.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/button.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/calendar.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/carKeyboard.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/cell.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/cellGroup.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/checkbox.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/checkboxGroup.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/circleProgress.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/code.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/codeInput.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/col.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/collapse.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/collapseItem.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/columnNotice.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/countDown.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/countTo.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/datetimePicker.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/divider.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/empty.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/form.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/formItem.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/gap.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/grid.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/gridItem.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/icon.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/image.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/indexAnchor.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/indexList.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/input.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/keyboard.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/line.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/lineProgress.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/link.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/list.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/listItem.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/loadingIcon.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/loadingPage.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/loadmore.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/modal.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/navbar.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/noNetwork.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/noticeBar.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/notify.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/numberBox.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/numberKeyboard.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/overlay.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/parse.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/picker.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/popup.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/radio.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/radioGroup.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/rate.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/readMore.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/row.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/rowNotice.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/scrollList.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/search.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/section.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/skeleton.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/slider.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/statusBar.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/steps.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/stepsItem.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/sticky.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/subsection.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/swipeAction.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/swipeActionItem.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/swiper.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/swipterIndicator.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/switch.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/tabbar.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/tabbarItem.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/tabs.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/tag.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/text.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/textarea.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/toast.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/toolbar.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/tooltip.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/transition.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/props/upload.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/config/zIndex.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/css/color.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/css/common.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/css/components.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/css/flex.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/css/h5.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/css/mixin.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/css/mp.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/css/nvue.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/css/vue.scss create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/function/colorGradient.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/function/debounce.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/function/digit.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/function/index.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/function/platform.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/function/test.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/function/throttle.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/adapters/index.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/core/InterceptorManager.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/core/Request.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/core/buildFullPath.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/core/defaults.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/core/dispatchRequest.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/core/mergeConfig.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/core/settle.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/helpers/buildURL.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/helpers/combineURLs.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/index.d.ts create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/index.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/utils.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/luch-request/utils/clone.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/mixin/button.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/mixin/mixin.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/mixin/mpMixin.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/mixin/mpShare.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/mixin/openType.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/mixin/style.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/mixin/touch.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/util/async-validator.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/util/calendar.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/util/dayjs.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/util/emitter.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/libs/util/route.js create mode 100644 supervise-uniapp/uni_modules/uview-ui/package.json create mode 100644 supervise-uniapp/uni_modules/uview-ui/theme.scss create mode 100644 supervise-uniapp/utils/auth.token.js create mode 100644 supervise-uniapp/utils/request/index.js create mode 100644 supervise-uniapp/utils/request/requestInterceptors.js create mode 100644 supervise-uniapp/utils/request/responseInterceptors.js create mode 100644 supervise-uniapp/utils/requester.js diff --git a/supervise-uniapp/App.vue b/supervise-uniapp/App.vue new file mode 100644 index 00000000..fe1d2827 --- /dev/null +++ b/supervise-uniapp/App.vue @@ -0,0 +1,29 @@ + + + diff --git a/supervise-uniapp/common/app.scss b/supervise-uniapp/common/app.scss new file mode 100644 index 00000000..415d752a --- /dev/null +++ b/supervise-uniapp/common/app.scss @@ -0,0 +1,130 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ + +/* 行为相关颜色 */ +$uni-color-primary: #007aff; +$uni-color-success: #4cd964; +$uni-color-warning: #f0ad4e; +$uni-color-error: #dd524d; + +/* 文字基本颜色 */ +$uni-text-color: #333; //基本色 +$uni-text-color-inverse: #fff; //反色 +$uni-text-color-grey: #999; //辅助灰色,如加载更多的提示信息 +$uni-text-color-placeholder: #808080; +$uni-text-color-disable: #c0c0c0; + +/* 背景颜色 */ +$uni-bg-color: #ffffff; +$uni-bg-color-grey: #f8f8f8; +$uni-bg-color-hover: #f1f1f1; //点击状态颜色 +$uni-bg-color-mask: rgba(0, 0, 0, 0.4); //遮罩颜色 + +/* 边框颜色 */ +$uni-border-color: #c8c7cc; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm: 12px; +$uni-font-size-base: 14px; +$uni-font-size-lg: 16; + +/* 图片尺寸 */ +$uni-img-size-sm: 20px; +$uni-img-size-base: 26px; +$uni-img-size-lg: 40px; + +/* Border Radius */ +$uni-border-radius-sm: 2px; +$uni-border-radius-base: 3px; +$uni-border-radius-lg: 6px; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 5px; +$uni-spacing-row-base: 10px; +$uni-spacing-row-lg: 15px; + +/* 垂直间距 */ +$uni-spacing-col-sm: 4px; +$uni-spacing-col-base: 8px; +$uni-spacing-col-lg: 12px; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2c405a; // 文章标题颜色 +$uni-font-size-title: 20px; +$uni-color-subtitle: #555555; // 二级标题颜色 +$uni-font-size-subtitle: 26px; +$uni-color-paragraph: #3f536e; // 文章段落颜色 +$uni-font-size-paragraph: 15px; + +/** + * 下面为当前APP自己定义的公共样式 + */ +.app-container { + padding: 20px; + font-size: 14px; + line-height: 24px; +} + +.u-block { + padding: 14px; + &__section { + margin-bottom: 10px; + } + &__title { + margin-top: 10px; + font-size: 15px; + color: $u-content-color; + margin-bottom: 10px; + } + &__flex { + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + } +} + +// 使用了cell组件的icon图片样式 +.u-cell-icon { + width: 36rpx; + height: 36rpx; + margin-right: 8rpx; +} + +.u-page { + padding: 15px 15px 40px 15px; +} + +.u-demo-block { + flex: 1; + margin-bottom: 23px; + + &__content { + @include flex(column); + } + + &__title { + font-size: 14px; + color: rgb(143, 156, 162); + margin-bottom: 8px; + @include flex; + } +} diff --git a/supervise-uniapp/common/config.js b/supervise-uniapp/common/config.js new file mode 100644 index 00000000..73f33b50 --- /dev/null +++ b/supervise-uniapp/common/config.js @@ -0,0 +1,13 @@ +/** + * config 配置项说明 + * baseUrl = "", // 接口的根地址 + * tokenName = "Authorization", // 请求头中token的名字,与服务器端对应 + * loginTimeoutCode : "5000", // 登录超时或失效的情况下,服务器端返回的错误码 + * loginTimeoutPage = "/pages/login/index", // 登录超时或失效的情况下,跳转到的登录页面 + */ +module.exports = { + baseUrl: 'http://127.0.0.1:9501/ltest', + tokenName : "Authorization", // 请求头中token的名字,与服务器端对应 + loginTimeoutCode : "5001", // 登录超时或失效的情况下,服务器端返回的错误码 + loginTimeoutPage : "/pages/login/index", // 登录超时或失效的情况下,跳转到的登录页面 +} diff --git a/supervise-uniapp/common/mixin.js b/supervise-uniapp/common/mixin.js new file mode 100644 index 00000000..b6a4eeee --- /dev/null +++ b/supervise-uniapp/common/mixin.js @@ -0,0 +1,7 @@ +export default { + data() { + return { + + } + } +} diff --git a/supervise-uniapp/common/props.js b/supervise-uniapp/common/props.js new file mode 100644 index 00000000..9c1ef076 --- /dev/null +++ b/supervise-uniapp/common/props.js @@ -0,0 +1,2 @@ +uni.$u.props.gap.bgColor = '#f3f4f6' +uni.$u.props.gap.height = '10' diff --git a/supervise-uniapp/common/req.js b/supervise-uniapp/common/req.js new file mode 100644 index 00000000..2fbf62e7 --- /dev/null +++ b/supervise-uniapp/common/req.js @@ -0,0 +1,13 @@ +const { + http +} = uni.$u + +export default { + login: (params, config = {}) => http.post('/login', params, { + custom: { + catchError: true, + showFailMessage: true + } + }), + sayhello: (params = {}) => http.get("/sayb", params) +} diff --git a/supervise-uniapp/common/request.api.js b/supervise-uniapp/common/request.api.js new file mode 100644 index 00000000..7a82c77e --- /dev/null +++ b/supervise-uniapp/common/request.api.js @@ -0,0 +1,6 @@ +import request from '@/utils/requester.js' + +export default { + login: (params = {}) => request.post("/login", params), + sayhello: (params = {}) => request.get("/sayb", params) +} diff --git a/supervise-uniapp/components/page-nav/page-nav.vue b/supervise-uniapp/components/page-nav/page-nav.vue new file mode 100644 index 00000000..70ee75c1 --- /dev/null +++ b/supervise-uniapp/components/page-nav/page-nav.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/supervise-uniapp/components/uni-section/uni-section.vue b/supervise-uniapp/components/uni-section/uni-section.vue new file mode 100644 index 00000000..a68c7b7b --- /dev/null +++ b/supervise-uniapp/components/uni-section/uni-section.vue @@ -0,0 +1,140 @@ + + + + diff --git a/supervise-uniapp/index.html b/supervise-uniapp/index.html new file mode 100644 index 00000000..9efb7332 --- /dev/null +++ b/supervise-uniapp/index.html @@ -0,0 +1,14 @@ + + + + + + + + + + +
+ + + diff --git a/supervise-uniapp/main.js b/supervise-uniapp/main.js new file mode 100644 index 00000000..5e452b16 --- /dev/null +++ b/supervise-uniapp/main.js @@ -0,0 +1,31 @@ +import Vue from 'vue' +import App from './App' +// vuex +import store from './store' +// 引入全局uView +import uView from '@/uni_modules/uview-ui' +Vue.use(uView) + +import mixin from './common/mixin' +// #ifdef MP +// 引入uView对小程序分享的mixin封装 +const mpShare = require('@/uni_modules/uview-ui/libs/mixin/mpShare.js') +Vue.mixin(mpShare) +// #endif +Vue.mixin(mixin) + +import api from '@/common/request.api.js' +Vue.prototype.$api = api + +Vue.config.productionTip = false +App.mpType = 'app' + +const app = new Vue({ + store, + ...App +}) + +// 引入请求封装 +require('./utils/request/index')(app) + +app.$mount() diff --git a/supervise-uniapp/manifest.json b/supervise-uniapp/manifest.json new file mode 100644 index 00000000..5f2a69ce --- /dev/null +++ b/supervise-uniapp/manifest.json @@ -0,0 +1,153 @@ +{ + "name": "uView UI", + "appid": "", + "description": "多平台快速开发的UI框架", + "versionName": "1.0.0", + "versionCode": 1, + "transformPx": false, + "app-plus": { + "optimization": { + "subPackages": true + }, + "safearea": { + "bottom": { + "offset": "none" + } + }, + "splashscreen": { + "alwaysShowBeforeRender": true, + "waiting": true, + "autoclose": true, + "delay": 0 + }, + "usingComponents": true, + "nvueCompiler": "uni-app", + "compilerVersion": 3, + "modules": { + "Webview-x5": {} + }, + "distribute": { + "android": { + "permissions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "abiFilters": [ + "armeabi-v7a", + "arm64-v8a" + ] + }, + "ios": { + "idfa": false + }, + "sdkConfigs": { + "ad": {} + }, + "icons": { + "android": { + "hdpi": "unpackage/res/icons/72x72.png", + "xhdpi": "unpackage/res/icons/96x96.png", + "xxhdpi": "unpackage/res/icons/144x144.png", + "xxxhdpi": "unpackage/res/icons/192x192.png" + }, + "ios": { + "appstore": "unpackage/res/icons/1024x1024.png", + "ipad": { + "app": "unpackage/res/icons/76x76.png", + "app@2x": "unpackage/res/icons/152x152.png", + "notification": "unpackage/res/icons/20x20.png", + "notification@2x": "unpackage/res/icons/40x40.png", + "proapp@2x": "unpackage/res/icons/167x167.png", + "settings": "unpackage/res/icons/29x29.png", + "settings@2x": "unpackage/res/icons/58x58.png", + "spotlight": "unpackage/res/icons/40x40.png", + "spotlight@2x": "unpackage/res/icons/80x80.png" + }, + "iphone": { + "app@2x": "unpackage/res/icons/120x120.png", + "app@3x": "unpackage/res/icons/180x180.png", + "notification@2x": "unpackage/res/icons/40x40.png", + "notification@3x": "unpackage/res/icons/60x60.png", + "settings@2x": "unpackage/res/icons/58x58.png", + "settings@3x": "unpackage/res/icons/87x87.png", + "spotlight@2x": "unpackage/res/icons/80x80.png", + "spotlight@3x": "unpackage/res/icons/120x120.png" + } + } + } + } + }, + "quickapp": {}, + "mp-weixin": { + "appid": "", + "setting": { + "urlCheck": false, + "es6": false, + "minified": false, + "postcss": false + }, + "optimization": { + "subPackages": true + }, + "usingComponents": true + }, + "mp-alipay": { + "usingComponents": true, + "component2": true + }, + "mp-qq": { + "optimization": { + "subPackages": true + }, + "appid": "15646153" + }, + "mp-baidu": { + "usingComponents": true, + "appid": "" + }, + "mp-toutiao": { + "usingComponents": true, + "appid": "" + }, + "h5": { + "template": "template.h5.html", + "router": { + "mode": "history", + "base": "" + }, + "optimization": { + "treeShaking": { + "enable": false + } + }, + "title": "uView UI", + "sdkConfigs": { + "maps": { + "qqmap": { + "key": "" + } + } + }, + "domain": "" + } +} \ No newline at end of file diff --git a/supervise-uniapp/pages.json b/supervise-uniapp/pages.json new file mode 100644 index 00000000..11d0f892 --- /dev/null +++ b/supervise-uniapp/pages.json @@ -0,0 +1,30 @@ +{ + // "condition": { //模式配置,仅开发期间生效 + // "current": 0, //当前激活的模式(list 的索引项) + // "list": [{ + // "name": "test", //模式名称 + // "path": "pages/componentsA/test/test", //启动页面,必选 + // "query": "" //启动参数,在页面的onLoad函数里面得到 + // }] + // }, + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/login/index", + "style": { + "navigationBarTitleText": "登录", + "enablePullDownRefresh": false + } + }, { + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "APP示例" + } + } + ], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uView脚手架", + "navigationBarBackgroundColor": "#FFFFFF", + "backgroundColor": "#FFFFFF" + } +} diff --git a/supervise-uniapp/pages/index/index.vue b/supervise-uniapp/pages/index/index.vue new file mode 100644 index 00000000..4a24208c --- /dev/null +++ b/supervise-uniapp/pages/index/index.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/supervise-uniapp/pages/login/index.vue b/supervise-uniapp/pages/login/index.vue new file mode 100644 index 00000000..f65cdbdd --- /dev/null +++ b/supervise-uniapp/pages/login/index.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/supervise-uniapp/static/app-plus/mp-html/js/handler.js b/supervise-uniapp/static/app-plus/mp-html/js/handler.js new file mode 100644 index 00000000..92838327 --- /dev/null +++ b/supervise-uniapp/static/app-plus/mp-html/js/handler.js @@ -0,0 +1,224 @@ +'use strict' + +// 等待初始化完毕 +document.addEventListener('UniAppJSBridgeReady', () => { + document.body.onclick = function () { + return uni.postMessage({ + data: { + action: 'onClick' + } + }) + } + + uni.postMessage({ + data: { + action: 'onJSBridgeReady' + } + }) +}) +let options +let medias = [] +/** + * @description 获取标签的所有属性 + * @param {Element} ele + */ + +function getAttrs(ele) { + const attrs = Object.create(null) + + for (let i = ele.attributes.length; i--;) { + attrs[ele.attributes[i].name] = ele.attributes[i].value + } + + return attrs +} +/** + * @description 图片加载出错 + */ + +function onImgError() { + if (options[1]) { + this.src = options[1] + this.onerror = null + } // 取消监听点击 + + this.onclick = null + this.ontouchstart = null + uni.postMessage({ + data: { + action: 'onError', + source: 'img', + attrs: getAttrs(this) + } + }) +} +/** + * @description 创建 dom 结构 + * @param {object[]} nodes 节点数组 + * @param {Element} parent 父节点 + * @param {string} namespace 命名空间 + */ + +function createDom(nodes, parent, namespace) { + const _loop = function _loop(i) { + const node = nodes[i] + let ele = void 0 + + if (!node.type || node.type == 'node') { + let { name } = node // svg 需要设置 namespace + + if (name == 'svg') namespace = 'http://www.w3.org/2000/svg' + if (name == 'html' || name == 'body') name = 'div' // 创建标签 + + if (!namespace) ele = document.createElement(name); else ele = document.createElementNS(namespace, name) // 设置属性 + + for (const item in node.attrs) { + ele.setAttribute(item, node.attrs[item]) + } // 递归创建子节点 + + if (node.children) createDom(node.children, ele, namespace) // 处理图片 + + if (name == 'img') { + if (!ele.src && ele.getAttribute('data-src')) ele.src = ele.getAttribute('data-src') + + if (!node.attrs.ignore) { + // 监听图片点击事件 + ele.onclick = function (e) { + e.stopPropagation() + uni.postMessage({ + data: { + action: 'onImgTap', + attrs: getAttrs(this) + } + }) + } + } + + if (options[2]) { + image = new Image() + image.src = ele.src + ele.src = options[2] + + image.onload = function () { + ele.src = this.src + } + + image.onerror = function () { + ele.onerror() + } + } + + ele.onerror = onImgError + } // 处理链接 + else if (name == 'a') { + ele.addEventListener('click', function (e) { + e.stopPropagation() + e.preventDefault() // 阻止默认跳转 + + const href = this.getAttribute('href') + let offset + if (href && href[0] == '#') offset = (document.getElementById(href.substr(1)) || {}).offsetTop + uni.postMessage({ + data: { + action: 'onLinkTap', + attrs: getAttrs(this), + offset + } + }) + }, true) + } // 处理音视频 + else if (name == 'video' || name == 'audio') { + medias.push(ele) + + if (!node.attrs.autoplay) { + if (!node.attrs.controls) ele.setAttribute('controls', 'true') // 空白图占位 + + if (!node.attrs.poster) ele.setAttribute('poster', "data:image/svg+xml;utf8,") + } + + if (options[3]) { + ele.onplay = function () { + for (let _i = 0; _i < medias.length; _i++) { + if (medias[_i] != this) medias[_i].pause() + } + } + } + + ele.onerror = function () { + uni.postMessage({ + data: { + action: 'onError', + source: name, + attrs: getAttrs(this) + } + }) + } + } // 处理表格 + else if (name == 'table' && options[4] && !ele.style.cssText.includes('inline')) { + const div = document.createElement('div') + div.style.overflow = 'auto' + div.appendChild(ele) + ele = div + } else if (name == 'svg') namespace = void 0 + } else ele = document.createTextNode(node.text.replace(/&/g, '&')) + + parent.appendChild(ele) + } + + for (let i = 0; i < nodes.length; i++) { + var image + + _loop(i) + } +} // 设置 html 内容 + +window.setContent = function (nodes, opts, append) { + const ele = document.getElementById('content') // 背景颜色 + + if (opts[0]) document.body.bgColor = opts[0] // 长按复制 + + if (!opts[5]) ele.style.userSelect = 'none' + + if (!append) { + ele.innerHTML = '' // 不追加则先清空 + + medias = [] + } + + options = opts + const fragment = document.createDocumentFragment() + createDom(nodes, fragment) + ele.appendChild(fragment) // 触发事件 + + let height = ele.scrollHeight + uni.postMessage({ + data: { + action: 'onLoad', + height + } + }) + clearInterval(window.timer) + let ready = false + window.timer = setInterval(() => { + if (ele.scrollHeight != height) { + height = ele.scrollHeight + uni.postMessage({ + data: { + action: 'onHeightChange', + height + } + }) + } else if (!ready) { + ready = true + uni.postMessage({ + data: { + action: 'onReady' + } + }) + } + }, 350) +} // 回收计时器 + +window.onunload = function () { + clearInterval(window.timer) +} diff --git a/supervise-uniapp/static/app-plus/mp-html/js/uni.webview.min.js b/supervise-uniapp/static/app-plus/mp-html/js/uni.webview.min.js new file mode 100644 index 00000000..518332dd --- /dev/null +++ b/supervise-uniapp/static/app-plus/mp-html/js/uni.webview.min.js @@ -0,0 +1,19 @@ +!(function (e, n) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = n() : typeof define === 'function' && define.amd ? define(n) : (e = e || self).uni = n() }(this, (() => { + 'use strict' + + try { const e = {}; Object.defineProperty(e, 'passive', { get() { !0 } }), window.addEventListener('test-passive', null, e) } catch (e) {} const n = Object.prototype.hasOwnProperty; function t(e, t) { return n.call(e, t) } const i = []; const a = function (e, n) { const t = { options: { timestamp: +new Date() }, name: e, arg: n }; if (window.__dcloud_weex_postMessage || window.__dcloud_weex_) { if (e === 'postMessage') { const a = { data: [n] }; return window.__dcloud_weex_postMessage ? window.__dcloud_weex_postMessage(a) : window.__dcloud_weex_.postMessage(JSON.stringify(a)) } const o = { type: 'WEB_INVOKE_APPSERVICE', args: { data: t, webviewIds: i } }; window.__dcloud_weex_postMessage ? window.__dcloud_weex_postMessageToService(o) : window.__dcloud_weex_.postMessageToService(JSON.stringify(o)) } if (!window.plus) return window.parent.postMessage({ type: 'WEB_INVOKE_APPSERVICE', data: t, pageId: '' }, '*'); if (i.length === 0) { const r = plus.webview.currentWebview(); if (!r) throw new Error('plus.webview.currentWebview() is undefined'); const d = r.parent(); let s = ''; s = d ? d.id : r.id, i.push(s) } if (plus.webview.getWebviewById('__uniapp__service'))plus.webview.postMessageToUniNView({ type: 'WEB_INVOKE_APPSERVICE', args: { data: t, webviewIds: i } }, '__uniapp__service'); else { const w = JSON.stringify(t); plus.webview.getLaunchWebview().evalJS('UniPlusBridge.subscribeHandler("'.concat('WEB_INVOKE_APPSERVICE', '",').concat(w, ',').concat(JSON.stringify(i), ');')) } }; const o = { + navigateTo() { const e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; const n = e.url; a('navigateTo', { url: encodeURI(n) }) }, navigateBack() { const e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; const n = e.delta; a('navigateBack', { delta: parseInt(n) || 1 }) }, switchTab() { const e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; const n = e.url; a('switchTab', { url: encodeURI(n) }) }, reLaunch() { const e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; const n = e.url; a('reLaunch', { url: encodeURI(n) }) }, redirectTo() { const e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; const n = e.url; a('redirectTo', { url: encodeURI(n) }) }, getEnv(e) { window.plus ? e({ plus: !0 }) : e({ h5: !0 }) }, postMessage() { const e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; a('postMessage', e.data || {}) } + }; const r = /uni-app/i.test(navigator.userAgent); const d = /Html5Plus/i.test(navigator.userAgent); const s = /complete|loaded|interactive/; const w = window.my && navigator.userAgent.indexOf('AlipayClient') > -1; const u = window.swan && window.swan.webView && /swan/i.test(navigator.userAgent); const c = window.qq && window.qq.miniProgram && /QQ/i.test(navigator.userAgent) && /miniProgram/i.test(navigator.userAgent); const g = window.tt && window.tt.miniProgram && /toutiaomicroapp/i.test(navigator.userAgent); const v = window.wx && window.wx.miniProgram && /micromessenger/i.test(navigator.userAgent) && /miniProgram/i.test(navigator.userAgent); const p = window.qa && /quickapp/i.test(navigator.userAgent); for (var l, _ = function () { window.UniAppJSBridge = !0, document.dispatchEvent(new CustomEvent('UniAppJSBridgeReady', { bubbles: !0, cancelable: !0 })) }, f = [function (e) { if (r || d) return window.__dcloud_weex_postMessage || window.__dcloud_weex_ ? document.addEventListener('DOMContentLoaded', e) : window.plus && s.test(document.readyState) ? setTimeout(e, 0) : document.addEventListener('plusready', e), o }, function (e) { if (v) return window.WeixinJSBridge && window.WeixinJSBridge.invoke ? setTimeout(e, 0) : document.addEventListener('WeixinJSBridgeReady', e), window.wx.miniProgram }, function (e) { if (c) return window.QQJSBridge && window.QQJSBridge.invoke ? setTimeout(e, 0) : document.addEventListener('QQJSBridgeReady', e), window.qq.miniProgram }, function (e) { + if (w) { + document.addEventListener('DOMContentLoaded', e); const n = window.my; return { + navigateTo: n.navigateTo, navigateBack: n.navigateBack, switchTab: n.switchTab, reLaunch: n.reLaunch, redirectTo: n.redirectTo, postMessage: n.postMessage, getEnv: n.getEnv + } + } + }, function (e) { if (u) return document.addEventListener('DOMContentLoaded', e), window.swan.webView }, function (e) { if (g) return document.addEventListener('DOMContentLoaded', e), window.tt.miniProgram }, function (e) { + if (p) { + window.QaJSBridge && window.QaJSBridge.invoke ? setTimeout(e, 0) : document.addEventListener('QaJSBridgeReady', e); const n = window.qa; return { + navigateTo: n.navigateTo, navigateBack: n.navigateBack, switchTab: n.switchTab, reLaunch: n.reLaunch, redirectTo: n.redirectTo, postMessage: n.postMessage, getEnv: n.getEnv + } + } + }, function (e) { return document.addEventListener('DOMContentLoaded', e), o }], m = 0; m < f.length && !(l = f[m](_)); m++);l || (l = {}); const E = typeof uni !== 'undefined' ? uni : {}; if (!E.navigateTo) for (const b in l)t(l, b) && (E[b] = l[b]); return E.webView = l, E +}))) diff --git a/supervise-uniapp/static/app-plus/mp-html/local.html b/supervise-uniapp/static/app-plus/mp-html/local.html new file mode 100644 index 00000000..f78d703c --- /dev/null +++ b/supervise-uniapp/static/app-plus/mp-html/local.html @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/supervise-uniapp/static/c1.png b/supervise-uniapp/static/c1.png new file mode 100644 index 0000000000000000000000000000000000000000..9d38fdc45f54393919608143278902961ebfc03e GIT binary patch literal 401 zcmeAS@N?(olHy`uVBq!ia0vp^DImv+@EMfolJl@2-tdeIgiE72V3$+1a&#<;nGqB*6-wd0Dfno2^$& z7L}LYx}4kkKI1~4j2xSM#i^{e>mxFDC0DcwoaERsZFdmo&xZb=|e; zVChPF@z}uo`_jyFigEMR=cKgdY*81V{;5gJlXF9MvNaZ^cipGtGKCwGwYFdLih#FiI|b%1`}h zcD?9wzL;(MG`RGl!=KdO=X$Ia3G&T>{3@pZ$E>nWT~vAlEaktaqI1klarbacw7TzPB-Tm@A?1# z=DKt1Tm@&jBni*W72Dq8$U1XQ@j1)qcYd?AM-~6vdS%zgB|W!|l9z8;VdkK15fZWZ z0_Xa#{=&Tl?+&}Myixw!c0&2Cz{(%uYaLfyIpx20a+b;i&8Hu}PrN-Tsf8gx{xaWd zSEda)?3G(j%z6CKKWpOGAAJoS5gg_&aw+l?Pq*dmh)8I56YfnYkc%|gRM+fjvg@w| z$E(g+E=n8A7O8TmM)@~hDG@eQ_vn5n5wpR0%`A=`87W~$m7>*=T~gqVW%D$JmT%Wy00-NUV`g= zPWq+lU_K79dVw=Ll(hEL%sa^y|HiF3Bqng#c7b&Xt+%gdOo& V%D;5ZBtB5oc)I$ztaD0e0stIlwo?EA literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/c3.png b/supervise-uniapp/static/c3.png new file mode 100644 index 0000000000000000000000000000000000000000..216202ad01c5d093a15c247cf791bf66759cf54d GIT binary patch literal 511 zcmeAS@N?(olHy`uVBq!ia0vp^DImqEwn3#C`6axcex~Gd{NX4zUH%{jrQQ%<>_`I#L<;VZ} zZHv8>O^d80dDUJWN}qZ5sw(5+2E$_#$vr=hznV9v_(!hA^s)ehHzYuO_$GPFaj>L^Z^8*-5pGM3JjCnSB#oUXR4yIck*z;L5euG4hrQnMaF=Mr^If6ezqfPO{rmaH zG`Recv6gZBZ^h$ro*MqgZ`L;0*JWSQ?4MdEEc#Ycl^2Ku*&||7ybYSKxgR(e zUi8LbW#8LW_O;o`+{cdv9h)e%;+1X1dv+zh{}-wmlY4-{_IaWH_ctMZlX+XXL2>Bm L>gTe~DWM4f<{`=m literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/c4.png b/supervise-uniapp/static/c4.png new file mode 100644 index 0000000000000000000000000000000000000000..fb8b4770c323cc87544a502c4efcd9792ec6047a GIT binary patch literal 476 zcmeAS@N?(olHy`uVBq!ia0vp^DIm!v{Zmph6H*@EOQ`c;Jj35m?s8tsB!ig_bOsad3NWyNKsO#%u4s6f}!WF<$1wue~HTU+T}QZ;Gq4 z+^p*LR=oRR<2>VYrDayznw7JEgn9(s4mmKdKH{5e^24HIn&xXKq`oqWXf4s;nPY6> zl5RSUO)+g!*Qq{!;a&O8LAO2%J{IadS>Y&oFLd#-`B8Zi;r0eCLdRUCfQpstnaz}|9;&C$edE%qT=zMqcbI`S>(i_Uwsp-Jh?$Zac<}T=h6;^ V(bfHGPg+0`|eiw2lA( literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/c5.png b/supervise-uniapp/static/c5.png new file mode 100644 index 0000000000000000000000000000000000000000..310bfb123ba811240a23883c589557cced22af97 GIT binary patch literal 472 zcmeAS@N?(olHy`uVBq!ia0vp^DImMU#{OfDLKp{`iu-m;URIy-X0%w>4GPR z_aE3Db+En7Vpp-?y{8>c_3j;K1E(wImUzhRpIo-4)yng0f9$<4bN?NcJ+$)R>Cmd5 zPnT-Q*3a3qRzbM)VHC^C!+&Q!2$x98T^XQ1{a2U4m97Z?l}kQ1avTGN#j9nTb Uw;LB#rGg^I)78&qol`;+04O}Qp#T5? literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/c6.png b/supervise-uniapp/static/c6.png new file mode 100644 index 0000000000000000000000000000000000000000..c3c45d8814b2657a1c603b1a44c8207da134cb40 GIT binary patch literal 545 zcmeAS@N?(olHy`uVBq!ia0vp^DImqbxJT^6j8j=}L4 z`U~zp;jZGGq_3%#*Y{@jiL-*|KAoCX9M=6tMV3p`Xx_9LpK6YHtIv61@a%(@?tX{a zixmsYle>5975wq9?fBo`FZ<0Z_ST1U_$og>`Bwh@oq)-Q*IY8`n6H2IUEezHG>gnR z4m?JSR+TGA8lKK}%#OUITJo;LRm!DE@lpDwn1HB=DfxjiElxjmC-aCcb$n6qV?vwH z70D$Ac9y-Kb4tS6k2yc|sk#5)HGj$%vfgZBIOdhE(svqtDm`(*VzL-mu^Hy19AKPf2Xw<}^wvyk3;W5tc1>eFM@ s<<*_%cP|y0-yh@^lK=|O<{9 literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/c7.png b/supervise-uniapp/static/c7.png new file mode 100644 index 0000000000000000000000000000000000000000..a1e73908c282c8ce053a037a9b0d0ff2bcdb5f28 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^DIm6ZD L`njxgN@xNA8ryiD literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/c8.png b/supervise-uniapp/static/c8.png new file mode 100644 index 0000000000000000000000000000000000000000..c32633c0b399d119fe940b19fb48ee0efd986ca1 GIT binary patch literal 587 zcmeAS@N?(olHy`uVBq!ia0vp^DImtDWKw)GSgG z<{?!7vyg^n3M^01LJZ}7srr_TW_zQ?t87k(~wwf+9)vT z%KQIoiZ6ORmsqxitIvdcU#@t4EXP6v-^(UI#Jk~jfg$H7CzX--mMU=ckjl- zO_N=n{=9#BNIpzt0(^6iu(G%&IbVv*qm>1hi!XSEd0U$OB}=(W(sDW)~2<6brG`eb|Eywk@UH2a9_S~2ou;@L{mE;Re4S!9(w0H>~IdYlxQPbf~&0B26{}evs0SCD6 b<@sM36JAtSn%f$@0;LB}S3j3^P6r-DwW=|@#WR(W@( zZdqJkeNu(zZcxH)-rk0j)>6#pwJ%5 z({0I4*ENL;Hg>s)Wo2yHMQWq+YVK10K1LEVCnUj62Kls6uex~DF( zmCs;?h^>{Qb=Fc@o?qGaU(P$0_Dg@wVQpV1_%AL~YBQ@%pW7wIWu-GZ7%RRBC{J)$ zYTez|@_3zqf=Wi}%JdkW31MA*>f4V5YcgIo@dcs(Z~1ke=Y_pcHP{M@c~4hAmvv4F FO#nHb*8Bhf literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/common/js/touch-emulator.js b/supervise-uniapp/static/common/js/touch-emulator.js new file mode 100644 index 00000000..b90c8acc --- /dev/null +++ b/supervise-uniapp/static/common/js/touch-emulator.js @@ -0,0 +1,363 @@ +(function (window, document, exportName, undefined) { + "use strict"; + + var isMultiTouch = false; + var multiTouchStartPos; + var eventTarget; + var touchElements = {}; + + // polyfills + if (!document.createTouch) { + document.createTouch = function (view, target, identifier, pageX, pageY, screenX, screenY, clientX, clientY) { + // auto set + if (clientX == undefined || clientY == undefined) { + clientX = pageX - window.pageXOffset; + clientY = pageY - window.pageYOffset; + } + + return new Touch(target, identifier, { + pageX: pageX, + pageY: pageY, + screenX: screenX, + screenY: screenY, + clientX: clientX, + clientY: clientY + }); + }; + } + + if (!document.createTouchList) { + document.createTouchList = function () { + var touchList = new TouchList(); + for (var i = 0; i < arguments.length; i++) { + touchList[i] = arguments[i]; + } + touchList.length = arguments.length; + return touchList; + }; + } + + /** + * create an touch point + * @constructor + * @param target + * @param identifier + * @param pos + * @param deltaX + * @param deltaY + * @returns {Object} touchPoint + */ + function Touch(target, identifier, pos, deltaX, deltaY) { + deltaX = deltaX || 0; + deltaY = deltaY || 0; + + this.identifier = identifier; + this.target = target; + this.clientX = pos.clientX + deltaX; + this.clientY = pos.clientY + deltaY; + this.screenX = pos.screenX + deltaX; + this.screenY = pos.screenY + deltaY; + this.pageX = pos.pageX + deltaX; + this.pageY = pos.pageY + deltaY; + } + + /** + * create empty touchlist with the methods + * @constructor + * @returns touchList + */ + function TouchList() { + var touchList = []; + + touchList.item = function (index) { + return this[index] || null; + }; + + // specified by Mozilla + touchList.identifiedTouch = function (id) { + return this[id + 1] || null; + }; + + return touchList; + } + + + /** + * Simple trick to fake touch event support + * this is enough for most libraries like Modernizr and Hammer + */ + function fakeTouchSupport() { + var objs = [window, document.documentElement]; + var props = ['ontouchstart', 'ontouchmove', 'ontouchcancel', 'ontouchend']; + + for (var o = 0; o < objs.length; o++) { + for (var p = 0; p < props.length; p++) { + if (objs[o] && objs[o][props[p]] == undefined) { + objs[o][props[p]] = null; + } + } + } + } + + /** + * we don't have to emulate on a touch device + * @returns {boolean} + */ + function hasTouchSupport() { + return ("ontouchstart" in window) || // touch events + (window.Modernizr && window.Modernizr.touch) || // modernizr + (navigator.msMaxTouchPoints || navigator.maxTouchPoints) > 2; // pointer events + } + + /** + * disable mouseevents on the page + * @param ev + */ + function preventMouseEvents(ev) { + // 注释启用默认事件 + // ev.preventDefault(); + // ev.stopPropagation(); + } + + /** + * only trigger touches when the left mousebutton has been pressed + * @param touchType + * @returns {Function} + */ + function onMouse(touchType) { + return function (ev) { + // prevent mouse events + preventMouseEvents(ev); + + if (ev.which !== 1) { + return; + } + + // The EventTarget on which the touch point started when it was first placed on the surface, + // even if the touch point has since moved outside the interactive area of that element. + // also, when the target doesnt exist anymore, we update it + if (ev.type == 'mousedown' || !eventTarget || (eventTarget && !eventTarget.dispatchEvent)) { + eventTarget = ev.target; + } + + // shiftKey has been lost, so trigger a touchend + if (isMultiTouch && !ev.shiftKey) { + triggerTouch('touchend', ev); + isMultiTouch = false; + } + + triggerTouch(touchType, ev); + + // we're entering the multi-touch mode! + if (!isMultiTouch && ev.shiftKey) { + isMultiTouch = true; + multiTouchStartPos = { + pageX: ev.pageX, + pageY: ev.pageY, + clientX: ev.clientX, + clientY: ev.clientY, + screenX: ev.screenX, + screenY: ev.screenY + }; + triggerTouch('touchstart', ev); + } + + // reset + if (ev.type == 'mouseup') { + multiTouchStartPos = null; + isMultiTouch = false; + eventTarget = null; + } + } + } + + /** + * trigger a touch event + * @param eventName + * @param mouseEv + */ + function triggerTouch(eventName, mouseEv) { + var touchEvent = document.createEvent('Event'); + touchEvent.initEvent(eventName, true, true); + + touchEvent.altKey = mouseEv.altKey; + touchEvent.ctrlKey = mouseEv.ctrlKey; + touchEvent.metaKey = mouseEv.metaKey; + touchEvent.shiftKey = mouseEv.shiftKey; + + touchEvent.touches = getActiveTouches(mouseEv, eventName); + touchEvent.targetTouches = getActiveTouches(mouseEv, eventName); + touchEvent.changedTouches = getChangedTouches(mouseEv, eventName); + + eventTarget.dispatchEvent(touchEvent); + } + + /** + * create a touchList based on the mouse event + * @param mouseEv + * @returns {TouchList} + */ + function createTouchList(mouseEv) { + var touchList = new TouchList(); + + if (isMultiTouch) { + var f = TouchEmulator.multiTouchOffset; + var deltaX = multiTouchStartPos.pageX - mouseEv.pageX; + var deltaY = multiTouchStartPos.pageY - mouseEv.pageY; + + touchList.push(new Touch(eventTarget, 1, multiTouchStartPos, (deltaX * -1) - f, (deltaY * -1) + f)); + touchList.push(new Touch(eventTarget, 2, multiTouchStartPos, deltaX + f, deltaY - f)); + } else { + touchList.push(new Touch(eventTarget, 1, mouseEv, 0, 0)); + } + + return touchList; + } + + /** + * receive all active touches + * @param mouseEv + * @returns {TouchList} + */ + function getActiveTouches(mouseEv, eventName) { + // empty list + if (mouseEv.type == 'mouseup') { + return new TouchList(); + } + + var touchList = createTouchList(mouseEv); + if (isMultiTouch && mouseEv.type != 'mouseup' && eventName == 'touchend') { + touchList.splice(1, 1); + } + return touchList; + } + + /** + * receive a filtered set of touches with only the changed pointers + * @param mouseEv + * @param eventName + * @returns {TouchList} + */ + function getChangedTouches(mouseEv, eventName) { + var touchList = createTouchList(mouseEv); + + // we only want to return the added/removed item on multitouch + // which is the second pointer, so remove the first pointer from the touchList + // + // but when the mouseEv.type is mouseup, we want to send all touches because then + // no new input will be possible + if (isMultiTouch && mouseEv.type != 'mouseup' && + (eventName == 'touchstart' || eventName == 'touchend')) { + touchList.splice(0, 1); + } + + return touchList; + } + + /** + * show the touchpoints on the screen + */ + function showTouches(ev) { + var touch, i, el, styles; + + // first all visible touches + for (i = 0; i < ev.touches.length; i++) { + touch = ev.touches[i]; + el = touchElements[touch.identifier]; + if (!el) { + el = touchElements[touch.identifier] = document.createElement("div"); + document.body.appendChild(el); + } + + styles = TouchEmulator.template(touch); + for (var prop in styles) { + el.style[prop] = styles[prop]; + } + } + + // remove all ended touches + if (ev.type == 'touchend' || ev.type == 'touchcancel') { + for (i = 0; i < ev.changedTouches.length; i++) { + touch = ev.changedTouches[i]; + el = touchElements[touch.identifier]; + if (el) { + el.parentNode.removeChild(el); + delete touchElements[touch.identifier]; + } + } + } + } + + /** + * TouchEmulator initializer + */ + function TouchEmulator() { + if (hasTouchSupport()) { + return; + } + + fakeTouchSupport(); + + window.addEventListener("mousedown", onMouse('touchstart'), true); + window.addEventListener("mousemove", onMouse('touchmove'), true); + window.addEventListener("mouseup", onMouse('touchend'), true); + + window.addEventListener("mouseenter", preventMouseEvents, true); + window.addEventListener("mouseleave", preventMouseEvents, true); + window.addEventListener("mouseout", preventMouseEvents, true); + window.addEventListener("mouseover", preventMouseEvents, true); + + // it uses itself! + window.addEventListener("touchstart", showTouches, true); + window.addEventListener("touchmove", showTouches, true); + window.addEventListener("touchend", showTouches, true); + window.addEventListener("touchcancel", showTouches, true); + } + + // start distance when entering the multitouch mode + TouchEmulator.multiTouchOffset = 75; + + /** + * css template for the touch rendering + * @param touch + * @returns object + */ + TouchEmulator.template = function (touch) { + var size = 0; + var transform = 'translate(' + (touch.clientX - (size / 2)) + 'px, ' + (touch.clientY - (size / 2)) + 'px)'; + return { + position: 'fixed', + left: 0, + top: 0, + background: '#fff', + border: 'solid 1px #999', + opacity: .6, + borderRadius: '100%', + height: size + 'px', + width: size + 'px', + padding: 0, + margin: 0, + display: 'block', + overflow: 'hidden', + pointerEvents: 'none', + webkitUserSelect: 'none', + mozUserSelect: 'none', + userSelect: 'none', + webkitTransform: transform, + mozTransform: transform, + transform: transform, + zIndex: 100 + } + }; + + // export + if (typeof define == "function" && define.amd) { + define(function () { + return TouchEmulator; + }); + } else if (typeof module != "undefined" && module.exports) { + module.exports = TouchEmulator; + } else { + window[exportName] = TouchEmulator; + } +})(window, document, "TouchEmulator"); \ No newline at end of file diff --git a/supervise-uniapp/static/customicons.css b/supervise-uniapp/static/customicons.css new file mode 100644 index 00000000..14ed5fa8 --- /dev/null +++ b/supervise-uniapp/static/customicons.css @@ -0,0 +1,20 @@ +@font-face { + font-family: "customicons"; /* Project id 2878519 */ + src:url('/static/customicons.ttf') format('truetype'); +} + +.customicons { + font-family: "customicons" !important; +} + +.youxi:before { + content: "\e60e"; +} + +.wenjian:before { + content: "\e60f"; +} + +.zhuanfa:before { + content: "\e610"; +} diff --git a/supervise-uniapp/static/customicons.ttf b/supervise-uniapp/static/customicons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a3c8ab9f22d18d5d605503eda314e5d2a31fdfc0 GIT binary patch literal 2416 zcmd^A%WoS+82@H>?IgD2#K~q|hdkDH>bQB>&f0O>=25F@5|GlQX`8fENObGiPEx<* zIHl>yDoB8U!lAtvAt9k$df{KC1gT1(TA*@aKU;Z8A_c6Yj%<0Ab$%Pq=pKvad z-A@0oKRQn&-bGc{Qu=Do+{0<;!iM5&AR2xX-va&;wQns~zS&B(8f^c>xHVfy>O!2V zuzd$(TTZ`OWbJet@*^0lc|DhE{bb?+k@a&TAyX`DmiI>vrzUh9wW#VtLONPQPcgH{GfcG%HCo!>rVIv8K7)wAe(G9W~W6s*} z5MlL3;c^>AXo`e0v-20pnbpgA>V(Zx`M)vCu4i=kuX|?D<5C8Ok=0}+EcYWmqwucq z9k>tcJ$p@N7UdY3K%*@M)z9zF77#b3%z!fxHdq^cAvWrY zjm5{}(W73UQ-HKbh-#b|iyQiGC8|vcP=ZB(`A1^`pS7F$eO6f+XC1Pl#U~jwSS-Z6 zoYdm6fFb2Ts4UG+2aoy3eJ4h)WHMJqPWZ+ggv;Y`8Ne>v?K0a?dV7a@d%xnHstS*S!80>UHNq5P zcT^Cf-6E!7v@~-j7+e|8elTC7!G#HLb7P0n=yWzJ9gWT2iG@K%Yp-64j#evA{TmZG zWJPwUm;la=mS?v1K>SNwq9YWdlSr<&p0z19Zlu(!^)Mr=JSzZ7)T_mjuz=s|>kl!c zB@l~)Q)H`{IH*LH!r`TeI(%*{!Lr8Sps0GoVXsi(ZM7mhk8cX!KdH!FU9!mAbI=zO zP#q6W0#>gAiixoIV3!-P``)ng_~q*Du3#5l{`J@HiH~s`$rPj0xaF>5@3G|gDTd`t z2}&`saAq1brJKoCUtp5O z;^K01ht1M-_H0vw)#X+iuR9#q9aYKR<`5;DCw%I1?(O?_+2N4wrR4G}CnNsOmL?^| z?r41nJAO^`vqW__v>3uGEQc3DyKNq9yhk|YJmP6uSZGw-E=vQP_BpOMS9fi$j;5~R zmD%KpS-b3(?Z^BHZ8{R|>1<(-tEK86+@Y}Cr!9vT!UsEbw=A*jY1`o&ywm0}zN$9* z)x4>Q+QHOsI)0nBn^>R*ddb8hc%O+S-~kg`@aNM^Yz04QVjB(OyQ}-O!($Prh)GSD zCqQqSm{BWzW@3Sy^o5B<@ZXwP0{+Rw7E);6#8&VJCbrQEYc{c+0xUUQO6ld)s(Ni( zT~8MB=|aAI*q={jwz7KZaCq3Sq)MCXg}gcviX2jNseGz*=w|aqMk|-oYPwX&sk88x z%4Q2{u~gVdCCj0;a=Cai9OmS z&fu!b!m{+7^jYf_XqRXcdfcZoHN+IGM+T-)9_ZH9MG(} zz7$rH1y-?vT($u}Noa>?&9ExsItb%AjOS24WW<@{KiqoZ|NR#gi3v<(60?v^AJ&GW i+l8&0>&^ObYFtuIC+Gpxs*A((`E@KK=o#Msw}} literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/logo.png b/supervise-uniapp/static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b5771e209bb677e2ebd5ff766ad5ee11790f305a GIT binary patch literal 4023 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 literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/uniui.png b/supervise-uniapp/static/uniui.png new file mode 100644 index 0000000000000000000000000000000000000000..710f9246e7f27c03d72858b39e9ab57d1fa36b5c GIT binary patch literal 22521 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 literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/uview/common/favicon.ico b/supervise-uniapp/static/uview/common/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e0af36815787f184eea5e88e44602b9e47ab9994 GIT binary patch literal 4286 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 CUq5XC literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/uview/common/gray-logo.png b/supervise-uniapp/static/uview/common/gray-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..21a69949dcce4c4f89fa494083f0d00988487cb3 GIT binary patch literal 10255 zcmXwLHurMtVOQ$V_rT@hqOX-TQ2msUC!De07ae(#<4 z$IRTBxs&&vIdf)yNqRb}1bDP~004kMT}{aV06+u(lVxy#|Kij z{HGXGLd*sLa0RO?DHsKz9hTtcFetYT9YYF+Aq8&P?qA0tZ$yQNK{Cv^Madc4iOIK^ z%J!;3F)}&YV#Cs`+?CJdjPxX?cDB~hxz&hYvSUU^u`@%8hQ-u5zdkLmit~YPhE4E2EV#7^VU7e*{y1;-g9|T0B;!W@l%+g3o_jgyJR&FAkg0;lVRdZL7kfqVH(uJYBkFay8Ky*v*>_ zorEg`C}p`A6#M@TAn8=T4kW0WOS=`QC~kW*lpDc3feKTy@*1iTSg+0-Rq81z{^BmZ|NuL_EOo< ziO-)txqvdcU`fC$d;*jka(9+1EAnM=9iHNRc2DG#fYPZbv_d)&?(Dx|fhrTsTuQb+ zjnG3=sl&c~yUG*}1tA z?X`kZXt?uOzEJl|9Td4>vqDu&1B!_)3}`qi+-%qXdwl+;H3(ElNl0#EF%)N|RLYQd z9jlel0#0#d7#uHo{hjc{GnQ`~$~5AgAiXnPt?4PhIt*!1YeBxv9a==1m$RE#eRQ?yxjx6j=qAJwPlXZLmZ`l6mVxrCPU&E7dsbsh& zxq$@c70a4>M1sUGb<=UiC(s*cGlI^t&BtCB}CozOwXhvC+wa`7kIQRDT2r@ z4lD&uuRd-slf|V%Oh^2*BPE=vemwNOH zk)Z|Wy00_YhQ800_txzVm<;nJWm_dTJ-1Ib`%)e`i)G(8Tt4!}&Q`ZPJjJUlQr_%c z+Hq_$lcmZSRT4b;F8CRv#=6b$|P9=u3xpc1*QAbvXg?BUHQRyaC2FZZ$ zVICzXd8kByj8xILavJlsS?o#U@iWY{h#k}OD(Mo*x1`ly6H=i6%8RvC!T4(eIgpez z0?ni%;rgB+>D4XjI#15A3vWNuUXIEE)q$St#-unMYnMA`k5B`g+P;8>Ar&nHW zVFG_H*Jk#(S+M#ZutLg_;|d3^i6nE<5yB6+od^{YuvsS6(!H$!9yH*BIGRN$&wv;k zhP)GnrkPtG*NGBF95QOywxq#*shQ}l&^fRCsc6Sr#vl)>pbhL1Z>juMqCVoLkt*!j z08q!2W^zqR0n&ZohPv$SEYYXV7qzd}u17GM35qv`Y2f1n7W-&Xc{#-)uWYL&2vJvYFH~D8(01}c3#3p|ev1Bmwd2qBH4KRNZ#eOMZOZo2w%K zej)l^vq7@H=T)GkrI}g5j0#ZeQ$vH$fRR}(GoERnhIxaXawKTa!7n$7W7|+Dwkzk5 zyHh2DafNh1R~G*?fH1jIAvYK0dxiXYeLmc{Or(rhnEtyaWT~kI-k0v7=acwFA&B1dcTsVX*bqPJwyT_CHPHyoQwNxKu=k^BC3(!C$Z~%L zutF_16v3+&`+7lDM)hmB3cm0*(w__37X6?ESFF{3$DrdjQ&W*nf|$>W(- z$;tC5&nU>d(CW+23SR8~52KzB53EG*VF?Jfmw7L2s81tCQ)tIo+R9@m6p}C_RPJ`xMElK8 z`hs0RB}*ZD;kB0E4>Z4?VHF6WJc=3mp;W;=<$Y&g_{TKT;dQ5%x_wnnmh`bUYsH2q z5jptyx$EM>UhwLi4dH5GFP0S~A&r%LYbUaw{H;(>#_LbFz>{wubqyD`GApkCez-$m zmRL7Uo2Wtdj()_KdfM5J$lyz9n`!Uic!dfosTO5gQxEaH)dYaOgoKkPM-lb6s{SdM( zv>s6$%QfZxII5CORH_4meHrJ=LRhVfx+iL#$y58CSymbZ)~^LLBv*+l3&ncAPR{kO zHZB%pu87^Ao`NEsLKziJGwvc4+uj=@+p=^BzsNL zKyeuSL#B};+);bG2DTwnX7K_!$Q3caKp&h9G}|DqzDV#d7q^c#Yj`sAeUws`ogtU< zQA6_5LT@qU6BTq@9LV^i3q&*X6nvG3dk{!O&+v(phFXHxRB)cT+52lQw&7ZBo`FBD zd*0gvoT+?zezPyqSzT;Bb{4-4P6i1Cu=}u@i1fM&)>VNxq;6iGl@kBJDF1wG@)?&g z^EC5j@;!1si(;0LWB;9ZjVp-E}vbx57b6~xwkwTIj9#nS8q zro()cP`m@DsA3ySdhe8DOVhYwyc&?ZY|`uCd?`!8QN5vT>~DK~+x$erG!)mecGIvK zQ+?P~>;rZ^?9^eh?U+yL96!*k$3qRbGXK}yB0ndC#W{<6;zE1@~5?9L} z)2@pX2v5o3)r>T_TSo7sAbzeVS#TnuPylGKs@(k|DlB2WIg5e{p9A{#)@l0}Ga(0E z8ck4m&os?)&bbgEWBRvah0RDCsM^0rQJf-7ROMW4M5}V#RYE905aJ@`QgUR+Tul`0 zsDG`;*g0rSXKx0zn?!rKv-4_d9JtBEaW900TqwmHwGceMW_byTtWP zJ;+*c%G)4JYH|4JV(y|5@67*7vcyy=#jOTC0l)5}A3<^h-zaG1dxnlup z2qe&&fN%NbN%H^%U^kA=XGp0;_MT0IlnyYFf zkD4_V!)*LSkLb4FbrMOU|EBBWFI`6;yEkW>U|D;Ss&75zC6B*SX&8Eb?H1L1$R>31 zZJyH{P@wF0o7k`%qNaP!U^y}lk|Sfd$B%}CH!v0ByX>KE9s1PYiZb=_R~^*IZD@x( zhug8@LOEl_lrGJ)I!ZE!)K>zL!0@x0!T!9#S6_Mm>NlsnO)UtDdZBPiE?j3AepF&? zHaDpC@``lP{Q^fBGrU%gq2#q1lkHd+7Q8tjzf1)UxR1oY6L#vteEQqyie<0niRAN; z#F@O2Vlwn0)x?mb17q#mCqgpyA|M>XdcsEiuJnqW8EHI*E;lC|=`3#qGQMFcd2&EB z7a3XmxHIa%kum53$J?0!*4Fa#Fdp5Y&o}O>x!$x{UG*$TQ|ymUJ)`AjTVBqR1VMIl zds|x3j$p>eZ0Bsi%nc_?s$jJvf1u;1lwKCT-WvSpO#^v6-=MX5apZcF@?*nLxKm&4qPrKMVQN z==y?pugG55`Y$_;-rV+4poq5B`MV;v4B%U#c@{~(9uJfn8@rUY6%Q?f%#TqEp=SvL zO)By$m3%KFlb25^D8ge9FpTb97_PCc$y>uGMKf0ghT#6Gx5WO_UxL^@r z*RGmV3Wj$n-5-Z0Lwe)$ajlJJ?20|CAsj@)7-^iNj<0UQXY*T};cVf84Q|owoTvs@86AlIkL)_nE-d4$Jgk4>~A z8d3Ip&S2bU-+?}2PKAskn$sg6icqr7w4bO3nttU@tXKN*w^dAN?kvtYB+u=wOiyS% zb3xQ*4MD)@skn!fYomUxk`~{0znELtcHk2Zs^-`KBQhJd2G=<6)%KI)h$h>>TaHuO161@ZPn3C(=&AhO+Al zE?vy`FOX0#Ftar-1w8M`V|gJWn)He9dF`|chPA?do#6ub$!DYlHMQq!6a6gMizYU{ zMTFtlP2z;;FU|}X$n-NgAs5aQ2iYoSY(#S4I-OJF`vFJfx+GSq7{+Ie%J2sXi68Oe zy&FQ&4AiZZ_3ow7^4DW1@4e_cc$oz7d8f_sH^d%O4%#^D`sW^z!AZ?ndKxLma`^>{ z*Z=|+Dm4DK5Y_V5)AQ$e!HC4t5JIEo+K0A8+)hwj;$EJB1vf z8Hc3_9X~m3vb)87tnLD|Z2$I}Xta`;Sqd?;o+jp#5KOt)7#&Yg-8kR}HXFdcLnHN9 zq@t&PN!#Gxbtc_zTJl`VC@+TFX#{nTN-SO&7r66NZEd*wTh%ffS~_Br9K-!--Yv}A z*(V?$pnk6tx?Ry9KD`fr^CAD;J(pkQAq6XB16{Hu)=(BI|5dKwh#H*wYiHf_<>Z`# zB(hFfMO38Zdu%I8Mw|d;k2H#Fws-0-xGE^f0%e18#KuBkFl%#<4`f_3ey`TVL^yzz z=Px_N4yS3f*p=g^RDzx6NZxZZX3dog%}FKe)Y^6k=_de{=CRQ7XhH_2Pz=;${+H}| zS)o+n^FaEswjrr3q*d%; zfy`5@-!@(F(9lF%?X83PZt*~K!+Ksz>PmJl)CSSQy&!VvHOeuzSryZ&tWDm=Hl45T zwM&yXJr=`UMFRW)T%530OaAz=-y2v<6g!pzo--cq5g=`G%Lpl7iiM9oUXV>%sDf=1 z0->J@6*EX=`b!DhxlyS2=K=-Lk~J1OY`8>g*EKie=v58fR7e)6(fpM+JTnzn5)6f*%@8sHj2b74G}Zjjo&X;)Ms9WR^@xw&+PmH|mhf_3iF zh@gbc71Y9PMG&ylZB%8qe?|xjX+}p zLc{5ONA)pyb?IBi3ksZU`rg7}?=44jLH&D`r#|OwE`gVPVd9G4-uqN05f=`u^U>T~ z7oCVv%cw?+)X!H3UyuxncidC|c{dA-KEw*mXtHHFcCV+RJ~tiIvd(HA7~2l9{=mPL zV{kTYA@1g>vCGG99@m-Uiqq+eTSvGIfX+N|nIY>p!rrFG;@%j4rF?TiYef9n_jB_q zfiUXgjT4wY#L3GX=~-o?1p5 z^2Wabhqu}naX`z21+$j{-FxytETX3}CtjcV$_HB4`1sRc!m9H#^so`YxX z{lrXynA4eQ6;iTJDOvaRM(ucqe-`-E7YmL(oYE}5+gY0nW~R2r4{uM2&u^Z!9(up= zKLh;|`F*dSoO0l#?kG)8V=VBNu8KO>e{p+$5`0IRI;e5IY%pj|d~(t~&iv`T_>R!I zyQ@=-sL+LpH5~ou6`{D$%HLRA&sY|d8I#ZXgyK`oCPij^doM;igLcJz7}GWXuo>)# z)9!?`Z?J{8#kfCvVHdIzWAa1=n&Uld`H{ndAYE+Z$HbDi5WQ*2n9OUs`)Zn58&Nb*j3MdH81Y$=;PV_!gFC~zpBv{MuZn(#wnyev?g`ltzv2RE2eQ@65^9{n zKDtwee5GN+tM>xtcD3IIOVz(3EO`dQLNgJomb>C^S;bfk#Ibx5K>9QF2Y%QyeQ_gj zq41`dm~0wqCMOW!~a3j9uJD$0jvfWPuP!QyPI~#L(htNE zZr&Rl^{PsUan`@aZ5))K>&TAPLW*a(=2OV*4k*+jWA{NEDfE~6&ku%9Srvt)(bq$4 zwrF2s5Z)vp^jCd#=7bdu*YMLA_Hz?%G<1IWFpGsaftAD&xIR9`e{HMouzA`ddh~@M z^zWs!mb+(X$X~6Nf!+uTIn7?hu;;85HPcCd;swAmaO!OVt7E6*9;&a)wb$?IP%6*?h3l^IoB{V^Y`f3X?}8@YFr4WvDus*g?)x@S|4=eqKc)e86QRLsj1ck%_JPoN z{EF$EEkXQlN*xbX7~Ib7KnqM=GljgzSr*i|+^7QiorTy-q%!93PTd(S)~wu1jTe4& zC6S4opB>lK>aN@Ab+;6{oDNRE6s&RFV7+3^OlVO|Xnc~yELOS-9_i7XI&h4d+}Fc$ zc98K7Ki2MzEK5^ggHz$_C#c86h4Z3R#wzS&AB5GHo;Nnkt&AUc<(ImS@v#XeU_g1( z13$X699iIS1}t_`PHNx9;=L#LMcNeqvSa?F%2&aYns2RYKG_CD8Q(OzR}}i%3~k8d zl#evRc6 z7e2T6yBBD?Wk6_v3z{AMc4X$Zth2p0o;`Ojy!AI{Q1^JwQ4+BNZIpt|k5m?8L3*u5y_}rmD~Lrmj&D;yZ;S5gdTy9K-t8gcNbN>|Sx49u@bZw<(Sr&!0P_8VkBk zcLx;w(KOjSQx-5gm&>^^h#@;M85?;RsdIiZOB5mk9D0EY#CAu#T#^g7 znU*ipo^O$}X6z4qEqumiuk8mQSly~IIpqy*D%@mXrLJz-`p8B{)~L8K{!1}dbx8$v z2&TcJi#n-`cLb-%wGT6fEJ|5T>lM2+9~p%`BaF~ zf(Kr;wx*CkL#~An?F4(O6<5fF+3&7-~VxFy#`n9DOyLJxj0(mVKdr zg*oS&ePo46U7fQVj=waiEGc=&TchUjK#7|IBAL|$9oWA0KIXT}^HTu^aL^<@@My)O zs7hn^^4%~(5DP49d^XYLnT=&l)D5Jw_Hq)-8p`xcujJ!QZ(l;R7^?0*mSg{l_1toI z`Lk2JzHs;HHs)l{*-Vb6M^vS23xo2e-wA1i&9KR0%n6&p8IVa$()q20)}*XxU5I{Z zPIIU>Ek@!_^^X4f1s-^%iDPjAbi{haAO3DjEyXeWb?h50CM5@go1ct&^7H&axaIvG zstc{yH<@tmF$@+#%if*vf?f-31U$6tN!#700{T58KAa;E3ppkQSjX>|aKFBIKH%I~ zF2uCh%)QtufqKTdpzuV6vZ2V!5Ocz)KYhJ50)Pv73HYR~nic9?s$P-p-%2-L2d-~y zi`6J{grDs+zM47Ht4tG?x+anP>uzOLavM>nH0H}Ys8ta&%Fc#R3U8lGX}fv>^p2Ae z4<@7e+i&`Ns&yEA@p5EI9yG=*i+wf?34^4fYT8akwRN{RX_VZL^*Xdt2!$w#A=^ho zyQ?`{eA3=UAK(Y|Th5nOQa!=T+}cb{!W81qGDVCum4Z(_z+DscdY zLoi&mgPM;mXqAgFp7MZwCI%LMzT{??(6^MDsf{k!za&;Jgpm!CFq@T>VuK5dq=?$i zo7SOO4*0IsS7=Y(8$XAkZ3>15RiVx|?hA@bs{os5%i2Ir$;K@#h}LWa$8Zo4s-11y zGzcFLYSS_ezbpg(dsHKh_0r>T{Bjc@6@O@!{sdZCZ1rQBnr`^sp3BW; zL;q0go~8_VwNGySE)=be-gO`62?HYgkai7Rwiyly3Wrv$qTL^RKmX(yT~jiP(Jt$% zXXdy2+hF8au{*^;YKBVbYsfzqq0pxKF>iQjIAf+h2~p(kVo09)C}IM{4;H}Mi|W)_ zy5M@gU{?)6fr2*=RazAfM;!^ z^2oSt!$Y<80c_VXZ#TR8`<`Z9Jc})jW}z-LgdpCJ&|W`#SW4A6(KT3*>H;HCj!~Ig zu{sT2DCJUSY75Wr`?OG{#HOo57gz<&wUZYT#xwC2DfPqj+a%KcL{{?@@@e*wwsU_v zu8t$}FgZ~AyPZ>r{cnZE8$mBem-u%~Q4PikCaJ1R42`UuEB`(N4A} zalV-8RtQu-2-E&!K@{46cAe8rCJ#6i(sWSC1?W=rdbJ|WH&r2su5alajyWH8g`74+ z_qHD2;*pV-iiZH>vZGMQXw{7sJ>w2LYAgnhC8<-kZn`9il8ua$Yv`|DVba*kc8$yu zD^m((b#!HLf)6Ihk)F)83M02J8;7Y}72~bRq>CQ|c;io{YpoZF!W#gO!w769O@)I3Z{mfc9EK4O#Sj0ahNEI z7O?ZG8#D8w1VRqZe=^0np$E%`gpw&jTTOKaNhR%fw=qXfAv9m(8n2t4%{|Q^8yoN+ zejC@HONqvuceuw~vwjeV>|tP;Oi@Lk2JEE=5fQS7;9zx8HVO14Z`Oyu!2&-*mn#Nm zto^&-EGJ9!2kH>*#crrB?r{E;=}yV0n@yQA&tlH4h#0@M%~-XyYZaMNWppG70Yc$* z-Cixzn>GmHcw}_GHp9tre2cUnTxcHNbA!m9;33I?zYd)j&KJJIZ4+R*=KiBbvB7h& zsTt1#qs8d|vj~Tj--eBbE=NyPoYV6uMWWaI2ysLYZ$nm;T<&r!(? z9RCdPbZ4dV7vJG({bH%fU!Hz%!;NaN3?{q%4{*Y(ioWo8+RB7x#=NAtr5ywKycley z3~yXq!3>k#Mla5w8a|JO$N7H{O_n8t7O>I;IpA;hN8!65mj}1HN(W9$EZx%ZM~y4V z!}F}xI=k`V&mJQ(++xVW{sX92gUzE}4VwJzx5yQDW9{mU=M^M76aM|%A)zV?5-o7%s9T$i8edBQjs2 zGdl}+5>pE+8%II1o31`G5*u?tGA&L;7DZ=q3u_x0UsnrtUnPKe!N|E=q9Ns!Fi z-QAgwnc2(Bi^+?f$;s76HpagajBY-T?k3)hj&9`tW{|LOGjp|ZcDHeI zB>9KY#MH^dU6AarrT^6g2j~Bxb#(jhZu;9{%-$x>%&bf-|1{~}f{Kd&e^CdA|B-fc zSF`wEd;g!rZU7%=3uZM7HzyBQv%ikBB>zX1GoQGtg^9b9E5OOg{@=Z*V(sMaW8Ywehqt zmvVJ-Ao*95`E35PEo}dh@4vC;|JfGy|A=M&YYg*0j{UzJ{qL&3(eqFCf5P@};eP_( z!trmkyZ#O9t?Qh`zZVvttb{1Qd*dN)UYs(U`xvKiUBSw2!@0A*6B z71Mqnk{G!5V=r!xVw7vo>@ds>fi)CICLTMMcVvWWjRGeb$23+am;oL>6ogcy%aWs5 zXScg{_hMCVdHQ*^MI&ZV1@<+Rd5qPr2V~7} zx7?eu*{@fTsC;-v5tq?Or{TUqqPb(gDu~Mp5HH5tHNLjCAj7yfgqHwZ7_cTI8tna6 z&cHr@{65d1LjlLK@f*ATL{7Jvby&kB;N=|@S>7U$*X#Po<-OMnsr~SK$0%Mx_DM&& zcM~;s&{b1Ek>Rrtk=M3QKd^n*@VaRQl>hVev_TmRb|UUulPgq)@WlQ7^Y_i! zW9P8$74mzL7C3_A7lmXft3;XO?f%g~^sssmcd+=a{#ejATh6t_wT+uPY5iq)Q=bS7C!5`RMz#{B8gxrInt_>!s0wtqa~H| zL<>L&nr%Rs)b5}hd4H$0Y+#kjtBtrZE2XJ!76*7lLb22ZOVfsQ$G(Zmvnf1?WRVmb zSt2Vf#m~A_iLuHR`3eEGff+rbk&R1?G&<1N4YnzEh`?Z@U`m=W>)PU_8y@|Xao1Le1>{rk7>{i#eLsl(P#(&G%cijc?t1kc*~?!5b8u< zD-ccE$%m4X>6fRW;j(C?jCXAfNYnRT%5|jLF%7kRVXyCeY4k+1^mrnIKK2h@6hZVU zWvN_LH};4C&q<-6qD+qp%0 zunNQ{5JDphh|iuQ^V?^Q3H@H}c>Ho992NEqi-79QqZ(*G+{wu$R=l-ptEAG#z}BFS zGi)S!kmW2S=;0pqkc;GKjn;+2FxgV$X>0RIZ;RQR(%Pvt8=VTns`*i=-*vjVlLKn=nsu+sakaw-bLp2cegRR*qT+xoCnqM zyR;EM@*oYgsu=NMRBYb1^MgTRHhBvfozKWE=A|iomMFL?XA07IN21YANAhj|fp)$; znE@n88-x)hDEWV0d*`PNUgKuS)!P*s0UK*xMTCyROr4si`)V zs=UiDs#>WNWV-7UH5RMPOLd0-4G4MSO>qYD(b39y!!!p`Nr|M4US&d;U8-dy3TU4nMGBvyW3V7b1$1xzN7N)Ts+e#g$bEq$4KuT+eB?h3d( z&l^zclY0{gdV7b`r7+jHE>3iY5eL&moSQz2kV$P=a8!I?!=%I_p$pMo2a7}` zr{BO=m05G+jx@Ncx=6^hSYRR-?UQ1#Pz>`XwUX3Yx7R&bw=8C)6&GzIA;eml8O+Yk zikHNC_Hem8{;<~F&T|zKH9Z#bp1c^(!YZ+UY-6h-p$A_2Hf@=*+te06uupe1{SA}~ z+TjwQT5~d}eSY-^+*M?^N|V>>6jy{&SUpuf@~83-P0D-yWt~ypN2+VaHy%2;@39)` z>Zvxl;)Z?FjE5fKRU4;vZnK!G#{o1~>eb2X6&uyiV>G2$n)Gn;?mYueZJkefDW}>x zUQ&mW(!{@NsfkA3qRKqE@u*^HY`NBFsWw z#Agf#`F@PuKRhu5m#Z{V1Ij~NJau)*#ydjCD8B3J4NS%p_eZ2D?+X{iVzuo~?)p*a z)7~XmsGz@{o$Ys+1Q~!0MYaw*disH1>KOj=sI}0iYGVqeiiEHJX|#+7q^V9aWhbfH z=(ImzU({Mn)_8zwo~71eaRZX`*!9Nw7TX($d=QH4X`6n$6owq$zdV9R+$#1&6JwI8 z+D;jhKif!hlUBUx$vOM&xN`24%X%FHl?XOM-1X;vFSKgcC@43=k)8on{etL{$@$$59ft#bZ#PS9>F^D^%d2IAY(& zHqeYv#bptnH6$`?etneL43gPrIew3)3yF$qw zR+3~9{;j9Cv`d|W0P3;^IsFEOY~rU`5EtQnh&o6fV31^YYRJ2sYVyD~D;*M}!_piV zxoCgX>tg(a)QnJkGxZx)V0DhscR+cF-D<+##tDVcLe2oRb=ys0OmljuW0Lm=4XCc| z7{dUd&`jKBHI)VT;|K|MrIa*JM|%kV+=0MRVPD8#RE`F;p6D^e$|iX&Af&1>@BJ!+ zuF8>?<8+?!K}jk@pFjRJzJuqv8?AyACg5kawQ7#j!N-nx>cd1H7o>e9z)w8;d}Foy z<59n>TIyLfenaWo^Hhs9_q^^v0-^{g))ay9=-Jg9~zXh$tLk%~WB6M-bdq6a9!!)&Ry2{uHe>(b# zUByT!%7~)y%iaNVSEFiCDBW3m0V9P8yj=t9m>MnjBsz`>Kp`VDP&@H71NYRXy#LCy z%|*0${21;-d%-uXOHapyg<_K?|HFmsb;Cf;^Gt=PN&O|XtFF_WC8H%LLS6U+f<}tM75spDp*+Wp8ZE<66IT|CMf&ScFnYq?b0p+v z8bANxyA){~F`(c$p_zSUo|3$W0K|)&BDR z?4ErTK>b8F$;0J3t_s6td7K|(A)3UGoXA~R6B$bNU!kbldF=^J4K^F)rh5mYp$#&_sJ6qAhy3jH@jfARYj>vsd@);iuzYVX% zD@`57y-wpOJE;K(dioa^x%;nz+(1l+6WZXMh!+HKIYX5Ejb$uxKLT`K#2oEg1G2=Z z1-~AmnbI5o4`2AVFiU|^R|&6}tO0uI?COhX`}Tq@@tXoMvuph&B5W|~Qw=%GmwxU$ z(rbc;JEXqQ@r-seC_{TvxIlRd7S-cCEszW)ad%@gsJV`NDl`gPJ+T-yt2S@6K7lWo z&y=J9!O}Yt%8$q&NpF5pvzKfRIb#jq?Dz)&#RDj$py?957(r{4^z!X>UGZ*X2!tAg zy0R2P(JhZ>qq?}wSE^~uYfxV+rXOmeJ?DJ($MUiKPdD1on z717ZTZ-7QMKxT#04hgkc>)}7-)*Bd%!21SFK`1s;`MV#rTa&+=-?#-t5$S%n_E1iG z^k;ynS+twE`^b9)b1ac%Q{iw&d_-S+Cs$uQY9!#Ujp|FaKLPtM(& z$Sp+PT25NoJw_VHR=|Z;!Z?3m8$*GTh{E}^f)y4-qO4AbQZ&vwVCFWlJ`sGXnbX;k1yTnrN>8#0y&3CP{i6CM=mcYDHKTtwQHAvCf=O9l53_iC zZ8c7{tra%X*}HNqXV=;VEoD~!+|xO5cktTwyB{4KbXQ5C$FPT5;?JMfwr$Mq812_@ zL7BPzl|I+3A2=u(&jIB1fBaN&z{9mArRl;RD+A;wEVqJ|eQ^Z7;~@p2*#c&qDv7Ju zJ03_~a@{(z#JY@?kR7znjmV$3KLp2VBy}K|o*A=b^I~Fq;*#F&t~B1~jyQJ24|eGi zSE{BT2DIv0o(?KgaI2GY~55xaV4%40C7unGGu!mj-I;xY^2i73tN2_P=aeT+I(H9 zjvWZY-{Soiv+O!QmnjX~tVY^(-ndZKHbydMK%8v7?qUFK6HOA4u6GCSxB4Dd&_(V%w)~LtzXIY^X$A=ce$yPD;Wa2ZD zsR80`aTl_&$jj8XzY2oih8W2>tG60&bli#!G;%W-N2lb1f=bY$n(aem6E>wsQ3st3eSjqGF1U4j-DYYqp~nu*Kz^r>PqnY`O19DUA+CqY0$~ z*Mi9~+}0V5dz9@?7kZ?YVHkJHDeYuMfhYIVFREI6W1B5M^YSzQv9mKdCk!O>c6*!V z#7@B9+JCEjN~BZPIL|MHnEbA)vDL5Y*9Pa}lTpB;}~nx@lWAr zbDYeq2<%9BotN37-#k{mfO)NpM&%r{hAa`uo8;BfMMYMnDWjGsi5fh+p7vmqowwLn zb<|>HC_zokrxB{#M-s0$4a=knj_!ztCNMtVon3>Zr*EAmq&IntL1MX%E#5Z;`5yCJ z*wkU`q|5oN-&<^9uO7ShWcfqE^5)|e1E*L(T@#sry#mtPKm$6B0uqbZp@_2FZdVV~ zZ_T}tUka8?m2B~eQNc%9XlTj%g-gN4h;MaZhEHyDeovw;GHWdsc1=C1Hvl+z3R$2)ritAC@0DgI-2?(i=L5XR}`0d50+?enu-ZXy;Q7tl$`Gz7@-u2`MSOIEW zBE+lGpWkQP(B7iLBav1WnZLq=779OHH7+mV65vq zdV_HxM0M8ogUpHh*gnMS?!`qOWQRzwU55gDRX1QWK3FZ5t1`71Xd`8F%<<~f9u}jT zts=%kdv@O9_4^^04_p-_Dm!yl%aE1)x%J|n6eKMUV^soLlw~b4Ga^z-E0P@*{Ho8q zDYb5*aj|k9mjS49vtM$WRd=QHWRZ}3 za2}g9X=GKelo&Ca3*xT755SQ^hu~eCgea+U#%KsGit<=52%tq1Y#FZkh)9F{Lo(Om zkzA+7yIErDTZLAF(2rJv#2Go9LUl4tH=)|>jsd?IhL3i1=?{}t$RUJWP_EXS<}x?p ztDKX84wrnT`h>i{;>@FE@+N!iX_e4oy#g$_f!V}kC2aGO9d$=izNhEy#uKTROUO?I zC3#(|5Dl4d{BM3r#YZ15%-`}M_t#snSen2cst$kgrWbOxjZTGY^V-y9H#YI*HCCXh zs{#x%_3h-(24(|sLNWL%58GnYP1$Ti~Z!G!XE-2q(A5OX3Ex$BOo(v8Qc?^HoP zxvI`(K-7tHd<$6W65m&}2pKaP zLR`KHphG7Q5XLGB4(1_5lMtnFMN zZRepr2 zOhK;9&mmcn+0;>+T(wWtShpd#wB1lez8dZw*ePCm??ZSc#KM;XxG<`JpRcmF=#3e0 z&6A;3VSxE9GotV`XAYlrw7Wxk`D1yX;!^=U&)`q(l~GX`vOWk}l3<}Nf7B4oOvn9> zT$xPkDzhjZ+mPU?z~|MA2D=T@=a@tcvW>u1N4d7JtBlbn!e+1lvEb=8GV#ZKNL8n5 zd3nc=yHL+&X*_JO1GK6Q8!uz3w$<^Q(Os_9dL7iHosl0n1odN8TPO0-3hnNYa4)QX zP8oqdZ#lNBs%acl!xn1HT#H#4;DnjzGLu$RyXrS*hohU6(k1=~<;~$~qR*@xIyVXO z*WFB-)umKO&B5+)u1vqLW>wHB+oQ#M9g5t00vHH5ho0Y4 z#sNZ6YAIFZ$u`{d)LA8)+-Aggi*{M#mvmcl6>7t|#YIPCu7i)VU=V1pYoL4R-)xuS zDz2`q@MkWYn}*#gn|aY{bH4}U^Nh2E9A=dyRZ6o9(In{$o+}+SNjc(ZoH4kSo^HYB zoa$R6E8%en=1E-C;Wlu{d-$(=^z+VgMKBPwO`T#-*qQ80@KJ?oZaiH^hnXAWRX&ls zSeAQKR>(vN_Z(MYJ~=f?!I8}nN(fTkC(m~8Mlri`8vTcE$m4g@bkfj zcFV~fj>4i6WS@>?CEGCkowc{Fut|qr0@7rV^>|7~fj>2HzxeSwRnI&eC>Y}0bvSm* zDO%3DG%JIdsWf@N;P7j-*=8?+(hD*c29%AhrfQ@2$;D%#PzQeJYbO;ra7hZ^5|aVN z?enu~0C$#nT8S)30(flcMNF0O^;30UqZUbw;Y+;DY zZRJOas2$I|fVor?K@AK()f)ZywWdDFs1)9FL0F#l#v?#3Z=(%2AafjAPpo4hcSMY# ziDK2gT2YPj%%bu8mX*_V!M;vbxnMdDx09w`pQJ8wPE}e? zRAhdoc_1!=V#$vX6HMJ-(4R}NHd=WfrkCI2QA+3-)S&4tt@9em2;8&yY?|LV7GhN zLFiuK*b7`Y9V6eHo`S<3JR6GimnBP@d`@U0Ot-h1fNNw|ynWI-eVoxhM@wB?oGQY$ zY7#HRIx6MQ`1rLGtWZox1I4w+r=z3r)?RI9C)rkPAO;^hO+}BIU`(*xi8TW2ZR@`~ zYWf!cY%H`u0AicPkl0PKtD})<7M;^Lm1C&HZGYgRy$W>#QciGHHwlY(*m%tle*J*| zzJ!AzfVQk!tV5Q{yz63{_mH9eGrL1>8;y_}>Ht`!il}^tOL1RJJH8#Cs{O6oJs!VW zCHhXGgsy?de)*z!7XUxXrW+ zAhB|WLP@2r5R#%on#W>FeCaVeEW|mnasClEX>*={`zavgjT2)g1C^p$fIMFs*ATd^B{NL6v_LKX&832aC00K*dkTn$@Kg zyv8=pQeTr45|bs?L*N1NrF;5pFLU&8&oGDc?$3Cgv{?_TjuZ?YGuZUFiEA$9*ue3n zYOeOFVKeA}QT5;7U|1%;p{&XjbL|nzve|$MjZNN@xR)W|wcx%6XyL`|T2nRqNs&TKS{8!`W~%v~ybyf-I?K26PD~mn}Y)YMoc`!&yz4IjY7W zWxq|rp`I25wpq-b<5B7lJ$@4fbNI&tvajAdl7kTk&;=zc*pOGM-`ICXnH!Rp3`qPe zHfCOjp2+)|`^CogsZwe3ieUBcT+mSv=w-_05lI9Srpnm2CTGFc zpw>uw5GenBMfeyfaa6OfdY+B&aXTXgAc8z-}F)rbD5 zKc_msBGDl~PctYUrx&;qpZbafk|8C~WHD~F*eW_g+3n)7Vl{X>mNFF5QKHgbs@IZe z2#RE%e~nT!L<=mSVOBrz++vo}}>SY@whmJPdRQ7te$jrDZEmGyI!b%D9EeR=T} zhl#0Lx=q-#1k;uTV}b+qj*Y`HFe+Hp5eKlY)~<6XTRk8>-^kiE&+*@ILf+l;P$Dy& zWK7}ZHfRc0wS0}5(B$uAwTY7Kg7kN}`|LN4vayZm&|w#M4lsUSSHLWp+3_}+(o6_1 zUVuxn*53LtrA#DQJebiMM!?q0-nu^7AI`9dg-&VDWZGhZX~40|RjK;}klOr&2_{WA zSgY%xq-Z6vllxUXg%`+LSn+cb?OrfOxjUepOAIez255Ix&aVjA!jr9yT9VW2-{ud3 zWwT0u-nfoh!vN4>Nk@(fDX{G;InJ&k`9A;r;7C>1#n(eF{z)FMH};lMq+2P=F{zkf ztGA9OFrgX#OWRG2rI5iw1pgfUk?yg#)2U2`Y@&1&4oVvPkB-lob%uHrgW`B zYCMZoj7F;*IW5cS17b$kcLdj!64caXqJz3Zd?ZD}Y=nHl!@*zt)R`PRN-ts2Ipb?Ba;I|E?k1T%kjR^SRs@%E%*=4$2; zfQzhLN?hILll$i{lsNDq;%_R<#e^6fl7z4kmemGFo^%*L2nQy_^h+Z!`DD3-G7Ijk zH{t#8!3KhTgnUwS!KjEa0e6;s-dgw1vvzu6Kafh88YX?o#{>~L!-HTkHEE~g#<+a$ z2%XKMNO4TELIo45KJ?}4Y7&|(;TM-QvwY7@cvWqIEt&8`Zh`G;!<;Q>pDH41q4VFP z#Y7*EZz&7BHSt!(k`N|-LKR)%#%~kD@iSu_tJ|t?K%C79KRL-f`acpCslqSAYIB2C(nQ|_| zQqxjiAxfcxIdIf2Ru?ctO&`V-B2Z7jV5+99N5WG9t>Kk0r*VQ)?yQlN zorc3!U8sRUvChhD4$}RpM_tG@*}e=_K!dpNAi9{vmx(wp-iiYDlNs4U)$mJNmmNRa ztDiw?nX~8WchI6|R(TWlWl|>>H&!{LQoOP(=V>^{NPyXYK5RQRg$K>zC1#2=@No$R z(U>OXj-(nTT7tCF1R|Q*u)cU`_8on}ghg7ug*5XjEqNvMDQd-DVfVR5=TC#Ik^sd9 z=q&?Nvl9@Q;dK*dH7PmQG|6rBBCcjL+8+)W`v<0f%7ntAH~>7jSD=9O%)gtU*(6P5 z-#Lf+%9fPmV|Dsx-it&VuQx=vdOre*{9sX^za>9{u6Blf9?%rtOK}1nE92ONJ3&U* zjb#R<{W@d0Ly782CO*v7X3)C~xQK+MWi!ia>$7w-tI}4mAW?n$If1z{pn< zNn+Uz?#Q7ru<~!7#QVql%8z!2`+S6}f?2N?l*EmXHsO5Nf3L)v`yt(tUmkkDx9e+* zh%gW)cdx?o-*CF0%-J&BuNmc493&Ymz6dAQ4sW15oUz(6uPWA6Yz%1l$(BhG1tq=h zG}*3sIila_-z4X)2zk};w?=^T4?iR9S~-DxI>nIt2v13O(CzXKIP_HH-h|-|I|QVQ zFQRoiKI`>kR)9;^}{wRXi+T+HAOwEL}*km{o$o*T0Uv{gKtSr{sB^Rl~pq36aQKvK32t;V=u_%?$U(IrkzT1JO#l+ z35VA36)oy5;XS)f#b!a~_sMz42r5o7bjlolnDGIAe_?xIs2z4xT9b#Uj=2i=| zw3Le!1)LeTB4vTmQQkEzl?9_wH-^DP4hCu_+pjJsNtX&KzYxD7aS*TF$D4tCWQ7xk000c{ct!*&L9)en!!4YV7exXOYTXL%eI7tGZ!V+HvR0ez|m@M3<<8KH9lW{g!_Bqt>}n3F5ApfAO% zW_=OPpSz8*a7)MUR{usb0MH#`fJUBEng|Wt8w@z~O;9^_{X%SPss?ZBEs(kCuZzfF z*JHkXylrtr7S>?mjr57tD_MHk6Xy`wz!O{VO;=MSi}bn6x3+TPM5Bkm*6UW~1r*i3 z8^c5FG-k^*I+BSoQTzVsRmZuy5m>m%%!((@FFt>RM*|8x7lK!#VOs-x=h6?1tA?y` zjN3Huy;LmvLeU=OK7FhUnwq|TAG42-j43rS{As_)q3TVS@P}+8UW&)Z)cvNX$${F{ zwKS_V_EVuF0^t=D>9ZC9#0KKxu9GVzo5*>zFRp0kjZSJSn0 zm~L#iI@yx-%3H4F@HDxBcx!p+vx)kaN=}bow6gPiDP^h5KwbssEqnLVu?BIz=c-`z zqVq(}89Ph_%*w2i4I`?-7t)6jXh6MO`u3z%i~vS`r{)sQGlt-R0ow$?e6_ZqjLduC2Gf;KyvNV?K%H6g7WE2#3| zL}cxQy)VmVDo%X&(i~4D%Iw(F+brp7DG%gs6T&1JbI$$^0HhPCwjWpNYux)je0O{e z2;JgV+Mf@U%wxBs&s8q`_IATxZ{*dE=zRdVs}tTIjDag3^EP~3pYLV@v)ncz-(p6& ze-rMFR_-Y%Cv@u~O*4F{cW;U#%f)z;0Gz!yTow&)O(?1R}>{qcI3FcjCmQDZ7AMU!i+*r< z|E?;&dFMexM{r+p{O81K!_#a?i^#k{| z0>rCW(+w*{aTf=MNDoe9_URlhCeM0@BN4Pd@&ZvK%qq=iMW$4`0Uhp(2T^ZBKEFD|G@JQirZ1es5%B2LP&8b zg6b#@mz;U_ru6Oz?7f@3A=5eWc6ZlmPMy3=L>k*azp>GEZa}ZgdNRHZtyxyqEJ@Oi zfO*Mc0_If7cGeUCU%9BobxNRV0j1(jc z>V86-MvM19cos)(m048r2p2KZEakO+T<2ilY#SL$I}bu?zwb=WUtfBa4LJT?wMsn1 zMTGC)GF)^%E_C|+;jtJJOtW0`R-PNoKI)={-vT6D^-?dVW6Y>PyK`OWNBJf7C$7dweo zB=b{&kjbkD0r`*DgK~wp%Jx|6nH9_DCS%2F))w25s2@Fkj=Qe5Eem4suURq9=Vbxb z0J1z~2+N2i?ef4M*36{0 zUqwkZ=(kimgQ&A>^6bfKmMis{VRT751ZX%g_A{DLoG|RG#qWEyDFykd9`RLyo~Sj= zB{G;1#?n||;=8#Vxb99Gk^4u$tvo)}Iu4@h{!FwZ<_FqM+nl zKwA=tQ|5*2@YAv^9w-*5JZw$8p)8uneRtVWGnOHfop-!y&z$@t2|C@k)`rzua74-T z`R-jUggY9FnsRd8L*H?iplZP?)%=R$S z`7c$~xhs^GECyEjxh>>5tlC9PYd>vj%`A&(P;XWTmhfjUW7+%C}Uw}lbmuBu(rwB-^_gY0+fvH)oS%a_1bPJs}^tfCO!Oo(0 zTJ)`I74X}^)8AW?)r(MC*99TL_Zw2SPu{>!`qX403>y>-`8qp3{fU(9vXEbJl#kbX z)^*n$JjS*Wjg=ptW#*J!P>mgV2v!~V3l?>U^nTQhbGGC)sWvg-=;Xr5TBt#9I7;mV z`Ds4|%S!S~{qrdo>JsPVrD5Hb)-!#VgJ}tDn;V=;^p_@?UJ4z&RWtV{Vk%b*6*yb_ zQ9IJJiKBG-61D+nZ{Aa$xVQbYsS`(lOPCk>3Q+lrKJvllfw6_)gX=Hp(09tF5wXE= z?63w^_g7u9N&!W1>%kLewlGPtcJxQI-cYt)A0g4J4``lVcb!RJJGCyCc|t*iyqgpW zM(zWVHX`{lnF(_a*zlMZ4~mTlOtQ)UzuDH!PE$jXF-kDlBc!h)3nV9uc7A@3_nxC#91ey7MC^^ z%Myt<3{K9DLXfX%i6HZ>p6TWf2<6jIj}&A~G}Z}GXz?;ddGUBZARJ+4J6@0Gj{PWs zumwcgdg7V}+Peh9fe2Ta4onLy^r$sK4bSNiGas3gC@fAq|GUGFg~sYId-gCdx%V>- zeEs^P75}lyD+OXk;48_stXaLObeby91)vOQ+q?E_>1bGj*d|6Z-tzvL5c}NSoNr2H`XH{lw`qvlXsB* z-GJ%TO2;B$Q>qQK&E1jYG0%*pjJ~Pq3$7_`Iub|KyDU0w8oL|{-(g7DKhf}Q#IiX* z4?mh=?Xj-O!ZWx_*_Lh4e={J^*ay=T<(42e=wC`=@7IT*T`#Ef=s22ip5<5GuJuU4 z_;1N+a)c?rpau%+j@-bZZdJ5z$S}wGS!XAu#j{4=)-pJ*{Dc)8p`-(irtUdbk3XcN z`R$|2NhOu%Gz#DhXoLz)t?iOs6EABK_ZX46B*9bvRl%KDA7&C?$FS&&8+d$R@DhSf znC;weR-B|PzZaiRm8_cAzZpyv&;%NYKX1L}XwM{%ttC3L3oYd!-}XCN;oLFv=sSYt z#xtu{lI{^Zb|)W=_K6ba!&ES+ze|zsv$P(gOr4>t+-J) zcD>IpNbg-=FaN7&vq!ujRoRYMD|y4SwZ2TcH)!752)Jq-?tVcUk;-uwH1G65Ni|EF z`M9!1rw|r?I|EFa`T-~nio*@!jyM1w6$*M%#YJ0EB{55e$a!H(!oj$_B)qyw_jt6~ z5~Y8O{x7#T@NVVTP>I*Z^tDAa9%Ldi_B~?i!somF-I?sm(>u}Mrbg&U=kCm8{jF%i|f;PfS32<`80MTcB4D2DGgU5T45(MWWxWulgW#=fDO}4Y96a7yv$*>bT z?s+o)jw^GOk#8j``ikkNldmpm8`G%X56i~^y@>=JeSnb&aqhiZ?tL-JqzfieGibn4 z;gbCLfT~sUSeI7@z|e}tp0nmRr*Q{G5O-bpCLS4SjWVXrCzkLH8=|V2Y@Pj7h9tt@ zw^w>9KNSow5K&&?ZjN@}#+$!oxD%^*+oJH;e7SuOc|rG&O#dAavC`2YoK4c&HLaK# zg@}PEs2J55Y3ui#0!n@XUQXGEw;1u0gbY(&XI#Mi56y0K%T6$;Z^en4m-C809wM`) zBj2vBOCr&)9o+YiJRSY%w{Ia5VEH120T>XP;$%s4`P4L>Y2bgH{s`fPL;g_{v; zx<4itGT3AZ6C!6Sm6+v>o47{&`Q%NZdz?1yE#(SXyBdGHSci;LeOe;jG6N=VfKqx7 zH;@I3mFQRV+FrdnJUJH2?Pzy!@qwaTmF`sry`dTL`wknB@OFXNJ@`BiUmOf;lx?G! zN8QYDJI{U0hdupU5#OL5r)4`qYBBE2C9NH;zzMBTD_zl;QXy?%Ze1wFHx`e{_PM0# z+&UBdt~oSU6pQSTY_vjF()(%laH@w2$g8_(2FFcYhrwld1}PbNUp?BM z&erdl(EQidY2Q*>xm6^1B1iVrolUelzb@l<}ul#c=3>PVdYg|`nZCT4;%Vp zje8rUP)&`_k;ih~&OmvV5IoKXqcM@W z^(t=e#ruZ$n?*Y4qJ9f;Tz+;#`IZ6hP2wP05q+1wGgi7m;#xN1pt7E)BT3yR>1;%0 zVzgy{Q0}uE;SpN?FzMILl!6hVz8nxs=Ohe$|L9*&5xU|FepL&9p5j)WXMqOh6Sa&} ztE2e7&SJoGZ<6*E`VU^NE}nHT#JWG}@=+yk}G@Adp^gd14MqZ_pfAPqe(7 zS=Z;=ZR;hP9uprG`&GslBmV-dhgsa`zdaV*_cErk*%ea%C2wi>GQJFo)IJF`hv`)1 zAM_{9r9(19idFp3T^vLlf)pNcKo(@md@g4U+OM(3+81x3W3pMf!w(VK=sabLiOhPI zhyOk2xp69>dRI-3$<6w9>6OJ7xPZoE@HCB4Q=bm@&eUgk^5^9O0w&I`y8bu3`ElS) zmWDF4e_zav)#A=4Z=MwM&A6wylKfyqWcwH5^69e z`0L~j`~Jh1QNG=F4;M_Bc8E`-%cw**K$Nk6b~S+DA{>VnbD^%@?i;e;7Q5=8qLt#_ z@dpaBz&6a=5p@H3Az9Bf+D=Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAu9Y)M2xRCodHo6Cw5K@^7VCJqF$ z@&U{yH!rx+y&xzkK8Bm1FfdP`FCZ?IZ1Nbw$O!Wef)2TEvdqFEm{rJS{=cp6nN+H6 zXXvUTUDeQZ)u~QZeSe+4RP{;F>-9Fb^lbAW2qv4&=6k7B>egztpVw(-G#WizE|+gm z$8*$i7r(7s=lB16ZlFCW3%J#_?H7Rk@qBD}1%b1QVls)tsbRW)hwa8x=s1wt0Og)FL5lZP~6n zZ(IP3aLAjR3`QHvWV`OX@dgRRJG%^~vdQP@$XgKrBhAO!)~2#;ouDaWMF6mqDTa1Lbo04)?6;3+n;ZYW1AEvjSv+$K{3ffEY0A z=mp49Xiv+3v)|L{H1qA!$byIo5iyyHmi92GI1j_{J=>hkW{r@Zb_&qN&UJgIHZqevtk>(mK;ChR z{x58Y?9o#|e6cxoMFfoeDVfO|2>`L>hnI{; z*gqkE27%@U@CtsUJtGs@$Vk=#aCro;fL9;~1-9PDS)ZxM41;rle@3b#PXWxL4lslI zyjrb(K!-!*@8f8ElEgvCd8-JPL$Z;PtZ^IBdH@XwPB0po5qH4k5u65+v-$sR(9ooEdU zeX-Ic+3EU4c+}lgz>0I%zO0lNKvu-Hy!QatMqK9g9v~~?THbqrYa=f6dJm8laV_sX zz_k&Vd2M-s>XVzwCige@ycGek5HXQSR5tk>9eG;<>_nwNfE}9-V7X4?0su6M%#b?* zyOl^4;{pIYip-D&uobCdQ~-=}5}6?jz`Tt}6(a%&x8I7)PziwZj7O^I{P%eDQ4&xm w*t^2TRoqJ3a5#K`Ra^d>^o3Zt*0Oke0W_39$DK!;i~s-t07*qoM6N<$g5spZNB{r; literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/uview/example/component_select.png b/supervise-uniapp/static/uview/example/component_select.png new file mode 100644 index 0000000000000000000000000000000000000000..79efb5b52182da5a98d8677db5f646d4146ffdc7 GIT binary patch literal 1005 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(<^uz(rC1}St4blLz^9`5Pl7*fIb zHrl^i*ihuWcevm-b^C?|;jH|142}T-Hr0Y<-O()n=lo&$`rzv9FPm29^;d_9iTq)S zV=3?Fs$=*b6qsUt{=1R&+mcykWjS%TW;EVa)A#&bw||dk+NAizI?Ofg;HvZ<(wtGx0&fQw^z-p1zauKuVng6$!9+YQP7I$!5W>R*3{cH8P)*q@v zjAp)i^YG<*`%TZan%P$b_+N`ybF`ZMjUMwsAKPD-j@PnT@G?y=lwGIIIPb53VgiT6 z$61nh7be;yo?3Bk$JKnlX$;4l7M}fHE;?;vVC2{+qTR zgY^O9>Z^jY*G3(8x8q?o`K9+;C_a<$e5DpI-B>aTAHvedY68g=s;4z4h#CDtl~CZ`z)! zZxO%d`+mFBr%LWpzh-S;C%bi#ZrU3Wn;&{nEqVzpb2%>DPP>0E)N)f%^UMve?~2KM zSm>Ja<4ysGak9C8Q%%xh2D=^6u0hQkq|UG$7dUV{RD4!}@RlmU&u9H+`0Vu?xjS-O3l2YDxFkmBY5SJ6P3$-B<-TOzxi8qiv+>A*O~wW_3pHe>2Bm%3 zCY4&(&M9$;&-2>@CmB zm2DNAohI7Bt!8R2NUN=VUI36yagNypUfvYMx>pUXO@geCwx CX`$Bu literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/uview/example/js.png b/supervise-uniapp/static/uview/example/js.png new file mode 100644 index 0000000000000000000000000000000000000000..beb0dc7b2cf53a3029c06844144a47f02b62d390 GIT binary patch literal 1966 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 bp(XwU>{f7MvQ-`Q00000NkvXXu0mjf;X1>} literal 0 HcmV?d00001 diff --git a/supervise-uniapp/static/uview/example/template.png b/supervise-uniapp/static/uview/example/template.png new file mode 100644 index 0000000000000000000000000000000000000000..ff895b86cea5bdba1003c988cbbc601f87bfe6eb GIT binary patch literal 1148 zcmV-?1cUpDP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAu9=1D|BRCodHTTN&aK@`rWiRmF8 z5^2RlF_@-FDfQ?@K`0(QR0KiLQ>r&Tc@t3tZ=Nb%N_$c770*)jEP_xf`5_@8g+jm- z=^j$CiQg-!hTS*o#7wi<$qo#=`}Vyz@B7}%c4wy(2#k0$j_|kJZKF^qEa5tf^En)& zNB1;2nucL)0n6IV%*-mz+l1?ofJ&uuW`BSG4S+9b0@e`*z;8q%kz0vGVkbzMA0_a_ z3?;gQ*)a0?{2d5Z94XWECMw}>2-vbBd{9^m27|B1$HzCPrluMqy~+ zTDOs45yq^M%jNa}!1llc_-pBO`t2}+>oq1+`65VIXY9McS$1%6aFL6jB>?5} zbbEXI6ldT?8DSwzT)F@K^XZ8aC``Y z+F$5j(dirEcXY>wCoiouorThQ^pvCWklYj!05G3Jp-?uNO#asgQv7+n0UygC6p;!tVndpIQBg-UD{R;qWZL|F9bLa$PJIFXOfP0|x%H3T?HI z$Kxj_Cnrs-T=jLmUXL~!jXkSh(KFytzu;-0R4Vlehj-RNyRUb5ckfe%x@D@*$v=(5 z`DH6$Y;0@}!GGfndX?c-^a%oZ+^gN7^w|oSo}MnK3IM-0*16HbOCY?Y|EJsEQSClHIpmXC8L zNLeEPG!BQ@0L(77Ejt;aZ6+|F zZ~A?;YPA{znOB{h48vr|wkm_HW$_BT=oI+B?!iYG;9uhCxHLAX$q-hcUNAA6L1ch7 z6WSUAUk3@Rw7ezzOn?n-zC4G19kyR^ebeUHA{f+U2+LykEJM>Qackta%^97ny~lCE z%8<_2$o>XarLWLWpiSFINuV>}Zfu0LgZb~Wb*B=Rpg2;Sr@M(6$@AalwV)Rjckm+s O0000Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAu9_DMuRRCodHTRmu0K@gr<5)pDK zj0CX?5hMnQV55bCD3*fSTxEXF(|`(Ab|MBLomE7O;N=pcO&Y~o{Hav52m}Q!0#>OM zSFxE^zne<=x-QyZ7!bgyYTb?9TViyuI6*EI^w#Ea4|2OwGbIOOytJqX3jB z^+n?o^MLTxAZD^-@DveAa1{v{pQnTC|L7SIor?xo4-|-R_IBcx>0w+k;`z1$FWj)B z1+!qsu`FG;)=qnH7Rhd7%y>ufop*tU1~P`syh*@PCW*gYhP9+Py+A!S4?`C1Fj+`z zMhbQu$=IB>;W0axXH)o6Qw*Doqx=#_`3tArm^T`D@qARk3uwV2n4APqf(dXo345nB z+!8lTIsyF7ha0ZbdfCUEQUH~Jux)r6uu7R5CY69n47nUV*$ z=4ijB5Js6`5louxZUpq^HtF5S9G%dV!Xy(6f`tj_)$HbkNTHY=RXYJKcYfyt>Jn#) zLzNNYbZ-x*{DwH|J3v6HqXlz^2D~KOQXC|L!ICUApGCJa0uO^-neotzOm|E`WL#M% zkhYJ29XCO)oNY3(i^XpNfL~rD^JZxfu#b1(WBj#q*lT<%^t%$k#lz41m*$kRnoRUE zel$Z#PPtF51-&CrZC9Zy^%LEu`$>{3w?4O<3zW#`qzF{r)IEU1_+F#nWtr?%e9s@R z%9kvE%CEw0@ld(6xlb~`tfS4Uz5@Irf6xZkBjfV(q6N6@-yoP$aJMd~`F(T?RD zTj0{v2o-789DEH7o6+f=a-|+2Zcs6f+P(zDZiPsRXpFwLTaY6W{}>p_(#| zfKa*12V>(1@PX7&O{xA8+*JetABF;d1rl8_<>yIIoGJ6mI+|kxC!i${LmE@Q$y)I+ z#1TK$F)a<8)-x=Bj6XFC8@k { + state.token = token + authtoken.setToken(token) + }, + SET_HASLOGIN: (state, hasLogin) => { + state.hasLogin = hasLogin + }, + SET_USERINFO: (state, userinfo) => { + state.userinfo = userinfo + } + }, + getters: { + token: state => state.token, + hasLogin: state => state.hasLogin, + userinfo: state => state.userinfo, + }, + actions: { + login({ + commit + }, loginUserInfo) { + return new Promise((resolve, reject) => { + api.login(loginUserInfo).then(res => { + console.log('login-result-info:', res) + commit('SET_HASLOGIN', true) + commit('SET_TOKEN', res.token) + commit('SET_USERINFO', { + userid: '123456', + name: res.name + }) + resolve(res) + }).catch(err => { + reject(err) + }) + }) + }, + logined({ + commit + }, loginUserInfo) { + return new Promise((resolve, reject) => { + commit('SET_HASLOGIN', true) + commit('SET_TOKEN', loginUserInfo.token) + commit('SET_USERINFO', { + userid: '123456', + name: loginUserInfo.name + }) + resolve() + }) + }, + logout({ + commit, + state + }) { + return new Promise((resolve, reject) => { + commit('SET_HASLOGIN', false) + commit('SET_TOKEN', null) + commit('SET_USERINFO', null) + resolve() + }) + } + } +}) + +export default store diff --git a/supervise-uniapp/template.h5.html b/supervise-uniapp/template.h5.html new file mode 100644 index 00000000..2656b098 --- /dev/null +++ b/supervise-uniapp/template.h5.html @@ -0,0 +1,42 @@ + + + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + + + + + + + + + + + + +
+ + + + diff --git a/supervise-uniapp/uni.scss b/supervise-uniapp/uni.scss new file mode 100644 index 00000000..a31f2be6 --- /dev/null +++ b/supervise-uniapp/uni.scss @@ -0,0 +1,7 @@ +/** + * 下方引入的为uView UI的集成样式文件,为scss预处理器,其中包含了一些"u-"开头的自定义变量 + * 使用的时候,请将下面的一行复制到您的uniapp项目根目录的uni.scss中即可 + * uView自定义的css类名和scss变量,均以"u-"开头,不会造成冲突,请放心使用 + */ +@import '@/uni_modules/uni-scss/variables.scss'; +@import '@/uni_modules/uview-ui/theme.scss'; diff --git a/supervise-uniapp/uni_modules/uni-badge/changelog.md b/supervise-uniapp/uni_modules/uni-badge/changelog.md new file mode 100644 index 00000000..56581c4e --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-badge/changelog.md @@ -0,0 +1,31 @@ +## 1.2.1(2022-09-05) +- 修复 当 text 超过 max-num 时,badge 的宽度计算是根据 text 的长度计算,更改为 css 计算实际展示宽度,详见:[https://ask.dcloud.net.cn/question/150473](https://ask.dcloud.net.cn/question/150473) +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-badge](https://uniapp.dcloud.io/component/uniui/uni-badge) +## 1.1.7(2021-11-08) +- 优化 升级ui +- 修改 size 属性默认值调整为 small +- 修改 type 属性,默认值调整为 error,info 替换 default +## 1.1.6(2021-09-22) +- 修复 在字节小程序上样式不生效的 bug +## 1.1.5(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.4(2021-07-29) +- 修复 去掉 nvue 不支持css 的 align-self 属性,nvue 下不暂支持 absolute 属性 +## 1.1.3(2021-06-24) +- 优化 示例项目 +## 1.1.1(2021-05-12) +- 新增 组件示例地址 +## 1.1.0(2021-05-12) +- 新增 uni-badge 的 absolute 属性,支持定位 +- 新增 uni-badge 的 offset 属性,支持定位偏移 +- 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点 +- 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+ +- 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式 +## 1.0.7(2021-05-07) +- 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug +- 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug +- 新增 uni-badge 属性 custom-style, 支持自定义样式 +## 1.0.6(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-badge/components/uni-badge/uni-badge.vue b/supervise-uniapp/uni_modules/uni-badge/components/uni-badge/uni-badge.vue new file mode 100644 index 00000000..498bb1c0 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-badge/components/uni-badge/uni-badge.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-badge/package.json b/supervise-uniapp/uni_modules/uni-badge/package.json new file mode 100644 index 00000000..7a34d9c3 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-badge/package.json @@ -0,0 +1,85 @@ +{ + "id": "uni-badge", + "displayName": "uni-badge 数字角标", + "version": "1.2.1", + "description": "数字角标(徽章)组件,在元素周围展示消息提醒,一般用于列表、九宫格、按钮等地方。", + "keywords": [ + "", + "badge", + "uni-ui", + "uniui", + "数字角标", + "徽章" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-badge/readme.md b/supervise-uniapp/uni_modules/uni-badge/readme.md new file mode 100644 index 00000000..bdf175da --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-badge/readme.md @@ -0,0 +1,10 @@ +## Badge 数字角标 +> **组件名:uni-badge** +> 代码块: `uBadge` + +数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-badge) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/supervise-uniapp/uni_modules/uni-breadcrumb/changelog.md b/supervise-uniapp/uni_modules/uni-breadcrumb/changelog.md new file mode 100644 index 00000000..016e6cee --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-breadcrumb/changelog.md @@ -0,0 +1,6 @@ +## 0.1.2(2022-06-08) +- 修复 微信小程序 separator 不显示问题 +## 0.1.1(2022-06-02) +- 新增 支持 uni.scss 修改颜色 +## 0.1.0(2022-04-21) +- 初始化 diff --git a/supervise-uniapp/uni_modules/uni-breadcrumb/components/uni-breadcrumb-item/uni-breadcrumb-item.vue b/supervise-uniapp/uni_modules/uni-breadcrumb/components/uni-breadcrumb-item/uni-breadcrumb-item.vue new file mode 100644 index 00000000..b9edbd62 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-breadcrumb/components/uni-breadcrumb-item/uni-breadcrumb-item.vue @@ -0,0 +1,121 @@ + + + diff --git a/supervise-uniapp/uni_modules/uni-breadcrumb/components/uni-breadcrumb/uni-breadcrumb.vue b/supervise-uniapp/uni_modules/uni-breadcrumb/components/uni-breadcrumb/uni-breadcrumb.vue new file mode 100644 index 00000000..94493a21 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-breadcrumb/components/uni-breadcrumb/uni-breadcrumb.vue @@ -0,0 +1,41 @@ + + + diff --git a/supervise-uniapp/uni_modules/uni-breadcrumb/package.json b/supervise-uniapp/uni_modules/uni-breadcrumb/package.json new file mode 100644 index 00000000..0a04e503 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-breadcrumb/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-breadcrumb", + "displayName": "uni-breadcrumb 面包屑", + "version": "0.1.2", + "description": "Breadcrumb 面包屑", + "keywords": [ + "uni-breadcrumb", + "breadcrumb", + "uni-ui", + "面包屑导航", + "面包屑" +], + "repository": "", + "engines": { + "HBuilderX": "^3.1.0" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "u", + "百度": "u", + "字节跳动": "u", + "QQ": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-breadcrumb/readme.md b/supervise-uniapp/uni_modules/uni-breadcrumb/readme.md new file mode 100644 index 00000000..6976b8d7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-breadcrumb/readme.md @@ -0,0 +1,66 @@ + +## breadcrumb 面包屑导航 +> **组件名:uni-breadcrumb** +> 代码块: `ubreadcrumb` + +显示当前页面的路径,快速返回之前的任意页面。 + +### 安装方式 + +本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 + +如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) + +### 基本用法 + +在 ``template`` 中使用组件 + +```html + + {{route.name}} + +``` + +```js +export default { + name: "uni-stat-breadcrumb", + data() { + return { + routes: [{ + to: '/A', + name: 'A页面' + }, { + to: '/B', + name: 'B页面' + }, { + to: '/C', + name: 'C页面' + }] + }; + } + } +``` + + +## API + +### Breadcrumb Props + +|属性名 |类型 |默认值 |说明 | +|:-: |:-: |:-: |:-: | +|separator |String |斜杠'/' |分隔符 | +|separatorClass |String | |图标分隔符 class | + +### Breadcrumb Item Props + +|属性名 |类型 |默认值 |说明 | +|:-: |:-: |:-: |:-: | +|to |String | |路由跳转页面路径 | +|replace|Boolean | |在使用 to 进行路由跳转时,启用 replace 将不会向 history 添加新记录(仅 h5 支持) | + + + + +## 组件示例 + +点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/breadcrumb/breadcrumb](https://hellouniapp.dcloud.net.cn/pages/extUI/breadcrumb/breadcrumb) \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-calendar/changelog.md b/supervise-uniapp/uni_modules/uni-calendar/changelog.md new file mode 100644 index 00000000..0160b692 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-calendar/changelog.md @@ -0,0 +1,20 @@ +## 1.4.7(2022-09-16) +- 可以使用 uni-scss 控制主题色 +## 1.4.6(2022-09-08) +- fix: 表头年月切换,导致改变当前日期为选择月1号,且未触发change事件 +## 1.4.5(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式 +## 1.4.4(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式 +## 1.4.3(2021-09-22) +- 修复 startDate、 endDate 属性失效的 bug +## 1.4.2(2021-08-24) +- 新增 支持国际化 +## 1.4.1(2021-08-05) +- 修复 弹出层被 tabbar 遮盖 bug +## 1.4.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.3.16(2021-05-12) +- 新增 组件示例地址 +## 1.3.15(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/calendar.js b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/calendar.js new file mode 100644 index 00000000..b8d7d6fc --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/calendar.js @@ -0,0 +1,546 @@ +/** +* @1900-2100区间内的公历、农历互转 +* @charset UTF-8 +* @github https://github.com/jjonline/calendar.js +* @Author Jea杨(JJonline@JJonline.Cn) +* @Time 2014-7-21 +* @Time 2016-8-13 Fixed 2033hex、Attribution Annals +* @Time 2016-9-25 Fixed lunar LeapMonth Param Bug +* @Time 2017-7-24 Fixed use getTerm Func Param Error.use solar year,NOT lunar year +* @Version 1.0.3 +* @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0] +* @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0] +*/ +/* eslint-disable */ +var calendar = { + + /** + * 农历1900-2100的润大小信息表 + * @Array Of Property + * @return Hex + */ + lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, // 1900-1909 + 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, // 1910-1919 + 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, // 1920-1929 + 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, // 1930-1939 + 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, // 1940-1949 + 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, // 1950-1959 + 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, // 1960-1969 + 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, // 1970-1979 + 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, // 1980-1989 + 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, // 1990-1999 + 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, // 2000-2009 + 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, // 2010-2019 + 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, // 2020-2029 + 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, // 2030-2039 + 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, // 2040-2049 + /** Add By JJonline@JJonline.Cn**/ + 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, // 2050-2059 + 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, // 2060-2069 + 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, // 2070-2079 + 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, // 2080-2089 + 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, // 2090-2099 + 0x0d520], // 2100 + + /** + * 公历每个月份的天数普通表 + * @Array Of Property + * @return Number + */ + solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + + /** + * 天干地支之天干速查表 + * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"] + * @return Cn string + */ + Gan: ['\u7532', '\u4e59', '\u4e19', '\u4e01', '\u620a', '\u5df1', '\u5e9a', '\u8f9b', '\u58ec', '\u7678'], + + /** + * 天干地支之地支速查表 + * @Array Of Property + * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"] + * @return Cn string + */ + Zhi: ['\u5b50', '\u4e11', '\u5bc5', '\u536f', '\u8fb0', '\u5df3', '\u5348', '\u672a', '\u7533', '\u9149', '\u620c', '\u4ea5'], + + /** + * 天干地支之地支速查表<=>生肖 + * @Array Of Property + * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] + * @return Cn string + */ + Animals: ['\u9f20', '\u725b', '\u864e', '\u5154', '\u9f99', '\u86c7', '\u9a6c', '\u7f8a', '\u7334', '\u9e21', '\u72d7', '\u732a'], + + /** + * 24节气速查表 + * @Array Of Property + * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"] + * @return Cn string + */ + solarTerm: ['\u5c0f\u5bd2', '\u5927\u5bd2', '\u7acb\u6625', '\u96e8\u6c34', '\u60ca\u86f0', '\u6625\u5206', '\u6e05\u660e', '\u8c37\u96e8', '\u7acb\u590f', '\u5c0f\u6ee1', '\u8292\u79cd', '\u590f\u81f3', '\u5c0f\u6691', '\u5927\u6691', '\u7acb\u79cb', '\u5904\u6691', '\u767d\u9732', '\u79cb\u5206', '\u5bd2\u9732', '\u971c\u964d', '\u7acb\u51ac', '\u5c0f\u96ea', '\u5927\u96ea', '\u51ac\u81f3'], + + /** + * 1900-2100各年的24节气日期速查表 + * @Array Of Property + * @return 0x string For splice + */ + sTermInfo: ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', + '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', + 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f', + '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa', + '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f', + '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', + '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722', + '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f', + '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722', + '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2', + '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722', + '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd', + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35', + '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35', + '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35', + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'], + + /** + * 数字转中文速查表 + * @Array Of Property + * @trans ['日','一','二','三','四','五','六','七','八','九','十'] + * @return Cn string + */ + nStr1: ['\u65e5', '\u4e00', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341'], + + /** + * 日期转农历称呼速查表 + * @Array Of Property + * @trans ['初','十','廿','卅'] + * @return Cn string + */ + nStr2: ['\u521d', '\u5341', '\u5eff', '\u5345'], + + /** + * 月份转农历称呼速查表 + * @Array Of Property + * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] + * @return Cn string + */ + nStr3: ['\u6b63', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341', '\u51ac', '\u814a'], + + /** + * 返回农历y年一整年的总天数 + * @param lunar Year + * @return Number + * @eg:var count = calendar.lYearDays(1987) ;//count=387 + */ + lYearDays: function (y) { + var i; var sum = 348 + for (i = 0x8000; i > 0x8; i >>= 1) { sum += (this.lunarInfo[y - 1900] & i) ? 1 : 0 } + return (sum + this.leapDays(y)) + }, + + /** + * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 + * @param lunar Year + * @return Number (0-12) + * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 + */ + leapMonth: function (y) { // 闰字编码 \u95f0 + return (this.lunarInfo[y - 1900] & 0xf) + }, + + /** + * 返回农历y年闰月的天数 若该年没有闰月则返回0 + * @param lunar Year + * @return Number (0、29、30) + * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 + */ + leapDays: function (y) { + if (this.leapMonth(y)) { + return ((this.lunarInfo[y - 1900] & 0x10000) ? 30 : 29) + } + return (0) + }, + + /** + * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 + * @param lunar Year + * @return Number (-1、29、30) + * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 + */ + monthDays: function (y, m) { + if (m > 12 || m < 1) { return -1 }// 月份参数从1至12,参数错误返回-1 + return ((this.lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29) + }, + + /** + * 返回公历(!)y年m月的天数 + * @param solar Year + * @return Number (-1、28、29、30、31) + * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 + */ + solarDays: function (y, m) { + if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 + var ms = m - 1 + if (ms == 1) { // 2月份的闰平规律测算后确认返回28或29 + return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) ? 29 : 28) + } else { + return (this.solarMonth[ms]) + } + }, + + /** + * 农历年份转换为干支纪年 + * @param lYear 农历年的年份数 + * @return Cn string + */ + toGanZhiYear: function (lYear) { + var ganKey = (lYear - 3) % 10 + var zhiKey = (lYear - 3) % 12 + if (ganKey == 0) ganKey = 10// 如果余数为0则为最后一个天干 + if (zhiKey == 0) zhiKey = 12// 如果余数为0则为最后一个地支 + return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1] + }, + + /** + * 公历月、日判断所属星座 + * @param cMonth [description] + * @param cDay [description] + * @return Cn string + */ + toAstro: function (cMonth, cDay) { + var s = '\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf' + var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22] + return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + '\u5ea7'// 座 + }, + + /** + * 传入offset偏移量返回干支 + * @param offset 相对甲子的偏移量 + * @return Cn string + */ + toGanZhi: function (offset) { + return this.Gan[offset % 10] + this.Zhi[offset % 12] + }, + + /** + * 传入公历(!)y年获得该年第n个节气的公历日期 + * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起 + * @return day Number + * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春 + */ + getTerm: function (y, n) { + if (y < 1900 || y > 2100) { return -1 } + if (n < 1 || n > 24) { return -1 } + var _table = this.sTermInfo[y - 1900] + var _info = [ + parseInt('0x' + _table.substr(0, 5)).toString(), + parseInt('0x' + _table.substr(5, 5)).toString(), + parseInt('0x' + _table.substr(10, 5)).toString(), + parseInt('0x' + _table.substr(15, 5)).toString(), + parseInt('0x' + _table.substr(20, 5)).toString(), + parseInt('0x' + _table.substr(25, 5)).toString() + ] + var _calday = [ + _info[0].substr(0, 1), + _info[0].substr(1, 2), + _info[0].substr(3, 1), + _info[0].substr(4, 2), + + _info[1].substr(0, 1), + _info[1].substr(1, 2), + _info[1].substr(3, 1), + _info[1].substr(4, 2), + + _info[2].substr(0, 1), + _info[2].substr(1, 2), + _info[2].substr(3, 1), + _info[2].substr(4, 2), + + _info[3].substr(0, 1), + _info[3].substr(1, 2), + _info[3].substr(3, 1), + _info[3].substr(4, 2), + + _info[4].substr(0, 1), + _info[4].substr(1, 2), + _info[4].substr(3, 1), + _info[4].substr(4, 2), + + _info[5].substr(0, 1), + _info[5].substr(1, 2), + _info[5].substr(3, 1), + _info[5].substr(4, 2) + ] + return parseInt(_calday[n - 1]) + }, + + /** + * 传入农历数字月份返回汉语通俗表示法 + * @param lunar month + * @return Cn string + * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' + */ + toChinaMonth: function (m) { // 月 => \u6708 + if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 + var s = this.nStr3[m - 1] + s += '\u6708'// 加上月字 + return s + }, + + /** + * 传入农历日期数字返回汉字表示法 + * @param lunar day + * @return Cn string + * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' + */ + toChinaDay: function (d) { // 日 => \u65e5 + var s + switch (d) { + case 10: + s = '\u521d\u5341'; break + case 20: + s = '\u4e8c\u5341'; break + break + case 30: + s = '\u4e09\u5341'; break + break + default : + s = this.nStr2[Math.floor(d / 10)] + s += this.nStr1[d % 10] + } + return (s) + }, + + /** + * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” + * @param y year + * @return Cn string + * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' + */ + getAnimal: function (y) { + return this.Animals[(y - 4) % 12] + }, + + /** + * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON + * @param y solar year + * @param m solar month + * @param d solar day + * @return JSON object + * @eg:console.log(calendar.solar2lunar(1987,11,01)); + */ + solar2lunar: function (y, m, d) { // 参数区间1900.1.31~2100.12.31 + // 年份限定、上限 + if (y < 1900 || y > 2100) { + return -1// undefined转换为数字变为NaN + } + // 公历传参最下限 + if (y == 1900 && m == 1 && d < 31) { + return -1 + } + // 未传参 获得当天 + if (!y) { + var objDate = new Date() + } else { + var objDate = new Date(y, parseInt(m) - 1, d) + } + var i; var leap = 0; var temp = 0 + // 修正ymd参数 + var y = objDate.getFullYear() + var m = objDate.getMonth() + 1 + var d = objDate.getDate() + var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000 + for (i = 1900; i < 2101 && offset > 0; i++) { + temp = this.lYearDays(i) + offset -= temp + } + if (offset < 0) { + offset += temp; i-- + } + + // 是否今天 + var isTodayObj = new Date() + var isToday = false + if (isTodayObj.getFullYear() == y && isTodayObj.getMonth() + 1 == m && isTodayObj.getDate() == d) { + isToday = true + } + // 星期几 + var nWeek = objDate.getDay() + var cWeek = this.nStr1[nWeek] + // 数字表示周几顺应天朝周一开始的惯例 + if (nWeek == 0) { + nWeek = 7 + } + // 农历年 + var year = i + var leap = this.leapMonth(i) // 闰哪个月 + var isLeap = false + + // 效验闰月 + for (i = 1; i < 13 && offset > 0; i++) { + // 闰月 + if (leap > 0 && i == (leap + 1) && isLeap == false) { + --i + isLeap = true; temp = this.leapDays(year) // 计算农历闰月天数 + } else { + temp = this.monthDays(year, i)// 计算农历普通月天数 + } + // 解除闰月 + if (isLeap == true && i == (leap + 1)) { isLeap = false } + offset -= temp + } + // 闰月导致数组下标重叠取反 + if (offset == 0 && leap > 0 && i == leap + 1) { + if (isLeap) { + isLeap = false + } else { + isLeap = true; --i + } + } + if (offset < 0) { + offset += temp; --i + } + // 农历月 + var month = i + // 农历日 + var day = offset + 1 + // 天干地支处理 + var sm = m - 1 + var gzY = this.toGanZhiYear(year) + + // 当月的两个节气 + // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year` + var firstNode = this.getTerm(y, (m * 2 - 1))// 返回当月「节」为几日开始 + var secondNode = this.getTerm(y, (m * 2))// 返回当月「节」为几日开始 + + // 依据12节气修正干支月 + var gzM = this.toGanZhi((y - 1900) * 12 + m + 11) + if (d >= firstNode) { + gzM = this.toGanZhi((y - 1900) * 12 + m + 12) + } + + // 传入的日期的节气与否 + var isTerm = false + var Term = null + if (firstNode == d) { + isTerm = true + Term = this.solarTerm[m * 2 - 2] + } + if (secondNode == d) { + isTerm = true + Term = this.solarTerm[m * 2 - 1] + } + // 日柱 当月一日与 1900/1/1 相差天数 + var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10 + var gzD = this.toGanZhi(dayCyclical + d - 1) + // 该日期所属的星座 + var astro = this.toAstro(m, d) + + return { 'lYear': year, 'lMonth': month, 'lDay': day, 'Animal': this.getAnimal(year), 'IMonthCn': (isLeap ? '\u95f0' : '') + this.toChinaMonth(month), 'IDayCn': this.toChinaDay(day), 'cYear': y, 'cMonth': m, 'cDay': d, 'gzYear': gzY, 'gzMonth': gzM, 'gzDay': gzD, 'isToday': isToday, 'isLeap': isLeap, 'nWeek': nWeek, 'ncWeek': '\u661f\u671f' + cWeek, 'isTerm': isTerm, 'Term': Term, 'astro': astro } + }, + + /** + * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON + * @param y lunar year + * @param m lunar month + * @param d lunar day + * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可] + * @return JSON object + * @eg:console.log(calendar.lunar2solar(1987,9,10)); + */ + lunar2solar: function (y, m, d, isLeapMonth) { // 参数区间1900.1.31~2100.12.1 + var isLeapMonth = !!isLeapMonth + var leapOffset = 0 + var leapMonth = this.leapMonth(y) + var leapDay = this.leapDays(y) + if (isLeapMonth && (leapMonth != m)) { return -1 }// 传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同 + if (y == 2100 && m == 12 && d > 1 || y == 1900 && m == 1 && d < 31) { return -1 }// 超出了最大极限值 + var day = this.monthDays(y, m) + var _day = day + // bugFix 2016-9-25 + // if month is leap, _day use leapDays method + if (isLeapMonth) { + _day = this.leapDays(y, m) + } + if (y < 1900 || y > 2100 || d > _day) { return -1 }// 参数合法性效验 + + // 计算农历的时间差 + var offset = 0 + for (var i = 1900; i < y; i++) { + offset += this.lYearDays(i) + } + var leap = 0; var isAdd = false + for (var i = 1; i < m; i++) { + leap = this.leapMonth(y) + if (!isAdd) { // 处理闰月 + if (leap <= i && leap > 0) { + offset += this.leapDays(y); isAdd = true + } + } + offset += this.monthDays(y, i) + } + // 转换闰月农历 需补充该年闰月的前一个月的时差 + if (isLeapMonth) { offset += day } + // 1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点) + var stmap = Date.UTC(1900, 1, 30, 0, 0, 0) + var calObj = new Date((offset + d - 31) * 86400000 + stmap) + var cY = calObj.getUTCFullYear() + var cM = calObj.getUTCMonth() + 1 + var cD = calObj.getUTCDate() + + return this.solar2lunar(cY, cM, cD) + } +} + +export default calendar diff --git a/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json new file mode 100644 index 00000000..fcbd13cf --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json @@ -0,0 +1,12 @@ +{ + "uni-calender.ok": "ok", + "uni-calender.cancel": "cancel", + "uni-calender.today": "today", + "uni-calender.MON": "MON", + "uni-calender.TUE": "TUE", + "uni-calender.WED": "WED", + "uni-calender.THU": "THU", + "uni-calender.FRI": "FRI", + "uni-calender.SAT": "SAT", + "uni-calender.SUN": "SUN" +} diff --git a/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js new file mode 100644 index 00000000..de7509c8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json new file mode 100644 index 00000000..1ca43de0 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json @@ -0,0 +1,12 @@ +{ + "uni-calender.ok": "确定", + "uni-calender.cancel": "取消", + "uni-calender.today": "今日", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json new file mode 100644 index 00000000..e0fe33b9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json @@ -0,0 +1,12 @@ +{ + "uni-calender.ok": "確定", + "uni-calender.cancel": "取消", + "uni-calender.today": "今日", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue new file mode 100644 index 00000000..369710e8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue new file mode 100644 index 00000000..9cd0e695 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue @@ -0,0 +1,562 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/util.js b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/util.js new file mode 100644 index 00000000..2d6100bf --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-calendar/components/uni-calendar/util.js @@ -0,0 +1,350 @@ +import CALENDAR from './calendar.js' + +class Calendar { + constructor({ + date, + selected, + startDate, + endDate, + range + } = {}) { + // 当前日期 + this.date = this.getDate(new Date()) // 当前初入日期 + // 打点信息 + this.selected = selected || []; + // 范围开始 + this.startDate = startDate + // 范围结束 + this.endDate = endDate + this.range = range + // 多选状态 + this.cleanMultipleStatus() + // 每周日期 + this.weeks = {} + // this._getWeek(this.date.fullDate) + } + /** + * 设置日期 + * @param {Object} date + */ + setDate(date) { + this.selectDate = this.getDate(date) + this._getWeek(this.selectDate.fullDate) + } + + /** + * 清理多选状态 + */ + cleanMultipleStatus() { + this.multipleStatus = { + before: '', + after: '', + data: [] + } + } + + /** + * 重置开始日期 + */ + resetSatrtDate(startDate) { + // 范围开始 + this.startDate = startDate + + } + + /** + * 重置结束日期 + */ + resetEndDate(endDate) { + // 范围结束 + this.endDate = endDate + } + + /** + * 获取任意时间 + */ + getDate(date, AddDayCount = 0, str = 'day') { + if (!date) { + date = new Date() + } + if (typeof date !== 'object') { + date = date.replace(/-/g, '/') + } + const dd = new Date(date) + switch (str) { + case 'day': + dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 + break + case 'month': + if (dd.getDate() === 31) { + dd.setDate(dd.getDate() + AddDayCount) + } else { + dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 + } + break + case 'year': + dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 + break + } + const y = dd.getFullYear() + const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0 + const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 + return { + fullDate: y + '-' + m + '-' + d, + year: y, + month: m, + date: d, + day: dd.getDay() + } + } + + + /** + * 获取上月剩余天数 + */ + _getLastMonthDays(firstDay, full) { + let dateArr = [] + for (let i = firstDay; i > 0; i--) { + const beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate() + dateArr.push({ + date: beforeDate, + month: full.month - 1, + lunar: this.getlunar(full.year, full.month - 1, beforeDate), + disable: true + }) + } + return dateArr + } + /** + * 获取本月天数 + */ + _currentMonthDys(dateData, full) { + let dateArr = [] + let fullDate = this.date.fullDate + for (let i = 1; i <= dateData; i++) { + let nowDate = full.year + '-' + (full.month < 10 ? + full.month : full.month) + '-' + (i < 10 ? + '0' + i : i) + // 是否今天 + let isDay = fullDate === nowDate + // 获取打点信息 + let info = this.selected && this.selected.find((item) => { + if (this.dateEqual(nowDate, item.date)) { + return item + } + }) + + // 日期禁用 + let disableBefore = true + let disableAfter = true + if (this.startDate) { + // let dateCompBefore = this.dateCompare(this.startDate, fullDate) + // disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate) + disableBefore = this.dateCompare(this.startDate, nowDate) + } + + if (this.endDate) { + // let dateCompAfter = this.dateCompare(fullDate, this.endDate) + // disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate) + disableAfter = this.dateCompare(nowDate, this.endDate) + } + let multiples = this.multipleStatus.data + let checked = false + let multiplesStatus = -1 + if (this.range) { + if (multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, nowDate) + }) + } + if (multiplesStatus !== -1) { + checked = true + } + } + let data = { + fullDate: nowDate, + year: full.year, + date: i, + multiple: this.range ? checked : false, + beforeMultiple: this.dateEqual(this.multipleStatus.before, nowDate), + afterMultiple: this.dateEqual(this.multipleStatus.after, nowDate), + month: full.month, + lunar: this.getlunar(full.year, full.month, i), + disable: !(disableBefore && disableAfter), + isDay + } + if (info) { + data.extraInfo = info + } + + dateArr.push(data) + } + return dateArr + } + /** + * 获取下月天数 + */ + _getNextMonthDays(surplus, full) { + let dateArr = [] + for (let i = 1; i < surplus + 1; i++) { + dateArr.push({ + date: i, + month: Number(full.month) + 1, + lunar: this.getlunar(full.year, Number(full.month) + 1, i), + disable: true + }) + } + return dateArr + } + + /** + * 获取当前日期详情 + * @param {Object} date + */ + getInfo(date) { + if (!date) { + date = new Date() + } + const dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate) + return dateInfo + } + + /** + * 比较时间大小 + */ + dateCompare(startDate, endDate) { + // 计算截止时间 + startDate = new Date(startDate.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + endDate = new Date(endDate.replace('-', '/').replace('-', '/')) + if (startDate <= endDate) { + return true + } else { + return false + } + } + + /** + * 比较时间是否相等 + */ + dateEqual(before, after) { + // 计算截止时间 + before = new Date(before.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + after = new Date(after.replace('-', '/').replace('-', '/')) + if (before.getTime() - after.getTime() === 0) { + return true + } else { + return false + } + } + + + /** + * 获取日期范围内所有日期 + * @param {Object} begin + * @param {Object} end + */ + geDateAll(begin, end) { + var arr = [] + var ab = begin.split('-') + var ae = end.split('-') + var db = new Date() + db.setFullYear(ab[0], ab[1] - 1, ab[2]) + var de = new Date() + de.setFullYear(ae[0], ae[1] - 1, ae[2]) + var unixDb = db.getTime() - 24 * 60 * 60 * 1000 + var unixDe = de.getTime() - 24 * 60 * 60 * 1000 + for (var k = unixDb; k <= unixDe;) { + k = k + 24 * 60 * 60 * 1000 + arr.push(this.getDate(new Date(parseInt(k))).fullDate) + } + return arr + } + /** + * 计算阴历日期显示 + */ + getlunar(year, month, date) { + return CALENDAR.solar2lunar(year, month, date) + } + /** + * 设置打点 + */ + setSelectInfo(data, value) { + this.selected = value + this._getWeek(data) + } + + /** + * 获取多选状态 + */ + setMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + + if (!this.range) return + if (before && after) { + this.multipleStatus.before = '' + this.multipleStatus.after = '' + this.multipleStatus.data = [] + } else { + if (!before) { + this.multipleStatus.before = fullDate + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); + } + } + } + this._getWeek(fullDate) + } + + /** + * 获取每周数据 + * @param {Object} dateData + */ + _getWeek(dateData) { + const { + year, + month + } = this.getDate(dateData) + let firstDay = new Date(year, month - 1, 1).getDay() + let currentDay = new Date(year, month, 0).getDate() + let dates = { + lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天 + currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数 + nextMonthDays: [], // 下个月开始几天 + weeks: [] + } + let canlender = [] + const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length) + dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData)) + canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) + let weeks = {} + // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 + for (let i = 0; i < canlender.length; i++) { + if (i % 7 === 0) { + weeks[parseInt(i / 7)] = new Array(7) + } + weeks[parseInt(i / 7)][i % 7] = canlender[i] + } + this.canlender = canlender + this.weeks = weeks + } + + //静态方法 + // static init(date) { + // if (!this.instance) { + // this.instance = new Calendar(date); + // } + // return this.instance; + // } +} + + +export default Calendar diff --git a/supervise-uniapp/uni_modules/uni-calendar/package.json b/supervise-uniapp/uni_modules/uni-calendar/package.json new file mode 100644 index 00000000..c59180c9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-calendar/package.json @@ -0,0 +1,85 @@ +{ + "id": "uni-calendar", + "displayName": "uni-calendar 日历", + "version": "1.4.7", + "description": "日历组件", + "keywords": [ + "uni-ui", + "uniui", + "日历", + "", + "打卡", + "日历选择" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-calendar/readme.md b/supervise-uniapp/uni_modules/uni-calendar/readme.md new file mode 100644 index 00000000..4f3ca0e8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-calendar/readme.md @@ -0,0 +1,103 @@ + + +## Calendar 日历 +> **组件名:uni-calendar** +> 代码块: `uCalendar` + + +日历组件 + +> **注意事项** +> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 +> - 本组件农历转换使用的js是 [@1900-2100区间内的公历、农历互转](https://github.com/jjonline/calendar.js) +> - 仅支持自定义组件模式 +> - `date`属性传入的应该是一个 String ,如: 2019-06-27 ,而不是 new Date() +> - 通过 `insert` 属性来确定当前的事件是 @change 还是 @confirm 。理应合并为一个事件,但是为了区分模式,现使用两个事件,这里需要注意 +> - 弹窗模式下无法阻止后面的元素滚动,如有需要阻止,请在弹窗弹出后,手动设置滚动元素为不可滚动 + + +### 安装方式 + +本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 + +如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) + +### 基本用法 + +在 ``template`` 中使用组件 + +```html + + + +``` + +### 通过方法打开日历 + +需要设置 `insert` 为 `false` + +```html + + + + +``` + +```javascript + +export default { + data() { + return {}; + }, + methods: { + open(){ + this.$refs.calendar.open(); + }, + confirm(e) { + console.log(e); + } + } +}; + +``` + + +## API + +### Calendar Props + +| 属性名 | 类型 | 默认值| 说明 | +| | | +| date | String |- | 自定义当前时间,默认为今天 | +| lunar | Boolean | false | 显示农历 | +| startDate | String |- | 日期选择范围-开始日期 | +| endDate | String |- | 日期选择范围-结束日期 | +| range | Boolean | false | 范围选择 | +| insert | Boolean | false | 插入模式,可选值,ture:插入模式;false:弹窗模式;默认为插入模式 | +|clearDate |Boolean |true |弹窗模式是否清空上次选择内容 | +| selected | Array |- | 打点,期待格式[{date: '2019-06-27', info: '签到', data: { custom: '自定义信息', name: '自定义消息头',xxx:xxx... }}] | +|showMonth | Boolean | true | 是否显示月份为背景 | + +### Calendar Events + +| 事件名 | 说明 |返回值| +| | | | +| open | 弹出日历组件,`insert :false` 时生效|- | + + + + + +## 组件示例 + +点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/calendar/calendar](https://hellouniapp.dcloud.net.cn/pages/extUI/calendar/calendar) \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-card/changelog.md b/supervise-uniapp/uni_modules/uni-card/changelog.md new file mode 100644 index 00000000..c3cd8c45 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-card/changelog.md @@ -0,0 +1,26 @@ +## 1.3.1(2021-12-20) +- 修复 在vue页面下略缩图显示不正常的bug +## 1.3.0(2021-11-19) +- 重构插槽的用法 ,header 替换为 title +- 新增 actions 插槽 +- 新增 cover 封面图属性和插槽 +- 新增 padding 内容默认内边距离 +- 新增 margin 卡片默认外边距离 +- 新增 spacing 卡片默认内边距 +- 新增 shadow 卡片阴影属性 +- 取消 mode 属性,可使用组合插槽代替 +- 取消 note 属性 ,使用actions插槽代替 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-card](https://uniapp.dcloud.io/component/uniui/uni-card) +## 1.2.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.8(2021-07-01) +- 优化 图文卡片无图片加载时,提供占位图标 +- 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持) +- 修复 thumbnail 不存在仍然占位的 bug +## 1.1.7(2021-05-12) +- 新增 组件示例地址 +## 1.1.6(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-card/components/uni-card/uni-card.vue b/supervise-uniapp/uni_modules/uni-card/components/uni-card/uni-card.vue new file mode 100644 index 00000000..38cf594c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-card/components/uni-card/uni-card.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-card/package.json b/supervise-uniapp/uni_modules/uni-card/package.json new file mode 100644 index 00000000..f16224de --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-card/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-card", + "displayName": "uni-card 卡片", + "version": "1.3.1", + "description": "Card 组件,提供常见的卡片样式。", + "keywords": [ + "uni-ui", + "uniui", + "card", + "", + "卡片" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-icons", + "uni-scss" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-card/readme.md b/supervise-uniapp/uni_modules/uni-card/readme.md new file mode 100644 index 00000000..7434e71d --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-card/readme.md @@ -0,0 +1,12 @@ + + +## Card 卡片 +> **组件名:uni-card** +> 代码块: `uCard` + +卡片视图组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-card) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/supervise-uniapp/uni_modules/uni-collapse/changelog.md b/supervise-uniapp/uni_modules/uni-collapse/changelog.md new file mode 100644 index 00000000..292e4c79 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-collapse/changelog.md @@ -0,0 +1,36 @@ +## 1.4.3(2022-01-25) +- 修复 初始化的时候 ,open 属性失效的bug +## 1.4.2(2022-01-21) +- 修复 微信小程序resize后组件收起的bug +## 1.4.1(2021-11-22) +- 修复 vue3中个别scss变量无法找到的问题 +## 1.4.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-collapse](https://uniapp.dcloud.io/component/uniui/uni-collapse) +## 1.3.3(2021-08-17) +- 优化 show-arrow 属性默认为true +## 1.3.2(2021-08-17) +- 新增 show-arrow 属性,控制是否显示右侧箭头 +## 1.3.1(2021-07-30) +- 优化 vue3下小程序事件警告的问题 +## 1.3.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.2.2(2021-07-21) +- 修复 由1.2.0版本引起的 change 事件返回 undefined 的Bug +## 1.2.1(2021-07-21) +- 优化 组件示例 +## 1.2.0(2021-07-21) +- 新增 组件折叠动画 +- 新增 value\v-model 属性 ,动态修改面板折叠状态 +- 新增 title 插槽 ,可定义面板标题 +- 新增 border 属性 ,显示隐藏面板内容分隔线 +- 新增 title-border 属性 ,显示隐藏面板标题分隔线 +- 修复 resize 方法失效的Bug +- 修复 change 事件返回参数不正确的Bug +- 优化 H5、App 平台自动更具内容更新高度,无需调用 reszie() 方法 +## 1.1.7(2021-05-12) +- 新增 组件示例地址 +## 1.1.6(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.1.5(2021-02-05) +- 调整为uni_modules目录规范 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue b/supervise-uniapp/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue new file mode 100644 index 00000000..d62a6a71 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue @@ -0,0 +1,402 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue b/supervise-uniapp/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue new file mode 100644 index 00000000..384c39a9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue @@ -0,0 +1,147 @@ + + + diff --git a/supervise-uniapp/uni_modules/uni-collapse/package.json b/supervise-uniapp/uni_modules/uni-collapse/package.json new file mode 100644 index 00000000..65349cf9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-collapse/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-collapse", + "displayName": "uni-collapse 折叠面板", + "version": "1.4.3", + "description": "Collapse 组件,可以折叠 / 展开的内容区域。", + "keywords": [ + "uni-ui", + "折叠", + "折叠面板", + "手风琴" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-collapse/readme.md b/supervise-uniapp/uni_modules/uni-collapse/readme.md new file mode 100644 index 00000000..bc758ebc --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-collapse/readme.md @@ -0,0 +1,12 @@ + + +## Collapse 折叠面板 +> **组件名:uni-collapse** +> 代码块: `uCollapse` +> 关联组件:`uni-collapse-item`、`uni-icons`。 + + +折叠面板用来折叠/显示过长的内容或者是列表。通常是在多内容分类项使用,折叠不重要的内容,显示重要内容。点击可以展开折叠部分。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-collapse) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-combox/changelog.md b/supervise-uniapp/uni_modules/uni-combox/changelog.md new file mode 100644 index 00000000..23c27485 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-combox/changelog.md @@ -0,0 +1,15 @@ +## 1.0.1(2021-11-23) +- 优化 label、label-width 属性 +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-combox](https://uniapp.dcloud.io/component/uniui/uni-combox) +## 0.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.0.6(2021-05-12) +- 新增 组件示例地址 +## 0.0.5(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 0.0.4(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 0.0.3(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-combox/components/uni-combox/uni-combox.vue b/supervise-uniapp/uni_modules/uni-combox/components/uni-combox/uni-combox.vue new file mode 100644 index 00000000..500b6f88 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-combox/components/uni-combox/uni-combox.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-combox/package.json b/supervise-uniapp/uni_modules/uni-combox/package.json new file mode 100644 index 00000000..4a05c3ff --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-combox/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-combox", + "displayName": "uni-combox 组合框", + "version": "1.0.1", + "description": "可以选择也可以输入的表单项 ", + "keywords": [ + "uni-ui", + "uniui", + "combox", + "组合框", + "select" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-combox/readme.md b/supervise-uniapp/uni_modules/uni-combox/readme.md new file mode 100644 index 00000000..ffa2cc86 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-combox/readme.md @@ -0,0 +1,11 @@ + + +## Combox 组合框 +> **组件名:uni-combox** +> 代码块: `uCombox` + + +组合框组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-combox) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-countdown/changelog.md b/supervise-uniapp/uni_modules/uni-countdown/changelog.md new file mode 100644 index 00000000..f25beefc --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-countdown/changelog.md @@ -0,0 +1,24 @@ +## 1.2.2(2022-01-19) +- 修复 在微信小程序中样式不生效的bug +## 1.2.1(2022-01-18) +- 新增 update 方法 ,在动态更新时间后,刷新组件 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-countdown](https://uniapp.dcloud.io/component/uniui/uni-countdown) +## 1.1.3(2021-10-18) +- 重构 +- 新增 font-size 支持自定义字体大小 +## 1.1.2(2021-08-24) +- 新增 支持国际化 +## 1.1.1(2021-07-30) +- 优化 vue3下小程序事件警告的问题 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.5(2021-06-18) +- 修复 uni-countdown 重复赋值跳两秒的 bug +## 1.0.4(2021-05-12) +- 新增 组件示例地址 +## 1.0.3(2021-05-08) +- 修复 uni-countdown 不能控制倒计时的 bug +## 1.0.2(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json b/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json new file mode 100644 index 00000000..06309cb0 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json @@ -0,0 +1,6 @@ +{ + "uni-countdown.day": "day", + "uni-countdown.h": "h", + "uni-countdown.m": "m", + "uni-countdown.s": "s" +} diff --git a/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js b/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js new file mode 100644 index 00000000..de7509c8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json b/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json new file mode 100644 index 00000000..358cdd16 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json @@ -0,0 +1,6 @@ +{ + "uni-countdown.day": "天", + "uni-countdown.h": "时", + "uni-countdown.m": "分", + "uni-countdown.s": "秒" +} diff --git a/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json b/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json new file mode 100644 index 00000000..e5a63dea --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json @@ -0,0 +1,6 @@ +{ + "uni-countdown.day": "天", + "uni-countdown.h": "時", + "uni-countdown.m": "分", + "uni-countdown.s": "秒" +} diff --git a/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue b/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue new file mode 100644 index 00000000..1f8ef4eb --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue @@ -0,0 +1,271 @@ + + + diff --git a/supervise-uniapp/uni_modules/uni-countdown/package.json b/supervise-uniapp/uni_modules/uni-countdown/package.json new file mode 100644 index 00000000..70e99ee7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-countdown/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-countdown", + "displayName": "uni-countdown 倒计时", + "version": "1.2.2", + "description": "CountDown 倒计时组件", + "keywords": [ + "uni-ui", + "uniui", + "countdown", + "倒计时" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-countdown/readme.md b/supervise-uniapp/uni_modules/uni-countdown/readme.md new file mode 100644 index 00000000..4bcb1aa7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-countdown/readme.md @@ -0,0 +1,10 @@ + + +## CountDown 倒计时 +> **组件名:uni-countdown** +> 代码块: `uCountDown` + +倒计时组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-countdown) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-data-checkbox/changelog.md b/supervise-uniapp/uni_modules/uni-data-checkbox/changelog.md new file mode 100644 index 00000000..c7a468a2 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-checkbox/changelog.md @@ -0,0 +1,45 @@ +## 1.0.3(2022-09-16) +- 可以使用 uni-scss 控制主题色 +## 1.0.2(2022-06-30) +- 优化 在 uni-forms 中的依赖注入方式 +## 1.0.1(2022-02-07) +- 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-data-checkbox](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox) +## 0.2.5(2021-08-23) +- 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题 +## 0.2.4(2021-08-17) +- 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 +## 0.2.3(2021-08-11) +- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +## 0.2.2(2021-07-30) +- 优化 在uni-forms组件,与label不对齐的问题 +## 0.2.1(2021-07-27) +- 修复 单选默认值为0不能选中的Bug +## 0.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.1.11(2021-07-06) +- 优化 删除无用日志 +## 0.1.10(2021-07-05) +- 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题 +## 0.1.9(2021-07-05) +- 修复 nvue 黑框样式问题 +## 0.1.8(2021-06-28) +- 修复 selectedTextColor 属性不生效的Bug +## 0.1.7(2021-06-02) +- 新增 map 属性,可以方便映射text/value属性 +## 0.1.6(2021-05-26) +- 修复 不关联服务空间的情况下组件报错的Bug +## 0.1.5(2021-05-12) +- 新增 组件示例地址 +## 0.1.4(2021-04-09) +- 修复 nvue 下无法选中的问题 +## 0.1.3(2021-03-22) +- 新增 disabled属性 +## 0.1.2(2021-02-24) +- 优化 默认颜色显示 +## 0.1.1(2021-02-24) +- 新增 支持nvue +## 0.1.0(2021-02-18) +- “暂无数据”显示居中 diff --git a/supervise-uniapp/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue b/supervise-uniapp/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue new file mode 100644 index 00000000..3c75d9f4 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue @@ -0,0 +1,821 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-data-checkbox/package.json b/supervise-uniapp/uni_modules/uni-data-checkbox/package.json new file mode 100644 index 00000000..113c3505 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-checkbox/package.json @@ -0,0 +1,84 @@ +{ + "id": "uni-data-checkbox", + "displayName": "uni-data-checkbox 数据选择器", + "version": "1.0.3", + "description": "通过数据驱动的单选框和复选框", + "keywords": [ + "uni-ui", + "checkbox", + "单选", + "多选", + "单选多选" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.1" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": ["uni-load-more","uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-data-checkbox/readme.md b/supervise-uniapp/uni_modules/uni-data-checkbox/readme.md new file mode 100644 index 00000000..6eb253d4 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-checkbox/readme.md @@ -0,0 +1,18 @@ + + +## DataCheckbox 数据驱动的单选复选框 +> **组件名:uni-data-checkbox** +> 代码块: `uDataCheckbox` + + +本组件是基于uni-app基础组件checkbox的封装。本组件要解决问题包括: + +1. 数据绑定型组件:给本组件绑定一个data,会自动渲染一组候选内容。再以往,开发者需要编写不少代码实现类似功能 +2. 自动的表单校验:组件绑定了data,且符合[uni-forms](https://ext.dcloud.net.cn/plugin?id=2773)组件的表单校验规范,搭配使用会自动实现表单校验 +3. 本组件合并了单选多选 +4. 本组件有若干风格选择,如普通的单选多选框、并列button风格、tag风格。开发者可以快速选择需要的风格。但作为一个封装组件,样式代码虽然不用自己写了,却会牺牲一定的样式自定义性 + +在uniCloud开发中,`DB Schema`中配置了enum枚举等类型后,在web控制台的[自动生成表单](https://uniapp.dcloud.io/uniCloud/schema?id=autocode)功能中,会自动生成``uni-data-checkbox``组件并绑定好data + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-data-picker/changelog.md b/supervise-uniapp/uni_modules/uni-data-picker/changelog.md new file mode 100644 index 00000000..8451fb38 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-picker/changelog.md @@ -0,0 +1,66 @@ +## 1.0.8(2022-09-16) +- 可以使用 uni-scss 控制主题色 +## 1.0.7(2022-07-06) +- 优化 pc端图标位置不正确的问题 +## 1.0.6(2022-07-05) +- 优化 显示样式 +## 1.0.5(2022-07-04) +- 修复 uni-data-picker 在 uni-forms-item 中宽度不正确的bug +## 1.0.4(2022-04-19) +- 修复 字节小程序 本地数据无法选择下一级的Bug +## 1.0.3(2022-02-25) +- 修复 nvue 不支持的 v-show 的 bug +## 1.0.2(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式 +## 1.0.1(2021-11-23) +- 修复 由上个版本引发的map、v-model等属性不生效的bug +## 1.0.0(2021-11-19) +- 优化 组件 UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-data-picker](https://uniapp.dcloud.io/component/uniui/uni-data-picker) +## 0.4.9(2021-10-28) +- 修复 VUE2 v-model 概率无效的 bug +## 0.4.8(2021-10-27) +- 修复 v-model 概率无效的 bug +## 0.4.7(2021-10-25) +- 新增 属性 spaceInfo 服务空间配置 HBuilderX 3.2.11+ +- 修复 树型 uniCloud 数据类型为 int 时报错的 bug +## 0.4.6(2021-10-19) +- 修复 非 VUE3 v-model 为 0 时无法选中的 bug +## 0.4.5(2021-09-26) +- 新增 清除已选项的功能(通过 clearIcon 属性配置是否显示按钮),同时提供 clear 方法以供调用,二者等效 +- 修复 readonly 为 true 时报错的 bug +## 0.4.4(2021-09-26) +- 修复 上一版本造成的 map 属性失效的 bug +- 新增 ellipsis 属性,支持配置 tab 选项长度过长时是否自动省略 +## 0.4.3(2021-09-24) +- 修复 某些情况下级联未触发的 bug +## 0.4.2(2021-09-23) +- 新增 提供 show 和 hide 方法,开发者可以通过 ref 调用 +- 新增 选项内容过长自动添加省略号 +## 0.4.1(2021-09-15) +- 新增 map 属性 字段映射,将 text/value 映射到数据中的其他字段 +## 0.4.0(2021-07-13) +- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.3.5(2021-06-04) +- 修复 无法加载云端数据的问题 +## 0.3.4(2021-05-28) +- 修复 v-model 无效问题 +- 修复 loaddata 为空数据组时加载时间过长问题 +- 修复 上个版本引出的本地数据无法选择带有 children 的 2 级节点 +## 0.3.3(2021-05-12) +- 新增 组件示例地址 +## 0.3.2(2021-04-22) +- 修复 非树形数据有 where 属性查询报错的问题 +## 0.3.1(2021-04-15) +- 修复 本地数据概率无法回显时问题 +## 0.3.0(2021-04-07) +- 新增 支持云端非树形表结构数据 +- 修复 根节点 parent_field 字段等于 null 时选择界面错乱问题 +## 0.2.0(2021-03-15) +- 修复 nodeclick、popupopened、popupclosed 事件无法触发的问题 +## 0.1.9(2021-03-09) +- 修复 微信小程序某些情况下无法选择的问题 +## 0.1.8(2021-02-05) +- 优化 部分样式在 nvue 上的兼容表现 +## 0.1.7(2021-02-05) +- 调整为 uni_modules 目录规范 diff --git a/supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js b/supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js new file mode 100644 index 00000000..6ef26a26 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('keyup', listener) + }) + }, + render: () => {} +} +// #endif diff --git a/supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue b/supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue new file mode 100644 index 00000000..5f5f82d7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue @@ -0,0 +1,547 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js b/supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js new file mode 100644 index 00000000..cfae22a4 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js @@ -0,0 +1,622 @@ +export default { + props: { + localdata: { + type: [Array, Object], + default () { + return [] + } + }, + spaceInfo: { + type: Object, + default () { + return {} + } + }, + collection: { + type: String, + default: '' + }, + action: { + type: String, + default: '' + }, + field: { + type: String, + default: '' + }, + orderby: { + type: String, + default: '' + }, + where: { + type: [String, Object], + default: '' + }, + pageData: { + type: String, + default: 'add' + }, + pageCurrent: { + type: Number, + default: 1 + }, + pageSize: { + type: Number, + default: 500 + }, + getcount: { + type: [Boolean, String], + default: false + }, + getone: { + type: [Boolean, String], + default: false + }, + gettree: { + type: [Boolean, String], + default: false + }, + manual: { + type: Boolean, + default: false + }, + value: { + type: [Array, String, Number], + default () { + return [] + } + }, + modelValue: { + type: [Array, String, Number], + default () { + return [] + } + }, + preload: { + type: Boolean, + default: false + }, + stepSearh: { + type: Boolean, + default: true + }, + selfField: { + type: String, + default: '' + }, + parentField: { + type: String, + default: '' + }, + multiple: { + type: Boolean, + default: false + }, + map: { + type: Object, + default () { + return { + text: "text", + value: "value" + } + } + } + }, + data() { + return { + loading: false, + errorMessage: '', + loadMore: { + contentdown: '', + contentrefresh: '', + contentnomore: '' + }, + dataList: [], + selected: [], + selectedIndex: 0, + page: { + current: this.pageCurrent, + size: this.pageSize, + count: 0 + } + } + }, + computed: { + isLocalData() { + return !this.collection.length; + }, + isCloudData() { + return this.collection.length > 0; + }, + isCloudDataList() { + return (this.isCloudData && (!this.parentField && !this.selfField)); + }, + isCloudDataTree() { + return (this.isCloudData && this.parentField && this.selfField); + }, + dataValue() { + let isModelValue = Array.isArray(this.modelValue) ? (this.modelValue.length > 0) : (this.modelValue !== null || + this.modelValue !== undefined); + return isModelValue ? this.modelValue : this.value; + }, + hasValue() { + if (typeof this.dataValue === 'number') { + return true + } + return (this.dataValue != null) && (this.dataValue.length > 0) + } + }, + created() { + this.$watch(() => { + var al = []; + ['pageCurrent', + 'pageSize', + 'spaceInfo', + 'value', + 'modelValue', + 'localdata', + 'collection', + 'action', + 'field', + 'orderby', + 'where', + 'getont', + 'getcount', + 'gettree' + ].forEach(key => { + al.push(this[key]) + }); + return al + }, (newValue, oldValue) => { + let needReset = false + for (let i = 2; i < newValue.length; i++) { + if (newValue[i] != oldValue[i]) { + needReset = true + break + } + } + if (newValue[0] != oldValue[0]) { + this.page.current = this.pageCurrent + } + this.page.size = this.pageSize + + this.onPropsChange() + }) + this._treeData = [] + }, + methods: { + onPropsChange() { + this._treeData = []; + }, + + // 填充 pickview 数据 + async loadData() { + if (this.isLocalData) { + this.loadLocalData(); + } else if (this.isCloudDataList) { + this.loadCloudDataList(); + } else if (this.isCloudDataTree) { + this.loadCloudDataTree(); + } + }, + + // 加载本地数据 + async loadLocalData() { + this._treeData = []; + this._extractTree(this.localdata, this._treeData); + + let inputValue = this.dataValue; + if (inputValue === undefined) { + return; + } + + if (Array.isArray(inputValue)) { + inputValue = inputValue[inputValue.length - 1]; + if (typeof inputValue === 'object' && inputValue[this.map.value]) { + inputValue = inputValue[this.map.value]; + } + } + + this.selected = this._findNodePath(inputValue, this.localdata); + }, + + // 加载 Cloud 数据 (单列) + async loadCloudDataList() { + if (this.loading) { + return; + } + this.loading = true; + + try { + let response = await this.getCommand(); + let responseData = response.result.data; + + this._treeData = responseData; + + this._updateBindData(); + this._updateSelected(); + + this.onDataChange(); + } catch (e) { + this.errorMessage = e; + } finally { + this.loading = false; + } + }, + + // 加载 Cloud 数据 (树形) + async loadCloudDataTree() { + if (this.loading) { + return; + } + this.loading = true; + + try { + let commandOptions = { + field: this._cloudDataPostField(), + where: this._cloudDataTreeWhere() + }; + if (this.gettree) { + commandOptions.startwith = `${this.selfField}=='${this.dataValue}'`; + } + + let response = await this.getCommand(commandOptions); + let responseData = response.result.data; + + this._treeData = responseData; + this._updateBindData(); + this._updateSelected(); + + this.onDataChange(); + } catch (e) { + this.errorMessage = e; + } finally { + this.loading = false; + } + }, + + // 加载 Cloud 数据 (节点) + async loadCloudDataNode(callback) { + if (this.loading) { + return; + } + this.loading = true; + + try { + let commandOptions = { + field: this._cloudDataPostField(), + where: this._cloudDataNodeWhere() + }; + + let response = await this.getCommand(commandOptions); + let responseData = response.result.data; + + callback(responseData); + } catch (e) { + this.errorMessage = e; + } finally { + this.loading = false; + } + }, + + // 回显 Cloud 数据 + getCloudDataValue() { + if (this.isCloudDataList) { + return this.getCloudDataListValue(); + } + + if (this.isCloudDataTree) { + return this.getCloudDataTreeValue(); + } + }, + + // 回显 Cloud 数据 (单列) + getCloudDataListValue() { + // 根据 field's as value标识匹配 where 条件 + let where = []; + let whereField = this._getForeignKeyByField(); + if (whereField) { + where.push(`${whereField} == '${this.dataValue}'`) + } + + where = where.join(' || '); + + if (this.where) { + where = `(${this.where}) && (${where})` + } + + return this.getCommand({ + field: this._cloudDataPostField(), + where + }).then((res) => { + this.selected = res.result.data; + return res.result.data; + }); + }, + + // 回显 Cloud 数据 (树形) + getCloudDataTreeValue() { + return this.getCommand({ + field: this._cloudDataPostField(), + getTreePath: { + startWith: `${this.selfField}=='${this.dataValue}'` + } + }).then((res) => { + let treePath = []; + this._extractTreePath(res.result.data, treePath); + this.selected = treePath; + return treePath; + }); + }, + + getCommand(options = {}) { + /* eslint-disable no-undef */ + let db = uniCloud.database(this.spaceInfo) + + const action = options.action || this.action + if (action) { + db = db.action(action) + } + + const collection = options.collection || this.collection + db = db.collection(collection) + + const where = options.where || this.where + if (!(!where || !Object.keys(where).length)) { + db = db.where(where) + } + + const field = options.field || this.field + if (field) { + db = db.field(field) + } + + const orderby = options.orderby || this.orderby + if (orderby) { + db = db.orderBy(orderby) + } + + const current = options.pageCurrent !== undefined ? options.pageCurrent : this.page.current + const size = options.pageSize !== undefined ? options.pageSize : this.page.size + const getCount = options.getcount !== undefined ? options.getcount : this.getcount + const getTree = options.gettree !== undefined ? options.gettree : this.gettree + + const getOptions = { + getCount, + getTree + } + if (options.getTreePath) { + getOptions.getTreePath = options.getTreePath + } + + db = db.skip(size * (current - 1)).limit(size).get(getOptions) + + return db + }, + + _cloudDataPostField() { + let fields = [this.field]; + if (this.parentField) { + fields.push(`${this.parentField} as parent_value`); + } + return fields.join(','); + }, + + _cloudDataTreeWhere() { + let result = [] + let selected = this.selected + let parentField = this.parentField + if (parentField) { + result.push(`${parentField} == null || ${parentField} == ""`) + } + if (selected.length) { + for (var i = 0; i < selected.length - 1; i++) { + result.push(`${parentField} == '${selected[i].value}'`) + } + } + + let where = [] + if (this.where) { + where.push(`(${this.where})`) + } + + if (result.length) { + where.push(`(${result.join(' || ')})`) + } + + return where.join(' && ') + }, + + _cloudDataNodeWhere() { + let where = [] + let selected = this.selected; + if (selected.length) { + where.push(`${this.parentField} == '${selected[selected.length - 1].value}'`); + } + + where = where.join(' || '); + + if (this.where) { + return `(${this.where}) && (${where})` + } + + return where + }, + + _getWhereByForeignKey() { + let result = [] + let whereField = this._getForeignKeyByField(); + if (whereField) { + result.push(`${whereField} == '${this.dataValue}'`) + } + + if (this.where) { + return `(${this.where}) && (${result.join(' || ')})` + } + + return result.join(' || ') + }, + + _getForeignKeyByField() { + let fields = this.field.split(','); + let whereField = null; + for (let i = 0; i < fields.length; i++) { + const items = fields[i].split('as'); + if (items.length < 2) { + continue; + } + if (items[1].trim() === 'value') { + whereField = items[0].trim(); + break; + } + } + return whereField; + }, + + _updateBindData(node) { + const { + dataList, + hasNodes + } = this._filterData(this._treeData, this.selected) + + let isleaf = this._stepSearh === false && !hasNodes + + if (node) { + node.isleaf = isleaf + } + + this.dataList = dataList + this.selectedIndex = dataList.length - 1 + + if (!isleaf && this.selected.length < dataList.length) { + this.selected.push({ + value: null, + text: "请选择" + }) + } + + return { + isleaf, + hasNodes + } + }, + + _updateSelected() { + let dl = this.dataList + let sl = this.selected + let textField = this.map.text + let valueField = this.map.value + for (let i = 0; i < sl.length; i++) { + let value = sl[i].value + let dl2 = dl[i] + for (let j = 0; j < dl2.length; j++) { + let item2 = dl2[j] + if (item2[valueField] === value) { + sl[i].text = item2[textField] + break + } + } + } + }, + + _filterData(data, paths) { + let dataList = [] + let hasNodes = true + + dataList.push(data.filter((item) => { + return (item.parent_value === null || item.parent_value === undefined || item.parent_value === '') + })) + for (let i = 0; i < paths.length; i++) { + let value = paths[i].value + let nodes = data.filter((item) => { + return item.parent_value === value + }) + + if (nodes.length) { + dataList.push(nodes) + } else { + hasNodes = false + } + } + + return { + dataList, + hasNodes + } + }, + + _extractTree(nodes, result, parent_value) { + let list = result || [] + let valueField = this.map.value + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i] + + let child = {} + for (let key in node) { + if (key !== 'children') { + child[key] = node[key] + } + } + if (parent_value !== null && parent_value !== undefined && parent_value !== '') { + child.parent_value = parent_value + } + result.push(child) + + let children = node.children + if (children) { + this._extractTree(children, result, node[valueField]) + } + } + }, + + _extractTreePath(nodes, result) { + let list = result || [] + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i] + + let child = {} + for (let key in node) { + if (key !== 'children') { + child[key] = node[key] + } + } + result.push(child) + + let children = node.children + if (children) { + this._extractTreePath(children, result) + } + } + }, + + _findNodePath(key, nodes, path = []) { + let textField = this.map.text + let valueField = this.map.value + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i] + let children = node.children + let text = node[textField] + let value = node[valueField] + + path.push({ + value, + text + }) + + if (value === key) { + return path + } + + if (children) { + const p = this._findNodePath(key, children, path) + if (p.length) { + return p + } + } + + path.pop() + } + return [] + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue b/supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue new file mode 100644 index 00000000..e79f9bd8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue @@ -0,0 +1,321 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-data-picker/package.json b/supervise-uniapp/uni_modules/uni-data-picker/package.json new file mode 100644 index 00000000..7b731fca --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-picker/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-data-picker", + "displayName": "uni-data-picker 数据驱动的picker选择器", + "version": "1.0.8", + "description": "单列、多列级联选择器,常用于省市区城市选择、公司部门选择、多级分类等场景", + "keywords": [ + "uni-ui", + "uniui", + "picker", + "级联", + "省市区", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [ + "uni-load-more", + "uni-icons", + "uni-scss" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-data-picker/readme.md b/supervise-uniapp/uni_modules/uni-data-picker/readme.md new file mode 100644 index 00000000..6cda2240 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-picker/readme.md @@ -0,0 +1,22 @@ +## DataPicker 级联选择 +> **组件名:uni-data-picker** +> 代码块: `uDataPicker` +> 关联组件:`uni-data-pickerview`、`uni-load-more`。 + + +`` 是一个选择类[datacom组件](https://uniapp.dcloud.net.cn/component/datacom)。 + +支持单列、和多列级联选择。列数没有限制,如果屏幕显示不全,顶部tab区域会左右滚动。 + +候选数据支持一次性加载完毕,也支持懒加载,比如示例图中,选择了“北京”后,动态加载北京的区县数据。 + +`` 组件尤其适用于地址选择、分类选择等选择类。 + +`` 支持本地数据、云端静态数据(json),uniCloud云数据库数据。 + +`` 可以通过JQL直连uniCloud云数据库,配套[DB Schema](https://uniapp.dcloud.net.cn/uniCloud/schema),可在schema2code中自动生成前端页面,还支持服务器端校验。 + +在uniCloud数据表中新建表“uni-id-address”和“opendb-city-china”,这2个表的schema自带foreignKey关联。在“uni-id-address”表的表结构页面使用schema2code生成前端页面,会自动生成地址管理的维护页面,自动从“opendb-city-china”表包含的中国所有省市区信息里选择地址。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-data-select/changelog.md b/supervise-uniapp/uni_modules/uni-data-select/changelog.md new file mode 100644 index 00000000..9e48c69a --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-select/changelog.md @@ -0,0 +1,22 @@ +## 0.1.9(2022-09-05) +- 修复 微信小程序下拉框出现后选择会点击到蒙板后面的输入框 +## 0.1.8(2022-08-29) +- 修复 点击的位置不准确 +## 0.1.7(2022-08-12) +- 新增 支持 disabled 属性 +## 0.1.6(2022-07-06) +- 修复 pc端宽度异常的bug +## 0.1.5 +- 修复 pc端宽度异常的bug +## 0.1.4(2022-07-05) +- 优化 显示样式 +## 0.1.3(2022-06-02) +- 修复 localdata 赋值不生效的 bug +- 新增 支持 uni.scss 修改颜色 +- 新增 支持选项禁用(数据选项设置 disabled: true 即禁用) +## 0.1.2(2022-05-08) +- 修复 当 value 为 0 时选择不生效的 bug +## 0.1.1(2022-05-07) +- 新增 记住上次的选项(仅 collection 存在时有效) +## 0.1.0(2022-04-22) +- 初始化 diff --git a/supervise-uniapp/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue b/supervise-uniapp/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue new file mode 100644 index 00000000..919ffe3a --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue @@ -0,0 +1,440 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-data-select/package.json b/supervise-uniapp/uni_modules/uni-data-select/package.json new file mode 100644 index 00000000..2a203ca8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-select/package.json @@ -0,0 +1,85 @@ +{ + "id": "uni-data-select", + "displayName": "uni-data-select 下拉框选择器", + "version": "0.1.9", + "description": "通过数据驱动的下拉框选择器", + "keywords": [ + "uni-ui", + "select", + "uni-data-select", + "下拉框", + "下拉选" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.1" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": ["uni-load-more"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "u", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "u", + "百度": "u", + "字节跳动": "u", + "QQ": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-data-select/readme.md b/supervise-uniapp/uni_modules/uni-data-select/readme.md new file mode 100644 index 00000000..eb58de30 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-data-select/readme.md @@ -0,0 +1,8 @@ +## DataSelect 下拉框选择器 +> **组件名:uni-data-select** +> 代码块: `uDataSelect` + +当选项过多时,使用下拉菜单展示并选择内容 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-select) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/supervise-uniapp/uni_modules/uni-dateformat/changelog.md b/supervise-uniapp/uni_modules/uni-dateformat/changelog.md new file mode 100644 index 00000000..d551d7b8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-dateformat/changelog.md @@ -0,0 +1,10 @@ +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-dateformat](https://uniapp.dcloud.io/component/uniui/uni-dateformat) +## 0.0.5(2021-07-08) +- 调整 默认时间不再是当前时间,而是显示'-'字符 +## 0.0.4(2021-05-12) +- 新增 组件示例地址 +## 0.0.3(2021-02-04) +- 调整为uni_modules目录规范 +- 修复 iOS 平台日期格式化出错的问题 diff --git a/supervise-uniapp/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js b/supervise-uniapp/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js new file mode 100644 index 00000000..e00d5597 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js @@ -0,0 +1,200 @@ +// yyyy-MM-dd hh:mm:ss.SSS 所有支持的类型 +function pad(str, length = 2) { + str += '' + while (str.length < length) { + str = '0' + str + } + return str.slice(-length) +} + +const parser = { + yyyy: (dateObj) => { + return pad(dateObj.year, 4) + }, + yy: (dateObj) => { + return pad(dateObj.year) + }, + MM: (dateObj) => { + return pad(dateObj.month) + }, + M: (dateObj) => { + return dateObj.month + }, + dd: (dateObj) => { + return pad(dateObj.day) + }, + d: (dateObj) => { + return dateObj.day + }, + hh: (dateObj) => { + return pad(dateObj.hour) + }, + h: (dateObj) => { + return dateObj.hour + }, + mm: (dateObj) => { + return pad(dateObj.minute) + }, + m: (dateObj) => { + return dateObj.minute + }, + ss: (dateObj) => { + return pad(dateObj.second) + }, + s: (dateObj) => { + return dateObj.second + }, + SSS: (dateObj) => { + return pad(dateObj.millisecond, 3) + }, + S: (dateObj) => { + return dateObj.millisecond + }, +} + +// 这都n年了iOS依然不认识2020-12-12,需要转换为2020/12/12 +function getDate(time) { + if (time instanceof Date) { + return time + } + switch (typeof time) { + case 'string': + { + // 2020-12-12T12:12:12.000Z、2020-12-12T12:12:12.000 + if (time.indexOf('T') > -1) { + return new Date(time) + } + return new Date(time.replace(/-/g, '/')) + } + default: + return new Date(time) + } +} + +export function formatDate(date, format = 'yyyy/MM/dd hh:mm:ss') { + if (!date && date !== 0) { + return '' + } + date = getDate(date) + const dateObj = { + year: date.getFullYear(), + month: date.getMonth() + 1, + day: date.getDate(), + hour: date.getHours(), + minute: date.getMinutes(), + second: date.getSeconds(), + millisecond: date.getMilliseconds() + } + const tokenRegExp = /yyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S/ + let flag = true + let result = format + while (flag) { + flag = false + result = result.replace(tokenRegExp, function(matched) { + flag = true + return parser[matched](dateObj) + }) + } + return result +} + +export function friendlyDate(time, { + locale = 'zh', + threshold = [60000, 3600000], + format = 'yyyy/MM/dd hh:mm:ss' +}) { + if (time === '-') { + return time + } + if (!time && time !== 0) { + return '' + } + const localeText = { + zh: { + year: '年', + month: '月', + day: '天', + hour: '小时', + minute: '分钟', + second: '秒', + ago: '前', + later: '后', + justNow: '刚刚', + soon: '马上', + template: '{num}{unit}{suffix}' + }, + en: { + year: 'year', + month: 'month', + day: 'day', + hour: 'hour', + minute: 'minute', + second: 'second', + ago: 'ago', + later: 'later', + justNow: 'just now', + soon: 'soon', + template: '{num} {unit} {suffix}' + } + } + const text = localeText[locale] || localeText.zh + let date = getDate(time) + let ms = date.getTime() - Date.now() + let absMs = Math.abs(ms) + if (absMs < threshold[0]) { + return ms < 0 ? text.justNow : text.soon + } + if (absMs >= threshold[1]) { + return formatDate(date, format) + } + let num + let unit + let suffix = text.later + if (ms < 0) { + suffix = text.ago + ms = -ms + } + const seconds = Math.floor((ms) / 1000) + const minutes = Math.floor(seconds / 60) + const hours = Math.floor(minutes / 60) + const days = Math.floor(hours / 24) + const months = Math.floor(days / 30) + const years = Math.floor(months / 12) + switch (true) { + case years > 0: + num = years + unit = text.year + break + case months > 0: + num = months + unit = text.month + break + case days > 0: + num = days + unit = text.day + break + case hours > 0: + num = hours + unit = text.hour + break + case minutes > 0: + num = minutes + unit = text.minute + break + default: + num = seconds + unit = text.second + break + } + + if (locale === 'en') { + if (num === 1) { + num = 'a' + } else { + unit += 's' + } + } + + return text.template.replace(/{\s*num\s*}/g, num + '').replace(/{\s*unit\s*}/g, unit).replace(/{\s*suffix\s*}/g, + suffix) +} diff --git a/supervise-uniapp/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue b/supervise-uniapp/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue new file mode 100644 index 00000000..c5ed0307 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-dateformat/package.json b/supervise-uniapp/uni_modules/uni-dateformat/package.json new file mode 100644 index 00000000..786a670b --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-dateformat/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-dateformat", + "displayName": "uni-dateformat 日期格式化", + "version": "1.0.0", + "description": "日期格式化组件,可以将日期格式化为1分钟前、刚刚等形式", + "keywords": [ + "uni-ui", + "uniui", + "日期格式化", + "时间格式化", + "格式化时间", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-dateformat/readme.md b/supervise-uniapp/uni_modules/uni-dateformat/readme.md new file mode 100644 index 00000000..37ddb6ec --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-dateformat/readme.md @@ -0,0 +1,11 @@ + + +### DateFormat 日期格式化 +> **组件名:uni-dateformat** +> 代码块: `uDateformat` + + +日期格式化组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-dateformat) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/changelog.md b/supervise-uniapp/uni_modules/uni-datetime-picker/changelog.md new file mode 100644 index 00000000..9f098629 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/changelog.md @@ -0,0 +1,103 @@ +## 2.2.11(2022-09-19) +- 修复,支付宝小程序样式错乱,[详情](https://github.com/dcloudio/uni-app/issues/3861) +## 2.2.10(2022-09-19) +- 修复,反向选择日期范围,日期显示异常,[详情](https://ask.dcloud.net.cn/question/153401?item_id=212892&rf=false) +## 2.2.9(2022-09-16) +- 可以使用 uni-scss 控制主题色 +## 2.2.8(2022-09-08) +- 修复 close事件无效的 bug +## 2.2.7(2022-09-05) +- 修复 移动端 maskClick 无效的 bug,详见:[https://ask.dcloud.net.cn/question/140824?item_id=209458&rf=false](https://ask.dcloud.net.cn/question/140824?item_id=209458&rf=false) +## 2.2.6(2022-06-30) +- 优化 组件样式,调整了组件图标大小、高度、颜色等,与uni-ui风格保持一致 +## 2.2.5(2022-06-24) +- 修复 日历顶部年月及底部确认未国际化 bug +## 2.2.4(2022-03-31) +- 修复 Vue3 下动态赋值,单选类型未响应的 bug +## 2.2.3(2022-03-28) +- 修复 Vue3 下动态赋值未响应的 bug +## 2.2.2(2021-12-10) +- 修复 clear-icon 属性在小程序平台不生效的 bug +## 2.2.1(2021-12-10) +- 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug +## 2.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-datetime-picker](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) +## 2.1.5(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 2.1.4(2021-09-10) +- 修复 hide-second 在移动端的 bug +- 修复 单选赋默认值时,赋值日期未高亮的 bug +- 修复 赋默认值时,移动端未正确显示时间的 bug +## 2.1.3(2021-09-09) +- 新增 hide-second 属性,支持只使用时分,隐藏秒 +## 2.1.2(2021-09-03) +- 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 +- 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 +- 优化 调整字号大小,美化日历界面 +- 修复 因国际化导致的 placeholder 失效的 bug +## 2.1.1(2021-08-24) +- 新增 支持国际化 +- 优化 范围选择器在 pc 端过宽的问题 +## 2.1.0(2021-08-09) +- 新增 适配 vue3 +## 2.0.19(2021-08-09) +- 新增 支持作为 uni-forms 子组件相关功能 +- 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug +## 2.0.18(2021-08-05) +- 修复 type 属性动态赋值无效的 bug +- 修复 ‘确认’按钮被 tabbar 遮盖 bug +- 修复 组件未赋值时范围选左、右日历相同的 bug +## 2.0.17(2021-08-04) +- 修复 范围选未正确显示当前值的 bug +- 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug +## 2.0.16(2021-07-21) +- 新增 return-type 属性支持返回 date 日期对象 +## 2.0.15(2021-07-14) +- 修复 单选日期类型,初始赋值后不在当前日历的 bug +- 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效) +- 优化 移动端移除显示框的清空按钮,无实际用途 +## 2.0.14(2021-07-14) +- 修复 组件赋值为空,界面未更新的 bug +- 修复 start 和 end 不能动态赋值的 bug +- 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的 bug +## 2.0.13(2021-07-08) +- 修复 范围选择不能动态赋值的 bug +## 2.0.12(2021-07-08) +- 修复 范围选择的初始时间在一个月内时,造成无法选择的bug +## 2.0.11(2021-07-08) +- 优化 弹出层在超出视窗边缘定位不准确的问题 +## 2.0.10(2021-07-08) +- 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的 bug +- 优化 弹出层在超出视窗边缘被遮盖的问题 +## 2.0.9(2021-07-07) +- 新增 maskClick 事件 +- 修复 特殊情况日历 rpx 布局错误的 bug,rpx -> px +- 修复 范围选择时清空返回值不合理的bug,['', ''] -> [] +## 2.0.8(2021-07-07) +- 新增 日期时间显示框支持插槽 +## 2.0.7(2021-07-01) +- 优化 添加 uni-icons 依赖 +## 2.0.6(2021-05-22) +- 修复 图标在小程序上不显示的 bug +- 优化 重命名引用组件,避免潜在组件命名冲突 +## 2.0.5(2021-05-20) +- 优化 代码目录扁平化 +## 2.0.4(2021-05-12) +- 新增 组件示例地址 +## 2.0.3(2021-05-10) +- 修复 ios 下不识别 '-' 日期格式的 bug +- 优化 pc 下弹出层添加边框和阴影 +## 2.0.2(2021-05-08) +- 修复 在 admin 中获取弹出层定位错误的bug +## 2.0.1(2021-05-08) +- 修复 type 属性向下兼容,默认值从 date 变更为 datetime +## 2.0.0(2021-04-30) +- 支持日历形式的日期+时间的范围选择 + > 注意:此版本不向后兼容,不再支持单独时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker) +## 1.0.6(2021-03-18) +- 新增 hide-second 属性,时间支持仅选择时、分 +- 修复 选择跟显示的日期不一样的 bug +- 修复 chang事件触发2次的 bug +- 修复 分、秒 end 范围错误的 bug +- 优化 更好的 nvue 适配 diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue new file mode 100644 index 00000000..a2201d3f --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue @@ -0,0 +1,187 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue new file mode 100644 index 00000000..b3764709 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue @@ -0,0 +1,924 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json new file mode 100644 index 00000000..9acf1ab0 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json @@ -0,0 +1,22 @@ +{ + "uni-datetime-picker.selectDate": "select date", + "uni-datetime-picker.selectTime": "select time", + "uni-datetime-picker.selectDateTime": "select datetime", + "uni-datetime-picker.startDate": "start date", + "uni-datetime-picker.endDate": "end date", + "uni-datetime-picker.startTime": "start time", + "uni-datetime-picker.endTime": "end time", + "uni-datetime-picker.ok": "ok", + "uni-datetime-picker.clear": "clear", + "uni-datetime-picker.cancel": "cancel", + "uni-datetime-picker.year": "-", + "uni-datetime-picker.month": "", + "uni-calender.MON": "MON", + "uni-calender.TUE": "TUE", + "uni-calender.WED": "WED", + "uni-calender.THU": "THU", + "uni-calender.FRI": "FRI", + "uni-calender.SAT": "SAT", + "uni-calender.SUN": "SUN", + "uni-calender.confirm": "confirm" +} diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js new file mode 100644 index 00000000..de7509c8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json new file mode 100644 index 00000000..d2df5e72 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json @@ -0,0 +1,22 @@ +{ + "uni-datetime-picker.selectDate": "选择日期", + "uni-datetime-picker.selectTime": "选择时间", + "uni-datetime-picker.selectDateTime": "选择日期时间", + "uni-datetime-picker.startDate": "开始日期", + "uni-datetime-picker.endDate": "结束日期", + "uni-datetime-picker.startTime": "开始时间", + "uni-datetime-picker.endTime": "结束时间", + "uni-datetime-picker.ok": "确定", + "uni-datetime-picker.clear": "清除", + "uni-datetime-picker.cancel": "取消", + "uni-datetime-picker.year": "年", + "uni-datetime-picker.month": "月", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六", + "uni-calender.confirm": "确认" +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json new file mode 100644 index 00000000..d23fa3c3 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json @@ -0,0 +1,22 @@ +{ + "uni-datetime-picker.selectDate": "選擇日期", + "uni-datetime-picker.selectTime": "選擇時間", + "uni-datetime-picker.selectDateTime": "選擇日期時間", + "uni-datetime-picker.startDate": "開始日期", + "uni-datetime-picker.endDate": "結束日期", + "uni-datetime-picker.startTime": "開始时间", + "uni-datetime-picker.endTime": "結束时间", + "uni-datetime-picker.ok": "確定", + "uni-datetime-picker.clear": "清除", + "uni-datetime-picker.cancel": "取消", + "uni-datetime-picker.year": "年", + "uni-datetime-picker.month": "月", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六", + "uni-calender.confirm": "確認" +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js new file mode 100644 index 00000000..9601abae --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('keyup', listener) + }) + }, + render: () => {} +} +// #endif \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue new file mode 100644 index 00000000..b4ba1724 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue @@ -0,0 +1,946 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue new file mode 100644 index 00000000..b9297edb --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue @@ -0,0 +1,1015 @@ + + + + diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js new file mode 100644 index 00000000..efa5773a --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js @@ -0,0 +1,410 @@ +class Calendar { + constructor({ + date, + selected, + startDate, + endDate, + range, + // multipleStatus + } = {}) { + // 当前日期 + this.date = this.getDate(new Date()) // 当前初入日期 + // 打点信息 + this.selected = selected || []; + // 范围开始 + this.startDate = startDate + // 范围结束 + this.endDate = endDate + this.range = range + // 多选状态 + this.cleanMultipleStatus() + // 每周日期 + this.weeks = {} + // this._getWeek(this.date.fullDate) + // this.multipleStatus = multipleStatus + this.lastHover = false + } + /** + * 设置日期 + * @param {Object} date + */ + setDate(date) { + this.selectDate = this.getDate(date) + this._getWeek(this.selectDate.fullDate) + } + + /** + * 清理多选状态 + */ + cleanMultipleStatus() { + this.multipleStatus = { + before: '', + after: '', + data: [] + } + } + + /** + * 重置开始日期 + */ + resetSatrtDate(startDate) { + // 范围开始 + this.startDate = startDate + + } + + /** + * 重置结束日期 + */ + resetEndDate(endDate) { + // 范围结束 + this.endDate = endDate + } + + /** + * 获取任意时间 + */ + getDate(date, AddDayCount = 0, str = 'day') { + if (!date) { + date = new Date() + } + if (typeof date !== 'object') { + date = date.replace(/-/g, '/') + } + const dd = new Date(date) + switch (str) { + case 'day': + dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 + break + case 'month': + if (dd.getDate() === 31) { + dd.setDate(dd.getDate() + AddDayCount) + } else { + dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 + } + break + case 'year': + dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 + break + } + const y = dd.getFullYear() + const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0 + const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 + return { + fullDate: y + '-' + m + '-' + d, + year: y, + month: m, + date: d, + day: dd.getDay() + } + } + + + /** + * 获取上月剩余天数 + */ + _getLastMonthDays(firstDay, full) { + let dateArr = [] + for (let i = firstDay; i > 0; i--) { + const beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate() + dateArr.push({ + date: beforeDate, + month: full.month - 1, + disable: true + }) + } + return dateArr + } + /** + * 获取本月天数 + */ + _currentMonthDys(dateData, full) { + let dateArr = [] + let fullDate = this.date.fullDate + for (let i = 1; i <= dateData; i++) { + let isinfo = false + let nowDate = full.year + '-' + (full.month < 10 ? + full.month : full.month) + '-' + (i < 10 ? + '0' + i : i) + // 是否今天 + let isDay = fullDate === nowDate + // 获取打点信息 + let info = this.selected && this.selected.find((item) => { + if (this.dateEqual(nowDate, item.date)) { + return item + } + }) + + // 日期禁用 + let disableBefore = true + let disableAfter = true + if (this.startDate) { + // let dateCompBefore = this.dateCompare(this.startDate, fullDate) + // disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate) + disableBefore = this.dateCompare(this.startDate, nowDate) + } + + if (this.endDate) { + // let dateCompAfter = this.dateCompare(fullDate, this.endDate) + // disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate) + disableAfter = this.dateCompare(nowDate, this.endDate) + } + let multiples = this.multipleStatus.data + let checked = false + let multiplesStatus = -1 + if (this.range) { + if (multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, nowDate) + }) + } + if (multiplesStatus !== -1) { + checked = true + } + } + let data = { + fullDate: nowDate, + year: full.year, + date: i, + multiple: this.range ? checked : false, + beforeMultiple: this.isLogicBefore(nowDate, this.multipleStatus.before, this.multipleStatus.after), + afterMultiple: this.isLogicAfter(nowDate, this.multipleStatus.before, this.multipleStatus.after), + month: full.month, + disable: !(disableBefore && disableAfter), + isDay, + userChecked: false + } + if (info) { + data.extraInfo = info + } + + dateArr.push(data) + } + return dateArr + } + /** + * 获取下月天数 + */ + _getNextMonthDays(surplus, full) { + let dateArr = [] + for (let i = 1; i < surplus + 1; i++) { + dateArr.push({ + date: i, + month: Number(full.month) + 1, + disable: true + }) + } + return dateArr + } + + /** + * 获取当前日期详情 + * @param {Object} date + */ + getInfo(date) { + if (!date) { + date = new Date() + } + const dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate) + return dateInfo + } + + /** + * 比较时间大小 + */ + dateCompare(startDate, endDate) { + // 计算截止时间 + startDate = new Date(startDate.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + endDate = new Date(endDate.replace('-', '/').replace('-', '/')) + if (startDate <= endDate) { + return true + } else { + return false + } + } + + /** + * 比较时间是否相等 + */ + dateEqual(before, after) { + // 计算截止时间 + before = new Date(before.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + after = new Date(after.replace('-', '/').replace('-', '/')) + if (before.getTime() - after.getTime() === 0) { + return true + } else { + return false + } + } + + /** + * 比较真实起始日期 + */ + + isLogicBefore(currentDay, before, after) { + let logicBefore = before + if (before && after) { + logicBefore = this.dateCompare(before, after) ? before : after + } + return this.dateEqual(logicBefore, currentDay) + } + + isLogicAfter(currentDay, before, after) { + let logicAfter = after + if (before && after) { + logicAfter = this.dateCompare(before, after) ? after : before + } + return this.dateEqual(logicAfter, currentDay) + } + + /** + * 获取日期范围内所有日期 + * @param {Object} begin + * @param {Object} end + */ + geDateAll(begin, end) { + var arr = [] + var ab = begin.split('-') + var ae = end.split('-') + var db = new Date() + db.setFullYear(ab[0], ab[1] - 1, ab[2]) + var de = new Date() + de.setFullYear(ae[0], ae[1] - 1, ae[2]) + var unixDb = db.getTime() - 24 * 60 * 60 * 1000 + var unixDe = de.getTime() - 24 * 60 * 60 * 1000 + for (var k = unixDb; k <= unixDe;) { + k = k + 24 * 60 * 60 * 1000 + arr.push(this.getDate(new Date(parseInt(k))).fullDate) + } + return arr + } + + /** + * 获取多选状态 + */ + setMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + if (!this.range) return + if (before && after) { + if (!this.lastHover) { + this.lastHover = true + return + } + this.multipleStatus.before = fullDate + this.multipleStatus.after = '' + this.multipleStatus.data = [] + this.multipleStatus.fulldate = '' + this.lastHover = false + } else { + if (!before) { + this.multipleStatus.before = fullDate + this.lastHover = false + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus + .after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus + .before); + } + this.lastHover = true + } + } + this._getWeek(fullDate) + } + + /** + * 鼠标 hover 更新多选状态 + */ + setHoverMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + + if (!this.range) return + if (this.lastHover) return + + if (!before) { + this.multipleStatus.before = fullDate + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); + } + } + this._getWeek(fullDate) + } + + /** + * 更新默认值多选状态 + */ + setDefaultMultiple(before, after) { + this.multipleStatus.before = before + this.multipleStatus.after = after + if (before && after) { + if (this.dateCompare(before, after)) { + this.multipleStatus.data = this.geDateAll(before, after); + this._getWeek(after) + } else { + this.multipleStatus.data = this.geDateAll(after, before); + this._getWeek(before) + } + } + } + + /** + * 获取每周数据 + * @param {Object} dateData + */ + _getWeek(dateData) { + const { + fullDate, + year, + month, + date, + day + } = this.getDate(dateData) + let firstDay = new Date(year, month - 1, 1).getDay() + let currentDay = new Date(year, month, 0).getDate() + let dates = { + lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天 + currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数 + nextMonthDays: [], // 下个月开始几天 + weeks: [] + } + let canlender = [] + const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length) + dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData)) + canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) + let weeks = {} + // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 + for (let i = 0; i < canlender.length; i++) { + if (i % 7 === 0) { + weeks[parseInt(i / 7)] = new Array(7) + } + weeks[parseInt(i / 7)][i % 7] = canlender[i] + } + this.canlender = canlender + this.weeks = weeks + } + + //静态方法 + // static init(date) { + // if (!this.instance) { + // this.instance = new Calendar(date); + // } + // return this.instance; + // } +} + + +export default Calendar diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/package.json b/supervise-uniapp/uni_modules/uni-datetime-picker/package.json new file mode 100644 index 00000000..f7a2e6aa --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-datetime-picker", + "displayName": "uni-datetime-picker 日期选择器", + "version": "2.2.11", + "description": "uni-datetime-picker 日期时间选择器,支持日历,支持范围选择", + "keywords": [ + "uni-datetime-picker", + "uni-ui", + "uniui", + "日期时间选择器", + "日期时间" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-datetime-picker/readme.md b/supervise-uniapp/uni_modules/uni-datetime-picker/readme.md new file mode 100644 index 00000000..162fbefa --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-datetime-picker/readme.md @@ -0,0 +1,21 @@ + + +> `重要通知:组件升级更新 2.0.0 后,支持日期+时间范围选择,组件 ui 将使用日历选择日期,ui 变化较大,同时支持 PC 和 移动端。此版本不向后兼容,不再支持单独的时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker)。若仍需使用旧版本,可在插件市场下载*非uni_modules版本*,旧版本将不再维护` + +## DatetimePicker 时间选择器 + +> **组件名:uni-datetime-picker** +> 代码块: `uDatetimePicker` + + +该组件的优势是,支持**时间戳**输入和输出(起始时间、终止时间也支持时间戳),可**同时选择**日期和时间。 + +若只是需要单独选择日期和时间,不需要时间戳输入和输出,可使用原生的 picker 组件。 + +**_点击 picker 默认值规则:_** + +- 若设置初始值 value, 会显示在 picker 显示框中 +- 若无初始值 value,则初始值 value 为当前本地时间 Date.now(), 但不会显示在 picker 显示框中 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-drawer/changelog.md b/supervise-uniapp/uni_modules/uni-drawer/changelog.md new file mode 100644 index 00000000..6d2488c3 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-drawer/changelog.md @@ -0,0 +1,13 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中个别scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-drawer](https://uniapp.dcloud.io/component/uniui/uni-drawer) +## 1.1.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-drawer/components/uni-drawer/keypress.js b/supervise-uniapp/uni_modules/uni-drawer/components/uni-drawer/keypress.js new file mode 100644 index 00000000..62dda461 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-drawer/components/uni-drawer/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + // this.$once('hook:beforeDestroy', () => { + // document.removeEventListener('keyup', listener) + // }) + }, + render: () => {} +} +// #endif diff --git a/supervise-uniapp/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue b/supervise-uniapp/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue new file mode 100644 index 00000000..82331a81 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue @@ -0,0 +1,183 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-drawer/package.json b/supervise-uniapp/uni_modules/uni-drawer/package.json new file mode 100644 index 00000000..dd056e4c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-drawer/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-drawer", + "displayName": "uni-drawer 抽屉", + "version": "1.2.1", + "description": "抽屉式导航,用于展示侧滑菜单,侧滑导航。", + "keywords": [ + "uni-ui", + "uniui", + "drawer", + "抽屉", + "侧滑导航" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-drawer/readme.md b/supervise-uniapp/uni_modules/uni-drawer/readme.md new file mode 100644 index 00000000..dcf6e6b2 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-drawer/readme.md @@ -0,0 +1,10 @@ + + +## Drawer 抽屉 +> **组件名:uni-drawer** +> 代码块: `uDrawer` + +抽屉侧滑菜单。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-drawer) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-easyinput/changelog.md b/supervise-uniapp/uni_modules/uni-easyinput/changelog.md new file mode 100644 index 00000000..49b1a3bf --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-easyinput/changelog.md @@ -0,0 +1,86 @@ +## 1.1.0(2022-06-30) + +- 新增 在 uni-forms 1.4.0 中使用可以在 blur 时校验内容 +- 新增 clear 事件,点击右侧叉号图标触发 +- 新增 change 事件 ,仅在输入框失去焦点或用户按下回车时触发 +- 优化 组件样式,组件获取焦点时高亮显示,图标颜色调整等 +- + +## 1.0.5(2022-06-07) + +- 优化 clearable 显示策略 + +## 1.0.4(2022-06-07) + +- 优化 clearable 显示策略 + +## 1.0.3(2022-05-20) + +- 修复 关闭图标某些情况下无法取消的 bug + +## 1.0.2(2022-04-12) + +- 修复 默认值不生效的 bug + +## 1.0.1(2022-04-02) + +- 修复 value 不能为 0 的 bug + +## 1.0.0(2021-11-19) + +- 优化 组件 UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-easyinput](https://uniapp.dcloud.io/component/uniui/uni-easyinput) + +## 0.1.4(2021-08-20) + +- 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug + +## 0.1.3(2021-08-11) + +- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 + +## 0.1.2(2021-07-30) + +- 优化 vue3 下事件警告的问题 + +## 0.1.1 + +- 优化 errorMessage 属性支持 Boolean 类型 + +## 0.1.0(2021-07-13) + +- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) + +## 0.0.16(2021-06-29) + +- 修复 confirmType 属性(仅 type="text" 生效)导致多行文本框无法换行的 bug + +## 0.0.15(2021-06-21) + +- 修复 passwordIcon 属性拼写错误的 bug + +## 0.0.14(2021-06-18) + +- 新增 passwordIcon 属性,当 type=password 时是否显示小眼睛图标 +- 修复 confirmType 属性不生效的问题 + +## 0.0.13(2021-06-04) + +- 修复 disabled 状态可清出内容的 bug + +## 0.0.12(2021-05-12) + +- 新增 组件示例地址 + +## 0.0.11(2021-05-07) + +- 修复 input-border 属性不生效的问题 + +## 0.0.10(2021-04-30) + +- 修复 ios 遮挡文字、显示一半的问题 + +## 0.0.9(2021-02-05) + +- 调整为 uni_modules 目录规范 +- 优化 兼容 nvue 页面 diff --git a/supervise-uniapp/uni_modules/uni-easyinput/components/uni-easyinput/common.js b/supervise-uniapp/uni_modules/uni-easyinput/components/uni-easyinput/common.js new file mode 100644 index 00000000..df9abe1d --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-easyinput/components/uni-easyinput/common.js @@ -0,0 +1,56 @@ +/** + * @desc 函数防抖 + * @param func 目标函数 + * @param wait 延迟执行毫秒数 + * @param immediate true - 立即执行, false - 延迟执行 + */ +export const debounce = function(func, wait = 1000, immediate = true) { + let timer; + console.log(1); + return function() { + console.log(123); + let context = this, + args = arguments; + if (timer) clearTimeout(timer); + if (immediate) { + let callNow = !timer; + timer = setTimeout(() => { + timer = null; + }, wait); + if (callNow) func.apply(context, args); + } else { + timer = setTimeout(() => { + func.apply(context, args); + }, wait) + } + } +} +/** + * @desc 函数节流 + * @param func 函数 + * @param wait 延迟执行毫秒数 + * @param type 1 使用表时间戳,在时间段开始的时候触发 2 使用表定时器,在时间段结束的时候触发 + */ +export const throttle = (func, wait = 1000, type = 1) => { + let previous = 0; + let timeout; + return function() { + let context = this; + let args = arguments; + if (type === 1) { + let now = Date.now(); + + if (now - previous > wait) { + func.apply(context, args); + previous = now; + } + } else if (type === 2) { + if (!timeout) { + timeout = setTimeout(() => { + timeout = null; + func.apply(context, args) + }, wait) + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue b/supervise-uniapp/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue new file mode 100644 index 00000000..a779cec3 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue @@ -0,0 +1,679 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-easyinput/package.json b/supervise-uniapp/uni_modules/uni-easyinput/package.json new file mode 100644 index 00000000..4ca4200a --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-easyinput/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-easyinput", + "displayName": "uni-easyinput 增强输入框", + "version": "1.1.3", + "description": "Easyinput 组件是对原生input组件的增强", + "keywords": [ + "uni-ui", + "uniui", + "input", + "uni-easyinput", + "输入框" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-easyinput/readme.md b/supervise-uniapp/uni_modules/uni-easyinput/readme.md new file mode 100644 index 00000000..f1faf8fb --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-easyinput/readme.md @@ -0,0 +1,11 @@ + + +### Easyinput 增强输入框 +> **组件名:uni-easyinput** +> 代码块: `uEasyinput` + + +easyinput 组件是对原生input组件的增强 ,是专门为配合表单组件[uni-forms](https://ext.dcloud.net.cn/plugin?id=2773)而设计的,easyinput 内置了边框,图标等,同时包含 input 所有功能 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-easyinput) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-fab/changelog.md b/supervise-uniapp/uni_modules/uni-fab/changelog.md new file mode 100644 index 00000000..0048ff92 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-fab/changelog.md @@ -0,0 +1,21 @@ +## 1.2.4(2022-09-07) +小程序端由于 style 使用了对象导致报错,[详情](https://ask.dcloud.net.cn/question/152790?item_id=211778&rf=false) +## 1.2.3(2022-09-05) +- 修复 nvue 环境下,具有 tabBar 时,fab 组件下部位置无法正常获取 --window-bottom 的bug,详见:[https://ask.dcloud.net.cn/question/110638?notification_id=826310](https://ask.dcloud.net.cn/question/110638?notification_id=826310) +## 1.2.2(2021-12-29) +- 更新 组件依赖 +## 1.2.1(2021-11-19) +- 修复 阴影颜色不正确的bug +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fab](https://uniapp.dcloud.io/component/uniui/uni-fab) +## 1.1.1(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-02-05) +- 调整为uni_modules目录规范 +- 优化 按钮背景色调整 +- 优化 兼容pc端 diff --git a/supervise-uniapp/uni_modules/uni-fab/components/uni-fab/uni-fab.vue b/supervise-uniapp/uni_modules/uni-fab/components/uni-fab/uni-fab.vue new file mode 100644 index 00000000..509bd781 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-fab/components/uni-fab/uni-fab.vue @@ -0,0 +1,490 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-fab/package.json b/supervise-uniapp/uni_modules/uni-fab/package.json new file mode 100644 index 00000000..6636170d --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-fab/package.json @@ -0,0 +1,84 @@ +{ + "id": "uni-fab", + "displayName": "uni-fab 悬浮按钮", + "version": "1.2.4", + "description": "悬浮按钮 fab button ,点击可展开一个图标按钮菜单。", + "keywords": [ + "uni-ui", + "uniui", + "按钮", + "悬浮按钮", + "fab" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-fab/readme.md b/supervise-uniapp/uni_modules/uni-fab/readme.md new file mode 100644 index 00000000..9a444e88 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-fab/readme.md @@ -0,0 +1,9 @@ +## Fab 悬浮按钮 +> **组件名:uni-fab** +> 代码块: `uFab` + + +点击可展开一个图形按钮菜单 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fab) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-fav/changelog.md b/supervise-uniapp/uni_modules/uni-fav/changelog.md new file mode 100644 index 00000000..d8a08d43 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-fav/changelog.md @@ -0,0 +1,19 @@ +## 1.2.1(2022-05-30) +- 新增 stat 属性 ,是否开启uni统计功能 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fav](https://uniapp.dcloud.io/component/uniui/uni-fav) +## 1.1.1(2021-08-24) +- 新增 支持国际化 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.6(2021-05-12) +- 新增 组件示例地址 +## 1.0.5(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.4(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.3(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.2(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/en.json b/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/en.json new file mode 100644 index 00000000..9a0759e0 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/en.json @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "collect", + "uni-fav.collected": "collected" +} diff --git a/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/index.js b/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/index.js new file mode 100644 index 00000000..de7509c8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json b/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json new file mode 100644 index 00000000..67c89bfc --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "收藏", + "uni-fav.collected": "已收藏" +} diff --git a/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json b/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json new file mode 100644 index 00000000..67c89bfc --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "收藏", + "uni-fav.collected": "已收藏" +} diff --git a/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/uni-fav.vue b/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/uni-fav.vue new file mode 100644 index 00000000..d2c58df9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-fav/components/uni-fav/uni-fav.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-fav/package.json b/supervise-uniapp/uni_modules/uni-fav/package.json new file mode 100644 index 00000000..cc146971 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-fav/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-fav", + "displayName": "uni-fav 收藏按钮", + "version": "1.2.1", + "description": " Fav 收藏组件,可自定义颜色、大小。", + "keywords": [ + "fav", + "uni-ui", + "uniui", + "收藏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-fav/readme.md b/supervise-uniapp/uni_modules/uni-fav/readme.md new file mode 100644 index 00000000..4de125d2 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-fav/readme.md @@ -0,0 +1,10 @@ + + +## Fav 收藏按钮 +> **组件名:uni-fav** +> 代码块: `uFav` + +用于收藏功能,可点击切换选中、不选中的状态。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fav) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-file-picker/changelog.md b/supervise-uniapp/uni_modules/uni-file-picker/changelog.md new file mode 100644 index 00000000..5c810268 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-file-picker/changelog.md @@ -0,0 +1,63 @@ +## 1.0.2(2022-07-04) +- 修复 在uni-forms下样式不生效的bug +## 1.0.1(2021-11-23) +- 修复 参数为对象的情况下,url在某些情况显示错误的bug +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-file-picker](https://uniapp.dcloud.io/component/uniui/uni-file-picker) +## 0.2.16(2021-11-08) +- 修复 传入空对象 ,显示错误的Bug +## 0.2.15(2021-08-30) +- 修复 return-type="object" 时且存在v-model时,无法删除文件的Bug +## 0.2.14(2021-08-23) +- 新增 参数中返回 fileID 字段 +## 0.2.13(2021-08-23) +- 修复 腾讯云传入fileID 不能回显的bug +- 修复 选择图片后,不能放大的问题 +## 0.2.12(2021-08-17) +- 修复 由于 0.2.11 版本引起的不能回显图片的Bug +## 0.2.11(2021-08-16) +- 新增 clearFiles(index) 方法,可以手动删除指定文件 +- 修复 v-model 值设为 null 报错的Bug +## 0.2.10(2021-08-13) +- 修复 return-type="object" 时,无法删除文件的Bug +## 0.2.9(2021-08-03) +- 修复 auto-upload 属性失效的Bug +## 0.2.8(2021-07-31) +- 修复 fileExtname属性不指定值报错的Bug +## 0.2.7(2021-07-31) +- 修复 在某种场景下图片不回显的Bug +## 0.2.6(2021-07-30) +- 修复 return-type为object下,返回值不正确的Bug +## 0.2.5(2021-07-30) +- 修复(重要) H5 平台下如果和uni-forms组件一同使用导致页面卡死的问题 +## 0.2.3(2021-07-28) +- 优化 调整示例代码 +## 0.2.2(2021-07-27) +- 修复 vue3 下赋值错误的Bug +- 优化 h5平台下上传文件导致页面卡死的问题 +## 0.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.1.1(2021-07-02) +- 修复 sourceType 缺少默认值导致 ios 无法选择文件 +## 0.1.0(2021-06-30) +- 优化 解耦与uniCloud的强绑定关系 ,如不绑定服务空间,默认autoUpload为false且不可更改 +## 0.0.11(2021-06-30) +- 修复 由 0.0.10 版本引发的 returnType 属性失效的问题 +## 0.0.10(2021-06-29) +- 优化 文件上传后进度条消失时机 +## 0.0.9(2021-06-29) +- 修复 在uni-forms 中,删除文件 ,获取的值不对的Bug +## 0.0.8(2021-06-15) +- 修复 删除文件时无法触发 v-model 的Bug +## 0.0.7(2021-05-12) +- 新增 组件示例地址 +## 0.0.6(2021-04-09) +- 修复 选择的文件非 file-extname 字段指定的扩展名报错的Bug +## 0.0.5(2021-04-09) +- 优化 更新组件示例 +## 0.0.4(2021-04-09) +- 优化 file-extname 字段支持字符串写法,多个扩展名需要用逗号分隔 +## 0.0.3(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 微信小程序不指定 fileExtname 属性选择失败的Bug diff --git a/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js b/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js new file mode 100644 index 00000000..24a07f57 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js @@ -0,0 +1,224 @@ +'use strict'; + +const ERR_MSG_OK = 'chooseAndUploadFile:ok'; +const ERR_MSG_FAIL = 'chooseAndUploadFile:fail'; + +function chooseImage(opts) { + const { + count, + sizeType = ['original', 'compressed'], + sourceType = ['album', 'camera'], + extension + } = opts + return new Promise((resolve, reject) => { + uni.chooseImage({ + count, + sizeType, + sourceType, + extension, + success(res) { + resolve(normalizeChooseAndUploadFileRes(res, 'image')); + }, + fail(res) { + reject({ + errMsg: res.errMsg.replace('chooseImage:fail', ERR_MSG_FAIL), + }); + }, + }); + }); +} + +function chooseVideo(opts) { + const { + camera, + compressed, + maxDuration, + sourceType = ['album', 'camera'], + extension + } = opts; + return new Promise((resolve, reject) => { + uni.chooseVideo({ + camera, + compressed, + maxDuration, + sourceType, + extension, + success(res) { + const { + tempFilePath, + duration, + size, + height, + width + } = res; + resolve(normalizeChooseAndUploadFileRes({ + errMsg: 'chooseVideo:ok', + tempFilePaths: [tempFilePath], + tempFiles: [ + { + name: (res.tempFile && res.tempFile.name) || '', + path: tempFilePath, + size, + type: (res.tempFile && res.tempFile.type) || '', + width, + height, + duration, + fileType: 'video', + cloudPath: '', + }, ], + }, 'video')); + }, + fail(res) { + reject({ + errMsg: res.errMsg.replace('chooseVideo:fail', ERR_MSG_FAIL), + }); + }, + }); + }); +} + +function chooseAll(opts) { + const { + count, + extension + } = opts; + return new Promise((resolve, reject) => { + let chooseFile = uni.chooseFile; + if (typeof wx !== 'undefined' && + typeof wx.chooseMessageFile === 'function') { + chooseFile = wx.chooseMessageFile; + } + if (typeof chooseFile !== 'function') { + return reject({ + errMsg: ERR_MSG_FAIL + ' 请指定 type 类型,该平台仅支持选择 image 或 video。', + }); + } + chooseFile({ + type: 'all', + count, + extension, + success(res) { + resolve(normalizeChooseAndUploadFileRes(res)); + }, + fail(res) { + reject({ + errMsg: res.errMsg.replace('chooseFile:fail', ERR_MSG_FAIL), + }); + }, + }); + }); +} + +function normalizeChooseAndUploadFileRes(res, fileType) { + res.tempFiles.forEach((item, index) => { + if (!item.name) { + item.name = item.path.substring(item.path.lastIndexOf('/') + 1); + } + if (fileType) { + item.fileType = fileType; + } + item.cloudPath = + Date.now() + '_' + index + item.name.substring(item.name.lastIndexOf('.')); + }); + if (!res.tempFilePaths) { + res.tempFilePaths = res.tempFiles.map((file) => file.path); + } + return res; +} + +function uploadCloudFiles(files, max = 5, onUploadProgress) { + files = JSON.parse(JSON.stringify(files)) + const len = files.length + let count = 0 + let self = this + return new Promise(resolve => { + while (count < max) { + next() + } + + function next() { + let cur = count++ + if (cur >= len) { + !files.find(item => !item.url && !item.errMsg) && resolve(files) + return + } + const fileItem = files[cur] + const index = self.files.findIndex(v => v.uuid === fileItem.uuid) + fileItem.url = '' + delete fileItem.errMsg + + uniCloud + .uploadFile({ + filePath: fileItem.path, + cloudPath: fileItem.cloudPath, + fileType: fileItem.fileType, + onUploadProgress: res => { + res.index = index + onUploadProgress && onUploadProgress(res) + } + }) + .then(res => { + fileItem.url = res.fileID + fileItem.index = index + if (cur < len) { + next() + } + }) + .catch(res => { + fileItem.errMsg = res.errMsg || res.message + fileItem.index = index + if (cur < len) { + next() + } + }) + } + }) +} + + + + + +function uploadFiles(choosePromise, { + onChooseFile, + onUploadProgress +}) { + return choosePromise + .then((res) => { + if (onChooseFile) { + const customChooseRes = onChooseFile(res); + if (typeof customChooseRes !== 'undefined') { + return Promise.resolve(customChooseRes).then((chooseRes) => typeof chooseRes === 'undefined' ? + res : chooseRes); + } + } + return res; + }) + .then((res) => { + if (res === false) { + return { + errMsg: ERR_MSG_OK, + tempFilePaths: [], + tempFiles: [], + }; + } + return res + }) +} + +function chooseAndUploadFile(opts = { + type: 'all' +}) { + if (opts.type === 'image') { + return uploadFiles(chooseImage(opts), opts); + } + else if (opts.type === 'video') { + return uploadFiles(chooseVideo(opts), opts); + } + return uploadFiles(chooseAll(opts), opts); +} + +export { + chooseAndUploadFile, + uploadCloudFiles +}; diff --git a/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue b/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue new file mode 100644 index 00000000..0928a41a --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue @@ -0,0 +1,656 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue b/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue new file mode 100644 index 00000000..625d92ec --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue @@ -0,0 +1,325 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue b/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue new file mode 100644 index 00000000..2a29bc23 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/utils.js b/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/utils.js new file mode 100644 index 00000000..60aaa3e4 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/utils.js @@ -0,0 +1,109 @@ +/** + * 获取文件名和后缀 + * @param {String} name + */ +export const get_file_ext = (name) => { + const last_len = name.lastIndexOf('.') + const len = name.length + return { + name: name.substring(0, last_len), + ext: name.substring(last_len + 1, len) + } +} + +/** + * 获取扩展名 + * @param {Array} fileExtname + */ +export const get_extname = (fileExtname) => { + if (!Array.isArray(fileExtname)) { + let extname = fileExtname.replace(/(\[|\])/g, '') + return extname.split(',') + } else { + return fileExtname + } + return [] +} + +/** + * 获取文件和检测是否可选 + */ +export const get_files_and_is_max = (res, _extname) => { + let filePaths = [] + let files = [] + if(!_extname || _extname.length === 0){ + return { + filePaths, + files + } + } + res.tempFiles.forEach(v => { + let fileFullName = get_file_ext(v.name) + const extname = fileFullName.ext.toLowerCase() + if (_extname.indexOf(extname) !== -1) { + files.push(v) + filePaths.push(v.path) + } + }) + if (files.length !== res.tempFiles.length) { + uni.showToast({ + title: `当前选择了${res.tempFiles.length}个文件 ,${res.tempFiles.length - files.length} 个文件格式不正确`, + icon: 'none', + duration: 5000 + }) + } + + return { + filePaths, + files + } +} + + +/** + * 获取图片信息 + * @param {Object} filepath + */ +export const get_file_info = (filepath) => { + return new Promise((resolve, reject) => { + uni.getImageInfo({ + src: filepath, + success(res) { + resolve(res) + }, + fail(err) { + reject(err) + } + }) + }) +} +/** + * 获取封装数据 + */ +export const get_file_data = async (files, type = 'image') => { + // 最终需要上传数据库的数据 + let fileFullName = get_file_ext(files.name) + const extname = fileFullName.ext.toLowerCase() + let filedata = { + name: files.name, + uuid: files.uuid, + extname: extname || '', + cloudPath: files.cloudPath, + fileType: files.fileType, + url: files.path || files.path, + size: files.size, //单位是字节 + image: {}, + path: files.path, + video: {} + } + if (type === 'image') { + const imageinfo = await get_file_info(files.path) + delete filedata.video + filedata.image.width = imageinfo.width + filedata.image.height = imageinfo.height + filedata.image.location = imageinfo.path + } else { + delete filedata.image + } + return filedata +} diff --git a/supervise-uniapp/uni_modules/uni-file-picker/package.json b/supervise-uniapp/uni_modules/uni-file-picker/package.json new file mode 100644 index 00000000..08bd66ec --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-file-picker/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-file-picker", + "displayName": "uni-file-picker 文件选择上传", + "version": "1.0.2", + "description": "文件选择上传组件,可以选择图片、视频等任意文件并上传到当前绑定的服务空间", + "keywords": [ + "uni-ui", + "uniui", + "图片上传", + "文件上传" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-file-picker/readme.md b/supervise-uniapp/uni_modules/uni-file-picker/readme.md new file mode 100644 index 00000000..c8399a5e --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-file-picker/readme.md @@ -0,0 +1,11 @@ + +## FilePicker 文件选择上传 + +> **组件名:uni-file-picker** +> 代码块: `uFilePicker` + + +文件选择上传组件,可以选择图片、视频等任意文件并上传到当前绑定的服务空间 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-file-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-forms/changelog.md b/supervise-uniapp/uni_modules/uni-forms/changelog.md new file mode 100644 index 00000000..c358a21a --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-forms/changelog.md @@ -0,0 +1,90 @@ +## 1.4.8(2022-08-23) +- 优化 根据 rules 自动添加 required 的问题 +## 1.4.7(2022-08-22) +- 修复 item 未设置 require 属性,rules 设置 require 后,星号也显示的 bug,详见:[https://ask.dcloud.net.cn/question/151540](https://ask.dcloud.net.cn/question/151540) +## 1.4.6(2022-07-13) +- 修复 model 需要校验的值没有声明对应字段时,导致第一次不触发校验的bug +## 1.4.5(2022-07-05) +- 新增 更多表单示例 +- 优化 子表单组件过期提示的问题 +- 优化 子表单组件uni-datetime-picker、uni-data-select、uni-data-picker的显示样式 +## 1.4.4(2022-07-04) +- 更新 删除组件日志 +## 1.4.3(2022-07-04) +- 修复 由 1.4.0 引发的 label 插槽不生效的bug +## 1.4.2(2022-07-04) +- 修复 子组件找不到 setValue 报错的bug +## 1.4.1(2022-07-04) +- 修复 uni-data-picker 在 uni-forms-item 中报错的bug +- 修复 uni-data-picker 在 uni-forms-item 中宽度不正确的bug +## 1.4.0(2022-06-30) +- 【重要】组件逻辑重构,部分用法用旧版本不兼容,请注意兼容问题 +- 【重要】组件使用 Provide/Inject 方式注入依赖,提供了自定义表单组件调用 uni-forms 校验表单的能力 +- 新增 model 属性,等同于原 value/modelValue 属性,旧属性即将废弃 +- 新增 validateTrigger 属性的 blur 值,仅 uni-easyinput 生效 +- 新增 onFieldChange 方法,可以对子表单进行校验,可替代binddata方法 +- 新增 子表单的 setRules 方法,配合自定义校验函数使用 +- 新增 uni-forms-item 的 setRules 方法,配置动态表单使用可动态更新校验规则 +- 优化 动态表单校验方式,废弃拼接name的方式 +## 1.3.3(2022-06-22) +- 修复 表单校验顺序无序问题 +## 1.3.2(2021-12-09) +- +## 1.3.1(2021-11-19) +- 修复 label 插槽不生效的bug +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-forms](https://uniapp.dcloud.io/component/uniui/uni-forms) +## 1.2.7(2021-08-13) +- 修复 没有添加校验规则的字段依然报错的Bug +## 1.2.6(2021-08-11) +- 修复 重置表单错误信息无法清除的问题 +## 1.2.5(2021-08-11) +- 优化 组件文档 +## 1.2.4(2021-08-11) +- 修复 表单验证只生效一次的问题 +## 1.2.3(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.2.2(2021-07-26) +- 修复 vue2 下条件编译导致destroyed生命周期失效的Bug +- 修复 1.2.1 引起的示例在小程序平台报错的Bug +## 1.2.1(2021-07-22) +- 修复 动态校验表单,默认值为空的情况下校验失效的Bug +- 修复 不指定name属性时,运行报错的Bug +- 优化 label默认宽度从65调整至70,使required为true且四字时不换行 +- 优化 组件示例,新增动态校验示例代码 +- 优化 组件文档,使用方式更清晰 +## 1.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.2(2021-06-25) +- 修复 pattern 属性在微信小程序平台无效的问题 +## 1.1.1(2021-06-22) +- 修复 validate-trigger属性为submit且err-show-type属性为toast时不能弹出的Bug +## 1.1.0(2021-06-22) +- 修复 只写setRules方法而导致校验不生效的Bug +- 修复 由上个办法引发的错误提示文字错位的Bug +## 1.0.48(2021-06-21) +- 修复 不设置 label 属性 ,无法设置label插槽的问题 +## 1.0.47(2021-06-21) +- 修复 不设置label属性,label-width属性不生效的bug +- 修复 setRules 方法与rules属性冲突的问题 +## 1.0.46(2021-06-04) +- 修复 动态删减数据导致报错的问题 +## 1.0.45(2021-06-04) +- 新增 modelValue 属性 ,value 即将废弃 +## 1.0.44(2021-06-02) +- 新增 uni-forms-item 可以设置单独的 rules +- 新增 validate 事件增加 keepitem 参数,可以选择那些字段不过滤 +- 优化 submit 事件重命名为 validate +## 1.0.43(2021-05-12) +- 新增 组件示例地址 +## 1.0.42(2021-04-30) +- 修复 自定义检验器失效的问题 +## 1.0.41(2021-03-05) +- 更新 校验器 +- 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug +## 1.0.40(2021-03-04) +- 修复 动态显示uni-forms-item的情况下,submit 方法获取值错误的Bug +## 1.0.39(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 校验器传入 int 等类型 ,返回String类型的Bug diff --git a/supervise-uniapp/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue b/supervise-uniapp/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue new file mode 100644 index 00000000..ce7c460b --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue @@ -0,0 +1,631 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-forms/components/uni-forms/uni-forms.vue b/supervise-uniapp/uni_modules/uni-forms/components/uni-forms/uni-forms.vue new file mode 100644 index 00000000..ed2f6d97 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-forms/components/uni-forms/uni-forms.vue @@ -0,0 +1,397 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-forms/components/uni-forms/utils.js b/supervise-uniapp/uni_modules/uni-forms/components/uni-forms/utils.js new file mode 100644 index 00000000..6da24216 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-forms/components/uni-forms/utils.js @@ -0,0 +1,293 @@ +/** + * 简单处理对象拷贝 + * @param {Obejct} 被拷贝对象 + * @@return {Object} 拷贝对象 + */ +export const deepCopy = (val) => { + return JSON.parse(JSON.stringify(val)) +} +/** + * 过滤数字类型 + * @param {String} format 数字类型 + * @@return {Boolean} 返回是否为数字类型 + */ +export const typeFilter = (format) => { + return format === 'int' || format === 'double' || format === 'number' || format === 'timestamp'; +} + +/** + * 把 value 转换成指定的类型,用于处理初始值,原因是初始值需要入库不能为 undefined + * @param {String} key 字段名 + * @param {any} value 字段值 + * @param {Object} rules 表单校验规则 + */ +export const getValue = (key, value, rules) => { + const isRuleNumType = rules.find(val => val.format && typeFilter(val.format)); + const isRuleBoolType = rules.find(val => (val.format && val.format === 'boolean') || val.format === 'bool'); + // 输入类型为 number + if (!!isRuleNumType) { + if (!value && value !== 0) { + value = null + } else { + value = isNumber(Number(value)) ? Number(value) : value + } + } + + // 输入类型为 boolean + if (!!isRuleBoolType) { + value = isBoolean(value) ? value : false + } + + return value; +} + +/** + * 获取表单数据 + * @param {String|Array} name 真实名称,需要使用 realName 获取 + * @param {Object} data 原始数据 + * @param {any} value 需要设置的值 + */ +export const setDataValue = (field, formdata, value) => { + formdata[field] = value + return value || '' +} + +/** + * 获取表单数据 + * @param {String|Array} field 真实名称,需要使用 realName 获取 + * @param {Object} data 原始数据 + */ +export const getDataValue = (field, data) => { + return objGet(data, field) +} + +/** + * 获取表单类型 + * @param {String|Array} field 真实名称,需要使用 realName 获取 + */ +export const getDataValueType = (field, data) => { + const value = getDataValue(field, data) + return { + type: type(value), + value + } +} + +/** + * 获取表单可用的真实name + * @param {String|Array} name 表单name + * @@return {String} 表单可用的真实name + */ +export const realName = (name, data = {}) => { + const base_name = _basePath(name) + if (typeof base_name === 'object' && Array.isArray(base_name) && base_name.length > 1) { + const realname = base_name.reduce((a, b) => a += `#${b}`, '_formdata_') + return realname + } + return base_name[0] || name +} + +/** + * 判断是否表单可用的真实name + * @param {String|Array} name 表单name + * @@return {String} 表单可用的真实name + */ +export const isRealName = (name) => { + const reg = /^_formdata_#*/ + return reg.test(name) +} + +/** + * 获取表单数据的原始格式 + * @@return {Object|Array} object 需要解析的数据 + */ +export const rawData = (object = {}, name) => { + let newData = JSON.parse(JSON.stringify(object)) + let formData = {} + for(let i in newData){ + let path = name2arr(i) + objSet(formData,path,newData[i]) + } + return formData +} + +/** + * 真实name还原为 array + * @param {*} name + */ +export const name2arr = (name) => { + let field = name.replace('_formdata_#', '') + field = field.split('#').map(v => (isNumber(v) ? Number(v) : v)) + return field +} + +/** + * 对象中设置值 + * @param {Object|Array} object 源数据 + * @param {String| Array} path 'a.b.c' 或 ['a',0,'b','c'] + * @param {String} value 需要设置的值 + */ +export const objSet = (object, path, value) => { + if (typeof object !== 'object') return object; + _basePath(path).reduce((o, k, i, _) => { + if (i === _.length - 1) { + // 若遍历结束直接赋值 + o[k] = value + return null + } else if (k in o) { + // 若存在对应路径,则返回找到的对象,进行下一次遍历 + return o[k] + } else { + // 若不存在对应路径,则创建对应对象,若下一路径是数字,新对象赋值为空数组,否则赋值为空对象 + o[k] = /^[0-9]{1,}$/.test(_[i + 1]) ? [] : {} + return o[k] + } + }, object) + // 返回object + return object; +} + +// 处理 path, path有三种形式:'a[0].b.c'、'a.0.b.c' 和 ['a','0','b','c'],需要统一处理成数组,便于后续使用 +function _basePath(path) { + // 若是数组,则直接返回 + if (Array.isArray(path)) return path + // 若有 '[',']',则替换成将 '[' 替换成 '.',去掉 ']' + return path.replace(/\[/g, '.').replace(/\]/g, '').split('.') +} + +/** + * 从对象中获取值 + * @param {Object|Array} object 源数据 + * @param {String| Array} path 'a.b.c' 或 ['a',0,'b','c'] + * @param {String} defaultVal 如果无法从调用链中获取值的默认值 + */ +export const objGet = (object, path, defaultVal = 'undefined') => { + // 先将path处理成统一格式 + let newPath = _basePath(path) + // 递归处理,返回最后结果 + let val = newPath.reduce((o, k) => { + return (o || {})[k] + }, object); + return !val || val !== undefined ? val : defaultVal +} + + +/** + * 是否为 number 类型 + * @param {any} num 需要判断的值 + * @return {Boolean} 是否为 number + */ +export const isNumber = (num) => { + return !isNaN(Number(num)) +} + +/** + * 是否为 boolean 类型 + * @param {any} bool 需要判断的值 + * @return {Boolean} 是否为 boolean + */ +export const isBoolean = (bool) => { + return (typeof bool === 'boolean') +} +/** + * 是否有必填字段 + * @param {Object} rules 规则 + * @return {Boolean} 是否有必填字段 + */ +export const isRequiredField = (rules) => { + let isNoField = false; + for (let i = 0; i < rules.length; i++) { + const ruleData = rules[i]; + if (ruleData.required) { + isNoField = true; + break; + } + } + return isNoField; +} + + +/** + * 获取数据类型 + * @param {Any} obj 需要获取数据类型的值 + */ +export const type = (obj) => { + var class2type = {}; + + // 生成class2type映射 + "Boolean Number String Function Array Date RegExp Object Error".split(" ").map(function(item, index) { + class2type["[object " + item + "]"] = item.toLowerCase(); + }) + if (obj == null) { + return obj + ""; + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[Object.prototype.toString.call(obj)] || "object" : + typeof obj; +} + +/** + * 判断两个值是否相等 + * @param {any} a 值 + * @param {any} b 值 + * @return {Boolean} 是否相等 + */ +export const isEqual = (a, b) => { + //如果a和b本来就全等 + if (a === b) { + //判断是否为0和-0 + return a !== 0 || 1 / a === 1 / b; + } + //判断是否为null和undefined + if (a == null || b == null) { + return a === b; + } + //接下来判断a和b的数据类型 + var classNameA = toString.call(a), + classNameB = toString.call(b); + //如果数据类型不相等,则返回false + if (classNameA !== classNameB) { + return false; + } + //如果数据类型相等,再根据不同数据类型分别判断 + switch (classNameA) { + case '[object RegExp]': + case '[object String]': + //进行字符串转换比较 + return '' + a === '' + b; + case '[object Number]': + //进行数字转换比较,判断是否为NaN + if (+a !== +a) { + return +b !== +b; + } + //判断是否为0或-0 + return +a === 0 ? 1 / +a === 1 / b : +a === +b; + case '[object Date]': + case '[object Boolean]': + return +a === +b; + } + //如果是对象类型 + if (classNameA == '[object Object]') { + //获取a和b的属性长度 + var propsA = Object.getOwnPropertyNames(a), + propsB = Object.getOwnPropertyNames(b); + if (propsA.length != propsB.length) { + return false; + } + for (var i = 0; i < propsA.length; i++) { + var propName = propsA[i]; + //如果对应属性对应值不相等,则返回false + if (a[propName] !== b[propName]) { + return false; + } + } + return true; + } + //如果是数组类型 + if (classNameA == '[object Array]') { + if (a.toString() == b.toString()) { + return true; + } + return false; + } +} diff --git a/supervise-uniapp/uni_modules/uni-forms/components/uni-forms/validate.js b/supervise-uniapp/uni_modules/uni-forms/components/uni-forms/validate.js new file mode 100644 index 00000000..1834c6cf --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-forms/components/uni-forms/validate.js @@ -0,0 +1,486 @@ +var pattern = { + email: /^\S+?@\S+?\.\S+?$/, + idcard: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, + url: new RegExp( + "^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$", + 'i') +}; + +const FORMAT_MAPPING = { + "int": 'integer', + "bool": 'boolean', + "double": 'number', + "long": 'number', + "password": 'string' + // "fileurls": 'array' +} + +function formatMessage(args, resources = '') { + var defaultMessage = ['label'] + defaultMessage.forEach((item) => { + if (args[item] === undefined) { + args[item] = '' + } + }) + + let str = resources + for (let key in args) { + let reg = new RegExp('{' + key + '}') + str = str.replace(reg, args[key]) + } + return str +} + +function isEmptyValue(value, type) { + if (value === undefined || value === null) { + return true; + } + + if (typeof value === 'string' && !value) { + return true; + } + + if (Array.isArray(value) && !value.length) { + return true; + } + + if (type === 'object' && !Object.keys(value).length) { + return true; + } + + return false; +} + +const types = { + integer(value) { + return types.number(value) && parseInt(value, 10) === value; + }, + string(value) { + return typeof value === 'string'; + }, + number(value) { + if (isNaN(value)) { + return false; + } + return typeof value === 'number'; + }, + "boolean": function(value) { + return typeof value === 'boolean'; + }, + "float": function(value) { + return types.number(value) && !types.integer(value); + }, + array(value) { + return Array.isArray(value); + }, + object(value) { + return typeof value === 'object' && !types.array(value); + }, + date(value) { + return value instanceof Date; + }, + timestamp(value) { + if (!this.integer(value) || Math.abs(value).toString().length > 16) { + return false + } + return true; + }, + file(value) { + return typeof value.url === 'string'; + }, + email(value) { + return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255; + }, + url(value) { + return typeof value === 'string' && !!value.match(pattern.url); + }, + pattern(reg, value) { + try { + return new RegExp(reg).test(value); + } catch (e) { + return false; + } + }, + method(value) { + return typeof value === 'function'; + }, + idcard(value) { + return typeof value === 'string' && !!value.match(pattern.idcard); + }, + 'url-https'(value) { + return this.url(value) && value.startsWith('https://'); + }, + 'url-scheme'(value) { + return value.startsWith('://'); + }, + 'url-web'(value) { + return false; + } +} + +class RuleValidator { + + constructor(message) { + this._message = message + } + + async validateRule(fieldKey, fieldValue, value, data, allData) { + var result = null + + let rules = fieldValue.rules + + let hasRequired = rules.findIndex((item) => { + return item.required + }) + if (hasRequired < 0) { + if (value === null || value === undefined) { + return result + } + if (typeof value === 'string' && !value.length) { + return result + } + } + + var message = this._message + + if (rules === undefined) { + return message['default'] + } + + for (var i = 0; i < rules.length; i++) { + let rule = rules[i] + let vt = this._getValidateType(rule) + + Object.assign(rule, { + label: fieldValue.label || `["${fieldKey}"]` + }) + + if (RuleValidatorHelper[vt]) { + result = RuleValidatorHelper[vt](rule, value, message) + if (result != null) { + break + } + } + + if (rule.validateExpr) { + let now = Date.now() + let resultExpr = rule.validateExpr(value, allData, now) + if (resultExpr === false) { + result = this._getMessage(rule, rule.errorMessage || this._message['default']) + break + } + } + + if (rule.validateFunction) { + result = await this.validateFunction(rule, value, data, allData, vt) + if (result !== null) { + break + } + } + } + + if (result !== null) { + result = message.TAG + result + } + + return result + } + + async validateFunction(rule, value, data, allData, vt) { + let result = null + try { + let callbackMessage = null + const res = await rule.validateFunction(rule, value, allData || data, (message) => { + callbackMessage = message + }) + if (callbackMessage || (typeof res === 'string' && res) || res === false) { + result = this._getMessage(rule, callbackMessage || res, vt) + } + } catch (e) { + result = this._getMessage(rule, e.message, vt) + } + return result + } + + _getMessage(rule, message, vt) { + return formatMessage(rule, message || rule.errorMessage || this._message[vt] || message['default']) + } + + _getValidateType(rule) { + var result = '' + if (rule.required) { + result = 'required' + } else if (rule.format) { + result = 'format' + } else if (rule.arrayType) { + result = 'arrayTypeFormat' + } else if (rule.range) { + result = 'range' + } else if (rule.maximum !== undefined || rule.minimum !== undefined) { + result = 'rangeNumber' + } else if (rule.maxLength !== undefined || rule.minLength !== undefined) { + result = 'rangeLength' + } else if (rule.pattern) { + result = 'pattern' + } else if (rule.validateFunction) { + result = 'validateFunction' + } + return result + } +} + +const RuleValidatorHelper = { + required(rule, value, message) { + if (rule.required && isEmptyValue(value, rule.format || typeof value)) { + return formatMessage(rule, rule.errorMessage || message.required); + } + + return null + }, + + range(rule, value, message) { + const { + range, + errorMessage + } = rule; + + let list = new Array(range.length); + for (let i = 0; i < range.length; i++) { + const item = range[i]; + if (types.object(item) && item.value !== undefined) { + list[i] = item.value; + } else { + list[i] = item; + } + } + + let result = false + if (Array.isArray(value)) { + result = (new Set(value.concat(list)).size === list.length); + } else { + if (list.indexOf(value) > -1) { + result = true; + } + } + + if (!result) { + return formatMessage(rule, errorMessage || message['enum']); + } + + return null + }, + + rangeNumber(rule, value, message) { + if (!types.number(value)) { + return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); + } + + let { + minimum, + maximum, + exclusiveMinimum, + exclusiveMaximum + } = rule; + let min = exclusiveMinimum ? value <= minimum : value < minimum; + let max = exclusiveMaximum ? value >= maximum : value > maximum; + + if (minimum !== undefined && min) { + return formatMessage(rule, rule.errorMessage || message['number'][exclusiveMinimum ? + 'exclusiveMinimum' : 'minimum' + ]) + } else if (maximum !== undefined && max) { + return formatMessage(rule, rule.errorMessage || message['number'][exclusiveMaximum ? + 'exclusiveMaximum' : 'maximum' + ]) + } else if (minimum !== undefined && maximum !== undefined && (min || max)) { + return formatMessage(rule, rule.errorMessage || message['number'].range) + } + + return null + }, + + rangeLength(rule, value, message) { + if (!types.string(value) && !types.array(value)) { + return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); + } + + let min = rule.minLength; + let max = rule.maxLength; + let val = value.length; + + if (min !== undefined && val < min) { + return formatMessage(rule, rule.errorMessage || message['length'].minLength) + } else if (max !== undefined && val > max) { + return formatMessage(rule, rule.errorMessage || message['length'].maxLength) + } else if (min !== undefined && max !== undefined && (val < min || val > max)) { + return formatMessage(rule, rule.errorMessage || message['length'].range) + } + + return null + }, + + pattern(rule, value, message) { + if (!types['pattern'](rule.pattern, value)) { + return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); + } + + return null + }, + + format(rule, value, message) { + var customTypes = Object.keys(types); + var format = FORMAT_MAPPING[rule.format] ? FORMAT_MAPPING[rule.format] : (rule.format || rule.arrayType); + + if (customTypes.indexOf(format) > -1) { + if (!types[format](value)) { + return formatMessage(rule, rule.errorMessage || message.typeError); + } + } + + return null + }, + + arrayTypeFormat(rule, value, message) { + if (!Array.isArray(value)) { + return formatMessage(rule, rule.errorMessage || message.typeError); + } + + for (let i = 0; i < value.length; i++) { + const element = value[i]; + let formatResult = this.format(rule, element, message) + if (formatResult !== null) { + return formatResult + } + } + + return null + } +} + +class SchemaValidator extends RuleValidator { + + constructor(schema, options) { + super(SchemaValidator.message); + + this._schema = schema + this._options = options || null + } + + updateSchema(schema) { + this._schema = schema + } + + async validate(data, allData) { + let result = this._checkFieldInSchema(data) + if (!result) { + result = await this.invokeValidate(data, false, allData) + } + return result.length ? result[0] : null + } + + async validateAll(data, allData) { + let result = this._checkFieldInSchema(data) + if (!result) { + result = await this.invokeValidate(data, true, allData) + } + return result + } + + async validateUpdate(data, allData) { + let result = this._checkFieldInSchema(data) + if (!result) { + result = await this.invokeValidateUpdate(data, false, allData) + } + return result.length ? result[0] : null + } + + async invokeValidate(data, all, allData) { + let result = [] + let schema = this._schema + for (let key in schema) { + let value = schema[key] + let errorMessage = await this.validateRule(key, value, data[key], data, allData) + if (errorMessage != null) { + result.push({ + key, + errorMessage + }) + if (!all) break + } + } + return result + } + + async invokeValidateUpdate(data, all, allData) { + let result = [] + for (let key in data) { + let errorMessage = await this.validateRule(key, this._schema[key], data[key], data, allData) + if (errorMessage != null) { + result.push({ + key, + errorMessage + }) + if (!all) break + } + } + return result + } + + _checkFieldInSchema(data) { + var keys = Object.keys(data) + var keys2 = Object.keys(this._schema) + if (new Set(keys.concat(keys2)).size === keys2.length) { + return '' + } + + var noExistFields = keys.filter((key) => { + return keys2.indexOf(key) < 0; + }) + var errorMessage = formatMessage({ + field: JSON.stringify(noExistFields) + }, SchemaValidator.message.TAG + SchemaValidator.message['defaultInvalid']) + return [{ + key: 'invalid', + errorMessage + }] + } +} + +function Message() { + return { + TAG: "", + default: '验证错误', + defaultInvalid: '提交的字段{field}在数据库中并不存在', + validateFunction: '验证无效', + required: '{label}必填', + 'enum': '{label}超出范围', + timestamp: '{label}格式无效', + whitespace: '{label}不能为空', + typeError: '{label}类型无效', + date: { + format: '{label}日期{value}格式无效', + parse: '{label}日期无法解析,{value}无效', + invalid: '{label}日期{value}无效' + }, + length: { + minLength: '{label}长度不能少于{minLength}', + maxLength: '{label}长度不能超过{maxLength}', + range: '{label}必须介于{minLength}和{maxLength}之间' + }, + number: { + minimum: '{label}不能小于{minimum}', + maximum: '{label}不能大于{maximum}', + exclusiveMinimum: '{label}不能小于等于{minimum}', + exclusiveMaximum: '{label}不能大于等于{maximum}', + range: '{label}必须介于{minimum}and{maximum}之间' + }, + pattern: { + mismatch: '{label}格式不匹配' + } + }; +} + + +SchemaValidator.message = new Message(); + +export default SchemaValidator diff --git a/supervise-uniapp/uni_modules/uni-forms/package.json b/supervise-uniapp/uni_modules/uni-forms/package.json new file mode 100644 index 00000000..e3736c45 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-forms/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-forms", + "displayName": "uni-forms 表单", + "version": "1.4.8", + "description": "由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据", + "keywords": [ + "uni-ui", + "表单", + "校验", + "表单校验", + "表单验证" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-forms/readme.md b/supervise-uniapp/uni_modules/uni-forms/readme.md new file mode 100644 index 00000000..63d5a043 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-forms/readme.md @@ -0,0 +1,23 @@ + + +## Forms 表单 + +> **组件名:uni-forms** +> 代码块: `uForms`、`uni-forms-item` +> 关联组件:`uni-forms-item`、`uni-easyinput`、`uni-data-checkbox`、`uni-group`。 + + +uni-app的内置组件已经有了 `
`组件,用于提交表单内容。 + +然而几乎每个表单都需要做表单验证,为了方便做表单验证,减少重复开发,`uni ui` 又基于 ``组件封装了 ``组件,内置了表单验证功能。 + +`` 提供了 `rules`属性来描述校验规则、``子组件来包裹具体的表单项,以及给原生或三方组件提供了 `binddata()` 来设置表单值。 + +每个要校验的表单项,不管input还是checkbox,都必须放在``组件中,且一个``组件只能放置一个表单项。 + +``组件内部预留了显示error message的区域,默认是在表单项的底部。 + +另外,``组件下面的各个表单项,可以通过``包裹为不同的分组。同一``下的不同表单项目将聚拢在一起,同其他group保持垂直间距。``仅影响视觉效果。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-forms) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-goods-nav/changelog.md b/supervise-uniapp/uni_modules/uni-goods-nav/changelog.md new file mode 100644 index 00000000..c6264c67 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-goods-nav/changelog.md @@ -0,0 +1,18 @@ +## 1.2.1(2022-05-30) +- 新增 stat属性,是否开启uni统计功能 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-goods-nav](https://uniapp.dcloud.io/component/uniui/uni-goods-nav) +## 1.1.1(2021-08-24) +- 新增 支持国际化 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.5(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json b/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json new file mode 100644 index 00000000..dcdba41c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json @@ -0,0 +1,6 @@ +{ + "uni-goods-nav.options.shop": "shop", + "uni-goods-nav.options.cart": "cart", + "uni-goods-nav.buttonGroup.addToCart": "add to cart", + "uni-goods-nav.buttonGroup.buyNow": "buy now" +} diff --git a/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js b/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js new file mode 100644 index 00000000..de7509c8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json b/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json new file mode 100644 index 00000000..48ee344c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json @@ -0,0 +1,6 @@ +{ + "uni-goods-nav.options.shop": "店铺", + "uni-goods-nav.options.cart": "购物车", + "uni-goods-nav.buttonGroup.addToCart": "加入购物车", + "uni-goods-nav.buttonGroup.buyNow": "立即购买" +} diff --git a/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json b/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json new file mode 100644 index 00000000..d0a0255c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json @@ -0,0 +1,6 @@ +{ + "uni-goods-nav.options.shop": "店鋪", + "uni-goods-nav.options.cart": "購物車", + "uni-goods-nav.buttonGroup.addToCart": "加入購物車", + "uni-goods-nav.buttonGroup.buyNow": "立即購買" +} diff --git a/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue b/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue new file mode 100644 index 00000000..8a16b175 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-goods-nav/package.json b/supervise-uniapp/uni_modules/uni-goods-nav/package.json new file mode 100644 index 00000000..636e45e7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-goods-nav/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-goods-nav", + "displayName": "uni-goods-nav 商品导航", + "version": "1.2.1", + "description": "商品导航组件主要用于电商类应用底部导航,可自定义加入购物车,购买等操作", + "keywords": [ + "uni-ui", + "uniui", + "商品导航" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-goods-nav/readme.md b/supervise-uniapp/uni_modules/uni-goods-nav/readme.md new file mode 100644 index 00000000..07df93f5 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-goods-nav/readme.md @@ -0,0 +1,10 @@ + + +## GoodsNav 商品导航 +> **组件名:uni-goods-nav** +> 代码块: `uGoodsNav` + +商品加入购物车,立即购买等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-goods-nav) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-grid/changelog.md b/supervise-uniapp/uni_modules/uni-grid/changelog.md new file mode 100644 index 00000000..d301166c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-grid/changelog.md @@ -0,0 +1,13 @@ +## 1.4.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-grid](https://uniapp.dcloud.io/component/uniui/uni-grid) +## 1.3.2(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.3.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.3.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.2.4(2021-05-12) +- 新增 组件示例地址 +## 1.2.3(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue b/supervise-uniapp/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue new file mode 100644 index 00000000..20fd54e5 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-grid/components/uni-grid/uni-grid.vue b/supervise-uniapp/uni_modules/uni-grid/components/uni-grid/uni-grid.vue new file mode 100644 index 00000000..96a412f6 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-grid/components/uni-grid/uni-grid.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-grid/package.json b/supervise-uniapp/uni_modules/uni-grid/package.json new file mode 100644 index 00000000..ccb2c917 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-grid/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-grid", + "displayName": "uni-grid 宫格", + "version": "1.4.0", + "description": "Grid 宫格组件,提供移动端常见的宫格布局,如九宫格。", + "keywords": [ + "uni-ui", + "uniui", + "九宫格", + "表格" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-grid/readme.md b/supervise-uniapp/uni_modules/uni-grid/readme.md new file mode 100644 index 00000000..0aa44cc1 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-grid/readme.md @@ -0,0 +1,11 @@ + + +## Grid 宫格 +> **组件名:uni-grid** +> 代码块: `uGrid` + + +宫格组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-grid) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-group/changelog.md b/supervise-uniapp/uni_modules/uni-group/changelog.md new file mode 100644 index 00000000..a7024fdf --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-group/changelog.md @@ -0,0 +1,16 @@ +## 1.2.2(2022-05-30) +- 新增 stat属性,是否开启uni统计功能 +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-group](https://uniapp.dcloud.io/component/uniui/uni-group) +## 1.1.7(2021-11-08) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +- 优化 组件文档 +## 1.0.3(2021-05-12) +- 新增 组件示例地址 +## 1.0.2(2021-02-05) +- 调整为uni_modules目录规范 +- 优化 兼容 nvue 页面 diff --git a/supervise-uniapp/uni_modules/uni-group/components/uni-group/uni-group.vue b/supervise-uniapp/uni_modules/uni-group/components/uni-group/uni-group.vue new file mode 100644 index 00000000..3425ecd3 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-group/components/uni-group/uni-group.vue @@ -0,0 +1,134 @@ + + + + diff --git a/supervise-uniapp/uni_modules/uni-group/package.json b/supervise-uniapp/uni_modules/uni-group/package.json new file mode 100644 index 00000000..ea00a08c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-group/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-group", + "displayName": "uni-group 分组", + "version": "1.2.2", + "description": "分组组件可用于将组件用于分组,添加间隔,以产生明显的区块", + "keywords": [ + "uni-ui", + "uniui", + "group", + "分组", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-group/readme.md b/supervise-uniapp/uni_modules/uni-group/readme.md new file mode 100644 index 00000000..bae67f46 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-group/readme.md @@ -0,0 +1,9 @@ + +## Group 分组 +> **组件名:uni-group** +> 代码块: `uGroup` + +分组组件可用于将组件分组,添加间隔,以产生明显的区块。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-group) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-icons/changelog.md b/supervise-uniapp/uni_modules/uni-icons/changelog.md new file mode 100644 index 00000000..64498853 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-icons/changelog.md @@ -0,0 +1,22 @@ +## 1.3.5(2022-01-24) +- 优化 size 属性可以传入不带单位的字符串数值 +## 1.3.4(2022-01-24) +- 优化 size 支持其他单位 +## 1.3.3(2022-01-17) +- 修复 nvue 有些图标不显示的bug,兼容老版本图标 +## 1.3.2(2021-12-01) +- 优化 示例可复制图标名称 +## 1.3.1(2021-11-23) +- 优化 兼容旧组件 type 值 +## 1.3.0(2021-11-19) +- 新增 更多图标 +- 优化 自定义图标使用方式 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons) +## 1.1.7(2021-11-08) +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.5(2021-05-12) +- 新增 组件示例地址 +## 1.1.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-icons/components/uni-icons/icons.js b/supervise-uniapp/uni_modules/uni-icons/components/uni-icons/icons.js new file mode 100644 index 00000000..78899364 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-icons/components/uni-icons/icons.js @@ -0,0 +1,1169 @@ +export default { + "id": "2852637", + "name": "uniui图标库", + "font_family": "uniicons", + "css_prefix_text": "uniui-", + "description": "", + "glyphs": [ + { + "icon_id": "25027049", + "name": "yanse", + "font_class": "color", + "unicode": "e6cf", + "unicode_decimal": 59087 + }, + { + "icon_id": "25027048", + "name": "wallet", + "font_class": "wallet", + "unicode": "e6b1", + "unicode_decimal": 59057 + }, + { + "icon_id": "25015720", + "name": "settings-filled", + "font_class": "settings-filled", + "unicode": "e6ce", + "unicode_decimal": 59086 + }, + { + "icon_id": "25015434", + "name": "shimingrenzheng-filled", + "font_class": "auth-filled", + "unicode": "e6cc", + "unicode_decimal": 59084 + }, + { + "icon_id": "24934246", + "name": "shop-filled", + "font_class": "shop-filled", + "unicode": "e6cd", + "unicode_decimal": 59085 + }, + { + "icon_id": "24934159", + "name": "staff-filled-01", + "font_class": "staff-filled", + "unicode": "e6cb", + "unicode_decimal": 59083 + }, + { + "icon_id": "24932461", + "name": "VIP-filled", + "font_class": "vip-filled", + "unicode": "e6c6", + "unicode_decimal": 59078 + }, + { + "icon_id": "24932462", + "name": "plus_circle_fill", + "font_class": "plus-filled", + "unicode": "e6c7", + "unicode_decimal": 59079 + }, + { + "icon_id": "24932463", + "name": "folder_add-filled", + "font_class": "folder-add-filled", + "unicode": "e6c8", + "unicode_decimal": 59080 + }, + { + "icon_id": "24932464", + "name": "yanse-filled", + "font_class": "color-filled", + "unicode": "e6c9", + "unicode_decimal": 59081 + }, + { + "icon_id": "24932465", + "name": "tune-filled", + "font_class": "tune-filled", + "unicode": "e6ca", + "unicode_decimal": 59082 + }, + { + "icon_id": "24932455", + "name": "a-rilidaka-filled", + "font_class": "calendar-filled", + "unicode": "e6c0", + "unicode_decimal": 59072 + }, + { + "icon_id": "24932456", + "name": "notification-filled", + "font_class": "notification-filled", + "unicode": "e6c1", + "unicode_decimal": 59073 + }, + { + "icon_id": "24932457", + "name": "wallet-filled", + "font_class": "wallet-filled", + "unicode": "e6c2", + "unicode_decimal": 59074 + }, + { + "icon_id": "24932458", + "name": "paihangbang-filled", + "font_class": "medal-filled", + "unicode": "e6c3", + "unicode_decimal": 59075 + }, + { + "icon_id": "24932459", + "name": "gift-filled", + "font_class": "gift-filled", + "unicode": "e6c4", + "unicode_decimal": 59076 + }, + { + "icon_id": "24932460", + "name": "fire-filled", + "font_class": "fire-filled", + "unicode": "e6c5", + "unicode_decimal": 59077 + }, + { + "icon_id": "24928001", + "name": "refreshempty", + "font_class": "refreshempty", + "unicode": "e6bf", + "unicode_decimal": 59071 + }, + { + "icon_id": "24926853", + "name": "location-ellipse", + "font_class": "location-filled", + "unicode": "e6af", + "unicode_decimal": 59055 + }, + { + "icon_id": "24926735", + "name": "person-filled", + "font_class": "person-filled", + "unicode": "e69d", + "unicode_decimal": 59037 + }, + { + "icon_id": "24926703", + "name": "personadd-filled", + "font_class": "personadd-filled", + "unicode": "e698", + "unicode_decimal": 59032 + }, + { + "icon_id": "24923351", + "name": "back", + "font_class": "back", + "unicode": "e6b9", + "unicode_decimal": 59065 + }, + { + "icon_id": "24923352", + "name": "forward", + "font_class": "forward", + "unicode": "e6ba", + "unicode_decimal": 59066 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrow-right", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrowthinright", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrow-left", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrowthinleft", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrow-up", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrowthinup", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrow-down", + "unicode": "e6be", + "unicode_decimal": 59070 + },{ + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrowthindown", + "unicode": "e6be", + "unicode_decimal": 59070 + }, + { + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "bottom", + "unicode": "e6b8", + "unicode_decimal": 59064 + },{ + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "arrowdown", + "unicode": "e6b8", + "unicode_decimal": 59064 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "right", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "arrowright", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "top", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "arrowup", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "left", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "arrowleft", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923334", + "name": "eye", + "font_class": "eye", + "unicode": "e651", + "unicode_decimal": 58961 + }, + { + "icon_id": "24923335", + "name": "eye-filled", + "font_class": "eye-filled", + "unicode": "e66a", + "unicode_decimal": 58986 + }, + { + "icon_id": "24923336", + "name": "eye-slash", + "font_class": "eye-slash", + "unicode": "e6b3", + "unicode_decimal": 59059 + }, + { + "icon_id": "24923337", + "name": "eye-slash-filled", + "font_class": "eye-slash-filled", + "unicode": "e6b4", + "unicode_decimal": 59060 + }, + { + "icon_id": "24923305", + "name": "info-filled", + "font_class": "info-filled", + "unicode": "e649", + "unicode_decimal": 58953 + }, + { + "icon_id": "24923299", + "name": "reload-01", + "font_class": "reload", + "unicode": "e6b2", + "unicode_decimal": 59058 + }, + { + "icon_id": "24923195", + "name": "mic_slash_fill", + "font_class": "micoff-filled", + "unicode": "e6b0", + "unicode_decimal": 59056 + }, + { + "icon_id": "24923165", + "name": "map-pin-ellipse", + "font_class": "map-pin-ellipse", + "unicode": "e6ac", + "unicode_decimal": 59052 + }, + { + "icon_id": "24923166", + "name": "map-pin", + "font_class": "map-pin", + "unicode": "e6ad", + "unicode_decimal": 59053 + }, + { + "icon_id": "24923167", + "name": "location", + "font_class": "location", + "unicode": "e6ae", + "unicode_decimal": 59054 + }, + { + "icon_id": "24923064", + "name": "starhalf", + "font_class": "starhalf", + "unicode": "e683", + "unicode_decimal": 59011 + }, + { + "icon_id": "24923065", + "name": "star", + "font_class": "star", + "unicode": "e688", + "unicode_decimal": 59016 + }, + { + "icon_id": "24923066", + "name": "star-filled", + "font_class": "star-filled", + "unicode": "e68f", + "unicode_decimal": 59023 + }, + { + "icon_id": "24899646", + "name": "a-rilidaka", + "font_class": "calendar", + "unicode": "e6a0", + "unicode_decimal": 59040 + }, + { + "icon_id": "24899647", + "name": "fire", + "font_class": "fire", + "unicode": "e6a1", + "unicode_decimal": 59041 + }, + { + "icon_id": "24899648", + "name": "paihangbang", + "font_class": "medal", + "unicode": "e6a2", + "unicode_decimal": 59042 + }, + { + "icon_id": "24899649", + "name": "font", + "font_class": "font", + "unicode": "e6a3", + "unicode_decimal": 59043 + }, + { + "icon_id": "24899650", + "name": "gift", + "font_class": "gift", + "unicode": "e6a4", + "unicode_decimal": 59044 + }, + { + "icon_id": "24899651", + "name": "link", + "font_class": "link", + "unicode": "e6a5", + "unicode_decimal": 59045 + }, + { + "icon_id": "24899652", + "name": "notification", + "font_class": "notification", + "unicode": "e6a6", + "unicode_decimal": 59046 + }, + { + "icon_id": "24899653", + "name": "staff", + "font_class": "staff", + "unicode": "e6a7", + "unicode_decimal": 59047 + }, + { + "icon_id": "24899654", + "name": "VIP", + "font_class": "vip", + "unicode": "e6a8", + "unicode_decimal": 59048 + }, + { + "icon_id": "24899655", + "name": "folder_add", + "font_class": "folder-add", + "unicode": "e6a9", + "unicode_decimal": 59049 + }, + { + "icon_id": "24899656", + "name": "tune", + "font_class": "tune", + "unicode": "e6aa", + "unicode_decimal": 59050 + }, + { + "icon_id": "24899657", + "name": "shimingrenzheng", + "font_class": "auth", + "unicode": "e6ab", + "unicode_decimal": 59051 + }, + { + "icon_id": "24899565", + "name": "person", + "font_class": "person", + "unicode": "e699", + "unicode_decimal": 59033 + }, + { + "icon_id": "24899566", + "name": "email-filled", + "font_class": "email-filled", + "unicode": "e69a", + "unicode_decimal": 59034 + }, + { + "icon_id": "24899567", + "name": "phone-filled", + "font_class": "phone-filled", + "unicode": "e69b", + "unicode_decimal": 59035 + }, + { + "icon_id": "24899568", + "name": "phone", + "font_class": "phone", + "unicode": "e69c", + "unicode_decimal": 59036 + }, + { + "icon_id": "24899570", + "name": "email", + "font_class": "email", + "unicode": "e69e", + "unicode_decimal": 59038 + }, + { + "icon_id": "24899571", + "name": "personadd", + "font_class": "personadd", + "unicode": "e69f", + "unicode_decimal": 59039 + }, + { + "icon_id": "24899558", + "name": "chatboxes-filled", + "font_class": "chatboxes-filled", + "unicode": "e692", + "unicode_decimal": 59026 + }, + { + "icon_id": "24899559", + "name": "contact", + "font_class": "contact", + "unicode": "e693", + "unicode_decimal": 59027 + }, + { + "icon_id": "24899560", + "name": "chatbubble-filled", + "font_class": "chatbubble-filled", + "unicode": "e694", + "unicode_decimal": 59028 + }, + { + "icon_id": "24899561", + "name": "contact-filled", + "font_class": "contact-filled", + "unicode": "e695", + "unicode_decimal": 59029 + }, + { + "icon_id": "24899562", + "name": "chatboxes", + "font_class": "chatboxes", + "unicode": "e696", + "unicode_decimal": 59030 + }, + { + "icon_id": "24899563", + "name": "chatbubble", + "font_class": "chatbubble", + "unicode": "e697", + "unicode_decimal": 59031 + }, + { + "icon_id": "24881290", + "name": "upload-filled", + "font_class": "upload-filled", + "unicode": "e68e", + "unicode_decimal": 59022 + }, + { + "icon_id": "24881292", + "name": "upload", + "font_class": "upload", + "unicode": "e690", + "unicode_decimal": 59024 + }, + { + "icon_id": "24881293", + "name": "weixin", + "font_class": "weixin", + "unicode": "e691", + "unicode_decimal": 59025 + }, + { + "icon_id": "24881274", + "name": "compose", + "font_class": "compose", + "unicode": "e67f", + "unicode_decimal": 59007 + }, + { + "icon_id": "24881275", + "name": "qq", + "font_class": "qq", + "unicode": "e680", + "unicode_decimal": 59008 + }, + { + "icon_id": "24881276", + "name": "download-filled", + "font_class": "download-filled", + "unicode": "e681", + "unicode_decimal": 59009 + }, + { + "icon_id": "24881277", + "name": "pengyouquan", + "font_class": "pyq", + "unicode": "e682", + "unicode_decimal": 59010 + }, + { + "icon_id": "24881279", + "name": "sound", + "font_class": "sound", + "unicode": "e684", + "unicode_decimal": 59012 + }, + { + "icon_id": "24881280", + "name": "trash-filled", + "font_class": "trash-filled", + "unicode": "e685", + "unicode_decimal": 59013 + }, + { + "icon_id": "24881281", + "name": "sound-filled", + "font_class": "sound-filled", + "unicode": "e686", + "unicode_decimal": 59014 + }, + { + "icon_id": "24881282", + "name": "trash", + "font_class": "trash", + "unicode": "e687", + "unicode_decimal": 59015 + }, + { + "icon_id": "24881284", + "name": "videocam-filled", + "font_class": "videocam-filled", + "unicode": "e689", + "unicode_decimal": 59017 + }, + { + "icon_id": "24881285", + "name": "spinner-cycle", + "font_class": "spinner-cycle", + "unicode": "e68a", + "unicode_decimal": 59018 + }, + { + "icon_id": "24881286", + "name": "weibo", + "font_class": "weibo", + "unicode": "e68b", + "unicode_decimal": 59019 + }, + { + "icon_id": "24881288", + "name": "videocam", + "font_class": "videocam", + "unicode": "e68c", + "unicode_decimal": 59020 + }, + { + "icon_id": "24881289", + "name": "download", + "font_class": "download", + "unicode": "e68d", + "unicode_decimal": 59021 + }, + { + "icon_id": "24879601", + "name": "help", + "font_class": "help", + "unicode": "e679", + "unicode_decimal": 59001 + }, + { + "icon_id": "24879602", + "name": "navigate-filled", + "font_class": "navigate-filled", + "unicode": "e67a", + "unicode_decimal": 59002 + }, + { + "icon_id": "24879603", + "name": "plusempty", + "font_class": "plusempty", + "unicode": "e67b", + "unicode_decimal": 59003 + }, + { + "icon_id": "24879604", + "name": "smallcircle", + "font_class": "smallcircle", + "unicode": "e67c", + "unicode_decimal": 59004 + }, + { + "icon_id": "24879605", + "name": "minus-filled", + "font_class": "minus-filled", + "unicode": "e67d", + "unicode_decimal": 59005 + }, + { + "icon_id": "24879606", + "name": "micoff", + "font_class": "micoff", + "unicode": "e67e", + "unicode_decimal": 59006 + }, + { + "icon_id": "24879588", + "name": "closeempty", + "font_class": "closeempty", + "unicode": "e66c", + "unicode_decimal": 58988 + }, + { + "icon_id": "24879589", + "name": "clear", + "font_class": "clear", + "unicode": "e66d", + "unicode_decimal": 58989 + }, + { + "icon_id": "24879590", + "name": "navigate", + "font_class": "navigate", + "unicode": "e66e", + "unicode_decimal": 58990 + }, + { + "icon_id": "24879591", + "name": "minus", + "font_class": "minus", + "unicode": "e66f", + "unicode_decimal": 58991 + }, + { + "icon_id": "24879592", + "name": "image", + "font_class": "image", + "unicode": "e670", + "unicode_decimal": 58992 + }, + { + "icon_id": "24879593", + "name": "mic", + "font_class": "mic", + "unicode": "e671", + "unicode_decimal": 58993 + }, + { + "icon_id": "24879594", + "name": "paperplane", + "font_class": "paperplane", + "unicode": "e672", + "unicode_decimal": 58994 + }, + { + "icon_id": "24879595", + "name": "close", + "font_class": "close", + "unicode": "e673", + "unicode_decimal": 58995 + }, + { + "icon_id": "24879596", + "name": "help-filled", + "font_class": "help-filled", + "unicode": "e674", + "unicode_decimal": 58996 + }, + { + "icon_id": "24879597", + "name": "plus-filled", + "font_class": "paperplane-filled", + "unicode": "e675", + "unicode_decimal": 58997 + }, + { + "icon_id": "24879598", + "name": "plus", + "font_class": "plus", + "unicode": "e676", + "unicode_decimal": 58998 + }, + { + "icon_id": "24879599", + "name": "mic-filled", + "font_class": "mic-filled", + "unicode": "e677", + "unicode_decimal": 58999 + }, + { + "icon_id": "24879600", + "name": "image-filled", + "font_class": "image-filled", + "unicode": "e678", + "unicode_decimal": 59000 + }, + { + "icon_id": "24855900", + "name": "locked-filled", + "font_class": "locked-filled", + "unicode": "e668", + "unicode_decimal": 58984 + }, + { + "icon_id": "24855901", + "name": "info", + "font_class": "info", + "unicode": "e669", + "unicode_decimal": 58985 + }, + { + "icon_id": "24855903", + "name": "locked", + "font_class": "locked", + "unicode": "e66b", + "unicode_decimal": 58987 + }, + { + "icon_id": "24855884", + "name": "camera-filled", + "font_class": "camera-filled", + "unicode": "e658", + "unicode_decimal": 58968 + }, + { + "icon_id": "24855885", + "name": "chat-filled", + "font_class": "chat-filled", + "unicode": "e659", + "unicode_decimal": 58969 + }, + { + "icon_id": "24855886", + "name": "camera", + "font_class": "camera", + "unicode": "e65a", + "unicode_decimal": 58970 + }, + { + "icon_id": "24855887", + "name": "circle", + "font_class": "circle", + "unicode": "e65b", + "unicode_decimal": 58971 + }, + { + "icon_id": "24855888", + "name": "checkmarkempty", + "font_class": "checkmarkempty", + "unicode": "e65c", + "unicode_decimal": 58972 + }, + { + "icon_id": "24855889", + "name": "chat", + "font_class": "chat", + "unicode": "e65d", + "unicode_decimal": 58973 + }, + { + "icon_id": "24855890", + "name": "circle-filled", + "font_class": "circle-filled", + "unicode": "e65e", + "unicode_decimal": 58974 + }, + { + "icon_id": "24855891", + "name": "flag", + "font_class": "flag", + "unicode": "e65f", + "unicode_decimal": 58975 + }, + { + "icon_id": "24855892", + "name": "flag-filled", + "font_class": "flag-filled", + "unicode": "e660", + "unicode_decimal": 58976 + }, + { + "icon_id": "24855893", + "name": "gear-filled", + "font_class": "gear-filled", + "unicode": "e661", + "unicode_decimal": 58977 + }, + { + "icon_id": "24855894", + "name": "home", + "font_class": "home", + "unicode": "e662", + "unicode_decimal": 58978 + }, + { + "icon_id": "24855895", + "name": "home-filled", + "font_class": "home-filled", + "unicode": "e663", + "unicode_decimal": 58979 + }, + { + "icon_id": "24855896", + "name": "gear", + "font_class": "gear", + "unicode": "e664", + "unicode_decimal": 58980 + }, + { + "icon_id": "24855897", + "name": "smallcircle-filled", + "font_class": "smallcircle-filled", + "unicode": "e665", + "unicode_decimal": 58981 + }, + { + "icon_id": "24855898", + "name": "map-filled", + "font_class": "map-filled", + "unicode": "e666", + "unicode_decimal": 58982 + }, + { + "icon_id": "24855899", + "name": "map", + "font_class": "map", + "unicode": "e667", + "unicode_decimal": 58983 + }, + { + "icon_id": "24855825", + "name": "refresh-filled", + "font_class": "refresh-filled", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "24855826", + "name": "refresh", + "font_class": "refresh", + "unicode": "e657", + "unicode_decimal": 58967 + }, + { + "icon_id": "24855808", + "name": "cloud-upload", + "font_class": "cloud-upload", + "unicode": "e645", + "unicode_decimal": 58949 + }, + { + "icon_id": "24855809", + "name": "cloud-download-filled", + "font_class": "cloud-download-filled", + "unicode": "e646", + "unicode_decimal": 58950 + }, + { + "icon_id": "24855810", + "name": "cloud-download", + "font_class": "cloud-download", + "unicode": "e647", + "unicode_decimal": 58951 + }, + { + "icon_id": "24855811", + "name": "cloud-upload-filled", + "font_class": "cloud-upload-filled", + "unicode": "e648", + "unicode_decimal": 58952 + }, + { + "icon_id": "24855813", + "name": "redo", + "font_class": "redo", + "unicode": "e64a", + "unicode_decimal": 58954 + }, + { + "icon_id": "24855814", + "name": "images-filled", + "font_class": "images-filled", + "unicode": "e64b", + "unicode_decimal": 58955 + }, + { + "icon_id": "24855815", + "name": "undo-filled", + "font_class": "undo-filled", + "unicode": "e64c", + "unicode_decimal": 58956 + }, + { + "icon_id": "24855816", + "name": "more", + "font_class": "more", + "unicode": "e64d", + "unicode_decimal": 58957 + }, + { + "icon_id": "24855817", + "name": "more-filled", + "font_class": "more-filled", + "unicode": "e64e", + "unicode_decimal": 58958 + }, + { + "icon_id": "24855818", + "name": "undo", + "font_class": "undo", + "unicode": "e64f", + "unicode_decimal": 58959 + }, + { + "icon_id": "24855819", + "name": "images", + "font_class": "images", + "unicode": "e650", + "unicode_decimal": 58960 + }, + { + "icon_id": "24855821", + "name": "paperclip", + "font_class": "paperclip", + "unicode": "e652", + "unicode_decimal": 58962 + }, + { + "icon_id": "24855822", + "name": "settings", + "font_class": "settings", + "unicode": "e653", + "unicode_decimal": 58963 + }, + { + "icon_id": "24855823", + "name": "search", + "font_class": "search", + "unicode": "e654", + "unicode_decimal": 58964 + }, + { + "icon_id": "24855824", + "name": "redo-filled", + "font_class": "redo-filled", + "unicode": "e655", + "unicode_decimal": 58965 + }, + { + "icon_id": "24841702", + "name": "list", + "font_class": "list", + "unicode": "e644", + "unicode_decimal": 58948 + }, + { + "icon_id": "24841489", + "name": "mail-open-filled", + "font_class": "mail-open-filled", + "unicode": "e63a", + "unicode_decimal": 58938 + }, + { + "icon_id": "24841491", + "name": "hand-thumbsdown-filled", + "font_class": "hand-down-filled", + "unicode": "e63c", + "unicode_decimal": 58940 + }, + { + "icon_id": "24841492", + "name": "hand-thumbsdown", + "font_class": "hand-down", + "unicode": "e63d", + "unicode_decimal": 58941 + }, + { + "icon_id": "24841493", + "name": "hand-thumbsup-filled", + "font_class": "hand-up-filled", + "unicode": "e63e", + "unicode_decimal": 58942 + }, + { + "icon_id": "24841494", + "name": "hand-thumbsup", + "font_class": "hand-up", + "unicode": "e63f", + "unicode_decimal": 58943 + }, + { + "icon_id": "24841496", + "name": "heart-filled", + "font_class": "heart-filled", + "unicode": "e641", + "unicode_decimal": 58945 + }, + { + "icon_id": "24841498", + "name": "mail-open", + "font_class": "mail-open", + "unicode": "e643", + "unicode_decimal": 58947 + }, + { + "icon_id": "24841488", + "name": "heart", + "font_class": "heart", + "unicode": "e639", + "unicode_decimal": 58937 + }, + { + "icon_id": "24839963", + "name": "loop", + "font_class": "loop", + "unicode": "e633", + "unicode_decimal": 58931 + }, + { + "icon_id": "24839866", + "name": "pulldown", + "font_class": "pulldown", + "unicode": "e632", + "unicode_decimal": 58930 + }, + { + "icon_id": "24813798", + "name": "scan", + "font_class": "scan", + "unicode": "e62a", + "unicode_decimal": 58922 + }, + { + "icon_id": "24813786", + "name": "bars", + "font_class": "bars", + "unicode": "e627", + "unicode_decimal": 58919 + }, + { + "icon_id": "24813788", + "name": "cart-filled", + "font_class": "cart-filled", + "unicode": "e629", + "unicode_decimal": 58921 + }, + { + "icon_id": "24813790", + "name": "checkbox", + "font_class": "checkbox", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "24813791", + "name": "checkbox-filled", + "font_class": "checkbox-filled", + "unicode": "e62c", + "unicode_decimal": 58924 + }, + { + "icon_id": "24813794", + "name": "shop", + "font_class": "shop", + "unicode": "e62f", + "unicode_decimal": 58927 + }, + { + "icon_id": "24813795", + "name": "headphones", + "font_class": "headphones", + "unicode": "e630", + "unicode_decimal": 58928 + }, + { + "icon_id": "24813796", + "name": "cart", + "font_class": "cart", + "unicode": "e631", + "unicode_decimal": 58929 + } + ] +} diff --git a/supervise-uniapp/uni_modules/uni-icons/components/uni-icons/uni-icons.vue b/supervise-uniapp/uni_modules/uni-icons/components/uni-icons/uni-icons.vue new file mode 100644 index 00000000..86e74445 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-icons/components/uni-icons/uni-icons.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-icons/components/uni-icons/uniicons.css b/supervise-uniapp/uni_modules/uni-icons/components/uni-icons/uniicons.css new file mode 100644 index 00000000..2f56eabd --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-icons/components/uni-icons/uniicons.css @@ -0,0 +1,663 @@ +.uniui-color:before { + content: "\e6cf"; +} + +.uniui-wallet:before { + content: "\e6b1"; +} + +.uniui-settings-filled:before { + content: "\e6ce"; +} + +.uniui-auth-filled:before { + content: "\e6cc"; +} + +.uniui-shop-filled:before { + content: "\e6cd"; +} + +.uniui-staff-filled:before { + content: "\e6cb"; +} + +.uniui-vip-filled:before { + content: "\e6c6"; +} + +.uniui-plus-filled:before { + content: "\e6c7"; +} + +.uniui-folder-add-filled:before { + content: "\e6c8"; +} + +.uniui-color-filled:before { + content: "\e6c9"; +} + +.uniui-tune-filled:before { + content: "\e6ca"; +} + +.uniui-calendar-filled:before { + content: "\e6c0"; +} + +.uniui-notification-filled:before { + content: "\e6c1"; +} + +.uniui-wallet-filled:before { + content: "\e6c2"; +} + +.uniui-medal-filled:before { + content: "\e6c3"; +} + +.uniui-gift-filled:before { + content: "\e6c4"; +} + +.uniui-fire-filled:before { + content: "\e6c5"; +} + +.uniui-refreshempty:before { + content: "\e6bf"; +} + +.uniui-location-filled:before { + content: "\e6af"; +} + +.uniui-person-filled:before { + content: "\e69d"; +} + +.uniui-personadd-filled:before { + content: "\e698"; +} + +.uniui-back:before { + content: "\e6b9"; +} + +.uniui-forward:before { + content: "\e6ba"; +} + +.uniui-arrow-right:before { + content: "\e6bb"; +} + +.uniui-arrowthinright:before { + content: "\e6bb"; +} + +.uniui-arrow-left:before { + content: "\e6bc"; +} + +.uniui-arrowthinleft:before { + content: "\e6bc"; +} + +.uniui-arrow-up:before { + content: "\e6bd"; +} + +.uniui-arrowthinup:before { + content: "\e6bd"; +} + +.uniui-arrow-down:before { + content: "\e6be"; +} + +.uniui-arrowthindown:before { + content: "\e6be"; +} + +.uniui-bottom:before { + content: "\e6b8"; +} + +.uniui-arrowdown:before { + content: "\e6b8"; +} + +.uniui-right:before { + content: "\e6b5"; +} + +.uniui-arrowright:before { + content: "\e6b5"; +} + +.uniui-top:before { + content: "\e6b6"; +} + +.uniui-arrowup:before { + content: "\e6b6"; +} + +.uniui-left:before { + content: "\e6b7"; +} + +.uniui-arrowleft:before { + content: "\e6b7"; +} + +.uniui-eye:before { + content: "\e651"; +} + +.uniui-eye-filled:before { + content: "\e66a"; +} + +.uniui-eye-slash:before { + content: "\e6b3"; +} + +.uniui-eye-slash-filled:before { + content: "\e6b4"; +} + +.uniui-info-filled:before { + content: "\e649"; +} + +.uniui-reload:before { + content: "\e6b2"; +} + +.uniui-micoff-filled:before { + content: "\e6b0"; +} + +.uniui-map-pin-ellipse:before { + content: "\e6ac"; +} + +.uniui-map-pin:before { + content: "\e6ad"; +} + +.uniui-location:before { + content: "\e6ae"; +} + +.uniui-starhalf:before { + content: "\e683"; +} + +.uniui-star:before { + content: "\e688"; +} + +.uniui-star-filled:before { + content: "\e68f"; +} + +.uniui-calendar:before { + content: "\e6a0"; +} + +.uniui-fire:before { + content: "\e6a1"; +} + +.uniui-medal:before { + content: "\e6a2"; +} + +.uniui-font:before { + content: "\e6a3"; +} + +.uniui-gift:before { + content: "\e6a4"; +} + +.uniui-link:before { + content: "\e6a5"; +} + +.uniui-notification:before { + content: "\e6a6"; +} + +.uniui-staff:before { + content: "\e6a7"; +} + +.uniui-vip:before { + content: "\e6a8"; +} + +.uniui-folder-add:before { + content: "\e6a9"; +} + +.uniui-tune:before { + content: "\e6aa"; +} + +.uniui-auth:before { + content: "\e6ab"; +} + +.uniui-person:before { + content: "\e699"; +} + +.uniui-email-filled:before { + content: "\e69a"; +} + +.uniui-phone-filled:before { + content: "\e69b"; +} + +.uniui-phone:before { + content: "\e69c"; +} + +.uniui-email:before { + content: "\e69e"; +} + +.uniui-personadd:before { + content: "\e69f"; +} + +.uniui-chatboxes-filled:before { + content: "\e692"; +} + +.uniui-contact:before { + content: "\e693"; +} + +.uniui-chatbubble-filled:before { + content: "\e694"; +} + +.uniui-contact-filled:before { + content: "\e695"; +} + +.uniui-chatboxes:before { + content: "\e696"; +} + +.uniui-chatbubble:before { + content: "\e697"; +} + +.uniui-upload-filled:before { + content: "\e68e"; +} + +.uniui-upload:before { + content: "\e690"; +} + +.uniui-weixin:before { + content: "\e691"; +} + +.uniui-compose:before { + content: "\e67f"; +} + +.uniui-qq:before { + content: "\e680"; +} + +.uniui-download-filled:before { + content: "\e681"; +} + +.uniui-pyq:before { + content: "\e682"; +} + +.uniui-sound:before { + content: "\e684"; +} + +.uniui-trash-filled:before { + content: "\e685"; +} + +.uniui-sound-filled:before { + content: "\e686"; +} + +.uniui-trash:before { + content: "\e687"; +} + +.uniui-videocam-filled:before { + content: "\e689"; +} + +.uniui-spinner-cycle:before { + content: "\e68a"; +} + +.uniui-weibo:before { + content: "\e68b"; +} + +.uniui-videocam:before { + content: "\e68c"; +} + +.uniui-download:before { + content: "\e68d"; +} + +.uniui-help:before { + content: "\e679"; +} + +.uniui-navigate-filled:before { + content: "\e67a"; +} + +.uniui-plusempty:before { + content: "\e67b"; +} + +.uniui-smallcircle:before { + content: "\e67c"; +} + +.uniui-minus-filled:before { + content: "\e67d"; +} + +.uniui-micoff:before { + content: "\e67e"; +} + +.uniui-closeempty:before { + content: "\e66c"; +} + +.uniui-clear:before { + content: "\e66d"; +} + +.uniui-navigate:before { + content: "\e66e"; +} + +.uniui-minus:before { + content: "\e66f"; +} + +.uniui-image:before { + content: "\e670"; +} + +.uniui-mic:before { + content: "\e671"; +} + +.uniui-paperplane:before { + content: "\e672"; +} + +.uniui-close:before { + content: "\e673"; +} + +.uniui-help-filled:before { + content: "\e674"; +} + +.uniui-paperplane-filled:before { + content: "\e675"; +} + +.uniui-plus:before { + content: "\e676"; +} + +.uniui-mic-filled:before { + content: "\e677"; +} + +.uniui-image-filled:before { + content: "\e678"; +} + +.uniui-locked-filled:before { + content: "\e668"; +} + +.uniui-info:before { + content: "\e669"; +} + +.uniui-locked:before { + content: "\e66b"; +} + +.uniui-camera-filled:before { + content: "\e658"; +} + +.uniui-chat-filled:before { + content: "\e659"; +} + +.uniui-camera:before { + content: "\e65a"; +} + +.uniui-circle:before { + content: "\e65b"; +} + +.uniui-checkmarkempty:before { + content: "\e65c"; +} + +.uniui-chat:before { + content: "\e65d"; +} + +.uniui-circle-filled:before { + content: "\e65e"; +} + +.uniui-flag:before { + content: "\e65f"; +} + +.uniui-flag-filled:before { + content: "\e660"; +} + +.uniui-gear-filled:before { + content: "\e661"; +} + +.uniui-home:before { + content: "\e662"; +} + +.uniui-home-filled:before { + content: "\e663"; +} + +.uniui-gear:before { + content: "\e664"; +} + +.uniui-smallcircle-filled:before { + content: "\e665"; +} + +.uniui-map-filled:before { + content: "\e666"; +} + +.uniui-map:before { + content: "\e667"; +} + +.uniui-refresh-filled:before { + content: "\e656"; +} + +.uniui-refresh:before { + content: "\e657"; +} + +.uniui-cloud-upload:before { + content: "\e645"; +} + +.uniui-cloud-download-filled:before { + content: "\e646"; +} + +.uniui-cloud-download:before { + content: "\e647"; +} + +.uniui-cloud-upload-filled:before { + content: "\e648"; +} + +.uniui-redo:before { + content: "\e64a"; +} + +.uniui-images-filled:before { + content: "\e64b"; +} + +.uniui-undo-filled:before { + content: "\e64c"; +} + +.uniui-more:before { + content: "\e64d"; +} + +.uniui-more-filled:before { + content: "\e64e"; +} + +.uniui-undo:before { + content: "\e64f"; +} + +.uniui-images:before { + content: "\e650"; +} + +.uniui-paperclip:before { + content: "\e652"; +} + +.uniui-settings:before { + content: "\e653"; +} + +.uniui-search:before { + content: "\e654"; +} + +.uniui-redo-filled:before { + content: "\e655"; +} + +.uniui-list:before { + content: "\e644"; +} + +.uniui-mail-open-filled:before { + content: "\e63a"; +} + +.uniui-hand-down-filled:before { + content: "\e63c"; +} + +.uniui-hand-down:before { + content: "\e63d"; +} + +.uniui-hand-up-filled:before { + content: "\e63e"; +} + +.uniui-hand-up:before { + content: "\e63f"; +} + +.uniui-heart-filled:before { + content: "\e641"; +} + +.uniui-mail-open:before { + content: "\e643"; +} + +.uniui-heart:before { + content: "\e639"; +} + +.uniui-loop:before { + content: "\e633"; +} + +.uniui-pulldown:before { + content: "\e632"; +} + +.uniui-scan:before { + content: "\e62a"; +} + +.uniui-bars:before { + content: "\e627"; +} + +.uniui-cart-filled:before { + content: "\e629"; +} + +.uniui-checkbox:before { + content: "\e62b"; +} + +.uniui-checkbox-filled:before { + content: "\e62c"; +} + +.uniui-shop:before { + content: "\e62f"; +} + +.uniui-headphones:before { + content: "\e630"; +} + +.uniui-cart:before { + content: "\e631"; +} diff --git a/supervise-uniapp/uni_modules/uni-icons/components/uni-icons/uniicons.ttf b/supervise-uniapp/uni_modules/uni-icons/components/uni-icons/uniicons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..835f33bc9411461b8b9046b3fec742e921d6ce3a GIT binary patch literal 35760 zcmeFacbp?vl{Q?rN>WLsSXIigCAC7gI!S6tox^m`be^1}CwPJ>yxZ{uSzi{WC_=LI+*Wx!<-H!v})21fuKMZQ#fB2Fs zuEGwU_ZyDmuR3&e_s&PS@Be}0T=(JF$l;w=9Als0-iQ4lE^0cm^YDeWhnK#G<4!$@ z>-QZydhsP6Kl0Pv9Cw|EbP-?YO$@C;`+ zuKnR1zxV)MXnddfv56Dn_-W<%#_jZ^d%1f!hyI(6O8C!lXY}93nl=3f9^gzbYS03Jm0vJ;T)Z1IKntfUtypB#zx`e6wG3 zC5AhB&Me^QdH${3yL1otSUp#NN^cKN_yKnkm%XqxczWUgrT^Oo|6lL`SPy&+DZ_DX z1{?B^82rf|!cpSXHhg1*;kZecHy+MI*MqCu>g9T0eYieaf9edzAC9!tJL|pm0UQ~l zBQN;JaG!_sb8)VT%i=%By_I_#_ZIFh?(N(=xVtf?-^|^~y@`7RcMEqbcN=#*_eSmx z?)BVjxU0EqFm9T;Q`~9pTJAdTdhWH{>+qBtxEr~fxSP3Gb60T(xkKDx?g)33JH{R7 zPH-1465x0fg%5CGeb33>TxSiZCZa24wyO7(&Q z>$wfwMs5?gnVaOMxM^;NYvpFSIc_<(f-7(s&u0CxL#u8VbF$klItIryQ@x|5W z48lm`>dOtnnB(dz48rK+>MISxIOOW948n-y>Z=XH*yQSK48kbo>T3axcUVKK~8Y>od!W-aP?gVL3VKU-3CF5aP>U~L7s5+3k`x~;p%%0f{fwn z`wW7#;p+Phg52Ti2MmG);_4R}1X;w@scs-hC9Y0&13^AJNK#+l4o$3aH zH00`3HxT3^SEssxAR)Or)eQt$$+z7tkWDxWPSHIIBXb!IaW`m$ZxcXZRf;QpmZ#4*d zg{!~KAZQq_ewRVeHC+Ae20`m^^>-Kq{lnGoHVB%CtKVY~bP`v;*C1#ou700E&{JIf zeuJQ~xcWN{g6`t#?=lEljH|!fAm}r${tpI0vvKtY41$j1>hCcK+K#I~Xb|)sSAVZT z(12Y1eFi}na`pEc1g*%`|Ir}mN3Q+>gPp}tAE%avLosrF^GJG z`bQ0dZsqD9GYDFitAE@e=v%J-34@?{x%wv!f)3{DpE3yAn5#cz5cD!v|Fl8S&|Lj9 z20>SI_0JjvtVjlpxwFpV+N5QQ~$g{(D+>a3kE^= zbM-G81S^26f5{-&16=*f2Ej7m>R&MkHUd}wszKz<)E_qpb^}-cnn7g6)t@j3wggxI zxp1QBm2=klxXa|a&TVx+;Qp=WwVt{>D}O~9QXW)O>O0h5db_-@^8Ud$^pPT-1=NS-v_4k2r|_kM*0!vaW9xyNll~`AaKH zuPQxR4wv6t{%QC2?wh**v$DGKU?rS_5?F|crGafkiL7dNk-%Y_E4VmkSn6>Hb;SUukEx3l0# zej=BS$yT%Av8Uc*J`xpdRw>aQ5n{34Scli{%@0hjo|#!%t;CXMOO1~vM@By$$wu(0 z7+*JsbCF0c%-{dHFL+pQI~s3&zjaOf89{d%!`6o3fsCO(`6

PqiNa$~E4XJ#a8s%?nsx`&SiQ7Wz{CE9c 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 literal 0 HcmV?d00001 diff --git a/supervise-uniapp/uni_modules/uni-icons/package.json b/supervise-uniapp/uni_modules/uni-icons/package.json new file mode 100644 index 00000000..d1c4e77d --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-icons/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-icons", + "displayName": "uni-icons 图标", + "version": "1.3.5", + "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", + "keywords": [ + "uni-ui", + "uniui", + "icon", + "图标" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.14" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-icons/readme.md b/supervise-uniapp/uni_modules/uni-icons/readme.md new file mode 100644 index 00000000..86234ba1 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-icons/readme.md @@ -0,0 +1,8 @@ +## Icons 图标 +> **组件名:uni-icons** +> 代码块: `uIcons` + +用于展示 icons 图标 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/supervise-uniapp/uni_modules/uni-indexed-list/changelog.md b/supervise-uniapp/uni_modules/uni-indexed-list/changelog.md new file mode 100644 index 00000000..08fa71cb --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-indexed-list/changelog.md @@ -0,0 +1,17 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-indexed-list](https://uniapp.dcloud.io/component/uniui/uni-indexed-list) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.11(2021-05-12) +- 新增 组件示例地址 +## 1.0.10(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.9(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.8(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持 PC 端 diff --git a/supervise-uniapp/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue b/supervise-uniapp/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue new file mode 100644 index 00000000..2f13baec --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue b/supervise-uniapp/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue new file mode 100644 index 00000000..35e168c2 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue @@ -0,0 +1,367 @@ + + + diff --git a/supervise-uniapp/uni_modules/uni-indexed-list/package.json b/supervise-uniapp/uni_modules/uni-indexed-list/package.json new file mode 100644 index 00000000..125c0e7f --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-indexed-list/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-indexed-list", + "displayName": "uni-indexed-list 索引列表", + "version": "1.2.1", + "description": "索引列表组件,右侧带索引的列表,方便快速定位到具体内容,通常用于城市/机场选择等场景", + "keywords": [ + "uni-ui", + "索引列表", + "索引", + "列表" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-indexed-list/readme.md b/supervise-uniapp/uni_modules/uni-indexed-list/readme.md new file mode 100644 index 00000000..44ad84b2 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-indexed-list/readme.md @@ -0,0 +1,11 @@ + + +## IndexedList 索引列表 +> **组件名:uni-indexed-list** +> 代码块: `uIndexedList` + + +用于展示索引列表。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-indexed-list) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/supervise-uniapp/uni_modules/uni-link/changelog.md b/supervise-uniapp/uni_modules/uni-link/changelog.md new file mode 100644 index 00000000..2cfbf591 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-link/changelog.md @@ -0,0 +1,17 @@ +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-link](https://uniapp.dcloud.io/component/uniui/uni-link) +## 1.1.7(2021-11-08) +## 0.0.7(2021-09-03) +- 修复 在 nvue 下不显示的 bug +## 0.0.6(2021-07-30) +- 新增 支持自定义插槽 +## 0.0.5(2021-06-21) +- 新增 download 属性,H5平台下载文件名 +## 0.0.4(2021-05-12) +- 新增 组件示例地址 +## 0.0.3(2021-03-09) +- 新增 href 属性支持 tel:|mailto: + +## 0.0.2(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-link/components/uni-link/uni-link.vue b/supervise-uniapp/uni_modules/uni-link/components/uni-link/uni-link.vue new file mode 100644 index 00000000..27c5468e --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-link/components/uni-link/uni-link.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-link/package.json b/supervise-uniapp/uni_modules/uni-link/package.json new file mode 100644 index 00000000..77b19865 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-link/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-link", + "displayName": "uni-link 超链接", + "version": "1.0.0", + "description": "uni-link是一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打", + "keywords": [ + "uni-ui", + "uniui", + "link", + "超链接", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-link/readme.md b/supervise-uniapp/uni_modules/uni-link/readme.md new file mode 100644 index 00000000..7f09e941 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-link/readme.md @@ -0,0 +1,11 @@ + + +## Link 链接 +> **组件名:uni-link** +> 代码块: `uLink` + + +uni-link是一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打开新网页。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-link) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-list/changelog.md b/supervise-uniapp/uni_modules/uni-list/changelog.md new file mode 100644 index 00000000..6aa6e4e0 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-list/changelog.md @@ -0,0 +1,20 @@ +## 1.2.1(2022-03-30) +- 删除无用文件 +## 1.2.0(2021-11-23) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-list](https://uniapp.dcloud.io/component/uniui/uni-list) +## 1.1.3(2021-08-30) +- 修复 在vue3中to属性在发行应用的时候报错的bug +## 1.1.2(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.1(2021-07-21) +- 修复 与其他组件嵌套使用时,点击失效的Bug +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.17(2021-05-12) +- 新增 组件示例地址 +## 1.0.16(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.15(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 uni-list-chat 角标显示不正常的问题 diff --git a/supervise-uniapp/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue b/supervise-uniapp/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue new file mode 100644 index 00000000..b9349c29 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss b/supervise-uniapp/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss new file mode 100644 index 00000000..311f8d9f --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss @@ -0,0 +1,58 @@ +/** + * 这里是 uni-list 组件内置的常用样式变量 + * 如果需要覆盖样式,这里提供了基本的组件样式变量,您可以尝试修改这里的变量,去完成样式替换,而不用去修改源码 + * + */ + +// 背景色 +$background-color : #fff; +// 分割线颜色 +$divide-line-color : #e5e5e5; + +// 默认头像大小,如需要修改此值,注意同步修改 js 中的值 const avatarWidth = xx ,目前只支持方形头像 +// nvue 页面不支持修改头像大小 +$avatar-width : 45px ; + +// 头像边框 +$avatar-border-radius: 5px; +$avatar-border-color: #eee; +$avatar-border-width: 1px; + +// 标题文字样式 +$title-size : 16px; +$title-color : #3b4144; +$title-weight : normal; + +// 描述文字样式 +$note-size : 12px; +$note-color : #999; +$note-weight : normal; + +// 右侧额外内容默认样式 +$right-text-size : 12px; +$right-text-color : #999; +$right-text-weight : normal; + +// 角标样式 +// nvue 页面不支持修改圆点位置以及大小 +// 角标在左侧时,角标的位置,默认为 0 ,负数左/下移动,正数右/上移动 +$badge-left: 0px; +$badge-top: 0px; + +// 显示圆点时,圆点大小 +$dot-width: 10px; +$dot-height: 10px; + +// 显示角标时,角标大小和字体大小 +$badge-size : 18px; +$badge-font : 12px; +// 显示角标时,角标前景色 +$badge-color : #fff; +// 显示角标时,角标背景色 +$badge-background-color : #ff5a5f; +// 显示角标时,角标左右间距 +$badge-space : 6px; + +// 状态样式 +// 选中颜色 +$hover : #f5f5f5; diff --git a/supervise-uniapp/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue b/supervise-uniapp/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue new file mode 100644 index 00000000..2b310085 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue @@ -0,0 +1,538 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue b/supervise-uniapp/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue new file mode 100644 index 00000000..2c7d9ea7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue @@ -0,0 +1,454 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-list/components/uni-list/uni-list.vue b/supervise-uniapp/uni_modules/uni-list/components/uni-list/uni-list.vue new file mode 100644 index 00000000..ecda6765 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-list/components/uni-list/uni-list.vue @@ -0,0 +1,108 @@ + + + + diff --git a/supervise-uniapp/uni_modules/uni-list/components/uni-list/uni-refresh.vue b/supervise-uniapp/uni_modules/uni-list/components/uni-list/uni-refresh.vue new file mode 100644 index 00000000..3b4c5a23 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-list/components/uni-list/uni-refresh.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-list/components/uni-list/uni-refresh.wxs b/supervise-uniapp/uni_modules/uni-list/components/uni-list/uni-refresh.wxs new file mode 100644 index 00000000..818a6b72 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-list/components/uni-list/uni-refresh.wxs @@ -0,0 +1,87 @@ +var pullDown = { + threshold: 95, + maxHeight: 200, + callRefresh: 'onrefresh', + callPullingDown: 'onpullingdown', + refreshSelector: '.uni-refresh' +}; + +function ready(newValue, oldValue, ownerInstance, instance) { + var state = instance.getState() + state.canPullDown = newValue; + // console.log(newValue); +} + +function touchStart(e, instance) { + var state = instance.getState(); + state.refreshInstance = instance.selectComponent(pullDown.refreshSelector); + state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined); + if (!state.canPullDown) { + return + } + + // console.log("touchStart"); + + state.height = 0; + state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY; + state.refreshInstance.setStyle({ + 'height': 0 + }); + state.refreshInstance.callMethod("onchange", true); +} + +function touchMove(e, ownerInstance) { + var instance = e.instance; + var state = instance.getState(); + if (!state.canPullDown) { + return + } + + var oldHeight = state.height; + var endY = e.touches[0].pageY || e.changedTouches[0].pageY; + var height = endY - state.touchStartY; + if (height > pullDown.maxHeight) { + return; + } + + var refreshInstance = state.refreshInstance; + refreshInstance.setStyle({ + 'height': height + 'px' + }); + + height = height < pullDown.maxHeight ? height : pullDown.maxHeight; + state.height = height; + refreshInstance.callMethod(pullDown.callPullingDown, { + height: height + }); +} + +function touchEnd(e, ownerInstance) { + var state = e.instance.getState(); + if (!state.canPullDown) { + return + } + + state.refreshInstance.callMethod("onchange", false); + + var refreshInstance = state.refreshInstance; + if (state.height > pullDown.threshold) { + refreshInstance.callMethod(pullDown.callRefresh); + return; + } + + refreshInstance.setStyle({ + 'height': 0 + }); +} + +function propObserver(newValue, oldValue, instance) { + pullDown = newValue; +} + +module.exports = { + touchmove: touchMove, + touchstart: touchStart, + touchend: touchEnd, + propObserver: propObserver +} diff --git a/supervise-uniapp/uni_modules/uni-list/package.json b/supervise-uniapp/uni_modules/uni-list/package.json new file mode 100644 index 00000000..66e8bef0 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-list/package.json @@ -0,0 +1,91 @@ +{ + "id": "uni-list", + "displayName": "uni-list 列表", + "version": "1.2.1", + "description": "List 组件 ,帮助使用者快速构建列表。", + "keywords": [ + "", + "uni-ui", + "uniui", + "列表", + "", + "list" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-badge", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-list/readme.md b/supervise-uniapp/uni_modules/uni-list/readme.md new file mode 100644 index 00000000..32c28654 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-list/readme.md @@ -0,0 +1,346 @@ +## List 列表 +> **组件名:uni-list** +> 代码块: `uList`、`uListItem` +> 关联组件:`uni-list-item`、`uni-badge`、`uni-icons`、`uni-list-chat`、`uni-list-ad` + + +List 列表组件,包含基本列表样式、可扩展插槽机制、长列表性能优化、多端兼容。 + +在vue页面里,它默认使用页面级滚动。在app-nvue页面里,它默认使用原生list组件滚动。这样的长列表,在滚动出屏幕外后,系统会回收不可见区域的渲染内存资源,不会造成滚动越长手机越卡的问题。 + +uni-list组件是父容器,里面的核心是uni-list-item子组件,它代表列表中的一个可重复行,子组件可以无限循环。 + +uni-list-item有很多风格,uni-list-item组件通过内置的属性,满足一些常用的场景。当内置属性不满足需求时,可以通过扩展插槽来自定义列表内容。 + +内置属性可以覆盖的场景包括:导航列表、设置列表、小图标列表、通信录列表、聊天记录列表。 + +涉及很多大图或丰富内容的列表,比如类今日头条的新闻列表、类淘宝的电商列表,需要通过扩展插槽实现。 + +下文均有样例给出。 + +uni-list不包含下拉刷新和上拉翻页。上拉翻页另见组件:[uni-load-more](https://ext.dcloud.net.cn/plugin?id=29) + + +### 安装方式 + +本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 + +如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) + +> **注意事项** +> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 +> - 组件需要依赖 `sass` 插件 ,请自行手动安装 +> - 组件内部依赖 `'uni-icons'` 、`uni-badge` 组件 +> - `uni-list` 和 `uni-list-item` 需要配套使用,暂不支持单独使用 `uni-list-item` +> - 只有开启点击反馈后,会有点击选中效果 +> - 使用插槽时,可以完全自定义内容 +> - note 、rightText 属性暂时没做限制,不支持文字溢出隐藏,使用时应该控制长度显示或通过默认插槽自行扩展 +> - 支付宝小程序平台需要在支付宝小程序开发者工具里开启 component2 编译模式,开启方式: 详情 --> 项目配置 --> 启用 component2 编译 +> - 如果需要修改 `switch`、`badge` 样式,请使用插槽自定义 +> - 在 `HBuilderX` 低版本中,可能会出现组件显示 `undefined` 的问题,请升级最新的 `HBuilderX` 或者 `cli` +> - 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + +### 基本用法 + +- 设置 `title` 属性,可以显示列表标题 +- 设置 `disabled` 属性,可以禁用当前项 + +```html + + + + + +``` + +### 多行内容显示 + +- 设置 `note` 属性 ,可以在第二行显示描述文本信息 + +```html + + + + + +``` + +### 右侧显示角标、switch + +- 设置 `show-badge` 属性 ,可以显示角标内容 +- 设置 `show-switch` 属性,可以显示 switch 开关 + +```html + + + + + +``` + +### 左侧显示略缩图、图标 + +- 设置 `thumb` 属性 ,可以在列表左侧显示略缩图 +- 设置 `show-extra-icon` 属性,并指定 `extra-icon` 可以在左侧显示图标 + +```html + + + + +``` + +### 开启点击反馈和右侧箭头 +- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 +- 设置 `link` 属性,会自动开启点击反馈,并给列表右侧添加一个箭头 +- 设置 `to` 属性,可以跳转页面,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` + +```html + + + + + + + +``` + + +### 聊天列表示例 +- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 +- 设置 `link` 属性,会自动开启点击反馈,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` +- 设置 `to` 属性,可以跳转页面 +- `time` 属性,通常会设置成时间显示,但是这个属性不仅仅可以设置时间,你可以传入任何文本,注意文本长度可能会影响显示 +- `avatar` 和 `avatarList` 属性同时只会有一个生效,同时设置的话,`avatarList` 属性的长度大于1 ,`avatar` 属性将失效 +- 可以通过默认插槽自定义列表右侧内容 + +```html + + + + + + + + + + + + + + + + + 刚刚 + + + + + + + +``` + +```javascript + +export default { + components: {}, + data() { + return { + avatarList: [{ + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }, { + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }, { + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }] + } + } +} + +``` + + +```css + +.chat-custom-right { + flex: 1; + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: column; + justify-content: space-between; + align-items: flex-end; +} + +.chat-custom-text { + font-size: 12px; + color: #999; +} + +``` + +## API + +### List Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +border |Boolean |true | 是否显示边框 + + +### ListItem Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +title |String |- | 标题 +note |String |- | 描述 +ellipsis |Number |0 | title 是否溢出隐藏,可选值,0:默认; 1:显示一行; 2:显示两行;【nvue 暂不支持】 +thumb |String |- | 左侧缩略图,若thumb有值,则不会显示扩展图标 +thumbSize |String |medium | 略缩图尺寸,可选值,lg:大图; medium:一般; sm:小图; +showBadge |Boolean |false | 是否显示数字角标 +badgeText |String |- | 数字角标内容 +badgeType |String |- | 数字角标类型,参考[uni-icons](https://ext.dcloud.net.cn/plugin?id=21) +badgeStyle |Object |- | 数字角标样式,使用uni-badge的custom-style参数 +rightText |String |- | 右侧文字内容 +disabled |Boolean |false | 是否禁用 +showArrow |Boolean |true | 是否显示箭头图标 +link |String |navigateTo | 新页面跳转方式,可选值见下表 +to |String |- | 新页面跳转地址,如填写此属性,click 会返回页面是否跳转成功 +clickable |Boolean |false | 是否开启点击反馈 +showSwitch |Boolean |false | 是否显示Switch +switchChecked |Boolean |false | Switch是否被选中 +showExtraIcon |Boolean |false | 左侧是否显示扩展图标 +extraIcon |Object |- | 扩展图标参数,格式为 ``{color: '#4cd964',size: '22',type: 'spinner'}``,参考 [uni-icons](https://ext.dcloud.net.cn/plugin?id=28) +direction | String |row | 排版方向,可选值,row:水平排列; column:垂直排列; 3个插槽是水平排还是垂直排,也受此属性控制 + + +#### Link Options + +属性名 | 说明 +:-: | :-: +navigateTo | 同 uni.navigateTo() +redirectTo | 同 uni.reLaunch() +reLaunch | 同 uni.reLaunch() +switchTab | 同 uni.switchTab() + +### ListItem Events + +事件称名 |说明 |返回参数 +:-: |:-: |:-: +click |点击 uniListItem 触发事件,需开启点击反馈 |- +switchChange |点击切换 Switch 时触发,需显示 switch |e={value:checked} + + + +### ListItem Slots + +名称 | 说明 +:-: | :-: +header | 左/上内容插槽,可完全自定义默认显示 +body | 中间内容插槽,可完全自定义中间内容 +footer | 右/下内容插槽,可完全自定义右侧内容 + + +> **通过插槽扩展** +> 需要注意的是当使用插槽时,内置样式将会失效,只保留排版样式,此时的样式需要开发者自己实现 +> 如果 `uni-list-item` 组件内置属性样式无法满足需求,可以使用插槽来自定义uni-list-item里的内容。 +> uni-list-item提供了3个可扩展的插槽:`header`、`body`、`footer` +> - 当 `direction` 属性为 `row` 时表示水平排列,此时 `header` 表示列表的左边部分,`body` 表示列表的中间部分,`footer` 表示列表的右边部分 +> - 当 `direction` 属性为 `column` 时表示垂直排列,此时 `header` 表示列表的上边部分,`body` 表示列表的中间部分,`footer` 表示列表的下边部分 +> 开发者可以只用1个插槽,也可以3个一起使用。在插槽中可自主编写view标签,实现自己所需的效果。 + + +**示例** + +```html + + + + + + + + + 自定义插槽 + + + + +``` + + + + + +### ListItemChat Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +title |String |- | 标题 +note |String |- | 描述 +clickable |Boolean |false | 是否开启点击反馈 +badgeText |String |- | 数字角标内容,设置为 `dot` 将显示圆点 +badgePositon |String |right | 角标位置 +link |String |navigateTo | 是否展示右侧箭头并开启点击反馈,可选值见下表 +clickable |Boolean |false | 是否开启点击反馈 +to |String |- | 跳转页面地址,如填写此属性,click 会返回页面是否跳转成功 +time |String |- | 右侧时间显示 +avatarCircle |Boolean |false | 是否显示圆形头像 +avatar |String |- | 头像地址,avatarCircle 不填时生效 +avatarList |Array |- | 头像组,格式为 [{url:''}] + +#### Link Options + +属性名 | 说明 +:-: | :-: +navigateTo | 同 uni.navigateTo() +redirectTo | 同 uni.reLaunch() +reLaunch | 同 uni.reLaunch() +switchTab | 同 uni.switchTab() + +### ListItemChat Slots + +名称 | 说明 +:- | :- +default | 自定义列表右侧内容(包括时间和角标显示) + +### ListItemChat Events +事件称名 | 说明 | 返回参数 +:-: | :-: | :-: +@click | 点击 uniListChat 触发事件 | {data:{}} ,如有 to 属性,会返回页面跳转信息 + + + + + + +## 基于uni-list扩展的页面模板 + +通过扩展插槽,可实现多种常见样式的列表 + +**新闻列表类** + +1. 云端一体混合布局:[https://ext.dcloud.net.cn/plugin?id=2546](https://ext.dcloud.net.cn/plugin?id=2546) +2. 云端一体垂直布局,大图模式:[https://ext.dcloud.net.cn/plugin?id=2583](https://ext.dcloud.net.cn/plugin?id=2583) +3. 云端一体垂直布局,多行图文混排:[https://ext.dcloud.net.cn/plugin?id=2584](https://ext.dcloud.net.cn/plugin?id=2584) +4. 云端一体垂直布局,多图模式:[https://ext.dcloud.net.cn/plugin?id=2585](https://ext.dcloud.net.cn/plugin?id=2585) +5. 云端一体水平布局,左图右文:[https://ext.dcloud.net.cn/plugin?id=2586](https://ext.dcloud.net.cn/plugin?id=2586) +6. 云端一体水平布局,左文右图:[https://ext.dcloud.net.cn/plugin?id=2587](https://ext.dcloud.net.cn/plugin?id=2587) +7. 云端一体垂直布局,无图模式,主标题+副标题:[https://ext.dcloud.net.cn/plugin?id=2588](https://ext.dcloud.net.cn/plugin?id=2588) + +**商品列表类** + +1. 云端一体列表/宫格视图互切:[https://ext.dcloud.net.cn/plugin?id=2651](https://ext.dcloud.net.cn/plugin?id=2651) +2. 云端一体列表(宫格模式):[https://ext.dcloud.net.cn/plugin?id=2671](https://ext.dcloud.net.cn/plugin?id=2671) +3. 云端一体列表(列表模式):[https://ext.dcloud.net.cn/plugin?id=2672](https://ext.dcloud.net.cn/plugin?id=2672) + +## 组件示例 + +点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/list/list](https://hellouniapp.dcloud.net.cn/pages/extUI/list/list) \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-load-more/changelog.md b/supervise-uniapp/uni_modules/uni-load-more/changelog.md new file mode 100644 index 00000000..8f03f1d5 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-load-more/changelog.md @@ -0,0 +1,19 @@ +## 1.3.3(2022-01-20) +- 新增 showText属性 ,是否显示文本 +## 1.3.2(2022-01-19) +- 修复 nvue 平台下不显示文本的bug +## 1.3.1(2022-01-19) +- 修复 微信小程序平台样式选择器报警告的问题 +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-load-more](https://uniapp.dcloud.io/component/uniui/uni-load-more) +## 1.2.1(2021-08-24) +- 新增 支持国际化 +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.8(2021-05-12) +- 新增 组件示例地址 +## 1.1.7(2021-03-30) +- 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug +## 1.1.6(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json b/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json new file mode 100644 index 00000000..a4f14a54 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "Pull up to show more", + "uni-load-more.contentrefresh": "loading...", + "uni-load-more.contentnomore": "No more data" +} diff --git a/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js b/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js new file mode 100644 index 00000000..de7509c8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json b/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json new file mode 100644 index 00000000..f15d5105 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "上拉显示更多", + "uni-load-more.contentrefresh": "正在加载...", + "uni-load-more.contentnomore": "没有更多数据了" +} diff --git a/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json b/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json new file mode 100644 index 00000000..a255c6de --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "上拉顯示更多", + "uni-load-more.contentrefresh": "正在加載...", + "uni-load-more.contentnomore": "沒有更多數據了" +} diff --git a/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue b/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue new file mode 100644 index 00000000..e5eff4d6 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue @@ -0,0 +1,399 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-load-more/package.json b/supervise-uniapp/uni_modules/uni-load-more/package.json new file mode 100644 index 00000000..2fa6f040 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-load-more/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-load-more", + "displayName": "uni-load-more 加载更多", + "version": "1.3.3", + "description": "LoadMore 组件,常用在列表里面,做滚动加载使用。", + "keywords": [ + "uni-ui", + "uniui", + "加载更多", + "load-more" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-load-more/readme.md b/supervise-uniapp/uni_modules/uni-load-more/readme.md new file mode 100644 index 00000000..54dc1fad --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-load-more/readme.md @@ -0,0 +1,14 @@ + + +### LoadMore 加载更多 +> **组件名:uni-load-more** +> 代码块: `uLoadMore` + + +用于列表中,做滚动加载使用,展示 loading 的各种状态。 + + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-load-more) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/supervise-uniapp/uni_modules/uni-nav-bar/changelog.md b/supervise-uniapp/uni_modules/uni-nav-bar/changelog.md new file mode 100644 index 00000000..4ff224d2 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-nav-bar/changelog.md @@ -0,0 +1,47 @@ +## 1.3.9(2022-10-13) +- 修复 条件编译错误的bug +## 1.3.8(2022-10-12) +- 修复 nvue 环境 fixed 为 true 的情况下,无法置顶的 bug +## 1.3.7(2022-08-11) +- 修复 nvue 环境下 fixed 为 true 的情况下,无法置顶的 bug +## 1.3.6(2022-06-30) +- 修复 组件示例中插槽用法无法显示内容的bug +## 1.3.5(2022-05-24) +- 新增 stat 属性 ,可开启统计title 上报 ,仅使用了title 属性且项目开启了uni统计生效 +## 1.3.4(2022-01-24) +- 更新 组件示例 +## 1.3.3(2022-01-24) +- 新增 left-width/right-width属性 ,可修改左右两侧的宽度 +## 1.3.2(2022-01-18) +- 修复 在vue下,标题不垂直居中的bug +## 1.3.1(2022-01-18) +- 修复 height 属性类型错误 +## 1.3.0(2022-01-18) +- 新增 height 属性,可修改组件高度 +- 新增 dark 属性可可开启暗黑模式 +- 优化 标题字数过多显示省略号 +- 优化 插槽,插入内容可完全覆盖 +## 1.2.1(2022-01-10) +- 修复 color 属性不生效的bug +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-nav-bar](https://uniapp.dcloud.io/component/uniui/uni-nav-bar) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.11(2021-05-12) +- 新增 组件示例地址 +## 1.0.10(2021-04-30) +- 修复 在nvue下fixed为true,宽度不能撑满的Bug +## 1.0.9(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.8(2021-04-14) +- uni-ui 修复 uni-nav-bar 当 fixed 属性为 true 时铺不满屏幕的 bug + +## 1.0.7(2021-02-25) +- 修复 easycom 下,找不到 uni-status-bar 的bug + +## 1.0.6(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue b/supervise-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue new file mode 100644 index 00000000..2394ceac --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue @@ -0,0 +1,357 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue b/supervise-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue new file mode 100644 index 00000000..6a688744 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-nav-bar/package.json b/supervise-uniapp/uni_modules/uni-nav-bar/package.json new file mode 100644 index 00000000..e4f5e294 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-nav-bar/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-nav-bar", + "displayName": "uni-nav-bar 自定义导航栏", + "version": "1.3.9", + "description": "自定义导航栏组件,主要用于头部导航。", + "keywords": [ + "uni-ui", + "导航", + "导航栏", + "自定义导航栏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-nav-bar/readme.md b/supervise-uniapp/uni_modules/uni-nav-bar/readme.md new file mode 100644 index 00000000..3934b327 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-nav-bar/readme.md @@ -0,0 +1,15 @@ + + +## NavBar 导航栏 +> **组件名:uni-nav-bar** +> 代码块: `uNavBar` + +导航栏组件,主要用于头部导航。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-nav-bar) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + + diff --git a/supervise-uniapp/uni_modules/uni-notice-bar/changelog.md b/supervise-uniapp/uni_modules/uni-notice-bar/changelog.md new file mode 100644 index 00000000..d5268115 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-notice-bar/changelog.md @@ -0,0 +1,18 @@ +## 1.2.1(2022-09-05) +- 新增 属性 fontSize,可修改文字大小。 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-notice-bar](https://uniapp.dcloud.io/component/uniui/uni-notice-bar) +## 1.1.1(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.9(2021-05-12) +- 新增 组件示例地址 +## 1.0.8(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.7(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.6(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue b/supervise-uniapp/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue new file mode 100644 index 00000000..98d4720c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue @@ -0,0 +1,426 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-notice-bar/package.json b/supervise-uniapp/uni_modules/uni-notice-bar/package.json new file mode 100644 index 00000000..8d9b13cd --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-notice-bar/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-notice-bar", + "displayName": "uni-notice-bar 通告栏", + "version": "1.2.1", + "description": "NoticeBar 通告栏组件,常用于展示公告信息,可设为滚动公告", + "keywords": [ + "uni-ui", + "uniui", + "通告栏", + "公告", + "跑马灯" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-notice-bar/readme.md b/supervise-uniapp/uni_modules/uni-notice-bar/readme.md new file mode 100644 index 00000000..fb2ede24 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-notice-bar/readme.md @@ -0,0 +1,13 @@ + + +## NoticeBar 通告栏 +> **组件名:uni-notice-bar** +> 代码块: `uNoticeBar` + + +通告栏组件 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-notice-bar) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/supervise-uniapp/uni_modules/uni-number-box/changelog.md b/supervise-uniapp/uni_modules/uni-number-box/changelog.md new file mode 100644 index 00000000..5925c32a --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-number-box/changelog.md @@ -0,0 +1,25 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-number-box](https://uniapp.dcloud.io/component/uniui/uni-number-box) +## 1.1.2(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-04-20) +- 修复 uni-number-box 浮点数运算不精确的 bug +- 修复 uni-number-box change 事件触发不正确的 bug +- 新增 uni-number-box v-model 双向绑定 +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 + +## 1.0.7(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持 v-model +- 新增 支持 focus、blur 事件 +- 新增 支持 PC 端 diff --git a/supervise-uniapp/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue b/supervise-uniapp/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue new file mode 100644 index 00000000..e91c0321 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue @@ -0,0 +1,221 @@ + + + diff --git a/supervise-uniapp/uni_modules/uni-number-box/package.json b/supervise-uniapp/uni_modules/uni-number-box/package.json new file mode 100644 index 00000000..ad823368 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-number-box/package.json @@ -0,0 +1,85 @@ +{ + "id": "uni-number-box", + "displayName": "uni-number-box 数字输入框", + "version": "1.2.1", + "description": "NumberBox 带加减按钮的数字输入框组件,用户可以控制每次点击增加的数值,支持小数。", + "keywords": [ + "uni-ui", + "uniui", + "数字输入框" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-number-box/readme.md b/supervise-uniapp/uni_modules/uni-number-box/readme.md new file mode 100644 index 00000000..affc56fa --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-number-box/readme.md @@ -0,0 +1,13 @@ + + +## NumberBox 数字输入框 +> **组件名:uni-number-box** +> 代码块: `uNumberBox` + + +带加减按钮的数字输入框。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-number-box) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/supervise-uniapp/uni_modules/uni-pagination/changelog.md b/supervise-uniapp/uni_modules/uni-pagination/changelog.md new file mode 100644 index 00000000..2e94adc4 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-pagination/changelog.md @@ -0,0 +1,27 @@ +## 1.2.4(2022-09-19) +- 修复,未对主题色设置默认色,导致未引入 uni-scss 变量文件报错。 +- 修复,未对移动端当前页文字做主题色适配。 +## 1.2.3(2022-09-15) +- 修复未使用 uni-scss 主题色的 bug。 +## 1.2.2(2022-07-06) +- 修复 es 语言 i18n 错误 +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-pagination](https://uniapp.dcloud.io/component/uniui/uni-pagination) +## 1.1.2(2021-10-08) +- 修复 current 、value 属性未监听,导致高亮样式失效的 bug +## 1.1.1(2021-08-20) +- 新增 支持国际化 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-04-12) +- 新增 PC 和 移动端适配不同的 ui +## 1.0.5(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json new file mode 100644 index 00000000..d6e28977 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json @@ -0,0 +1,5 @@ +{ + "uni-pagination.prevText": "prev", + "uni-pagination.nextText": "next", + "uni-pagination.piecePerPage": "piece/page" +} diff --git a/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json new file mode 100644 index 00000000..604a1138 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json @@ -0,0 +1,5 @@ +{ + "uni-pagination.prevText": "anterior", + "uni-pagination.nextText": "prxima", + "uni-pagination.piecePerPage": "Artculo/Pgina" +} diff --git a/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json new file mode 100644 index 00000000..a7a0c774 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json @@ -0,0 +1,5 @@ +{ + "uni-pagination.prevText": "précédente", + "uni-pagination.nextText": "suivante", + "uni-pagination.piecePerPage": "Articles/Pages" +} diff --git a/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js new file mode 100644 index 00000000..2469dd02 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js @@ -0,0 +1,12 @@ +import en from './en.json' +import es from './es.json' +import fr from './fr.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + es, + fr, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json new file mode 100644 index 00000000..782bbe4a --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json @@ -0,0 +1,5 @@ +{ + "uni-pagination.prevText": "上一页", + "uni-pagination.nextText": "下一页", + "uni-pagination.piecePerPage": "条/页" +} diff --git a/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json new file mode 100644 index 00000000..180fddbd --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json @@ -0,0 +1,5 @@ +{ + "uni-pagination.prevText": "上一頁", + "uni-pagination.nextText": "下一頁", + "uni-pagination.piecePerPage": "條/頁" +} diff --git a/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue new file mode 100644 index 00000000..5305b5f1 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue @@ -0,0 +1,465 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-pagination/package.json b/supervise-uniapp/uni_modules/uni-pagination/package.json new file mode 100644 index 00000000..862d5abd --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-pagination/package.json @@ -0,0 +1,83 @@ +{ + "id": "uni-pagination", + "displayName": "uni-pagination 分页器", + "version": "1.2.4", + "description": "Pagination 分页器组件,用于展示页码、请求数据等。", + "keywords": [ + "uni-ui", + "uniui", + "分页器", + "页码" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-pagination/readme.md b/supervise-uniapp/uni_modules/uni-pagination/readme.md new file mode 100644 index 00000000..97ea1d63 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-pagination/readme.md @@ -0,0 +1,11 @@ + + +## Pagination 分页器 +> **组件名:uni-pagination** +> 代码块: `uPagination` + + +分页器组件,用于展示页码、请求数据等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-pagination) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/supervise-uniapp/uni_modules/uni-popup/changelog.md b/supervise-uniapp/uni_modules/uni-popup/changelog.md new file mode 100644 index 00000000..a9e2d668 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/changelog.md @@ -0,0 +1,60 @@ +## 1.7.9(2022-04-02) +- 修复 弹出层内部无法滚动的bug +## 1.7.8(2022-03-28) +- 修复 小程序中高度错误的bug +## 1.7.7(2022-03-17) +- 修复 快速调用open出现问题的Bug +## 1.7.6(2022-02-14) +- 修复 safeArea 属性不能设置为false的bug +## 1.7.5(2022-01-19) +- 修复 isMaskClick 失效的bug +## 1.7.4(2022-01-19) +- 新增 cancelText \ confirmText 属性 ,可自定义文本 +- 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色 +- 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题 +## 1.7.3(2022-01-13) +- 修复 设置 safeArea 属性不生效的bug +## 1.7.2(2021-11-26) +- 优化 组件示例 +## 1.7.1(2021-11-26) +- 修复 vuedoc 文字错误 +## 1.7.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-popup](https://uniapp.dcloud.io/component/uniui/uni-popup) +## 1.6.2(2021-08-24) +- 新增 支持国际化 +## 1.6.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.6.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.5.0(2021-06-23) +- 新增 mask-click 遮罩层点击事件 +## 1.4.5(2021-06-22) +- 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +## 1.4.4(2021-06-18) +- 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +## 1.4.3(2021-06-08) +- 修复 错误的 watch 字段 +- 修复 safeArea 属性不生效的问题 +- 修复 点击内容,再点击遮罩无法关闭的Bug +## 1.4.2(2021-05-12) +- 新增 组件示例地址 +## 1.4.1(2021-04-29) +- 修复 组件内放置 input 、textarea 组件,无法聚焦的问题 +## 1.4.0 (2021-04-29) +- 新增 type 属性的 left\right 值,支持左右弹出 +- 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗 +- 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色 +- 新增 safeArea 属性,是否适配底部安全区 +- 修复 App\h5\微信小程序底部安全区占位不对的Bug +- 修复 App 端弹出等待的Bug +- 优化 提升低配设备性能,优化动画卡顿问题 +- 优化 更简单的组件自定义方式 +## 1.2.9(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.2.8(2021-02-05) +- 调整为uni_modules目录规范 +## 1.2.7(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持 PC 端 +- 新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端 diff --git a/supervise-uniapp/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js new file mode 100644 index 00000000..6ef26a26 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('keyup', listener) + }) + }, + render: () => {} +} +// #endif diff --git a/supervise-uniapp/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue new file mode 100644 index 00000000..a5d0f2a2 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue new file mode 100644 index 00000000..91370a82 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue @@ -0,0 +1,143 @@ + + + + diff --git a/supervise-uniapp/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue new file mode 100644 index 00000000..5be76247 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue @@ -0,0 +1,187 @@ + + + + diff --git a/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/en.json b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/en.json new file mode 100644 index 00000000..7f1bd06a --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/en.json @@ -0,0 +1,7 @@ +{ + "uni-popup.cancel": "cancel", + "uni-popup.ok": "ok", + "uni-popup.placeholder": "pleace enter", + "uni-popup.title": "Hint", + "uni-popup.shareTitle": "Share to" +} diff --git a/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/index.js b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/index.js new file mode 100644 index 00000000..de7509c8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json new file mode 100644 index 00000000..5e3003ca --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json @@ -0,0 +1,7 @@ +{ + "uni-popup.cancel": "取消", + "uni-popup.ok": "确定", + "uni-popup.placeholder": "请输入", + "uni-popup.title": "提示", + "uni-popup.shareTitle": "分享到" +} diff --git a/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json new file mode 100644 index 00000000..13e39eba --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json @@ -0,0 +1,7 @@ +{ + "uni-popup.cancel": "取消", + "uni-popup.ok": "確定", + "uni-popup.placeholder": "請輸入", + "uni-popup.title": "提示", + "uni-popup.shareTitle": "分享到" +} diff --git a/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/keypress.js b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/keypress.js new file mode 100644 index 00000000..62dda461 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + // this.$once('hook:beforeDestroy', () => { + // document.removeEventListener('keyup', listener) + // }) + }, + render: () => {} +} +// #endif diff --git a/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/popup.js b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/popup.js new file mode 100644 index 00000000..c4e5781d --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/popup.js @@ -0,0 +1,26 @@ + +export default { + data() { + return { + + } + }, + created(){ + this.popup = this.getParent() + }, + methods:{ + /** + * 获取父元素实例 + */ + getParent(name = 'uniPopup') { + let parent = this.$parent; + let parentName = parent.$options.name; + while (parentName !== name) { + parent = parent.$parent; + if (!parent) return false + parentName = parent.$options.name; + } + return parent; + }, + } +} diff --git a/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/uni-popup.vue b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/uni-popup.vue new file mode 100644 index 00000000..89525458 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/components/uni-popup/uni-popup.vue @@ -0,0 +1,479 @@ + + + + diff --git a/supervise-uniapp/uni_modules/uni-popup/package.json b/supervise-uniapp/uni_modules/uni-popup/package.json new file mode 100644 index 00000000..069e9ce5 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-popup", + "displayName": "uni-popup 弹出层", + "version": "1.7.9", + "description": " Popup 组件,提供常用的弹层", + "keywords": [ + "uni-ui", + "弹出层", + "弹窗", + "popup", + "弹框" + ], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-transition" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-popup/readme.md b/supervise-uniapp/uni_modules/uni-popup/readme.md new file mode 100644 index 00000000..fdad4b3d --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-popup/readme.md @@ -0,0 +1,17 @@ + + +## Popup 弹出层 +> **组件名:uni-popup** +> 代码块: `uPopup` +> 关联组件:`uni-transition` + + +弹出层组件,在应用中弹出一个消息提示窗口、提示框等 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-popup) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + + diff --git a/supervise-uniapp/uni_modules/uni-rate/changelog.md b/supervise-uniapp/uni_modules/uni-rate/changelog.md new file mode 100644 index 00000000..8a98a612 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-rate/changelog.md @@ -0,0 +1,25 @@ +## 1.3.1(2022-02-25) +- 修复 条件判断 `NaN` 错误的 bug +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-rate](https://uniapp.dcloud.io/component/uniui/uni-rate) +## 1.2.2(2021-09-10) +- 优化 默认值修改为 0 颗星 +## 1.2.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.2(2021-05-12) +- 新增 组件示例地址 +## 1.1.1(2021-04-21) +- 修复 布局变化后 uni-rate 星星计算不准确的 bug +- 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖 +## 1.1.0(2021-04-16) +- 修复 uni-rate 属性 margin 值为 string 组件失效的 bug + +## 1.0.9(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.8(2021-02-05) +- 调整为uni_modules目录规范 +- 支持 pc 端 diff --git a/supervise-uniapp/uni_modules/uni-rate/components/uni-rate/uni-rate.vue b/supervise-uniapp/uni_modules/uni-rate/components/uni-rate/uni-rate.vue new file mode 100644 index 00000000..857f5f9c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-rate/components/uni-rate/uni-rate.vue @@ -0,0 +1,361 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-rate/package.json b/supervise-uniapp/uni_modules/uni-rate/package.json new file mode 100644 index 00000000..64e8e332 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-rate/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-rate", + "displayName": "uni-rate 评分", + "version": "1.3.1", + "description": "Rate 评分组件,可自定义评分星星图标的大小、间隔、评分数。", + "keywords": [ + "uni-ui", + "uniui", + "评分" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-rate/readme.md b/supervise-uniapp/uni_modules/uni-rate/readme.md new file mode 100644 index 00000000..eae7b5ce --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-rate/readme.md @@ -0,0 +1,12 @@ + + +## Rate 评分 +> **组件名:uni-rate** +> 代码块: `uRate` +> 关联组件:`uni-icons` + + +评分组件,多用于购买商品后,对商品进行评价等场景 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-rate) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-row/changelog.md b/supervise-uniapp/uni_modules/uni-row/changelog.md new file mode 100644 index 00000000..5b465bc6 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-row/changelog.md @@ -0,0 +1,10 @@ +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-row](https://uniapp.dcloud.io/component/uniui/uni-row) +## 0.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.0.4(2021-05-12) +- 新增 组件示例地址 +## 0.0.3(2021-02-05) +- 调整为uni_modules目录规范 +- 新增uni-row组件 diff --git a/supervise-uniapp/uni_modules/uni-row/components/uni-col/uni-col.vue b/supervise-uniapp/uni_modules/uni-row/components/uni-col/uni-col.vue new file mode 100644 index 00000000..d5f37283 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-row/components/uni-col/uni-col.vue @@ -0,0 +1,317 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-row/components/uni-row/uni-row.vue b/supervise-uniapp/uni_modules/uni-row/components/uni-row/uni-row.vue new file mode 100644 index 00000000..c7d93701 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-row/components/uni-row/uni-row.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-row/package.json b/supervise-uniapp/uni_modules/uni-row/package.json new file mode 100644 index 00000000..3f52fa64 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-row/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-row", + "displayName": "uni-row 布局-行", + "version": "1.0.0", + "description": "流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。", + "keywords": [ + "uni-ui", + "uniui", + "栅格", + "布局", + "layout" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "u" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-row/readme.md b/supervise-uniapp/uni_modules/uni-row/readme.md new file mode 100644 index 00000000..3c9c8b99 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-row/readme.md @@ -0,0 +1,10 @@ +## Layout 布局 + +> **组件名 uni-row、uni-col** +> 代码块: `uRow`、`uCol` + + +流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-row) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-scss/changelog.md b/supervise-uniapp/uni_modules/uni-scss/changelog.md new file mode 100644 index 00000000..b863bb0f --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/changelog.md @@ -0,0 +1,8 @@ +## 1.0.3(2022-01-21) +- 优化 组件示例 +## 1.0.2(2021-11-22) +- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 +## 1.0.1(2021-11-22) +- 修复 vue3中scss语法兼容问题 +## 1.0.0(2021-11-18) +- init diff --git a/supervise-uniapp/uni_modules/uni-scss/index.scss b/supervise-uniapp/uni_modules/uni-scss/index.scss new file mode 100644 index 00000000..1744a5f9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/index.scss @@ -0,0 +1 @@ +@import './styles/index.scss'; diff --git a/supervise-uniapp/uni_modules/uni-scss/package.json b/supervise-uniapp/uni_modules/uni-scss/package.json new file mode 100644 index 00000000..7cc0ccb7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/package.json @@ -0,0 +1,82 @@ +{ + "id": "uni-scss", + "displayName": "uni-scss 辅助样式", + "version": "1.0.3", + "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", + "keywords": [ + "uni-scss", + "uni-ui", + "辅助样式" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "JS SDK", + "通用 SDK" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-scss/readme.md b/supervise-uniapp/uni_modules/uni-scss/readme.md new file mode 100644 index 00000000..b7d1c25f --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/readme.md @@ -0,0 +1,4 @@ +`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-scss/styles/index.scss b/supervise-uniapp/uni_modules/uni-scss/styles/index.scss new file mode 100644 index 00000000..ffac4fec --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/styles/index.scss @@ -0,0 +1,7 @@ +@import './setting/_variables.scss'; +@import './setting/_border.scss'; +@import './setting/_color.scss'; +@import './setting/_space.scss'; +@import './setting/_radius.scss'; +@import './setting/_text.scss'; +@import './setting/_styles.scss'; diff --git a/supervise-uniapp/uni_modules/uni-scss/styles/setting/_border.scss b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_border.scss new file mode 100644 index 00000000..12a11c32 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_border.scss @@ -0,0 +1,3 @@ +.uni-border { + border: 1px $uni-border-1 solid; +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-scss/styles/setting/_color.scss b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_color.scss new file mode 100644 index 00000000..1ededd94 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_color.scss @@ -0,0 +1,66 @@ + +// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 +// @mixin get-styles($k,$c) { +// @if $k == size or $k == weight{ +// font-#{$k}:#{$c} +// }@else{ +// #{$k}:#{$c} +// } +// } +$uni-ui-color:( + // 主色 + primary: $uni-primary, + primary-disable: $uni-primary-disable, + primary-light: $uni-primary-light, + // 辅助色 + success: $uni-success, + success-disable: $uni-success-disable, + success-light: $uni-success-light, + warning: $uni-warning, + warning-disable: $uni-warning-disable, + warning-light: $uni-warning-light, + error: $uni-error, + error-disable: $uni-error-disable, + error-light: $uni-error-light, + info: $uni-info, + info-disable: $uni-info-disable, + info-light: $uni-info-light, + // 中性色 + main-color: $uni-main-color, + base-color: $uni-base-color, + secondary-color: $uni-secondary-color, + extra-color: $uni-extra-color, + // 背景色 + bg-color: $uni-bg-color, + // 边框颜色 + border-1: $uni-border-1, + border-2: $uni-border-2, + border-3: $uni-border-3, + border-4: $uni-border-4, + // 黑色 + black:$uni-black, + // 白色 + white:$uni-white, + // 透明 + transparent:$uni-transparent +) !default; +@each $key, $child in $uni-ui-color { + .uni-#{"" + $key} { + color: $child; + } + .uni-#{"" + $key}-bg { + background-color: $child; + } +} +.uni-shadow-sm { + box-shadow: $uni-shadow-sm; +} +.uni-shadow-base { + box-shadow: $uni-shadow-base; +} +.uni-shadow-lg { + box-shadow: $uni-shadow-lg; +} +.uni-mask { + background-color:$uni-mask; +} diff --git a/supervise-uniapp/uni_modules/uni-scss/styles/setting/_radius.scss b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_radius.scss new file mode 100644 index 00000000..9a0428bb --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_radius.scss @@ -0,0 +1,55 @@ +@mixin radius($r,$d:null ,$important: false){ + $radius-value:map-get($uni-radius, $r) if($important, !important, null); + // Key exists within the $uni-radius variable + @if (map-has-key($uni-radius, $r) and $d){ + @if $d == t { + border-top-left-radius:$radius-value; + border-top-right-radius:$radius-value; + }@else if $d == r { + border-top-right-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == b { + border-bottom-left-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == l { + border-top-left-radius:$radius-value; + border-bottom-left-radius:$radius-value; + }@else if $d == tl { + border-top-left-radius:$radius-value; + }@else if $d == tr { + border-top-right-radius:$radius-value; + }@else if $d == br { + border-bottom-right-radius:$radius-value; + }@else if $d == bl { + border-bottom-left-radius:$radius-value; + } + }@else{ + border-radius:$radius-value; + } +} + +@each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $key} { + @include radius($key) + } + }@else{ + .uni-radius { + @include radius($key) + } + } +} + +@each $direction in t, r, b, l,tl, tr, br, bl { + @each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $direction}-#{"" + $key} { + @include radius($key,$direction,false) + } + }@else{ + .uni-radius-#{$direction} { + @include radius($key,$direction,false) + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-scss/styles/setting/_space.scss b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_space.scss new file mode 100644 index 00000000..3c895289 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_space.scss @@ -0,0 +1,56 @@ + +@mixin fn($space,$direction,$size,$n) { + @if $n { + #{$space}-#{$direction}: #{$size*$uni-space-root}px + } @else { + #{$space}-#{$direction}: #{-$size*$uni-space-root}px + } +} +@mixin get-styles($direction,$i,$space,$n){ + @if $direction == t { + @include fn($space, top,$i,$n); + } + @if $direction == r { + @include fn($space, right,$i,$n); + } + @if $direction == b { + @include fn($space, bottom,$i,$n); + } + @if $direction == l { + @include fn($space, left,$i,$n); + } + @if $direction == x { + @include fn($space, left,$i,$n); + @include fn($space, right,$i,$n); + } + @if $direction == y { + @include fn($space, top,$i,$n); + @include fn($space, bottom,$i,$n); + } + @if $direction == a { + @if $n { + #{$space}:#{$i*$uni-space-root}px; + } @else { + #{$space}:#{-$i*$uni-space-root}px; + } + } +} + +@each $orientation in m,p { + $space: margin; + @if $orientation == m { + $space: margin; + } @else { + $space: padding; + } + @for $i from 0 through 16 { + @each $direction in t, r, b, l, x, y, a { + .uni-#{$orientation}#{$direction}-#{$i} { + @include get-styles($direction,$i,$space,true); + } + .uni-#{$orientation}#{$direction}-n#{$i} { + @include get-styles($direction,$i,$space,false); + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-scss/styles/setting/_styles.scss b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_styles.scss new file mode 100644 index 00000000..689afec6 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_styles.scss @@ -0,0 +1,167 @@ +/* #ifndef APP-NVUE */ + +$-color-white:#fff; +$-color-black:#000; +@mixin base-style($color) { + color: #fff; + background-color: $color; + border-color: mix($-color-black, $color, 8%); + &:not([hover-class]):active { + background: mix($-color-black, $color, 10%); + border-color: mix($-color-black, $color, 20%); + color: $-color-white; + outline: none; + } +} +@mixin is-color($color) { + @include base-style($color); + &[loading] { + @include base-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &[loading], + &:not([hover-class]):active { + color: $-color-white; + border-color: mix(darken($color,10%), $-color-white); + background-color: mix($color, $-color-white); + } + } + +} +@mixin base-plain-style($color) { + color:$color; + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 70%); + &:not([hover-class]):active { + background: mix($-color-white, $color, 80%); + color: $color; + outline: none; + border-color: mix($-color-white, $color, 50%); + } +} +@mixin is-plain($color){ + &[plain] { + @include base-plain-style($color); + &[loading] { + @include base-plain-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &:active { + color: mix($-color-white, $color, 40%); + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 80%); + } + } + } +} + + +.uni-btn { + margin: 5px; + color: #393939; + border:1px solid #ccc; + font-size: 16px; + font-weight: 200; + background-color: #F9F9F9; + // TODO 暂时处理边框隐藏一边的问题 + overflow: visible; + &::after{ + border: none; + } + + &:not([type]),&[type=default] { + color: #999; + &[loading] { + background: none; + &::before { + margin-right:5px; + } + } + + + + &[disabled]{ + color: mix($-color-white, #999, 60%); + &, + &[loading], + &:active { + color: mix($-color-white, #999, 60%); + background-color: mix($-color-white,$-color-black , 98%); + border-color: mix($-color-white, #999, 85%); + } + } + + &[plain] { + color: #999; + background: none; + border-color: $uni-border-1; + &:not([hover-class]):active { + background: none; + color: mix($-color-white, $-color-black, 80%); + border-color: mix($-color-white, $-color-black, 90%); + outline: none; + } + &[disabled]{ + &, + &[loading], + &:active { + background: none; + color: mix($-color-white, #999, 60%); + border-color: mix($-color-white, #999, 85%); + } + } + } + } + + &:not([hover-class]):active { + color: mix($-color-white, $-color-black, 50%); + } + + &[size=mini] { + font-size: 16px; + font-weight: 200; + border-radius: 8px; + } + + + + &.uni-btn-small { + font-size: 14px; + } + &.uni-btn-mini { + font-size: 12px; + } + + &.uni-btn-radius { + border-radius: 999px; + } + &[type=primary] { + @include is-color($uni-primary); + @include is-plain($uni-primary) + } + &[type=success] { + @include is-color($uni-success); + @include is-plain($uni-success) + } + &[type=error] { + @include is-color($uni-error); + @include is-plain($uni-error) + } + &[type=warning] { + @include is-color($uni-warning); + @include is-plain($uni-warning) + } + &[type=info] { + @include is-color($uni-info); + @include is-plain($uni-info) + } +} +/* #endif */ diff --git a/supervise-uniapp/uni_modules/uni-scss/styles/setting/_text.scss b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_text.scss new file mode 100644 index 00000000..a34d08f3 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_text.scss @@ -0,0 +1,24 @@ +@mixin get-styles($k,$c) { + @if $k == size or $k == weight{ + font-#{$k}:#{$c} + }@else{ + #{$k}:#{$c} + } +} + +@each $key, $child in $uni-headings { + /* #ifndef APP-NVUE */ + .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ + /* #ifdef APP-NVUE */ + .container .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ +} diff --git a/supervise-uniapp/uni_modules/uni-scss/styles/setting/_variables.scss b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_variables.scss new file mode 100644 index 00000000..557d3d7c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/styles/setting/_variables.scss @@ -0,0 +1,146 @@ +// @use "sass:math"; +@import '../tools/functions.scss'; +// 间距基础倍数 +$uni-space-root: 2 !default; +// 边框半径默认值 +$uni-radius-root:5px !default; +$uni-radius: () !default; +// 边框半径断点 +$uni-radius: map-deep-merge( + ( + 0: 0, + // TODO 当前版本暂时不支持 sm 属性 + // 'sm': math.div($uni-radius-root, 2), + null: $uni-radius-root, + 'lg': $uni-radius-root * 2, + 'xl': $uni-radius-root * 6, + 'pill': 9999px, + 'circle': 50% + ), + $uni-radius +); +// 字体家族 +$body-font-family: 'Roboto', sans-serif !default; +// 文本 +$heading-font-family: $body-font-family !default; +$uni-headings: () !default; +$letterSpacing: -0.01562em; +$uni-headings: map-deep-merge( + ( + 'h1': ( + size: 32px, + weight: 300, + line-height: 50px, + // letter-spacing:-0.01562em + ), + 'h2': ( + size: 28px, + weight: 300, + line-height: 40px, + // letter-spacing: -0.00833em + ), + 'h3': ( + size: 24px, + weight: 400, + line-height: 32px, + // letter-spacing: normal + ), + 'h4': ( + size: 20px, + weight: 400, + line-height: 30px, + // letter-spacing: 0.00735em + ), + 'h5': ( + size: 16px, + weight: 400, + line-height: 24px, + // letter-spacing: normal + ), + 'h6': ( + size: 14px, + weight: 500, + line-height: 18px, + // letter-spacing: 0.0125em + ), + 'subtitle': ( + size: 12px, + weight: 400, + line-height: 20px, + // letter-spacing: 0.00937em + ), + 'body': ( + font-size: 14px, + font-weight: 400, + line-height: 22px, + // letter-spacing: 0.03125em + ), + 'caption': ( + 'size': 12px, + 'weight': 400, + 'line-height': 20px, + // 'letter-spacing': 0.03333em, + // 'text-transform': false + ) + ), + $uni-headings +); + + + +// 主色 +$uni-primary: #2979ff !default; +$uni-primary-disable:lighten($uni-primary,20%) !default; +$uni-primary-light: lighten($uni-primary,25%) !default; + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37 !default; +$uni-success-disable:lighten($uni-success,20%) !default; +$uni-success-light: lighten($uni-success,25%) !default; + +$uni-warning: #f3a73f !default; +$uni-warning-disable:lighten($uni-warning,20%) !default; +$uni-warning-light: lighten($uni-warning,25%) !default; + +$uni-error: #e43d33 !default; +$uni-error-disable:lighten($uni-error,20%) !default; +$uni-error-light: lighten($uni-error,25%) !default; + +$uni-info: #8f939c !default; +$uni-info-disable:lighten($uni-info,20%) !default; +$uni-info-light: lighten($uni-info,25%) !default; + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a !default; // 主要文字 +$uni-base-color: #6a6a6a !default; // 常规文字 +$uni-secondary-color: #909399 !default; // 次要文字 +$uni-extra-color: #c7c7c7 !default; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0 !default; +$uni-border-2: #EDEDED !default; +$uni-border-3: #DCDCDC !default; +$uni-border-4: #B9B9B9 !default; + +// 常规色 +$uni-black: #000000 !default; +$uni-white: #ffffff !default; +$uni-transparent: rgba($color: #000000, $alpha: 0) !default; + +// 背景色 +$uni-bg-color: #f7f7f7 !default; + +/* 水平间距 */ +$uni-spacing-sm: 8px !default; +$uni-spacing-base: 15px !default; +$uni-spacing-lg: 30px !default; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4) !default; diff --git a/supervise-uniapp/uni_modules/uni-scss/styles/tools/functions.scss b/supervise-uniapp/uni_modules/uni-scss/styles/tools/functions.scss new file mode 100644 index 00000000..ac6f63e5 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/styles/tools/functions.scss @@ -0,0 +1,19 @@ +// 合并 map +@function map-deep-merge($parent-map, $child-map){ + $result: $parent-map; + @each $key, $child in $child-map { + $parent-has-key: map-has-key($result, $key); + $parent-value: map-get($result, $key); + $parent-type: type-of($parent-value); + $child-type: type-of($child); + $parent-is-map: $parent-type == map; + $child-is-map: $child-type == map; + + @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ + $result: map-merge($result, ( $key: $child )); + }@else { + $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); + } + } + @return $result; +}; diff --git a/supervise-uniapp/uni_modules/uni-scss/theme.scss b/supervise-uniapp/uni_modules/uni-scss/theme.scss new file mode 100644 index 00000000..80ee62f7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/theme.scss @@ -0,0 +1,31 @@ +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; +// 主色 +$uni-primary: #2979ff; +// 辅助色 +$uni-success: #4cd964; +// 警告色 +$uni-warning: #f0ad4e; +// 错误色 +$uni-error: #dd524d; +// 描述色 +$uni-info: #909399; +// 中性色 +$uni-main-color: #303133; +$uni-base-color: #606266; +$uni-secondary-color: #909399; +$uni-extra-color: #C0C4CC; +// 背景色 +$uni-bg-color: #f5f5f5; +// 边框颜色 +$uni-border-1: #DCDFE6; +$uni-border-2: #E4E7ED; +$uni-border-3: #EBEEF5; +$uni-border-4: #F2F6FC; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); diff --git a/supervise-uniapp/uni_modules/uni-scss/variables.scss b/supervise-uniapp/uni_modules/uni-scss/variables.scss new file mode 100644 index 00000000..1c062d42 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-scss/variables.scss @@ -0,0 +1,62 @@ +@import './styles/setting/_variables.scss'; +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; + +// 主色 +$uni-primary: #2979ff; +$uni-primary-disable:mix(#fff,$uni-primary,50%); +$uni-primary-light: mix(#fff,$uni-primary,80%); + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37; +$uni-success-disable:mix(#fff,$uni-success,50%); +$uni-success-light: mix(#fff,$uni-success,80%); + +$uni-warning: #f3a73f; +$uni-warning-disable:mix(#fff,$uni-warning,50%); +$uni-warning-light: mix(#fff,$uni-warning,80%); + +$uni-error: #e43d33; +$uni-error-disable:mix(#fff,$uni-error,50%); +$uni-error-light: mix(#fff,$uni-error,80%); + +$uni-info: #8f939c; +$uni-info-disable:mix(#fff,$uni-info,50%); +$uni-info-light: mix(#fff,$uni-info,80%); + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a; // 主要文字 +$uni-base-color: #6a6a6a; // 常规文字 +$uni-secondary-color: #909399; // 次要文字 +$uni-extra-color: #c7c7c7; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0; +$uni-border-2: #EDEDED; +$uni-border-3: #DCDCDC; +$uni-border-4: #B9B9B9; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); + +// 背景色 +$uni-bg-color: #f7f7f7; + +/* 水平间距 */ +$uni-spacing-sm: 8px; +$uni-spacing-base: 15px; +$uni-spacing-lg: 30px; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4); diff --git a/supervise-uniapp/uni_modules/uni-search-bar/changelog.md b/supervise-uniapp/uni_modules/uni-search-bar/changelog.md new file mode 100644 index 00000000..b41fdd3b --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-search-bar/changelog.md @@ -0,0 +1,33 @@ +## 1.2.3(2022-05-24) +- 新增 readonly 属性,组件只读 +## 1.2.2(2022-05-06) +- 修复 vue3 input 事件不生效的bug +## 1.2.1(2022-05-06) +- 修复 多余代码导致的bug +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-search-bar](https://uniapp.dcloud.io/component/uniui/uni-search-bar) +## 1.1.2(2021-08-30) +- 修复 value 属性与 modelValue 属性不兼容的Bug +## 1.1.1(2021-08-24) +- 新增 支持国际化 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.9(2021-05-12) +- 新增 项目示例地址 +## 1.0.8(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.7(2021-04-15) +- uni-ui 新增 uni-search-bar 的 focus 事件 + +## 1.0.6(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持双向绑定 +- 更改 input 事件的返回值,e={value:Number} --> e=value +- 新增 支持图标插槽 +- 新增 支持 clear、blur 事件 +- 新增 支持 focus 属性 +- 去掉组件背景色 diff --git a/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json b/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json new file mode 100644 index 00000000..dd083a53 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json @@ -0,0 +1,4 @@ +{ + "uni-search-bar.cancel": "cancel", + "uni-search-bar.placeholder": "Search enter content" +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js b/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js new file mode 100644 index 00000000..de7509c8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json b/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json new file mode 100644 index 00000000..d4e5c120 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json @@ -0,0 +1,4 @@ +{ + "uni-search-bar.cancel": "cancel", + "uni-search-bar.placeholder": "请输入搜索内容" +} diff --git a/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json b/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json new file mode 100644 index 00000000..318b6ef1 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json @@ -0,0 +1,4 @@ +{ + "uni-search-bar.cancel": "cancel", + "uni-search-bar.placeholder": "請輸入搜索內容" +} diff --git a/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue b/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue new file mode 100644 index 00000000..5a518a8c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue @@ -0,0 +1,298 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-search-bar/package.json b/supervise-uniapp/uni_modules/uni-search-bar/package.json new file mode 100644 index 00000000..9352c574 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-search-bar/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-search-bar", + "displayName": "uni-search-bar 搜索栏", + "version": "1.2.3", + "description": "搜索栏组件,通常用于搜索商品、文章等", + "keywords": [ + "uni-ui", + "uniui", + "搜索框", + "搜索栏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-search-bar/readme.md b/supervise-uniapp/uni_modules/uni-search-bar/readme.md new file mode 100644 index 00000000..253092f0 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-search-bar/readme.md @@ -0,0 +1,14 @@ + + +## SearchBar 搜索栏 + +> **组件名:uni-search-bar** +> 代码块: `uSearchBar` + + +搜索栏组件 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-search-bar) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/supervise-uniapp/uni_modules/uni-section/changelog.md b/supervise-uniapp/uni_modules/uni-section/changelog.md new file mode 100644 index 00000000..738f2b32 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-section/changelog.md @@ -0,0 +1,2 @@ +## 0.0.1(2022-07-22) +- 初始化 diff --git a/supervise-uniapp/uni_modules/uni-section/components/uni-section/uni-section.vue b/supervise-uniapp/uni_modules/uni-section/components/uni-section/uni-section.vue new file mode 100644 index 00000000..9a52e0b8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-section/components/uni-section/uni-section.vue @@ -0,0 +1,167 @@ + + + + diff --git a/supervise-uniapp/uni_modules/uni-section/package.json b/supervise-uniapp/uni_modules/uni-section/package.json new file mode 100644 index 00000000..0a31fb55 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-section/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-section", + "displayName": "uni-section 标题栏", + "version": "0.0.1", + "description": "标题栏组件", + "keywords": [ + "uni-ui", + "uniui", + "标题栏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-section/readme.md b/supervise-uniapp/uni_modules/uni-section/readme.md new file mode 100644 index 00000000..d47faab7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-section/readme.md @@ -0,0 +1,8 @@ +## Section 标题栏 +> **组件名:uni-section** +> 代码块: `uSection` + +uni-section 组件主要用于文章、列表详情等标题展示 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-section) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/supervise-uniapp/uni_modules/uni-segmented-control/changelog.md b/supervise-uniapp/uni_modules/uni-segmented-control/changelog.md new file mode 100644 index 00000000..a44385d7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-segmented-control/changelog.md @@ -0,0 +1,9 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-segmented-control](https://uniapp.dcloud.io/component/uniui/uni-segmented-control) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.5(2021-05-12) +- 新增 项目示例地址 +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue b/supervise-uniapp/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue new file mode 100644 index 00000000..ddbcf884 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-segmented-control/package.json b/supervise-uniapp/uni_modules/uni-segmented-control/package.json new file mode 100644 index 00000000..6cae41db --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-segmented-control/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-segmented-control", + "displayName": "uni-segmented-control 分段器", + "version": "1.2.0", + "description": "分段器由至少 2 个分段控件组成,用作不同视图的显示", + "keywords": [ + "uni-ui", + "uniui", + "分段器", + "segement", + "顶部选择" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-segmented-control/readme.md b/supervise-uniapp/uni_modules/uni-segmented-control/readme.md new file mode 100644 index 00000000..3527b03f --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-segmented-control/readme.md @@ -0,0 +1,13 @@ + + +## SegmentedControl 分段器 +> **组件名:uni-segmented-control** +> 代码块: `uSegmentedControl` + + +用作不同视图的显示 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-segmented-control) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/supervise-uniapp/uni_modules/uni-steps/changelog.md b/supervise-uniapp/uni_modules/uni-steps/changelog.md new file mode 100644 index 00000000..cb9d3679 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-steps/changelog.md @@ -0,0 +1,16 @@ +## 1.1.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.1.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-steps](https://uniapp.dcloud.io/component/uniui/uni-steps) +## 1.0.8(2021-05-12) +- 新增 项目示例地址 +## 1.0.7(2021-05-06) +- 修复 uni-steps 横向布局时,多行文字高度不合理的 bug +## 1.0.6(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.5(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-steps/components/uni-steps/uni-steps.vue b/supervise-uniapp/uni_modules/uni-steps/components/uni-steps/uni-steps.vue new file mode 100644 index 00000000..a6c8f287 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-steps/components/uni-steps/uni-steps.vue @@ -0,0 +1,269 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-steps/package.json b/supervise-uniapp/uni_modules/uni-steps/package.json new file mode 100644 index 00000000..c687b40a --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-steps/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-steps", + "displayName": "uni-steps 步骤条", + "version": "1.1.1", + "description": "步骤条组件,提供横向和纵向两种布局格式。", + "keywords": [ + "uni-ui", + "uniui", + "步骤条", + "时间轴" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-steps/readme.md b/supervise-uniapp/uni_modules/uni-steps/readme.md new file mode 100644 index 00000000..da7a4bfa --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-steps/readme.md @@ -0,0 +1,13 @@ + + +## Steps 步骤条 +> **组件名:uni-steps** +> 代码块: `uSteps` + + +步骤条,常用于显示进度 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-steps) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/supervise-uniapp/uni_modules/uni-swipe-action/changelog.md b/supervise-uniapp/uni_modules/uni-swipe-action/changelog.md new file mode 100644 index 00000000..c007cb5c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swipe-action/changelog.md @@ -0,0 +1,41 @@ +## 1.3.7(2022-06-06) +- 修复 vue3 下使用组件不能正常运行的Bug +## 1.3.6(2022-05-31) +- 修复 h5端点击click触发两次的Bug +## 1.3.5(2022-05-23) +- 修复 isPC 找不到的Bug +## 1.3.4(2022-05-19) +- 修复 在 nvue 下 disabled 失效的bug +## 1.3.3(2022-03-31) +- 修复 按钮字体大小不能设置的bug +## 1.3.2(2022-03-16) +- 修复 h5和app端下报el错误的bug +## 1.3.1(2022-03-07) +- 修复 HBuilderX 1.4.X 版本中,h5和app端下报错的bug +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-swipe-action](https://uniapp.dcloud.io/component/uniui/uni-swipe-action) +## 1.2.4(2021-08-20) +- 优化 close-all 方法 +## 1.2.3(2021-08-20) +- 新增 close-all 方法,关闭所有已打开的组件 +## 1.2.2(2021-08-17) +- 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 +- 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 +- 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 +## 1.2.1(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +- 修复 跨页面修改组件数据 ,导致不能滑动的问题 +## 1.1.10(2021-06-17) +- 修复 按钮点击执行两次的bug +## 1.1.9(2021-05-12) +- 新增 项目示例地址 +## 1.1.8(2021-03-26) +- 修复 微信小程序 nv_navigator is not defined 报错的bug +## 1.1.7(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 左侧滑动 +- 新增 插槽使用方式 +- 新增 threshold 属性,可以控制滑动缺省值 +- 优化 长列表滚动性能 +- 修复 滚动页面时触发组件滑动的Bug diff --git a/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js new file mode 100644 index 00000000..755c97c9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js @@ -0,0 +1,302 @@ +let bindIngXMixins = {} + +// #ifdef APP-NVUE +const BindingX = uni.requireNativePlugin('bindingx'); +const dom = uni.requireNativePlugin('dom'); +const animation = uni.requireNativePlugin('animation'); + +bindIngXMixins = { + data() { + return {} + }, + + watch: { + show(newVal) { + if (this.autoClose) return + if (this.stop) return + this.stop = true + if (newVal) { + this.open(newVal) + } else { + this.close() + } + }, + leftOptions() { + this.getSelectorQuery() + this.init() + }, + rightOptions(newVal) { + this.init() + } + }, + created() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.box = this.getEl(this.$refs['selector-box--hock']) + this.selector = this.getEl(this.$refs['selector-content--hock']); + this.leftButton = this.getEl(this.$refs['selector-left-button--hock']); + this.rightButton = this.getEl(this.$refs['selector-right-button--hock']); + this.init() + }, + // beforeDestroy() { + // this.swipeaction.children.forEach((item, index) => { + // if (item === this) { + // this.swipeaction.children.splice(index, 1) + // } + // }) + // }, + methods: { + init() { + this.$nextTick(() => { + this.x = 0 + this.button = { + show: false + } + setTimeout(() => { + this.getSelectorQuery() + }, 200) + }) + }, + onClick(index, item, position) { + this.$emit('click', { + content: item, + index, + position + }) + }, + touchstart(e) { + // fix by mehaotian 禁止滑动 + if (this.disabled) return + // 每次只触发一次,避免多次监听造成闪烁 + if (this.stop) return + this.stop = true + if (this.autoClose) { + this.swipeaction.closeOther(this) + } + + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + let expression = this.range(this.x, -rightWidth, leftWidth) + let leftExpression = this.range(this.x - leftWidth, -leftWidth, 0) + let rightExpression = this.range(this.x + rightWidth, 0, rightWidth) + + this.eventpan = BindingX.bind({ + anchor: this.box, + eventType: 'pan', + props: [{ + element: this.selector, + property: 'transform.translateX', + expression + }, { + element: this.leftButton, + property: 'transform.translateX', + expression: leftExpression + }, { + element: this.rightButton, + property: 'transform.translateX', + expression: rightExpression + }, ] + }, (e) => { + // nope + if (e.state === 'end') { + this.x = e.deltaX + this.x; + this.isclick = true + this.bindTiming(e.deltaX) + } + }); + }, + touchend(e) { + if (this.isopen !== 'none' && !this.isclick) { + this.open('none') + } + }, + bindTiming(x) { + const left = this.x + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + const threshold = this.threshold + if (!this.isopen || this.isopen === 'none') { + if (left > threshold) { + this.open('left') + } else if (left < -threshold) { + this.open('right') + } else { + this.open('none') + } + } else { + if ((x > -leftWidth && x < 0) || x > rightWidth) { + if ((x > -threshold && x < 0) || (x - rightWidth > threshold)) { + this.open('left') + } else { + this.open('none') + } + } else { + if ((x < threshold && x > 0) || (x + leftWidth < -threshold)) { + this.open('right') + } else { + this.open('none') + } + } + } + }, + + /** + * 移动范围 + * @param {Object} num + * @param {Object} mix + * @param {Object} max + */ + range(num, mix, max) { + return `min(max(x+${num}, ${mix}), ${max})` + }, + + /** + * 开启swipe + */ + open(type) { + this.animation(type) + }, + + /** + * 关闭swipe + */ + close() { + this.animation('none') + }, + + /** + * 开启关闭动画 + * @param {Object} type + */ + animation(type) { + const time = 300 + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + if (this.eventpan && this.eventpan.token) { + BindingX.unbind({ + token: this.eventpan.token, + eventType: 'pan' + }) + } + + switch (type) { + case 'left': + Promise.all([ + this.move(this.selector, leftWidth), + this.move(this.leftButton, 0), + this.move(this.rightButton, rightWidth * 2) + ]).then(() => { + this.setEmit(leftWidth, type) + }) + break + case 'right': + Promise.all([ + this.move(this.selector, -rightWidth), + this.move(this.leftButton, -leftWidth * 2), + this.move(this.rightButton, 0) + ]).then(() => { + this.setEmit(-rightWidth, type) + }) + break + default: + Promise.all([ + this.move(this.selector, 0), + this.move(this.leftButton, -leftWidth), + this.move(this.rightButton, rightWidth) + ]).then(() => { + this.setEmit(0, type) + }) + + } + }, + setEmit(x, type) { + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + this.isopen = this.isopen || 'none' + this.stop = false + this.isclick = false + // 只有状态不一致才会返回结果 + if (this.isopen !== type && this.x !== x) { + if (type === 'left' && leftWidth > 0) { + this.$emit('change', 'left') + } + if (type === 'right' && rightWidth > 0) { + this.$emit('change', 'right') + } + if (type === 'none') { + this.$emit('change', 'none') + } + } + this.x = x + this.isopen = type + }, + move(ref, value) { + return new Promise((resolve, reject) => { + animation.transition(ref, { + styles: { + transform: `translateX(${value})`, + }, + duration: 150, //ms + timingFunction: 'linear', + needLayout: false, + delay: 0 //ms + }, function(res) { + resolve(res) + }) + }) + + }, + + /** + * 获取ref + * @param {Object} el + */ + getEl(el) { + return el.ref + }, + /** + * 获取节点信息 + */ + getSelectorQuery() { + Promise.all([ + this.getDom('left'), + this.getDom('right'), + ]).then((data) => { + let show = 'none' + if (this.autoClose) { + show = 'none' + } else { + show = this.show + } + + if (show === 'none') { + // this.close() + } else { + this.open(show) + } + + }) + + }, + getDom(str) { + return new Promise((resolve, reject) => { + dom.getComponentRect(this.$refs[`selector-${str}-button--hock`], (data) => { + if (data) { + this.button[str] = data.size + resolve(data) + } else { + reject() + } + }) + }) + } + } +} + +// #endif + +export default bindIngXMixins diff --git a/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js new file mode 100644 index 00000000..917cb489 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js @@ -0,0 +1,12 @@ +export function isPC() { + var userAgentInfo = navigator.userAgent; + var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; + var flag = true; + for (let v = 0; v < Agents.length - 1; v++) { + if (userAgentInfo.indexOf(Agents[v]) > 0) { + flag = false; + break; + } + } + return flag; +} diff --git a/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js new file mode 100644 index 00000000..43cd56bd --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js @@ -0,0 +1,193 @@ +export default { + data() { + return { + x: 0, + transition: false, + width: 0, + viewWidth: 0, + swipeShow: 0 + } + }, + watch: { + show(newVal) { + if (this.autoClose) return + if (newVal && newVal !== 'none') { + this.transition = true + this.open(newVal) + } else { + this.close() + } + } + }, + created() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.isopen = false + setTimeout(() => { + this.getQuerySelect() + }, 50) + }, + methods: { + appTouchStart(e) { + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + if (diff < 40 && time < 300) { + this.$emit('click', { + content: item, + index, + position + }) + } + }, + /** + * 移动触发 + * @param {Object} e + */ + onChange(e) { + this.moveX = e.detail.x + this.isclose = false + }, + touchstart(e) { + this.transition = false + this.isclose = true + this.autoClose && this.swipeaction.closeOther(this) + }, + touchmove(e) {}, + touchend(e) { + // 0的位置什么都不执行 + if (this.isclose && this.isopen === 'none') return + if (this.isclose && this.isopen !== 'none') { + this.transition = true + this.close() + } else { + this.move(this.moveX + this.leftWidth) + } + }, + + /** + * 移动 + * @param {Object} moveX + */ + move(moveX) { + // 打开关闭的处理逻辑不太一样 + this.transition = true + // 未打开状态 + if (!this.isopen || this.isopen === 'none') { + if (moveX > this.threshold) { + this.open('left') + } else if (moveX < -this.threshold) { + this.open('right') + } else { + this.close() + } + } else { + if (moveX < 0 && moveX < this.rightWidth) { + const rightX = this.rightWidth + moveX + if (rightX < this.threshold) { + this.open('right') + } else { + this.close() + } + } else if (moveX > 0 && moveX < this.leftWidth) { + const leftX = this.leftWidth - moveX + if (leftX < this.threshold) { + this.open('left') + } else { + this.close() + } + } + + } + + }, + + /** + * 打开 + */ + open(type) { + this.x = this.moveX + this.animation(type) + }, + + /** + * 关闭 + */ + close() { + this.x = this.moveX + // TODO 解决 x 值不更新的问题,所以会多触发一次 nextTick ,待优化 + this.$nextTick(() => { + this.x = -this.leftWidth + if (this.isopen !== 'none') { + this.$emit('change', 'none') + } + this.isopen = 'none' + }) + }, + + /** + * 执行结束动画 + * @param {Object} type + */ + animation(type) { + this.$nextTick(() => { + if (type === 'left') { + this.x = 0 + } else { + this.x = -this.rightWidth - this.leftWidth + } + + if (this.isopen !== type) { + this.$emit('change', type) + } + this.isopen = type + }) + + }, + getSlide(x) {}, + getQuerySelect() { + const query = uni.createSelectorQuery().in(this); + query.selectAll('.movable-view--hock').boundingClientRect(data => { + this.leftWidth = data[1].width + this.rightWidth = data[2].width + this.width = data[0].width + this.viewWidth = this.width + this.rightWidth + this.leftWidth + if (this.leftWidth === 0) { + // TODO 疑似bug ,初始化的时候如果x 是0,会导致移动位置错误,所以让元素超出一点 + this.x = -0.1 + } else { + this.x = -this.leftWidth + } + this.moveX = this.x + this.$nextTick(() => { + this.swipeShow = 1 + }) + + if (!this.buttonWidth) { + this.disabledView = true + } + + if (this.autoClose) return + if (this.show !== 'none') { + this.transition = true + this.open(this.shows) + } + }).exec(); + + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js new file mode 100644 index 00000000..9a8bcbb6 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js @@ -0,0 +1,259 @@ +let otherMixins = {} + +// #ifndef APP-PLUS|| MP-WEIXIN || H5 +const MIN_DISTANCE = 10; +otherMixins = { + data() { + // TODO 随机生生元素ID,解决百度小程序获取同一个元素位置信息的bug + const elClass = `Uni_${Math.ceil(Math.random() * 10e5).toString(36)}` + return { + uniShow: false, + left: 0, + buttonShow: 'none', + ani: false, + moveLeft: '', + elClass + } + }, + watch: { + show(newVal) { + if (this.autoClose) return + this.openState(newVal) + }, + left() { + this.moveLeft = `translateX(${this.left}px)` + }, + buttonShow(newVal) { + if (this.autoClose) return + this.openState(newVal) + }, + leftOptions() { + this.init() + }, + rightOptions() { + this.init() + } + }, + mounted() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + this.init() + }, + methods: { + init() { + clearTimeout(this.timer) + this.timer = setTimeout(() => { + this.getSelectorQuery() + }, 100) + // 移动距离 + this.left = 0 + this.x = 0 + }, + + closeSwipe(e) { + if (!this.autoClose) return + this.swipeaction.closeOther(this) + }, + appTouchStart(e) { + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + if (diff < 40 && time < 300) { + this.$emit('click', { + content: item, + index, + position + }) + } + }, + touchstart(e) { + if (this.disabled) return + this.ani = false + this.x = this.left || 0 + this.stopTouchStart(e) + this.autoClose && this.closeSwipe() + }, + touchmove(e) { + if (this.disabled) return + // 是否可以滑动页面 + this.stopTouchMove(e); + if (this.direction !== 'horizontal') { + return; + } + this.move(this.x + this.deltaX) + return false + }, + touchend() { + if (this.disabled) return + this.moveDirection(this.left) + }, + /** + * 设置移动距离 + * @param {Object} value + */ + move(value) { + value = value || 0 + const leftWidth = this.leftWidth + const rightWidth = this.rightWidth + // 获取可滑动范围 + this.left = this.range(value, -rightWidth, leftWidth); + }, + + /** + * 获取范围 + * @param {Object} num + * @param {Object} min + * @param {Object} max + */ + range(num, min, max) { + return Math.min(Math.max(num, min), max); + }, + /** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + */ + moveDirection(left) { + const threshold = this.threshold + const isopen = this.isopen || 'none' + const leftWidth = this.leftWidth + const rightWidth = this.rightWidth + if (this.deltaX === 0) { + this.openState('none') + return + } + if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > + 0 && rightWidth + + left < threshold)) { + // right + this.openState('right') + } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > + 0 && + leftWidth - left < threshold)) { + // left + this.openState('left') + } else { + // default + this.openState('none') + } + }, + + /** + * 开启状态 + * @param {Boolean} type + */ + openState(type) { + const leftWidth = this.leftWidth + const rightWidth = this.rightWidth + let left = '' + this.isopen = this.isopen ? this.isopen : 'none' + switch (type) { + case "left": + left = leftWidth + break + case "right": + left = -rightWidth + break + default: + left = 0 + } + + + if (this.isopen !== type) { + this.throttle = true + this.$emit('change', type) + } + + this.isopen = type + // 添加动画类 + this.ani = true + this.$nextTick(() => { + this.move(left) + }) + // 设置最终移动位置,理论上只要进入到这个函数,肯定是要打开的 + }, + close() { + this.openState('none') + }, + getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; + }, + + /** + * 重置滑动状态 + * @param {Object} event + */ + resetTouchStatus() { + this.direction = ''; + this.deltaX = 0; + this.deltaY = 0; + this.offsetX = 0; + this.offsetY = 0; + }, + + /** + * 设置滑动开始位置 + * @param {Object} event + */ + stopTouchStart(event) { + this.resetTouchStatus(); + const touch = event.touches[0]; + this.startX = touch.clientX; + this.startY = touch.clientY; + }, + + /** + * 滑动中,是否禁止打开 + * @param {Object} event + */ + stopTouchMove(event) { + const touch = event.touches[0]; + this.deltaX = touch.clientX - this.startX; + this.deltaY = touch.clientY - this.startY; + this.offsetX = Math.abs(this.deltaX); + this.offsetY = Math.abs(this.deltaY); + this.direction = this.direction || this.getDirection(this.offsetX, this.offsetY); + }, + + getSelectorQuery() { + const views = uni.createSelectorQuery().in(this) + views + .selectAll('.' + this.elClass) + .boundingClientRect(data => { + if (data.length === 0) return + let show = 'none' + if (this.autoClose) { + show = 'none' + } else { + show = this.show + } + this.leftWidth = data[0].width || 0 + this.rightWidth = data[1].width || 0 + this.buttonShow = show + }) + .exec() + } + } +} + +// #endif + +export default otherMixins diff --git a/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js new file mode 100644 index 00000000..435e0fbc --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js @@ -0,0 +1,83 @@ +let mpMixins = {} +let is_pc = null +// #ifdef H5 +import { + isPC +} from "./isPC" +is_pc = isPC() +// #endif +// #ifdef APP-VUE|| MP-WEIXIN || H5 + +mpMixins = { + data() { + return { + is_show: 'none' + } + }, + watch: { + show(newVal) { + this.is_show = this.show + } + }, + created() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.is_show = this.show + }, + methods: { + // wxs 中调用 + closeSwipe(e) { + if (!this.autoClose) return + this.swipeaction.closeOther(this) + }, + + change(e) { + this.$emit('change', e.open) + if (this.is_show !== e.open) { + this.is_show = e.open + } + }, + + appTouchStart(e) { + if (is_pc) return + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + if (is_pc) return + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + if (diff < 40 && time < 300) { + this.$emit('click', { + content: item, + index, + position + }) + } + }, + onClickForPC(index, item, position) { + if (!is_pc) return + // #ifdef H5 + this.$emit('click', { + content: item, + index, + position + }) + // #endif + } + } +} + +// #endif +export default mpMixins diff --git a/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js new file mode 100644 index 00000000..78f0ec60 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js @@ -0,0 +1,270 @@ +const MIN_DISTANCE = 10; +export default { + showWatch(newVal, oldVal, ownerInstance, instance, self) { + var state = self.state + var $el = ownerInstance.$el || ownerInstance.$vm && ownerInstance.$vm.$el + if (!$el) return + this.getDom(instance, ownerInstance, self) + if (newVal && newVal !== 'none') { + this.openState(newVal, instance, ownerInstance, self) + return + } + + if (state.left) { + this.openState('none', instance, ownerInstance, self) + } + this.resetTouchStatus(instance, self) + }, + + /** + * 开始触摸操作 + * @param {Object} e + * @param {Object} ins + */ + touchstart(e, ownerInstance, self) { + let instance = e.instance; + let disabled = instance.getDataset().disabled + let state = self.state; + this.getDom(instance, ownerInstance, self) + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = this.getDisabledType(disabled) + if (disabled) return + // 开始触摸时移除动画类 + instance.requestAnimationFrame(function() { + instance.removeClass('ani'); + ownerInstance.callMethod('closeSwipe'); + }) + + // 记录上次的位置 + state.x = state.left || 0 + // 计算滑动开始位置 + this.stopTouchStart(e, ownerInstance, self) + }, + + /** + * 开始滑动操作 + * @param {Object} e + * @param {Object} ownerInstance + */ + touchmove(e, ownerInstance, self) { + let instance = e.instance; + // 删除之后已经那不到实例了 + if (!instance) return; + let disabled = instance.getDataset().disabled + let state = self.state + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = this.getDisabledType(disabled) + if (disabled) return + // 是否可以滑动页面 + this.stopTouchMove(e, self); + if (state.direction !== 'horizontal') { + return; + } + if (e.preventDefault) { + // 阻止页面滚动 + e.preventDefault() + } + let x = state.x + state.deltaX + this.move(x, instance, ownerInstance, self) + }, + + /** + * 结束触摸操作 + * @param {Object} e + * @param {Object} ownerInstance + */ + touchend(e, ownerInstance, self) { + let instance = e.instance; + let disabled = instance.getDataset().disabled + let state = self.state + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = this.getDisabledType(disabled) + + if (disabled) return + // 滑动过程中触摸结束,通过阙值判断是开启还是关闭 + // fixed by mehaotian 定时器解决点击按钮,touchend 触发比 click 事件时机早的问题 ,主要是 ios13 + this.moveDirection(state.left, instance, ownerInstance, self) + + }, + + /** + * 设置移动距离 + * @param {Object} value + * @param {Object} instance + * @param {Object} ownerInstance + */ + move(value, instance, ownerInstance, self) { + value = value || 0 + let state = self.state + let leftWidth = state.leftWidth + let rightWidth = state.rightWidth + // 获取可滑动范围 + state.left = this.range(value, -rightWidth, leftWidth); + instance.requestAnimationFrame(function() { + instance.setStyle({ + transform: 'translateX(' + state.left + 'px)', + '-webkit-transform': 'translateX(' + state.left + 'px)' + }) + }) + + }, + + /** + * 获取元素信息 + * @param {Object} instance + * @param {Object} ownerInstance + */ + getDom(instance, ownerInstance, self) { + var state = self.state + var $el = ownerInstance.$el || ownerInstance.$vm && ownerInstance.$vm.$el + var leftDom = $el.querySelector('.button-group--left') + var rightDom = $el.querySelector('.button-group--right') + + state.leftWidth = leftDom.offsetWidth || 0 + state.rightWidth = rightDom.offsetWidth || 0 + state.threshold = instance.getDataset().threshold + }, + + getDisabledType(value) { + return (typeof(value) === 'string' ? JSON.parse(value) : value) || false; + }, + + /** + * 获取范围 + * @param {Object} num + * @param {Object} min + * @param {Object} max + */ + range(num, min, max) { + return Math.min(Math.max(num, min), max); + }, + + + /** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + * @param {Object} ownerInstance + * @param {Object} ins + */ + moveDirection(left, ins, ownerInstance, self) { + var state = self.state + var threshold = state.threshold + var position = state.position + var isopen = state.isopen || 'none' + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + if (state.deltaX === 0) { + this.openState('none', ins, ownerInstance, self) + return + } + if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && + rightWidth + + left < threshold)) { + // right + this.openState('right', ins, ownerInstance, self) + } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && + leftWidth - left < threshold)) { + // left + this.openState('left', ins, ownerInstance, self) + } else { + // default + this.openState('none', ins, ownerInstance, self) + } + }, + + + /** + * 开启状态 + * @param {Boolean} type + * @param {Object} ins + * @param {Object} ownerInstance + */ + openState(type, ins, ownerInstance, self) { + let state = self.state + let leftWidth = state.leftWidth + let rightWidth = state.rightWidth + let left = '' + state.isopen = state.isopen ? state.isopen : 'none' + switch (type) { + case "left": + left = leftWidth + break + case "right": + left = -rightWidth + break + default: + left = 0 + } + + // && !state.throttle + + if (state.isopen !== type) { + state.throttle = true + ownerInstance.callMethod('change', { + open: type + }) + + } + + state.isopen = type + // 添加动画类 + ins.requestAnimationFrame(() => { + ins.addClass('ani'); + this.move(left, ins, ownerInstance, self) + }) + }, + + + getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; + }, + + /** + * 重置滑动状态 + * @param {Object} event + */ + resetTouchStatus(instance, self) { + let state = self.state; + state.direction = ''; + state.deltaX = 0; + state.deltaY = 0; + state.offsetX = 0; + state.offsetY = 0; + }, + + /** + * 设置滑动开始位置 + * @param {Object} event + */ + stopTouchStart(event, ownerInstance, self) { + let instance = event.instance; + let state = self.state + this.resetTouchStatus(instance, self); + var touch = event.touches[0]; + state.startX = touch.clientX; + state.startY = touch.clientY; + }, + + /** + * 滑动中,是否禁止打开 + * @param {Object} event + */ + stopTouchMove(event, self) { + let instance = event.instance; + let state = self.state; + let touch = event.touches[0]; + + state.deltaX = touch.clientX - state.startX; + state.deltaY = touch.clientY - state.startY; + state.offsetY = Math.abs(state.deltaY); + state.offsetX = Math.abs(state.deltaX); + state.direction = state.direction || this.getDirection(state.offsetX, state.offsetY); + } +} diff --git a/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue new file mode 100644 index 00000000..d79c2979 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue @@ -0,0 +1,347 @@ + + + + + + diff --git a/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs new file mode 100644 index 00000000..b394244f --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs @@ -0,0 +1,341 @@ +var MIN_DISTANCE = 10; + +/** + * 判断当前是否为H5、app-vue + */ +var IS_HTML5 = false +if (typeof window === 'object') IS_HTML5 = true + +/** + * 监听页面内值的变化,主要用于动态开关swipe-action + * @param {Object} newValue + * @param {Object} oldValue + * @param {Object} ownerInstance + * @param {Object} instance + */ +function showWatch(newVal, oldVal, ownerInstance, instance) { + var state = instance.getState() + getDom(instance, ownerInstance) + if (newVal && newVal !== 'none') { + openState(newVal, instance, ownerInstance) + return + } + + if (state.left) { + openState('none', instance, ownerInstance) + } + resetTouchStatus(instance) +} + +/** + * 开始触摸操作 + * @param {Object} e + * @param {Object} ins + */ +function touchstart(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState(); + getDom(instance, ownerInstance) + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + if (disabled) return + // 开始触摸时移除动画类 + instance.requestAnimationFrame(function() { + instance.removeClass('ani'); + ownerInstance.callMethod('closeSwipe'); + }) + + // 记录上次的位置 + state.x = state.left || 0 + // 计算滑动开始位置 + stopTouchStart(e, ownerInstance) +} + +/** + * 开始滑动操作 + * @param {Object} e + * @param {Object} ownerInstance + */ +function touchmove(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState() + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + if (disabled) return + // 是否可以滑动页面 + stopTouchMove(e); + if (state.direction !== 'horizontal') { + return; + } + + if (e.preventDefault) { + // 阻止页面滚动 + e.preventDefault() + } + + move(state.x + state.deltaX, instance, ownerInstance) +} + +/** + * 结束触摸操作 + * @param {Object} e + * @param {Object} ownerInstance + */ +function touchend(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState() + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + + if (disabled) return + // 滑动过程中触摸结束,通过阙值判断是开启还是关闭 + // fixed by mehaotian 定时器解决点击按钮,touchend 触发比 click 事件时机早的问题 ,主要是 ios13 + moveDirection(state.left, instance, ownerInstance) + +} + +/** + * 设置移动距离 + * @param {Object} value + * @param {Object} instance + * @param {Object} ownerInstance + */ +function move(value, instance, ownerInstance) { + value = value || 0 + var state = instance.getState() + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + // 获取可滑动范围 + state.left = range(value, -rightWidth, leftWidth); + instance.requestAnimationFrame(function() { + instance.setStyle({ + transform: 'translateX(' + state.left + 'px)', + '-webkit-transform': 'translateX(' + state.left + 'px)' + }) + }) + +} + +/** + * 获取元素信息 + * @param {Object} instance + * @param {Object} ownerInstance + */ +function getDom(instance, ownerInstance) { + var state = instance.getState() + var leftDom = ownerInstance.selectComponent('.button-group--left') + var rightDom = ownerInstance.selectComponent('.button-group--right') + var leftStyles = { + width: 0 + } + var rightStyles = { + width: 0 + } + leftStyles = leftDom.getBoundingClientRect() + rightStyles = rightDom.getBoundingClientRect() + + state.leftWidth = leftStyles.width || 0 + state.rightWidth = rightStyles.width || 0 + state.threshold = instance.getDataset().threshold +} + +/** + * 获取范围 + * @param {Object} num + * @param {Object} min + * @param {Object} max + */ +function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} + + +/** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + * @param {Object} ownerInstance + * @param {Object} ins + */ +function moveDirection(left, ins, ownerInstance) { + var state = ins.getState() + var threshold = state.threshold + var position = state.position + var isopen = state.isopen || 'none' + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + if (state.deltaX === 0) { + openState('none', ins, ownerInstance) + return + } + if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && + rightWidth + + left < threshold)) { + // right + openState('right', ins, ownerInstance) + } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && + leftWidth - left < threshold)) { + // left + openState('left', ins, ownerInstance) + } else { + // default + openState('none', ins, ownerInstance) + } +} + + +/** + * 开启状态 + * @param {Boolean} type + * @param {Object} ins + * @param {Object} ownerInstance + */ +function openState(type, ins, ownerInstance) { + var state = ins.getState() + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + var left = '' + state.isopen = state.isopen ? state.isopen : 'none' + switch (type) { + case "left": + left = leftWidth + break + case "right": + left = -rightWidth + break + default: + left = 0 + } + + // && !state.throttle + + if (state.isopen !== type) { + state.throttle = true + ownerInstance.callMethod('change', { + open: type + }) + + } + + state.isopen = type + // 添加动画类 + ins.requestAnimationFrame(function() { + ins.addClass('ani'); + move(left, ins, ownerInstance) + }) + // 设置最终移动位置,理论上只要进入到这个函数,肯定是要打开的 +} + + +function getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; +} + +/** + * 重置滑动状态 + * @param {Object} event + */ +function resetTouchStatus(instance) { + var state = instance.getState(); + state.direction = ''; + state.deltaX = 0; + state.deltaY = 0; + state.offsetX = 0; + state.offsetY = 0; +} + +/** + * 设置滑动开始位置 + * @param {Object} event + */ +function stopTouchStart(event) { + var instance = event.instance; + var state = instance.getState(); + resetTouchStatus(instance); + var touch = event.touches[0]; + if (IS_HTML5 && isPC()) { + touch = event; + } + state.startX = touch.clientX; + state.startY = touch.clientY; +} + +/** + * 滑动中,是否禁止打开 + * @param {Object} event + */ +function stopTouchMove(event) { + var instance = event.instance; + var state = instance.getState(); + var touch = event.touches[0]; + if (IS_HTML5 && isPC()) { + touch = event; + } + state.deltaX = touch.clientX - state.startX; + state.deltaY = touch.clientY - state.startY; + state.offsetY = Math.abs(state.deltaY); + state.offsetX = Math.abs(state.deltaX); + state.direction = state.direction || getDirection(state.offsetX, state.offsetY); +} + +function isPC() { + var userAgentInfo = navigator.userAgent; + var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; + var flag = true; + for (var v = 0; v < Agents.length - 1; v++) { + if (userAgentInfo.indexOf(Agents[v]) > 0) { + flag = false; + break; + } + } + return flag; +} + +var movable = false + +function mousedown(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + touchstart(e, ins) + movable = true +} + +function mousemove(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + if (!movable) return + touchmove(e, ins) +} + +function mouseup(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + touchend(e, ins) + movable = false +} + +function mouseleave(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + movable = false +} + +module.exports = { + showWatch: showWatch, + touchstart: touchstart, + touchmove: touchmove, + touchend: touchend, + mousedown: mousedown, + mousemove: mousemove, + mouseup: mouseup, + mouseleave: mouseleave +} diff --git a/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue new file mode 100644 index 00000000..49717824 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-swipe-action/package.json b/supervise-uniapp/uni_modules/uni-swipe-action/package.json new file mode 100644 index 00000000..c8998d9d --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swipe-action/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-swipe-action", + "displayName": "uni-swipe-action 滑动操作", + "version": "1.3.7", + "description": "SwipeAction 滑动操作操作组件", + "keywords": [ + "", + "uni-ui", + "uniui", + "滑动删除", + "侧滑删除" + ], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-swipe-action/readme.md b/supervise-uniapp/uni_modules/uni-swipe-action/readme.md new file mode 100644 index 00000000..93a5cac6 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swipe-action/readme.md @@ -0,0 +1,11 @@ + + +## SwipeAction 滑动操作 +> **组件名:uni-swipe-action** +> 代码块: `uSwipeAction`、`uSwipeActionItem` + + +通过滑动触发选项的容器 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-swipe-action) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-swiper-dot/changelog.md b/supervise-uniapp/uni_modules/uni-swiper-dot/changelog.md new file mode 100644 index 00000000..85cf54d2 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swiper-dot/changelog.md @@ -0,0 +1,12 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-swiper-dot](https://uniapp.dcloud.io/component/uniui/uni-swiper-dot) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.6(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 clickItem 事件,支持指示点控制轮播 +- 新增 支持 pc 可用 diff --git a/supervise-uniapp/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue b/supervise-uniapp/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue new file mode 100644 index 00000000..46eb8c1f --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-swiper-dot/package.json b/supervise-uniapp/uni_modules/uni-swiper-dot/package.json new file mode 100644 index 00000000..f2dd8d2a --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swiper-dot/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-swiper-dot", + "displayName": "uni-swiper-dot 轮播图指示点", + "version": "1.2.0", + "description": "自定义轮播图指示点组件", + "keywords": [ + "uni-ui", + "uniui", + "轮播图指示点", + "dot", + "swiper" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-swiper-dot/readme.md b/supervise-uniapp/uni_modules/uni-swiper-dot/readme.md new file mode 100644 index 00000000..7d397e2c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-swiper-dot/readme.md @@ -0,0 +1,11 @@ + + +## SwiperDot 轮播图指示点 +> **组件名:uni-swiper-dot** +> 代码块: `uSwiperDot` + + +自定义轮播图指示点 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-swiper-dot) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-table/changelog.md b/supervise-uniapp/uni_modules/uni-table/changelog.md new file mode 100644 index 00000000..8233b20f --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/changelog.md @@ -0,0 +1,23 @@ +## 1.2.1(2022-06-06) +- 修复 微信小程序存在无使用组件的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-table](https://uniapp.dcloud.io/component/uniui/uni-table) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-07-08) +- 新增 uni-th 支持 date 日期筛选范围 +## 1.0.6(2021-07-05) +- 新增 uni-th 支持 range 筛选范围 +## 1.0.5(2021-06-28) +- 新增 uni-th 筛选功能 +## 1.0.4(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.3(2021-04-16) +- 新增 sortable 属性,是否开启单列排序 +- 优化 表格多选逻辑 +## 1.0.2(2021-03-22) +- uni-tr 添加 disabled 属性,用于 type=selection 时,设置某行是否可由全选按钮控制 +## 1.0.1(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-table/components/uni-table/uni-table.vue b/supervise-uniapp/uni_modules/uni-table/components/uni-table/uni-table.vue new file mode 100644 index 00000000..6ee871eb --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/components/uni-table/uni-table.vue @@ -0,0 +1,455 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue b/supervise-uniapp/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue new file mode 100644 index 00000000..fbe1bdcb --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-table/components/uni-td/uni-td.vue b/supervise-uniapp/uni_modules/uni-table/components/uni-td/uni-td.vue new file mode 100644 index 00000000..9ce93e93 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/components/uni-td/uni-td.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-table/components/uni-th/filter-dropdown.vue b/supervise-uniapp/uni_modules/uni-table/components/uni-th/filter-dropdown.vue new file mode 100644 index 00000000..bc9a0e3b --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/components/uni-th/filter-dropdown.vue @@ -0,0 +1,503 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-table/components/uni-th/uni-th.vue b/supervise-uniapp/uni_modules/uni-table/components/uni-th/uni-th.vue new file mode 100644 index 00000000..883e3f2a --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/components/uni-th/uni-th.vue @@ -0,0 +1,278 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-table/components/uni-thead/uni-thead.vue b/supervise-uniapp/uni_modules/uni-table/components/uni-thead/uni-thead.vue new file mode 100644 index 00000000..0dd18cd8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/components/uni-thead/uni-thead.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-table/components/uni-tr/table-checkbox.vue b/supervise-uniapp/uni_modules/uni-table/components/uni-tr/table-checkbox.vue new file mode 100644 index 00000000..158f3ffd --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/components/uni-tr/table-checkbox.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-table/components/uni-tr/uni-tr.vue b/supervise-uniapp/uni_modules/uni-table/components/uni-tr/uni-tr.vue new file mode 100644 index 00000000..f9b96716 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/components/uni-tr/uni-tr.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-table/i18n/en.json b/supervise-uniapp/uni_modules/uni-table/i18n/en.json new file mode 100644 index 00000000..e32023cc --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/i18n/en.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Reset", + "filter-dropdown.search": "Search", + "filter-dropdown.submit": "Submit", + "filter-dropdown.filter": "Filter", + "filter-dropdown.gt": "Greater or equal to", + "filter-dropdown.lt": "Less than or equal to", + "filter-dropdown.date": "Date" +} diff --git a/supervise-uniapp/uni_modules/uni-table/i18n/es.json b/supervise-uniapp/uni_modules/uni-table/i18n/es.json new file mode 100644 index 00000000..9afd04bb --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/i18n/es.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Reiniciar", + "filter-dropdown.search": "Búsqueda", + "filter-dropdown.submit": "Entregar", + "filter-dropdown.filter": "Filtrar", + "filter-dropdown.gt": "Mayor o igual a", + "filter-dropdown.lt": "Menos que o igual a", + "filter-dropdown.date": "Fecha" +} diff --git a/supervise-uniapp/uni_modules/uni-table/i18n/fr.json b/supervise-uniapp/uni_modules/uni-table/i18n/fr.json new file mode 100644 index 00000000..b0062371 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/i18n/fr.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Réinitialiser", + "filter-dropdown.search": "Chercher", + "filter-dropdown.submit": "Soumettre", + "filter-dropdown.filter": "Filtre", + "filter-dropdown.gt": "Supérieur ou égal à", + "filter-dropdown.lt": "Inférieur ou égal à", + "filter-dropdown.date": "Date" +} diff --git a/supervise-uniapp/uni_modules/uni-table/i18n/index.js b/supervise-uniapp/uni_modules/uni-table/i18n/index.js new file mode 100644 index 00000000..2469dd02 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/i18n/index.js @@ -0,0 +1,12 @@ +import en from './en.json' +import es from './es.json' +import fr from './fr.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + es, + fr, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/supervise-uniapp/uni_modules/uni-table/i18n/zh-Hans.json b/supervise-uniapp/uni_modules/uni-table/i18n/zh-Hans.json new file mode 100644 index 00000000..862af179 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/i18n/zh-Hans.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "重置", + "filter-dropdown.search": "搜索", + "filter-dropdown.submit": "确定", + "filter-dropdown.filter": "筛选", + "filter-dropdown.gt": "大于等于", + "filter-dropdown.lt": "小于等于", + "filter-dropdown.date": "日期范围" +} diff --git a/supervise-uniapp/uni_modules/uni-table/i18n/zh-Hant.json b/supervise-uniapp/uni_modules/uni-table/i18n/zh-Hant.json new file mode 100644 index 00000000..64f80615 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/i18n/zh-Hant.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "重置", + "filter-dropdown.search": "搜索", + "filter-dropdown.submit": "確定", + "filter-dropdown.filter": "篩選", + "filter-dropdown.gt": "大於等於", + "filter-dropdown.lt": "小於等於", + "filter-dropdown.date": "日期範圍" +} diff --git a/supervise-uniapp/uni_modules/uni-table/package.json b/supervise-uniapp/uni_modules/uni-table/package.json new file mode 100644 index 00000000..f224ab72 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-table", + "displayName": "uni-table 表格", + "version": "1.2.1", + "description": "表格组件,多用于展示多条结构类似的数据,如", + "keywords": [ + "uni-ui", + "uniui", + "table", + "表格" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-datetime-picker"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "n", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-table/readme.md b/supervise-uniapp/uni_modules/uni-table/readme.md new file mode 100644 index 00000000..bb08c791 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-table/readme.md @@ -0,0 +1,13 @@ + + +## Table 表单 +> 组件名:``uni-table``,代码块: `uTable`。 + +用于展示多条结构类似的数据 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-table) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + diff --git a/supervise-uniapp/uni_modules/uni-tag/changelog.md b/supervise-uniapp/uni_modules/uni-tag/changelog.md new file mode 100644 index 00000000..c0c5839b --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-tag/changelog.md @@ -0,0 +1,21 @@ +## 2.1.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-tag](https://uniapp.dcloud.io/component/uniui/uni-tag) +## 2.0.0(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +- 移除 插槽 +- 移除 type 属性的 royal 选项 +## 1.1.1(2021-08-11) +- type 不是 default 时,size 为 small 字体大小显示不正确 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-06-18) +- 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug +## 1.0.6(2021-06-04) +- 修复 未定义 sass 变量 "$uni-color-royal" 的bug +## 1.0.5(2021-05-10) +- 修复 royal 类型无效的bug +- 修复 uni-tag 宽度不自适应的bug +- 新增 uni-tag 支持属性 custom-style 自定义样式 +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-tag/components/uni-tag/uni-tag.vue b/supervise-uniapp/uni_modules/uni-tag/components/uni-tag/uni-tag.vue new file mode 100644 index 00000000..6378a0b9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-tag/components/uni-tag/uni-tag.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-tag/package.json b/supervise-uniapp/uni_modules/uni-tag/package.json new file mode 100644 index 00000000..18780886 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-tag/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-tag", + "displayName": "uni-tag 标签", + "version": "2.1.0", + "description": "Tag 组件,用于展示1个或多个文字标签,可点击切换选中、不选中的状态。", + "keywords": [ + "uni-ui", + "uniui", + "", + "tag", + "标签" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-tag/readme.md b/supervise-uniapp/uni_modules/uni-tag/readme.md new file mode 100644 index 00000000..6e78ff5e --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-tag/readme.md @@ -0,0 +1,13 @@ + + +## Tag 标签 +> **组件名:uni-tag** +> 代码块: `uTag` + + +用于展示1个或多个文字标签,可点击切换选中、不选中的状态 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tag) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/supervise-uniapp/uni_modules/uni-test/changelog.md b/supervise-uniapp/uni_modules/uni-test/changelog.md new file mode 100644 index 00000000..2f3b102c --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-test/changelog.md @@ -0,0 +1,39 @@ +## 2.0.13(2021-11-18) +邱 +## 2.0.12(2021-11-18) +123123 +## 2.0.11(2021-11-18) +0000 +## 2.0.10(2021-11-18) +111234 +## 2.0.9(2021-11-18) +3333 +## 2.0.8(2021-11-18) +=== +## 2.0.7(2021-11-18) +111 +## 2.0.6(2021-05-26) +- test +## 0.0.37(2021-03-23) +- uni-forms 更新 校验器 +- uni-forms 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug + + +## 0.0.36(2021-03-23) +- uni-forms 更新 校验器 +- uni-forms 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug + + +## 0.0.35(2021-03-23) +- uni-forms 更新 校验器 +- uni-forms 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug + + +## 0.0.34(2021-03-23) +- 测试新同步插件 +## 0.0.33(2021-03-09) +- test +## 0.0.32(2021-02-24) +- 更新 read 2 +## 0.0.31(2021-02-24) +- 同步 readme.md diff --git a/supervise-uniapp/uni_modules/uni-test/components/uni-test/uni-test.vue b/supervise-uniapp/uni_modules/uni-test/components/uni-test/uni-test.vue new file mode 100644 index 00000000..9ea8aaf7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-test/components/uni-test/uni-test.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-test/package.json b/supervise-uniapp/uni_modules/uni-test/package.json new file mode 100644 index 00000000..9a3c4c42 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-test/package.json @@ -0,0 +1,83 @@ +{ + "id": "uni-test", + "displayName": "Test 测试插件", + "version": "2.0.13", + "description": "测试插件 ", + "keywords": [ + "test" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.3" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uni-test/readme.md b/supervise-uniapp/uni_modules/uni-test/readme.md new file mode 100644 index 00000000..ddb24c62 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-test/readme.md @@ -0,0 +1,10 @@ + + +## DataCheckbox 数据驱动的单选复选框 +> **组件名:uni-data-checkbox** +> 代码块: `uDataCheckbox` + + +本组件是基于uni-app基础组件checkbox的封装。本组件要解决问题包括: + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-card) \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-title/changelog.md b/supervise-uniapp/uni_modules/uni-title/changelog.md new file mode 100644 index 00000000..76262165 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-title/changelog.md @@ -0,0 +1,10 @@ +## 1.1.1(2022-05-19) +- 修改组件描述 +## 1.1.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-title](https://uniapp.dcloud.io/component/uniui/uni-title) +## 1.0.2(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.1(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/supervise-uniapp/uni_modules/uni-title/components/uni-title/uni-title.vue b/supervise-uniapp/uni_modules/uni-title/components/uni-title/uni-title.vue new file mode 100644 index 00000000..bf4f9265 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-title/components/uni-title/uni-title.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-title/package.json b/supervise-uniapp/uni_modules/uni-title/package.json new file mode 100644 index 00000000..2249f5a1 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-title/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-title", + "displayName": "uni-title 章节标题", + "version": "1.1.1", + "description": "章节标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题", + "keywords": [ + "uni-ui", + "uniui", + "标题", + "章节", + "章节标题", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-title/readme.md b/supervise-uniapp/uni_modules/uni-title/readme.md new file mode 100644 index 00000000..0e60b1b9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-title/readme.md @@ -0,0 +1,14 @@ + + +## Title 标题 +> **组件名:uni-title** +> 代码块: `uTitle` + + +章节标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-title) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + diff --git a/supervise-uniapp/uni_modules/uni-tooltip/changelog.md b/supervise-uniapp/uni_modules/uni-tooltip/changelog.md new file mode 100644 index 00000000..00f1572d --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-tooltip/changelog.md @@ -0,0 +1,10 @@ +## 0.2.1(2022-05-09) +- 修复 content 为空时仍然弹出的bug +## 0.2.0(2022-05-07) +**注意:破坏性更新** +- 更新 text 属性变更为 content +- 更新 移除 width 属性 +## 0.1.1(2022-04-27) +- 修复 组件根 text 嵌套组件 warning +## 0.1.0(2022-04-21) +- 初始化 diff --git a/supervise-uniapp/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue b/supervise-uniapp/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue new file mode 100644 index 00000000..ffbb6fa5 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/supervise-uniapp/uni_modules/uni-tooltip/package.json b/supervise-uniapp/uni_modules/uni-tooltip/package.json new file mode 100644 index 00000000..e88ecf8d --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-tooltip/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-tooltip", + "displayName": "uni-tooltip 提示文字", + "version": "0.2.1", + "description": "Tooltip 提示文字", + "keywords": [ + "uni-tooltip", + "uni-ui", + "tooltip", + "tip", + "文字提示" + ], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无 ", + "data": "无", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "u", + "百度": "u", + "字节跳动": "u", + "QQ": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-tooltip/readme.md b/supervise-uniapp/uni_modules/uni-tooltip/readme.md new file mode 100644 index 00000000..faafa2ec --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-tooltip/readme.md @@ -0,0 +1,8 @@ +## Badge 数字角标 +> **组件名:uni-tooltip** +> 代码块: `uTooltip` + +数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tooltip) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/supervise-uniapp/uni_modules/uni-transition/changelog.md b/supervise-uniapp/uni_modules/uni-transition/changelog.md new file mode 100644 index 00000000..b1a824b8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-transition/changelog.md @@ -0,0 +1,20 @@ +## 1.3.1(2021-11-23) +- 修复 init 方法初始化问题 +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition) +## 1.2.1(2021-09-27) +- 修复 init 方法不生效的 Bug +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.1(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的 Bug +## 1.1.0(2021-04-22) +- 新增 通过方法自定义动画 +- 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式 +- 优化 动画触发逻辑,使动画更流畅 +- 优化 支持单独的动画类型 +- 优化 文档示例 +## 1.0.2(2021-02-05) +- 调整为 uni_modules 目录规范 diff --git a/supervise-uniapp/uni_modules/uni-transition/components/uni-transition/createAnimation.js b/supervise-uniapp/uni_modules/uni-transition/components/uni-transition/createAnimation.js new file mode 100644 index 00000000..5f54365e --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-transition/components/uni-transition/createAnimation.js @@ -0,0 +1,128 @@ +// const defaultOption = { +// duration: 300, +// timingFunction: 'linear', +// delay: 0, +// transformOrigin: '50% 50% 0' +// } +// #ifdef APP-NVUE +const nvueAnimation = uni.requireNativePlugin('animation') +// #endif +class MPAnimation { + constructor(options, _this) { + this.options = options + this.animation = uni.createAnimation(options) + this.currentStepAnimates = {} + this.next = 0 + this.$ = _this + + } + + _nvuePushAnimates(type, args) { + let aniObj = this.currentStepAnimates[this.next] + let styles = {} + if (!aniObj) { + styles = { + styles: {}, + config: {} + } + } else { + styles = aniObj + } + if (animateTypes1.includes(type)) { + if (!styles.styles.transform) { + styles.styles.transform = '' + } + let unit = '' + if(type === 'rotate'){ + unit = 'deg' + } + styles.styles.transform += `${type}(${args+unit}) ` + } else { + styles.styles[type] = `${args}` + } + this.currentStepAnimates[this.next] = styles + } + _animateRun(styles = {}, config = {}) { + let ref = this.$.$refs['ani'].ref + if (!ref) return + return new Promise((resolve, reject) => { + nvueAnimation.transition(ref, { + styles, + ...config + }, res => { + resolve() + }) + }) + } + + _nvueNextAnimate(animates, step = 0, fn) { + let obj = animates[step] + if (obj) { + let { + styles, + config + } = obj + this._animateRun(styles, config).then(() => { + step += 1 + this._nvueNextAnimate(animates, step, fn) + }) + } else { + this.currentStepAnimates = {} + typeof fn === 'function' && fn() + this.isEnd = true + } + } + + step(config = {}) { + // #ifndef APP-NVUE + this.animation.step(config) + // #endif + // #ifdef APP-NVUE + this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config) + this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin + this.next++ + // #endif + return this + } + + run(fn) { + // #ifndef APP-NVUE + this.$.animationData = this.animation.export() + this.$.timer = setTimeout(() => { + typeof fn === 'function' && fn() + }, this.$.durationTime) + // #endif + // #ifdef APP-NVUE + this.isEnd = false + let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref + if(!ref) return + this._nvueNextAnimate(this.currentStepAnimates, 0, fn) + this.next = 0 + // #endif + } +} + + +const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', + 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', + 'translateZ' +] +const animateTypes2 = ['opacity', 'backgroundColor'] +const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'] +animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => { + MPAnimation.prototype[type] = function(...args) { + // #ifndef APP-NVUE + this.animation[type](...args) + // #endif + // #ifdef APP-NVUE + this._nvuePushAnimates(type, args) + // #endif + return this + } +}) + +export function createAnimation(option, _this) { + if(!_this) return + clearTimeout(_this.timer) + return new MPAnimation(option, _this) +} diff --git a/supervise-uniapp/uni_modules/uni-transition/components/uni-transition/uni-transition.vue b/supervise-uniapp/uni_modules/uni-transition/components/uni-transition/uni-transition.vue new file mode 100644 index 00000000..a2bf104e --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-transition/components/uni-transition/uni-transition.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uni-transition/package.json b/supervise-uniapp/uni_modules/uni-transition/package.json new file mode 100644 index 00000000..d15fdf01 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-transition/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-transition", + "displayName": "uni-transition 过渡动画", + "version": "1.3.1", + "description": "元素的简单过渡动画", + "keywords": [ + "uni-ui", + "uniui", + "动画", + "过渡", + "过渡动画" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-transition/readme.md b/supervise-uniapp/uni_modules/uni-transition/readme.md new file mode 100644 index 00000000..2f8a77e1 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-transition/readme.md @@ -0,0 +1,11 @@ + + +## Transition 过渡动画 +> **组件名:uni-transition** +> 代码块: `uTransition` + + +元素过渡动画 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-transition) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-ui/changelog.md b/supervise-uniapp/uni_modules/uni-ui/changelog.md new file mode 100644 index 00000000..2eb27ddc --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-ui/changelog.md @@ -0,0 +1,473 @@ +## 1.4.23(2022-10-25) +- uni-datetime-picker 修复,支付宝小程序样式错乱,[详情](https://github.com/dcloudio/uni-app/issues/3861) + +- uni-nav-bar 修复 条件编译错误的bug +- uni-nav-bar 修复 nvue 环境 fixed 为 true 的情况下,无法置顶的 bug +## 1.4.22(2022-09-19) +- 优化 部分组件适配 uni-scss 主题色 +- uni-badge 修复 当 text 超过 max-num 时,badge 的宽度计算是根据 text 的长度计算,更改为 css 计算实际展示宽度,详见:[https://ask.dcloud.net.cn/question/150473](https://ask.dcloud.net.cn/question/150473) +- uni-calendar 修复 表头年月切换,导致改变当前日期为选择月1号,且未触发change事件 +- uni-data-select 修复 微信小程序下拉框出现后选择会点击到蒙板后面的输入框 +- uni-data-select 修复 点击的位置不准确 +- uni-data-select 新增 支持 disabled 属性 +- uni-datetime-picker 修复,反向选择日期范围,日期显示异常,[详情](https://ask.dcloud.net.cn/question/153401?item_id=212892&rf=false) +- uni-datetime-picker 修复 close事件无效的 bug +- uni-datetime-picker 修复 移动端 maskClick 无效的 bug,详见:[https://ask.dcloud.net.cn/question/140824?item_id=209458&rf=false](https://ask.dcloud.net.cn/question/140824?item_id=209458&rf=false) +- uni-fab 修复 小程序端由于 style 使用了对象导致报错,[详情](https://ask.dcloud.net.cn/question/152790?item_id=211778&rf=false) +- uni-fab 修复 nvue 环境下,具有 tabBar 时,fab 组件下部位置无法正常获取 --window-bottom 的bug,详见:[https://ask.dcloud.net.cn/question/110638?notification_id=826310](https://ask.dcloud.net.cn/question/110638?notification_id=826310) +- uni-forms 优化 根据 rules 自动添加 required 的问题 +- uni-forms 修复 item 未设置 require 属性,rules 设置 require 后,星号也显示的 bug,详见:[https://ask.dcloud.net.cn/question/151540](https://ask.dcloud.net.cn/question/151540) +- uni-nav-bar 修复 nvue 环境下 fixed 为 true 的情况下,无法置顶的 bug +- uni-notice-bar 新增 属性 fontSize,可修改文字大小。 +- uni-pagination 修复,未对主题色设置默认色,导致未引入 uni-scss 变量文件报错。 +- uni-pagination 修复,未对移动端当前页文字做主题色适配。 +- uni-pagination 修复 es 语言 i18n 错误 +## 1.4.21(2022-09-19) +- 修复,安装时未导入 uni-data-select 和 uni-tooltip 的问题。 +## 1.4.20(2022-07-25) +- uni-section 新增组件 +- uni-forms 修复 model 需要校验的值没有声明对应字段时,导致第一次不触发校验的bug + +## 1.4.19(2022-07-07) +- uni-data-picker 优化 pc端图标位置不正确的问题 +- uni-data-select 修复 pc端宽度异常的bug +## 1.4.18(2022-07-06) +- uni-forms 【重要】组件逻辑重构,部分用法旧版本不兼容,请注意兼容问题 +- uni-forms 【重要】组件使用 Provide/Inject 方式注入依赖,提供了自定义表单组件调用 uni-forms 校验表单的能力 +- uni-forms 新增 更多表单示例 +- uni-forms 新增 model 属性,等同于原 value/modelValue 属性,旧属性即将废弃 +- uni-forms 新增 validateTrigger 属性的 blur 值,仅 uni-easyinput 生效 +- uni-forms 新增 onFieldChange 方法,可以对子表单进行校验,可替代binddata方法 +- uni-forms 新增 子表单的 setRules 方法,配合自定义校验函数使用 +- uni-forms 新增 uni-forms-item 的 setRules 方法,配置动态表单使用可动态更新校验规则 +- uni-forms 修复 由 1.4.0 引发的 label 插槽不生效的bug +- uni-forms 修复 子组件找不到 setValue 报错的bug +- uni-forms 修复 uni-data-picker 在 uni-forms-item 中报错的bug +- uni-forms 修复 uni-data-picker 在 uni-forms-item 中宽度不正确的bug +- uni-forms 修复 表单校验顺序无序问题 +- uni-forms 优化 子表单组件uni-datetime-picker、uni-data-select、uni-data-picker的显示样式 +- uni-forms 优化 动态表单校验方式,废弃拼接name的方式 +- uni-breadcrumb 修复 微信小程序 separator 不显示问题 +- uni-data-checkbox 优化 在 uni-forms 中的依赖注入方式 +- uni-data-picker 修复 uni-data-picker 在 uni-forms-item 中宽度不正确的bug +- uni-data-picker 优化 显示样式 +- uni-data-select 优化 显示样式 +- uni-datetime-picker 修复 日历顶部年月及底部确认未国际化 bug +- uni-datetime-picker 优化 组件样式,调整了组件图标大小、高度、颜色等,与uni-ui风格保持一致 +- uni-easyinput 新增 在 uni-forms 1.4.0 中使用可以在 blur 时校验内容 +- uni-easyinput 新增 clear 事件,点击右侧叉号图标触发 +- uni-easyinput 新增 change 事件 ,仅在输入框失去焦点或用户按下回车时触发 +- uni-easyinput 优化 组件样式,组件获取焦点时高亮显示,图标颜色调整等 +- uni-easyinput 优化 clearable 显示策略 +- uni-file-picker 修复 在uni-forms下样式不生效的bug +- uni-nav-bar 修复 组件示例中插槽用法无法显示内容的bug +- uni-swipe-action 修复 vue3 下使用组件不能正常运行的Bug +- uni-swipe-action 修复 h5端点击click触发两次的Bug +- uni-table 修复 微信小程序存在无使用组件的问题 +## 1.4.17(2022-06-30) +- 支持 ios 安全区 +## 1.4.16(2022-06-06) +- uni-breadcrumb 新增 支持 uni.scss 修改颜色 +- uni-data-select 修复 localdata 赋值不生效的 bug +- uni-data-select 新增 支持选项禁用(数据选项设置 disabled: true 即禁用) +- uni-data-select 修复 当 value 为 0 时选择不生效的 bug +- uni-easyinput 修复 关闭图标某些情况下无法取消的bug +- uni-fav 新增 stat 属性 ,是否开启uni统计功能 +- uni-goods-nav 新增 stat属性,是否开启uni统计功能 +- uni-group 新增 stat属性,是否开启uni统计功能 +- uni-nav-bar 新增 stat 属性 ,可开启统计 title 上报 ,仅使用了title 属性且项目开启了uni统计生效 +- uni-search-bar 新增 readonly 属性,组件只读 +- uni-swipe-action 修复 isPC 找不到的Bug +- uni-swipe-action 修复 在 nvue 下 disabled 失效的bug +- uni-tooltip 修复 content 为空时仍然弹出的bug +## 1.4.15(2022-05-07) +- uni-data-picker 修复 字节小程序 本地数据无法选择下一级的Bug +- uni-data-select 新增 记住上次的选项(仅 collection 存在时有效) +- uni-search-bar 修复 vue3 input 事件不生效的bug +- uni-search-bar 修复 多余代码导致的bug +- uni-tooltip 更新 text 属性变更为 content +- uni-tooltip 更新 移除 width 属性 +- uni-tooltip 修复 组件根 text 嵌套组件 warning +## 1.4.14(2022-04-18) +- uni-datetime-picker 修复 Vue3 下动态赋值,单选类型未响应的 bug +- uni-easyinput 修复 默认值不生效的bug +## 1.4.13(2022-04-02) +- uni-calendar 修复 条件编译 nvue 不支持的 css 样式 +- uni-calendar 修复 startDate、 endDate 属性失效的 bug +- uni-data-picker 修复 nvue 不支持的 v-show 的 bug +- uni-data-picker 修复 条件编译 nvue 不支持的 css 样式 +- uni-datetime-picker 修复 Vue3 下动态赋值未响应的 bug +- uni-easyinput 修复 value不能为0的bug +- uni-popup 修复 弹出层内部无法滚动的bug +- uni-popup 修复 小程序中高度错误的bug +- uni-popup 修复 快速调用open出现问题的Bug +- uni-rate 修复 条件判断 `NaN` 错误的 bug +- uni-swipe-action 修复 按钮字体大小不能设置的bug +- uni-swipe-action 修复 h5和app端下报el错误的bug +- uni-swipe-action 修复 HBuilderX 1.4.X 版本中,h5和app端下报错的bug +## 1.4.12(2022-02-19) +- uni-collapse 修复 初始化的时候 ,open 属性失效的bug +- uni-data-checkbox 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug +- uni-icons 优化 size 属性可以传入不带单位的字符串数值 +- uni-icons 优化 size 支持其他单位 +- uni-nav-bar 新增 left-width/right-width属性 ,可修改左右两侧的宽度 +- uni-popup 修复 safeArea 属性不能设置为false的bug +## 1.4.11(2022-01-21) +- uni-collapse 修复 微信小程序resize后组件收起的bug +- uni-countdown 修复 在微信小程序中样式不生效的bug +- uni-countdown 新增 update 方法 ,在动态更新时间后,刷新组件 +- uni-load-more 新增 showText属性 ,是否显示文本 +- uni-load-more 修复 nvue 平台下不显示文本的bug +- uni-load-more 修复 微信小程序平台样式选择器报警告的问题 +- uni-nav-bar 修复 在vue下,标题不垂直居中的bug +- uni-nav-bar 修复 height 属性类型错误 +- uni-nav-bar 新增 height 属性,可修改组件高度 +- uni-nav-bar 新增 dark 属性可可开启暗黑模式 +- uni-nav-bar 优化 标题字数过多显示省略号 +- uni-nav-bar 优化 插槽,插入内容可完全覆盖 +- uni-popup 修复 isMaskClick 失效的bug +- uni-popup 新增 cancelText \ confirmText 属性 ,可自定义文本 +- uni-popup 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色 +- uni-popup 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题 + +## 1.4.10(2022-01-17) +- uni-card 修复 在vue页面下略缩图显示不正常的bug +- uni-datetime-picker 修复 clear-icon 属性在小程序平台不生效的 bug +- uni-datetime-picker 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug +- uni-fab 更新 组件依赖 +- +- uni-icons 修复 nvue 有些图标不显示的bug,兼容老版本图标 +- uni-icons 优化 示例可复制图标名称 +- uni-nav-bar 修复 color 属性不生效的bug +- uni-popup 修复 设置 safeArea 属性不生效的bug +- uni-popup 优化 组件示例 +- uni-popup 修复 vuedoc 文字错误 +## 1.4.9(2021-11-23) +- uni-ui 修复 vue3中某些scss变量无法找到的问题 +- uni-combox 优化 label、label-width 属性 +- uni-data-picker 修复 由上个版本引发的map、v-model等属性不生效的bug +- uni-file-picker 修复 参数为对象的情况下,url在某些情况显示错误的bug +- uni-icons 优化 兼容旧组件 type 值 +- uni-list 修复 在vue3中to属性在发行应用的时候报错的bug +- uni-scss 修复 vue3中scss语法兼容问题 +- uni-transition 修复 init 方法初始化问题 +## 1.4.8(2021-11-19) +- uni-fab 修复 阴影颜色不正确的bug +## 1.4.7(2021-11-19) +- uni-ui 新增 支持国际化 +- uni-ui 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- uni-ui 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-ui](https://uniapp.dcloud.io/component/uniui/uni-ui) +- uni-badge 修改 size 属性默认值调整为 small +- uni-badge 修改 type 属性,默认值调整为 error,info 替换 default +- uni-badge 修复 在字节小程序上样式不生效的 bug +- uni-calendar 修复 弹出层被 tabbar 遮盖 bug +- uni-card 重构插槽的用法 ,header 替换为 title +- uni-card 新增 actions 插槽 +- uni-card 新增 cover 封面图属性和插槽 +- uni-card 新增 padding 内容默认内边距离 +- uni-card 新增 margin 卡片默认外边距离 +- uni-card 新增 spacing 卡片默认内边距 +- uni-card 新增 shadow 卡片阴影属性 +- uni-card 取消 mode 属性,可使用组合插槽代替 +- uni-card 取消 note 属性 ,使用actions插槽代替 +- uni-collapse 优化 show-arrow 属性默认为true +- uni-collapse 新增 show-arrow 属性,控制是否显示右侧箭头 +- uni-countdown 新增 font-size 支持自定义字体大小 +- uni-data-checkbox 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题 +- uni-data-checkbox 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 +- uni-data-checkbox 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-dateformat 优化 默认时间不再是当前时间,而是显示'-'字符 +- uni-datetime-picker 修复 hide-second 在移动端的 bug +- uni-datetime-picker 修复 单选赋默认值时,赋值日期未高亮的 bug +- uni-datetime-picker 修复 赋默认值时,移动端未正确显示时间的 bug +- uni-datetime-picker 新增 hide-second 属性,支持只使用时分,隐藏秒 +- uni-datetime-picker 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 +- uni-datetime-picker 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 +- uni-datetime-picker 优化 调整字号大小,美化日历界面 +- uni-datetime-picker 优化 范围选择器在 pc 端过宽的问题 +- uni-datetime-picker 新增 支持作为 uni-forms 子组件相关功能 +- uni-datetime-picker 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug +- uni-datetime-picker 修复 type 属性动态赋值无效的 bug +- uni-datetime-picker 修复 ‘确认’按钮被 tabbar 遮盖 bug +- uni-datetime-picker 修复 组件未赋值时范围选左、右日历相同的 bug +- uni-datetime-picker 修复 范围选未正确显示当前值的 bug +- uni-datetime-picker 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug +- uni-easyinput 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug +- uni-easyinput 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-file-picker 新增 参数中返回 fileID 字段 +- uni-file-picker 修复 腾讯云传入fileID 不能回显的bug +- uni-file-picker 修复 选择图片后,不能放大的问题 +- uni-file-picker 修复 由于 0.2.11 版本引起的不能回显图片的Bug +- uni-file-picker 新增 clearFiles(index) 方法,可以手动删除指定文件 +- uni-file-picker 修复 v-model 值设为 null 报错的Bug +- uni-file-picker 修复 return-type="object" 时,无法删除文件的Bug +- uni-file-picker 修复 auto-upload 属性失效的Bug +- uni-forms 修复 label 插槽不生效的bug +- uni-forms 修复 没有添加校验规则的字段依然报错的Bug +- uni-forms 修复 重置表单错误信息无法清除的问题 +- uni-forms 修复 表单验证只生效一次的问题 +- uni-icons 新增 更多图标 +- uni-icons 优化 自定义图标使用方式 +- uni-link 修复 在 nvue 下不显示的 bug +- uni-pagination 修复 current 、value 属性未监听,导致高亮样式失效的 bug +- uni-rate 优化 默认值修改为 0 颗星 +- uni-search-bar 修复 value 属性与 modelValue 属性不兼容的Bug +- uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件 +- uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 +- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 +- uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 +- uni-tag 新增 提供组件设计资源,组件样式调整 +- uni-tag 移除 插槽 +- uni-tag 移除 type 属性的 royal 选项 +- uni-tag type 不是 default 时,size 为 small 字体大小显示不正确 +## 1.4.2(2021-08-20) +- 新增 uni-ui 组件支持国际化 i18n +- uni-collapse 优化 show-arrow 属性默认为true +- uni-collapse 新增 show-arrow 属性,控制是否显示右侧箭头 +- uni-data-checkbox 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 +- uni-easyinput 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug +- uni-file-picker 修复 由于 0.2.11 版本引起的不能回显图片的Bug +- uni-file-picker 新增 clearFiles(index) 方法,可以手动删除指定文件 +- uni-file-picker 修复 v-model 值设为 null 报错的Bug +- uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件 +- uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 +- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 +- uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 +## 1.4.0(2021-08-13) +- uni-calendar 修复 弹出层被 tabbar 遮盖 bug +- uni-data-checkbox 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-dateformat 调整 默认时间不再是当前时间,而是显示'-'字符 +- uni-datetime-picker 新增 适配 vue3 +- uni-datetime-picker 新增 支持作为 uni-forms 子组件相关功能 +- uni-datetime-picker 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug +- uni-datetime-picker 修复 type 属性动态赋值无效的 bug +- uni-datetime-picker 修复 ‘确认’按钮被 tabbar 遮盖 bug +- uni-datetime-picker 修复 组件未赋值时范围选左、右日历相同的 bug +- uni-datetime-picker 修复 范围选未正确显示当前值的 bug +- uni-datetime-picker 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug +- uni-easyinput 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-file-picker 修复 return-type="object" 时,无法删除文件的Bug +- uni-file-picker 修复 auto-upload 属性失效的Bug +- uni-forms 修复 没有添加校验规则的字段依然报错的Bug +- uni-forms 修复 重置表单错误信息无法清除的问题 +- uni-forms 优化 组件文档 +- uni-forms 修复 表单验证只生效一次的问题 +- uni-tag type 不是 default 时,size 为 small 字体大小显示不正确 +## 1.3.9(2021-08-02) +- uni-datetime-picker 新增 return-type 属性支持返回 date 日期对象 +- uni-file-picker 修复 fileExtname属性不指定值报错的Bug +- uni-file-picker 修复 在某种场景下图片不回显的Bug +- uni-link 支持自定义插槽 +## 1.3.8(2021-07-31) +- uni-ui 组件兼容 vue3 +- uni-collapse 修复 由1.2.0版本引起的 change 事件返回 undefined 的Bug +- uni-collapse 优化 组件示例 +- uni-collapse 新增 组件折叠动画 +- uni-collapse 新增 value\v-model 属性 ,动态修改面板折叠状态 +- uni-collapse 新增 title 插槽 ,可定义面板标题 +- uni-collapse 新增 border 属性 ,显示隐藏面板内容分隔线 +- uni-collapse 新增 title-border 属性 ,显示隐藏面板标题分隔线 +- uni-collapse 修复 resize 方法失效的Bug +- uni-collapse 修复 change 事件返回参数不正确的Bug +- uni-collapse 优化 H5、App 平台自动更具内容更新高度,无需调用 reszie() 方法 +- uni-data-checkbox 优化 在uni-forms组件,与label不对齐的问题 +- uni-data-checkbox 修复 单选默认值为0不能选中的Bug +- uni-easyinput 优化 errorMessage 属性支持 Boolean 类型 +- uni-file-picker 修复 return-type为object下,返回值不正确的Bug +- uni-file-picker 修复(重要) H5 平台下如果和uni-forms组件一同使用导致页面卡死的问题 +- uni-file-picker 优化 h5平台下上传文件导致页面卡死的问题 +- uni-forms 修复 vue2 下条件编译导致destroyed生命周期失效的Bug +- uni-forms 修复 1.2.1 引起的示例在小程序平台报错的Bug +- uni-forms 修复 动态校验表单,默认值为空的情况下校验失效的Bug +- uni-forms 修复 不指定name属性时,运行报错的Bug +- uni-forms 优化 label默认宽度从65调整至70,使required为true且四字时不换行 +- uni-forms 优化 组件示例,新增动态校验示例代码 +- uni-forms 优化 组件文档,使用方式更清晰 +- uni-list 修复 与其他组件嵌套使用时,点击失效的Bug +- uni-swipe-action 修复 跨页面修改组件数据 ,导致不能滑动的问题 +## 1.3.7(2021-07-16) +- uni-ui 兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +- uni-datetime-picker 修复 单选日期类型,初始赋值后不在当前日历的 bug +- uni-datetime-picker 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效) +- uni-datetime-picker 优化 移动端移除显示框的清空按钮,无实际用途 +- uni-datetime-picker 修复 组件赋值为空,界面未更新的 bug +- uni-datetime-picker 修复 start 和 end 不能动态赋值的 bug +- uni-datetime-picker 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的 bug +## 1.3.6(2021-07-09) +- uni-data-checkbox 优化 删除无用日志 +- uni-data-checkbox 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题 +- uni-data-checkbox 修复 nvue 黑框样式问题 +- uni-datetime-picker 修复 范围选择不能动态赋值的 bug +- uni-datetime-picker 修复 范围选择的初始时间在一个月内时,造成无法选择的bug +- uni-datetime-picker 优化 弹出层在超出视窗边缘定位不准确的问题 +- uni-datetime-picker 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的 bug +- uni-datetime-picker 优化 弹出层在超出视窗边缘被遮盖的问题 +- uni-datetime-picker 新增 maskClick 事件 +- uni-datetime-picker 修复 特殊情况日历 rpx 布局错误的 bug,rpx -> px +- uni-datetime-picker 修复 范围选择时清空返回值不合理的bug,['', ''] -> [] +- uni-datetime-picker 新增 日期时间显示框支持插槽 +- uni-file-picker 修复 sourceType 缺少默认值导致 ios 无法选择文件 +- uni-file-picker 优化 解耦与uniCloud的强绑定关系 ,如不绑定服务空间,默认autoUpload为false且不可更改 +- uni-table 新增 uni-th 支持 date 日期筛选范围 +- uni-table 新增 uni-th 支持 range 筛选范围 +- uni-table 新增 uni-th 筛选功能 +## 1.3.5(2021-07-02) +- uni-card 优化 图文卡片无图片加载时,提供占位图标 +- uni-card 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持) +- uni-card 修复 thumbnail 不存在仍然占位的 bug +- uni-data-checkbox 修复 selectedTextColor 属性不生效的Bug +- uni-datetime-picker 优化 添加 uni-icons 依赖 +- uni-easyinput 修复 confirmType 属性(仅 type="text" 生效)导致多行文本框无法换行的 bug +- uni-file-picker 修复 由 0.0.10 版本引发的 returnType 属性失效的问题 +- uni-file-picker 优化 文件上传后进度条消失时机 +- uni-file-picker 修复 在uni-forms 中,删除文件 ,获取的值不对的Bug +- uni-forms 修复 pattern 属性在微信小程序平台无效的问题 +## 1.3.4(2021-06-25) +- uni-badge 优化 示例项目 +- uni-countdown 修复 uni-countdown 重复赋值跳两秒的 bug +- uni-easyinput 修复 passwordIcon 属性拼写错误的 bug +- uni-forms 修复 validate-trigger属性为submit且err-show-type属性为toast时不能弹出的Bug +- uni-forms 修复 只写setRules方法而导致校验不生效的Bug +- uni-forms 修复 由上个办法引发的错误提示文字错位的Bug +- uni-forms 修复 不设置 label 属性 ,无法设置label插槽的问题 +- uni-forms 修复 不设置label属性,label-width属性不生效的bug +- uni-forms 修复 setRules 方法与rules属性冲突的问题 +- uni-link 新增 download 属性,H5平台下载文件名 +- uni-popup 新增 mask-click 遮罩层点击事件 +- uni-popup 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +- uni-tag 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug +## 1.3.3(2021-06-18) +- uni-easyinput 新增 passwordIcon 属性,当type=password时是否显示小眼睛图标 +- uni-easyinput 修复 confirmType 属性不生效的问题 +- uni-easyinput 修复 disabled 状态可清出内容的 bug +- uni-file-picker 修复 删除文件时无法触发 v-model 的Bug +- uni-popup 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +- uni-popup 修复 错误的 watch 字段 +- uni-popup 修复 safeArea 属性不生效的问题 +- uni-popup 修复 点击内容,再点击遮罩无法关闭的Bug +## 1.3.2(2021-06-04) +- uni-data-checkbox 新增 map 属性,可以方便映射text/value属性 +- uni-data-checkbox 修复 不关联服务空间的情况下组件报错的Bug +- uni-data-picker 修复 上个版本引出的本地数据无法选择带有children的2级节点 +- uni-forms 修复 动态删减数据导致报错的问题 +- uni-forms 新增 modelValue 属性 ,value 即将废弃 +- uni-forms 新增 uni-forms-item 可以设置单独的 rules +- uni-forms 新增 validate 事件增加 keepitem 参数,可以选择那些字段不过滤 +- uni-forms 优化 submit 事件重命名为 validate +- uni-data-picker 修复 无法加载云端数据的问题 +- uni-data-picker 修复 v-model无效问题 +- uni-data-picker 修复 loaddata 为空数据组时加载时间过长问题 +- uni-datetime-picker 修复 图标在小程序上不显示的 bug +- uni-datetime-picker 优化 重命名引用组件,避免潜在组件命名冲突 +- uni-datetime-picker 优化 代码目录扁平化 +- uni-tag 修复 未定义 sass 变量 "$uni-color-royal" 的bug +## 1.3.1(2021-05-14) +- uni-badge 新增 uni-badge 的 absolute 属性,支持定位 +- uni-badge 新增 uni-badge 的 offset 属性,支持定位偏移 +- uni-badge 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点 +- uni-badge 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+ +- uni-badge 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式 +- uni-badge 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug +- uni-badge 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug +- uni-badge 新增 uni-badge 属性 custom-style, 支持自定义样式 +- uni-datetime-picker 修复 ios 下不识别 '-' 日期格式的 bug +- uni-datetime-picker 优化 pc 下弹出层添加边框和阴影 +- uni-datetime-picker 修复 在 admin 中获取弹出层定位错误的bug +- uni-datetime-picker 修复 type 属性向下兼容,默认值从 date 变更为 datetime +- uni-datetime-picker 支持日历形式的日期+时间的范围选择 +- uni-steps 修复 uni-steps 横向布局时,多行文字高度不合理的 bug +- uni-countdown 修复 uni-countdown 不能控制倒计时的 bug +- uni-tag 修复 royal 类型无效的bug +- uni-tag 修复 uni-tag 宽度不自适应的bug +- uni-tag 新增 uni-tag 支持属性 custom-style 自定义样式 +- uni-link 新增 href 属性支持 tel:|mailto: +- uni-popup 修复 组件内放置 input 、textarea 组件,无法聚焦的问题 +- uni-popup 新增 type 属性的 left\right 值,支持左右弹出 +- uni-popup 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗 +- uni-popup 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色 +- uni-popup 新增 safeArea 属性,是否适配底部安全区 +- uni-popup 修复 App\h5\微信小程序底部安全区占位不对的Bug +- uni-popup 修复 App 端弹出等待的Bug +- uni-popup 优化 提升低配设备性能,优化动画卡顿问题 +- uni-popup 优化 更简单的组件自定义方式 +- uni-table 修复 示例项目缺少组件的Bug +- uni-forms 修复 自定义检验器失效的问题 +- uni-title 修复 示例项目缺少组件的Bug +- uni-transition 修复 示例项目缺少组件的Bug +- uni-swiper-dot 修复 示例项目缺少组件的Bug +- uni-ui 新增 组件示例地址 +## 1.3.0(2021-04-23) +- uni-combox 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-data-picker 修复 非树形数据有 where 属性查询报错的问题 +- uni-fav 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-goods-nav 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-nav-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-notice-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-number-box 修复 uni-number-box 浮点数运算不精确的 bug +- uni-number-box 修复 uni-number-box change 事件触发不正确的 bug +- uni-number-box 新增 uni-number-box v-model 双向绑定 +- uni-rate 修复 布局变化后 uni-rate 星星计算不准确的 bug +- uni-rate 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖 +- uni-search-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-steps 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-transition 新增 通过方法自定义动画 +- uni-transition 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式 +- uni-transition 优化 动画触发逻辑,使动画更流畅 +- uni-transition 优化 支持单独的动画类型 +- uni-transition 优化 文档示例 +## 1.2.13(2021-04-16) +- uni-ui 新增 uni-data-picker 支持云端非树形表结构数据 +- uni-ui 修复 uni-data-checkbox nvue 下无法选中的问题 +- uni-ui 修复 uni-data-picker 根节点 parent_field 字段等于null时选择界面错乱问题 +- uni-ui 修复 uni-file-picker 选择的文件非 file-extname 字段指定的扩展名报错的Bug +- uni-ui 修复 uni-swipe-action 报错 nv_navigator is not defined 的bug +- uni-ui 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug +- uni-ui 优化 uni-file-picker file-extname 字段支持字符串写法,多个扩展名需要用逗号分隔 +- uni-ui 优化 uni-pagination PC 和 移动端适配不同的 ui +- uni-ui 更新 uni-file-picker 组件示例 +- uni-ui 修复 uni-nav-bar 当 fixed 属性为 true 时铺不满屏幕的 bug +- uni-ui 新增 uni-search-bar 的 focus 事件 +- uni-ui 修复 uni-rate 属性 margin 值为 string 组件失效的 bug +- uni-data-picker 修复 本地数据概率无法回显时问题 +- uni-table 新增 sortable 属性,是否开启单列排序 +- uni-table 优化 表格多选逻辑 +## 1.2.12(2021-03-23) +- uni-ui 新增 uni-datetime-picker 的 hide-second 属性、border 属性; +- uni-ui 修复 uni-datetime-picker 选择跟显示的日期不一样的 bug, +- uni-ui 修复 uni-datetime-picker change事件触发2次的 bug +- uni-ui 修复 uni-datetime-picker 分、秒 end 范围错误的 bug +- uni-ui 新增 uni-tr selectable 属性,用于 type=selection 时,设置某行是否可由全选按钮控制 +- uni-ui 新增 uni-data-checkbox 新增 disabled属性,支持nvue +- uni-ui 优化 uni-data-checkbox 无选项时提示“暂无数据” +- uni-ui 优化 uni-data-checkbox 默认颜色显示 +- uni-ui 新增 uni-link href 属性支持 tel:|mailto: +- uni-ui 新增 uni-table 示例demo +- uni-ui 修复 uni-data-picker 微信小程序某些情况下无法选择的问题,事件无法触发的问题 +- uni-ui 修复 uni-nav-bar easycom 下,找不到 uni-status-bar 的bug +- uni-ui 修复 uni-easyinput 示例在 qq 小程序上的bug +- uni-ui 修复 uni-forms 动态显示uni-forms-item的情况下,submit 方法获取值错误的Bug +- uni-ui 调整 cli 项目 建议使用 easycom 方式引用组件,如使用按需引用,需手动维护组件内部引用 + +## 1.2.11(2021-02-24) +- 调整为uni_modules目录规范 +- uni-data-picker 新增 数据驱动的picker选择器 +- uni-file-picker 新增 文件选择上传 +- uni-row 新增 栅格系统 +- uni-data-checkbox 优化 支持 nvue +- uni-forms 修复 偶发性获取表单值错误的Bug +- uni-forms 修复 校验 uni-data-picker value 为 0 时,返回值错误的Bug +- uni-forms 修复 uni-forms-item 组件隐藏时依然触发校验的bug +- uni-forms 优化 实时校验 +- uni-forms 优化 兼容nvue页面 +- uni-easyinput 优化 兼容nvue页面 +- uni-group 优化 兼容nvue页面 +- uni-popup 优化 组件适配 PC +- uni-fab 优化 适配 PC +- uni-swiper-dot 优化 适配 PC +- uni-rate 优化 适配 PC +- uni-notice-bar 优化 适配 PC +- uni-indexed-list 优化 适配 PC +- uni-combox 优化 适配 PC +- uni-transition 优化 适配 PC +- uni-nav-bar 优化 适配 PC +- uni-swipe-action 优化 适配 PC diff --git a/supervise-uniapp/uni_modules/uni-ui/components/uni-ui/uni-ui.vue b/supervise-uniapp/uni_modules/uni-ui/components/uni-ui/uni-ui.vue new file mode 100644 index 00000000..0970892f --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-ui/components/uni-ui/uni-ui.vue @@ -0,0 +1,7 @@ + + + diff --git a/supervise-uniapp/uni_modules/uni-ui/package.json b/supervise-uniapp/uni_modules/uni-ui/package.json new file mode 100644 index 00000000..84079404 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-ui/package.json @@ -0,0 +1,129 @@ +{ + "id": "uni-ui", + "displayName": "uni-ui", + "version": "1.4.23", + "description": "uni-ui 是基于uni-app的、全端兼容的、高性能UI框架", + "keywords": [ + "uni-ui", + "uniui", + "UI组件库", + "ui框架", + "ui库" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.10" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [ + "uni-badge", + "uni-calendar", + "uni-card", + "uni-collapse", + "uni-combox", + "uni-countdown", + "uni-data-checkbox", + "uni-data-picker", + "uni-data-select", + "uni-dateformat", + "uni-datetime-picker", + "uni-drawer", + "uni-easyinput", + "uni-fab", + "uni-fav", + "uni-file-picker", + "uni-forms", + "uni-goods-nav", + "uni-grid", + "uni-group", + "uni-icons", + "uni-indexed-list", + "uni-link", + "uni-list", + "uni-load-more", + "uni-nav-bar", + "uni-notice-bar", + "uni-number-box", + "uni-pagination", + "uni-popup", + "uni-rate", + "uni-row", + "uni-search-bar", + "uni-section", + "uni-segmented-control", + "uni-steps", + "uni-swipe-action", + "uni-swiper-dot", + "uni-table", + "uni-tag", + "uni-title", + "uni-tooltip", + "uni-transition" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uni-ui/readme.md b/supervise-uniapp/uni_modules/uni-ui/readme.md new file mode 100644 index 00000000..23f84568 --- /dev/null +++ b/supervise-uniapp/uni_modules/uni-ui/readme.md @@ -0,0 +1,247 @@ +> 当前插件不包含示例页面 ,如需示例请在 HBuiderX 中新建 `hello uni-app > 扩展组件` 中查看 +> +> 代码示例地址 :[https://ext.dcloud.net.cn/plugin?id=4941](https://ext.dcloud.net.cn/plugin?id=4941) +> +> 组件演示地址:[https://hellouniapp.dcloud.net.cn](https://hellouniapp.dcloud.net.cn/pages/extUI/badge/badge) +> +> 组件文档地址:[https://uniapp.dcloud.io/component/uniui/uni-ui](https://uniapp.dcloud.io/component/uniui/uni-ui) + +# uni-ui 介绍 + +## uni-ui产品特点 + +### 1. 高性能 + +目前为止,在小程序和混合app领域,暂时还没有比 `uni-ui` 更高性能的框架。 +- 自动差量更新数据 + +虽然uni-app支持小程序自定义组件,所有小程序的ui库都可以用。但小程序自定义组件的ui库都需要使用setData手动更新数据,在大数据量时、或高频更新数据时,很容易产生性能问题。 + +而 `uni-ui` 属于vue组件,uni-app引擎底层自动diff更新数据。当然其实插件市场里众多vue组件都具备这个特点。 +- 优化逻辑层和视图层通讯折损 + +非H5,不管是小程序还是App,不管是app的webview渲染还是原生渲染,全都是逻辑层和视图层分离的。这里就有一个逻辑层和视图层通讯的折损问题。 +比如在视图层拖动一个可跟手的组件,由于通讯的损耗,用js监听很难做到实时跟手。 + +这时就需要使用css动画以及平台底层提供的wxs、bindingx等技术。不过这些技术都比较复杂,所以 `uni-ui` 里做了封装,在需要跟手式操作的ui组件,比如swiperaction列表项左滑菜单,就在底层使用了这些技术,实现了高性能的交互体验 +- 背景停止 + +很多ui组件是会一直动的,比如轮播图、跑马灯。即便这个窗体被新窗体挡住,它在背景层仍然在消耗着硬件资源。在Android的webview版本为chrome66以上,背景操作ui会引发很严重的性能问题,造成前台界面明显卡顿。 + +而 `uni-ui` 的组件,会自动判断自己的显示状态,在组件不再可见时,不会再消耗硬件资源。 + +### 2. 全端 + + `uni-ui` 的组件都是多端自适应的,底层会抹平很多小程序平台的差异或bug。 + +比如导航栏navbar组件,会自动处理不同端的状态栏。 +比如swiperaction组件,在app和微信小程序上会使用交互体验更好的wxs技术,但在不支持wxs的其他小程序端会使用js模拟类似效果。 + + `uni-ui` 还支持nvue原生渲染,[详见](https://github.com/dcloudio/uni-ui/tree/nvue-uni-ui) + +未来 `uni-ui` 还会支持pc等大屏设备。 + +### 3. 与uni统计自动集成实现免打点 + +uni统计是优秀的多端统计平台,见[tongji.dcloud.net.cn](https://tongji.dcloud.net.cn)。 + +除了一张报表看全端,它的另一个重要特点是免打点。 +比如使用 `uni-ui` 的navbar标题栏、收藏、购物车等组件,均可实现自动打点,统计页面标题等各种行为数据。 +当然你也可以关闭uni统计,这不是强制的。 + +### 4. 主题扩展 + + `uni-ui` 支持[uni.scss](https://uniapp.dcloud.io/collocation/uni-scss),可以方便的切换App的风格。 + +ui是一种需求非常发散的产品,DCloud官方也无意用 `uni-ui` 压制第三方ui插件的空间,但官方有义务在性能和多端方面提供一个开源的标杆给大家。 + +我们欢迎更多优秀的ui组件出现,也欢迎更多人贡献 `uni-ui` 的主题风格,满足更多用户的需求。 + + +## 快速开始 + +uni-ui支持 HBuilderX直接新建项目模板、npm安装和单独导入个别组件等多种使用方式 + +### 在HBuilderX 新建uni-app项目的模板中,选择uni-ui模板 +![HBuilderX内创建uni-ui项目](https://img.cdn.aliyun.dcloud.net.cn/uni-app/doc/create-uni-ui-project.jpg) + +由于uni-app独特的[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)技术,可以免引用、注册,直接使用各种符合规则的vue组件。 + +在代码区键入`u`,拉出各种内置或uni-ui的组件列表,选择其中一个,即可使用该组件。 + +光标放在组件名称上,按F1,可以查阅组件的文档。 + +![uni-ui代码块](https://img.cdn.aliyun.dcloud.net.cn/uni-app/doc/uni-ui-snippet.jpg) + +### 通过 uni_modules 单独安装组件 +如果你没有创建uni-ui项目模板,也可以在你的工程里,通过 uni_modules 单独安装需要的某个组件。下表为uni-ui的扩展组件清单,点击每个组件在详情页面可以导入组件到项目下,导入后直接使用即可,无需import和注册。 + +|组件名|组件说明| +|---|---| +|uni-badge|[数字角标](https://ext.dcloud.net.cn/plugin?name=uni-badge)| +|uni-calendar|[日历](https://ext.dcloud.net.cn/plugin?name=uni-calendar)| +|uni-card|[卡片](https://ext.dcloud.net.cn/plugin?name=uni-card)| +|uni-collapse|[折叠面板](https://ext.dcloud.net.cn/plugin?name=uni-collapse)| +|uni-combox|[组合框](https://ext.dcloud.net.cn/plugin?name=uni-combox)| +|uni-countdown|[倒计时](https://ext.dcloud.net.cn/plugin?name=uni-countdown)| +|uni-data-checkbox|[数据选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-checkbox)| +|uni-data-picker|[数据驱动的picker选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-picker)| +|uni-dateformat|[日期格式化](https://ext.dcloud.net.cn/plugin?name=uni-dateformat)| +|uni-datetime-picker|[日期选择器](https://ext.dcloud.net.cn/plugin?name=uni-datetime-picker)| +|uni-drawer|[抽屉](https://ext.dcloud.net.cn/plugin?name=uni-drawer)| +|uni-easyinput|[增强输入框](https://ext.dcloud.net.cn/plugin?name=uni-easyinput)| +|uni-fab|[悬浮按钮](https://ext.dcloud.net.cn/plugin?name=uni-fab)| +|uni-fav|[收藏按钮](https://ext.dcloud.net.cn/plugin?name=uni-fav)| +|uni-file-picker|[文件选择上传](https://ext.dcloud.net.cn/plugin?name=uni-file-picker)| +|uni-forms|[表单](https://ext.dcloud.net.cn/plugin?name=uni-forms)| +|uni-goods-nav|[商品导航](https://ext.dcloud.net.cn/plugin?name=uni-goods-nav)| +|uni-grid|[宫格](https://ext.dcloud.net.cn/plugin?name=uni-grid)| +|uni-group|[分组](https://ext.dcloud.net.cn/plugin?name=uni-group)| +|uni-icons|[图标](https://ext.dcloud.net.cn/plugin?name=uni-icons)| +|uni-indexed-list|[索引列表](https://ext.dcloud.net.cn/plugin?name=uni-indexed-list)| +|uni-link|[超链接](https://ext.dcloud.net.cn/plugin?name=uni-link)| +|uni-list|[列表](https://ext.dcloud.net.cn/plugin?name=uni-list)| +|uni-load-more|[加载更多](https://ext.dcloud.net.cn/plugin?name=uni-load-more)| +|uni-nav-bar|[自定义导航栏](https://ext.dcloud.net.cn/plugin?name=uni-nav-bar)| +|uni-notice-bar|[通告栏](https://ext.dcloud.net.cn/plugin?name=uni-notice-bar)| +|uni-number-box|[数字输入框](https://ext.dcloud.net.cn/plugin?name=uni-number-box)| +|uni-pagination|[分页器](https://ext.dcloud.net.cn/plugin?name=uni-pagination)| +|uni-popup|[弹出层](https://ext.dcloud.net.cn/plugin?name=uni-popup)| +|uni-rate|[评分](https://ext.dcloud.net.cn/plugin?name=uni-rate)| +|uni-row|[布局-行](https://ext.dcloud.net.cn/plugin?name=uni-row)| +|uni-search-bar|[搜索栏](https://ext.dcloud.net.cn/plugin?name=uni-search-bar)| +|uni-segmented-control|[分段器](https://ext.dcloud.net.cn/plugin?name=uni-segmented-control)| +|uni-steps|[步骤条](https://ext.dcloud.net.cn/plugin?name=uni-steps)| +|uni-swipe-action|[滑动操作](https://ext.dcloud.net.cn/plugin?name=uni-swipe-action)| +|uni-swiper-dot|[轮播图指示点](https://ext.dcloud.net.cn/plugin?name=uni-swiper-dot)| +|uni-table|[表格](https://ext.dcloud.net.cn/plugin?name=uni-table)| +|uni-tag|[标签](https://ext.dcloud.net.cn/plugin?name=uni-tag)| +|uni-title|[章节标题](https://ext.dcloud.net.cn/plugin?name=uni-title)| +|uni-transition|[过渡动画](https://ext.dcloud.net.cn/plugin?name=uni-transition)| + + +使用 `uni_modules` 方式安装组件库,可以直接通过插件市场导入,通过右键菜单快速更新组件,不需要引用、注册,直接在页面中使用 `uni-ui` 组件。[点击安装 uni-ui 组件库](https://ext.dcloud.net.cn/plugin?id=55) + +**注意:下载最新的组件目前仅支持 uni_modules ,非 uni_modules 版本最高支持到组件的1.2.10版本** + +如不能升级到 `uni_modules` 版本,可以使用 `uni_modules` 安装好对应组件,将组件拷贝到对应目录。 + +例如需更新 `uni-list`和`uni-badge` ,将 `uni_modules>uni-list>components`和`uni_modules>uni-badege>components`下所有目录拷贝到如下目录即可: + + +**目录示例** + +```json +┌─components 组件目录 +│ ├─uni-list list 列表目录 +│ │ └─uni-list.vue list 组件文件 +│ ├─uni-list-item list-item 列表目录 +│ │ └─uni-list-item.vue list 组件文件 +│ ├─uni-badge badge 角标目录 +│ │ └─uni-badge.vue badge 组件文件 +│ └─ //.... 更多组件文件 +├─pages 业务页面文件存放的目录 +│ ├─index +│ │ └─index.vue index示例页面 +├─main.js Vue初始化入口文件 +├─App.vue 应用配置,用来配置App全局样式以及监听 应用生命周期 +├─manifest.json 配置应用名称、appid、logo、版本等打包信息,详见 +└─pages.json 配置页 + +``` + +### 通过 `uni_modules` 导入全部组件 +如果想一次把所有uni-ui组件导入到项目中,只需要导入一个 `uni-ui` 组件即可 [点击去导入](https://ext.dcloud.net.cn/plugin?id=55)。 + +如果没有自动导入其他组件,可以在 uni-ui 组件目录上右键选择 `安装三方插件依赖` 即可。 + + + +### npm安装 +在 `vue-cli` 项目中可以使用 `npm` 安装 `uni-ui` 库 ,或者直接在 `HBuilderX` 项目中使用 `npm` 。 + +> **注意** +> cli 项目默认是不编译 `node_modules` 下的组件的,导致条件编译等功能失效 ,导致组件异常 +> 需要在根目录创建 `vue.config.js` 文件 ,增加 `@dcloudio/uni-ui` 包的编译即可正常 +> ```javascript +> // vue.config.js +> module.exports = { +> transpileDependencies:['@dcloudio/uni-ui'] +> } +> ``` + + + +**准备 sass** + +`vue-cli` 项目请先安装 sass 及 sass-loader,如在 HBuliderX 中使用,可跳过此步。 + +- 安装 sass +``` + npm i sass -D 或 yarn add sass -D +``` + +- 安装 sass-loader +``` +npm i sass-loader@10.1.1 -D 或 yarn add sass-loader@10.1.1 -D +``` + +> 如果 `node` 版本小于 16 ,sass-loader 请使用低于 @11.0.0 的版本,[sass-loader@11.0.0 不支持 vue@2.6.12 ](https://stackoverflow.com/questions/66082397/typeerror-this-getoptions-is-not-a-function) +> 如果 `node` 版本大于 16 , `sass-loader` 建议使用 `v8.x` 版本 + +**安装 uni-ui** + +``` +npm i @dcloudio/uni-ui 或 yarn add @dcloudio/uni-ui +``` + + + +**配置easycom** + +使用 `npm` 安装好 `uni-ui` 之后,需要配置 `easycom` 规则,让 `npm` 安装的组件支持 `easycom` + +打开项目根目录下的 `pages.json` 并添加 `easycom` 节点: + +```javascript +// pages.json +{ + "easycom": { + "autoscan": true, + "custom": { + // uni-ui 规则如下配置 + "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue" + } + }, + + // 其他内容 + pages:[ + // ... + ] +} + +``` + +在 ``template`` 中使用组件: + +```html + + + +``` + + **注意** + - uni-ui 现在只推荐使用 `easycom` ,如自己引用组件,可能会出现组件找不到的问题 + - 使用 npm 安装的组件,默认情况下 babel-loader 会忽略所有 node_modules 中的文件 ,导致条件编译失效,需要通过配置 `vue.config.js` 解决: + ```javascript + // 在根目录创建 vue.config.js 文件,并配置如下 + module.exports = { + transpileDependencies: ['@dcloudio/uni-ui'] + } + ``` + - uni-ui 是uni-app内置组件的扩展。注意与web开发不同,uni-ui不包括基础组件,它是基础组件的补充。web开发中有的开发者习惯用一个ui库完成所有开发,但在uni-app体系中,推荐开发者首先使用性能更高的基础组件,然后按需引入必要的扩展组件。 + - `uni-ui` 不支持使用 `Vue.use()` 的方式安装 + + +### 贡献代码 +在使用 `uni-ui` 中,如遇到无法解决的问题,请提 [Issues](https://github.com/dcloudio/uni-ui/issues) 给我们,假如您有更好的点子或更好的实现方式,也欢迎给我们提交 [PR](https://github.com/dcloudio/uni-ui/pulls) \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uview-ui/LICENSE b/supervise-uniapp/uni_modules/uview-ui/LICENSE new file mode 100644 index 00000000..8e39eada --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 www.uviewui.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uview-ui/README.md b/supervise-uniapp/uni_modules/uview-ui/README.md new file mode 100644 index 00000000..c78ff479 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/README.md @@ -0,0 +1,66 @@ +

+ logo +

+

uView 2.0

+

多平台快速开发的UI框架

+ +[![stars](https://img.shields.io/github/stars/umicro/uView2.0?style=flat-square&logo=GitHub)](https://github.com/umicro/uView2.0) +[![forks](https://img.shields.io/github/forks/umicro/uView2.0?style=flat-square&logo=GitHub)](https://github.com/umicro/uView2.0) +[![issues](https://img.shields.io/github/issues/umicro/uView2.0?style=flat-square&logo=GitHub)](https://github.com/umicro/uView2.0/issues) +[![Website](https://img.shields.io/badge/uView-up-blue?style=flat-square)](https://uviewui.com) +[![release](https://img.shields.io/github/v/release/umicro/uView2.0?style=flat-square)](https://gitee.com/umicro/uView2.0/releases) +[![license](https://img.shields.io/github/license/umicro/uView2.0?style=flat-square)](https://en.wikipedia.org/wiki/MIT_License) + +## 说明 + +uView UI,是[uni-app](https://uniapp.dcloud.io/)全面兼容nvue的uni-app生态框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水 + +## [官方文档:https://uviewui.com](https://uviewui.com) + + +## 预览 + +您可以通过**微信**扫码,查看最佳的演示效果。 +
+
+ + + +## 链接 + +- [官方文档](https://www.uviewui.com/) +- [更新日志](https://www.uviewui.com/components/changelog.html) +- [升级指南](https://www.uviewui.com/components/changeGuide.html) +- [关于我们](https://www.uviewui.com/cooperation/about.html) + +## 交流反馈 + +欢迎加入我们的QQ群交流反馈:[点此跳转](https://www.uviewui.com/components/addQQGroup.html) + +## 关于PR + +> 我们非常乐意接受各位的优质PR,但在此之前我希望您了解uView2.0是一个需要兼容多个平台的(小程序、h5、ios app、android app)包括nvue页面、vue页面。 +> 所以希望在您修复bug并提交之前尽可能的去这些平台测试一下兼容性。最好能携带测试截图以方便审核。非常感谢! + +## 安装 + +#### **uni-app插件市场链接** —— [https://ext.dcloud.net.cn/plugin?id=1593](https://ext.dcloud.net.cn/plugin?id=1593) + +请通过[官网安装文档](https://www.uviewui.com/components/install.html)了解更详细的内容 + +## 快速上手 + +请通过[快速上手](https://uviewui.com/components/quickstart.html)了解更详细的内容 + +## 使用方法 +配置easycom规则后,自动按需引入,无需`import`组件,直接引用即可。 + +```html + +``` + +## 版权信息 +uView遵循[MIT](https://en.wikipedia.org/wiki/MIT_License)开源协议,意味着您无需支付任何费用,也无需授权,即可将uView应用到您的产品中。 + diff --git a/supervise-uniapp/uni_modules/uview-ui/changelog.md b/supervise-uniapp/uni_modules/uview-ui/changelog.md new file mode 100644 index 00000000..ca502516 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/changelog.md @@ -0,0 +1,357 @@ +## 2.0.34(2022-09-25) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. `u-input`、`u-textarea`增加`ignoreCompositionEvent`属性 +2. 修复`route`方法调用可能报错的问题 +3. 修复`u-no-network`组件`z-index`无效的问题 +4. 修复`textarea`组件在h5上confirmType=""报错的问题 +5. `u-rate`适配`nvue` +6. 优化验证手机号码的正则表达式(根据工信部发布的《电信网编号计划(2017年版)》进行修改。) +7. `form-item`添加`labelPosition`属性 +8. `u-calendar`修复`maxDate`设置为当前日期,并且当前时间大于08:00时无法显示日期列表的问题 (#724) +9. `u-radio`增加一个默认插槽用于自定义修改label内容 (#680) +10. 修复`timeFormat`函数在safari重的兼容性问题 (#664) +## 2.0.33(2022-06-17) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复`loadmore`组件`lineColor`类型错误问题 +2. 修复`u-parse`组件`imgtap`、`linktap`不生效问题 +## 2.0.32(2022-06-16) +# uView2.0重磅发布,利剑出鞘,一统江湖 +1. `u-loadmore`新增自定义颜色、虚/实线 +2. 修复`u-swiper-action`组件部分平台不能上下滑动的问题 +3. 修复`u-list`回弹问题 +4. 修复`notice-bar`组件动画在低端安卓机可能会抖动的问题 +5. `u-loading-page`添加控制图标大小的属性`iconSize` +6. 修复`u-tooltip`组件`color`参数不生效的问题 +7. 修复`u--input`组件使用`blur`事件输出为`undefined`的bug +8. `u-code-input`组件新增键盘弹起时,是否自动上推页面参数`adjustPosition` +9. 修复`image`组件`load`事件无回调对象问题 +10. 修复`button`组件`loadingSize`设置无效问题 +10. 其他修复 +## 2.0.31(2022-04-19) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复`upload`在`vue`页面上传成功后没有成功标志的问题 +2. 解决演示项目中微信小程序模拟上传图片一直出于上传中问题 +3. 修复`u-code-input`组件在`nvue`页面编译到`app`平台上光标异常问题(`app`去除此功能) +4. 修复`actionSheet`组件标题关闭按钮点击事件名称错误的问题 +5. 其他修复 +## 2.0.30(2022-04-04) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. `u-rate`增加`readonly`属性 +2. `tabs`滑块支持设置背景图片 +3. 修复`u-subsection` `mode`为`subsection`时,滑块样式不正确的问题 +4. `u-code-input`添加光标效果动画 +5. 修复`popup`的`open`事件不触发 +6. 修复`u-flex-column`无效的问题 +7. 修复`u-datetime-picker`索引在特定场合异常问题 +8. 修复`u-datetime-picker`最小时间字符串模板错误问题 +9. `u-swiper`添加`m3u8`验证 +10. `u-swiper`修改判断image和video逻辑 +11. 修复`swiper`无法使用本地图片问题,增加`type`参数 +12. 修复`u-row-notice`格式错误问题 +13. 修复`u-switch`组件当`unit`为`rpx`时,`nodeStyle`消失的问题 +14. 修复`datetime-picker`组件`showToolbar`与`visibleItemCount`属性无效的问题 +15. 修复`upload`组件条件编译位置判断错误,导致`previewImage`属性设置为`false`时,整个组件都会被隐藏的问题 +16. 修复`u-checkbox-group`设置`shape`属性无效的问题 +17. 修复`u-upload`的`capture`传入字符串的时候不生效的问题 +18. 修复`u-action-sheet`组件,关闭事件逻辑错误的问题 +19. 修复`u-list`触顶事件的触发错误的问题 +20. 修复`u-text`只有手机号可拨打的问题 +21. 修复`u-textarea`不能换行的问题 +22. 其他修复 +## 2.0.29(2022-03-13) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复`u--text`组件设置`decoration`属性未生效的问题 +2. 修复`u-datetime-picker`使用`formatter`后返回值不正确 +3. 修复`u-datetime-picker` `intercept` 可能为undefined +4. 修复已设置单位 uni..config.unit = 'rpx'时,线型指示器 `transform` 的位置翻倍,导致指示器超出宽度 +5. 修复mixin中bem方法生成的类名在支付宝和字节小程序中失效 +6. 修复默认值传值为空的时候,打开`u-datetime-picker`报错,不能选中第一列时间的bug +7. 修复`u-datetime-picker`使用`formatter`后返回值不正确 +8. 修复`u-image`组件`loading`无效果的问题 +9. 修复`config.unit`属性设为`rpx`时,导航栏占用高度不足导致塌陷的问题 +10. 修复`u-datetime-picker`组件`itemHeight`无效问题 +11. 其他修复 +## 2.0.28(2022-02-22) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. search组件新增searchIconSize属性 +2. 兼容Safari/Webkit中传入时间格式如2022-02-17 12:00:56 +3. 修复text value.js 判断日期出format错误问题 +4. priceFormat格式化金额出现精度错误 +5. priceFormat在部分情况下出现精度损失问题 +6. 优化表单rules提示 +7. 修复avatar组件src为空时,展示状态不对 +8. 其他修复 +## 2.0.27(2022-01-28) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1.样式修复 +## 2.0.26(2022-01-28) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1.样式修复 +## 2.0.25(2022-01-27) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复text组件mode=price时,可能会导致精度错误的问题 +2. 添加$u.setConfig()方法,可设置uView内置的config, props, zIndex, color属性,详见:[修改uView内置配置方案](https://uviewui.com/components/setting.html#%E9%BB%98%E8%AE%A4%E5%8D%95%E4%BD%8D%E9%85%8D%E7%BD%AE) +3. 优化form组件在errorType=toast时,如果输入错误页面会有抖动的问题 +4. 修复$u.addUnit()对配置默认单位可能无效的问题 +## 2.0.24(2022-01-25) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复swiper在current指定非0时缩放有误 +2. 修复u-icon添加stop属性的时候报错 +3. 优化遗留的通过正则判断rpx单位的问题 +4. 优化Layout布局 vue使用gutter时,会超出固定区域 +5. 优化search组件高度单位问题(rpx -> px) +6. 修复u-image slot 加载和错误的图片失去了高度 +7. 修复u-index-list中footer插槽与header插槽存在性判断错误 +8. 修复部分机型下u-popup关闭时会闪烁 +9. 修复u-image在nvue-app下失去宽高 +10. 修复u-popup运行报错 +11. 修复u-tooltip报错 +12. 修复box-sizing在app下的警告 +13. 修复u-navbar在小程序中报运行时错误 +14. 其他修复 +## 2.0.23(2022-01-24) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复image组件在hx3.3.9的nvue下可能会显示异常的问题 +2. 修复col组件gutter参数带rpx单位处理不正确的问题 +3. 修复text组件单行时无法显示省略号的问题 +4. navbar添加titleStyle参数 +5. 升级到hx3.3.9可消除nvue下控制台样式警告的问题 +## 2.0.22(2022-01-19) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. $u.page()方法优化,避免在特殊场景可能报错的问题 +2. picker组件添加immediateChange参数 +3. 新增$u.pages()方法 +## 2.0.21(2022-01-19) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 优化:form组件在用户设置rules的时候提示用户model必传 +2. 优化遗留的通过正则判断rpx单位的问题 +3. 修复微信小程序环境中tabbar组件开启safeAreaInsetBottom属性后,placeholder高度填充不正确 +4. 修复swiper在current指定非0时缩放有误 +5. 修复u-icon添加stop属性的时候报错 +6. 修复upload组件在accept=all的时候没有作用 +7. 修复在text组件mode为phone时call属性无效的问题 +8. 处理u-form clearValidate方法 +9. 其他修复 +## 2.0.20(2022-01-14) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复calendar默认会选择一个日期,如果直接点确定的话,无法取到值的问题 +2. 修复Slider缺少disabled props 还有注释 +3. 修复u-notice-bar点击事件无法拿到index索引值的问题 +4. 修复u-collapse-item在vue文件下,app端自定义插槽不生效的问题 +5. 优化头像为空时显示默认头像 +6. 修复图片地址赋值后判断加载状态为完成问题 +7. 修复日历滚动到默认日期月份区域 +8. search组件暴露点击左边icon事件 +9. 修复u-form clearValidate方法不生效 +10. upload h5端增加返回文件参数(文件的name参数) +11. 处理upload选择文件后url为blob类型无法预览的问题 +12. u-code-input 修复输入框没有往左移出一半屏幕 +13. 修复Upload上传 disabled为true时,控制台报hoverClass类型错误 +14. 临时处理ios app下grid点击坍塌问题 +15. 其他修复 +## 2.0.19(2021-12-29) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 优化微信小程序包体积可在微信中预览,请升级HbuilderX3.3.4,同时在“运行->运行到小程序模拟器”中勾选“运行时是否压缩代码” +2. 优化微信小程序setData性能,处理某些方法如$u.route()无法在模板中使用的问题 +3. navbar添加autoBack参数 +4. 允许avatar组件的事件冒泡 +5. 修复cell组件报错问题 +6. 其他修复 +## 2.0.18(2021-12-28) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复app端编译报错问题 +2. 重新处理微信小程序端setData过大的性能问题 +3. 修复边框问题 +4. 修复最大最小月份不大于0则没有数据出现的问题 +5. 修复SwipeAction微信小程序端无法上下滑动问题 +6. 修复input的placeholder在小程序端默认显示为true问题 +7. 修复divider组件click事件无效问题 +8. 修复u-code-input maxlength 属性值为 String 类型时显示异常 +9. 修复当 grid只有 1到2时 在小程序端algin设置无效的问题 +10. 处理form-item的label为top时,取消错误提示的左边距 +11. 其他修复 +## 2.0.17(2021-12-26) +## uView正在参与开源中国的“年度最佳项目”评选,之前投过票的现在也可以投票,恳请同学们投一票,[点此帮助uView](https://www.oschina.net/project/top_cn_2021/?id=583) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 解决HBuilderX3.3.3.20211225版本导致的样式问题 +2. calendar日历添加monthNum参数 +3. navbar添加center slot +## 2.0.16(2021-12-25) +## uView正在参与开源中国的“年度最佳项目”评选,之前投过票的现在也可以投票,恳请同学们投一票,[点此帮助uView](https://www.oschina.net/project/top_cn_2021/?id=583) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 解决微信小程序setData性能问题 +2. 修复count-down组件change事件不触发问题 +## 2.0.15(2021-12-21) +## uView正在参与开源中国的“年度最佳项目”评选,之前投过票的现在也可以投票,恳请同学们投一票,[点此帮助uView](https://www.oschina.net/project/top_cn_2021/?id=583) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复Cell单元格titleWidth无效 +2. 修复cheakbox组件ischecked不更新 +3. 修复keyboard是否显示"."按键默认值问题 +4. 修复number-keyboard是否显示键盘的"."符号问题 +5. 修复Input输入框 readonly无效 +6. 修复u-avatar 导致打包app、H5时候报错问题 +7. 修复Upload上传deletable无效 +8. 修复upload当设置maxSize时无效的问题 +9. 修复tabs lineWidth传入带单位的字符串的时候偏移量计算错误问题 +10. 修复rate组件在有padding的view内,显示的星星位置和可触摸区域不匹配,无法正常选中星星 +## 2.0.13(2021-12-14) +## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复配置默认单位为rpx可能会导致自定义导航栏高度异常的问题 +## 2.0.12(2021-12-14) +## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复tabs组件在vue环境下划线消失的问题 +2. 修复upload组件在安卓小程序无法选择视频的问题 +3. 添加uni.$u.config.unit配置,用于配置参数默认单位,详见:[默认单位配置](https://www.uviewui.com/components/setting.html#%E9%BB%98%E8%AE%A4%E5%8D%95%E4%BD%8D%E9%85%8D%E7%BD%AE) +4. 修复textarea组件在没绑定v-model时,字符统计不生效问题 +5. 修复nvue下控制是否出现滚动条失效问题 +## 2.0.11(2021-12-13) +## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. text组件align参数无效的问题 +2. subsection组件添加keyName参数 +3. upload组件无法判断[Object file]类型的问题 +4. 处理notify层级过低问题 +5. codeInput组件添加disabledDot参数 +6. 处理actionSheet组件round参数无效的问题 +7. calendar组件添加round参数用于控制圆角值 +8. 处理swipeAction组件在vue环境下默认被打开的问题 +9. button组件的throttleTime节流参数无效的问题 +10. 解决u-notify手动关闭方法close()无效的问题 +11. input组件readonly不生效问题 +12. tag组件type参数为info不生效问题 +## 2.0.10(2021-12-08) +## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复button sendMessagePath属性不生效 +2. 修复DatetimePicker选择器title无效 +3. 修复u-toast设置loading=true不生效 +4. 修复u-text金额模式传0报错 +5. 修复u-toast组件的icon属性配置不生效 +6. button的icon在特殊场景下的颜色优化 +7. IndexList优化,增加# +## 2.0.9(2021-12-01) +## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 优化swiper的height支持100%值(仅vue有效),修复嵌入视频时click事件无法触发的问题 +2. 优化tabs组件对list值为空的判断,或者动态变化list时重新计算相关尺寸的问题 +3. 优化datetime-picker组件逻辑,让其后续打开的默认值为上一次的选中值,需要通过v-model绑定值才有效 +4. 修复upload内嵌在其他组件中,选择图片可能不会换行的问题 +## 2.0.8(2021-12-01) +## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复toast的position参数无效问题 +2. 处理input在ios nvue上无法获得焦点的问题 +3. avatar-group组件添加extraValue参数,让剩余展示数量可手动控制 +4. tabs组件添加keyName参数用于配置从对象中读取的键名 +5. 处理text组件名字脱敏默认配置无效的问题 +6. 处理picker组件item文本太长换行问题 +## 2.0.7(2021-11-30) +## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 修复radio和checkbox动态改变v-model无效的问题。 +2. 优化form规则validator在微信小程序用法 +3. 修复backtop组件mode参数在微信小程序无效的问题 +4. 处理Album的previewFullImage属性无效的问题 +5. 处理u-datetime-picker组件mode='time'在选择改变时间时,控制台报错的问题 +## 2.0.6(2021-11-27) +## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. 处理tag组件在vue下边框无效的问题。 +2. 处理popup组件圆角参数可能无效的问题。 +3. 处理tabs组件lineColor参数可能无效的问题。 +4. propgress组件在值很小时,显示异常的问题。 +## 2.0.5(2021-11-25) +## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. calendar在vue下显示异常问题。 +2. form组件labelPosition和errorType参数无效的问题 +3. input组件inputAlign无效的问题 +4. 其他一些修复 +## 2.0.4(2021-11-23) +## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +0. input组件缺失@confirm事件,以及subfix和prefix无效问题 +1. component.scss文件样式在vue下干扰全局布局问题 +2. 修复subsection在vue环境下表现异常的问题 +3. tag组件的bgColor等参数无效的问题 +4. upload组件不换行的问题 +5. 其他的一些修复处理 +## 2.0.3(2021-11-16) +## [点击加群交流反馈:1129077272](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. uView2.0已实现全面兼容nvue +2. uView2.0对1.x进行了架构重构,细节和性能都有极大提升 +3. 目前uView2.0为公测阶段,相关细节可能会有变动 +4. 我们写了一份与1.x的对比指南,详见[对比1.x](https://www.uviewui.com/components/diff1.x.html) +5. 处理modal的confirm回调事件拼写错误问题 +6. 处理input组件@input事件参数错误问题 +7. 其他一些修复 +## 2.0.2(2021-11-16) +## [点击加群交流反馈:1129077272](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. uView2.0已实现全面兼容nvue +2. uView2.0对1.x进行了架构重构,细节和性能都有极大提升 +3. 目前uView2.0为公测阶段,相关细节可能会有变动 +4. 我们写了一份与1.x的对比指南,详见[对比1.x](https://www.uviewui.com/components/diff1.x.html) +5. 修复input组件formatter参数缺失问题 +6. 优化loading-icon组件的scss写法问题,防止不兼容新版本scss +## 2.0.0(2020-11-15) +## [点击加群交流反馈:1129077272](https://jq.qq.com/?_wv=1027&k=KnbeceDU) + +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. uView2.0已实现全面兼容nvue +2. uView2.0对1.x进行了架构重构,细节和性能都有极大提升 +3. 目前uView2.0为公测阶段,相关细节可能会有变动 +4. 我们写了一份与1.x的对比指南,详见[对比1.x](https://www.uviewui.com/components/diff1.x.html) +5. 修复input组件formatter参数缺失问题 + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u--form/u--form.vue b/supervise-uniapp/uni_modules/uview-ui/components/u--form/u--form.vue new file mode 100644 index 00000000..fdfc212a --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u--form/u--form.vue @@ -0,0 +1,78 @@ + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u--image/u--image.vue b/supervise-uniapp/uni_modules/uview-ui/components/u--image/u--image.vue new file mode 100644 index 00000000..21b7ab19 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u--image/u--image.vue @@ -0,0 +1,47 @@ + + + \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u--input/u--input.vue b/supervise-uniapp/uni_modules/uview-ui/components/u--input/u--input.vue new file mode 100644 index 00000000..1e58b010 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u--input/u--input.vue @@ -0,0 +1,73 @@ + + + \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u--text/u--text.vue b/supervise-uniapp/uni_modules/uview-ui/components/u--text/u--text.vue new file mode 100644 index 00000000..44ee52a3 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u--text/u--text.vue @@ -0,0 +1,44 @@ + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u--textarea/u--textarea.vue b/supervise-uniapp/uni_modules/uview-ui/components/u--textarea/u--textarea.vue new file mode 100644 index 00000000..f4df0b9a --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u--textarea/u--textarea.vue @@ -0,0 +1,48 @@ + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-action-sheet/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-action-sheet/props.js new file mode 100644 index 00000000..e96e04fd --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-action-sheet/props.js @@ -0,0 +1,54 @@ +export default { + props: { + // 操作菜单是否展示 (默认false) + show: { + type: Boolean, + default: uni.$u.props.actionSheet.show + }, + // 标题 + title: { + type: String, + default: uni.$u.props.actionSheet.title + }, + // 选项上方的描述信息 + description: { + type: String, + default: uni.$u.props.actionSheet.description + }, + // 数据 + actions: { + type: Array, + default: uni.$u.props.actionSheet.actions + }, + // 取消按钮的文字,不为空时显示按钮 + cancelText: { + type: String, + default: uni.$u.props.actionSheet.cancelText + }, + // 点击某个菜单项时是否关闭弹窗 + closeOnClickAction: { + type: Boolean, + default: uni.$u.props.actionSheet.closeOnClickAction + }, + // 处理底部安全区(默认true) + safeAreaInsetBottom: { + type: Boolean, + default: uni.$u.props.actionSheet.safeAreaInsetBottom + }, + // 小程序的打开方式 + openType: { + type: String, + default: uni.$u.props.actionSheet.openType + }, + // 点击遮罩是否允许关闭 (默认true) + closeOnClickOverlay: { + type: Boolean, + default: uni.$u.props.actionSheet.closeOnClickOverlay + }, + // 圆角值 + round: { + type: [Boolean, String, Number], + default: uni.$u.props.actionSheet.round + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue new file mode 100644 index 00000000..26d5d8d9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue @@ -0,0 +1,278 @@ + + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-album/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-album/props.js new file mode 100644 index 00000000..75cdb37d --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-album/props.js @@ -0,0 +1,59 @@ +export default { + props: { + // 图片地址,Array|Array形式 + urls: { + type: Array, + default: uni.$u.props.album.urls + }, + // 指定从数组的对象元素中读取哪个属性作为图片地址 + keyName: { + type: String, + default: uni.$u.props.album.keyName + }, + // 单图时,图片长边的长度 + singleSize: { + type: [String, Number], + default: uni.$u.props.album.singleSize + }, + // 多图时,图片边长 + multipleSize: { + type: [String, Number], + default: uni.$u.props.album.multipleSize + }, + // 多图时,图片水平和垂直之间的间隔 + space: { + type: [String, Number], + default: uni.$u.props.album.space + }, + // 单图时,图片缩放裁剪的模式 + singleMode: { + type: String, + default: uni.$u.props.album.singleMode + }, + // 多图时,图片缩放裁剪的模式 + multipleMode: { + type: String, + default: uni.$u.props.album.multipleMode + }, + // 最多展示的图片数量,超出时最后一个位置将会显示剩余图片数量 + maxCount: { + type: [String, Number], + default: uni.$u.props.album.maxCount + }, + // 是否可以预览图片 + previewFullImage: { + type: Boolean, + default: uni.$u.props.album.previewFullImage + }, + // 每行展示图片数量,如设置,singleSize和multipleSize将会无效 + rowCount: { + type: [String, Number], + default: uni.$u.props.album.rowCount + }, + // 超出maxCount时是否显示查看更多的提示 + showMore: { + type: Boolean, + default: uni.$u.props.album.showMore + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-album/u-album.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-album/u-album.vue new file mode 100644 index 00000000..687e2d52 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-album/u-album.vue @@ -0,0 +1,259 @@ + + + + + \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-alert/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-alert/props.js new file mode 100644 index 00000000..4297e2c3 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-alert/props.js @@ -0,0 +1,44 @@ +export default { + props: { + // 显示文字 + title: { + type: String, + default: uni.$u.props.alert.title + }, + // 主题,success/warning/info/error + type: { + type: String, + default: uni.$u.props.alert.type + }, + // 辅助性文字 + description: { + type: String, + default: uni.$u.props.alert.description + }, + // 是否可关闭 + closable: { + type: Boolean, + default: uni.$u.props.alert.closable + }, + // 是否显示图标 + showIcon: { + type: Boolean, + default: uni.$u.props.alert.showIcon + }, + // 浅或深色调,light-浅色,dark-深色 + effect: { + type: String, + default: uni.$u.props.alert.effect + }, + // 文字是否居中 + center: { + type: Boolean, + default: uni.$u.props.alert.center + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.alert.fontSize + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-alert/u-alert.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-alert/u-alert.vue new file mode 100644 index 00000000..81f7d43e --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-alert/u-alert.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-avatar-group/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-avatar-group/props.js new file mode 100644 index 00000000..58b42ac9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-avatar-group/props.js @@ -0,0 +1,52 @@ +export default { + props: { + // 头像图片组 + urls: { + type: Array, + default: uni.$u.props.avatarGroup.urls + }, + // 最多展示的头像数量 + maxCount: { + type: [String, Number], + default: uni.$u.props.avatarGroup.maxCount + }, + // 头像形状 + shape: { + type: String, + default: uni.$u.props.avatarGroup.shape + }, + // 图片裁剪模式 + mode: { + type: String, + default: uni.$u.props.avatarGroup.mode + }, + // 超出maxCount时是否显示查看更多的提示 + showMore: { + type: Boolean, + default: uni.$u.props.avatarGroup.showMore + }, + // 头像大小 + size: { + type: [String, Number], + default: uni.$u.props.avatarGroup.size + }, + // 指定从数组的对象元素中读取哪个属性作为图片地址 + keyName: { + type: String, + default: uni.$u.props.avatarGroup.keyName + }, + // 头像之间的遮挡比例 + gap: { + type: [String, Number], + validator(value) { + return value >= 0 && value <= 1 + }, + default: uni.$u.props.avatarGroup.gap + }, + // 需额外显示的值 + extraValue: { + type: [Number, String], + default: uni.$u.props.avatarGroup.extraValue + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue new file mode 100644 index 00000000..7e996d77 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-avatar/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-avatar/props.js new file mode 100644 index 00000000..34ca0f28 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-avatar/props.js @@ -0,0 +1,78 @@ +export default { + props: { + // 头像图片路径(不能为相对路径) + src: { + type: String, + default: uni.$u.props.avatar.src + }, + // 头像形状,circle-圆形,square-方形 + shape: { + type: String, + default: uni.$u.props.avatar.shape + }, + // 头像尺寸 + size: { + type: [String, Number], + default: uni.$u.props.avatar.size + }, + // 裁剪模式 + mode: { + type: String, + default: uni.$u.props.avatar.mode + }, + // 显示的文字 + text: { + type: String, + default: uni.$u.props.avatar.text + }, + // 背景色 + bgColor: { + type: String, + default: uni.$u.props.avatar.bgColor + }, + // 文字颜色 + color: { + type: String, + default: uni.$u.props.avatar.color + }, + // 文字大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.avatar.fontSize + }, + // 显示的图标 + icon: { + type: String, + default: uni.$u.props.avatar.icon + }, + // 显示小程序头像,只对百度,微信,QQ小程序有效 + mpAvatar: { + type: Boolean, + default: uni.$u.props.avatar.mpAvatar + }, + // 是否使用随机背景色 + randomBgColor: { + type: Boolean, + default: uni.$u.props.avatar.randomBgColor + }, + // 加载失败的默认头像(组件有内置默认图片) + defaultUrl: { + type: String, + default: uni.$u.props.avatar.defaultUrl + }, + // 如果配置了randomBgColor为true,且配置了此值,则从默认的背景色数组中取出对应索引的颜色值,取值0-19之间 + colorIndex: { + type: [String, Number], + // 校验参数规则,索引在0-19之间 + validator(n) { + return uni.$u.test.range(n, [0, 19]) || n === '' + }, + default: uni.$u.props.avatar.colorIndex + }, + // 组件标识符 + name: { + type: String, + default: uni.$u.props.avatar.name + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-avatar/u-avatar.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-avatar/u-avatar.vue new file mode 100644 index 00000000..3319be58 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-avatar/u-avatar.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-back-top/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-back-top/props.js new file mode 100644 index 00000000..6c702c28 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-back-top/props.js @@ -0,0 +1,54 @@ +export default { + props: { + // 返回顶部的形状,circle-圆形,square-方形 + mode: { + type: String, + default: uni.$u.props.backtop.mode + }, + // 自定义图标 + icon: { + type: String, + default: uni.$u.props.backtop.icon + }, + // 提示文字 + text: { + type: String, + default: uni.$u.props.backtop.text + }, + // 返回顶部滚动时间 + duration: { + type: [String, Number], + default: uni.$u.props.backtop.duration + }, + // 滚动距离 + scrollTop: { + type: [String, Number], + default: uni.$u.props.backtop.scrollTop + }, + // 距离顶部多少距离显示,单位px + top: { + type: [String, Number], + default: uni.$u.props.backtop.top + }, + // 返回顶部按钮到底部的距离,单位px + bottom: { + type: [String, Number], + default: uni.$u.props.backtop.bottom + }, + // 返回顶部按钮到右边的距离,单位px + right: { + type: [String, Number], + default: uni.$u.props.backtop.right + }, + // 层级 + zIndex: { + type: [String, Number], + default: uni.$u.props.backtop.zIndex + }, + // 图标的样式,对象形式 + iconStyle: { + type: Object, + default: uni.$u.props.backtop.iconStyle + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-back-top/u-back-top.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-back-top/u-back-top.vue new file mode 100644 index 00000000..2d075667 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-back-top/u-back-top.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-badge/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-badge/props.js new file mode 100644 index 00000000..74c032c3 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-badge/props.js @@ -0,0 +1,72 @@ +export default { + props: { + // 是否显示圆点 + isDot: { + type: Boolean, + default: uni.$u.props.badge.isDot + }, + // 显示的内容 + value: { + type: [Number, String], + default: uni.$u.props.badge.value + }, + // 是否显示 + show: { + type: Boolean, + default: uni.$u.props.badge.show + }, + // 最大值,超过最大值会显示 '{max}+' + max: { + type: [Number, String], + default: uni.$u.props.badge.max + }, + // 主题类型,error|warning|success|primary + type: { + type: String, + default: uni.$u.props.badge.type + }, + // 当数值为 0 时,是否展示 Badge + showZero: { + type: Boolean, + default: uni.$u.props.badge.showZero + }, + // 背景颜色,优先级比type高,如设置,type参数会失效 + bgColor: { + type: [String, null], + default: uni.$u.props.badge.bgColor + }, + // 字体颜色 + color: { + type: [String, null], + default: uni.$u.props.badge.color + }, + // 徽标形状,circle-四角均为圆角,horn-左下角为直角 + shape: { + type: String, + default: uni.$u.props.badge.shape + }, + // 设置数字的显示方式,overflow|ellipsis|limit + // overflow会根据max字段判断,超出显示`${max}+` + // ellipsis会根据max判断,超出显示`${max}...` + // limit会依据1000作为判断条件,超出1000,显示`${value/1000}K`,比如2.2k、3.34w,最多保留2位小数 + numberType: { + type: String, + default: uni.$u.props.badge.numberType + }, + // 设置badge的位置偏移,格式为 [x, y],也即设置的为top和right的值,absolute为true时有效 + offset: { + type: Array, + default: uni.$u.props.badge.offset + }, + // 是否反转背景和字体颜色 + inverted: { + type: Boolean, + default: uni.$u.props.badge.inverted + }, + // 是否绝对定位 + absolute: { + type: Boolean, + default: uni.$u.props.badge.absolute + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-badge/u-badge.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-badge/u-badge.vue new file mode 100644 index 00000000..53cfc811 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-badge/u-badge.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-button/nvue.scss b/supervise-uniapp/uni_modules/uview-ui/components/u-button/nvue.scss new file mode 100644 index 00000000..490db7d9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-button/nvue.scss @@ -0,0 +1,46 @@ +$u-button-active-opacity:0.75 !default; +$u-button-loading-text-margin-left:4px !default; +$u-button-text-color: #FFFFFF !default; +$u-button-text-plain-error-color:$u-error !default; +$u-button-text-plain-warning-color:$u-warning !default; +$u-button-text-plain-success-color:$u-success !default; +$u-button-text-plain-info-color:$u-info !default; +$u-button-text-plain-primary-color:$u-primary !default; +.u-button { + &--active { + opacity: $u-button-active-opacity; + } + + &--active--plain { + background-color: rgb(217, 217, 217); + } + + &__loading-text { + margin-left:$u-button-loading-text-margin-left; + } + + &__text, + &__loading-text { + color:$u-button-text-color; + } + + &__text--plain--error { + color:$u-button-text-plain-error-color; + } + + &__text--plain--warning { + color:$u-button-text-plain-warning-color; + } + + &__text--plain--success{ + color:$u-button-text-plain-success-color; + } + + &__text--plain--info { + color:$u-button-text-plain-info-color; + } + + &__text--plain--primary { + color:$u-button-text-plain-primary-color; + } +} \ No newline at end of file diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-button/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-button/props.js new file mode 100644 index 00000000..07fd8446 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-button/props.js @@ -0,0 +1,161 @@ +/* + * @Author : LQ + * @Description : + * @version : 1.0 + * @Date : 2021-08-16 10:04:04 + * @LastAuthor : LQ + * @lastTime : 2021-08-16 10:04:24 + * @FilePath : /u-view2.0/uview-ui/components/u-button/props.js + */ +export default { + props: { + // 是否细边框 + hairline: { + type: Boolean, + default: uni.$u.props.button.hairline + }, + // 按钮的预置样式,info,primary,error,warning,success + type: { + type: String, + default: uni.$u.props.button.type + }, + // 按钮尺寸,large,normal,small,mini + size: { + type: String, + default: uni.$u.props.button.size + }, + // 按钮形状,circle(两边为半圆),square(带圆角) + shape: { + type: String, + default: uni.$u.props.button.shape + }, + // 按钮是否镂空 + plain: { + type: Boolean, + default: uni.$u.props.button.plain + }, + // 是否禁止状态 + disabled: { + type: Boolean, + default: uni.$u.props.button.disabled + }, + // 是否加载中 + loading: { + type: Boolean, + default: uni.$u.props.button.loading + }, + // 加载中提示文字 + loadingText: { + type: [String, Number], + default: uni.$u.props.button.loadingText + }, + // 加载状态图标类型 + loadingMode: { + type: String, + default: uni.$u.props.button.loadingMode + }, + // 加载图标大小 + loadingSize: { + type: [String, Number], + default: uni.$u.props.button.loadingSize + }, + // 开放能力,具体请看uniapp稳定关于button组件部分说明 + // https://uniapp.dcloud.io/component/button + openType: { + type: String, + default: uni.$u.props.button.openType + }, + // 用于 组件,点击分别会触发 组件的 submit/reset 事件 + // 取值为submit(提交表单),reset(重置表单) + formType: { + type: String, + default: uni.$u.props.button.formType + }, + // 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效 + // 只微信小程序、QQ小程序有效 + appParameter: { + type: String, + default: uni.$u.props.button.appParameter + }, + // 指定是否阻止本节点的祖先节点出现点击态,微信小程序有效 + hoverStopPropagation: { + type: Boolean, + default: uni.$u.props.button.hoverStopPropagation + }, + // 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。只微信小程序有效 + lang: { + type: String, + default: uni.$u.props.button.lang + }, + // 会话来源,open-type="contact"时有效。只微信小程序有效 + sessionFrom: { + type: String, + default: uni.$u.props.button.sessionFrom + }, + // 会话内消息卡片标题,open-type="contact"时有效 + // 默认当前标题,只微信小程序有效 + sendMessageTitle: { + type: String, + default: uni.$u.props.button.sendMessageTitle + }, + // 会话内消息卡片点击跳转小程序路径,open-type="contact"时有效 + // 默认当前分享路径,只微信小程序有效 + sendMessagePath: { + type: String, + default: uni.$u.props.button.sendMessagePath + }, + // 会话内消息卡片图片,open-type="contact"时有效 + // 默认当前页面截图,只微信小程序有效 + sendMessageImg: { + type: String, + default: uni.$u.props.button.sendMessageImg + }, + // 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示, + // 用户点击后可以快速发送小程序消息,open-type="contact"时有效 + showMessageCard: { + type: Boolean, + default: uni.$u.props.button.showMessageCard + }, + // 额外传参参数,用于小程序的data-xxx属性,通过target.dataset.name获取 + dataName: { + type: String, + default: uni.$u.props.button.dataName + }, + // 节流,一定时间内只能触发一次 + throttleTime: { + type: [String, Number], + default: uni.$u.props.button.throttleTime + }, + // 按住后多久出现点击态,单位毫秒 + hoverStartTime: { + type: [String, Number], + default: uni.$u.props.button.hoverStartTime + }, + // 手指松开后点击态保留时间,单位毫秒 + hoverStayTime: { + type: [String, Number], + default: uni.$u.props.button.hoverStayTime + }, + // 按钮文字,之所以通过props传入,是因为slot传入的话 + // nvue中无法控制文字的样式 + text: { + type: [String, Number], + default: uni.$u.props.button.text + }, + // 按钮图标 + icon: { + type: String, + default: uni.$u.props.button.icon + }, + // 按钮图标 + iconColor: { + type: String, + default: uni.$u.props.button.icon + }, + // 按钮颜色,支持传入linear-gradient渐变色 + color: { + type: String, + default: uni.$u.props.button.color + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-button/u-button.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-button/u-button.vue new file mode 100644 index 00000000..5494351e --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-button/u-button.vue @@ -0,0 +1,490 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-button/vue.scss b/supervise-uniapp/uni_modules/uview-ui/components/u-button/vue.scss new file mode 100644 index 00000000..32019b27 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-button/vue.scss @@ -0,0 +1,80 @@ +// nvue下hover-class无效 +$u-button-before-top:50% !default; +$u-button-before-left:50% !default; +$u-button-before-width:100% !default; +$u-button-before-height:100% !default; +$u-button-before-transform:translate(-50%, -50%) !default; +$u-button-before-opacity:0 !default; +$u-button-before-background-color:#000 !default; +$u-button-before-border-color:#000 !default; +$u-button-active-before-opacity:.15 !default; +$u-button-icon-margin-left:4px !default; +$u-button-plain-u-button-info-color:$u-info; +$u-button-plain-u-button-success-color:$u-success; +$u-button-plain-u-button-error-color:$u-error; +$u-button-plain-u-button-warning-color:$u-error; + +.u-button { + width: 100%; + + &__text { + white-space: nowrap; + line-height: 1; + } + + &:before { + position: absolute; + top:$u-button-before-top; + left:$u-button-before-left; + width:$u-button-before-width; + height:$u-button-before-height; + border: inherit; + border-radius: inherit; + transform:$u-button-before-transform; + opacity:$u-button-before-opacity; + content: " "; + background-color:$u-button-before-background-color; + border-color:$u-button-before-border-color; + } + + &--active { + &:before { + opacity: .15 + } + } + + &__icon+&__text:not(:empty), + &__loading-text { + margin-left:$u-button-icon-margin-left; + } + + &--plain { + &.u-button--primary { + color: $u-primary; + } + } + + &--plain { + &.u-button--info { + color:$u-button-plain-u-button-info-color; + } + } + + &--plain { + &.u-button--success { + color:$u-button-plain-u-button-success-color; + } + } + + &--plain { + &.u-button--error { + color:$u-button-plain-u-button-error-color; + } + } + + &--plain { + &.u-button--warning { + color:$u-button-plain-u-button-warning-color; + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/header.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/header.vue new file mode 100644 index 00000000..dc4f7d05 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/header.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/month.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/month.vue new file mode 100644 index 00000000..c20937fe --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/month.vue @@ -0,0 +1,579 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/props.js new file mode 100644 index 00000000..2ad7bc76 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/props.js @@ -0,0 +1,144 @@ +export default { + props: { + // 日历顶部标题 + title: { + type: String, + default: uni.$u.props.calendar.title + }, + // 是否显示标题 + showTitle: { + type: Boolean, + default: uni.$u.props.calendar.showTitle + }, + // 是否显示副标题 + showSubtitle: { + type: Boolean, + default: uni.$u.props.calendar.showSubtitle + }, + // 日期类型选择,single-选择单个日期,multiple-可以选择多个日期,range-选择日期范围 + mode: { + type: String, + default: uni.$u.props.calendar.mode + }, + // mode=range时,第一个日期底部的提示文字 + startText: { + type: String, + default: uni.$u.props.calendar.startText + }, + // mode=range时,最后一个日期底部的提示文字 + endText: { + type: String, + default: uni.$u.props.calendar.endText + }, + // 自定义列表 + customList: { + type: Array, + default: uni.$u.props.calendar.customList + }, + // 主题色,对底部按钮和选中日期有效 + color: { + type: String, + default: uni.$u.props.calendar.color + }, + // 最小的可选日期 + minDate: { + type: [String, Number], + default: uni.$u.props.calendar.minDate + }, + // 最大可选日期 + maxDate: { + type: [String, Number], + default: uni.$u.props.calendar.maxDate + }, + // 默认选中的日期,mode为multiple或range是必须为数组格式 + defaultDate: { + type: [Array, String, Date, null], + default: uni.$u.props.calendar.defaultDate + }, + // mode=multiple时,最多可选多少个日期 + maxCount: { + type: [String, Number], + default: uni.$u.props.calendar.maxCount + }, + // 日期行高 + rowHeight: { + type: [String, Number], + default: uni.$u.props.calendar.rowHeight + }, + // 日期格式化函数 + formatter: { + type: [Function, null], + default: uni.$u.props.calendar.formatter + }, + // 是否显示农历 + showLunar: { + type: Boolean, + default: uni.$u.props.calendar.showLunar + }, + // 是否显示月份背景色 + showMark: { + type: Boolean, + default: uni.$u.props.calendar.showMark + }, + // 确定按钮的文字 + confirmText: { + type: String, + default: uni.$u.props.calendar.confirmText + }, + // 确认按钮处于禁用状态时的文字 + confirmDisabledText: { + type: String, + default: uni.$u.props.calendar.confirmDisabledText + }, + // 是否显示日历弹窗 + show: { + type: Boolean, + default: uni.$u.props.calendar.show + }, + // 是否允许点击遮罩关闭日历 + closeOnClickOverlay: { + type: Boolean, + default: uni.$u.props.calendar.closeOnClickOverlay + }, + // 是否为只读状态,只读状态下禁止选择日期 + readonly: { + type: Boolean, + default: uni.$u.props.calendar.readonly + }, + // 是否展示确认按钮 + showConfirm: { + type: Boolean, + default: uni.$u.props.calendar.showConfirm + }, + // 日期区间最多可选天数,默认无限制,mode = range时有效 + maxRange: { + type: [Number, String], + default: uni.$u.props.calendar.maxRange + }, + // 范围选择超过最多可选天数时的提示文案,mode = range时有效 + rangePrompt: { + type: String, + default: uni.$u.props.calendar.rangePrompt + }, + // 范围选择超过最多可选天数时,是否展示提示文案,mode = range时有效 + showRangePrompt: { + type: Boolean, + default: uni.$u.props.calendar.showRangePrompt + }, + // 是否允许日期范围的起止时间为同一天,mode = range时有效 + allowSameDay: { + type: Boolean, + default: uni.$u.props.calendar.allowSameDay + }, + // 圆角值 + round: { + type: [Boolean, String, Number], + default: uni.$u.props.calendar.round + }, + // 最多展示月份数量 + monthNum: { + type: [Number, String], + default: 3 + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/u-calendar.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/u-calendar.vue new file mode 100644 index 00000000..511f9939 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/u-calendar.vue @@ -0,0 +1,384 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/util.js b/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/util.js new file mode 100644 index 00000000..ca4736bb --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-calendar/util.js @@ -0,0 +1,85 @@ +export default { + methods: { + // 设置月份数据 + setMonth() { + // 月初是周几 + const day = dayjs(this.date).date(1).day() + const start = day == 0 ? 6 : day - 1 + + // 本月天数 + const days = dayjs(this.date).endOf('month').format('D') + + // 上个月天数 + const prevDays = dayjs(this.date).endOf('month').subtract(1, 'month').format('D') + + // 日期数据 + const arr = [] + // 清空表格 + this.month = [] + + // 添加上月数据 + arr.push( + ...new Array(start).fill(1).map((e, i) => { + const day = prevDays - start + i + 1 + + return { + value: day, + disabled: true, + date: dayjs(this.date).subtract(1, 'month').date(day).format('YYYY-MM-DD') + } + }) + ) + + // 添加本月数据 + arr.push( + ...new Array(days - 0).fill(1).map((e, i) => { + const day = i + 1 + + return { + value: day, + date: dayjs(this.date).date(day).format('YYYY-MM-DD') + } + }) + ) + + // 添加下个月 + arr.push( + ...new Array(42 - days - start).fill(1).map((e, i) => { + const day = i + 1 + + return { + value: day, + disabled: true, + date: dayjs(this.date).add(1, 'month').date(day).format('YYYY-MM-DD') + } + }) + ) + + // 分割数组 + for (let n = 0; n < arr.length; n += 7) { + this.month.push( + arr.slice(n, n + 7).map((e, i) => { + e.index = i + n + + // 自定义信息 + const custom = this.customList.find((c) => c.date == e.date) + + // 农历 + if (this.lunar) { + const { + IDayCn, + IMonthCn + } = this.getLunar(e.date) + e.lunar = IDayCn == '初一' ? IMonthCn : IDayCn + } + + return { + ...e, + ...custom + } + }) + ) + } + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-car-keyboard/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-car-keyboard/props.js new file mode 100644 index 00000000..3553647a --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-car-keyboard/props.js @@ -0,0 +1,14 @@ +export default { + props: { + // 是否打乱键盘按键的顺序 + random: { + type: Boolean, + default: false + }, + // 输入一个中文后,是否自动切换到英文 + autoChange: { + type: Boolean, + default: false + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue new file mode 100644 index 00000000..51175b54 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue @@ -0,0 +1,311 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-cell-group/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-cell-group/props.js new file mode 100644 index 00000000..350ef403 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-cell-group/props.js @@ -0,0 +1,14 @@ +export default { + props: { + // 分组标题 + title: { + type: String, + default: uni.$u.props.cellGroup.title + }, + // 是否显示外边框 + border: { + type: Boolean, + default: uni.$u.props.cellGroup.border + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue new file mode 100644 index 00000000..a9508c0c --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue @@ -0,0 +1,61 @@ + + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-cell/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-cell/props.js new file mode 100644 index 00000000..da033303 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-cell/props.js @@ -0,0 +1,110 @@ +export default { + props: { + // 标题 + title: { + type: [String, Number], + default: uni.$u.props.cell.title + }, + // 标题下方的描述信息 + label: { + type: [String, Number], + default: uni.$u.props.cell.label + }, + // 右侧的内容 + value: { + type: [String, Number], + default: uni.$u.props.cell.value + }, + // 左侧图标名称,或者图片链接(本地文件建议使用绝对地址) + icon: { + type: String, + default: uni.$u.props.cell.icon + }, + // 是否禁用cell + disabled: { + type: Boolean, + default: uni.$u.props.cell.disabled + }, + // 是否显示下边框 + border: { + type: Boolean, + default: uni.$u.props.cell.border + }, + // 内容是否垂直居中(主要是针对右侧的value部分) + center: { + type: Boolean, + default: uni.$u.props.cell.center + }, + // 点击后跳转的URL地址 + url: { + type: String, + default: uni.$u.props.cell.url + }, + // 链接跳转的方式,内部使用的是uView封装的route方法,可能会进行拦截操作 + linkType: { + type: String, + default: uni.$u.props.cell.linkType + }, + // 是否开启点击反馈(表现为点击时加上灰色背景) + clickable: { + type: Boolean, + default: uni.$u.props.cell.clickable + }, + // 是否展示右侧箭头并开启点击反馈 + isLink: { + type: Boolean, + default: uni.$u.props.cell.isLink + }, + // 是否显示表单状态下的必填星号(此组件可能会内嵌入input组件) + required: { + type: Boolean, + default: uni.$u.props.cell.required + }, + // 右侧的图标箭头 + rightIcon: { + type: String, + default: uni.$u.props.cell.rightIcon + }, + // 右侧箭头的方向,可选值为:left,up,down + arrowDirection: { + type: String, + default: uni.$u.props.cell.arrowDirection + }, + // 左侧图标样式 + iconStyle: { + type: [Object, String], + default: () => { + return uni.$u.props.cell.iconStyle + } + }, + // 右侧箭头图标的样式 + rightIconStyle: { + type: [Object, String], + default: () => { + return uni.$u.props.cell.rightIconStyle + } + }, + // 标题的样式 + titleStyle: { + type: [Object, String], + default: () => { + return uni.$u.props.cell.titleStyle + } + }, + // 单位元的大小,可选值为large + size: { + type: String, + default: uni.$u.props.cell.size + }, + // 点击cell是否阻止事件传播 + stop: { + type: Boolean, + default: uni.$u.props.cell.stop + }, + // 标识符,cell被点击时返回 + name: { + type: [Number, String], + default: uni.$u.props.cell.name + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-cell/u-cell.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-cell/u-cell.vue new file mode 100644 index 00000000..b099c907 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-cell/u-cell.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-checkbox-group/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-checkbox-group/props.js new file mode 100644 index 00000000..2f818a10 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-checkbox-group/props.js @@ -0,0 +1,82 @@ +export default { + props: { + // 标识符 + name: { + type: String, + default: uni.$u.props.checkboxGroup.name + }, + // 绑定的值 + value: { + type: Array, + default: uni.$u.props.checkboxGroup.value + }, + // 形状,circle-圆形,square-方形 + shape: { + type: String, + default: uni.$u.props.checkboxGroup.shape + }, + // 是否禁用全部checkbox + disabled: { + type: Boolean, + default: uni.$u.props.checkboxGroup.disabled + }, + + // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值 + activeColor: { + type: String, + default: uni.$u.props.checkboxGroup.activeColor + }, + // 未选中的颜色 + inactiveColor: { + type: String, + default: uni.$u.props.checkboxGroup.inactiveColor + }, + + // 整个组件的尺寸,默认px + size: { + type: [String, Number], + default: uni.$u.props.checkboxGroup.size + }, + // 布局方式,row-横向,column-纵向 + placement: { + type: String, + default: uni.$u.props.checkboxGroup.placement + }, + // label的字体大小,px单位 + labelSize: { + type: [String, Number], + default: uni.$u.props.checkboxGroup.labelSize + }, + // label的字体颜色 + labelColor: { + type: [String], + default: uni.$u.props.checkboxGroup.labelColor + }, + // 是否禁止点击文本操作 + labelDisabled: { + type: Boolean, + default: uni.$u.props.checkboxGroup.labelDisabled + }, + // 图标颜色 + iconColor: { + type: String, + default: uni.$u.props.checkboxGroup.iconColor + }, + // 图标的大小,单位px + iconSize: { + type: [String, Number], + default: uni.$u.props.checkboxGroup.iconSize + }, + // 勾选图标的对齐方式,left-左边,right-右边 + iconPlacement: { + type: String, + default: uni.$u.props.checkboxGroup.iconPlacement + }, + // 竖向配列时,是否显示下划线 + borderBottom: { + type: Boolean, + default: uni.$u.props.checkboxGroup.borderBottom + } + + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue new file mode 100644 index 00000000..7a6b4fa3 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-checkbox/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-checkbox/props.js new file mode 100644 index 00000000..93f4fd9f --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-checkbox/props.js @@ -0,0 +1,69 @@ +export default { + props: { + // checkbox的名称 + name: { + type: [String, Number, Boolean], + default: uni.$u.props.checkbox.name + }, + // 形状,square为方形,circle为圆型 + shape: { + type: String, + default: uni.$u.props.checkbox.shape + }, + // 整体的大小 + size: { + type: [String, Number], + default: uni.$u.props.checkbox.size + }, + // 是否默认选中 + checked: { + type: Boolean, + default: uni.$u.props.checkbox.checked + }, + // 是否禁用 + disabled: { + type: [String, Boolean], + default: uni.$u.props.checkbox.disabled + }, + // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值 + activeColor: { + type: String, + default: uni.$u.props.checkbox.activeColor + }, + // 未选中的颜色 + inactiveColor: { + type: String, + default: uni.$u.props.checkbox.inactiveColor + }, + // 图标的大小,单位px + iconSize: { + type: [String, Number], + default: uni.$u.props.checkbox.iconSize + }, + // 图标颜色 + iconColor: { + type: String, + default: uni.$u.props.checkbox.iconColor + }, + // label提示文字,因为nvue下,直接slot进来的文字,由于特殊的结构,无法修改样式 + label: { + type: [String, Number], + default: uni.$u.props.checkbox.label + }, + // label的字体大小,px单位 + labelSize: { + type: [String, Number], + default: uni.$u.props.checkbox.labelSize + }, + // label的颜色 + labelColor: { + type: String, + default: uni.$u.props.checkbox.labelColor + }, + // 是否禁止点击提示语选中复选框 + labelDisabled: { + type: [String, Boolean], + default: uni.$u.props.checkbox.labelDisabled + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue new file mode 100644 index 00000000..6429cca9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue @@ -0,0 +1,344 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-circle-progress/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-circle-progress/props.js new file mode 100644 index 00000000..d776cfb6 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-circle-progress/props.js @@ -0,0 +1,8 @@ +export default { + props: { + percentage: { + type: [String, Number], + default: uni.$u.props.circleProgress.percentage + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue new file mode 100644 index 00000000..d1ee2867 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-code-input/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-code-input/props.js new file mode 100644 index 00000000..0f016ee0 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-code-input/props.js @@ -0,0 +1,79 @@ +export default { + props: { + // 键盘弹起时,是否自动上推页面 + adjustPosition: { + type: Boolean, + default: uni.$u.props.codeInput.adjustPosition + }, + // 最大输入长度 + maxlength: { + type: [String, Number], + default: uni.$u.props.codeInput.maxlength + }, + // 是否用圆点填充 + dot: { + type: Boolean, + default: uni.$u.props.codeInput.dot + }, + // 显示模式,box-盒子模式,line-底部横线模式 + mode: { + type: String, + default: uni.$u.props.codeInput.mode + }, + // 是否细边框 + hairline: { + type: Boolean, + default: uni.$u.props.codeInput.hairline + }, + // 字符间的距离 + space: { + type: [String, Number], + default: uni.$u.props.codeInput.space + }, + // 预置值 + value: { + type: [String, Number], + default: uni.$u.props.codeInput.value + }, + // 是否自动获取焦点 + focus: { + type: Boolean, + default: uni.$u.props.codeInput.focus + }, + // 字体是否加粗 + bold: { + type: Boolean, + default: uni.$u.props.codeInput.bold + }, + // 字体颜色 + color: { + type: String, + default: uni.$u.props.codeInput.color + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.codeInput.fontSize + }, + // 输入框的大小,宽等于高 + size: { + type: [String, Number], + default: uni.$u.props.codeInput.size + }, + // 是否隐藏原生键盘,如果想用自定义键盘的话,需设置此参数为true + disabledKeyboard: { + type: Boolean, + default: uni.$u.props.codeInput.disabledKeyboard + }, + // 边框和线条颜色 + borderColor: { + type: String, + default: uni.$u.props.codeInput.borderColor + }, + // 是否禁止输入"."符号 + disabledDot: { + type: Boolean, + default: uni.$u.props.codeInput.disabledDot + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-code-input/u-code-input.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-code-input/u-code-input.vue new file mode 100644 index 00000000..96241cfc --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-code-input/u-code-input.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-code/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-code/props.js new file mode 100644 index 00000000..eaf80d02 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-code/props.js @@ -0,0 +1,34 @@ +export default { + props: { + // 倒计时总秒数 + seconds: { + type: [String, Number], + default: uni.$u.props.code.seconds + }, + // 尚未开始时提示 + startText: { + type: String, + default: uni.$u.props.code.startText + }, + // 正在倒计时中的提示 + changeText: { + type: String, + default: uni.$u.props.code.changeText + }, + // 倒计时结束时的提示 + endText: { + type: String, + default: uni.$u.props.code.endText + }, + // 是否在H5刷新或各端返回再进入时继续倒计时 + keepRunning: { + type: Boolean, + default: uni.$u.props.code.keepRunning + }, + // 为了区分多个页面,或者一个页面多个倒计时组件本地存储的继续倒计时变了 + uniqueKey: { + type: String, + default: uni.$u.props.code.uniqueKey + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-code/u-code.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-code/u-code.vue new file mode 100644 index 00000000..f79a09ac --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-code/u-code.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-col/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-col/props.js new file mode 100644 index 00000000..06222517 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-col/props.js @@ -0,0 +1,29 @@ +export default { + props: { + // 占父容器宽度的多少等分,总分为12份 + span: { + type: [String, Number], + default: uni.$u.props.col.span + }, + // 指定栅格左侧的间隔数(总12栏) + offset: { + type: [String, Number], + default: uni.$u.props.col.offset + }, + // 水平排列方式,可选值为`start`(或`flex-start`)、`end`(或`flex-end`)、`center`、`around`(或`space-around`)、`between`(或`space-between`) + justify: { + type: String, + default: uni.$u.props.col.justify + }, + // 垂直对齐方式,可选值为top、center、bottom、stretch + align: { + type: String, + default: uni.$u.props.col.align + }, + // 文字对齐方式 + textAlign: { + type: String, + default: uni.$u.props.col.textAlign + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-col/u-col.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-col/u-col.vue new file mode 100644 index 00000000..8be15174 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-col/u-col.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-collapse-item/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-collapse-item/props.js new file mode 100644 index 00000000..bd5749b6 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-collapse-item/props.js @@ -0,0 +1,59 @@ +export default { + props: { + // 标题 + title: { + type: String, + default: uni.$u.props.collapseItem.title + }, + // 标题右侧内容 + value: { + type: String, + default: uni.$u.props.collapseItem.value + }, + // 标题下方的描述信息 + label: { + type: String, + default: uni.$u.props.collapseItem.label + }, + // 是否禁用折叠面板 + disabled: { + type: Boolean, + default: uni.$u.props.collapseItem.disabled + }, + // 是否展示右侧箭头并开启点击反馈 + isLink: { + type: Boolean, + default: uni.$u.props.collapseItem.isLink + }, + // 是否开启点击反馈 + clickable: { + type: Boolean, + default: uni.$u.props.collapseItem.clickable + }, + // 是否显示内边框 + border: { + type: Boolean, + default: uni.$u.props.collapseItem.border + }, + // 标题的对齐方式 + align: { + type: String, + default: uni.$u.props.collapseItem.align + }, + // 唯一标识符 + name: { + type: [String, Number], + default: uni.$u.props.collapseItem.name + }, + // 标题左侧图片,可为绝对路径的图片或内置图标 + icon: { + type: String, + default: uni.$u.props.collapseItem.icon + }, + // 面板展开收起的过渡时间,单位ms + duration: { + type: Number, + default: uni.$u.props.collapseItem.duration + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue new file mode 100644 index 00000000..0e1b7039 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue @@ -0,0 +1,225 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-collapse/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-collapse/props.js new file mode 100644 index 00000000..7ee6d319 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-collapse/props.js @@ -0,0 +1,19 @@ +export default { + props: { + // 当前展开面板的name,非手风琴模式:[],手风琴模式:string | number + value: { + type: [String, Number, Array, null], + default: uni.$u.props.collapse.value + }, + // 是否手风琴模式 + accordion: { + type: Boolean, + default: uni.$u.props.collapse.accordion + }, + // 是否显示外边框 + border: { + type: Boolean, + default: uni.$u.props.collapse.border + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-collapse/u-collapse.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-collapse/u-collapse.vue new file mode 100644 index 00000000..fc188a2e --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-collapse/u-collapse.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-column-notice/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-column-notice/props.js new file mode 100644 index 00000000..48091549 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-column-notice/props.js @@ -0,0 +1,55 @@ +export default { + props: { + // 显示的内容,字符串 + text: { + type: [Array], + default: uni.$u.props.columnNotice.text + }, + // 是否显示左侧的音量图标 + icon: { + type: String, + default: uni.$u.props.columnNotice.icon + }, + // 通告模式,link-显示右箭头,closable-显示右侧关闭图标 + mode: { + type: String, + default: uni.$u.props.columnNotice.mode + }, + // 文字颜色,各图标也会使用文字颜色 + color: { + type: String, + default: uni.$u.props.columnNotice.color + }, + // 背景颜色 + bgColor: { + type: String, + default: uni.$u.props.columnNotice.bgColor + }, + // 字体大小,单位px + fontSize: { + type: [String, Number], + default: uni.$u.props.columnNotice.fontSize + }, + // 水平滚动时的滚动速度,即每秒滚动多少px(px),这有利于控制文字无论多少时,都能有一个恒定的速度 + speed: { + type: [String, Number], + default: uni.$u.props.columnNotice.speed + }, + // direction = row时,是否使用步进形式滚动 + step: { + type: Boolean, + default: uni.$u.props.columnNotice.step + }, + // 滚动一个周期的时间长,单位ms + duration: { + type: [String, Number], + default: uni.$u.props.columnNotice.duration + }, + // 是否禁止用手滑动切换 + // 目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序 + disableTouch: { + type: Boolean, + default: uni.$u.props.columnNotice.disableTouch + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue new file mode 100644 index 00000000..fc395321 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-count-down/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-count-down/props.js new file mode 100644 index 00000000..d62f0255 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-count-down/props.js @@ -0,0 +1,24 @@ +export default { + props: { + // 倒计时时长,单位ms + time: { + type: [String, Number], + default: uni.$u.props.countDown.time + }, + // 时间格式,DD-日,HH-时,mm-分,ss-秒,SSS-毫秒 + format: { + type: String, + default: uni.$u.props.countDown.format + }, + // 是否自动开始倒计时 + autoStart: { + type: Boolean, + default: uni.$u.props.countDown.autoStart + }, + // 是否展示毫秒倒计时 + millisecond: { + type: Boolean, + default: uni.$u.props.countDown.millisecond + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-count-down/u-count-down.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-count-down/u-count-down.vue new file mode 100644 index 00000000..b5e85a63 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-count-down/u-count-down.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-count-down/utils.js b/supervise-uniapp/uni_modules/uview-ui/components/u-count-down/utils.js new file mode 100644 index 00000000..8c750050 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-count-down/utils.js @@ -0,0 +1,62 @@ +// 补0,如1 -> 01 +function padZero(num, targetLength = 2) { + let str = `${num}` + while (str.length < targetLength) { + str = `0${str}` + } + return str +} +const SECOND = 1000 +const MINUTE = 60 * SECOND +const HOUR = 60 * MINUTE +const DAY = 24 * HOUR +export function parseTimeData(time) { + const days = Math.floor(time / DAY) + const hours = Math.floor((time % DAY) / HOUR) + const minutes = Math.floor((time % HOUR) / MINUTE) + const seconds = Math.floor((time % MINUTE) / SECOND) + const milliseconds = Math.floor(time % SECOND) + return { + days, + hours, + minutes, + seconds, + milliseconds + } +} +export function parseFormat(format, timeData) { + let { + days, + hours, + minutes, + seconds, + milliseconds + } = timeData + // 如果格式化字符串中不存在DD(天),则将天的时间转为小时中去 + if (format.indexOf('DD') === -1) { + hours += days * 24 + } else { + // 对天补0 + format = format.replace('DD', padZero(days)) + } + // 其他同理于DD的格式化处理方式 + if (format.indexOf('HH') === -1) { + minutes += hours * 60 + } else { + format = format.replace('HH', padZero(hours)) + } + if (format.indexOf('mm') === -1) { + seconds += minutes * 60 + } else { + format = format.replace('mm', padZero(minutes)) + } + if (format.indexOf('ss') === -1) { + milliseconds += seconds * 1000 + } else { + format = format.replace('ss', padZero(seconds)) + } + return format.replace('SSS', padZero(milliseconds, 3)) +} +export function isSameSecond(time1, time2) { + return Math.floor(time1 / 1000) === Math.floor(time2 / 1000) +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-count-to/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-count-to/props.js new file mode 100644 index 00000000..86873c18 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-count-to/props.js @@ -0,0 +1,59 @@ +export default { + props: { + // 开始的数值,默认从0增长到某一个数 + startVal: { + type: [String, Number], + default: uni.$u.props.countTo.startVal + }, + // 要滚动的目标数值,必须 + endVal: { + type: [String, Number], + default: uni.$u.props.countTo.endVal + }, + // 滚动到目标数值的动画持续时间,单位为毫秒(ms) + duration: { + type: [String, Number], + default: uni.$u.props.countTo.duration + }, + // 设置数值后是否自动开始滚动 + autoplay: { + type: Boolean, + default: uni.$u.props.countTo.autoplay + }, + // 要显示的小数位数 + decimals: { + type: [String, Number], + default: uni.$u.props.countTo.decimals + }, + // 是否在即将到达目标数值的时候,使用缓慢滚动的效果 + useEasing: { + type: Boolean, + default: uni.$u.props.countTo.useEasing + }, + // 十进制分割 + decimal: { + type: [String, Number], + default: uni.$u.props.countTo.decimal + }, + // 字体颜色 + color: { + type: String, + default: uni.$u.props.countTo.color + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.countTo.fontSize + }, + // 是否加粗字体 + bold: { + type: Boolean, + default: uni.$u.props.countTo.bold + }, + // 千位分隔符,类似金额的分割(¥23,321.05中的",") + separator: { + type: String, + default: uni.$u.props.countTo.separator + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-count-to/u-count-to.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-count-to/u-count-to.vue new file mode 100644 index 00000000..417b7327 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-count-to/u-count-to.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-datetime-picker/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-datetime-picker/props.js new file mode 100644 index 00000000..f44c0f99 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-datetime-picker/props.js @@ -0,0 +1,116 @@ +export default { + props: { + // 是否打开组件 + show: { + type: Boolean, + default: uni.$u.props.datetimePicker.show + }, + // 是否展示顶部的操作栏 + showToolbar: { + type: Boolean, + default: uni.$u.props.datetimePicker.showToolbar + }, + // 绑定值 + value: { + type: [String, Number], + default: uni.$u.props.datetimePicker.value + }, + // 顶部标题 + title: { + type: String, + default: uni.$u.props.datetimePicker.title + }, + // 展示格式,mode=date为日期选择,mode=time为时间选择,mode=year-month为年月选择,mode=datetime为日期时间选择 + mode: { + type: String, + default: uni.$u.props.datetimePicker.mode + }, + // 可选的最大时间 + maxDate: { + type: Number, + // 最大默认值为后10年 + default: uni.$u.props.datetimePicker.maxDate + }, + // 可选的最小时间 + minDate: { + type: Number, + // 最小默认值为前10年 + default: uni.$u.props.datetimePicker.minDate + }, + // 可选的最小小时,仅mode=time有效 + minHour: { + type: Number, + default: uni.$u.props.datetimePicker.minHour + }, + // 可选的最大小时,仅mode=time有效 + maxHour: { + type: Number, + default: uni.$u.props.datetimePicker.maxHour + }, + // 可选的最小分钟,仅mode=time有效 + minMinute: { + type: Number, + default: uni.$u.props.datetimePicker.minMinute + }, + // 可选的最大分钟,仅mode=time有效 + maxMinute: { + type: Number, + default: uni.$u.props.datetimePicker.maxMinute + }, + // 选项过滤函数 + filter: { + type: [Function, null], + default: uni.$u.props.datetimePicker.filter + }, + // 选项格式化函数 + formatter: { + type: [Function, null], + default: uni.$u.props.datetimePicker.formatter + }, + // 是否显示加载中状态 + loading: { + type: Boolean, + default: uni.$u.props.datetimePicker.loading + }, + // 各列中,单个选项的高度 + itemHeight: { + type: [String, Number], + default: uni.$u.props.datetimePicker.itemHeight + }, + // 取消按钮的文字 + cancelText: { + type: String, + default: uni.$u.props.datetimePicker.cancelText + }, + // 确认按钮的文字 + confirmText: { + type: String, + default: uni.$u.props.datetimePicker.confirmText + }, + // 取消按钮的颜色 + cancelColor: { + type: String, + default: uni.$u.props.datetimePicker.cancelColor + }, + // 确认按钮的颜色 + confirmColor: { + type: String, + default: uni.$u.props.datetimePicker.confirmColor + }, + // 每列中可见选项的数量 + visibleItemCount: { + type: [String, Number], + default: uni.$u.props.datetimePicker.visibleItemCount + }, + // 是否允许点击遮罩关闭选择器 + closeOnClickOverlay: { + type: Boolean, + default: uni.$u.props.datetimePicker.closeOnClickOverlay + }, + // 各列的默认索引 + defaultIndex: { + type: Array, + default: uni.$u.props.datetimePicker.defaultIndex + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue new file mode 100644 index 00000000..18d8dcc6 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue @@ -0,0 +1,360 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-divider/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-divider/props.js new file mode 100644 index 00000000..1fa8359f --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-divider/props.js @@ -0,0 +1,44 @@ +export default { + props: { + // 是否虚线 + dashed: { + type: Boolean, + default: uni.$u.props.divider.dashed + }, + // 是否细线 + hairline: { + type: Boolean, + default: uni.$u.props.divider.hairline + }, + // 是否以点替代文字,优先于text字段起作用 + dot: { + type: Boolean, + default: uni.$u.props.divider.dot + }, + // 内容文本的位置,left-左边,center-中间,right-右边 + textPosition: { + type: String, + default: uni.$u.props.divider.textPosition + }, + // 文本内容 + text: { + type: [String, Number], + default: uni.$u.props.divider.text + }, + // 文本大小 + textSize: { + type: [String, Number], + default: uni.$u.props.divider.textSize + }, + // 文本颜色 + textColor: { + type: String, + default: uni.$u.props.divider.textColor + }, + // 线条颜色 + lineColor: { + type: String, + default: uni.$u.props.divider.lineColor + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-divider/u-divider.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-divider/u-divider.vue new file mode 100644 index 00000000..b629da64 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-divider/u-divider.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-dropdown-item/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-dropdown-item/props.js new file mode 100644 index 00000000..501a1f05 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-dropdown-item/props.js @@ -0,0 +1,36 @@ +export default { + props: { + // 当前选中项的value值 + value: { + type: [Number, String, Array], + default: '' + }, + // 菜单项标题 + title: { + type: [String, Number], + default: '' + }, + // 选项数据,如果传入了默认slot,此参数无效 + options: { + type: Array, + default() { + return [] + } + }, + // 是否禁用此菜单项 + disabled: { + type: Boolean, + default: false + }, + // 下拉弹窗的高度 + height: { + type: [Number, String], + default: 'auto' + }, + // 点击遮罩是否可以收起弹窗 + closeOnClickOverlay: { + type: Boolean, + default: true + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue new file mode 100644 index 00000000..f830291a --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-dropdown/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-dropdown/props.js new file mode 100644 index 00000000..5f8465ef --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-dropdown/props.js @@ -0,0 +1,65 @@ +export default { + props: { + // 标题选中时的样式 + activeStyle: { + type: [String, Object], + default: () => ({ + color: '#2979ff', + fontSize: '14px' + }) + }, + // 标题未选中时的样式 + inactiveStyle: { + type: [String, Object], + default: () => ({ + color: '#606266', + fontSize: '14px' + }) + }, + // 点击遮罩是否关闭菜单 + closeOnClickMask: { + type: Boolean, + default: true + }, + // 点击当前激活项标题是否关闭菜单 + closeOnClickSelf: { + type: Boolean, + default: true + }, + // 过渡时间 + duration: { + type: [Number, String], + default: 300 + }, + // 标题菜单的高度 + height: { + type: [Number, String], + default: 40 + }, + // 是否显示下边框 + borderBottom: { + type: Boolean, + default: false + }, + // 标题的字体大小 + titleSize: { + type: [Number, String], + default: 14 + }, + // 下拉出来的内容部分的圆角值 + borderRadius: { + type: [Number, String], + default: 0 + }, + // 菜单右侧的icon图标 + menuIcon: { + type: String, + default: 'arrow-down' + }, + // 菜单右侧图标的大小 + menuIconSize: { + type: [Number, String], + default: 14 + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue new file mode 100644 index 00000000..f830291a --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-empty/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-empty/props.js new file mode 100644 index 00000000..78662f8f --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-empty/props.js @@ -0,0 +1,59 @@ +export default { + props: { + // 内置图标名称,或图片路径,建议绝对路径 + icon: { + type: String, + default: uni.$u.props.empty.icon + }, + // 提示文字 + text: { + type: String, + default: uni.$u.props.empty.text + }, + // 文字颜色 + textColor: { + type: String, + default: uni.$u.props.empty.textColor + }, + // 文字大小 + textSize: { + type: [String, Number], + default: uni.$u.props.empty.textSize + }, + // 图标的颜色 + iconColor: { + type: String, + default: uni.$u.props.empty.iconColor + }, + // 图标的大小 + iconSize: { + type: [String, Number], + default: uni.$u.props.empty.iconSize + }, + // 选择预置的图标类型 + mode: { + type: String, + default: uni.$u.props.empty.mode + }, + // 图标宽度,单位px + width: { + type: [String, Number], + default: uni.$u.props.empty.width + }, + // 图标高度,单位px + height: { + type: [String, Number], + default: uni.$u.props.empty.height + }, + // 是否显示组件 + show: { + type: Boolean, + default: uni.$u.props.empty.show + }, + // 组件距离上一个元素之间的距离,默认px单位 + marginTop: { + type: [String, Number], + default: uni.$u.props.empty.marginTop + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-empty/u-empty.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-empty/u-empty.vue new file mode 100644 index 00000000..03d6a273 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-empty/u-empty.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-form-item/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-form-item/props.js new file mode 100644 index 00000000..7b166556 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-form-item/props.js @@ -0,0 +1,48 @@ +export default { + props: { + // input的label提示语 + label: { + type: String, + default: uni.$u.props.formItem.label + }, + // 绑定的值 + prop: { + type: String, + default: uni.$u.props.formItem.prop + }, + // 是否显示表单域的下划线边框 + borderBottom: { + type: [String, Boolean], + default: uni.$u.props.formItem.borderBottom + }, + // label的位置,left-左边,top-上边 + labelPosition: { + type: String, + default: uni.$u.props.formItem.labelPosition + }, + // label的宽度,单位px + labelWidth: { + type: [String, Number], + default: uni.$u.props.formItem.labelWidth + }, + // 右侧图标 + rightIcon: { + type: String, + default: uni.$u.props.formItem.rightIcon + }, + // 左侧图标 + leftIcon: { + type: String, + default: uni.$u.props.formItem.leftIcon + }, + // 是否显示左边的必填星号,只作显示用,具体校验必填的逻辑,请在rules中配置 + required: { + type: Boolean, + default: uni.$u.props.formItem.required + }, + leftIconStyle: { + type: [String, Object], + default: uni.$u.props.formItem.leftIconStyle, + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-form-item/u-form-item.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-form-item/u-form-item.vue new file mode 100644 index 00000000..6aa8d690 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-form-item/u-form-item.vue @@ -0,0 +1,235 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-form/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-form/props.js new file mode 100644 index 00000000..f2a629c0 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-form/props.js @@ -0,0 +1,45 @@ +export default { + props: { + // 当前form的需要验证字段的集合 + model: { + type: Object, + default: uni.$u.props.form.model + }, + // 验证规则 + rules: { + type: [Object, Function, Array], + default: uni.$u.props.form.rules + }, + // 有错误时的提示方式,message-提示信息,toast-进行toast提示 + // border-bottom-下边框呈现红色,none-无提示 + errorType: { + type: String, + default: uni.$u.props.form.errorType + }, + // 是否显示表单域的下划线边框 + borderBottom: { + type: Boolean, + default: uni.$u.props.form.borderBottom + }, + // label的位置,left-左边,top-上边 + labelPosition: { + type: String, + default: uni.$u.props.form.labelPosition + }, + // label的宽度,单位px + labelWidth: { + type: [String, Number], + default: uni.$u.props.form.labelWidth + }, + // lable字体的对齐方式 + labelAlign: { + type: String, + default: uni.$u.props.form.labelAlign + }, + // lable的样式,对象形式 + labelStyle: { + type: Object, + default: uni.$u.props.form.labelStyle + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-form/u-form.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-form/u-form.vue new file mode 100644 index 00000000..fe2dde2d --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-form/u-form.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-gap/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-gap/props.js new file mode 100644 index 00000000..89953e32 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-gap/props.js @@ -0,0 +1,24 @@ +export default { + props: { + // 背景颜色(默认transparent) + bgColor: { + type: String, + default: uni.$u.props.gap.bgColor + }, + // 分割槽高度,单位px(默认30) + height: { + type: [String, Number], + default: uni.$u.props.gap.height + }, + // 与上一个组件的距离 + marginTop: { + type: [String, Number], + default: uni.$u.props.gap.marginTop + }, + // 与下一个组件的距离 + marginBottom: { + type: [String, Number], + default: uni.$u.props.gap.marginBottom + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-gap/u-gap.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-gap/u-gap.vue new file mode 100644 index 00000000..e4429f0e --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-gap/u-gap.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-grid-item/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-grid-item/props.js new file mode 100644 index 00000000..06c3c663 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-grid-item/props.js @@ -0,0 +1,14 @@ +export default { + props: { + // 宫格的name + name: { + type: [String, Number, null], + default: uni.$u.props.gridItem.name + }, + // 背景颜色 + bgColor: { + type: String, + default: uni.$u.props.gridItem.bgColor + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue new file mode 100644 index 00000000..fc0c7cf1 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue @@ -0,0 +1,209 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-grid/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-grid/props.js new file mode 100644 index 00000000..87b0f6a7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-grid/props.js @@ -0,0 +1,19 @@ +export default { + props: { + // 分成几列 + col: { + type: [String, Number], + default: uni.$u.props.grid.col + }, + // 是否显示边框 + border: { + type: Boolean, + default: uni.$u.props.grid.border + }, + // 宫格对齐方式,表现为数量少的时候,靠左,居中,还是靠右 + align: { + type: String, + default: uni.$u.props.grid.align + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-grid/u-grid.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-grid/u-grid.vue new file mode 100644 index 00000000..b43cc270 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-grid/u-grid.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-icon/icons.js b/supervise-uniapp/uni_modules/uview-ui/components/u-icon/icons.js new file mode 100644 index 00000000..f4d0fe29 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-icon/icons.js @@ -0,0 +1,214 @@ +export default { + 'uicon-level': '\ue693', + 'uicon-column-line': '\ue68e', + 'uicon-checkbox-mark': '\ue807', + 'uicon-folder': '\ue7f5', + 'uicon-movie': '\ue7f6', + 'uicon-star-fill': '\ue669', + 'uicon-star': '\ue65f', + 'uicon-phone-fill': '\ue64f', + 'uicon-phone': '\ue622', + 'uicon-apple-fill': '\ue881', + 'uicon-chrome-circle-fill': '\ue885', + 'uicon-backspace': '\ue67b', + 'uicon-attach': '\ue632', + 'uicon-cut': '\ue948', + 'uicon-empty-car': '\ue602', + 'uicon-empty-coupon': '\ue682', + 'uicon-empty-address': '\ue646', + 'uicon-empty-favor': '\ue67c', + 'uicon-empty-permission': '\ue686', + 'uicon-empty-news': '\ue687', + 'uicon-empty-search': '\ue664', + 'uicon-github-circle-fill': '\ue887', + 'uicon-rmb': '\ue608', + 'uicon-person-delete-fill': '\ue66a', + 'uicon-reload': '\ue788', + 'uicon-order': '\ue68f', + 'uicon-server-man': '\ue6bc', + 'uicon-search': '\ue62a', + 'uicon-fingerprint': '\ue955', + 'uicon-more-dot-fill': '\ue630', + 'uicon-scan': '\ue662', + 'uicon-share-square': '\ue60b', + 'uicon-map': '\ue61d', + 'uicon-map-fill': '\ue64e', + 'uicon-tags': '\ue629', + 'uicon-tags-fill': '\ue651', + 'uicon-bookmark-fill': '\ue63b', + 'uicon-bookmark': '\ue60a', + 'uicon-eye': '\ue613', + 'uicon-eye-fill': '\ue641', + 'uicon-mic': '\ue64a', + 'uicon-mic-off': '\ue649', + 'uicon-calendar': '\ue66e', + 'uicon-calendar-fill': '\ue634', + 'uicon-trash': '\ue623', + 'uicon-trash-fill': '\ue658', + 'uicon-play-left': '\ue66d', + 'uicon-play-right': '\ue610', + 'uicon-minus': '\ue618', + 'uicon-plus': '\ue62d', + 'uicon-info': '\ue653', + 'uicon-info-circle': '\ue7d2', + 'uicon-info-circle-fill': '\ue64b', + 'uicon-question': '\ue715', + 'uicon-error': '\ue6d3', + 'uicon-close': '\ue685', + 'uicon-checkmark': '\ue6a8', + 'uicon-android-circle-fill': '\ue67e', + 'uicon-android-fill': '\ue67d', + 'uicon-ie': '\ue87b', + 'uicon-IE-circle-fill': '\ue889', + 'uicon-google': '\ue87a', + 'uicon-google-circle-fill': '\ue88a', + 'uicon-setting-fill': '\ue872', + 'uicon-setting': '\ue61f', + 'uicon-minus-square-fill': '\ue855', + 'uicon-plus-square-fill': '\ue856', + 'uicon-heart': '\ue7df', + 'uicon-heart-fill': '\ue851', + 'uicon-camera': '\ue7d7', + 'uicon-camera-fill': '\ue870', + 'uicon-more-circle': '\ue63e', + 'uicon-more-circle-fill': '\ue645', + 'uicon-chat': '\ue620', + 'uicon-chat-fill': '\ue61e', + 'uicon-bag-fill': '\ue617', + 'uicon-bag': '\ue619', + 'uicon-error-circle-fill': '\ue62c', + 'uicon-error-circle': '\ue624', + 'uicon-close-circle': '\ue63f', + 'uicon-close-circle-fill': '\ue637', + 'uicon-checkmark-circle': '\ue63d', + 'uicon-checkmark-circle-fill': '\ue635', + 'uicon-question-circle-fill': '\ue666', + 'uicon-question-circle': '\ue625', + 'uicon-share': '\ue631', + 'uicon-share-fill': '\ue65e', + 'uicon-shopping-cart': '\ue621', + 'uicon-shopping-cart-fill': '\ue65d', + 'uicon-bell': '\ue609', + 'uicon-bell-fill': '\ue640', + 'uicon-list': '\ue650', + 'uicon-list-dot': '\ue616', + 'uicon-zhihu': '\ue6ba', + 'uicon-zhihu-circle-fill': '\ue709', + 'uicon-zhifubao': '\ue6b9', + 'uicon-zhifubao-circle-fill': '\ue6b8', + 'uicon-weixin-circle-fill': '\ue6b1', + 'uicon-weixin-fill': '\ue6b2', + 'uicon-twitter-circle-fill': '\ue6ab', + 'uicon-twitter': '\ue6aa', + 'uicon-taobao-circle-fill': '\ue6a7', + 'uicon-taobao': '\ue6a6', + 'uicon-weibo-circle-fill': '\ue6a5', + 'uicon-weibo': '\ue6a4', + 'uicon-qq-fill': '\ue6a1', + 'uicon-qq-circle-fill': '\ue6a0', + 'uicon-moments-circel-fill': '\ue69a', + 'uicon-moments': '\ue69b', + 'uicon-qzone': '\ue695', + 'uicon-qzone-circle-fill': '\ue696', + 'uicon-baidu-circle-fill': '\ue680', + 'uicon-baidu': '\ue681', + 'uicon-facebook-circle-fill': '\ue68a', + 'uicon-facebook': '\ue689', + 'uicon-car': '\ue60c', + 'uicon-car-fill': '\ue636', + 'uicon-warning-fill': '\ue64d', + 'uicon-warning': '\ue694', + 'uicon-clock-fill': '\ue638', + 'uicon-clock': '\ue60f', + 'uicon-edit-pen': '\ue612', + 'uicon-edit-pen-fill': '\ue66b', + 'uicon-email': '\ue611', + 'uicon-email-fill': '\ue642', + 'uicon-minus-circle': '\ue61b', + 'uicon-minus-circle-fill': '\ue652', + 'uicon-plus-circle': '\ue62e', + 'uicon-plus-circle-fill': '\ue661', + 'uicon-file-text': '\ue663', + 'uicon-file-text-fill': '\ue665', + 'uicon-pushpin': '\ue7e3', + 'uicon-pushpin-fill': '\ue86e', + 'uicon-grid': '\ue673', + 'uicon-grid-fill': '\ue678', + 'uicon-play-circle': '\ue647', + 'uicon-play-circle-fill': '\ue655', + 'uicon-pause-circle-fill': '\ue654', + 'uicon-pause': '\ue8fa', + 'uicon-pause-circle': '\ue643', + 'uicon-eye-off': '\ue648', + 'uicon-eye-off-outline': '\ue62b', + 'uicon-gift-fill': '\ue65c', + 'uicon-gift': '\ue65b', + 'uicon-rmb-circle-fill': '\ue657', + 'uicon-rmb-circle': '\ue677', + 'uicon-kefu-ermai': '\ue656', + 'uicon-server-fill': '\ue751', + 'uicon-coupon-fill': '\ue8c4', + 'uicon-coupon': '\ue8ae', + 'uicon-integral': '\ue704', + 'uicon-integral-fill': '\ue703', + 'uicon-home-fill': '\ue964', + 'uicon-home': '\ue965', + 'uicon-hourglass-half-fill': '\ue966', + 'uicon-hourglass': '\ue967', + 'uicon-account': '\ue628', + 'uicon-plus-people-fill': '\ue626', + 'uicon-minus-people-fill': '\ue615', + 'uicon-account-fill': '\ue614', + 'uicon-thumb-down-fill': '\ue726', + 'uicon-thumb-down': '\ue727', + 'uicon-thumb-up': '\ue733', + 'uicon-thumb-up-fill': '\ue72f', + 'uicon-lock-fill': '\ue979', + 'uicon-lock-open': '\ue973', + 'uicon-lock-opened-fill': '\ue974', + 'uicon-lock': '\ue97a', + 'uicon-red-packet-fill': '\ue690', + 'uicon-photo-fill': '\ue98b', + 'uicon-photo': '\ue98d', + 'uicon-volume-off-fill': '\ue659', + 'uicon-volume-off': '\ue644', + 'uicon-volume-fill': '\ue670', + 'uicon-volume': '\ue633', + 'uicon-red-packet': '\ue691', + 'uicon-download': '\ue63c', + 'uicon-arrow-up-fill': '\ue6b0', + 'uicon-arrow-down-fill': '\ue600', + 'uicon-play-left-fill': '\ue675', + 'uicon-play-right-fill': '\ue676', + 'uicon-rewind-left-fill': '\ue679', + 'uicon-rewind-right-fill': '\ue67a', + 'uicon-arrow-downward': '\ue604', + 'uicon-arrow-leftward': '\ue601', + 'uicon-arrow-rightward': '\ue603', + 'uicon-arrow-upward': '\ue607', + 'uicon-arrow-down': '\ue60d', + 'uicon-arrow-right': '\ue605', + 'uicon-arrow-left': '\ue60e', + 'uicon-arrow-up': '\ue606', + 'uicon-skip-back-left': '\ue674', + 'uicon-skip-forward-right': '\ue672', + 'uicon-rewind-right': '\ue66f', + 'uicon-rewind-left': '\ue671', + 'uicon-arrow-right-double': '\ue68d', + 'uicon-arrow-left-double': '\ue68c', + 'uicon-wifi-off': '\ue668', + 'uicon-wifi': '\ue667', + 'uicon-empty-data': '\ue62f', + 'uicon-empty-history': '\ue684', + 'uicon-empty-list': '\ue68b', + 'uicon-empty-page': '\ue627', + 'uicon-empty-order': '\ue639', + 'uicon-man': '\ue697', + 'uicon-woman': '\ue69c', + 'uicon-man-add': '\ue61c', + 'uicon-man-add-fill': '\ue64c', + 'uicon-man-delete': '\ue61a', + 'uicon-man-delete-fill': '\ue66a', + 'uicon-zh': '\ue70a', + 'uicon-en': '\ue692' +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-icon/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-icon/props.js new file mode 100644 index 00000000..71845b7c --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-icon/props.js @@ -0,0 +1,89 @@ +export default { + props: { + // 图标类名 + name: { + type: String, + default: uni.$u.props.icon.name + }, + // 图标颜色,可接受主题色 + color: { + type: String, + default: uni.$u.props.icon.color + }, + // 字体大小,单位px + size: { + type: [String, Number], + default: uni.$u.props.icon.size + }, + // 是否显示粗体 + bold: { + type: Boolean, + default: uni.$u.props.icon.bold + }, + // 点击图标的时候传递事件出去的index(用于区分点击了哪一个) + index: { + type: [String, Number], + default: uni.$u.props.icon.index + }, + // 触摸图标时的类名 + hoverClass: { + type: String, + default: uni.$u.props.icon.hoverClass + }, + // 自定义扩展前缀,方便用户扩展自己的图标库 + customPrefix: { + type: String, + default: uni.$u.props.icon.customPrefix + }, + // 图标右边或者下面的文字 + label: { + type: [String, Number], + default: uni.$u.props.icon.label + }, + // label的位置,只能右边或者下边 + labelPos: { + type: String, + default: uni.$u.props.icon.labelPos + }, + // label的大小 + labelSize: { + type: [String, Number], + default: uni.$u.props.icon.labelSize + }, + // label的颜色 + labelColor: { + type: String, + default: uni.$u.props.icon.labelColor + }, + // label与图标的距离 + space: { + type: [String, Number], + default: uni.$u.props.icon.space + }, + // 图片的mode + imgMode: { + type: String, + default: uni.$u.props.icon.imgMode + }, + // 用于显示图片小图标时,图片的宽度 + width: { + type: [String, Number], + default: uni.$u.props.icon.width + }, + // 用于显示图片小图标时,图片的高度 + height: { + type: [String, Number], + default: uni.$u.props.icon.height + }, + // 用于解决某些情况下,让图标垂直居中的用途 + top: { + type: [String, Number], + default: uni.$u.props.icon.top + }, + // 是否阻止事件传播 + stop: { + type: Boolean, + default: uni.$u.props.icon.stop + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-icon/u-icon.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-icon/u-icon.vue new file mode 100644 index 00000000..9340328e --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-icon/u-icon.vue @@ -0,0 +1,234 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-image/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-image/props.js new file mode 100644 index 00000000..2eabb746 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-image/props.js @@ -0,0 +1,84 @@ +export default { + props: { + // 图片地址 + src: { + type: String, + default: uni.$u.props.image.src + }, + // 裁剪模式 + mode: { + type: String, + default: uni.$u.props.image.mode + }, + // 宽度,单位任意 + width: { + type: [String, Number], + default: uni.$u.props.image.width + }, + // 高度,单位任意 + height: { + type: [String, Number], + default: uni.$u.props.image.height + }, + // 图片形状,circle-圆形,square-方形 + shape: { + type: String, + default: uni.$u.props.image.shape + }, + // 圆角,单位任意 + radius: { + type: [String, Number], + default: uni.$u.props.image.radius + }, + // 是否懒加载,微信小程序、App、百度小程序、字节跳动小程序 + lazyLoad: { + type: Boolean, + default: uni.$u.props.image.lazyLoad + }, + // 开启长按图片显示识别微信小程序码菜单 + showMenuByLongpress: { + type: Boolean, + default: uni.$u.props.image.showMenuByLongpress + }, + // 加载中的图标,或者小图片 + loadingIcon: { + type: String, + default: uni.$u.props.image.loadingIcon + }, + // 加载失败的图标,或者小图片 + errorIcon: { + type: String, + default: uni.$u.props.image.errorIcon + }, + // 是否显示加载中的图标或者自定义的slot + showLoading: { + type: Boolean, + default: uni.$u.props.image.showLoading + }, + // 是否显示加载错误的图标或者自定义的slot + showError: { + type: Boolean, + default: uni.$u.props.image.showError + }, + // 是否需要淡入效果 + fade: { + type: Boolean, + default: uni.$u.props.image.fade + }, + // 只支持网络资源,只对微信小程序有效 + webp: { + type: Boolean, + default: uni.$u.props.image.webp + }, + // 过渡时间,单位ms + duration: { + type: [String, Number], + default: uni.$u.props.image.duration + }, + // 背景颜色,用于深色页面加载图片时,为了和背景色融合 + bgColor: { + type: String, + default: uni.$u.props.image.bgColor + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-image/u-image.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-image/u-image.vue new file mode 100644 index 00000000..473e35b4 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-image/u-image.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-index-anchor/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-index-anchor/props.js new file mode 100644 index 00000000..6d8b59a7 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-index-anchor/props.js @@ -0,0 +1,29 @@ +export default { + props: { + // 列表锚点文本内容 + text: { + type: [String, Number], + default: uni.$u.props.indexAnchor.text + }, + // 列表锚点文字颜色 + color: { + type: String, + default: uni.$u.props.indexAnchor.color + }, + // 列表锚点文字大小,单位默认px + size: { + type: [String, Number], + default: uni.$u.props.indexAnchor.size + }, + // 列表锚点背景颜色 + bgColor: { + type: String, + default: uni.$u.props.indexAnchor.bgColor + }, + // 列表锚点高度,单位默认px + height: { + type: [String, Number], + default: uni.$u.props.indexAnchor.height + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue new file mode 100644 index 00000000..b95ddef9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-index-item/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-index-item/props.js new file mode 100644 index 00000000..7c113311 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-index-item/props.js @@ -0,0 +1,5 @@ +export default { + props: { + + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-index-item/u-index-item.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-index-item/u-index-item.vue new file mode 100644 index 00000000..0bc7fb3c --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-index-item/u-index-item.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-index-list/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-index-list/props.js new file mode 100644 index 00000000..354d4591 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-index-list/props.js @@ -0,0 +1,29 @@ +export default { + props: { + // 右边锚点非激活的颜色 + inactiveColor: { + type: String, + default: uni.$u.props.indexList.inactiveColor + }, + // 右边锚点激活的颜色 + activeColor: { + type: String, + default: uni.$u.props.indexList.activeColor + }, + // 索引字符列表,数组形式 + indexList: { + type: Array, + default: uni.$u.props.indexList.indexList + }, + // 是否开启锚点自动吸顶 + sticky: { + type: Boolean, + default: uni.$u.props.indexList.sticky + }, + // 自定义导航栏的高度 + customNavHeight: { + type: [String, Number], + default: uni.$u.props.indexList.customNavHeight + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-index-list/u-index-list.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-index-list/u-index-list.vue new file mode 100644 index 00000000..d7126185 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-index-list/u-index-list.vue @@ -0,0 +1,440 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-input/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-input/props.js new file mode 100644 index 00000000..2c508701 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-input/props.js @@ -0,0 +1,187 @@ +export default { + props: { + // 输入的值 + value: { + type: [String, Number], + default: uni.$u.props.input.value + }, + // 输入框类型 + // number-数字输入键盘,app-vue下可以输入浮点数,app-nvue和小程序平台下只能输入整数 + // idcard-身份证输入键盘,微信、支付宝、百度、QQ小程序 + // digit-带小数点的数字键盘,App的nvue页面、微信、支付宝、百度、头条、QQ小程序 + // text-文本输入键盘 + type: { + type: String, + default: uni.$u.props.input.type + }, + // 如果 textarea 是在一个 position:fixed 的区域,需要显示指定属性 fixed 为 true, + // 兼容性:微信小程序、百度小程序、字节跳动小程序、QQ小程序 + fixed: { + type: Boolean, + default: uni.$u.props.input.fixed + }, + // 是否禁用输入框 + disabled: { + type: Boolean, + default: uni.$u.props.input.disabled + }, + // 禁用状态时的背景色 + disabledColor: { + type: String, + default: uni.$u.props.input.disabledColor + }, + // 是否显示清除控件 + clearable: { + type: Boolean, + default: uni.$u.props.input.clearable + }, + // 是否密码类型 + password: { + type: Boolean, + default: uni.$u.props.input.password + }, + // 最大输入长度,设置为 -1 的时候不限制最大长度 + maxlength: { + type: [String, Number], + default: uni.$u.props.input.maxlength + }, + // 输入框为空时的占位符 + placeholder: { + type: String, + default: uni.$u.props.input.placeholder + }, + // 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/ + placeholderClass: { + type: String, + default: uni.$u.props.input.placeholderClass + }, + // 指定placeholder的样式 + placeholderStyle: { + type: [String, Object], + default: uni.$u.props.input.placeholderStyle + }, + // 是否显示输入字数统计,只在 type ="text"或type ="textarea"时有效 + showWordLimit: { + type: Boolean, + default: uni.$u.props.input.showWordLimit + }, + // 设置右下角按钮的文字,有效值:send|search|next|go|done,兼容性详见uni-app文档 + // https://uniapp.dcloud.io/component/input + // https://uniapp.dcloud.io/component/textarea + confirmType: { + type: String, + default: uni.$u.props.input.confirmType + }, + // 点击键盘右下角按钮时是否保持键盘不收起,H5无效 + confirmHold: { + type: Boolean, + default: uni.$u.props.input.confirmHold + }, + // focus时,点击页面的时候不收起键盘,微信小程序有效 + holdKeyboard: { + type: Boolean, + default: uni.$u.props.input.holdKeyboard + }, + // 自动获取焦点 + // 在 H5 平台能否聚焦以及软键盘是否跟随弹出,取决于当前浏览器本身的实现。nvue 页面不支持,需使用组件的 focus()、blur() 方法控制焦点 + focus: { + type: Boolean, + default: uni.$u.props.input.focus + }, + // 键盘收起时,是否自动失去焦点,目前仅App3.0.0+有效 + autoBlur: { + type: Boolean, + default: uni.$u.props.input.autoBlur + }, + // 是否去掉 iOS 下的默认内边距,仅微信小程序,且type=textarea时有效 + disableDefaultPadding: { + type: Boolean, + default: uni.$u.props.input.disableDefaultPadding + }, + // 指定focus时光标的位置 + cursor: { + type: [String, Number], + default: uni.$u.props.input.cursor + }, + // 输入框聚焦时底部与键盘的距离 + cursorSpacing: { + type: [String, Number], + default: uni.$u.props.input.cursorSpacing + }, + // 光标起始位置,自动聚集时有效,需与selection-end搭配使用 + selectionStart: { + type: [String, Number], + default: uni.$u.props.input.selectionStart + }, + // 光标结束位置,自动聚集时有效,需与selection-start搭配使用 + selectionEnd: { + type: [String, Number], + default: uni.$u.props.input.selectionEnd + }, + // 键盘弹起时,是否自动上推页面 + adjustPosition: { + type: Boolean, + default: uni.$u.props.input.adjustPosition + }, + // 输入框内容对齐方式,可选值为:left|center|right + inputAlign: { + type: String, + default: uni.$u.props.input.inputAlign + }, + // 输入框字体的大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.input.fontSize + }, + // 输入框字体颜色 + color: { + type: String, + default: uni.$u.props.input.color + }, + // 输入框前置图标 + prefixIcon: { + type: String, + default: uni.$u.props.input.prefixIcon + }, + // 前置图标样式,对象或字符串 + prefixIconStyle: { + type: [String, Object], + default: uni.$u.props.input.prefixIconStyle + }, + // 输入框后置图标 + suffixIcon: { + type: String, + default: uni.$u.props.input.suffixIcon + }, + // 后置图标样式,对象或字符串 + suffixIconStyle: { + type: [String, Object], + default: uni.$u.props.input.suffixIconStyle + }, + // 边框类型,surround-四周边框,bottom-底部边框,none-无边框 + border: { + type: String, + default: uni.$u.props.input.border + }, + // 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会 + readonly: { + type: Boolean, + default: uni.$u.props.input.readonly + }, + // 输入框形状,circle-圆形,square-方形 + shape: { + type: String, + default: uni.$u.props.input.shape + }, + // 用于处理或者过滤输入框内容的方法 + formatter: { + type: [Function, null], + default: uni.$u.props.input.formatter + }, + // 是否忽略组件内对文本合成系统事件的处理 + ignoreCompositionEvent: { + type: Boolean, + default: true + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-input/u-input.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-input/u-input.vue new file mode 100644 index 00000000..30073eb2 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-input/u-input.vue @@ -0,0 +1,354 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-keyboard/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-keyboard/props.js new file mode 100644 index 00000000..cfdb00ac --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-keyboard/props.js @@ -0,0 +1,84 @@ +export default { + props: { + // 键盘的类型,number-数字键盘,card-身份证键盘,car-车牌号键盘 + mode: { + type: String, + default: uni.$u.props.keyboard.mode + }, + // 是否显示键盘的"."符号 + dotDisabled: { + type: Boolean, + default: uni.$u.props.keyboard.dotDisabled + }, + // 是否显示顶部工具条 + tooltip: { + type: Boolean, + default: uni.$u.props.keyboard.tooltip + }, + // 是否显示工具条中间的提示 + showTips: { + type: Boolean, + default: uni.$u.props.keyboard.showTips + }, + // 工具条中间的提示文字 + tips: { + type: String, + default: uni.$u.props.keyboard.tips + }, + // 是否显示工具条左边的"取消"按钮 + showCancel: { + type: Boolean, + default: uni.$u.props.keyboard.showCancel + }, + // 是否显示工具条右边的"完成"按钮 + showConfirm: { + type: Boolean, + default: uni.$u.props.keyboard.showConfirm + }, + // 是否打乱键盘按键的顺序 + random: { + type: Boolean, + default: uni.$u.props.keyboard.random + }, + // 是否开启底部安全区适配,开启的话,会在iPhoneX机型底部添加一定的内边距 + safeAreaInsetBottom: { + type: Boolean, + default: uni.$u.props.keyboard.safeAreaInsetBottom + }, + // 是否允许通过点击遮罩关闭键盘 + closeOnClickOverlay: { + type: Boolean, + default: uni.$u.props.keyboard.closeOnClickOverlay + }, + // 控制键盘的弹出与收起 + show: { + type: Boolean, + default: uni.$u.props.keyboard.show + }, + // 是否显示遮罩,某些时候数字键盘时,用户希望看到自己的数值,所以可能不想要遮罩 + overlay: { + type: Boolean, + default: uni.$u.props.keyboard.overlay + }, + // z-index值 + zIndex: { + type: [String, Number], + default: uni.$u.props.keyboard.zIndex + }, + // 取消按钮的文字 + cancelText: { + type: String, + default: uni.$u.props.keyboard.cancelText + }, + // 确认按钮的文字 + confirmText: { + type: String, + default: uni.$u.props.keyboard.confirmText + }, + // 输入一个中文后,是否自动切换到英文 + autoChange: { + type: Boolean, + default: uni.$u.props.keyboard.autoChange + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue new file mode 100644 index 00000000..14228cbf --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue @@ -0,0 +1,164 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-line-progress/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-line-progress/props.js new file mode 100644 index 00000000..a4210bdf --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-line-progress/props.js @@ -0,0 +1,28 @@ +export default { + props: { + // 激活部分的颜色 + activeColor: { + type: String, + default: uni.$u.props.lineProgress.activeColor + }, + inactiveColor: { + type: String, + default: uni.$u.props.lineProgress.color + }, + // 进度百分比,数值 + percentage: { + type: [String, Number], + default: uni.$u.props.lineProgress.inactiveColor + }, + // 是否在进度条内部显示百分比的值 + showText: { + type: Boolean, + default: uni.$u.props.lineProgress.showText + }, + // 进度条的高度,单位px + height: { + type: [String, Number], + default: uni.$u.props.lineProgress.height + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue new file mode 100644 index 00000000..4e279310 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-line/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-line/props.js new file mode 100644 index 00000000..2308cc36 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-line/props.js @@ -0,0 +1,33 @@ +export default { + props: { + color: { + type: String, + default: uni.$u.props.line.color + }, + // 长度,竖向时表现为高度,横向时表现为长度,可以为百分比,带px单位的值等 + length: { + type: [String, Number], + default: uni.$u.props.line.length + }, + // 线条方向,col-竖向,row-横向 + direction: { + type: String, + default: uni.$u.props.line.direction + }, + // 是否显示细边框 + hairline: { + type: Boolean, + default: uni.$u.props.line.hairline + }, + // 线条与上下左右元素的间距,字符串形式,如"30px"、"20px 30px" + margin: { + type: [String, Number], + default: uni.$u.props.line.margin + }, + // 是否虚线,true-虚线,false-实线 + dashed: { + type: Boolean, + default: uni.$u.props.line.dashed + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-line/u-line.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-line/u-line.vue new file mode 100644 index 00000000..e0a6d925 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-line/u-line.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-link/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-link/props.js new file mode 100644 index 00000000..d39353f1 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-link/props.js @@ -0,0 +1,39 @@ +export default { + props: { + // 文字颜色 + color: { + type: String, + default: uni.$u.props.link.color + }, + // 字体大小,单位px + fontSize: { + type: [String, Number], + default: uni.$u.props.link.fontSize + }, + // 是否显示下划线 + underLine: { + type: Boolean, + default: uni.$u.props.link.underLine + }, + // 要跳转的链接 + href: { + type: String, + default: uni.$u.props.link.href + }, + // 小程序中复制到粘贴板的提示语 + mpTips: { + type: String, + default: uni.$u.props.link.mpTips + }, + // 下划线颜色 + lineColor: { + type: String, + default: uni.$u.props.link.lineColor + }, + // 超链接的问题,不使用slot形式传入,是因为nvue下无法修改颜色 + text: { + type: String, + default: uni.$u.props.link.text + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-link/u-link.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-link/u-link.vue new file mode 100644 index 00000000..c6802a56 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-link/u-link.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-list-item/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-list-item/props.js new file mode 100644 index 00000000..58ddc493 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-list-item/props.js @@ -0,0 +1,9 @@ +export default { + props: { + // 用于滚动到指定item + anchor: { + type: [String, Number], + default: uni.$u.props.listItem.anchor + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-list-item/u-list-item.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-list-item/u-list-item.vue new file mode 100644 index 00000000..1a25db65 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-list-item/u-list-item.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-list/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-list/props.js new file mode 100644 index 00000000..25406f4e --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-list/props.js @@ -0,0 +1,76 @@ +export default { + props: { + // 控制是否出现滚动条,仅nvue有效 + showScrollbar: { + type: Boolean, + default: uni.$u.props.list.showScrollbar + }, + // 距底部多少时触发scrolltolower事件 + lowerThreshold: { + type: [String, Number], + default: uni.$u.props.list.lowerThreshold + }, + // 距顶部多少时触发scrolltoupper事件,非nvue有效 + upperThreshold: { + type: [String, Number], + default: uni.$u.props.list.upperThreshold + }, + // 设置竖向滚动条位置 + scrollTop: { + type: [String, Number], + default: uni.$u.props.list.scrollTop + }, + // 控制 onscroll 事件触发的频率,仅nvue有效 + offsetAccuracy: { + type: [String, Number], + default: uni.$u.props.list.offsetAccuracy + }, + // 启用 flexbox 布局。开启后,当前节点声明了display: flex就会成为flex container,并作用于其孩子节点,仅微信小程序有效 + enableFlex: { + type: Boolean, + default: uni.$u.props.list.enableFlex + }, + // 是否按分页模式显示List,默认值false + pagingEnabled: { + type: Boolean, + default: uni.$u.props.list.pagingEnabled + }, + // 是否允许List滚动 + scrollable: { + type: Boolean, + default: uni.$u.props.list.scrollable + }, + // 值应为某子元素id(id不能以数字开头) + scrollIntoView: { + type: String, + default: uni.$u.props.list.scrollIntoView + }, + // 在设置滚动条位置时使用动画过渡 + scrollWithAnimation: { + type: Boolean, + default: uni.$u.props.list.scrollWithAnimation + }, + // iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只对微信小程序有效 + enableBackToTop: { + type: Boolean, + default: uni.$u.props.list.enableBackToTop + }, + // 列表的高度 + height: { + type: [String, Number], + default: uni.$u.props.list.height + }, + // 列表宽度 + width: { + type: [String, Number], + default: uni.$u.props.list.width + }, + // 列表前后预渲染的屏数,1代表一个屏幕的高度,1.5代表1个半屏幕高度 + preLoadScreen: { + type: [String, Number], + default: uni.$u.props.list.preLoadScreen + } + // vue下,是否开启虚拟列表 + + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-list/u-list.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-list/u-list.vue new file mode 100644 index 00000000..4447cab6 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-list/u-list.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-loading-icon/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-loading-icon/props.js new file mode 100644 index 00000000..c35524e2 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-loading-icon/props.js @@ -0,0 +1,59 @@ +export default { + props: { + // 是否显示组件 + show: { + type: Boolean, + default: uni.$u.props.loadingIcon.show + }, + // 颜色 + color: { + type: String, + default: uni.$u.props.loadingIcon.color + }, + // 提示文字颜色 + textColor: { + type: String, + default: uni.$u.props.loadingIcon.textColor + }, + // 文字和图标是否垂直排列 + vertical: { + type: Boolean, + default: uni.$u.props.loadingIcon.vertical + }, + // 模式选择,circle-圆形,spinner-花朵形,semicircle-半圆形 + mode: { + type: String, + default: uni.$u.props.loadingIcon.mode + }, + // 图标大小,单位默认px + size: { + type: [String, Number], + default: uni.$u.props.loadingIcon.size + }, + // 文字大小 + textSize: { + type: [String, Number], + default: uni.$u.props.loadingIcon.textSize + }, + // 文字内容 + text: { + type: [String, Number], + default: uni.$u.props.loadingIcon.text + }, + // 动画模式 + timingFunction: { + type: String, + default: uni.$u.props.loadingIcon.timingFunction + }, + // 动画执行周期时间 + duration: { + type: [String, Number], + default: uni.$u.props.loadingIcon.duration + }, + // mode=circle时的暗边颜色 + inactiveColor: { + type: String, + default: uni.$u.props.loadingIcon.inactiveColor + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue new file mode 100644 index 00000000..2ede5c3a --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue @@ -0,0 +1,343 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-loading-page/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-loading-page/props.js new file mode 100644 index 00000000..e239b612 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-loading-page/props.js @@ -0,0 +1,49 @@ +export default { + props: { + // 提示内容 + loadingText: { + type: [String, Number], + default: uni.$u.props.loadingPage.loadingText + }, + // 文字上方用于替换loading动画的图片 + image: { + type: String, + default: uni.$u.props.loadingPage.image + }, + // 加载动画的模式,circle-圆形,spinner-花朵形,semicircle-半圆形 + loadingMode: { + type: String, + default: uni.$u.props.loadingPage.loadingMode + }, + // 是否加载中 + loading: { + type: Boolean, + default: uni.$u.props.loadingPage.loading + }, + // 背景色 + bgColor: { + type: String, + default: uni.$u.props.loadingPage.bgColor + }, + // 文字颜色 + color: { + type: String, + default: uni.$u.props.loadingPage.color + }, + // 文字大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.loadingPage.fontSize + }, + // 图标大小 + iconSize: { + type: [String, Number], + default: uni.$u.props.loadingPage.fontSize + }, + // 加载中图标的颜色,只能rgb或者十六进制颜色值 + loadingColor: { + type: String, + default: uni.$u.props.loadingPage.loadingColor + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue new file mode 100644 index 00000000..03a78ad8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-loadmore/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-loadmore/props.js new file mode 100644 index 00000000..1e67d891 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-loadmore/props.js @@ -0,0 +1,94 @@ +export default { + props: { + // 组件状态,loadmore-加载前的状态,loading-加载中的状态,nomore-没有更多的状态 + status: { + type: String, + default: uni.$u.props.loadmore.status + }, + // 组件背景色 + bgColor: { + type: String, + default: uni.$u.props.loadmore.bgColor + }, + // 是否显示加载中的图标 + icon: { + type: Boolean, + default: uni.$u.props.loadmore.icon + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.loadmore.fontSize + }, + // 图标大小 + iconSize: { + type: [String, Number], + default: uni.$u.props.loadmore.iconSize + }, + // 字体颜色 + color: { + type: String, + default: uni.$u.props.loadmore.color + }, + // 加载中状态的图标,spinner-花朵状图标,circle-圆圈状,semicircle-半圆 + loadingIcon: { + type: String, + default: uni.$u.props.loadmore.loadingIcon + }, + // 加载前的提示语 + loadmoreText: { + type: String, + default: uni.$u.props.loadmore.loadmoreText + }, + // 加载中提示语 + loadingText: { + type: String, + default: uni.$u.props.loadmore.loadingText + }, + // 没有更多的提示语 + nomoreText: { + type: String, + default: uni.$u.props.loadmore.nomoreText + }, + // 在“没有更多”状态下,是否显示粗点 + isDot: { + type: Boolean, + default: uni.$u.props.loadmore.isDot + }, + // 加载中图标的颜色 + iconColor: { + type: String, + default: uni.$u.props.loadmore.iconColor + }, + // 上边距 + marginTop: { + type: [String, Number], + default: uni.$u.props.loadmore.marginTop + }, + // 下边距 + marginBottom: { + type: [String, Number], + default: uni.$u.props.loadmore.marginBottom + }, + // 高度,单位px + height: { + type: [String, Number], + default: uni.$u.props.loadmore.height + }, + // 是否显示左边分割线 + line: { + type: Boolean, + default: uni.$u.props.loadmore.line + }, + // 线条颜色 + lineColor: { + type: String, + default: uni.$u.props.loadmore.lineColor + }, + // 是否虚线,true-虚线,false-实线 + dashed: { + type: Boolean, + default: uni.$u.props.loadmore.dashed + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue new file mode 100644 index 00000000..73c79fef --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-modal/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-modal/props.js new file mode 100644 index 00000000..f76672c8 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-modal/props.js @@ -0,0 +1,84 @@ +export default { + props: { + // 是否展示modal + show: { + type: Boolean, + default: uni.$u.props.modal.show + }, + // 标题 + title: { + type: [String], + default: uni.$u.props.modal.title + }, + // 弹窗内容 + content: { + type: String, + default: uni.$u.props.modal.content + }, + // 确认文案 + confirmText: { + type: String, + default: uni.$u.props.modal.confirmText + }, + // 取消文案 + cancelText: { + type: String, + default: uni.$u.props.modal.cancelText + }, + // 是否显示确认按钮 + showConfirmButton: { + type: Boolean, + default: uni.$u.props.modal.showConfirmButton + }, + // 是否显示取消按钮 + showCancelButton: { + type: Boolean, + default: uni.$u.props.modal.showCancelButton + }, + // 确认按钮颜色 + confirmColor: { + type: String, + default: uni.$u.props.modal.confirmColor + }, + // 取消文字颜色 + cancelColor: { + type: String, + default: uni.$u.props.modal.cancelColor + }, + // 对调确认和取消的位置 + buttonReverse: { + type: Boolean, + default: uni.$u.props.modal.buttonReverse + }, + // 是否开启缩放效果 + zoom: { + type: Boolean, + default: uni.$u.props.modal.zoom + }, + // 是否异步关闭,只对确定按钮有效 + asyncClose: { + type: Boolean, + default: uni.$u.props.modal.asyncClose + }, + // 是否允许点击遮罩关闭modal + closeOnClickOverlay: { + type: Boolean, + default: uni.$u.props.modal.closeOnClickOverlay + }, + // 给一个负的margin-top,往上偏移,避免和键盘重合的情况 + negativeTop: { + type: [String, Number], + default: uni.$u.props.modal.negativeTop + }, + // modal宽度,不支持百分比,可以数值,px,rpx单位 + width: { + type: [String, Number], + default: uni.$u.props.modal.width + }, + // 确认按钮的样式,circle-圆形,square-方形,如设置,将不会显示取消按钮 + confirmButtonShape: { + type: String, + default: uni.$u.props.modal.confirmButtonShape + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-modal/u-modal.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-modal/u-modal.vue new file mode 100644 index 00000000..4c37ae2e --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-modal/u-modal.vue @@ -0,0 +1,227 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-navbar/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-navbar/props.js new file mode 100644 index 00000000..5398de28 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-navbar/props.js @@ -0,0 +1,84 @@ +export default { + props: { + // 是否开启顶部安全区适配 + safeAreaInsetTop: { + type: Boolean, + default: uni.$u.props.navbar.safeAreaInsetTop + }, + // 固定在顶部时,是否生成一个等高元素,以防止塌陷 + placeholder: { + type: Boolean, + default: uni.$u.props.navbar.placeholder + }, + // 是否固定在顶部 + fixed: { + type: Boolean, + default: uni.$u.props.navbar.fixed + }, + // 是否显示下边框 + border: { + type: Boolean, + default: uni.$u.props.navbar.border + }, + // 左边的图标 + leftIcon: { + type: String, + default: uni.$u.props.navbar.leftIcon + }, + // 左边的提示文字 + leftText: { + type: String, + default: uni.$u.props.navbar.leftText + }, + // 左右的提示文字 + rightText: { + type: String, + default: uni.$u.props.navbar.rightText + }, + // 右边的图标 + rightIcon: { + type: String, + default: uni.$u.props.navbar.rightIcon + }, + // 标题 + title: { + type: [String, Number], + default: uni.$u.props.navbar.title + }, + // 背景颜色 + bgColor: { + type: String, + default: uni.$u.props.navbar.bgColor + }, + // 标题的宽度 + titleWidth: { + type: [String, Number], + default: uni.$u.props.navbar.titleWidth + }, + // 导航栏高度 + height: { + type: [String, Number], + default: uni.$u.props.navbar.height + }, + // 左侧返回图标的大小 + leftIconSize: { + type: [String, Number], + default: uni.$u.props.navbar.leftIconSize + }, + // 左侧返回图标的颜色 + leftIconColor: { + type: String, + default: uni.$u.props.navbar.leftIconColor + }, + // 点击左侧区域(返回图标),是否自动返回上一页 + autoBack: { + type: Boolean, + default: uni.$u.props.navbar.autoBack + }, + // 标题的样式,对象或字符串 + titleStyle: { + type: [String, Object], + default: uni.$u.props.navbar.titleStyle + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-navbar/u-navbar.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-navbar/u-navbar.vue new file mode 100644 index 00000000..2b206b7d --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-navbar/u-navbar.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-no-network/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-no-network/props.js new file mode 100644 index 00000000..9f3af62c --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-no-network/props.js @@ -0,0 +1,19 @@ +export default { + props: { + // 页面文字提示 + tips: { + type: String, + default: uni.$u.props.noNetwork.tips + }, + // 一个z-index值,用于设置没有网络这个组件的层次,因为页面可能会有其他定位的元素层级过高,导致此组件被覆盖 + zIndex: { + type: [String, Number], + default: uni.$u.props.noNetwork.zIndex + }, + // image 没有网络的图片提示 + image: { + type: String, + default: uni.$u.props.noNetwork.image + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-no-network/u-no-network.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-no-network/u-no-network.vue new file mode 100644 index 00000000..9710729e --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-no-network/u-no-network.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-notice-bar/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-notice-bar/props.js new file mode 100644 index 00000000..7040c29a --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-notice-bar/props.js @@ -0,0 +1,70 @@ +export default { + props: { + // 显示的内容,数组 + text: { + type: [Array, String], + default: uni.$u.props.noticeBar.text + }, + // 通告滚动模式,row-横向滚动,column-竖向滚动 + direction: { + type: String, + default: uni.$u.props.noticeBar.direction + }, + // direction = row时,是否使用步进形式滚动 + step: { + type: Boolean, + default: uni.$u.props.noticeBar.step + }, + // 是否显示左侧的音量图标 + icon: { + type: String, + default: uni.$u.props.noticeBar.icon + }, + // 通告模式,link-显示右箭头,closable-显示右侧关闭图标 + mode: { + type: String, + default: uni.$u.props.noticeBar.mode + }, + // 文字颜色,各图标也会使用文字颜色 + color: { + type: String, + default: uni.$u.props.noticeBar.color + }, + // 背景颜色 + bgColor: { + type: String, + default: uni.$u.props.noticeBar.bgColor + }, + // 水平滚动时的滚动速度,即每秒滚动多少px(px),这有利于控制文字无论多少时,都能有一个恒定的速度 + speed: { + type: [String, Number], + default: uni.$u.props.noticeBar.speed + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.noticeBar.fontSize + }, + // 滚动一个周期的时间长,单位ms + duration: { + type: [String, Number], + default: uni.$u.props.noticeBar.duration + }, + // 是否禁止用手滑动切换 + // 目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序 + disableTouch: { + type: Boolean, + default: uni.$u.props.noticeBar.disableTouch + }, + // 跳转的页面路径 + url: { + type: String, + default: uni.$u.props.noticeBar.url + }, + // 页面跳转的类型 + linkType: { + type: String, + default: uni.$u.props.noticeBar.linkType + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue new file mode 100644 index 00000000..a06eb39a --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue @@ -0,0 +1,101 @@ + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-notify/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-notify/props.js new file mode 100644 index 00000000..57a9d71e --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-notify/props.js @@ -0,0 +1,49 @@ +export default { + props: { + // 到顶部的距离 + top: { + type: [String, Number], + default: uni.$u.props.notify.top + }, + // 是否展示组件 + // show: { + // type: Boolean, + // default: uni.$u.props.notify.show + // }, + // type主题,primary,success,warning,error + type: { + type: String, + default: uni.$u.props.notify.type + }, + // 字体颜色 + color: { + type: String, + default: uni.$u.props.notify.color + }, + // 背景颜色 + bgColor: { + type: String, + default: uni.$u.props.notify.bgColor + }, + // 展示的文字内容 + message: { + type: String, + default: uni.$u.props.notify.message + }, + // 展示时长,为0时不消失,单位ms + duration: { + type: [String, Number], + default: uni.$u.props.notify.duration + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: uni.$u.props.notify.fontSize + }, + // 是否留出顶部安全距离(状态栏高度) + safeAreaInsetTop: { + type: Boolean, + default: uni.$u.props.notify.safeAreaInsetTop + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-notify/u-notify.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-notify/u-notify.vue new file mode 100644 index 00000000..30adb72f --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-notify/u-notify.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-number-box/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-number-box/props.js new file mode 100644 index 00000000..fb0fa947 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-number-box/props.js @@ -0,0 +1,109 @@ +export default { + props: { + // 步进器标识符,在change回调返回 + name: { + type: [String, Number], + default: uni.$u.props.numberBox.name + }, + // 用于双向绑定的值,初始化时设置设为默认min值(最小值) + value: { + type: [String, Number], + default: uni.$u.props.numberBox.value + }, + // 最小值 + min: { + type: [String, Number], + default: uni.$u.props.numberBox.min + }, + // 最大值 + max: { + type: [String, Number], + default: uni.$u.props.numberBox.max + }, + // 加减的步长,可为小数 + step: { + type: [String, Number], + default: uni.$u.props.numberBox.step + }, + // 是否只允许输入整数 + integer: { + type: Boolean, + default: uni.$u.props.numberBox.integer + }, + // 是否禁用,包括输入框,加减按钮 + disabled: { + type: Boolean, + default: uni.$u.props.numberBox.disabled + }, + // 是否禁用输入框 + disabledInput: { + type: Boolean, + default: uni.$u.props.numberBox.disabledInput + }, + // 是否开启异步变更,开启后需要手动控制输入值 + asyncChange: { + type: Boolean, + default: uni.$u.props.numberBox.asyncChange + }, + // 输入框宽度,单位为px + inputWidth: { + type: [String, Number], + default: uni.$u.props.numberBox.inputWidth + }, + // 是否显示减少按钮 + showMinus: { + type: Boolean, + default: uni.$u.props.numberBox.showMinus + }, + // 是否显示增加按钮 + showPlus: { + type: Boolean, + default: uni.$u.props.numberBox.showPlus + }, + // 显示的小数位数 + decimalLength: { + type: [String, Number, null], + default: uni.$u.props.numberBox.decimalLength + }, + // 是否开启长按加减手势 + longPress: { + type: Boolean, + default: uni.$u.props.numberBox.longPress + }, + // 输入框文字和加减按钮图标的颜色 + color: { + type: String, + default: uni.$u.props.numberBox.color + }, + // 按钮大小,宽高等于此值,单位px,输入框高度和此值保持一致 + buttonSize: { + type: [String, Number], + default: uni.$u.props.numberBox.buttonSize + }, + // 输入框和按钮的背景颜色 + bgColor: { + type: String, + default: uni.$u.props.numberBox.bgColor + }, + // 指定光标于键盘的距离,避免键盘遮挡输入框,单位px + cursorSpacing: { + type: [String, Number], + default: uni.$u.props.numberBox.cursorSpacing + }, + // 是否禁用增加按钮 + disablePlus: { + type: Boolean, + default: uni.$u.props.numberBox.disablePlus + }, + // 是否禁用减少按钮 + disableMinus: { + type: Boolean, + default: uni.$u.props.numberBox.disableMinus + }, + // 加减按钮图标的样式 + iconStyle: { + type: [Object, String], + default: uni.$u.props.numberBox.iconStyle + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-number-box/u-number-box.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-number-box/u-number-box.vue new file mode 100644 index 00000000..69211c54 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-number-box/u-number-box.vue @@ -0,0 +1,416 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-number-keyboard/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-number-keyboard/props.js new file mode 100644 index 00000000..5e3bf556 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-number-keyboard/props.js @@ -0,0 +1,19 @@ +export default { + props: { + // 键盘的类型,number-数字键盘,card-身份证键盘 + mode: { + type: String, + default: uni.$u.props.numberKeyboard.value + }, + // 是否显示键盘的"."符号 + dotDisabled: { + type: Boolean, + default: uni.$u.props.numberKeyboard.dotDisabled + }, + // 是否打乱键盘按键的顺序 + random: { + type: Boolean, + default: uni.$u.props.numberKeyboard.random + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue new file mode 100644 index 00000000..4f505c6e --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-overlay/props.js b/supervise-uniapp/uni_modules/uview-ui/components/u-overlay/props.js new file mode 100644 index 00000000..e6974df9 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-overlay/props.js @@ -0,0 +1,24 @@ +export default { + props: { + // 是否显示遮罩 + show: { + type: Boolean, + default: uni.$u.props.overlay.show + }, + // 层级z-index + zIndex: { + type: [String, Number], + default: uni.$u.props.overlay.zIndex + }, + // 遮罩的过渡时间,单位为ms + duration: { + type: [String, Number], + default: uni.$u.props.overlay.duration + }, + // 不透明度值,当做rgba的第四个参数 + opacity: { + type: [String, Number], + default: uni.$u.props.overlay.opacity + } + } +} diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-overlay/u-overlay.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-overlay/u-overlay.vue new file mode 100644 index 00000000..92de4e9f --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-overlay/u-overlay.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/supervise-uniapp/uni_modules/uview-ui/components/u-parse/node/node.vue b/supervise-uniapp/uni_modules/uview-ui/components/u-parse/node/node.vue new file mode 100644 index 00000000..73e30fd6 --- /dev/null +++ b/supervise-uniapp/uni_modules/uview-ui/components/u-parse/node/node.vue @@ -0,0 +1,499 @@ +