From 417bfcde057d518b22eb916c872605e2dc2b08e7 Mon Sep 17 00:00:00 2001 From: ktianc Date: Sun, 4 Dec 2022 21:42:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A0Uniapp=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 141 +- kinit-admin/README.md | 25 +- kinit-admin/src/App.vue | 2 +- kinit-admin/src/api/login/types.ts | 1 + kinit-admin/src/api/vadmin/system/settings.ts | 4 + kinit-admin/src/assets/imgs/avatar.jpg | Bin 6264 -> 234416 bytes kinit-admin/src/assets/imgs/avatar_bak.jpg | Bin 0 -> 6264 bytes .../src/components/UserInfo/src/UserInfo.vue | 1 - kinit-admin/src/config/axios/config.ts | 5 + kinit-admin/src/config/axios/service.ts | 11 +- kinit-admin/src/permission.ts | 2 +- kinit-admin/src/router/index.ts | 41 +- kinit-admin/src/store/modules/auth.ts | 3 + kinit-admin/src/views/Home/Home.vue | 4 + .../src/views/Home/components/InfoWrite.vue | 15 + .../views/Home/components/PasswordWrite.vue | 3 +- .../src/views/vadmin/auth/user/index.vue | 6 +- .../views/vadmin/system/docs/agreement.vue | 29 + .../src/views/vadmin/system/docs/privacy.vue | 29 + .../record/login/components/login.data.ts | 19 +- .../vadmin/system/record/login/index.vue | 21 + kinit-api/README.md | 10 +- kinit-api/alembic.ini | 12 +- .../{versions => versions_dev}/.gitkeep | 0 kinit-api/alembic/versions_pro/.gitkeep | 0 kinit-api/application/settings.py | 8 +- kinit-api/apps/vadmin/auth/crud.py | 39 +- kinit-api/apps/vadmin/auth/schemas/user.py | 1 + kinit-api/apps/vadmin/auth/utils/login.py | 5 +- .../apps/vadmin/auth/utils/validation/auth.py | 8 +- .../vadmin/auth/utils/validation/login.py | 1 + kinit-api/apps/vadmin/auth/views.py | 12 +- kinit-api/apps/vadmin/record/models/login.py | 10 +- kinit-api/apps/vadmin/record/schemas/login.py | 2 + kinit-api/apps/vadmin/system/views.py | 5 + kinit-api/core/crud.py | 17 +- kinit-api/main.py | 15 +- kinit-api/scripts/initialize/data/init.xlsx | Bin 43613 -> 43943 bytes kinit-api/scripts/initialize/initialize.py | 21 +- kinit-api/utils/status.py | 1 + kinit-uni/.gitignore | 14 + kinit-uni/App.vue | 21 + kinit-uni/LICENSE | 21 + kinit-uni/README.md | 49 + kinit-uni/common/request/api/login.js | 17 + .../common/request/api/vadmin/auth/user.js | 16 + .../common/request/api/vadmin/system/dict.js | 6 + .../request/api/vadmin/system/settings.js | 6 + kinit-uni/common/request/errorCode.js | 6 + kinit-uni/common/request/request.js | 78 + kinit-uni/common/utils/auth.js | 13 + kinit-uni/common/utils/common.js | 54 + kinit-uni/common/utils/constant.js | 12 + kinit-uni/common/utils/cookies.js | 80 + kinit-uni/common/utils/logs.js | 30 + kinit-uni/common/utils/permission.js | 51 + kinit-uni/common/utils/postFile.js | 39 + kinit-uni/common/utils/ruoyi.js | 191 + kinit-uni/common/utils/storage.js | 33 + kinit-uni/common/utils/upload.js | 68 + kinit-uni/components/luch-request/history.md | 57 + .../components/luch-request/package.json | 132 + kinit-uni/components/luch-request/readme.md | 260 ++ .../luch-request/src/lib/adapters/index.js | 99 + .../src/lib/core/InterceptorManager.js | 51 + .../luch-request/src/lib/core/Request.js | 200 + .../src/lib/core/buildFullPath.js | 20 + .../luch-request/src/lib/core/defaults.js | 30 + .../src/lib/core/dispatchRequest.js | 6 + .../luch-request/src/lib/core/mergeConfig.js | 103 + .../luch-request/src/lib/core/settle.js | 16 + .../luch-request/src/lib/helpers/buildURL.js | 69 + .../src/lib/helpers/combineURLs.js | 14 + .../src/lib/helpers/isAbsoluteURL.js | 14 + .../luch-request/src/lib/luch-request.d.ts | 116 + .../luch-request/src/lib/luch-request.js | 2 + .../components/luch-request/src/lib/utils.js | 135 + .../luch-request/src/lib/utils/clone.js | 264 ++ .../components/uni-section/uni-section.vue | 167 + kinit-uni/config.js | 18 + kinit-uni/main.js | 57 + kinit-uni/manifest.json | 65 + kinit-uni/node_modules.zip | Bin 0 -> 627634 bytes kinit-uni/package.json | 7 + kinit-uni/pages.json | 144 + kinit-uni/pages/common/textview/index.vue | 48 + kinit-uni/pages/common/webview/index.vue | 35 + kinit-uni/pages/index.vue | 52 + kinit-uni/pages/login.vue | 168 + kinit-uni/pages/mine/about/index.vue | 89 + kinit-uni/pages/mine/avatar/index.vue | 630 +++ kinit-uni/pages/mine/help/index.vue | 105 + kinit-uni/pages/mine/index.vue | 242 + kinit-uni/pages/mine/info/edit.vue | 159 + kinit-uni/pages/mine/info/index.vue | 49 + kinit-uni/pages/mine/pwd/index.vue | 79 + kinit-uni/pages/mine/setting/index.vue | 76 + kinit-uni/pages/work/index.vue | 100 + kinit-uni/permission.js | 38 + kinit-uni/plugins/auth.js | 60 + kinit-uni/plugins/index.js | 14 + kinit-uni/plugins/modal.js | 74 + kinit-uni/plugins/tab.js | 30 + kinit-uni/static/favicon.ico | Bin 0 -> 16958 bytes kinit-uni/static/font/demo.css | 539 +++ kinit-uni/static/font/demo_index.html | 1729 ++++++++ kinit-uni/static/font/iconfont.css | 283 ++ kinit-uni/static/font/iconfont.js | 1 + kinit-uni/static/font/iconfont.json | 478 ++ kinit-uni/static/font/iconfont.ttf | Bin 0 -> 21892 bytes kinit-uni/static/font/iconfont.woff | Bin 0 -> 12676 bytes kinit-uni/static/font/iconfont.woff2 | Bin 0 -> 11108 bytes kinit-uni/static/images/avatar.jpg | Bin 0 -> 234416 bytes kinit-uni/static/images/banner/banner01.jpg | Bin 0 -> 39640 bytes kinit-uni/static/images/banner/banner02.jpg | Bin 0 -> 37061 bytes kinit-uni/static/images/banner/banner03.jpg | Bin 0 -> 38123 bytes kinit-uni/static/images/tabbar/home.png | Bin 0 -> 3265 bytes kinit-uni/static/images/tabbar/home_.png | Bin 0 -> 3229 bytes kinit-uni/static/images/tabbar/mine.png | Bin 0 -> 4235 bytes kinit-uni/static/images/tabbar/mine_.png | Bin 0 -> 4219 bytes kinit-uni/static/images/tabbar/work.png | Bin 0 -> 4108 bytes kinit-uni/static/images/tabbar/work_.png | Bin 0 -> 5008 bytes kinit-uni/static/index.html | 24 + kinit-uni/static/logo.png | Bin 0 -> 3616 bytes kinit-uni/static/logo200.png | Bin 0 -> 7995 bytes kinit-uni/static/scss/colorui.css | 3914 +++++++++++++++++ kinit-uni/static/scss/global.scss | 90 + kinit-uni/static/scss/index.scss | 8 + kinit-uni/store/getters.js | 22 + kinit-uni/store/index.js | 19 + kinit-uni/store/modules/app.js | 61 + kinit-uni/store/modules/auth.js | 116 + kinit-uni/store/modules/dict.js | 48 + kinit-uni/uni.scss | 67 + kinit-uni/uni_modules/uni-badge/changelog.md | 29 + .../components/uni-badge/uni-badge.vue | 268 ++ kinit-uni/uni_modules/uni-badge/package.json | 88 + kinit-uni/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 | 16 + .../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 | 88 + kinit-uni/uni_modules/uni-calendar/readme.md | 103 + kinit-uni/uni_modules/uni-card/changelog.md | 26 + .../uni-card/components/uni-card/uni-card.vue | 270 ++ kinit-uni/uni_modules/uni-card/package.json | 90 + kinit-uni/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 + kinit-uni/uni_modules/uni-collapse/readme.md | 12 + kinit-uni/uni_modules/uni-combox/changelog.md | 15 + .../components/uni-combox/uni-combox.vue | 275 ++ kinit-uni/uni_modules/uni-combox/package.json | 90 + kinit-uni/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 + kinit-uni/uni_modules/uni-countdown/readme.md | 10 + .../uni-data-checkbox/changelog.md | 43 + .../uni-data-checkbox/uni-data-checkbox.vue | 817 ++++ .../uni-data-checkbox/package.json | 87 + .../uni_modules/uni-data-checkbox/readme.md | 18 + .../uni_modules/uni-data-picker/changelog.md | 64 + .../components/uni-data-picker/keypress.js | 45 + .../uni-data-picker/uni-data-picker.vue | 554 +++ .../uni-data-pickerview/uni-data-picker.js | 563 +++ .../uni-data-pickerview.vue | 333 ++ .../uni_modules/uni-data-picker/package.json | 93 + .../uni_modules/uni-data-picker/readme.md | 22 + .../uni_modules/uni-data-select/changelog.md | 16 + .../uni-data-select/uni-data-select.vue | 426 ++ .../uni_modules/uni-data-select/package.json | 88 + .../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 | 93 + .../uni-datetime-picker/calendar-item.vue | 185 + .../uni-datetime-picker/calendar.vue | 907 ++++ .../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 | 927 ++++ .../uni-datetime-picker.vue | 1012 +++++ .../components/uni-datetime-picker/util.js | 410 ++ .../uni-datetime-picker/package.json | 90 + .../uni_modules/uni-datetime-picker/readme.md | 21 + kinit-uni/uni_modules/uni-drawer/changelog.md | 13 + .../components/uni-drawer/keypress.js | 45 + .../components/uni-drawer/uni-drawer.vue | 183 + kinit-uni/uni_modules/uni-drawer/package.json | 87 + kinit-uni/uni_modules/uni-drawer/readme.md | 10 + .../uni_modules/uni-easyinput/changelog.md | 47 + .../components/uni-easyinput/common.js | 56 + .../uni-easyinput/uni-easyinput.vue | 593 +++ .../uni_modules/uni-easyinput/package.json | 90 + kinit-uni/uni_modules/uni-easyinput/readme.md | 11 + kinit-uni/uni_modules/uni-fab/changelog.md | 17 + .../uni-fab/components/uni-fab/uni-fab.vue | 475 ++ kinit-uni/uni_modules/uni-fab/package.json | 87 + kinit-uni/uni_modules/uni-fab/readme.md | 9 + kinit-uni/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 + kinit-uni/uni_modules/uni-fav/package.json | 89 + kinit-uni/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 + kinit-uni/uni_modules/uni-forms/changelog.md | 86 + .../uni-forms-item/uni-forms-item.vue | 627 +++ .../components/uni-forms/uni-forms.vue | 397 ++ .../uni-forms/components/uni-forms/utils.js | 293 ++ .../components/uni-forms/validate.js | 486 ++ kinit-uni/uni_modules/uni-forms/package.json | 91 + kinit-uni/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 + kinit-uni/uni_modules/uni-goods-nav/readme.md | 10 + kinit-uni/uni_modules/uni-grid/changelog.md | 13 + .../uni-grid-item/uni-grid-item.vue | 127 + .../uni-grid/components/uni-grid/uni-grid.vue | 142 + kinit-uni/uni_modules/uni-grid/package.json | 86 + kinit-uni/uni_modules/uni-grid/readme.md | 11 + kinit-uni/uni_modules/uni-group/changelog.md | 16 + .../components/uni-group/uni-group.vue | 134 + kinit-uni/uni_modules/uni-group/package.json | 87 + kinit-uni/uni_modules/uni-group/readme.md | 9 + kinit-uni/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 kinit-uni/uni_modules/uni-icons/package.json | 86 + kinit-uni/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 + kinit-uni/uni_modules/uni-link/changelog.md | 17 + .../uni-link/components/uni-link/uni-link.vue | 128 + kinit-uni/uni_modules/uni-link/package.json | 87 + kinit-uni/uni_modules/uni-link/readme.md | 11 + kinit-uni/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 + kinit-uni/uni_modules/uni-list/package.json | 91 + kinit-uni/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 + kinit-uni/uni_modules/uni-load-more/readme.md | 14 + .../uni_modules/uni-nav-bar/changelog.md | 41 + .../components/uni-nav-bar/uni-nav-bar.vue | 348 ++ .../components/uni-nav-bar/uni-status-bar.vue | 27 + .../uni_modules/uni-nav-bar/package.json | 89 + kinit-uni/uni_modules/uni-nav-bar/readme.md | 15 + .../uni_modules/uni-notice-bar/changelog.md | 16 + .../uni-notice-bar/uni-notice-bar.vue | 395 ++ .../uni_modules/uni-notice-bar/package.json | 90 + .../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 | 20 + .../components/uni-pagination/i18n/en.json | 4 + .../components/uni-pagination/i18n/es.json | 4 + .../components/uni-pagination/i18n/fr.json | 4 + .../components/uni-pagination/i18n/index.js | 12 + .../uni-pagination/i18n/zh-Hans.json | 4 + .../uni-pagination/i18n/zh-Hant.json | 4 + .../uni-pagination/uni-pagination.vue | 409 ++ .../uni_modules/uni-pagination/package.json | 86 + .../uni_modules/uni-pagination/readme.md | 13 + kinit-uni/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 | 474 ++ kinit-uni/uni_modules/uni-popup/package.json | 90 + kinit-uni/uni_modules/uni-popup/readme.md | 17 + kinit-uni/uni_modules/uni-rate/changelog.md | 25 + .../uni-rate/components/uni-rate/uni-rate.vue | 361 ++ kinit-uni/uni_modules/uni-rate/package.json | 88 + kinit-uni/uni_modules/uni-rate/readme.md | 12 + kinit-uni/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 + kinit-uni/uni_modules/uni-row/package.json | 87 + kinit-uni/uni_modules/uni-row/readme.md | 10 + kinit-uni/uni_modules/uni-scss/changelog.md | 8 + kinit-uni/uni_modules/uni-scss/index.scss | 1 + kinit-uni/uni_modules/uni-scss/package.json | 82 + kinit-uni/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 + kinit-uni/uni_modules/uni-scss/theme.scss | 31 + kinit-uni/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-segmented-control/changelog.md | 9 + .../uni-segmented-control.vue | 145 + .../uni-segmented-control/package.json | 87 + .../uni-segmented-control/readme.md | 13 + kinit-uni/uni_modules/uni-steps/changelog.md | 16 + .../components/uni-steps/uni-steps.vue | 269 ++ kinit-uni/uni_modules/uni-steps/package.json | 89 + kinit-uni/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 + kinit-uni/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 + kinit-uni/uni_modules/uni-table/i18n/en.json | 9 + kinit-uni/uni_modules/uni-table/i18n/es.json | 9 + kinit-uni/uni_modules/uni-table/i18n/fr.json | 9 + kinit-uni/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 + kinit-uni/uni_modules/uni-table/package.json | 86 + kinit-uni/uni_modules/uni-table/readme.md | 13 + kinit-uni/uni_modules/uni-tag/changelog.md | 21 + .../uni-tag/components/uni-tag/uni-tag.vue | 252 ++ kinit-uni/uni_modules/uni-tag/package.json | 87 + kinit-uni/uni_modules/uni-tag/readme.md | 13 + kinit-uni/uni_modules/uni-title/changelog.md | 10 + .../components/uni-title/uni-title.vue | 171 + kinit-uni/uni_modules/uni-title/package.json | 88 + kinit-uni/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 + kinit-uni/uni_modules/uni-tooltip/readme.md | 8 + .../uni_modules/uni-transition/changelog.md | 20 + .../uni-transition/createAnimation.js | 128 + .../uni-transition/uni-transition.vue | 277 ++ .../uni_modules/uni-transition/package.json | 87 + .../uni_modules/uni-transition/readme.md | 11 + kinit-uni/vue.config.js | 26 + 424 files changed, 48651 insertions(+), 114 deletions(-) create mode 100644 kinit-admin/src/assets/imgs/avatar_bak.jpg create mode 100644 kinit-admin/src/views/vadmin/system/docs/agreement.vue create mode 100644 kinit-admin/src/views/vadmin/system/docs/privacy.vue rename kinit-api/alembic/{versions => versions_dev}/.gitkeep (100%) create mode 100644 kinit-api/alembic/versions_pro/.gitkeep create mode 100644 kinit-uni/.gitignore create mode 100644 kinit-uni/App.vue create mode 100644 kinit-uni/LICENSE create mode 100644 kinit-uni/README.md create mode 100644 kinit-uni/common/request/api/login.js create mode 100644 kinit-uni/common/request/api/vadmin/auth/user.js create mode 100644 kinit-uni/common/request/api/vadmin/system/dict.js create mode 100644 kinit-uni/common/request/api/vadmin/system/settings.js create mode 100644 kinit-uni/common/request/errorCode.js create mode 100644 kinit-uni/common/request/request.js create mode 100644 kinit-uni/common/utils/auth.js create mode 100644 kinit-uni/common/utils/common.js create mode 100644 kinit-uni/common/utils/constant.js create mode 100644 kinit-uni/common/utils/cookies.js create mode 100644 kinit-uni/common/utils/logs.js create mode 100644 kinit-uni/common/utils/permission.js create mode 100644 kinit-uni/common/utils/postFile.js create mode 100644 kinit-uni/common/utils/ruoyi.js create mode 100644 kinit-uni/common/utils/storage.js create mode 100644 kinit-uni/common/utils/upload.js create mode 100644 kinit-uni/components/luch-request/history.md create mode 100644 kinit-uni/components/luch-request/package.json create mode 100644 kinit-uni/components/luch-request/readme.md create mode 100644 kinit-uni/components/luch-request/src/lib/adapters/index.js create mode 100644 kinit-uni/components/luch-request/src/lib/core/InterceptorManager.js create mode 100644 kinit-uni/components/luch-request/src/lib/core/Request.js create mode 100644 kinit-uni/components/luch-request/src/lib/core/buildFullPath.js create mode 100644 kinit-uni/components/luch-request/src/lib/core/defaults.js create mode 100644 kinit-uni/components/luch-request/src/lib/core/dispatchRequest.js create mode 100644 kinit-uni/components/luch-request/src/lib/core/mergeConfig.js create mode 100644 kinit-uni/components/luch-request/src/lib/core/settle.js create mode 100644 kinit-uni/components/luch-request/src/lib/helpers/buildURL.js create mode 100644 kinit-uni/components/luch-request/src/lib/helpers/combineURLs.js create mode 100644 kinit-uni/components/luch-request/src/lib/helpers/isAbsoluteURL.js create mode 100644 kinit-uni/components/luch-request/src/lib/luch-request.d.ts create mode 100644 kinit-uni/components/luch-request/src/lib/luch-request.js create mode 100644 kinit-uni/components/luch-request/src/lib/utils.js create mode 100644 kinit-uni/components/luch-request/src/lib/utils/clone.js create mode 100644 kinit-uni/components/uni-section/uni-section.vue create mode 100644 kinit-uni/config.js create mode 100644 kinit-uni/main.js create mode 100644 kinit-uni/manifest.json create mode 100644 kinit-uni/node_modules.zip create mode 100644 kinit-uni/package.json create mode 100644 kinit-uni/pages.json create mode 100644 kinit-uni/pages/common/textview/index.vue create mode 100644 kinit-uni/pages/common/webview/index.vue create mode 100644 kinit-uni/pages/index.vue create mode 100644 kinit-uni/pages/login.vue create mode 100644 kinit-uni/pages/mine/about/index.vue create mode 100644 kinit-uni/pages/mine/avatar/index.vue create mode 100644 kinit-uni/pages/mine/help/index.vue create mode 100644 kinit-uni/pages/mine/index.vue create mode 100644 kinit-uni/pages/mine/info/edit.vue create mode 100644 kinit-uni/pages/mine/info/index.vue create mode 100644 kinit-uni/pages/mine/pwd/index.vue create mode 100644 kinit-uni/pages/mine/setting/index.vue create mode 100644 kinit-uni/pages/work/index.vue create mode 100644 kinit-uni/permission.js create mode 100644 kinit-uni/plugins/auth.js create mode 100644 kinit-uni/plugins/index.js create mode 100644 kinit-uni/plugins/modal.js create mode 100644 kinit-uni/plugins/tab.js create mode 100644 kinit-uni/static/favicon.ico create mode 100644 kinit-uni/static/font/demo.css create mode 100644 kinit-uni/static/font/demo_index.html create mode 100644 kinit-uni/static/font/iconfont.css create mode 100644 kinit-uni/static/font/iconfont.js create mode 100644 kinit-uni/static/font/iconfont.json create mode 100644 kinit-uni/static/font/iconfont.ttf create mode 100644 kinit-uni/static/font/iconfont.woff create mode 100644 kinit-uni/static/font/iconfont.woff2 create mode 100644 kinit-uni/static/images/avatar.jpg create mode 100644 kinit-uni/static/images/banner/banner01.jpg create mode 100644 kinit-uni/static/images/banner/banner02.jpg create mode 100644 kinit-uni/static/images/banner/banner03.jpg create mode 100644 kinit-uni/static/images/tabbar/home.png create mode 100644 kinit-uni/static/images/tabbar/home_.png create mode 100644 kinit-uni/static/images/tabbar/mine.png create mode 100644 kinit-uni/static/images/tabbar/mine_.png create mode 100644 kinit-uni/static/images/tabbar/work.png create mode 100644 kinit-uni/static/images/tabbar/work_.png create mode 100644 kinit-uni/static/index.html create mode 100644 kinit-uni/static/logo.png create mode 100644 kinit-uni/static/logo200.png create mode 100644 kinit-uni/static/scss/colorui.css create mode 100644 kinit-uni/static/scss/global.scss create mode 100644 kinit-uni/static/scss/index.scss create mode 100644 kinit-uni/store/getters.js create mode 100644 kinit-uni/store/index.js create mode 100644 kinit-uni/store/modules/app.js create mode 100644 kinit-uni/store/modules/auth.js create mode 100644 kinit-uni/store/modules/dict.js create mode 100644 kinit-uni/uni.scss create mode 100644 kinit-uni/uni_modules/uni-badge/changelog.md create mode 100644 kinit-uni/uni_modules/uni-badge/components/uni-badge/uni-badge.vue create mode 100644 kinit-uni/uni_modules/uni-badge/package.json create mode 100644 kinit-uni/uni_modules/uni-badge/readme.md create mode 100644 kinit-uni/uni_modules/uni-breadcrumb/changelog.md create mode 100644 kinit-uni/uni_modules/uni-breadcrumb/components/uni-breadcrumb-item/uni-breadcrumb-item.vue create mode 100644 kinit-uni/uni_modules/uni-breadcrumb/components/uni-breadcrumb/uni-breadcrumb.vue create mode 100644 kinit-uni/uni_modules/uni-breadcrumb/package.json create mode 100644 kinit-uni/uni_modules/uni-breadcrumb/readme.md create mode 100644 kinit-uni/uni_modules/uni-calendar/changelog.md create mode 100644 kinit-uni/uni_modules/uni-calendar/components/uni-calendar/calendar.js create mode 100644 kinit-uni/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json create mode 100644 kinit-uni/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js create mode 100644 kinit-uni/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json create mode 100644 kinit-uni/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json create mode 100644 kinit-uni/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue create mode 100644 kinit-uni/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue create mode 100644 kinit-uni/uni_modules/uni-calendar/components/uni-calendar/util.js create mode 100644 kinit-uni/uni_modules/uni-calendar/package.json create mode 100644 kinit-uni/uni_modules/uni-calendar/readme.md create mode 100644 kinit-uni/uni_modules/uni-card/changelog.md create mode 100644 kinit-uni/uni_modules/uni-card/components/uni-card/uni-card.vue create mode 100644 kinit-uni/uni_modules/uni-card/package.json create mode 100644 kinit-uni/uni_modules/uni-card/readme.md create mode 100644 kinit-uni/uni_modules/uni-collapse/changelog.md create mode 100644 kinit-uni/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue create mode 100644 kinit-uni/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue create mode 100644 kinit-uni/uni_modules/uni-collapse/package.json create mode 100644 kinit-uni/uni_modules/uni-collapse/readme.md create mode 100644 kinit-uni/uni_modules/uni-combox/changelog.md create mode 100644 kinit-uni/uni_modules/uni-combox/components/uni-combox/uni-combox.vue create mode 100644 kinit-uni/uni_modules/uni-combox/package.json create mode 100644 kinit-uni/uni_modules/uni-combox/readme.md create mode 100644 kinit-uni/uni_modules/uni-countdown/changelog.md create mode 100644 kinit-uni/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json create mode 100644 kinit-uni/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js create mode 100644 kinit-uni/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json create mode 100644 kinit-uni/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json create mode 100644 kinit-uni/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue create mode 100644 kinit-uni/uni_modules/uni-countdown/package.json create mode 100644 kinit-uni/uni_modules/uni-countdown/readme.md create mode 100644 kinit-uni/uni_modules/uni-data-checkbox/changelog.md create mode 100644 kinit-uni/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue create mode 100644 kinit-uni/uni_modules/uni-data-checkbox/package.json create mode 100644 kinit-uni/uni_modules/uni-data-checkbox/readme.md create mode 100644 kinit-uni/uni_modules/uni-data-picker/changelog.md create mode 100644 kinit-uni/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js create mode 100644 kinit-uni/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue create mode 100644 kinit-uni/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js create mode 100644 kinit-uni/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue create mode 100644 kinit-uni/uni_modules/uni-data-picker/package.json create mode 100644 kinit-uni/uni_modules/uni-data-picker/readme.md create mode 100644 kinit-uni/uni_modules/uni-data-select/changelog.md create mode 100644 kinit-uni/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue create mode 100644 kinit-uni/uni_modules/uni-data-select/package.json create mode 100644 kinit-uni/uni_modules/uni-data-select/readme.md create mode 100644 kinit-uni/uni_modules/uni-dateformat/changelog.md create mode 100644 kinit-uni/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js create mode 100644 kinit-uni/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue create mode 100644 kinit-uni/uni_modules/uni-dateformat/package.json create mode 100644 kinit-uni/uni_modules/uni-dateformat/readme.md create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/changelog.md create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/package.json create mode 100644 kinit-uni/uni_modules/uni-datetime-picker/readme.md create mode 100644 kinit-uni/uni_modules/uni-drawer/changelog.md create mode 100644 kinit-uni/uni_modules/uni-drawer/components/uni-drawer/keypress.js create mode 100644 kinit-uni/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue create mode 100644 kinit-uni/uni_modules/uni-drawer/package.json create mode 100644 kinit-uni/uni_modules/uni-drawer/readme.md create mode 100644 kinit-uni/uni_modules/uni-easyinput/changelog.md create mode 100644 kinit-uni/uni_modules/uni-easyinput/components/uni-easyinput/common.js create mode 100644 kinit-uni/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue create mode 100644 kinit-uni/uni_modules/uni-easyinput/package.json create mode 100644 kinit-uni/uni_modules/uni-easyinput/readme.md create mode 100644 kinit-uni/uni_modules/uni-fab/changelog.md create mode 100644 kinit-uni/uni_modules/uni-fab/components/uni-fab/uni-fab.vue create mode 100644 kinit-uni/uni_modules/uni-fab/package.json create mode 100644 kinit-uni/uni_modules/uni-fab/readme.md create mode 100644 kinit-uni/uni_modules/uni-fav/changelog.md create mode 100644 kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/en.json create mode 100644 kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/index.js create mode 100644 kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json create mode 100644 kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json create mode 100644 kinit-uni/uni_modules/uni-fav/components/uni-fav/uni-fav.vue create mode 100644 kinit-uni/uni_modules/uni-fav/package.json create mode 100644 kinit-uni/uni_modules/uni-fav/readme.md create mode 100644 kinit-uni/uni_modules/uni-file-picker/changelog.md create mode 100644 kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js create mode 100644 kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue create mode 100644 kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue create mode 100644 kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue create mode 100644 kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/utils.js create mode 100644 kinit-uni/uni_modules/uni-file-picker/package.json create mode 100644 kinit-uni/uni_modules/uni-file-picker/readme.md create mode 100644 kinit-uni/uni_modules/uni-forms/changelog.md create mode 100644 kinit-uni/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue create mode 100644 kinit-uni/uni_modules/uni-forms/components/uni-forms/uni-forms.vue create mode 100644 kinit-uni/uni_modules/uni-forms/components/uni-forms/utils.js create mode 100644 kinit-uni/uni_modules/uni-forms/components/uni-forms/validate.js create mode 100644 kinit-uni/uni_modules/uni-forms/package.json create mode 100644 kinit-uni/uni_modules/uni-forms/readme.md create mode 100644 kinit-uni/uni_modules/uni-goods-nav/changelog.md create mode 100644 kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json create mode 100644 kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js create mode 100644 kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json create mode 100644 kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json create mode 100644 kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue create mode 100644 kinit-uni/uni_modules/uni-goods-nav/package.json create mode 100644 kinit-uni/uni_modules/uni-goods-nav/readme.md create mode 100644 kinit-uni/uni_modules/uni-grid/changelog.md create mode 100644 kinit-uni/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue create mode 100644 kinit-uni/uni_modules/uni-grid/components/uni-grid/uni-grid.vue create mode 100644 kinit-uni/uni_modules/uni-grid/package.json create mode 100644 kinit-uni/uni_modules/uni-grid/readme.md create mode 100644 kinit-uni/uni_modules/uni-group/changelog.md create mode 100644 kinit-uni/uni_modules/uni-group/components/uni-group/uni-group.vue create mode 100644 kinit-uni/uni_modules/uni-group/package.json create mode 100644 kinit-uni/uni_modules/uni-group/readme.md create mode 100644 kinit-uni/uni_modules/uni-icons/changelog.md create mode 100644 kinit-uni/uni_modules/uni-icons/components/uni-icons/icons.js create mode 100644 kinit-uni/uni_modules/uni-icons/components/uni-icons/uni-icons.vue create mode 100644 kinit-uni/uni_modules/uni-icons/components/uni-icons/uniicons.css create mode 100644 kinit-uni/uni_modules/uni-icons/components/uni-icons/uniicons.ttf create mode 100644 kinit-uni/uni_modules/uni-icons/package.json create mode 100644 kinit-uni/uni_modules/uni-icons/readme.md create mode 100644 kinit-uni/uni_modules/uni-indexed-list/changelog.md create mode 100644 kinit-uni/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue create mode 100644 kinit-uni/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue create mode 100644 kinit-uni/uni_modules/uni-indexed-list/package.json create mode 100644 kinit-uni/uni_modules/uni-indexed-list/readme.md create mode 100644 kinit-uni/uni_modules/uni-link/changelog.md create mode 100644 kinit-uni/uni_modules/uni-link/components/uni-link/uni-link.vue create mode 100644 kinit-uni/uni_modules/uni-link/package.json create mode 100644 kinit-uni/uni_modules/uni-link/readme.md create mode 100644 kinit-uni/uni_modules/uni-list/changelog.md create mode 100644 kinit-uni/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue create mode 100644 kinit-uni/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss create mode 100644 kinit-uni/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue create mode 100644 kinit-uni/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue create mode 100644 kinit-uni/uni_modules/uni-list/components/uni-list/uni-list.vue create mode 100644 kinit-uni/uni_modules/uni-list/components/uni-list/uni-refresh.vue create mode 100644 kinit-uni/uni_modules/uni-list/components/uni-list/uni-refresh.wxs create mode 100644 kinit-uni/uni_modules/uni-list/package.json create mode 100644 kinit-uni/uni_modules/uni-list/readme.md create mode 100644 kinit-uni/uni_modules/uni-load-more/changelog.md create mode 100644 kinit-uni/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json create mode 100644 kinit-uni/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js create mode 100644 kinit-uni/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json create mode 100644 kinit-uni/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json create mode 100644 kinit-uni/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue create mode 100644 kinit-uni/uni_modules/uni-load-more/package.json create mode 100644 kinit-uni/uni_modules/uni-load-more/readme.md create mode 100644 kinit-uni/uni_modules/uni-nav-bar/changelog.md create mode 100644 kinit-uni/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue create mode 100644 kinit-uni/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue create mode 100644 kinit-uni/uni_modules/uni-nav-bar/package.json create mode 100644 kinit-uni/uni_modules/uni-nav-bar/readme.md create mode 100644 kinit-uni/uni_modules/uni-notice-bar/changelog.md create mode 100644 kinit-uni/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue create mode 100644 kinit-uni/uni_modules/uni-notice-bar/package.json create mode 100644 kinit-uni/uni_modules/uni-notice-bar/readme.md create mode 100644 kinit-uni/uni_modules/uni-number-box/changelog.md create mode 100644 kinit-uni/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue create mode 100644 kinit-uni/uni_modules/uni-number-box/package.json create mode 100644 kinit-uni/uni_modules/uni-number-box/readme.md create mode 100644 kinit-uni/uni_modules/uni-pagination/changelog.md create mode 100644 kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json create mode 100644 kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json create mode 100644 kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json create mode 100644 kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js create mode 100644 kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json create mode 100644 kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json create mode 100644 kinit-uni/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue create mode 100644 kinit-uni/uni_modules/uni-pagination/package.json create mode 100644 kinit-uni/uni_modules/uni-pagination/readme.md create mode 100644 kinit-uni/uni_modules/uni-popup/changelog.md create mode 100644 kinit-uni/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js create mode 100644 kinit-uni/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue create mode 100644 kinit-uni/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue create mode 100644 kinit-uni/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue create mode 100644 kinit-uni/uni_modules/uni-popup/components/uni-popup/i18n/en.json create mode 100644 kinit-uni/uni_modules/uni-popup/components/uni-popup/i18n/index.js create mode 100644 kinit-uni/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json create mode 100644 kinit-uni/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json create mode 100644 kinit-uni/uni_modules/uni-popup/components/uni-popup/keypress.js create mode 100644 kinit-uni/uni_modules/uni-popup/components/uni-popup/popup.js create mode 100644 kinit-uni/uni_modules/uni-popup/components/uni-popup/uni-popup.vue create mode 100644 kinit-uni/uni_modules/uni-popup/package.json create mode 100644 kinit-uni/uni_modules/uni-popup/readme.md create mode 100644 kinit-uni/uni_modules/uni-rate/changelog.md create mode 100644 kinit-uni/uni_modules/uni-rate/components/uni-rate/uni-rate.vue create mode 100644 kinit-uni/uni_modules/uni-rate/package.json create mode 100644 kinit-uni/uni_modules/uni-rate/readme.md create mode 100644 kinit-uni/uni_modules/uni-row/changelog.md create mode 100644 kinit-uni/uni_modules/uni-row/components/uni-col/uni-col.vue create mode 100644 kinit-uni/uni_modules/uni-row/components/uni-row/uni-row.vue create mode 100644 kinit-uni/uni_modules/uni-row/package.json create mode 100644 kinit-uni/uni_modules/uni-row/readme.md create mode 100644 kinit-uni/uni_modules/uni-scss/changelog.md create mode 100644 kinit-uni/uni_modules/uni-scss/index.scss create mode 100644 kinit-uni/uni_modules/uni-scss/package.json create mode 100644 kinit-uni/uni_modules/uni-scss/readme.md create mode 100644 kinit-uni/uni_modules/uni-scss/styles/index.scss create mode 100644 kinit-uni/uni_modules/uni-scss/styles/setting/_border.scss create mode 100644 kinit-uni/uni_modules/uni-scss/styles/setting/_color.scss create mode 100644 kinit-uni/uni_modules/uni-scss/styles/setting/_radius.scss create mode 100644 kinit-uni/uni_modules/uni-scss/styles/setting/_space.scss create mode 100644 kinit-uni/uni_modules/uni-scss/styles/setting/_styles.scss create mode 100644 kinit-uni/uni_modules/uni-scss/styles/setting/_text.scss create mode 100644 kinit-uni/uni_modules/uni-scss/styles/setting/_variables.scss create mode 100644 kinit-uni/uni_modules/uni-scss/styles/tools/functions.scss create mode 100644 kinit-uni/uni_modules/uni-scss/theme.scss create mode 100644 kinit-uni/uni_modules/uni-scss/variables.scss create mode 100644 kinit-uni/uni_modules/uni-search-bar/changelog.md create mode 100644 kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json create mode 100644 kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js create mode 100644 kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json create mode 100644 kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json create mode 100644 kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue create mode 100644 kinit-uni/uni_modules/uni-search-bar/package.json create mode 100644 kinit-uni/uni_modules/uni-search-bar/readme.md create mode 100644 kinit-uni/uni_modules/uni-segmented-control/changelog.md create mode 100644 kinit-uni/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue create mode 100644 kinit-uni/uni_modules/uni-segmented-control/package.json create mode 100644 kinit-uni/uni_modules/uni-segmented-control/readme.md create mode 100644 kinit-uni/uni_modules/uni-steps/changelog.md create mode 100644 kinit-uni/uni_modules/uni-steps/components/uni-steps/uni-steps.vue create mode 100644 kinit-uni/uni_modules/uni-steps/package.json create mode 100644 kinit-uni/uni_modules/uni-steps/readme.md create mode 100644 kinit-uni/uni_modules/uni-swipe-action/changelog.md create mode 100644 kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js create mode 100644 kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js create mode 100644 kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js create mode 100644 kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js create mode 100644 kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js create mode 100644 kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js create mode 100644 kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue create mode 100644 kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs create mode 100644 kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue create mode 100644 kinit-uni/uni_modules/uni-swipe-action/package.json create mode 100644 kinit-uni/uni_modules/uni-swipe-action/readme.md create mode 100644 kinit-uni/uni_modules/uni-swiper-dot/changelog.md create mode 100644 kinit-uni/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue create mode 100644 kinit-uni/uni_modules/uni-swiper-dot/package.json create mode 100644 kinit-uni/uni_modules/uni-swiper-dot/readme.md create mode 100644 kinit-uni/uni_modules/uni-table/changelog.md create mode 100644 kinit-uni/uni_modules/uni-table/components/uni-table/uni-table.vue create mode 100644 kinit-uni/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue create mode 100644 kinit-uni/uni_modules/uni-table/components/uni-td/uni-td.vue create mode 100644 kinit-uni/uni_modules/uni-table/components/uni-th/filter-dropdown.vue create mode 100644 kinit-uni/uni_modules/uni-table/components/uni-th/uni-th.vue create mode 100644 kinit-uni/uni_modules/uni-table/components/uni-thead/uni-thead.vue create mode 100644 kinit-uni/uni_modules/uni-table/components/uni-tr/table-checkbox.vue create mode 100644 kinit-uni/uni_modules/uni-table/components/uni-tr/uni-tr.vue create mode 100644 kinit-uni/uni_modules/uni-table/i18n/en.json create mode 100644 kinit-uni/uni_modules/uni-table/i18n/es.json create mode 100644 kinit-uni/uni_modules/uni-table/i18n/fr.json create mode 100644 kinit-uni/uni_modules/uni-table/i18n/index.js create mode 100644 kinit-uni/uni_modules/uni-table/i18n/zh-Hans.json create mode 100644 kinit-uni/uni_modules/uni-table/i18n/zh-Hant.json create mode 100644 kinit-uni/uni_modules/uni-table/package.json create mode 100644 kinit-uni/uni_modules/uni-table/readme.md create mode 100644 kinit-uni/uni_modules/uni-tag/changelog.md create mode 100644 kinit-uni/uni_modules/uni-tag/components/uni-tag/uni-tag.vue create mode 100644 kinit-uni/uni_modules/uni-tag/package.json create mode 100644 kinit-uni/uni_modules/uni-tag/readme.md create mode 100644 kinit-uni/uni_modules/uni-title/changelog.md create mode 100644 kinit-uni/uni_modules/uni-title/components/uni-title/uni-title.vue create mode 100644 kinit-uni/uni_modules/uni-title/package.json create mode 100644 kinit-uni/uni_modules/uni-title/readme.md create mode 100644 kinit-uni/uni_modules/uni-tooltip/changelog.md create mode 100644 kinit-uni/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue create mode 100644 kinit-uni/uni_modules/uni-tooltip/package.json create mode 100644 kinit-uni/uni_modules/uni-tooltip/readme.md create mode 100644 kinit-uni/uni_modules/uni-transition/changelog.md create mode 100644 kinit-uni/uni_modules/uni-transition/components/uni-transition/createAnimation.js create mode 100644 kinit-uni/uni_modules/uni-transition/components/uni-transition/uni-transition.vue create mode 100644 kinit-uni/uni_modules/uni-transition/package.json create mode 100644 kinit-uni/uni_modules/uni-transition/readme.md create mode 100644 kinit-uni/vue.config.js diff --git a/README.md b/README.md index 2a2899c..0419cc6 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,8 @@ Kinit 是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。 - 后端采用 Python 语言现代、快速(高性能) [FastAPI](https://fastapi.tiangolo.com/zh/) 异步框架 + [SQLAlchemy](https://www.sqlalchemy.org/) 异步操作 [MySQL](https://www.mysql.com/) 数据库。 -- 前端采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin) 、[Vue3](https://cn.vuejs.org/guide/introduction.html)、[Element Plus](https://element-plus.gitee.io/zh-CN/guide/design.html)、[TypeScript](https://www.tslang.cn/),等主流技术开发。 +- PC端采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin) 、[Vue3](https://cn.vuejs.org/guide/introduction.html)、[Element Plus](https://element-plus.gitee.io/zh-CN/guide/design.html)、[TypeScript](https://www.tslang.cn/)等主流技术开发。 +- 移动端采用 [uni-app](https://uniapp.dcloud.net.cn/component/),[Vue2](https://v2.cn.vuejs.org/v2/guide/),[uView 2](https://www.uviewui.com/components/intro.html)为主要技术开发 - 新加入 [Typer](https://typer.tiangolo.com/) 命令行应用,简单化数据初始化,数据表模型迁移。 - 权限认证使用[(哈希)密码和 JWT Bearer 令牌的 OAuth2](https://fastapi.tiangolo.com/zh/tutorial/security/oauth2-jwt/),支持多终端认证系统。 - 支持加载动态权限菜单,多方式轻松权限控制,按钮级别权限控制。 @@ -32,15 +33,15 @@ Kinit 是一套全部开源的快速开发平台,毫无保留给个人及企 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin):一套基于vue3、element-plus、typescript4、vite3的后台集成方案 -[django-vue-admin](https://gitee.com/liqianglog/django-vue-admin):基于RBAC模型的权限控制的一整套基础开发平台,前后端分离,后端采用 django+django-rest-framework,前端采用 vue+ElementUI。 - [RuoYi 若依官方网站](http://www.ruoyi.vip/):RuoYi 是一个后台管理系统,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。 +[django-vue-admin](https://gitee.com/liqianglog/django-vue-admin):基于RBAC模型的权限控制的一整套基础开发平台,前后端分离,后端采用 django+django-rest-framework,前端采用 vue+ElementUI。 + [Ant Design Pro](https://preview.pro.ant.design/dashboard/analysis):开箱即用的中台前端/设计解决方案 [Gin-Vue-Admin](https://demo.gin-vue-admin.com):基于vite+vue3+gin搭建的开发基础平台(支持TS,JS混用),集成jwt鉴权,权限管理,动态路由,显隐可控组件,分页封装,多点登录拦截,资源权限,上传下载,代码生成器,表单生成器等开发必备功能。 -[Vben Admin (vvbin.cn)](https://vvbin.cn/next):Vue Vben Admin 是一个免费开源的中后台模版。使用了最新的`vue3`,`vite2`,`TypeScript`等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考。 +[Vben Admin](https://doc.vvbin.cn/guide/introduction.html):Vue Vben Admin 是一个免费开源的中后台模版。使用了最新的`vue3`,`vite2`,`TypeScript`等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考。 [中华人民共和国行政区划 (github.com)](https://github.com/modood/Administrative-divisions-of-China):省级(省份)、 地级(城市)、 县级(区县)、 乡级(乡镇街道)、 村级(村委会居委会) ,中国省市区镇村二级三级四级五级联动地址数据。 @@ -48,11 +49,20 @@ Kinit 是一套全部开源的快速开发平台,毫无保留给个人及企 [小诺开源技术 (xiaonuo.vip)](https://www.xiaonuo.vip/):国内首个国密前后端分离快速开发平台 -[my-web:](https://gitee.com/newgateway/my-web):MyWeb 是一个企业级中后台前端/设计解决方案的的项目工程模板,它可以帮助你快速搭建企业级中后台产品原型 +[my-web](https://gitee.com/newgateway/my-web):MyWeb 是一个企业级中后台前端/设计解决方案的的项目工程模板,它可以帮助你快速搭建企业级中后台产品原型 ## 在线体验 -演示地址:http://kinit.ktianc.top/ +PC端演示地址:http://admin.kinit.top + +移动端演示地址:http://h5.kinit.top + +微信小程序端演示: + +- 搜索:kinit +- 扫码: + +image-20221010214526082 - 账号:15020221010 - 密码:kinit2022 @@ -63,7 +73,7 @@ gitee地址(主推):https://gitee.com/ktianc/kinit github地址:https://github.com/vvandk/kinit -## 内置功能 +## PC端内置功能 - [x] 菜单管理:配置系统菜单,操作权限,按钮权限标识、后端接口权限等。 @@ -77,7 +87,7 @@ github地址:https://github.com/vvandk/kinit - [x] 文件上传:对接阿里云OSS与本地存储。 -- [x] 登录认证:目前支持用户使用手机号+密码方式登录。 +- [x] 登录认证:目前支持用户使用手机号+密码方式或者手机验证码登录。 说明:新建用户密码默认为手机号后六位; @@ -99,8 +109,6 @@ github地址:https://github.com/vvandk/kinit - [x] 导入导出:灵活支持数据导入导出功能 -- [x] 手机验证码登录功能 - - [x] 简单适配手机端: 1. 工作台招呼语一行显示,多余显示省略号 @@ -109,10 +117,22 @@ github地址:https://github.com/vvandk/kinit 4. 表格工具栏更新,手机端取消文字显示 5. 表格操作按钮多的时候自动叠起 -- [x] 已加入常见的`Redis`、`MYSQL`、`MongoDB`数据库异步操作。 +- [x] 已加入常见的`Redis`、`MySQL`、`MongoDB`数据库异步操作。 - [x] 命令行操作:新加入 `Typer` 命令行应用,简单化数据初始化,数据表模型迁移。 +## 移动端内置功能 + +- [x] 登录认证:目前支持用户使用手机号+密码方式登录。 + + 说明:新建用户密码默认为手机号后六位; + + 说明:用户在第一次登录时,必须修改当前用户密码。 + +- [x] 导航栏:首页、我的、工作台 + +- [x] 我的基础功能:编辑资料、头像修改、密码修改、常见问题、关于我们等 + ## TODO - [ ] 考虑支持多机部署方案,如果接口使用多机,那么用户是否支持统一认证 @@ -123,8 +143,15 @@ github地址:https://github.com/vvandk/kinit ## 前序准备 -- [FastAPI](https://fastapi.tiangolo.com/zh/) - 熟悉后台接口 Web 框架 +### 后端技术 + +- [Python3](https://www.python.org/downloads/windows/):熟悉 python3 基础语法 +- [FastAPI](https://fastapi.tiangolo.com/zh/) - 熟悉后台接口 Web 框架. - [Typer](https://typer.tiangolo.com/) - 熟悉命令行工具的使用 +- [MySQL](https://www.mysql.com/) 和 [MongoDB](https://www.mongodb.com/) - 熟悉数据存储数据库 + +### PC端 + - [node](https://gitee.com/link?target=http%3A%2F%2Fnodejs.org%2F) 和 [git](https://gitee.com/link?target=https%3A%2F%2Fgit-scm.com%2F) - 项目开发环境 - [Vite](https://gitee.com/link?target=https%3A%2F%2Fvitejs.dev%2F) - 熟悉 vite 特性 - [Vue3](https://gitee.com/link?target=https%3A%2F%2Fv3.vuejs.org%2F) - 熟悉 Vue 基础语法 @@ -134,15 +161,26 @@ github地址:https://github.com/vvandk/kinit - [Element-Plus](https://gitee.com/link?target=https%3A%2F%2Felement-plus.org%2F) - element-plus 基本使用 - [Mock.js](https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2Fnuysoft%2FMock) - mockjs 基本语法 +### 移动端 + +- [uni-app](https://uniapp.dcloud.net.cn/component/) - 熟悉 uni-app 基本语法 +- [Vue2](https://v2.cn.vuejs.org/v2/guide/) - 熟悉 Vue 基础语法 +- [uView UI 2](https://www.uviewui.com/components/intro.html):uView UI 组件的基本使用 + ### 依赖包 -#### 前端 +#### PC端 - [vue3-json-viewer](https://gitee.com/isfive/vue3-json-viewer):简单易用的json内容展示组件,适配vue3和vite。 -- [vue3-slide-verify](https://github.com/monoplasty/vue3-slide-verify):滑块验证码插件 vue3 + typescript +- [vue3-slide-verify](https://github.com/monoplasty/vue3-slide-verify):滑块验证码插件 vue3 + typescript。 - [SortableJS/vue.draggable.next](https://github.com/SortableJS/vue.draggable.next):Vue 组件 (Vue.js 3.0) 允许拖放和与视图模型数组同步。 - [高德地图API (amap.com)](https://lbs.amap.com/api/jsapi-v2/guide/webcli/map-vue1):地图 JSAPI 2.0 是高德开放平台免费提供的第四代 Web 地图渲染引擎, 以 WebGL 为主要绘图手段,本着“更轻、更快、更易用”的服务原则,广泛采用了各种前沿技术,交互体验、视觉体验大幅提升,同时提供了众多新增能力和特性。 +#### 移动端 + +- [uni-read-pages](https://github.com/SilurianYang/uni-read-pages) :自动读取 `pages.json` 所有配置。 +- [uni-simple-router](https://hhyang.cn/v2/start/quickstart.html) :在uni-app中使用vue-router的方式进行跳转路由,路由拦截。 + #### 后端 - [iP查询接口文档](https://user.ip138.com/ip/doc):IP查询第三方服务,有1000次的免费次数 @@ -169,11 +207,11 @@ Redis (推荐使用最新稳定版) 1. 安装依赖 -``` -cd kinit-api - -pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ -``` + ``` + cd kinit-api + + pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ + ``` 2. 修改项目数据库配置信息 @@ -235,23 +273,32 @@ pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ ```python # mysql+pymysql://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称 - sqlalchemy.url = mysql+pymysql://root:123456@127.0.0.1/kinit + [dev] + # 开发环境 + version_locations = %(here)s/alembic/versions_dev + sqlalchemy.url = sqlalchemy.url = mysql+pymysql://root:123456@127.0.0.1/kinit + + + [pro] + # 生产环境 + version_locations = %(here)s/alembic/versions_pro + sqlalchemy.url = sqlalchemy.url = mysql+pymysql://root:123456@127.0.0.1/kinit ``` 3. 创建数据库 -```shell -mysql> create database kinit; # 创建数据库 -mysql> use kinit; # 使用已创建的数据库 -mysql> set names utf8; # 设置编码 -``` + ``` + mysql> create database kinit; # 创建数据库 + mysql> use kinit; # 使用已创建的数据库 + mysql> set names utf8; # 设置编码 + ``` 4. 初始化数据库数据 -```shell -# 进入项目根目录下执行 -python3 main.py init -``` + ``` + # 进入项目根目录下执行 + python3 main.py init + ``` 5. 修改项目基本配置信息 @@ -272,12 +319,12 @@ python3 main.py init 6. 启动 -```shell -# 进入项目根目录下执行 -python3 main.py run -``` + ``` + # 进入项目根目录下执行 + python3 main.py run + ``` -### 前端 +### PC端 1. 安装依赖 @@ -349,7 +396,7 @@ pnpm run build:pro [MIT](https://gitee.com/kailong110120130/vue-element-plus-admin/blob/master/LICENSE) -## 演示图 +## PC端演示图 ![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/1.png) @@ -357,12 +404,28 @@ pnpm run build:pro ![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/3.png) -![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/6.png) +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/6.jpg) ![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/5.png) -![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/7.png) +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/7.jpg) -![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/8.png) +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/8.jpg) -![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/9.png) \ No newline at end of file +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/9.jpg) + +## 移动端演示图 + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077811740.jpg) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077826257.jpg) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077835024.jpg) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077849753.jpg) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077860987.jpg) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077870240.jpg) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/uni/1670077878132.jpg) \ No newline at end of file diff --git a/kinit-admin/README.md b/kinit-admin/README.md index 8ea862b..1a8cc9a 100644 --- a/kinit-admin/README.md +++ b/kinit-admin/README.md @@ -2,17 +2,12 @@ vue-element-plus-admin 是一个基于 `element-plus` 免费开源的中后台模版。使用了最新的`vue3`,`vite3`,`TypeScript`等主流技术开发,开箱即用的中后台前端解决方案,可以用来作为项目的启动模版,也可用于学习参考。并且时刻关注着最新技术动向,尽可能的第一时间更新。 -vue-element-plus-admin 的定位是后台集成方案,不太适合当基础模板来进行二次开发。因为集成了很多你可能用不到的功能,会造成不少的代码冗余。如果你的项目不关注这方面的问题,也可以直接基于它进行二次开发。 - -如需要基础模版,请切换到 `tempalte` 分支,`tempalte` 只简单集成了一些如:布局、动态菜单等常用布局功能,更适合开发者进行二次开发。 - ## 特性 - **最新技术栈**:使用 Vue3/vite3 等前端前沿技术开发 - **TypeScript**: 应用程序级 JavaScript 的语言 - **主题**: 可配置的主题 - **国际化**:内置完善的国际化方案 -- **自定义数据** 内置 Mock 数据方案 - **权限** 内置完善的动态路由权限生成方案 - **组件** 二次封装了多个常用的组件 - **示例** 内置丰富的示例 @@ -81,4 +76,22 @@ pnpm run build:pro ## 更新日志 -[更新日志](./CHANGELOG.md) \ No newline at end of file +[更新日志](./CHANGELOG.md) + +## 演示图 + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/1.png) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/2.png) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/3.png) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/6.jpg) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/5.png) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/7.jpg) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/8.jpg) + +![image-20221010214526082](https://gitee.com/ktianc/kinit/raw/master/images/9.jpg) \ No newline at end of file diff --git a/kinit-admin/src/App.vue b/kinit-admin/src/App.vue index afc1cfd..1b17f55 100644 --- a/kinit-admin/src/App.vue +++ b/kinit-admin/src/App.vue @@ -26,7 +26,7 @@ const setSystemConfig = async () => { const res = await getSystemSettingsClassifysApi({ classify: 'web' }) if (res) { appStore.setTitle(res.data.web_basic.web_title || import.meta.env.VITE_APP_TITLE) - appStore.setLogoImage(res.data.web_basic.web_logo || '/static/system/logo.png') + appStore.setLogoImage(res.data.web_basic.web_logo || '/media/system/logo.png') appStore.setFooterContent(res.data.web_basic.web_copyright || 'Copyright ©2022-present K') appStore.setIcpNumber(res.data.web_basic.web_icp_number || '') addMeta( diff --git a/kinit-admin/src/api/login/types.ts b/kinit-admin/src/api/login/types.ts index 233928c..76ceb51 100644 --- a/kinit-admin/src/api/login/types.ts +++ b/kinit-admin/src/api/login/types.ts @@ -2,6 +2,7 @@ export type UserLoginType = { telephone: string password: string method: string + platform?: string } export type UserType = { diff --git a/kinit-admin/src/api/vadmin/system/settings.ts b/kinit-admin/src/api/vadmin/system/settings.ts index 8156e50..4654a7c 100644 --- a/kinit-admin/src/api/vadmin/system/settings.ts +++ b/kinit-admin/src/api/vadmin/system/settings.ts @@ -15,3 +15,7 @@ export const putSystemSettingsApi = (data: any): Promise => { export const getSystemSettingsClassifysApi = (params: any): Promise => { return request.get({ url: '/vadmin/system/settings/classifys/', params }) } + +export const getSystemSettingsConfigValueApi = (params: any): Promise => { + return request.get({ url: '/vadmin/system/settings/config/value/', params }) +} diff --git a/kinit-admin/src/assets/imgs/avatar.jpg b/kinit-admin/src/assets/imgs/avatar.jpg index d46a70a46430e31744420865138cc7eedb8b77e1..896d9f2a74b33d64ad7e14784a58b941da445d78 100644 GIT binary patch literal 234416 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 WSdvL6r;UWmNlHsx1E!(&kN??;Hghxp literal 6264 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 BLq7lj diff --git a/kinit-admin/src/assets/imgs/avatar_bak.jpg b/kinit-admin/src/assets/imgs/avatar_bak.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d46a70a46430e31744420865138cc7eedb8b77e1 GIT binary patch literal 6264 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 BLq7lj literal 0 HcmV?d00001 diff --git a/kinit-admin/src/components/UserInfo/src/UserInfo.vue b/kinit-admin/src/components/UserInfo/src/UserInfo.vue index fef8329..053ecb4 100644 --- a/kinit-admin/src/components/UserInfo/src/UserInfo.vue +++ b/kinit-admin/src/components/UserInfo/src/UserInfo.vue @@ -23,7 +23,6 @@ const loginOut = () => { }) .then(() => { authStore.logout() - replace('/login') }) .catch(() => {}) } diff --git a/kinit-admin/src/config/axios/config.ts b/kinit-admin/src/config/axios/config.ts index c033bf3..a1044a0 100644 --- a/kinit-admin/src/config/axios/config.ts +++ b/kinit-admin/src/config/axios/config.ts @@ -1,5 +1,6 @@ const config: { result_code: number | string + unauthorized_code: number | string default_headers: AxiosHeaders request_timeout: number } = { @@ -7,6 +8,10 @@ const config: { * 接口成功返回状态码 */ result_code: 200, + /** + * 接口TOKEN失效,返回状态码 + */ + unauthorized_code: 401, /** * 接口请求超时时间 diff --git a/kinit-admin/src/config/axios/service.ts b/kinit-admin/src/config/axios/service.ts index 124f19a..0e0c705 100644 --- a/kinit-admin/src/config/axios/service.ts +++ b/kinit-admin/src/config/axios/service.ts @@ -1,16 +1,15 @@ import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios' import { useCache } from '@/hooks/web/useCache' import { useAppStore } from '@/store/modules/app' - +import { useAuthStore } from '@/store/modules/auth' import qs from 'qs' - import { config } from './config' - import { ElMessage } from 'element-plus' -const { result_code, request_timeout } = config +const { result_code, unauthorized_code, request_timeout } = config const appStore = useAppStore() +const authStore = useAuthStore() const { wsCache } = useCache() // 创建axios实例 @@ -64,6 +63,10 @@ service.interceptors.response.use( return response } else if (response.data.code === result_code) { return response.data + } else if (response.data.code === unauthorized_code) { + // 请重新登录 + ElMessage.error(response.data.message) + authStore.logout() } else { ElMessage.error(response.data.message) } diff --git a/kinit-admin/src/permission.ts b/kinit-admin/src/permission.ts index fbdda7e..c8322fa 100644 --- a/kinit-admin/src/permission.ts +++ b/kinit-admin/src/permission.ts @@ -20,7 +20,7 @@ const { start, done } = useNProgress() const { loadStart, loadDone } = usePageLoading() -const whiteList = ['/login'] // 不重定向白名单 +const whiteList = ['/login', '/docs/privacy', '/docs/agreement'] // 不重定向白名单 router.beforeEach(async (to, from, next) => { start() diff --git a/kinit-admin/src/router/index.ts b/kinit-admin/src/router/index.ts index b1be4a8..2be0433 100644 --- a/kinit-admin/src/router/index.ts +++ b/kinit-admin/src/router/index.ts @@ -47,6 +47,37 @@ export const constantRouterMap: AppRouteRecordRaw[] = [ title: '404', noTagsView: true } + }, + { + path: '/docs', + name: 'Docs', + meta: { + hidden: true, + title: '在线文档', + noTagsView: true + }, + children: [ + { + path: 'privacy', + name: 'Privacy', + component: () => import('@/views/vadmin/system/docs/privacy.vue'), + meta: { + hidden: true, + title: '隐私政策', + noTagsView: true + } + }, + { + path: 'agreement', + name: 'Agreement', + component: () => import('@/views/vadmin/system/docs/agreement.vue'), + meta: { + hidden: true, + title: '用户协议', + noTagsView: true + } + } + ] } ] @@ -61,7 +92,15 @@ const router = createRouter({ }) export const resetRouter = (): void => { - const resetWhiteNameList = ['Login', 'NoFind', 'Root', 'ResetPassword'] + const resetWhiteNameList = [ + 'Login', + 'NoFind', + 'Root', + 'ResetPassword', + 'Docs', + 'Privacy', + 'Agreement' + ] router.getRoutes().forEach((route) => { // 切记 name 不能重复 const { name } = route diff --git a/kinit-admin/src/store/modules/auth.ts b/kinit-admin/src/store/modules/auth.ts index c1483a1..0ee6930 100644 --- a/kinit-admin/src/store/modules/auth.ts +++ b/kinit-admin/src/store/modules/auth.ts @@ -49,6 +49,7 @@ export const useAuthStore = defineStore('auth', { }, actions: { async login(formData: UserLoginType) { + formData.platform = '0' const res = await loginApi(formData) if (res) { wsCache.set(appStore.getToken, `${res.data.token_type} ${res.data.access_token}`) @@ -64,11 +65,13 @@ export const useAuthStore = defineStore('auth', { this.isUser = false tagsViewStore.delAllViews() resetRouter() + window.location.href = '/login' }, updateUser(data: UserState) { this.user.gender = data.gender this.user.name = data.name this.user.nickname = data.nickname + this.user.telephone = data.telephone wsCache.set(appStore.getUserInfo, this.user) }, async getUserInfo() { diff --git a/kinit-admin/src/views/Home/Home.vue b/kinit-admin/src/views/Home/Home.vue index f14a0ee..38c4608 100644 --- a/kinit-admin/src/views/Home/Home.vue +++ b/kinit-admin/src/views/Home/Home.vue @@ -50,6 +50,10 @@ const user = authStore.getUser 性别: {{ selectDictLabel(genderOptions, user.gender as string) }} +
+ 角色: + {{ user.roles?.map((item) => item.name).join(',') }} +
创建时间: {{ user.create_datetime }} diff --git a/kinit-admin/src/views/Home/components/InfoWrite.vue b/kinit-admin/src/views/Home/components/InfoWrite.vue index a2aacb3..3c57325 100644 --- a/kinit-admin/src/views/Home/components/InfoWrite.vue +++ b/kinit-admin/src/views/Home/components/InfoWrite.vue @@ -7,6 +7,7 @@ import { postCurrentUserUpdateInfo } from '@/api/vadmin/auth/user' import { useValidator } from '@/hooks/web/useValidator' import { useAuthStoreWithOut } from '@/store/modules/auth' import { ElMessage } from 'element-plus' +import { FormSchema } from '@/types/form' const { required } = useValidator() @@ -44,6 +45,20 @@ const schema = reactive([ } } }, + { + field: 'telephone', + label: '手机号', + component: 'Input', + colProps: { + span: 24 + }, + componentProps: { + style: { + width: '50%' + }, + maxlength: 11 + } + }, { field: 'gender', label: '性别', diff --git a/kinit-admin/src/views/Home/components/PasswordWrite.vue b/kinit-admin/src/views/Home/components/PasswordWrite.vue index 039069f..e26f893 100644 --- a/kinit-admin/src/views/Home/components/PasswordWrite.vue +++ b/kinit-admin/src/views/Home/components/PasswordWrite.vue @@ -7,6 +7,7 @@ import { postCurrentUserResetPassword } from '@/api/vadmin/auth/user' import { useValidator } from '@/hooks/web/useValidator' import { useAuthStoreWithOut } from '@/store/modules/auth' import { ElMessage } from 'element-plus' +import { FormSchema } from '@/types/form' const { required } = useValidator() @@ -46,7 +47,7 @@ const schema = reactive([ }, { field: 'password_two', - label: '再次输入新密码', + label: '确认密码', component: 'InputPassword', colProps: { span: 24 diff --git a/kinit-admin/src/views/vadmin/auth/user/index.vue b/kinit-admin/src/views/vadmin/auth/user/index.vue index 778683f..e43a88a 100644 --- a/kinit-admin/src/views/vadmin/auth/user/index.vue +++ b/kinit-admin/src/views/vadmin/auth/user/index.vue @@ -31,7 +31,6 @@ import { useI18n } from '@/hooks/web/useI18n' import { selectDictLabel, DictDetail } from '@/utils/dict' import { useDictStore } from '@/store/modules/dict' import { useAuthStoreWithOut } from '@/store/modules/auth' -import { useRouter } from 'vue-router' import { RightToolbar } from '@/components/RightToolbar' import { Search } from '@/components/Search' import { useAppStore } from '@/store/modules/app' @@ -40,11 +39,9 @@ const appStore = useAppStore() const { t } = useI18n() -const { replace } = useRouter() - const authStore = useAuthStoreWithOut() -let genderOptions = ref([]) +const genderOptions = ref([]) const getOptions = async () => { const dictStore = useDictStore() @@ -130,7 +127,6 @@ const save = async () => { if (user.id === data.id && user.telephone !== data.telephone) { dialogVisible.value = false authStore.logout() - replace('/login') return ElMessage.warning('认证已过期,请您重新登陆!') } } diff --git a/kinit-admin/src/views/vadmin/system/docs/agreement.vue b/kinit-admin/src/views/vadmin/system/docs/agreement.vue new file mode 100644 index 0000000..22b3158 --- /dev/null +++ b/kinit-admin/src/views/vadmin/system/docs/agreement.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/kinit-admin/src/views/vadmin/system/docs/privacy.vue b/kinit-admin/src/views/vadmin/system/docs/privacy.vue new file mode 100644 index 0000000..d661071 --- /dev/null +++ b/kinit-admin/src/views/vadmin/system/docs/privacy.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/kinit-admin/src/views/vadmin/system/record/login/components/login.data.ts b/kinit-admin/src/views/vadmin/system/record/login/components/login.data.ts index 4d2e68d..2b96124 100644 --- a/kinit-admin/src/views/vadmin/system/record/login/components/login.data.ts +++ b/kinit-admin/src/views/vadmin/system/record/login/components/login.data.ts @@ -8,12 +8,13 @@ export const columns = reactive([ label: '编号', show: true, disabled: true, - width: '150px', + width: '120px', span: 24 }, { field: 'telephone', label: '手机号', + width: '150px', show: true, disabled: true, span: 24 @@ -21,6 +22,21 @@ export const columns = reactive([ { field: 'status', label: '登录状态', + width: '100px', + show: true, + span: 24 + }, + { + field: 'platform', + label: '登陆平台', + width: '150px', + show: true, + span: 24 + }, + { + field: 'login_method', + label: '认证方式', + width: '120px', show: true, span: 24 }, @@ -29,6 +45,7 @@ export const columns = reactive([ label: '登陆地址', show: true, disabled: true, + width: '150px', span: 24 }, { diff --git a/kinit-admin/src/views/vadmin/system/record/login/index.vue b/kinit-admin/src/views/vadmin/system/record/login/index.vue index 9bd519a..70ad60e 100644 --- a/kinit-admin/src/views/vadmin/system/record/login/index.vue +++ b/kinit-admin/src/views/vadmin/system/record/login/index.vue @@ -10,6 +10,8 @@ import { RightToolbar } from '@/components/RightToolbar' import { Dialog } from '@/components/Dialog' import Detail from './components/Detail.vue' import { Search } from '@/components/Search' +import { selectDictLabel, DictDetail } from '@/utils/dict' +import { useDictStore } from '@/store/modules/dict' const { register, elTableRef, tableObject, methods } = useTable({ getListApi: getRecordLoginListApi, @@ -25,6 +27,17 @@ const { register, elTableRef, tableObject, methods } = useTable({ const dialogVisible = ref(false) const dialogTitle = ref('') +const platformOptions = ref([]) +const loginMethodOptions = ref([]) + +const getOptions = async () => { + const dictStore = useDictStore() + const dictOptions = await dictStore.getDictObj(['sys_vadmin_platform', 'sys_vadmin_login_method']) + platformOptions.value = dictOptions.sys_vadmin_platform + loginMethodOptions.value = dictOptions.sys_vadmin_login_method +} + +getOptions() const view = (row: any) => { dialogTitle.value = '登录详情' @@ -86,6 +99,14 @@ getList() + + + + diff --git a/kinit-api/README.md b/kinit-api/README.md index f6c6add..05e1def 100644 --- a/kinit-api/README.md +++ b/kinit-api/README.md @@ -12,6 +12,10 @@ pydantic 数据模型代码生成器官方文档 (Json -> Pydantic):https: SQLAlchemy-Utils:https://sqlalchemy-utils.readthedocs.io/en/latest/ +alembic 中文文档:https://hellowac.github.io/alembic_doc/zh/_front_matter.html + +Typer 官方文档:https://typer.tiangolo.com/ + ## 项目结构 @@ -94,9 +98,11 @@ git commit -m "clear cached" 执行数据库迁移命令(终端执行) ```shell -# 执行命令: - +# 执行命令(生产环境): python main.py migrate + +# 执行命令(测试环境): +python main.py migrate --env dev ``` 生成迁移文件后,会在alembic迁移目录中的version目录中多个迁移文件 \ No newline at end of file diff --git a/kinit-api/alembic.ini b/kinit-api/alembic.ini index 59be6aa..d203878 100644 --- a/kinit-api/alembic.ini +++ b/kinit-api/alembic.ini @@ -1,6 +1,6 @@ # A generic, single database configuration. -[alembic] +[DEFAULT] # path to migration scripts script_location = alembic @@ -44,13 +44,21 @@ prepend_sys_path = . # version_path_separator = : # version_path_separator = ; # version_path_separator = space -version_path_separator = os # default: use os.pathsep +version_path_separator = os # the output encoding used when revision files # are written from script.py.mako # output_encoding = utf-8 # mysql+pymysql://username:password@host:post/name + +[dev] +version_locations = %(here)s/alembic/versions_dev +sqlalchemy.url = mysql+pymysql://username:password@host:post/name + + +[pro] +version_locations = %(here)s/alembic/versions_pro sqlalchemy.url = mysql+pymysql://username:password@host:post/name diff --git a/kinit-api/alembic/versions/.gitkeep b/kinit-api/alembic/versions_dev/.gitkeep similarity index 100% rename from kinit-api/alembic/versions/.gitkeep rename to kinit-api/alembic/versions_dev/.gitkeep diff --git a/kinit-api/alembic/versions_pro/.gitkeep b/kinit-api/alembic/versions_pro/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/kinit-api/application/settings.py b/kinit-api/application/settings.py index 9431a93..9fb8c76 100644 --- a/kinit-api/application/settings.py +++ b/kinit-api/application/settings.py @@ -11,13 +11,13 @@ from fastapi.security import OAuth2PasswordBearer """ 系统版本 """ -VERSION = "1.3.0" +VERSION = "1.4.0" """安全警告: 不要在生产中打开调试运行!""" -DEBUG = True +DEBUG = False """是否开启演示功能:取消所有POST,DELETE,PUT操作权限""" -DEMO = False +DEMO = True """演示功能白名单""" DEMO_WHITE_LIST_PATH = [ "/auth/login/", @@ -70,7 +70,7 @@ STATIC_ROOT:静态文件目录绝对路径 官方文档:https://fastapi.tiangolo.com/tutorial/static-files/ """ STATIC_ENABLE = True -STATIC_URL = "/static" +STATIC_URL = "/media" STATIC_ROOT = os.path.join(BASE_DIR, "static") diff --git a/kinit-api/apps/vadmin/auth/crud.py b/kinit-api/apps/vadmin/auth/crud.py index cb4b439..7bc7b30 100644 --- a/kinit-api/apps/vadmin/auth/crud.py +++ b/kinit-api/apps/vadmin/auth/crud.py @@ -16,9 +16,11 @@ from sqlalchemy import select from core.crud import DalBase from sqlalchemy.ext.asyncio import AsyncSession from core.validator import vali_telephone +from utils.aliyun_oss import AliyunOSS, BucketConf from utils.aliyun_sms import AliyunSMS from utils.excel.import_manage import ImportManage, FieldType from utils.excel.write_xlsx import WriteXlsx +from utils.file_manage import FileManage from .params import UserParams from utils.tools import test_password from . import models, schemas @@ -26,6 +28,7 @@ from application import settings from utils.excel.excel_manage import ExcelManage from apps.vadmin.system import crud as vadminSystemCRUD import copy +from utils import status class UserDal(DalBase): @@ -47,15 +50,13 @@ class UserDal(DalBase): """ unique = await self.get_data(telephone=data.telephone, v_return_none=True) if unique: - raise ValueError("手机号已存在!") + raise CustomException("手机号已存在!", code=status.HTTP_ERROR) password = data.telephone[5:12] if settings.DEFAULT_PASSWORD == "0" else settings.DEFAULT_PASSWORD data.password = self.model.get_password_hash(password) obj = self.model(**data.dict(exclude={'role_ids'})) for data_id in data.role_ids: obj.roles.append(await RoleDal(db=self.db).get_data(data_id=data_id)) - self.db.add(obj) - await self.db.flush() - await self.db.refresh(obj) + await self.flush(obj) if options: obj = await self.get_data(obj.id, options=options) if return_obj: @@ -75,21 +76,23 @@ class UserDal(DalBase): raise CustomException(msg=result, code=400) user.password = self.model.get_password_hash(data.password) user.is_reset_password = True - self.db.add(user) - await self.db.flush() - await self.db.refresh(user) + await self.flush(user) return True async def update_current_info(self, user: models.VadminUser, data: schemas.UserUpdate): """ 更新当前用户信息 """ + if data.telephone != user.telephone: + unique = await self.get_data(telephone=data.telephone, v_return_none=True) + if unique: + raise CustomException("手机号已存在!", code=status.HTTP_ERROR) + else: + user.telephone = data.telephone user.name = data.name user.nickname = data.nickname user.gender = data.gender - self.db.add(user) - await self.db.flush() - await self.db.refresh(user) + await self.flush(user) return self.out_dict(user) async def export_query_list(self, header: list, params: UserParams): @@ -207,6 +210,18 @@ class UserDal(DalBase): user["send_sms_msg"] = e.msg return result + async def update_current_avatar(self, user: models.VadminUser, file: UploadFile): + """ + 更新当前用户头像 + """ + manage = FileManage(file, "avatar") + result = await AliyunOSS(BucketConf(**settings.ALIYUN_OSS)).upload_image(manage.path, file) + if not result: + raise CustomException(msg="上传失败", code=status.HTTP_ERROR) + user.avatar = result + await self.flush(user) + return result + class RoleDal(DalBase): @@ -218,9 +233,7 @@ class RoleDal(DalBase): obj = self.model(**data.dict(exclude={'menu_ids'})) for data_id in data.menu_ids: obj.menus.append(await MenuDal(db=self.db).get_data(data_id=data_id)) - self.db.add(obj) - await self.db.flush() - await self.db.refresh(obj) + await self.flush(obj) if options: obj = await self.get_data(obj.id, options=options) if return_obj: diff --git a/kinit-api/apps/vadmin/auth/schemas/user.py b/kinit-api/apps/vadmin/auth/schemas/user.py index 6b8b06b..ff6d233 100644 --- a/kinit-api/apps/vadmin/auth/schemas/user.py +++ b/kinit-api/apps/vadmin/auth/schemas/user.py @@ -52,6 +52,7 @@ class UserOut(UserSimpleOut): class UserUpdate(BaseModel): name: str + telephone: Telephone nickname: Optional[str] = None gender: Optional[str] = "0" diff --git a/kinit-api/apps/vadmin/auth/utils/login.py b/kinit-api/apps/vadmin/auth/utils/login.py index 8dec691..fc22dbd 100644 --- a/kinit-api/apps/vadmin/auth/utils/login.py +++ b/kinit-api/apps/vadmin/auth/utils/login.py @@ -45,9 +45,8 @@ async def login_for_access_token(request: Request, data: LoginForm, manage: Logi return ErrorResponse(msg="请使用正确的登录方式") if not result.status: resp = {"message": result.msg} - telephone = data.telephone await VadminLoginRecord.\ - create_login_record(db, telephone, result.status, request, resp) + create_login_record(db, data, result.status, request, resp) return ErrorResponse(msg=result.msg) user = result.user @@ -58,7 +57,7 @@ async def login_for_access_token(request: Request, data: LoginForm, manage: Logi "token_type": "bearer", "is_reset_password": user.is_reset_password } - await VadminLoginRecord.create_login_record(db, user.telephone, result.status, request, resp) + await VadminLoginRecord.create_login_record(db, data, result.status, request, resp) return SuccessResponse(resp) diff --git a/kinit-api/apps/vadmin/auth/utils/validation/auth.py b/kinit-api/apps/vadmin/auth/utils/validation/auth.py index 453055f..52ef153 100644 --- a/kinit-api/apps/vadmin/auth/utils/validation/auth.py +++ b/kinit-api/apps/vadmin/auth/utils/validation/auth.py @@ -38,17 +38,17 @@ class AuthValidation: if not settings.OAUTH_ENABLE: return Auth(db=db) if not token: - raise CustomException(msg="请先登录!", code=status.HTTP_ERROR) + raise CustomException(msg="请您先登录!", code=status.HTTP_ERROR) try: payload = jwt.decode(token, settings.SECRET_KEY, algorithms=[settings.ALGORITHM]) telephone: str = payload.get("sub") if telephone is None: - raise CustomException(msg="无效 Token!", code=status.HTTP_403_FORBIDDEN) + raise CustomException(msg="认证已过期,请您重新登陆", code=status.HTTP_401_UNAUTHORIZED) except JWTError: - raise CustomException(msg="无效 Token!", code=status.HTTP_403_FORBIDDEN) + raise CustomException(msg="认证已过期,请您重新登陆", code=status.HTTP_401_UNAUTHORIZED) user = await self.func(telephone, db) if user is None: - raise CustomException(msg="用户不存在!", code=status.HTTP_404_NOT_FOUND) + raise CustomException(msg="认证已过期,请您重新登陆", code=status.HTTP_401_UNAUTHORIZED) elif not user.is_active: raise CustomException(msg="用户已被冻结!", code=status.HTTP_403_FORBIDDEN) elif user.is_cancel: diff --git a/kinit-api/apps/vadmin/auth/utils/validation/login.py b/kinit-api/apps/vadmin/auth/utils/validation/login.py index 3f02514..e8690ef 100644 --- a/kinit-api/apps/vadmin/auth/utils/validation/login.py +++ b/kinit-api/apps/vadmin/auth/utils/validation/login.py @@ -19,6 +19,7 @@ class LoginForm(BaseModel): telephone: str password: str method: str = '0' # 认证方式,0:密码登录,1:短信登录 + platform: str = '0' # 登录平台,0:PC端管理系统,1:移动端管理系统 # validators _normalize_telephone = validator('telephone', allow_reuse=True)(vali_telephone) diff --git a/kinit-api/apps/vadmin/auth/views.py b/kinit-api/apps/vadmin/auth/views.py index 8e3b78b..ac24dac 100644 --- a/kinit-api/apps/vadmin/auth/views.py +++ b/kinit-api/apps/vadmin/auth/views.py @@ -64,18 +64,18 @@ async def post_user_current_update_info(data: schemas.UserUpdate, auth: Auth = D return SuccessResponse(await crud.UserDal(auth.db).update_current_info(auth.user, data)) +@app.post("/user/current/update/avatar/", summary="更新当前用户头像") +async def post_user_current_update_avatar(file: UploadFile, auth: Auth = Depends(login_auth)): + return SuccessResponse(await crud.UserDal(auth.db).update_current_avatar(auth.user, file)) + + @app.get("/user/current/info/", summary="获取当前用户基本信息") async def get_user_current_info(auth: Auth = Depends(full_admin)): - result = schemas.UserSimpleOut.from_orm(auth.user).dict() + result = schemas.UserOut.from_orm(auth.user).dict() result["permissions"] = await get_user_permissions(auth.user) return SuccessResponse(result) -@app.get("/user/current/info/", summary="获取当前用户基本信息") -async def get_user_current_info(auth: Auth = Depends(login_auth)): - return SuccessResponse(schemas.UserSimpleOut.from_orm(auth.user).dict()) - - @app.post("/user/export/query/list/to/excel/", summary="导出用户查询列表为excel") async def post_user_export_query_list(header: list = Body(..., title="表头与对应字段"), params: UserParams = Depends(), auth: Auth = Depends(login_auth)): diff --git a/kinit-api/apps/vadmin/record/models/login.py b/kinit-api/apps/vadmin/record/models/login.py index 695f947..9893d20 100644 --- a/kinit-api/apps/vadmin/record/models/login.py +++ b/kinit-api/apps/vadmin/record/models/login.py @@ -8,6 +8,7 @@ import json from application.settings import LOGIN_LOG_RECORD +from apps.vadmin.auth.utils.validation import LoginForm from utils.ip_manage import IPManage from sqlalchemy.ext.asyncio import AsyncSession from db.db_base import BaseModel @@ -22,6 +23,8 @@ class VadminLoginRecord(BaseModel): telephone = Column(String(50), index=True, nullable=False, comment="手机号") status = Column(Boolean, default=True, comment="是否登录成功") + platform = Column(String(8), comment="登陆平台") + login_method = Column(String(8), comment="认证方式") ip = Column(String(50), comment="登陆地址") address = Column(String(255), comment="登陆地点") country = Column(String(255), comment="国家") @@ -37,7 +40,7 @@ class VadminLoginRecord(BaseModel): request = Column(TEXT, comment="请求信息") @classmethod - async def create_login_record(cls, db: AsyncSession, telephone: str, status: bool, req: Request, resp: dict) -> None: + async def create_login_record(cls, db: AsyncSession, data: LoginForm, status: bool, req: Request, resp: dict): """ 创建登录记录 @return: @@ -54,7 +57,8 @@ class VadminLoginRecord(BaseModel): ip = IPManage(req.client.host) location = await ip.parse() params = json.dumps({"body": body, "headers": header}) - obj = VadminLoginRecord(**location.dict(), telephone=telephone, status=status, browser=browser, - system=system, response=json.dumps(resp), request=params) + obj = VadminLoginRecord(**location.dict(), telephone=data.telephone, status=status, browser=browser, + system=system, response=json.dumps(resp), request=params, platform=data.platform, + login_method=data.method) db.add(obj) await db.flush() diff --git a/kinit-api/apps/vadmin/record/schemas/login.py b/kinit-api/apps/vadmin/record/schemas/login.py index e518c6c..e2b6c0d 100644 --- a/kinit-api/apps/vadmin/record/schemas/login.py +++ b/kinit-api/apps/vadmin/record/schemas/login.py @@ -30,6 +30,8 @@ class LoginRecord(BaseModel): city: Optional[str] = None county: Optional[str] = None operator: Optional[str] = None + platform: Optional[str] = None + login_method: Optional[str] = None class LoginRecordSimpleOut(LoginRecord): diff --git a/kinit-api/apps/vadmin/system/views.py b/kinit-api/apps/vadmin/system/views.py index 267b1d7..1f521c1 100644 --- a/kinit-api/apps/vadmin/system/views.py +++ b/kinit-api/apps/vadmin/system/views.py @@ -151,3 +151,8 @@ async def put_settings_tabs_values(datas: dict = Body(...), auth: Auth = Depends @app.get("/settings/classifys/", summary="获取系统配置分类下的所有显示标签信息") async def get_settings_classifys(classify: str, db: AsyncSession = Depends(db_getter)): return SuccessResponse(await crud.SettingsTabDal(db).get_classify_tab_values([classify])) + + +@app.get("/settings/config/value/", summary="根据config_key获取到指定value") +async def get_settings_config_value(config_key: str, db: AsyncSession = Depends(db_getter)): + return SuccessResponse((await crud.SettingsDal(db).get_data(config_key=config_key)).config_value) diff --git a/kinit-api/core/crud.py b/kinit-api/core/crud.py index e35ff7e..682ec7b 100644 --- a/kinit-api/core/crud.py +++ b/kinit-api/core/crud.py @@ -129,9 +129,7 @@ class DalBase: obj = self.model(**data) else: obj = self.model(**data.dict()) - self.db.add(obj) - await self.db.flush() - await self.db.refresh(obj) + await self.flush(obj) if options: obj = await self.get_data(obj.id, options=options) if return_obj: @@ -148,8 +146,7 @@ class DalBase: obj_dict = jsonable_encoder(data) for key, value in obj_dict.items(): setattr(obj, key, value) - await self.db.flush() - await self.db.refresh(obj) + await self.flush(obj) if return_obj: return obj if schema: @@ -223,6 +220,16 @@ class DalBase: sql = sql.where(attr == value) return sql + async def flush(self, obj=None): + """ + 刷新到数据库 + """ + if obj: + self.db.add(obj) + await self.db.flush() + if obj: + await self.db.refresh(obj) + def out_dict(self, data): """ 序列化 diff --git a/kinit-api/main.py b/kinit-api/main.py index b5367fa..1a35e31 100644 --- a/kinit-api/main.py +++ b/kinit-api/main.py @@ -8,6 +8,7 @@ """ FastApi 更新文档:https://github.com/tiangolo/fastapi/releases FastApi Github:https://github.com/tiangolo/fastapi +Typer 官方文档:https://typer.tiangolo.com/ """ from fastapi import FastAPI @@ -20,7 +21,7 @@ import importlib from core.logger import logger from core.exception import register_exception import typer -from scripts.initialize.initialize import InitializeData +from scripts.initialize.initialize import InitializeData, Environment import asyncio @@ -86,22 +87,26 @@ def run(): @shell_app.command() -def init(): +def init(env: Environment = Environment.pro): """ 初始化数据 + + @params name: 数据库环境 """ print("开始初始化数据") data = InitializeData() - asyncio.run(data.run()) + asyncio.run(data.run(env)) @shell_app.command() -def migrate(): +def migrate(env: Environment = Environment.pro): """ 将模型迁移到数据库,更新数据库表结构 + + @params name: 数据库环境 """ print("开始更新数据库表") - InitializeData().migrate_model() + InitializeData().migrate_model(env) if __name__ == '__main__': diff --git a/kinit-api/scripts/initialize/data/init.xlsx b/kinit-api/scripts/initialize/data/init.xlsx index 9512c7a63dc432eedde232a226da0d9570d70988..52e364e33cdda667f4ab94e00a9f2787d82b6f7f 100644 GIT binary patch delta 27331 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

iRO?afK3@6>Nzu|EJ{mjm=I+r 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%0D$-Ui~;%ylJ6|ki*k*Ak^BO~a{^M7Mm!EbYp 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 + import config from './config' + import { getToken } from '@/common/utils/auth' + + export default { + onLaunch: function() { + this.initApp() + }, + methods: { + // 初始化应用 + initApp() { + // 初始化应用配置 + this.$store.dispatch('InitConfig') + } + } + } + + + diff --git a/kinit-uni/LICENSE b/kinit-uni/LICENSE new file mode 100644 index 0000000..2c46dba --- /dev/null +++ b/kinit-uni/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 若依 + +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. diff --git a/kinit-uni/README.md b/kinit-uni/README.md new file mode 100644 index 0000000..c5f6853 --- /dev/null +++ b/kinit-uni/README.md @@ -0,0 +1,49 @@ + +## 若依平台简介 + +RuoYi App 移动解决方案,采用uniapp框架,一份代码多终端适配,同时支持APP、小程序、H5!实现了与[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue)、[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud)完美对接的移动解决方案!目前已经实现登录、我的、工作台、编辑资料、头像修改、密码修改、常见问题、关于我们等基础功能。 + +* 应用框架基于[uniapp](https://uniapp.dcloud.net.cn/),支持小程序、H5、Android和IOS。 +* 前端组件加入了[uni-ui](https://github.com/dcloudio/uni-ui),全端兼容的高性能UI框架。 + + +## 若依技术文档 + +- 官网网站:[http://ruoyi.vip](http://ruoyi.vip) +- 文档地址:[http://doc.ruoyi.vip](http://doc.ruoyi.vip) +- H5页体验:[http://h5.ruoyi.vip](http://h5.ruoyi.vip) +- 小程序体验 + +小程序演示 + +## 二次开发 + +是的,KINIT-UNI 是在若依-移动端的基础上进行的二次开发,在此感谢若依团队! + +二次开发中我们重新将接口请求改为了使用 `luch-request`,项目结构也有所改动,并且加入了 `uView UI` 组件,`uni-simple-router` 路由拦截。 + + + +开发环境:HBuilder X + +## 依赖插件 + +- [uni-read-pages](https://github.com/SilurianYang/uni-read-pages) :自动读取 `pages.json` 所有配置。 +- [uni-simple-router](https://hhyang.cn/v2/start/quickstart.html) :在uni-app中使用vue-router的方式进行跳转路由,路由拦截。 + +## 依赖组件 + +### color UI + +- 文档地址:http://docs.xzeu.com/ +- 源码地址:https://github.com/weilanwl/coloruicss +- 微信小程序:#小程序://ColorUI组件库/0YmCxm5PUBuChYJ + +该项目已在 2019 年停止维护,但因若依组件中有多处使用,所以在这里不做移除,新加入uView UI框架,两者不冲突 + +### uView UI + +- 源码地址:https://github.com/umicro/uView2.0 +- 文档地址:https://uviewui.com + +uView UI,是[uni-app](https://uniapp.dcloud.io/)全面兼容nvue的uni-app生态框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水 diff --git a/kinit-uni/common/request/api/login.js b/kinit-uni/common/request/api/login.js new file mode 100644 index 0000000..2fe5ef5 --- /dev/null +++ b/kinit-uni/common/request/api/login.js @@ -0,0 +1,17 @@ +import request from '@/common/request/request.js' + +// 登录方法 +export function login(telephone, password, method) { + const data = { + telephone, + password, + method, + platform: '1' + } + return request.post(`/auth/login/`, data) +} + +// 获取用户详细信息 +export function getInfo() { + return request.get(`/vadmin/auth/user/current/info/`) +} diff --git a/kinit-uni/common/request/api/vadmin/auth/user.js b/kinit-uni/common/request/api/vadmin/auth/user.js new file mode 100644 index 0000000..240e2f9 --- /dev/null +++ b/kinit-uni/common/request/api/vadmin/auth/user.js @@ -0,0 +1,16 @@ +import request from '@/common/request/request' + +// 更新当前用户基本信息 +export function updateCurrentUser(data) { + return request.post(`/vadmin/auth/user/current/update/info/`, data) +} + +// 重置当前用户密码 +export function postCurrentUserResetPassword(data) { + return request.post(`/vadmin/auth/user/current/reset/password/`, data) +} + +// 更新当前用户头像 +export function postCurrentUserUploadAvatar(filePath) { + return request.upload(`/vadmin/auth/user/current/update/avatar/`, {filePath: filePath, name: 'file'}) +} \ No newline at end of file diff --git a/kinit-uni/common/request/api/vadmin/system/dict.js b/kinit-uni/common/request/api/vadmin/system/dict.js new file mode 100644 index 0000000..457a42e --- /dev/null +++ b/kinit-uni/common/request/api/vadmin/system/dict.js @@ -0,0 +1,6 @@ +import request from '@/common/request/request.js' + +// 获取多个字典类型下的字典元素列表 +export function getDictTypeDetailsApi(data) { + return request.post(`/vadmin/system/dict/types/details/`, data) +} diff --git a/kinit-uni/common/request/api/vadmin/system/settings.js b/kinit-uni/common/request/api/vadmin/system/settings.js new file mode 100644 index 0000000..473dccd --- /dev/null +++ b/kinit-uni/common/request/api/vadmin/system/settings.js @@ -0,0 +1,6 @@ +import request from '@/common/request/request' + +// 获取系统配置分类 +export function getSystemSettingsClassifysApi(params) { + return request.get(`/vadmin/system/settings/classifys/`, {params: params}) +} \ No newline at end of file diff --git a/kinit-uni/common/request/errorCode.js b/kinit-uni/common/request/errorCode.js new file mode 100644 index 0000000..954019e --- /dev/null +++ b/kinit-uni/common/request/errorCode.js @@ -0,0 +1,6 @@ +export default { + "401": "认证失败,无法访问系统资源", + "403": "当前操作没有权限", + "404": "访问资源不存在", + "default": "系统未知错误,请反馈给管理员" +}; diff --git a/kinit-uni/common/request/request.js b/kinit-uni/common/request/request.js new file mode 100644 index 0000000..6cac558 --- /dev/null +++ b/kinit-uni/common/request/request.js @@ -0,0 +1,78 @@ +import luchRequest from '@/components/luch-request' // 使用npm +import config from '@/config.js'; +import errorCode from "@/common/request/errorCode"; +import { getToken } from '@/common/utils/auth' +import { toast, showConfirm } from '@/common/utils/common' +import store from '@/store' + +// luch-request插件官网:https://www.quanzhan.co/luch-request/guide/3.x/#%E5%85%A8%E5%B1%80%E8%AF%B7%E6%B1%82%E9%85%8D%E7%BD%AE +// 创建luchRequest实例 +console.log(config.baseUrl) +const http = new luchRequest({ + baseURL: config.baseUrl, + timeout: 20000, // 请求超时时间 + dataType: 'json', + custom: { + loading: true + }, + sslVerify: true, + header: {} +}) + + +// 请求拦截器 +http.interceptors.request.use( + config => { + // 在发送请求之前 + let token = getToken() + if (token) { + // 添加头信息,token验证 + config.header["Authorization"] = token + } + return config + }, + error => { + return Promise.reject(error) + } +) + +// 响应拦截器 +http.interceptors.response.use(res => { + // console.log("响应拦截器:", res) + // 未设置状态码则默认成功状态 + const code = res.data.code || 200; + // 获取错误信息 + const msg = res.data.message || errorCode[code] || errorCode["default"]; + if (code === 500) { + toast(msg) + return Promise.reject(new Error(msg)); + } else if (code === 401) { + showConfirm("登录状态已过期,您可以继续留在该页面,或者重新登录?").then(res => { + if (res.confirm) { + store.dispatch('LogOut') + } + }) + return Promise.reject("error"); + } else if (code !== 200) { + toast(msg) + return Promise.reject("error"); + } else { + return res.data; + } + }, + error => { + console.log("请求状态码服务器直接报错", error); + let { errMsg } = error; + if (errMsg == "request:fail") { + errMsg = "接口连接异常"; + } else if (errMsg == "request:fail timeout") { + errMsg = "接口连接超时"; + } else { + errMsg = error.data.message; + } + toast(errMsg) + return Promise.reject(error); + } +); + +export default http \ No newline at end of file diff --git a/kinit-uni/common/utils/auth.js b/kinit-uni/common/utils/auth.js new file mode 100644 index 0000000..9a7cc04 --- /dev/null +++ b/kinit-uni/common/utils/auth.js @@ -0,0 +1,13 @@ +const TokenKey = 'App-Token' + +export function getToken() { + return uni.getStorageSync(TokenKey) +} + +export function setToken(token) { + return uni.setStorageSync(TokenKey, token) +} + +export function removeToken() { + return uni.removeStorageSync(TokenKey) +} diff --git a/kinit-uni/common/utils/common.js b/kinit-uni/common/utils/common.js new file mode 100644 index 0000000..00d4137 --- /dev/null +++ b/kinit-uni/common/utils/common.js @@ -0,0 +1,54 @@ +/** +* 显示消息提示框 +* @param content 提示的标题 +*/ +export function toast(content) { + uni.showToast({ + icon: 'none', + title: content + }) +} + +/** +* 显示模态弹窗 +* @param content 提示的标题 +*/ +export function showConfirm(content) { + return new Promise((resolve, reject) => { + uni.showModal({ + title: '提示', + content: content, + cancelText: '取消', + confirmText: '确定', + success: function(res) { + resolve(res) + } + }) + }) +} + +/** +* 参数处理 +* @param params 参数 +*/ +export function tansParams(params) { + let result = '' + for (const propName of Object.keys(params)) { + const value = params[propName] + var part = encodeURIComponent(propName) + "=" + if (value !== null && value !== "" && typeof (value) !== "undefined") { + if (typeof value === 'object') { + for (const key of Object.keys(value)) { + if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') { + let params = propName + '[' + key + ']' + var subPart = encodeURIComponent(params) + "=" + result += subPart + encodeURIComponent(value[key]) + "&" + } + } + } else { + result += part + encodeURIComponent(value) + "&" + } + } + } + return result +} \ No newline at end of file diff --git a/kinit-uni/common/utils/constant.js b/kinit-uni/common/utils/constant.js new file mode 100644 index 0000000..e266577 --- /dev/null +++ b/kinit-uni/common/utils/constant.js @@ -0,0 +1,12 @@ +const constant = { + avatar: 'vuex_avatar', + name: 'vuex_name', + nickname: 'vuex_nickname', + telephone: 'vuex_telephone', + isUser: 'vuex_isUser', + roles: 'vuex_roles', + create_datetime: 'vuex_createDatetime', + permissions: 'vuex_permissions' + } + + export default constant diff --git a/kinit-uni/common/utils/cookies.js b/kinit-uni/common/utils/cookies.js new file mode 100644 index 0000000..0a49f98 --- /dev/null +++ b/kinit-uni/common/utils/cookies.js @@ -0,0 +1,80 @@ +const TokenKey = 'Admin-Token' + +// 获取客户端token +export function getToken() { + try { + const value = uni.getStorageSync(TokenKey); + if (value) { + return value; + } + return "" + } catch (e) { + // error + return "" + } +} + +// 设置客户端token +export function setToken(token) { + uni.setStorage({ + key: TokenKey, + data: token, + success: function (res) { + console.log('成功存储token'); + }, + fail:function(e){ + console.log(e) + console.log("存储token失败"); + } + }); +} + +// 删除客户端token +export function removeToken() { + uni.removeStorage({ + key: TokenKey, + success: function (res) { + console.log('成功删除token'); + } + }); +} + +// 获取客户端 +export function getStorage(key) { + try { + const value = uni.getStorageSync(key); + if (value) { + // console.log("成功获取到 Storage:", value); + return value; + } + return "" + } catch (e) { + // error + return "" + } +} + +// 设置客户端 Storage +export function setStorage(key, value) { + uni.setStorage({ + key: key, + data: value, + success: function (res) { + console.log('成功存储'); + }, + fail:function(e){ + console.log(e) + console.log("存储失败"); + } + }); +} + +// 删除客户端 Storage +export function removeStorage(key) { + uni.removeStorage({ + key: key, + success: function (res) { + console.log('成功删除Storage'); + } + }); +} \ No newline at end of file diff --git a/kinit-uni/common/utils/logs.js b/kinit-uni/common/utils/logs.js new file mode 100644 index 0000000..ec555d3 --- /dev/null +++ b/kinit-uni/common/utils/logs.js @@ -0,0 +1,30 @@ +var log = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null + +module.exports = { + debug() { + if (!log) return + log.debug.apply(log, arguments) + }, + info() { + if (!log) return + log.info.apply(log, arguments) + }, + warn() { + if (!log) return + log.warn.apply(log, arguments) + }, + error() { + if (!log) return + log.error.apply(log, arguments) + }, + setFilterMsg(msg) { // 从基础库2.7.3开始支持 + if (!log || !log.setFilterMsg) return + if (typeof msg !== 'string') return + log.setFilterMsg(msg) + }, + addFilterMsg(msg) { // 从基础库2.8.1开始支持 + if (!log || !log.addFilterMsg) return + if (typeof msg !== 'string') return + log.addFilterMsg(msg) + } +} \ No newline at end of file diff --git a/kinit-uni/common/utils/permission.js b/kinit-uni/common/utils/permission.js new file mode 100644 index 0000000..17969f2 --- /dev/null +++ b/kinit-uni/common/utils/permission.js @@ -0,0 +1,51 @@ +import store from '@/store' + +/** + * 字符权限校验 + * @param {Array} value 校验值 + * @returns {Boolean} + */ +export function checkPermi(value) { + if (value && value instanceof Array && value.length > 0) { + const permissions = store.getters && store.getters.permissions + const permissionDatas = value + const all_permission = "*:*:*" + + const hasPermission = permissions.some(permission => { + return all_permission === permission || permissionDatas.includes(permission) + }) + + if (!hasPermission) { + return false + } + return true + } else { + console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`) + return false + } +} + +/** + * 角色权限校验 + * @param {Array} value 校验值 + * @returns {Boolean} + */ +export function checkRole(value) { + if (value && value instanceof Array && value.length > 0) { + const roles = store.getters && store.getters.roles + const permissionRoles = value + const super_admin = "admin" + + const hasRole = roles.some(role => { + return super_admin === role || permissionRoles.includes(role) + }) + + if (!hasRole) { + return false + } + return true + } else { + console.error(`need roles! Like checkRole="['admin','editor']"`) + return false + } +} \ No newline at end of file diff --git a/kinit-uni/common/utils/postFile.js b/kinit-uni/common/utils/postFile.js new file mode 100644 index 0000000..903fdc9 --- /dev/null +++ b/kinit-uni/common/utils/postFile.js @@ -0,0 +1,39 @@ +/** + uniapp 上传文件到后台接口 + + 官方文档:https://uniapp.dcloud.io/api/request/network-file.html#uploadfile + 博客:https://www.jianshu.com/p/71ad2f45120c + */ + + +import { API_BASE_URL } from '@/common/setting/index' +import { getToken, removeToken, getStorage } from '@/common/utils/cookies' + + +// 单个文件上传 +export function uploadFile(api, file, data={}) { + return new Promise((resolve, reject) => { + uni.uploadFile({ + url: API_BASE_URL + api, + filePath: file, + name: 'file', + timeout: 60000, + formData: data, + header: { + ossign: getStorage("ossign"), + Authorization: getToken() + }, + success: (res) => { + let data = JSON.parse(res.data); + if (data.code !== 200) { + reject(data); + } + resolve(data); + }, + fail: (err) => { + console.log("上传失败", err); + reject(err); + } + }); + }) +} diff --git a/kinit-uni/common/utils/ruoyi.js b/kinit-uni/common/utils/ruoyi.js new file mode 100644 index 0000000..f358ad6 --- /dev/null +++ b/kinit-uni/common/utils/ruoyi.js @@ -0,0 +1,191 @@ +/** + * 通用js方法封装处理 + * Copyright (c) 2019 ruoyi + */ + +/** + * 获取任意日期 + * date: 时间戳 + * AddDayCount: 在时间戳的基础上加减天数 + * 示例: + * getDate(new Date(),-3).fullDate # 三天前的日期 + * getDate(new Date()).fullDate # 今天的日期 + * getDate(new Date(), 3).fullDate # 三天后的日期 + */ +export function getDate(date, AddDayCount = 0) { + if (!date) { + date = new Date() + } + if (typeof date !== 'object') { + date = date.replace(/-/g, '/') + } + const dd = new Date(date) + + dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 + + 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() + } +} + +// 日期格式化 +export function parseTime(time, pattern) { + if (arguments.length === 0 || !time) { + return null; + } + const format = pattern || "{y}-{m}-{d} {h}:{i}:{s}"; + let date; + if (typeof time === "object") { + date = time; + } else { + if ((typeof time === "string") && (/^[0-9]+$/.test(time))) { + time = parseInt(time); + } else if (typeof time === "string") { + time = time.replace(new RegExp(/-/gm), "/"); + } + if ((typeof time === "number") && (time.toString().length === 10)) { + time = time * 1000; + } + date = new Date(time); + } + const formatObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay() + }; + const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { + let value = formatObj[key]; + // Note: getDay() returns 0 on Sunday + if (key === "a") { return ["日", "一", "二", "三", "四", "五", "六"][value]; } + if (result.length > 0 && value < 10) { + value = "0" + value; + } + return value || 0; + }); + return time_str; +} + +// 表单重置 +export function resetForm(refName) { + if (this.$refs[refName]) { + this.$refs[refName].resetFields(); + } +} + +// 添加日期范围 +export function addDateRange(params, dateRange, propName) { + const search = JSON.parse(JSON.stringify(params)); + if (dateRange != null && dateRange !== "" && dateRange.length !== 0) { + search.as = JSON.stringify({ create_datetime__range: dateRange }); + } + return search; +} + +// 回显数据字典 +export function selectDictLabel(datas, value) { + var actions = []; + Object.keys(datas).some((key) => { + if (String(datas[key].dictValue) === ("" + String(value))) { + actions.push(datas[key].dictLabel); + return true; + } + }); + return actions.join(""); +} +// 获取字典默认值 +export function selectDictDefault(datas) { + var actions = []; + Object.keys(datas).some((key) => { + if (datas[key].is_default === true) { + actions.push(datas[key].dictValue); + return true; + } + }); + if (!actions[0] && datas[0]) { + actions.push(datas[0].dictValue); + } + return actions.join(""); +} + +// 回显数据字典(字符串数组) +export function selectDictLabels(datas, value, separator) { + var actions = []; + var currentSeparator = undefined === separator ? "," : separator; + var temp = value.split(currentSeparator); + Object.keys(value.split(currentSeparator)).some((val) => { + Object.keys(datas).some((key) => { + if (datas[key].dictValue == ("" + temp[val])) { + actions.push(datas[key].dictLabel + currentSeparator); + } + }); + }); + return actions.join("").substring(0, actions.join("").length - 1); +} + +// 转换字符串,undefined,null等转化为"" +export function praseStrEmpty(str) { + if (!str || str == "undefined" || str == "null") { + return ""; + } + return str; +} + +// js模仿微信朋友圈计算时间显示几天/几小时/几分钟/刚刚 +//datetime 格式为2019-11-22 12:23:59样式 +export function timeConversion(datetime) { //dateTimeStamp是一个时间毫秒,注意时间戳是秒的形式,在这个毫秒的基础上除以1000,就是十位数的时间戳。13位数的都是时间毫秒。 + // var dateTimeStamp = new Date(datetime.replace(/ /, 'T')).getTime()-8 * 60 * 60 * 1000;//这里要减去中国的时区8小时 + var dateTimeStamp = new Date(datetime.replace(/ /, 'T')).getTime();//这里不减去中国的时区8小时 + var minute = 1000 * 60; //把分,时,天,周,半个月,一个月用毫秒表示 + var hour = minute * 60; + var day = hour * 24; + var week = day * 7; + var halfamonth = day * 15; + var month = day * 30; + var now = new Date().getTime(); //获取当前时间毫秒 + var diffValue = now - dateTimeStamp; //时间差 + + if (diffValue < 0) { + return '刚刚'; + } + var minC = diffValue / minute; //计算时间差的分,时,天,周,月 + var hourC = diffValue / hour; + var dayC = diffValue / day; + var weekC = diffValue / week; + var monthC = diffValue / month; + var result = "2"; + if (monthC >= 1 && monthC <= 3) { + result = " " + parseInt(monthC) + "月前" + } else if (weekC >= 1 && weekC <= 3) { + result = " " + parseInt(weekC) + "周前" + } else if (dayC >= 1 && dayC <= 6) { + result = " " + parseInt(dayC) + "天前" + } else if (hourC >= 1 && hourC <= 23) { + result = " " + parseInt(hourC) + "小时前" + } else if (minC >= 1 && minC <= 59) { + result = " " + parseInt(minC) + "分钟前" + } else if (diffValue >= 0 && diffValue <= minute) { + result = "刚刚" + } else { + var datetime = new Date(); + datetime.setTime(dateTimeStamp); + var Nyear = datetime.getFullYear(); {} + var Nmonth = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1; + var Ndate = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate(); + var Nhour = datetime.getHours() < 10 ? "0" + datetime.getHours() : datetime.getHours(); + var Nminute = datetime.getMinutes() < 10 ? "0" + datetime.getMinutes() : datetime.getMinutes(); + var Nsecond = datetime.getSeconds() < 10 ? "0" + datetime.getSeconds() : datetime.getSeconds(); + result = Nyear + "-" + Nmonth + "-" + Ndate + } + return result; +} \ No newline at end of file diff --git a/kinit-uni/common/utils/storage.js b/kinit-uni/common/utils/storage.js new file mode 100644 index 0000000..dd5c38b --- /dev/null +++ b/kinit-uni/common/utils/storage.js @@ -0,0 +1,33 @@ +import constant from './constant' + +// 存储变量名 +let storageKey = 'storage_data' + +// 存储节点变量名 +let storageNodeKeys = [constant.avatar, constant.name, constant.roles, constant.permissions] + +// 存储的数据 +let storageData = uni.getStorageSync(storageKey) || {} + +const storage = { + set: function(key, value) { + if (storageNodeKeys.indexOf(key) != -1) { + let tmp = uni.getStorageSync(storageKey) + tmp = tmp ? tmp : {} + tmp[key] = value + uni.setStorageSync(storageKey, tmp) + } + }, + get: function(key) { + return storageData[key] || "" + }, + remove: function(key) { + delete storageData[key] + uni.setStorageSync(storageKey, storageData) + }, + clean: function() { + uni.removeStorageSync(storageKey) + } +} + +export default storage diff --git a/kinit-uni/common/utils/upload.js b/kinit-uni/common/utils/upload.js new file mode 100644 index 0000000..c775f0e --- /dev/null +++ b/kinit-uni/common/utils/upload.js @@ -0,0 +1,68 @@ +import store from '@/store' +import config from '@/config' +import { getToken } from '@/utils/auth' +import errorCode from '@/utils/errorCode' +import { toast, showConfirm, tansParams } from '@/common/utils/common' + +let timeout = 10000 +const baseUrl = config.baseUrl + +const upload = config => { + // 是否需要设置 token + const isToken = (config.headers || {}).isToken === false + config.header = config.header || {} + if (getToken() && !isToken) { + config.header['Authorization'] = 'Bearer ' + getToken() + } + // get请求映射params参数 + if (config.params) { + let url = config.url + '?' + tansParams(config.params) + url = url.slice(0, -1) + config.url = url + } + return new Promise((resolve, reject) => { + uni.uploadFile({ + timeout: config.timeout || timeout, + url: baseUrl + config.url, + filePath: config.filePath, + name: config.name || 'file', + header: config.header, + formData: config.formData, + success: (res) => { + let result = JSON.parse(res.data) + const code = result.code || 200 + const msg = errorCode[code] || result.msg || errorCode['default'] + if (code === 200) { + resolve(result) + } else if (code == 401) { + showConfirm("登录状态已过期,您可以继续留在该页面,或者重新登录?").then(res => { + if (res.confirm) { + store.dispatch('LogOut') + } + }) + reject('无效的会话,或者会话已过期,请重新登录。') + } else if (code === 500) { + toast(msg) + reject('500') + } else if (code !== 200) { + toast(msg) + reject(code) + } + }, + fail: (error) => { + let { message } = error + if (message == 'Network Error') { + message = '后端接口连接异常' + } else if (message.includes('timeout')) { + message = '系统接口请求超时' + } else if (message.includes('Request failed with status code')) { + message = '系统接口' + message.substr(message.length - 3) + '异常' + } + toast(message) + reject(error) + } + }) + }) +} + +export default upload diff --git a/kinit-uni/components/luch-request/history.md b/kinit-uni/components/luch-request/history.md new file mode 100644 index 0000000..e6aa36f --- /dev/null +++ b/kinit-uni/components/luch-request/history.md @@ -0,0 +1,57 @@ +## 3.0.7 (2021-09-04) + +1. Bug Fix: 修复通过 `Request.config` 设置全局参数,多个实例`config`存在共同引用bug + + +## 3.0.6 (2021-05-10) + +1. New Feature: APP端 增加`responseType`配置项 + +## 3.0.5 (2021-01-10) +### Features + +* [重要] APP不再支持`CONNECT`、`HEAD`、`TRACE`请求方式。[uni.request](https://uniapp.dcloud.io/api/request/request) +* [重要]全局默认`timeout`由`30000`ms,改为`60000`ms +* [重要]增加`index.d.ts`文件支持。感谢`Mr_Mao`的支持。github:`https://github.com/TuiMao233` +* [重要]网络请求相关接口 uni.request、uni.uploadFile、uni.downloadFile 支持 timeout 参数。 +* [重要]返回结果response 增加`fullPath`参数。 + +## 3.0.4 (2020-07-05) + +1. New Feature: request 方法增加 ` firstIpv4 `配置项 +1. New Feature: 增加 ` middleware `通用请求方法 + +## 3.0.3 (2020-06-16) + +1. Bug Fix: 修复` params ` 选项对数组格式化错误bug + +## 3.0.2 (2020-06-04) + +1. Bug Fix: 修复文件上传和request 配置缺少字段bug + +## 3.0.1 (2020-06-02) + +1. Bug Fix: 请求方式都为` GET `的bug + +## 3.0.0 (2020-06-01) + +1. New Feature: 支持多拦截器 +1. New Feature: 支持局部配置自定义验证器 + +## 2.0.1 (2020-05-01) + +1. Bug Fix: 修复多实例全局配置共用问题 + +## 2.0.0 (2020-04-24) + +1. New Feature: 增加 request ` withCredentials `选项(仅h5端支持) +1. New Feature: h5端 upload 增加 ` files ` ` file `选项。[uni.uploadFile](https://uniapp.dcloud.io/api/request/network-file?id=uploadfile "uni.uploadFile") +1. Enhancement: ` params ` 选项参数格式化方法使用axios 格式化方法 +1. Bug Fix: 对upload 返回data 为空字符串的情况容错 +1. Change: 修改header与全局合并方式。当前:header = Object.assign(全局,局部) + +## 0.0.0 (2019-05) + +1. luch-request created + + diff --git a/kinit-uni/components/luch-request/package.json b/kinit-uni/components/luch-request/package.json new file mode 100644 index 0000000..c994727 --- /dev/null +++ b/kinit-uni/components/luch-request/package.json @@ -0,0 +1,132 @@ +{ + "_from": "luch-request", + "_id": "luch-request@3.0.7", + "_inBundle": false, + "_integrity": "sha512-rYTgAO0CiAMjuotvwhtEREQ6mh/qdgYO2a+cKDv2VPnww/MdNaHMGMpsPY6VvJCOtfH7kV9lDujjuihhlu1xmg==", + "_location": "/luch-request", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "luch-request", + "name": "luch-request", + "escapedName": "luch-request", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/luch-request/-/luch-request-3.0.7.tgz", + "_shasum": "5894fc3d3ff62622b042c84953c1192ccdeafaa5", + "_spec": "luch-request", + "_where": "E:\\ktianc\\base\\vvandk", + "author": { + "name": "luch" + }, + "bugs": { + "url": "https://github.com/lei-mu/luch-request/issues" + }, + "bundleDependencies": false, + "config": { + "commitizen": { + "path": "./node_modules/cz-conventional-changelog" + }, + "ghooks": { + "commit-msg": "validate-commit-msg" + }, + "validate-commit-msg": { + "types": [ + "feat", + "fix", + "docs", + "style", + "refactor", + "perf", + "test", + "build", + "ci", + "chore", + "revert" + ], + "scope": { + "required": false, + "allowed": [ + "*" + ], + "validate": false, + "multiple": false + }, + "warnOnFail": false, + "maxSubjectLength": 100, + "subjectPattern": ".+", + "subjectPatternErrorMsg": "subject does not match subject pattern!", + "helpMessage": "", + "autoFix": false + } + }, + "dependencies": { + "@dcloudio/types": "^2.0.16" + }, + "deprecated": false, + "description": "基于Promise实现uni-app request 请求插件", + "devDependencies": { + "@babel/core": "^7.9.0", + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/preset-env": "^7.9.5", + "@vuepress/plugin-active-header-links": "^1.5.0", + "@vuepress/plugin-pwa": "^1.5.2", + "archiver": "^4.0.1", + "babel-eslint": "^10.1.0", + "babel-preset-es2015": "^6.24.1", + "commitizen": "^4.2.4", + "conventional-changelog-cli": "^2.1.1", + "cz-conventional-changelog": "^3.2.0", + "eslint": "^6.8.0", + "grunt": "^1.1.0", + "grunt-babel": "^8.0.0", + "load-grunt-tasks": "^5.1.0", + "node-zip": "^1.1.1", + "rollup-plugin-babel": "^4.4.0", + "rollup-plugin-commonjs": "^10.1.0", + "rollup-plugin-copy": "^3.3.0", + "rollup-plugin-eslint": "^7.0.0", + "rollup-plugin-json": "^4.0.0", + "rollup-plugin-live-server": "^1.0.3", + "rollup-plugin-node-resolve": "^5.2.0", + "rollup-plugin-replace": "^2.2.0", + "rollup-plugin-uglify": "^6.0.4", + "rollup-plugin-zip": "^1.0.0", + "validate-commit-msg": "^2.14.0", + "vuepress": "^1.4.1" + }, + "homepage": "https://www.quanzhan.co/luch-request/", + "keywords": [ + "uni-app", + "request", + "Promise", + "luch", + "luch-request" + ], + "license": "MIT", + "main": "src/lib/luch-request.js", + "name": "luch-request", + "repository": { + "type": "git", + "url": "git+https://github.com/lei-mu/luch-request.git" + }, + "scripts": { + "build": "rimraf DCloud && rollup -c --environment NODE_ENV:production", + "changelog": "conventional-changelog -p angular -i CHANGELOG.md -w -r 0", + "dev": "rollup -c", + "docs": "vuepress dev docs", + "docs:build": "vuepress build docs", + "test": "echo \"Error: no test specified\" && exit 1", + "watch": "rollup -c -w", + "zipD": "node node/zipDCloudPlugin.js && node node/zipDCloudDemo.js" + }, + "version": "3.0.7" +} diff --git a/kinit-uni/components/luch-request/readme.md b/kinit-uni/components/luch-request/readme.md new file mode 100644 index 0000000..0075a71 --- /dev/null +++ b/kinit-uni/components/luch-request/readme.md @@ -0,0 +1,260 @@ +# luch-request + +[![npm](https://img.shields.io/npm/l/luch-request "npm")](https://www.npmjs.com/package/luch-request "npm") +[![npm](https://img.shields.io/npm/v/luch-request "npm")](https://www.npmjs.com/package/luch-request "npm") +[![github](https://img.shields.io/github/package-json/v/lei-mu/luch-request "github")](https://github.com/lei-mu/luch-request "github") +[![github stars](https://img.shields.io/github/stars/lei-mu/luch-request.svg "github stars")](https://github.com/lei-mu/luch-request "github stars") +[![github forks](https://img.shields.io/github/forks/lei-mu/luch-request.svg "github forks")](https://github.com/lei-mu/luch-request "github forks") + +- 基于 Promise 对象实现更简单的 request 使用方式,支持请求和响应拦截 +- 支持全局挂载 +- 支持多个全局配置实例 +- 支持自定义验证器 +- 支持文件上传/下载 +- 支持task 操作 +- 支持自定义参数 +- 支持多拦截器 +- 对参数的处理比uni.request 更强 + +安装 +------------ +###### 使用npm + +``` javascript +npm i luch-request -S +``` +使用npm前阅读[快速上手](https://www.quanzhan.co/luch-request/handbook/#npm "快速上手") + + +###### github + +[github](https://github.com/lei-mu/luch-request "github") +安装依赖后 ` npm run build ` ,使用DCloud/luch-request 文件夹即可 + + +###### DCloud插件市场: + +[DCloud插件市场](https://ext.dcloud.net.cn/plugin?id=392 "DCloud插件市场") + +Example +------------ +创建实例 + +``` javascript +import Request from '@/utils/luch-request/index.js' // 下载的插件 +// import Request from 'luch-request' // 使用npm + +const http = new Request(); +``` + +执行` GET `请求 + +``` javascript +http.get('/user/login', {params: {userName: 'name', password: '123456'}}).then(res => { + +}).catch(err => { + +}) +// 局部修改配置,局部配置优先级高于全局配置 +http.get('/user/login', { + params: {userName: 'name', password: '123456'}, /* 会加在url上 */ + header: {}, /* 会与全局header合并,如有同名属性,局部覆盖全局 */ + dataType: 'json', + // 注:如果局部custom与全局custom有同名属性,则后面的属性会覆盖前面的属性,相当于Object.assign(全局,局部) + custom: {auth: true}, // 可以加一些自定义参数,在拦截器等地方使用。比如这里我加了一个auth,可在拦截器里拿到,如果true就传token + // #ifndef MP-ALIPAY + responseType: 'text', + // #endif + // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN + timeout: 60000, // H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序(2.10.0)、支付宝小程序 + // #endif + // #ifdef APP-PLUS + sslVerify: true, // 验证 ssl 证书 仅5+App安卓端支持(HBuilderX 2.3.3+) + // #endif + // #ifdef H5 + withCredentials: false, // 跨域请求时是否携带凭证(cookies)仅H5支持(HBuilderX 2.6.15+) + // #endif + // 返回当前请求的task, options。请勿在此处修改options。非必填 + getTask: (task, options) => { + // setTimeout(() => { + // task.abort() + // }, 500) + }, + // 自定义验证器。statusCode必存在。非必填 + validateStatus: function validateStatus(statusCode) { + return statusCode >= 200 && statusCode < 300 + } +}).then(res => { + +}).catch(err => { + +}) +``` +执行` POST `请求 + +``` javascript +http.post('/user/login', {userName: 'name', password: '123456'} ).then(res => { + +}).catch(err => { + +}) +// 局部修改配置,局部配置优先级高于全局配置 +http.post('/user/login', {userName: 'name', password: '123456'}, { + params: {}, /* 会加在url上 */ + header: {}, /* 会与全局header合并,如有同名属性,局部覆盖全局 */ + dataType: 'json', + // 注:如果局部custom与全局custom有同名属性,则后面的属性会覆盖前面的属性,相当于Object.assign(全局,局部) + custom: {auth: true}, // 可以加一些自定义参数,在拦截器等地方使用。比如这里我加了一个auth,可在拦截器里拿到,如果true就传token + // #ifndef MP-ALIPAY + responseType: 'text', + // #endif + // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN + timeout: 60000, // H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序(2.10.0)、支付宝小程序 + // #endif + // #ifdef APP-PLUS + sslVerify: true, // 验证 ssl 证书 仅5+App安卓端支持(HBuilderX 2.3.3+) + // #endif + // #ifdef H5 + withCredentials: false, // 跨域请求时是否携带凭证(cookies)仅H5支持(HBuilderX 2.6.15+) + // #endif + // 返回当前请求的task, options。请勿在此处修改options。非必填 + getTask: (task, options) => { + // setTimeout(() => { + // task.abort() + // }, 500) + }, + // 自定义验证器。statusCode必存在。非必填 + validateStatus: function validateStatus(statusCode) { + return statusCode >= 200 && statusCode < 300 + } +}).then(res => { + +}).catch(err => { + +}) +``` +执行` upload `请求 + +``` javascript + http.upload('api/upload/img', { + params: {}, /* 会加在url上 */ + // #ifdef APP-PLUS || H5 + files: [], // 需要上传的文件列表。使用 files 时,filePath 和 name 不生效。App、H5( 2.6.15+) + // #endif + // #ifdef MP-ALIPAY + fileType: 'image/video/audio', // 仅支付宝小程序,且必填。 + // #endif + filePath: '', // 要上传文件资源的路径。 + // 注:如果局部custom与全局custom有同名属性,则后面的属性会覆盖前面的属性,相当于Object.assign(全局,局部) + custom: {auth: true}, // 可以加一些自定义参数,在拦截器等地方使用。比如这里我加了一个auth,可在拦截器里拿到,如果true就传token + name: 'file', // 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容 + // #ifdef H5 || APP-PLUS + timeout: 60000, // H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+) + // #endif + header: {}, /* 会与全局header合并,如有同名属性,局部覆盖全局 */ + formData: {}, // HTTP 请求中其他额外的 form data + // 返回当前请求的task, options。请勿在此处修改options。非必填 + getTask: (task, options) => { + // task.onProgressUpdate((res) => { + // console.log('上传进度' + res.progress); + // console.log('已经上传的数据长度' + res.totalBytesSent); + // console.log('预期需要上传的数据总长度' + res.totalBytesExpectedToSend); + // + // // 测试条件,取消上传任务。 + // if (res.progress > 50) { + // uploadTask.abort(); + // } + // }); + } + }).then(res => { + // 返回的res.data 已经进行JSON.parse + }).catch(err => { + + }) +``` + +luch-request Guide +------------ +[luch-request 官网地址](https://www.quanzhan.co/luch-request/ "luch-request 官网地址") +
+[github](https://github.com/lei-mu/luch-request "github") + +友情链接 +------------ +#### vue-admin-beautiful +**vue-admin-beautiful** ——企业级、通用型中后台前端解决方案(基于vue/cli 4 最新版,同时支持电脑,手机,平板) + +**vue-admin-beautiful** ——在线演示 + +#### uView +uView 文档 ——超棒的移动跨端框架,文档详细,上手容易 + +常见问题 +------------ +1. 为什么会请求两次? + - 总有些小白问这些很那啥的问题,有两种可能,一种是‘post三次握手’,还有一种可能是`本地访问接口时跨域请求,所以浏览器会先发一个option 去预测能否成功,然后再发一个真正的请求`(自己观察请求头,Request Method,百度简单请求)。 +2. 如何跨域? + - 问的人不少,可以先百度了解一下。如何跨域 +3. post 怎么传不了数组的参数啊? + - uni-request
+ 可以点击看一下uni-request 的api 文档,data支持的文件类型只有Object/String/ArrayBuffer这个真跟我没啥关系 0.0 +4. TypeError: undefined is not an object (evaluating 'this.$http.get') + - 不知道为啥问的人这么多?太基础了,百度学习一下 export default 和export,头大。 + - `import { http } from '@/utils/luch-request/index.js'` +5. 什么参数需要在` setConfig ` 设置?什么参数需要在` request ` 拦截器设置? + - ` setConfig ` 适用于设置一些静态的/默认的参数;比如header 里的一些默认值、默认全局参数(全局请求配置)。` token ` 并不适合在这里设置。 + - ` interceptors.request ` 拦截器适用范围较广,但我仍然建议把一些静态的东西放在 ` setConfig ` 里。拦截器会在每次请求调用,而 ` setConfig ` 仅在调用时修改一遍。 + +tip +------------ +- nvue 不支持全局挂载 +- 当前的hbuilderx 版本号:beat-3.0.4 alpha-3.0.4 +- 推荐使用下载插件的方式使用。如果本插件完全满足你的需求可直接使用 ` npm `安装 +- license: MIT + + +issue +------------ +- DCloud: 有任何问题或者建议可以=> issue提交,先给个五星好评QAQ!! +- github: [Issues](https://github.com/lei-mu/luch-request/issues "Issues") + + +作者想说 +------------ +- 写代码很容易,为了让你们看懂写文档真的很lei 0.0 +- 最近发现有插件与我雷同,当初接触uni-app 就发现插件市场虽然有封装的不错的request库,但是都没有对多全局配置做处理,都是通过修改源码的方式配置。我首先推出通过class类,并仿照axios的api实现request请求库,并起名‘仿axios封装request网络请求库,支持拦截器全局配置’。他们虽然修改了部分代码,但是功能与性能并没有优化,反而使代码很冗余。希望能推出新的功能,和性能更加强悍的请求库。(2019-05) +- 任何形式的‘参考’、‘借鉴’,请标明作者 + ```javascript + luch-request + ``` +- 关于问问题 +1. 首先请善于利用搜索引擎,不管百度,还是Google,遇到问题请先自己尝试解决。自己尝试过无法解决,再问。 +2. 不要问类似为什么我的xx无法使用这种问题。请仔细阅读文档,检查代码,或者说明运行环境,把相关代码贴至评论或者发送至我的邮箱,还可以点击上面的issue提交,在里面提问,可能我在里面已经回答了。 +3. 我的代码如果真的出现bug,或者你有好的建议、需求,可以提issue,我看到后会立即解决 + +- 如何问问题 +1. 问问题之前请换位思考,如果自己要解决这个问题,需要哪些信息 +2. 仔细阅读文档,检查代码 +3. 说明运行环境,比如:app端 ios、android 版本号、手机机型、普遍现象还是个别现象(越详细越好) +4. 发出代码片段或者截图至邮箱(很重要) +5. 或者可以在上方的'issue提交' 里发出详细的问题描述 +6. 以上都觉得解决不了你的问题,可以加QQ:`370306150` + +个人网站 +------------ +- 欢迎大家都来踩一踩luch的博客 0.0 + + + + +土豪赞赏 +------------ +[![wechat 打赏](https://oss.quanzhan.co/images/common/my-wechat-qrcode.png?x-oss-process=image/resize,m_lfit,h_150,w_150 "wechat 打赏")](https://www.quanzhan.co/luch-request/acknowledgement/#前言 "wechat 打赏") +[![支付宝 打赏](https://oss.quanzhan.co/images/common/my-alipay-qrcode.jpg?x-oss-process=image/resize,m_lfit,h_150,w_150 "支付宝 打赏")](https://www.quanzhan.co/luch-request/acknowledgement/#前言 "支付宝 打赏") + +[打赏事宜具体说明](https://www.quanzhan.co/luch-request/acknowledgement/#前言 "打赏事宜具体说明") + + +###### 您的鼓励是我更新的动力 + +#### 创作不易,五星好评你懂得! diff --git a/kinit-uni/components/luch-request/src/lib/adapters/index.js b/kinit-uni/components/luch-request/src/lib/adapters/index.js new file mode 100644 index 0000000..5a478b5 --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/adapters/index.js @@ -0,0 +1,99 @@ +import buildURL from '../helpers/buildURL' +import buildFullPath from '../core/buildFullPath' +import settle from '../core/settle' +import { isUndefined } from "../utils" + +/** + * 返回可选值存在的配置 + * @param {Array} keys - 可选值数组 + * @param {Object} config2 - 配置 + * @return {{}} - 存在的配置项 + */ +const mergeKeys = (keys, config2) => { + let config = {} + keys.forEach(prop => { + if (!isUndefined(config2[prop])) { + config[prop] = config2[prop] + } + }) + return config +} +export default (config) => { + return new Promise((resolve, reject) => { + let fullPath = buildURL(buildFullPath(config.baseURL, config.url), config.params) + const _config = { + url: fullPath, + header: config.header, + complete: (response) => { + config.fullPath = fullPath + response.config = config + try { + // 对可能字符串不是json 的情况容错 + if (typeof response.data === 'string') { + response.data = JSON.parse(response.data) + } + // eslint-disable-next-line no-empty + } catch (e) { + } + settle(resolve, reject, response) + } + } + let requestTask + if (config.method === 'UPLOAD') { + delete _config.header['content-type'] + delete _config.header['Content-Type'] + let otherConfig = { + // #ifdef MP-ALIPAY + fileType: config.fileType, + // #endif + filePath: config.filePath, + name: config.name + } + const optionalKeys = [ + // #ifdef APP-PLUS || H5 + 'files', + // #endif + // #ifdef H5 + 'file', + // #endif + // #ifdef H5 || APP-PLUS + 'timeout', + // #endif + 'formData' + ] + requestTask = uni.uploadFile({..._config, ...otherConfig, ...mergeKeys(optionalKeys, config)}) + } else if (config.method === 'DOWNLOAD') { + // #ifdef H5 || APP-PLUS + if (!isUndefined(config['timeout'])) { + _config['timeout'] = config['timeout'] + } + // #endif + requestTask = uni.downloadFile(_config) + } else { + const optionalKeys = [ + 'data', + 'method', + // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN + 'timeout', + // #endif + 'dataType', + // #ifndef MP-ALIPAY + 'responseType', + // #endif + // #ifdef APP-PLUS + 'sslVerify', + // #endif + // #ifdef H5 + 'withCredentials', + // #endif + // #ifdef APP-PLUS + 'firstIpv4', + // #endif + ] + requestTask = uni.request({..._config,...mergeKeys(optionalKeys, config)}) + } + if (config.getTask) { + config.getTask(requestTask, config) + } + }) +} diff --git a/kinit-uni/components/luch-request/src/lib/core/InterceptorManager.js b/kinit-uni/components/luch-request/src/lib/core/InterceptorManager.js new file mode 100644 index 0000000..3ea0d5e --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/core/InterceptorManager.js @@ -0,0 +1,51 @@ +'use strict' + + +function InterceptorManager() { + this.handlers = [] +} + +/** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ +InterceptorManager.prototype.use = function use(fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }) + return this.handlers.length - 1 +} + +/** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ +InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null + } +} + +/** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ +InterceptorManager.prototype.forEach = function forEach(fn) { + this.handlers.forEach(h => { + if (h !== null) { + fn(h) + } + }) +} + +export default InterceptorManager diff --git a/kinit-uni/components/luch-request/src/lib/core/Request.js b/kinit-uni/components/luch-request/src/lib/core/Request.js new file mode 100644 index 0000000..43bb14c --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/core/Request.js @@ -0,0 +1,200 @@ +/** + * @Class Request + * @description luch-request http请求插件 + * @version 3.0.7 + * @Author lu-ch + * @Date 2021-09-04 + * @Email webwork.s@qq.com + * 文档: https://www.quanzhan.co/luch-request/ + * github: https://github.com/lei-mu/luch-request + * DCloud: http://ext.dcloud.net.cn/plugin?id=392 + * HBuilderX: beat-3.0.4 alpha-3.0.4 + */ + + +import dispatchRequest from './dispatchRequest' +import InterceptorManager from './InterceptorManager' +import mergeConfig from './mergeConfig' +import defaults from './defaults' +import { isPlainObject } from '../utils' +import clone from '../utils/clone' + +export default class Request { + /** + * @param {Object} arg - 全局配置 + * @param {String} arg.baseURL - 全局根路径 + * @param {Object} arg.header - 全局header + * @param {String} arg.method = [GET|POST|PUT|DELETE|CONNECT|HEAD|OPTIONS|TRACE] - 全局默认请求方式 + * @param {String} arg.dataType = [json] - 全局默认的dataType + * @param {String} arg.responseType = [text|arraybuffer] - 全局默认的responseType。支付宝小程序不支持 + * @param {Object} arg.custom - 全局默认的自定义参数 + * @param {Number} arg.timeout - 全局默认的超时时间,单位 ms。默认60000。H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序(2.10.0)、支付宝小程序 + * @param {Boolean} arg.sslVerify - 全局默认的是否验证 ssl 证书。默认true.仅App安卓端支持(HBuilderX 2.3.3+) + * @param {Boolean} arg.withCredentials - 全局默认的跨域请求时是否携带凭证(cookies)。默认false。仅H5支持(HBuilderX 2.6.15+) + * @param {Boolean} arg.firstIpv4 - 全DNS解析时优先使用ipv4。默认false。仅 App-Android 支持 (HBuilderX 2.8.0+) + * @param {Function(statusCode):Boolean} arg.validateStatus - 全局默认的自定义验证器。默认statusCode >= 200 && statusCode < 300 + */ + constructor(arg = {}) { + if (!isPlainObject(arg)) { + arg = {} + console.warn('设置全局参数必须接收一个Object') + } + this.config = clone({...defaults, ...arg}) + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + } + } + + /** + * @Function + * @param {Request~setConfigCallback} f - 设置全局默认配置 + */ + setConfig(f) { + this.config = f(this.config) + } + + middleware(config) { + config = mergeConfig(this.config, config) + let chain = [dispatchRequest, undefined] + let promise = Promise.resolve(config) + + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected) + }) + + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected) + }) + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()) + } + + return promise + } + + /** + * @Function + * @param {Object} config - 请求配置项 + * @prop {String} options.url - 请求路径 + * @prop {Object} options.data - 请求参数 + * @prop {Object} [options.responseType = config.responseType] [text|arraybuffer] - 响应的数据类型 + * @prop {Object} [options.dataType = config.dataType] - 如果设为 json,会尝试对返回的数据做一次 JSON.parse + * @prop {Object} [options.header = config.header] - 请求header + * @prop {Object} [options.method = config.method] - 请求方法 + * @returns {Promise} + */ + request(config = {}) { + return this.middleware(config) + } + + get(url, options = {}) { + return this.middleware({ + url, + method: 'GET', + ...options + }) + } + + post(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'POST', + ...options + }) + } + + // #ifndef MP-ALIPAY + put(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'PUT', + ...options + }) + } + + // #endif + + // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU + delete(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'DELETE', + ...options + }) + } + + // #endif + + // #ifdef H5 || MP-WEIXIN + connect(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'CONNECT', + ...options + }) + } + + // #endif + + // #ifdef H5 || MP-WEIXIN || MP-BAIDU + head(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'HEAD', + ...options + }) + } + + // #endif + + // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU + options(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'OPTIONS', + ...options + }) + } + + // #endif + + // #ifdef H5 || MP-WEIXIN + trace(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'TRACE', + ...options + }) + } + + // #endif + + upload(url, config = {}) { + config.url = url + config.method = 'UPLOAD' + return this.middleware(config) + } + + download(url, config = {}) { + config.url = url + config.method = 'DOWNLOAD' + return this.middleware(config) + } +} + + +/** + * setConfig回调 + * @return {Object} - 返回操作后的config + * @callback Request~setConfigCallback + * @param {Object} config - 全局默认config + */ diff --git a/kinit-uni/components/luch-request/src/lib/core/buildFullPath.js b/kinit-uni/components/luch-request/src/lib/core/buildFullPath.js new file mode 100644 index 0000000..f2852f4 --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/core/buildFullPath.js @@ -0,0 +1,20 @@ +'use strict' + +import isAbsoluteURL from '../helpers/isAbsoluteURL' +import combineURLs from '../helpers/combineURLs' + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path + */ +export default function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL) + } + return requestedURL +} diff --git a/kinit-uni/components/luch-request/src/lib/core/defaults.js b/kinit-uni/components/luch-request/src/lib/core/defaults.js new file mode 100644 index 0000000..38afc3a --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/core/defaults.js @@ -0,0 +1,30 @@ +/** + * 默认的全局配置 + */ + + +export default { + baseURL: '', + header: {}, + method: 'GET', + dataType: 'json', + // #ifndef MP-ALIPAY + responseType: 'text', + // #endif + custom: {}, + // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN + timeout: 60000, + // #endif + // #ifdef APP-PLUS + sslVerify: true, + // #endif + // #ifdef H5 + withCredentials: false, + // #endif + // #ifdef APP-PLUS + firstIpv4: false, + // #endif + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300 + } +} diff --git a/kinit-uni/components/luch-request/src/lib/core/dispatchRequest.js b/kinit-uni/components/luch-request/src/lib/core/dispatchRequest.js new file mode 100644 index 0000000..c5f2c85 --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/core/dispatchRequest.js @@ -0,0 +1,6 @@ +import adapter from '../adapters/index' + + +export default (config) => { + return adapter(config) +} diff --git a/kinit-uni/components/luch-request/src/lib/core/mergeConfig.js b/kinit-uni/components/luch-request/src/lib/core/mergeConfig.js new file mode 100644 index 0000000..a3ccbf7 --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/core/mergeConfig.js @@ -0,0 +1,103 @@ +import {deepMerge, isUndefined} from '../utils' + +/** + * 合并局部配置优先的配置,如果局部有该配置项则用局部,如果全局有该配置项则用全局 + * @param {Array} keys - 配置项 + * @param {Object} globalsConfig - 当前的全局配置 + * @param {Object} config2 - 局部配置 + * @return {{}} + */ +const mergeKeys = (keys, globalsConfig, config2) => { + let config = {} + keys.forEach(prop => { + if (!isUndefined(config2[prop])) { + config[prop] = config2[prop] + } else if (!isUndefined(globalsConfig[prop])) { + config[prop] = globalsConfig[prop] + } + }) + return config +} +/** + * + * @param globalsConfig - 当前实例的全局配置 + * @param config2 - 当前的局部配置 + * @return - 合并后的配置 + */ +export default (globalsConfig, config2 = {}) => { + const method = config2.method || globalsConfig.method || 'GET' + let config = { + baseURL: globalsConfig.baseURL || '', + method: method, + url: config2.url || '', + params: config2.params || {}, + custom: {...(globalsConfig.custom || {}), ...(config2.custom || {})}, + header: deepMerge(globalsConfig.header || {}, config2.header || {}) + } + const defaultToConfig2Keys = ['getTask', 'validateStatus'] + config = {...config, ...mergeKeys(defaultToConfig2Keys, globalsConfig, config2)} + + // eslint-disable-next-line no-empty + if (method === 'DOWNLOAD') { + // #ifdef H5 || APP-PLUS + if (!isUndefined(config2.timeout)) { + config['timeout'] = config2['timeout'] + } else if (!isUndefined(globalsConfig.timeout)) { + config['timeout'] = globalsConfig['timeout'] + } + // #endif + } else if (method === 'UPLOAD') { + delete config.header['content-type'] + delete config.header['Content-Type'] + const uploadKeys = [ + // #ifdef APP-PLUS || H5 + 'files', + // #endif + // #ifdef MP-ALIPAY + 'fileType', + // #endif + // #ifdef H5 + 'file', + // #endif + 'filePath', + 'name', + // #ifdef H5 || APP-PLUS + 'timeout', + // #endif + 'formData', + ] + uploadKeys.forEach(prop => { + if (!isUndefined(config2[prop])) { + config[prop] = config2[prop] + } + }) + // #ifdef H5 || APP-PLUS + if (isUndefined(config.timeout) && !isUndefined(globalsConfig.timeout)) { + config['timeout'] = globalsConfig['timeout'] + } + // #endif + } else { + const defaultsKeys = [ + 'data', + // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN + 'timeout', + // #endif + 'dataType', + // #ifndef MP-ALIPAY + 'responseType', + // #endif + // #ifdef APP-PLUS + 'sslVerify', + // #endif + // #ifdef H5 + 'withCredentials', + // #endif + // #ifdef APP-PLUS + 'firstIpv4', + // #endif + ] + config = {...config, ...mergeKeys(defaultsKeys, globalsConfig, config2)} + } + + return config +} diff --git a/kinit-uni/components/luch-request/src/lib/core/settle.js b/kinit-uni/components/luch-request/src/lib/core/settle.js new file mode 100644 index 0000000..b2f1659 --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/core/settle.js @@ -0,0 +1,16 @@ +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ +export default function settle(resolve, reject, response) { + const validateStatus = response.config.validateStatus + const status = response.statusCode + if (status && (!validateStatus || validateStatus(status))) { + resolve(response) + } else { + reject(response) + } +} diff --git a/kinit-uni/components/luch-request/src/lib/helpers/buildURL.js b/kinit-uni/components/luch-request/src/lib/helpers/buildURL.js new file mode 100644 index 0000000..d26dc30 --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/helpers/buildURL.js @@ -0,0 +1,69 @@ +'use strict' + +import * as utils from './../utils' + +function encode(val) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']') +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ +export default function buildURL(url, params) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url + } + + var serializedParams + if (utils.isURLSearchParams(params)) { + serializedParams = params.toString() + } else { + var parts = [] + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return + } + + if (utils.isArray(val)) { + key = key + '[]' + } else { + val = [val] + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString() + } else if (utils.isObject(v)) { + v = JSON.stringify(v) + } + parts.push(encode(key) + '=' + encode(v)) + }) + }) + + serializedParams = parts.join('&') + } + + if (serializedParams) { + var hashmarkIndex = url.indexOf('#') + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex) + } + + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams + } + + return url +} diff --git a/kinit-uni/components/luch-request/src/lib/helpers/combineURLs.js b/kinit-uni/components/luch-request/src/lib/helpers/combineURLs.js new file mode 100644 index 0000000..7b9d1ef --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/helpers/combineURLs.js @@ -0,0 +1,14 @@ +'use strict' + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ +export default function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL +} diff --git a/kinit-uni/components/luch-request/src/lib/helpers/isAbsoluteURL.js b/kinit-uni/components/luch-request/src/lib/helpers/isAbsoluteURL.js new file mode 100644 index 0000000..2a82517 --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/helpers/isAbsoluteURL.js @@ -0,0 +1,14 @@ +'use strict' + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +export default function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url) +} diff --git a/kinit-uni/components/luch-request/src/lib/luch-request.d.ts b/kinit-uni/components/luch-request/src/lib/luch-request.d.ts new file mode 100644 index 0000000..e939ce1 --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/luch-request.d.ts @@ -0,0 +1,116 @@ +type AnyObject = Record +type HttpPromise = Promise>; +type Tasks = UniApp.RequestTask | UniApp.UploadTask | UniApp.DownloadTask +export interface RequestTask { + abort: () => void; + offHeadersReceived: () => void; + onHeadersReceived: () => void; +} +export interface HttpRequestConfig { + /** 请求基地址 */ + baseURL?: string; + /** 请求服务器接口地址 */ + url?: string; + + /** 请求查询参数,自动拼接为查询字符串 */ + params?: AnyObject; + /** 请求体参数 */ + data?: AnyObject; + + /** 文件对应的 key */ + name?: string; + /** HTTP 请求中其他额外的 form data */ + formData?: AnyObject; + /** 要上传文件资源的路径。 */ + filePath?: string; + /** 需要上传的文件列表。使用 files 时,filePath 和 name 不生效,App、H5( 2.6.15+) */ + files?: Array<{ + name?: string; + file?: File; + uri: string; + }>; + /** 要上传的文件对象,仅H5(2.6.15+)支持 */ + file?: File; + + /** 请求头信息 */ + header?: AnyObject; + /** 请求方式 */ + method?: "GET" | "POST" | "PUT" | "DELETE" | "CONNECT" | "HEAD" | "OPTIONS" | "TRACE" | "UPLOAD" | "DOWNLOAD"; + /** 如果设为 json,会尝试对返回的数据做一次 JSON.parse */ + dataType?: string; + /** 设置响应的数据类型,支付宝小程序不支持 */ + responseType?: "text" | "arraybuffer"; + /** 自定义参数 */ + custom?: AnyObject; + /** 超时时间,仅微信小程序(2.10.0)、支付宝小程序支持 */ + timeout?: number; + /** DNS解析时优先使用ipv4,仅 App-Android 支持 (HBuilderX 2.8.0+) */ + firstIpv4?: boolean; + /** 验证 ssl 证书 仅5+App安卓端支持(HBuilderX 2.3.3+) */ + sslVerify?: boolean; + /** 跨域请求时是否携带凭证(cookies)仅H5支持(HBuilderX 2.6.15+) */ + withCredentials?: boolean; + + /** 返回当前请求的task, options。请勿在此处修改options。 */ + getTask?: (task: T, options: HttpRequestConfig) => void; + /** 全局自定义验证器 */ + validateStatus?: (statusCode: number) => boolean | void; +} +export interface HttpResponse { + config: HttpRequestConfig; + statusCode: number; + cookies: Array; + data: T; + errMsg: string; + header: AnyObject; +} +export interface HttpUploadResponse { + config: HttpRequestConfig; + statusCode: number; + data: T; + errMsg: string; +} +export interface HttpDownloadResponse extends HttpResponse { + tempFilePath: string; +} +export interface HttpError { + config: HttpRequestConfig; + statusCode?: number; + cookies?: Array; + data?: any; + errMsg: string; + header?: AnyObject; +} +export interface HttpInterceptorManager { + use( + onFulfilled?: (config: V) => Promise | V, + onRejected?: (config: E) => Promise | E + ): void; + eject(id: number): void; +} +export abstract class HttpRequestAbstract { + constructor(config?: HttpRequestConfig); + config: HttpRequestConfig; + interceptors: { + request: HttpInterceptorManager; + response: HttpInterceptorManager; + } + middleware(config: HttpRequestConfig): HttpPromise; + request(config: HttpRequestConfig): HttpPromise; + get(url: string, config?: HttpRequestConfig): HttpPromise; + upload(url: string, config?: HttpRequestConfig): HttpPromise; + delete(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise; + head(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise; + post(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise; + put(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise; + connect(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise; + options(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise; + trace(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise; + + download(url: string, config?: HttpRequestConfig): Promise; + + setConfig(onSend: (config: HttpRequestConfig) => HttpRequestConfig): void; +} + +declare class HttpRequest extends HttpRequestAbstract { } +export default HttpRequest; diff --git a/kinit-uni/components/luch-request/src/lib/luch-request.js b/kinit-uni/components/luch-request/src/lib/luch-request.js new file mode 100644 index 0000000..d8fe348 --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/luch-request.js @@ -0,0 +1,2 @@ +import Request from './core/Request' +export default Request diff --git a/kinit-uni/components/luch-request/src/lib/utils.js b/kinit-uni/components/luch-request/src/lib/utils.js new file mode 100644 index 0000000..0b5bf21 --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/utils.js @@ -0,0 +1,135 @@ +'use strict' + +// utils is a library of generic helper functions non-specific to axios + +var toString = Object.prototype.toString + +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ +export function isArray (val) { + return toString.call(val) === '[object Array]' +} + + +/** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ +export function isObject (val) { + return val !== null && typeof val === 'object' +} + +/** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ +export function isDate (val) { + return toString.call(val) === '[object Date]' +} + +/** + * Determine if a value is a URLSearchParams object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +export function isURLSearchParams (val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams +} + + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ +export function forEach (obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return + } + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj] + } + + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj) + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj) + } + } + } +} + +/** + * 是否为boolean 值 + * @param val + * @returns {boolean} + */ +export function isBoolean(val) { + return typeof val === 'boolean' +} + +/** + * 是否为真正的对象{} new Object + * @param {any} obj - 检测的对象 + * @returns {boolean} + */ +export function isPlainObject(obj) { + return Object.prototype.toString.call(obj) === '[object Object]' +} + + + +/** + * Function equal to merge with the difference being that no reference + * to original objects is kept. + * + * @see merge + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ +export function deepMerge(/* obj1, obj2, obj3, ... */) { + let result = {} + function assignValue(val, key) { + if (typeof result[key] === 'object' && typeof val === 'object') { + result[key] = deepMerge(result[key], val) + } else if (typeof val === 'object') { + result[key] = deepMerge({}, val) + } else { + result[key] = val + } + } + for (let i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue) + } + return result +} + +export function isUndefined (val) { + return typeof val === 'undefined' +} diff --git a/kinit-uni/components/luch-request/src/lib/utils/clone.js b/kinit-uni/components/luch-request/src/lib/utils/clone.js new file mode 100644 index 0000000..2fee704 --- /dev/null +++ b/kinit-uni/components/luch-request/src/lib/utils/clone.js @@ -0,0 +1,264 @@ +/* eslint-disable */ +var clone = (function() { + 'use strict'; + + function _instanceof(obj, type) { + return type != null && obj instanceof type; + } + + var nativeMap; + try { + nativeMap = Map; + } catch(_) { + // maybe a reference error because no `Map`. Give it a dummy value that no + // value will ever be an instanceof. + nativeMap = function() {}; + } + + var nativeSet; + try { + nativeSet = Set; + } catch(_) { + nativeSet = function() {}; + } + + var nativePromise; + try { + nativePromise = Promise; + } catch(_) { + nativePromise = function() {}; + } + + /** + * Clones (copies) an Object using deep copying. + * + * This function supports circular references by default, but if you are certain + * there are no circular references in your object, you can save some CPU time + * by calling clone(obj, false). + * + * Caution: if `circular` is false and `parent` contains circular references, + * your program may enter an infinite loop and crash. + * + * @param `parent` - the object to be cloned + * @param `circular` - set to true if the object to be cloned may contain + * circular references. (optional - true by default) + * @param `depth` - set to a number if the object is only to be cloned to + * a particular depth. (optional - defaults to Infinity) + * @param `prototype` - sets the prototype to be used when cloning an object. + * (optional - defaults to parent prototype). + * @param `includeNonEnumerable` - set to true if the non-enumerable properties + * should be cloned as well. Non-enumerable properties on the prototype + * chain will be ignored. (optional - false by default) + */ + function clone(parent, circular, depth, prototype, includeNonEnumerable) { + if (typeof circular === 'object') { + depth = circular.depth; + prototype = circular.prototype; + includeNonEnumerable = circular.includeNonEnumerable; + circular = circular.circular; + } + // maintain two arrays for circular references, where corresponding parents + // and children have the same index + var allParents = []; + var allChildren = []; + + var useBuffer = typeof Buffer != 'undefined'; + + if (typeof circular == 'undefined') + circular = true; + + if (typeof depth == 'undefined') + depth = Infinity; + + // recurse this function so we don't reset allParents and allChildren + function _clone(parent, depth) { + // cloning null always returns null + if (parent === null) + return null; + + if (depth === 0) + return parent; + + var child; + var proto; + if (typeof parent != 'object') { + return parent; + } + + if (_instanceof(parent, nativeMap)) { + child = new nativeMap(); + } else if (_instanceof(parent, nativeSet)) { + child = new nativeSet(); + } else if (_instanceof(parent, nativePromise)) { + child = new nativePromise(function (resolve, reject) { + parent.then(function(value) { + resolve(_clone(value, depth - 1)); + }, function(err) { + reject(_clone(err, depth - 1)); + }); + }); + } else if (clone.__isArray(parent)) { + child = []; + } else if (clone.__isRegExp(parent)) { + child = new RegExp(parent.source, __getRegExpFlags(parent)); + if (parent.lastIndex) child.lastIndex = parent.lastIndex; + } else if (clone.__isDate(parent)) { + child = new Date(parent.getTime()); + } else if (useBuffer && Buffer.isBuffer(parent)) { + if (Buffer.from) { + // Node.js >= 5.10.0 + child = Buffer.from(parent); + } else { + // Older Node.js versions + child = new Buffer(parent.length); + parent.copy(child); + } + return child; + } else if (_instanceof(parent, Error)) { + child = Object.create(parent); + } else { + if (typeof prototype == 'undefined') { + proto = Object.getPrototypeOf(parent); + child = Object.create(proto); + } + else { + child = Object.create(prototype); + proto = prototype; + } + } + + if (circular) { + var index = allParents.indexOf(parent); + + if (index != -1) { + return allChildren[index]; + } + allParents.push(parent); + allChildren.push(child); + } + + if (_instanceof(parent, nativeMap)) { + parent.forEach(function(value, key) { + var keyChild = _clone(key, depth - 1); + var valueChild = _clone(value, depth - 1); + child.set(keyChild, valueChild); + }); + } + if (_instanceof(parent, nativeSet)) { + parent.forEach(function(value) { + var entryChild = _clone(value, depth - 1); + child.add(entryChild); + }); + } + + for (var i in parent) { + var attrs = Object.getOwnPropertyDescriptor(parent, i); + if (attrs) { + child[i] = _clone(parent[i], depth - 1); + } + + try { + var objProperty = Object.getOwnPropertyDescriptor(parent, i); + if (objProperty.set === 'undefined') { + // no setter defined. Skip cloning this property + continue; + } + child[i] = _clone(parent[i], depth - 1); + } catch(e){ + if (e instanceof TypeError) { + // when in strict mode, TypeError will be thrown if child[i] property only has a getter + // we can't do anything about this, other than inform the user that this property cannot be set. + continue + } else if (e instanceof ReferenceError) { + //this may happen in non strict mode + continue + } + } + + } + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(parent); + for (var i = 0; i < symbols.length; i++) { + // Don't need to worry about cloning a symbol because it is a primitive, + // like a number or string. + var symbol = symbols[i]; + var descriptor = Object.getOwnPropertyDescriptor(parent, symbol); + if (descriptor && !descriptor.enumerable && !includeNonEnumerable) { + continue; + } + child[symbol] = _clone(parent[symbol], depth - 1); + Object.defineProperty(child, symbol, descriptor); + } + } + + if (includeNonEnumerable) { + var allPropertyNames = Object.getOwnPropertyNames(parent); + for (var i = 0; i < allPropertyNames.length; i++) { + var propertyName = allPropertyNames[i]; + var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName); + if (descriptor && descriptor.enumerable) { + continue; + } + child[propertyName] = _clone(parent[propertyName], depth - 1); + Object.defineProperty(child, propertyName, descriptor); + } + } + + return child; + } + + return _clone(parent, depth); + } + + /** + * Simple flat clone using prototype, accepts only objects, usefull for property + * override on FLAT configuration object (no nested props). + * + * USE WITH CAUTION! This may not behave as you wish if you do not know how this + * works. + */ + clone.clonePrototype = function clonePrototype(parent) { + if (parent === null) + return null; + + var c = function () {}; + c.prototype = parent; + return new c(); + }; + +// private utility functions + + function __objToStr(o) { + return Object.prototype.toString.call(o); + } + clone.__objToStr = __objToStr; + + function __isDate(o) { + return typeof o === 'object' && __objToStr(o) === '[object Date]'; + } + clone.__isDate = __isDate; + + function __isArray(o) { + return typeof o === 'object' && __objToStr(o) === '[object Array]'; + } + clone.__isArray = __isArray; + + function __isRegExp(o) { + return typeof o === 'object' && __objToStr(o) === '[object RegExp]'; + } + clone.__isRegExp = __isRegExp; + + function __getRegExpFlags(re) { + var flags = ''; + if (re.global) flags += 'g'; + if (re.ignoreCase) flags += 'i'; + if (re.multiline) flags += 'm'; + return flags; + } + clone.__getRegExpFlags = __getRegExpFlags; + + return clone; +})(); + +export default clone diff --git a/kinit-uni/components/uni-section/uni-section.vue b/kinit-uni/components/uni-section/uni-section.vue new file mode 100644 index 0000000..9a52e0b --- /dev/null +++ b/kinit-uni/components/uni-section/uni-section.vue @@ -0,0 +1,167 @@ + + + + diff --git a/kinit-uni/config.js b/kinit-uni/config.js new file mode 100644 index 0000000..fd48671 --- /dev/null +++ b/kinit-uni/config.js @@ -0,0 +1,18 @@ +// 应用全局配置 +module.exports = { + // 测试环境 + // baseUrl: 'http://127.0.0.1:9000', + // 生产环境 + baseUrl: 'https://api.kinit.ktianc.top', + // 应用信息 + appInfo: { + // 应用版本 + version: "1.0.0", + // 官方网站 + siteUrl: "https://gitee.com/ktianc/kinit", + // 隐私政策,不支持本地路径 + privacy: "http://kinit.ktianc.top/docs/privacy", + // 用户协议,不支持本地路径 + agreement: "http://kinit.ktianc.top/docs/agreement" + } +} diff --git a/kinit-uni/main.js b/kinit-uni/main.js new file mode 100644 index 0000000..7a28ed2 --- /dev/null +++ b/kinit-uni/main.js @@ -0,0 +1,57 @@ +import Vue from 'vue' +import App from './App' +import store from './store' // store +import plugins from './plugins' // plugins +import {router,RouterMount} from './permission.js' // 路由拦截 +import uView from "uview-ui" + +Vue.use(uView) +Vue.use(router) +Vue.use(plugins) + +// 调用setConfig方法,方法内部会进行对象属性深度合并,可以放心嵌套配置 +// 文档:https://www.uviewui.com/components/setting.html +// 配置后,很多组件的默认尺寸就变了,需要手动调整,不熟悉不建议开启 +// 需要在Vue.use(uView)之后执行 +uni.$u.setConfig({ + // 修改$u.config对象的属性 + config: { + // 修改默认单位为rpx,相当于执行 uni.$u.config.unit = 'rpx' + unit: 'rpx' + }, + // 修改$u.props对象的属性 + props: { + // 修改radio组件的size参数的默认值,相当于执行 uni.$u.props.radio.size = 30 + radio: { + size: 33, + labelSize: 30 + }, + button: { + loadingSize: 28 + }, + text: { + size: 30, + color: '#000' + } + // 其他组件属性配置 + // ...... + } +}) + +Vue.config.productionTip = false +Vue.prototype.$store = store + +App.mpType = 'app' + +const app = new Vue({ + ...App +}) + +//v1.3.5起 H5端 你应该去除原有的app.$mount();使用路由自带的渲染方式 +// #ifdef H5 + RouterMount(app, router, '#app') +// #endif + +// #ifndef H5 + app.$mount(); //为了兼容小程序及app端必须这样写才有效果 +// #endif diff --git a/kinit-uni/manifest.json b/kinit-uni/manifest.json new file mode 100644 index 0000000..7031a74 --- /dev/null +++ b/kinit-uni/manifest.json @@ -0,0 +1,65 @@ +{ + "name" : "kinit-uni", + "appid" : "__UNI__9D006F9", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + "app-plus" : { + "usingComponents" : true, + "nvueCompiler" : "uni-app", + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + "modules" : {}, + "distribute" : { + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "ios" : {}, + "sdkConfigs" : {} + } + }, + "quickapp" : {}, + "mp-weixin" : { + "appid" : "wxa510d7a34a124349", + "setting" : { + "urlCheck" : false, + "es6" : false, + "minified" : true, + "postcss" : true + }, + "optimization" : { + "subPackages" : true + }, + "usingComponents" : true + }, + "vueVersion" : "2", + "h5" : { + "template" : "static/index.html", + "title" : "Kinit", + "router" : { + "mode" : "hash", + "base" : "./" + } + } +} diff --git a/kinit-uni/node_modules.zip b/kinit-uni/node_modules.zip new file mode 100644 index 0000000000000000000000000000000000000000..1a41e2ab3d7e49b546710252cb0c1ebacba118c8 GIT binary patch literal 627634 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 ViDi% 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�PPco-yb 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

    3Z#;H~ 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�H8THc(2)wo{CqllLPrMtE0D}ae&joi3{p}E^ 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μeGPp3sLxj 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 z%0D-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�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 Bh}QrB literal 0 HcmV?d00001 diff --git a/kinit-uni/package.json b/kinit-uni/package.json new file mode 100644 index 0000000..f60d4e0 --- /dev/null +++ b/kinit-uni/package.json @@ -0,0 +1,7 @@ +{ + "dependencies": { + "uni-read-pages": "^1.0.5", + "uni-simple-router": "^2.0.8-beta.3", + "uview-ui": "^2.0.34" + } +} diff --git a/kinit-uni/pages.json b/kinit-uni/pages.json new file mode 100644 index 0000000..f7552ac --- /dev/null +++ b/kinit-uni/pages.json @@ -0,0 +1,144 @@ +{ + "easycom": { + "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" + }, + "pages": [ + { + "path": "pages/login", + "meta":{ + "loginAuth": false + }, + "style": { + "navigationBarTitleText": "登录" + } + }, { + "path": "pages/index", + "meta":{ + "loginAuth": true + }, + "style": { + "navigationBarTitleText": "Kinit 移动端框架" + } + }, { + "path": "pages/work/index", + "meta":{ + "loginAuth": true + }, + "style": { + "navigationBarTitleText": "工作台" + } + }, { + "path": "pages/mine/index", + "meta":{ + "loginAuth": true + }, + "style": { + "navigationBarTitleText": "我的" + } + }, { + "path": "pages/mine/avatar/index", + "meta":{ + "loginAuth": true + }, + "style": { + "navigationBarTitleText": "修改头像" + } + }, { + "path": "pages/mine/info/index", + "meta":{ + "loginAuth": true + }, + "style": { + "navigationBarTitleText": "个人信息" + } + }, { + "path": "pages/mine/info/edit", + "meta":{ + "loginAuth": true + }, + "style": { + "navigationBarTitleText": "编辑资料" + } + }, { + "path": "pages/mine/pwd/index", + "meta":{ + "loginAuth": true + }, + "style": { + "navigationBarTitleText": "修改密码" + } + }, { + "path": "pages/mine/setting/index", + "meta":{ + "loginAuth": true + }, + "style": { + "navigationBarTitleText": "应用设置" + } + }, { + "path": "pages/mine/help/index", + "meta":{ + "loginAuth": true + }, + "style": { + "navigationBarTitleText": "常见问题" + } + }, { + "path": "pages/mine/about/index", + "meta":{ + "loginAuth": true + }, + "style": { + "navigationBarTitleText": "关于我们" + } + }, { + "path": "pages/common/webview/index", + "meta":{ + "loginAuth": false + }, + "style": { + "navigationBarTitleText": "浏览网页" + } + }, { + "path": "pages/common/textview/index", + "meta":{ + "loginAuth": false + }, + "style": { + "navigationBarTitleText": "浏览文本" + } + } + ], + "tabBar": { + "color": "#000000", + "selectedColor": "#000000", + "borderStyle": "white", + "backgroundColor": "#ffffff", + "list": [{ + "pagePath": "pages/index", + "iconPath": "static/images/tabbar/home.png", + "selectedIconPath": "static/images/tabbar/home_.png", + "text": "首页" + }, { + "pagePath": "pages/work/index", + "iconPath": "static/images/tabbar/work.png", + "selectedIconPath": "static/images/tabbar/work_.png", + "text": "工作台" + }, { + "pagePath": "pages/mine/index", + "iconPath": "static/images/tabbar/mine.png", + "selectedIconPath": "static/images/tabbar/mine_.png", + "text": "我的" + } + ] + }, + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "Kinit", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8", + "app-plus":{ + "titleNView": false + } + } +} diff --git a/kinit-uni/pages/common/textview/index.vue b/kinit-uni/pages/common/textview/index.vue new file mode 100644 index 0000000..8d43399 --- /dev/null +++ b/kinit-uni/pages/common/textview/index.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/kinit-uni/pages/common/webview/index.vue b/kinit-uni/pages/common/webview/index.vue new file mode 100644 index 0000000..3f1c616 --- /dev/null +++ b/kinit-uni/pages/common/webview/index.vue @@ -0,0 +1,35 @@ + + + diff --git a/kinit-uni/pages/index.vue b/kinit-uni/pages/index.vue new file mode 100644 index 0000000..31954df --- /dev/null +++ b/kinit-uni/pages/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/kinit-uni/pages/login.vue b/kinit-uni/pages/login.vue new file mode 100644 index 0000000..70f1103 --- /dev/null +++ b/kinit-uni/pages/login.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/kinit-uni/pages/mine/about/index.vue b/kinit-uni/pages/mine/about/index.vue new file mode 100644 index 0000000..5d37945 --- /dev/null +++ b/kinit-uni/pages/mine/about/index.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/kinit-uni/pages/mine/avatar/index.vue b/kinit-uni/pages/mine/avatar/index.vue new file mode 100644 index 0000000..98e365b --- /dev/null +++ b/kinit-uni/pages/mine/avatar/index.vue @@ -0,0 +1,630 @@ + + + + + diff --git a/kinit-uni/pages/mine/help/index.vue b/kinit-uni/pages/mine/help/index.vue new file mode 100644 index 0000000..034e7fd --- /dev/null +++ b/kinit-uni/pages/mine/help/index.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/kinit-uni/pages/mine/index.vue b/kinit-uni/pages/mine/index.vue new file mode 100644 index 0000000..b59ca4b --- /dev/null +++ b/kinit-uni/pages/mine/index.vue @@ -0,0 +1,242 @@ + + + + + diff --git a/kinit-uni/pages/mine/info/edit.vue b/kinit-uni/pages/mine/info/edit.vue new file mode 100644 index 0000000..8f634a9 --- /dev/null +++ b/kinit-uni/pages/mine/info/edit.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/kinit-uni/pages/mine/info/index.vue b/kinit-uni/pages/mine/info/index.vue new file mode 100644 index 0000000..6f35433 --- /dev/null +++ b/kinit-uni/pages/mine/info/index.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/kinit-uni/pages/mine/pwd/index.vue b/kinit-uni/pages/mine/pwd/index.vue new file mode 100644 index 0000000..6dc9b48 --- /dev/null +++ b/kinit-uni/pages/mine/pwd/index.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/kinit-uni/pages/mine/setting/index.vue b/kinit-uni/pages/mine/setting/index.vue new file mode 100644 index 0000000..6127590 --- /dev/null +++ b/kinit-uni/pages/mine/setting/index.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/kinit-uni/pages/work/index.vue b/kinit-uni/pages/work/index.vue new file mode 100644 index 0000000..5652b27 --- /dev/null +++ b/kinit-uni/pages/work/index.vue @@ -0,0 +1,100 @@ + + + + + + + diff --git a/kinit-uni/permission.js b/kinit-uni/permission.js new file mode 100644 index 0000000..011d41a --- /dev/null +++ b/kinit-uni/permission.js @@ -0,0 +1,38 @@ +import { getToken } from '@/common/utils/auth' +import store from '@/store' +import {RouterMount, createRouter} from 'uni-simple-router'; + +// 登录页面 +const loginPage = "/pages/login" + +const router = createRouter({ + platform: process.env.VUE_APP_PLATFORM, + routes: [...ROUTES] +}); + +//全局路由前置守卫 +router.beforeEach((to, from, next) => { + if (to.meta.loginAuth) { + if (getToken()) { + if (!store.state.auth.isUser) { + store.dispatch('GetInfo') + } + if (to.path === loginPage) { + uni.reLaunch({ url: "/" }) + } + } else { + uni.reLaunch({ url: loginPage }) + } + } + next(); +}); + +// 全局路由后置守卫 +router.afterEach((to, from) => { + // console.log('跳转结束') +}) + +export { + router, + RouterMount +} diff --git a/kinit-uni/plugins/auth.js b/kinit-uni/plugins/auth.js new file mode 100644 index 0000000..3b91c14 --- /dev/null +++ b/kinit-uni/plugins/auth.js @@ -0,0 +1,60 @@ +import store from '@/store' + +function authPermission(permission) { + const all_permission = "*:*:*" + const permissions = store.getters && store.getters.permissions + if (permission && permission.length > 0) { + return permissions.some(v => { + return all_permission === v || v === permission + }) + } else { + return false + } +} + +function authRole(role) { + const super_admin = "admin" + const roles = store.getters && store.getters.roles + if (role && role.length > 0) { + return roles.some(v => { + return super_admin === v || v === role + }) + } else { + return false + } +} + +export default { + // 验证用户是否具备某权限 + hasPermi(permission) { + return authPermission(permission) + }, + // 验证用户是否含有指定权限,只需包含其中一个 + hasPermiOr(permissions) { + return permissions.some(item => { + return authPermission(item) + }) + }, + // 验证用户是否含有指定权限,必须全部拥有 + hasPermiAnd(permissions) { + return permissions.every(item => { + return authPermission(item) + }) + }, + // 验证用户是否具备某角色 + hasRole(role) { + return authRole(role) + }, + // 验证用户是否含有指定角色,只需包含其中一个 + hasRoleOr(roles) { + return roles.some(item => { + return authRole(item) + }) + }, + // 验证用户是否含有指定角色,必须全部拥有 + hasRoleAnd(roles) { + return roles.every(item => { + return authRole(item) + }) + } +} diff --git a/kinit-uni/plugins/index.js b/kinit-uni/plugins/index.js new file mode 100644 index 0000000..efbae15 --- /dev/null +++ b/kinit-uni/plugins/index.js @@ -0,0 +1,14 @@ +import tab from './tab' +import auth from './auth' +import modal from './modal' + +export default { + install(Vue) { + // 页签操作 + Vue.prototype.$tab = tab + // 认证对象 + Vue.prototype.$auth = auth + // 模态框对象 + Vue.prototype.$modal = modal + } +} diff --git a/kinit-uni/plugins/modal.js b/kinit-uni/plugins/modal.js new file mode 100644 index 0000000..87960fd --- /dev/null +++ b/kinit-uni/plugins/modal.js @@ -0,0 +1,74 @@ +export default { + // 消息提示 + msg(content) { + uni.showToast({ + title: content, + icon: 'none' + }) + }, + // 错误消息 + msgError(content) { + uni.showToast({ + title: content, + icon: 'error' + }) + }, + // 成功消息 + msgSuccess(content) { + uni.showToast({ + title: content, + icon: 'success' + }) + }, + // 隐藏消息 + hideMsg(content) { + uni.hideToast() + }, + // 弹出提示 + alert(content) { + uni.showModal({ + title: '提示', + content: content, + showCancel: false + }) + }, + // 确认窗体 + confirm(content) { + return new Promise((resolve, reject) => { + uni.showModal({ + title: '系统提示', + content: content, + cancelText: '取消', + confirmText: '确定', + success: function(res) { + if (res.confirm) { + resolve(res.confirm) + } + } + }) + }) + }, + // 提示信息 + showToast(option) { + if (typeof option === "object") { + uni.showToast(option) + } else { + uni.showToast({ + title: option, + icon: "none", + duration: 2500 + }) + } + }, + // 打开遮罩层 + loading(content) { + uni.showLoading({ + title: content, + icon: 'none' + }) + }, + // 关闭遮罩层 + closeLoading() { + uni.hideLoading() + } +} diff --git a/kinit-uni/plugins/tab.js b/kinit-uni/plugins/tab.js new file mode 100644 index 0000000..5d1b305 --- /dev/null +++ b/kinit-uni/plugins/tab.js @@ -0,0 +1,30 @@ +export default { + // 关闭所有页面,打开到应用内的某个页面 + reLaunch(url) { + return uni.reLaunch({ + url: url + }) + }, + // 跳转到tabBar页面,并关闭其他所有非tabBar页面 + switchTab(url) { + return uni.switchTab({ + url: url + }) + }, + // 关闭当前页面,跳转到应用内的某个页面 + redirectTo(url) { + return uni.redirectTo({ + url: url + }) + }, + // 保留当前页面,跳转到应用内的某个页面 + navigateTo(url) { + return uni.navigateTo({ + url: url + }) + }, + // 关闭当前页面,返回上一页面或多级页面 + navigateBack() { + return uni.navigateBack() + } +} diff --git a/kinit-uni/static/favicon.ico b/kinit-uni/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..6f07782abfc7881a73d3f47a00b761c183e06ff9 GIT binary patch literal 16958 zcmeI1Z)lW95XSfJqDezYN}8rYBqt&wBDRQ#NH9S}`awjB6cH&RR+IaarXpfR)DlFb zh=>#s5s}vV!CI~H?vjewAT~$|B0)q%Ob{C+NR$wa5bpYW-n+GzGl`d)Tq3*|=4RjB z*`1kZW@q=k7~|ourpE9+%gkG0Ot~>;9z>Vf52@ez)Fhev?IPeJ;3D86;3D86;3D86 z;3D86;3D86;3D86;3AMK1foH+JQgzNVqw$JTyN&&O7CRrX%3nX@p%uvKY@CnM03cT znQXfzT7Og6l;L{_e_Np!&@ztn|9kuk&0*mkI7e>91WFMsH5xfu5*mkfh9dBF5b3Nj;06R}W zvR`>_rM4$Rk}X%U^tqnEmN0w108jo8jZ-YY|C&!zo^+VDAGbdNd8 z^X;_r)DI@*&`$c=Az`Yug@I(Bw1mx*OSK;#{bkF-oS&cQFN9>|bU)uK3F~%OJ(^qqrLJGAGu z?j}2Kc_ipv#X470UaP|ben>-UnGpzi(a@JbHe*Fn9UzC5+C9XQuiVy1usIW{8{7K@^JlQ0 za@YDTZu9&aHjaoZa=PEQ!L1z~Jim+tOpR<#<)$6ens@PGf%V6cQLX$BBjKQWx;|Yd zvmFh1%A>*Qp=ii=p7nZ&o#LgO&>j-bJE+G+ne*&3;|16`8-55<+!B!HYMn=n-Gpx@ z4ny+X&bJ&pw<71%FSz2M7+k$lo7BzoQONqQaplQrJ71i5?x0V)wQnTT5B-=fGg3Pm z_D*jKez5rBwu;Xqf$6)McNI$JZP;7@oB6}dMP?SHJu5$NLru_m=#*-BOZ}U9p1BUb z>)vu2lI^lv_V=Q*-pb;e-u>jW#zo2j;Zb8{n(B%xqam;Mzv3pD2h_%gzi$0xNS;{v z(KxmjP(O-d4W>9&Z)TIbZ|v9f`I5(vGISQC_h-{)ZPg3a2fOdp{+qL@*v{uU09kx2 z27TbN*UE^;g1*Dx_Bu~kqwlw^GD&djlGBQP5Z_Ar8p0%72vD=@iI+Dvcl^Q zF|M$F!~&j5&U59D&cY7X?urJdowwstjbq;;>{Kqx7v=6#_I-?Z_#t_O|4ULbPVJ*D z|0Ul;{y6tV>)VCeiq*tj7^(&ei|$A;f2AFtN*vpCZ?XGYG3&zDk!sD^G+CP~kJ$q| zGkqc_4j`-jB3!${`6hi+>K&N+qI;qCs^WAXzx#Q=e_iu3eZq&M$fchV!a%jIHB%N} z3#f%>7!w9szZaZ_eV5Ffn~P`e?|PTfd9SlpdE7_Nj(S#Isx7Ta?QQvEC`UTs$WO4T{jx?SYNFF&i-bdhSAob zrdEO5HRNLgrwsXcqj(T5- z&g0no<-4p$O>0d0?9>4A-_sQdO&fAw%4U6R8S%X)oB3mv;Z9SC&UZe8@!kFor2JPN zv{M&`y)%r}#`i%Ue^mpu=jFf7|C`|YUjM&mEV$#Z-i7)h$A9Yj?_-(&zRTjT-t!gz z4(OTgk?*@t+1k(VLHZr}6n^X8=}!t3A6C)>7M z=;z$tsGOJYkn?|mT z>h3?Q;rsvj_PIZii2MH9HIUD6Nztyo9)_0}?Wx|+aJ;C>-&q~^4OUe72mAvigB6t} ziG$Cp2ddzFEPuYIgz1R{{GfQ}U`eBR*I@n)@z!{Lm-vl%{($(wME>ADxIf{Gi&rNc k^WuqwvkX1XGQ;pA^y%ZMhx_%w$M1Y6;?*ghWE1=SFG{UvNdN!< literal 0 HcmV?d00001 diff --git a/kinit-uni/static/font/demo.css b/kinit-uni/static/font/demo.css new file mode 100644 index 0000000..a67054a --- /dev/null +++ b/kinit-uni/static/font/demo.css @@ -0,0 +1,539 @@ +/* Logo 字体 */ +@font-face { + font-family: "iconfont logo"; + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); +} + +.logo { + font-family: "iconfont logo"; + font-size: 160px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* tabs */ +.nav-tabs { + position: relative; +} + +.nav-tabs .nav-more { + position: absolute; + right: 0; + bottom: 0; + height: 42px; + line-height: 42px; + color: #666; +} + +#tabs { + border-bottom: 1px solid #eee; +} + +#tabs li { + cursor: pointer; + width: 100px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 16px; + border-bottom: 2px solid transparent; + position: relative; + z-index: 1; + margin-bottom: -1px; + color: #666; +} + + +#tabs .active { + border-bottom-color: #f00; + color: #222; +} + +.tab-container .content { + display: none; +} + +/* 页面布局 */ +.main { + padding: 30px 100px; + width: 960px; + margin: 0 auto; +} + +.main .logo { + color: #333; + text-align: left; + margin-bottom: 30px; + line-height: 1; + height: 110px; + margin-top: -50px; + overflow: hidden; + *zoom: 1; +} + +.main .logo a { + font-size: 160px; + color: #333; +} + +.helps { + margin-top: 40px; +} + +.helps pre { + padding: 20px; + margin: 10px 0; + border: solid 1px #e7e1cd; + background-color: #fffdef; + overflow: auto; +} + +.icon_lists { + width: 100% !important; + overflow: hidden; + *zoom: 1; +} + +.icon_lists li { + width: 100px; + margin-bottom: 10px; + margin-right: 20px; + text-align: center; + list-style: none !important; + cursor: default; +} + +.icon_lists li .code-name { + line-height: 1.2; +} + +.icon_lists .icon { + display: block; + height: 100px; + line-height: 100px; + font-size: 42px; + margin: 10px auto; + color: #333; + -webkit-transition: font-size 0.25s linear, width 0.25s linear; + -moz-transition: font-size 0.25s linear, width 0.25s linear; + transition: font-size 0.25s linear, width 0.25s linear; +} + +.icon_lists .icon:hover { + font-size: 100px; +} + +.icon_lists .svg-icon { + /* 通过设置 font-size 来改变图标大小 */ + width: 1em; + /* 图标和文字相邻时,垂直对齐 */ + vertical-align: -0.15em; + /* 通过设置 color 来改变 SVG 的颜色/fill */ + fill: currentColor; + /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 + normalize.css 中也包含这行 */ + overflow: hidden; +} + +.icon_lists li .name, +.icon_lists li .code-name { + color: #666; +} + +/* markdown 样式 */ +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + color: #404040; + font-weight: 500; + line-height: 40px; + margin-bottom: 24px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + color: #404040; + margin: 1.6em 0 0.6em 0; + font-weight: 500; + clear: both; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + height: 1px; + border: 0; + background: #e9e9e9; + margin: 16px 0; + clear: both; +} + +.markdown p { + margin: 1em 0; +} + +.markdown>p, +.markdown>blockquote, +.markdown>.highlight, +.markdown>ol, +.markdown>ul { + width: 80%; +} + +.markdown ul>li { + list-style: circle; +} + +.markdown>ul li, +.markdown blockquote ul>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown>ul li p, +.markdown>ol li p { + margin: 0.6em 0; +} + +.markdown ol>li { + list-style: decimal; +} + +.markdown>ol li, +.markdown blockquote ol>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + background: #eee; + border-radius: 3px; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown>table { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + border: 1px solid #e9e9e9; + width: 95%; + margin-bottom: 24px; +} + +.markdown>table th { + white-space: nowrap; + color: #333; + font-weight: 600; +} + +.markdown>table th, +.markdown>table td { + border: 1px solid #e9e9e9; + padding: 8px 16px; + text-align: left; +} + +.markdown>table th { + background: #F7F7F7; +} + +.markdown blockquote { + font-size: 90%; + color: #999; + border-left: 4px solid #e9e9e9; + padding-left: 0.8em; + margin: 1em 0; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + opacity: 0; + transition: opacity 0.3s ease; + margin-left: 8px; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + opacity: 1; + display: inline-block; +} + +.markdown>br, +.markdown>p>br { + clear: both; +} + + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +/* 代码高亮 */ +/* PrismJS 1.15.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre)>code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre)>code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/kinit-uni/static/font/demo_index.html b/kinit-uni/static/font/demo_index.html new file mode 100644 index 0000000..9dfb5fd --- /dev/null +++ b/kinit-uni/static/font/demo_index.html @@ -0,0 +1,1729 @@ + + + + + iconfont Demo + + + + + + + + + + + + + + + + + diff --git a/kinit-uni/static/font/iconfont.css b/kinit-uni/static/font/iconfont.css new file mode 100644 index 0000000..21387fc --- /dev/null +++ b/kinit-uni/static/font/iconfont.css @@ -0,0 +1,283 @@ +@font-face { + font-family: "iconfont"; /* Project id 3803079 */ + src: url('/static/font/iconfont.woff2?t=1670058157651') format('woff2'), + url('/static/font/iconfont.woff?t=1670058157651') format('woff'), + url('/static/font/iconfont.ttf?t=1670058157651') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-chazhaoyonghu:before { + content: "\e601"; +} + +.icon-users:before { + content: "\e651"; +} + +.icon-caidan:before { + content: "\e605"; +} + +.icon-rizhi:before { + content: "\e660"; +} + +.icon-zidian:before { + content: "\e679"; +} + +.icon-changguizidian:before { + content: "\e694"; +} + +.icon-user2:before { + content: "\e686"; +} + +.icon-usertie:before { + content: "\e65b"; +} + +.icon-caidan1:before { + content: "\e62c"; +} + +.icon-caidan2:before { + content: "\e61e"; +} + +.icon-dictionary:before { + content: "\e606"; +} + +.icon-shujuzidian:before { + content: "\e666"; +} + +.icon-caidan3:before { + content: "\eaf1"; +} + +.icon-rizhi1:before { + content: "\e627"; +} + +.icon-rizhi2:before { + content: "\e647"; +} + +.icon-caidan4:before { + content: "\e668"; +} + +.icon-caidan5:before { + content: "\e61b"; +} + +.icon-24gl-portraitMalePlus4:before { + content: "\eb25"; +} + +.icon-user1:before { + content: "\e755"; +} + +.icon-user-tag:before { + content: "\e631"; +} + +.icon-rizhi3:before { + content: "\e603"; +} + +.icon-zidianguanli:before { + content: "\e669"; +} + +.icon-caidan6:before { + content: "\e624"; +} + +.icon-user3:before { + content: "\e616"; +} + +.icon-user-o:before { + content: "\e664"; +} + +.icon-rizhi4:before { + content: "\e66a"; +} + +.icon-user4:before { + content: "\e8fa"; +} + +.icon-caidan7:before { + content: "\e60e"; +} + +.icon-user5:before { + content: "\e62b"; +} + +.icon-zidianmokuai2:before { + content: "\e621"; +} + +.icon-right:before { + content: "\e6a3"; +} + +.icon-right1:before { + content: "\e7eb"; +} + +.icon-arrow-right:before { + content: "\e665"; +} + +.icon-arrow-right-bold:before { + content: "\e687"; +} + +.icon-dianhua:before { + content: "\e609"; +} + +.icon-wenti1-copy:before { + content: "\eca9"; +} + +.icon-wenti1-copy1:before { + content: "\eca3"; +} + +.icon-aixin1-copy:before { + content: "\eca4"; +} + +.icon-shezhi-copy:before { + content: "\eca5"; +} + +.icon-xitongjiaose-copy:before { + content: "\eca6"; +} + +.icon-kefu-copy:before { + content: "\eca7"; +} + +.icon-shezhi:before { + content: "\e62a"; +} + +.icon-shezhitianchong:before { + content: "\e68d"; +} + +.icon-shezhi1:before { + content: "\e600"; +} + +.icon-yijianfankui:before { + content: "\e625"; +} + +.icon-riqi:before { + content: "\e636"; +} + +.icon-kefu:before { + content: "\e741"; +} + +.icon-jiaoseguanli:before { + content: "\ea62"; +} + +.icon-yijianfankui1:before { + content: "\e82f"; +} + +.icon-dianzan:before { + content: "\e611"; +} + +.icon-shezhi2:before { + content: "\e892"; +} + +.icon-shezhi3:before { + content: "\e70f"; +} + +.icon-dianzan1:before { + content: "\ec7f"; +} + +.icon-yaoqingdaoshi-copy:before { + content: "\eca8"; +} + +.icon-jiaofuriqi:before { + content: "\e667"; +} + +.icon-aixin:before { + content: "\eca1"; +} + +.icon-yaoqingdaoshi:before { + content: "\e640"; +} + +.icon-dianzan2:before { + content: "\e604"; +} + +.icon-wenti:before { + content: "\e78d"; +} + +.icon-aixin1:before { + content: "\e8ab"; +} + +.icon-aixin2:before { + content: "\e8c3"; +} + +.icon-jiaoseguanli1:before { + content: "\e64a"; +} + +.icon-xitongjiaose:before { + content: "\e60c"; +} + +.icon-wenti1:before { + content: "\e6e2"; +} + +.icon-jiaoseguanli2:before { + content: "\e676"; +} + +.icon-dianzan1-copy:before { + content: "\eca2"; +} + +.icon-user:before { + content: "\e677"; +} + diff --git a/kinit-uni/static/font/iconfont.js b/kinit-uni/static/font/iconfont.js new file mode 100644 index 0000000..2bb515e --- /dev/null +++ b/kinit-uni/static/font/iconfont.js @@ -0,0 +1 @@ +window._iconfont_svg_string_3803079='',function(a){var c=(c=document.getElementsByTagName("script"))[c.length-1],l=c.getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var h,t,i,o,s,z=function(c,l){l.parentNode.insertBefore(c,l)};if(l&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}h=function(){var c,l=document.createElement("div");l.innerHTML=a._iconfont_svg_string_3803079,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?z(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(h,0):(t=function(){document.removeEventListener("DOMContentLoaded",t,!1),h()},document.addEventListener("DOMContentLoaded",t,!1)):document.attachEvent&&(i=h,o=a.document,s=!1,p(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,d())})}function d(){s||(s=!0,i())}function p(){try{o.documentElement.doScroll("left")}catch(c){return void setTimeout(p,50)}d()}}(window); \ No newline at end of file diff --git a/kinit-uni/static/font/iconfont.json b/kinit-uni/static/font/iconfont.json new file mode 100644 index 0000000..3104871 --- /dev/null +++ b/kinit-uni/static/font/iconfont.json @@ -0,0 +1,478 @@ +{ + "id": "3803079", + "name": "kinit-uni", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "1261", + "name": "查找用户", + "font_class": "chazhaoyonghu", + "unicode": "e601", + "unicode_decimal": 58881 + }, + { + "icon_id": "312606", + "name": "users", + "font_class": "users", + "unicode": "e651", + "unicode_decimal": 58961 + }, + { + "icon_id": "383596", + "name": "菜单", + "font_class": "caidan", + "unicode": "e605", + "unicode_decimal": 58885 + }, + { + "icon_id": "570698", + "name": "日志", + "font_class": "rizhi", + "unicode": "e660", + "unicode_decimal": 58976 + }, + { + "icon_id": "577700", + "name": "字典", + "font_class": "zidian", + "unicode": "e679", + "unicode_decimal": 59001 + }, + { + "icon_id": "740849", + "name": "常规字典", + "font_class": "changguizidian", + "unicode": "e694", + "unicode_decimal": 59028 + }, + { + "icon_id": "773022", + "name": "user2", + "font_class": "user2", + "unicode": "e686", + "unicode_decimal": 59014 + }, + { + "icon_id": "1013067", + "name": "高管", + "font_class": "usertie", + "unicode": "e65b", + "unicode_decimal": 58971 + }, + { + "icon_id": "1304947", + "name": "菜单", + "font_class": "caidan1", + "unicode": "e62c", + "unicode_decimal": 58924 + }, + { + "icon_id": "1330918", + "name": "菜单", + "font_class": "caidan2", + "unicode": "e61e", + "unicode_decimal": 58910 + }, + { + "icon_id": "1368559", + "name": "字典搜索", + "font_class": "dictionary", + "unicode": "e606", + "unicode_decimal": 58886 + }, + { + "icon_id": "1680700", + "name": "数据字典", + "font_class": "shujuzidian", + "unicode": "e666", + "unicode_decimal": 58982 + }, + { + "icon_id": "5387521", + "name": "菜单", + "font_class": "caidan3", + "unicode": "eaf1", + "unicode_decimal": 60145 + }, + { + "icon_id": "6176576", + "name": "日志", + "font_class": "rizhi1", + "unicode": "e627", + "unicode_decimal": 58919 + }, + { + "icon_id": "6527123", + "name": "日志", + "font_class": "rizhi2", + "unicode": "e647", + "unicode_decimal": 58951 + }, + { + "icon_id": "6536738", + "name": "菜单", + "font_class": "caidan4", + "unicode": "e668", + "unicode_decimal": 58984 + }, + { + "icon_id": "7588087", + "name": "菜单", + "font_class": "caidan5", + "unicode": "e61b", + "unicode_decimal": 58907 + }, + { + "icon_id": "7596825", + "name": "24gl-portraitMalePlus4", + "font_class": "24gl-portraitMalePlus4", + "unicode": "eb25", + "unicode_decimal": 60197 + }, + { + "icon_id": "7685353", + "name": "user", + "font_class": "user1", + "unicode": "e755", + "unicode_decimal": 59221 + }, + { + "icon_id": "7852107", + "name": "user-tag", + "font_class": "user-tag", + "unicode": "e631", + "unicode_decimal": 58929 + }, + { + "icon_id": "8229518", + "name": "日志", + "font_class": "rizhi3", + "unicode": "e603", + "unicode_decimal": 58883 + }, + { + "icon_id": "8605754", + "name": "字典管理", + "font_class": "zidianguanli", + "unicode": "e669", + "unicode_decimal": 58985 + }, + { + "icon_id": "10333707", + "name": "菜单", + "font_class": "caidan6", + "unicode": "e624", + "unicode_decimal": 58916 + }, + { + "icon_id": "10884971", + "name": "user", + "font_class": "user3", + "unicode": "e616", + "unicode_decimal": 58902 + }, + { + "icon_id": "11132430", + "name": "user-o", + "font_class": "user-o", + "unicode": "e664", + "unicode_decimal": 58980 + }, + { + "icon_id": "12331679", + "name": "日志", + "font_class": "rizhi4", + "unicode": "e66a", + "unicode_decimal": 58986 + }, + { + "icon_id": "15617636", + "name": "user", + "font_class": "user4", + "unicode": "e8fa", + "unicode_decimal": 59642 + }, + { + "icon_id": "18444812", + "name": "菜单", + "font_class": "caidan7", + "unicode": "e60e", + "unicode_decimal": 58894 + }, + { + "icon_id": "28122474", + "name": "user", + "font_class": "user5", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "31313067", + "name": "字典模块2", + "font_class": "zidianmokuai2", + "unicode": "e621", + "unicode_decimal": 58913 + }, + { + "icon_id": "32305", + "name": "right", + "font_class": "right", + "unicode": "e6a3", + "unicode_decimal": 59043 + }, + { + "icon_id": "4767011", + "name": "right", + "font_class": "right1", + "unicode": "e7eb", + "unicode_decimal": 59371 + }, + { + "icon_id": "15838431", + "name": "arrow-right", + "font_class": "arrow-right", + "unicode": "e665", + "unicode_decimal": 58981 + }, + { + "icon_id": "15838566", + "name": "arrow-right-bold", + "font_class": "arrow-right-bold", + "unicode": "e687", + "unicode_decimal": 59015 + }, + { + "icon_id": "375643", + "name": "telephone", + "font_class": "dianhua", + "unicode": "e609", + "unicode_decimal": 58889 + }, + { + "icon_id": "33176640", + "name": "问题-copy", + "font_class": "wenti1-copy", + "unicode": "eca9", + "unicode_decimal": 60585 + }, + { + "icon_id": "33176200", + "name": "问题-copy", + "font_class": "wenti1-copy1", + "unicode": "eca3", + "unicode_decimal": 60579 + }, + { + "icon_id": "33176203", + "name": "爱心-copy", + "font_class": "aixin1-copy", + "unicode": "eca4", + "unicode_decimal": 60580 + }, + { + "icon_id": "33176204", + "name": "设置-copy", + "font_class": "shezhi-copy", + "unicode": "eca5", + "unicode_decimal": 60581 + }, + { + "icon_id": "33176223", + "name": "系统角色-copy", + "font_class": "xitongjiaose-copy", + "unicode": "eca6", + "unicode_decimal": 60582 + }, + { + "icon_id": "33176232", + "name": "客服-copy", + "font_class": "kefu-copy", + "unicode": "eca7", + "unicode_decimal": 60583 + }, + { + "icon_id": "145433", + "name": "设置", + "font_class": "shezhi", + "unicode": "e62a", + "unicode_decimal": 58922 + }, + { + "icon_id": "145720", + "name": "设置_填充", + "font_class": "shezhitianchong", + "unicode": "e68d", + "unicode_decimal": 59021 + }, + { + "icon_id": "162882", + "name": "设置", + "font_class": "shezhi1", + "unicode": "e600", + "unicode_decimal": 58880 + }, + { + "icon_id": "270836", + "name": "意见反馈", + "font_class": "yijianfankui", + "unicode": "e625", + "unicode_decimal": 58917 + }, + { + "icon_id": "524001", + "name": "日期", + "font_class": "riqi", + "unicode": "e636", + "unicode_decimal": 58934 + }, + { + "icon_id": "577345", + "name": "客服", + "font_class": "kefu", + "unicode": "e741", + "unicode_decimal": 59201 + }, + { + "icon_id": "742126", + "name": "角色管理", + "font_class": "jiaoseguanli", + "unicode": "ea62", + "unicode_decimal": 60002 + }, + { + "icon_id": "831398", + "name": "意见反馈", + "font_class": "yijianfankui1", + "unicode": "e82f", + "unicode_decimal": 59439 + }, + { + "icon_id": "886699", + "name": "点赞", + "font_class": "dianzan", + "unicode": "e611", + "unicode_decimal": 58897 + }, + { + "icon_id": "2076270", + "name": "设置", + "font_class": "shezhi2", + "unicode": "e892", + "unicode_decimal": 59538 + }, + { + "icon_id": "3456457", + "name": "设置", + "font_class": "shezhi3", + "unicode": "e70f", + "unicode_decimal": 59151 + }, + { + "icon_id": "6337455", + "name": "点赞", + "font_class": "dianzan1", + "unicode": "ec7f", + "unicode_decimal": 60543 + }, + { + "icon_id": "33176261", + "name": "意见反馈-copy", + "font_class": "yaoqingdaoshi-copy", + "unicode": "eca8", + "unicode_decimal": 60584 + }, + { + "icon_id": "6614709", + "name": "交付日期", + "font_class": "jiaofuriqi", + "unicode": "e667", + "unicode_decimal": 58983 + }, + { + "icon_id": "6775644", + "name": "爱心", + "font_class": "aixin", + "unicode": "eca1", + "unicode_decimal": 60577 + }, + { + "icon_id": "7140563", + "name": "意见反馈", + "font_class": "yaoqingdaoshi", + "unicode": "e640", + "unicode_decimal": 58944 + }, + { + "icon_id": "8718258", + "name": "点赞", + "font_class": "dianzan2", + "unicode": "e604", + "unicode_decimal": 58884 + }, + { + "icon_id": "10232772", + "name": "问题", + "font_class": "wenti", + "unicode": "e78d", + "unicode_decimal": 59277 + }, + { + "icon_id": "11372639", + "name": "爱心", + "font_class": "aixin1", + "unicode": "e8ab", + "unicode_decimal": 59563 + }, + { + "icon_id": "11372756", + "name": "爱心", + "font_class": "aixin2", + "unicode": "e8c3", + "unicode_decimal": 59587 + }, + { + "icon_id": "15388180", + "name": "角色管理", + "font_class": "jiaoseguanli1", + "unicode": "e64a", + "unicode_decimal": 58954 + }, + { + "icon_id": "18383762", + "name": "系统角色", + "font_class": "xitongjiaose", + "unicode": "e60c", + "unicode_decimal": 58892 + }, + { + "icon_id": "20266225", + "name": "问题", + "font_class": "wenti1", + "unicode": "e6e2", + "unicode_decimal": 59106 + }, + { + "icon_id": "24271959", + "name": "角色管理", + "font_class": "jiaoseguanli2", + "unicode": "e676", + "unicode_decimal": 58998 + }, + { + "icon_id": "33176180", + "name": "点赞-copy", + "font_class": "dianzan1-copy", + "unicode": "eca2", + "unicode_decimal": 60578 + }, + { + "icon_id": "1175005", + "name": "user", + "font_class": "user", + "unicode": "e677", + "unicode_decimal": 58999 + } + ] +} diff --git a/kinit-uni/static/font/iconfont.ttf b/kinit-uni/static/font/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..43580432528ad22dbdecfe6ac3959f8a0a65552e GIT binary patch literal 21892 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�!B}XiC2L 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 literal 0 HcmV?d00001 diff --git a/kinit-uni/static/font/iconfont.woff b/kinit-uni/static/font/iconfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..dc335fdf0eca3115441b8134f9f58cc640ecd8cd GIT binary patch literal 12676 zcmY*wDl9)wr!ge+qP}nwmq?J+qN^YGjS%#Op@ozd++`8oz=Um_U>~EYjyXk zs&zaSB_seKfNx_71Hk=Ps)zkA|F8c4o206`C;$Kg{jKtSLyb6=!bee+iS=6(`{w__ zh@VC=(A3`8>065e06;AO07$dt32IPFJMZs0*gXJ1^Ib~78=49aTbUc10RRkI-*GJ8 z;3V@N7qj{nzqPn;PW%mW=uPk;D|{#5Q+&4zj}Q-hv2!&2&u{fx`|bx2#VaQ_ zZ*T1N-7llwHz)cAF^C=rtAnw<`M2ix9Vh%f9!umB{zfN9S2qBFsrOqO`yLZ56|6L> zSDvYnnUT?f3A0h7sgaBG6O8e}j5Pg}X_ASNaS$MhpEZ|-icKIn7;GGDx+%ySk=P1##PS+q1NpcYFPH4Ui0K zc9U*H^rgOxsz#j4_;WUczn|N{___3s2l<>Us~nS48Q)!*IBpelW);0&Ddy`Y?)W?* z3_s=+H>wpk;Wj(2M?bDoJE~)6fv{!7nZsbd=Xf&km|quNx4)Ba(yz6@7fw9= zZ{1;Ko8aGiK^#t9pHpF*=E`>DGwo$puer&7)@s%^mmo{Y!@Dqb6|ulQsKF+uCY5hZSoyju2zb7K<~A(4wwCbmW?V+hEpn;3>P$W z)zc^&RfK4=3|1_T@@~|&a#%F?avijn@@lmB^1o>ETJ#SfG(HGB1ZEV_JaTf2ddX5GqpGC;^Nx|oKr(mDX&eE5%5XN?h!#%Vk$6uS*G7~ znn4$>9K7XaC(XQ_u3SxZHuq7!$wr2E3`_NlW?k;G;>~6oin>4B13c!gyf64D(mJ#7 z&AJLI#=Yb>Q{<6&8{qq0{q5(SMK0-XDIxaD@>E^>)!*$!c}@RZ&QtM)hfSd4Y;{)3 z%57c>SHBQPx)3F$69ttxcwH(M1sfcjIWoM79Db6RL{N9|HpDX?p_bWJ%MQ`BQQK5K z!O%=&;aMuE$@6m}fJl8ynTeE)^w{t2)u7idBJZnWrK5$kD|Bn2H_V%2B#mwK7=i!; z&b?hnvQO~x#Tk#f6Sq>~Z{^1Ai?vTp_K*Rjw=zj61Oc8D6=X;;_p~|ks_@eaGHm<5 zPMjCkEG{K9o0{X0gnW33z?toEcd{v!vqd+HiGn>@cLNQK0Gj~S=@;@a)$&T0m_ln< zx)}OvvESorE3%%~<`gLB+~iXDzVq^yVqRl?LQBfJC8JLzEeG@S>ps4BrL+qPoq;2Lq z884S^yn-E_Nin=-QwAj`++`Au%_q!n&zCEnjh;z-*{m%H68&H!+rL|DF#a+?^M7_D z5}0U83ZGrFJM9tf{%-Z%GZ4lIR32wEj$uQIbwcT3_1Ul*OK=*EnMF?wY~3RDY|SAe z@blk?S*UL5Tu7qf2o?v4}TfUIrdhl>+ElIb*b*3yNsgSb9Z&U z?xst2AkE$h9QwK%9;H|cD1RH)Lj)r#fIK;V%ZE1xmoSDOx8RRxdb-VKvhEW1e0yDZ zTN;|a+K=2Bf)ZN&YPcW!JfNz5dOn|2SVpp$VKtRY)HcCpG^})+_2@`HP7ETMx348&?UE39MuOdv*`?cLee?n-njL{JDHsPSh}jlA~wwrwohXB8nSzXkq-G z2ZYFgRL>5ZcQ77jzNZwu2KDHL>ZeP2wgMO11ry0x$I`#gP+x`-)K%BbFfDQ#^8?#Q)J6~%w1O1qk{mAzjecEBs`K8j9CK}Q>d?w8#f2 z@1kv@l65;RJ+1Mg4WvqEAiaQ$Bv}}(9A&8@O{vATt3mnT*Wq8n+VzT6)C`bqYG;dG z4}|Yo_~Iv?n{K0AXYL9ti<-I^|LU&1)`VzzsWF$#f1Q~ln98B1(3%dD990jdB1`DW zjfKQ8Td2=%D*p&Hyr6Sbhw?O)7p4mdQYZe94Azn)HgBOuhPVy^W=)!Y$oyzs8$xnx zDb79hejbpt&?blOrP-huOH+&HhO4H0BA@TRCRjg`j*AB+$pOVQQ<+VdsKA4uZkJa= zFCw07zAs`!C)ijC6k{ZwiGzLWgFoKBDe)i}QX3I-O}#eGtDxm4xRgm3_F-mL=8xR!yfVh|waFX12>kXodp$Y1mHi_}ctA1x@MRdq&r}RM@xWh0Xa!_fuPXg2 zYOA1!&KuHXyl$}rHp41rGKUrkDI!lVsFg$aS-+yti%3dB80m_eXhP(M-Ar>lSqz>p z`u#gdhuRSdDxenZdpU~j5Y*3`BL`1l&cj|fpxPeU`5n6Owo!e3tt z!##rj4BAz|mG6o2!oO*7r7B0{P%Sx-;)|$Y z;C>><+6Gzcim7l>O{#j`=7SKDx?AK~RDUG5{IWYTxO6nf?X2;uq43sCteqE`c z86gjA5_YKv+ww+vGCA|iuE+*LJ{c5+G{NG|2W6r-!Hc|d!t zo7u2O`A<2AL#W^Nb;co%+t%U6`_H)P1|w6#QCy)(a=L!4HGe{*n8+|)2>Dcz^yEoY zT$t`U`5|;936=`5kK%J>i@JYT?om1W{FFMAbzf3*p~r4|_GU;jrAg5yqs(70M;x`G zbc(ryHXCD-&uhbmHvn!f*7J;m<%Ff;C+R*JTM*~=>}lf!Tv{rIR}rEKY$>~v#h~s5 zZ6RI*)?|}#NTx1&GGJi7SR-i{Bm$8Soe~>!2;L>%Dhq|1x6X;awiky&5w9H>Jz8q5 zK>4A_Ee(ai-?}gJR7-Q+JoRV|_xlxgUid?l{^zXUA-lo2-ns;Bv+6t+>y+OOoC0i& zKUj4mZnPt}bm_MC2dpHK-$a`|7M0u1I#eJIT{nuh@=26#++p)=FZtZI42j68@Mt&>QD{oEjE8yz@c^_hO9{^qeef5OrQn%zd-2hUTH-Tn+HEhx}}YCh+#0 z2C3iAw&@vQ7uA5If=x|@@be6CX=e3$|AXsS027*=oD*n{&}VN39#8<}+X!N9B~Np_ z8TUj|NRs%yM@Dv6Ux)BHVa;$Sh_+Z1g2MYL^QgSorACRU)iCv(T{jDI#_Y=BO7P^e z2(GbY1^FQEh``RUZA+$?EMb(d4CslV93UqcIuKcFtQ7^3(#$*LeU3$5>_>oo~(fo}XKpLh*LLk!lyFRQ$Xr@+Z4 z5rAzn$R{iaVG{_-vys03q~1s`#vgk^WSD2c&3usKH56V?y%=CQ|C{CsO+l)qI%k+u z*ctx(oc)()>I=CZHQ~qKg{W%UVr~TIKbpJvesrDIrPK3Fow0&X*nQcI;atXVYD+-I zz9;NiVxJ4U{Ha1*x4SEUonHfAn)`vby$AiOGI#^cA;uAj!(?PcWv^C;^%FVI~#kz!3JN5r{>$Jo;kf&K=BZ0Yxu^ev_n!QzR_ix}%XY ziQG9O~3&ZJE|0jysYl8J<_7j>v}YALsUSU_>96;Pr64d7E7iyIyT z^r_Uhfr$ zJ~jnmHqCx_YS9<O~EZW*S^I01jTj;ll zO|h{NR0W+{ita5FXIwamb~O&RoH-55;^DX-QsktlCbJtHLyg-w`fA7)V_EsK(!EBN zzHBrGQQkS^Xwh=!cPa?MnJPSdl%o6S$_uRwKNhc^A}Vo<%X44w>8dlXMCsPn&LBst z1z!XoIb5P>f;@)O^r@60uc0;EnDWe-wrx~W6sY_bu5<@GCO1%zAA)g-6yr|L@pjgt z`kz9gAC_VWl|2<0Pb5FCJ|4Qdjy)HRY~Y(k{xmt5mZnTUg{&^OWq}iOXyaHP5IJ_A z7UXi-cfS|taw6Dccsj`qYO2b`YlpR~{}>g0-Mtc|SDpHSrTmWH)(%z^&7>9^E}Tw~ z11RMF7n%sh?@g`jT${K<@Q-C@U_`o1LWL&KZ)GYTPw|&LSgUnw*8X$5{5wO12I?`) zN0{cCBKgYQC)f-l)qb*-url@5FX5T^Qo-(ra;`-c$4={Gt~*uNu5?x1KcX}fyve1X z$ksxWTq1}qg)>!h;7(HTK4~SWpk@@ogJ?SH4)H}-aYNJiStp4ZKYbwwE)SXdZ{0&3 zi=jSD&xHxz$UONck}%DBPY;tf7?_wG;ei*sxFBC$>9b(CO2z@Pv#2ez_@MCjv}bFx z{MbmQqJ8Z$xc|({=RfAw9MVR@6ZmKuo%=F;K0De$3bEr*uC6o(lMEU`ZLUfE6 zhUcw+l>#^YgXk~vV^SO{vdzJyk14q<=x(WYRS~wOX|4Di#SvFx;WFCMh3=t|#8jnb zdVVlWcXD+qu2Fz^L3tbm=NA5zwE7xC-0}j5tIf=C zbtffjp0isyj&kbMaKdE_?SF}L#cr%Z$r*~+U(9rvJ~g6r+e zrJ*{#2ck+u@}Hgu^<)BU4W&+%{>5R#a>s032bJEmf|}NDJQdpxFxC!SE&kO*$WVB* z2NfbbbJi;ar%EEd`1j=?@BG`0os*-ZtcGY}l!oHrtIA zeLmd=rIJUhTE0~WMKr-(W1Zb_k~p|asA^K>#gtv@?{zJ0hmPy?Woot)>%}H^LS>jnVu>k$E=^76LAJt zyd=h)I}kbW0BLXIwc+NqfnPi{z+bbk|5_BcaE{3v##2d3yddWEsi}gL=8(AK>!YH8 z7x?nlf>+=DQjH+e*x&yo&UY<>{MgVlwJ-&vC8R5C+MU)F+!fyy`_2$?8D59b?%Snb z<*}_Mj-c(p9was-p*Ru&p?%wB$%`%Zo<#Q=Z2FuG;1k+><1Mz4wwxppO?~fbVoUzO zDL94PmO7U^F%iI&9h;195_PZQ^eS!F3%;KGU2)u2zrS)qhdXKlMZxoLznvAotKV)ACq!&E9 zR-zNyub}hk*OUb^E}U5NmW`}3PbkK@>rA^gPi5u4Cz$@|ao>5*F;yOR`2x*wm~G5E zMDi)M@nQ$tGYn?@*blBbFR%nFqcV1L1+$z}vM)?r`Z~P%5maz3`PUp6&H4doX~FOl zZc-1MxEg_JxO;BsE$&! zzvAx{woZJVe3#U4@<`7CKs-3l1Vuh4M4qJw6sh?tp1r-@#mX_v!15EtC3h!&g( z&f0G-Q(n7uR@ESIoyUCWTsDW{CukN`->Wfk~ zjW!9to-Ul=1#9G<@j0KHTqOk4HoUzHvkx`#jwRwrWmfFAZHGX>C_4t1y*Zb8U29F& z87*tD(dp`G==*qmL>{dd8I)wNs7yo_a6VraPW_FZzRy2>(|dh7-i02MJmXv&nVMcW zLnB1AMGTJi&rd56h?H3nhYSkhrBR+WaB!bLwekYkv3E&)(x8j-5jd9H!GGWyi!lBa zTvh5pLp}OUPDC^{`qo5Rn#~;WGDWifhVRcEy zBRI^qHiH9qXFjtLL&s~nN&Q4U9#Vb>7Faj$4S_qxjOzBWL z7R(W;O3^MnH9UZNWrzG@=t>@aA=GC{$gHu~FUJzD7W_b^qr!43?n~l@ri(clYpo67 zV8s-*DP)D~UIF+Hn8f$0N9Uo^#7j#AI5nU%q@W=ZSXlkV*>z@4;l|OeGcD0{^izec zI#34j3e@-m;X`0>u~omO4*?*s_Uk_LqoWD}%hoCt*coFkP;7l6L(m5{N5^dd(1Vzy zZMb61*&y>E-T;RAMaZ#TXT1bX=&Sn=&(kp>tIcl-ooiI4Fkmf(hSgQ!Flf{J`*u%7-chTbX6OHTG%ru)P@ERs zW#ZUOzn6h8O=&ZQ>>H5d7fH_wQ!cB>cUcq}8ftJ@$OrPT3|E?%94`2oCJdQE3kH4s zAW^@wx%ZRKP@1V?;4%I83>}uj8m+2o`nH;J_Zc)`8Id|25~sbVcY_D3~3B_#h!Wd6MNDp8C!C%zw)fAMl+ zhqvE~^apc`cLW=Wy+zoHYq&&1M1z6^%tkO3Au`TI3&EFdMkLkX+~owkSvQwhwBbBi z7%j*U;pllypmWG&QnJp_1Imx0YN4z9M4=C*N|8?~%tTQu>{RzSW2LNVjp>f;+9zo} z>IX(+^;q^Z(fNMSql_x(P6vdCeo&^o_cd=}P-Jtc4L=HC8Y_yR4k(gJZ7#@ay%Y}q z)f#s{(@w8Ra3vMuOnKA_CTeh^<-6|8)`Ba@T5KG3L_HYUp(Ycbq=26fk+GcS@R}8~H`(`V;vTpQ>4O_P z8vf<;&!`4N=0E_Hj^>G9ZOoZ|0YwD$*wSauq>Q_vlJy7~^}Q@$USm_n8B#|Gj6V{s z2gSPs)|4V=@#r(Ai%_bE7i>X)G9QPjUo8t`4_Z+yG}F>}w#FTM^dVU-Ej%Jo-TKyL zS!I31w1l=CEP`bK3R2D)#)2;jzK$^0we z`nRY)GKUa<)f?EW?-nMaV1?I|W=M_6AaB?ous+kKCroLU2|Iy^|l~a+V{jpoE zJODd)MoHya@VZ$~kgEF8S-K6^zOK!3GVIo8nA7ukmfJ9EjoI8b`vYlCowtldvAMfC z-b;U`%#JU8#f@;wCeg={JU%_aq6A+e%3Va{ggIGVGkvvl+bOQMZqKL@#e3t?#NDj4 zyR(;$)Rt?>rGbUwQ=HE;Zi8yP{dX_mk-A|CG%#_0GW>rpAa|GW!{NUv%_)zwkHMZ| zyjmx{sy`uZ@(bf3=~Qar>Yo(MJda}sO7way!;8pUu@=s0k9^Z(y+!UV+rOP{%i!Nb z!cby){*dAe>Pk|*k8QCUje+8hBdafM6;Y z@{=235<)MwY->dnT*bn~ETPUn1y|pF#xEyE1Pf4gN zO<%{->*^V5gxQcu)h0&ScoWF$X=*t4HT|2sg&Z>29lTtJx7U|Yd!}YlQ)QatLX$ig z67AYph@sq&H=)5yobbvZ@5!UF_}7POuWGLu&)KkB*7c@<>LCL!h$`dml~bdO*$CP7 zLB-}lpB%N7y?oZyjhh=&_0lz07Do`dU~^=aN6Csm`^0gw@+KLSf0h+Gi!jTuO4Nat zhp$-$8MR%ciPJU~0Y3o$w@5tCs%DgeW0YB3_WeHP2$W@E?^K2=+i+J1HKuLEH(! zauvd@6fYrjex_|f@g=P8q=IHsm5U7xN(*}?Rn;PeA3 z{$@VY34c3Q+g=hqjCVLRFigPPG(gXcXN&G>FvT3``qjdUw4lCtEtZWTmyPi`mW;R@ z2S4;P!=$>prll*cF*Z~{9KVNnJ7Q8kM#FDZ+fP4{irZVNG*RpeigZhVHA)QB_sB4n z4?8+~(G}NmZGddyR9~evwsMoE+xrb}7x58Yk>U}vYnYyYLqxN19c+T|gVaI5Yc=rx z0!*XeqpI4G3l0Kp;5UersN@oxadZMGhV63B+8L!FzH{{Ph#&C*ttOV2%zPHwGxK{d z&3FEkrcPjfGSGGOzptkgzftozf@U1NKkalRCJfM~rkrfeSXwatB%twR<8gDZ$nOa_ z&d5)FkE^AY;T7t#HD7V}Cbtu4GoPvIST?#o@Q_~a6??b{?lUbhyS)#exX-VPt+x7e zA)7dNh2|QoJO8FG6eTo+9f#-TF0>yU7pjn{d{8kVp4-RTh|$d58O^(J&?8f)u>@@A zarnDG-axPmzmh(AH$%2C{L?=DgCYmUzk2oRQ)(mdq$MLl@K31PmE(s%4o8~xYv={v z{HigP9_T^>Ect=eJIj?D-0}LOk1DZmb?_yjnGU)co?%#A)pu@l2jG#juOh@)Ng4g#f0#uL&4L^!vG@>AZ*!`}Asw{|*2Z*FQATLs2+MsiHS7WNt z@s>-g8COEG`c=v*83`{55BhY21ih*BtCU}KOt6-qi#E5;+iAy(n%c~^KmbtVqI}>}%$%nD0+b*YQ_gtr<$}v8A z(1)?d+pZo%>G`?#ECxS@);*3x!%|lvAzKXp{r{MkdeCW7Uw%tlvb}<(l5JO)y|QL8 zcT%EGFj0z%?`>47(q0a8BQKV%KHuynp5Ag!L@Ue6Sp6h;5m-^K={OJR!#k1)VM7=e zKOOyRzr$s=xqXz7f{o%;73XO~`m?UXgg(|Rn~Z;}U0(5qU+_j$VC&{KBEfzQm9Ig1 z&3gL;e8@LGtq?J{x4udwb!^${$}YAjlNL{G#WZ6|)>3zuwpw&k-XMfknv9_oL1QJQ z$;eE2)`o0d@t*Aac8+o}zW-!~0r(Qf4dAUU{aYD}3u%+wH1($v1)1_-5 z9kLRw3AR}bT{FsBgM_3-OF2bVM=#0MV+_s2r>mMaEFBF(Hai_X&*O`)uQs4R|);csUZ+sm01zBACJzMXb}_CKp1$jVb9 z=|KDcq*26(0~ml$Osvwms(U=!W$~J|TPDFsp+Y#OX8YrJwj-#c#~4kK04+W2S%e5< zF)e4f%Bt7U`zv}2_NQqtmqfyDHiMZ3`@%cB7uY@HvD)<5$95=fbXoNDZPdBqoq}9; z*iOfAb>-hX%B$m1ecHGT+#rP{8YsV{;{qlI)VY@MPPcx{Wm_XoRL^(&OR%JGx~TQhtL?u;k(#B6x$0GD zx@nJbXn=2q>$_~I>@Y#b&)|?3gjZWq_`1Y`mf8H08XmW%y98n_&INALlx(@2yBJ)g zLG9PKLVPuow#$|+AN(WJLvigcv(EU^nOi^bQC@xw^m=1%F1%m)di`y-EIKa`_HmPc zs!;Kv6j~VqWT#Nhgr=>^c3?*ZX)}&;FChL&`~-q@!5TY6qko|#8*U8=k#M}X=t(}^ zR@Kh~p74I?=yg=z=%E)P%H)k1gln zXT(A8iC74J;BDPhGUXAWv%}z^&=LoIrH!$q6(#^u7%1y$_S!dF|ia{QKo> z)_xpV=cl|B*uEq>0|tg8RJZH5b2uv2qh`a|``NMUcOC4D8S@$7d{_V$%cU8ZBC<6! z`EtnDU`YIvVkQo7%`#PM>A~h}>=P4SwdTLd5?RmrtPdkBOu}gUdUN2H*`FZ2LEfm{ zy+3VfxLd2LEdKx|C*Bo)B8lSjJW_34O@wLoKJvPs=y>m2ELV`^awff?($SI<#aX4C z-}v(+1tk#9Ck^9)Dw_OnqV1q-_;31!pC@LI*61P_CnZCPav1)K92i4TYqeot%aSoc z3a<3qW|ex<_@4X3*wtvNP+%jp&h(Ta<-Ra42)zliS>~UL``xs$m5vAkOnX!K7Fmy5 zU`s8LrE7*KtxK+N09Vyi3jkWYc;B|*)odbF5Kf-_22cfW~Pyq;%Krt5Lu)DDbv=E1U@>rI{vXtBEj1;|4h$j@i1 zQ40=L*$oNSRf49)nN#0)vngW^9)GM9w-w}Mj1G;@P++iM67_jr1!Tpj8Zxl^yvlKZ zZ@=;R?f7Bq?KqLi{^E|1>2zZJvFyRF#Y~!Iik740GgfEdm1GG;=-Ia}HcADr>wK|k zpns+L_T$<#@)oBmTcXM=%k`m_Bu0W$(DO5+&#*iD-0^Gq7sJK^!Y8H1&U=l{`;5-x zOhKnjDv-)0CrU13OW3{9r6~bHEZZeWF$Mw_wUP;mpEYy_=LX|)fC!)s?gJL2WYfNm z(xzkS#7#U(l=-^fr4Bhq=Cn{_xe}sL_uqbDr+}~f;5Z#kx3t{l!T+x3)x=$9+vRxr zq&Iih?b1EdL8ki&X+e+k@He0HZ1Mt4z#|MU1 zK?OC(_hUmX^iJ3fC9L$wT02?&{(DFsg6^bcf9%p`|T%4aCcmR2>ZEubuKmwJ2swu zhkkt4@%B88tP)yKqf?WUM~~j@*BKjnEW1xggI;>Cvd$JS`w47@cY$N}b~Ws&56SUu z8z+>ME^mA#a7Tg)bnFGbLcU+`*r_#tlC{k4-?~TYP)g7jo|N$joY6W5{4MNW!I|RH zEHlR26`HL`&mCtK+$5Hcqt~U}?gO5s*Y8Z9-2+Pw3oFu2>B=)Pz4Ef|&zPE6tvC8X_m2l@I$?hM2Su;4!n0~ox*ruRDFMqys6UReGuSjM4?Kf>*6q~cwl8> z?zx1`w8lh7i4t}n7U3O`vW1>*#p79`)m>VU-A%GE;I5f8r#iA%=w9sgI0!QZOdxPE z&kg{_F7R;w%d`BSd}6?nC2A(#(Yt*=t5XYe(BLNml)LdW@F&n!3nvRNSPv1BGKm^s z-VXoxov{3WF%ED0gUBP(_rP=DKrKAHFbetsJfP4TviSSCv5}F{;Ri6a><}1;iHyfI zUI9ruA+s1a6oC=|3a~qZi~Mfqf2<#b^*jH06ciP-AB+;r46FcL2OM9KME&G3>q)mD0&8_ z1m+3WCUy$;G)^8aGOhydHa;=|B|!oqDq#ZQI*|s^FJe|=BjQC89g<~I9nxVk$p4#< zlZBe;fh7QhlK2c%6fy#6BnSpT4+Ba1o^N=vfWxpba`?}oB=9t9nNoIZ4H|0HsgE?N zDy71TLa3HA$@UE$CaF~(`Gh326X;7T*BB}9%^zUmz1v%kzxuNYrU18%k&%x*=Zsq; z6fG%qor5J#>3>rj6$3Eqi=qph^8eO2fiZcZIW(J&BNhaX)rNZ-BXztX*B?Os99F+F z92R`n?Tmo>fZnJA!g4V`)Q9I{O{+El-x-dL_J=peg>Y;$Px4%vN&` zoma-aRNFDl_3OFd!K#|f5kv5>XGKL@cGtE>G;&$gb)4C#%{|M%krm>TA*KAwsPnudweV%VF4Hr2p8|J?R z^b^fJvT~!StFqVxG_(FwpY|!|i#VQ#M3_O~`4i{Dh{IH+$-TI^xuj$q6w!a{T-nm) zI2kyq!Wy&M?Y+dk9ighBenh`GHBXEf5XW&HTF3?XPz5eoG!yz1Ylc2`V^AmuApY06R5QB2me zFi)sgDKYq2*#3_Ni$e&uINKfUh3V1;^X)s75}vQM?>%?AXSiqk5iT&6{|xGLfLt~* ziey|QvyE`8g6x22S+44=h`o4xMquSc<)5K}rb4QVJHc_6yDSAkl2MS_=Nth@mS4MulI|DDVko#xB^Te2Y zGeOLb;ln(2u2TYp)c!OA+I$+F{g$qjyteO0yI!9^fK}R5sWK^3^hW_^sg>HpAhy6< zr_ImR+0XY*EzR!XXqQJCL(9gb<%Aai1c9aUBKt@Bm3{{dfr5bpXot!mxOaa)wWN}L zr8RHHX%]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 WSdvL6r;UWmNlHsx1E!(&kN??;Hghxp literal 0 HcmV?d00001 diff --git a/kinit-uni/static/images/banner/banner01.jpg b/kinit-uni/static/images/banner/banner01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c44d84c908b2bcb048e4dbe438d1f3ff48058f01 GIT binary patch literal 39640 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 Rl0umNJDUFcqcQ(I`Cq|3vk?FQ literal 0 HcmV?d00001 diff --git a/kinit-uni/static/images/banner/banner02.jpg b/kinit-uni/static/images/banner/banner02.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1086afd3c71c51472b01e2b8b1a14be3587a5b9f GIT binary patch literal 37061 zcmbTd1z1#F*DySEh)9bF(lH?2rNmG}52Zsl0}PFnNC=YB-QWxzf-@kkq|#jjf*>s* zttjx1-uL~y&--4_|9;=~or~CKpVfP{>#@Uh);0KoNUJa;D_9}gKpK{sy!Ydd!vdjVT_xS+qahoG>4kRU+rp}&W< zt&6=6i;cY_%uSx{ptX~Y1!gDDW+JXFr0t<>?*vm1^s+Yy)G@RTbg`ATV|)03Mb2Nw zAMOFS_pxU2hr7CY%lON){UI)cZU62TWMlaQ;^QLErudsH%Oh<)7G-xYdlqp4QGQz? zVPO^t2?1d-aR~|G`z#_t!Xkn~*dGagVKEtT2^kSdmcK7HEH^JZ2N?)R^>1F-J9)Oh zmGblR6YvuiaQAW)6qc5j{!K$fgdYpR?;YUgW9`rH=FR>O1(3bBtryJ02j=d^@|&Wy zjk~XpJR4Thzf^#GXlwtA@PD)x9R6FcKhWMj5c~fU<3B=s8wPmT3qtI@-F>}m?XlqO z{~%*+_rEjx4TzOSM%N359TaOIeeIj57vy%}5DNBGPB~=tbLSiZ) zVPPp{QIMjjw2-KZgtCy7u<}1N{u8dEq`0smNJSNkDIqMZ0#Z_y0x5w+#6(r4#X&-% zivQqhxOw|nyV=_R!xx6-`!}x2|B5T4>}7B54uqXC*s$TAJmOu8Df&B;mlFH&L(qgKTD&l|XEv+OZq6!if zk`$2!DT;|HvHgu}_y1xuL98%>zn$aXoaLV`tOx#X{>$~TH~$JAdpB&vcws~1dLKak z$Ke5X@30|=bBzH+00{B%@d@w=2?z*D2(iC6hzSXaZ;+9a-XJ9%sqR>u<_R1E9Gw5kAOIX(JOV-@d}3@T9?pM%f`^YwKuCdwz{khMg5Z zurw)I@&AqfZ`Kj-*pzUsevAEwTKHcL>|aoX0w@9(?*VX~6` zQ4=e`Z#5~|u-x(gqW?E*;(rqr2MfmX2j#cc|6R@B6mWmb_Kz|DhhhKUIkN6G&evv2 zHj9akJm`>7#SNiKz?-CW0eSm@p_9>(t&s#q9rX(`h^=zF&{ai3P^dS(owX^b&zi1! z##2yEGv%)_;$ZpLp!_lT--CtK`aihAA8BK#DJWTg>qYUm4`7E6YYi=me;;>69AVaf z`M`~Mp`ZK6(z^z=RrrmehOg%EML_nbxu@twNi}08^%6J|=Bcw<@qv*-)+X);ZIw

    -wtB?K+}+jmbpC5} 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

    j7PFa!NH&l+pFwQ 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

    =9!F zaB-Wc*K)pVPIM144}AOgXIuP*g`ucOTbQpuYmio$;6#)eZNb3p1Dy@}!?V3_io>m; z5MICLt2`llgic#EV7_%fs9y~LN-{Z&jg zd;hOxrR4GamyHW46?POl$ii>sh~aWYYoUTm$)w86WF?6auphh8ia;O~1% z*bg%T{ZF3>g#K!O>HQHI4h>DE|NBAf%jOS-&ua@@%xyB19D4kx5gYgsqf@vHvs{5G z=}8QlP-Qp&a|&x9*%c+t;Jn9M%VmS|=Ba00YrlAr%~@8&noZDeM+D2_48>jOdy{&eB+*#`UUnl_ z*0?=rTe;FTqDU8d%{rhgnvbfsshQVZ5(1{~EmV<%!a$CNcHDAn*nWjMDH*f2h6h(r zUD&Xb(UhF3XF*gJNuiO>)dC*ZT0H-c09)*JQ+!jpRnd-p*12o$+8ZxDM_ej040t}6 zWgZL#0zGCH7l)>##P+Y47zZoo(S_~4i0zd}vAGmcqa^bmE6Ct2J3I8g5gQcWrix9fcOd=4*l{4*Z70pPsGenBwH^XAeaS(Gx*h zuGF;v?~#>nt#%JxzW(vSZVl|&ayU!a*d~}PUv<^{QrONs&b(oiaD#KKK>*MtcGfB4 z%g3(@C3H4w8vZKl;BXUiA7!!j?JGc5jA6U6&Rn;Mh|cz^nZG{rS=aDf0dfvG_t!yu z)q_J%`H1mBaBG(SrqSy(?pV=kY(!$d;@~ZFFl)GO-iGT{A^F#)TBb^)e2A2Pa5_ai z0HUa`RtUuICFU&4Zp#OQIzZEz4ks=q#xGwbnr3fBX!dC&rsx<;PSetq;D2_KPBV+@ z(Dr!R!d+)BgNMcg9cD&#Lcnj|PMu#DC<&A+I3J&)RmwDcIPzR}BZ2bXr7%`jLUk87 z;jTFI#X*+7o`#wnuktia)<>vO;-#NB$GKomgl0dPli-^N(8irew(be-@hRV)c3-Gx z-RA0MSEP)1>y|{ppV+w#)A+gFu$0{kyYWYW zKfEcaMqtouISTce2Gd$}eHs>z>janSC1PEVDj&@krH*k*K%4$rI+vnrsXalJ2MmWx zMi=MtvNqM!a?*)vdj$GneyNhlVMSi@n}>MZYivq>%FpishtLPwXFa){K9~g&23_gp zDd;Kc$r8uAXrKwTv7Jy5N-}+xZ2F^I8k;3hJ$w!PbPQgg9unNZ6gtv~%ZCSe9U?CC z8-6!X5{4~@WWlx=er{MZn{jca;c~TWZ2e0}=cCzftKUum=!4_F<X+A=0?ui*b>MV4>>yiWm_p)=Q{0^>pGN*R zrrqY3;Nn*~+Gb{e-vMdcETLRcHwrT=silu)Dn7(Y%Jns|xWwgdE`cvB-4u)47atf6 z*NIv07CA==kYsjyF-ncvW^<5Yj!S%U&y&BK)USFdKDDO=+nLbl8vRErF@@XlCT+m#Il*Xj}M zhQj$w^B8tc2h1`4YXcCzthfmq?Pm+^ZeCRT>iH(iZ4?fsZEoQ!GPRw2b9ze&?o$hT zb*zz&dIlA`?)?h+&h277KFr1;)r+$CMcrh_y3WUcv|Am3P21X>SG0ASr`>dhmo#Tl z!ZC1^c^=wX+{PUg(0idXGN;v9)EopsxeADRPR>2`NBC~(Y8jymC=qW2w_z|6*UU{y z^=a86c6KvQLGuYy*Dxn+cPFOmVO?p06XfwP+?gn{lv4J1k9kYv6aP@U%tfRsk2b!sVR(DYoeCP7lN(X(Ju&>0@4M*8sW%MH0d zP)E@C|37Sto>(~7CQuk&NoJ&aS3{252gR$kRWlfZ+);_5t0KG35eK~^SMk}4NTnzi zF;^&{S5_$tO{KJEzt2C52*LO56S)QKdO~*+JJ)a#c^N19UtIfKIq~%0NV1V_nTU(Y z&-&kAKTAnBBY$SIVtk4tz-b?_=J)|q>1ZN@@0K}`W=SobUEfQd&(W*V!!AAXt($pb zLgKiWekV>zn|+PN^3&wg2WgLLdkgFRF9YI?3gERy*=Yl6z_fa;eLjOPdG1t;2d3@e z2O}wvOZ9fyp0g6S8APP`fYg4<3-xgQ!@yhMKLShKM@s9RG$(MwQ%+-EVYRyic|U7D zZ3q14c$+@oCH zD}7S|z5?ghhC?k;firW*uO8mVX0agDi*jpy*WH{F*L}sxYB*_&tt3TBf9Ll4$2w6% zI-YKsFs--D!*615m;wE7j7+0jLdgA6UTCB+Ran+PNZShXv(AR=-G@w!vTC41{SXMP zmUiHV^pg+#OjANe6;G&>4QcxngObvi*HV_6T=FcYrHT_2@n8B{n!T^};O*tbLoqp= zkkD#%#Va8n!V?j)Y{@&s?;k?k;x*=D^16r6iw>2}4!B_OL!y5KHq9-U^v@?#-zX&% zef+30oaqRbcXb|TF$s@;kY1=Y*B@5JkRvI;sYrLlubB_`x1E(<| zbUtjA-Fi=UxmUsM_8Tq1XDvDWtgaQq`*sm@lEbuW6TBpBa6^K6RFrS1YV6Wg+T*si zlhk(oCRy_2X;70Q_u&443}ammyA(e?UgfWE z)dTO9!1Mew*B~JS>P2N>rhg~`9XWcZR+}=h#{Hf9% zp3l$M>E*A!+;ut6>ACl+;ty%ajb%`>%crpOG;AbqZ z|IT&qbLwCo2fs;Fy8_o^(8J$vbNasiqG5{T8O_Vci~G;|keK-YHGCxE`JY%;u80}| zTHavBNkVchy|532K0I=%(JTUi3}G9@$TYu}8V)@&{=^oJuGqVx5anVJ41XHsJlpxQ zxn3eS5_|rczxpRCayouW`3O5raMxC*hId0l{pRC6k43TI85}aYmMXs5eKXXAHCba_ z>qju92?l5*S3lVWnV{C2#~h%odn0ilOFDiQ>KRqJ1}RD1k@p`c4mGy%axlGI%@7*v z-%@Xm)~R44`#mbE@r&5Dn=W@5-74BnM7;ZHGT)EwQ?ouY(K6vj^7xpal@yJ%>G7O4jyiqqiv`r zHcgL8$-`z&%s?u84;A49ul&fb9xGv1Tp5zhzgoW&@o5aubDoyJkbVHFX`W%#juu8= z#tk-JQn)Ea+lZ-33Li$qi>Z*|UDnO7L4 zU+qo(IKaS^X2t+td-$9!TDNk%iB;V| zMSwXQdVn@Q1sa4~SMdYnCToZfLoJ;%XxxIZ zPS&_T_UB2!Uv!b4t#`Mz@X#eRx+UG&NGtP30x3+>=RSH8$WQmmmwD zg!e2>01|J%;Nx1i-Wo0!X+6(bz9TfLQ|7!jP%cHh7R1e^_2@hmPf1BRgIExh zAt(|I%XsrexrKC8@W+VDq>5`q)DEe(rl|1xS ztH(Bq1l0y33p9|_945-m{2xNgf5VQs{*%9o53nWt?}_pSf2aUVo=^+!M5Gt+6=*DQ zi4w6B3Q2kg0t3&OdF5Ih>-KjC3uLroJc!rVau2!+`a!VCIRfIEeXq7-A3?U@fi>bg zoVjxlhyM2$$#qp!m=UFX{k98X|N5DDz}*4KPw9k$1(CEWiI-)a?a%DOQ>weZ?_36q zH2w;4ihgQe=9&70U?VQi$Cu-HbjD$VNzKWUfOn8L z(93I3u>M_O;&WT7eJN*cnTJ)BPq?#2|3#3EAP#SAETXp0ng~!9Gx>pqD7<&=sYs0a zNf7IQF?j&WzDFHNFuJ`TF=zq=FXB6D+^aEnVLI-a=+H`*SFA7h2f-NAXeEsM5=PNS zSMt`K9SVf-pKE^P+MtHCT(_)R1_};W2P1cl!S!V{dfo}(c9q{#CR)Fo>Z)!< zYRSWtCjS)cND96b%Hqk8==~jW*7O{fN>{YA{#p_^3#p2JqT|iRB?-3NMNCm30fg%{ zTso-EfuG4UpJE4wBC-8%^@}VccjBRLS`s=(Q*tzElLGVl ztlZn+6A@3EZ5cDb9$XtGCU{mY*(9+iQ6@|?Ae(2w3s=Eb&ldNpmy*N;@*Di9SXUl& z>S)|jM%+n~{E6WxY zKF6oN!YOt=c(ll-zt(XJZdLsjryn+BAv-;aC#gm7^v*FC#nujdtd5d+_#u)lP>TB~zlDLs>4@iMa}b1V)}R=APe6qw^4^v-bW?pLyjc&iI6LH>-jYsuxxh zMSKw-C^>nCFAmC~^dDa6114f`Y1Ebg_ul`;MPzt=HNF<$!>6VEH#+z~un;0u zuF==8g$}AuP0pWN7P3|I_ZBX|iiue(FSH13ZHaV@}uJdyH7j9uQLqLh* z+;Y~Zx5iE;=jW5Ah~b9f%-=i{{c-fWaj%rv27K{^a`%05F>pepDCJK>d)M+1RqDA(4&gB&6r;XnqdX zxhrE|S8C^p0GPE_?J3v9lsva~j`|Qg+XPMKyThyRVVFvmCO;xai4w_rEU`OIgtNBJ zo{2;*M9DmH)Wkd7%bG;Nfyv+penG2tXqas~z)hNrNcB)O=;i5AWl+Pf6JfT34FA7P zZS{!FQ1eRHugltg#1-fF=5!gW@2(2X?oI9?DfZX~&S;^rJn4QC{x77*O?f_#xtYDb zb0{GoBQB|G=GIL}u&vz_1+Oz!@%Z7m-6_AX-12%jD5<*t{pHZ-%f<-bZ}mh2_U-WB z@1yX`p7`|VyKDQA;${Cy?zu02vqH_KYcgw$Vh^nQ&}{6{gewP%7_ZV z<;VT7cW&qRxWNFU#2GCm{B?<^d;eeEP4NFs3MKlVd=avUDuH1QhErw=gaAm5F_we= zkpGAVU=l(0mfacA z9Xip{TsD%+6mr~`xzll}=`y4XDYv=g9_o;gLKoKWYpU}*zyH2_?fE{h=lMLJ=kvTj zpYP}Syjy28xz7O?TdTw?X0L>=SrU9q2^i6tYk~s>ryd+e4paH}&fS|xc;LjXlM43IA))Bd~uBiQtK;9Uy`gxGfB*$ze4Ftb>a#} z%~FD?XW-jXNzRRYo4GK`Bjdv^9in$OD~yanf8|5O)x5U%WF1cFHoRia zHISh_x_9;t-}=yHRin;Y?bvDcm89u^!nVWK}pZN!ow|83sF#H zKcBRNAA9O zev5UExhXSuPg$vOyhyjiTsB-S03n&M{mr9I&dFVJ)6bD7S9B`AMMMSvX@%@46cp!- zg5~87>Y4jpgn*{%*Zd;P7ov8dY^(S4wL4ecT4Za=i>q5uOHVE~ssYvF=#pTgn!;}& zJ-mgw95qA}3U^xM;~ zNDEq9Egw$8`&^QZ0-nKCj1#exk}=WuJO`yB3_H0CNFve!liIL6wW%+$69}wh6{a?( zdyN{hBo%-!$fOIXUXe;37sXhrWLAMLf@DdHgF=Bys+jcxQ$Lg&Dg=naj20jX7dTXY z@Z^O`sp&}TGZ`S=rHW_K zJ*}n-7b|CDeCn4Oh07->F-^a&v5idtfkZkH%)v zS*DM&d_Hg)iCU_;$r!Cp>8*zsU(&3;M62S4wi0dfI)YScc;PLGOpd8FmQS*c^2!xS zRlrb+a^s|qayT4Bgg4KiIZCBpi&iWvqnBU?DXj{kE$N)A>ce z-uG-J!jp0KcoAsZvHJj()@%ud+J2-!^BD7_W_lgh$7O!9x59;ccY*834zNRYRlQ=8 z$v(wkb-G{CRq6KF(-}HX+vZ%E%MM9*L=D$y9lds+Pc1b&p}HrG=7BB`j;o z5K?*b(3v#E^`~Z7L)~*hvv6atw4I>UYwyY2^K1I3wA!+AY9bQ!Hw2A{))IyUfYf4X z02lyy3%n#BiK`aO>%dO+Y#I3~VJ1;=Gf$L33J`o0z-=g~GMe2?N98A=$StJ>6?se6 zZ~{zf1^hfg7CgxnN!=B_`#uP1@$}(UzWD@*Uy7Ug5(60ob(o=(vg@TLRKa#4renzq zbw=WNyYl35g59(o0ApZp#8@AT#%&<8QMh~&cQ}Ac{$I5=zLhGN0C)xX#FCEsp;`cQ z!j`;6v+E$|as9_PQLSSXe*|B!3&7=+_XpWakgaT=nEE^qyY{-pzfEqw*$8ji-%q-$rU)dFBdYt zNx3Pl-O5=JJHn#!;jT#h&JnCOl9b8R`=k$>H>>!!85e# z;CuaL&0qb;u_E3mt0{fYk}mJ#%ckKquJhUZXDsuFNhKb>XC_eRt>|uU^5<`jK8u^2 zYA9%Lt8M3t?%sXf)yt*x75WABqr8C@W-){c&D?>7?rk73?? zJRc2F)#Qe_ETyvmwy*E+iva6QKnNFggH-beECnO}fu$QJ<{=#*-h^3FQ^zsq@W-}l zUd9pLi71M@F3k_k8^@ zvM}t>V5wEYXZICSK#2DB(7GM9vF-8ftOG-8sMKQi?+%76Q^#&ZCrR1w?`@R^ZeJYM zj9p7Ka*IzTNIc~cRqGS@Zn&VOZ=gh8jeVvpNR%1*I90YoLS&;Bm(5G54jy1<3NUnpJ$+aKNl&_Ed| z!YTt|$iSu1>oy&bHk2oH4gfy#?*!)?Hl4tN5lrxo%vd|EXxZp6T2oLXiy2GEbd2zk z!34TReGb8=DtI+%oq(MGD}zpMwq>V^g;`hAu_w*XrU&@%#smDI!8Ev1XUZg^kX z>+TKnKgh}M25-ba{#T6asa_kZPZ0L_)?+f9ugpJq#0$vw^d>i;LdtQMi literal 0 HcmV?d00001 diff --git a/kinit-uni/static/images/banner/banner03.jpg b/kinit-uni/static/images/banner/banner03.jpg new file mode 100644 index 0000000000000000000000000000000000000000..092a5fc234fddbcdcc6ed598c30f6e603aa9b9f5 GIT binary patch literal 38123 zcmbTd1yoes*El>#DH0;x5)zU_H=?9;HwZ(+%+N5TqDZ&o5K1@F4ITS6_YxIj=ax0ksSH;{{m8z3&_ z7m!~-P!P!RjF$(<%guxOC&&rp7Znf`JE7bnD(@jnz~tXx4Zc1~_~P{^};islwjcQ*+J zl%)Tt0CrMQ`7gr%tF^%3d%gZbySiyw{kItZE3~UN%*l#d)5;a5)7ywE=xO0Q68Dsf-*uvveGg<{IW7Ypzv!x z8EHNd9zI#Y*F3_&*Z-mMzu^i>3(Cm765vH)3Ic($GQ#{o5gC3yem-ewJ{~~<-v8h# zLR{Uj&E)alu4Ex~83dUg;? zsHZF2{p+k@} z@2C(&yPE@i1YlucU|?ckVPaxE!b1Ij{16N4;bUAJoX0pgxKD8ZUQclG37!z(;}Q`O z6B7|pQ&CY-)BV?lhK-Glhl@x4?_(?4M_*|&5`VQIS#}AGFca=tI>Q)8}6Z z*LZEW=K?wjx@7z^meqpevhG5{glK>V4*(eGm{?foDDL;hdq9Xz4}6Lttzqu`o`IKW zKlW=yJMrl9D@{I33m3+N*Zg<009dV{|DS>`7zF%IT~KwDy*M_<%Y z_w+CS{$!yV=%xApc9Ecfn2U%tLsIVna~~Ak!~FyOAF%r;=65fGFh=h?USMhnJa{jQ zg2Kf3`6B4S`m5=nIkD`*qkLZv>A#~EZPXN8xqFc%ORLg^Bm(LW zlX-GQZ8|E4HW$>1N4DWx^$gFGDm;*9d{V0ewD)`d&Oz%*!U8NBcjQC#lE?U*P{dFR z(@{LBZlvX!Q+~DQ*%TjvYLmO}^Y~3ckAc zgZrNUw}SV6@{dL+3Md8DRkT@i|EEds-HTwXA+-sf*zpgiSoOckixZ)02iHS_-xd-r~E?b5;jV9@w3lB`De{rbG;yk2=<;iv*3~wd|2|*Y`=< zb#!$Z%u&DSc@n26@S;N8Qm16yMmSh71#Urf?eitzQrGMj#C>BT3SM_x8rioTp_AXG zVQYd2`^Yp|>k=oAf)rdb+&$BiD-*0V+8IGw5o-KV1=TXc24WseSJ8R#7RYyf@mPxS zTo{O*=7-CJ`*lO6$q`c@+A9xKx0tWn4<(d)Pm#bPL4CfE%&$6>Mw_m z!~VL;e}+QTIQxG%*FPiFy+fg#r|91AHSPlu0JBEstL$Bf z;qT$EMTIkV6_78*v*R%tyA%@zQ@M9-he9hwr!4z>9YaqwOY~bqHZWfUn@FZ8*j+p4 zYRk3AM{Ogl#A@#VjqY+dU?0iJw{r*Z;Y8uknCefz`5NkIS(fx74qXXNwBU0Q)zDup z3TdbF(Xo#%U$_m_@74sk2}G2X=)Bj(_=KS!DE6?-D66PsB#HW=rMtC^phXtq8i^F# zE#s`DcQ77igctQ~K{990sJ-4&z+eUk-G}5eiTuVf4=#K;I_)pm=O9NW+=LVkeO5D=b_AaeqkeT__vsaY4~Q{qO~}tk5BSc zxha@0#23=jwAAD;Fj?C=qH5Y2i_e{ZCQ;?y*Bj?3!knmwDa<3IF4wdv)tuET;1kk3 zxO_!33ofe3wIPqL+uF|R-z*&EnQ{n4y!r)W{bhedZikqS3?{~2K$fk5Z9en~%+Zl) z-?aW(yNu$$v1G49@^yY9j_tG`%xMsm7@D-ECH zM*ASrs7@29)jS80H0GUCP9;>RSh2>4HIgl*&I&+>r28ALjEv8{`;=Bu&@u z03DS9MUu1Di)OJQM|#otmNP&^Ez_u)K<8tI*wS~c3F6^KRq3wa3N!eJqV1HmE{rD% z44qETCS!gV{X0d;m3_1Q8ziU+?SB6MCmHxV_^SU6jDJ&*zwoIA8gKsRJdO%1RCxWJ z$M0iEG`@B%DmqL*=a7_HgpYIfuzHX&f-7T9>7W$YzI+*blE)GqT!lMUWr<4@e7yZ) zL@=d}`upxHrt%Bv`WasV=f0%LsNxOsD2m%%yp7n0xit-cQPT*v^wCq!T>6_9sCuo2u^C zghWdc(cZ$Yzxv?8xhv-{K|pZ^An>qLEgGM)gNYp{Ax(3HzBBNucd>ueQ@-pWgafW|C zVmz9)Pr%w8sy6_C7hP+;zP!uMjrOiQny5G&m@p2@l8sNR zSOwnjI}gN)e)>5?&1#%gx4`XS_RTam|4Cxn>(b}+bBH084hrY|eldt3za!^5H@5r7 z%;#U#Lb4wiN)h_WHCKr{jm#s?Sf}XR`@17x&R;%h0GL7yy*i@-oQO)`{!)l0TIr^^ za9z$i`5L@=N_9LDawIEly(d5etgNJEJG~$sVz6#!vY)S!o4qYMI@7uXq}3r;Rz4*a zdZN`s8&X;|U)jV|$5>W+-5|!`X$SqLb;q4jyOd=q z#|v&N_q<0P3FdK%Hdc>u{q+*jUyzSiIrzNynfCYv`Mgs)L9vFsRi&)-ll#+k>7N#S z43FM)t>Y;8Z7u(EG@DdKCJ--4H`_Ec!XZMH)6UmnXL}bsRbFgbq!@yOYVCqn{b@=8pXAF3TUU?9~{2V-IQ!;sY3%m-}*X+Sq)EXXB3E9Ye7uJ=m7eag zlyb>zoYWO7ckx^gfLveu@`a<~2P&zftx$ z;`_Ms7bxe=tSS@jpaU172Ng@TcE+6oV+z#>L&?fb$K8Z2V`Mo0rzE_c%JL2- zM|8QBi+<@-m$H*ZPUDX7u{@_=lTmLl2{)Uha;Z!Ma$xCDX5Ue(75;Z1J1v4hov77! zX7Of0FmNl#MwK>fGc;dwL+_HJ9_$B<9$%1ZkR2Bj`7k_`iuntK!*$5oWFP4WJxi)~ ztuk{bf}}(!`jJQUki&MnD%bbm!?dG;#Ov1m-@a3CnyB<|RJM>+>+*518xPY)-y&)A z13ZK70A6>1u5zh8yRD_uTB(KX@x9&swmrJ@>Kmkl+U)clz$02Kpy|gQpg90Bc2<2N z3s5NC9gAAA9^p>mkiO^^5qyO$zigitz8FL4;#2jW|H?e`>(D)6_*Afx6w*d zOXV?^a_w^1iH&%NQ&cN07lLIv>z79--oVq2fLuDY!VUK=So{6j6k}AUg!fy$7Ubx= z?|KT++OzW<+O>m#=MVPr-wf>uUb3yEi;@9-CBBLK44-aq9P#7+)ByV$^daj#y>q)vO?p zN1~wo%G3G!4EGev@Q^7?C zVxg;o4hlMH1POiu_Vhd}h;+-am~3mEIQn);quEAED{`12`#k#eVIl_W)s#4()WJ-O zRJZxui>Q+OzW}<*yk2iWTq!-3%q$#Eg#A^&9gIjZC zMljRl$y_%rTa1Fn*|0|OISzUc1`^{}<)0`_REx*<>O22j=vs$ z(mwTe=o?xC(8ZN_Ojy({@%C%3WR-NEZ>4tD8uggDlOELdy|2%smElIn+oE}`(&1LX zr$tXGhxt2IL2N3h)iw1rrG|EeAevGg-;ArF;HN{AI!f@9YPQH&hC9Gar8(GH;bm() zvRr#RbU8xp<2heAKcu9j_s3vPF+M_=@^HXbLu1S=`E(w7GyMG4fQjYLn|;r!Zu(86 zRFR+YvXH>B19^xSQvA*4edPpIx4N&y{Vh~|_@nmvY-c$0*rr&hgegk71h*=y8-3mikVbHxo&T$55Ey{iZ`>r;{4^(nD1c0&sNighLIO&zwwwQ+2L3dKQ@A3 zSwJHn&}B9oQPtVV2DnRg^myCi%DDeuS4>OVdgo~+0>WfVjp zJdDKYYyZ&JY^%%_X<2V&eEwkh$=Be}ITu)29f{sqf>kLSoW^Yop3*OK5OG(UwIL$+ ztr`D~pS$pG?Q%Z)Qn$RYd@UN(9*}CLv3??N;7FU`CU%@S4KLeB34V_bQY5ZIqxvX(B|H&6a0%BciN3{`0Zwu#g1VXFUN4F3Qkg*XqDGTdu%{Q=!PM9&TvrH zf`v=qmo>AsHP7rFAe`Xl;#z6<%O4Id7isp=Y@h#9H2cnjzce2a$+_kA63dd z95UKe$3%8F=Jl1xxT(#}uaAeOo!qpZJ>N3Rn^~Y5OQzao(Nk&xL5NCtk`uBcvb%ph zB9+Z}`~A;OX*Du@7L<>Bx}DnXn#A(Uk7SD$LBG@ph4jIXk4&kjaRRI4UOO>GG1Sb| z#_rD=jG5#|NbnUVjR$C*sbuHWsb)mm56pJD?#{stQl6@7_c;L~EpZe=hzf(n@M-Pc z>_e+nUHe)Z%Yg%=3ZPo8aS9@jg zsvdikV)sPpBelLo*+mg9SrFjy$PUx3`7l z-LN*RHjcL~9k(CD3@EC+XeA5c)9VmB1t9y1%P34#iC5bevx`;on`5 zFJbp(mA_j7B#e#l!e>{k5rYqZ_oYPyNgCT*#`LuJntm5CJ}f(#WcE5VpGT(ZEnnn0 zQ>^Vd0$nOxS&X%U0i8+TaTV>dcfpp44jxPCV3k!(D|x+US0nk%=&Twm37i!sBCxkE(PY>Uvg zWY*%h(`(K~1zl|sm6Xq=#E;M_nQ}v#9#`qJGEEKda;9`Fm4ofz%7@^~{ITcXlRz^b zDn6f%l3g;z1mzBwf!WCw-Qks8>k3g%H@fAHZOJX>a-F0G?}yR9HB;{ZULeCye^Kb=wiy>7LSuc!Dve6;G-sai5N?9CogeM za0MHcQA1{?MT9GOaI6x^bg=av!##dUXce)LCntnNsE6v4c-YQ7(LaKaA;gM{4B1jb z_uIYT7Azwii!sIuo_`3xzG^_rrll1{y4BSpnvnTqAu$b+ufOx(4R_F_-oG^{bB3ZH<-H=H|^qnb|_PeZ0AuQk2FYip&P&wBG`7 zn(=yYR>C{V(z_eGEZBgwrMi0wk+BJs%iF@q-{d2semxfB@Z{LZPRz3aD|k2gd6X#6 ztyd2Y05T8xy$R)&rVZF4KUX!svNAd+sH-+bH0Czi2=@V#b%hKj+X+bp;3tGV5S)dM z8NIEMm4rVQBkU^t@jPfb7K7OA8C%0+DFX#TSze~u_4b}DwbrWv*hzpp06fI(w8i&! zBWm7<>a^+(km$Q^m0ezN@cC~wkQgUhPoMvOQ;=0+U`z_Nuo!N*1N0Bv0i^M~JOfh8 zP0J4k#!;EggL!m97Ld0%ePeV7(D923D6Jb>vOI?SjLf>M{uorvp4YJn zs;<{vV8P`^mI_RARx$+CO0ketcQJ!TPCWF9hGNHC@Wgj5Q^CQKik6V)DQ&@tOlR@> zBLh%J|59<#%rza|2}+PYPw0&&<84Cm_Vxv6`eJH>yP&e}Y%?SIxG*0??)m-4z)R_U zm3QV2bIJ1V5Soc2h8Eqnwj-a$MvF2~@jg8F4$$e}(IW44AhaH7$?nIjsEtr4kyxX? z+B0;>DCMJ7<)#s1@SPGG4x-3J*x;A|5Y0S$T2bwnR)?Rjt2&d;elR zp2^K46V~$iN?QptoUoX4(2M3Kwkp%US_?1Y76#!SvV8C04}UUW%hvQYxMf>L&RE%E z0a?`I7&(iL3rB`YYhX31a~q_qOE$71KfJM>HvJ3#Kw4%m^)OH8A6W!2V!ifMWchJ; zvWb5OAnG`;AD<)5Ef!q41B@AW6$1&9wztIbn|`UGveI;+J3zVY@uWmgAE(>({-uz; z|Cc+!-sue~>qJHELWHM^-cKgNXhyZYCB0*)nW*z|_6WD5&6ZjsHME4{#=Y8mWXvaH zfub+ym#~MU*Iu59N(5#MVemt7iDP6y&*ORDL*$Ji=`q75&vJ3y6p2Wmks z(1MB&lckm7_s8WW-udW7-T~G>7I>e{R(cxCWp_#F& z=(uvtOP^6lbZ^(dqNtvjbF|wO!!D1tWpC;8-S$Q0T+w72J>{{x? z-}ESxYb7S$@>Ny85>JFQItJNJ6Vc&RuoXiSY6IGP(=OdLDFNi&zD3FY68u@x)O!+Fj$HT@hj&ygaO>@M}qx9{xAy+s}fY zQlS@w$8|1#*UL7o-`uKo9{8}~Ni%d?Vm~!T+M`GJ+*Dpg^xVb895j7U9DSrvJXYju zO|<3dJX~E@X)Pr{Atv)UnAw!pVom;$25*q1CB9?c&`7kql3i3r(Xi9Do{!xO@r+{5 zobXC=nyW)Gc1!D~Z-GU)AU%a|L%cGjqy9X}uev&i2M#l{iww-bZZoo*TDYN|BO)O~ z(v&Fk`;3bRvQm5{_0b^x7ky3_&XKN}o*;h1>Tq}8`J}dqy82W%oi;n0f>utTxOh8)MiD|k|7;VK(Lyq})4bI*dA^+a-1NvkellM-&FENkOxC0mA=muy!%R^Ci# z=Xv9&=1J8Q@)ahK!uj$^l8&|NTYws}Y&*?~sx{RZ7~TYd--@S9Q`x^Fdels7Io6ls zRU%1f;Mj7mH#BtggR#rKE?UX-txK(OuP*EX;>AUV6fZqWW`VxBTdtcs!n~Aa%`vj>YiT$-dlnC>!+!b(nB%A>AMM{qqBs@`ezkZ7EEEe z#Y#5AQo5tIa5-wzi*0U2$7!Q8B?#5yJ=ixW{Bv~l=L%eAf=vE*+syLgU)!2CjHc>p z@;Hg22rqckM=3%h4sML1mHf0IO()op_a2{Tzs}S)kB158@)j!Qbg6S@NznVoU^+L+ z%ZhC9U7Og?O+icv9>?b&3GJzG%p6D`9i54oD>*;oA1Xx77kfzdpLSi^Wy&Wyz(Er` zZHQNR8(fgg=~@ollIhdlR9F;0@6cM6T@;=QC7efp`nqNX38Y9#%C8@J_$hyUw|wcc zoGfp>eUoOLbHyrw*Q&p_BUZhaL^|_}E(gv+yJWbsr1`?7 zXDJh$&tv}7_k6JILIlQ(7!0A9uBzf=MGq~{H=6paEG}5uFeuuZftr7Bv!HNm=8b54 z4q;dY)A^xFOfx9PUY7w#Pe%IND{67J|7L<+*wb`zjKU|n#6OuuALRI&(Yt#FF{|mG zXfUN7AYgG0If$ZFTzBZ0+x;_wySBAZTukk>?#I=>sT#OF?-vZ&GWI)n$LFtDZI(1m zuB`!1)S&~GqP||iXayH-uX9F@gI(TTP$?*EFaXbx|b%Rrs%x_oApTF%NNYZ$n@=7A{&^% zh{&VSs5VT|WrK)&Hdv9AI~Orqj0ty0h%qx*FmlTtw~dvUDcA0l)o;UAx&{>9fGn`^ ze+I8}3G@H*rPn>BY4(EE?Os-m>0Z_x%j+caT`K(w(BrjU@DA{dx8L%OUAIJ7(kSl` z6AY|+xT;?DXn<{HmKf=XHG66helvJ=FM#>?(8tl~57q3Q7DjsM@erE7w zD%-C@@f0{gQ7y4IDH;EVFScQisyWWuoonsgG#r2Gp&b*EJe6%MebnwEUl;rbc5O3F z>%e}hJvi5??pGW$=pidtR@^Prh9c zLjce|EKi?bWOP)EU&yKwU8jZ?F2ddPV4Jh=Y2HdYUpXFwdkkY{qmRyca~%>SisFFo)v0&BtO@OT8~A~4J|{dpF7fo z-4fTdy%jj7mCeRtIg9jP`F=a6Gnj?@-GeObArg(?UPJ1X`>Z4@i`|YXktUI-|td$&sZgsM0{|9RMkCJe41b?3ap;JB1jd z=XdIl!g$nT^900ACP|va>g+gHg6ZwI&Z6@}B4kEZ2jt*t?(h+vVpT~E!3;veozRoC zYMoWTkAd<}9DTYTJz_dQsEJ}?8+-_K@;G3^bFBS10F=d(2*JRZ*e?ovB+>TVkJ4eY z9N+7#O`xs*vdP)@oMAfR8YPKH=EF7GQy~qNXvsxarZ8zizD`pc9m=eqCO;EuMuJbL z;4QUwnV^7^1AE6mq2(%B^Niw0KfDf|Z-m-*jpVkm*3fD-`NRWv3VEv>5+8vNAxv$Ux%(K#dO=H52kdRizQVjB@ zcu{EVEn~c5)#Le0cTa%~ulS5jx}Sxv+5BjIxnO zb)e(*g|l|+o35}VhUaKCd`oICWcE8ECpV)CHU{>*cdy!xnFSH)QgmwTL%|{6Ivbp= z$WttNI5Lbw>BlJugZAc3FCAy>J8eF!$%2P110~-t)R6Ng6&N^V?E8y=bIU2jKVH-e8-jg(ZI(qu%JQk_tXyTj%h9| zzJtoHOi3E~QE_S2l1(jURJG)C2l#<|bA@*ewd`DXb1r2T4h9IY2n9gwHeZ9pp19|p=zQ+5|oa6_u>no!ShwzJMIP9TFJ0PJX zew(x70Qb$R1j^WB&ZslJqkaieHnKNE(PuFysM3f^&mEvi_EhWCP0H08|6;qY0KPby zP`yjxBuVOM%{J=1qN#mUh32f=Qpzs!vGz*Ye6ZZuJq)=I9^HeDz6Eh7VR0Bdm4909 z@%fo<+na`AiW?=D0X6X>HFhQONRILYh1Dvm$IdK~c7(xvY(2f1lwOsRcm>CHaf&JTrcq^$IvweajaLL9AQ3ivQbEN2QY*>LEx$F6rCpI$raBLvUtT| zedPu$h>7oKhBXs;Y~-JO1c&l@j~@ke?jB)Hkka;zor_uahduxN^dRZM;OLL=he{bQ z6YFZ54`$@NhKIqE2+Aj3Cae>;!=uXl*3{6QqCsAo9+hw(p8GcnFS&QheMiHx4^8bwvFNOpa!Vx zb4rtiJ{PSm7l}`7P>z{RSVv?1%$)Axl=hPSH$RyZBB4@GVLrNJYDgklYBcRMPP48Bc=IiQlhB*L6;bctdoF;u6K%q_U@24z3I!~QKAe4@~T z!Jhb=sbTk}PIO;?pw9GyZ%0R5qw_@;P zzy!KbujmTvia=)yL>9n z0Nh*q-L)muqa5N?5xr{hbw3V2DK@-v-gV5W?YYhTpiCF&vjpANwq40i+Ys!U0Z11h z<)dM0Gln`nEB(uS9eMGHcuy3x){{M==sv5)hU<`<6jyous%5;zhA2&K|M$7rF*s+) zqRL*?Il^fxqi|UgD4xnyvG6sCrouVLCUl;{#%EzQW*W`K7bomxdHND^4vqsZq@Gt8=Jh_=VD~*z%z8&?;d+aJY#RD37Y93 zvOjR_R60#hCD!Q~{L#c84@&;6 z#l_QEIJDb>B|N|Pcw=0|yT@dwTh*`CxZ=S+m<1A#@OI&Zp zG_~88YB*xkWXIj~#V!>@m7kEQYr?ll6iW`WPo-+z6T^jr0%LUeR-uBV#ymNP-MVa&q-_E0Q3F$Xc0h_GXP!Te zu7w`Tj?~l=V<$Z6jRv`a%3i;;<42G&K-`kn{-edJ4BWjk8$Me0k#Pz3T1ots@N{Nh zxT66BHAz=2OCqfO=WO{`9WT?9u421=wS2pg4}%)943BJxI1IJz+&LMk;J$e^-bS{J zhrgrvhKSMk&?DV8O)%5D27Oc!E18?K0=I4@7123ULTQ>~e-H<7P4PXtU@~FDUj#pj zyfR*`FX?zSv954K-Nos3hQ6;9e{*s033ynZb-*^RSnbhxF&B7UWMENKt`?uM8W3XQ_`S$$pdGtPBU2|kCU(|wFivLkyzx~5&b3<1$BY@X z%xPBo2<0h{DVD0`i`)LJQmt|<^QX5&-FE=RFUhMaW{DAMcBbf;)nu6G@4n-EgnzjH z5g40$9>n`?-Jg_BNED|&@hWK-f-jj0@RKP|Hokqpu|&Tt&0Y`)hz+(EsT;HfkYLRw zG=V%x1zs9IePlbgPln+?`)I7wi(d%wt*-5d^q2BMO9vjDrSNFN!@12bp^QjZjSynEGC^aNj;=o+I)Q+AvdfpO z0`)g>cO%a zovZ74EaePqCyo71ijn4X?4J%t3qw`H{!Mk|BG6j=grUVJ7kCfQs8*FEwJy{uou}5i8jwecC%`K?5Zh4;B4THXCN!b>9`_G>$g^~6Jsfa<<~L5b_IvySq(W| zg4VECb2j7o%D!W?;*^==7mJ#8zjlst@n2RteL`4n6HXwO_hLhh(oz<&nS>R zxw;)}h#aoTbbB#NABkIuq16LFpiEs0Z8^`lJoY#kHt;0s#~U@bj6NJyw8qHVtT#2i z1Nf<&FaIE`8=>W$Io91w4{a_1T8%taqk5*DFpgR^*F;z5L#0SrI(O}ej921ESGE?5 z!x)Kuh7G&F7h-94_te+)Ua-%I7O!61kR00A`UO%jf0q8u(#3yB#CRSJLnsQAwU}tN z&(Gny(8sY!}8us ze`xE=wza&y127O@5NQYhA&GVso|3FLaZax}4p;m0Q%*59Pjlco3>|wSzrjd}z(C#av-G7`#)q`q zH_UKLu_YrNdBj&ZOWm6 z&vpqzGP*00mqeWUd|#G%^}!*>Tz${5GYk zf%@=AH;&hr<^4Lr6F)>?DX?$f%WR)ke%_Wd;n{RJ;UMK#=`As+>ZNln@_gD)TJ#P; zmcf+ytf?`1@EwmD0oq$1zmq)1t|Md>IM2F`{n;h-r&!?DoTtmj!w34ScL4tBu{`SA z4J%lOe9EQ|S8RCdHshv#R)0?%!w9`oc%gd%%YgXBW3zPC#EISJOuh#`ibW4x}4ItN``?YpvxC_cHRh}9w)u{sXAQ?pSr08s1}yp$dAnz2lsIdLe37|7 zUNxrws{)4cQuGtCA_;PDn>;FzO2hFY7H_l539TFm0y_XIu6+NlgH1^xA4Uh9Gmgjs zQpzIbqy1V@t438}@BT~;!R*k;M)Ot3<~X|5P?t(JZ1Q=pzALE~^Flo9`64%~LLGBQ z<7plq=?Zy-H4E^vfhNzF{2+zd>Sz@gh%q_3sHQCRyAGju@aeRn`N5=`nc-e_|u%mZM3LTY|9Q1%Z$2~Pe z4X$R+2=*;WOJ0w_9=FbrH|B~PVQl(TUKHP-O@u4EI5%2XSN8~qUZ>-muKhn;y=7Dz zU-Y(31t?yMyB3$?7Dy>jpt!q~AVq>Z1PYYmq_|7*;vSq*TvJ?vYjM{Aebe9nebysi zX3b<})|y$#+2`zi_I=%P!pFFpTWT){7p=9P-+YXt?-hT}u}Z`K^V?FxnAO>CDPsa3 zp=h~Fls6(4(qSizwK}E+Wxk;h&8VLrw=CeRclgcaoB0PovEht&cvQ0ATs|AiOQafY z1Eqe{!l!fabRa+Ky-1crRfkoAfUgxGjsLXlwk_F4@*xE4KGsaPx$mVCOjXYU$f3IJ z^?|zrTl)8g;of~C+vD~COkt+5X~V0UNUv!Dz-+VP|=p`saer|DwfHzTII8Ou@!hk}dj+wjkoO zb>AQZ4_taI*;*P(rS$Ecm)2J$16ds-+0btcym_5`uBV7m8PNZ514>9xYa^7h6=!@S zq4%DtwK45YM~nK)5S8ZamBefv5{yM5&od+A9M_z}68akEib^#>t;dXqL_)tTdaM^4 zAAbpzhIbU5Jle-P29R81qlp9(Y!5H&tkLfO)@7_SiTy!fyK&Bo_?0U-5VJ~aS$s@K z(mw6XU43eo6(xoY$r)af=JpG)J)5n4y>kw!e^OHQbzE*?sd#JKE_mT8ROk)zaQ+he z$$06Ja-|<8Z_YvPkA^3<BT%$q(^^}Dx9lY`M8j`*V6nvhex%a`pGpSNm}FP-Ykh16pMDhqVnwcrjz62U^6?C zjrI8S{zsS-eZUZ=$m8C}vu9U2gr`7);Y?50=MV3LPDN0s{-1M7eoF~I9=Xg95M5Go z)F(yR0+^}CJ4k^Vxh<9v6BFzccu|l|sfEZIVb0e>G`7oPP>6owuhD-^eR+Qp-%PSi zVX`29<&Mo=6)lRCQ@;TW)UwK2bbhX$4LHWz>yAm@Egz~ZUc}g#lK5&7KRzsRD~nQx z;3v{C2I<;F+EuAoP^gR}=H^aeBl=^i%w5sh3a{5WdT5l!7R4ez!e^@Vl+PU`C6{3O zcPZ2XwK_d9Rw>*DX$eEI!k$wFh@<;Udw{W*V3j-%j~OS!nQPHt0#Y%nAkZ&fZPFMP z-t*BeGHd|;Isb4Eo>A_@7Q7kP1N8`MzcDPV_;ed!L&aV>ojQL8f+Eg5j67#2TUF_SwYpjX_p2p3;_o^@-)#sROTc;n-$V13ZGgrIB;z(2?1f z8=kCsV2?|{`kQS(_E^F8$KuQ}3rNlItCrSeJ*Ax^NxmHNW#NJWH$r~JC~<`W%nS@! zWHx@=UhQN5l>mGX#>;4EKD(mWmR2qb@r3vbfr!CFcfgNND38jfm<&2SX6*5LY# znQcH_H!6UJ(FnkNVz<`L9xEW0Bis@@Ek_(bP$S!t6_X@qIAiTXy|^&0KXPWN)L@g# z@SWK!$PfW*^A@ObQ#|$ZQ97oKm|@QlwtM>$>tInIm6E z@>xn-k(ep!pdyS|Wl=gZlkZ9{wg9!*KPJRKTc_+8%Z)6a+Em{7ll z_na@!4l)z(;F&!G32pwF;*Y1SY--UxU%otMYs&@*TI!Htw} z&}zTK3w7F`%UVB>FI{Pokf*_j0XY2ICMKHHhrD!jjWRMo8Ajy64|tT9CjmqnJ&Gz@ zNCPFmMCFAoyB(QfzP3FXV@vfuPZYpI28^%lI$zv3ZFOV;ob1-GcTdu;Br4oC2;TNx zxLG4w+*n=q@bedR!9(=oc5(yRqBPwE{5ITZo;qe>A6`0*=%xEbr1e^OyMZY!n4@~>?fo8*@v*!I;@LowD?6&lJPNIEPVD&ZBnW`{Rx4Md6YO=3`;F)IBhUGJ zsZi~{p=lNT8BvIEp{aw^Mi#L%xAFAt*Jl z7Nuwd$|&d>yt2>g=lQ8e-@9_3vV-V6E^V|;Y=?iQzG3qA|y@yf@_><-r z9gvGPxuB^G;NJCfd1WGDC99<=K1C9jxu>1JJwYq_W`Sy=$qm!lTKG}!7xuQJOK+}t z()YN3T$A&KFP?4=rj805>k0U16!3ei^AZpOZm`GNdwQ(LMZLr=YzW`1w?OkIt$X>U z{-QP5h$}Ej1U#?nkh=-~poD9N*A#E>3*I|P)}4itt9pG{4Xn}6k_&6XINKI&?O0d? zB~zr}Ku?#m|IxH%@P2r~hLC(%v5=98e_I?`L{#M4>N3YTU|UmdDk!G<-QcpX_SIXK zo&KTA#N|t=)KYThDVsSGHJJSm+q~Yly-U$T}TS0={ae+&t`>%y};&H zU#LCXxus-#$`$^?eCiBdsrAfXw9gQmf77zzL=LwElWCv`LYhh4s3I@=VdIppYCAXI z*!F}QzTs4&L0l(5Rl|Ipp2rb+L>J=h*oU;k{_xGgXZl_6x?;CXjN<&VALu3zFja87yoJME@O z2A^xW7%^ua&N(SZi!r%_dARIL#4<-rqj#oa+7E{#Uc&owsX|s8`JdHdZ_x8eP z34aBa)@@8uw{&g+d4rEeQ!{3k(qKnv8e9vM8UnR>p&Bkf_3@q?Xh4z#k75!VoKSyk zSVHVMEE{1ZY+F8JLmoY{GmF>|*xRn586q}!41*!egzm7M?gE+6*A^T7cW3eO7DRg} zCd`JzI520ik{9y>IMi&!j}m@a_?wz;H%3$r^=nVqgk{-eOM)`2YJBZGEFDo;1Q|Ly zY~OuE@I$rDIyyuVArF%efno^+gQhdqLns@I8my z^IQk6Zi%)z&8JmV`W$kghedM&uuZMCwYAUiJVLW!)^NtRj1Uf=JqFF<4dGN9Gao&9 z&9vqiz~ne|lvxC!Hp`SR6E}F>hgkn)vXSz$WjLdmakHfPxu;&6&1MN5`3&P7}$JV z?jI!zQ+^y_BWI(SD4y?|VWaSiS~rZQ*8i8{41P|SN~l%sEHs&aBF*fDMxOPasN>WsRyV%m)m496rt=$Fc&z)|iCVMMvP?Tg4I(R@@m8E1M_Q(q^OWV2;lWJXZYjG-Ka;Qjiy%J2b0B4BU z_WkdL#|b>4k(eULe@rT`l~a~M&kspKC? z6?L)b&{C{?H?lBP4uS<;&18)jk)J?&vm+`YR>c>7!gnujP>TF*9lNBv4GleL}^wQ$0FW_vC>krwMR7%L?fl{`ftR$rXQWs7s&# zb3o}8Uf7c*t;(6*MgjN@4IhmTJbvS%V>oU%HlV-ml9qHUqhV8}bEn{)Gvy1H8FV>x zVrO2Y?Imj^3y5OXUH&~I#1OBw7{cU_D<*Tz=|&a(b0Q8zYVsiZIy{Y~<6=SXNoR(Z_3VbXt$k*{k8;*Jnx-MEovAkGA@Ea06F9ihQhq>gk zRiiyFqrzpRzT+#z^?bnTrjrZ2hWtE@-noxmh`dO-U`}Aq4nZsj|=iVM(UnMV7x|QgS_z z%nPPakQ(cjCYEyjWMqv611?ICr1;ProBWvXe9e43)bpJn9jpi`3Ju^IlYx4w>OKt1`@!ZxnvJ zarOPw&X9d?Wg*aY?9Jrxr!u_@l{SkH-SMN8@JgzC28-WCI0Sbwm&`Cd$6A#;idx+J z$SJ&OlbvQ!btu09?=0Ip1KwqQTe`-kD5W+bs<1o=YkZMPClfFBeY7i&EK^;A*>2^A zL-VdHGAz$%Q%@pbCnhy3g1??8K%>IG34t{+1#V}brFq?9;ly6kb{NXi_#hlHozJ8k zu_i+KEyH=o&~AyOUir;YJp}AI>!^!-_ZO{F#(Z$`D(l*AV76&nrdaqXc2n#dKpHbH zMjHBv1D>BmhVCSh8QH*JG$oU%iiU%T@bZ%fm)-UCF6O7+uXx@bS1}zCzpDJR5Eof} zh|yQB+|QgEvE9Od_T>4uO&9bjzRG-XrfO;95<|R}mv`#QC13T%!k&j|!{OnnpRrR_ z_krj0*_v%>;pf*HMw#Faf=RYFIeZ`5ZeRUy_a54_itP^#1N+)n@(m^~xXxJ1$0p=V zk~(rYxKzN zzu<2KIkxJc3D_Q~u8#XTAu2~_Gkj20db@l2_1=Ks(dq1gSp7+#DEv{^bQqGOLMSsJ z_(v6M!B4Ftcu4~_BmV5>{X2Rx0Q-zs#jkkkN3!Zffb^Va~46Q15LIsD^=<|Sd z=aOVt>7|E-?+Hry*sp4AlXv@!b-KNiUXJ?d$0h~(FC;NSA1!HKU|Enjee7#IVxrtx zx~-iAQib#kt8_ zt#u_HVGzGqN%h#(v7)aSjoHsKtTPqhLy=DA>(XFN1=sxP>Fyj3&iUb#{@9q z{RrQ>&*o4%i!-QS#Q8b>O;b=H*v4S5Ue+2l*)&JXj%+NRwB9H_&!csvbJecdmzgKAApq19D^5-uaaZ6r!q?gS#Grcc9>BqNRSW#v(wbEP819*iD9l| zd+RKAYf5!#q*+`(fWO-i0%OLt^^nOtWU zfr6w(dt4%l_;N^d2$Zeh?jfNUh$-~Akdf0v-Pn7Tx-f!Gl1g}X2THHmE2ZR@Dew(% zOFY#z+WFavqfRTSbvI0@-3j411;dnJp|--h_Md-hOkj1ad9@pnRBmlS0dd3VhfX6K zdHM-M?D_`1`PA!xUx~Jor+QPvthjjm?6b54^x;DDu|K-y44YKY{$Xe}NH~px){E;7 z@(Pm|<9gm~{PKMQUB9pV2&O(!zqB(W=Iu&+z(g#)T@5+? z`4>$Ts6mYXLJ$^9wq7n3cX*|tigW8q)#sfb3;%T2`*i01hmV{5j{U>?V4p|rHVSX1 z2l;tvw$U;f=Ok}-$$V7L+T#!4lfPO=I7Q(s=~}3uwF54RXk->SY$R z4$5AAj50xKU}S&m#wStg+sTZoO)tqQ$*s*&Ol7ritVl23Nk-KVPVsMU!>N5l$5$}e z$$5T|&(*G^>1>(u+)a{%$EwML2{YRXO2s84yoM<3(|>#iG||WN6KVx9jl>?@W%RC7 zi|GwQFkfelXUWH6iH5KUHBUd|%KyBRs}D`ori}4PC3;2aAf}!1*^udH!!d;EC~hdE zWLIUl1cqD7GHm;Xfh^s?g5XC}fO^U=9YogX!?e75PpmOpw0|o7fMyz@ym+=f2Up1b z>L;=G?#aiPVdjpxZ(=(voPykswv$NCrnX{bv4dmz#vSw%5vET8#hSHI9)`Dn7-2{jFWRK${M*gBvo!V!dUiooG83`nX|C*L#8Js%s0p(vI?^zcXL@Z(gS}Mt=WC8v4Iy7t{yOf15&S7cJKu?T2@eVp9X{eOJ%I z52#{+cj>gGXs;=|r|kGW=^GA(A7?UH11s0OUWaG=sF@t8)2zT8qf|yoHp= z$8ppu^ZyumqO36(B^e>?cLdXK*XRg0LT_VNyxP=76)va?N*n5Hs( z)L8pN3fmkUP6xi>y`;oy_>0D(ir+>EMJ*;@Vx|Hb*Emj$t{!*qN+RRtk-TiARzQfn zO-E#f0;PjLCQ?{3>(3M!37iLTc-V9xwNezEmix*(;Y(J2O=of(6H((din+x2=`~GK z1A9$wbCFoUOA?f@X-Vp6FLLfMOJk~4@foJeKtIl7nSteF{+`*q{tB$Hxx3}C-n%8M zbw)MsYqxW6A6#Sf=NrWbOOz@t!_@wYaE*I^NiAC3K~2|JP4c;4w7@!%x$J4BvKfO> zLuWqf8-7gF4StbIK6RTHBg1TSJ3Su-Fw?obo*BL_R*|0s2>;pJOH$t-`KMzX0In`OA&%{g+M14x^*N1YC7CbC)yb z6h*?Hr5|d&!vPYK4M#91{psm6_?lGz(BWUSIWx!Q@bKM@ooVAhcOUrvpNq86)L=A# z(31h7Hkq9&oV^N6kJa+GhiE6c&9swsjyyyzh|@aa6DfxeYGY`EBVAu-)D&7cUq4$9 zfZ2JHb+E|rqmoco;f4zP#e=G-v`NJiyR!$P<(b2VOAILmWQ`;Fw!qmiDlLdIn(c%| z^JmWhUgwRW<_Q0nhAL5)nbN#rc^Dr+ zz35|(ipoFK&dYp{3Y(SKXFr|LCv%0)LK#(aB3bn4wi67S^rWj+HqWjc@=?`Vx=C|R z$;n8ic9&C`^u7q4EX1l3ck2Kd?66Y8aJ^`Eq}Flu8qUhQgwd|7ErHfy=nwSiBt)`B zdAtkypV2xi$X_MMv{}wS{twE?#_u`W%Imi1;&~v*zqS40n>6{M4><=kbE+YaiNA&- zQ)K0U#XT!PT!4Usda-jl8aUlm((Ce&e-oS``^@f|%CzpTW_+6GF{gK;%H^W7sz%_< z1+@DB=MjDFJ;^~$olpIp{PV7N*ThUyp_e8o6SBF7`u$D(*)otz^;& zI9eJ0WzEKTn-O5>eL62%8ov^L0=&t;n)PwrZ;_wGFW8Ib$~+)o;d1aR;FU;4;fjRg zSBm>i8h^YntB>rrzMFC3W-oQv;%E9~<;@(CA5Y53rD-DTSkxoBtxwo@Suc=03*OCI zai8;&JVxueL2AfkMg|@-vUF~jn-gtSw5bG;^i~n_5v}jB3s8LR|8!ARDdO+o5KYb2 zC+u1V8e}nLcKuN6FD##A2K6Y*a4K+1(I}mWIi8Few(1>%bh|Im`>XpebpURxMyxRw zWEB*-5g^^xyv4kL&Bh7?3<{s#sh=|zcoCmV#k8en>=a9aYQf;9 zowZ(!g<39tOZk+DI2*rRT>9kq8wFQ-I!i{XjNXL}hN$X)LTC?D_)VcB>9v<`d9N_| zO^l}JKtSa&Ais|KqF^%v(b=ME5apZWqV-DI3U=8n(Fj~4TL!$ds%*%gijNSJC*cvi523@50 zcKgy4!8XpQnr&%GdmY};bRA^scQso@I=y6I>3-EUu9$YOWbJ+Kdapu#2;8IPUm=tO zt+IB^mfJ{i3*cQu%JbQ6>8gq2wqewl9hX$rxh?%g3v*Bs-#@RV1&GoLza3YKS9XEh zO1+L4iho)o`FYBHOSn_RH=Ej$A0Rej@jhCGZd(9X*p<8w#MS4`%x$5z&KFBeBP>!{ zBRe+VY8(69fLaB27mUNjmro}#Z1UO$|IF^U6ba9#*c_rMp7>$wzJZ}n`X6Q^RJ<>9(gLmVE%UDi?Wjb92PiiQw&9TvhA59TGG!CutcW{c`9~ZxnDaz zq-jqy3U>sq4Huj4*e-j~G$puD$EL+SStRwa`HLn6tMaLpG*ELg@X0BYig$#tPojV+ zEXy@+Z{Eu)#F3lg{;&jD$vxSOzRosAw@3b%rxCRgw`g-cYxAU4k83Jn&bvqstL zuOT4W;jfs>rOz1pi$-yTS$9~$@M{{?Ve_AwNQZJdZg$N=vTr&>F7U^H%!UV{H?%&0 zae@o*g*spgux|D(?((-<8o{;M4kdxig&Gq`wJ=d}r+12|$EC$*E$s3gAfih?_4}vZ z4ORMNG#Az+A7pBFjvDC#Uyhy{nW4jyP4&qe%*?xKl&X=GPVma`Gre}At4WK>Idl8 zZltci*eZPSTy3GPwJbHd{{?KdPBdGR_syT9?2FU7BFBQ2jW;sMH*?<3TygU8M3H0X zwKWQcixSU09a7{UKg{--s3L2e9*o%i@k@5^X>y7;9^SJcV4GXa`YvT?%+};x z4SNkMS;#UD!}=Z4k=6$5#Uj2JE1*A;f6*L6@46v~zy+cE!WB>93b?Qn8?XPZJ5!(7b5hG_Nq}Dg?H#v=b$A=qotOh58jAc)*v@|#PrWz>^-QGx#Ed;w; zos#%$M@7QArq7N1L8axcI1JEi(rwo@_rSIMCdVJ)rFbU7#jZ)yXyaNM!6u%pzwWsF z(_X(GVX4X@>Rp%G%Nh;%y_85MWh}F%fjFWws4^PEQ!U`#`X!ctIF_tOZ*KV|SaP!o zAb`(Hv;SJB1+Ax^z*<{^bNIBr_!~9Kz&DR_VaKKaS+$_rD+HfN3#sQ7g`-?sUSVNu z1m%@hJ2HiM#-ebv=t6QXO=P+oRBklO!C( zEB_N3=C9k?nm63U}=@af@@ApdrP}Y5a$?RcXlnZ1{Geg@8`~TQs|=_(Z5g-jd=BE z_PQd*d);a`)dRxaa5R@X$+Fh66`@2hnO{5n9c}%^H>yRXZ314OY-=)$;5^UG?Ke>0 z#IX5q1wwTAx~6ToXahq2ha{6kZVsbL%ln$~6bg08qn6}i#i@&jI-J55C@F3*pO?Js znMF2M6-WOz*Y@jA^TwQtlyy(WX10t+J}#{zO2tw1qoo-mZ1-{wdXjA zuwQv~W^Rz0kr05KiQ{o@sl@YmwI%dFi1q)SIO8KHxMFMi7e&Ox%`E$t`B%sWvd#vy zgW1(08q&;7n^BqF?nb!Y0zguk?}YlSHEs~%sb(iqU7<4A%V<$j$aw! zP}LpXXbUJotWQ+*E#GY?!|_WRAU+lO)GmBdG4k)=tw-~S$MaU}^+D3ZXwT6V=S4S$ zZVnbU*~sFagJ1?Loc^R zdT+l{>kSh1VW&;=h096Dw(@G1TVU zF;l@^J_Cbh#@GrA#wZaA7g_!#P-vrHm&1~yreOfJzj_^8a*@q*sq1SqZH%x{vAQ5o zI+Roq-hmzYX=g+v5D=knSy2#`5eNd4$%1hVAL{o~+eTd?`XeTZ^dp9-o)uQNOYA|a zECv>9>%8O<3jl|5jG*wow54ci-1PEtCA$Xk3XzCRXLy8AczKUi%YyJh`{V>|8iH}b ztD@g=P`PM`N;&nkVr`L?ue?Z~HNZgu`|WWhw}V64h|TQWUQN2Ji_=v!^}V;a7p1?+ zGFFbuQZhMgFol)v>wK2hkd?wAg%fr~2j}&SXKLoz7Ik~&J`wp2ynpWWG3(;dw$ZU* zNhH(1O>X|g|3J?>UC_TcNmEeD;wI?S82if1i#+@^CB3Cd86Fa2PSWtfV<2D^sCZZA z$?kGpEPT(0Pj{lOwQWv>tLj=EGafYu83i4@o3CRk!@k9yjCkK09yjBr1cmMH~bzE4}p^C&Fk%p_&{$+ zpc7n|5UPViI|iAekypC|%}Ty4MFvdsuUB{Ov(n0vwpTJIC^)$;B02H0Mmfg}Csitj zXjt^}D(cI5TaR!!6;D|>vgl*s{OY_9A5P6WQSg=BD*IU10qA#MS&lvz<^*+My3IG& zM_Zi0_}VHrpPUT*DikZD*Lpc_v|{W6ipgsPHmHi;2eZcu^(h{_qSqz8`d+!wlA37* ztr@Y6dJp0|boHApTC!;@QA|Vp>D%)|2#`2+iM0XkT!r=Ob{@|oruGH04TlTWYe_ZhMh?~E6H9KD zDD1-2H1=H7!(TjF3u$wI+=oJ|rJ0VJzeVsfd(pcef}lsJ*Z+o4a|CQKCZmni;cou_E>kU7;026=!T8fVp@kQM zyG{{!r#oPQ+R#DU2SI;SBrEg_k&gr1?mrOTM-xjK8Ve zzA1&jE&AWFqiDS~jQu||n+gk0vKzfqktZljJ8=0gTKXr!%P15{8}0eY(+e^TKyoWu zNPA4Fl^zqA?UcE4n7eIYd?ENCCYq8|NXmrzR8s8(#`}eqef1UZTdI6Ag z3Fql!?pi}MeF&cf-yeI#-v*yA$z_NS719C)cTp%mD!0zsxV&un8CZtugLFqg6cM)Z zZ2}RNi3=adB8XI;|IG;^gAZWe5kBU;QR!o4hE$odA;k?`7wC?P5gYESkEUSdAR3YH zXgAdMoZOuq^xYXX-I{(dXtl^Re%JvD;JzG5^U+dHp^nK)HCs}c)!%xV;HMU)nTho> zD(>{dBKOfz<>HT-xO-aG!*37og6Ekt5?uZMGco)JJ4ImtQTAcdLht^6pGM6fZEbQw z>szXNbs2V3e<+i*i@w5l^7*jmP9;;?bAzjnM7(Hf;8udhpguLr;q!)$7OdukzDyQV zE=+K%{OsGE+nN)P^*yP$gX7$1PNPww9fAjBcQG$fag>f2Ktn*~M^M)^{bcpDDw1?{ zC?MpL66f=0;=Pu$SeeI=DUv9tRrw3n@FSE|ByURRz~ASLC6?NI!JvQv6hWNK+Qb`p zPyIt6gg|u{c(O5V)XJiIv|qO-LPQng7I&c5`oLr=nRN+DA@>GvyGtzj9*=mlEZ#IOs#hH%s03xNos* zJ}bw+B2%Ls*7b;`aI2jZ{u5pwINUXGe4;R?Wxefl(~K5i%J-$7u!`@MK=LU}cmp2B zvB$`i4I0cmY_FJ9sMvqdnjW5{bu`7upcT&cU>>wsHjd1{)>AmFuu-0A*NxsuA-~t3 zZHdVU$ZoZ;1rn>+2>eAe*gCe^*m)D`(G;(wUutFor*9LRF;f+Ho2EEB^#y@jw%bX= zp?hmz-9Np>dfsc@q`pZKaHbPc?dMuqF-;QQ;Ibv!^A}Bo@{ZdleWetX<(7JJa|5O( z?d#>{35GhSJoO`cX;qbl*VULK{HDBw)JxV;dR-x5qYX<_hn~U-)vg7hlPl`!#v@wmUR3f#=B|}bXO+Ie!_vs zZTJ3=lDW+mSS76Tdob>+xI-il11qL=H#*-2YfxO!>w<4rt??@Q1=7O9%k2caG+~^R zi-HIkwE@gO;&qNo&pEMjtvy?$cE(8zdi!?u{Ai(%xWiaj2Ce4pxQ}Rc2-g|x7oljj z)WRAfIHT;lLquUjkA`yp2PhVsD4X!Qw+2;K2i`F!)n)eE9>mX9o9&kMpP1f0ANFq9 zDx@y=fN}@nLn5Rr0$M>~PdIo^yen$xj;=LgWzn^Loo?WrLtG1p9+_!= zJ-Fj2v?!C7^cKffip-w$=vq$$-%2lef5dIm56=tV%H>Jr+DH{W>QGCpujjlaB>VZF z+VfZNPC_yAJ=Vc?z(*~H?f0GY74UUO*6l5A^|2Aho`l2P$oyvmFtL~ZusdE;|9ZiV zSVyC|Jd}`VB;22G@w$ff3P)WnOTb$z^l=XdLQGOAK;%O}G$)#F`RfD?hpqZb`=yWZ z*+UL24DO3b6}RAXzHyA~->S~_eCj7g0-Vrwv=H>z(>;o5b*V5o%Dx47~|}5orH9H2x;!3yFxJdhWH`S z>iM@Ve@i(!i>sW3wA)WF^cUZ?yuB#^JO&J*Q1;~^qY0gLn>3x=+El7#1O9^qOPFCp z0Yg{;-F#aoJ#E}q>P9{Wp&i83iT`Ba|B34V`N^V8O#a_6$Ht)xd)DKnj(yT{O4Gg` zyvnFf5>r5jel%$(8;)HCUO{Wazd7B; zc^msHUP5hZgE6n;oMHWRQgr&I%+76bE;3yk0Pua{6D#z|Uc%KseyDU3FgnXut0_tmQgNdots7&%7*MC4iSwk%oegim z!h_AOYN3PG;1D?P(0r;x2aijNs&ZBS=VvYHD5KgREPR^9J{wvGJ~D zg3iq7H@U87C;qzYwuC59Yhb+TcqwCzk@e!?hkoFZGaT1874F0#$U5k)p6EF0^>N_J z*tLS4q@ktaM83e92;8V;teJ{%qHVoE^;MUrD%ZXFwyZF-&gA@cC&)fvXrkSSd)9le z+_wkP9t|cQSC}pxuRI^-6G8q(i>}S(7_Cs4=pY{-1eKid@Vvdk7s>*Yby$N4A0~6$ z>?b_-dUUO4)&wdU+X7pM-pqm21bw4Tr6^xM@o>ePAH6x*6x9ijNlvSGpMB)}g`-lx zA35QBq8X_-cuNmA#-U+#N(n3w=HUF>~i z;fUqoh~jh*7eyZHjE>G+i4hfl?T=IRV~plm-~LhK{w1j$Kab@ABX@WmpVXZB5rPNa zwvo7Jl0o)n3A#rse7<264@;MPMXZBdi$RvP$buyGb9i^Q*RSghnexD9qN(?7*^qW$ z^a-kHR!$4};6iOWQ0U~G>3m(Tu`JBwmF;BTond#D7m;_Bc7OMFmV1VZ#rQNWKBmuw z-jrhwlK>gvxr@3_L{39<`o8_wrxG9XmI~jNk(Rgg{5l%lConxsMG+(0P~=()HuC|5 zKorsUPTbrGjn+2pEJ9{*>c_um*PH^FXLnAvzZU4~UW3F8o-GM0CPICK6b{$L5*m${ zkK2!ti;vd3O=?-J0?cOuh$Xk5er5UvG7*jXPx0P&2lEP;xEJY>@?L&%rhXZi;$fON zvDZv7vkE+0R=G1cazt4X}uvP+Q~y z9!NQ_mkFH1QH*CMCL?X~2bJH4s#sR2IFP(<=Qz_tEGNA5#z=31d1(xv7uB`At|vw4 z|J0-ZTx1#)shVrqK?ixYTKJ2WPJgNpS}bHqPoo%jkB>`!oXuUSD@Jr&h9dv4Sw|3% zu1mHBEHGwSLZ7~pT#z68#GS_FXrldi9MR#X{q81aBf9y}YvVo(%4rN67-_lL?_kRXw zIz(^(^P&FlQjQJvlG60w97QRy+qjVxNH)%qFXMA7(Iy0DSVepm*?(-q?(7cPpa zqB^DJ(c3cRywak!yO?b`Nhtt7=uBp*MAobgMzrJ_1!NI}w%B023W#l|=5gt%~R9KQaVq#I#@ z8KMBQCrIc_q1*!-pm2)5DDggV;l905MwA)@@a##+fRd$w&LKwXq?-8JJD+ySRbv7zB}PQ&p?wZkdr{2`xpJLLZ z5q!g2xv-HbPbHAyiclv%JF)n--n)ZB$!?)GnS)h@Jho08`$bljq=`BD3UO zjKFsg;XNpAHtjCBcroRou<@4Bp-AU}%ax8>(Si%JyI+lAL} z)?EfB<4h~P({4ZxeSh+aEx!(@5cE;UG*j*IqF?F3=Dlmdo{5VSEm1zA-H>j=nmqipn ztDzEoc54GOOoZCQ-?Xo8UG^p)_#48G7;Q*mi#nC4!J_7t^40Q9@?lV}>%;)#G!37R zF->fQ^)V$^I6B$eoT8};)6*1RwHzdVs+;#3IN87GE8ZCXxh!#?RN*z@Z>-uXG|{N7 zS*uhjram7Rq)FhSWh9`r&4glrXLb->X+7Ecenah-5rkx8$cvMkS7}8``C|X`uh&+8 zj|O<#bWlU5hJEg0-=#nBmaB#a*jl_N*p-C&`tiWhZz`uUmA_z94cWa!w_y8a2zQe3 zu^#!^ELUA!Caw>dv~nw_p;|;2Ad0FP@C2F*5+@K!vHB3$*i8CjfA;fczy=bzJXHJ& zCSO4sI3dgW4~Spohi*W_HUhV*^Kem1oHPcv8@-gVPs~2aEhV9WggfWiKp}K``M?+a zosCzw&A*kdKU_U~F!Y4H3x3}&qRt?54HY;$zb#>(rSyM#c!Ss@(Ez8VF2%roa#5a( z|5>LK|1Tr;|4d2$Upsmd4B?t}i5T>0OOF?`^!}{JybBy0`ugZ8kq?9Nl+Qf5+B!D# zp#)>oX*5}eu|-@LQOY(US;w_RV#pM(C9-50!_2s@ z?4hxZvF}4;^m|7A_J8Jiy`DeLGtW8SIdjhWen0PzifL7#kJ;>yL7MMt&9B5AtxpID z=SFmJP|!eWpJ{*k4RI?jiO$}mJCb_ABTRC-QC#>a^&9?H&Bi=7#Y>p28K}Ap>5DPenr^`0|Zg?~iM~77Z5*RujR7c(h}Clb3~{#GFp6Z`84&aTH`eyBMzgskc*iB65+DzEnWqk4W= zI|xEsLcU6Iv{)n(nfVW)!s_nu8{gR!_?WjSV5+`;ewC*sLs!X9Tgx#8fB|BWl*~zw z=W&5fG7b^20eMix+VpjNy!;C=F$JKyvxA?XdK=eq1a(N=AS2Y{gR3g-?S0Mc?X4<9 z8%LboRD5{6ow35*7w!uB!=Z%*!h{4QLB4A+6?5$#x=NJJt5m);KtqQ)S|#3suAD}U zy5nF=b8{aXsERAkE#z`$8VG0rjoz99o^y>8^tZF)zM&hl9w=Zc;kT$Im6h3im z`8N*_jQx3JYj<|U=%&+{$Y?GUL29v`>aa>KM8~_^c820-4?$x6R@o;Z(&T!B0H)%? zw{s7z2Q%<^XVuls-1B;iw+Zk}-6KB2nJ16aU5hn;Lr3nr=*bZHw+HX_`Xi9Ivl~xloN%xGq#gFWLDbe&I z8&T;qu5FBZq&wx4AOLsj^=91muHWYkx_)!kq|cf3(pR?wuNyz~WfiBiwMh=h{;0kk zcwIh0i@~k(MoXJEGe2Hnky+PG8QOjzQfXrNEO%n*{`BKfThpSx7^MAX2V!z`8L*Py zI=YnFfGT^Vp+tO92JcLtj%8p~K@9uAO>5DOYG>@Qi*-2&lsXp9FSDG7>yezYitvDh z`*~*Ym_yxdb^(rvsd?X_8BypKgNMC4ku0!jPz5dFeocH=r><2$7apF-QUPnr9T_zfUTmS#3$%fi+?c=d|xx>o})cldTBx>4Wf zMT3ThjG<)FA4D^ifOoUrm_p+qlf~aBq$1#jWgovGBA=GhG1gj^wpk>2*hFcmXZ(m9 zf0apy8P_)cQh%t>x{GvlVN9BW83I(iN06q!vtY=W!UlU4RcJM7SBL4BCu)2?$90rr zL#RuMq2g!U5!W%7POm#$*urbfBlQ~vH#dkH1`XKuHevFIx7*Gi#tK{N>(CloW$@@0Q}MaGLxBad?5}D-Pqd`dQ84It9c`H?vxw?ATMW7xkQS z*V)X>+um<2czXroyXwMm@-o_IMiK~&P$o4Arze2*9{qJpzEc0e+`QbtCHe6$e)49A zP*jxOuFR}gQ-8H~5wvM-aR2sS_q-vpHMccF_UKgm%k!RvBMPF{+-`NU%cikfvs-W@ zpX#fC#!R_H9bcj?&iRXHYr;?``8(UuXw8|liS!+Vp~3Xp;eM^lTXTak#9C8o@D~;4 z=Vi>J-a^4u-}HyJ!>cc=e!@jSQwU;t1 zq4&QN!?W0u4KMITWaWAvneQid?YA_CJ>cO8j?rb@VOHk}h}d?q?MYqjwg4la`0L_7 zCIVYJk|;l?@jl;IZ3JuAssFz}baT`HN@eyM1K9b4!+7BHVl06_i4!{RI#a~a+*?~+ z`n)}ybJ`OWca|*}2d}N&6@LykNvRk}8Bo-%cWnMow1tSnqg4jrHB`!N z4l8br;cxOB3rFil<#VU_s?yiB)srp7s5HFVFOs7^Ma_LO(N10$)@~F!q^`6*1aUpT z<3>4M2hm*FB85?h%2UG*M zlBcIl-_6<+_`M4sL9boBcErPpm=_jkk^ZOK)Doi{YLb*t_PgB+yZrN?9Dn6<7}`rE zEhySOv&uHnGF16|F>{=r&@hY$j(~ObW`YmLVEJ5KxS-J0;K8V@qU6}8n99)m=aS^# z`KMbe>szw#*gDTDmuHv|0}z|v*{(+jkX{%?p>dpejLdOy*`xVqReaek>2j|1ZYFTG z?*7q*`RpF4ki_CK#D4#Zd&WJS>5>=W&vsxX7i^R^^>OK*P`u}8)zbU5n~hTsH(RrC zd26Y_Ny&j_I?Qw7D64oC^!UR%P`ntGpM04y&Da4-7fYCcec3k1McYDUa<}ZlliP@w z8~)*zI%a3`S}LEr`VdxM-8$`SpXx-DQDqSZ)KhSy_!>UV5J)olnATag=WEbvrZ2k?dHO8!Pg1&WCzEFn|B;-SClWq~pLd8}!1%;uAU& zx0kt+#kmdCr`jPg-pKjCQQ^k;ZHw7Hy5cmYVwy}QrTdO4yzcJFO&HF+crTNg9Xu3t z2(Z$!&gx5%!+4`SVJ|?RWSc^IG(yc>-r7Bi{Q9ho8W~Y+t|O)-U9=diaV*c=0Sgv@ z6LQ3ZrxElslOqe7l+R9gKXxuGzsY?wdRI*bIwsPqpa=H55@Xt>@v20$ksjggD)d^t zqL0qs0hzEb#wNvFCvthcywgO8tQgpkrZS)qt%cFaWRI4@Y_C8ypxQo{uw^ z{&5!=mTLzoWY%~Ahv`uUhl@+>UXB@YHkdozDIl~n3nI&X5zZNj^hQ0Ooo42hlLB;< z#wPoIY~JyL_lA4Jd2bw}pFH86aRAgTVCUAeYAYz`$|WqX;A-lpVn#fEo0pG+=Uk+1 zN2+Fz2f$j1V?7dh)W4=fX|$uu;z1}LM9j}%`8lDo@|OQxIsKSW|2wpz+{L2Yg{nY6 zbHKNcVZDJnE8_{M(WE3orKC3`AlZAfdAZ8Y9TRGKQOhCkuWsnDyrzFl##mM_0f%e= zTf4MOsOZP-1G`98If}Uy&`H4M--mG^u7l3{-{sqn*gx330vOMOGdos2qAt*zk=Kg( Z^grK@u`mYS8yJRsR*ZqYOij;&RXpkx;M4EI^Y5=KfRFK}K7YzofhN6Uks0auG0`UgqB3xRK z5<-zqq$mUwL^@G|5V(LK;y?HOd;1<{&RVnfnOU>f-gC~RUvaSF=RM5}006)BB_xU! zvHuNjFl&Bi-Ri1+=HH+xgly)5vQPfjhj=sG&KBX zG7MY>5u327ps; zl4Q{5S&lhi4hX9;Dcqz;fmjP}NjhH>jM?t7H$G;&DxxAyXhAlL$^PI3_S6&z{Sc-G zaE}*AgcHdm_v=9!P%l5fu^lo#k0FbB$=jrJ_AC4li}4_26sLI^ z4{#GsWXw=c!C*6*S-#fDHTA`5bjk}ui zLB_udv5TuzO4a)!>Z#)<&#!J^&>Ah#zjyDCypt)E**Z8l_(R?{@50ASO#_3&K}&{U zTOSzv^`UojAak+zzE7kLsJaN$NZWxh4S_9zhsnc#<%qQ`a&d7*Z!#FmFRvIq#_ge) zX*DrJ*s2^*rbYmJr$66eV9{#jUaic8;-8uEQNHrmtk zt8I*u;ra91b<*5#cm(`<;s9VI8+Dx31($FMW*7I(;=ry0^ZYeK(u)twaHdXVM0k9B z{90^#A{<&w9|B>mWxrpwNyzAei@3P3@UehbQCS}vh|J2_js>UjPr9gC^dt&Ep-#Lq zCvWRnc-sbGkB^V_-QC?W&F%w`g)F@+vE9ABugHpQ9aJk;=bmhbF&D_<=O_Z6j-Bg)%YRH`0Yy zqSx~3gavZ%XSkHHVFWTN2^BnDFlOcjXUXInCy*t5S!U7M3|B(B z0$UsF%Rd2{_X+6!gPpnrzkKV?owU){ti24S3B`V0F{yDdXmM3etX8!4c@C|<>4e&} z)Gy-RKUf|ZC@8w4e4gCS&mprr&|@Z2OdqK!`ac@YY#UzH#h0uzt@i{Q$~33I2Uej!3Ph*AHYmP z+WDaR*P0|xBzt*RJ0ji}G}xv!(s-d(Zndsn;n^t3-etdJv0H$lMcb=aONvDcP-ui{ zPeTalvv9%QoreQ1>uR!ui)R^KN(kzQqVD8U|Mu0pAfe8 z<dAFnn->z7{og|3G|8c057i2TgtjT!3>?0y9_Vu6OUVa5|`QG zVp9-Yw|-rA`4&*U`yO|X!~7c;j;=+V*gRF_%%$B|!~@Lo$nD$01qaMCssHhDd;(x} zDh0kj++7zF;Nv4x=cz9At*tF@mVtUziqPf!-r|xk?kdMBum@H@Hbcg3uacqTSX6MO zW|=)UB_*W|gTZ{Z^)%!ki5ZT~xIkh#8Pl3q+_chK%>~2>HT300|`Ji=<(!%2; zn@Zsi^xPr9WjzjhTUD+sVX(W>!v2%b#0{H35sL~fnjuD=H{Q+WzyX{noa6uBGyB`X zz~FeuIvH0rRqYym*xA{6UyqFG*9k9~G4D>aQ!yGT!2bwkUDynHq|=Zuj~bFu=zj;} z{da$Vb7FGR-#(J>nut76OI1RV!eB6nf++7ByQSjz78hzr1U#Jd-OQ9je zob-%|}G1F~n^4<0L2dEs^&OdtwmIiQMSz8P(#M5#XvwwLC#B^2CmuiA(Q2 zawfRh-KJ%7Ho4Lgdlwk%MXdh`G-mtj#>k`Ry#TJ+fxB)}v#^rSt7If$qPl2(G z-PkW9J{Lm~71DF88lX@KL|_}M?=H!I69h0Xu?hFPn$}NH5X1}qGv}^(fNR`Zw(r7p zLiGfp#w@`5_TRYV1PkS}qVxRow1Gw?r{6Fqbcvkouf6ke+qx?mn$x;rZYM6arM#SS zOCs;?gJ0(_kwMC|TJrENc))cW-@5~Tee>P6>J&^m!UAz}6jtiPKiuXPfhCJp-@Fik z#cQA2yweWac5L)v{y!4WYlTKdMTNI}l)yN;+S2JNz!uH2c@4shk&WesZVH=Ct0m^% z*#Ubs`S;>Q+Z-Gm68QnfSFSVPXh78(wVms0H%M?PSz23S8Ul~{Jbo3#EgeD#l=z+4Wb)xpt1m9egZli2d zh+PDhgIG_Vm96B_+;uNeS>FaWsmvvY}|Q$c<6GCI!t!+@Q8cf3V12EgOOH?J8uw@;CwJBddqy-y+jIh z#NCPZn-f^}zib&$t%fje=?=w_*LUQwQlNWT)R`nQW03x4*MCLPDWCsobV4G>mK-qp zG{*4B^NXj7Nt8E7%e)OT+cl$)fkcjZ{qqrA+x3dC8fedROWeG5kaN2S(9Xxe1*_E! z6OTQ=DB5BD_A>_G22flcI}cc6#=MkG`=qIKtA0yK8q-+P!POmWJKAi`iFAp zBTUOc4e6o@<)=WBp-mIP<;H>~ECvoFm@U&vcmV}MTjAD^Jd|X2`mheGO58$TAUJ0i zXqnQ$w^qDb@R4z*F15>vhx- z#@5dpJ9H@u6lL$Sbqmyxf00Be`}BNYzA@05RD_gt#j*9G{g zkoZ}+|IO)GVZR&dh9$U>>o)E$6;S0+FLZZbcBtVI8DS57`OGD$0$OLq?d_TJEO@vV z&_NG9*B~l?eg;68VC0+0V3J}z{b?bn>0GzC?>|DTAnfle%$Go|Ri5m{=x1#Ey2p|V z1gjiW$j%s19z5_$UFwxMCmDnvZ)tQUgKTDA`0(z4l`Pjj++u>2!b0$HDy&qz*tW12 xR@zt%FISJi`b4RQos7VKXe!U|{y!5B)L!ilQ!6V!w6OjpfVG7Kvc}9S`G3I`2SWe= literal 0 HcmV?d00001 diff --git a/kinit-uni/static/images/tabbar/home_.png b/kinit-uni/static/images/tabbar/home_.png new file mode 100644 index 0000000000000000000000000000000000000000..a408f71b28693f358228ff050e2d04617ba1e007 GIT binary patch literal 3229 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 literal 0 HcmV?d00001 diff --git a/kinit-uni/static/images/tabbar/mine.png b/kinit-uni/static/images/tabbar/mine.png new file mode 100644 index 0000000000000000000000000000000000000000..f13fe44d266c1b0d6f17feda0ae376217865c88c GIT binary patch literal 4235 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 Ar~m)} literal 0 HcmV?d00001 diff --git a/kinit-uni/static/images/tabbar/work.png b/kinit-uni/static/images/tabbar/work.png new file mode 100644 index 0000000000000000000000000000000000000000..21e130d8e788d2ad97508c62ae7d65d618481b47 GIT binary patch literal 4108 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 G{r><2moMf3 literal 0 HcmV?d00001 diff --git a/kinit-uni/static/images/tabbar/work_.png b/kinit-uni/static/images/tabbar/work_.png new file mode 100644 index 0000000000000000000000000000000000000000..80b979c5a3356c09cf37f1ca742c0da982293448 GIT binary patch literal 5008 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 a-+ox4z)NM}p*%Hd0~qR>BFnTL9{&eNattW| literal 0 HcmV?d00001 diff --git a/kinit-uni/static/index.html b/kinit-uni/static/index.html new file mode 100644 index 0000000..9c467fd --- /dev/null +++ b/kinit-uni/static/index.html @@ -0,0 +1,24 @@ + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + + + + +

    + + \ No newline at end of file diff --git a/kinit-uni/static/logo.png b/kinit-uni/static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d4ebbf0c1cd76571b978a7342c553a3484f09630 GIT binary patch literal 3616 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 literal 0 HcmV?d00001 diff --git a/kinit-uni/static/logo200.png b/kinit-uni/static/logo200.png new file mode 100644 index 0000000000000000000000000000000000000000..ffa9988266f7852b40e1475a89bd02aae63976bd GIT binary patch literal 7995 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.cu-item { + transition: all .6s ease-in-out 0s; + transform: translateX(0upx) +} + +.cu-list>.cu-item.move-cur { + transform: translateX(-260upx) +} + +.cu-list>.cu-item .move { + position: absolute; + right: 0; + display: flex; + width: 260upx; + height: 100%; + transform: translateX(100%) +} + +.cu-list>.cu-item .move view { + display: flex; + flex: 1; + justify-content: center; + align-items: center +} + +.cu-list.menu-avatar { + overflow: hidden; +} + +.cu-list.menu-avatar>.cu-item { + position: relative; + display: flex; + padding-right: 10upx; + height: 140upx; + background-color: #ffffff; + justify-content: flex-end; + align-items: center +} + +.cu-list.menu-avatar>.cu-item>.cu-avatar { + position: absolute; + left: 30upx +} + +.cu-list.menu-avatar>.cu-item .flex .text-cut { + max-width: 510upx +} + +.cu-list.menu-avatar>.cu-item .content { + position: absolute; + left: 146upx; + width: calc(100% - 96upx - 60upx - 120upx - 20upx); + line-height: 1.6em; +} + +.cu-list.menu-avatar>.cu-item .content.flex-sub { + width: calc(100% - 96upx - 60upx - 20upx); +} + +.cu-list.menu-avatar>.cu-item .content>view:first-child { + font-size: 30upx; + display: flex; + align-items: center +} + +.cu-list.menu-avatar>.cu-item .content .cu-tag.sm { + display: inline-block; + margin-left: 10upx; + height: 28upx; + font-size: 16upx; + line-height: 32upx +} + +.cu-list.menu-avatar>.cu-item .action { + width: 100upx; + text-align: center +} + +.cu-list.menu-avatar>.cu-item .action view+view { + margin-top: 10upx +} + +.cu-list.menu-avatar.comment>.cu-item .content { + position: relative; + left: 0; + width: auto; + flex: 1; +} + +.cu-list.menu-avatar.comment>.cu-item { + padding: 30upx 30upx 30upx 120upx; + height: auto +} + +.cu-list.menu-avatar.comment .cu-avatar { + align-self: flex-start +} + +.cu-list.menu>.cu-item { + position: relative; + display: flex; + padding: 0 30upx; + min-height: 100upx; + background-color: #ffffff; + justify-content: space-between; + align-items: center +} + +.cu-list.menu>.cu-item:last-child:after { + border: none +} + +.cu-list.menu-avatar>.cu-item:after, +.cu-list.menu>.cu-item:after { + position: absolute; + top: 0; + left: 0; + box-sizing: border-box; + width: 200%; + height: 200%; + border-bottom: 1upx solid #ddd; + border-radius: inherit; + content: " "; + transform: scale(.5); + transform-origin: 0 0; + pointer-events: none +} + +.cu-list.menu>.cu-item.grayscale { + background-color: #f5f5f5 +} + +.cu-list.menu>.cu-item.cur { + background-color: #fcf7e9 +} + +.cu-list.menu>.cu-item.arrow { + padding-right: 90upx +} + +.cu-list.menu>.cu-item.arrow:before { + position: absolute; + top: 0; + right: 30upx; + bottom: 0; + display: block; + margin: auto; + width: 30upx; + height: 30upx; + color: #8799a3; + content: "\e6a3"; + text-align: center; + font-size: 34upx; + font-family: cuIcon; + line-height: 30upx +} + +.cu-list.menu>.cu-item button.content { + padding: 0; + background-color: transparent; + justify-content: flex-start +} + +.cu-list.menu>.cu-item button.content:after { + display: none +} + +.cu-list.menu>.cu-item .cu-avatar-group .cu-avatar { + border-color: #ffffff +} + +.cu-list.menu>.cu-item .content>view:first-child { + display: flex; + align-items: center +} + +.cu-list.menu>.cu-item .content>text[class*=cuIcon] { + display: inline-block; + margin-right: 10upx; + width: 1.6em; + text-align: center +} + +.cu-list.menu>.cu-item .content>image { + display: inline-block; + margin-right: 10upx; + width: 1.6em; + height: 1.6em; + vertical-align: middle +} + +.cu-list.menu>.cu-item .content { + font-size: 30upx; + line-height: 1.6em; + flex: 1 +} + +.cu-list.menu>.cu-item .content .cu-tag.sm { + display: inline-block; + margin-left: 10upx; + height: 28upx; + font-size: 16upx; + line-height: 32upx +} + +.cu-list.menu>.cu-item .action .cu-tag:empty { + right: 10upx +} + +.cu-list.menu { + display: block; + overflow: hidden +} + +.cu-list.menu.sm-border>.cu-item:after { + left: 30upx; + width: calc(200% - 120upx) +} + +.cu-list.grid>.cu-item { + position: relative; + display: flex; + padding: 20upx 0 30upx; + transition-duration: 0s; + flex-direction: column +} + +.cu-list.grid>.cu-item:after { + position: absolute; + top: 0; + left: 0; + box-sizing: border-box; + width: 200%; + height: 200%; + border-right: 1px solid rgba(0, 0, 0, .1); + border-bottom: 1px solid rgba(0, 0, 0, .1); + border-radius: inherit; + content: " "; + transform: scale(.5); + transform-origin: 0 0; + pointer-events: none +} + +.cu-list.grid>.cu-item text { + display: block; + margin-top: 10upx; + color: #888; + font-size: 26upx; + line-height: 40upx +} + +.cu-list.grid>.cu-item [class*=cuIcon] { + position: relative; + display: block; + margin-top: 20upx; + width: 100%; + font-size: 48upx +} + +.cu-list.grid>.cu-item .cu-tag { + right: auto; + left: 50%; + margin-left: 20upx +} + +.cu-list.grid { + background-color: #ffffff; + text-align: center +} + +.cu-list.grid.no-border>.cu-item { + padding-top: 10upx; + padding-bottom: 20upx +} + +.cu-list.grid.no-border>.cu-item:after { + border: none +} + +.cu-list.grid.no-border { + padding: 20upx 10upx +} + +.cu-list.grid.col-3>.cu-item:nth-child(3n):after, +.cu-list.grid.col-4>.cu-item:nth-child(4n):after, +.cu-list.grid.col-5>.cu-item:nth-child(5n):after { + border-right-width: 0 +} + +.cu-list.card-menu { + overflow: hidden; + margin-right: 30upx; + margin-left: 30upx; + border-radius: 20upx +} + + +/* ================== + 操作条 + ==================== */ + +.cu-bar { + display: flex; + position: relative; + align-items: center; + min-height: 100upx; + justify-content: space-between; +} + +.cu-bar .action { + display: flex; + align-items: center; + height: 100%; + justify-content: center; + max-width: 100%; +} + +.cu-bar .action.border-title { + position: relative; + top: -10upx; +} + +.cu-bar .action.border-title text[class*="bg-"]:last-child { + position: absolute; + bottom: -0.5rem; + min-width: 2rem; + height: 6upx; + left: 0; +} + +.cu-bar .action.sub-title { + position: relative; + top: -0.2rem; +} + +.cu-bar .action.sub-title text { + position: relative; + z-index: 1; +} + +.cu-bar .action.sub-title text[class*="bg-"]:last-child { + position: absolute; + display: inline-block; + bottom: -0.2rem; + border-radius: 6upx; + width: 100%; + height: 0.6rem; + left: 0.6rem; + opacity: 0.3; + z-index: 0; +} + +.cu-bar .action.sub-title text[class*="text-"]:last-child { + position: absolute; + display: inline-block; + bottom: -0.7rem; + left: 0.5rem; + opacity: 0.2; + z-index: 0; + text-align: right; + font-weight: 900; + font-size: 36upx; +} + +.cu-bar.justify-center .action.border-title text:last-child, +.cu-bar.justify-center .action.sub-title text:last-child { + left: 0; + right: 0; + margin: auto; + text-align: center; +} + +.cu-bar .action:first-child { + margin-left: 30upx; + font-size: 30upx; +} + +.cu-bar .action text.text-cut { + text-align: left; + width: 100%; +} + +.cu-bar .cu-avatar:first-child { + margin-left: 20upx; +} + +.cu-bar .action:first-child>text[class*="cuIcon-"] { + margin-left: -0.3em; + margin-right: 0.3em; +} + +.cu-bar .action:last-child { + margin-right: 30upx; +} + +.cu-bar .action>text[class*="cuIcon-"], +.cu-bar .action>view[class*="cuIcon-"] { + font-size: 36upx; +} + +.cu-bar .action>text[class*="cuIcon-"]+text[class*="cuIcon-"] { + margin-left: 0.5em; +} + +.cu-bar .content { + position: absolute; + text-align: center; + width: calc(100% - 340upx); + left: 0; + right: 0; + bottom: 0; + top: 0; + margin: auto; + height: 60upx; + font-size: 32upx; + line-height: 60upx; + cursor: none; + pointer-events: none; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.cu-bar.ios .content { + bottom: 7px; + height: 30px; + font-size: 32upx; + line-height: 30px; +} + +.cu-bar.btn-group { + justify-content: space-around; +} + +.cu-bar.btn-group button { + padding: 20upx 32upx; +} + +.cu-bar.btn-group button { + flex: 1; + margin: 0 20upx; + max-width: 50%; +} + +.cu-bar .search-form { + background-color: #f5f5f5; + line-height: 64upx; + height: 64upx; + font-size: 24upx; + color: #333333; + flex: 1; + display: flex; + align-items: center; + margin: 0 30upx; +} + +.cu-bar .search-form+.action { + margin-right: 30upx; +} + +.cu-bar .search-form input { + flex: 1; + padding-right: 30upx; + height: 64upx; + line-height: 64upx; + font-size: 26upx; + background-color: transparent; +} + +.cu-bar .search-form [class*="cuIcon-"] { + margin: 0 0.5em 0 0.8em; +} + +.cu-bar .search-form [class*="cuIcon-"]::before { + top: 0upx; +} + +.cu-bar.fixed, +.nav.fixed { + position: fixed; + width: 100%; + top: 0; + z-index: 1024; + box-shadow: 0 1upx 6upx rgba(0, 0, 0, 0.1); +} + +.cu-bar.foot { + position: fixed; + width: 100%; + bottom: 0; + z-index: 1024; + box-shadow: 0 -1upx 6upx rgba(0, 0, 0, 0.1); +} + +.cu-bar.tabbar { + padding: 0; + height: calc(100upx + env(safe-area-inset-bottom) / 2); + padding-bottom: calc(env(safe-area-inset-bottom) / 2); +} + +.cu-tabbar-height { + min-height: 100upx; + height: calc(100upx + env(safe-area-inset-bottom) / 2); +} + +.cu-bar.tabbar.shadow { + box-shadow: 0 -1upx 6upx rgba(0, 0, 0, 0.1); +} + +.cu-bar.tabbar .action { + font-size: 22upx; + position: relative; + flex: 1; + text-align: center; + padding: 0; + display: block; + height: auto; + line-height: 1; + margin: 0; + background-color: inherit; + overflow: initial; +} + +.cu-bar.tabbar.shop .action { + width: 140upx; + flex: initial; +} + +.cu-bar.tabbar .action.add-action { + position: relative; + z-index: 2; + padding-top: 50upx; +} + +.cu-bar.tabbar .action.add-action [class*="cuIcon-"] { + position: absolute; + width: 70upx; + z-index: 2; + height: 70upx; + border-radius: 50%; + line-height: 70upx; + font-size: 50upx; + top: -35upx; + left: 0; + right: 0; + margin: auto; + padding: 0; +} + +.cu-bar.tabbar .action.add-action::after { + content: ""; + position: absolute; + width: 100upx; + height: 100upx; + top: -50upx; + left: 0; + right: 0; + margin: auto; + box-shadow: 0 -3upx 8upx rgba(0, 0, 0, 0.08); + border-radius: 50upx; + background-color: inherit; + z-index: 0; +} + +.cu-bar.tabbar .action.add-action::before { + content: ""; + position: absolute; + width: 100upx; + height: 30upx; + bottom: 30upx; + left: 0; + right: 0; + margin: auto; + background-color: inherit; + z-index: 1; +} + +.cu-bar.tabbar .btn-group { + flex: 1; + display: flex; + justify-content: space-around; + align-items: center; + padding: 0 10upx; +} + +.cu-bar.tabbar button.action::after { + border: 0; +} + +.cu-bar.tabbar .action [class*="cuIcon-"] { + width: 100upx; + position: relative; + display: block; + height: auto; + margin: 0 auto 10upx; + text-align: center; + font-size: 40upx; +} + +.cu-bar.tabbar .action .cuIcon-cu-image { + margin: 0 auto; +} + +.cu-bar.tabbar .action .cuIcon-cu-image image { + width: 50upx; + height: 50upx; + display: inline-block; +} + +.cu-bar.tabbar .submit { + align-items: center; + display: flex; + justify-content: center; + text-align: center; + position: relative; + flex: 2; + align-self: stretch; +} + +.cu-bar.tabbar .submit:last-child { + flex: 2.6; +} + +.cu-bar.tabbar .submit+.submit { + flex: 2; +} + +.cu-bar.tabbar.border .action::before { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + transform: scale(0.5); + transform-origin: 0 0; + border-right: 1upx solid rgba(0, 0, 0, 0.1); + z-index: 3; +} + +.cu-bar.tabbar.border .action:last-child:before { + display: none; +} + +.cu-bar.input { + padding-right: 20upx; + background-color: #ffffff; +} + +.cu-bar.input input { + overflow: initial; + line-height: 64upx; + height: 64upx; + min-height: 64upx; + flex: 1; + font-size: 30upx; + margin: 0 20upx; +} + +.cu-bar.input .action { + margin-left: 20upx; +} + +.cu-bar.input .action [class*="cuIcon-"] { + font-size: 48upx; +} + +.cu-bar.input input+.action { + margin-right: 20upx; + margin-left: 0upx; +} + +.cu-bar.input .action:first-child [class*="cuIcon-"] { + margin-left: 0upx; +} + +.cu-custom { + display: block; + position: relative; +} + +.cu-custom .cu-bar .content { + width: calc(100% - 440upx); +} + +/* #ifdef MP-ALIPAY */ +.cu-custom .cu-bar .action .cuIcon-back { + opacity: 0; +} + +/* #endif */ + +.cu-custom .cu-bar .content image { + height: 60upx; + width: 240upx; +} + +.cu-custom .cu-bar { + min-height: 0px; + /* #ifdef MP-WEIXIN */ + padding-right: 220upx; + /* #endif */ + /* #ifdef MP-ALIPAY */ + padding-right: 150upx; + /* #endif */ + box-shadow: 0upx 0upx 0upx; + z-index: 9999; +} + +.cu-custom .cu-bar .border-custom { + position: relative; + background: rgba(0, 0, 0, 0.15); + border-radius: 1000upx; + height: 30px; +} + +.cu-custom .cu-bar .border-custom::after { + content: " "; + width: 200%; + height: 200%; + position: absolute; + top: 0; + left: 0; + border-radius: inherit; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + border: 1upx solid #ffffff; + opacity: 0.5; +} + +.cu-custom .cu-bar .border-custom::before { + content: " "; + width: 1upx; + height: 110%; + position: absolute; + top: 22.5%; + left: 0; + right: 0; + margin: auto; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + opacity: 0.6; + background-color: #ffffff; +} + +.cu-custom .cu-bar .border-custom text { + display: block; + flex: 1; + margin: auto !important; + text-align: center; + font-size: 34upx; +} + +/* ================== + 导航栏 + ==================== */ + +.nav { + white-space: nowrap; +} + +::-webkit-scrollbar { + display: none; +} + +.nav .cu-item { + height: 90upx; + display: inline-block; + line-height: 90upx; + margin: 0 10upx; + padding: 0 20upx; +} + +.nav .cu-item.cur { + border-bottom: 4upx solid; +} + +/* ================== + 时间轴 + ==================== */ + +.cu-timeline { + display: block; + background-color: #ffffff; +} + +.cu-timeline .cu-time { + width: 120upx; + text-align: center; + padding: 20upx 0; + font-size: 26upx; + color: #888; + display: block; +} + +.cu-timeline>.cu-item { + padding: 30upx 30upx 30upx 120upx; + position: relative; + display: block; + z-index: 0; +} + +.cu-timeline>.cu-item:not([class*="text-"]) { + color: #ccc; +} + +.cu-timeline>.cu-item::after { + content: ""; + display: block; + position: absolute; + width: 1upx; + background-color: #ddd; + left: 60upx; + height: 100%; + top: 0; + z-index: 8; +} + +.cu-timeline>.cu-item::before { + font-family: "cuIcon"; + display: block; + position: absolute; + top: 36upx; + z-index: 9; + background-color: #ffffff; + width: 50upx; + height: 50upx; + text-align: center; + border: none; + line-height: 50upx; + left: 36upx; +} + +.cu-timeline>.cu-item:not([class*="cuIcon-"])::before { + content: "\e763"; +} + +.cu-timeline>.cu-item[class*="cuIcon-"]::before { + background-color: #ffffff; + width: 50upx; + height: 50upx; + text-align: center; + border: none; + line-height: 50upx; + left: 36upx; +} + +.cu-timeline>.cu-item>.content { + padding: 30upx; + border-radius: 6upx; + display: block; + line-height: 1.6; +} + +.cu-timeline>.cu-item>.content:not([class*="bg-"]) { + background-color: #f1f1f1; + color: #333333; +} + +.cu-timeline>.cu-item>.content+.content { + margin-top: 20upx; +} + +/* ================== + 聊天 + ==================== */ + +.cu-chat { + display: flex; + flex-direction: column; +} + +.cu-chat .cu-item { + display: flex; + padding: 30upx 30upx 70upx; + position: relative; +} + +.cu-chat .cu-item>.cu-avatar { + width: 80upx; + height: 80upx; +} + +.cu-chat .cu-item>.main { + max-width: calc(100% - 260upx); + margin: 0 40upx; + display: flex; + align-items: center; +} + +.cu-chat .cu-item>image { + height: 320upx; +} + +.cu-chat .cu-item>.main .content { + padding: 20upx; + border-radius: 6upx; + display: inline-flex; + max-width: 100%; + align-items: center; + font-size: 30upx; + position: relative; + min-height: 80upx; + line-height: 40upx; + text-align: left; +} + +.cu-chat .cu-item>.main .content:not([class*="bg-"]) { + background-color: #ffffff; + color: #333333; +} + +.cu-chat .cu-item .date { + position: absolute; + font-size: 24upx; + color: #8799a3; + width: calc(100% - 320upx); + bottom: 20upx; + left: 160upx; +} + +.cu-chat .cu-item .action { + padding: 0 30upx; + display: flex; + align-items: center; +} + +.cu-chat .cu-item>.main .content::after { + content: ""; + top: 27upx; + transform: rotate(45deg); + position: absolute; + z-index: 100; + display: inline-block; + overflow: hidden; + width: 24upx; + height: 24upx; + left: -12upx; + right: initial; + background-color: inherit; +} + +.cu-chat .cu-item.self>.main .content::after { + left: auto; + right: -12upx; +} + +.cu-chat .cu-item>.main .content::before { + content: ""; + top: 30upx; + transform: rotate(45deg); + position: absolute; + z-index: -1; + display: inline-block; + overflow: hidden; + width: 24upx; + height: 24upx; + left: -12upx; + right: initial; + background-color: inherit; + filter: blur(5upx); + opacity: 0.3; +} + +.cu-chat .cu-item>.main .content:not([class*="bg-"])::before { + background-color: #333333; + opacity: 0.1; +} + +.cu-chat .cu-item.self>.main .content::before { + left: auto; + right: -12upx; +} + +.cu-chat .cu-item.self { + justify-content: flex-end; + text-align: right; +} + +.cu-chat .cu-info { + display: inline-block; + margin: 20upx auto; + font-size: 24upx; + padding: 8upx 12upx; + background-color: rgba(0, 0, 0, 0.2); + border-radius: 6upx; + color: #ffffff; + max-width: 400upx; + line-height: 1.4; +} + +/* ================== + 卡片 + ==================== */ + +.cu-card { + display: block; + overflow: hidden; +} + +.cu-card>.cu-item { + display: block; + background-color: #ffffff; + overflow: hidden; + border-radius: 10upx; + margin: 30upx; +} + +.cu-card>.cu-item.shadow-blur { + overflow: initial; +} + +.cu-card.no-card>.cu-item { + margin: 0upx; + border-radius: 0upx; +} + +.cu-card .grid.grid-square { + margin-bottom: -20upx; +} + +.cu-card.case .image { + position: relative; +} + +.cu-card.case .image image { + width: 100%; +} + +.cu-card.case .image .cu-tag { + position: absolute; + right: 0; + top: 0; +} + +.cu-card.case .image .cu-bar { + position: absolute; + bottom: 0; + width: 100%; + background-color: transparent; + padding: 0upx 30upx; +} + +.cu-card.case.no-card .image { + margin: 30upx 30upx 0; + overflow: hidden; + border-radius: 10upx; +} + +.cu-card.dynamic { + display: block; +} + +.cu-card.dynamic>.cu-item { + display: block; + background-color: #ffffff; + overflow: hidden; +} + +.cu-card.dynamic>.cu-item>.text-content { + padding: 0 30upx 0; + max-height: 6.4em; + overflow: hidden; + font-size: 30upx; + margin-bottom: 20upx; +} + +.cu-card.dynamic>.cu-item .square-img { + width: 100%; + height: 200upx; + border-radius: 6upx; +} + +.cu-card.dynamic>.cu-item .only-img { + width: 100%; + height: 320upx; + border-radius: 6upx; +} + +/* card.dynamic>.cu-item .comment { + padding: 20upx; + background-color: #f1f1f1; + margin: 0 30upx 30upx; + border-radius: 6upx; +} */ + +.cu-card.article { + display: block; +} + +.cu-card.article>.cu-item { + padding-bottom: 30upx; +} + +.cu-card.article>.cu-item .title { + font-size: 30upx; + font-weight: 900; + color: #333333; + line-height: 100upx; + padding: 0 30upx; +} + +.cu-card.article>.cu-item .content { + display: flex; + padding: 0 30upx; +} + +.cu-card.article>.cu-item .content>image { + width: 240upx; + height: 6.4em; + margin-right: 20upx; + border-radius: 6upx; +} + +.cu-card.article>.cu-item .content .desc { + flex: 1; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.cu-card.article>.cu-item .content .text-content { + font-size: 28upx; + color: #888; + height: 4.8em; + overflow: hidden; +} + +/* ================== + 表单 + ==================== */ + +.cu-form-group { + background-color: #ffffff; + padding: 1upx 30upx; + display: flex; + align-items: center; + min-height: 100upx; + justify-content: space-between; +} + +.cu-form-group+.cu-form-group { + border-top: 1upx solid #eee; +} + +.cu-form-group .title { + text-align: justify; + padding-right: 30upx; + font-size: 30upx; + position: relative; + height: 60upx; + line-height: 60upx; +} + +.cu-form-group input { + flex: 1; + font-size: 30upx; + color: #555; + padding-right: 20upx; +} + +.cu-form-group>text[class*="cuIcon-"] { + font-size: 36upx; + padding: 0; + box-sizing: border-box; +} + +.cu-form-group textarea { + margin: 32upx 0 30upx; + height: 4.6em; + width: 100%; + line-height: 1.2em; + flex: 1; + font-size: 28upx; + padding: 0; +} + +.cu-form-group.align-start .title { + height: 1em; + margin-top: 32upx; + line-height: 1em; +} + +.cu-form-group picker { + flex: 1; + padding-right: 40upx; + overflow: hidden; + position: relative; +} + +.cu-form-group picker .picker { + line-height: 100upx; + font-size: 28upx; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + width: 100%; + text-align: right; +} + +.cu-form-group picker::after { + font-family: cuIcon; + display: block; + content: "\e6a3"; + position: absolute; + font-size: 34upx; + color: #8799a3; + line-height: 100upx; + width: 60upx; + text-align: center; + top: 0; + bottom: 0; + right: -20upx; + margin: auto; +} + +.cu-form-group textarea[disabled], +.cu-form-group textarea[disabled] .placeholder { + color: transparent; +} + +/* ================== + 模态窗口 + ==================== */ + +.cu-modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1110; + opacity: 0; + outline: 0; + text-align: center; + -ms-transform: scale(1.185); + transform: scale(1.185); + backface-visibility: hidden; + perspective: 2000upx; + background: rgba(0, 0, 0, 0.6); + transition: all 0.3s ease-in-out 0s; + pointer-events: none; +} + +.cu-modal::before { + content: "\200B"; + display: inline-block; + height: 100%; + vertical-align: middle; +} + +.cu-modal.show { + opacity: 1; + transition-duration: 0.3s; + -ms-transform: scale(1); + transform: scale(1); + overflow-x: hidden; + overflow-y: auto; + pointer-events: auto; +} + +.cu-dialog { + position: relative; + display: inline-block; + vertical-align: middle; + margin-left: auto; + margin-right: auto; + width: 680upx; + max-width: 100%; + background-color: #f8f8f8; + border-radius: 10upx; + overflow: hidden; +} + +.cu-modal.bottom-modal::before { + vertical-align: bottom; +} + +.cu-modal.bottom-modal .cu-dialog { + width: 100%; + border-radius: 0; +} + +.cu-modal.bottom-modal { + margin-bottom: -1000upx; +} + +.cu-modal.bottom-modal.show { + margin-bottom: 0; +} + +.cu-modal.drawer-modal { + transform: scale(1); + display: flex; +} + +.cu-modal.drawer-modal .cu-dialog { + height: 100%; + min-width: 200upx; + border-radius: 0; + margin: initial; + transition-duration: 0.3s; +} + +.cu-modal.drawer-modal.justify-start .cu-dialog { + transform: translateX(-100%); +} + +.cu-modal.drawer-modal.justify-end .cu-dialog { + transform: translateX(100%); +} + +.cu-modal.drawer-modal.show .cu-dialog { + transform: translateX(0%); +} +.cu-modal .cu-dialog>.cu-bar:first-child .action{ + min-width: 100rpx; + margin-right: 0; + min-height: 100rpx; +} +/* ================== + 轮播 + ==================== */ +swiper .a-swiper-dot { + display: inline-block; + width: 16upx; + height: 16upx; + background: rgba(0, 0, 0, .3); + border-radius: 50%; + vertical-align: middle; +} + +swiper[class*="-dot"] .wx-swiper-dots, +swiper[class*="-dot"] .a-swiper-dots, +swiper[class*="-dot"] .uni-swiper-dots { + display: flex; + align-items: center; + width: 100%; + justify-content: center; +} + +swiper.square-dot .wx-swiper-dot, +swiper.square-dot .a-swiper-dot, +swiper.square-dot .uni-swiper-dot { + background-color: #ffffff; + opacity: 0.4; + width: 10upx; + height: 10upx; + border-radius: 20upx; + margin: 0 8upx !important; +} + +swiper.square-dot .wx-swiper-dot.wx-swiper-dot-active, +swiper.square-dot .a-swiper-dot.a-swiper-dot-active, +swiper.square-dot .uni-swiper-dot.uni-swiper-dot-active { + opacity: 1; + width: 30upx; +} + +swiper.round-dot .wx-swiper-dot, +swiper.round-dot .a-swiper-dot, +swiper.round-dot .uni-swiper-dot { + width: 10upx; + height: 10upx; + position: relative; + margin: 4upx 8upx !important; +} + +swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active::after, +swiper.round-dot .a-swiper-dot.a-swiper-dot-active::after, +swiper.round-dot .uni-swiper-dot.uni-swiper-dot-active::after { + content: ""; + position: absolute; + width: 10upx; + height: 10upx; + top: 0upx; + left: 0upx; + right: 0; + bottom: 0; + margin: auto; + background-color: #ffffff; + border-radius: 20upx; +} + +swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active, +swiper.round-dot .a-swiper-dot.a-swiper-dot-active, +swiper.round-dot .uni-swiper-dot.uni-swiper-dot-active { + width: 18upx; + height: 18upx; +} + +.screen-swiper { + min-height: 375upx; +} + +.screen-swiper image, +.screen-swiper video, +.swiper-item image, +.swiper-item video { + width: 100%; + display: block; + height: 100%; + margin: 0; + pointer-events: none; +} + +.card-swiper { + height: 420upx !important; +} + +.card-swiper swiper-item { + width: 610upx !important; + left: 70upx; + box-sizing: border-box; + padding: 40upx 0upx 70upx; + overflow: initial; +} + +.card-swiper swiper-item .swiper-item { + width: 100%; + display: block; + height: 100%; + border-radius: 10upx; + transform: scale(0.9); + transition: all 0.2s ease-in 0s; + overflow: hidden; +} + +.card-swiper swiper-item.cur .swiper-item { + transform: none; + transition: all 0.2s ease-in 0s; +} + + +.tower-swiper { + height: 420upx; + position: relative; + max-width: 750upx; + overflow: hidden; +} + +.tower-swiper .tower-item { + position: absolute; + width: 300upx; + height: 380upx; + top: 0; + bottom: 0; + left: 50%; + margin: auto; + transition: all 0.2s ease-in 0s; + opacity: 1; +} + +.tower-swiper .tower-item.none { + opacity: 0; +} + +.tower-swiper .tower-item .swiper-item { + width: 100%; + height: 100%; + border-radius: 6upx; + overflow: hidden; +} + +/* ================== + 步骤条 + ==================== */ + +.cu-steps { + display: flex; +} + +scroll-view.cu-steps { + display: block; + white-space: nowrap; +} + +scroll-view.cu-steps .cu-item { + display: inline-block; +} + +.cu-steps .cu-item { + flex: 1; + text-align: center; + position: relative; + min-width: 100upx; +} + +.cu-steps .cu-item:not([class*="text-"]) { + color: #8799a3; +} + +.cu-steps .cu-item [class*="cuIcon-"], +.cu-steps .cu-item .num { + display: block; + font-size: 40upx; + line-height: 80upx; +} + +.cu-steps .cu-item::before, +.cu-steps .cu-item::after, +.cu-steps.steps-arrow .cu-item::before, +.cu-steps.steps-arrow .cu-item::after { + content: ""; + display: block; + position: absolute; + height: 0px; + width: calc(100% - 80upx); + border-bottom: 1px solid #ccc; + left: calc(0px - (100% - 80upx) / 2); + top: 40upx; + z-index: 0; +} + +.cu-steps.steps-arrow .cu-item::before, +.cu-steps.steps-arrow .cu-item::after { + content: "\e6a3"; + font-family: 'cuIcon'; + height: 30upx; + border-bottom-width: 0px; + line-height: 30upx; + top: 0; + bottom: 0; + margin: auto; + color: #ccc; +} + +.cu-steps.steps-bottom .cu-item::before, +.cu-steps.steps-bottom .cu-item::after { + bottom: 40upx; + top: initial; +} + +.cu-steps .cu-item::after { + border-bottom: 1px solid currentColor; + width: 0px; + transition: all 0.3s ease-in-out 0s; +} + +.cu-steps .cu-item[class*="text-"]::after { + width: calc(100% - 80upx); + color: currentColor; +} + +.cu-steps .cu-item:first-child::before, +.cu-steps .cu-item:first-child::after { + display: none; +} + +.cu-steps .cu-item .num { + width: 40upx; + height: 40upx; + border-radius: 50%; + line-height: 40upx; + margin: 20upx auto; + font-size: 24upx; + border: 1px solid currentColor; + position: relative; + overflow: hidden; +} + +.cu-steps .cu-item[class*="text-"] .num { + background-color: currentColor; +} + +.cu-steps .cu-item .num::before, +.cu-steps .cu-item .num::after { + content: attr(data-index); + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + margin: auto; + transition: all 0.3s ease-in-out 0s; + transform: translateY(0upx); +} + +.cu-steps .cu-item[class*="text-"] .num::before { + transform: translateY(-40upx); + color: #ffffff; +} + +.cu-steps .cu-item .num::after { + transform: translateY(40upx); + color: #ffffff; + transition: all 0.3s ease-in-out 0s; +} + +.cu-steps .cu-item[class*="text-"] .num::after { + content: "\e645"; + font-family: 'cuIcon'; + color: #ffffff; + transform: translateY(0upx); +} + +.cu-steps .cu-item[class*="text-"] .num.err::after { + content: "\e646"; +} + +/* ================== + 布局 + ==================== */ + +/* -- flex弹性布局 -- */ + +.flex { + display: flex; +} + +.basis-xs { + flex-basis: 20%; +} + +.basis-sm { + flex-basis: 40%; +} + +.basis-df { + flex-basis: 50%; +} + +.basis-lg { + flex-basis: 60%; +} + +.basis-xl { + flex-basis: 80%; +} + +.flex-sub { + flex: 1; +} + +.flex-twice { + flex: 2; +} + +.flex-treble { + flex: 3; +} + +.flex-direction { + flex-direction: column; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.align-start { + align-items: flex-start; +} + +.align-end { + align-items: flex-end; +} + +.align-center { + align-items: center; +} + +.align-stretch { + align-items: stretch; +} + +.self-start { + align-self: flex-start; +} + +.self-center { + align-self: flex-center; +} + +.self-end { + align-self: flex-end; +} + +.self-stretch { + align-self: stretch; +} + +.align-stretch { + align-items: stretch; +} + +.justify-start { + justify-content: flex-start; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.justify-around { + justify-content: space-around; +} + +/* grid布局 */ + +.grid { + display: flex; + flex-wrap: wrap; +} + +.grid.grid-square { + overflow: hidden; +} + +.grid.grid-square .cu-tag { + position: absolute; + right: 0; + top: 0; + border-bottom-left-radius: 6upx; + padding: 6upx 12upx; + height: auto; + background-color: rgba(0, 0, 0, 0.5); +} + +.grid.grid-square>view>text[class*="cuIcon-"] { + font-size: 52upx; + position: absolute; + color: #8799a3; + margin: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} + +.grid.grid-square>view { + margin-right: 20upx; + margin-bottom: 20upx; + border-radius: 6upx; + position: relative; + overflow: hidden; +} +.grid.grid-square>view.bg-img image { + width: 100%; + height: 100%; + position: absolute; +} +.grid.col-1.grid-square>view { + padding-bottom: 100%; + height: 0; + margin-right: 0; +} + +.grid.col-2.grid-square>view { + padding-bottom: calc((100% - 20upx)/2); + height: 0; + width: calc((100% - 20upx)/2); +} + +.grid.col-3.grid-square>view { + padding-bottom: calc((100% - 40upx)/3); + height: 0; + width: calc((100% - 40upx)/3); +} + +.grid.col-4.grid-square>view { + padding-bottom: calc((100% - 60upx)/4); + height: 0; + width: calc((100% - 60upx)/4); +} + +.grid.col-5.grid-square>view { + padding-bottom: calc((100% - 80upx)/5); + height: 0; + width: calc((100% - 80upx)/5); +} + +.grid.col-2.grid-square>view:nth-child(2n), +.grid.col-3.grid-square>view:nth-child(3n), +.grid.col-4.grid-square>view:nth-child(4n), +.grid.col-5.grid-square>view:nth-child(5n) { + margin-right: 0; +} + +.grid.col-1>view { + width: 100%; +} + +.grid.col-2>view { + width: 50%; +} + +.grid.col-3>view { + width: 33.33%; +} + +.grid.col-4>view { + width: 25%; +} + +.grid.col-5>view { + width: 20%; +} + +/* -- 内外边距 -- */ + +.margin-0 { + margin: 0; +} + +.margin-xs { + margin: 10upx; +} + +.margin-sm { + margin: 20upx; +} + +.margin { + margin: 30upx; +} + +.margin-lg { + margin: 40upx; +} + +.margin-xl { + margin: 50upx; +} + +.margin-top-xs { + margin-top: 10upx; +} + +.margin-top-sm { + margin-top: 20upx; +} + +.margin-top { + margin-top: 30upx; +} + +.margin-top-lg { + margin-top: 40upx; +} + +.margin-top-xl { + margin-top: 50upx; +} + +.margin-right-xs { + margin-right: 10upx; +} + +.margin-right-sm { + margin-right: 20upx; +} + +.margin-right { + margin-right: 30upx; +} + +.margin-right-lg { + margin-right: 40upx; +} + +.margin-right-xl { + margin-right: 50upx; +} + +.margin-bottom-xs { + margin-bottom: 10upx; +} + +.margin-bottom-sm { + margin-bottom: 20upx; +} + +.margin-bottom { + margin-bottom: 30upx; +} + +.margin-bottom-lg { + margin-bottom: 40upx; +} + +.margin-bottom-xl { + margin-bottom: 50upx; +} + +.margin-left-xs { + margin-left: 10upx; +} + +.margin-left-sm { + margin-left: 20upx; +} + +.margin-left { + margin-left: 30upx; +} + +.margin-left-lg { + margin-left: 40upx; +} + +.margin-left-xl { + margin-left: 50upx; +} + +.margin-lr-xs { + margin-left: 10upx; + margin-right: 10upx; +} + +.margin-lr-sm { + margin-left: 20upx; + margin-right: 20upx; +} + +.margin-lr { + margin-left: 30upx; + margin-right: 30upx; +} + +.margin-lr-lg { + margin-left: 40upx; + margin-right: 40upx; +} + +.margin-lr-xl { + margin-left: 50upx; + margin-right: 50upx; +} + +.margin-tb-xs { + margin-top: 10upx; + margin-bottom: 10upx; +} + +.margin-tb-sm { + margin-top: 20upx; + margin-bottom: 20upx; +} + +.margin-tb { + margin-top: 30upx; + margin-bottom: 30upx; +} + +.margin-tb-lg { + margin-top: 40upx; + margin-bottom: 40upx; +} + +.margin-tb-xl { + margin-top: 50upx; + margin-bottom: 50upx; +} + +.padding-0 { + padding: 0; +} + +.padding-xs { + padding: 10upx; +} + +.padding-sm { + padding: 20upx; +} + +.padding { + padding: 30upx; +} + +.padding-lg { + padding: 40upx; +} + +.padding-xl { + padding: 50upx; +} + +.padding-top-xs { + padding-top: 10upx; +} + +.padding-top-sm { + padding-top: 20upx; +} + +.padding-top { + padding-top: 30upx; +} + +.padding-top-lg { + padding-top: 40upx; +} + +.padding-top-xl { + padding-top: 50upx; +} + +.padding-right-xs { + padding-right: 10upx; +} + +.padding-right-sm { + padding-right: 20upx; +} + +.padding-right { + padding-right: 30upx; +} + +.padding-right-lg { + padding-right: 40upx; +} + +.padding-right-xl { + padding-right: 50upx; +} + +.padding-bottom-xs { + padding-bottom: 10upx; +} + +.padding-bottom-sm { + padding-bottom: 20upx; +} + +.padding-bottom { + padding-bottom: 30upx; +} + +.padding-bottom-lg { + padding-bottom: 40upx; +} + +.padding-bottom-xl { + padding-bottom: 50upx; +} + +.padding-left-xs { + padding-left: 10upx; +} + +.padding-left-sm { + padding-left: 20upx; +} + +.padding-left { + padding-left: 30upx; +} + +.padding-left-lg { + padding-left: 40upx; +} + +.padding-left-xl { + padding-left: 50upx; +} + +.padding-lr-xs { + padding-left: 10upx; + padding-right: 10upx; +} + +.padding-lr-sm { + padding-left: 20upx; + padding-right: 20upx; +} + +.padding-lr { + padding-left: 30upx; + padding-right: 30upx; +} + +.padding-lr-lg { + padding-left: 40upx; + padding-right: 40upx; +} + +.padding-lr-xl { + padding-left: 50upx; + padding-right: 50upx; +} + +.padding-tb-xs { + padding-top: 10upx; + padding-bottom: 10upx; +} + +.padding-tb-sm { + padding-top: 20upx; + padding-bottom: 20upx; +} + +.padding-tb { + padding-top: 30upx; + padding-bottom: 30upx; +} + +.padding-tb-lg { + padding-top: 40upx; + padding-bottom: 40upx; +} + +.padding-tb-xl { + padding-top: 50upx; + padding-bottom: 50upx; +} + +/* -- 浮动 -- */ + +.cf::after, +.cf::before { + content: " "; + display: table; +} + +.cf::after { + clear: both; +} + +.fl { + float: left; +} + +.fr { + float: right; +} + +/* ================== + 背景 + ==================== */ + +.line-red::after, +.lines-red::after { + border-color: #e54d42; +} + +.line-orange::after, +.lines-orange::after { + border-color: #f37b1d; +} + +.line-yellow::after, +.lines-yellow::after { + border-color: #fbbd08; +} + +.line-olive::after, +.lines-olive::after { + border-color: #8dc63f; +} + +.line-green::after, +.lines-green::after { + border-color: #39b54a; +} + +.line-cyan::after, +.lines-cyan::after { + border-color: #1cbbb4; +} + +.line-blue::after, +.lines-blue::after { + border-color: #0081ff; +} + +.line-purple::after, +.lines-purple::after { + border-color: #6739b6; +} + +.line-mauve::after, +.lines-mauve::after { + border-color: #9c26b0; +} + +.line-pink::after, +.lines-pink::after { + border-color: #e03997; +} + +.line-brown::after, +.lines-brown::after { + border-color: #a5673f; +} + +.line-grey::after, +.lines-grey::after { + border-color: #8799a3; +} + +.line-gray::after, +.lines-gray::after { + border-color: #aaaaaa; +} + +.line-black::after, +.lines-black::after { + border-color: #333333; +} + +.line-white::after, +.lines-white::after { + border-color: #ffffff; +} + +.bg-red { + background-color: #e54d42; + color: #ffffff; +} + +.bg-orange { + background-color: #f37b1d; + color: #ffffff; +} + +.bg-yellow { + background-color: #fbbd08; + color: #333333; +} + +.bg-olive { + background-color: #8dc63f; + color: #ffffff; +} + +.bg-green { + background-color: #39b54a; + color: #ffffff; +} + +.bg-cyan { + background-color: #1cbbb4; + color: #ffffff; +} + +.bg-blue { + background-color: #0081ff; + color: #ffffff; +} + +.bg-purple { + background-color: #6739b6; + color: #ffffff; +} + +.bg-mauve { + background-color: #9c26b0; + color: #ffffff; +} + +.bg-pink { + background-color: #e03997; + color: #ffffff; +} + +.bg-brown { + background-color: #a5673f; + color: #ffffff; +} + +.bg-grey { + background-color: #8799a3; + color: #ffffff; +} + +.bg-gray { + background-color: #f0f0f0; + color: #333333; +} + +.bg-black { + background-color: #333333; + color: #ffffff; +} + +.bg-white { + background-color: #ffffff; + color: #666666; +} + +.bg-shadeTop { + background-image: linear-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.01)); + color: #ffffff; +} + +.bg-shadeBottom { + background-image: linear-gradient(rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 1)); + color: #ffffff; +} + +.bg-red.light { + color: #e54d42; + background-color: #fadbd9; +} + +.bg-orange.light { + color: #f37b1d; + background-color: #fde6d2; +} + +.bg-yellow.light { + color: #fbbd08; + background-color: #fef2ced2; +} + +.bg-olive.light { + color: #8dc63f; + background-color: #e8f4d9; +} + +.bg-green.light { + color: #39b54a; + background-color: #d7f0dbff; +} + +.bg-cyan.light { + color: #1cbbb4; + background-color: #d2f1f0; +} + +.bg-blue.light { + color: #0081ff; + background-color: #cce6ff; +} + +.bg-purple.light { + color: #6739b6; + background-color: #e1d7f0; +} + +.bg-mauve.light { + color: #9c26b0; + background-color: #ebd4ef; +} + +.bg-pink.light { + color: #e03997; + background-color: #f9d7ea; +} + +.bg-brown.light { + color: #a5673f; + background-color: #ede1d9; +} + +.bg-grey.light { + color: #8799a3; + background-color: #e7ebed; +} + +.bg-gradual-red { + background-image: linear-gradient(45deg, #f43f3b, #ec008c); + color: #ffffff; +} + +.bg-gradual-orange { + background-image: linear-gradient(45deg, #ff9700, #ed1c24); + color: #ffffff; +} + +.bg-gradual-green { + background-image: linear-gradient(45deg, #39b54a, #8dc63f); + color: #ffffff; +} + +.bg-gradual-purple { + background-image: linear-gradient(45deg, #9000ff, #5e00ff); + color: #ffffff; +} + +.bg-gradual-pink { + background-image: linear-gradient(45deg, #ec008c, #6739b6); + color: #ffffff; +} + +.bg-gradual-blue { + background-image: linear-gradient(45deg, #0081ff, #1cbbb4); + color: #ffffff; +} + +.shadow[class*="-red"] { + box-shadow: 6upx 6upx 8upx rgba(204, 69, 59, 0.2); +} + +.shadow[class*="-orange"] { + box-shadow: 6upx 6upx 8upx rgba(217, 109, 26, 0.2); +} + +.shadow[class*="-yellow"] { + box-shadow: 6upx 6upx 8upx rgba(224, 170, 7, 0.2); +} + +.shadow[class*="-olive"] { + box-shadow: 6upx 6upx 8upx rgba(124, 173, 55, 0.2); +} + +.shadow[class*="-green"] { + box-shadow: 6upx 6upx 8upx rgba(48, 156, 63, 0.2); +} + +.shadow[class*="-cyan"] { + box-shadow: 6upx 6upx 8upx rgba(28, 187, 180, 0.2); +} + +.shadow[class*="-blue"] { + box-shadow: 6upx 6upx 8upx rgba(0, 102, 204, 0.2); +} + +.shadow[class*="-purple"] { + box-shadow: 6upx 6upx 8upx rgba(88, 48, 156, 0.2); +} + +.shadow[class*="-mauve"] { + box-shadow: 6upx 6upx 8upx rgba(133, 33, 150, 0.2); +} + +.shadow[class*="-pink"] { + box-shadow: 6upx 6upx 8upx rgba(199, 50, 134, 0.2); +} + +.shadow[class*="-brown"] { + box-shadow: 6upx 6upx 8upx rgba(140, 88, 53, 0.2); +} + +.shadow[class*="-grey"] { + box-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); +} + +.shadow[class*="-gray"] { + box-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); +} + +.shadow[class*="-black"] { + box-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2); +} + +.shadow[class*="-white"] { + box-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2); +} + +.text-shadow[class*="-red"] { + text-shadow: 6upx 6upx 8upx rgba(204, 69, 59, 0.2); +} + +.text-shadow[class*="-orange"] { + text-shadow: 6upx 6upx 8upx rgba(217, 109, 26, 0.2); +} + +.text-shadow[class*="-yellow"] { + text-shadow: 6upx 6upx 8upx rgba(224, 170, 7, 0.2); +} + +.text-shadow[class*="-olive"] { + text-shadow: 6upx 6upx 8upx rgba(124, 173, 55, 0.2); +} + +.text-shadow[class*="-green"] { + text-shadow: 6upx 6upx 8upx rgba(48, 156, 63, 0.2); +} + +.text-shadow[class*="-cyan"] { + text-shadow: 6upx 6upx 8upx rgba(28, 187, 180, 0.2); +} + +.text-shadow[class*="-blue"] { + text-shadow: 6upx 6upx 8upx rgba(0, 102, 204, 0.2); +} + +.text-shadow[class*="-purple"] { + text-shadow: 6upx 6upx 8upx rgba(88, 48, 156, 0.2); +} + +.text-shadow[class*="-mauve"] { + text-shadow: 6upx 6upx 8upx rgba(133, 33, 150, 0.2); +} + +.text-shadow[class*="-pink"] { + text-shadow: 6upx 6upx 8upx rgba(199, 50, 134, 0.2); +} + +.text-shadow[class*="-brown"] { + text-shadow: 6upx 6upx 8upx rgba(140, 88, 53, 0.2); +} + +.text-shadow[class*="-grey"] { + text-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); +} + +.text-shadow[class*="-gray"] { + text-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); +} + +.text-shadow[class*="-black"] { + text-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2); +} + +.bg-img { + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} + +.bg-mask { + background-color: #333333; + position: relative; +} + +.bg-mask::after { + content: ""; + border-radius: inherit; + width: 100%; + height: 100%; + display: block; + background-color: rgba(0, 0, 0, 0.4); + position: absolute; + left: 0; + right: 0; + bottom: 0; + top: 0; +} + +.bg-mask view, +.bg-mask cover-view { + z-index: 5; + position: relative; +} + +.bg-video { + position: relative; +} + +.bg-video video { + display: block; + height: 100%; + width: 100%; + -o-object-fit: cover; + object-fit: cover; + position: absolute; + top: 0; + z-index: 0; + pointer-events: none; +} + +/* ================== + 文本 + ==================== */ + +.text-xs { + font-size: 20upx; +} + +.text-sm { + font-size: 24upx; +} + +.text-df { + font-size: 28upx; +} + +.text-lg { + font-size: 32upx; +} + +.text-xl { + font-size: 36upx; +} + +.text-xxl { + font-size: 44upx; +} + +.text-sl { + font-size: 80upx; +} + +.text-xsl { + font-size: 120upx; +} + +.text-Abc { + text-transform: Capitalize; +} + +.text-ABC { + text-transform: Uppercase; +} + +.text-abc { + text-transform: Lowercase; +} + +.text-price::before { + content: "¥"; + font-size: 80%; + margin-right: 4upx; +} + +.text-cut { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.text-bold { + font-weight: bold; +} + +.text-center { + text-align: center; +} + +.text-content { + line-height: 1.6; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-red, +.line-red, +.lines-red { + color: #e54d42; +} + +.text-orange, +.line-orange, +.lines-orange { + color: #f37b1d; +} + +.text-yellow, +.line-yellow, +.lines-yellow { + color: #fbbd08; +} + +.text-olive, +.line-olive, +.lines-olive { + color: #8dc63f; +} + +.text-green, +.line-green, +.lines-green { + color: #39b54a; +} + +.text-cyan, +.line-cyan, +.lines-cyan { + color: #1cbbb4; +} + +.text-blue, +.line-blue, +.lines-blue { + color: #0081ff; +} + +.text-purple, +.line-purple, +.lines-purple { + color: #6739b6; +} + +.text-mauve, +.line-mauve, +.lines-mauve { + color: #9c26b0; +} + +.text-pink, +.line-pink, +.lines-pink { + color: #e03997; +} + +.text-brown, +.line-brown, +.lines-brown { + color: #a5673f; +} + +.text-grey, +.line-grey, +.lines-grey { + color: #8799a3; +} + +.text-gray, +.line-gray, +.lines-gray { + color: #aaaaaa; +} + +.text-black, +.line-black, +.lines-black { + color: #333333; +} + +.text-white, +.line-white, +.lines-white { + color: #ffffff; +} diff --git a/kinit-uni/static/scss/global.scss b/kinit-uni/static/scss/global.scss new file mode 100644 index 0000000..ac636bd --- /dev/null +++ b/kinit-uni/static/scss/global.scss @@ -0,0 +1,90 @@ +.text-center { + text-align: center; +} + +.font-13 { + font-size: 13px; +} + +.font-12 { + font-size: 12px; +} + +.font-11 { + font-size: 11px; +} + +.text-grey1 { + color: #888; +} +.text-grey2 { + color: #aaa; +} + +.list-cell-arrow::before { + content: ' '; + height: 10px; + width: 10px; + border-width: 2px 2px 0 0; + border-color: #c0c0c0; + border-style: solid; + -webkit-transform: matrix(0.5, 0.5, -0.5, 0.5, 0, 0); + transform: matrix(0.5, 0.5, -0.5, 0.5, 0, 0); + position: absolute; + top: 50%; + margin-top: -6px; + right: 30rpx; + } + + .list-cell { + position: relative; + width: 100%; + box-sizing: border-box; + background-color: #fff; + color: #333; + padding: 26rpx 30rpx; + } + + .list-cell:first-child { + border-radius: 8rpx 8rpx 0 0; + } + + .list-cell:last-child { + border-radius: 0 0 8rpx 8rpx; + } + + .list-cell::after { + content: ''; + position: absolute; + border-bottom: 1px solid #eaeef1; + -webkit-transform: scaleY(0.5) translateZ(0); + transform: scaleY(0.5) translateZ(0); + transform-origin: 0 100%; + bottom: 0; + right: 0; + left: 0; + pointer-events: none; + } + + + .menu-list { + margin: 15px 15px; + + .menu-item-box { + width: 100%; + display: flex; + align-items: center; + + .menu-icon { + color: #007AFF; + font-size: 16px; + margin-right: 5px; + } + + .text-right { + margin-left: auto; + margin-right: 34rpx; + color: #999; + } + } + } diff --git a/kinit-uni/static/scss/index.scss b/kinit-uni/static/scss/index.scss new file mode 100644 index 0000000..5784154 --- /dev/null +++ b/kinit-uni/static/scss/index.scss @@ -0,0 +1,8 @@ +/* uview ui */ +@import "uview-ui/index.scss"; +// global +@import "./global.scss"; +// color-ui +@import "@/static/scss/colorui.css"; +// iconfont +@import "@/static/font/iconfont.css"; \ No newline at end of file diff --git a/kinit-uni/store/getters.js b/kinit-uni/store/getters.js new file mode 100644 index 0000000..7c0ad94 --- /dev/null +++ b/kinit-uni/store/getters.js @@ -0,0 +1,22 @@ +const getters = { + isUser: state => state.auth.isUser, + token: state => state.auth.token, + avatar: state => state.auth.avatar, + name: state => state.auth.name, + roles: state => state.auth.roles, + permissions: state => state.auth.permissions, + + version: state => state.app.version, + title: state => state.app.title, + logo: state => state.app.logo, + logoImage: state => state.app.logoImage, + footer: state => state.app.footer, + footerContent: state => state.app.footerContent, + icpNumber: state => state.app.icpNumber, + privacy: state => state.app.privacy, + agreement: state => state.app.agreement, + siteUrl: state => state.app.siteUrl, + + dictObj: state => state.dict.dictObj, +} +export default getters diff --git a/kinit-uni/store/index.js b/kinit-uni/store/index.js new file mode 100644 index 0000000..50495b2 --- /dev/null +++ b/kinit-uni/store/index.js @@ -0,0 +1,19 @@ +import Vue from 'vue' +import Vuex from 'vuex' +import auth from '@/store/modules/auth' +import app from '@/store/modules/app' +import dict from '@/store/modules/dict' +import getters from './getters' + +Vue.use(Vuex) + +const store = new Vuex.Store({ + modules: { + auth, + app, + dict + }, + getters +}) + +export default store diff --git a/kinit-uni/store/modules/app.js b/kinit-uni/store/modules/app.js new file mode 100644 index 0000000..bed6d47 --- /dev/null +++ b/kinit-uni/store/modules/app.js @@ -0,0 +1,61 @@ +import storage from '@/common/utils/storage' +import config from '@/config.js' +import { getSystemSettingsClassifysApi } from '@/common/request/api/vadmin/system/settings.js' + +const app = { + state: { + title: "", // 标题 + logo: true, // 是否开启logo显示 + logoImage: '', // logo图片 + footer: true, // 显示页脚 + footerContent: '', // 页脚内容 + icpNumber: '', // 备案号 + version: config.appInfo.version, // 版本 + privacy: config.appInfo.privacy, // 隐私政策 + agreement: config.appInfo.agreement, // 用户协议 + siteUrl: config.appInfo.siteUrl, // 源码地址 + }, + + mutations: { + SET_TITLE: (state, title) => { + state.title = title + }, + SET_LOGO: (state, logo) => { + state.logo = logo + }, + SET_LOGO_IMAGE: (state, logoImage) => { + state.logoImage = logoImage + }, + SET_FOOTER: (state, footer) => { + state.footer = footer + }, + SET_FOOTER_CONTENT: (state, footerContent) => { + state.footerContent = footerContent + }, + SET_ICPNUMBER: (state, icpNumber) => { + state.icpNumber = icpNumber + }, + SET_VERSION: (state, version) => { + state.version = version + }, + }, + + actions: { + // 初始化系统配置 + InitConfig({ commit }) { + return new Promise((resolve, reject) => { + getSystemSettingsClassifysApi({ classify: 'web' }).then(res => { + commit('SET_TITLE', res.data.web_basic.web_title || 'Kinit') + commit('SET_LOGO_IMAGE', config.baseUrl + (res.data.web_basic.web_logo || '/media/system/logo.png')) + commit('SET_FOOTER_CONTENT', res.data.web_basic.web_copyright || 'Copyright ©2022-present K') + commit('SET_ICPNUMBER', res.data.web_basic.web_icp_number || '') + resolve() + }).catch(error => { + reject(error) + }) + }) + } + } +} + +export default app diff --git a/kinit-uni/store/modules/auth.js b/kinit-uni/store/modules/auth.js new file mode 100644 index 0000000..fdc731d --- /dev/null +++ b/kinit-uni/store/modules/auth.js @@ -0,0 +1,116 @@ +import storage from '@/common/utils/storage' +import constant from '@/common/utils/constant' +import { login, getInfo } from '@/common/request/api/login' +import { getToken, setToken, removeToken } from '@/common/utils/auth' + +const auth = { + state: { + token: getToken(), + isUser: storage.get(constant.isUser) || false, + name: storage.get(constant.name), + nickname: storage.get(constant.nickname), + telephone: storage.get(constant.telephone), + avatar: storage.get(constant.avatar), + createDatetime: storage.get(constant.createDatetime), + roles: storage.get(constant.roles), + permissions: storage.get(constant.permissions) + }, + + mutations: { + SET_TOKEN: (state, token) => { + state.token = token + }, + SET_NAME: (state, name) => { + state.name = name + storage.set(constant.name, name) + }, + SET_NICKNAME: (state, nickname) => { + state.nickname = nickname + storage.set(constant.nickname, nickname) + }, + SET_CREATE_DATETIME: (state, createDatetime) => { + state.createDatetime = createDatetime + storage.set(constant.createDatetime, createDatetime) + }, + SET_AVATAR: (state, avatar) => { + state.avatar = avatar + storage.set(constant.avatar, avatar) + }, + SET_ROLES: (state, roles) => { + state.roles = roles + storage.set(constant.roles, roles) + }, + SET_PERMISSIONS: (state, permissions) => { + state.permissions = permissions + storage.set(constant.permissions, permissions) + }, + SET_TELEPHONE: (state, telephone) => { + state.telephone = telephone + storage.set(constant.telephone, telephone) + }, + SET_ISUSER: (state, isUser) => { + state.isUser = isUser + storage.set(constant.isUser, isUser) + }, + }, + + actions: { + // 登录 + Login({ commit }, userInfo) { + const telephone = userInfo.telephone.trim() + const password = userInfo.password + const method = userInfo.method + return new Promise((resolve, reject) => { + login(telephone, password, method).then(res => { + setToken(`${res.data.token_type} ${res.data.access_token}`) + commit('SET_TOKEN', `${res.data.token_type} ${res.data.access_token}`) + resolve() + }).catch(error => { + reject(error) + }) + }) + }, + + // 获取用户信息 + GetInfo({ commit }) { + return new Promise((resolve, reject) => { + getInfo().then(res => { + const user = res.data + const avatar = (user == null || user.avatar == "" || user.avatar == null) ? require("@/static/images/avatar.jpg") : user.avatar + const name = (user == null || user.name == "" || user.name == null) ? "" : user.name + commit('SET_ROLES', user.roles.map((item) => item.name) || ['ROLE_DEFAULT']) + commit('SET_PERMISSIONS', user.permissions) + commit('SET_NAME', name) + commit('SET_TELEPHONE', user.telephone) + commit('SET_AVATAR', avatar) + commit('SET_CREATE_DATETIME', user.create_datetime) + commit('SET_ISUSER', true) + resolve(res) + }).catch(error => { + reject(error) + }) + }) + }, + + // 更新用户基本信息 + UpdateInfo({ commit }, user) { + commit('SET_NAME', user.name) + commit('SET_TELEPHONE', user.telephone) + }, + + // 退出系统 + LogOut({ commit }) { + return new Promise((resolve, reject) => { + commit('SET_TOKEN', '') + commit('SET_ROLES', []) + commit('SET_PERMISSIONS', []) + removeToken() + storage.clean() + uni.reLaunch({ url: '/pages/login' }) + resolve() + }) + } + } +} + +export default auth diff --git a/kinit-uni/store/modules/dict.js b/kinit-uni/store/modules/dict.js new file mode 100644 index 0000000..0946f5c --- /dev/null +++ b/kinit-uni/store/modules/dict.js @@ -0,0 +1,48 @@ +import { getDictTypeDetailsApi } from '@/common/request/api/vadmin/system/dict.js' + +const dict = { + state: { + dictObj: {}, // 字典元素 + }, + + mutations: { + SET_DICT_OBJ: (state, dictObj) => { + state.dictObj = dictObj + } + }, + + actions: { + // 初始化系统配置 + getDicts({ commit, getters }, dictTypes) { + return new Promise((resolve, reject) => { + const result = {} + const addList = [] + const dictObj = JSON.parse(JSON.stringify(getters.dictObj)) + for (const item of dictTypes) { + if (item in dictObj) { + result[item] = dictObj[item] + } else { + result[item] = [] + addList.push(item) + } + } + if (addList.length > 0) { + getDictTypeDetailsApi(addList).then(res => { + for (const item of addList) { + result[item] = res.data[item] + dictObj[item] = res.data[item] + } + commit('SET_DICT_OBJ', dictObj) + resolve(result) + }).catch(error => { + reject(error) + }) + } else { + resolve(result) + } + }) + } + } +} + +export default dict diff --git a/kinit-uni/uni.scss b/kinit-uni/uni.scss new file mode 100644 index 0000000..3a5886d --- /dev/null +++ b/kinit-uni/uni.scss @@ -0,0 +1,67 @@ +/* uView的全局SCSS主题文件 */ +@import 'uview-ui/theme.scss'; + +/** + * uni-app内置的常用样式变量 + */ + +/* 行为相关颜色 */ +$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:#e5e5e5; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm:12px; +$uni-font-size-base:14px; +$uni-font-size-lg:16px; + +/* 图片尺寸 */ +$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; \ No newline at end of file diff --git a/kinit-uni/uni_modules/uni-badge/changelog.md b/kinit-uni/uni_modules/uni-badge/changelog.md new file mode 100644 index 0000000..544ecc1 --- /dev/null +++ b/kinit-uni/uni_modules/uni-badge/changelog.md @@ -0,0 +1,29 @@ +## 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/kinit-uni/uni_modules/uni-badge/components/uni-badge/uni-badge.vue b/kinit-uni/uni_modules/uni-badge/components/uni-badge/uni-badge.vue new file mode 100644 index 0000000..fcbfe93 --- /dev/null +++ b/kinit-uni/uni_modules/uni-badge/components/uni-badge/uni-badge.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-badge/package.json b/kinit-uni/uni_modules/uni-badge/package.json new file mode 100644 index 0000000..4e9e631 --- /dev/null +++ b/kinit-uni/uni_modules/uni-badge/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-badge", + "displayName": "uni-badge 数字角标", + "version": "1.2.0", + "description": "数字角标(徽章)组件,在元素周围展示消息提醒,一般用于列表、九宫格、按钮等地方。", + "keywords": [ + "", + "badge", + "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/kinit-uni/uni_modules/uni-badge/readme.md b/kinit-uni/uni_modules/uni-badge/readme.md new file mode 100644 index 0000000..bdf175d --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-breadcrumb/changelog.md b/kinit-uni/uni_modules/uni-breadcrumb/changelog.md new file mode 100644 index 0000000..016e6ce --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-breadcrumb/components/uni-breadcrumb-item/uni-breadcrumb-item.vue b/kinit-uni/uni_modules/uni-breadcrumb/components/uni-breadcrumb-item/uni-breadcrumb-item.vue new file mode 100644 index 0000000..b9edbd6 --- /dev/null +++ b/kinit-uni/uni_modules/uni-breadcrumb/components/uni-breadcrumb-item/uni-breadcrumb-item.vue @@ -0,0 +1,121 @@ + + + diff --git a/kinit-uni/uni_modules/uni-breadcrumb/components/uni-breadcrumb/uni-breadcrumb.vue b/kinit-uni/uni_modules/uni-breadcrumb/components/uni-breadcrumb/uni-breadcrumb.vue new file mode 100644 index 0000000..94493a2 --- /dev/null +++ b/kinit-uni/uni_modules/uni-breadcrumb/components/uni-breadcrumb/uni-breadcrumb.vue @@ -0,0 +1,41 @@ + + + diff --git a/kinit-uni/uni_modules/uni-breadcrumb/package.json b/kinit-uni/uni_modules/uni-breadcrumb/package.json new file mode 100644 index 0000000..0a04e50 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-breadcrumb/readme.md b/kinit-uni/uni_modules/uni-breadcrumb/readme.md new file mode 100644 index 0000000..6976b8d --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-calendar/changelog.md b/kinit-uni/uni_modules/uni-calendar/changelog.md new file mode 100644 index 0000000..6df4493 --- /dev/null +++ b/kinit-uni/uni_modules/uni-calendar/changelog.md @@ -0,0 +1,16 @@ +## 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/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/calendar.js b/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/calendar.js new file mode 100644 index 0000000..b8d7d6f --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json b/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json new file mode 100644 index 0000000..fcbd13c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js b/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json b/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json new file mode 100644 index 0000000..1ca43de --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json b/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json new file mode 100644 index 0000000..e0fe33b --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue b/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue new file mode 100644 index 0000000..30bd6c8 --- /dev/null +++ b/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue b/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue new file mode 100644 index 0000000..88381db --- /dev/null +++ b/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue @@ -0,0 +1,562 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/util.js b/kinit-uni/uni_modules/uni-calendar/components/uni-calendar/util.js new file mode 100644 index 0000000..2d6100b --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-calendar/package.json b/kinit-uni/uni_modules/uni-calendar/package.json new file mode 100644 index 0000000..40455c8 --- /dev/null +++ b/kinit-uni/uni_modules/uni-calendar/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-calendar", + "displayName": "uni-calendar 日历", + "version": "1.4.5", + "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": [], + "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/kinit-uni/uni_modules/uni-calendar/readme.md b/kinit-uni/uni_modules/uni-calendar/readme.md new file mode 100644 index 0000000..4f3ca0e --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-card/changelog.md b/kinit-uni/uni_modules/uni-card/changelog.md new file mode 100644 index 0000000..c3cd8c4 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-card/components/uni-card/uni-card.vue b/kinit-uni/uni_modules/uni-card/components/uni-card/uni-card.vue new file mode 100644 index 0000000..38cf594 --- /dev/null +++ b/kinit-uni/uni_modules/uni-card/components/uni-card/uni-card.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-card/package.json b/kinit-uni/uni_modules/uni-card/package.json new file mode 100644 index 0000000..f16224d --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-card/readme.md b/kinit-uni/uni_modules/uni-card/readme.md new file mode 100644 index 0000000..7434e71 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-collapse/changelog.md b/kinit-uni/uni_modules/uni-collapse/changelog.md new file mode 100644 index 0000000..292e4c7 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue b/kinit-uni/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue new file mode 100644 index 0000000..d62a6a7 --- /dev/null +++ b/kinit-uni/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue @@ -0,0 +1,402 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue b/kinit-uni/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue new file mode 100644 index 0000000..384c39a --- /dev/null +++ b/kinit-uni/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue @@ -0,0 +1,147 @@ + + + diff --git a/kinit-uni/uni_modules/uni-collapse/package.json b/kinit-uni/uni_modules/uni-collapse/package.json new file mode 100644 index 0000000..65349cf --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-collapse/readme.md b/kinit-uni/uni_modules/uni-collapse/readme.md new file mode 100644 index 0000000..bc758eb --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-combox/changelog.md b/kinit-uni/uni_modules/uni-combox/changelog.md new file mode 100644 index 0000000..23c2748 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-combox/components/uni-combox/uni-combox.vue b/kinit-uni/uni_modules/uni-combox/components/uni-combox/uni-combox.vue new file mode 100644 index 0000000..500b6f8 --- /dev/null +++ b/kinit-uni/uni_modules/uni-combox/components/uni-combox/uni-combox.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-combox/package.json b/kinit-uni/uni_modules/uni-combox/package.json new file mode 100644 index 0000000..4a05c3f --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-combox/readme.md b/kinit-uni/uni_modules/uni-combox/readme.md new file mode 100644 index 0000000..ffa2cc8 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-countdown/changelog.md b/kinit-uni/uni_modules/uni-countdown/changelog.md new file mode 100644 index 0000000..f25beef --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json b/kinit-uni/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json new file mode 100644 index 0000000..06309cb --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js b/kinit-uni/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json b/kinit-uni/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json new file mode 100644 index 0000000..358cdd1 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json b/kinit-uni/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json new file mode 100644 index 0000000..e5a63de --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue b/kinit-uni/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue new file mode 100644 index 0000000..1f8ef4e --- /dev/null +++ b/kinit-uni/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue @@ -0,0 +1,271 @@ + + + diff --git a/kinit-uni/uni_modules/uni-countdown/package.json b/kinit-uni/uni_modules/uni-countdown/package.json new file mode 100644 index 0000000..70e99ee --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-countdown/readme.md b/kinit-uni/uni_modules/uni-countdown/readme.md new file mode 100644 index 0000000..4bcb1aa --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-data-checkbox/changelog.md b/kinit-uni/uni_modules/uni-data-checkbox/changelog.md new file mode 100644 index 0000000..dbc517a --- /dev/null +++ b/kinit-uni/uni_modules/uni-data-checkbox/changelog.md @@ -0,0 +1,43 @@ +## 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/kinit-uni/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue b/kinit-uni/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue new file mode 100644 index 0000000..2e51712 --- /dev/null +++ b/kinit-uni/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue @@ -0,0 +1,817 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-data-checkbox/package.json b/kinit-uni/uni_modules/uni-data-checkbox/package.json new file mode 100644 index 0000000..51470a9 --- /dev/null +++ b/kinit-uni/uni_modules/uni-data-checkbox/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-data-checkbox", + "displayName": "uni-data-checkbox 数据选择器", + "version": "1.0.2", + "description": "通过数据驱动的单选框和复选框", + "keywords": [ + "uni-ui", + "checkbox", + "单选", + "多选", + "单选多选" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.1" + }, + "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-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/kinit-uni/uni_modules/uni-data-checkbox/readme.md b/kinit-uni/uni_modules/uni-data-checkbox/readme.md new file mode 100644 index 0000000..6eb253d --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-data-picker/changelog.md b/kinit-uni/uni_modules/uni-data-picker/changelog.md new file mode 100644 index 0000000..083e521 --- /dev/null +++ b/kinit-uni/uni_modules/uni-data-picker/changelog.md @@ -0,0 +1,64 @@ +## 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/kinit-uni/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js b/kinit-uni/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js new file mode 100644 index 0000000..6ef26a2 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue b/kinit-uni/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue new file mode 100644 index 0000000..4553627 --- /dev/null +++ b/kinit-uni/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue @@ -0,0 +1,554 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js b/kinit-uni/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js new file mode 100644 index 0000000..c12fd54 --- /dev/null +++ b/kinit-uni/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js @@ -0,0 +1,563 @@ +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: 20 + }, + 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 + }, + postField() { + let fields = [this.field]; + if (this.parentField) { + fields.push(`${this.parentField} as parent_value`); + } + return fields.join(','); + }, + 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 = [] + }, + 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 + }, + getNodeData(callback) { + if (this.loading) { + return + } + this.loading = true + this.getCommand({ + field: this.postField, + where: this._pathWhere() + }).then((res) => { + this.loading = false + this.selected = res.result.data + callback && callback() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + getTreePath(callback) { + if (this.loading) { + return + } + this.loading = true + + this.getCommand({ + field: this.postField, + getTreePath: { + startWith: `${this.selfField}=='${this.dataValue}'` + } + }).then((res) => { + this.loading = false + let treePath = [] + this._extractTreePath(res.result.data, treePath) + this.selected = treePath + callback && callback() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + loadData() { + if (this.isLocaldata) { + this._processLocalData() + return + } + + if (this.dataValue != null) { + this._loadNodeData((data) => { + this._treeData = data + this._updateBindData() + this._updateSelected() + }) + return + } + + if (this.stepSearh) { + this._loadNodeData((data) => { + this._treeData = data + this._updateBindData() + }) + } else { + this._loadAllData((data) => { + this._treeData = [] + this._extractTree(data, this._treeData, null) + this._updateBindData() + }) + } + }, + _loadAllData(callback) { + if (this.loading) { + return + } + this.loading = true + + this.getCommand({ + field: this.postField, + gettree: true, + startwith: `${this.selfField}=='${this.dataValue}'` + }).then((res) => { + this.loading = false + callback(res.result.data) + this.onDataChange() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + _loadNodeData(callback, pw) { + if (this.loading) { + return + } + this.loading = true + + this.getCommand({ + field: this.postField, + where: pw || this._postWhere(), + pageSize: 500 + }).then((res) => { + this.loading = false + callback(res.result.data) + this.onDataChange() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + _pathWhere() { + let result = [] + let where_field = this._getParentNameByField(); + if (where_field) { + result.push(`${where_field} == '${this.dataValue}'`) + } + + if (this.where) { + return `(${this.where}) && (${result.join(' || ')})` + } + + return result.join(' || ') + }, + _postWhere() { + 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(' && ') + }, + _nodeWhere() { + let result = [] + let selected = this.selected + if (selected.length) { + result.push(`${this.parentField} == '${selected[selected.length - 1].value}'`) + } + + if (this.where) { + return `(${this.where}) && (${result.join(' || ')})` + } + + return result.join(' || ') + }, + _getParentNameByField() { + const fields = this.field.split(','); + let where_field = 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') { + where_field = items[0].trim(); + break; + } + } + return where_field + }, + _isTreeView() { + return (this.parentField && this.selfField) + }, + _updateSelected() { + var dl = this.dataList + var sl = this.selected + let textField = this.map.text + let valueField = this.map.value + for (var i = 0; i < sl.length; i++) { + var value = sl[i].value + var dl2 = dl[i] + for (var j = 0; j < dl2.length; j++) { + var item2 = dl2[j] + if (item2[valueField] === value) { + sl[i].text = item2[textField] + break + } + } + } + }, + _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 + } + }, + _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++) { + var value = paths[i].value + var 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 [] + }, + _processLocalData() { + this._treeData = [] + this._extractTree(this.localdata, this._treeData) + + var 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) + } + } +} diff --git a/kinit-uni/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue b/kinit-uni/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue new file mode 100644 index 0000000..065aac2 --- /dev/null +++ b/kinit-uni/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue @@ -0,0 +1,333 @@ + + + + diff --git a/kinit-uni/uni_modules/uni-data-picker/package.json b/kinit-uni/uni_modules/uni-data-picker/package.json new file mode 100644 index 0000000..9900380 --- /dev/null +++ b/kinit-uni/uni_modules/uni-data-picker/package.json @@ -0,0 +1,93 @@ +{ + "id": "uni-data-picker", + "displayName": "uni-data-picker 数据驱动的picker选择器", + "version": "1.0.7", + "description": "单列、多列级联选择器,常用于省市区城市选择、公司部门选择、多级分类等场景", + "keywords": [ + "uni-ui", + "uniui", + "picker", + "级联", + "省市区", + "" +], + "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-load-more", + "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", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/kinit-uni/uni_modules/uni-data-picker/readme.md b/kinit-uni/uni_modules/uni-data-picker/readme.md new file mode 100644 index 0000000..6cda224 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-data-select/changelog.md b/kinit-uni/uni_modules/uni-data-select/changelog.md new file mode 100644 index 0000000..d5beaa3 --- /dev/null +++ b/kinit-uni/uni_modules/uni-data-select/changelog.md @@ -0,0 +1,16 @@ +## 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/kinit-uni/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue b/kinit-uni/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue new file mode 100644 index 0000000..16995bd --- /dev/null +++ b/kinit-uni/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue @@ -0,0 +1,426 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-data-select/package.json b/kinit-uni/uni_modules/uni-data-select/package.json new file mode 100644 index 0000000..1ebd8dd --- /dev/null +++ b/kinit-uni/uni_modules/uni-data-select/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-data-select", + "displayName": "uni-data-select 下拉框选择器", + "version": "0.1.6", + "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": { + "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-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/kinit-uni/uni_modules/uni-data-select/readme.md b/kinit-uni/uni_modules/uni-data-select/readme.md new file mode 100644 index 0000000..eb58de3 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-dateformat/changelog.md b/kinit-uni/uni_modules/uni-dateformat/changelog.md new file mode 100644 index 0000000..d551d7b --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js b/kinit-uni/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js new file mode 100644 index 0000000..e00d559 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue b/kinit-uni/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue new file mode 100644 index 0000000..c5ed030 --- /dev/null +++ b/kinit-uni/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-dateformat/package.json b/kinit-uni/uni_modules/uni-dateformat/package.json new file mode 100644 index 0000000..786a670 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-dateformat/readme.md b/kinit-uni/uni_modules/uni-dateformat/readme.md new file mode 100644 index 0000000..37ddb6e --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-datetime-picker/changelog.md b/kinit-uni/uni_modules/uni-datetime-picker/changelog.md new file mode 100644 index 0000000..5c9735a --- /dev/null +++ b/kinit-uni/uni_modules/uni-datetime-picker/changelog.md @@ -0,0 +1,93 @@ +## 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/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue new file mode 100644 index 0000000..3d2dbea --- /dev/null +++ b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue new file mode 100644 index 0000000..8f7f181 --- /dev/null +++ b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue @@ -0,0 +1,907 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json new file mode 100644 index 0000000..9acf1ab --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json new file mode 100644 index 0000000..d2df5e7 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json new file mode 100644 index 0000000..d23fa3c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js new file mode 100644 index 0000000..9601aba --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue new file mode 100644 index 0000000..699aa63 --- /dev/null +++ b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue @@ -0,0 +1,927 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue new file mode 100644 index 0000000..9bdf8bc --- /dev/null +++ b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue @@ -0,0 +1,1012 @@ + + + + diff --git a/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js b/kinit-uni/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js new file mode 100644 index 0000000..efa5773 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-datetime-picker/package.json b/kinit-uni/uni_modules/uni-datetime-picker/package.json new file mode 100644 index 0000000..60fa1d0 --- /dev/null +++ b/kinit-uni/uni_modules/uni-datetime-picker/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-datetime-picker", + "displayName": "uni-datetime-picker 日期选择器", + "version": "2.2.6", + "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": { + "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" + } + } + } + } +} diff --git a/kinit-uni/uni_modules/uni-datetime-picker/readme.md b/kinit-uni/uni_modules/uni-datetime-picker/readme.md new file mode 100644 index 0000000..162fbef --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-drawer/changelog.md b/kinit-uni/uni_modules/uni-drawer/changelog.md new file mode 100644 index 0000000..6d2488c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-drawer/components/uni-drawer/keypress.js b/kinit-uni/uni_modules/uni-drawer/components/uni-drawer/keypress.js new file mode 100644 index 0000000..62dda46 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue b/kinit-uni/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue new file mode 100644 index 0000000..82331a8 --- /dev/null +++ b/kinit-uni/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue @@ -0,0 +1,183 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-drawer/package.json b/kinit-uni/uni_modules/uni-drawer/package.json new file mode 100644 index 0000000..dd056e4 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-drawer/readme.md b/kinit-uni/uni_modules/uni-drawer/readme.md new file mode 100644 index 0000000..dcf6e6b --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-easyinput/changelog.md b/kinit-uni/uni_modules/uni-easyinput/changelog.md new file mode 100644 index 0000000..1e8c6f9 --- /dev/null +++ b/kinit-uni/uni_modules/uni-easyinput/changelog.md @@ -0,0 +1,47 @@ +## 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/kinit-uni/uni_modules/uni-easyinput/components/uni-easyinput/common.js b/kinit-uni/uni_modules/uni-easyinput/components/uni-easyinput/common.js new file mode 100644 index 0000000..df9abe1 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue b/kinit-uni/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue new file mode 100644 index 0000000..5818d7f --- /dev/null +++ b/kinit-uni/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue @@ -0,0 +1,593 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-easyinput/package.json b/kinit-uni/uni_modules/uni-easyinput/package.json new file mode 100644 index 0000000..3cc793e --- /dev/null +++ b/kinit-uni/uni_modules/uni-easyinput/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-easyinput", + "displayName": "uni-easyinput 增强输入框", + "version": "1.1.0", + "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": { + "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/kinit-uni/uni_modules/uni-easyinput/readme.md b/kinit-uni/uni_modules/uni-easyinput/readme.md new file mode 100644 index 0000000..f1faf8f --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-fab/changelog.md b/kinit-uni/uni_modules/uni-fab/changelog.md new file mode 100644 index 0000000..24e26b1 --- /dev/null +++ b/kinit-uni/uni_modules/uni-fab/changelog.md @@ -0,0 +1,17 @@ +## 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/kinit-uni/uni_modules/uni-fab/components/uni-fab/uni-fab.vue b/kinit-uni/uni_modules/uni-fab/components/uni-fab/uni-fab.vue new file mode 100644 index 0000000..bef97f1 --- /dev/null +++ b/kinit-uni/uni_modules/uni-fab/components/uni-fab/uni-fab.vue @@ -0,0 +1,475 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-fab/package.json b/kinit-uni/uni_modules/uni-fab/package.json new file mode 100644 index 0000000..0f27daa --- /dev/null +++ b/kinit-uni/uni_modules/uni-fab/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-fab", + "displayName": "uni-fab 悬浮按钮", + "version": "1.2.2", + "description": "悬浮按钮 fab button ,点击可展开一个图标按钮菜单。", + "keywords": [ + "uni-ui", + "uniui", + "按钮", + "悬浮按钮", + "fab" +], + "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/kinit-uni/uni_modules/uni-fab/readme.md b/kinit-uni/uni_modules/uni-fab/readme.md new file mode 100644 index 0000000..9a444e8 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-fav/changelog.md b/kinit-uni/uni_modules/uni-fav/changelog.md new file mode 100644 index 0000000..d8a08d4 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/en.json b/kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/en.json new file mode 100644 index 0000000..9a0759e --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/index.js b/kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json b/kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json new file mode 100644 index 0000000..67c89bf --- /dev/null +++ b/kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "收藏", + "uni-fav.collected": "已收藏" +} diff --git a/kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json b/kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json new file mode 100644 index 0000000..67c89bf --- /dev/null +++ b/kinit-uni/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "收藏", + "uni-fav.collected": "已收藏" +} diff --git a/kinit-uni/uni_modules/uni-fav/components/uni-fav/uni-fav.vue b/kinit-uni/uni_modules/uni-fav/components/uni-fav/uni-fav.vue new file mode 100644 index 0000000..d2c58df --- /dev/null +++ b/kinit-uni/uni_modules/uni-fav/components/uni-fav/uni-fav.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-fav/package.json b/kinit-uni/uni_modules/uni-fav/package.json new file mode 100644 index 0000000..cc14697 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-fav/readme.md b/kinit-uni/uni_modules/uni-fav/readme.md new file mode 100644 index 0000000..4de125d --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-file-picker/changelog.md b/kinit-uni/uni_modules/uni-file-picker/changelog.md new file mode 100644 index 0000000..5c81026 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js b/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js new file mode 100644 index 0000000..24a07f5 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue b/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue new file mode 100644 index 0000000..0928a41 --- /dev/null +++ b/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue @@ -0,0 +1,656 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue b/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue new file mode 100644 index 0000000..625d92e --- /dev/null +++ b/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue @@ -0,0 +1,325 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue b/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue new file mode 100644 index 0000000..2a29bc2 --- /dev/null +++ b/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/utils.js b/kinit-uni/uni_modules/uni-file-picker/components/uni-file-picker/utils.js new file mode 100644 index 0000000..60aaa3e --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-file-picker/package.json b/kinit-uni/uni_modules/uni-file-picker/package.json new file mode 100644 index 0000000..08bd66e --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-file-picker/readme.md b/kinit-uni/uni_modules/uni-file-picker/readme.md new file mode 100644 index 0000000..c8399a5 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-forms/changelog.md b/kinit-uni/uni_modules/uni-forms/changelog.md new file mode 100644 index 0000000..5a4bb79 --- /dev/null +++ b/kinit-uni/uni_modules/uni-forms/changelog.md @@ -0,0 +1,86 @@ +## 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/kinit-uni/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue b/kinit-uni/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue new file mode 100644 index 0000000..250ed87 --- /dev/null +++ b/kinit-uni/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue @@ -0,0 +1,627 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-forms/components/uni-forms/uni-forms.vue b/kinit-uni/uni_modules/uni-forms/components/uni-forms/uni-forms.vue new file mode 100644 index 0000000..ed2f6d9 --- /dev/null +++ b/kinit-uni/uni_modules/uni-forms/components/uni-forms/uni-forms.vue @@ -0,0 +1,397 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-forms/components/uni-forms/utils.js b/kinit-uni/uni_modules/uni-forms/components/uni-forms/utils.js new file mode 100644 index 0000000..6da2421 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-forms/components/uni-forms/validate.js b/kinit-uni/uni_modules/uni-forms/components/uni-forms/validate.js new file mode 100644 index 0000000..1834c6c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-forms/package.json b/kinit-uni/uni_modules/uni-forms/package.json new file mode 100644 index 0000000..e69d39b --- /dev/null +++ b/kinit-uni/uni_modules/uni-forms/package.json @@ -0,0 +1,91 @@ +{ + "id": "uni-forms", + "displayName": "uni-forms 表单", + "version": "1.4.6", + "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", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/kinit-uni/uni_modules/uni-forms/readme.md b/kinit-uni/uni_modules/uni-forms/readme.md new file mode 100644 index 0000000..63d5a04 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-goods-nav/changelog.md b/kinit-uni/uni_modules/uni-goods-nav/changelog.md new file mode 100644 index 0000000..c6264c6 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json b/kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json new file mode 100644 index 0000000..dcdba41 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js b/kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json b/kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json new file mode 100644 index 0000000..48ee344 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json b/kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json new file mode 100644 index 0000000..d0a0255 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue b/kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue new file mode 100644 index 0000000..8a16b17 --- /dev/null +++ b/kinit-uni/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-goods-nav/package.json b/kinit-uni/uni_modules/uni-goods-nav/package.json new file mode 100644 index 0000000..636e45e --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-goods-nav/readme.md b/kinit-uni/uni_modules/uni-goods-nav/readme.md new file mode 100644 index 0000000..07df93f --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-grid/changelog.md b/kinit-uni/uni_modules/uni-grid/changelog.md new file mode 100644 index 0000000..d301166 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue b/kinit-uni/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue new file mode 100644 index 0000000..20fd54e --- /dev/null +++ b/kinit-uni/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-grid/components/uni-grid/uni-grid.vue b/kinit-uni/uni_modules/uni-grid/components/uni-grid/uni-grid.vue new file mode 100644 index 0000000..96a412f --- /dev/null +++ b/kinit-uni/uni_modules/uni-grid/components/uni-grid/uni-grid.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-grid/package.json b/kinit-uni/uni_modules/uni-grid/package.json new file mode 100644 index 0000000..ccb2c91 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-grid/readme.md b/kinit-uni/uni_modules/uni-grid/readme.md new file mode 100644 index 0000000..0aa44cc --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-group/changelog.md b/kinit-uni/uni_modules/uni-group/changelog.md new file mode 100644 index 0000000..a7024fd --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-group/components/uni-group/uni-group.vue b/kinit-uni/uni_modules/uni-group/components/uni-group/uni-group.vue new file mode 100644 index 0000000..3425ecd --- /dev/null +++ b/kinit-uni/uni_modules/uni-group/components/uni-group/uni-group.vue @@ -0,0 +1,134 @@ + + + + diff --git a/kinit-uni/uni_modules/uni-group/package.json b/kinit-uni/uni_modules/uni-group/package.json new file mode 100644 index 0000000..ea00a08 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-group/readme.md b/kinit-uni/uni_modules/uni-group/readme.md new file mode 100644 index 0000000..bae67f4 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-icons/changelog.md b/kinit-uni/uni_modules/uni-icons/changelog.md new file mode 100644 index 0000000..6449885 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-icons/components/uni-icons/icons.js b/kinit-uni/uni_modules/uni-icons/components/uni-icons/icons.js new file mode 100644 index 0000000..7889936 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-icons/components/uni-icons/uni-icons.vue b/kinit-uni/uni_modules/uni-icons/components/uni-icons/uni-icons.vue new file mode 100644 index 0000000..86e7444 --- /dev/null +++ b/kinit-uni/uni_modules/uni-icons/components/uni-icons/uni-icons.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-icons/components/uni-icons/uniicons.css b/kinit-uni/uni_modules/uni-icons/components/uni-icons/uniicons.css new file mode 100644 index 0000000..2f56eab --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-icons/components/uni-icons/uniicons.ttf b/kinit-uni/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/kinit-uni/uni_modules/uni-icons/package.json b/kinit-uni/uni_modules/uni-icons/package.json new file mode 100644 index 0000000..d1c4e77 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-icons/readme.md b/kinit-uni/uni_modules/uni-icons/readme.md new file mode 100644 index 0000000..86234ba --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-indexed-list/changelog.md b/kinit-uni/uni_modules/uni-indexed-list/changelog.md new file mode 100644 index 0000000..08fa71c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue b/kinit-uni/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue new file mode 100644 index 0000000..2f13bae --- /dev/null +++ b/kinit-uni/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue b/kinit-uni/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue new file mode 100644 index 0000000..35e168c --- /dev/null +++ b/kinit-uni/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue @@ -0,0 +1,367 @@ + + + diff --git a/kinit-uni/uni_modules/uni-indexed-list/package.json b/kinit-uni/uni_modules/uni-indexed-list/package.json new file mode 100644 index 0000000..125c0e7 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-indexed-list/readme.md b/kinit-uni/uni_modules/uni-indexed-list/readme.md new file mode 100644 index 0000000..44ad84b --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-link/changelog.md b/kinit-uni/uni_modules/uni-link/changelog.md new file mode 100644 index 0000000..2cfbf59 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-link/components/uni-link/uni-link.vue b/kinit-uni/uni_modules/uni-link/components/uni-link/uni-link.vue new file mode 100644 index 0000000..27c5468 --- /dev/null +++ b/kinit-uni/uni_modules/uni-link/components/uni-link/uni-link.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-link/package.json b/kinit-uni/uni_modules/uni-link/package.json new file mode 100644 index 0000000..77b1986 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-link/readme.md b/kinit-uni/uni_modules/uni-link/readme.md new file mode 100644 index 0000000..7f09e94 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-list/changelog.md b/kinit-uni/uni_modules/uni-list/changelog.md new file mode 100644 index 0000000..6aa6e4e --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue b/kinit-uni/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue new file mode 100644 index 0000000..b9349c2 --- /dev/null +++ b/kinit-uni/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss b/kinit-uni/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss new file mode 100644 index 0000000..311f8d9 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue b/kinit-uni/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue new file mode 100644 index 0000000..2b31008 --- /dev/null +++ b/kinit-uni/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue @@ -0,0 +1,538 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue b/kinit-uni/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue new file mode 100644 index 0000000..2c7d9ea --- /dev/null +++ b/kinit-uni/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue @@ -0,0 +1,454 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-list/components/uni-list/uni-list.vue b/kinit-uni/uni_modules/uni-list/components/uni-list/uni-list.vue new file mode 100644 index 0000000..ecda676 --- /dev/null +++ b/kinit-uni/uni_modules/uni-list/components/uni-list/uni-list.vue @@ -0,0 +1,108 @@ + + + + diff --git a/kinit-uni/uni_modules/uni-list/components/uni-list/uni-refresh.vue b/kinit-uni/uni_modules/uni-list/components/uni-list/uni-refresh.vue new file mode 100644 index 0000000..3b4c5a2 --- /dev/null +++ b/kinit-uni/uni_modules/uni-list/components/uni-list/uni-refresh.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-list/components/uni-list/uni-refresh.wxs b/kinit-uni/uni_modules/uni-list/components/uni-list/uni-refresh.wxs new file mode 100644 index 0000000..818a6b7 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-list/package.json b/kinit-uni/uni_modules/uni-list/package.json new file mode 100644 index 0000000..66e8bef --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-list/readme.md b/kinit-uni/uni_modules/uni-list/readme.md new file mode 100644 index 0000000..32c2865 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-load-more/changelog.md b/kinit-uni/uni_modules/uni-load-more/changelog.md new file mode 100644 index 0000000..8f03f1d --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json b/kinit-uni/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json new file mode 100644 index 0000000..a4f14a5 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js b/kinit-uni/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json b/kinit-uni/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json new file mode 100644 index 0000000..f15d510 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json b/kinit-uni/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json new file mode 100644 index 0000000..a255c6d --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue b/kinit-uni/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue new file mode 100644 index 0000000..e5eff4d --- /dev/null +++ b/kinit-uni/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue @@ -0,0 +1,399 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-load-more/package.json b/kinit-uni/uni_modules/uni-load-more/package.json new file mode 100644 index 0000000..2fa6f04 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-load-more/readme.md b/kinit-uni/uni_modules/uni-load-more/readme.md new file mode 100644 index 0000000..54dc1fa --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-nav-bar/changelog.md b/kinit-uni/uni_modules/uni-nav-bar/changelog.md new file mode 100644 index 0000000..f0f6b56 --- /dev/null +++ b/kinit-uni/uni_modules/uni-nav-bar/changelog.md @@ -0,0 +1,41 @@ +## 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/kinit-uni/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue b/kinit-uni/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue new file mode 100644 index 0000000..cbfc168 --- /dev/null +++ b/kinit-uni/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue @@ -0,0 +1,348 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue b/kinit-uni/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue new file mode 100644 index 0000000..6a68874 --- /dev/null +++ b/kinit-uni/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-nav-bar/package.json b/kinit-uni/uni_modules/uni-nav-bar/package.json new file mode 100644 index 0000000..e3fe073 --- /dev/null +++ b/kinit-uni/uni_modules/uni-nav-bar/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-nav-bar", + "displayName": "uni-nav-bar 自定义导航栏", + "version": "1.3.6", + "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" + } + } + } + } +} \ No newline at end of file diff --git a/kinit-uni/uni_modules/uni-nav-bar/readme.md b/kinit-uni/uni_modules/uni-nav-bar/readme.md new file mode 100644 index 0000000..3934b32 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-notice-bar/changelog.md b/kinit-uni/uni_modules/uni-notice-bar/changelog.md new file mode 100644 index 0000000..9ee75a0 --- /dev/null +++ b/kinit-uni/uni_modules/uni-notice-bar/changelog.md @@ -0,0 +1,16 @@ +## 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/kinit-uni/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue b/kinit-uni/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue new file mode 100644 index 0000000..1d2ac1d --- /dev/null +++ b/kinit-uni/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue @@ -0,0 +1,395 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-notice-bar/package.json b/kinit-uni/uni_modules/uni-notice-bar/package.json new file mode 100644 index 0000000..97719a0 --- /dev/null +++ b/kinit-uni/uni_modules/uni-notice-bar/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-notice-bar", + "displayName": "uni-notice-bar 通告栏", + "version": "1.2.0", + "description": "NoticeBar 通告栏组件,常用于展示公告信息,可设为滚动公告", + "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/kinit-uni/uni_modules/uni-notice-bar/readme.md b/kinit-uni/uni_modules/uni-notice-bar/readme.md new file mode 100644 index 0000000..fb2ede2 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-number-box/changelog.md b/kinit-uni/uni_modules/uni-number-box/changelog.md new file mode 100644 index 0000000..5925c32 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue b/kinit-uni/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue new file mode 100644 index 0000000..e91c032 --- /dev/null +++ b/kinit-uni/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue @@ -0,0 +1,221 @@ + + + diff --git a/kinit-uni/uni_modules/uni-number-box/package.json b/kinit-uni/uni_modules/uni-number-box/package.json new file mode 100644 index 0000000..ad82336 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-number-box/readme.md b/kinit-uni/uni_modules/uni-number-box/readme.md new file mode 100644 index 0000000..affc56f --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-pagination/changelog.md b/kinit-uni/uni_modules/uni-pagination/changelog.md new file mode 100644 index 0000000..336c2ba --- /dev/null +++ b/kinit-uni/uni_modules/uni-pagination/changelog.md @@ -0,0 +1,20 @@ +## 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/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json new file mode 100644 index 0000000..a57becd --- /dev/null +++ b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "prev", + "uni-pagination.nextText": "next" +} diff --git a/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json new file mode 100644 index 0000000..ccbba2f --- /dev/null +++ b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "anterior", + "uni-pagination.nextText": "próxima" +} diff --git a/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json new file mode 100644 index 0000000..9b5f2d9 --- /dev/null +++ b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "précédente", + "uni-pagination.nextText": "suivante" +} diff --git a/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js new file mode 100644 index 0000000..2469dd0 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json new file mode 100644 index 0000000..fedbe82 --- /dev/null +++ b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "上一页", + "uni-pagination.nextText": "下一页" +} diff --git a/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json new file mode 100644 index 0000000..133b340 --- /dev/null +++ b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "上一頁", + "uni-pagination.nextText": "下一頁" +} diff --git a/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue new file mode 100644 index 0000000..79db4b8 --- /dev/null +++ b/kinit-uni/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue @@ -0,0 +1,409 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-pagination/package.json b/kinit-uni/uni_modules/uni-pagination/package.json new file mode 100644 index 0000000..adce670 --- /dev/null +++ b/kinit-uni/uni_modules/uni-pagination/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-pagination", + "displayName": "uni-pagination 分页器", + "version": "1.2.1", + "description": "Pagination 分页器组件,用于展示页码、请求数据等。", + "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/kinit-uni/uni_modules/uni-pagination/readme.md b/kinit-uni/uni_modules/uni-pagination/readme.md new file mode 100644 index 0000000..eefa263 --- /dev/null +++ b/kinit-uni/uni_modules/uni-pagination/readme.md @@ -0,0 +1,13 @@ + + +## Pagination 分页器 +> **组件名:uni-pagination** +> 代码块: `uPagination` + + +分页器组件,用于展示页码、请求数据等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-pagination) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/kinit-uni/uni_modules/uni-popup/changelog.md b/kinit-uni/uni_modules/uni-popup/changelog.md new file mode 100644 index 0000000..a9e2d66 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js b/kinit-uni/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js new file mode 100644 index 0000000..6ef26a2 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue b/kinit-uni/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue new file mode 100644 index 0000000..a5d0f2a --- /dev/null +++ b/kinit-uni/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue b/kinit-uni/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue new file mode 100644 index 0000000..91370a8 --- /dev/null +++ b/kinit-uni/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue @@ -0,0 +1,143 @@ + + + + diff --git a/kinit-uni/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue b/kinit-uni/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue new file mode 100644 index 0000000..5be7624 --- /dev/null +++ b/kinit-uni/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue @@ -0,0 +1,187 @@ + + + + diff --git a/kinit-uni/uni_modules/uni-popup/components/uni-popup/i18n/en.json b/kinit-uni/uni_modules/uni-popup/components/uni-popup/i18n/en.json new file mode 100644 index 0000000..7f1bd06 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-popup/components/uni-popup/i18n/index.js b/kinit-uni/uni_modules/uni-popup/components/uni-popup/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json b/kinit-uni/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json new file mode 100644 index 0000000..5e3003c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json b/kinit-uni/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json new file mode 100644 index 0000000..13e39eb --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-popup/components/uni-popup/keypress.js b/kinit-uni/uni_modules/uni-popup/components/uni-popup/keypress.js new file mode 100644 index 0000000..62dda46 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-popup/components/uni-popup/popup.js b/kinit-uni/uni_modules/uni-popup/components/uni-popup/popup.js new file mode 100644 index 0000000..c4e5781 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-popup/components/uni-popup/uni-popup.vue b/kinit-uni/uni_modules/uni-popup/components/uni-popup/uni-popup.vue new file mode 100644 index 0000000..db90c59 --- /dev/null +++ b/kinit-uni/uni_modules/uni-popup/components/uni-popup/uni-popup.vue @@ -0,0 +1,474 @@ + + + + diff --git a/kinit-uni/uni_modules/uni-popup/package.json b/kinit-uni/uni_modules/uni-popup/package.json new file mode 100644 index 0000000..069e9ce --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-popup/readme.md b/kinit-uni/uni_modules/uni-popup/readme.md new file mode 100644 index 0000000..fdad4b3 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-rate/changelog.md b/kinit-uni/uni_modules/uni-rate/changelog.md new file mode 100644 index 0000000..8a98a61 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-rate/components/uni-rate/uni-rate.vue b/kinit-uni/uni_modules/uni-rate/components/uni-rate/uni-rate.vue new file mode 100644 index 0000000..857f5f9 --- /dev/null +++ b/kinit-uni/uni_modules/uni-rate/components/uni-rate/uni-rate.vue @@ -0,0 +1,361 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-rate/package.json b/kinit-uni/uni_modules/uni-rate/package.json new file mode 100644 index 0000000..64e8e33 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-rate/readme.md b/kinit-uni/uni_modules/uni-rate/readme.md new file mode 100644 index 0000000..eae7b5c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-row/changelog.md b/kinit-uni/uni_modules/uni-row/changelog.md new file mode 100644 index 0000000..5b465bc --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-row/components/uni-col/uni-col.vue b/kinit-uni/uni_modules/uni-row/components/uni-col/uni-col.vue new file mode 100644 index 0000000..d5f3728 --- /dev/null +++ b/kinit-uni/uni_modules/uni-row/components/uni-col/uni-col.vue @@ -0,0 +1,317 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-row/components/uni-row/uni-row.vue b/kinit-uni/uni_modules/uni-row/components/uni-row/uni-row.vue new file mode 100644 index 0000000..c7d9370 --- /dev/null +++ b/kinit-uni/uni_modules/uni-row/components/uni-row/uni-row.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-row/package.json b/kinit-uni/uni_modules/uni-row/package.json new file mode 100644 index 0000000..3f52fa6 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-row/readme.md b/kinit-uni/uni_modules/uni-row/readme.md new file mode 100644 index 0000000..3c9c8b9 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/changelog.md b/kinit-uni/uni_modules/uni-scss/changelog.md new file mode 100644 index 0000000..b863bb0 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/index.scss b/kinit-uni/uni_modules/uni-scss/index.scss new file mode 100644 index 0000000..1744a5f --- /dev/null +++ b/kinit-uni/uni_modules/uni-scss/index.scss @@ -0,0 +1 @@ +@import './styles/index.scss'; diff --git a/kinit-uni/uni_modules/uni-scss/package.json b/kinit-uni/uni_modules/uni-scss/package.json new file mode 100644 index 0000000..7cc0ccb --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/readme.md b/kinit-uni/uni_modules/uni-scss/readme.md new file mode 100644 index 0000000..b7d1c25 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/styles/index.scss b/kinit-uni/uni_modules/uni-scss/styles/index.scss new file mode 100644 index 0000000..ffac4fe --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/styles/setting/_border.scss b/kinit-uni/uni_modules/uni-scss/styles/setting/_border.scss new file mode 100644 index 0000000..12a11c3 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/styles/setting/_color.scss b/kinit-uni/uni_modules/uni-scss/styles/setting/_color.scss new file mode 100644 index 0000000..1ededd9 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/styles/setting/_radius.scss b/kinit-uni/uni_modules/uni-scss/styles/setting/_radius.scss new file mode 100644 index 0000000..9a0428b --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/styles/setting/_space.scss b/kinit-uni/uni_modules/uni-scss/styles/setting/_space.scss new file mode 100644 index 0000000..3c89528 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/styles/setting/_styles.scss b/kinit-uni/uni_modules/uni-scss/styles/setting/_styles.scss new file mode 100644 index 0000000..689afec --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/styles/setting/_text.scss b/kinit-uni/uni_modules/uni-scss/styles/setting/_text.scss new file mode 100644 index 0000000..a34d08f --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/styles/setting/_variables.scss b/kinit-uni/uni_modules/uni-scss/styles/setting/_variables.scss new file mode 100644 index 0000000..557d3d7 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/styles/tools/functions.scss b/kinit-uni/uni_modules/uni-scss/styles/tools/functions.scss new file mode 100644 index 0000000..ac6f63e --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/theme.scss b/kinit-uni/uni_modules/uni-scss/theme.scss new file mode 100644 index 0000000..80ee62f --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-scss/variables.scss b/kinit-uni/uni_modules/uni-scss/variables.scss new file mode 100644 index 0000000..1c062d4 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-search-bar/changelog.md b/kinit-uni/uni_modules/uni-search-bar/changelog.md new file mode 100644 index 0000000..b41fdd3 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json b/kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json new file mode 100644 index 0000000..dd083a5 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js b/kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json b/kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json new file mode 100644 index 0000000..d4e5c12 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json b/kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json new file mode 100644 index 0000000..318b6ef --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue b/kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue new file mode 100644 index 0000000..5a518a8 --- /dev/null +++ b/kinit-uni/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue @@ -0,0 +1,298 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-search-bar/package.json b/kinit-uni/uni_modules/uni-search-bar/package.json new file mode 100644 index 0000000..9352c57 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-search-bar/readme.md b/kinit-uni/uni_modules/uni-search-bar/readme.md new file mode 100644 index 0000000..253092f --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-segmented-control/changelog.md b/kinit-uni/uni_modules/uni-segmented-control/changelog.md new file mode 100644 index 0000000..a44385d --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue b/kinit-uni/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue new file mode 100644 index 0000000..ddbcf88 --- /dev/null +++ b/kinit-uni/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-segmented-control/package.json b/kinit-uni/uni_modules/uni-segmented-control/package.json new file mode 100644 index 0000000..6cae41d --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-segmented-control/readme.md b/kinit-uni/uni_modules/uni-segmented-control/readme.md new file mode 100644 index 0000000..3527b03 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-steps/changelog.md b/kinit-uni/uni_modules/uni-steps/changelog.md new file mode 100644 index 0000000..cb9d367 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-steps/components/uni-steps/uni-steps.vue b/kinit-uni/uni_modules/uni-steps/components/uni-steps/uni-steps.vue new file mode 100644 index 0000000..a6c8f28 --- /dev/null +++ b/kinit-uni/uni_modules/uni-steps/components/uni-steps/uni-steps.vue @@ -0,0 +1,269 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-steps/package.json b/kinit-uni/uni_modules/uni-steps/package.json new file mode 100644 index 0000000..c687b40 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-steps/readme.md b/kinit-uni/uni_modules/uni-steps/readme.md new file mode 100644 index 0000000..da7a4bf --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swipe-action/changelog.md b/kinit-uni/uni_modules/uni-swipe-action/changelog.md new file mode 100644 index 0000000..c007cb5 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js b/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js new file mode 100644 index 0000000..755c97c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js b/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js new file mode 100644 index 0000000..917cb48 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js b/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js new file mode 100644 index 0000000..43cd56b --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js b/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js new file mode 100644 index 0000000..9a8bcbb --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js b/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js new file mode 100644 index 0000000..435e0fb --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js b/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js new file mode 100644 index 0000000..78f0ec6 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue b/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue new file mode 100644 index 0000000..d79c297 --- /dev/null +++ b/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue @@ -0,0 +1,347 @@ + + + + + + diff --git a/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs b/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs new file mode 100644 index 0000000..b394244 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue b/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue new file mode 100644 index 0000000..4971782 --- /dev/null +++ b/kinit-uni/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-swipe-action/package.json b/kinit-uni/uni_modules/uni-swipe-action/package.json new file mode 100644 index 0000000..c8998d9 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swipe-action/readme.md b/kinit-uni/uni_modules/uni-swipe-action/readme.md new file mode 100644 index 0000000..93a5cac --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swiper-dot/changelog.md b/kinit-uni/uni_modules/uni-swiper-dot/changelog.md new file mode 100644 index 0000000..85cf54d --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue b/kinit-uni/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue new file mode 100644 index 0000000..46eb8c1 --- /dev/null +++ b/kinit-uni/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-swiper-dot/package.json b/kinit-uni/uni_modules/uni-swiper-dot/package.json new file mode 100644 index 0000000..f2dd8d2 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-swiper-dot/readme.md b/kinit-uni/uni_modules/uni-swiper-dot/readme.md new file mode 100644 index 0000000..7d397e2 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-table/changelog.md b/kinit-uni/uni_modules/uni-table/changelog.md new file mode 100644 index 0000000..8233b20 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-table/components/uni-table/uni-table.vue b/kinit-uni/uni_modules/uni-table/components/uni-table/uni-table.vue new file mode 100644 index 0000000..91b74fa --- /dev/null +++ b/kinit-uni/uni_modules/uni-table/components/uni-table/uni-table.vue @@ -0,0 +1,455 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue b/kinit-uni/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue new file mode 100644 index 0000000..fbe1bdc --- /dev/null +++ b/kinit-uni/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-table/components/uni-td/uni-td.vue b/kinit-uni/uni_modules/uni-table/components/uni-td/uni-td.vue new file mode 100644 index 0000000..9ce93e9 --- /dev/null +++ b/kinit-uni/uni_modules/uni-table/components/uni-td/uni-td.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-table/components/uni-th/filter-dropdown.vue b/kinit-uni/uni_modules/uni-table/components/uni-th/filter-dropdown.vue new file mode 100644 index 0000000..bc9a0e3 --- /dev/null +++ b/kinit-uni/uni_modules/uni-table/components/uni-th/filter-dropdown.vue @@ -0,0 +1,503 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-table/components/uni-th/uni-th.vue b/kinit-uni/uni_modules/uni-table/components/uni-th/uni-th.vue new file mode 100644 index 0000000..883e3f2 --- /dev/null +++ b/kinit-uni/uni_modules/uni-table/components/uni-th/uni-th.vue @@ -0,0 +1,278 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-table/components/uni-thead/uni-thead.vue b/kinit-uni/uni_modules/uni-table/components/uni-thead/uni-thead.vue new file mode 100644 index 0000000..0dd18cd --- /dev/null +++ b/kinit-uni/uni_modules/uni-table/components/uni-thead/uni-thead.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-table/components/uni-tr/table-checkbox.vue b/kinit-uni/uni_modules/uni-table/components/uni-tr/table-checkbox.vue new file mode 100644 index 0000000..158f3ff --- /dev/null +++ b/kinit-uni/uni_modules/uni-table/components/uni-tr/table-checkbox.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-table/components/uni-tr/uni-tr.vue b/kinit-uni/uni_modules/uni-table/components/uni-tr/uni-tr.vue new file mode 100644 index 0000000..f9b9671 --- /dev/null +++ b/kinit-uni/uni_modules/uni-table/components/uni-tr/uni-tr.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-table/i18n/en.json b/kinit-uni/uni_modules/uni-table/i18n/en.json new file mode 100644 index 0000000..e32023c --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-table/i18n/es.json b/kinit-uni/uni_modules/uni-table/i18n/es.json new file mode 100644 index 0000000..9afd04b --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-table/i18n/fr.json b/kinit-uni/uni_modules/uni-table/i18n/fr.json new file mode 100644 index 0000000..b006237 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-table/i18n/index.js b/kinit-uni/uni_modules/uni-table/i18n/index.js new file mode 100644 index 0000000..2469dd0 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-table/i18n/zh-Hans.json b/kinit-uni/uni_modules/uni-table/i18n/zh-Hans.json new file mode 100644 index 0000000..862af17 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-table/i18n/zh-Hant.json b/kinit-uni/uni_modules/uni-table/i18n/zh-Hant.json new file mode 100644 index 0000000..64f8061 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-table/package.json b/kinit-uni/uni_modules/uni-table/package.json new file mode 100644 index 0000000..f224ab7 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-table/readme.md b/kinit-uni/uni_modules/uni-table/readme.md new file mode 100644 index 0000000..bb08c79 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-tag/changelog.md b/kinit-uni/uni_modules/uni-tag/changelog.md new file mode 100644 index 0000000..c0c5839 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-tag/components/uni-tag/uni-tag.vue b/kinit-uni/uni_modules/uni-tag/components/uni-tag/uni-tag.vue new file mode 100644 index 0000000..6378a0b --- /dev/null +++ b/kinit-uni/uni_modules/uni-tag/components/uni-tag/uni-tag.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-tag/package.json b/kinit-uni/uni_modules/uni-tag/package.json new file mode 100644 index 0000000..1878088 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-tag/readme.md b/kinit-uni/uni_modules/uni-tag/readme.md new file mode 100644 index 0000000..6e78ff5 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-title/changelog.md b/kinit-uni/uni_modules/uni-title/changelog.md new file mode 100644 index 0000000..7626216 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-title/components/uni-title/uni-title.vue b/kinit-uni/uni_modules/uni-title/components/uni-title/uni-title.vue new file mode 100644 index 0000000..bf4f926 --- /dev/null +++ b/kinit-uni/uni_modules/uni-title/components/uni-title/uni-title.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-title/package.json b/kinit-uni/uni_modules/uni-title/package.json new file mode 100644 index 0000000..2249f5a --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-title/readme.md b/kinit-uni/uni_modules/uni-title/readme.md new file mode 100644 index 0000000..0e60b1b --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-tooltip/changelog.md b/kinit-uni/uni_modules/uni-tooltip/changelog.md new file mode 100644 index 0000000..00f1572 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue b/kinit-uni/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue new file mode 100644 index 0000000..ffbb6fa --- /dev/null +++ b/kinit-uni/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/kinit-uni/uni_modules/uni-tooltip/package.json b/kinit-uni/uni_modules/uni-tooltip/package.json new file mode 100644 index 0000000..e88ecf8 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-tooltip/readme.md b/kinit-uni/uni_modules/uni-tooltip/readme.md new file mode 100644 index 0000000..faafa2e --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-transition/changelog.md b/kinit-uni/uni_modules/uni-transition/changelog.md new file mode 100644 index 0000000..b1a824b --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-transition/components/uni-transition/createAnimation.js b/kinit-uni/uni_modules/uni-transition/components/uni-transition/createAnimation.js new file mode 100644 index 0000000..5f54365 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-transition/components/uni-transition/uni-transition.vue b/kinit-uni/uni_modules/uni-transition/components/uni-transition/uni-transition.vue new file mode 100644 index 0000000..0d739bd --- /dev/null +++ b/kinit-uni/uni_modules/uni-transition/components/uni-transition/uni-transition.vue @@ -0,0 +1,277 @@ + + + + + diff --git a/kinit-uni/uni_modules/uni-transition/package.json b/kinit-uni/uni_modules/uni-transition/package.json new file mode 100644 index 0000000..d15fdf0 --- /dev/null +++ b/kinit-uni/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/kinit-uni/uni_modules/uni-transition/readme.md b/kinit-uni/uni_modules/uni-transition/readme.md new file mode 100644 index 0000000..2f8a77e --- /dev/null +++ b/kinit-uni/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/kinit-uni/vue.config.js b/kinit-uni/vue.config.js new file mode 100644 index 0000000..5c77e1e --- /dev/null +++ b/kinit-uni/vue.config.js @@ -0,0 +1,26 @@ +//vue.config.js +const TransformPages = require('uni-read-pages') +const {webpack} = new TransformPages() + +module.exports = { + configureWebpack: { + plugins: [ + new webpack.DefinePlugin({ + ROUTES: webpack.DefinePlugin.runtimeValue(() => { + const tfPages = new TransformPages({ + // includes 中包含的是router会读取pages路由中的字段名 + // 后续如果有用到meta等路由信息,可以在 includes 里增加 'meta', + // 在pages路由中写对应的数据,router中就可以获取得到 + includes: ['path', 'name', 'aliasPath', 'meta'] + }); + return JSON.stringify(tfPages.routes) + }, true ) + }) + ] + }, + devServer: { + port: 8080, + https: false, + disableHostCheck: true // 禁止访问本地host文件 + } +} \ No newline at end of file

    +

    + + +

    + +
    +
    +
      + +
    • + +
      查找用户
      +
      &#xe601;
      +
    • + +
    • + +
      users
      +
      &#xe651;
      +
    • + +
    • + +
      菜单
      +
      &#xe605;
      +
    • + +
    • + +
      日志
      +
      &#xe660;
      +
    • + +
    • + +
      字典
      +
      &#xe679;
      +
    • + +
    • + +
      常规字典
      +
      &#xe694;
      +
    • + +
    • + +
      user2
      +
      &#xe686;
      +
    • + +
    • + +
      高管
      +
      &#xe65b;
      +
    • + +
    • + +
      菜单
      +
      &#xe62c;
      +
    • + +
    • + +
      菜单
      +
      &#xe61e;
      +
    • + +
    • + +
      字典搜索
      +
      &#xe606;
      +
    • + +
    • + +
      数据字典
      +
      &#xe666;
      +
    • + +
    • + +
      菜单
      +
      &#xeaf1;
      +
    • + +
    • + +
      日志
      +
      &#xe627;
      +
    • + +
    • + +
      日志
      +
      &#xe647;
      +
    • + +
    • + +
      菜单
      +
      &#xe668;
      +
    • + +
    • + +
      菜单
      +
      &#xe61b;
      +
    • + +
    • + +
      24gl-portraitMalePlus4
      +
      &#xeb25;
      +
    • + +
    • + +
      user
      +
      &#xe755;
      +
    • + +
    • + +
      user-tag
      +
      &#xe631;
      +
    • + +
    • + +
      日志
      +
      &#xe603;
      +
    • + +
    • + +
      字典管理
      +
      &#xe669;
      +
    • + +
    • + +
      菜单
      +
      &#xe624;
      +
    • + +
    • + +
      user
      +
      &#xe616;
      +
    • + +
    • + +
      user-o
      +
      &#xe664;
      +
    • + +
    • + +
      日志
      +
      &#xe66a;
      +
    • + +
    • + +
      user
      +
      &#xe8fa;
      +
    • + +
    • + +
      菜单
      +
      &#xe60e;
      +
    • + +
    • + +
      user
      +
      &#xe62b;
      +
    • + +
    • + +
      字典模块2
      +
      &#xe621;
      +
    • + +
    • + +
      right
      +
      &#xe6a3;
      +
    • + +
    • + +
      right
      +
      &#xe7eb;
      +
    • + +
    • + +
      arrow-right
      +
      &#xe665;
      +
    • + +
    • + +
      arrow-right-bold
      +
      &#xe687;
      +
    • + +
    • + +
      telephone
      +
      &#xe609;
      +
    • + +
    • + +
      问题-copy
      +
      &#xeca9;
      +
    • + +
    • + +
      问题-copy
      +
      &#xeca3;
      +
    • + +
    • + +
      爱心-copy
      +
      &#xeca4;
      +
    • + +
    • + +
      设置-copy
      +
      &#xeca5;
      +
    • + +
    • + +
      系统角色-copy
      +
      &#xeca6;
      +
    • + +
    • + +
      客服-copy
      +
      &#xeca7;
      +
    • + +
    • + +
      设置
      +
      &#xe62a;
      +
    • + +
    • + +
      设置_填充
      +
      &#xe68d;
      +
    • + +
    • + +
      设置
      +
      &#xe600;
      +
    • + +
    • + +
      意见反馈
      +
      &#xe625;
      +
    • + +
    • + +
      日期
      +
      &#xe636;
      +
    • + +
    • + +
      客服
      +
      &#xe741;
      +
    • + +
    • + +
      角色管理
      +
      &#xea62;
      +
    • + +
    • + +
      意见反馈
      +
      &#xe82f;
      +
    • + +
    • + +
      点赞
      +
      &#xe611;
      +
    • + +
    • + +
      设置
      +
      &#xe892;
      +
    • + +
    • + +
      设置
      +
      &#xe70f;
      +
    • + +
    • +  +
      点赞
      +
      &#xec7f;
      +
    • + +
    • + +
      意见反馈-copy
      +
      &#xeca8;
      +
    • + +
    • + +
      交付日期
      +
      &#xe667;
      +
    • + +
    • + +
      爱心
      +
      &#xeca1;
      +
    • + +
    • + +
      意见反馈
      +
      &#xe640;
      +
    • + +
    • + +
      点赞
      +
      &#xe604;
      +
    • + +
    • + +
      问题
      +
      &#xe78d;
      +
    • + +
    • + +
      爱心
      +
      &#xe8ab;
      +
    • + +
    • + +
      爱心
      +
      &#xe8c3;
      +
    • + +
    • + +
      角色管理
      +
      &#xe64a;
      +
    • + +
    • + +
      系统角色
      +
      &#xe60c;
      +
    • + +
    • + +
      问题
      +
      &#xe6e2;
      +
    • + +
    • + +
      角色管理
      +
      &#xe676;
      +
    • + +
    • + +
      点赞-copy
      +
      &#xeca2;
      +
    • + +
    • + +
      user
      +
      &#xe677;
      +
    • + +
    +
    +

    Unicode 引用

    +
    + +

    Unicode 是字体在网页端最原始的应用方式,特点是:

    +
      +
    • 支持按字体的方式去动态调整图标大小,颜色等等。
    • +
    • 默认情况下不支持多色,直接添加多色图标会自动去色。
    • +
    +
    +

    注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)

    +
    +

    Unicode 使用步骤如下:

    +

    第一步:拷贝项目下面生成的 @font-face

    +
    @font-face {
    +  font-family: 'iconfont';
    +  src: url('iconfont.woff2?t=1670058157651') format('woff2'),
    +       url('iconfont.woff?t=1670058157651') format('woff'),
    +       url('iconfont.ttf?t=1670058157651') format('truetype');
    +}
    +
    +

    第二步:定义使用 iconfont 的样式

    +
    .iconfont {
    +  font-family: "iconfont" !important;
    +  font-size: 16px;
    +  font-style: normal;
    +  -webkit-font-smoothing: antialiased;
    +  -moz-osx-font-smoothing: grayscale;
    +}
    +
    +

    第三步:挑选相应图标并获取字体编码,应用于页面

    +
    +<span class="iconfont">&#x33;</span>
    +
    +
    +

    "iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

    +
    +
    +
    +
    +
      + +
    • + +
      + 查找用户 +
      +
      .icon-chazhaoyonghu +
      +
    • + +
    • + +
      + users +
      +
      .icon-users +
      +
    • + +
    • + +
      + 菜单 +
      +
      .icon-caidan +
      +
    • + +
    • + +
      + 日志 +
      +
      .icon-rizhi +
      +
    • + +
    • + +
      + 字典 +
      +
      .icon-zidian +
      +
    • + +
    • + +
      + 常规字典 +
      +
      .icon-changguizidian +
      +
    • + +
    • + +
      + user2 +
      +
      .icon-user2 +
      +
    • + +
    • + +
      + 高管 +
      +
      .icon-usertie +
      +
    • + +
    • + +
      + 菜单 +
      +
      .icon-caidan1 +
      +
    • + +
    • + +
      + 菜单 +
      +
      .icon-caidan2 +
      +
    • + +
    • + +
      + 字典搜索 +
      +
      .icon-dictionary +
      +
    • + +
    • + +
      + 数据字典 +
      +
      .icon-shujuzidian +
      +
    • + +
    • + +
      + 菜单 +
      +
      .icon-caidan3 +
      +
    • + +
    • + +
      + 日志 +
      +
      .icon-rizhi1 +
      +
    • + +
    • + +
      + 日志 +
      +
      .icon-rizhi2 +
      +
    • + +
    • + +
      + 菜单 +
      +
      .icon-caidan4 +
      +
    • + +
    • + +
      + 菜单 +
      +
      .icon-caidan5 +
      +
    • + +
    • + +
      + 24gl-portraitMalePlus4 +
      +
      .icon-24gl-portraitMalePlus4 +
      +
    • + +
    • + +
      + user +
      +
      .icon-user1 +
      +
    • + +
    • + +
      + user-tag +
      +
      .icon-user-tag +
      +
    • + +
    • + +
      + 日志 +
      +
      .icon-rizhi3 +
      +
    • + +
    • + +
      + 字典管理 +
      +
      .icon-zidianguanli +
      +
    • + +
    • + +
      + 菜单 +
      +
      .icon-caidan6 +
      +
    • + +
    • + +
      + user +
      +
      .icon-user3 +
      +
    • + +
    • + +
      + user-o +
      +
      .icon-user-o +
      +
    • + +
    • + +
      + 日志 +
      +
      .icon-rizhi4 +
      +
    • + +
    • + +
      + user +
      +
      .icon-user4 +
      +
    • + +
    • + +
      + 菜单 +
      +
      .icon-caidan7 +
      +
    • + +
    • + +
      + user +
      +
      .icon-user5 +
      +
    • + +
    • + +
      + 字典模块2 +
      +
      .icon-zidianmokuai2 +
      +
    • + +
    • + +
      + right +
      +
      .icon-right +
      +
    • + +
    • + +
      + right +
      +
      .icon-right1 +
      +
    • + +
    • + +
      + arrow-right +
      +
      .icon-arrow-right +
      +
    • + +
    • + +
      + arrow-right-bold +
      +
      .icon-arrow-right-bold +
      +
    • + +
    • + +
      + telephone +
      +
      .icon-dianhua +
      +
    • + +
    • + +
      + 问题-copy +
      +
      .icon-wenti1-copy +
      +
    • + +
    • + +
      + 问题-copy +
      +
      .icon-wenti1-copy1 +
      +
    • + +
    • + +
      + 爱心-copy +
      +
      .icon-aixin1-copy +
      +
    • + +
    • + +
      + 设置-copy +
      +
      .icon-shezhi-copy +
      +
    • + +
    • + +
      + 系统角色-copy +
      +
      .icon-xitongjiaose-copy +
      +
    • + +
    • + +
      + 客服-copy +
      +
      .icon-kefu-copy +
      +
    • + +
    • + +
      + 设置 +
      +
      .icon-shezhi +
      +
    • + +
    • + +
      + 设置_填充 +
      +
      .icon-shezhitianchong +
      +
    • + +
    • + +
      + 设置 +
      +
      .icon-shezhi1 +
      +
    • + +
    • + +
      + 意见反馈 +
      +
      .icon-yijianfankui +
      +
    • + +
    • + +
      + 日期 +
      +
      .icon-riqi +
      +
    • + +
    • + +
      + 客服 +
      +
      .icon-kefu +
      +
    • + +
    • + +
      + 角色管理 +
      +
      .icon-jiaoseguanli +
      +
    • + +
    • + +
      + 意见反馈 +
      +
      .icon-yijianfankui1 +
      +
    • + +
    • + +
      + 点赞 +
      +
      .icon-dianzan +
      +
    • + +
    • + +
      + 设置 +
      +
      .icon-shezhi2 +
      +
    • + +
    • + +
      + 设置 +
      +
      .icon-shezhi3 +
      +
    • + +
    • + +
      + 点赞 +
      +
      .icon-dianzan1 +
      +
    • + +
    • + +
      + 意见反馈-copy +
      +
      .icon-yaoqingdaoshi-copy +
      +
    • + +
    • + +
      + 交付日期 +
      +
      .icon-jiaofuriqi +
      +
    • + +
    • + +
      + 爱心 +
      +
      .icon-aixin +
      +
    • + +
    • + +
      + 意见反馈 +
      +
      .icon-yaoqingdaoshi +
      +
    • + +
    • + +
      + 点赞 +
      +
      .icon-dianzan2 +
      +
    • + +
    • + +
      + 问题 +
      +
      .icon-wenti +
      +
    • + +
    • + +
      + 爱心 +
      +
      .icon-aixin1 +
      +
    • + +
    • + +
      + 爱心 +
      +
      .icon-aixin2 +
      +
    • + +
    • + +
      + 角色管理 +
      +
      .icon-jiaoseguanli1 +
      +
    • + +
    • + +
      + 系统角色 +
      +
      .icon-xitongjiaose +
      +
    • + +
    • + +
      + 问题 +
      +
      .icon-wenti1 +
      +
    • + +
    • + +
      + 角色管理 +
      +
      .icon-jiaoseguanli2 +
      +
    • + +
    • + +
      + 点赞-copy +
      +
      .icon-dianzan1-copy +
      +
    • + +
    • + +
      + user +
      +
      .icon-user +
      +
    • + +
    +
    +

    font-class 引用

    +
    + +

    font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

    +

    与 Unicode 使用方式相比,具有如下特点:

    +
      +
    • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
    • +
    • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
    • +
    +

    使用步骤如下:

    +

    第一步:引入项目下面生成的 fontclass 代码:

    +
    <link rel="stylesheet" href="./iconfont.css">
    +
    +

    第二步:挑选相应图标并获取类名,应用于页面:

    +
    <span class="iconfont icon-xxx"></span>
    +
    +
    +

    " + iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

    +
    +
    +
    +
    +
      + +
    • + +
      查找用户
      +
      #icon-chazhaoyonghu
      +
    • + +
    • + +
      users
      +
      #icon-users
      +
    • + +
    • + +
      菜单
      +
      #icon-caidan
      +
    • + +
    • + +
      日志
      +
      #icon-rizhi
      +
    • + +
    • + +
      字典
      +
      #icon-zidian
      +
    • + +
    • + +
      常规字典
      +
      #icon-changguizidian
      +
    • + +
    • + +
      user2
      +
      #icon-user2
      +
    • + +
    • + +
      高管
      +
      #icon-usertie
      +
    • + +
    • + +
      菜单
      +
      #icon-caidan1
      +
    • + +
    • + +
      菜单
      +
      #icon-caidan2
      +
    • + +
    • + +
      字典搜索
      +
      #icon-dictionary
      +
    • + +
    • + +
      数据字典
      +
      #icon-shujuzidian
      +
    • + +
    • + +
      菜单
      +
      #icon-caidan3
      +
    • + +
    • + +
      日志
      +
      #icon-rizhi1
      +
    • + +
    • + +
      日志
      +
      #icon-rizhi2
      +
    • + +
    • + +
      菜单
      +
      #icon-caidan4
      +
    • + +
    • + +
      菜单
      +
      #icon-caidan5
      +
    • + +
    • + +
      24gl-portraitMalePlus4
      +
      #icon-24gl-portraitMalePlus4
      +
    • + +
    • + +
      user
      +
      #icon-user1
      +
    • + +
    • + +
      user-tag
      +
      #icon-user-tag
      +
    • + +
    • + +
      日志
      +
      #icon-rizhi3
      +
    • + +
    • + +
      字典管理
      +
      #icon-zidianguanli
      +
    • + +
    • + +
      菜单
      +
      #icon-caidan6
      +
    • + +
    • + +
      user
      +
      #icon-user3
      +
    • + +
    • + +
      user-o
      +
      #icon-user-o
      +
    • + +
    • + +
      日志
      +
      #icon-rizhi4
      +
    • + +
    • + +
      user
      +
      #icon-user4
      +
    • + +
    • + +
      菜单
      +
      #icon-caidan7
      +
    • + +
    • + +
      user
      +
      #icon-user5
      +
    • + +
    • + +
      字典模块2
      +
      #icon-zidianmokuai2
      +
    • + +
    • + +
      right
      +
      #icon-right
      +
    • + +
    • + +
      right
      +
      #icon-right1
      +
    • + +
    • + +
      arrow-right
      +
      #icon-arrow-right
      +
    • + +
    • + +
      arrow-right-bold
      +
      #icon-arrow-right-bold
      +
    • + +
    • + +
      telephone
      +
      #icon-dianhua
      +
    • + +
    • + +
      问题-copy
      +
      #icon-wenti1-copy
      +
    • + +
    • + +
      问题-copy
      +
      #icon-wenti1-copy1
      +
    • + +
    • + +
      爱心-copy
      +
      #icon-aixin1-copy
      +
    • + +
    • + +
      设置-copy
      +
      #icon-shezhi-copy
      +
    • + +
    • + +
      系统角色-copy
      +
      #icon-xitongjiaose-copy
      +
    • + +
    • + +
      客服-copy
      +
      #icon-kefu-copy
      +
    • + +
    • + +
      设置
      +
      #icon-shezhi
      +
    • + +
    • + +
      设置_填充
      +
      #icon-shezhitianchong
      +
    • + +
    • + +
      设置
      +
      #icon-shezhi1
      +
    • + +
    • + +
      意见反馈
      +
      #icon-yijianfankui
      +
    • + +
    • + +
      日期
      +
      #icon-riqi
      +
    • + +
    • + +
      客服
      +
      #icon-kefu
      +
    • + +
    • + +
      角色管理
      +
      #icon-jiaoseguanli
      +
    • + +
    • + +
      意见反馈
      +
      #icon-yijianfankui1
      +
    • + +
    • + +
      点赞
      +
      #icon-dianzan
      +
    • + +
    • + +
      设置
      +
      #icon-shezhi2
      +
    • + +
    • + +
      设置
      +
      #icon-shezhi3
      +
    • + +
    • + +
      点赞
      +
      #icon-dianzan1
      +
    • + +
    • + +
      意见反馈-copy
      +
      #icon-yaoqingdaoshi-copy
      +
    • + +
    • + +
      交付日期
      +
      #icon-jiaofuriqi
      +
    • + +
    • + +
      爱心
      +
      #icon-aixin
      +
    • + +
    • + +
      意见反馈
      +
      #icon-yaoqingdaoshi
      +
    • + +
    • + +
      点赞
      +
      #icon-dianzan2
      +
    • + +
    • + +
      问题
      +
      #icon-wenti
      +
    • + +
    • + +
      爱心
      +
      #icon-aixin1
      +
    • + +
    • + +
      爱心
      +
      #icon-aixin2
      +
    • + +
    • + +
      角色管理
      +
      #icon-jiaoseguanli1
      +
    • + +
    • + +
      系统角色
      +
      #icon-xitongjiaose
      +
    • + +
    • + +
      问题
      +
      #icon-wenti1
      +
    • + +
    • + +
      角色管理
      +
      #icon-jiaoseguanli2
      +
    • + +
    • + +
      点赞-copy
      +
      #icon-dianzan1-copy
      +
    • + +
    • + +
      user
      +
      #icon-user
      +
    • + +
    +
    +

    Symbol 引用

    +
    + +

    这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 + 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

    +
      +
    • 支持多色图标了,不再受单色限制。
    • +
    • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
    • +
    • 兼容性较差,支持 IE9+,及现代浏览器。
    • +
    • 浏览器渲染 SVG 的性能一般,还不如 png。
    • +
    +

    使用步骤如下:

    +

    第一步:引入项目下面生成的 symbol 代码:

    +
    <script src="./iconfont.js"></script>
    +
    +

    第二步:加入通用 CSS 代码(引入一次就行):

    +
    <style>
    +.icon {
    +  width: 1em;
    +  height: 1em;
    +  vertical-align: -0.15em;
    +  fill: currentColor;
    +  overflow: hidden;
    +}
    +</style>
    +
    +

    第三步:挑选相应图标并获取类名,应用于页面:

    +
    <svg class="icon" aria-hidden="true">
    +  <use xlink:href="#icon-xxx"></use>
    +</svg>
    +
    +
    +
    + +
    +