From f2ef63d910ea2db36713ec2f035c00fe2af47339 Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Thu, 22 May 2025 10:33:32 +0800 Subject: [PATCH] first commit --- App.vue | 40 + api/common.js | 35 + api/lawOrg.js | 11 + api/legalDoc.js | 7 + api/legalOrgCheck.js | 8 + api/legalOrgCheckSuggest.js | 7 + api/notary.js | 4 + api/request.js | 96 ++ api/user.js | 21 + articlePages/pages/feedback.vue | 134 ++ articlePages/pages/info.vue | 47 + articlePages/pages/list.vue | 45 + articlePages/pages/publicity.vue | 91 ++ articlePages/pages/search.vue | 96 ++ components/HeaderItem.vue | 41 + components/Login.vue | 150 ++ components/TitleItem.vue | 18 + components/customTabbar.vue | 84 ++ config/color.js | 18 + config/index.js | 23 + index.html | 20 + .../luch-request/adapters/index.js | 100 ++ .../luch-request/core/InterceptorManager.js | 51 + .../luch-request/luch-request/core/Request.js | 197 +++ .../luch-request/core/buildFullPath.js | 20 + .../luch-request/core/defaults.js | 31 + .../luch-request/core/dispatchRequest.js | 6 + .../luch-request/core/mergeConfig.js | 103 ++ .../luch-request/luch-request/core/settle.js | 16 + .../luch-request/helpers/buildURL.js | 64 + .../luch-request/helpers/combineURLs.js | 14 + .../luch-request/helpers/isAbsoluteURL.js | 14 + js_sdk/luch-request/luch-request/index.d.ts | 120 ++ js_sdk/luch-request/luch-request/index.js | 2 + js_sdk/luch-request/luch-request/utils.js | 135 ++ .../luch-request/luch-request/utils/clone.js | 264 ++++ js_sdk/luch-request/package.json | 19 + js_sdk/qqmap-wx-jssdk/qqmap-wx-jssdk.js | 1122 ++++++++++++++ js_sdk/qqmap-wx-jssdk/qqmap-wx-jssdk.min.js | 1 + lawOrgPages/pages/action.vue | 117 ++ lawOrgPages/pages/aiChat.vue | 13 + lawOrgPages/pages/index.vue | 78 + lawOrgPages/pages/map.vue | 141 ++ lawOrgPages/pages/orgList.vue | 107 ++ lawOrgPages/pages/peopleList.vue | 90 ++ lawOrgPages/static/building.png | Bin 0 -> 2331 bytes lawOrgPages/static/empty.png | Bin 0 -> 4413 bytes lawOrgPages/static/header.png | Bin 0 -> 3725 bytes lawOrgPages/static/map-circle.png | Bin 0 -> 3392 bytes lawOrgPages/static/position.png | Bin 0 -> 2497 bytes lawOrgPages/static/ticket.png | Bin 0 -> 11751 bytes legalLegalDoc/pages/detail.vue | 175 +++ legalLegalDoc/pages/index.vue | 108 ++ legalLegalDoc/pages/result.vue | 143 ++ legalLegalDoc/static/checkbox-selected.png | Bin 0 -> 2760 bytes legalLegalDoc/static/checkbox.png | Bin 0 -> 2112 bytes legalLegalDoc/static/copy.png | Bin 0 -> 2593 bytes legalLegalDoc/static/file.png | Bin 0 -> 3624 bytes legalLegalDoc/static/mobile.png | Bin 0 -> 2741 bytes legalLegalDoc/static/radio-selected.png | Bin 0 -> 4215 bytes legalLegalDoc/static/radio.png | Bin 0 -> 3530 bytes legalLegalDoc/static/star.png | Bin 0 -> 4722 bytes legalLegalDoc/static/v2_suc04p.png | Bin 0 -> 24420 bytes legalOrgCheck/pages/detail.vue | 195 +++ legalOrgCheck/pages/index.vue | 109 ++ legalOrgCheck/pages/pdfResult.vue | 27 + legalOrgCheck/pages/result.vue | 222 +++ legalOrgCheck/static/checkbox-selected.png | Bin 0 -> 2760 bytes legalOrgCheck/static/checkbox.png | Bin 0 -> 2112 bytes legalOrgCheck/static/copy.png | Bin 0 -> 2593 bytes legalOrgCheck/static/file.png | Bin 0 -> 3624 bytes legalOrgCheck/static/radio-selected.png | Bin 0 -> 4215 bytes legalOrgCheck/static/radio.png | Bin 0 -> 3530 bytes legalOrgCheck/static/star.png | Bin 0 -> 4722 bytes legalOrgCheck/static/v2_suc04p.png | Bin 0 -> 24420 bytes legalOrgCheckSuggest/pages/detail.vue | 184 +++ legalOrgCheckSuggest/pages/index.vue | 105 ++ legalOrgCheckSuggest/pages/pdfResult.vue | 27 + legalOrgCheckSuggest/pages/result.vue | 239 +++ .../static/checkbox-selected.png | Bin 0 -> 2760 bytes legalOrgCheckSuggest/static/checkbox.png | Bin 0 -> 2112 bytes legalOrgCheckSuggest/static/copy.png | Bin 0 -> 2593 bytes legalOrgCheckSuggest/static/file.png | Bin 0 -> 3624 bytes .../static/radio-selected.png | Bin 0 -> 4215 bytes legalOrgCheckSuggest/static/radio.png | Bin 0 -> 3530 bytes legalOrgCheckSuggest/static/star.png | Bin 0 -> 4722 bytes main.js | 38 + manifest.json | 77 + onlineSheetPages/pages/civil.vue | 131 ++ onlineSheetPages/pages/forensic.vue | 132 ++ onlineSheetPages/pages/legalAid.vue | 133 ++ onlineSheetPages/pages/newCivilRequest.vue | 167 ++ onlineSheetPages/pages/newForensicRequest.vue | 392 +++++ onlineSheetPages/pages/newNotaryRequest.vue | 266 ++++ onlineSheetPages/pages/newRequest.vue | 162 ++ onlineSheetPages/pages/notary.vue | 143 ++ onlineSheetPages/static/bg1.jpg | Bin 0 -> 195826 bytes onlineSheetPages/static/checkbox-selected.png | Bin 0 -> 2760 bytes onlineSheetPages/static/checkbox.png | Bin 0 -> 2112 bytes onlineSheetPages/static/v2_sua83h.png | Bin 0 -> 2327 bytes onlineSheetPages/static/v2_sua840.png | Bin 0 -> 2253 bytes onlineSheetPages/static/v2_sua84m.png | Bin 0 -> 2323 bytes onlineSheetPages/static/v2_sua84z.png | Bin 0 -> 2619 bytes onlineSheetPages/static/v2_sue29e.png | Bin 0 -> 2443 bytes onlineSheetPages/static/v2_suhlrq.png | Bin 0 -> 3333 bytes onlineSheetPages/static/v2_suhluu.png | Bin 0 -> 3149 bytes package.json | 6 + pages.json | 407 +++++ pages/ai/index.vue | 178 +++ pages/index/index.vue | 200 +++ pages/user/index.vue | 109 ++ pnpm-lock.yaml | 30 + static/ai.png | Bin 0 -> 20765 bytes static/archive.png | Bin 0 -> 3292 bytes static/bg-blue-0.jpeg | Bin 0 -> 4195 bytes static/bg-blue-1.jpeg | Bin 0 -> 4102 bytes static/bg-green-0.jpeg | Bin 0 -> 4124 bytes static/bg-orange.jpg | Bin 0 -> 3094 bytes static/bg-yellow.png | Bin 0 -> 8037 bytes static/charge.png | Bin 0 -> 3491 bytes static/check.png | Bin 0 -> 8639 bytes static/empty.png | Bin 0 -> 4413 bytes static/filter.png | Bin 0 -> 3073 bytes static/index/1.png | Bin 0 -> 3496 bytes static/index/2.png | Bin 0 -> 2666 bytes static/index/3.png | Bin 0 -> 4134 bytes static/index/4.png | Bin 0 -> 2055 bytes static/index/map.png | Bin 0 -> 6311 bytes static/index/org.png | Bin 0 -> 2216 bytes static/index/orgCheck.png | Bin 0 -> 15980 bytes static/index/propagate.png | Bin 0 -> 60315 bytes static/index/self_0.png | Bin 0 -> 4022 bytes static/index/self_1.png | Bin 0 -> 3277 bytes static/index/self_2.png | Bin 0 -> 2443 bytes static/index/self_3.png | Bin 0 -> 2854 bytes static/index/self_4.png | Bin 0 -> 3474 bytes static/index/self_5.png | Bin 0 -> 2133 bytes static/line.png | Bin 0 -> 3874 bytes static/log.png | Bin 0 -> 2688 bytes static/logo.png | Bin 0 -> 41211 bytes static/no-msg.png | Bin 0 -> 6397 bytes static/no-order.png | Bin 0 -> 4639 bytes static/profile.png | Bin 0 -> 2419 bytes static/robot.png | Bin 0 -> 3657 bytes static/send.png | Bin 0 -> 3284 bytes static/stop.png | Bin 0 -> 2030 bytes static/style/common.scss | 829 ++++++++++ static/tabbar/home-selected.png | Bin 0 -> 2830 bytes static/tabbar/home.png | Bin 0 -> 3045 bytes static/tabbar/user-selected.png | Bin 0 -> 3479 bytes static/tabbar/user.png | Bin 0 -> 3465 bytes static/top.png | Bin 0 -> 2317 bytes static/user/24gf-portraitMale.png | Bin 0 -> 2714 bytes static/user/upload.png | Bin 0 -> 2654 bytes static/user/上传.png | Bin 0 -> 2383 bytes static/user/客服.png | Bin 0 -> 4517 bytes static/user/身份证证件.png | Bin 0 -> 2786 bytes uni.promisify.adaptor.js | 13 + uni.scss | 77 + uni_modules/m-tabbar/changelog.md | 76 + .../m-tabbar/components/m-tabbar/m-tabbar.vue | 516 +++++++ uni_modules/m-tabbar/package.json | 81 + uni_modules/m-tabbar/readme.md | 312 ++++ uni_modules/piaoyi-progress-bar/changelog.md | 2 + .../piaoyi-progress-bar.vue | 157 ++ uni_modules/piaoyi-progress-bar/package.json | 15 + uni_modules/piaoyi-progress-bar/readme.md | 56 + uni_modules/uview-ui/LICENSE | 21 + uni_modules/uview-ui/README.md | 66 + uni_modules/uview-ui/changelog.md | 376 +++++ .../uview-ui/components/u--form/u--form.vue | 78 + .../uview-ui/components/u--image/u--image.vue | 47 + .../uview-ui/components/u--input/u--input.vue | 73 + .../uview-ui/components/u--text/u--text.vue | 44 + .../components/u--textarea/u--textarea.vue | 48 + .../components/u-action-sheet/props.js | 54 + .../u-action-sheet/u-action-sheet.vue | 278 ++++ .../uview-ui/components/u-album/props.js | 59 + .../uview-ui/components/u-album/u-album.vue | 259 ++++ .../uview-ui/components/u-alert/props.js | 44 + .../uview-ui/components/u-alert/u-alert.vue | 243 +++ .../components/u-avatar-group/props.js | 52 + .../u-avatar-group/u-avatar-group.vue | 103 ++ .../uview-ui/components/u-avatar/props.js | 78 + .../uview-ui/components/u-avatar/u-avatar.vue | 173 +++ .../uview-ui/components/u-back-top/props.js | 54 + .../components/u-back-top/u-back-top.vue | 129 ++ .../uview-ui/components/u-badge/props.js | 72 + .../uview-ui/components/u-badge/u-badge.vue | 171 +++ .../uview-ui/components/u-button/nvue.scss | 46 + .../uview-ui/components/u-button/props.js | 161 ++ .../uview-ui/components/u-button/u-button.vue | 495 ++++++ .../uview-ui/components/u-button/vue.scss | 80 + .../uview-ui/components/u-calendar/header.vue | 99 ++ .../uview-ui/components/u-calendar/month.vue | 579 +++++++ .../uview-ui/components/u-calendar/props.js | 144 ++ .../components/u-calendar/u-calendar.vue | 384 +++++ .../uview-ui/components/u-calendar/util.js | 85 ++ .../components/u-car-keyboard/props.js | 14 + .../u-car-keyboard/u-car-keyboard.vue | 311 ++++ .../uview-ui/components/u-cell-group/props.js | 14 + .../components/u-cell-group/u-cell-group.vue | 61 + .../uview-ui/components/u-cell/props.js | 110 ++ .../uview-ui/components/u-cell/u-cell.vue | 229 +++ .../components/u-checkbox-group/props.js | 82 + .../u-checkbox-group/u-checkbox-group.vue | 103 ++ .../uview-ui/components/u-checkbox/props.js | 69 + .../components/u-checkbox/u-checkbox.vue | 344 +++++ .../components/u-circle-progress/props.js | 8 + .../u-circle-progress/u-circle-progress.vue | 198 +++ .../uview-ui/components/u-code-input/props.js | 79 + .../components/u-code-input/u-code-input.vue | 252 ++++ .../uview-ui/components/u-code/props.js | 34 + .../uview-ui/components/u-code/u-code.vue | 129 ++ .../uview-ui/components/u-col/props.js | 29 + .../uview-ui/components/u-col/u-col.vue | 162 ++ .../components/u-collapse-item/props.js | 59 + .../u-collapse-item/u-collapse-item.vue | 225 +++ .../uview-ui/components/u-collapse/props.js | 19 + .../components/u-collapse/u-collapse.vue | 90 ++ .../components/u-column-notice/props.js | 55 + .../u-column-notice/u-column-notice.vue | 160 ++ .../uview-ui/components/u-count-down/props.js | 24 + .../components/u-count-down/u-count-down.vue | 163 ++ .../uview-ui/components/u-count-down/utils.js | 62 + .../uview-ui/components/u-count-to/props.js | 59 + .../components/u-count-to/u-count-to.vue | 184 +++ .../components/u-datetime-picker/props.js | 116 ++ .../u-datetime-picker/u-datetime-picker.vue | 360 +++++ .../uview-ui/components/u-divider/props.js | 44 + .../components/u-divider/u-divider.vue | 116 ++ .../components/u-dropdown-item/props.js | 36 + .../u-dropdown-item/u-dropdown-item.vue | 127 ++ .../uview-ui/components/u-dropdown/props.js | 65 + .../components/u-dropdown/u-dropdown.vue | 127 ++ .../uview-ui/components/u-empty/props.js | 59 + .../uview-ui/components/u-empty/u-empty.vue | 128 ++ .../uview-ui/components/u-form-item/props.js | 48 + .../components/u-form-item/u-form-item.vue | 235 +++ .../uview-ui/components/u-form/props.js | 45 + .../uview-ui/components/u-form/u-form.vue | 214 +++ .../uview-ui/components/u-gap/props.js | 24 + .../uview-ui/components/u-gap/u-gap.vue | 38 + .../uview-ui/components/u-grid-item/props.js | 14 + .../components/u-grid-item/u-grid-item.vue | 209 +++ .../uview-ui/components/u-grid/props.js | 19 + .../uview-ui/components/u-grid/u-grid.vue | 97 ++ .../uview-ui/components/u-icon/icons.js | 214 +++ .../uview-ui/components/u-icon/props.js | 89 ++ .../uview-ui/components/u-icon/u-icon.vue | 234 +++ .../uview-ui/components/u-image/props.js | 84 ++ .../uview-ui/components/u-image/u-image.vue | 232 +++ .../components/u-index-anchor/props.js | 29 + .../u-index-anchor/u-index-anchor.vue | 91 ++ .../uview-ui/components/u-index-item/props.js | 5 + .../components/u-index-item/u-index-item.vue | 87 ++ .../uview-ui/components/u-index-list/props.js | 29 + .../components/u-index-list/u-index-list.vue | 440 ++++++ .../uview-ui/components/u-input/props.js | 187 +++ .../uview-ui/components/u-input/u-input.vue | 354 +++++ .../uview-ui/components/u-keyboard/props.js | 84 ++ .../components/u-keyboard/u-keyboard.vue | 164 ++ .../components/u-line-progress/props.js | 28 + .../u-line-progress/u-line-progress.vue | 144 ++ .../uview-ui/components/u-line/props.js | 33 + .../uview-ui/components/u-line/u-line.vue | 62 + .../uview-ui/components/u-link/props.js | 39 + .../uview-ui/components/u-link/u-link.vue | 83 + .../uview-ui/components/u-list-item/props.js | 9 + .../components/u-list-item/u-list-item.vue | 116 ++ .../uview-ui/components/u-list/props.js | 76 + .../uview-ui/components/u-list/u-list.vue | 157 ++ .../components/u-loading-icon/props.js | 59 + .../u-loading-icon/u-loading-icon.vue | 343 +++++ .../components/u-loading-page/props.js | 49 + .../u-loading-page/u-loading-page.vue | 115 ++ .../uview-ui/components/u-loadmore/props.js | 94 ++ .../components/u-loadmore/u-loadmore.vue | 150 ++ .../uview-ui/components/u-modal/props.js | 89 ++ .../uview-ui/components/u-modal/u-modal.vue | 228 +++ .../uview-ui/components/u-navbar/props.js | 89 ++ .../uview-ui/components/u-navbar/u-navbar.vue | 187 +++ .../uview-ui/components/u-no-network/props.js | 19 + .../components/u-no-network/u-no-network.vue | 220 +++ .../uview-ui/components/u-notice-bar/props.js | 70 + .../components/u-notice-bar/u-notice-bar.vue | 101 ++ .../uview-ui/components/u-notify/props.js | 49 + .../uview-ui/components/u-notify/u-notify.vue | 211 +++ .../uview-ui/components/u-number-box/props.js | 109 ++ .../components/u-number-box/u-number-box.vue | 416 +++++ .../components/u-number-keyboard/props.js | 19 + .../u-number-keyboard/u-number-keyboard.vue | 196 +++ .../uview-ui/components/u-overlay/props.js | 24 + .../components/u-overlay/u-overlay.vue | 68 + .../uview-ui/components/u-parse/node/node.vue | 499 ++++++ .../uview-ui/components/u-parse/parser.js | 1075 +++++++++++++ .../uview-ui/components/u-parse/props.js | 45 + .../uview-ui/components/u-parse/u-parse.vue | 366 +++++ .../components/u-picker-column/props.js | 5 + .../u-picker-column/u-picker-column.vue | 27 + .../uview-ui/components/u-picker/props.js | 79 + .../uview-ui/components/u-picker/u-picker.vue | 286 ++++ .../uview-ui/components/u-popup/props.js | 79 + .../uview-ui/components/u-popup/u-popup.vue | 304 ++++ .../components/u-radio-group/props.js | 85 ++ .../u-radio-group/u-radio-group.vue | 108 ++ .../uview-ui/components/u-radio/props.js | 64 + .../uview-ui/components/u-radio/u-radio.vue | 339 +++++ .../uview-ui/components/u-rate/props.js | 69 + .../uview-ui/components/u-rate/u-rate.vue | 306 ++++ .../uview-ui/components/u-read-more/props.js | 61 + .../components/u-read-more/u-read-more.vue | 157 ++ .../uview-ui/components/u-row-notice/props.js | 39 + .../components/u-row-notice/u-row-notice.vue | 330 ++++ .../uview-ui/components/u-row/props.js | 19 + .../uview-ui/components/u-row/u-row.vue | 93 ++ .../components/u-safe-bottom/props.js | 5 + .../u-safe-bottom/u-safe-bottom.vue | 56 + .../uview-ui/components/u-scroll-list/nvue.js | 28 + .../components/u-scroll-list/other.js | 0 .../components/u-scroll-list/props.js | 34 + .../components/u-scroll-list/scrollWxs.wxs | 50 + .../u-scroll-list/u-scroll-list.vue | 224 +++ .../uview-ui/components/u-search/props.js | 118 ++ .../uview-ui/components/u-search/u-search.vue | 303 ++++ .../uview-ui/components/u-skeleton/props.js | 59 + .../components/u-skeleton/u-skeleton.vue | 244 +++ .../uview-ui/components/u-slider/mpother.js | 113 ++ .../uview-ui/components/u-slider/mpwxs.js | 42 + .../uview-ui/components/u-slider/mpwxs.wxs | 121 ++ .../components/u-slider/nvue - 副本.js | 180 +++ .../uview-ui/components/u-slider/nvue.js | 193 +++ .../uview-ui/components/u-slider/props.js | 54 + .../uview-ui/components/u-slider/u-slider.vue | 55 + .../uview-ui/components/u-status-bar/props.js | 8 + .../components/u-status-bar/u-status-bar.vue | 46 + .../uview-ui/components/u-steps-item/props.js | 24 + .../components/u-steps-item/u-steps-item.vue | 316 ++++ .../uview-ui/components/u-steps/props.js | 39 + .../uview-ui/components/u-steps/u-steps.vue | 80 + .../uview-ui/components/u-sticky/props.js | 40 + .../uview-ui/components/u-sticky/u-sticky.vue | 212 +++ .../uview-ui/components/u-subsection/props.js | 49 + .../components/u-subsection/u-subsection.vue | 299 ++++ .../u-swipe-action-item/index - backup.wxs | 256 ++++ .../components/u-swipe-action-item/index.wxs | 225 +++ .../u-swipe-action-item/nvue - backup.js | 270 ++++ .../components/u-swipe-action-item/nvue.js | 174 +++ .../components/u-swipe-action-item/props.js | 41 + .../u-swipe-action-item.vue | 190 +++ .../components/u-swipe-action-item/wxs.js | 15 + .../components/u-swipe-action/props.js | 9 + .../u-swipe-action/u-swipe-action.vue | 67 + .../components/u-swiper-indicator/props.js | 29 + .../u-swiper-indicator/u-swiper-indicator.vue | 110 ++ .../uview-ui/components/u-swiper/props.js | 125 ++ .../uview-ui/components/u-swiper/u-swiper.vue | 255 ++++ .../uview-ui/components/u-switch/props.js | 54 + .../uview-ui/components/u-switch/u-switch.vue | 177 +++ .../components/u-tabbar-item/props.js | 35 + .../u-tabbar-item/u-tabbar-item.vue | 142 ++ .../uview-ui/components/u-tabbar/props.js | 44 + .../uview-ui/components/u-tabbar/u-tabbar.vue | 141 ++ .../uview-ui/components/u-table/props.js | 5 + .../uview-ui/components/u-table/u-table.vue | 29 + .../uview-ui/components/u-tabs-item/props.js | 5 + .../components/u-tabs-item/u-tabs-item.vue | 29 + .../uview-ui/components/u-tabs/props.js | 64 + .../uview-ui/components/u-tabs/u-tabs.vue | 363 +++++ .../uview-ui/components/u-tag/props.js | 84 ++ .../uview-ui/components/u-tag/u-tag.vue | 358 +++++ uni_modules/uview-ui/components/u-td/props.js | 5 + uni_modules/uview-ui/components/u-td/u-td.vue | 31 + .../uview-ui/components/u-text/props.js | 110 ++ .../uview-ui/components/u-text/u-text.vue | 223 +++ .../uview-ui/components/u-text/value.js | 85 ++ .../uview-ui/components/u-textarea/props.js | 119 ++ .../components/u-textarea/u-textarea.vue | 239 +++ .../uview-ui/components/u-toast/u-toast.vue | 291 ++++ .../uview-ui/components/u-toolbar/props.js | 34 + .../components/u-toolbar/u-toolbar.vue | 102 ++ .../components/u-tooltip/clipboard.min.js | 58 + .../uview-ui/components/u-tooltip/props.js | 59 + .../components/u-tooltip/u-tooltip.vue | 365 +++++ uni_modules/uview-ui/components/u-tr/props.js | 5 + uni_modules/uview-ui/components/u-tr/u-tr.vue | 31 + .../components/u-transition/nvue.ani-map.js | 68 + .../uview-ui/components/u-transition/props.js | 24 + .../components/u-transition/transition.js | 157 ++ .../components/u-transition/u-transition.vue | 92 ++ .../u-transition/vue.ani-style.scss | 113 ++ .../uview-ui/components/u-upload/mixin.js | 21 + .../uview-ui/components/u-upload/props.js | 124 ++ .../uview-ui/components/u-upload/u-upload.vue | 558 +++++++ .../uview-ui/components/u-upload/utils.js | 151 ++ .../uview-ui/components/uview-ui/uview-ui.vue | 15 + uni_modules/uview-ui/index.js | 79 + uni_modules/uview-ui/index.scss | 23 + uni_modules/uview-ui/libs/config/color.js | 17 + uni_modules/uview-ui/libs/config/config.js | 34 + uni_modules/uview-ui/libs/config/props.js | 190 +++ .../uview-ui/libs/config/props/actionSheet.js | 25 + .../uview-ui/libs/config/props/album.js | 25 + .../uview-ui/libs/config/props/alert.js | 22 + .../uview-ui/libs/config/props/avatar.js | 28 + .../uview-ui/libs/config/props/avatarGroup.js | 23 + .../uview-ui/libs/config/props/backtop.js | 27 + .../uview-ui/libs/config/props/badge.js | 27 + .../uview-ui/libs/config/props/button.js | 42 + .../uview-ui/libs/config/props/calendar.js | 42 + .../uview-ui/libs/config/props/carKeyboard.js | 15 + .../uview-ui/libs/config/props/cell.js | 35 + .../uview-ui/libs/config/props/cellGroup.js | 17 + .../uview-ui/libs/config/props/checkbox.js | 27 + .../libs/config/props/checkboxGroup.js | 29 + .../libs/config/props/circleProgress.js | 15 + .../uview-ui/libs/config/props/code.js | 21 + .../uview-ui/libs/config/props/codeInput.js | 29 + uni_modules/uview-ui/libs/config/props/col.js | 19 + .../uview-ui/libs/config/props/collapse.js | 17 + .../libs/config/props/collapseItem.js | 25 + .../libs/config/props/columnNotice.js | 24 + .../uview-ui/libs/config/props/countDown.js | 18 + .../uview-ui/libs/config/props/countTo.js | 25 + .../libs/config/props/datetimePicker.js | 36 + .../uview-ui/libs/config/props/divider.js | 23 + .../uview-ui/libs/config/props/empty.js | 26 + .../uview-ui/libs/config/props/form.js | 22 + .../uview-ui/libs/config/props/formItem.js | 23 + uni_modules/uview-ui/libs/config/props/gap.js | 19 + .../uview-ui/libs/config/props/grid.js | 17 + .../uview-ui/libs/config/props/gridItem.js | 16 + .../uview-ui/libs/config/props/icon.js | 36 + .../uview-ui/libs/config/props/image.js | 30 + .../uview-ui/libs/config/props/indexAnchor.js | 19 + .../uview-ui/libs/config/props/indexList.js | 19 + .../uview-ui/libs/config/props/input.js | 48 + .../uview-ui/libs/config/props/keyboard.js | 30 + .../uview-ui/libs/config/props/line.js | 20 + .../libs/config/props/lineProgress.js | 19 + .../uview-ui/libs/config/props/link.js | 26 + .../uview-ui/libs/config/props/list.js | 28 + .../uview-ui/libs/config/props/listItem.js | 15 + .../uview-ui/libs/config/props/loadingIcon.js | 30 + .../uview-ui/libs/config/props/loadingPage.js | 23 + .../uview-ui/libs/config/props/loadmore.js | 32 + .../uview-ui/libs/config/props/modal.js | 31 + .../uview-ui/libs/config/props/navbar.js | 32 + .../uview-ui/libs/config/props/noNetwork.js | 18 + .../uview-ui/libs/config/props/noticeBar.js | 27 + .../uview-ui/libs/config/props/notify.js | 22 + .../uview-ui/libs/config/props/numberBox.js | 35 + .../libs/config/props/numberKeyboard.js | 17 + .../uview-ui/libs/config/props/overlay.js | 18 + .../uview-ui/libs/config/props/parse.js | 22 + .../uview-ui/libs/config/props/picker.js | 29 + .../uview-ui/libs/config/props/popup.js | 29 + .../uview-ui/libs/config/props/radio.js | 27 + .../uview-ui/libs/config/props/radioGroup.js | 30 + .../uview-ui/libs/config/props/rate.js | 26 + .../uview-ui/libs/config/props/readMore.js | 22 + uni_modules/uview-ui/libs/config/props/row.js | 17 + .../uview-ui/libs/config/props/rowNotice.js | 21 + .../uview-ui/libs/config/props/scrollList.js | 20 + .../uview-ui/libs/config/props/search.js | 37 + .../uview-ui/libs/config/props/section.js | 24 + .../uview-ui/libs/config/props/skeleton.js | 25 + .../uview-ui/libs/config/props/slider.js | 25 + .../uview-ui/libs/config/props/statusBar.js | 15 + .../uview-ui/libs/config/props/steps.js | 21 + .../uview-ui/libs/config/props/stepsItem.js | 18 + .../uview-ui/libs/config/props/sticky.js | 20 + .../uview-ui/libs/config/props/subsection.js | 23 + .../uview-ui/libs/config/props/swipeAction.js | 15 + .../libs/config/props/swipeActionItem.js | 21 + .../uview-ui/libs/config/props/swiper.js | 39 + .../libs/config/props/swipterIndicator.js | 19 + .../uview-ui/libs/config/props/switch.js | 24 + .../uview-ui/libs/config/props/tabbar.js | 22 + .../uview-ui/libs/config/props/tabbarItem.js | 20 + .../uview-ui/libs/config/props/tabs.js | 32 + uni_modules/uview-ui/libs/config/props/tag.js | 29 + .../uview-ui/libs/config/props/text.js | 38 + .../uview-ui/libs/config/props/textarea.js | 36 + .../uview-ui/libs/config/props/toast.js | 30 + .../uview-ui/libs/config/props/toolbar.js | 21 + .../uview-ui/libs/config/props/tooltip.js | 25 + .../uview-ui/libs/config/props/transition.js | 18 + .../uview-ui/libs/config/props/upload.js | 36 + uni_modules/uview-ui/libs/config/zIndex.js | 20 + uni_modules/uview-ui/libs/css/color.scss | 155 ++ uni_modules/uview-ui/libs/css/common.scss | 97 ++ uni_modules/uview-ui/libs/css/components.scss | 15 + uni_modules/uview-ui/libs/css/flex.scss | 257 ++++ uni_modules/uview-ui/libs/css/h5.scss | 0 uni_modules/uview-ui/libs/css/mixin.scss | 8 + uni_modules/uview-ui/libs/css/mp.scss | 0 uni_modules/uview-ui/libs/css/nvue.scss | 0 uni_modules/uview-ui/libs/css/vue.scss | 27 + .../uview-ui/libs/function/colorGradient.js | 134 ++ .../uview-ui/libs/function/debounce.js | 29 + uni_modules/uview-ui/libs/function/digit.js | 167 ++ uni_modules/uview-ui/libs/function/index.js | 731 +++++++++ .../uview-ui/libs/function/platform.js | 75 + uni_modules/uview-ui/libs/function/test.js | 288 ++++ .../uview-ui/libs/function/throttle.js | 30 + .../libs/luch-request/adapters/index.js | 97 ++ .../luch-request/core/InterceptorManager.js | 50 + .../libs/luch-request/core/Request.js | 198 +++ .../libs/luch-request/core/buildFullPath.js | 20 + .../libs/luch-request/core/defaults.js | 29 + .../libs/luch-request/core/dispatchRequest.js | 3 + .../libs/luch-request/core/mergeConfig.js | 103 ++ .../uview-ui/libs/luch-request/core/settle.js | 16 + .../libs/luch-request/helpers/buildURL.js | 69 + .../libs/luch-request/helpers/combineURLs.js | 14 + .../luch-request/helpers/isAbsoluteURL.js | 14 + .../uview-ui/libs/luch-request/index.d.ts | 116 ++ .../uview-ui/libs/luch-request/index.js | 3 + .../uview-ui/libs/luch-request/utils.js | 131 ++ .../uview-ui/libs/luch-request/utils/clone.js | 264 ++++ uni_modules/uview-ui/libs/mixin/button.js | 13 + uni_modules/uview-ui/libs/mixin/mixin.js | 160 ++ uni_modules/uview-ui/libs/mixin/mpMixin.js | 8 + uni_modules/uview-ui/libs/mixin/mpShare.js | 13 + uni_modules/uview-ui/libs/mixin/openType.js | 25 + uni_modules/uview-ui/libs/mixin/style.js | 228 +++ uni_modules/uview-ui/libs/mixin/touch.js | 59 + .../uview-ui/libs/util/async-validator.js | 1343 +++++++++++++++++ uni_modules/uview-ui/libs/util/calendar.js | 546 +++++++ uni_modules/uview-ui/libs/util/dayjs.js | 308 ++++ uni_modules/uview-ui/libs/util/emitter.js | 51 + uni_modules/uview-ui/libs/util/route.js | 124 ++ uni_modules/uview-ui/package.json | 85 ++ uni_modules/uview-ui/theme.scss | 44 + uni_modules/zero-markdown-view/changelog.md | 15 + .../components/mp-html/highlight/config.js | 5 + .../components/mp-html/highlight/index.js | 109 ++ .../components/mp-html/highlight/prism.min.js | 7 + .../components/mp-html/markdown/index.js | 34 + .../components/mp-html/markdown/marked.min.js | 6 + .../components/mp-html/mp-html.vue | 503 ++++++ .../components/mp-html/node/node.vue | 678 +++++++++ .../components/mp-html/parser.js | 1335 ++++++++++++++++ .../components/mp-html/style/index.js | 129 ++ .../components/mp-html/style/parser.js | 175 +++ .../zero-markdown-view/zero-markdown-view.vue | 177 +++ uni_modules/zero-markdown-view/package.json | 86 ++ uni_modules/zero-markdown-view/readme.md | 134 ++ userPages/components/BalanceFilter.vue | 174 +++ userPages/pages/ai.vue | 36 + userPages/pages/cal.vue | 38 + userPages/pages/calDetail.vue | 148 ++ userPages/pages/manual.vue | 47 + userPages/pages/profile.vue | 119 ++ userPages/pages/userData.vue | 108 ++ userPages/pages/userFeedback.vue | 67 + userPages/pages/userLawCheck.vue | 44 + userPages/static/coupon.png | Bin 0 -> 7740 bytes userPages/static/gender.png | Bin 0 -> 1300 bytes userPages/static/id-card.png | Bin 0 -> 696 bytes userPages/static/payPwd/change-pwd.png | Bin 0 -> 2060 bytes userPages/static/payPwd/code.png | Bin 0 -> 1996 bytes userPages/static/payPwd/find-pwd.png | Bin 0 -> 2065 bytes userPages/static/payPwd/hide.png | Bin 0 -> 2121 bytes userPages/static/payPwd/phone.png | Bin 0 -> 1650 bytes userPages/static/payPwd/pwd.png | Bin 0 -> 2044 bytes userPages/static/payPwd/set-pwd.png | Bin 0 -> 2624 bytes userPages/static/payPwd/show.png | Bin 0 -> 1959 bytes userPages/static/payPwd/success.png | Bin 0 -> 4578 bytes userPages/static/payPwd/top.png | Bin 0 -> 10320 bytes userPages/static/phone_0.png | Bin 0 -> 3219 bytes userPages/static/phone_1.png | Bin 0 -> 2641 bytes userPages/static/phone_2.png | Bin 0 -> 4245 bytes userPages/static/rank_0.png | Bin 0 -> 6748 bytes userPages/static/rank_1.png | Bin 0 -> 6974 bytes userPages/static/rank_2.png | Bin 0 -> 7198 bytes userPages/static/student_card.png | Bin 0 -> 2388 bytes util/index.js | 235 +++ util/order.js | 100 ++ util/user.js | 51 + 581 files changed, 53162 insertions(+) create mode 100644 App.vue create mode 100644 api/common.js create mode 100644 api/lawOrg.js create mode 100644 api/legalDoc.js create mode 100644 api/legalOrgCheck.js create mode 100644 api/legalOrgCheckSuggest.js create mode 100644 api/notary.js create mode 100644 api/request.js create mode 100644 api/user.js create mode 100644 articlePages/pages/feedback.vue create mode 100644 articlePages/pages/info.vue create mode 100644 articlePages/pages/list.vue create mode 100644 articlePages/pages/publicity.vue create mode 100644 articlePages/pages/search.vue create mode 100644 components/HeaderItem.vue create mode 100644 components/Login.vue create mode 100644 components/TitleItem.vue create mode 100644 components/customTabbar.vue create mode 100644 config/color.js create mode 100644 config/index.js create mode 100644 index.html create mode 100644 js_sdk/luch-request/luch-request/adapters/index.js create mode 100644 js_sdk/luch-request/luch-request/core/InterceptorManager.js create mode 100644 js_sdk/luch-request/luch-request/core/Request.js create mode 100644 js_sdk/luch-request/luch-request/core/buildFullPath.js create mode 100644 js_sdk/luch-request/luch-request/core/defaults.js create mode 100644 js_sdk/luch-request/luch-request/core/dispatchRequest.js create mode 100644 js_sdk/luch-request/luch-request/core/mergeConfig.js create mode 100644 js_sdk/luch-request/luch-request/core/settle.js create mode 100644 js_sdk/luch-request/luch-request/helpers/buildURL.js create mode 100644 js_sdk/luch-request/luch-request/helpers/combineURLs.js create mode 100644 js_sdk/luch-request/luch-request/helpers/isAbsoluteURL.js create mode 100644 js_sdk/luch-request/luch-request/index.d.ts create mode 100644 js_sdk/luch-request/luch-request/index.js create mode 100644 js_sdk/luch-request/luch-request/utils.js create mode 100644 js_sdk/luch-request/luch-request/utils/clone.js create mode 100644 js_sdk/luch-request/package.json create mode 100644 js_sdk/qqmap-wx-jssdk/qqmap-wx-jssdk.js create mode 100644 js_sdk/qqmap-wx-jssdk/qqmap-wx-jssdk.min.js create mode 100644 lawOrgPages/pages/action.vue create mode 100644 lawOrgPages/pages/aiChat.vue create mode 100644 lawOrgPages/pages/index.vue create mode 100644 lawOrgPages/pages/map.vue create mode 100644 lawOrgPages/pages/orgList.vue create mode 100644 lawOrgPages/pages/peopleList.vue create mode 100644 lawOrgPages/static/building.png create mode 100644 lawOrgPages/static/empty.png create mode 100644 lawOrgPages/static/header.png create mode 100644 lawOrgPages/static/map-circle.png create mode 100644 lawOrgPages/static/position.png create mode 100644 lawOrgPages/static/ticket.png create mode 100644 legalLegalDoc/pages/detail.vue create mode 100644 legalLegalDoc/pages/index.vue create mode 100644 legalLegalDoc/pages/result.vue create mode 100644 legalLegalDoc/static/checkbox-selected.png create mode 100644 legalLegalDoc/static/checkbox.png create mode 100644 legalLegalDoc/static/copy.png create mode 100644 legalLegalDoc/static/file.png create mode 100644 legalLegalDoc/static/mobile.png create mode 100644 legalLegalDoc/static/radio-selected.png create mode 100644 legalLegalDoc/static/radio.png create mode 100644 legalLegalDoc/static/star.png create mode 100644 legalLegalDoc/static/v2_suc04p.png create mode 100644 legalOrgCheck/pages/detail.vue create mode 100644 legalOrgCheck/pages/index.vue create mode 100644 legalOrgCheck/pages/pdfResult.vue create mode 100644 legalOrgCheck/pages/result.vue create mode 100644 legalOrgCheck/static/checkbox-selected.png create mode 100644 legalOrgCheck/static/checkbox.png create mode 100644 legalOrgCheck/static/copy.png create mode 100644 legalOrgCheck/static/file.png create mode 100644 legalOrgCheck/static/radio-selected.png create mode 100644 legalOrgCheck/static/radio.png create mode 100644 legalOrgCheck/static/star.png create mode 100644 legalOrgCheck/static/v2_suc04p.png create mode 100644 legalOrgCheckSuggest/pages/detail.vue create mode 100644 legalOrgCheckSuggest/pages/index.vue create mode 100644 legalOrgCheckSuggest/pages/pdfResult.vue create mode 100644 legalOrgCheckSuggest/pages/result.vue create mode 100644 legalOrgCheckSuggest/static/checkbox-selected.png create mode 100644 legalOrgCheckSuggest/static/checkbox.png create mode 100644 legalOrgCheckSuggest/static/copy.png create mode 100644 legalOrgCheckSuggest/static/file.png create mode 100644 legalOrgCheckSuggest/static/radio-selected.png create mode 100644 legalOrgCheckSuggest/static/radio.png create mode 100644 legalOrgCheckSuggest/static/star.png create mode 100644 main.js create mode 100644 manifest.json create mode 100644 onlineSheetPages/pages/civil.vue create mode 100644 onlineSheetPages/pages/forensic.vue create mode 100644 onlineSheetPages/pages/legalAid.vue create mode 100644 onlineSheetPages/pages/newCivilRequest.vue create mode 100644 onlineSheetPages/pages/newForensicRequest.vue create mode 100644 onlineSheetPages/pages/newNotaryRequest.vue create mode 100644 onlineSheetPages/pages/newRequest.vue create mode 100644 onlineSheetPages/pages/notary.vue create mode 100644 onlineSheetPages/static/bg1.jpg create mode 100644 onlineSheetPages/static/checkbox-selected.png create mode 100644 onlineSheetPages/static/checkbox.png create mode 100644 onlineSheetPages/static/v2_sua83h.png create mode 100644 onlineSheetPages/static/v2_sua840.png create mode 100644 onlineSheetPages/static/v2_sua84m.png create mode 100644 onlineSheetPages/static/v2_sua84z.png create mode 100644 onlineSheetPages/static/v2_sue29e.png create mode 100644 onlineSheetPages/static/v2_suhlrq.png create mode 100644 onlineSheetPages/static/v2_suhluu.png create mode 100644 package.json create mode 100644 pages.json create mode 100644 pages/ai/index.vue create mode 100644 pages/index/index.vue create mode 100644 pages/user/index.vue create mode 100644 pnpm-lock.yaml create mode 100644 static/ai.png create mode 100644 static/archive.png create mode 100644 static/bg-blue-0.jpeg create mode 100644 static/bg-blue-1.jpeg create mode 100644 static/bg-green-0.jpeg create mode 100644 static/bg-orange.jpg create mode 100644 static/bg-yellow.png create mode 100644 static/charge.png create mode 100644 static/check.png create mode 100644 static/empty.png create mode 100644 static/filter.png create mode 100644 static/index/1.png create mode 100644 static/index/2.png create mode 100644 static/index/3.png create mode 100644 static/index/4.png create mode 100644 static/index/map.png create mode 100644 static/index/org.png create mode 100644 static/index/orgCheck.png create mode 100644 static/index/propagate.png create mode 100644 static/index/self_0.png create mode 100644 static/index/self_1.png create mode 100644 static/index/self_2.png create mode 100644 static/index/self_3.png create mode 100644 static/index/self_4.png create mode 100644 static/index/self_5.png create mode 100644 static/line.png create mode 100644 static/log.png create mode 100644 static/logo.png create mode 100644 static/no-msg.png create mode 100644 static/no-order.png create mode 100644 static/profile.png create mode 100644 static/robot.png create mode 100644 static/send.png create mode 100644 static/stop.png create mode 100644 static/style/common.scss create mode 100644 static/tabbar/home-selected.png create mode 100644 static/tabbar/home.png create mode 100644 static/tabbar/user-selected.png create mode 100644 static/tabbar/user.png create mode 100644 static/top.png create mode 100644 static/user/24gf-portraitMale.png create mode 100644 static/user/upload.png create mode 100644 static/user/上传.png create mode 100644 static/user/客服.png create mode 100644 static/user/身份证证件.png create mode 100644 uni.promisify.adaptor.js create mode 100644 uni.scss create mode 100644 uni_modules/m-tabbar/changelog.md create mode 100644 uni_modules/m-tabbar/components/m-tabbar/m-tabbar.vue create mode 100644 uni_modules/m-tabbar/package.json create mode 100644 uni_modules/m-tabbar/readme.md create mode 100644 uni_modules/piaoyi-progress-bar/changelog.md create mode 100644 uni_modules/piaoyi-progress-bar/components/piaoyi-progress-bar/piaoyi-progress-bar.vue create mode 100644 uni_modules/piaoyi-progress-bar/package.json create mode 100644 uni_modules/piaoyi-progress-bar/readme.md create mode 100644 uni_modules/uview-ui/LICENSE create mode 100644 uni_modules/uview-ui/README.md create mode 100644 uni_modules/uview-ui/changelog.md create mode 100644 uni_modules/uview-ui/components/u--form/u--form.vue create mode 100644 uni_modules/uview-ui/components/u--image/u--image.vue create mode 100644 uni_modules/uview-ui/components/u--input/u--input.vue create mode 100644 uni_modules/uview-ui/components/u--text/u--text.vue create mode 100644 uni_modules/uview-ui/components/u--textarea/u--textarea.vue create mode 100644 uni_modules/uview-ui/components/u-action-sheet/props.js create mode 100644 uni_modules/uview-ui/components/u-action-sheet/u-action-sheet.vue create mode 100644 uni_modules/uview-ui/components/u-album/props.js create mode 100644 uni_modules/uview-ui/components/u-album/u-album.vue create mode 100644 uni_modules/uview-ui/components/u-alert/props.js create mode 100644 uni_modules/uview-ui/components/u-alert/u-alert.vue create mode 100644 uni_modules/uview-ui/components/u-avatar-group/props.js create mode 100644 uni_modules/uview-ui/components/u-avatar-group/u-avatar-group.vue create mode 100644 uni_modules/uview-ui/components/u-avatar/props.js create mode 100644 uni_modules/uview-ui/components/u-avatar/u-avatar.vue create mode 100644 uni_modules/uview-ui/components/u-back-top/props.js create mode 100644 uni_modules/uview-ui/components/u-back-top/u-back-top.vue create mode 100644 uni_modules/uview-ui/components/u-badge/props.js create mode 100644 uni_modules/uview-ui/components/u-badge/u-badge.vue create mode 100644 uni_modules/uview-ui/components/u-button/nvue.scss create mode 100644 uni_modules/uview-ui/components/u-button/props.js create mode 100644 uni_modules/uview-ui/components/u-button/u-button.vue create mode 100644 uni_modules/uview-ui/components/u-button/vue.scss create mode 100644 uni_modules/uview-ui/components/u-calendar/header.vue create mode 100644 uni_modules/uview-ui/components/u-calendar/month.vue create mode 100644 uni_modules/uview-ui/components/u-calendar/props.js create mode 100644 uni_modules/uview-ui/components/u-calendar/u-calendar.vue create mode 100644 uni_modules/uview-ui/components/u-calendar/util.js create mode 100644 uni_modules/uview-ui/components/u-car-keyboard/props.js create mode 100644 uni_modules/uview-ui/components/u-car-keyboard/u-car-keyboard.vue create mode 100644 uni_modules/uview-ui/components/u-cell-group/props.js create mode 100644 uni_modules/uview-ui/components/u-cell-group/u-cell-group.vue create mode 100644 uni_modules/uview-ui/components/u-cell/props.js create mode 100644 uni_modules/uview-ui/components/u-cell/u-cell.vue create mode 100644 uni_modules/uview-ui/components/u-checkbox-group/props.js create mode 100644 uni_modules/uview-ui/components/u-checkbox-group/u-checkbox-group.vue create mode 100644 uni_modules/uview-ui/components/u-checkbox/props.js create mode 100644 uni_modules/uview-ui/components/u-checkbox/u-checkbox.vue create mode 100644 uni_modules/uview-ui/components/u-circle-progress/props.js create mode 100644 uni_modules/uview-ui/components/u-circle-progress/u-circle-progress.vue create mode 100644 uni_modules/uview-ui/components/u-code-input/props.js create mode 100644 uni_modules/uview-ui/components/u-code-input/u-code-input.vue create mode 100644 uni_modules/uview-ui/components/u-code/props.js create mode 100644 uni_modules/uview-ui/components/u-code/u-code.vue create mode 100644 uni_modules/uview-ui/components/u-col/props.js create mode 100644 uni_modules/uview-ui/components/u-col/u-col.vue create mode 100644 uni_modules/uview-ui/components/u-collapse-item/props.js create mode 100644 uni_modules/uview-ui/components/u-collapse-item/u-collapse-item.vue create mode 100644 uni_modules/uview-ui/components/u-collapse/props.js create mode 100644 uni_modules/uview-ui/components/u-collapse/u-collapse.vue create mode 100644 uni_modules/uview-ui/components/u-column-notice/props.js create mode 100644 uni_modules/uview-ui/components/u-column-notice/u-column-notice.vue create mode 100644 uni_modules/uview-ui/components/u-count-down/props.js create mode 100644 uni_modules/uview-ui/components/u-count-down/u-count-down.vue create mode 100644 uni_modules/uview-ui/components/u-count-down/utils.js create mode 100644 uni_modules/uview-ui/components/u-count-to/props.js create mode 100644 uni_modules/uview-ui/components/u-count-to/u-count-to.vue create mode 100644 uni_modules/uview-ui/components/u-datetime-picker/props.js create mode 100644 uni_modules/uview-ui/components/u-datetime-picker/u-datetime-picker.vue create mode 100644 uni_modules/uview-ui/components/u-divider/props.js create mode 100644 uni_modules/uview-ui/components/u-divider/u-divider.vue create mode 100644 uni_modules/uview-ui/components/u-dropdown-item/props.js create mode 100644 uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue create mode 100644 uni_modules/uview-ui/components/u-dropdown/props.js create mode 100644 uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue create mode 100644 uni_modules/uview-ui/components/u-empty/props.js create mode 100644 uni_modules/uview-ui/components/u-empty/u-empty.vue create mode 100644 uni_modules/uview-ui/components/u-form-item/props.js create mode 100644 uni_modules/uview-ui/components/u-form-item/u-form-item.vue create mode 100644 uni_modules/uview-ui/components/u-form/props.js create mode 100644 uni_modules/uview-ui/components/u-form/u-form.vue create mode 100644 uni_modules/uview-ui/components/u-gap/props.js create mode 100644 uni_modules/uview-ui/components/u-gap/u-gap.vue create mode 100644 uni_modules/uview-ui/components/u-grid-item/props.js create mode 100644 uni_modules/uview-ui/components/u-grid-item/u-grid-item.vue create mode 100644 uni_modules/uview-ui/components/u-grid/props.js create mode 100644 uni_modules/uview-ui/components/u-grid/u-grid.vue create mode 100644 uni_modules/uview-ui/components/u-icon/icons.js create mode 100644 uni_modules/uview-ui/components/u-icon/props.js create mode 100644 uni_modules/uview-ui/components/u-icon/u-icon.vue create mode 100644 uni_modules/uview-ui/components/u-image/props.js create mode 100644 uni_modules/uview-ui/components/u-image/u-image.vue create mode 100644 uni_modules/uview-ui/components/u-index-anchor/props.js create mode 100644 uni_modules/uview-ui/components/u-index-anchor/u-index-anchor.vue create mode 100644 uni_modules/uview-ui/components/u-index-item/props.js create mode 100644 uni_modules/uview-ui/components/u-index-item/u-index-item.vue create mode 100644 uni_modules/uview-ui/components/u-index-list/props.js create mode 100644 uni_modules/uview-ui/components/u-index-list/u-index-list.vue create mode 100644 uni_modules/uview-ui/components/u-input/props.js create mode 100644 uni_modules/uview-ui/components/u-input/u-input.vue create mode 100644 uni_modules/uview-ui/components/u-keyboard/props.js create mode 100644 uni_modules/uview-ui/components/u-keyboard/u-keyboard.vue create mode 100644 uni_modules/uview-ui/components/u-line-progress/props.js create mode 100644 uni_modules/uview-ui/components/u-line-progress/u-line-progress.vue create mode 100644 uni_modules/uview-ui/components/u-line/props.js create mode 100644 uni_modules/uview-ui/components/u-line/u-line.vue create mode 100644 uni_modules/uview-ui/components/u-link/props.js create mode 100644 uni_modules/uview-ui/components/u-link/u-link.vue create mode 100644 uni_modules/uview-ui/components/u-list-item/props.js create mode 100644 uni_modules/uview-ui/components/u-list-item/u-list-item.vue create mode 100644 uni_modules/uview-ui/components/u-list/props.js create mode 100644 uni_modules/uview-ui/components/u-list/u-list.vue create mode 100644 uni_modules/uview-ui/components/u-loading-icon/props.js create mode 100644 uni_modules/uview-ui/components/u-loading-icon/u-loading-icon.vue create mode 100644 uni_modules/uview-ui/components/u-loading-page/props.js create mode 100644 uni_modules/uview-ui/components/u-loading-page/u-loading-page.vue create mode 100644 uni_modules/uview-ui/components/u-loadmore/props.js create mode 100644 uni_modules/uview-ui/components/u-loadmore/u-loadmore.vue create mode 100644 uni_modules/uview-ui/components/u-modal/props.js create mode 100644 uni_modules/uview-ui/components/u-modal/u-modal.vue create mode 100644 uni_modules/uview-ui/components/u-navbar/props.js create mode 100644 uni_modules/uview-ui/components/u-navbar/u-navbar.vue create mode 100644 uni_modules/uview-ui/components/u-no-network/props.js create mode 100644 uni_modules/uview-ui/components/u-no-network/u-no-network.vue create mode 100644 uni_modules/uview-ui/components/u-notice-bar/props.js create mode 100644 uni_modules/uview-ui/components/u-notice-bar/u-notice-bar.vue create mode 100644 uni_modules/uview-ui/components/u-notify/props.js create mode 100644 uni_modules/uview-ui/components/u-notify/u-notify.vue create mode 100644 uni_modules/uview-ui/components/u-number-box/props.js create mode 100644 uni_modules/uview-ui/components/u-number-box/u-number-box.vue create mode 100644 uni_modules/uview-ui/components/u-number-keyboard/props.js create mode 100644 uni_modules/uview-ui/components/u-number-keyboard/u-number-keyboard.vue create mode 100644 uni_modules/uview-ui/components/u-overlay/props.js create mode 100644 uni_modules/uview-ui/components/u-overlay/u-overlay.vue create mode 100644 uni_modules/uview-ui/components/u-parse/node/node.vue create mode 100644 uni_modules/uview-ui/components/u-parse/parser.js create mode 100644 uni_modules/uview-ui/components/u-parse/props.js create mode 100644 uni_modules/uview-ui/components/u-parse/u-parse.vue create mode 100644 uni_modules/uview-ui/components/u-picker-column/props.js create mode 100644 uni_modules/uview-ui/components/u-picker-column/u-picker-column.vue create mode 100644 uni_modules/uview-ui/components/u-picker/props.js create mode 100644 uni_modules/uview-ui/components/u-picker/u-picker.vue create mode 100644 uni_modules/uview-ui/components/u-popup/props.js create mode 100644 uni_modules/uview-ui/components/u-popup/u-popup.vue create mode 100644 uni_modules/uview-ui/components/u-radio-group/props.js create mode 100644 uni_modules/uview-ui/components/u-radio-group/u-radio-group.vue create mode 100644 uni_modules/uview-ui/components/u-radio/props.js create mode 100644 uni_modules/uview-ui/components/u-radio/u-radio.vue create mode 100644 uni_modules/uview-ui/components/u-rate/props.js create mode 100644 uni_modules/uview-ui/components/u-rate/u-rate.vue create mode 100644 uni_modules/uview-ui/components/u-read-more/props.js create mode 100644 uni_modules/uview-ui/components/u-read-more/u-read-more.vue create mode 100644 uni_modules/uview-ui/components/u-row-notice/props.js create mode 100644 uni_modules/uview-ui/components/u-row-notice/u-row-notice.vue create mode 100644 uni_modules/uview-ui/components/u-row/props.js create mode 100644 uni_modules/uview-ui/components/u-row/u-row.vue create mode 100644 uni_modules/uview-ui/components/u-safe-bottom/props.js create mode 100644 uni_modules/uview-ui/components/u-safe-bottom/u-safe-bottom.vue create mode 100644 uni_modules/uview-ui/components/u-scroll-list/nvue.js create mode 100644 uni_modules/uview-ui/components/u-scroll-list/other.js create mode 100644 uni_modules/uview-ui/components/u-scroll-list/props.js create mode 100644 uni_modules/uview-ui/components/u-scroll-list/scrollWxs.wxs create mode 100644 uni_modules/uview-ui/components/u-scroll-list/u-scroll-list.vue create mode 100644 uni_modules/uview-ui/components/u-search/props.js create mode 100644 uni_modules/uview-ui/components/u-search/u-search.vue create mode 100644 uni_modules/uview-ui/components/u-skeleton/props.js create mode 100644 uni_modules/uview-ui/components/u-skeleton/u-skeleton.vue create mode 100644 uni_modules/uview-ui/components/u-slider/mpother.js create mode 100644 uni_modules/uview-ui/components/u-slider/mpwxs.js create mode 100644 uni_modules/uview-ui/components/u-slider/mpwxs.wxs create mode 100644 uni_modules/uview-ui/components/u-slider/nvue - 副本.js create mode 100644 uni_modules/uview-ui/components/u-slider/nvue.js create mode 100644 uni_modules/uview-ui/components/u-slider/props.js create mode 100644 uni_modules/uview-ui/components/u-slider/u-slider.vue create mode 100644 uni_modules/uview-ui/components/u-status-bar/props.js create mode 100644 uni_modules/uview-ui/components/u-status-bar/u-status-bar.vue create mode 100644 uni_modules/uview-ui/components/u-steps-item/props.js create mode 100644 uni_modules/uview-ui/components/u-steps-item/u-steps-item.vue create mode 100644 uni_modules/uview-ui/components/u-steps/props.js create mode 100644 uni_modules/uview-ui/components/u-steps/u-steps.vue create mode 100644 uni_modules/uview-ui/components/u-sticky/props.js create mode 100644 uni_modules/uview-ui/components/u-sticky/u-sticky.vue create mode 100644 uni_modules/uview-ui/components/u-subsection/props.js create mode 100644 uni_modules/uview-ui/components/u-subsection/u-subsection.vue create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/index - backup.wxs create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/index.wxs create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/nvue - backup.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/nvue.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/props.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/u-swipe-action-item.vue create mode 100644 uni_modules/uview-ui/components/u-swipe-action-item/wxs.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action/props.js create mode 100644 uni_modules/uview-ui/components/u-swipe-action/u-swipe-action.vue create mode 100644 uni_modules/uview-ui/components/u-swiper-indicator/props.js create mode 100644 uni_modules/uview-ui/components/u-swiper-indicator/u-swiper-indicator.vue create mode 100644 uni_modules/uview-ui/components/u-swiper/props.js create mode 100644 uni_modules/uview-ui/components/u-swiper/u-swiper.vue create mode 100644 uni_modules/uview-ui/components/u-switch/props.js create mode 100644 uni_modules/uview-ui/components/u-switch/u-switch.vue create mode 100644 uni_modules/uview-ui/components/u-tabbar-item/props.js create mode 100644 uni_modules/uview-ui/components/u-tabbar-item/u-tabbar-item.vue create mode 100644 uni_modules/uview-ui/components/u-tabbar/props.js create mode 100644 uni_modules/uview-ui/components/u-tabbar/u-tabbar.vue create mode 100644 uni_modules/uview-ui/components/u-table/props.js create mode 100644 uni_modules/uview-ui/components/u-table/u-table.vue create mode 100644 uni_modules/uview-ui/components/u-tabs-item/props.js create mode 100644 uni_modules/uview-ui/components/u-tabs-item/u-tabs-item.vue create mode 100644 uni_modules/uview-ui/components/u-tabs/props.js create mode 100644 uni_modules/uview-ui/components/u-tabs/u-tabs.vue create mode 100644 uni_modules/uview-ui/components/u-tag/props.js create mode 100644 uni_modules/uview-ui/components/u-tag/u-tag.vue create mode 100644 uni_modules/uview-ui/components/u-td/props.js create mode 100644 uni_modules/uview-ui/components/u-td/u-td.vue create mode 100644 uni_modules/uview-ui/components/u-text/props.js create mode 100644 uni_modules/uview-ui/components/u-text/u-text.vue create mode 100644 uni_modules/uview-ui/components/u-text/value.js create mode 100644 uni_modules/uview-ui/components/u-textarea/props.js create mode 100644 uni_modules/uview-ui/components/u-textarea/u-textarea.vue create mode 100644 uni_modules/uview-ui/components/u-toast/u-toast.vue create mode 100644 uni_modules/uview-ui/components/u-toolbar/props.js create mode 100644 uni_modules/uview-ui/components/u-toolbar/u-toolbar.vue create mode 100644 uni_modules/uview-ui/components/u-tooltip/clipboard.min.js create mode 100644 uni_modules/uview-ui/components/u-tooltip/props.js create mode 100644 uni_modules/uview-ui/components/u-tooltip/u-tooltip.vue create mode 100644 uni_modules/uview-ui/components/u-tr/props.js create mode 100644 uni_modules/uview-ui/components/u-tr/u-tr.vue create mode 100644 uni_modules/uview-ui/components/u-transition/nvue.ani-map.js create mode 100644 uni_modules/uview-ui/components/u-transition/props.js create mode 100644 uni_modules/uview-ui/components/u-transition/transition.js create mode 100644 uni_modules/uview-ui/components/u-transition/u-transition.vue create mode 100644 uni_modules/uview-ui/components/u-transition/vue.ani-style.scss create mode 100644 uni_modules/uview-ui/components/u-upload/mixin.js create mode 100644 uni_modules/uview-ui/components/u-upload/props.js create mode 100644 uni_modules/uview-ui/components/u-upload/u-upload.vue create mode 100644 uni_modules/uview-ui/components/u-upload/utils.js create mode 100644 uni_modules/uview-ui/components/uview-ui/uview-ui.vue create mode 100644 uni_modules/uview-ui/index.js create mode 100644 uni_modules/uview-ui/index.scss create mode 100644 uni_modules/uview-ui/libs/config/color.js create mode 100644 uni_modules/uview-ui/libs/config/config.js create mode 100644 uni_modules/uview-ui/libs/config/props.js create mode 100644 uni_modules/uview-ui/libs/config/props/actionSheet.js create mode 100644 uni_modules/uview-ui/libs/config/props/album.js create mode 100644 uni_modules/uview-ui/libs/config/props/alert.js create mode 100644 uni_modules/uview-ui/libs/config/props/avatar.js create mode 100644 uni_modules/uview-ui/libs/config/props/avatarGroup.js create mode 100644 uni_modules/uview-ui/libs/config/props/backtop.js create mode 100644 uni_modules/uview-ui/libs/config/props/badge.js create mode 100644 uni_modules/uview-ui/libs/config/props/button.js create mode 100644 uni_modules/uview-ui/libs/config/props/calendar.js create mode 100644 uni_modules/uview-ui/libs/config/props/carKeyboard.js create mode 100644 uni_modules/uview-ui/libs/config/props/cell.js create mode 100644 uni_modules/uview-ui/libs/config/props/cellGroup.js create mode 100644 uni_modules/uview-ui/libs/config/props/checkbox.js create mode 100644 uni_modules/uview-ui/libs/config/props/checkboxGroup.js create mode 100644 uni_modules/uview-ui/libs/config/props/circleProgress.js create mode 100644 uni_modules/uview-ui/libs/config/props/code.js create mode 100644 uni_modules/uview-ui/libs/config/props/codeInput.js create mode 100644 uni_modules/uview-ui/libs/config/props/col.js create mode 100644 uni_modules/uview-ui/libs/config/props/collapse.js create mode 100644 uni_modules/uview-ui/libs/config/props/collapseItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/columnNotice.js create mode 100644 uni_modules/uview-ui/libs/config/props/countDown.js create mode 100644 uni_modules/uview-ui/libs/config/props/countTo.js create mode 100644 uni_modules/uview-ui/libs/config/props/datetimePicker.js create mode 100644 uni_modules/uview-ui/libs/config/props/divider.js create mode 100644 uni_modules/uview-ui/libs/config/props/empty.js create mode 100644 uni_modules/uview-ui/libs/config/props/form.js create mode 100644 uni_modules/uview-ui/libs/config/props/formItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/gap.js create mode 100644 uni_modules/uview-ui/libs/config/props/grid.js create mode 100644 uni_modules/uview-ui/libs/config/props/gridItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/icon.js create mode 100644 uni_modules/uview-ui/libs/config/props/image.js create mode 100644 uni_modules/uview-ui/libs/config/props/indexAnchor.js create mode 100644 uni_modules/uview-ui/libs/config/props/indexList.js create mode 100644 uni_modules/uview-ui/libs/config/props/input.js create mode 100644 uni_modules/uview-ui/libs/config/props/keyboard.js create mode 100644 uni_modules/uview-ui/libs/config/props/line.js create mode 100644 uni_modules/uview-ui/libs/config/props/lineProgress.js create mode 100644 uni_modules/uview-ui/libs/config/props/link.js create mode 100644 uni_modules/uview-ui/libs/config/props/list.js create mode 100644 uni_modules/uview-ui/libs/config/props/listItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/loadingIcon.js create mode 100644 uni_modules/uview-ui/libs/config/props/loadingPage.js create mode 100644 uni_modules/uview-ui/libs/config/props/loadmore.js create mode 100644 uni_modules/uview-ui/libs/config/props/modal.js create mode 100644 uni_modules/uview-ui/libs/config/props/navbar.js create mode 100644 uni_modules/uview-ui/libs/config/props/noNetwork.js create mode 100644 uni_modules/uview-ui/libs/config/props/noticeBar.js create mode 100644 uni_modules/uview-ui/libs/config/props/notify.js create mode 100644 uni_modules/uview-ui/libs/config/props/numberBox.js create mode 100644 uni_modules/uview-ui/libs/config/props/numberKeyboard.js create mode 100644 uni_modules/uview-ui/libs/config/props/overlay.js create mode 100644 uni_modules/uview-ui/libs/config/props/parse.js create mode 100644 uni_modules/uview-ui/libs/config/props/picker.js create mode 100644 uni_modules/uview-ui/libs/config/props/popup.js create mode 100644 uni_modules/uview-ui/libs/config/props/radio.js create mode 100644 uni_modules/uview-ui/libs/config/props/radioGroup.js create mode 100644 uni_modules/uview-ui/libs/config/props/rate.js create mode 100644 uni_modules/uview-ui/libs/config/props/readMore.js create mode 100644 uni_modules/uview-ui/libs/config/props/row.js create mode 100644 uni_modules/uview-ui/libs/config/props/rowNotice.js create mode 100644 uni_modules/uview-ui/libs/config/props/scrollList.js create mode 100644 uni_modules/uview-ui/libs/config/props/search.js create mode 100644 uni_modules/uview-ui/libs/config/props/section.js create mode 100644 uni_modules/uview-ui/libs/config/props/skeleton.js create mode 100644 uni_modules/uview-ui/libs/config/props/slider.js create mode 100644 uni_modules/uview-ui/libs/config/props/statusBar.js create mode 100644 uni_modules/uview-ui/libs/config/props/steps.js create mode 100644 uni_modules/uview-ui/libs/config/props/stepsItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/sticky.js create mode 100644 uni_modules/uview-ui/libs/config/props/subsection.js create mode 100644 uni_modules/uview-ui/libs/config/props/swipeAction.js create mode 100644 uni_modules/uview-ui/libs/config/props/swipeActionItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/swiper.js create mode 100644 uni_modules/uview-ui/libs/config/props/swipterIndicator.js create mode 100644 uni_modules/uview-ui/libs/config/props/switch.js create mode 100644 uni_modules/uview-ui/libs/config/props/tabbar.js create mode 100644 uni_modules/uview-ui/libs/config/props/tabbarItem.js create mode 100644 uni_modules/uview-ui/libs/config/props/tabs.js create mode 100644 uni_modules/uview-ui/libs/config/props/tag.js create mode 100644 uni_modules/uview-ui/libs/config/props/text.js create mode 100644 uni_modules/uview-ui/libs/config/props/textarea.js create mode 100644 uni_modules/uview-ui/libs/config/props/toast.js create mode 100644 uni_modules/uview-ui/libs/config/props/toolbar.js create mode 100644 uni_modules/uview-ui/libs/config/props/tooltip.js create mode 100644 uni_modules/uview-ui/libs/config/props/transition.js create mode 100644 uni_modules/uview-ui/libs/config/props/upload.js create mode 100644 uni_modules/uview-ui/libs/config/zIndex.js create mode 100644 uni_modules/uview-ui/libs/css/color.scss create mode 100644 uni_modules/uview-ui/libs/css/common.scss create mode 100644 uni_modules/uview-ui/libs/css/components.scss create mode 100644 uni_modules/uview-ui/libs/css/flex.scss create mode 100644 uni_modules/uview-ui/libs/css/h5.scss create mode 100644 uni_modules/uview-ui/libs/css/mixin.scss create mode 100644 uni_modules/uview-ui/libs/css/mp.scss create mode 100644 uni_modules/uview-ui/libs/css/nvue.scss create mode 100644 uni_modules/uview-ui/libs/css/vue.scss create mode 100644 uni_modules/uview-ui/libs/function/colorGradient.js create mode 100644 uni_modules/uview-ui/libs/function/debounce.js create mode 100644 uni_modules/uview-ui/libs/function/digit.js create mode 100644 uni_modules/uview-ui/libs/function/index.js create mode 100644 uni_modules/uview-ui/libs/function/platform.js create mode 100644 uni_modules/uview-ui/libs/function/test.js create mode 100644 uni_modules/uview-ui/libs/function/throttle.js create mode 100644 uni_modules/uview-ui/libs/luch-request/adapters/index.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/InterceptorManager.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/Request.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/buildFullPath.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/defaults.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/dispatchRequest.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/mergeConfig.js create mode 100644 uni_modules/uview-ui/libs/luch-request/core/settle.js create mode 100644 uni_modules/uview-ui/libs/luch-request/helpers/buildURL.js create mode 100644 uni_modules/uview-ui/libs/luch-request/helpers/combineURLs.js create mode 100644 uni_modules/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js create mode 100644 uni_modules/uview-ui/libs/luch-request/index.d.ts create mode 100644 uni_modules/uview-ui/libs/luch-request/index.js create mode 100644 uni_modules/uview-ui/libs/luch-request/utils.js create mode 100644 uni_modules/uview-ui/libs/luch-request/utils/clone.js create mode 100644 uni_modules/uview-ui/libs/mixin/button.js create mode 100644 uni_modules/uview-ui/libs/mixin/mixin.js create mode 100644 uni_modules/uview-ui/libs/mixin/mpMixin.js create mode 100644 uni_modules/uview-ui/libs/mixin/mpShare.js create mode 100644 uni_modules/uview-ui/libs/mixin/openType.js create mode 100644 uni_modules/uview-ui/libs/mixin/style.js create mode 100644 uni_modules/uview-ui/libs/mixin/touch.js create mode 100644 uni_modules/uview-ui/libs/util/async-validator.js create mode 100644 uni_modules/uview-ui/libs/util/calendar.js create mode 100644 uni_modules/uview-ui/libs/util/dayjs.js create mode 100644 uni_modules/uview-ui/libs/util/emitter.js create mode 100644 uni_modules/uview-ui/libs/util/route.js create mode 100644 uni_modules/uview-ui/package.json create mode 100644 uni_modules/uview-ui/theme.scss create mode 100644 uni_modules/zero-markdown-view/changelog.md create mode 100644 uni_modules/zero-markdown-view/components/mp-html/highlight/config.js create mode 100644 uni_modules/zero-markdown-view/components/mp-html/highlight/index.js create mode 100644 uni_modules/zero-markdown-view/components/mp-html/highlight/prism.min.js create mode 100644 uni_modules/zero-markdown-view/components/mp-html/markdown/index.js create mode 100644 uni_modules/zero-markdown-view/components/mp-html/markdown/marked.min.js create mode 100644 uni_modules/zero-markdown-view/components/mp-html/mp-html.vue create mode 100644 uni_modules/zero-markdown-view/components/mp-html/node/node.vue create mode 100644 uni_modules/zero-markdown-view/components/mp-html/parser.js create mode 100644 uni_modules/zero-markdown-view/components/mp-html/style/index.js create mode 100644 uni_modules/zero-markdown-view/components/mp-html/style/parser.js create mode 100644 uni_modules/zero-markdown-view/components/zero-markdown-view/zero-markdown-view.vue create mode 100644 uni_modules/zero-markdown-view/package.json create mode 100644 uni_modules/zero-markdown-view/readme.md create mode 100644 userPages/components/BalanceFilter.vue create mode 100644 userPages/pages/ai.vue create mode 100644 userPages/pages/cal.vue create mode 100644 userPages/pages/calDetail.vue create mode 100644 userPages/pages/manual.vue create mode 100644 userPages/pages/profile.vue create mode 100644 userPages/pages/userData.vue create mode 100644 userPages/pages/userFeedback.vue create mode 100644 userPages/pages/userLawCheck.vue create mode 100644 userPages/static/coupon.png create mode 100644 userPages/static/gender.png create mode 100644 userPages/static/id-card.png create mode 100644 userPages/static/payPwd/change-pwd.png create mode 100644 userPages/static/payPwd/code.png create mode 100644 userPages/static/payPwd/find-pwd.png create mode 100644 userPages/static/payPwd/hide.png create mode 100644 userPages/static/payPwd/phone.png create mode 100644 userPages/static/payPwd/pwd.png create mode 100644 userPages/static/payPwd/set-pwd.png create mode 100644 userPages/static/payPwd/show.png create mode 100644 userPages/static/payPwd/success.png create mode 100644 userPages/static/payPwd/top.png create mode 100644 userPages/static/phone_0.png create mode 100644 userPages/static/phone_1.png create mode 100644 userPages/static/phone_2.png create mode 100644 userPages/static/rank_0.png create mode 100644 userPages/static/rank_1.png create mode 100644 userPages/static/rank_2.png create mode 100644 userPages/static/student_card.png create mode 100644 util/index.js create mode 100644 util/order.js create mode 100644 util/user.js diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..f6c060c --- /dev/null +++ b/App.vue @@ -0,0 +1,40 @@ + + + \ No newline at end of file diff --git a/api/common.js b/api/common.js new file mode 100644 index 0000000..0ec617d --- /dev/null +++ b/api/common.js @@ -0,0 +1,35 @@ +import post, {get} from "@/api/request"; + +export const areaListReq = data => post('/area/list-by-level', data) + +export const areaInfoReq = data => post('/area/info', data) + +export const areaInfoByNameReq = data => post('/area/info-by-name', data) + +export const indexListReq = data => post('/com/publish-list/list', data) + +export const swiperListReq = () => get('/sys/sys-swiper') + +export const communityListReq = data => post('/community/list', data) + +export const dictListReq = data => post('/system/dict/info', data) + +export const addViewNumReq = data => post('/shop/user-browse/add', data) + +export const sysSettingInfoReq = data => post('/sys', data) + +export const dictDataReq = data => post('/system/dict-data/list-by-dict', data) + +export const listArticleReq = params => get('/cms/article', {params}) + +export const articleInfoReq = data => post('/cms/article/info', data) + +export const articleCateReq = params => get('/cms/article-category', {params}) + +export const feedbackReq = data => post('/law/law-feedback', data) + +export const listFeedbackReq = () => get('/law/law-feedback') + +export const listLegalCalTypeReq = () => get('/law/law-legal-cal-type') + +export const listLawLegalCalConfig = params => get(`/law/law-legal-cal-config`, {params}) \ No newline at end of file diff --git a/api/lawOrg.js b/api/lawOrg.js new file mode 100644 index 0000000..9bca8d2 --- /dev/null +++ b/api/lawOrg.js @@ -0,0 +1,11 @@ +import post, {get} from "@/api/request"; + +export const listLawOrgReq = params => get('/law/law-org', {params}) + +export const listLawOrgPeopleReq = params => get('/law/law-org-people', {params}) +export const lawOrgCheckActionReq = data => post('/law/law-org-check-log', data) +export const lawLegalAidReq = data => post('/law/law-legal-aid', data) +export const sendChatReq = data => post('/chat/message', data) +export const stopChatReq = data => post('/chat/messageStop', data) +export const lawLegalArbitrateReq = data => post('/law/law-legal-arbitrate', data) +export const lawLegalAppraisalReq = data => post('/law/law-legal-appraisal', data) diff --git a/api/legalDoc.js b/api/legalDoc.js new file mode 100644 index 0000000..9f53ed3 --- /dev/null +++ b/api/legalDoc.js @@ -0,0 +1,7 @@ +import post, {get} from "@/api/request"; + +export const listLegalDocTypeReq = () => get('/law/law-legal-doc-type') +export const legalDocTypeInfoReq = (id) => get(`/law/law-legal-doc-type/${id}`) +export const legalDocConfigReq = params => get('/law/law-legal-doc-config', {params}) +export const legalDocMakeReq = data => post('/law/law-legal-doc-config/make', data) +export const legalDocSendEmailReq = data => post('/law/law-legal-doc-config/send-email', data) diff --git a/api/legalOrgCheck.js b/api/legalOrgCheck.js new file mode 100644 index 0000000..5a5f644 --- /dev/null +++ b/api/legalOrgCheck.js @@ -0,0 +1,8 @@ +import post, {get, put} from "@/api/request"; + +export const listLegalOrgCheckTypeReq = () => get('/law/law-legal-org-check-type') +export const listLegalOrgCheckTypeInfoReq = (id) => get(`/law/law-legal-org-check-type/${id}`) +export const listLegalOrgCheckConfigReq = params => get('/law/law-legal-org-check-config', {params}) +export const addLegalOrgCheckContentReq = data => post('/law/law-legal-org-check-content', data) +export const updateLegalOrgCheckContentReq = data => post('/law/law-legal-org-check-content/update', data) +export const listLegalOrgCheckContentReq = () => get('/law/law-legal-org-check-content') \ No newline at end of file diff --git a/api/legalOrgCheckSuggest.js b/api/legalOrgCheckSuggest.js new file mode 100644 index 0000000..6ad0298 --- /dev/null +++ b/api/legalOrgCheckSuggest.js @@ -0,0 +1,7 @@ +import post, {get, put} from "@/api/request"; + +export const listLegalOrgCheckTypeSuggestReq = () => get('/law/law-legal-org-check-type-suggest') +export const listLegalOrgCheckTypeSuggestInfoReq = (id) => get(`/law/law-legal-org-check-type-suggest/${id}`) +export const listLegalOrgCheckSuggestConfigReq = params => get('/law/law-legal-org-check-config-suggest', {params}) +export const addLegalOrgCheckContentSuggestReq = data => post('/law/law-legal-org-check-content-suggest', data) +export const updateLegalOrgCheckContentSuggestReq = data => put('/law/law-legal-org-check-content-suggest', data) \ No newline at end of file diff --git a/api/notary.js b/api/notary.js new file mode 100644 index 0000000..ffcea07 --- /dev/null +++ b/api/notary.js @@ -0,0 +1,4 @@ +import post, {get} from "@/api/request"; + +export const listNotaryConfigReq = () => get('/law/law-notary-config') +export const notaryActionReq = data => post('/law/law-notary-list', data) \ No newline at end of file diff --git a/api/request.js b/api/request.js new file mode 100644 index 0000000..aceb4f3 --- /dev/null +++ b/api/request.js @@ -0,0 +1,96 @@ +import Request from '@/js_sdk/luch-request/luch-request/index.js' +import {API} from '@/config' +import {getUserInfo, clearUserInfo} from "@/util/user"; + +const http = new Request(); +http.config.baseURL = API + +http.interceptors.request.use((config) => { + // uni.showLoading({title: '加载中'}) + const token = getUserInfo().token + if (token && token !== 'undefined') { + config.header.Authorization = token + } + config.header.tenantId = 10049 + return config +}, config => { + return Promise.reject(config) +}) + +http.interceptors.response.use((response) => { + const url = response.config.url + // uni.hideLoading() + switch (parseInt(response.data.code)) { + case 401: { + if (['user-cart-num', 'new-order', 'user-cart-add', 'user-info'].indexOf(url) === -1) { + uni.showToast({ + title: '请登录', + icon: 'error', + duration: 2000, + }) + setTimeout(() => { + clearUserInfo() + }, 2000) + } + } + break; + case 500: { + if (['/user/change-pay-password', 'new-order-from-goods-list'].indexOf(url) === -1) { + console.log(response.data) + uni.showToast({ + icon: 'none', + title: response.data.content.msg, + duration: 2000, + }) + } + } + break; + case 502: { + uni.showToast({ + icon: 'error', + title: '系统维护中', + duration: 2000, + }) + } + } + return response +}, (error) => { + if (error.code === 502) { + uni.showToast({ + icon: 'error', + title: '系统维护中', + duration: 2000, + }) + } + return Promise.reject(error) +}) + +const post = (url, formData, options) => { + return new Promise((resolve, reject) => { + http.post(url, formData, options).then(res => { + if (res.data.code === 0) resolve(res.data) + else if (res.data.code === 401) reject(res.data) + else reject(res.data) + }) + }) +} + +export const get = (url, options) => { + return new Promise((resolve, reject) => { + http.get(url, options).then(res => { + resolve(res.data) + }) + }) +} + +export const put = (url, formData, options) => { + return new Promise((resolve, reject) => { + http.put(url, formData, options).then(res => { + if (res.data.code === 0) resolve(res.data) + else if (res.data.code === 401) reject(res.data) + else reject(res.data) + }) + }) +} + +export default post \ No newline at end of file diff --git a/api/user.js b/api/user.js new file mode 100644 index 0000000..5c7259c --- /dev/null +++ b/api/user.js @@ -0,0 +1,21 @@ +import post from "@/api/request"; + +export const loginReq = data => post('/shop/wx-login/getOpenId', data) + +export const loginByPhoneReq = data => post('/login-by-phone', data) + +export const userInfoReq = data => post('/system/user/info', data) + +export const userInfoUpdateReq = data => post('/system/user/update', data) + +export const userInfoUpdateDataReq = data => post('/system/user/update-data', data) + +export const userSearchReq = data => post('/user/search', data) + +export const userSetCardReq = data => post('/user/set-card', data) + +export const userCardChargeReq = data => post('/user/card-charge', data) + +export const userCardReduceReq = data => post('/user/card-reduce', data) + +export const userCardUseReq = data => post('/user/card-use', data) diff --git a/articlePages/pages/feedback.vue b/articlePages/pages/feedback.vue new file mode 100644 index 0000000..8e4765c --- /dev/null +++ b/articlePages/pages/feedback.vue @@ -0,0 +1,134 @@ + + + \ No newline at end of file diff --git a/articlePages/pages/info.vue b/articlePages/pages/info.vue new file mode 100644 index 0000000..a9728b2 --- /dev/null +++ b/articlePages/pages/info.vue @@ -0,0 +1,47 @@ + + + \ No newline at end of file diff --git a/articlePages/pages/list.vue b/articlePages/pages/list.vue new file mode 100644 index 0000000..e051cdd --- /dev/null +++ b/articlePages/pages/list.vue @@ -0,0 +1,45 @@ + + + \ No newline at end of file diff --git a/articlePages/pages/publicity.vue b/articlePages/pages/publicity.vue new file mode 100644 index 0000000..5eb124b --- /dev/null +++ b/articlePages/pages/publicity.vue @@ -0,0 +1,91 @@ + + + + + \ No newline at end of file diff --git a/articlePages/pages/search.vue b/articlePages/pages/search.vue new file mode 100644 index 0000000..6451fa2 --- /dev/null +++ b/articlePages/pages/search.vue @@ -0,0 +1,96 @@ + + + + + + \ No newline at end of file diff --git a/components/HeaderItem.vue b/components/HeaderItem.vue new file mode 100644 index 0000000..843e363 --- /dev/null +++ b/components/HeaderItem.vue @@ -0,0 +1,41 @@ + + + \ No newline at end of file diff --git a/components/Login.vue b/components/Login.vue new file mode 100644 index 0000000..b7ae407 --- /dev/null +++ b/components/Login.vue @@ -0,0 +1,150 @@ + + + diff --git a/components/TitleItem.vue b/components/TitleItem.vue new file mode 100644 index 0000000..3abe6ac --- /dev/null +++ b/components/TitleItem.vue @@ -0,0 +1,18 @@ + + + \ No newline at end of file diff --git a/components/customTabbar.vue b/components/customTabbar.vue new file mode 100644 index 0000000..58f46ce --- /dev/null +++ b/components/customTabbar.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/config/color.js b/config/color.js new file mode 100644 index 0000000..1a28d32 --- /dev/null +++ b/config/color.js @@ -0,0 +1,18 @@ +export const YELLOW = '#e2d602' +export const ORANGE = '#fd7600' +export const ORANGE_LIGHT = '#FEEDA8' +export const GREEN = '#2ACF8D' +export const GREEN_LIGHT = '#96b0a3' +export const BLUE = '#2665c4' +export const BLUE_LIGHT = '#049DFF' +export const RED = '#FE6869' +export const RED_LIGHT = '#F7B2B2' +export const PURPLE = '#7F6CDE' +export const PINK = '#FE5397' +export const PURPLE_DARK = '#7F6CDE' +export const PUBLISH = '#FDCB05' +export const GRAY = '#999' +export const PURPLE_LIGHT = '#7F6CDE' + +export const MAIN = BLUE +export const LINEAR = 'linear-gradient(90deg, #049DFF, #2665c4)' diff --git a/config/index.js b/config/index.js new file mode 100644 index 0000000..44180fd --- /dev/null +++ b/config/index.js @@ -0,0 +1,23 @@ +const MAIN_API_FN = () => { + if (process.env.NODE_ENV === 'development') { + return 'http://127.0.0.1:10051' + // return 'https://sifa-api.wsdns.cn' + } else { + return 'https://sifa-api.wsdns.cn' + } +} + +const MAIN_WS_FN = () => { + if (process.env.NODE_ENV === 'development') { + // return 'ws://127.0.0.1:10051/chat' + return 'wss://sifa-api.wsdns.cn/chat' + } else { + return 'wss://sifa-api.wsdns.cn/chat' + } +} + +export const MAIN_API = MAIN_API_FN() + +export const WS_API = MAIN_WS_FN() + +export const API = `${MAIN_API}/api` diff --git a/index.html b/index.html new file mode 100644 index 0000000..c3ff205 --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + + diff --git a/js_sdk/luch-request/luch-request/adapters/index.js b/js_sdk/luch-request/luch-request/adapters/index.js new file mode 100644 index 0000000..9bcd653 --- /dev/null +++ b/js_sdk/luch-request/luch-request/adapters/index.js @@ -0,0 +1,100 @@ +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, config.paramsSerializer) + const _config = { + url: fullPath, + header: config.header, + complete: (response) => { + config.fullPath = fullPath + response.config = config + response.rawData = response.data + 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/js_sdk/luch-request/luch-request/core/InterceptorManager.js b/js_sdk/luch-request/luch-request/core/InterceptorManager.js new file mode 100644 index 0000000..3ea0d5e --- /dev/null +++ b/js_sdk/luch-request/luch-request/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/js_sdk/luch-request/luch-request/core/Request.js b/js_sdk/luch-request/luch-request/core/Request.js new file mode 100644 index 0000000..d11f152 --- /dev/null +++ b/js_sdk/luch-request/luch-request/core/Request.js @@ -0,0 +1,197 @@ +/** + * @Class Request + * @description luch-request http请求插件 + * @Author lu-ch + * @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 + */ + + +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 || MP-KUAISHOU || MP-JD + 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/js_sdk/luch-request/luch-request/core/buildFullPath.js b/js_sdk/luch-request/luch-request/core/buildFullPath.js new file mode 100644 index 0000000..f2852f4 --- /dev/null +++ b/js_sdk/luch-request/luch-request/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/js_sdk/luch-request/luch-request/core/defaults.js b/js_sdk/luch-request/luch-request/core/defaults.js new file mode 100644 index 0000000..ef5a0d9 --- /dev/null +++ b/js_sdk/luch-request/luch-request/core/defaults.js @@ -0,0 +1,31 @@ +/** + * 默认的全局配置 + */ + + +export default { + baseURL: '', + header: {}, + method: 'GET', + dataType: 'json', + paramsSerializer: null, + // #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/js_sdk/luch-request/luch-request/core/dispatchRequest.js b/js_sdk/luch-request/luch-request/core/dispatchRequest.js new file mode 100644 index 0000000..c5f2c85 --- /dev/null +++ b/js_sdk/luch-request/luch-request/core/dispatchRequest.js @@ -0,0 +1,6 @@ +import adapter from '../adapters/index' + + +export default (config) => { + return adapter(config) +} diff --git a/js_sdk/luch-request/luch-request/core/mergeConfig.js b/js_sdk/luch-request/luch-request/core/mergeConfig.js new file mode 100644 index 0000000..ca3f10c --- /dev/null +++ b/js_sdk/luch-request/luch-request/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: config2.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', 'paramsSerializer'] + 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/js_sdk/luch-request/luch-request/core/settle.js b/js_sdk/luch-request/luch-request/core/settle.js new file mode 100644 index 0000000..b2f1659 --- /dev/null +++ b/js_sdk/luch-request/luch-request/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/js_sdk/luch-request/luch-request/helpers/buildURL.js b/js_sdk/luch-request/luch-request/helpers/buildURL.js new file mode 100644 index 0000000..e90b908 --- /dev/null +++ b/js_sdk/luch-request/luch-request/helpers/buildURL.js @@ -0,0 +1,64 @@ +'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, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url + } + + var serializedParams + if (paramsSerializer) { + serializedParams = paramsSerializer(params) + } else 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/js_sdk/luch-request/luch-request/helpers/combineURLs.js b/js_sdk/luch-request/luch-request/helpers/combineURLs.js new file mode 100644 index 0000000..7b9d1ef --- /dev/null +++ b/js_sdk/luch-request/luch-request/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/js_sdk/luch-request/luch-request/helpers/isAbsoluteURL.js b/js_sdk/luch-request/luch-request/helpers/isAbsoluteURL.js new file mode 100644 index 0000000..2a82517 --- /dev/null +++ b/js_sdk/luch-request/luch-request/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/js_sdk/luch-request/luch-request/index.d.ts b/js_sdk/luch-request/luch-request/index.d.ts new file mode 100644 index 0000000..e56ee41 --- /dev/null +++ b/js_sdk/luch-request/luch-request/index.d.ts @@ -0,0 +1,120 @@ +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; + /** params 参数自定义处理 */ + paramsSerializer?: (params: AnyObject) => string | void; +} +export interface HttpResponse { + config: HttpRequestConfig; + statusCode: number; + cookies: Array; + data: T; + errMsg: string; + header: AnyObject; + rawData: T; +} +export interface HttpUploadResponse { + config: HttpRequestConfig; + statusCode: number; + data: T; + errMsg: string; + rawData: T; +} +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/js_sdk/luch-request/luch-request/index.js b/js_sdk/luch-request/luch-request/index.js new file mode 100644 index 0000000..d8fe348 --- /dev/null +++ b/js_sdk/luch-request/luch-request/index.js @@ -0,0 +1,2 @@ +import Request from './core/Request' +export default Request diff --git a/js_sdk/luch-request/luch-request/utils.js b/js_sdk/luch-request/luch-request/utils.js new file mode 100644 index 0000000..0b5bf21 --- /dev/null +++ b/js_sdk/luch-request/luch-request/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/js_sdk/luch-request/luch-request/utils/clone.js b/js_sdk/luch-request/luch-request/utils/clone.js new file mode 100644 index 0000000..2fee704 --- /dev/null +++ b/js_sdk/luch-request/luch-request/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/js_sdk/luch-request/package.json b/js_sdk/luch-request/package.json new file mode 100644 index 0000000..78ad4eb --- /dev/null +++ b/js_sdk/luch-request/package.json @@ -0,0 +1,19 @@ +{ + "id": "luch-request", + "displayName": "luch-request", + "version": "3.0.8", + "description": "基于Promise开发的跨平台、项目级别的请求库,它有更小的体积,易用的api,方便简单的自定义能力", + "keywords": [ + "request", + "axios", + "网络请求", + "拦截器", + "promise" + ], + "dcloudext": { + "category": [ + "JS SDK", + "通用 SDK" + ] + } +} \ No newline at end of file diff --git a/js_sdk/qqmap-wx-jssdk/qqmap-wx-jssdk.js b/js_sdk/qqmap-wx-jssdk/qqmap-wx-jssdk.js new file mode 100644 index 0000000..595b65b --- /dev/null +++ b/js_sdk/qqmap-wx-jssdk/qqmap-wx-jssdk.js @@ -0,0 +1,1122 @@ +/** + * 微信小程序JavaScriptSDK + * + * @version 1.2 + * @date 2019-03-06 + */ + +var ERROR_CONF = { + KEY_ERR: 311, + KEY_ERR_MSG: 'key格式错误', + PARAM_ERR: 310, + PARAM_ERR_MSG: '请求参数信息有误', + SYSTEM_ERR: 600, + SYSTEM_ERR_MSG: '系统错误', + WX_ERR_CODE: 1000, + WX_OK_CODE: 200 +}; +var BASE_URL = 'https://apis.map.qq.com/ws/'; +var URL_SEARCH = BASE_URL + 'place/v1/search'; +var URL_SUGGESTION = BASE_URL + 'place/v1/suggestion'; +var URL_GET_GEOCODER = BASE_URL + 'geocoder/v1/'; +var URL_CITY_LIST = BASE_URL + 'district/v1/list'; +var URL_AREA_LIST = BASE_URL + 'district/v1/getchildren'; +var URL_DISTANCE = BASE_URL + 'distance/v1/'; +var URL_DIRECTION = BASE_URL + 'direction/v1/'; +var MODE = { + driving: 'driving', + transit: 'transit' +}; +var EARTH_RADIUS = 6378136.49; +var Utils = { + /** + * md5加密方法 + * 版权所有©2011 Sebastian Tschan,https://blueimp.net + */ + safeAdd(x, y) { + var lsw = (x & 0xffff) + (y & 0xffff); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xffff); + }, + bitRotateLeft(num, cnt) { + return (num << cnt) | (num >>> (32 - cnt)); + }, + md5cmn(q, a, b, x, s, t) { + return this.safeAdd(this.bitRotateLeft(this.safeAdd(this.safeAdd(a, q), this.safeAdd(x, t)), s), b); + }, + md5ff(a, b, c, d, x, s, t) { + return this.md5cmn((b & c) | (~b & d), a, b, x, s, t); + }, + md5gg(a, b, c, d, x, s, t) { + return this.md5cmn((b & d) | (c & ~d), a, b, x, s, t); + }, + md5hh(a, b, c, d, x, s, t) { + return this.md5cmn(b ^ c ^ d, a, b, x, s, t); + }, + md5ii(a, b, c, d, x, s, t) { + return this.md5cmn(c ^ (b | ~d), a, b, x, s, t); + }, + binlMD5(x, len) { + /* append padding */ + x[len >> 5] |= 0x80 << (len % 32); + x[((len + 64) >>> 9 << 4) + 14] = len; + + var i; + var olda; + var oldb; + var oldc; + var oldd; + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + + for (i = 0; i < x.length; i += 16) { + olda = a; + oldb = b; + oldc = c; + oldd = d; + + a = this.md5ff(a, b, c, d, x[i], 7, -680876936); + d = this.md5ff(d, a, b, c, x[i + 1], 12, -389564586); + c = this.md5ff(c, d, a, b, x[i + 2], 17, 606105819); + b = this.md5ff(b, c, d, a, x[i + 3], 22, -1044525330); + a = this.md5ff(a, b, c, d, x[i + 4], 7, -176418897); + d = this.md5ff(d, a, b, c, x[i + 5], 12, 1200080426); + c = this.md5ff(c, d, a, b, x[i + 6], 17, -1473231341); + b = this.md5ff(b, c, d, a, x[i + 7], 22, -45705983); + a = this.md5ff(a, b, c, d, x[i + 8], 7, 1770035416); + d = this.md5ff(d, a, b, c, x[i + 9], 12, -1958414417); + c = this.md5ff(c, d, a, b, x[i + 10], 17, -42063); + b = this.md5ff(b, c, d, a, x[i + 11], 22, -1990404162); + a = this.md5ff(a, b, c, d, x[i + 12], 7, 1804603682); + d = this.md5ff(d, a, b, c, x[i + 13], 12, -40341101); + c = this.md5ff(c, d, a, b, x[i + 14], 17, -1502002290); + b = this.md5ff(b, c, d, a, x[i + 15], 22, 1236535329); + + a = this.md5gg(a, b, c, d, x[i + 1], 5, -165796510); + d = this.md5gg(d, a, b, c, x[i + 6], 9, -1069501632); + c = this.md5gg(c, d, a, b, x[i + 11], 14, 643717713); + b = this.md5gg(b, c, d, a, x[i], 20, -373897302); + a = this.md5gg(a, b, c, d, x[i + 5], 5, -701558691); + d = this.md5gg(d, a, b, c, x[i + 10], 9, 38016083); + c = this.md5gg(c, d, a, b, x[i + 15], 14, -660478335); + b = this.md5gg(b, c, d, a, x[i + 4], 20, -405537848); + a = this.md5gg(a, b, c, d, x[i + 9], 5, 568446438); + d = this.md5gg(d, a, b, c, x[i + 14], 9, -1019803690); + c = this.md5gg(c, d, a, b, x[i + 3], 14, -187363961); + b = this.md5gg(b, c, d, a, x[i + 8], 20, 1163531501); + a = this.md5gg(a, b, c, d, x[i + 13], 5, -1444681467); + d = this.md5gg(d, a, b, c, x[i + 2], 9, -51403784); + c = this.md5gg(c, d, a, b, x[i + 7], 14, 1735328473); + b = this.md5gg(b, c, d, a, x[i + 12], 20, -1926607734); + + a = this.md5hh(a, b, c, d, x[i + 5], 4, -378558); + d = this.md5hh(d, a, b, c, x[i + 8], 11, -2022574463); + c = this.md5hh(c, d, a, b, x[i + 11], 16, 1839030562); + b = this.md5hh(b, c, d, a, x[i + 14], 23, -35309556); + a = this.md5hh(a, b, c, d, x[i + 1], 4, -1530992060); + d = this.md5hh(d, a, b, c, x[i + 4], 11, 1272893353); + c = this.md5hh(c, d, a, b, x[i + 7], 16, -155497632); + b = this.md5hh(b, c, d, a, x[i + 10], 23, -1094730640); + a = this.md5hh(a, b, c, d, x[i + 13], 4, 681279174); + d = this.md5hh(d, a, b, c, x[i], 11, -358537222); + c = this.md5hh(c, d, a, b, x[i + 3], 16, -722521979); + b = this.md5hh(b, c, d, a, x[i + 6], 23, 76029189); + a = this.md5hh(a, b, c, d, x[i + 9], 4, -640364487); + d = this.md5hh(d, a, b, c, x[i + 12], 11, -421815835); + c = this.md5hh(c, d, a, b, x[i + 15], 16, 530742520); + b = this.md5hh(b, c, d, a, x[i + 2], 23, -995338651); + + a = this.md5ii(a, b, c, d, x[i], 6, -198630844); + d = this.md5ii(d, a, b, c, x[i + 7], 10, 1126891415); + c = this.md5ii(c, d, a, b, x[i + 14], 15, -1416354905); + b = this.md5ii(b, c, d, a, x[i + 5], 21, -57434055); + a = this.md5ii(a, b, c, d, x[i + 12], 6, 1700485571); + d = this.md5ii(d, a, b, c, x[i + 3], 10, -1894986606); + c = this.md5ii(c, d, a, b, x[i + 10], 15, -1051523); + b = this.md5ii(b, c, d, a, x[i + 1], 21, -2054922799); + a = this.md5ii(a, b, c, d, x[i + 8], 6, 1873313359); + d = this.md5ii(d, a, b, c, x[i + 15], 10, -30611744); + c = this.md5ii(c, d, a, b, x[i + 6], 15, -1560198380); + b = this.md5ii(b, c, d, a, x[i + 13], 21, 1309151649); + a = this.md5ii(a, b, c, d, x[i + 4], 6, -145523070); + d = this.md5ii(d, a, b, c, x[i + 11], 10, -1120210379); + c = this.md5ii(c, d, a, b, x[i + 2], 15, 718787259); + b = this.md5ii(b, c, d, a, x[i + 9], 21, -343485551); + + a = this.safeAdd(a, olda); + b = this.safeAdd(b, oldb); + c = this.safeAdd(c, oldc); + d = this.safeAdd(d, oldd); + } + return [a, b, c, d]; + }, + binl2rstr(input) { + var i; + var output = ''; + var length32 = input.length * 32; + for (i = 0; i < length32; i += 8) { + output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff); + } + return output; + }, + rstr2binl(input) { + var i; + var output = []; + output[(input.length >> 2) - 1] = undefined; + for (i = 0; i < output.length; i += 1) { + output[i] = 0; + } + var length8 = input.length * 8; + for (i = 0; i < length8; i += 8) { + output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32); + } + return output; + }, + rstrMD5(s) { + return this.binl2rstr(this.binlMD5(this.rstr2binl(s), s.length * 8)); + }, + rstrHMACMD5(key, data) { + var i; + var bkey = this.rstr2binl(key); + var ipad = []; + var opad = []; + var hash; + ipad[15] = opad[15] = undefined; + if (bkey.length > 16) { + bkey = this.binlMD5(bkey, key.length * 8); + } + for (i = 0; i < 16; i += 1) { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5c5c5c5c; + } + hash = this.binlMD5(ipad.concat(this.rstr2binl(data)), 512 + data.length * 8); + return this.binl2rstr(this.binlMD5(opad.concat(hash), 512 + 128)); + }, + rstr2hex(input) { + var hexTab = '0123456789abcdef'; + var output = ''; + var x; + var i; + for (i = 0; i < input.length; i += 1) { + x = input.charCodeAt(i); + output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f); + } + return output; + }, + str2rstrUTF8(input) { + return unescape(encodeURIComponent(input)); + }, + rawMD5(s) { + return this.rstrMD5(this.str2rstrUTF8(s)); + }, + hexMD5(s) { + return this.rstr2hex(this.rawMD5(s)); + }, + rawHMACMD5(k, d) { + return this.rstrHMACMD5(this.str2rstrUTF8(k), str2rstrUTF8(d)); + }, + hexHMACMD5(k, d) { + return this.rstr2hex(this.rawHMACMD5(k, d)); + }, + + md5(string, key, raw) { + if (!key) { + if (!raw) { + return this.hexMD5(string); + } + return this.rawMD5(string); + } + if (!raw) { + return this.hexHMACMD5(key, string); + } + return this.rawHMACMD5(key, string); + }, + /** + * 得到md5加密后的sig参数 + * @param {Object} requestParam 接口参数 + * @param {String} sk签名字符串 + * @param {String} featrue 方法名 + * @return 返回加密后的sig参数 + */ + getSig(requestParam, sk, feature, mode) { + var sig = null; + var requestArr = []; + Object.keys(requestParam).sort().forEach(function(key){ + requestArr.push(key + '=' + requestParam[key]); + }); + if (feature == 'search') { + sig = '/ws/place/v1/search?' + requestArr.join('&') + sk; + } + if (feature == 'suggest') { + sig = '/ws/place/v1/suggestion?' + requestArr.join('&') + sk; + } + if (feature == 'reverseGeocoder') { + sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk; + } + if (feature == 'geocoder') { + sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk; + } + if (feature == 'getCityList') { + sig = '/ws/district/v1/list?' + requestArr.join('&') + sk; + } + if (feature == 'getDistrictByCityId') { + sig = '/ws/district/v1/getchildren?' + requestArr.join('&') + sk; + } + if (feature == 'calculateDistance') { + sig = '/ws/distance/v1/?' + requestArr.join('&') + sk; + } + if (feature == 'direction') { + sig = '/ws/direction/v1/' + mode + '?' + requestArr.join('&') + sk; + } + sig = this.md5(sig); + return sig; + }, + /** + * 得到终点query字符串 + * @param {Array|String} 检索数据 + */ + location2query(data) { + if (typeof data == 'string') { + return data; + } + var query = ''; + for (var i = 0; i < data.length; i++) { + var d = data[i]; + if (!!query) { + query += ';'; + } + if (d.location) { + query = query + d.location.lat + ',' + d.location.lng; + } + if (d.latitude && d.longitude) { + query = query + d.latitude + ',' + d.longitude; + } + } + return query; + }, + + /** + * 计算角度 + */ + rad(d) { + return d * Math.PI / 180.0; + }, + /** + * 处理终点location数组 + * @return 返回终点数组 + */ + getEndLocation(location){ + var to = location.split(';'); + var endLocation = []; + for (var i = 0; i < to.length; i++) { + endLocation.push({ + lat: parseFloat(to[i].split(',')[0]), + lng: parseFloat(to[i].split(',')[1]) + }) + } + return endLocation; + }, + + /** + * 计算两点间直线距离 + * @param a 表示纬度差 + * @param b 表示经度差 + * @return 返回的是距离,单位m + */ + getDistance(latFrom, lngFrom, latTo, lngTo) { + var radLatFrom = this.rad(latFrom); + var radLatTo = this.rad(latTo); + var a = radLatFrom - radLatTo; + var b = this.rad(lngFrom) - this.rad(lngTo); + var distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLatFrom) * Math.cos(radLatTo) * Math.pow(Math.sin(b / 2), 2))); + distance = distance * EARTH_RADIUS; + distance = Math.round(distance * 10000) / 10000; + return parseFloat(distance.toFixed(0)); + }, + /** + * 使用微信接口进行定位 + */ + getWXLocation(success, fail, complete) { + wx.getLocation({ + type: 'gcj02', + success: success, + fail: fail, + complete: complete + }); + }, + + /** + * 获取location参数 + */ + getLocationParam(location) { + if (typeof location == 'string') { + var locationArr = location.split(','); + if (locationArr.length === 2) { + location = { + latitude: location.split(',')[0], + longitude: location.split(',')[1] + }; + } else { + location = {}; + } + } + return location; + }, + + /** + * 回调函数默认处理 + */ + polyfillParam(param) { + param.success = param.success || function () { }; + param.fail = param.fail || function () { }; + param.complete = param.complete || function () { }; + }, + + /** + * 验证param对应的key值是否为空 + * + * @param {Object} param 接口参数 + * @param {String} key 对应参数的key + */ + checkParamKeyEmpty(param, key) { + if (!param[key]) { + var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + key +'参数格式有误'); + param.fail(errconf); + param.complete(errconf); + return true; + } + return false; + }, + + /** + * 验证参数中是否存在检索词keyword + * + * @param {Object} param 接口参数 + */ + checkKeyword(param){ + return !this.checkParamKeyEmpty(param, 'keyword'); + }, + + /** + * 验证location值 + * + * @param {Object} param 接口参数 + */ + checkLocation(param) { + var location = this.getLocationParam(param.location); + if (!location || !location.latitude || !location.longitude) { + var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' location参数格式有误'); + param.fail(errconf); + param.complete(errconf); + return false; + } + return true; + }, + + /** + * 构造错误数据结构 + * @param {Number} errCode 错误码 + * @param {Number} errMsg 错误描述 + */ + buildErrorConfig(errCode, errMsg) { + return { + status: errCode, + message: errMsg + }; + }, + + /** + * + * 数据处理函数 + * 根据传入参数不同处理不同数据 + * @param {String} feature 功能名称 + * search 地点搜索 + * suggest关键词提示 + * reverseGeocoder逆地址解析 + * geocoder地址解析 + * getCityList获取城市列表:父集 + * getDistrictByCityId获取区县列表:子集 + * calculateDistance距离计算 + * @param {Object} param 接口参数 + * @param {Object} data 数据 + */ + handleData(param,data,feature){ + if (feature == 'search') { + var searchResult = data.data; + var searchSimplify = []; + for (var i = 0; i < searchResult.length; i++) { + searchSimplify.push({ + id: searchResult[i].id || null, + title: searchResult[i].title || null, + latitude: searchResult[i].location && searchResult[i].location.lat || null, + longitude: searchResult[i].location && searchResult[i].location.lng || null, + address: searchResult[i].address || null, + category: searchResult[i].category || null, + tel: searchResult[i].tel || null, + adcode: searchResult[i].ad_info && searchResult[i].ad_info.adcode || null, + city: searchResult[i].ad_info && searchResult[i].ad_info.city || null, + district: searchResult[i].ad_info && searchResult[i].ad_info.district || null, + province: searchResult[i].ad_info && searchResult[i].ad_info.province || null + }) + } + param.success(data, { + searchResult: searchResult, + searchSimplify: searchSimplify + }) + } else if (feature == 'suggest') { + var suggestResult = data.data; + var suggestSimplify = []; + for (var i = 0; i < suggestResult.length; i++) { + suggestSimplify.push({ + adcode: suggestResult[i].adcode || null, + address: suggestResult[i].address || null, + category: suggestResult[i].category || null, + city: suggestResult[i].city || null, + district: suggestResult[i].district || null, + id: suggestResult[i].id || null, + latitude: suggestResult[i].location && suggestResult[i].location.lat || null, + longitude: suggestResult[i].location && suggestResult[i].location.lng || null, + province: suggestResult[i].province || null, + title: suggestResult[i].title || null, + type: suggestResult[i].type || null + }) + } + param.success(data, { + suggestResult: suggestResult, + suggestSimplify: suggestSimplify + }) + } else if (feature == 'reverseGeocoder') { + var reverseGeocoderResult = data.result; + var reverseGeocoderSimplify = { + address: reverseGeocoderResult.address || null, + latitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lat || null, + longitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lng || null, + adcode: reverseGeocoderResult.ad_info && reverseGeocoderResult.ad_info.adcode || null, + city: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.city || null, + district: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.district || null, + nation: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.nation || null, + province: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.province || null, + street: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street || null, + street_number: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street_number || null, + recommend: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.recommend || null, + rough: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.rough || null + }; + if (reverseGeocoderResult.pois) {//判断是否返回周边poi + var pois = reverseGeocoderResult.pois; + var poisSimplify = []; + for (var i = 0;i < pois.length;i++) { + poisSimplify.push({ + id: pois[i].id || null, + title: pois[i].title || null, + latitude: pois[i].location && pois[i].location.lat || null, + longitude: pois[i].location && pois[i].location.lng || null, + address: pois[i].address || null, + category: pois[i].category || null, + adcode: pois[i].ad_info && pois[i].ad_info.adcode || null, + city: pois[i].ad_info && pois[i].ad_info.city || null, + district: pois[i].ad_info && pois[i].ad_info.district || null, + province: pois[i].ad_info && pois[i].ad_info.province || null + }) + } + param.success(data,{ + reverseGeocoderResult: reverseGeocoderResult, + reverseGeocoderSimplify: reverseGeocoderSimplify, + pois: pois, + poisSimplify: poisSimplify + }) + } else { + param.success(data, { + reverseGeocoderResult: reverseGeocoderResult, + reverseGeocoderSimplify: reverseGeocoderSimplify + }) + } + } else if (feature == 'geocoder') { + var geocoderResult = data.result; + var geocoderSimplify = { + title: geocoderResult.title || null, + latitude: geocoderResult.location && geocoderResult.location.lat || null, + longitude: geocoderResult.location && geocoderResult.location.lng || null, + adcode: geocoderResult.ad_info && geocoderResult.ad_info.adcode || null, + province: geocoderResult.address_components && geocoderResult.address_components.province || null, + city: geocoderResult.address_components && geocoderResult.address_components.city || null, + district: geocoderResult.address_components && geocoderResult.address_components.district || null, + street: geocoderResult.address_components && geocoderResult.address_components.street || null, + street_number: geocoderResult.address_components && geocoderResult.address_components.street_number || null, + level: geocoderResult.level || null + }; + param.success(data,{ + geocoderResult: geocoderResult, + geocoderSimplify: geocoderSimplify + }); + } else if (feature == 'getCityList') { + var provinceResult = data.result[0]; + var cityResult = data.result[1]; + var districtResult = data.result[2]; + param.success(data,{ + provinceResult: provinceResult, + cityResult: cityResult, + districtResult: districtResult + }); + } else if (feature == 'getDistrictByCityId') { + var districtByCity = data.result[0]; + param.success(data, districtByCity); + } else if (feature == 'calculateDistance') { + var calculateDistanceResult = data.result.elements; + var distance = []; + for (var i = 0; i < calculateDistanceResult.length; i++){ + distance.push(calculateDistanceResult[i].distance); + } + param.success(data, { + calculateDistanceResult: calculateDistanceResult, + distance: distance + }); + } else if (feature == 'direction') { + var direction = data.result.routes; + param.success(data,direction); + } else { + param.success(data); + } + }, + + /** + * 构造微信请求参数,公共属性处理 + * + * @param {Object} param 接口参数 + * @param {Object} param 配置项 + * @param {String} feature 方法名 + */ + buildWxRequestConfig(param, options, feature) { + var that = this; + options.header = { "content-type": "application/json" }; + options.method = 'GET'; + options.success = function (res) { + var data = res.data; + if (data.status === 0) { + that.handleData(param, data, feature); + } else { + param.fail(data); + } + }; + options.fail = function (res) { + res.statusCode = ERROR_CONF.WX_ERR_CODE; + param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); + }; + options.complete = function (res) { + var statusCode = +res.statusCode; + switch(statusCode) { + case ERROR_CONF.WX_ERR_CODE: { + param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); + break; + } + case ERROR_CONF.WX_OK_CODE: { + var data = res.data; + if (data.status === 0) { + param.complete(data); + } else { + param.complete(that.buildErrorConfig(data.status, data.message)); + } + break; + } + default:{ + param.complete(that.buildErrorConfig(ERROR_CONF.SYSTEM_ERR, ERROR_CONF.SYSTEM_ERR_MSG)); + } + + } + }; + return options; + }, + + /** + * 处理用户参数是否传入坐标进行不同的处理 + */ + locationProcess(param, locationsuccess, locationfail, locationcomplete) { + var that = this; + locationfail = locationfail || function (res) { + res.statusCode = ERROR_CONF.WX_ERR_CODE; + param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); + }; + locationcomplete = locationcomplete || function (res) { + if (res.statusCode == ERROR_CONF.WX_ERR_CODE) { + param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); + } + }; + if (!param.location) { + that.getWXLocation(locationsuccess, locationfail, locationcomplete); + } else if (that.checkLocation(param)) { + var location = Utils.getLocationParam(param.location); + locationsuccess(location); + } + } +}; + + +class QQMapWX { + + /** + * 构造函数 + * + * @param {Object} options 接口参数,key 为必选参数 + */ + constructor(options) { + if (!options.key) { + throw Error('key值不能为空'); + } + this.key = options.key; + }; + + /** + * POI周边检索 + * + * @param {Object} options 接口参数对象 + * + * 参数对象结构可以参考 + * @see http://lbs.qq.com/webservice_v1/guide-search.html + */ + search(options) { + var that = this; + options = options || {}; + + Utils.polyfillParam(options); + + if (!Utils.checkKeyword(options)) { + return; + } + + var requestParam = { + keyword: options.keyword, + orderby: options.orderby || '_distance', + page_size: options.page_size || 10, + page_index: options.page_index || 1, + output: 'json', + key: that.key + }; + + if (options.address_format) { + requestParam.address_format = options.address_format; + } + + if (options.filter) { + requestParam.filter = options.filter; + } + + var distance = options.distance || "1000"; + var auto_extend = options.auto_extend || 1; + var region = null; + var rectangle = null; + + //判断城市限定参数 + if (options.region) { + region = options.region; + } + + //矩形限定坐标(暂时只支持字符串格式) + if (options.rectangle) { + rectangle = options.rectangle; + } + + var locationsuccess = function (result) { + if (region && !rectangle) { + //城市限定参数拼接 + requestParam.boundary = "region(" + region + "," + auto_extend + "," + result.latitude + "," + result.longitude + ")"; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'search'); + } + } else if (rectangle && !region) { + //矩形搜索 + requestParam.boundary = "rectangle(" + rectangle + ")"; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'search'); + } + } else { + requestParam.boundary = "nearby(" + result.latitude + "," + result.longitude + "," + distance + "," + auto_extend + ")"; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'search'); + } + } + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_SEARCH, + data: requestParam + }, 'search')); + }; + Utils.locationProcess(options, locationsuccess); + }; + + /** + * sug模糊检索 + * + * @param {Object} options 接口参数对象 + * + * 参数对象结构可以参考 + * http://lbs.qq.com/webservice_v1/guide-suggestion.html + */ + getSuggestion(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + + if (!Utils.checkKeyword(options)) { + return; + } + + var requestParam = { + keyword: options.keyword, + region: options.region || '全国', + region_fix: options.region_fix || 0, + policy: options.policy || 0, + page_size: options.page_size || 10,//控制显示条数 + page_index: options.page_index || 1,//控制页数 + get_subpois : options.get_subpois || 0,//返回子地点 + output: 'json', + key: that.key + }; + //长地址 + if (options.address_format) { + requestParam.address_format = options.address_format; + } + //过滤 + if (options.filter) { + requestParam.filter = options.filter; + } + //排序 + if (options.location) { + var locationsuccess = function (result) { + requestParam.location = result.latitude + ',' + result.longitude; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest'); + } + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_SUGGESTION, + data: requestParam + }, "suggest")); + }; + Utils.locationProcess(options, locationsuccess); + } else { + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest'); + } + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_SUGGESTION, + data: requestParam + }, "suggest")); + } + }; + + /** + * 逆地址解析 + * + * @param {Object} options 接口参数对象 + * + * 请求参数结构可以参考 + * http://lbs.qq.com/webservice_v1/guide-gcoder.html + */ + reverseGeocoder(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + var requestParam = { + coord_type: options.coord_type || 5, + get_poi: options.get_poi || 0, + output: 'json', + key: that.key + }; + if (options.poi_options) { + requestParam.poi_options = options.poi_options + } + + var locationsuccess = function (result) { + requestParam.location = result.latitude + ',' + result.longitude; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'reverseGeocoder'); + } + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_GET_GEOCODER, + data: requestParam + }, 'reverseGeocoder')); + }; + Utils.locationProcess(options, locationsuccess); + }; + + /** + * 地址解析 + * + * @param {Object} options 接口参数对象 + * + * 请求参数结构可以参考 + * http://lbs.qq.com/webservice_v1/guide-geocoder.html + */ + geocoder(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + + if (Utils.checkParamKeyEmpty(options, 'address')) { + return; + } + + var requestParam = { + address: options.address, + output: 'json', + key: that.key + }; + + //城市限定 + if (options.region) { + requestParam.region = options.region; + } + + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'geocoder'); + } + + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_GET_GEOCODER, + data: requestParam + },'geocoder')); + }; + + + /** + * 获取城市列表 + * + * @param {Object} options 接口参数对象 + * + * 请求参数结构可以参考 + * http://lbs.qq.com/webservice_v1/guide-region.html + */ + getCityList(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + var requestParam = { + output: 'json', + key: that.key + }; + + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'getCityList'); + } + + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_CITY_LIST, + data: requestParam + },'getCityList')); + }; + + /** + * 获取对应城市ID的区县列表 + * + * @param {Object} options 接口参数对象 + * + * 请求参数结构可以参考 + * http://lbs.qq.com/webservice_v1/guide-region.html + */ + getDistrictByCityId(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + + if (Utils.checkParamKeyEmpty(options, 'id')) { + return; + } + + var requestParam = { + id: options.id || '', + output: 'json', + key: that.key + }; + + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'getDistrictByCityId'); + } + + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_AREA_LIST, + data: requestParam + },'getDistrictByCityId')); + }; + + /** + * 用于单起点到多终点的路线距离(非直线距离)计算: + * 支持两种距离计算方式:步行和驾车。 + * 起点到终点最大限制直线距离10公里。 + * + * 新增直线距离计算。 + * + * @param {Object} options 接口参数对象 + * + * 请求参数结构可以参考 + * http://lbs.qq.com/webservice_v1/guide-distance.html + */ + calculateDistance(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + + if (Utils.checkParamKeyEmpty(options, 'to')) { + return; + } + + var requestParam = { + mode: options.mode || 'walking', + to: Utils.location2query(options.to), + output: 'json', + key: that.key + }; + + if (options.from) { + options.location = options.from; + } + + //计算直线距离 + if(requestParam.mode == 'straight'){ + var locationsuccess = function (result) { + var locationTo = Utils.getEndLocation(requestParam.to);//处理终点坐标 + var data = { + message:"query ok", + result:{ + elements:[] + }, + status:0 + }; + for (var i = 0; i < locationTo.length; i++) { + data.result.elements.push({//将坐标存入 + distance: Utils.getDistance(result.latitude, result.longitude, locationTo[i].lat, locationTo[i].lng), + duration:0, + from:{ + lat: result.latitude, + lng:result.longitude + }, + to:{ + lat: locationTo[i].lat, + lng: locationTo[i].lng + } + }); + } + var calculateResult = data.result.elements; + var distanceResult = []; + for (var i = 0; i < calculateResult.length; i++) { + distanceResult.push(calculateResult[i].distance); + } + return options.success(data,{ + calculateResult: calculateResult, + distanceResult: distanceResult + }); + }; + + Utils.locationProcess(options, locationsuccess); + } else { + var locationsuccess = function (result) { + requestParam.from = result.latitude + ',' + result.longitude; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'calculateDistance'); + } + wx.request(Utils.buildWxRequestConfig(options, { + url: URL_DISTANCE, + data: requestParam + },'calculateDistance')); + }; + + Utils.locationProcess(options, locationsuccess); + } + }; + + /** + * 路线规划: + * + * @param {Object} options 接口参数对象 + * + * 请求参数结构可以参考 + * https://lbs.qq.com/webservice_v1/guide-road.html + */ + direction(options) { + var that = this; + options = options || {}; + Utils.polyfillParam(options); + + if (Utils.checkParamKeyEmpty(options, 'to')) { + return; + } + + var requestParam = { + output: 'json', + key: that.key + }; + + //to格式处理 + if (typeof options.to == 'string') { + requestParam.to = options.to; + } else { + requestParam.to = options.to.latitude + ',' + options.to.longitude; + } + //初始化局部请求域名 + var SET_URL_DIRECTION = null; + //设置默认mode属性 + options.mode = options.mode || MODE.driving; + + //设置请求域名 + SET_URL_DIRECTION = URL_DIRECTION + options.mode; + + if (options.from) { + options.location = options.from; + } + + if (options.mode == MODE.driving) { + if (options.from_poi) { + requestParam.from_poi = options.from_poi; + } + if (options.heading) { + requestParam.heading = options.heading; + } + if (options.speed) { + requestParam.speed = options.speed; + } + if (options.accuracy) { + requestParam.accuracy = options.accuracy; + } + if (options.road_type) { + requestParam.road_type = options.road_type; + } + if (options.to_poi) { + requestParam.to_poi = options.to_poi; + } + if (options.from_track) { + requestParam.from_track = options.from_track; + } + if (options.waypoints) { + requestParam.waypoints = options.waypoints; + } + if (options.policy) { + requestParam.policy = options.policy; + } + if (options.plate_number) { + requestParam.plate_number = options.plate_number; + } + } + + if (options.mode == MODE.transit) { + if (options.departure_time) { + requestParam.departure_time = options.departure_time; + } + if (options.policy) { + requestParam.policy = options.policy; + } + } + + var locationsuccess = function (result) { + requestParam.from = result.latitude + ',' + result.longitude; + if (options.sig) { + requestParam.sig = Utils.getSig(requestParam, options.sig, 'direction',options.mode); + } + wx.request(Utils.buildWxRequestConfig(options, { + url: SET_URL_DIRECTION, + data: requestParam + }, 'direction')); + }; + + Utils.locationProcess(options, locationsuccess); + } +}; + +module.exports = QQMapWX; \ No newline at end of file diff --git a/js_sdk/qqmap-wx-jssdk/qqmap-wx-jssdk.min.js b/js_sdk/qqmap-wx-jssdk/qqmap-wx-jssdk.min.js new file mode 100644 index 0000000..8fa1477 --- /dev/null +++ b/js_sdk/qqmap-wx-jssdk/qqmap-wx-jssdk.min.js @@ -0,0 +1 @@ +var ERROR_CONF = { KEY_ERR: 311, KEY_ERR_MSG: 'key格式错误', PARAM_ERR: 310, PARAM_ERR_MSG: '请求参数信息有误', SYSTEM_ERR: 600, SYSTEM_ERR_MSG: '系统错误', WX_ERR_CODE: 1000, WX_OK_CODE: 200 }; var BASE_URL = 'https://apis.map.qq.com/ws/'; var URL_SEARCH = BASE_URL + 'place/v1/search'; var URL_SUGGESTION = BASE_URL + 'place/v1/suggestion'; var URL_GET_GEOCODER = BASE_URL + 'geocoder/v1/'; var URL_CITY_LIST = BASE_URL + 'district/v1/list'; var URL_AREA_LIST = BASE_URL + 'district/v1/getchildren'; var URL_DISTANCE = BASE_URL + 'distance/v1/'; var URL_DIRECTION = BASE_URL + 'direction/v1/'; var MODE = { driving: 'driving', transit: 'transit' }; var EARTH_RADIUS = 6378136.49; var Utils = { safeAdd(x, y) { var lsw = (x & 0xffff) + (y & 0xffff); var msw = (x >> 16) + (y >> 16) + (lsw >> 16); return (msw << 16) | (lsw & 0xffff) }, bitRotateLeft(num, cnt) { return (num << cnt) | (num >>> (32 - cnt)) }, md5cmn(q, a, b, x, s, t) { return this.safeAdd(this.bitRotateLeft(this.safeAdd(this.safeAdd(a, q), this.safeAdd(x, t)), s), b) }, md5ff(a, b, c, d, x, s, t) { return this.md5cmn((b & c) | (~b & d), a, b, x, s, t) }, md5gg(a, b, c, d, x, s, t) { return this.md5cmn((b & d) | (c & ~d), a, b, x, s, t) }, md5hh(a, b, c, d, x, s, t) { return this.md5cmn(b ^ c ^ d, a, b, x, s, t) }, md5ii(a, b, c, d, x, s, t) { return this.md5cmn(c ^ (b | ~d), a, b, x, s, t) }, binlMD5(x, len) { x[len >> 5] |= 0x80 << (len % 32); x[((len + 64) >>> 9 << 4) + 14] = len; var i; var olda; var oldb; var oldc; var oldd; var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; for (i = 0; i < x.length; i += 16) { olda = a; oldb = b; oldc = c; oldd = d; a = this.md5ff(a, b, c, d, x[i], 7, -680876936); d = this.md5ff(d, a, b, c, x[i + 1], 12, -389564586); c = this.md5ff(c, d, a, b, x[i + 2], 17, 606105819); b = this.md5ff(b, c, d, a, x[i + 3], 22, -1044525330); a = this.md5ff(a, b, c, d, x[i + 4], 7, -176418897); d = this.md5ff(d, a, b, c, x[i + 5], 12, 1200080426); c = this.md5ff(c, d, a, b, x[i + 6], 17, -1473231341); b = this.md5ff(b, c, d, a, x[i + 7], 22, -45705983); a = this.md5ff(a, b, c, d, x[i + 8], 7, 1770035416); d = this.md5ff(d, a, b, c, x[i + 9], 12, -1958414417); c = this.md5ff(c, d, a, b, x[i + 10], 17, -42063); b = this.md5ff(b, c, d, a, x[i + 11], 22, -1990404162); a = this.md5ff(a, b, c, d, x[i + 12], 7, 1804603682); d = this.md5ff(d, a, b, c, x[i + 13], 12, -40341101); c = this.md5ff(c, d, a, b, x[i + 14], 17, -1502002290); b = this.md5ff(b, c, d, a, x[i + 15], 22, 1236535329); a = this.md5gg(a, b, c, d, x[i + 1], 5, -165796510); d = this.md5gg(d, a, b, c, x[i + 6], 9, -1069501632); c = this.md5gg(c, d, a, b, x[i + 11], 14, 643717713); b = this.md5gg(b, c, d, a, x[i], 20, -373897302); a = this.md5gg(a, b, c, d, x[i + 5], 5, -701558691); d = this.md5gg(d, a, b, c, x[i + 10], 9, 38016083); c = this.md5gg(c, d, a, b, x[i + 15], 14, -660478335); b = this.md5gg(b, c, d, a, x[i + 4], 20, -405537848); a = this.md5gg(a, b, c, d, x[i + 9], 5, 568446438); d = this.md5gg(d, a, b, c, x[i + 14], 9, -1019803690); c = this.md5gg(c, d, a, b, x[i + 3], 14, -187363961); b = this.md5gg(b, c, d, a, x[i + 8], 20, 1163531501); a = this.md5gg(a, b, c, d, x[i + 13], 5, -1444681467); d = this.md5gg(d, a, b, c, x[i + 2], 9, -51403784); c = this.md5gg(c, d, a, b, x[i + 7], 14, 1735328473); b = this.md5gg(b, c, d, a, x[i + 12], 20, -1926607734); a = this.md5hh(a, b, c, d, x[i + 5], 4, -378558); d = this.md5hh(d, a, b, c, x[i + 8], 11, -2022574463); c = this.md5hh(c, d, a, b, x[i + 11], 16, 1839030562); b = this.md5hh(b, c, d, a, x[i + 14], 23, -35309556); a = this.md5hh(a, b, c, d, x[i + 1], 4, -1530992060); d = this.md5hh(d, a, b, c, x[i + 4], 11, 1272893353); c = this.md5hh(c, d, a, b, x[i + 7], 16, -155497632); b = this.md5hh(b, c, d, a, x[i + 10], 23, -1094730640); a = this.md5hh(a, b, c, d, x[i + 13], 4, 681279174); d = this.md5hh(d, a, b, c, x[i], 11, -358537222); c = this.md5hh(c, d, a, b, x[i + 3], 16, -722521979); b = this.md5hh(b, c, d, a, x[i + 6], 23, 76029189); a = this.md5hh(a, b, c, d, x[i + 9], 4, -640364487); d = this.md5hh(d, a, b, c, x[i + 12], 11, -421815835); c = this.md5hh(c, d, a, b, x[i + 15], 16, 530742520); b = this.md5hh(b, c, d, a, x[i + 2], 23, -995338651); a = this.md5ii(a, b, c, d, x[i], 6, -198630844); d = this.md5ii(d, a, b, c, x[i + 7], 10, 1126891415); c = this.md5ii(c, d, a, b, x[i + 14], 15, -1416354905); b = this.md5ii(b, c, d, a, x[i + 5], 21, -57434055); a = this.md5ii(a, b, c, d, x[i + 12], 6, 1700485571); d = this.md5ii(d, a, b, c, x[i + 3], 10, -1894986606); c = this.md5ii(c, d, a, b, x[i + 10], 15, -1051523); b = this.md5ii(b, c, d, a, x[i + 1], 21, -2054922799); a = this.md5ii(a, b, c, d, x[i + 8], 6, 1873313359); d = this.md5ii(d, a, b, c, x[i + 15], 10, -30611744); c = this.md5ii(c, d, a, b, x[i + 6], 15, -1560198380); b = this.md5ii(b, c, d, a, x[i + 13], 21, 1309151649); a = this.md5ii(a, b, c, d, x[i + 4], 6, -145523070); d = this.md5ii(d, a, b, c, x[i + 11], 10, -1120210379); c = this.md5ii(c, d, a, b, x[i + 2], 15, 718787259); b = this.md5ii(b, c, d, a, x[i + 9], 21, -343485551); a = this.safeAdd(a, olda); b = this.safeAdd(b, oldb); c = this.safeAdd(c, oldc); d = this.safeAdd(d, oldd) } return [a, b, c, d] }, binl2rstr(input) { var i; var output = ''; var length32 = input.length * 32; for (i = 0; i < length32; i += 8) { output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff) } return output }, rstr2binl(input) { var i; var output = []; output[(input.length >> 2) - 1] = undefined; for (i = 0; i < output.length; i += 1) { output[i] = 0 } var length8 = input.length * 8; for (i = 0; i < length8; i += 8) { output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32) } return output }, rstrMD5(s) { return this.binl2rstr(this.binlMD5(this.rstr2binl(s), s.length * 8)) }, rstrHMACMD5(key, data) { var i; var bkey = this.rstr2binl(key); var ipad = []; var opad = []; var hash; ipad[15] = opad[15] = undefined; if (bkey.length > 16) { bkey = this.binlMD5(bkey, key.length * 8) } for (i = 0; i < 16; i += 1) { ipad[i] = bkey[i] ^ 0x36363636; opad[i] = bkey[i] ^ 0x5c5c5c5c } hash = this.binlMD5(ipad.concat(this.rstr2binl(data)), 512 + data.length * 8); return this.binl2rstr(this.binlMD5(opad.concat(hash), 512 + 128)) }, rstr2hex(input) { var hexTab = '0123456789abcdef'; var output = ''; var x; var i; for (i = 0; i < input.length; i += 1) { x = input.charCodeAt(i); output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f) } return output }, str2rstrUTF8(input) { return unescape(encodeURIComponent(input)) }, rawMD5(s) { return this.rstrMD5(this.str2rstrUTF8(s)) }, hexMD5(s) { return this.rstr2hex(this.rawMD5(s)) }, rawHMACMD5(k, d) { return this.rstrHMACMD5(this.str2rstrUTF8(k), str2rstrUTF8(d)) }, hexHMACMD5(k, d) { return this.rstr2hex(this.rawHMACMD5(k, d)) }, md5(string, key, raw) { if (!key) { if (!raw) { return this.hexMD5(string) } return this.rawMD5(string) } if (!raw) { return this.hexHMACMD5(key, string) } return this.rawHMACMD5(key, string) }, getSig(requestParam, sk, feature, mode) { var sig = null; var requestArr = []; Object.keys(requestParam).sort().forEach(function (key) { requestArr.push(key + '=' + requestParam[key]) }); if (feature == 'search') { sig = '/ws/place/v1/search?' + requestArr.join('&') + sk } if (feature == 'suggest') { sig = '/ws/place/v1/suggestion?' + requestArr.join('&') + sk } if (feature == 'reverseGeocoder') { sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk } if (feature == 'geocoder') { sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk } if (feature == 'getCityList') { sig = '/ws/district/v1/list?' + requestArr.join('&') + sk } if (feature == 'getDistrictByCityId') { sig = '/ws/district/v1/getchildren?' + requestArr.join('&') + sk } if (feature == 'calculateDistance') { sig = '/ws/distance/v1/?' + requestArr.join('&') + sk } if (feature == 'direction') { sig = '/ws/direction/v1/' + mode + '?' + requestArr.join('&') + sk } sig = this.md5(sig); return sig }, location2query(data) { if (typeof data == 'string') { return data } var query = ''; for (var i = 0; i < data.length; i++) { var d = data[i]; if (!!query) { query += ';' } if (d.location) { query = query + d.location.lat + ',' + d.location.lng } if (d.latitude && d.longitude) { query = query + d.latitude + ',' + d.longitude } } return query }, rad(d) { return d * Math.PI / 180.0 }, getEndLocation(location) { var to = location.split(';'); var endLocation = []; for (var i = 0; i < to.length; i++) { endLocation.push({ lat: parseFloat(to[i].split(',')[0]), lng: parseFloat(to[i].split(',')[1]) }) } return endLocation }, getDistance(latFrom, lngFrom, latTo, lngTo) { var radLatFrom = this.rad(latFrom); var radLatTo = this.rad(latTo); var a = radLatFrom - radLatTo; var b = this.rad(lngFrom) - this.rad(lngTo); var distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLatFrom) * Math.cos(radLatTo) * Math.pow(Math.sin(b / 2), 2))); distance = distance * EARTH_RADIUS; distance = Math.round(distance * 10000) / 10000; return parseFloat(distance.toFixed(0)) }, getWXLocation(success, fail, complete) { wx.getLocation({ type: 'gcj02', success: success, fail: fail, complete: complete }) }, getLocationParam(location) { if (typeof location == 'string') { var locationArr = location.split(','); if (locationArr.length === 2) { location = { latitude: location.split(',')[0], longitude: location.split(',')[1] } } else { location = {} } } return location }, polyfillParam(param) { param.success = param.success || function () { }; param.fail = param.fail || function () { }; param.complete = param.complete || function () { } }, checkParamKeyEmpty(param, key) { if (!param[key]) { var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + key + '参数格式有误'); param.fail(errconf); param.complete(errconf); return true } return false }, checkKeyword(param) { return !this.checkParamKeyEmpty(param, 'keyword') }, checkLocation(param) { var location = this.getLocationParam(param.location); if (!location || !location.latitude || !location.longitude) { var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' location参数格式有误'); param.fail(errconf); param.complete(errconf); return false } return true }, buildErrorConfig(errCode, errMsg) { return { status: errCode, message: errMsg } }, handleData(param, data, feature) { if (feature == 'search') { var searchResult = data.data; var searchSimplify = []; for (var i = 0; i < searchResult.length; i++) { searchSimplify.push({ id: searchResult[i].id || null, title: searchResult[i].title || null, latitude: searchResult[i].location && searchResult[i].location.lat || null, longitude: searchResult[i].location && searchResult[i].location.lng || null, address: searchResult[i].address || null, category: searchResult[i].category || null, tel: searchResult[i].tel || null, adcode: searchResult[i].ad_info && searchResult[i].ad_info.adcode || null, city: searchResult[i].ad_info && searchResult[i].ad_info.city || null, district: searchResult[i].ad_info && searchResult[i].ad_info.district || null, province: searchResult[i].ad_info && searchResult[i].ad_info.province || null }) } param.success(data, { searchResult: searchResult, searchSimplify: searchSimplify }) } else if (feature == 'suggest') { var suggestResult = data.data; var suggestSimplify = []; for (var i = 0; i < suggestResult.length; i++) { suggestSimplify.push({ adcode: suggestResult[i].adcode || null, address: suggestResult[i].address || null, category: suggestResult[i].category || null, city: suggestResult[i].city || null, district: suggestResult[i].district || null, id: suggestResult[i].id || null, latitude: suggestResult[i].location && suggestResult[i].location.lat || null, longitude: suggestResult[i].location && suggestResult[i].location.lng || null, province: suggestResult[i].province || null, title: suggestResult[i].title || null, type: suggestResult[i].type || null }) } param.success(data, { suggestResult: suggestResult, suggestSimplify: suggestSimplify }) } else if (feature == 'reverseGeocoder') { var reverseGeocoderResult = data.result; var reverseGeocoderSimplify = { address: reverseGeocoderResult.address || null, latitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lat || null, longitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lng || null, adcode: reverseGeocoderResult.ad_info && reverseGeocoderResult.ad_info.adcode || null, city: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.city || null, district: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.district || null, nation: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.nation || null, province: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.province || null, street: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street || null, street_number: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street_number || null, recommend: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.recommend || null, rough: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.rough || null }; if (reverseGeocoderResult.pois) { var pois = reverseGeocoderResult.pois; var poisSimplify = []; for (var i = 0; i < pois.length; i++) { poisSimplify.push({ id: pois[i].id || null, title: pois[i].title || null, latitude: pois[i].location && pois[i].location.lat || null, longitude: pois[i].location && pois[i].location.lng || null, address: pois[i].address || null, category: pois[i].category || null, adcode: pois[i].ad_info && pois[i].ad_info.adcode || null, city: pois[i].ad_info && pois[i].ad_info.city || null, district: pois[i].ad_info && pois[i].ad_info.district || null, province: pois[i].ad_info && pois[i].ad_info.province || null }) } param.success(data, { reverseGeocoderResult: reverseGeocoderResult, reverseGeocoderSimplify: reverseGeocoderSimplify, pois: pois, poisSimplify: poisSimplify }) } else { param.success(data, { reverseGeocoderResult: reverseGeocoderResult, reverseGeocoderSimplify: reverseGeocoderSimplify }) } } else if (feature == 'geocoder') { var geocoderResult = data.result; var geocoderSimplify = { title: geocoderResult.title || null, latitude: geocoderResult.location && geocoderResult.location.lat || null, longitude: geocoderResult.location && geocoderResult.location.lng || null, adcode: geocoderResult.ad_info && geocoderResult.ad_info.adcode || null, province: geocoderResult.address_components && geocoderResult.address_components.province || null, city: geocoderResult.address_components && geocoderResult.address_components.city || null, district: geocoderResult.address_components && geocoderResult.address_components.district || null, street: geocoderResult.address_components && geocoderResult.address_components.street || null, street_number: geocoderResult.address_components && geocoderResult.address_components.street_number || null, level: geocoderResult.level || null }; param.success(data, { geocoderResult: geocoderResult, geocoderSimplify: geocoderSimplify }) } else if (feature == 'getCityList') { var provinceResult = data.result[0]; var cityResult = data.result[1]; var districtResult = data.result[2]; param.success(data, { provinceResult: provinceResult, cityResult: cityResult, districtResult: districtResult }) } else if (feature == 'getDistrictByCityId') { var districtByCity = data.result[0]; param.success(data, districtByCity) } else if (feature == 'calculateDistance') { var calculateDistanceResult = data.result.elements; var distance = []; for (var i = 0; i < calculateDistanceResult.length; i++) { distance.push(calculateDistanceResult[i].distance) } param.success(data, { calculateDistanceResult: calculateDistanceResult, distance: distance }) } else if (feature == 'direction') { var direction = data.result.routes; param.success(data, direction) } else { param.success(data) } }, buildWxRequestConfig(param, options, feature) { var that = this; options.header = { "content-type": "application/json" }; options.method = 'GET'; options.success = function (res) { var data = res.data; if (data.status === 0) { that.handleData(param, data, feature) } else { param.fail(data) } }; options.fail = function (res) { res.statusCode = ERROR_CONF.WX_ERR_CODE; param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)) }; options.complete = function (res) { var statusCode = +res.statusCode; switch (statusCode) { case ERROR_CONF.WX_ERR_CODE: { param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); break } case ERROR_CONF.WX_OK_CODE: { var data = res.data; if (data.status === 0) { param.complete(data) } else { param.complete(that.buildErrorConfig(data.status, data.message)) } break } default: { param.complete(that.buildErrorConfig(ERROR_CONF.SYSTEM_ERR, ERROR_CONF.SYSTEM_ERR_MSG)) } } }; return options }, locationProcess(param, locationsuccess, locationfail, locationcomplete) { var that = this; locationfail = locationfail || function (res) { res.statusCode = ERROR_CONF.WX_ERR_CODE; param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)) }; locationcomplete = locationcomplete || function (res) { if (res.statusCode == ERROR_CONF.WX_ERR_CODE) { param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)) } }; if (!param.location) { that.getWXLocation(locationsuccess, locationfail, locationcomplete) } else if (that.checkLocation(param)) { var location = Utils.getLocationParam(param.location); locationsuccess(location) } } }; class QQMapWX { constructor(options) { if (!options.key) { throw Error('key值不能为空') } this.key = options.key }; search(options) { var that = this; options = options || {}; Utils.polyfillParam(options); if (!Utils.checkKeyword(options)) { return } var requestParam = { keyword: options.keyword, orderby: options.orderby || '_distance', page_size: options.page_size || 10, page_index: options.page_index || 1, output: 'json', key: that.key }; if (options.address_format) { requestParam.address_format = options.address_format } if (options.filter) { requestParam.filter = options.filter } var distance = options.distance || "1000"; var auto_extend = options.auto_extend || 1; var region = null; var rectangle = null; if (options.region) { region = options.region } if (options.rectangle) { rectangle = options.rectangle } var locationsuccess = function (result) { if (region && !rectangle) { requestParam.boundary = "region(" + region + "," + auto_extend + "," + result.latitude + "," + result.longitude + ")"; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'search') } } else if (rectangle && !region) { requestParam.boundary = "rectangle(" + rectangle + ")"; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'search') } } else { requestParam.boundary = "nearby(" + result.latitude + "," + result.longitude + "," + distance + "," + auto_extend + ")"; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'search') } } wx.request(Utils.buildWxRequestConfig(options, { url: URL_SEARCH, data: requestParam }, 'search')) }; Utils.locationProcess(options, locationsuccess) }; getSuggestion(options) { var that = this; options = options || {}; Utils.polyfillParam(options); if (!Utils.checkKeyword(options)) { return } var requestParam = { keyword: options.keyword, region: options.region || '全国', region_fix: options.region_fix || 0, policy: options.policy || 0, page_size: options.page_size || 10, page_index: options.page_index || 1, get_subpois: options.get_subpois || 0, output: 'json', key: that.key }; if (options.address_format) { requestParam.address_format = options.address_format } if (options.filter) { requestParam.filter = options.filter } if (options.location) { var locationsuccess = function (result) { requestParam.location = result.latitude + ',' + result.longitude; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_SUGGESTION, data: requestParam }, "suggest")) }; Utils.locationProcess(options, locationsuccess) } else { if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_SUGGESTION, data: requestParam }, "suggest")) } }; reverseGeocoder(options) { var that = this; options = options || {}; Utils.polyfillParam(options); var requestParam = { coord_type: options.coord_type || 5, get_poi: options.get_poi || 0, output: 'json', key: that.key }; if (options.poi_options) { requestParam.poi_options = options.poi_options } var locationsuccess = function (result) { requestParam.location = result.latitude + ',' + result.longitude; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'reverseGeocoder') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_GET_GEOCODER, data: requestParam }, 'reverseGeocoder')) }; Utils.locationProcess(options, locationsuccess) }; geocoder(options) { var that = this; options = options || {}; Utils.polyfillParam(options); if (Utils.checkParamKeyEmpty(options, 'address')) { return } var requestParam = { address: options.address, output: 'json', key: that.key }; if (options.region) { requestParam.region = options.region } if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'geocoder') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_GET_GEOCODER, data: requestParam }, 'geocoder')) }; getCityList(options) { var that = this; options = options || {}; Utils.polyfillParam(options); var requestParam = { output: 'json', key: that.key }; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'getCityList') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_CITY_LIST, data: requestParam }, 'getCityList')) }; getDistrictByCityId(options) { var that = this; options = options || {}; Utils.polyfillParam(options); if (Utils.checkParamKeyEmpty(options, 'id')) { return } var requestParam = { id: options.id || '', output: 'json', key: that.key }; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'getDistrictByCityId') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_AREA_LIST, data: requestParam }, 'getDistrictByCityId')) }; calculateDistance(options) { var that = this; options = options || {}; Utils.polyfillParam(options); if (Utils.checkParamKeyEmpty(options, 'to')) { return } var requestParam = { mode: options.mode || 'walking', to: Utils.location2query(options.to), output: 'json', key: that.key }; if (options.from) { options.location = options.from } if (requestParam.mode == 'straight') { var locationsuccess = function (result) { var locationTo = Utils.getEndLocation(requestParam.to); var data = { message: "query ok", result: { elements: [] }, status: 0 }; for (var i = 0; i < locationTo.length; i++) { data.result.elements.push({ distance: Utils.getDistance(result.latitude, result.longitude, locationTo[i].lat, locationTo[i].lng), duration: 0, from: { lat: result.latitude, lng: result.longitude }, to: { lat: locationTo[i].lat, lng: locationTo[i].lng } }) } var calculateResult = data.result.elements; var distanceResult = []; for (var i = 0; i < calculateResult.length; i++) { distanceResult.push(calculateResult[i].distance) } return options.success(data, { calculateResult: calculateResult, distanceResult: distanceResult }) }; Utils.locationProcess(options, locationsuccess) } else { var locationsuccess = function (result) { requestParam.from = result.latitude + ',' + result.longitude; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'calculateDistance') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_DISTANCE, data: requestParam }, 'calculateDistance')) }; Utils.locationProcess(options, locationsuccess) } }; direction(options) { var that = this; options = options || {}; Utils.polyfillParam(options); if (Utils.checkParamKeyEmpty(options, 'to')) { return } var requestParam = { output: 'json', key: that.key }; if (typeof options.to == 'string') { requestParam.to = options.to } else { requestParam.to = options.to.latitude + ',' + options.to.longitude } var SET_URL_DIRECTION = null; options.mode = options.mode || MODE.driving; SET_URL_DIRECTION = URL_DIRECTION + options.mode; if (options.from) { options.location = options.from } if (options.mode == MODE.driving) { if (options.from_poi) { requestParam.from_poi = options.from_poi } if (options.heading) { requestParam.heading = options.heading } if (options.speed) { requestParam.speed = options.speed } if (options.accuracy) { requestParam.accuracy = options.accuracy } if (options.road_type) { requestParam.road_type = options.road_type } if (options.to_poi) { requestParam.to_poi = options.to_poi } if (options.from_track) { requestParam.from_track = options.from_track } if (options.waypoints) { requestParam.waypoints = options.waypoints } if (options.policy) { requestParam.policy = options.policy } if (options.plate_number) { requestParam.plate_number = options.plate_number } } if (options.mode == MODE.transit) { if (options.departure_time) { requestParam.departure_time = options.departure_time } if (options.policy) { requestParam.policy = options.policy } } var locationsuccess = function (result) { requestParam.from = result.latitude + ',' + result.longitude; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'direction', options.mode) } wx.request(Utils.buildWxRequestConfig(options, { url: SET_URL_DIRECTION, data: requestParam }, 'direction')) }; Utils.locationProcess(options, locationsuccess) } }; module.exports = QQMapWX; \ No newline at end of file diff --git a/lawOrgPages/pages/action.vue b/lawOrgPages/pages/action.vue new file mode 100644 index 0000000..a9a2870 --- /dev/null +++ b/lawOrgPages/pages/action.vue @@ -0,0 +1,117 @@ + + + \ No newline at end of file diff --git a/lawOrgPages/pages/aiChat.vue b/lawOrgPages/pages/aiChat.vue new file mode 100644 index 0000000..00aa418 --- /dev/null +++ b/lawOrgPages/pages/aiChat.vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/lawOrgPages/pages/index.vue b/lawOrgPages/pages/index.vue new file mode 100644 index 0000000..3b5a5e5 --- /dev/null +++ b/lawOrgPages/pages/index.vue @@ -0,0 +1,78 @@ + + + \ No newline at end of file diff --git a/lawOrgPages/pages/map.vue b/lawOrgPages/pages/map.vue new file mode 100644 index 0000000..b21579d --- /dev/null +++ b/lawOrgPages/pages/map.vue @@ -0,0 +1,141 @@ + + + + + \ No newline at end of file diff --git a/lawOrgPages/pages/orgList.vue b/lawOrgPages/pages/orgList.vue new file mode 100644 index 0000000..5c5249f --- /dev/null +++ b/lawOrgPages/pages/orgList.vue @@ -0,0 +1,107 @@ + + + \ No newline at end of file diff --git a/lawOrgPages/pages/peopleList.vue b/lawOrgPages/pages/peopleList.vue new file mode 100644 index 0000000..f6c35a3 --- /dev/null +++ b/lawOrgPages/pages/peopleList.vue @@ -0,0 +1,90 @@ + + + \ No newline at end of file diff --git a/lawOrgPages/static/building.png b/lawOrgPages/static/building.png new file mode 100644 index 0000000000000000000000000000000000000000..f26fafacb6a94dbf0675208c21d33f7b6cd27b76 GIT binary patch literal 2331 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%0DV+l+X_yUwDiJvUficFz*O{&kY@oupWtso>axp zMI2X^PX8g~EbEL4nn#OZMwz&9uz}``vh8GovuXuGI)&}t#DMQz-C$a4`ELQu4T({T zZ&8*v8Ha(poK%fEzaH>-yogoh_9Xqd2J=ygH__Dz$a`WB9?mgtA>8IbIXD3g5k-^P zbF0m6{(0&6agSI~%eq^l0)1lJpfJP)YsbJK1Q|^xgoipNW()0R0K*&1JB}v~i<1m3 zr9Lz(ep%brTLa9)Srn-vOy%`A)$`s|_#tV+vF6cM7*Z%v(=o#Qo8&3#i%)#8 z7`<5?gH$koDx$E0r~Gg*2B_Xx`cU8+=>TwouGIyl!g&<4f0s8A-F+E|k{L-1Y_K%D zq22neH(MV8s&wh}#E&jejcNnY+?I}MP_r&p4>J1%<6uCEZ?GR+>tESr2GJ8q>%Eclp(-DccQZ5+WYNUUtj%hd=67fgh>dH?9z9dp4xpps%!_yhGx544TD#R#1%w;)uHATnu+LNg zc^HZM-g^sd(aa1O%4P-N#jZM*wuyWLhSPh0aJmU`a@zM&NTd`IOyaio78jMQ06?UK z1pO{i1&abOA+uC9aTNVzP3bSQztGEh5vR_B%m4AtNM9;P8LZSE*lJb=fUteB>iWs} zo%i*UHbb%A(o2(7j@(w)qi;ag(sVAm)FdEfeBY*vv=IaSk`4;c#i!#rl)t@%RDw2-^kAV?7Y!rEX3Pq^??d`~W-}uKb#+ZA>~WX2+hKq$bl1ho)q087;XMy%t)n^q9H9_-@v?Jw zUR+_AkEd{SYzm=LB9*Z?FKPp&l58m8Jm+bSroxL$>tdP=B+>^&Y6Myg^Cjzk$WqnbAsIzWXQrmUxv;6RK3kf*Ms%3r9}=Yw1@XI#?k?z0|zQQm!H~ng;r&d zAC6{A3$F2+?|L^4taw|q$FESECexy&E7}0^WrEhK~7u0YM jMmmjw*rS$uFDN4&(bo>8&VG{rLjZ=lraCAs=eYj?F(8vA literal 0 HcmV?d00001 diff --git a/lawOrgPages/static/header.png b/lawOrgPages/static/header.png new file mode 100644 index 0000000000000000000000000000000000000000..0f3cb02b856d4d19a94b1b7a0aa149f67dd22b3f GIT binary patch literal 3725 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 Tb;wAGMk2t{!p8i8sVDn?%aab1 literal 0 HcmV?d00001 diff --git a/lawOrgPages/static/position.png b/lawOrgPages/static/position.png new file mode 100644 index 0000000000000000000000000000000000000000..29f8279b8578abc692d8296baf216d7ce812faae GIT binary patch literal 2497 zcmcguc{J2t8^1Htn5;9TM%IzxXOJXoH8sk<#fT!JM3FR;ktBR2DpUE|A}V4UX&GtJ zFda*cvtO+U%nI zZSSsd73>iC7K$q$TXssw!m;$A?vO@h-uz>7RV#{?$fh=+JeX<;I&Zfn0Dj-~o?r<#y5Lwou zC6@w7=EDVf_9)<@a^wod2ha}HZZy7#2HE5;O&>0R{yVXw-0wdv(qBs-W+eFcON+l= z5@*^0;aHk~JsXWPn{WRXU!RaZJ{#>UQF_N=?=Z=xrwoK>I_#ZKzRbuR_oMiVx_GPk zE1RY>k`+(j0rQ5zf+=rB^ARb4&)7~$guY()D^G{SV@Z-8{nuE_)LE0x)^BpOZxdxj zIj)Tl4J(1rV^CNJdw8i?ipr1Guvc%f_SiKbuV5@~uygPIYjQH^mRZy*CS0%(ani`r z?51{q;;)5M(h#PNtBL#@%uI!Bvp=`-*~wtFJtcdYxps02DKGf8z zJ8hxdN4--&c6)6-8nuu$NH3^i`_hkeeOlXSa_vwV8t5$&DudAAsV_z|P@LOcrA&;@d7zprzo|5$AZF+7yqlnv;**}b|p=}95s5y-(F#zH%EGUk+W zYMiD8d!dblOQHwiF_|m~G@UXGKbdI(fplFp(ZLS`(x5j+DvMT?_m*P4HL{@bt;w8f za-0o~!KSw=?k|35i;pA9n<=Q&pJ-oOG)I7dLs)u%Qqfx~_gD|=rTO^#`J3;kT+BJH zV7+ap(=Lg&4>-H8puFZc8rbuKA`C)uRlhAQe*T!Z1&5MbatTgMLk+!DBthOcPWCEX z`bV1!*)IhXdk;NoPLpBcSJ4>qmoI&PI_a)cv7Tc6`GEoCE$09aU}{>taJE}tzSUn^ zGe=rEv`q$zlHY{?RV@}Jp3I&6&6#_s@+mfCq0sY7g(<%-M6&UTuvXvtV?JrEmgmJu z?Py@zw79Zu^!)y&1B*mcN=X7Ab4Uvv7-sGWga#oNKdfq>ecn9h6zL|iINIYzbo3dy z3y=ORk&M;~ODnA1e>OkRvl2}{i`NKcFl{^%@vE(Q%7_NBu$%7fijjh;7vij8Jyp`D zeNF923;dB8N!rH40T0lP!+K=WQLiiYbMCjThTpfKoCV?9hrN=-_WGyeR}b3p<|%wv zod6ZS(`H)#wUm2Nb@W^>HqTeNmo?f~LXN?^-gmV5Fl694@2+2z09s{e zJyai;DQ(ar3;)=ZH~vL=WC=^U@mPQ1MEB{uOCMJ&l`700FHSn6I9vUTBSDecAkBKs zd=7$E5{(<#&&-VR1FbY# zIOVZ960B+xpiuf|e^A;?hQ=L)D2^VmbgPL|1}M1DzF&QO*x|^lU`K6S_qx&M+UVl@ z9Ew<_+eBG)}AR^l>?kjeHZelh4~E0?QQ(juecJfKa?EalfWy92%XSW2A)Q*a3W&?f z7L7cR-B@fK#LA(^-MSinBeQRwjfKAV(qnH=Bdk;EI3PAEN0MCF8i=KchFEz%aaHQX zTee>`FhG2-d@<6xzJ(~A;%$dm`Mcv9_bm$*oB+g?71J4e+D(RbI>Z6*EZ?|pwkeuq zREoKfale+m|Acazu~sL_-f7Pd-(ZVR{PTq$K&in4$%{`2X;-g0?fVnopoPHjQSG~% zF&FMWuVw25PKd^bQzfP~dvNg3tmr!y3(l$9rD({3mEsgM*r8McxuZ1yzeU9VSiOAR YE_+WjKNcY9LuxYM;^1k|+Yxg1-<0`Q>i_@% literal 0 HcmV?d00001 diff --git a/lawOrgPages/static/ticket.png b/lawOrgPages/static/ticket.png new file mode 100644 index 0000000000000000000000000000000000000000..09b99c04e9de4b9a0e1102c36714a59840b53424 GIT binary patch literal 11751 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 + + + + {{ title }} + + + + + + 【{{ typeLabel }}】 + + {{ configList[activeIndex].title }} + + + + + + + + + + + + 返回 + + + 下一步 + + + + + + + + + \ No newline at end of file diff --git a/legalLegalDoc/pages/index.vue b/legalLegalDoc/pages/index.vue new file mode 100644 index 0000000..da83e39 --- /dev/null +++ b/legalLegalDoc/pages/index.vue @@ -0,0 +1,108 @@ + + + + + \ No newline at end of file diff --git a/legalLegalDoc/pages/result.vue b/legalLegalDoc/pages/result.vue new file mode 100644 index 0000000..ed42098 --- /dev/null +++ b/legalLegalDoc/pages/result.vue @@ -0,0 +1,143 @@ + + + \ No newline at end of file diff --git a/legalLegalDoc/static/checkbox-selected.png b/legalLegalDoc/static/checkbox-selected.png new file mode 100644 index 0000000000000000000000000000000000000000..978b6c61abcb5eeb82b22a4e8a579c4a545126ec GIT binary patch literal 2760 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 literal 0 HcmV?d00001 diff --git a/legalLegalDoc/static/copy.png b/legalLegalDoc/static/copy.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c975b5ca06b647f34e6e12fa85d37c07f2b354 GIT binary patch literal 2593 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 literal 0 HcmV?d00001 diff --git a/legalLegalDoc/static/radio-selected.png b/legalLegalDoc/static/radio-selected.png new file mode 100644 index 0000000000000000000000000000000000000000..f364367d04475aeaf70c21677f3995219fcf3645 GIT binary patch literal 4215 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 N002ovPDHLkV1o0x&ZYnW literal 0 HcmV?d00001 diff --git a/legalLegalDoc/static/radio.png b/legalLegalDoc/static/radio.png new file mode 100644 index 0000000000000000000000000000000000000000..bde8fd7cee5a8de8da9e86e89799cd7623ab89ad GIT binary patch literal 3530 zcmV;*4K?zKP)Px?gh@m}RCr$Poeh%PxDJGslO?&4Z;<2$zR^xjw!3shht^1zh(7{gPt~he*^wop ziBAnswC2l#A2kJTx7)Y%TK4d3rz^ zx0o4j>boODSIN=iTg#t>{%f|3dlfH4G&)TLJnK$7$r?WV)%OU{pnj~SZz@PIgXjhggj z6XDCQTgoonH@kzq0u{dO3Jb`ZEdRJDD*h&aeO@qR3wpB~pvdBBM?hFm!U5u>oT>nn zi5~*P)f>a=u;uX4t9j+-5pKU%C_o06Qw4;f4sjKVcgHyZCX}0m0pxbOm2%3u)_y?Y z-6g2t41^^NB<=wj&}*b{ie6||SgiXN_n^22#JHqN?G{&oX&Qa2p2amJZUHeYsa#Lc z)x_2~&hQ51b`IPDVpvkSofM5^=bUq9P+S3GFcB!D7^E1?PZ^!78BiQ3c>)6U~n{$ zl<)IMeoa~(5>-Hi;XuC;6pZb#g%@g6AyESaa3slQr7(mcQL8F60r^)*TR4Z1kls!s zc@w?g?<%>ha#F#-RqfMT!pt}x!CX|Qk#ViK3JAE!rRO470fBqO&84&>XWqCkJr_9z zggFR&$0Kce`Us3!YMr{s6+qw~K5_x0*inF4YMr{sTR`9*$jJx_FgG*4brDTKuyPe4 zyAq6%c_V-8B4>b*%PXv0CCI!$A#hyeU9KJi!lV-J5h%Gb43(L$hh>%uAaIWiDHksW zhKn4QS?>U$mRE3(c)68g#2QP!yMSofRf<_a5N;J*pC3Ay2t6dvRidAuoMa~ zTx2(QKLMgaVG89DLKt%IQdu$@0#O<4g(nI#7Z`VZw<#_3rKP?vjaUOyZ}f;3hX_%IYuQh-rrJ^GLe z2zCDz`VXav#c5>}03b3t;w(uOU{ptsn?KhCvqy7R2X^9trOrCi`!Y2aqcx`TV5DFmpdTo#dnSGd?M*Rz;M#Bo$?3ouNel8$b z;tev<7$!{t#y-Pe#X$fFO?P}Mhyt7{i313hc!MO!?85{gvu6O}f2#lkkdNXZcm{$5 zORWF^Nj<#?PC^0Vvk*9lg!njze+2-D|2e`42P(h;gz^*}f4z3#WaHBP3ILFP&G3nd z6re6fl~pW?gJ2)lM9GyQQ~;7;77>G*0sur!TAVn80>nyb!GppKvyT`~6#yWo65)WE z6(9nF2Zb{y%}lWakeOy1v34t94oLe3?C#Ox15m(N0RUnwI4&1Q0mg1#);9|Ag{e3> zGWAFS$kfx1;LjA`e65`Gm0P^k*citlB=X|4usoh|W~` z7A{y~gZ^BhZ2=*zWT8Ld397`k^2xV_xekg*+#^0kKG&mCkJ6J_oB?2EhC-9%Xn0= zyU=t5$j@b2eh_2FLqno)_!v(C#+ReYg?Hc5a|8&d%z}&X<{6(RD!?hPj&`N*0>Uh_ z@Jxg_!T1$fk#ZfBS}9X>Y*5_2VNTN#*^1{WEZQ>m`Z%)`@_ zt5&RDK)5b~Ehwo{)jk+Y_vk9IniVZhFM?9bKBrP$(b7GrfN)&|rBU43JG@`N;wT637g)$feXPQT8T&l zBGr!o5?-!_`?OF~E>>Dq0Yw2>T|}fG;V#dG%aDl&>=h1?Rjj>vm9k1elAjvSaHs(y z*pG-?X8x3m6QSUZRJ8AC6%;SAnx$WUdayj+<9~cD= z)e@_55~-%Wo|64^)PD-)9HHP7@+y$n^Nu6MRUJeT5_Ms6rs%k+BEn(fAb@0CQhK?v z;7XO5bJPo&I7kBt_p7?wIfs*Yq2OQ~!u^K%s-`I*YvV2riMeRbbJE4|6iTWg3pM6| z01_AZt2zjUl4=MXraj1ZMii_UPNJIj=O zTuQDn%sGZM>3a#FC@dVsfH+0ha4~;F9mK#%T!?Itr{ za1MqoRQMGkjQiTO%kej4}WuQ}pDXBsOvO-e! z`IP^aa$w|7=~>*nOXCt{xYB#1dh{=)Yw0&a^>|@QtnEw;D!Gml;?cLPzbxg$kR;eR z#AqN|t=#t-M-v+skiosl)jMYkPWj9O911{9^4Dt@H~6~#W27^@)57%%)s;yM4@lFS zlw|RmC|Bm<36S%ozYxP4M*fl2%x zfLu^9Ss4Z(F3dT4kPeZ8H~CK>N*t7ZU<|3ke-sWPFojJ?R?jwKUswg<(L(?Rfrn_~-xxGH;Xv=)vR$o2~5R~WdKg;d;q)Z`z(*OVf07*qoM6N<$ Eg0SK&(*OVf literal 0 HcmV?d00001 diff --git a/legalLegalDoc/static/star.png b/legalLegalDoc/static/star.png new file mode 100644 index 0000000000000000000000000000000000000000..9156e67ee539a644165406c881fa6def2bf1b983 GIT binary patch literal 4722 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 AbN~PV literal 0 HcmV?d00001 diff --git a/legalLegalDoc/static/v2_suc04p.png b/legalLegalDoc/static/v2_suc04p.png new file mode 100644 index 0000000000000000000000000000000000000000..b791376f00b3b7c377ed88db1f858021f66d3ee4 GIT binary patch literal 24420 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 vO5L?a{gY2FgZs}q^Rd5#<6s + + + + {{ title }} + + + + + + 【{{ typeLabel }}】 + + {{ configList[activeIndex].title }} + + + + + + + + + + 查看上一题 + + + + + 确认 + + + + + + + + + + + \ No newline at end of file diff --git a/legalOrgCheck/pages/index.vue b/legalOrgCheck/pages/index.vue new file mode 100644 index 0000000..a6259e4 --- /dev/null +++ b/legalOrgCheck/pages/index.vue @@ -0,0 +1,109 @@ + + + + + \ No newline at end of file diff --git a/legalOrgCheck/pages/pdfResult.vue b/legalOrgCheck/pages/pdfResult.vue new file mode 100644 index 0000000..058095d --- /dev/null +++ b/legalOrgCheck/pages/pdfResult.vue @@ -0,0 +1,27 @@ + + + \ No newline at end of file diff --git a/legalOrgCheck/pages/result.vue b/legalOrgCheck/pages/result.vue new file mode 100644 index 0000000..9e519b0 --- /dev/null +++ b/legalOrgCheck/pages/result.vue @@ -0,0 +1,222 @@ + + + \ No newline at end of file diff --git a/legalOrgCheck/static/checkbox-selected.png b/legalOrgCheck/static/checkbox-selected.png new file mode 100644 index 0000000000000000000000000000000000000000..978b6c61abcb5eeb82b22a4e8a579c4a545126ec GIT binary patch literal 2760 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 literal 0 HcmV?d00001 diff --git a/legalOrgCheck/static/copy.png b/legalOrgCheck/static/copy.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c975b5ca06b647f34e6e12fa85d37c07f2b354 GIT binary patch literal 2593 zcmcJR`9IX#AIC>N>VtfJMwVo%&tz1V(lqJjYyHSF)~F0F<3=KdEMrMyX_7TeBSe;N zN+H9bm~i#Yo)FU}Q}^0iF!@?1jQi>F?fVDx=y88I=ly(~b6)51KJVr6I7#+)7BW&> zq%ataj3wFhC~7;t4RAd=mpiiyP$L#{)WQVA?!kS;U?c}EO_Adf?o;`kG&ddj_^6U& z#hU>&37S0lCOOe1Ny+%UxCSfU^tlhuAvVmH?7rjFr~Ct;)!XN>aV=Rx62VE~KDX;L za`Nk&(gpLJCg0QJ5mSOir9o1-jZy@HS$9E_R(TNvENn7{yf*-Bd@O7u3&LOsX5AJs z3Y4nimqUl>=quqdP!WT(23ijBH}#0(e}=WF|(bGYI?4m_UTPRquA1OYp*e z(Y0uAv384k^{Za@#&A0hn?cI?MJB-2W|JR{ku7tj-zfV*uS}r~lN0OnoMbtI&12HUkbQ=Dv3T`UdccJw3K+j1LY!3682A z`HP|8F(=X2-kKOJLVM4aNIFVi^aTq>-eDlWCG9>K<2NbbwmulRkCN8JX*> zr*@7^i|?2@u}y78WCGO#Sg({ji;i)JALZjXYQVsMcq1ML1-iFz+}>>}Zg~g|`>p_) z!`C_`!I9(Ot?H0tC>;L@5YF$KHK<)!sra~W#`Y`ie%V*+5F^&?iU2BxB#_eFhddeY z0A!dfXzDO>2ReJ}o;KMt;JYz#U;gXp-T<<)&pjy5hCAd3wSbZ^sfn$d86W6EdFyWp z0+2(OHWqgc*BD)xjoC_ll!Ii3(*lsg=XKnk;&9=w$+WNuhHd(pDXLcCa{mx+3q>1xQea zo*w8i?1A+nBK1=OgYwEZ(`8u+KBV%h*8ZZfRf9ys$%h(P(_R&X78Za)y3~&Y_mJIp z*+euUp^zV7n^{uO8caIuGyQ?jXc-FeZ9X9fcRVxqTNTOyL&Jvv^{!;(oE7Ai?5}ua zR#8u)YZ?uxFp&IufLo%4Ks~S@Cs_ea2pUAQB|i>3hv9~+-Tp77_K#~}-1nYA-vT7u z8HKw`6$I}=pO`AW4QUH1wSv-{%>GosycT`P2(M?6I%3It7=b}J#vAPJ$u8}biyVft zeS_a61+T}fl##Y0T0QWHOXCB7p7o-W-MrQ-excxQ)yQz&afZ`p7bNVs55Reut^HPMWx{=Wz- zTQw-xxe_^^7Zir7TQ$O@vfdH*rtxMyQtqG))cMQDpX#8WY``Cq3tzSeJj#9HV3d6@ zZ?5b4nR_%6`3TzJjb_w3lO%=xg- zhiF56bl#ovCjKoP(IZ>4!~4u$yGTOkq_2L6sqS!$E1j$81zYK7xD{ACJF>=S%;R>O z(I05UFYlrBYwfOE61l|iRnHS89XSm7!@QfSpeLrUQW7A>`S!`9Wmj`n9GP^^t%-wo zZtmWKK%{F2W$=kI7G)HuCHc049_R`5-%|#N>wI56`^9IqYJ?N5nb$c5llPkpu7_H( ze9oK&SyuZFuQn>A&-*;q&=C^Y6K&eF>rEIEd}TuY@2?nM`<*1n*T zc158D{*8haPfW5MbvA$q#A~*?38AV?PZF0R3t+_u9NQ>e(6~(QQ}qoDKAcEAN39^t zBzUYmi`ZCMv)IxryWPm(6UDdN?YC}af;g3uvC)2m?YO&6e4_=k!6m+~w4phfWg`p) zl{C$!6;9R{fh^osnHM$~);s=iYPfxs3CcXCzVkPyhf(l87eOFzklg zo9&`-ZF}!foc_C+z>U3sz7yqoqK1_qxBzxQ|Wt;#( zgc568r3=q>aWRStihGFPu6AWgMl7=DqbX72E2j;8=S$4TG|J}oca)E$&VY)Hk(2mp zPTHtI^%qI-LOF%M1eanJq0T2T-P3$ufi)g^MmvbpV#;e&d;F1j-ao zlfYq9dXT`VZ_{dy_&H+)%C>sAmaRY%qYslW+P(zDD3}Dd!gODSZb`uWSaVHqlY@R> z=n;%I%Cx>U9aQiF{4Mgfxul=z&12c-d3H$H4T*_SSabI>V%iM>;CEodR-5_Dt+t89 z=ya>!A_j-9qL~X>4KGScYNF5BdbS!8wF-nAkdUy22j^oO-rr?StKg=x6m-*qQUi#g z`&4*h!XS@1q3Q36mC-i8(FTyJVyX|}jH9u!*?I({)I&)vJohVoDy=YG>&S%qoFuG% z*aXS6VvL}+M+@gk9K=F}9W9>JGi&B?-YrZ1MaSuGqrqMxP+C+#vXP}aPQl`#*%ckI zcI9}ACxIEa*4^k9C7cIKBEDI*P#*H(2(PIWFhsxt^y9rPqOkZo{|YfzWMmcszT>~2 z?@uo6_n9gWF_RtC0wA~a3%iKfma)-DB0dK6=D3lQk%kEH+7se;J{!W+PH!ioW3H6- z`u4Vr`?n`;q)!xXMa(V_-Y;!h?wF2rd9`9({kdI1)ptx>n-p{O10`fkC+_r5{@_|} z^iVXLQ)gip;qa`98(MeSr1@Y}A?`fTor2Yul%Jtm5-)F*g((>e9s0Om$%nY_AKj_% z3)HpO)QzGv1BK4d>JQXGkv^46#P8@rv17_So65D?8lJA7WhRn^(aU)N^WU;_{0c^a>dInf z;~50F0!o>k3jO)9eX7}cy{25o?&&6fFgK$7_{L0)edt3OkmA8|RhY&fP0Vt9=x^jo zGk$*b9cPuF4e@(7Pke~H`Oj{f4cO%~gq!{$k<(e3A4a)?OLq!;-}v>pEKC_3S^0A# zeM@Tpi~ZL`$5=shZgaz+)tFn5zwuJinYF#^JP$V) zZ3`6bpLKVeCY`Yivzvsrz;iPzv zc?DVBDo09<6V%Jem;Mg`)NK+ z{>y@Qu0xvISLv^T2g$Om_&*J6i!PC2f@Ja+MoFg}n9b1(V(iB&ja?b7eM%;uAK%6l zB|O7+j5w3tLH2cGIW2z*58hT7h66&PkQI0k0VW#76WAg>1@UXAfAvx$mJTu^rg42> z8`80a*I05lbh(L3O$v0rcns5T*d|bCSl}s4)6y=&jCbZfj9T&!iXwWmGzcX9P#7Q+eTuegt=4i4%+h;i<%iO1S>4HYzFs$C}+OCl4n9X;g@#ThZO z%ukz=eg)_IG6L`EsK9z&#DN}n9I#oS3cc_^uiimw$9lvjgzV^vV;5%#Lq9X#T35Bx zPT*R}uHFBrho=A?ZE=be^q#OhrWwKyPAtqCy}|3P)uAYV%|;BUAOk$6Z$p;6yiKZT&W9`;P&X8*AdF*lN4QN`;{x!pa4x!ky)(QvC9LrjGk#!3 z$q?LAb&>M%xo4diMw8de`iRPly>a(k9rIY0C7_lL@fUSsP_KVl$ax&~G-;FDn81+Mo=u{J+6lr%ruPV}rZVzH4MHPprp-eDJ;jT9?s$e&-` zKz+1o^#JN}3+K)3w{B+7GJPihqWylG{QlU>-4Gm}x5T*K$&&p@|Mz2O zPDqVGtaM8z)LCU9`fQ`&L~Zvk1RQa1&&>zv6S)U~>_;;SDdPuP$!%U%&GjHIz+k+- z@=35y-aG#T2D;!iW%Etz`<^Z$0E6Qib92!EO)%Q&q$Lb(zbj4@HnA;V;!c)+Gf-Kl zCCZ}BgFE-X-&~)*GwdBVFH;&>wbU*I;xbO>QU`brQ^SziW^PQ_0W0Hn=vX`L_U9Tw0mb8 z5p5`d#Uz{PGCZ9wMj0s#+fOjhg5GI10QANyF;m+LeuSAs31drmt#yf${g_sIX&J1T zPdc%-#BtmR`MTk>lu>Ut}sOq}XpsMzw3( zIZvMgkWE*;5R5dz`kiN|KMd&f@jU+BptQIHHm_FH(P)MN(;CN!UFhps{x+E3wdz%N z5{I?9`!nQZwS_ba8oJ@l9=%utQeeMXoWkXQDU@Qg?-#@6E6Kxa*72|*?UJ6qu#9pK z#nfw^xuxG9XeW6RX3~^9dNp`^M}A3$>184v_p*wCZN%SPHWKD$OjQ&mJ^|i~q=Ejb zMl<*)0{r&fM9^=t=tZNmg+fbE>*xKPvjH4oXztby4dwspNziKUNiNdVQ1SWi(zN4M zCm;SFe!`YLbUznKH#rwpm3*rr<#@HJXZ#*imslxXCuI_E_RBb_mQK!s*JTdTpIv-! z03cyhysL%?zKMIt%UwJ-)du&q--KJ$i!Cb5M36`mo%VMyZ}y?fd_`^{V^jY_xmBPx_F-b&0RCr$Poj-Er#u3KBK*=Ub%uB3--9WjxcOZQN2YUg;3g_nu}W4zZ{uO!&cnmM!F)aFp6*xW;#vcvTLj)- zK3znOU%WKUcOwUjw~IH~^|wE3nxCTowtIXyKiP)ugbX%(X7HThr`&)SgZGZ_$Uk|H4Ha@v8J zi%|5v12Pb-9u(3QB4M}(H*JA&br}w$1JcFC7!-rqaMm<8^o7InB|N49aVW;c$6?vW z#v~w7kzKoe%C%o1Np7sFiYY)Gj67Z}s)`9f9E?0L2KF{n*jEk6+smixXnGc&CEj4` z(W|y!RRZE*lt;H#P^tpNtyFn1`bVq{lqvvmFt!IH?mX++%`LdoC$@Adw#q)&iGA~2dD z5f6wYOGOX_b&v+c9Gn4|+q-A_<)MTN4Xwu0BBSV^42uRtf~C?7#RN3F+xzDW39v|4 z6S077X{q8`LYq>|DM|nPNLf;Mg>5ex5^;cZmWt|);-8=vwL>u$*xUQ(_N&{w{om4` z&%bPZC(Uw+0%R*oWgUzG5N>YopFeB?iZnG51IQL|y#MPfkuy-GuiR6|BULF4iX=!x z08$zb0wZ3lkd%;8`%)SdDUfUqNJ%)zO8xWtYpFS?qF*IJkpRi2fRuv6YYZ%VKm7NP z-M{|xzvhR3|G~bVvNa@|0a9Wb*TKMo(QmDknrsQlCV-TH!|M!QIO5g|fwKGg;rv~> zv)Ui2I3V0`xN4M6q5bj5c76Z%-?=SUaY%{+!d-KC5xxx^CDo*~-6{qMHym!MwudA1 zfZKAFgro={oN&0Mk^@HE6S~KXK;imrN-0R#0pWzhRYN8mr7TwoNLT@JIOHdAi5_xV zF76u~*#P0ZE7z5yL|S8yp%oG~K;B$Fy+)GEOHd>P(V294qyD+G?7^k zPD+BF21Xa{P(aXihr_{|pCTG(fCOr_V1RH~tH=Alh!{lg1YZO=Y7(T?f&jt+hZp30 zNhz&mCP*L;fXD`fqwa7xq@^%_f22Z^4G8-7bzcPJPe!RnU|3Adu1B%}L0c<_Lu%@l z>lYf5+*z$GK#;Rm4oA5plzt>IBv~r58W5y<_;jxHlr7&seDl z`VrAZ`&z5D77*C`$K6^c>fzR^zN9UEMyOe>r7E%r5R`g& zVSbuUbHAwb2UHx#th9>E0^;g{xkd&M!izHJz~~>9KnbvX`})hjF}>5(N=X$d28hMN zocr;cWLfEB@O5(Z&l7+8Z4-3-?>_(2p|^JV=FL*fUzKYrgK-jg`Ba5xGG%3jr~9+DJe4z5}+ zQm7fNDVsG42;#TqwGIqw7G*B6k>C4ROh$9mW=#Q-{qX79)B|0ud&aT-#Q6F}Tv?bAooELD!$)beVHVt^p*RSh>KA_AV1xFz?kK}oo5)`^1TE)LcZ zY)f#|WVaCG*0)(lfVjPC+IM^3-aVJRfQvbn_KVx?-Sf@u{qu*MfU*OkdF{h893iPR z&u($ptRn@nY_A-SFV|hoH6*}h9ZmN_0nvQ*0o@szqwb>i)#?NgDiW`%9{@qrA6lZeQ1XbWxD8Ciz}K(gQWp)H869?RgMtt?*r zLZJ=;M59-A^;iyw#_`RqLqeh60+L&xYxAkD9?RhfTWV90TtJ$pX%`F~kn~(Jxra6t z0n{N!fMm^JX}h|(y;{e(raBV*Xxgb6g2?? z81LPgr8N*h!16Opc?+5>HDJ7L0g@}Z%5xjieNBJ>EOkC0nj|-ORs)h@6*QuyPrbT17V$th%#4;p{ApxdW1r7{2K~0uD$* zCK&Rg2~nwgQ!RkdDCE|i*$U!-)D6SX**PEyW3DAwUZf`s>ddB=#ynd=ECmafV!B(h zH0Ig2npg^!?zG1B-q4u)N;)oW?6hR4?sP!xq&4nL9gu`rYLQzyCBIoQVPHo#)pWC> z-_4si-VR7&zy>xq_WPfFi)Ace`5C6X1xw>i50A_KMWH6i^|g?EIxSi10LaBl)BLzL zbeaG`+WC)Ub(^&Yjr~5> z0D(POQ4=7DE6e&6)4iuAr+~N+#(+=_adZbMre?B2YUKVL zb9svC-cp--ATEAK?fvi7{071NIO51vftH?MYTHyfIA2*K==hsJo zAnFjUfFQ0q3+%kAO*C373NWIs4E4tlASUY&w_3;SYE=)^g^mpn>Y!#7L0o-Q$;3cs zHN%0nS0@T$xeoDqMBm-IeZCPFxUfJN+CI!;weocNl)Yf6b-FhWw#BL68paK=@EhB! z69qv{_iDCT7L}w1I1u(KUjG+Ge+Z8ESFalStNFuWuLc#wZPsy` z)NHqEP>wKK9QJAu5Vu*U*U=gwsR<5*dJNgCQ9xWpP9Xsef(RF*c`A1(fQYf_&t8qz zAgDS-`XpQu?oPTWys9kyXT@gSG$$sQtl~xH4BKVNM4SI zm3XezcxzA`)yP+$@&;%BbK1iXqsAH=Ez-jdC>5!77G>!u5hNdf-QTv-{yXs&mT)Ub zYoT86ZIsmy%FaRnL8?e?bMS}+jX@!RDEa#z%P??RD{6PDI1k62RS??HRRn>8w}FTN z>b9RH>anN>2`82N+^o=!s|X@ZY_@^2R!h|*2@u5NN$G&rYZ05NjX7(?v~HL5v&DIm z#X_ryrDeS!Hmgj87|uzEdGf0C~~!>!?14G2<2s1sg~tWBYM z_X9npsBju$ZTwnS`h41VDYqWKf0>{=?eB2)Nr}gLPb)4 zJ4kD_rZA5qm<0$@MW|B_iT>oyJp(ixsnfbp1?f}-R5CpkMc>0QkH_y zfzSoJ7wsv-SI@Q#aM15P-aS5??{cD)4M+zGY=u3XjL&T446Ckv(KA-Lg*mJSi5q%z z`2@9Et|YpWd~I(f!_k4Z_S8=ILqp=Xqu|CyYD>u5NWwWT`61NOct9*xI2cDg;*cyI zN`2cQ*E+)4BkB$oixoivuSXmbeaS!7W3E?A<%N4afN<0t$fCR- zX%;}}AgG_{_B-seTY6#Pf`cN0tUFjO7H2&Y+V&N9eUNahb8yuiMF63Lpl?NqJMNI^ zfrJ^3)i)w8i6EQB;w;)-NtO()jBPZ-(bYEmf#g&Y%a7mWAG!5M;F_t5Y!$0=M8{bl zgp@rwA)$V_lMvKl%u$UgadM|k;Fmt zso?Uca8BVyXEXY$G_Er)svspHam&S(GNxrNkV#%npl6Q1`-wS8LBO7j((gru~;Pw_xM1fI1fzo^`za(#$9m~@Vl0*vHHqsK3o~B< z3Oeu9H}5V@vIX01HjO*iH?e?hRhRSw*1mT6o3E-;6(LZxp_Wu{48bBAkPecIm!_dd z3T^%guxM14pbj(}wV_hPW4P)7}}acMwF$;=xOQjl+$a2w(L@#DXL&yfCG%YmU-vH21 zy)%{IqzLi%0+nGZ;wmhadO##wE+IUM>xMSfhy$p~VhxSF#M(q$hHlg$&0vI(sRtz3 zF0x#xcernqPc}w0_P{euSfQ(RM2o{H8;>ziO%*jgk{H}^> zmiG4-t`rLfejg|Qq(&er@-@^h2Ouoh5~*YCMf%!^4eUn`ng~Vy=U+b(H1sKbJAMG+ zr|$SW2O@uvT|x3=IN3rBPiNBtK=FQKFb)13_4B*H34+6S4g%jG{vW&$Bc-hh#^C?} N002ovPDHLkV1o0x&ZYnW literal 0 HcmV?d00001 diff --git a/legalOrgCheck/static/radio.png b/legalOrgCheck/static/radio.png new file mode 100644 index 0000000000000000000000000000000000000000..bde8fd7cee5a8de8da9e86e89799cd7623ab89ad GIT binary patch literal 3530 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 Eg0SK&(*OVf literal 0 HcmV?d00001 diff --git a/legalOrgCheck/static/star.png b/legalOrgCheck/static/star.png new file mode 100644 index 0000000000000000000000000000000000000000..9156e67ee539a644165406c881fa6def2bf1b983 GIT binary patch literal 4722 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 AbN~PV literal 0 HcmV?d00001 diff --git a/legalOrgCheck/static/v2_suc04p.png b/legalOrgCheck/static/v2_suc04p.png new file mode 100644 index 0000000000000000000000000000000000000000..b791376f00b3b7c377ed88db1f858021f66d3ee4 GIT binary patch literal 24420 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 vO5L?a{gY2FgZs}q^Rd5#<6s + + + + {{ title }} + + + + + + 【{{ typeLabel }}】 + + {{ configList[activeIndex].title }} + + + + + + + + + + 查看上一题 + + + + + 确认 + + + + + + + + + + + \ No newline at end of file diff --git a/legalOrgCheckSuggest/pages/index.vue b/legalOrgCheckSuggest/pages/index.vue new file mode 100644 index 0000000..90f7411 --- /dev/null +++ b/legalOrgCheckSuggest/pages/index.vue @@ -0,0 +1,105 @@ + + + + + \ No newline at end of file diff --git a/legalOrgCheckSuggest/pages/pdfResult.vue b/legalOrgCheckSuggest/pages/pdfResult.vue new file mode 100644 index 0000000..6c6d37d --- /dev/null +++ b/legalOrgCheckSuggest/pages/pdfResult.vue @@ -0,0 +1,27 @@ + + + \ No newline at end of file diff --git a/legalOrgCheckSuggest/pages/result.vue b/legalOrgCheckSuggest/pages/result.vue new file mode 100644 index 0000000..c06a158 --- /dev/null +++ b/legalOrgCheckSuggest/pages/result.vue @@ -0,0 +1,239 @@ + + + \ No newline at end of file diff --git a/legalOrgCheckSuggest/static/checkbox-selected.png b/legalOrgCheckSuggest/static/checkbox-selected.png new file mode 100644 index 0000000000000000000000000000000000000000..978b6c61abcb5eeb82b22a4e8a579c4a545126ec GIT binary patch literal 2760 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 literal 0 HcmV?d00001 diff --git a/legalOrgCheckSuggest/static/copy.png b/legalOrgCheckSuggest/static/copy.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c975b5ca06b647f34e6e12fa85d37c07f2b354 GIT binary patch literal 2593 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 N002ovPDHLkV1o0x&ZYnW literal 0 HcmV?d00001 diff --git a/legalOrgCheckSuggest/static/radio.png b/legalOrgCheckSuggest/static/radio.png new file mode 100644 index 0000000000000000000000000000000000000000..bde8fd7cee5a8de8da9e86e89799cd7623ab89ad GIT binary patch literal 3530 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 Eg0SK&(*OVf literal 0 HcmV?d00001 diff --git a/legalOrgCheckSuggest/static/star.png b/legalOrgCheckSuggest/static/star.png new file mode 100644 index 0000000000000000000000000000000000000000..9156e67ee539a644165406c881fa6def2bf1b983 GIT binary patch literal 4722 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 AbN~PV literal 0 HcmV?d00001 diff --git a/main.js b/main.js new file mode 100644 index 0000000..f19dee2 --- /dev/null +++ b/main.js @@ -0,0 +1,38 @@ +import App from './App' +import uView from '@/uni_modules/uview-ui' + +Vue.use(uView) +// #ifndef VUE3 +import Vue from 'vue' +import './uni.promisify.adaptor' +Vue.config.productionTip = false +Vue.prototype.$toast = (title, back = false) => { + uni.showToast({ + icon: 'none', + title + }) + if (back) { + setTimeout(() => { + uni.navigateBack() + }, 1500) + } +} +Vue.prototype.$jump = (url) => { + uni.navigateTo({url}) +} +App.mpType = 'app' +const app = new Vue({ + ...App +}) +app.$mount() +// #endif + +// #ifdef VUE3 +import { createSSRApp } from 'vue' +export function createApp() { + const app = createSSRApp(App) + return { + app + } +} +// #endif \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..0335941 --- /dev/null +++ b/manifest.json @@ -0,0 +1,77 @@ +{ + "name" : "规范涉企行政执法检查", + "appid" : "__UNI__75A9827", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + /* 5+App特有相关 */ + "app-plus" : { + "usingComponents" : true, + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + /* 模块配置 */ + "modules" : {}, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : {} + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "wx25deb2f4b5cd2b81", + "setting" : { + "urlCheck" : false, + "minified" : true, + "es6" : true + }, + "usingComponents" : true, + "optimization" : { + "subPackages" : true + } + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "2" +} diff --git a/onlineSheetPages/pages/civil.vue b/onlineSheetPages/pages/civil.vue new file mode 100644 index 0000000..2e418f6 --- /dev/null +++ b/onlineSheetPages/pages/civil.vue @@ -0,0 +1,131 @@ + + + + \ No newline at end of file diff --git a/onlineSheetPages/pages/forensic.vue b/onlineSheetPages/pages/forensic.vue new file mode 100644 index 0000000..a375b85 --- /dev/null +++ b/onlineSheetPages/pages/forensic.vue @@ -0,0 +1,132 @@ + + + + + \ No newline at end of file diff --git a/onlineSheetPages/pages/legalAid.vue b/onlineSheetPages/pages/legalAid.vue new file mode 100644 index 0000000..dc84516 --- /dev/null +++ b/onlineSheetPages/pages/legalAid.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/onlineSheetPages/pages/newCivilRequest.vue b/onlineSheetPages/pages/newCivilRequest.vue new file mode 100644 index 0000000..df08ff7 --- /dev/null +++ b/onlineSheetPages/pages/newCivilRequest.vue @@ -0,0 +1,167 @@ + + + + + \ No newline at end of file diff --git a/onlineSheetPages/pages/newForensicRequest.vue b/onlineSheetPages/pages/newForensicRequest.vue new file mode 100644 index 0000000..3940149 --- /dev/null +++ b/onlineSheetPages/pages/newForensicRequest.vue @@ -0,0 +1,392 @@ + + + + + \ No newline at end of file diff --git a/onlineSheetPages/pages/newNotaryRequest.vue b/onlineSheetPages/pages/newNotaryRequest.vue new file mode 100644 index 0000000..c1ce0da --- /dev/null +++ b/onlineSheetPages/pages/newNotaryRequest.vue @@ -0,0 +1,266 @@ + + + + + \ No newline at end of file diff --git a/onlineSheetPages/pages/newRequest.vue b/onlineSheetPages/pages/newRequest.vue new file mode 100644 index 0000000..1075099 --- /dev/null +++ b/onlineSheetPages/pages/newRequest.vue @@ -0,0 +1,162 @@ + + + + + \ No newline at end of file diff --git a/onlineSheetPages/pages/notary.vue b/onlineSheetPages/pages/notary.vue new file mode 100644 index 0000000..fd8a952 --- /dev/null +++ b/onlineSheetPages/pages/notary.vue @@ -0,0 +1,143 @@ + + + + + \ No newline at end of file diff --git a/onlineSheetPages/static/bg1.jpg b/onlineSheetPages/static/bg1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..51a371424aab864a1033f1c66733c003d0f9cb52 GIT binary patch literal 195826 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

^WP(^2p89`Fvff#X0~ijLkrOo>$69V&qK5@*-F }7yTS}2wM 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%0AniqKN4 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 literal 0 HcmV?d00001 diff --git a/onlineSheetPages/static/v2_sua83h.png b/onlineSheetPages/static/v2_sua83h.png new file mode 100644 index 0000000000000000000000000000000000000000..68641a2c9b504730c57cf4243b1424b47dc95984 GIT binary patch literal 2327 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 literal 0 HcmV?d00001 diff --git a/onlineSheetPages/static/v2_sua84m.png b/onlineSheetPages/static/v2_sua84m.png new file mode 100644 index 0000000000000000000000000000000000000000..eb135c571ca867160fc39ae8e602dfed0141066f GIT binary patch literal 2323 zcmXw)3pkYP7RSeAGEB_Pr8M%X(UvpSHhb|QyHGAfsGnOl+Wa|09# zWyoPO1Hiir{$Lk?{akiPBY5dXdTjAPp)METv|$+VT_-Vs#XvRnQC^`?=n8+|KrdE; zFIlJ}i#24Cnj}&ii!>y$nj};bMQTDZY$1w=!A=sY$-pjB!4|}mBvz3mumuDzDpHe$ z!$hIl?CfKbPy-Hd$oGW+VW!4JI0}qp5r8AiA1DAc5e^U$xS9Ee2{eARP7wrIo12LbbWH2Mz=ReiTcR zfGl9aK;TA{0wzeUMr90qqanKnM!|XE)I=fZ0PIN=BQiuIaNmHWA9)Q+p28?NWCX^7 z&Xg$0CBR2T6au~mFM5V(0R4fqkl8)UQI5IjGzH#wQ|AUhWC9Tzqif$Mmti61!!3`T?_Bm0xx%5~4 zG3d;C;d53@?S+9yd<->a>Dp%NUpr&cy>3ZJofNJ-=s_!&V54E z-O}`n)+K0QsYf-0g z#kw~-@4QJGN1-q)IZThhW2!g9pAyL|W4#%n^=sEwk_QdUE_Jl=0WI}>UvZ%UfnP6^L_{**4Wogm9lW(G?Z!4z@RMMX^y!(gMw{JUG z*?)Vs6_=LDu270s*4D(>+;UEP{Xy@cZ;UfrO2M0wqzAZABWwSk9s@pHXmu#V$T5AD5tS*u zGIvz&Qys=I|C+O{{ojPIMR=Ob%3Z&ZP{+7Rb=R>V{myc!KTJ0dXj`nGCCHC0q<0mZ zVneds1|)2h5w2)_G@AQ2PR7sH2%uhbGvDEw0&7&JM7(ICy8Q$%S2i$t(J%v#VFXiq zA9b2Bc>Z(p@K`NmoWtLlSiWwGk6u+hNU6wctDtX=a&lW5PxJbwJc?bI89?4IZ*Eh33m1fcJ^h;_st$EOzOPte4LW} zxwrSg2JL}vhqf$sPS#B3#C@Sdu+ULOt@kwG5MlUC$Z<>H@+`Cavbt3b^WxZj-ha- z-;Cky_aE8P9{Z7OD>HMDi7f=tSCgN_|4yr6D3beEDs(F2`g{jF+iT|)(Oj$RT7}Ri z{zl{Jj_GDH%`X|NNc{Z9Gf`Vt&Z#)hTG$VHUVYmgx;1BQ0Cad|B$MU&YpF}7^IW=7 zotIs3|5-qjBDtRC)# zA5Fld2~KmN=}=x;E~do@_X2Io-bE9PaUq{(x`qqIhw%c#c^^8^DNAs2K8Cbst%a-g zVVi|rW3<%vWqMfx%!5KY_7xAqxX^*NBA@VR(l~0Kz1@EBkBKn0fPS{?!N##n7oF}M zbiv>O6U)C&TKt^JyA>8<-^w40v=KyR)D8HWUZ%w81b8(lIZGe%(Una_ABQ^Uv(c}7 z8>Cg!yR*=h7v8C&$2k5_>_MlDyz98ZDE{b@l5=0&GuA(hiir&g7|kieOl-(=bNg^5 z=TzyCmt$TptI=NbtdQ&E_lP!fece|=(QKFG|7^%^-g((adb&-AU1Yq2$vxXMK3(-I zZm552%kS|^ec!Og&o8#2zQT$-l>Y5rh8MeYp#_C>Z!$%I*EeDt-a&B^kLz#B33JNN zIUCW{?$cpQ#U`e0?0uK^Vz${JE==&YKB6m6e0Ou&3WF*xf3ao6<6XHOt(0DD%5Xw& zLSzeyCEsqt{c|#<)BfIltzF*hOR=_=?BRsLps)}xWiEzcdzt>SiH?r?aNePrV2{Hw zwbz598esut;{AyXy!kor9Q&| literal 0 HcmV?d00001 diff --git a/onlineSheetPages/static/v2_sua84z.png b/onlineSheetPages/static/v2_sua84z.png new file mode 100644 index 0000000000000000000000000000000000000000..d2771e8f8fafb48f7d39f8bdbb823bf4fe3c2b0f GIT binary patch literal 2619 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 literal 0 HcmV?d00001 diff --git a/onlineSheetPages/static/v2_sue29e.png b/onlineSheetPages/static/v2_sue29e.png new file mode 100644 index 0000000000000000000000000000000000000000..685dc0a689dc78ce1d58aa7cb99e18c9d9c4ac84 GIT binary patch literal 2443 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 + + + + + + + + + + + + + + + {{ + item.content + }} + + + + 猜你想问 + + {{ quest.dictDataCode }} + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/index/index.vue b/pages/index/index.vue new file mode 100644 index 0000000..504b767 --- /dev/null +++ b/pages/index/index.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/pages/user/index.vue b/pages/user/index.vue new file mode 100644 index 0000000..03e6726 --- /dev/null +++ b/pages/user/index.vue @@ -0,0 +1,109 @@ + + + + + \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..0e5b8d5 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,30 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + coordtransform: + specifier: ^2.1.2 + version: 2.1.2 + dayjs: + specifier: ^1.11.13 + version: 1.11.13 + +packages: + + coordtransform@2.1.2: + resolution: {integrity: sha512-0xLJApBlrUP+clyLJWIaqg4GXE5JTbAJb5d/CDMqebIksAMMze8eAyO6YfHEIxWJ+c42mXoMHBzWTeUrG7RFhw==} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + +snapshots: + + coordtransform@2.1.2: {} + + dayjs@1.11.13: {} diff --git a/static/ai.png b/static/ai.png new file mode 100644 index 0000000000000000000000000000000000000000..eedfec129924e2fc97d9aa8ae311b13450683794 GIT binary patch literal 20765 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 literal 0 HcmV?d00001 diff --git a/static/bg-blue-0.jpeg b/static/bg-blue-0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..559f08d83c6c948eba82986faea853a59ab38156 GIT binary patch literal 4195 zcmex=Yw-%s>_+5Hc`IF|dN!3=Cn6(r|VhqXtwB z69WU2FhYHMCIbspJ}}Cnv8EFAxZc34wr^v=|sjLxBPq zsDgkN95Ax6vvYHC3vqD?>BvdQ>5vTm-vzo+;r{^!K@P@p#xKl_N(@YbjLd?J|Bo;( z0tP56BN)J34fHw-D;qlpCl|K>0}~@NGZPClD=P~y5E*Mh!NMZQDx_%W$R-?^$gWf< zV$?WsA&0Wl#)G0k7eA;NClxhua*2scNJ^=yscUFznV6cHTUc5-ySTc!dw6;UhlGZO zM?^*?r=+H(XJlp-mz0*3S5#Itx3spkcXW15nmlFdwCOWu&RVp1$nAuRebI{N?Mn?>~P20>%@> zJ3tcRBP9O_0{z3p!otkL4)PBpQ#lYb3$m~(8nOvF2C^p>3M&~ka)>xhT)6Qdr?PR- z2hpUWi(FzVCJ$9Vg1iLw5pf=BBFjf`55fKO{}uxeGb1pH=gwAXg3G~58 zWY`iOg<|~wuOK_C=hWimrkrJYTRpj+9CMZX%580aX{KwGON_>%t|TsvMGf@A_W!T` zdN;Z8+CroM3}uT{=54*OsJK{I(*45~*Y46~7sDo+16?wsi9+9#6T{sg0ySpn;lw4KMK`}JG4bi#QhoWwqRl42Aez7`66k=A z<$Vj5BxWs#`r8qDETED;9N~*#L|!1}vBv*m$9XbKVBay2h-SSO^T21)zk3 g-6`}ag^Fq)hP_%;`!Vd5N{myN#tIEw&7%J|0Ujq{jQ{`u literal 0 HcmV?d00001 diff --git a/static/bg-blue-1.jpeg b/static/bg-blue-1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4ae7c934526c34e1f3e65eadbac13b56ffcc85ba GIT binary patch literal 4102 zcmex=Yw-%s>_+5Hc`IF|dN!3=Cn6(r|VhqXtwB z69WU2FhYHMCIbspJ}}Cnv8EFAxZc34wr^v=|sjLxBPq zsDgkN95Ax6vvYHC3vqD?>BvdQ>5vTm-vzo+;r{^!K@P@p#xKl_N(@YbjLd?J|Bo;( z0tP56BN)J34fHw-D;qlpCl|K>0}~@NGZPClD=P~y5E*Mh!NMZQDx_%W$R-?^$gWf< zV$?WsA&0Wl#)G0k7eA;NClxhua*2scNJ^=yscUFznV6cHTUc5-ySTc!dw6;UhlGZO zM?^*?r=+H(XJlp-mz0*3S5#Itx3spkcXW15nmlFdwCOWu&RVp1$nAuRebI{N?Mn?>~P20>%@> zJ3tcRBP9O_0{z3p!otkL4)PBpQ#lYb3$m~(8nOvF2C^p>3M&~ka)>xhT)6Qdr?PR- z2hpUWi(FzVCJ$9Vg1iLw5pf=BBFjf`55fKO{}uxeGb1peBM!(pc0$OKkuDA|AH{ zSgu@UBKyi~S`^R?6ApE0EMTG`=Kp^Qhg&o=wL&G9n6xr8i);xDiU@QSVW2T){C^pX zTQoDBo-JYEa`wntr}>3G4gqx01&7Y2hP zE)E7qTpA3HxI7pfab++#;_6^<#KDXooBtOLQF1# P`X`H=a5TjE|K9`v3l%`T literal 0 HcmV?d00001 diff --git a/static/bg-green-0.jpeg b/static/bg-green-0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fcbd413b41e44f4f754d67297c6eca8911cd02da GIT binary patch literal 4124 zcmex=Yw-%s>_+5Hc`IF|dN!3=Cn6(r|VhqXtwB z69WU2FhYHMCIbspJ}}Cnv8EFAxZc34wr^v=|sjLxBPq zsDgkN95Ax6vvYHC3vqD?>BvdQ>5vTm-vzo+;r{^!K@P@p#xKl_N(@YbjLd?J|Bo;( z0tP56BN)J34fHw-D;qlpCl|K>0}~@NGZPClD=P~y5E*Mh!NMZQDx_%W$R-?^$gWf< zV$?WsA&0Wl#)G0k7eA;NClxhua*2scNJ^=yscUFznV6cHTUc5-ySTc!dw6;UhlGZO zM?^*?r=+H(XJlp-mz0*3S5#Itx3spkcXW15nmlFdwCOWu&RVp1$nAuRebI{N?Mn?>~P20>%@> zJ3tcRBP9O_0{z3p!otkL4)PBpQ#lYb3$m~(8nOvF2C^p>3M&~ka)>xhT)6Qdr?PR- z2hpUWi(FzVCJ$9Vg1iLw5pf=BBFjf`55fKO{}uxeGb1p8yNU#xaA_=Rpe45d ze-V#k0*nfSuVh$XnQ}I%sY_$Qf<;{#3^c^d|1aTk46{vO(5gp`ODuSJf-brmC(zIp zFds7izl_Z_%URWyaLIW?Re)Bf%)r(O zJ)PrJpuuEryK+jP#}Qx^#)8}mtOvGD=;xFbbH1K8j;o&XF9WAy6I9@sLWn_HO7 zZITu*Racudu^Z@)MpltP2V^Y&pI(K^GRwyz|E4lpE|_Tuj2t&dU^-z$!|cEo2|WTP tTZW4vdES*%8cULZX@m(qen5QsG(}c$o?O}Q)ihBEXk|05Mi2AOiF9#EcM9E1)M}Yzrqbm}jM`YbO^l|LN)4K=RHW@P zDv?<`t|hr`F2z)%8=_IF3A+_aH#&Q|T9)VW?6dKn^Zn=h|K~g3dEfu?9poNT4@&6U zz1RTQ+5#;A01@CJ1puQSgkAtr2Dm{V04DVPsP77C498#qz$m_p-{S?a!|`a&L97_= z4?PLL06;)TunTl`bz-3*AHu*OePmo`!Gd(?UB-0GNJgk59Uk$4C=)*%Gx(8#2B`(% z02%}aLQ`Te7#Itqz~Zq3z!UI;APj>zh;aiLKMH8zEf~h3_jn?nI6D5>4)O@)sDfMp zWFinj9WbN{Fk}cOLr4)ML?;wC#BhW)$`gyj6NuwT<0kxX9RY z8Qp663TvA+_G_6e2S+E54I9~;JiUJM^AF$zZr{P(9Uc+6Cn}mB7k?ljG3nr;WZ{v_ ztn8yX$Bv&medg@B^LhCfuKiJT{l?8(#U*zuDyyn%?%jV--|(cdsaf9g^x2D-uR1zk zcXjvlqU$sy2W^KG{X-8K)q}xeVJu-l4}=Ls4JKo8Gj#9@<_vD3M|jn<2hB zZl<1HJ9WLUl%zCEzh3RdfTTf1pC>5nKPeg&G^z)A04Bf?x?nIFn1cRt4I#h1>;y?e zxa&R3<<_~RoNS2{G1C0(#*Qx_t(q*wCVqGRHd135L${B{6A| zFkHzU?sUp(XbcVKc&V#?b!7#w?OI0qL`3>2%F1`d8L_<@#c$@6sl{d|WdD4^&t++T zKvU5?#oU*{2_-cGLGBKX`Fjcy8BMznKkvbz>~}nkpfJo(Z_JF!?vq7WuCeX9Op4rP ziroDu`>=)v6Ni;AJEj%#j#b!FFIqXqP*_wRPp#w7VwJvJ=e!h)tZ7EZ?FU&*w?}hq z^&Z-=<8$rp8LoTeFk>F0kiy<~)zgc301&3M^t+RMB$Z>ypZ@t(W}L%EyUZ7gzHy{Erg7eYez=M5(vZo|VA7_$+AUYtQ;)ce__J=+x-EF{}sg*P2x^nzK#Z z?QY&-LUs5||f@yre1p6c4*XWA8e))=U%Zz746nSk@jwT+#W9X|0?$-s}gZ zbrQ~%yv`-hB-{fFbYf0d^%DfqcQ$HsQlpF~d|Sz&2c~){hWQxW+#x_}NRD`C8&41In`I zjLGV!jQ4BF{;amibU)l|DnNkK8BgJ*xJe8?za>ayoo`)?lD9Ye-~d4A-|b7E5tetB zInb< literal 0 HcmV?d00001 diff --git a/static/bg-yellow.png b/static/bg-yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..6672debac16acd21bd37791ee6bace5a8d95e631 GIT binary patch literal 8037 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 literal 0 HcmV?d00001 diff --git a/static/charge.png b/static/charge.png new file mode 100644 index 0000000000000000000000000000000000000000..7132fd81cf553665eedb6eda79e17467aee85b96 GIT binary patch literal 3491 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 NZB2cRay8q~{{uxWSS0`e literal 0 HcmV?d00001 diff --git a/static/check.png b/static/check.png new file mode 100644 index 0000000000000000000000000000000000000000..258e18b00b1fb5670f13c002cf594119e7fcbdb6 GIT binary patch literal 8639 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%0DV+l+X_yUwDiJvUficFz*O{&kY@oupWtso>axp zMI2X^PX8g~EbEL4nn#OZMwz&9uz}``vh8GovuXuGI)&}t#DMQz-C$a4`ELQu4T({T zZ&8*v8Ha(poK%fEzaH>-yogoh_9Xqd2J=ygH__Dz$a`WB9?mgtA>8IbIXD3g5k-^P zbF0m6{(0&6agSI~%eq^l0)1lJpfJP)YsbJK1Q|^xgoipNW()0R0K*&1JB}v~i<1m3 zr9Lz(ep%brTLa9)Srn-vOy%`A)$`s|_#tV+vF6cM7*Z%v(=o#Qo8&3#i%)#8 z7`<5?gH$koDx$E0r~Gg*2B_Xx`cU8+=>TwouGIyl!g&<4f0s8A-F+E|k{L-1Y_K%D zq22neH(MV8s&wh}#E&jejcNnY+?I}MP_r&p4>J1%<6uCEZ?GR+>tESr2GJ8q>%Eclp(-DccQZ5+WYNUUtj%hd=67fgh>dH?9z9dp4xpps%!_yhGx544TD#R#1%w;)uHATnu+LNg zc^HZM-g^sd(aa1O%4P-N#jZM*wuyWLhSPh0aJmU`a@zM&NTd`IOyaio78jMQ06?UK z1pO{i1&abOA+uC9aTNVzP3bSQztGEh5vR_B%m4AtNM9;P8LZSE*lJb=fUteB>iWs} zo%i*UHbb%A(o2(7j@(w)qi;ag(sVAm)FdEfeBY*vv=IaSk`4;c#i!#rl)t@%RDw2-^kAV?7Y!rEX3Pq^??d`~W-}uKb#+ZA>~WX2+hKq$bl1ho)q087;XMy%t)n^q9H9_-@v?Jw zUR+_AkEd{SYzm=LB9*Z?FKPp&l58m8Jm+bSroxL$>tdP=B+>^&Y6Myg^Cjzk$WqnbAsIzWXQrmUxv;6RK3kf*Ms%3r9}=Yw1@XI#?k?z0|zQQm!H~ng;r&d zAC6{A3$F2+?|L^4taw|q$FESECexy&E7}0^WrEhK~7u0YM jMmmjw*rS$uFDN4&(bo>8&VG{rLjZ=lraCAs=eYj?F(8vA literal 0 HcmV?d00001 diff --git a/static/filter.png b/static/filter.png new file mode 100644 index 0000000000000000000000000000000000000000..9e720054792719128e1f399a2f743dc6142ca1fc GIT binary patch literal 3073 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 literal 0 HcmV?d00001 diff --git a/static/index/2.png b/static/index/2.png new file mode 100644 index 0000000000000000000000000000000000000000..84892c9012d1e237a51ebb204c522f876e75543c GIT binary patch literal 2666 zcma)8c{r47AD$RXc-e>te&+q=-_x-%r^}d;&9?ohiyHp?$h?=X5 zBMOXM*`q8E`db-(wP1jrN4O&(kj5Ojq%>lbVf3arHjBB zP!y2I@%mA+Tz~)~LNrT?VT!RGpckQ-5)kp^NHJiSEs^nT@4;}SGVpdjvW+Jb$Pi%| zLV$y2i;-**wnKtp^nfPAZ{veq8J~6m@CO6H+k5bADUK<21!n*Upcf!?h;SS!f!l`# zhOopkw!j~zNY=|3_MmA3T!#e35X&%ucA5ZypxGi|7tkv^)(H|tvMP)oFE;R2@B;)m zDZ#OUOJcwc%K`FbOaRD_YvNEx$Kth zuh2jhudaT8@FOSy4#U7y`p9MQt~`lGd7vTVSLe!CKDuRfig$)_j#TGwGK=Xn zq~T8OnS28+X+53y?_s5pFA0d}Q3T^(?nWy_)UnRJdz5~8ZG7pVPh*ktUMl0BS_wu_ zrF&s(F7m0#72*;Terx?3?`Fl*knQ-IcFKCr)a$|e21`wq=e&^XE5GOQ(L?#Ikt(u;FNi{N9w3iC57DR*J2fw%0@ItIYL~ zA@5)vREB^^Ir$oDCb)C~vLz;EL|TT(A}85=$ktt<9fWQPygMtLY>)IaT=m>;bp5h% z&2S3acvffixt*uRA4D8Jl}+q+dvZ)oQ6(+6d*<%^6Y>=Giow$2Pg|jTi;=&XR_U#M zQ%>~T22(y^T<+d}=IV!-uThaO9cq^1`~*2eUD`Mq?g^Hj9AEjK&ju?uzow>^jX7LY z%%~h(Pw?@C9irM7mMvF^f`;DpGg9m$NvYLwWX`*x(?&3j+r+Yl`KC_a4c)=Iw-0O5 z-;KTfMakWqlf6gInJl*n(M3_ft6IFhRzn}@g4ySiE*cD|9h1K{DbGBNNP&%KPZx1! z>;E!K*4VC$TPUgD#5D2}j$u>e(+az1c?qR?oC^&%v=Ktm<;t@*J_QlQ1!d`F<0Qhx zOSQRc3TKlt)zXUK)e%YG^}6lf{B~BOWe};o+G^Of>FTp6#1hF_p%1brQo9MljEIyi zG0Y3U^6DWwv~0DEi|Nq>ICI#+8EwjzPgqnhv2W5 zy^PznAy-A-stUD?b&(kC33z1tV%F%m9G$O=k~byJV;>)HI$5kl=TmC2C=Dthl2A*#{NR zEncp8?{8Y59*ai2;*%O|*0Zd1{gN9L0$U6M&1YkoiNDeUOYB3;__)xN|4i6@;@yFsY|BliDA0tuHnB0SgRus8 zsinfmy4nE6uuFbQjwUaL;Ke&XxHL4J>-)EIXAY%;tQR*~WS*(IU+o23VYcEbY%!Wd zezA5tH}Zi&8(y$<|8uT$yv_zjKUOvDS$WRk#D~khrUT)|GrxObA5Z#G)&I677d)Np z>-%eKhIUjyvA$x6U-j)~?#6F}-C8GG!fgc>*WIOw(mFi<4$tD~BEh~p+)#TFAG~h+ z%42gbjy-t#5B=WwYeCcoe{~=DV*QGdTRy5jJ>6=^%l6&sK;p`W$_nca_@y-o!rQFx zm%YAwKQ~TMX1MR^$?C^m7a%B|Ek)gRlYfLQgf7EhiJVp>LzIOB6U{T)r70h&$sM7l z&stFjVx!E5mxJ#nWVOtm4cbvfsxmh`aO)=WZb~y(Ftl&XK~&vH8FVVc!EUU+eeO&FT*`CO@28--YvugQ-;F zbLPs&N*x|IIDH#%yU~5lWZf_yzIP}Ok9^Esm?LJMR~mQvemdTXDj^tIe)_!n#(k#X zh^RjZi&;!KLTi*#k~-OE?bwxddD{u_(QP~Tmuf~Udc1tZVZ0K1`kZl?V4zk`p} zQopZxA4gxnhT`rKeDeLtgu*-G(zwberqj`Dbxn4&8-<%)DjZ=@hyS-}BF$pek;Lbp z4#5L;nm^Bme{w6?ZIDgK_YEx-jg*8mZG;D7jvmS5+vl0@lY1(TK6w`5Xs_aqsMeQz zKd3dPFLxgun&>|_`sk~!l@)8*+;Qiz^b_(*6s%KS)3T literal 0 HcmV?d00001 diff --git a/static/index/3.png b/static/index/3.png new file mode 100644 index 0000000000000000000000000000000000000000..cc0918859edc21c2843aa76eecb7f20a2ef8ec39 GIT binary patch literal 4134 zcmYk9c{r3`8^^~o#%{(CS;tnEY)KJi#u9!g`;xK_itJ02vSqS`FqT1<3>lInDr;h* zEM*&GY-P(*n#sP@`;30q`@Yw8p7WgNKKJsuzvuk(B${6|yfk28IEqyxEk0N5;Pk z7+}GYp_#x8SSI+f6MzGM9)&xL{9k9jycyoyLw_sqp4bUk_Bap%N+H9tC;xha z2*bSD2g1;Xh~(Z%P@1vH^I4yeSJ^{<{F0)c*Td6V>USeK8^d3cm`LJBlz znqGw-NROo-P#$2Jgyl~1@XE@noi z?o5j4pDdpo z0&sCMl5k&(YggOnG+neq7#@h!Ip=(uC=n9(yTs=sptrl2bU(~HS)#`>>ipwKtVr;S zv#Fo=^<~2a8+|M8SBqa}O61XQ9prNDiwahJSJtnWNZ(H_l~TCK%6$l`Y7x0@$ZFO z&U}W#?f1j(M360`Tjxjruii-in_-V47V*bX?`CYfDeyu@~Sn7w8oJ?NrfoU10_Y~L*yJ@fTT9>Vq^r?(C zWN{EIr|L#8ic}qAwa%;ka9Z&CeXyBkfhR|bB007O?f+bxXzUzg9C_)o(Ck;I7>7-# zdcSGGnZ17^bz?x;vG>B0UGD+c**vI1x>r|l==7Grr$Lsb3=6rcsrUMQsL(WT zv!uT|Em<;txKI!gZoyLUghO@z?8wccZB%Xaen4rH*bXkfOf=%XVQtoSbFefQ?Z(v9 z;HRY&z7z5f`};A9{yy-s?5gi2?C`%Tbk;cSRASp9gNFn_LwLx}J7!OP3^*AI;o}UvBOQWH=3COLf~R)(1O^ zNNeIYD1wDIT%ko&sj)Vi6mc&XT-Q}R>5IH1iOzq^ejPR^im9#?-^R+kB=qVrm`0{n>aslJevjOTu3n>cb zqnrOckZvZHuH#O``zRBZ`A_i(yRU9tPJEDGed~;j_scf-}XeCFll>NUv7 zCfw&4hV)3^(Urv!Cv9uk>&(=-o7uiR{L=RtIwWW8ptn7Q#QFSJ3x|*i{_IE}(!@WZ z;>asiGws9(rY96r@KGkUVdqnbE|&wm;OA)0D^JDsz&)6wLb8^40|Rzqn-fgfk-8f` zzUyDx-Ho(AAX}&75n6D4Ts%Q$Qyhj@Ij>#k{L;LnyO-IVDccftI&L*mYA}Q_q3pCx z7~ZeqNVZARG>~a!P)DS*4}$8fmThlXzMdq|0#p2LCtDl6^@mpp1hPfjMvL=@I)U_(1kv?`qn*8+ zjZ+@W((6AsZiY|OZY|&2t)mQb8gYE1wwos$wO~(iQ?jA%-TxVLsh@ai;}b^D*=vya?$5 znD(*I&oO3IQ3KBqlt0;v*j341dLvX*zR?+~ka@nI+s*&2FIRf-s%QD899Q;q(&PJz z&t6TfXza|ty+bUoYn&-y>1Hv_Qoa)UMnBMF$fm;OOYXHr7A|NzX`pC%`SsWKmzghH z^GHvAROl@4J?q62BTt4A4Dw6W57;A^eUC4^tHi!<0jW(ss=?$|e!u+@rzNUJbuMP; z5IYEcg+2D6+_5Hk7~hX3`I7m(ODVW_0du66jHztGoS9P&3vY~8Bs z`$qN+6R75)cTptk!ZyT(PD7l}t**@o$u1nicXLU~7l%-bxbw2^T9QL^>t!`{6iqWl z%151RUZ<%k`<+I{v%-{iSG01V+2t*(HwiwmS2|qLB;yw@zfs>>NBK!3@=s^x_-9*f z%Pz`yCZorUWeUS4{XQZ?NL>i(h+3@5x z>gXw%ctcXGAWv`zl4j4oVxf8}5A_wl z>GhT$dTLeDOv!nav93KRNO%}-`K2MN=klJ%RpD^h@yX%Y{5+FP--EvBq1>#B|m=VYm^(0r}u4yE?2l`k>^Io^_>k4gBR#wz=bGOx2- zE!>sAd@ex8(mzSrD0zI`Q^b026hp-O3a`|j-x~`*w&`yFz#;{4=59RM_ashunz?F? zBwW3B!#jEw^)#rFF;pryEvQjfvG$G70+$}7Sc)R%aoWhWJ?%q~4hx_BFQrYSk5)S; zO)lL1Y9%f&Q*luAoFd_V99DOQwv%;-M?f3gDAe?xAarF!y4|z>+N(cy<{0vZEk@(T zaUqu|@K=?>JNSUq!8<>1eXv7%BMVQ>=M|QiAVaHBW?R~Ib~m|L=Q!p#CzzTl+M>^G zJ|1(4CGU~b7@J%%(b>_0EpQe$&H|Nm2Id|n2XTcJg(2Z5Ufngmxj!CP-Uzs=FM)VJ zepEnOC%$Z^bj&aLEzWT87YTKZRe#P8R;AXSxF^h)%2BV`HyB{7!8msT zzk!tZchMdSS&1og*FYE|!`bKL*_mte^qL&{`U;T5FB(RS;^}zrrcdUGu|KM8`MpeK zPN73^7WB#8lv!UQinxwR@_sJ}A!FtdE1Yr6gS5LUh?P%>xmwk9h76B`yG$uDBE(=7 z|2;c@+lCW@0ytk*bQ42*&IMsmrPX+q8tCM%3=^W7%~!t9+xDEurm32c^e0xxij>9a zDoov;PAdzW+iFbhd0vATr?|OuwTds!~Co=!;ZF-{~!%-QBz)K?WV23_7 z{it)!qGftc)l3jtt^gz=mLcMjj7>LHjAf4P40Q79h&;lAAVJ!&2uSDJ*D(5FFWbFU zUplRaA}$0mf7Yrp=03T8qGgp_qLMCguZmd@$sKK}Qjdz=3Hm1Dx5T_5OLlz574%3g zVN>a(YWK|TU8#+hx77%_W=*5dOsAnlU!S-!q!?cy{19x@}>s>M6Q9%&1Qm)VHV zjoPg~+<4}<6j#q{C2hh}#@v8*DurZta6=qcE7&sfWk50tcJR)D`nH&)5yr$l_#@&^ zuYw~9iBZR|7(kYY9_WxE6d@r|mn{9YU>=(OHP?WFs-78FMj$OmN*B+=y3mA51X?Jk zO=mdgb@?CP`C|jo;WIqoGq+;hrKr){xPdPw+LFGW!Syhn9*1Dfe%>_WraY1FopFQH z+Nr-gA7@-UVkk+i%?0afEA@D~NW+!8ZGVe6Cfb!@&loCDGlr@2Po$hOk3AAG>r6iB zaY8xexmALljC3xKVE`+&q3q|3k;IYovyL}|ABlERCf_M4aP_^6wBubd8W%l5EIj2V z$L7-+cnSln>M`i_8;MQsjO7()-CvwG$)8PB$IBi-wTLC_l5SVouA?Vvu1pE)Rx84a zR0}-nS6;BX-RW5w*1UDRPAzRrZ%X@4QflDxdVc5m44mFhTOviXveT2d>SV>Vkjbj7 zgim(l5@tK72M2X?WJ~T3+1T&y{ifn}b4OP8n-s06_QM~B9;gLGeCN6@@Dl|xHn^x? Iqw5m;AGUws6#xJL literal 0 HcmV?d00001 diff --git a/static/index/4.png b/static/index/4.png new file mode 100644 index 0000000000000000000000000000000000000000..6fe8e852742481b337765c5e3c208d397d65af41 GIT binary patch literal 2055 zcmYk63se)=7KVoqK%Pk;Q3y#$Vx_?K0jQL)P)I@uQOX6Rh>9qJS5Yy5^n#UQ)F43= z2EwDD2^4}@UKT7AwF?TO1ifNKL|UnI6|ne#im8A|J@?E6+Gb5=&g`@IzrTNFKCC_#p1%f6Paa#$5CHXe0P;a3oYLKpJ`(&k%&r z791ER5+?+*3IID7EXxLrJiyGyE}*7>^JJj1#$J_xg~u5vVB`Z9p1@EpWa<<2Rq*bh z1dL)V?E^dwi{t@&Oc0ksu_~;Kz7gC~0yZw?02vAal!d+QP~eb@XD*8985TtFAY^70 z0a_tgfW&24uv`ze*a*tPTCAfIV*qLkWfZuEgg}KYKnX=(`}cj(9isr7B+S94fd@gEH5?AOK-MQiDaZ!(f!ctKRzWa55(7UANT_GV1Q!jiEx{%RYcUHYbj%vW&I9xk ztOZ=#!&>M9mM8(Y1W>c|c5r6=uz(sn0*4Yf6C3PIp>hH48n0p$=?8Aj)I;Jkf%7qj)+|8B$ujviPUSaabmtJe~dNy7T z$i7-Aa9ZweyXrqIyP+MI>XWmW-_Cs@qFDHk#l_~QUSEH41#ew^`6P`vvL~B6PA;BE zd|ea&^RYoRa=z4a?W#8C3=QeGyBQ5%MZeU3G?ZX5NUT)$Ch!%bqt{sLma3+$1{U+miM6^Plp! z6&pomW}5l@alveVi|gdGdnC)-vnTtT-M_Z;*m-ZGJw0W0bAM2pOVu@9pYF#w1ToY} z{PP zl63DYl6{6Z#a+{|VlK5;PZGarmTwcedsmsvb}Ii7g>JJI<)-7>F+5#|ww zsaag+OjR}Ai8!_Umu%zh!%yF9g}OCohjnenPcN01hm$N$rm1;-=Gu@@{$y)W_amQ~ zn)>N~SESXt%WoJAe@P{HM#Rwl5JE!JMQN#kYcjzSoY)zeLUZB8z0I>~X;l|-iFpx` zQNPhPeYGpnkhYz-{|)WMw>QTwTUiHKRt$xYT^bczC56y5CcMm~&>dH9w(ko~Id`b? z>8o(w4{D+1YyQ~8jK6Sujz^7yVp78pt$5PxBpG$AUfbhowP~`}pPV=wPzIW-46+`M zcU;|d<)p32-4)1`T&5`)=q3rG6OVTKo*hT2<(wAMbT9e2E?|j!tRZ!j=pJiJjWu)E zxKK4!8zy-c1xU8cu ztLsqydHirjrnCQ;ymvo)2E^OU=UZ=`JJg$Cdi!>o$79~LUR4QC#=VHZ%-dQbQWw($hD%=l^PuK(C#!maLwE0RBB_pa=Vx{i@M6Ywt& Nk%)r)8U(vf{vVk|;(7o8 literal 0 HcmV?d00001 diff --git a/static/index/map.png b/static/index/map.png new file mode 100644 index 0000000000000000000000000000000000000000..78f0a75a605a15e80360e6a6c75be500159763e6 GIT binary patch literal 6311 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 literal 0 HcmV?d00001 diff --git a/static/index/org.png b/static/index/org.png new file mode 100644 index 0000000000000000000000000000000000000000..cd4890136b1b58ce8a7ef9e02818db056ac79aef GIT binary patch literal 2216 zcmZ`)dpwhU8^6tl9WaN&a+r*SM`*8{%Eqwuc$^QMOp9$M^7e{IC3)^m@8|RW^L{?R`}e!9@BO{L*Y|hbf81GK9&U;V3<3ZE zMGBeZ1D;&TqaX|JS2BX@zyo@O_!|)bnsSlfLt$VpbK1wv38?Sao(1C)FLyr|w-|R6 zU4Wnq5jo&4S#Y`tE=ea8awdKv3;{qNS73^eId2inN%?F6aB)Jyp$m}G5~MVSOH(*~ z5>!Lx2$0zlf&^p;z*H(FLH@Vb1_8kkDCdg6Se`Bd*mD~kuu#Ix5^l6Wuy_AB~r-a53f(s0g5}#6g(g2Jl?HE51&@+et z?Ds$M9I2r6t)yJ40Qy0JCCrUW34rx=1bq^fHHl#Il$at=3UrQSfcKIRx4P6FUq zGWZfrsR)oau0Z3%B}}0_gD)8!LnxVZ_QXbu*0{@&;AhK<^YQQnObTzZk6=2e1o1t8 zn69~|zCtV|{zFY~RFKaxH`j@r;J7yKcv>rea6aZ0`lW&Fbg5rDKKF~2_1-{bi}!*` z?b+<5BKJ8?xuM@cNy+Ys(p-3Eilj=NS7ge){uj@d(kQ>$ObMc16{q z$E4D4hPLp{pYvPgbt@kmjXiff*r;1n9R&b#Y7`RDFOm0w|1NNxj0R$4%vH@Ny-svi z^OOwnL-r{z_Sa;fnZf27v9 zF2kRG)!MfA<9u24V3zBahsNq29ra^`reH!#kyiCxwmXAe)Y0?Cw2FYCvNcaOIqgj$h6RuX{wY-tlLi)hvco*Q3kqxV?d}Cw zHaCCdx{@!bjSxA%d}yT^PVoAb*X|ONcG)Ty;tiuF8eX3qhqVqQPrf53oVfSn{<#wx z>Fc+5GEAa|2W}?ljzMe1N?PujW~FU!(zIePu$J_u9dD(bE?g_p`~0>v@Q8QEh2-*H z3bbC2w7#+u?SWj>-zyrS%(b+|Gw+xiFFub)uKsBXG+kUW#X`1X1Jxk*P!i$)uBiuv zY4KXgb+Q9NbL(Y_yecY$eJ8oz1hvyoIBpz zcjbUP%W;|KaWfJ7ZFM_al;ZU|!0{=hJSt{676K2u_WEj{E2O-C;Do!Oa3bG~j25K^q^dcQU4(Alk79PaD(vGH8Z%ugn+_dv zrbX1$+WeN}H&}shgKLD{*uk2WU$~oqP^{Wh=lD%=L_|%jkr&6Ew;-UR988~PYQ7-^ zW++*VeA*;kF*k@)#RM>3aMoP+mgRNYy;aan&;fVKVC zrx+5Yl+Wj&YMUUTdvaIj%nx9OKFm2%Ql{Sz?8MSpSdYZ zr#Tw7Sg@1S1dO#n7Dhj&H#)ruz;?u*L0Rul(Uu$4sW-1jH-y0|>`+~Pbe`~_E@!3L zZZXj+`(d8HLNf1ae7kU#>`+kWOfGun-F;~xy5}km340JW8op?$yzQ%Hh5Rm@2WwzQ zLuDR~NH_I4@YK^%Juup?uYB2B7(8co!z9p(bk^Vd-Ie0!(9|8<3?CI^qGpD8f2ho* z%gCspWm@Z57!sNfwU<}HRmj^Cp{EYKGVY(Q8P<^%*t)Pz%;ZiRy&we7I4d>U91Z80 znXy(iT1H=fE~~$ocXFVNsyPaO1f*3Ck}=tnBgwTc4^;Cy=pLScdF{?UD#vc>Ha=Z= zOzPWyT+>9=&H{E*Tqit7|+v~6z;MulBmdhO(|K*IyCC+-JZf8x| TE3+~1p9N4{JV^CU2UGtBGdci+ literal 0 HcmV?d00001 diff --git a/static/index/orgCheck.png b/static/index/orgCheck.png new file mode 100644 index 0000000000000000000000000000000000000000..87ba597cc9bf080e75667e14f982dc334fd788e8 GIT binary patch literal 15980 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 UW4##G)Bpeg07*qoM6N<$f+VVBTmS$7 literal 0 HcmV?d00001 diff --git a/static/index/self_0.png b/static/index/self_0.png new file mode 100644 index 0000000000000000000000000000000000000000..6aed1a25d1fe0c4451c1fa4a3bea6f7a943efb86 GIT binary patch literal 4022 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 literal 0 HcmV?d00001 diff --git a/static/index/self_2.png b/static/index/self_2.png new file mode 100644 index 0000000000000000000000000000000000000000..685dc0a689dc78ce1d58aa7cb99e18c9d9c4ac84 GIT binary patch literal 2443 zcmah~dpuP87T;ztqrwon2MpMK>Hs|8N4KyeJS3hfo*fZ?u55Vqi6}Q3KXMz9@_- z?D~-uqJcF4+!X^)`LEO5E){!fdJ)&6Tw;}$otvLL&C*e06G#v zAz=PO!f+nKuYtJDg%pPV-t(dB5t{Y!zdX|$ZXt$8>M&xFWb=9E*c_+>&zRbvOBknmzm*u}rVC5a$4BVO#@r4F%{Cp-ILC7zn_-WexJ*t zCUa???_w04NA&)@ALAC-?<#*1n{xTl$Is;+@zOQ(nu!N%cfKpK67Qv;n9z4Dev3gN zIb9h3@M`&_oVgsZ(7|ts`?L#-)vz`f6Cqi0JwzyGG80mpbFZE02%CKw)inBK`rsdZ zbx*V!Ofnc@#wM)grAuynZNay$-Whz3Vr-__dVb@*ZU^~8X{~n&2acu8kA8To7-07TGJe&YZ1UYpY2&L~`Q0 zgPOhP?`Mr)aeCPsmnB=x9?omlc;j{2ZHUE<)>w}C;ky|jZeGfjfDC28sM)L@wn2G8eh3PN(P1CiYiTc{ zkyPkum_{5$Kn^moWD1Lo>m+8C6reC9FO`tnHmT4-dHg)cc^!+^m>Z&~WQ)j91{ZG- zXJBhYRuMp;gG`#r9BjEai8Fvq0>->cWBuwrOHp--y|LA;2O=71^hR3B!G&b(f(0PDWs>@QT)gV9Y2DQZo6TYVyt!HHxOjurlpy{1?VTB3f*XIhKYi|( zAFplRYNpjJS$OjEl){?|>Hu*If}^5?{a$=S)|6BU|wiq_W0 z%DIMoipKF=QY_kRoIBo(s|H&{&>cx$g&y$RR3vbA{4-Fw!%X`B%xpJVNSVs2Y5%k_Ro=_-zum3_U` zJxNH;_5*U+Z(lRyu{!C37PZdqpr;}h%hSMpaz1tS3-vP7rgvg1uHMz+u}|Y%9}B|O|9psJzH@JfB5l7rPQTGhp^O<5BR&??%>MvUkIIp78p1JDKv-Ga2u{F8H0lj%Hhn%ST1^WwR z?_1@cr*w^ktCh>x*_dj%El(m70zE5mO^#H9Uo2BcG^D2Iqf5%RsbNja<@;EY`nvDi z(jvS%6G~iXU5~sYips(TgtDYHY2a zCHh|4tkU{g*87Ts(Q3x+gl`IOPhA=@(xmd=87UhCgsbTx6o(Y`TD5B2Y54<|x`NrsO9 k3GbP^*S^1KQ-VdMe{#e?&AU{KrB?$lkL$1G1 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 literal 0 HcmV?d00001 diff --git a/static/index/self_4.png b/static/index/self_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0f33818d7224b64b63632cff5ee63f165813e1ad GIT binary patch literal 3474 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 CaLUa9 literal 0 HcmV?d00001 diff --git a/static/line.png b/static/line.png new file mode 100644 index 0000000000000000000000000000000000000000..2baf50f0adb91a4c34d717dd62a4e8c45c2c39bc GIT binary patch literal 3874 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 literal 0 HcmV?d00001 diff --git a/static/no-msg.png b/static/no-msg.png new file mode 100644 index 0000000000000000000000000000000000000000..f27e166ce131fd49d914afa56a8a620d45db0e26 GIT binary patch literal 6397 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 LNkvXXu0mjf=}9}? literal 0 HcmV?d00001 diff --git a/static/no-order.png b/static/no-order.png new file mode 100644 index 0000000000000000000000000000000000000000..0a7d1ab90f3b3f246214a383354b992d6a7c3a07 GIT binary patch literal 4639 zcmd^C`9IX{*FQ63%rrx$J6Ugx_*#;kWSv1-x`oQVHAR*X5)v{d<{8iH`3Ih#o*$lHKG*r2>s;r$KIgozbKalZmgdIXI3XMWaGRPO zI}Lzfi_nbaWIr*rBs_aS1fDiFfWr1aCjs_-Gd-qnb=76&iDSI8wO~`9R`+DvKYL$l z5apXQ>3FZ?#xmu<8R^dso-i{x7V%yGl;Kz`=h-jq=|UNgSJ49)S244A9w{TSO1oe2 zH|9G{(_UD|aR_qcoj%OVHFiHR#ktx;Z0+}KM7u-Ss~Uyzt&YEBOD}D)B1Zforz<`R zUe5&H`7GL*><+aHP*;R^*3Yqdi&Z#kQ%FAB^UAY?2Hsa)ZL z%PNdpQrCoxWVU&RJ*7sY)<#>M3eZ^sI75Ug`l*Xvb`$$0;ZcEl+BxwF^yl0% zguBS>l#V;XlH;jM4S6dVuNT}@L*v9Xu^WNImvk39h5q;?ru|yx#zc|N;-!$n zm5KUtU)K*mKtS3VeP{T`*4pgnJG#QYy!K>o!s3jgP=dN-s{v7LyTlNvg`=Y_MKb=@ z^B3PSOND;%6MPHMo(S?@qpY>m4mrtNe4oYkAT~z6X++M2yejcRrlW9{r)V~e{)-+b zf7>V`jTEU_9A~~NW?J52d(q=$D2iMtC2m>q`YKmD3+qHq+-$F?|mv$Chqw=d?(&N^nH`wChaitp}O^=GVXNzNLTqT(yFM@%yAv>&(R_ z@@M11tMQd)%0P5E`@UJiIuplXm4&zd36Pg_Q_GSTjcg?rZ})cW6@g-ki5dcJ#%n?* z`n6xydt8ysG)OWXsGmYYJ@5OuXEdxFKzwn)f~O@V4GA=*Sfll|mhqvVBt7LLDd~)# z25JpsMLGfEDV)Ab_lhNdigE+dV^NN0yW3To?*dIuM^A6+U*hS4<3P2Ow+$FPo)L7$ z6GyNl$Tl7Xa=cCcQTGRmn%ozKn%>Ic#QfEPNE!Vq>hKNYWVQA8G>Y^w0_{+)&>EWy zK*(|~NNio6$=HiM8(MKmsE8X0E@L6xRj(Kp#&>h6!qrt1Xz+hlGOp)?0(+`QjKgnH zD3)>0IqBuIA*+joOvy96u|Sn+b300N5WwfUH&Q+sV;XwAJqjqjAiTHEkzmB8+My6rayw|LjuXB?9| z0!}dzfIG};++ZD6YVX@t^(g$41N>huKe&E$bmkuA)#EpQm#SwpCj#czR)cEURd<~naBl# zRI!eaD>ztJMzO2%`hpG+u|w=~O~e`><76~(v6YObr6dH$Gi@LUfX!Lbo5c^GOK00Z zV7}js7rDxC95#;jCC^FCYf}lqh!;o;y`{m=q!FFEmLj3qYZ=VzW}V7 zWjZdv>lJCIF}FpxLKqD`azgfD6{;Y(Uc}mp4l+(K>+Qc8*3Io`;}Z>#^T{ee%|{p% z3!mN{rAvs6eYJBPt9a~J#%Tw{)5gW>K0r&kKij|YyKS%c69n|Wh%Xg?4CKwZMmDxp zpH$hebmeiw2M-INwYdY?h{PTrhWBtnn-$vtRCyMigh5G_Ekaso(s(~mAMQ4DT3d`x zAKPdbAK)(fv+4*?+;?TAC1OW80#tX=M16<}E#!tY!QF{Ao#sGa_PSk}@=O1zHwxU@ zeBdII>a+T?Z>Rk8Hp;3i6JMSVD^-;(ZOWHcJmm^O_{a)+X&9xvo{xST3ufB2-~Xbf@nli!jyOilo71>ebQcngFF*c%u;5RTM_UtzY^MwFEF67HFHL+;D=P@n|tixT2tEp-O?j z5DAr*nhbVA_5`Ls@g!I>4=Mp6Coq)@&r%>82>@*{ z6aj(U&K0{MwqbHZ@ga|y1a`Kl*3u{_XtfV>-HrX17J&TAy~6_R7rP)8pyj2PYwR*J znN<0e@ahyQ>Li#9$qb|8HjId&kggTs9u=Th)aD}Y zu(dYhVyPf@Reu1kj()=bHCMx;`!EuHeXlBKvrL2K)(1ZgXe7D?YcnofAG7VJXH*`tq$%%dY|I+G<=+;;d5t2$p4V6Jv5iq(KpTyzj4b`9N)P-tk{RVKf>>Zbr%0+ zbWY2XACL+5Tyoi94>~pB!OEm@Mf_BW**Vs*bJrZ3-<3Ti{{gWGUCCF9tpY~kyBroS zdxI^49AKVNB%O^9nHf^&FU2E3*|8)1x1=gHe6wgtic}tM^P&U=zxKxQZ69L0_(n`w zoNgOin(xe=?(1o&kw9U)4$U?m`vau(eULmM?$&dAz_RZm?_Wr0Ifq@5*EK^JDRWKe z?KcH0=eGQ}R|QJK#8KF9S}TbOl8|?4a;!Ttt1`^8PB4FsO+))G@m{>oK~;0=($6fR zD(I*mMbZ_60F1=r`}FEJgGS{RS!Na|mm}$dBgyjrNi%8nZ;VuArKbsqJ=~J7Kip5M zvE_(bmhnHhcf93g%D;}$uZwoF4z;|=Z%%DzkU(_30OW=- zX3F36$eEs>k9>9NB+egp$Fh@0om=mkiX2!jvkA40b&cK4XXTxJqu0aRH>^2H%F3e7 zI>$9A2Mn#`V`RzJV^c-rUgc+}>F1pUI3Nk(saciyUYR4(C^e@7%f4eYV>9m+!Krt3 zzs1ix@a#H!MY-bqb#;LC@=K&7e`Ndi%-G$<4!`gV?VIBNrez`777VSd^377_YAUSH zj7CoRN$jlO8tE2Fy!hR&WY>e`ir4sFnC) z-L{?(cTQ+`4=v?i1wId!Nq8!E^8S|d8Iu-T);aePAC$OvXS)S*U+%1WXAc-G@8~-; zh?YQcd1Y#aJsK{5eP*#+HRl#(&Z3ystlx9j>b+M=ZfzX4 z%5#U*qCrfA%I@)b>pwfcK7^+pf1d2eBvoXbo78bhsS4QYO&+OZ)$aWGk&&9=;pcoc znfxkEe((b{&1b|yXKQe3@gcu^3Cp6EK3B7J zx9IxLY6tJ^VH3jk*vnK~MW^sLXDxbVAMs7-cue41;bMW7lls5-Oz@ezrUAJrsg?#Z`N8Ijk%wKLb+_B?2NW~K>5 zu8h+{=v`7g6Kj?Qvf!c{aw$0>%BF>QnR$L+=S^{^G6cI_gkBZPs)plB>)&hmQr8Ei z{hU?asc?bSfsr6xpq2k9k}5bMXJB772)+UcYRWBrAqzJX2Ba>A}L&>m=|2$i9}jXnOhfQ`VA zTN7l-?c>VaSQIkI9OZ-{E{Cz9ak~hGJV(wf^rFhajqCdfAix->QX{bw<|sEx{w&Lb zv>fp1!{+o&-5Gi9V5gp;y<8DHJit|YZEo$dFZs319eXRv=;m!*VX3CXoFn#Ec*y0m z#g{j{Kh(E2CGDU9XLD>{9WH#itLbi@aeyI`%;m?XzeRq}L(pgi=grD*p2c4)++&8f zI$G~J16umOt=GRd;p1Qb#Ovg*alfAZ1DOnbR#L}kRp#6q~#7bN`SOh8A- z5!S7Uag5X>ttg`Dil!f4e6iXdsD9Z-tZO(9Tofg`4g)XMli7dm{%&w>=hkP03_*Y+ z8n@G-Q^04xQk~ARuDIFoDWDU#?Af zf00F0C8Ds+rpo_ZJK&$r&B5&LvqvR$gBz@DN;!n&ke?8fLbkL;dLKO!^3x7~al-k) z43gal8A=C&5r<^sPw2~0@Ej@=V=;|?tUpAP(^1%dL*=8=xaGY(>Y5&Rt(+b2!F_{avO6oC)y-%1h1e3}@)(nqAD0 c)mIkcddcRO+n(y@c5lAvar0w^29)Uk0%+Or<^TWy literal 0 HcmV?d00001 diff --git a/static/profile.png b/static/profile.png new file mode 100644 index 0000000000000000000000000000000000000000..7b39f31e56d97727fea81168f4486105c93dd4a1 GIT binary patch literal 2419 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 Wi4g7S3nzi!VvrdIYgBANivB-=zPrx= literal 0 HcmV?d00001 diff --git a/static/send.png b/static/send.png new file mode 100644 index 0000000000000000000000000000000000000000..f3bc31352086671806c9757637a8d76a30375bd5 GIT binary patch literal 3284 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 MpEDzu8@k;84~lZ(RR910 literal 0 HcmV?d00001 diff --git a/static/stop.png b/static/stop.png new file mode 100644 index 0000000000000000000000000000000000000000..0f8432844a1fb0c5dc842970bb1132ef3c253f6a GIT binary patch literal 2030 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-ahlfqjLii(^Pd z+}l|XLq$9#Tz7La`X)XSIF!ii#BoSf=7xnDt13&i|8DLxRbu{;JVO67wv6W61U6M$?sl?(0%q?h#1Ua7<)vc%(J z-%WQ1$6q^UYB@PLc8R>5Q416u-jWHEoA&I#AFq4)%gddIQ)jO0`ciq#@OfobO#OpT zxxcdi{(kxR-M2N;7Kiz7_b8kX(l{*Xch~-4n^YZkUdEDDi zU1*A_yLaF3^Xt_iF9KKYU7NZ~`lp#>*o5-$zuDuLvlZqic(#eSSh5K|PMH0A`^oFG z?|#j&miH5gU+rd{wEnkj;G~5tfqjKfD{lTwSRZ|uW08#Xgva*<^`5=_b^7eP-|qu1 z{nzlQa+bbx-(!80GsmO18*RPacDl9+9I4-WYo5a5J4((RML(a{-MlAQxM;b3*~jPl zbJJh#%&f!*$w1w0le*CTcZ%%oBfa9)DHu z+W*)p>-X>fwathBq`=*1bw<{gEZ?2a@PB<=;8X4Oi~W~?dB=Ul%;Uc-eoH?5oh;#4 zbJptI!k(&A4C})Wb3D=&D&6ukjcsDGhT|UBA3J+0o0{e<>pFe@_wCGic5|P-wEL>V z!Zs;+h4ho1Hud^N(~@gu$s5g(aprpT{Y2)ucPr;xo!TGu_k`j<@z#9N=dZ7=?Ems{ zp8YDB!}k=s2dbeB`g~pZd(?(i$TfnI#YN zyZ|3`DZu~$ literal 0 HcmV?d00001 diff --git a/static/style/common.scss b/static/style/common.scss new file mode 100644 index 0000000..11176d0 --- /dev/null +++ b/static/style/common.scss @@ -0,0 +1,829 @@ +$bg: #F8F8F8; +$yellow: #e2d602; +$orange: #fd7600; +$orange-deep: #FF4B00; +$orange-light: #FFC5AD; +$green: #2ACF8D; +$green-light: #a1ded0; +$blue: #2665c4; +$blue-light: #049DFF; +$blue-light-50: #ebf3f8; +$purple: #c770f6; +$purple-light: #E0AFFB; +$red: #FE6869; +$red-light: #F7B2B2; +$gray-weight: #666; +$gray: #bbb; +$gray-light: #F7F7F7; +$gold: #B68320; +$gold-light: #FFF0D3; +$fdca00: #FDCA00; +$u-primary: $blue; + +//p, span { +// font-size: 30rpx; +// margin: 0; +//} + +h6 { + font-weight: bolder !important; + font-size: 20rpx; +} + +.pos-r { + position: relative; +} + +.pos-a { + position: absolute; +} + +.bg { + background-color: $bg; +} + +.bg-gray-light { + background-color: $gray-light; +} + +.bg-white { + background-color: white; +} + +.bg-main { + background-color: $u-primary; +} + +.bg-linear { + background : linear-gradient(90deg, #049DFF, #2665c4); +} + +.bg-red { + background-color: $red; +} + +.bg-orange { + background-color: $orange; +} + +.bg-blue { + background-color: $blue; +} + +.bg-gold { + background-color: $gold; +} + +.bg-green { + background-color: $green; +} + +.bg-main-light { + background-color: #E0F2FE; +} + +.bg-fff0 { + background-color: #F0F0F0FF; +} + +.shadow { + box-shadow: 0 2px 6px 0 rgba(191, 218, 251, 1); +} + +.shadow-top { + box-shadow: 0px -2px 13px rgba(191, 218, 251, 1); +} + +.shadow-light { + box-shadow: 0 4rpx 12rpx 0 rgba(206, 206, 206, 80); +} + +.shadow-50 { + box-shadow: -2rpx 4rpx 14rpx 4rpx rgba(206, 206, 206, 50); +} + +.font-bold { + font-weight: bold; +} + +.text-center { + text-align: center; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.tips { + font-size: 20rpx; + color: $gray; +} + +.text-main { + color: $u-primary; +} + +.text-orange { + color: #fd7600; +} + +.text-blue { + color: $blue; +} + +.text-blue-light { + color: $blue-light; +} + +.text-green { + color: $green; +} + +.text-red { + color: $red; +} + +.text-gray { + color: $gray; +} + +.text-gray-weight { + color: $gray-weight; +} + +.text-black { + color: #333; +} + +.color-6C { + color: #6C6C6C; +} + +.text-white { + color: white; +} + +.text-line-through { + text-decoration: line-through; +} + +.color-9A { + color: #9A9A9A; +} + +.color-333 { + color: #333333; +} + +.flex { + display: flex; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.justify-center { + justify-content: center; +} + +.justify-start { + justify-content: flex-start; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-between { + justify-content: space-between; +} + +.justify-around { + justify-content: space-around; +} + +.items-center { + align-items: center; +} + +.items-start { + align-items: flex-start; +} + +.items-end { + align-items: flex-end; +} + +.item-self { + align-self: flex-end; +} + +.flex-col { + flex-direction: column; +} + +.flex-rev { + flex-direction: row-reverse; +} + +.flex-1 { + flex: 1; +} + +.flex-2 { + flex: 2; +} + +.flex-shrink { + flex-shrink: 0; +} + +.flex-none { + flex: none; +} + +.flex-grow { + flex-grow: 1 +} + +.flex-grow-0 { + flex-grow: 0 +} + +.h-100 { + height: 100vh; +} + +.h-100p { + height: 100%; +} + +.h-90p { + height: 90%; +} + +.h-50p { + height: 50%; +} + +.h-10p { + height: 10%; +} + +.w-100 { + width: 100vw; +} + +.w-100p { + width: 100%; +} + +.w-5p { + width: 5%; +} + +.w-10p { + width: 10%; +} + +.w-15p { + width: 15%; +} + +.w-20p { + width: 20%; +} + +.w-25p { + width: 25%; +} + +.w-30p { + width: 30%; +} + +.w-33p { + width: 33%; +} + +.w-40p { + width: 40%; +} + +.w-45p { + width: 45%; +} + +.w-50p { + width: 50%; +} + +.w-60p { + width: 60%; +} + +.w-67p { + width: 67%; +} + +.w-75p { + width: 75%; +} + +.w-80p { + width: 80%; +} + +.w-85p { + width: 85%; +} + +.w-90p { + width: 90%; +} + +.p-10 { + padding: 10rpx; +} + +.p-15 { + padding: 15rpx; +} + +.pb-15 { + padding-bottom: 15rpx; +} + +.pb-20 { + padding-bottom: 20rpx; +} + +.pb-30 { + padding-bottom: 30rpx; +} + +.p-20 { + padding: 20rpx; +} + +.p-25 { + padding: 25rpx; +} + +.p-30 { + padding: 30rpx; +} + +.px-20 { + padding: 0 20rpx; +} + +.px-40 { + padding: 0 40rpx; +} + +.p-50 { + padding: 50rpx; +} + +.py-10 { + padding: 10rpx 0; +} + +.py-15 { + padding: 15rpx 0; +} + +.py-20 { + padding: 20rpx 0; +} + +.py-25 { + padding: 25rpx 0; +} + +.py-30 { + padding: 30rpx 0; +} + +.px-15 { + padding: 0 15rpx; +} + +.px-20 { + padding: 0 15rpx; +} + +.px-30 { + padding: 0 30rpx; +} + +.pl-15 { + padding-left: 15rpx; +} + +.pl-20 { + padding-left: 20rpx; +} + +.pr-15 { + padding-right: 15rpx; +} + +.pr-20 { + padding-right: 20rpx; +} + +.pt-10 { + padding-top: 10rpx; +} + +.pt-20 { + padding-top: 20rpx; +} + +.pr-25 { + padding-right: 25rpx; +} + +.m-a { + margin: auto; +} + +.m-10 { + margin: 10rpx; +} + +.m-15 { + margin: 15rpx; +} + +.m-20 { + margin: 20rpx; +} + +.m-25 { + margin: 25rpx; +} + +.m-30 { + margin: 30rpx; +} + +.m-35 { + margin: 35rpx; +} + +.ml-10 { + margin-left: 10rpx; +} + +.ml-15 { + margin-left: 15rpx; +} + +.ml-25 { + margin-left: 25rpx; +} + +.ml-35 { + margin-left: 35rpx; +} + +.mt-10 { + margin-top: 10rpx; +} + +.mt-15 { + margin-top: 15rpx; +} + +.mt-20 { + margin-top: 20rpx; +} + +.mt-25 { + margin-top: 25rpx; +} + +.mt-30 { + margin-top: 30rpx; +} + +.mt-40 { + margin-top: 40rpx; +} + +.mt-50 { + margin-top: 50rpx; +} + +.mb-25 { + margin-bottom: 25rpx; +} + +.mb-40 { + margin-bottom: 40rpx; +} + +.my-10 { + margin-top: 10rpx; + margin-bottom: 10rpx; +} + +.my-15 { + margin-top: 15rpx; + margin-bottom: 15rpx; +} + +.my-20 { + margin-top: 20rpx; + margin-bottom: 20rpx; +} + +.my-25 { + margin-top: 25rpx; + margin-bottom: 25rpx; +} + +.mx-15 { + margin-left: 15rpx; + margin-right: 15rpx; +} + +.mx-20 { + margin-left: 20rpx; + margin-right: 20rpx; +} + +.mx-25 { + margin-left: 25rpx; + margin-right: 25rpx; +} + +.mb-10 { + margin-bottom: 10rpx; +} + +.mb-15 { + margin-bottom: 15rpx; +} + +.mb-20 { + margin-bottom: 20rpx; +} + +.mr-10 { + margin-right: 10rpx; +} + +.mr-15 { + margin-right: 15rpx; +} + +.ml-20 { + margin-left: 20rpx; +} + +.mr-25 { + margin-right: 25rpx; +} + +.mr-35 { + margin-right: 35rpx; +} + +.text-15 { + font-size: 15rpx; +} + +.text-20 { + font-size: 20rpx; + line-height: 20rpx; +} + +.text-24 { + font-size: 24rpx; +} + +.text-25 { + font-size: 25rpx; + line-height: 35rpx; +} + +.text-26 { + font-size: 26rpx; +} + +.text-28 { + font-size: 28rpx; + line-height: 28rpx; +} + +.text-30 { + font-size: 30rpx; + line-height: 30rpx; +} + +.text-35 { + font-size: 35rpx; + line-height: 35rpx; +} + +.text-40 { + font-size: 40rpx; + line-height: 40rpx; +} + +.rounded { + border-radius: 40rpx; +} + +.rounded-sm { + border-radius: 20rpx; +} + +.circle { + border-radius: 999px; +} + +.rounded-16 { + border-radius: 16rpx; +} + +.rounded-bottom { + border-radius: 0 0 40rpx 40rpx; +} + +.rounded-top { + border-radius: 40rpx 40rpx 0 0; +} + +.border-top { + border-top: 1px solid $gray-light; +} + +.border-bottom { + border-bottom: 1px solid $gray-light; +} + + +.border-right { + border-right: 1px solid $gray-light; +} + +.border { + border: 1px solid $gray; +} + +.canvas-hide { + //position: fixed; + //right: 100vw; + //bottom: 100vh; + //z-index: -9999; + //opacity: 0; +} + +.card { + @extend .rounded; + @extend .bg-white; + @extend .p-20; +} + +.footer { + position: fixed; + left: 0; + bottom: 0; + @extend .w-100p; + z-index: 10; +} + +.public-sub-btn { + background: $fdca00; + font-weight: bold; + color: #000; + border-radius: 50rpx; + text-align: center; + padding: 24rpx 0; +} + +.b-20 { + bottom: 20rpx; +} + +.p-button { + background: linear-gradient(#E5CB98, #FBEDBC); + color: #B68320; +} + +@font-face { + font-family: "iconfont"; + src: url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'); +} + +.iconfont { + flex: 1; + text-align: center; + font-family: "iconfont" !important; + font-size: 22px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-undo:before { + content: "\e607"; +} + +.icon-redo:before { + content: "\e606"; +} + +.icon-img:before { + content: "\e6e2"; +} + +.icon-video:before { + content: "\e798"; +} + +.icon-link:before { + content: "\e60d"; +} + +.icon-text:before { + content: "\e6ce"; +} + +.icon-clear:before { + content: "\e637"; +} + +.icon-save:before { + content: "\e501"; +} + +.required { + @extend .pos-a; + left: -9px; + color: #f56c6c; + line-height: 20px; + font-size: 20px; + top: 15px; +} + +.overflow-y { + overflow-y: auto; +} + +.overflow-x { + overflow-x: auto; +} + +.album-item { + width: 190rpx; + height: 190rpx; + @extend .m-10; + @extend .flex; + @extend .justify-center; + @extend .items-center; +} + +.del-wrap { + @extend .pos-a; + right: 0; + top: 0; + border-radius: 0 0 0 5px; + padding: 10rpx; + background-color: $red; + z-index: 1000; +} + +.min-height { + min-height: 100vh; +} + +.share-btn { + border: none; + background: none; + margin: 0; + padding: 0; + + &::after { + border: none; + } +} + +.border-main{ + border-color: $u-primary !important; +} + +.popup-close { + bottom: -80rpx; + left: calc(50% - 20rpx); +} \ No newline at end of file diff --git a/static/tabbar/home-selected.png b/static/tabbar/home-selected.png new file mode 100644 index 0000000000000000000000000000000000000000..53661942e2e0995e9c063b7a3d2f3f89525e6ab5 GIT binary patch literal 2830 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 literal 0 HcmV?d00001 diff --git a/static/tabbar/home.png b/static/tabbar/home.png new file mode 100644 index 0000000000000000000000000000000000000000..a99d767055d95c4a04f65a0b86a88ef53b8b2a69 GIT binary patch literal 3045 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 FV1mMIKA->q literal 0 HcmV?d00001 diff --git a/static/tabbar/user.png b/static/tabbar/user.png new file mode 100644 index 0000000000000000000000000000000000000000..e8c13d6c0165abb43f8bb4dd3f99b6dd47b9246f GIT binary patch literal 3465 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 literal 0 HcmV?d00001 diff --git a/static/top.png b/static/top.png new file mode 100644 index 0000000000000000000000000000000000000000..e24b71a3a087d659f6d4c880de3449500c781e07 GIT binary patch literal 2317 zcmbtWX;c$g8jVUjih{}r0;5=+fCEA{mIygSL6S%i(pZG8hsK1YkN`==q*#KsHZCZj z0+9eMGJ^;-!4<&;kOmyV7NPC26%`JMXaE-!1eeY_6fp|@BQw3@2fhM z9m?KhVQz1Z!C)*{fpie9h3K8QU>^EB_)}grTG=6tC?pJyN78sw2;(n+;~;<~;%$RK zh$oP5zX|zbF!QiNP81Rq5=`a8A_C8ZA*72WC>w+E-H3nBfxH05BR22Q2`Nz@PKqtvRFnYB9j3Mg+TW7qEN_gfIEroP9&ih1yA;*dQqtE z>wr%Mi$;?Q;;A5=`6(9KqhS*eL_#GJ)6&uiX&wYvx{XNo@$oTfxVz&~1YRZ=BfNCH zScaQXphGggR474&uoy5Y^5WnWgoZ_({=Ni}UVObEHr#fYW3yAMqg}RF+tV@WgzGMWdUQb}5?H$H9Oa^p&_B8q8s6 zlxy^Nf6x@-49|ZxewfhY*=Z~MbXSt~-9?%sHu~;jeYaA7OQ|g-8zzVK{TDTdtu^`f zy4D@K&TPZ*bzNPow)QK1Pl>+gd&AVIM(Jo6zNS5f*B&Ejjsp6-)!I{G+S)DJDyBx^ zV0<@jc-pDIe_H>jMN{{Urev-DmognXTjpgL={8J{X-|ji2b(m-&W5qu`UmF>Pdbe6 zUm4y!(H{5Eo{iSlY}Qt@^mi&WdG>~v_YD(6nu3*@LaeS!VKnG8hnE|TMl;Vu)7OH5 zfb1}|`+pbAg;#an7>rpsi|)@!@4MQ!D6*8a95b{A3Kh*6|MhwG6gh=Gpw&CPHyW#* zzVw@$If%)WrAGYiX@5^k<3a>y``otu;pAjZ|Ms17?J}Ic)M+5E-*una`P~o7G}8SA z+za<#y;-DwJB4TNQGLU?yJGh;psVzp1KBG0ba~zAq6Jr%u2vRu-lCnqT{qoB00|neW`KN%8b$fL>T|@6PaNOqo z64XPf^y1BH`N6%;lp$69i>Z0c#AA^{xrb{^H!U;Y?Rr(}aQ&YTaaJpxv+|WGF?aWu z7b)esX)|1V!<@LtALgiu>h#GX%RWs3NF*s5>qmKllg{VZm}$4~UFyxk@R9z&Ikx%1 z74vT1doV$CRo61_$gJCa7v7LB)%Ddm&sP|@_B4lke>zn83g3IR&u{O+l@x`g3pwm- z&PA)0)@9$0XIe6{!NqP@E3-0wn~!V%*WY^&QnDLu1K)MgTUy!!zg{vO0F5=o{j^1- zRcuPxTfj}_)*=eV&<^ZwMb5WR99Op72voiea-F}mFecgI(y(_+XJA!$RN>_qYyaxp zBWYWT@7uC+gDM%X9CDUVMwX7${7h2xJ$&d?Y}avs-HE;2U~%K|D(0S(zH1-h;==5z zLkH~=RL{bbCT^@^f)S5N1Dqo&=d7m1JtvxmjD{lxK|2<)^UH1i zc@1M%v%yIlhbuxv9^#>{9%2-iy#@)(V*m3 zN0z4+k1NX&QY5~rPwV<4#B1(P9Q19i5)9T)^ zcRS=-*eBP>qhz)FD;d_gX;(v{nis@#{=z!rH+kMEAqIB37X&&tMZMlxoez#X-Wtt3 zUV*O~*}hf%=OI68GM}Vyu#LZes&{w G&%XgHbQyO5 literal 0 HcmV?d00001 diff --git a/static/user/24gf-portraitMale.png b/static/user/24gf-portraitMale.png new file mode 100644 index 0000000000000000000000000000000000000000..1f3f23f61c4b4e14bad21aff90f2171564da6d87 GIT binary patch literal 2714 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 literal 0 HcmV?d00001 diff --git a/static/user/客服.png b/static/user/客服.png new file mode 100644 index 0000000000000000000000000000000000000000..1f7f9ba86d6023716f619725205f19f7d1c64839 GIT binary patch literal 4517 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

}bJg2Xz+|^dN)M_;q zKoqH=lD80*`?e=FTN8fm!~OlHazt2AXWnqx(3D)>pR_F?M?ZIK^3m0j^f!Au9f`wP z4%dHwCHT!9|1$k)?}*HEV+@Eu6GHEh_xns`)`tGmVhMDMX{L-y}XrL!%rQ4$I7sjvG*O{x2 zBvcm}tcW{l`f3I>{H1{>@EuY%L@B_Wm))81ia3yQjiz@OBm6@X47;-cD%zfx?u&7H z^>^c3hpUQ6P+qN(QU1^!o;vqI;=zk$foY6LGWo32@zY?Dn(>1(bNQoD_v`tYM^@oF z%w*OEJ%=Wf?*D1?DR%09dOw{+)qCM<+561eg|hPLFUZW)O6Jgjfvrt7rqy9N8h*jg#^FFq7M*iU!IeaB zHmyTE*D%-ls^dC{%SPL3)i~dE1SUvG=?`^*D>o;y>&K{Rr8jZ=@EOl3_#>$@K+!dd z#X2y<+1G>KG@x8N0SSaG=8QyL)W&NnDJ<@YF9b&&D-IEgwNzENdH(W?zA=oH%KM}> z8h{6=fuAb8m3T(ZS?p}s>UE { + res.then((res) => { + if (!res) return resolve(res) + return res[0] ? reject(res[0]) : resolve(res[1]) + }); + }); + }, +}); \ No newline at end of file diff --git a/uni.scss b/uni.scss new file mode 100644 index 0000000..b049630 --- /dev/null +++ b/uni.scss @@ -0,0 +1,77 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ +@import '@/uni_modules/uview-ui/theme.scss'; +@import "@/static/style/common.scss"; +/* 行为相关颜色 */ +$uni-color-primary: #007aff; +$uni-color-success: #4cd964; +$uni-color-warning: #f0ad4e; +$uni-color-error: #dd524d; + +/* 文字基本颜色 */ +$uni-text-color:#333;//基本色 +$uni-text-color-inverse:#fff;//反色 +$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 +$uni-text-color-placeholder: #808080; +$uni-text-color-disable:#c0c0c0; + +/* 背景颜色 */ +$uni-bg-color:#ffffff; +$uni-bg-color-grey:#f8f8f8; +$uni-bg-color-hover:#f1f1f1;//点击状态颜色 +$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 + +/* 边框颜色 */ +$uni-border-color:#c8c7cc; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm:12px; +$uni-font-size-base:14px; +$uni-font-size-lg:16; + +/* 图片尺寸 */ +$uni-img-size-sm:20px; +$uni-img-size-base:26px; +$uni-img-size-lg:40px; + +/* Border Radius */ +$uni-border-radius-sm: 2px; +$uni-border-radius-base: 3px; +$uni-border-radius-lg: 6px; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 5px; +$uni-spacing-row-base: 10px; +$uni-spacing-row-lg: 15px; + +/* 垂直间距 */ +$uni-spacing-col-sm: 4px; +$uni-spacing-col-base: 8px; +$uni-spacing-col-lg: 12px; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2C405A; // 文章标题颜色 +$uni-font-size-title:20px; +$uni-color-subtitle: #555555; // 二级标题颜色 +$uni-font-size-subtitle:26px; +$uni-color-paragraph: #3F536E; // 文章段落颜色 +$uni-font-size-paragraph:15px; diff --git a/uni_modules/m-tabbar/changelog.md b/uni_modules/m-tabbar/changelog.md new file mode 100644 index 0000000..8018b40 --- /dev/null +++ b/uni_modules/m-tabbar/changelog.md @@ -0,0 +1,76 @@ +## 2.0.0(2023-11-14) +1、新增切换拦截返回当前点击index +2、新增自动读取主页面配置功能 +3、优化部分代码结构实现 +注意:代码重构优化,2.0.0版本不支持老版本兼容 +## 1.3.3(2023-02-27) +修复openType类型为navigateTo时,页面返回,重新点击不响应问题 +## 1.3.2(2023-02-27) +修改占位空间点击事件遮挡问题 +## 1.3.1(2023-02-27) +1、新增页面打开方式,可以自定义每个tabbarItem的点击打开方式 +2、新增tabbarHeight参数,方便你直接使用参数控制tabbar高度 +## 1.3.0(2023-02-21) +新增ref方法若干,优化使用说明文档 +## 1.2.9(2023-02-21) +修改safe计算,使用原生css,抛弃原始计算耗时能力 +## 1.2.8(2023-02-20) +修正文档使用说明 +## 1.2.7(2023-02-20) +1、新增角标显示 +2、新增setTabBarBadge,reLoad方法 +## 1.2.6(2023-02-13) +修复判断safebottom底部安全距离数值写死问题 +## 1.2.5(2023-01-12) +1、修复默认初始高度闪烁问题,不在使用计算,直接默认 +2、修复上个版本遗留current选中问题 +3、修复safeBottom底部判断错误问题 +4、更新使用说明文档 +## 1.2.4(2023-01-09) +新增文档说明,增加示例项目页面 +## 1.2.3(2022-12-14) +修复外部不跳转页面修改current,组件不响应bug +## 1.2.2(2022-12-14) +新增click事件,click事件会优先于任何事件 +## 1.2.1(2022-12-09) +修改文档使用说明,路由拦截有平台兼容性,暂时无法解决,平台原生不支持 +## 1.2.0(2022-12-09) +新增插槽,可以自定义凸起导航,优化文档使用说明 +## 1.1.9(2022-12-06) +修复iconPath图片路径为网络路径判断错误问题 +## 1.1.7(2022-12-01) +优化部分机器计算错误问题 +## 1.1.6(2022-12-01) +修改高度计算错误问题 +## 1.1.5(2022-12-01) +修复各别设备上高度计算有误问题 +## 1.1.4(2022-11-25) +修复vue2版本在微信小程序上不支持:style传入参数bug,优化参数错误逻辑 +## 1.1.3(2022-11-24) +修复native模式borderStyle样式丢失问题 +## 1.1.2(2022-11-24) +修改描述文档说明,修改插件描述信息 +## 1.1.1(2022-11-24) +优化使用说明文档 +## 1.1.0(2022-11-24) +极度简化native模式,页面只需要引入组件即可,任何操作都不需要 +## 1.0.9(2022-11-24) +修复native模式下,fill忘记计算高度. +## 1.0.8(2022-11-24) +优化native模式,简化参数数量,使用更简单 +## 1.0.7(2022-11-24) +新增native配置,可以兼容原生tabbar,新增beforeChange,可自行根据要求自己兼容路由守卫 +## 1.0.6(2022-11-23) +修改文档描述错误 +## 1.0.5(2022-11-23) +修复fill高度遗漏安全距离问题,文档使用说明优化更新 +## 1.0.4(2022-11-23) +优化配置选项,提取当前选中项,新增fixed配置 +## 1.0.3(2022-11-14) +添加上阴影效果,修复由于去除了上线条,造成如果内容如果是白色,tabbar会和内容高度重合的问题 +## 1.0.2(2022-11-14) +修改说明文档,更加详细备注说明 +## 1.0.1(2022-11-14) +新增当前选中项class名,方便用户直接样式覆盖 +## 1.0.0(2022-11-14) +第一个自定义tabbar版本 diff --git a/uni_modules/m-tabbar/components/m-tabbar/m-tabbar.vue b/uni_modules/m-tabbar/components/m-tabbar/m-tabbar.vue new file mode 100644 index 0000000..f3605ac --- /dev/null +++ b/uni_modules/m-tabbar/components/m-tabbar/m-tabbar.vue @@ -0,0 +1,516 @@ + + + + + \ No newline at end of file diff --git a/uni_modules/m-tabbar/package.json b/uni_modules/m-tabbar/package.json new file mode 100644 index 0000000..aef2e35 --- /dev/null +++ b/uni_modules/m-tabbar/package.json @@ -0,0 +1,81 @@ +{ + "id": "m-tabbar", + "displayName": "自定义tabbar、tabbar路由守卫、零配置tabbar、凸起导航", + "version": "2.0.0", + "description": "自定义tabbar,超高还原原生配置模式,一行代码自定义导航,自带tabbar路由守卫功能", + "keywords": [ + "自定义tabbar,tabbar,自定义标签栏,tabbar路由守卫,零配置tabbar,路由守卫、凸起导航" +], + "repository": "", + "engines": { + "HBuilderX": "^3.5.4" + }, + "dcloudext": { + "type": "component-vue", + "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": "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", + "飞书": "y", + "京东": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/m-tabbar/readme.md b/uni_modules/m-tabbar/readme.md new file mode 100644 index 0000000..feb8545 --- /dev/null +++ b/uni_modules/m-tabbar/readme.md @@ -0,0 +1,312 @@ +# m-tabbar自定义 + + +## 使用说明,注意事项(必看) + +# 我配套上传了一个案例包,强烈建议下载阅读体验使用 + +--- + +> 1、自定义tabbar的情况下,不建议在一个页面内通过几个组件,用v-if切换去模拟各个页面,会存在各种不可控bug + +> 闪烁的话,可以使用一个页面,多个组件,如果是`if切换组件`的话,就是一个页面控制多个组件显示隐藏来实现。 如果组件封装的有问题,会出现组件之间的协调问题,请看情况使用。 还有一些原生的交互没有办法达到预期,会影响到原生体验。 比如下拉刷新,滚动加载更多,切换tabbar后滚动位置不能固定等 + +>2、在pages.json中正常定义tabbar配置和字段,使用`native`模式,组件会自动加载pages.json配置项,并自动判断当前选中项,并自动隐藏原生的tabbar, 但是有个闪烁问题,暂时无解,如果你有好的方案,欢迎指正 + +> 3、如果出现tabbar不显示,但是控制台无任何报错信息,应该就是样式布局影响了,请自行排查 + +> 4、因为是自定义导航,所以原生方法是不支持的,只能通过 ref 可以获取到 tabbar 实例并调用插件的实例方法,详细请看页面最下方 + + +--- +# 快速使用 + +## 方式一、Native模式使用 + +``` +// native模式,无需配置其他项 + +``` +在各个tabbar页面引入tabbar组件,传入属性`native`,`native`模式下无需任何配置 + +组件会默认自动通过`uni.hideTabBar()`隐藏系统tabbar + + +## 方式二、页面使用(current默认从0开始)(强烈推荐) + +``` +// 普通页面模式 + +``` + +配置选项和`uniapp`的配置完全相同,直接复制过来, 默认传入`pagePath`后,直接使用`reLaunch`跳转 +插件支持扩展`openType`参数,用户可根据自己情况自行扩展页面打开方式,详细看下方配置 + +> 闪烁的话,可以使用一个页面,多个组件,如果是`if切换组件`的话,就是一个页面控制多个组件显示隐藏来实现。 如果组件封装的有问题,会出现组件之间的协调问题,请看情况使用。 还有一些原生的交互没有办法达到预期,会影响到原生体验。 比如下拉刷新,滚动加载更多,切换tabbar后滚动位置不能固定等 + +### 1、提取tabbar配置(2.0.0版本支持自动读取配置,主页面配置,内页可以不配置) + +新建文件config/tabbar.js(默认你有config目录,根据自己情况而定) +``` +export default { + color: "#161616", + selectedColor: "#161616", + borderStyle: "black", + backgroundColor: "#ffffff", + list: [{ + pagePath: "/pages/index/index", + iconPath: "/static/tabbar/index.png", + selectedIconPath: "/static/tabbar/index_active.png", + text: "首页", + openType: 'navigate', //新版本新增,页面被打开方式,默认为reLaunch + dot: 1 //新版本新增参数,详细看页面最下方使用说明 + }, { + pagePath: "/pages/shop/index", + iconPath: "/static/tabbar/shop.png", + selectedIconPath: "/static/tabbar/shop_active.png", + text: "门店" + }, { + pagePath: "/pages/my/index", + iconPath: "/static/tabbar/my.png", + selectedIconPath: "/static/tabbar/my_active.png", + text: "我的" + }] +} +``` + +### 2、引入tabbar (2.0.0版本支持自动读取配置,主页面配置,内页可以不引入) +#### VUE2引入 +``` +import TabbarConfig from '@/config/tabbar.js' +export default { + data(){ + return { + tabbar: TabbarConfig + } + }, + onLoad(){ + // 没有开启native模式下,使用reLaunch跳转,会存在首页标志,需要隐藏 + #ifdef MP-JD || MP-WEIXIN + uni.hideHomeButton() + #endif + } +} +``` + +#### VUE3 setup引入 +``` +import TabbarConfig from '@/config/tabbar.js' +import { reactive } from 'vue' + +// 没有开启native模式下,使用reLaunch跳转,会存在首页标志,需要隐藏 +#ifdef MP-JD || MP-WEIXIN +uni.hideHomeButton() +#endif + +const tabbar = reactive(TabbarConfig) +``` + +### 3、页面使用 +``` + +``` + +## 高级用法(beforeChange)(路由守卫) + +有些特殊需求,我们在点击一个tabbar其他一项的时候,可能需要判断权限是否可以进入,那么我们在切换前做一下路由拦截`beforeChange`,如果达到自己的预期,就进行跳转 + +> uniapp 微信小程序不支持$listeners,只能使用prop方式传入, 部分平台不支持prop传入方法,有平台限制,详细请看(问题解答)[https://ask.dcloud.net.cn/question/70659] + +### 页面使用传入beforeChange + +``` +// native模式,无需传入 fixed fill + + +// 普通页面模式 + +``` + +### 进行事件判断监听 + +函数必选参数 next,当判断逻辑执行完毕后,满足条件的情况下执行 `next()` + +``` +methods: { + onBeforeChange(next, index){ + //index为当前点击的是第几项,0开始 + console.log('before page2 switch') + setTimeout(()=>{ + console.log('switch page2 end') + next() + }, 1000) + } +} +``` + +## 自定义凸起导航(插槽使用) + +``` + + + + +``` + +### 属性说明(Native模式) + +| 属性名 | 类型 | 默认值 | 必填 | 说明 | +| ------------ | ------------- | ------ | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| zIndex | Number,String | 999 | 否 | 当前处于z-index层级 | +| native | Boolean | false | 否 | native模式,当前页面是系统原生tabbar页面(pages.json里面配置了tabBar) | +| beforeChange | Function | null | 否 | 导航切换前事件hooks,用于判断点击tabbar的时候,可以先执行自己定义的事件,达到预期后在跳转(类似router的路由守卫),方法需要调用next参数回调,部分平台不支持,存在兼容性 | +| tabbarHeight | Number,String | 100 | 否 | 默认tabbar高度,有些时候你可能想控制tabbar高度(没啥用,如果非要更改,布局有影响,请使用样式覆盖) | +| name | string | custom | 否 | 用于内部调用页面时,自动读取前一个页面的配置,无需二次配置 | + +### 属性说明(普通模式) + +| 属性名 | 类型 | 默认值 | 必填 | 说明 | +| ------------ | ------------- | ------ | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| current | Number,String | 0 | 是 | 默认选中第几项,0开始 | +| tabbar | Object | {} | 是 | tabbar配置项(新增dot参数,详细看下方使用说明) | +| fixed | Boolean | false | 否 | 是否定位在底部 | +| fill | Boolean | false | 否 | 是否填充底部高度(如果开启fixed后,会出现tabbar遮盖内容问题,开启此属性,会自动填充高度,可单独使用) | +| safeBottom | Boolean | true | 否 | 是否自动规避iphoneX\XR等底部安全距离 | +| zIndex | Number,String | 999 | 否 | 当前处于z-index层级 | +| beforeChange | Function | null | 否 | 导航切换前事件hooks,用于判断点击tabbar的时候,可以先执行自己定义的事件,达到预期后在跳转(类似router的路由守卫),方法需要调用next参数回调,部分平台不支持,存在兼容性 | +| tabbarHeight | Number,String | 100 | 否 | 默认tabbar高度,有些时候你可能想控制tabbar高度(没啥用,如果非要更改,布局有影响,请使用样式覆盖) | +| name | string | custom | 否 | 用于内部调用页面时,自动读取前一个页面的配置,无需二次配置 | + +### openType对应值(默认reLaunch跳转) + +| 方法名 | 返回值说明 | +| ------- | ------- | +| navigate | [对应navigateTo](https://uniapp.dcloud.io/api/router?id=navigateto) | +| redirect | [对应redirectTo](https://uniapp.dcloud.io/api/router?id=redirectto) | +| reLaunch | [对应reLaunch](https://uniapp.dcloud.io/api/router?id=relaunch) | +| switchTab | [对应switchTab](https://uniapp.dcloud.io/api/router?id=switchtab) 注意此方法需要你有原生tabbar,比如内页使用了自定义导航,想回tabbar的指定页面 | +| navigateBack | [对应navigateBack](https://uniapp.dcloud.io/api/router?id=navigateback) 只能后退一步 | + +### 方法说明 + +| 方法名 | 返回值说明 | +| ------- | ------- | +| click | 当前选中index,无论什么情况下都会先触发click事件,方便自由定制更多方法 | +| change | 当前选中index(beforeChange会在change之前执行,只有执行next才会返回) | + +### 插槽 (注意Vue3存在跨断不兼容问题) + +| 插槽名 | 返回值说明 | +| ------- | ------- | +| tabbar_index_{index} | 插槽名字为tabbar_index_你要变化的index, 可以做到任意控制自己的导航,比如中心凸起,比如你想让第一个变化,index就是0,比如你tabbarList里面有5个item,你想让中间的凸起,那么index就是2,取下标 | + +### 方法 (通过 ref 可以获取到 tabbar 实例并调用实例方法) + +> 注意,由于是使用了自定义,所以原生的方法是不能使用的,只能通过 ref 可以获取到 tabbar 实例并调用实例方法,目前只有下面4个方法,而且方法是没有`success,fail,complete`回掉的,考虑到跨平台型,如果原生方法有平台差异,插件也是不考虑支持的 + +| 事件名 | 参数 | 参数说明| +| ------- | ------- | ------- | +| setTabBarBadge | object | [为 tabBar 某一项的右上角添加文本](https://uniapp.dcloud.io/api/ui/tabbar?id=settabbarbadge) | +| setTabBarItem | object | [动态设置 tabBar 某一项的内容](https://uniapp.dcloud.io/api/ui/tabbar?id=settabbaritem) | +| reload | 无 | 有特殊情况下,你可能需要调用重新载入tabbar配置,比如在内页进行了配置更新,返回前一个页面,自动读取前一个页面的配置 | +| showTabBar | 无 | 显示tabbar,默认显示,无动画效果 | +| hideTabBar | 无 | 隐藏tabbar,无动画效果 | + + +``` +//页面调用组件添加ref + +// setTabBarBadge ,为 tabBar 某一项的右上角添加文本 +this.$refs.tabbar.setTabBarBadge({ + index: 0, + text: '10' +}) + +//setTabBarItem 动态设置 tabBar 某一项的内容 +this.$refs.tabbar.setTabBarBadge({ + index: 0, + text: 'text', + pagePath: 'newPagePath', + //插件新增pagePath,注意native模式下,如果更改了pagePath,可能存在选中项自动选中失败问题 + iconPath: '/path/to/iconPath', + selectedIconPath: '/path/to/selectedIconPath' +}) + +//如果直接在onload或者onshow等组件还在加载中的特殊情况下,由于加载比较慢, +// 方法可能会失效,建议放在nextTick函数里面 +this.$nextTick(()=>{ + this.$refs.tabbar.setTabBarBadge({ + index: 0, + text: '10' + }) +}) +//reload重载整个组件 +this.$nextTick(()=>{ + this.$refs.tabbar.reload() +}) +``` + +tabbarConfig参数新增dot配置项,可以单独配置每一项的右上角角标,可传入任意类型,不显示为空即可或者不填写, 默认为红色,如果想更改样式,请使用样式覆盖`m-tabbar__badge` +``` +list: [{ + pagePath: "/pages/index/index", + iconPath: "/static/tabbar/index.png", + selectedIconPath: "/static/tabbar/index_active.png", + text: "首页", + dot: 1 + }, { + pagePath: "/pages/shop/index", + iconPath: "/static/tabbar/shop.png", + selectedIconPath: "/static/tabbar/shop_active.png", + text: "门店", + dot: '' + }, { + pagePath: "/pages/my/index", + iconPath: "/static/tabbar/my.png", + selectedIconPath: "/static/tabbar/my_active.png", + text: "我的", + dot: '' + }] +``` + + +### 目前已知问题 + +- 1、在全局加样式 filter: grayscale(1) 后,tabbar组件的fixed样式失效,排版在页面最底部(无法修复) +- 2、微信小程序native模式首次进入的时候,底部tabbar会闪动一下(无法修复) 建议全局页面做一个延迟加载效果,等全部加载完成后,在显示 + + +### 插件写的时候,没办法照顾到所有平台,欢迎点评指正,如有问题欢迎给我留言 + +#### 例如: +``` +设备:iphone13 +系统: ios13 +使用环境平台: 微信小程序、app +使用vue版本 :vue3 +问题描述: 提示什么什么错误 +``` \ No newline at end of file diff --git a/uni_modules/piaoyi-progress-bar/changelog.md b/uni_modules/piaoyi-progress-bar/changelog.md new file mode 100644 index 0000000..852ba47 --- /dev/null +++ b/uni_modules/piaoyi-progress-bar/changelog.md @@ -0,0 +1,2 @@ +## 1.0.1(2023-09-19) +改为uni_modules规范 diff --git a/uni_modules/piaoyi-progress-bar/components/piaoyi-progress-bar/piaoyi-progress-bar.vue b/uni_modules/piaoyi-progress-bar/components/piaoyi-progress-bar/piaoyi-progress-bar.vue new file mode 100644 index 0000000..8b7b751 --- /dev/null +++ b/uni_modules/piaoyi-progress-bar/components/piaoyi-progress-bar/piaoyi-progress-bar.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/uni_modules/piaoyi-progress-bar/package.json b/uni_modules/piaoyi-progress-bar/package.json new file mode 100644 index 0000000..44b7c48 --- /dev/null +++ b/uni_modules/piaoyi-progress-bar/package.json @@ -0,0 +1,15 @@ +{ + "id": "piaoyi-progress-bar", + "name": "piaoyi进度条", + "displayName": "piaoyi进度条", + "version": "1.0.1", + "description": "进度条 可设置环状 开箱即用", + "keywords": [ + "进度条", + "可设置环状", + "开箱即用" + ], + "dcloudext": { + "type": "component-vue" + } +} \ No newline at end of file diff --git a/uni_modules/piaoyi-progress-bar/readme.md b/uni_modules/piaoyi-progress-bar/readme.md new file mode 100644 index 0000000..bc09bf4 --- /dev/null +++ b/uni_modules/piaoyi-progress-bar/readme.md @@ -0,0 +1,56 @@ +### piaoyi-progress-bar 进度条 + +**使用方法:** + +正常进度条 +``` + + +``` + +环状进度条 +``` + + +``` + +``` +import piaoyiProgressBar from '@/uni_modules/piaoyi-progress-bar/components/piaoyi-progress-bar/piaoyi-progress-bar.vue'; +export default { + components: { + piaoyiProgressBar + }, + data() { + return { + } + }, + methods: { + } +} +``` + +#### 事件说明 + +无 + +#### Prop + +| 参数名称 | 描述 | 默认值 | +| -------- | ------------------------------ | ------------------------------ | +| progress | 进度值 | 空(范围:0-100) | +| backgroundColor | 背景色 | #EFEFF4 | +| progressBackgroundColor | 进度背景色 | #07C160 | +| showText | 是否显示文本 | true | +| textColor | 文本颜色 | #000000 | +| textSize | 文本大小 | 24 | +| height | 进度条线条宽度 | 20 | +| diameter | 进度条整体大小 | 200 | +| isCircular | 是否显示环状 | false | +| canvasId | isCircular为true时必传,一个页面使用多个需要定义不同的canvasId | canvasId | + +### 可接定制化组件开发 +### 右侧有本人代表作小程序二维码,可以扫码体验 +### 如使用过程中有问题或有一些好的建议,欢迎加QQ群互相学习交流:120594820 \ No newline at end of file diff --git a/uni_modules/uview-ui/LICENSE b/uni_modules/uview-ui/LICENSE new file mode 100644 index 0000000..4db40ef --- /dev/null +++ b/uni_modules/uview-ui/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 www.uviewui.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uni_modules/uview-ui/README.md b/uni_modules/uview-ui/README.md new file mode 100644 index 0000000..c78ff47 --- /dev/null +++ b/uni_modules/uview-ui/README.md @@ -0,0 +1,66 @@ +

+ logo +

+

uView 2.0

+

多平台快速开发的UI框架

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