From 43abd1f3d6bf38c8c4471af5e00cff3b193d3401 Mon Sep 17 00:00:00 2001 From: zoujiandong <10130823232@qq.com> Date: Wed, 30 Jul 2025 13:58:39 +0800 Subject: [PATCH] 222 --- unpackage/dist/dev/mp-weixin/app.js | 61 + unpackage/dist/dev/mp-weixin/app.json | 44 + .../components/backDetailNav/backDetailNav.js | 89 ++ .../backDetailNav/backDetailNav.json | 7 + .../backDetailNav/backDetailNav.wxml | 1 + .../backDetailNav/backDetailNav.wxss | 91 ++ .../components/backLogoNav/backLogoNav.js | 54 + .../components/backLogoNav/backLogoNav.json | 7 + .../components/backLogoNav/backLogoNav.wxml | 1 + .../components/backLogoNav/backLogoNav.wxss | 88 ++ .../mp-weixin/components/backNav/backNav.js | 40 + .../mp-weixin/components/backNav/backNav.json | 6 + .../mp-weixin/components/backNav/backNav.wxml | 1 + .../mp-weixin/components/backNav/backNav.wxss | 77 ++ .../dev/mp-weixin/components/navBar/navBar.js | 103 ++ .../mp-weixin/components/navBar/navBar.json | 7 + .../mp-weixin/components/navBar/navBar.wxml | 1 + .../mp-weixin/components/navBar/navBar.wxss | 80 ++ .../components/navBarSearch/navBarSearch.json | 8 + .../components/navBarSearch/navBarSearch.wxml | 1 + .../components/navBarSearch/navBarSearch.wxss | 87 ++ .../mp-weixin/components/pEditor/pEditor.json | 10 + .../dev/mp-weixin/components/tabBar/tabBar.js | 72 ++ .../mp-weixin/components/tabBar/tabBar.json | 7 + .../mp-weixin/components/tabBar/tabBar.wxml | 1 + .../mp-weixin/components/tabBar/tabBar.wxss | 35 + .../components/u--image/u--image.js | 44 + .../components/u--image/u--image.json | 6 + .../components/u--image/u--image.wxml | 1 + .../components/u--image/u--image.wxss | 0 .../components/u--textarea/u--textarea.js | 48 + .../components/u--textarea/u--textarea.json | 6 + .../components/u--textarea/u--textarea.wxml | 1 + .../components/u--textarea/u--textarea.wxss | 0 .../components/u-avatar/u-avatar.js | 137 ++ .../components/u-avatar/u-avatar.json | 7 + .../components/u-avatar/u-avatar.wxml | 1 + .../components/u-avatar/u-avatar.wxss | 68 + .../uview-plus/components/u-badge/u-badge.js | 64 + .../components/u-badge/u-badge.json | 4 + .../components/u-badge/u-badge.wxml | 1 + .../components/u-badge/u-badge.wxss | 104 ++ .../components/u-button/u-button.js | 201 +++ .../components/u-button/u-button.json | 7 + .../components/u-button/u-button.wxml | 1 + .../components/u-button/u-button.wxss | 196 +++ .../components/u-cell-group/u-cell-group.json | 6 + .../components/u-cell-group/u-cell-group.wxml | 1 + .../components/u-cell-group/u-cell-group.wxss | 63 + .../uview-plus/components/u-cell/u-cell.js | 101 ++ .../uview-plus/components/u-cell/u-cell.json | 7 + .../uview-plus/components/u-cell/u-cell.wxml | 1 + .../uview-plus/components/u-cell/u-cell.wxss | 143 ++ .../uview-plus/components/u-code/u-code.js | 98 ++ .../uview-plus/components/u-code/u-code.json | 4 + .../uview-plus/components/u-code/u-code.wxml | 1 + .../uview-plus/components/u-code/u-code.wxss | 49 + .../u-dropdown-item/u-dropdown-item.js | 118 ++ .../u-dropdown-item/u-dropdown-item.json | 8 + .../u-dropdown-item/u-dropdown-item.wxml | 1 + .../u-dropdown-item/u-dropdown-item.wxss | 52 + .../components/u-dropdown/u-dropdown.js | 155 +++ .../components/u-dropdown/u-dropdown.json | 6 + .../components/u-dropdown/u-dropdown.wxml | 1 + .../components/u-dropdown/u-dropdown.wxss | 109 ++ .../uview-plus/components/u-empty/u-empty.js | 84 ++ .../components/u-empty/u-empty.json | 6 + .../components/u-empty/u-empty.wxml | 1 + .../components/u-empty/u-empty.wxss | 70 + .../components/u-form-item/u-form-item.js | 137 ++ .../components/u-form-item/u-form-item.json | 7 + .../components/u-form-item/u-form-item.wxml | 1 + .../components/u-form-item/u-form-item.wxss | 114 ++ .../uview-plus/components/u-form/u-form.js | 203 +++ .../uview-plus/components/u-form/u-form.json | 4 + .../uview-plus/components/u-form/u-form.wxml | 1 + .../uview-plus/components/u-form/u-form.wxss | 0 .../uview-plus/components/u-gap/u-gap.json | 4 + .../uview-plus/components/u-gap/u-gap.wxml | 1 + .../uview-plus/components/u-gap/u-gap.wxss | 49 + .../uview-plus/components/u-icon/u-icon.js | 96 ++ .../uview-plus/components/u-icon/u-icon.json | 4 + .../uview-plus/components/u-icon/u-icon.wxml | 1 + .../uview-plus/components/u-icon/u-icon.wxss | 102 ++ .../uview-plus/components/u-image/u-image.js | 152 +++ .../components/u-image/u-image.json | 7 + .../components/u-image/u-image.wxml | 1 + .../components/u-image/u-image.wxss | 71 + .../uview-plus/components/u-input/u-input.js | 242 ++++ .../components/u-input/u-input.json | 6 + .../components/u-input/u-input.wxml | 1 + .../components/u-input/u-input.wxss | 105 ++ .../uview-plus/components/u-line/u-line.json | 4 + .../uview-plus/components/u-line/u-line.wxml | 1 + .../uview-plus/components/u-line/u-line.wxss | 52 + .../uview-plus/components/u-link/u-link.js | 45 + .../uview-plus/components/u-link/u-link.json | 4 + .../uview-plus/components/u-link/u-link.wxml | 1 + .../uview-plus/components/u-link/u-link.wxss | 56 + .../components/u-list-item/u-list-item.js | 75 ++ .../components/u-list-item/u-list-item.json | 4 + .../components/u-list-item/u-list-item.wxml | 1 + .../components/u-list-item/u-list-item.wxss | 49 + .../uview-plus/components/u-list/u-list.js | 119 ++ .../uview-plus/components/u-list/u-list.json | 4 + .../uview-plus/components/u-list/u-list.wxml | 1 + .../uview-plus/components/u-list/u-list.wxss | 53 + .../u-loading-icon/u-loading-icon.json | 4 + .../u-loading-icon/u-loading-icon.wxml | 1 + .../u-loading-icon/u-loading-icon.wxss | 181 +++ .../components/u-overlay/u-overlay.js | 49 + .../components/u-overlay/u-overlay.json | 6 + .../components/u-overlay/u-overlay.wxml | 1 + .../components/u-overlay/u-overlay.wxss | 57 + .../components/u-parse/node/node.js | 390 ++++++ .../components/u-parse/node/node.json | 6 + .../components/u-parse/node/node.wxml | 31 + .../components/u-parse/node/node.wxss | 149 +++ .../uview-plus/components/u-parse/u-parse.js | 268 ++++ .../components/u-parse/u-parse.json | 6 + .../components/u-parse/u-parse.wxml | 1 + .../components/u-parse/u-parse.wxss | 17 + .../components/u-picker/u-picker.js | 289 +++++ .../components/u-picker/u-picker.json | 9 + .../components/u-picker/u-picker.wxml | 1 + .../components/u-picker/u-picker.wxss | 97 ++ .../uview-plus/components/u-popup/u-popup.js | 221 ++++ .../components/u-popup/u-popup.json | 10 + .../components/u-popup/u-popup.wxml | 1 + .../components/u-popup/u-popup.wxss | 108 ++ .../components/u-radio-group/u-radio-group.js | 75 ++ .../u-radio-group/u-radio-group.json | 4 + .../u-radio-group/u-radio-group.wxml | 1 + .../u-radio-group/u-radio-group.wxss | 60 + .../uview-plus/components/u-radio/u-radio.js | 198 +++ .../components/u-radio/u-radio.json | 6 + .../components/u-radio/u-radio.wxml | 1 + .../components/u-radio/u-radio.wxss | 109 ++ .../u-safe-bottom/u-safe-bottom.json | 4 + .../u-safe-bottom/u-safe-bottom.wxml | 1 + .../u-safe-bottom/u-safe-bottom.wxss | 28 + .../components/u-status-bar/u-status-bar.json | 4 + .../components/u-status-bar/u-status-bar.wxml | 1 + .../components/u-status-bar/u-status-bar.wxss | 28 + .../components/u-steps-item/u-steps-item.js | 204 +++ .../components/u-steps-item/u-steps-item.json | 7 + .../components/u-steps-item/u-steps-item.wxml | 1 + .../components/u-steps-item/u-steps-item.wxss | 146 +++ .../uview-plus/components/u-steps/u-steps.js | 49 + .../components/u-steps/u-steps.json | 4 + .../components/u-steps/u-steps.wxml | 1 + .../components/u-steps/u-steps.wxss | 62 + .../components/u-tabbar-item/u-tabbar-item.js | 98 ++ .../u-tabbar-item/u-tabbar-item.json | 7 + .../u-tabbar-item/u-tabbar-item.wxml | 1 + .../u-tabbar-item/u-tabbar-item.wxss | 77 ++ .../components/u-tabbar/u-tabbar.js | 78 ++ .../components/u-tabbar/u-tabbar.json | 6 + .../components/u-tabbar/u-tabbar.wxml | 1 + .../components/u-tabbar/u-tabbar.wxss | 73 ++ .../uview-plus/components/u-tabs/u-tabs.js | 261 ++++ .../uview-plus/components/u-tabs/u-tabs.json | 7 + .../uview-plus/components/u-tabs/u-tabs.wxml | 1 + .../uview-plus/components/u-tabs/u-tabs.wxss | 93 ++ .../uview-plus/components/u-text/u-text.json | 7 + .../uview-plus/components/u-text/u-text.wxml | 1 + .../uview-plus/components/u-text/u-text.wxss | 95 ++ .../components/u-textarea/u-textarea.js | 145 +++ .../components/u-textarea/u-textarea.json | 4 + .../components/u-textarea/u-textarea.wxml | 1 + .../components/u-textarea/u-textarea.wxss | 82 ++ .../uview-plus/components/u-toast/u-toast.js | 171 +++ .../components/u-toast/u-toast.json | 9 + .../components/u-toast/u-toast.wxml | 1 + .../components/u-toast/u-toast.wxss | 112 ++ .../components/u-toolbar/u-toolbar.js | 42 + .../components/u-toolbar/u-toolbar.json | 4 + .../components/u-toolbar/u-toolbar.wxml | 1 + .../components/u-toolbar/u-toolbar.wxss | 77 ++ .../components/u-transition/u-transition.json | 4 + .../components/u-transition/u-transition.wxml | 1 + .../components/u-transition/u-transition.wxss | 144 +++ .../components/u-upload/u-upload.js | 335 +++++ .../components/u-upload/u-upload.json | 7 + .../components/u-upload/u-upload.wxml | 1 + .../components/u-upload/u-upload.wxss | 172 +++ .../dist/dev/mp-weixin/pages/apply/apply.js | 211 +++ .../dist/dev/mp-weixin/pages/apply/apply.json | 15 + .../dist/dev/mp-weixin/pages/apply/apply.wxml | 1 + .../dist/dev/mp-weixin/pages/apply/apply.wxss | 95 ++ .../dist/dev/mp-weixin/pages/case/case.js | 35 + .../dist/dev/mp-weixin/pages/case/case.json | 6 + .../dist/dev/mp-weixin/pages/case/case.wxml | 1 + .../dist/dev/mp-weixin/pages/case/case.wxss | 7 + .../dev/mp-weixin/pages/caseTalk/caseTalk.js | 228 ++++ .../mp-weixin/pages/caseTalk/caseTalk.json | 11 + .../mp-weixin/pages/caseTalk/caseTalk.wxml | 1 + .../mp-weixin/pages/caseTalk/caseTalk.wxss | 200 +++ .../dev/mp-weixin/pages/certImg/certImg.js | 40 + .../dev/mp-weixin/pages/certImg/certImg.json | 8 + .../dev/mp-weixin/pages/certImg/certImg.wxml | 1 + .../dev/mp-weixin/pages/certImg/certImg.wxss | 28 + .../mp-weixin/pages/certList/certList.json | 11 + .../mp-weixin/pages/certList/certList.wxml | 1 + .../mp-weixin/pages/certList/certList.wxss | 150 +++ .../dist/dev/mp-weixin/pages/detail/detail.js | 1152 +++++++++++++++++ .../dev/mp-weixin/pages/detail/detail.json | 20 + .../dev/mp-weixin/pages/detail/detail.wxml | 1 + .../dev/mp-weixin/pages/detail/detail.wxss | 526 ++++++++ .../dist/dev/mp-weixin/pages/index/index.js | 205 +++ .../dist/dev/mp-weixin/pages/index/index.json | 10 + .../dist/dev/mp-weixin/pages/index/index.wxml | 1 + .../dist/dev/mp-weixin/pages/index/index.wxss | 152 +++ .../dist/dev/mp-weixin/pages/login/login.js | 304 +++++ .../dist/dev/mp-weixin/pages/login/login.json | 11 + .../dist/dev/mp-weixin/pages/login/login.wxml | 1 + .../dist/dev/mp-weixin/pages/login/login.wxss | 108 ++ unpackage/dist/dev/mp-weixin/pages/my/my.js | 193 +++ unpackage/dist/dev/mp-weixin/pages/my/my.json | 10 + unpackage/dist/dev/mp-weixin/pages/my/my.wxml | 1 + unpackage/dist/dev/mp-weixin/pages/my/my.wxss | 115 ++ .../mp-weixin/pages/myCollect/myCollect.js | 223 ++++ .../mp-weixin/pages/myCollect/myCollect.json | 11 + .../mp-weixin/pages/myCollect/myCollect.wxml | 1 + .../mp-weixin/pages/myCollect/myCollect.wxss | 152 +++ .../dist/dev/mp-weixin/pages/myJoin/myJoin.js | 247 ++++ .../dev/mp-weixin/pages/myJoin/myJoin.json | 12 + .../dev/mp-weixin/pages/myJoin/myJoin.wxml | 1 + .../dev/mp-weixin/pages/myJoin/myJoin.wxss | 315 +++++ .../dev/mp-weixin/pages/register/register.js | 44 + .../mp-weixin/pages/register/register.json | 4 + .../mp-weixin/pages/register/register.wxml | 1 + .../mp-weixin/pages/register/register.wxss | 97 ++ .../dist/dev/mp-weixin/pages/search/search.js | 628 +++++++++ .../dev/mp-weixin/pages/search/search.json | 18 + .../dev/mp-weixin/pages/search/search.wxml | 1 + .../dev/mp-weixin/pages/search/search.wxss | 384 ++++++ .../mp-weixin/pages/searchList/searchList.js | 280 ++++ .../pages/searchList/searchList.json | 13 + .../pages/searchList/searchList.wxml | 1 + .../pages/searchList/searchList.wxss | 192 +++ .../dev/mp-weixin/pages/sickList/sickList.js | 215 +++ .../mp-weixin/pages/sickList/sickList.json | 13 + .../mp-weixin/pages/sickList/sickList.wxml | 1 + .../mp-weixin/pages/sickList/sickList.wxss | 293 +++++ .../pages/specialList/specialList.js | 613 +++++++++ .../pages/specialList/specialList.json | 19 + .../pages/specialList/specialList.wxml | 1 + .../pages/specialList/specialList.wxss | 547 ++++++++ .../mp-weixin/pages/videoList/videoList.js | 537 ++++++++ .../mp-weixin/pages/videoList/videoList.json | 18 + .../mp-weixin/pages/videoList/videoList.wxml | 1 + .../mp-weixin/pages/videoList/videoList.wxss | 315 +++++ unpackage/dist/dev/mp-weixin/pages/web/web.js | 18 + .../dist/dev/mp-weixin/pages/web/web.json | 5 + .../dist/dev/mp-weixin/pages/web/web.wxml | 1 + .../dist/dev/mp-weixin/pages/web/web.wxss | 0 .../dev/mp-weixin/pages_case/index/index.js | 71 + .../dev/mp-weixin/pages_case/index/index.json | 9 + .../dev/mp-weixin/pages_case/index/index.wxml | 1 + .../dev/mp-weixin/pages_case/index/index.wxss | 0 unpackage/dist/dev/mp-weixin/static/add.png | Bin 0 -> 1212 bytes .../dist/dev/mp-weixin/static/arrowright.png | Bin 0 -> 394 bytes .../dist/dev/mp-weixin/static/benren.png | Bin 0 -> 9079 bytes .../dist/dev/mp-weixin/static/caseIcon.png | Bin 0 -> 438 bytes unpackage/dist/dev/mp-weixin/static/cert.png | Bin 0 -> 670 bytes unpackage/dist/dev/mp-weixin/static/chat.png | Bin 0 -> 1550 bytes .../dist/dev/mp-weixin/static/collect.png | Bin 0 -> 3260 bytes .../dist/dev/mp-weixin/static/collectOn.png | Bin 0 -> 845 bytes .../dev/mp-weixin/static/comment_icon.png | Bin 0 -> 2313 bytes .../dist/dev/mp-weixin/static/default.png | Bin 0 -> 2003 bytes .../dist/dev/mp-weixin/static/doctor.png | Bin 0 -> 49284 bytes unpackage/dist/dev/mp-weixin/static/draft.png | Bin 0 -> 5284 bytes unpackage/dist/dev/mp-weixin/static/group.png | Bin 0 -> 1989 bytes .../dist/dev/mp-weixin/static/group_on.png | Bin 0 -> 1491 bytes .../dist/dev/mp-weixin/static/headImg.png | Bin 0 -> 5373 bytes .../dist/dev/mp-weixin/static/hospital.png | Bin 0 -> 43605 bytes unpackage/dist/dev/mp-weixin/static/ku.png | Bin 0 -> 929 bytes unpackage/dist/dev/mp-weixin/static/ku_on.png | Bin 0 -> 788 bytes unpackage/dist/dev/mp-weixin/static/logo.png | Bin 0 -> 6225 bytes .../dist/dev/mp-weixin/static/myCollect.png | Bin 0 -> 1094 bytes .../dist/dev/mp-weixin/static/myDownload.png | Bin 0 -> 1382 bytes .../dist/dev/mp-weixin/static/myFile.png | Bin 0 -> 783 bytes .../dist/dev/mp-weixin/static/myHospital.png | Bin 0 -> 1357 bytes .../dist/dev/mp-weixin/static/myJoin.png | Bin 0 -> 1889 bytes .../dist/dev/mp-weixin/static/myTalk.png | Bin 0 -> 2503 bytes unpackage/dist/dev/mp-weixin/static/navbg.png | Bin 0 -> 6577 bytes unpackage/dist/dev/mp-weixin/static/photo.png | Bin 0 -> 1067 bytes unpackage/dist/dev/mp-weixin/static/shang.png | Bin 0 -> 9288 bytes unpackage/dist/dev/mp-weixin/static/sick.png | Bin 0 -> 45961 bytes unpackage/dist/dev/mp-weixin/static/ss.png | Bin 0 -> 2120 bytes .../dist/dev/mp-weixin/static/switch.png | Bin 0 -> 610 bytes unpackage/dist/dev/mp-weixin/static/talk.png | Bin 0 -> 2173 bytes .../dist/dev/mp-weixin/static/talk_on.png | Bin 0 -> 1507 bytes .../dist/dev/mp-weixin/static/uploadImg.png | Bin 0 -> 902 bytes unpackage/dist/dev/mp-weixin/static/video.png | Bin 0 -> 45123 bytes .../dist/dev/mp-weixin/static/videoicon.png | Bin 0 -> 1339 bytes unpackage/dist/dev/mp-weixin/static/vote.png | Bin 0 -> 603 bytes .../qf-image-cropper/qf-image-cropper.js | 586 +++++++++ .../qf-image-cropper/qf-image-cropper.json | 4 + .../qf-image-cropper/qf-image-cropper.wxml | 730 +++++++++++ .../qf-image-cropper/qf-image-cropper.wxss | 146 +++ .../sv-editor/components/common/parse.js | 51 + .../sv-editor/components/common/store.js | 58 + .../sv-editor/components/common/utils.js | 203 +++ .../components/plugins/sv-editor-plugin.js | 69 + .../components/plugins/sv-editor-plugin.json | 4 + .../components/plugins/sv-editor-plugin.wxml | 1 + .../components/plugins/sv-editor-plugin.wxss | 0 .../components/plugins/sv-editor-wxplugin.js | 125 ++ .../components/sv-editor/sv-editor-render.js | 49 + .../sv-editor/sv-editor-render.json | 4 + .../sv-editor/sv-editor-render.wxml | 1 + .../sv-editor/sv-editor-render.wxss | 0 .../components/sv-editor/sv-editor.js | 228 ++++ .../components/sv-editor/sv-editor.json | 4 + .../components/sv-editor/sv-editor.wxml | 1 + .../components/sv-editor/sv-editor.wxss | 65 + .../z-paging-empty-view.js | 132 ++ .../z-paging-empty-view.json | 4 + .../z-paging-empty-view.wxml | 1 + .../z-paging-empty-view.wxss | 62 + .../z-paging/components/z-paging-load-more.js | 121 ++ .../components/z-paging-load-more.json | 4 + .../components/z-paging-load-more.wxml | 1 + .../components/z-paging-load-more.wxss | 118 ++ .../z-paging/components/z-paging-refresh.js | 158 +++ .../z-paging/components/z-paging-refresh.json | 4 + .../z-paging/components/z-paging-refresh.wxml | 1 + .../z-paging/components/z-paging-refresh.wxss | 99 ++ .../components/z-paging/config/index.js | 4 + .../components/z-paging/i18n/index.js | 65 + .../z-paging/js/modules/back-to-top.js | 121 ++ .../z-paging/js/modules/chat-record-mode.js | 136 ++ .../z-paging/js/modules/common-layout.js | 99 ++ .../z-paging/js/modules/data-handle.js | 654 ++++++++++ .../components/z-paging/js/modules/empty.js | 148 +++ .../components/z-paging/js/modules/i18n.js | 112 ++ .../z-paging/js/modules/load-more.js | 338 +++++ .../components/z-paging/js/modules/loading.js | 94 ++ .../components/z-paging/js/modules/nvue.js | 25 + .../z-paging/js/modules/refresher.js | 624 +++++++++ .../z-paging/js/modules/scroller.js | 428 ++++++ .../z-paging/js/modules/virtual-list.js | 499 +++++++ .../z-paging/js/z-paging-constant.js | 19 + .../components/z-paging/js/z-paging-enum.js | 46 + .../z-paging/js/z-paging-interceptor.js | 69 + .../components/z-paging/js/z-paging-main.js | 423 ++++++ .../components/z-paging/js/z-paging-static.js | 14 + .../components/z-paging/js/z-paging-utils.js | 238 ++++ .../components/z-paging/wxs/z-paging-wxs.wxs | 382 ++++++ .../z-paging/components/z-paging/z-paging.js | 329 +++++ .../components/z-paging/z-paging.json | 8 + .../components/z-paging/z-paging.wxml | 2 + .../components/z-paging/z-paging.wxss | 243 ++++ unpackage/dist/dev/mp-weixin/utils/auth.js | 27 + unpackage/dist/dev/mp-weixin/utils/config.js | 14 + unpackage/dist/dev/mp-weixin/utils/navTo.js | 34 + unpackage/dist/dev/mp-weixin/utils/pageUrl.js | 15 + unpackage/dist/dev/mp-weixin/utils/request.js | 91 ++ 360 files changed, 27253 insertions(+) create mode 100644 unpackage/dist/dev/mp-weixin/app.js create mode 100644 unpackage/dist/dev/mp-weixin/app.json create mode 100644 unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.js create mode 100644 unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.json create mode 100644 unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.wxml create mode 100644 unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.wxss create mode 100644 unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.js create mode 100644 unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.json create mode 100644 unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.wxml create mode 100644 unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.wxss create mode 100644 unpackage/dist/dev/mp-weixin/components/backNav/backNav.js create mode 100644 unpackage/dist/dev/mp-weixin/components/backNav/backNav.json create mode 100644 unpackage/dist/dev/mp-weixin/components/backNav/backNav.wxml create mode 100644 unpackage/dist/dev/mp-weixin/components/backNav/backNav.wxss create mode 100644 unpackage/dist/dev/mp-weixin/components/navBar/navBar.js create mode 100644 unpackage/dist/dev/mp-weixin/components/navBar/navBar.json create mode 100644 unpackage/dist/dev/mp-weixin/components/navBar/navBar.wxml create mode 100644 unpackage/dist/dev/mp-weixin/components/navBar/navBar.wxss create mode 100644 unpackage/dist/dev/mp-weixin/components/navBarSearch/navBarSearch.json create mode 100644 unpackage/dist/dev/mp-weixin/components/navBarSearch/navBarSearch.wxml create mode 100644 unpackage/dist/dev/mp-weixin/components/navBarSearch/navBarSearch.wxss create mode 100644 unpackage/dist/dev/mp-weixin/components/pEditor/pEditor.json create mode 100644 unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.js create mode 100644 unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.json create mode 100644 unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.wxml create mode 100644 unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell-group/u-cell-group.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell-group/u-cell-group.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell-group/u-cell-group.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-gap/u-gap.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-gap/u-gap.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-gap/u-gap.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-line/u-line.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-line/u-line.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-line/u-line.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-loading-icon/u-loading-icon.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-loading-icon/u-loading-icon.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-loading-icon/u-loading-icon.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-safe-bottom/u-safe-bottom.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-safe-bottom/u-safe-bottom.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-safe-bottom/u-safe-bottom.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-status-bar/u-status-bar.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-status-bar/u-status-bar.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-status-bar/u-status-bar.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-text/u-text.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-text/u-text.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-text/u-text.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.wxss create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.js create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.json create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.wxml create mode 100644 unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/apply/apply.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/apply/apply.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/apply/apply.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/apply/apply.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/case/case.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/case/case.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/case/case.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/case/case.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/certImg/certImg.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/certImg/certImg.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/certImg/certImg.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/certImg/certImg.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/certList/certList.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/certList/certList.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/certList/certList.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/detail/detail.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/detail/detail.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/detail/detail.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/detail/detail.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/login.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/login.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/login.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/login.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/my/my.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/my/my.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/my/my.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/my/my.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/register/register.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/register/register.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/register/register.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/register/register.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/search/search.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/search/search.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/search/search.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/search/search.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/searchList/searchList.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/searchList/searchList.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/searchList/searchList.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/searchList/searchList.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/sickList/sickList.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/sickList/sickList.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/sickList/sickList.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/sickList/sickList.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/specialList/specialList.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/specialList/specialList.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/specialList/specialList.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/specialList/specialList.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/videoList/videoList.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/videoList/videoList.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/videoList/videoList.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/videoList/videoList.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/web/web.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/web/web.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/web/web.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/web/web.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages_case/index/index.js create mode 100644 unpackage/dist/dev/mp-weixin/pages_case/index/index.json create mode 100644 unpackage/dist/dev/mp-weixin/pages_case/index/index.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages_case/index/index.wxss create mode 100644 unpackage/dist/dev/mp-weixin/static/add.png create mode 100644 unpackage/dist/dev/mp-weixin/static/arrowright.png create mode 100644 unpackage/dist/dev/mp-weixin/static/benren.png create mode 100644 unpackage/dist/dev/mp-weixin/static/caseIcon.png create mode 100644 unpackage/dist/dev/mp-weixin/static/cert.png create mode 100644 unpackage/dist/dev/mp-weixin/static/chat.png create mode 100644 unpackage/dist/dev/mp-weixin/static/collect.png create mode 100644 unpackage/dist/dev/mp-weixin/static/collectOn.png create mode 100644 unpackage/dist/dev/mp-weixin/static/comment_icon.png create mode 100644 unpackage/dist/dev/mp-weixin/static/default.png create mode 100644 unpackage/dist/dev/mp-weixin/static/doctor.png create mode 100644 unpackage/dist/dev/mp-weixin/static/draft.png create mode 100644 unpackage/dist/dev/mp-weixin/static/group.png create mode 100644 unpackage/dist/dev/mp-weixin/static/group_on.png create mode 100644 unpackage/dist/dev/mp-weixin/static/headImg.png create mode 100644 unpackage/dist/dev/mp-weixin/static/hospital.png create mode 100644 unpackage/dist/dev/mp-weixin/static/ku.png create mode 100644 unpackage/dist/dev/mp-weixin/static/ku_on.png create mode 100644 unpackage/dist/dev/mp-weixin/static/logo.png create mode 100644 unpackage/dist/dev/mp-weixin/static/myCollect.png create mode 100644 unpackage/dist/dev/mp-weixin/static/myDownload.png create mode 100644 unpackage/dist/dev/mp-weixin/static/myFile.png create mode 100644 unpackage/dist/dev/mp-weixin/static/myHospital.png create mode 100644 unpackage/dist/dev/mp-weixin/static/myJoin.png create mode 100644 unpackage/dist/dev/mp-weixin/static/myTalk.png create mode 100644 unpackage/dist/dev/mp-weixin/static/navbg.png create mode 100644 unpackage/dist/dev/mp-weixin/static/photo.png create mode 100644 unpackage/dist/dev/mp-weixin/static/shang.png create mode 100644 unpackage/dist/dev/mp-weixin/static/sick.png create mode 100644 unpackage/dist/dev/mp-weixin/static/ss.png create mode 100644 unpackage/dist/dev/mp-weixin/static/switch.png create mode 100644 unpackage/dist/dev/mp-weixin/static/talk.png create mode 100644 unpackage/dist/dev/mp-weixin/static/talk_on.png create mode 100644 unpackage/dist/dev/mp-weixin/static/uploadImg.png create mode 100644 unpackage/dist/dev/mp-weixin/static/video.png create mode 100644 unpackage/dist/dev/mp-weixin/static/videoicon.png create mode 100644 unpackage/dist/dev/mp-weixin/static/vote.png create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/common/parse.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/common/store.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/common/utils.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-wxplugin.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/config/index.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/i18n/index.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/back-to-top.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/chat-record-mode.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/common-layout.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/data-handle.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/empty.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/i18n.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/load-more.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/loading.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/nvue.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/refresher.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/scroller.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/virtual-list.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-constant.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-enum.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-interceptor.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-main.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-static.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-utils.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/wxs/z-paging-wxs.wxs create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.wxss create mode 100644 unpackage/dist/dev/mp-weixin/utils/auth.js create mode 100644 unpackage/dist/dev/mp-weixin/utils/config.js create mode 100644 unpackage/dist/dev/mp-weixin/utils/navTo.js create mode 100644 unpackage/dist/dev/mp-weixin/utils/pageUrl.js create mode 100644 unpackage/dist/dev/mp-weixin/utils/request.js diff --git a/unpackage/dist/dev/mp-weixin/app.js b/unpackage/dist/dev/mp-weixin/app.js new file mode 100644 index 0000000..8c3aa5b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/app.js @@ -0,0 +1,61 @@ +"use strict"; +Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); +const common_vendor = require("./common/vendor.js"); +if (!Math) { + "./pages/index/index.js"; + "./pages/publish/publish.js"; + "./pages/certImg/certImg.js"; + "./pages/sickList/sickList.js"; + "./pages/videoList/videoList.js"; + "./pages/login/login.js"; + "./pages/caseTalk/caseTalk.js"; + "./pages/specialList/specialList.js"; + "./pages/certList/certList.js"; + "./pages/my/my.js"; + "./pages/myJoin/myJoin.js"; + "./pages/myCollect/myCollect.js"; + "./pages/detail/detail.js"; + "./pages/search/search.js"; + "./pages/web/web.js"; + "./pages/searchList/searchList.js"; + "./pages/case/case.js"; + "./pages/apply/apply.js"; + "./pages/register/register.js"; + "./pages_case/index/index.js"; +} +const _sfc_main = { + __name: "App", + setup(__props) { + common_vendor.onLaunch(() => { + common_vendor.index.__f__("log", "at App.vue:4", "App Launch"); + }); + common_vendor.onShow(() => { + common_vendor.index.__f__("log", "at App.vue:7", "App Show"); + }); + common_vendor.onHide(() => { + common_vendor.index.__f__("log", "at App.vue:11", "App Hide"); + }); + return () => { + }; + } +}; +function createApp() { + const app = common_vendor.createSSRApp(_sfc_main); + app.use(common_vendor.uviewPlus, async () => { + return { + options: { + // 修改$u.config对象的属性 + config: { + // 修改默认单位为rpx,相当于执行 uni.$u.config.unit = 'rpx' + unit: "rpx" + } + } + }; + }); + return { + app + }; +} +createApp().app.mount("#app"); +exports.createApp = createApp; +//# sourceMappingURL=../.sourcemap/mp-weixin/app.js.map diff --git a/unpackage/dist/dev/mp-weixin/app.json b/unpackage/dist/dev/mp-weixin/app.json new file mode 100644 index 0000000..4aee9ae --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/app.json @@ -0,0 +1,44 @@ +{ + "pages": [ + "pages/index/index", + "pages/publish/publish", + "pages/certImg/certImg", + "pages/sickList/sickList", + "pages/videoList/videoList", + "pages/login/login", + "pages/caseTalk/caseTalk", + "pages/specialList/specialList", + "pages/certList/certList", + "pages/my/my", + "pages/myJoin/myJoin", + "pages/myCollect/myCollect", + "pages/detail/detail", + "pages/search/search", + "pages/web/web", + "pages/searchList/searchList", + "pages/case/case", + "pages/apply/apply", + "pages/register/register" + ], + "subPackages": [ + { + "root": "pages_case", + "pages": [ + "index/index" + ] + } + ], + "window": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8" + }, + "plugins": { + "polyv-player": { + "version": "1.9.0", + "provider": "wx4a350a258a6f7876" + } + }, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.js b/unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.js new file mode 100644 index 0000000..93dca6c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.js @@ -0,0 +1,89 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const utils_navTo = require("../../utils/navTo.js"); +const common_assets = require("../../common/assets.js"); +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_up__image2 = common_vendor.resolveComponent("up--image"); + (_easycom_u_icon2 + _easycom_up__image2)(); +} +const _easycom_u_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js"; +if (!Math) { + (_easycom_u_icon + _easycom_up__image)(); +} +const _sfc_main = { + __name: "backDetailNav", + props: { + navName: { + type: String, + default: "我的" + } + }, + setup(__props) { + const props = __props; + const useImg = common_vendor.ref(""); + const goBack = () => { + common_vendor.index.navigateBack({ + delta: 1 + }); + }; + const goHome = () => { + common_vendor.index.__f__("log", "at components/backDetailNav/backDetailNav.vue:62", props.navName); + if (props.navName == "肝胆相照病例交流园地") { + common_vendor.index.reLaunch({ + url: "/pages/caseTalk/caseTalk" + }); + } else { + common_vendor.index.reLaunch({ + url: "/pages/index/index" + }); + } + }; + const goMy = () => { + utils_navTo.navTo({ + url: "/pages/my/my" + }); + }; + common_vendor.onMounted(() => { + let userInfo = common_vendor.index.getStorageSync("userInfo"); + if (userInfo && userInfo.avatar) { + useImg.value = userInfo.avatar; + } + }); + return (_ctx, _cache) => { + return { + a: common_vendor.p({ + name: "arrow-left", + color: "#000", + size: "24" + }), + b: common_vendor.o(goBack), + c: common_vendor.p({ + src: common_vendor.unref(common_assets.logoImg), + width: "62rpx", + height: "62rpx", + radius: "50%" + }), + d: common_vendor.o(goHome), + e: common_vendor.t(__props.navName), + f: common_vendor.p({ + src: common_vendor.unref(common_assets.navbg), + width: "100rpx", + height: "31rpx" + }), + g: common_vendor.o(goHome), + h: common_vendor.p({ + src: useImg.value ? useImg.value : common_vendor.unref(common_assets.headImg), + width: "62rpx", + height: "62rpx", + radius: "50%" + }), + i: common_vendor.o(goMy) + }; + }; + } +}; +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-5cef096a"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/backDetailNav/backDetailNav.js.map diff --git a/unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.json b/unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.json new file mode 100644 index 0000000..36c87d5 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "up--image": "../../node-modules/uview-plus/components/u--image/u--image" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.wxml b/unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.wxml new file mode 100644 index 0000000..4c3356e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.wxml @@ -0,0 +1 @@ +{{e}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.wxss b/unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.wxss new file mode 100644 index 0000000..5f43567 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/backDetailNav/backDetailNav.wxss @@ -0,0 +1,91 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.navbox.data-v-5cef096a { + padding-bottom: 20rpx; + background-color: #f9fafb; + position: relative; + height: 200rpx; + background: radial-gradient(60% 90% at 4% 2%, #43c9c3 0%, rgba(255, 255, 255, 0) 100%); +} +.bg.data-v-5cef096a { + z-index: 0; + top: 0; + bottom: 0; + width: 100%; + position: absolute; + background: radial-gradient(43% 90% at 84% 6%, #ffd6c9 0%, rgba(255, 255, 255, 0) 100%); +} +.namebox.data-v-5cef096a { + padding-top: 102rpx; + margin: 0rpx 30rpx 0rpx; + display: flex; + align-items: center; + display: flex; + align-items: center; +} +.namebox .logo.data-v-5cef096a { + margin-left: 35rpx; +} +.namebox .back.data-v-5cef096a { + position: absolute; + left: 0; +} +.namebox .user.data-v-5cef096a { + margin-left: 55rpx; +} +.namebox .name.data-v-5cef096a { + margin-left: 16rpx; + font-size: 30rpx; + color: #111827; + position: relative; +} +.namebox .name .navbg.data-v-5cef096a { + position: absolute; + z-index: -1; + top: 10rpx; + left: 18rpx; +} +.search.data-v-5cef096a { + margin: 40rpx 30rpx 0rpx; + display: flex; + align-items: center; + justify-content: space-between; +} +.search .searchwrap.data-v-5cef096a { + display: flex; + align-items: center; + flex: 1; + padding-left: 28rpx; + margin-right: 23rpx; + height: 80rpx; + background: #fbfbfb; + box-shadow: 0px 4rpx 10rpx 0px rgba(153, 153, 153, 0.5); + border-radius: 40rpx; +} +.search .searchwrap .ipt.data-v-5cef096a { + margin-left: 15rpx; + font-size: 28rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.js b/unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.js new file mode 100644 index 0000000..3f5f92a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.js @@ -0,0 +1,54 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const common_assets = require("../../common/assets.js"); +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_up__image2 = common_vendor.resolveComponent("up--image"); + (_easycom_u_icon2 + _easycom_up__image2)(); +} +const _easycom_u_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js"; +if (!Math) { + (_easycom_u_icon + _easycom_up__image)(); +} +const _sfc_main = { + __name: "backLogoNav", + props: { + navName: { + type: String, + default: "我的" + } + }, + setup(__props) { + const goBack = () => { + common_vendor.index.navigateBack({ + delta: 1 + }); + }; + return (_ctx, _cache) => { + return { + a: common_vendor.p({ + name: "arrow-left", + color: "#000", + size: "24" + }), + b: common_vendor.o(goBack), + c: common_vendor.p({ + src: common_vendor.unref(common_assets.logoImg), + width: "62rpx", + height: "62rpx", + radius: "50%" + }), + d: common_vendor.t(__props.navName), + e: common_vendor.p({ + src: common_vendor.unref(common_assets.navbg), + width: "100rpx", + height: "31rpx" + }) + }; + }; + } +}; +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-8850a534"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/backLogoNav/backLogoNav.js.map diff --git a/unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.json b/unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.json new file mode 100644 index 0000000..36c87d5 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "up--image": "../../node-modules/uview-plus/components/u--image/u--image" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.wxml b/unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.wxml new file mode 100644 index 0000000..afb6fe0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.wxml @@ -0,0 +1 @@ +{{d}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.wxss b/unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.wxss new file mode 100644 index 0000000..66e689b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/backLogoNav/backLogoNav.wxss @@ -0,0 +1,88 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.navbox.data-v-8850a534 { + padding-bottom: 20rpx; + background-color: #f9fafb; + position: relative; + height: 200rpx; + background: radial-gradient(60% 90% at 4% 2%, #43c9c3 0%, rgba(255, 255, 255, 0) 100%); +} +.bg.data-v-8850a534 { + z-index: 0; + top: 0; + bottom: 0; + width: 100%; + position: absolute; + background: radial-gradient(43% 90% at 84% 6%, #ffd6c9 0%, rgba(255, 255, 255, 0) 100%); +} +.namebox.data-v-8850a534 { + padding-top: 102rpx; + margin: 0rpx 30rpx 0rpx; + display: flex; + align-items: center; + display: flex; + align-items: center; +} +.namebox .logo.data-v-8850a534 { + margin-left: 35rpx; +} +.namebox .back.data-v-8850a534 { + position: absolute; + left: 0; +} +.namebox .name.data-v-8850a534 { + margin-left: 16rpx; + font-size: 30rpx; + color: #111827; + position: relative; +} +.namebox .name .navbg.data-v-8850a534 { + position: absolute; + z-index: -1; + top: 10rpx; + left: 18rpx; +} +.search.data-v-8850a534 { + margin: 40rpx 30rpx 0rpx; + display: flex; + align-items: center; + justify-content: space-between; +} +.search .searchwrap.data-v-8850a534 { + display: flex; + align-items: center; + flex: 1; + padding-left: 28rpx; + margin-right: 23rpx; + height: 80rpx; + background: #fbfbfb; + box-shadow: 0px 4rpx 10rpx 0px rgba(153, 153, 153, 0.5); + border-radius: 40rpx; +} +.search .searchwrap .ipt.data-v-8850a534 { + margin-left: 15rpx; + font-size: 28rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/backNav/backNav.js b/unpackage/dist/dev/mp-weixin/components/backNav/backNav.js new file mode 100644 index 0000000..de698b3 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/backNav/backNav.js @@ -0,0 +1,40 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + _easycom_u_icon2(); +} +const _easycom_u_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +if (!Math) { + _easycom_u_icon(); +} +const _sfc_main = { + __name: "backNav", + props: { + navName: { + type: String, + default: "我的" + } + }, + setup(__props) { + const goBack = () => { + common_vendor.index.navigateBack({ + delta: 1 + }); + }; + return (_ctx, _cache) => { + return { + a: common_vendor.p({ + name: "arrow-left", + color: "#000", + size: "24" + }), + b: common_vendor.o(goBack), + c: common_vendor.t(__props.navName) + }; + }; + } +}; +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-62c96af9"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/backNav/backNav.js.map diff --git a/unpackage/dist/dev/mp-weixin/components/backNav/backNav.json b/unpackage/dist/dev/mp-weixin/components/backNav/backNav.json new file mode 100644 index 0000000..cc491b0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/backNav/backNav.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../../node-modules/uview-plus/components/u-icon/u-icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/backNav/backNav.wxml b/unpackage/dist/dev/mp-weixin/components/backNav/backNav.wxml new file mode 100644 index 0000000..e070231 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/backNav/backNav.wxml @@ -0,0 +1 @@ +{{c}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/backNav/backNav.wxss b/unpackage/dist/dev/mp-weixin/components/backNav/backNav.wxss new file mode 100644 index 0000000..815d4a6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/backNav/backNav.wxss @@ -0,0 +1,77 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.navbox.data-v-62c96af9 { + padding-bottom: 20rpx; + background-color: #f9fafb; + position: relative; + height: 200rpx; + background: radial-gradient(60% 90% at 4% 2%, #43c9c3 0%, rgba(255, 255, 255, 0) 100%); +} +.navbox .bg.data-v-62c96af9 { + z-index: 0; + top: 0; + bottom: 0; + width: 100%; + position: absolute; + background: radial-gradient(43% 90% at 84% 6%, #ffd6c9 0%, rgba(255, 255, 255, 0) 100%); +} +.navbox .namebox.data-v-62c96af9 { + padding-top: 102rpx; + justify-content: center; + margin: 0rpx 30rpx 0rpx; + position: relative; + display: flex; +} +.navbox .namebox .back.data-v-62c96af9 { + position: absolute; + left: 0; +} +.navbox .namebox .name.data-v-62c96af9 { + margin-left: 16rpx; + font-size: 30rpx; + color: #111827; +} +.navbox .search.data-v-62c96af9 { + margin: 40rpx 30rpx 0rpx; + display: flex; + align-items: center; + justify-content: space-between; +} +.navbox .search .searchwrap.data-v-62c96af9 { + display: flex; + align-items: center; + flex: 1; + padding-left: 28rpx; + margin-right: 23rpx; + height: 80rpx; + background: #fbfbfb; + box-shadow: 0px 4rpx 10rpx 0px rgba(153, 153, 153, 0.5); + border-radius: 40rpx; +} +.navbox .search .searchwrap .ipt.data-v-62c96af9 { + margin-left: 15rpx; + font-size: 28rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/navBar/navBar.js b/unpackage/dist/dev/mp-weixin/components/navBar/navBar.js new file mode 100644 index 0000000..11ebb0a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/navBar/navBar.js @@ -0,0 +1,103 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const common_assets = require("../../common/assets.js"); +const utils_navTo = require("../../utils/navTo.js"); +if (!Array) { + const _easycom_up__image2 = common_vendor.resolveComponent("up--image"); + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + (_easycom_up__image2 + _easycom_up_icon2)(); +} +const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js"; +const _easycom_up_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +if (!Math) { + (_easycom_up__image + _easycom_up_icon)(); +} +const _sfc_main = { + __name: "navBar", + props: { + searchWord: { + type: String, + default: "" + }, + type: { + type: String, + default: "home" + }, + navName: { + type: String, + default: "肝胆相照临床病例库" + } + }, + emits: ["changeWord"], + setup(__props, { emit: __emit }) { + const userHeadImg = common_vendor.ref(""); + const keyWord = common_vendor.ref(""); + const props = __props; + const placeholder = common_vendor.ref("输入疾病名称、标题、作者搜索"); + common_vendor.watch(() => props.type, (newVal) => { + }, { immediate: true }); + common_vendor.watch(() => props.searchWord, (newVal) => { + keyWord.value = newVal; + }); + const goMy = () => { + utils_navTo.navTo({ + url: "/pages/my/my" + }); + }; + const search = () => { + if (props.type == "home") { + utils_navTo.navTo({ + url: `/pages/search/search?keyWord=${keyWord.value}&from=home` + }); + } else if (props.type == "caseTalk") { + utils_navTo.navTo({ + url: `/pages/specialList/specialList?keyWord=${keyWord.value}&from=talkHome` + }); + } + }; + common_vendor.onLoad(() => { + let userInfo = common_vendor.index.getStorageSync("userInfo"); + if (userInfo && userInfo.avatar) { + userHeadImg.value = userInfo.avatar; + } else { + userHeadImg.value = common_assets.headImg; + } + }); + return (_ctx, _cache) => { + return { + a: common_vendor.p({ + src: common_vendor.unref(common_assets.logoImg), + width: "62rpx", + height: "62rpx", + radius: "50%" + }), + b: common_vendor.t(__props.navName), + c: common_vendor.p({ + src: common_vendor.unref(common_assets.navbg), + width: "100rpx", + height: "31rpx" + }), + d: placeholder.value, + e: keyWord.value, + f: common_vendor.o(($event) => keyWord.value = $event.detail.value), + g: common_vendor.o(search), + h: common_vendor.p({ + name: "search", + size: "26", + color: "#999" + }), + i: common_vendor.o(goMy), + j: common_vendor.p({ + src: userHeadImg.value, + mode: "widthFix", + width: "62rpx", + height: "62rpx", + radius: "50%" + }) + }; + }; + } +}; +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-fba290dc"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/navBar/navBar.js.map diff --git a/unpackage/dist/dev/mp-weixin/components/navBar/navBar.json b/unpackage/dist/dev/mp-weixin/components/navBar/navBar.json new file mode 100644 index 0000000..b625ded --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/navBar/navBar.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/navBar/navBar.wxml b/unpackage/dist/dev/mp-weixin/components/navBar/navBar.wxml new file mode 100644 index 0000000..018aaf7 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/navBar/navBar.wxml @@ -0,0 +1 @@ +{{b}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/navBar/navBar.wxss b/unpackage/dist/dev/mp-weixin/components/navBar/navBar.wxss new file mode 100644 index 0000000..10e7257 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/navBar/navBar.wxss @@ -0,0 +1,80 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.navbox.data-v-fba290dc { + padding-bottom: 20rpx; + background-color: #f9fafb; + position: relative; + background: radial-gradient(60% 90% at 4% 2%, #43c9c3 0%, rgba(255, 255, 255, 0) 100%); +} +.bg.data-v-fba290dc { + z-index: -1; + top: 0; + bottom: 0; + width: 100%; + position: absolute; + background: radial-gradient(43% 90% at 84% 6%, #ffd6c9 0%, rgba(255, 255, 255, 0) 100%); +} +.namebox.data-v-fba290dc { + padding-top: 102rpx; + margin: 0rpx 30rpx 0rpx; + display: flex; + align-items: center; +} +.namebox .name.data-v-fba290dc { + margin-left: 16rpx; + font-size: 30rpx; + color: #111827; + position: relative; +} +.namebox .name .navbg.data-v-fba290dc { + position: absolute; + z-index: -1; + top: 10rpx; + left: 18rpx; +} +.search.data-v-fba290dc { + margin: 40rpx 30rpx 0rpx; + display: flex; + align-items: center; + justify-content: space-between; +} +.search .searchwrap.data-v-fba290dc { + display: flex; + padding-right: 35rpx; + align-items: center; + flex: 1; + padding-left: 28rpx; + margin-right: 23rpx; + height: 80rpx; + background: #fbfbfb; + box-shadow: 0px 4rpx 10rpx 0px rgba(153, 153, 153, 0.5); + border-radius: 40rpx; +} +.search .searchwrap .ipt.data-v-fba290dc { + flex: 1; + margin-left: 15rpx; + font-size: 28rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/navBarSearch/navBarSearch.json b/unpackage/dist/dev/mp-weixin/components/navBarSearch/navBarSearch.json new file mode 100644 index 0000000..cddc74b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/navBarSearch/navBarSearch.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/navBarSearch/navBarSearch.wxml b/unpackage/dist/dev/mp-weixin/components/navBarSearch/navBarSearch.wxml new file mode 100644 index 0000000..d3ec279 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/navBarSearch/navBarSearch.wxml @@ -0,0 +1 @@ +{{d}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/navBarSearch/navBarSearch.wxss b/unpackage/dist/dev/mp-weixin/components/navBarSearch/navBarSearch.wxss new file mode 100644 index 0000000..0552eab --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/navBarSearch/navBarSearch.wxss @@ -0,0 +1,87 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.navbox.data-v-4eb3cf28 { + padding-bottom: 20rpx; + background-color: #f9fafb; + position: relative; + background: radial-gradient(60% 90% at 4% 2%, #43c9c3 0%, rgba(255, 255, 255, 0) 100%); +} +.bg.data-v-4eb3cf28 { + z-index: -1; + top: 0; + bottom: 0; + width: 100%; + position: absolute; + background: radial-gradient(43% 90% at 84% 6%, #ffd6c9 0%, rgba(255, 255, 255, 0) 100%); +} +.data-v-4eb3cf28 .u-image { + background: none !important; +} +.namebox.data-v-4eb3cf28 { + padding-top: 102rpx; + margin: 0rpx 30rpx 0rpx; + display: flex; + align-items: center; +} +.namebox .logo.data-v-4eb3cf28 { + margin-left: 35rpx; +} +.namebox .name.data-v-4eb3cf28 { + margin-left: 16rpx; + font-size: 30rpx; + margin-right: 200rpx; + color: #111827; + position: relative; +} +.namebox .name .navbg.data-v-4eb3cf28 { + position: absolute; + z-index: -1; + top: 10rpx; + left: 18rpx; +} +.search.data-v-4eb3cf28 { + margin: 40rpx 30rpx 0rpx; + display: flex; + align-items: center; + justify-content: space-between; +} +.search .searchwrap.data-v-4eb3cf28 { + display: flex; + padding-right: 35rpx; + align-items: center; + flex: 1; + padding-left: 28rpx; + margin-right: 23rpx; + height: 80rpx; + background: #fbfbfb; + box-shadow: 0px 4rpx 10rpx 0px rgba(153, 153, 153, 0.5); + border-radius: 40rpx; +} +.search .searchwrap .ipt.data-v-4eb3cf28 { + flex: 1; + margin-left: 15rpx; + font-size: 28rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/pEditor/pEditor.json b/unpackage/dist/dev/mp-weixin/components/pEditor/pEditor.json new file mode 100644 index 0000000..0220579 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/pEditor/pEditor.json @@ -0,0 +1,10 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "up-popup": "../../node-modules/uview-plus/components/u-popup/u-popup", + "sv-editor": "../../uni_modules/sv-editor/components/sv-editor/sv-editor" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.js b/unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.js new file mode 100644 index 0000000..4736485 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.js @@ -0,0 +1,72 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const common_assets = require("../../common/assets.js"); +const utils_navTo = require("../../utils/navTo.js"); +if (!Array) { + const _easycom_up_tabbar_item2 = common_vendor.resolveComponent("up-tabbar-item"); + const _easycom_up_tabbar2 = common_vendor.resolveComponent("up-tabbar"); + (_easycom_up_tabbar_item2 + _easycom_up_tabbar2)(); +} +const _easycom_up_tabbar_item = () => "../../node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.js"; +const _easycom_up_tabbar = () => "../../node-modules/uview-plus/components/u-tabbar/u-tabbar.js"; +if (!Math) { + (_easycom_up_tabbar_item + _easycom_up_tabbar)(); +} +const _sfc_main = { + __name: "tabBar", + props: { + value: { + type: Number, + default: 0 + } + }, + setup(__props) { + const handleClick = (e) => { + if (e == 0) { + utils_navTo.navTo({ + url: "/pages/index/index" + }); + } else if (e == 1) { + utils_navTo.navTo({ + url: "/pages/case/case" + }); + } else if (e == 2) { + utils_navTo.navTo({ + url: "/pages/caseTalk/caseTalk" + }); + } + }; + return (_ctx, _cache) => { + return { + a: common_vendor.o(handleClick), + b: common_vendor.p({ + text: "临床病例库", + activeIcon: common_vendor.unref(common_assets.ku_on), + inactiveIcon: common_vendor.unref(common_assets.ku) + }), + c: common_vendor.o(handleClick), + d: common_vendor.p({ + text: "互动病例", + activeIcon: common_vendor.unref(common_assets.group_on), + inactiveIcon: common_vendor.unref(common_assets.group) + }), + e: common_vendor.o(handleClick), + f: common_vendor.p({ + text: "病例交流", + activeIcon: common_vendor.unref(common_assets.talk_on), + inactiveIcon: common_vendor.unref(common_assets.talk) + }), + g: common_vendor.p({ + value: __props.value, + fixed: true, + zIndex: 99, + placeholder: false, + activeColor: "#3CC7C0", + safeAreaInsetBottom: true + }) + }; + }; + } +}; +wx.createComponent(_sfc_main); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/tabBar/tabBar.js.map diff --git a/unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.json b/unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.json new file mode 100644 index 0000000..1a6142b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "up-tabbar-item": "../../node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item", + "up-tabbar": "../../node-modules/uview-plus/components/u-tabbar/u-tabbar" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.wxml b/unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.wxml new file mode 100644 index 0000000..194ed59 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.wxss b/unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.wxss new file mode 100644 index 0000000..998d2bd --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/components/tabBar/tabBar.wxss @@ -0,0 +1,35 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-page__item__slot-icon { + width: 47rpx; + height: 47rpx; +} +.u-tabbar__content__item-wrapper { + border-top: 2rpx solid #f3f4f6 !important; +} +.u-tabbar-item__text { + margin-bottom: 20rpx !important; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.js new file mode 100644 index 0000000..75e9e56 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.js @@ -0,0 +1,44 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const uvImage = () => "../u-image/u-image.js"; +const _sfc_main = { + name: "u--image", + mixins: [common_vendor.mpMixin, common_vendor.props, common_vendor.mixin], + components: { + uvImage + }, + emits: ["click", "error", "load"] +}; +if (!Array) { + const _component_uvImage = common_vendor.resolveComponent("uvImage"); + _component_uvImage(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.o(($event) => _ctx.$emit("click")), + b: common_vendor.o(($event) => _ctx.$emit("error")), + c: common_vendor.o(($event) => _ctx.$emit("load")), + d: common_vendor.p({ + src: _ctx.src, + mode: _ctx.mode, + width: _ctx.width, + height: _ctx.height, + shape: _ctx.shape, + radius: _ctx.radius, + lazyLoad: _ctx.lazyLoad, + showMenuByLongpress: _ctx.showMenuByLongpress, + loadingIcon: _ctx.loadingIcon, + errorIcon: _ctx.errorIcon, + showLoading: _ctx.showLoading, + showError: _ctx.showError, + fade: _ctx.fade, + webp: _ctx.webp, + duration: _ctx.duration, + bgColor: _ctx.bgColor, + customStyle: _ctx.customStyle + }) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u--image/u--image.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.json new file mode 100644 index 0000000..f108e38 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "uv-image": "../u-image/u-image" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.wxml new file mode 100644 index 0000000..7badfd0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--image/u--image.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.js new file mode 100644 index 0000000..a89c9c3 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.js @@ -0,0 +1,48 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const uvTextarea = () => "../u-textarea/u-textarea.js"; +const _sfc_main = { + name: "u--textarea", + mixins: [common_vendor.mpMixin, common_vendor.props$2, common_vendor.mixin], + components: { + uvTextarea + } +}; +if (!Array) { + const _component_uvTextarea = common_vendor.resolveComponent("uvTextarea"); + _component_uvTextarea(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.o((e) => _ctx.$emit("input", e)), + b: common_vendor.o((e) => _ctx.$emit("update:modelValue", e)), + c: common_vendor.p({ + value: _ctx.value, + modelValue: _ctx.modelValue, + placeholder: _ctx.placeholder, + height: _ctx.height, + confirmType: _ctx.confirmType, + disabled: _ctx.disabled, + count: _ctx.count, + focus: _ctx.focus, + autoHeight: _ctx.autoHeight, + fixed: _ctx.fixed, + cursorSpacing: _ctx.cursorSpacing, + cursor: _ctx.cursor, + showConfirmBar: _ctx.showConfirmBar, + selectionStart: _ctx.selectionStart, + selectionEnd: _ctx.selectionEnd, + adjustPosition: _ctx.adjustPosition, + disableDefaultPadding: _ctx.disableDefaultPadding, + holdKeyboard: _ctx.holdKeyboard, + maxlength: _ctx.maxlength, + border: _ctx.border, + customStyle: _ctx.customStyle, + formatter: _ctx.formatter, + ignoreCompositionEvent: _ctx.ignoreCompositionEvent + }) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.json new file mode 100644 index 0000000..c41ea35 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "uv-textarea": "../u-textarea/u-textarea" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.wxml new file mode 100644 index 0000000..9f640ae --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u--textarea/u--textarea.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.js new file mode 100644 index 0000000..11856c1 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.js @@ -0,0 +1,137 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const base64Avatar = "data:image/jpg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjREMEQwRkY0RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjREMEQwRkY1RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEQwRDBGRjJGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEQwRDBGRjNGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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"; +const _sfc_main = { + name: "u-avatar", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$21], + data() { + return { + // 如果配置randomBgColor参数为true,在图标或者文字的模式下,会随机从中取出一个颜色值当做背景色 + colors: [ + "#ffb34b", + "#f2bba9", + "#f7a196", + "#f18080", + "#88a867", + "#bfbf39", + "#89c152", + "#94d554", + "#f19ec2", + "#afaae4", + "#e1b0df", + "#c38cc1", + "#72dcdc", + "#9acdcb", + "#77b1cc", + "#448aca", + "#86cefa", + "#98d1ee", + "#73d1f1", + "#80a7dc" + ], + avatarUrl: this.src, + allowMp: false + }; + }, + watch: { + // 监听头像src的变化,赋值给内部的avatarUrl变量,因为图片加载失败时,需要修改图片的src为默认值 + // 而组件内部不能直接修改props的值,所以需要一个中间变量 + src: { + immediate: true, + handler(newVal) { + this.avatarUrl = newVal; + if (!newVal) { + this.errorHandler(); + } + } + } + }, + computed: { + imageStyle() { + const style = {}; + return style; + } + }, + created() { + this.init(); + }, + emits: ["click"], + methods: { + addStyle: common_vendor.addStyle, + addUnit: common_vendor.addUnit, + random: common_vendor.random, + init() { + this.allowMp = true; + }, + // 判断传入的name属性,是否图片路径,只要带有"/"均认为是图片形式 + isImg() { + return this.src.indexOf("/") !== -1; + }, + // 图片加载时失败时触发 + errorHandler() { + this.avatarUrl = this.defaultUrl || base64Avatar; + }, + clickHandler(e) { + this.$emit("click", this.name, e); + } + } +}; +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_up_text2 = common_vendor.resolveComponent("up-text"); + (_easycom_u_icon2 + _easycom_up_text2)(); +} +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +const _easycom_up_text = () => "../u-text/u-text.js"; +if (!Math) { + (_easycom_u_icon + _easycom_up_text)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.mpAvatar && $data.allowMp + }, _ctx.mpAvatar && $data.allowMp ? { + b: common_vendor.s({ + width: $options.addUnit(_ctx.size), + height: $options.addUnit(_ctx.size) + }) + } : {}, { + c: _ctx.mpAvatar && $data.allowMp + }, _ctx.mpAvatar && $data.allowMp ? {} : _ctx.icon ? { + e: common_vendor.p({ + name: _ctx.icon, + size: _ctx.fontSize, + color: _ctx.color + }) + } : _ctx.text ? { + g: common_vendor.p({ + text: _ctx.text, + size: _ctx.fontSize, + color: _ctx.color, + align: "center", + customStyle: "justify-content: center" + }) + } : { + h: common_vendor.n(`u-avatar__image--${_ctx.shape}`), + i: $data.avatarUrl || _ctx.defaultUrl, + j: _ctx.mode, + k: common_vendor.o((...args) => $options.errorHandler && $options.errorHandler(...args)), + l: common_vendor.s({ + width: $options.addUnit(_ctx.size), + height: $options.addUnit(_ctx.size) + }) + }, { + d: _ctx.icon, + f: _ctx.text, + m: common_vendor.n(`u-avatar--${_ctx.shape}`), + n: common_vendor.s({ + backgroundColor: _ctx.text || _ctx.icon ? _ctx.randomBgColor ? $data.colors[_ctx.colorIndex !== "" ? _ctx.colorIndex : $options.random(0, 19)] : _ctx.bgColor : "transparent", + width: $options.addUnit(_ctx.size), + height: $options.addUnit(_ctx.size) + }), + o: common_vendor.s($options.addStyle(_ctx.customStyle)), + p: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-14a988f2"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.json new file mode 100644 index 0000000..3185d42 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../u-icon/u-icon", + "up-text": "../u-text/u-text" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.wxml new file mode 100644 index 0000000..1340ba8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.wxss new file mode 100644 index 0000000..bc5e488 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-avatar/u-avatar.wxss @@ -0,0 +1,68 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-14a988f2, +.u-empty__wrap.data-v-14a988f2, +.u-tabs.data-v-14a988f2, +.u-tabs__wrapper.data-v-14a988f2, +.u-tabs__wrapper__scroll-view-wrapper.data-v-14a988f2, +.u-tabs__wrapper__scroll-view.data-v-14a988f2, +.u-tabs__wrapper__nav.data-v-14a988f2, +.u-tabs__wrapper__nav__line.data-v-14a988f2, +.up-empty.data-v-14a988f2, +.up-empty__wrap.data-v-14a988f2, +.up-tabs.data-v-14a988f2, +.up-tabs__wrapper.data-v-14a988f2, +.up-tabs__wrapper__scroll-view-wrapper.data-v-14a988f2, +.up-tabs__wrapper__scroll-view.data-v-14a988f2, +.up-tabs__wrapper__nav.data-v-14a988f2, +.up-tabs__wrapper__nav__line.data-v-14a988f2 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-avatar.data-v-14a988f2 { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; +} +.u-avatar--circle.data-v-14a988f2 { + border-radius: 100px; +} +.u-avatar--square.data-v-14a988f2 { + border-radius: 4px; +} +.u-avatar__image--circle.data-v-14a988f2 { + border-radius: 100px; + overflow: hidden; +} +.u-avatar__image--square.data-v-14a988f2 { + border-radius: 4px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.js new file mode 100644 index 0000000..bbcf4a1 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.js @@ -0,0 +1,64 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-badge", + mixins: [common_vendor.mpMixin, common_vendor.props$35, common_vendor.mixin], + computed: { + // 是否将badge中心与父组件右上角重合 + boxStyle() { + let style = {}; + return style; + }, + // 整个组件的样式 + badgeStyle() { + const style = {}; + if (this.color) { + style.color = this.color; + } + if (this.bgColor && !this.inverted) { + style.backgroundColor = this.bgColor; + } + if (this.absolute) { + style.position = "absolute"; + if (this.offset.length) { + const top = this.offset[0]; + const right = this.offset[1] || top; + style.top = common_vendor.addUnit(top); + style.right = common_vendor.addUnit(right); + } + } + return style; + }, + showValue() { + switch (this.numberType) { + case "overflow": + return Number(this.value) > Number(this.max) ? this.max + "+" : this.value; + case "ellipsis": + return Number(this.value) > Number(this.max) ? "..." : this.value; + case "limit": + return Number(this.value) > 999 ? Number(this.value) >= 9999 ? Math.floor(this.value / 1e4 * 100) / 100 + "w" : Math.floor(this.value / 1e3 * 100) / 100 + "k" : this.value; + default: + return Number(this.value); + } + } + }, + methods: { + addStyle: common_vendor.addStyle + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.show && ((Number(_ctx.value) === 0 ? _ctx.showZero : true) || _ctx.isDot) + }, _ctx.show && ((Number(_ctx.value) === 0 ? _ctx.showZero : true) || _ctx.isDot) ? { + b: common_vendor.t(_ctx.isDot ? "" : $options.showValue), + c: common_vendor.n(_ctx.isDot ? "u-badge--dot" : "u-badge--not-dot"), + d: common_vendor.n(_ctx.inverted && "u-badge--inverted"), + e: common_vendor.n(_ctx.shape === "horn" && "u-badge--horn"), + f: common_vendor.n(`u-badge--${_ctx.type}${_ctx.inverted ? "--inverted" : ""}`), + g: common_vendor.s($options.addStyle(_ctx.customStyle)), + h: common_vendor.s($options.badgeStyle) + } : {}); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-aa9883b1"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.wxml new file mode 100644 index 0000000..fc92311 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.wxml @@ -0,0 +1 @@ +{{b}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.wxss new file mode 100644 index 0000000..d86df04 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-badge/u-badge.wxss @@ -0,0 +1,104 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-aa9883b1, +.u-empty__wrap.data-v-aa9883b1, +.u-tabs.data-v-aa9883b1, +.u-tabs__wrapper.data-v-aa9883b1, +.u-tabs__wrapper__scroll-view-wrapper.data-v-aa9883b1, +.u-tabs__wrapper__scroll-view.data-v-aa9883b1, +.u-tabs__wrapper__nav.data-v-aa9883b1, +.u-tabs__wrapper__nav__line.data-v-aa9883b1, +.up-empty.data-v-aa9883b1, +.up-empty__wrap.data-v-aa9883b1, +.up-tabs.data-v-aa9883b1, +.up-tabs__wrapper.data-v-aa9883b1, +.up-tabs__wrapper__scroll-view-wrapper.data-v-aa9883b1, +.up-tabs__wrapper__scroll-view.data-v-aa9883b1, +.up-tabs__wrapper__nav.data-v-aa9883b1, +.up-tabs__wrapper__nav__line.data-v-aa9883b1 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-badge.data-v-aa9883b1 { + border-top-right-radius: 100px; + border-top-left-radius: 100px; + border-bottom-left-radius: 100px; + border-bottom-right-radius: 100px; + display: flex; + flex-direction: row; + line-height: 11px; + text-align: center; + font-size: 11px; + color: #FFFFFF; +} +.u-badge--dot.data-v-aa9883b1 { + height: 8px; + width: 8px; +} +.u-badge--inverted.data-v-aa9883b1 { + font-size: 13px; +} +.u-badge--not-dot.data-v-aa9883b1 { + padding: 2px 5px; +} +.u-badge--horn.data-v-aa9883b1 { + border-bottom-left-radius: 0; +} +.u-badge--primary.data-v-aa9883b1 { + background-color: #3c9cff; +} +.u-badge--primary--inverted.data-v-aa9883b1 { + color: #3c9cff; +} +.u-badge--error.data-v-aa9883b1 { + background-color: #f56c6c; +} +.u-badge--error--inverted.data-v-aa9883b1 { + color: #f56c6c; +} +.u-badge--success.data-v-aa9883b1 { + background-color: #5ac725; +} +.u-badge--success--inverted.data-v-aa9883b1 { + color: #5ac725; +} +.u-badge--info.data-v-aa9883b1 { + background-color: #909399; +} +.u-badge--info--inverted.data-v-aa9883b1 { + color: #909399; +} +.u-badge--warning.data-v-aa9883b1 { + background-color: #f9ae3d; +} +.u-badge--warning--inverted.data-v-aa9883b1 { + color: #f9ae3d; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.js new file mode 100644 index 0000000..0ccf824 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.js @@ -0,0 +1,201 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-button", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.buttonMixin, common_vendor.openType, common_vendor.props$16], + data() { + return {}; + }, + computed: { + // 生成bem风格的类名 + bemClass() { + if (!this.color) { + return this.bem( + "button", + ["type", "shape", "size"], + ["disabled", "plain", "hairline"] + ); + } else { + return this.bem( + "button", + ["shape", "size"], + ["disabled", "plain", "hairline"] + ); + } + }, + loadingColor() { + if (this.plain) { + return this.color ? this.color : common_vendor.color[`u-${this.type}`]; + } + if (this.type === "info") { + return "#c9c9c9"; + } + return "rgb(200, 200, 200)"; + }, + iconColorCom() { + if (this.iconColor) + return this.iconColor; + if (this.plain) { + return this.color ? this.color : this.type; + } else { + return this.type === "info" ? "#000000" : "#ffffff"; + } + }, + baseColor() { + let style = {}; + if (this.color) { + style.color = this.plain ? this.color : "white"; + if (!this.plain) { + style["background-color"] = this.color; + } + if (this.color.indexOf("gradient") !== -1) { + style.borderTopWidth = 0; + style.borderRightWidth = 0; + style.borderBottomWidth = 0; + style.borderLeftWidth = 0; + if (!this.plain) { + style.backgroundImage = this.color; + } + } else { + style.borderColor = this.color; + style.borderWidth = "1px"; + style.borderStyle = "solid"; + } + } + return style; + }, + // nvue版本按钮的字体不会继承父组件的颜色,需要对每一个text组件进行单独的设置 + nvueTextStyle() { + let style = {}; + if (this.type === "info") { + style.color = "#323233"; + } + if (this.color) { + style.color = this.plain ? this.color : "white"; + } + style.fontSize = this.textSize + "px"; + return style; + }, + // 字体大小 + textSize() { + let fontSize = 14, { size } = this; + if (size === "large") + fontSize = 16; + if (size === "normal") + fontSize = 14; + if (size === "small") + fontSize = 12; + if (size === "mini") + fontSize = 10; + return fontSize; + } + }, + emits: [ + "click", + "getphonenumber", + "getuserinfo", + "error", + "opensetting", + "launchapp", + "agreeprivacyauthorization" + ], + methods: { + addStyle: common_vendor.addStyle, + clickHandler(e) { + if (!this.disabled && !this.loading) { + common_vendor.throttle(() => { + this.$emit("click", e); + }, this.throttleTime); + } + this.stop && this.preventEvent(e); + }, + // 下面为对接uniapp官方按钮开放能力事件回调的对接 + getphonenumber(res) { + this.$emit("getphonenumber", res); + }, + getuserinfo(res) { + this.$emit("getuserinfo", res); + }, + error(res) { + this.$emit("error", res); + }, + opensetting(res) { + this.$emit("opensetting", res); + }, + launchapp(res) { + this.$emit("launchapp", res); + }, + agreeprivacyauthorization(res) { + this.$emit("agreeprivacyauthorization", res); + } + } +}; +if (!Array) { + const _easycom_u_loading_icon2 = common_vendor.resolveComponent("u-loading-icon"); + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + (_easycom_u_loading_icon2 + _easycom_u_icon2)(); +} +const _easycom_u_loading_icon = () => "../u-loading-icon/u-loading-icon.js"; +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +if (!Math) { + (_easycom_u_loading_icon + _easycom_u_icon)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.loading + }, _ctx.loading ? { + b: common_vendor.p({ + mode: _ctx.loadingMode, + size: _ctx.loadingSize * 1.15, + color: $options.loadingColor + }), + c: common_vendor.t(_ctx.loadingText || _ctx.text), + d: common_vendor.s({ + fontSize: $options.textSize + "px" + }) + } : common_vendor.e({ + e: _ctx.icon + }, _ctx.icon ? { + f: common_vendor.p({ + name: _ctx.icon, + color: $options.iconColorCom, + size: $options.textSize * 1.35, + customStyle: { + marginRight: "2px" + } + }) + } : {}, { + g: common_vendor.t(_ctx.text), + h: common_vendor.s({ + fontSize: $options.textSize + "px" + }) + }), { + i: Number(_ctx.hoverStartTime), + j: Number(_ctx.hoverStayTime), + k: _ctx.formType, + l: _ctx.openType, + m: _ctx.appParameter, + n: _ctx.hoverStopPropagation, + o: _ctx.sendMessageTitle, + p: _ctx.sendMessagePath, + q: _ctx.lang, + r: _ctx.dataName, + s: _ctx.sessionFrom, + t: _ctx.sendMessageImg, + v: _ctx.showMessageCard, + w: common_vendor.o((...args) => $options.getphonenumber && $options.getphonenumber(...args)), + x: common_vendor.o((...args) => $options.getuserinfo && $options.getuserinfo(...args)), + y: common_vendor.o((...args) => $options.error && $options.error(...args)), + z: common_vendor.o((...args) => $options.opensetting && $options.opensetting(...args)), + A: common_vendor.o((...args) => $options.launchapp && $options.launchapp(...args)), + B: common_vendor.o((...args) => $options.agreeprivacyauthorization && $options.agreeprivacyauthorization(...args)), + C: !_ctx.disabled && !_ctx.loading ? "u-button--active" : "", + D: common_vendor.s($options.baseColor), + E: common_vendor.s($options.addStyle(_ctx.customStyle)), + F: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)), + G: common_vendor.n($options.bemClass) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-461e713c"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-button/u-button.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.json new file mode 100644 index 0000000..9d49dfb --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "u-loading-icon": "../u-loading-icon/u-loading-icon", + "u-icon": "../u-icon/u-icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.wxml new file mode 100644 index 0000000..fc2a9b8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.wxss new file mode 100644 index 0000000..bc794ef --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.wxss @@ -0,0 +1,196 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-461e713c, +.u-empty__wrap.data-v-461e713c, +.u-tabs.data-v-461e713c, +.u-tabs__wrapper.data-v-461e713c, +.u-tabs__wrapper__scroll-view-wrapper.data-v-461e713c, +.u-tabs__wrapper__scroll-view.data-v-461e713c, +.u-tabs__wrapper__nav.data-v-461e713c, +.u-tabs__wrapper__nav__line.data-v-461e713c, +.up-empty.data-v-461e713c, +.up-empty__wrap.data-v-461e713c, +.up-tabs.data-v-461e713c, +.up-tabs__wrapper.data-v-461e713c, +.up-tabs__wrapper__scroll-view-wrapper.data-v-461e713c, +.up-tabs__wrapper__scroll-view.data-v-461e713c, +.up-tabs__wrapper__nav.data-v-461e713c, +.up-tabs__wrapper__nav__line.data-v-461e713c { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-button.data-v-461e713c { + width: 100%; + white-space: nowrap; +} +.u-button__text.data-v-461e713c { + white-space: nowrap; + line-height: 1; +} +.u-button.data-v-461e713c:before { + position: absolute; + top: 50%; + left: 50%; + width: 100%; + height: 100%; + border: inherit; + border-radius: inherit; + transform: translate(-50%, -50%); + opacity: 0; + content: " "; + background-color: #000; + border-color: #000; +} +.u-button--active.data-v-461e713c:before { + opacity: 0.15; +} +.u-button__icon + .u-button__text.data-v-461e713c:not(:empty), .u-button__loading-text.data-v-461e713c { + margin-left: 4px; +} +.u-button--plain.u-button--primary.data-v-461e713c { + color: #3c9cff; +} +.u-button--plain.u-button--info.data-v-461e713c { + color: #909399; +} +.u-button--plain.u-button--success.data-v-461e713c { + color: #5ac725; +} +.u-button--plain.u-button--error.data-v-461e713c { + color: #f56c6c; +} +.u-button--plain.u-button--warning.data-v-461e713c { + color: #f9ae3d; +} +.u-button.data-v-461e713c { + height: 40px; + position: relative; + align-items: center; + justify-content: center; + display: flex; + flex-direction: row; + box-sizing: border-box; + flex-direction: row; +} +.u-button__text.data-v-461e713c { + font-size: 15px; +} +.u-button__loading-text.data-v-461e713c { + font-size: 15px; + margin-left: 4px; +} +.u-button--large.data-v-461e713c { + width: 100%; + height: 50px; + padding: 0 15px; +} +.u-button--normal.data-v-461e713c { + padding: 0 12px; + font-size: 14px; +} +.u-button--small.data-v-461e713c { + min-width: 60px; + height: 30px; + padding: 0px 8px; + font-size: 12px; +} +.u-button--mini.data-v-461e713c { + height: 22px; + font-size: 10px; + min-width: 50px; + padding: 0px 8px; +} +.u-button--disabled.data-v-461e713c { + opacity: 0.5; +} +.u-button--info.data-v-461e713c { + color: #323233; + background-color: #fff; + border-color: #ebedf0; + border-width: 1px; + border-style: solid; +} +.u-button--success.data-v-461e713c { + color: #fff; + background-color: #5ac725; + border-color: #5ac725; + border-width: 1px; + border-style: solid; +} +.u-button--primary.data-v-461e713c { + color: #fff; + background-color: #3c9cff; + border-color: #3c9cff; + border-width: 1px; + border-style: solid; +} +.u-button--error.data-v-461e713c { + color: #fff; + background-color: #f56c6c; + border-color: #f56c6c; + border-width: 1px; + border-style: solid; +} +.u-button--warning.data-v-461e713c { + color: #fff; + background-color: #f9ae3d; + border-color: #f9ae3d; + border-width: 1px; + border-style: solid; +} +.u-button--block.data-v-461e713c { + display: flex; + flex-direction: row; + width: 100%; +} +.u-button--circle.data-v-461e713c { + border-top-right-radius: 100px; + border-top-left-radius: 100px; + border-bottom-left-radius: 100px; + border-bottom-right-radius: 100px; +} +.u-button--square.data-v-461e713c { + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.u-button__icon.data-v-461e713c { + min-width: 1em; + line-height: inherit !important; + vertical-align: top; +} +.u-button--plain.data-v-461e713c { + background-color: #fff; +} +.u-button--hairline.data-v-461e713c { + border-width: 0.5px !important; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell-group/u-cell-group.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell-group/u-cell-group.json new file mode 100644 index 0000000..55b89cc --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell-group/u-cell-group.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "u-line": "../u-line/u-line" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell-group/u-cell-group.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell-group/u-cell-group.wxml new file mode 100644 index 0000000..2d0ec63 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell-group/u-cell-group.wxml @@ -0,0 +1 @@ +{{b}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell-group/u-cell-group.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell-group/u-cell-group.wxss new file mode 100644 index 0000000..11e6688 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell-group/u-cell-group.wxss @@ -0,0 +1,63 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-30c8e4c7, +.u-empty__wrap.data-v-30c8e4c7, +.u-tabs.data-v-30c8e4c7, +.u-tabs__wrapper.data-v-30c8e4c7, +.u-tabs__wrapper__scroll-view-wrapper.data-v-30c8e4c7, +.u-tabs__wrapper__scroll-view.data-v-30c8e4c7, +.u-tabs__wrapper__nav.data-v-30c8e4c7, +.u-tabs__wrapper__nav__line.data-v-30c8e4c7, +.up-empty.data-v-30c8e4c7, +.up-empty__wrap.data-v-30c8e4c7, +.up-tabs.data-v-30c8e4c7, +.up-tabs__wrapper.data-v-30c8e4c7, +.up-tabs__wrapper__scroll-view-wrapper.data-v-30c8e4c7, +.up-tabs__wrapper__scroll-view.data-v-30c8e4c7, +.up-tabs__wrapper__nav.data-v-30c8e4c7, +.up-tabs__wrapper__nav__line.data-v-30c8e4c7 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-cell-group.data-v-30c8e4c7 { + flex: 1; +} +.u-cell-group__title.data-v-30c8e4c7 { + padding: 16px 16px 8px; +} +.u-cell-group__title__text.data-v-30c8e4c7 { + font-size: 15px; + line-height: 16px; + color: #303133; +} +.u-cell-group__wrapper.data-v-30c8e4c7 { + position: relative; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.js new file mode 100644 index 0000000..3259d6c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.js @@ -0,0 +1,101 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-cell", + data() { + return {}; + }, + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$22], + computed: { + titleTextStyle() { + return common_vendor.addStyle(this.titleStyle); + } + }, + emits: ["click"], + methods: { + addStyle: common_vendor.addStyle, + testEmpty: common_vendor.test.empty, + // 点击cell + clickHandler(e) { + if (this.disabled) + return; + this.$emit("click", { + name: this.name + }); + this.openPage(); + this.stop && this.preventEvent(e); + } + } +}; +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_u_line2 = common_vendor.resolveComponent("u-line"); + (_easycom_u_icon2 + _easycom_u_line2)(); +} +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +const _easycom_u_line = () => "../u-line/u-line.js"; +if (!Math) { + (_easycom_u_icon + _easycom_u_line)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.$slots.icon || _ctx.icon + }, _ctx.$slots.icon || _ctx.icon ? common_vendor.e({ + b: _ctx.$slots.icon + }, _ctx.$slots.icon ? {} : { + c: common_vendor.p({ + name: _ctx.icon, + ["custom-style"]: _ctx.iconStyle, + size: _ctx.size === "large" ? 22 : 18 + }) + }) : {}, { + d: _ctx.$slots.title || !_ctx.title + }, _ctx.$slots.title || !_ctx.title ? {} : { + e: common_vendor.t(_ctx.title), + f: common_vendor.s($options.titleTextStyle), + g: common_vendor.n(_ctx.required && "u-cell--required"), + h: common_vendor.n(_ctx.disabled && "u-cell--disabled"), + i: common_vendor.n(_ctx.size === "large" && "u-cell__title-text--large") + }, { + j: _ctx.label + }, _ctx.label ? { + k: common_vendor.t(_ctx.label), + l: common_vendor.n(_ctx.disabled && "u-cell--disabled"), + m: common_vendor.n(_ctx.size === "large" && "u-cell__label--large") + } : {}, { + n: !$options.testEmpty(_ctx.value) + }, !$options.testEmpty(_ctx.value) ? { + o: common_vendor.t(_ctx.value), + p: common_vendor.n(_ctx.disabled && "u-cell--disabled"), + q: common_vendor.n(_ctx.size === "large" && "u-cell__value--large") + } : {}, { + r: _ctx.$slots["right-icon"] || _ctx.isLink + }, _ctx.$slots["right-icon"] || _ctx.isLink ? common_vendor.e({ + s: _ctx.rightIcon && !_ctx.$slots["right-icon"] + }, _ctx.rightIcon && !_ctx.$slots["right-icon"] ? { + t: common_vendor.p({ + name: _ctx.rightIcon, + ["custom-style"]: _ctx.rightIconStyle, + color: _ctx.disabled ? "#c8c9cc" : "info", + size: _ctx.size === "large" ? 18 : 16 + }) + } : {}, { + v: common_vendor.n(`u-cell__right-icon-wrap--${_ctx.arrowDirection}`) + }) : {}, { + w: _ctx.$slots["righticon"] + }, _ctx.$slots["righticon"] ? { + x: common_vendor.n(`u-cell__right-icon-wrap--${_ctx.arrowDirection}`) + } : {}, { + y: common_vendor.n(_ctx.center && "u-cell--center"), + z: common_vendor.n(_ctx.size === "large" && "u-cell__body--large"), + A: _ctx.border + }, _ctx.border ? {} : {}, { + B: common_vendor.n(_ctx.customClass), + C: common_vendor.s($options.addStyle(_ctx.customStyle)), + D: !_ctx.disabled && (_ctx.clickable || _ctx.isLink) ? "u-cell--clickable" : "", + E: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b4243719"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.json new file mode 100644 index 0000000..9dd4979 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../u-icon/u-icon", + "u-line": "../u-line/u-line" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.wxml new file mode 100644 index 0000000..c0d38c5 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.wxml @@ -0,0 +1 @@ +{{e}}{{k}}{{o}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.wxss new file mode 100644 index 0000000..7986ec6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-cell/u-cell.wxss @@ -0,0 +1,143 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-b4243719, +.u-empty__wrap.data-v-b4243719, +.u-tabs.data-v-b4243719, +.u-tabs__wrapper.data-v-b4243719, +.u-tabs__wrapper__scroll-view-wrapper.data-v-b4243719, +.u-tabs__wrapper__scroll-view.data-v-b4243719, +.u-tabs__wrapper__nav.data-v-b4243719, +.u-tabs__wrapper__nav__line.data-v-b4243719, +.up-empty.data-v-b4243719, +.up-empty__wrap.data-v-b4243719, +.up-tabs.data-v-b4243719, +.up-tabs__wrapper.data-v-b4243719, +.up-tabs__wrapper__scroll-view-wrapper.data-v-b4243719, +.up-tabs__wrapper__scroll-view.data-v-b4243719, +.up-tabs__wrapper__nav.data-v-b4243719, +.up-tabs__wrapper__nav__line.data-v-b4243719 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-cell__body.data-v-b4243719 { + display: flex; + flex-direction: row; + box-sizing: border-box; + padding: 13px 15px; + font-size: 15px; + color: #303133; + align-items: center; +} +.u-cell__body__content.data-v-b4243719 { + display: flex; + flex-direction: row; + align-items: center; + flex: 1; +} +.u-cell__body--large.data-v-b4243719 { + padding-top: 13px; + padding-bottom: 13px; +} +.u-cell__left-icon-wrap.data-v-b4243719, .u-cell__right-icon-wrap.data-v-b4243719 { + display: flex; + flex-direction: row; + align-items: center; + font-size: 16px; +} +.u-cell__left-icon-wrap.data-v-b4243719 { + margin-right: 4px; +} +.u-cell__right-icon-wrap.data-v-b4243719 { + margin-left: 4px; + transition: transform 0.3s; +} +.u-cell__right-icon-wrap--up.data-v-b4243719 { + transform: rotate(-90deg); +} +.u-cell__right-icon-wrap--down.data-v-b4243719 { + transform: rotate(90deg); +} +.u-cell__title.data-v-b4243719 { + flex: 1; + display: flex; + flex-direction: column; +} +.u-cell__title-text.data-v-b4243719 { + font-size: 15px; + line-height: 22px; + color: #303133; +} +.u-cell__title-text--large.data-v-b4243719 { + font-size: 16px; +} +.u-cell__label.data-v-b4243719 { + margin-top: 5px; + font-size: 12px; + color: #909193; + line-height: 18px; +} +.u-cell__label--large.data-v-b4243719 { + font-size: 14px; +} +.u-cell__value.data-v-b4243719 { + text-align: right; + margin-left: auto; + font-size: 14px; + line-height: 24px; + color: #606266; +} +.u-cell__value--large.data-v-b4243719 { + font-size: 15px; +} +.u-cell--required.data-v-b4243719 { + overflow: visible; + display: flex; + flex-direction: row; + align-items: center; +} +.u-cell--required.data-v-b4243719:before { + position: absolute; + content: "*"; + left: -8px; + margin-top: 4rpx; + font-size: 14px; + color: #f56c6c; +} +.u-cell--clickable.data-v-b4243719 { + background-color: #f3f4f6; +} +.u-cell--disabled.data-v-b4243719 { + color: #c8c9cc; + cursor: not-allowed; +} +.u-cell--center.data-v-b4243719 { + align-items: center; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.js new file mode 100644 index 0000000..225d861 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.js @@ -0,0 +1,98 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-code", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$15], + data() { + return { + secNum: this.seconds, + timer: null, + canGetCode: true + // 是否可以执行验证码操作 + }; + }, + mounted() { + this.checkKeepRunning(); + }, + watch: { + seconds: { + immediate: true, + handler(n) { + this.secNum = n; + } + } + }, + emits: ["start", "end", "change"], + methods: { + checkKeepRunning() { + let lastTimestamp = Number(common_vendor.index.getStorageSync(this.uniqueKey + "_$uCountDownTimestamp")); + if (!lastTimestamp) + return this.changeEvent(this.startText); + let nowTimestamp = Math.floor(+/* @__PURE__ */ new Date() / 1e3); + if (this.keepRunning && lastTimestamp && lastTimestamp > nowTimestamp) { + this.secNum = lastTimestamp - nowTimestamp; + common_vendor.index.removeStorageSync(this.uniqueKey + "_$uCountDownTimestamp"); + this.start(); + } else { + this.changeEvent(this.startText); + } + }, + // 开始倒计时 + start() { + if (this.timer) { + clearInterval(this.timer); + this.timer = null; + } + this.$emit("start"); + this.canGetCode = false; + this.changeEvent(this.changeText.replace(/x|X/, this.secNum)); + this.timer = setInterval(() => { + if (--this.secNum) { + this.changeEvent(this.changeText.replace(/x|X/, this.secNum)); + } else { + clearInterval(this.timer); + this.timer = null; + this.changeEvent(this.endText); + this.secNum = this.seconds; + this.$emit("end"); + this.canGetCode = true; + } + }, 1e3); + this.setTimeToStorage(); + }, + // 重置,可以让用户再次获取验证码 + reset() { + this.canGetCode = true; + clearInterval(this.timer); + this.secNum = this.seconds; + this.changeEvent(this.endText); + }, + changeEvent(text) { + this.$emit("change", text); + }, + // 保存时间戳,为了防止倒计时尚未结束,H5刷新或者各端的右上角返回上一页再进来 + setTimeToStorage() { + if (!this.keepRunning || !this.timer) + return; + if (this.secNum > 0 && this.secNum <= this.seconds) { + let nowTimestamp = Math.floor(+/* @__PURE__ */ new Date() / 1e3); + common_vendor.index.setStorage({ + key: this.uniqueKey + "_$uCountDownTimestamp", + data: nowTimestamp + Number(this.secNum) + }); + } + } + }, + // 组件销毁的时候,清除定时器,否则定时器会继续存在,系统不会自动清除 + beforeUnmount() { + this.setTimeToStorage(); + clearTimeout(this.timer); + this.timer = null; + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return {}; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-ac37a9df"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-code/u-code.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.wxml new file mode 100644 index 0000000..21c4c5a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.wxss new file mode 100644 index 0000000..89eafe6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-code/u-code.wxss @@ -0,0 +1,49 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-ac37a9df, +.u-empty__wrap.data-v-ac37a9df, +.u-tabs.data-v-ac37a9df, +.u-tabs__wrapper.data-v-ac37a9df, +.u-tabs__wrapper__scroll-view-wrapper.data-v-ac37a9df, +.u-tabs__wrapper__scroll-view.data-v-ac37a9df, +.u-tabs__wrapper__nav.data-v-ac37a9df, +.u-tabs__wrapper__nav__line.data-v-ac37a9df, +.up-empty.data-v-ac37a9df, +.up-empty__wrap.data-v-ac37a9df, +.up-tabs.data-v-ac37a9df, +.up-tabs__wrapper.data-v-ac37a9df, +.up-tabs__wrapper__scroll-view-wrapper.data-v-ac37a9df, +.up-tabs__wrapper__scroll-view.data-v-ac37a9df, +.up-tabs__wrapper__nav.data-v-ac37a9df, +.up-tabs__wrapper__nav__line.data-v-ac37a9df { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.js new file mode 100644 index 0000000..7c96a33 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.js @@ -0,0 +1,118 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-dropdown-item", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$11], + options: { + styleIsolation: "shared" + }, + data() { + return { + active: false, + // 当前项是否处于展开状态 + activeColor: "#2979ff", + // 激活时左边文字和右边对勾图标的颜色 + inactiveColor: "#606266" + // 未激活时左边文字和右边对勾图标的颜色 + }; + }, + computed: { + // 监听props是否发生了变化,有些值需要传递给父组件u-dropdown,无法双向绑定 + propsChange() { + return `${this.title}-${this.disabled}`; + } + }, + watch: { + propsChange(n) { + if (this.parent) + this.parent.init(); + } + }, + created() { + this.parent = false; + }, + emits: ["update:modelValue", "change"], + methods: { + addUnit: common_vendor.addUnit, + init() { + let parent = common_vendor.$parent.call(this, "u-dropdown"); + if (parent) { + this.parent = parent; + this.activeColor = parent.activeColor; + this.inactiveColor = parent.inactiveColor; + let exist = parent.children.find((val) => { + return this === val; + }); + if (!exist) + parent.children.push(this); + if (parent.children.length == 1) + this.active = true; + parent.menuList.push({ + title: this.title, + disabled: this.disabled + }); + } + }, + // cell被点击 + cellClick(value) { + this.$emit("update:modelValue", value); + this.parent.close(); + this.$emit("change", value); + } + }, + mounted() { + this.init(); + } +}; +if (!Array) { + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + const _easycom_up_cell2 = common_vendor.resolveComponent("up-cell"); + const _easycom_up_cell_group2 = common_vendor.resolveComponent("up-cell-group"); + (_easycom_up_icon2 + _easycom_up_cell2 + _easycom_up_cell_group2)(); +} +const _easycom_up_icon = () => "../u-icon/u-icon.js"; +const _easycom_up_cell = () => "../u-cell/u-cell.js"; +const _easycom_up_cell_group = () => "../u-cell-group/u-cell-group.js"; +if (!Math) { + (_easycom_up_icon + _easycom_up_cell + _easycom_up_cell_group)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: $data.active + }, $data.active ? common_vendor.e({ + b: !_ctx.$slots.default && !_ctx.$slots.$default + }, !_ctx.$slots.default && !_ctx.$slots.$default ? { + c: common_vendor.f(_ctx.options, (item, index, i0) => { + return common_vendor.e({ + a: _ctx.modelValue == item.value + }, _ctx.modelValue == item.value ? { + b: "243060d4-2-" + i0 + "," + ("243060d4-1-" + i0), + c: common_vendor.p({ + name: "checkbox-mark", + color: $data.activeColor, + size: "32" + }) + } : {}, { + d: common_vendor.o(($event) => $options.cellClick(item.value), index), + e: index, + f: "243060d4-1-" + i0 + ",243060d4-0", + g: common_vendor.p({ + arrow: false, + title: item.label, + ["title-style"]: { + color: _ctx.modelValue == item.value ? $data.activeColor : $data.inactiveColor + } + }) + }); + }), + d: $options.addUnit(_ctx.height) + } : {}, { + e: common_vendor.o(() => { + }), + f: common_vendor.o(() => { + }) + }) : {}); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-243060d4"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.json new file mode 100644 index 0000000..dcc859b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "up-icon": "../u-icon/u-icon", + "up-cell": "../u-cell/u-cell", + "up-cell-group": "../u-cell-group/u-cell-group" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.wxml new file mode 100644 index 0000000..12b2663 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.wxss new file mode 100644 index 0000000..5b21af4 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.wxss @@ -0,0 +1,52 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-243060d4, +.u-empty__wrap.data-v-243060d4, +.u-tabs.data-v-243060d4, +.u-tabs__wrapper.data-v-243060d4, +.u-tabs__wrapper__scroll-view-wrapper.data-v-243060d4, +.u-tabs__wrapper__scroll-view.data-v-243060d4, +.u-tabs__wrapper__nav.data-v-243060d4, +.u-tabs__wrapper__nav__line.data-v-243060d4, +.up-empty.data-v-243060d4, +.up-empty__wrap.data-v-243060d4, +.up-tabs.data-v-243060d4, +.up-tabs__wrapper.data-v-243060d4, +.up-tabs__wrapper__scroll-view-wrapper.data-v-243060d4, +.up-tabs__wrapper__scroll-view.data-v-243060d4, +.up-tabs__wrapper__nav.data-v-243060d4, +.up-tabs__wrapper__nav__line.data-v-243060d4 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-dropdown-item__scroll.data-v-243060d4 { + background: #ffffff; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.js new file mode 100644 index 0000000..2febe9b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.js @@ -0,0 +1,155 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-dropdown", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$12], + data() { + return { + showDropdown: true, + // 是否打开下来菜单, + menuList: [], + // 显示的菜单 + active: false, + // 下拉菜单的状态 + // 当前是第几个菜单处于激活状态,小程序中此处不能写成false或者"",否则后续将current赋值为0, + // 无能的TX没有使用===而是使用==判断,导致程序认为前后二者没有变化,从而不会触发视图更新 + current: 99999, + // 外层内容的样式,初始时处于底层,且透明 + contentStyle: { + zIndex: -1, + opacity: 0 + }, + // 让某个菜单保持高亮的状态 + highlightIndex: 99999, + contentHeight: 0 + }; + }, + computed: { + // 下拉出来部分的样式 + popupStyle() { + let style = {}; + style.transform = `translateY(${this.active ? 0 : "-100%"})`; + style["transition-duration"] = this.duration / 1e3 + "s"; + style.borderRadius = `0 0 ${common_vendor.addUnit(this.borderRadius)} ${common_vendor.addUnit(this.borderRadius)}`; + return style; + } + }, + created() { + this.children = []; + }, + mounted() { + this.getContentHeight(); + }, + emits: ["open", "close"], + methods: { + addUnit: common_vendor.addUnit, + init() { + this.menuList = []; + this.children.map((child) => { + child.init(); + }); + }, + // 点击菜单 + menuClick(index) { + if (this.menuList[index].disabled) + return; + if (index === this.current && this.closeOnClickSelf) { + this.close(); + setTimeout(() => { + this.children[index].active = false; + }, this.duration); + return; + } + this.open(index); + }, + // 打开下拉菜单 + open(index) { + if (this.contentHeight < 1) + this.getContentHeight(); + this.contentStyle = { + zIndex: 11 + }; + this.active = true; + this.current = index; + this.children.map((val, idx) => { + val.active = index == idx ? true : false; + }); + this.$emit("open", this.current); + }, + // 设置下拉菜单处于收起状态 + close() { + this.$emit("close", this.current); + this.active = false; + this.current = 99999; + this.contentStyle = { + zIndex: -1, + opacity: 0 + }; + }, + // 点击遮罩 + maskClick() { + if (!this.closeOnClickMask) + return; + this.close(); + }, + // 外部手动设置某个菜单高亮 + highlight(index = void 0) { + this.highlightIndex = index !== void 0 ? index : 99999; + }, + // 获取下拉菜单内容的高度 + getContentHeight() { + let windowHeight = common_vendor.getWindowInfo().windowHeight; + this.$uGetRect(".u-dropdown__menu").then((res) => { + this.contentHeight = windowHeight - res.bottom; + }); + } + } +}; +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + _easycom_u_icon2(); +} +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +if (!Math) { + _easycom_u_icon(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.f($data.menuList, (item, index, i0) => { + return { + a: common_vendor.t(item.title), + b: item.disabled ? "#c0c4cc" : index === $data.current || $data.highlightIndex == index ? _ctx.activeColor : _ctx.inactiveColor, + c: "d45d1d94-0-" + i0, + d: common_vendor.p({ + ["custom-style"]: { + display: "flex" + }, + name: _ctx.menuIcon, + size: $options.addUnit(_ctx.menuIconSize), + color: index === $data.current || $data.highlightIndex == index ? _ctx.activeColor : "#c0c4cc" + }), + e: index === $data.current ? 1 : "", + f: index, + g: common_vendor.o(($event) => $options.menuClick(index), index) + }; + }), + b: $options.addUnit(_ctx.titleSize), + c: $options.addUnit(_ctx.height), + d: _ctx.borderBottom ? 1 : "", + e: common_vendor.o(() => { + }), + f: common_vendor.s($options.popupStyle), + g: common_vendor.s($data.contentStyle), + h: common_vendor.s({ + transition: `opacity ${_ctx.duration / 1e3}s linear`, + top: $options.addUnit(_ctx.height), + height: $data.contentHeight + "px" + }), + i: common_vendor.o((...args) => $options.maskClick && $options.maskClick(...args)), + j: common_vendor.o(() => { + }) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-d45d1d94"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.json new file mode 100644 index 0000000..fcde44c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../u-icon/u-icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.wxml new file mode 100644 index 0000000..97e0a59 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.wxml @@ -0,0 +1 @@ +{{item.a}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.wxss new file mode 100644 index 0000000..2bef9a0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-dropdown/u-dropdown.wxss @@ -0,0 +1,109 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-d45d1d94, +.u-empty__wrap.data-v-d45d1d94, +.u-tabs.data-v-d45d1d94, +.u-tabs__wrapper.data-v-d45d1d94, +.u-tabs__wrapper__scroll-view-wrapper.data-v-d45d1d94, +.u-tabs__wrapper__scroll-view.data-v-d45d1d94, +.u-tabs__wrapper__nav.data-v-d45d1d94, +.u-tabs__wrapper__nav__line.data-v-d45d1d94, +.up-empty.data-v-d45d1d94, +.up-empty__wrap.data-v-d45d1d94, +.up-tabs.data-v-d45d1d94, +.up-tabs__wrapper.data-v-d45d1d94, +.up-tabs__wrapper__scroll-view-wrapper.data-v-d45d1d94, +.up-tabs__wrapper__scroll-view.data-v-d45d1d94, +.up-tabs__wrapper__nav.data-v-d45d1d94, +.up-tabs__wrapper__nav__line.data-v-d45d1d94 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-dropdown.data-v-d45d1d94 { + flex: 1; + width: 100%; + position: relative; +} +.u-dropdown__menu.data-v-d45d1d94 { + display: flex; + flex-direction: row; + position: relative; + z-index: 11; + height: 80rpx; +} +.u-dropdown__menu__item.data-v-d45d1d94 { + flex: 1; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; +} +.u-dropdown__menu__item .u-flex-row.data-v-d45d1d94 { + flex-direction: row; +} +.u-dropdown__menu__item__text.data-v-d45d1d94 { + font-size: 28rpx; + color: #606266; +} +.u-dropdown__menu__item__arrow.data-v-d45d1d94 { + margin-left: 6rpx; + transition: transform 0.3s; + align-items: center; + display: flex; + flex-direction: row; +} +.u-dropdown__menu__item__arrow--rotate.data-v-d45d1d94 { + transform: rotate(180deg); +} +.u-dropdown__content.data-v-d45d1d94 { + position: absolute; + z-index: 8; + width: 100%; + left: 0px; + bottom: 0; + overflow: hidden; +} +.u-dropdown__content__mask.data-v-d45d1d94 { + position: absolute; + z-index: 9; + background: rgba(0, 0, 0, 0.3); + width: 100%; + left: 0; + top: 0; + bottom: 0; +} +.u-dropdown__content__popup.data-v-d45d1d94 { + position: relative; + z-index: 10; + transition: transform 0.3s; + transform: translate3D(0, -100%, 0); + overflow: hidden; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.js new file mode 100644 index 0000000..9fd9555 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.js @@ -0,0 +1,84 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-empty", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$5], + data() { + return { + icons: { + car: "购物车为空", + page: "页面不存在", + search: "没有搜索结果", + address: "没有收货地址", + wifi: "没有WiFi", + order: "订单为空", + coupon: "没有优惠券", + favor: "暂无收藏", + permission: "无权限", + history: "无历史记录", + news: "无新闻列表", + message: "消息列表为空", + list: "列表为空", + data: "数据为空", + comment: "暂无评论" + } + }; + }, + computed: { + // 组件样式 + emptyStyle() { + const style = {}; + style.marginTop = common_vendor.addUnit(this.marginTop); + return common_vendor.deepMerge(common_vendor.addStyle(this.customStyle), style); + }, + // 文本样式 + textStyle() { + const style = {}; + style.color = this.textColor; + style.fontSize = common_vendor.addUnit(this.textSize); + return style; + }, + // 判断icon是否图片路径 + isSrc() { + return this.icon.indexOf("/") >= 0; + } + }, + methods: { + addUnit: common_vendor.addUnit + } +}; +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + _easycom_u_icon2(); +} +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +if (!Math) { + _easycom_u_icon(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.show + }, _ctx.show ? common_vendor.e({ + b: !$options.isSrc + }, !$options.isSrc ? { + c: common_vendor.p({ + name: _ctx.mode === "message" ? "chat" : `empty-${_ctx.mode}`, + size: _ctx.iconSize, + color: _ctx.iconColor, + ["margin-top"]: "14" + }) + } : { + d: $options.addUnit(_ctx.width), + e: $options.addUnit(_ctx.height), + f: _ctx.icon + }, { + g: common_vendor.t(_ctx.text ? _ctx.text : $data.icons[_ctx.mode]), + h: common_vendor.s($options.textStyle), + i: _ctx.$slots.default || _ctx.$slots.$default + }, _ctx.$slots.default || _ctx.$slots.$default ? {} : {}, { + j: common_vendor.s($options.emptyStyle) + }) : {}); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-bd84101d"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.json new file mode 100644 index 0000000..fcde44c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../u-icon/u-icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.wxml new file mode 100644 index 0000000..9178b74 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.wxml @@ -0,0 +1 @@ +{{g}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.wxss new file mode 100644 index 0000000..9f095df --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-empty/u-empty.wxss @@ -0,0 +1,70 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-bd84101d, +.u-empty__wrap.data-v-bd84101d, +.u-tabs.data-v-bd84101d, +.u-tabs__wrapper.data-v-bd84101d, +.u-tabs__wrapper__scroll-view-wrapper.data-v-bd84101d, +.u-tabs__wrapper__scroll-view.data-v-bd84101d, +.u-tabs__wrapper__nav.data-v-bd84101d, +.u-tabs__wrapper__nav__line.data-v-bd84101d, +.up-empty.data-v-bd84101d, +.up-empty__wrap.data-v-bd84101d, +.up-tabs.data-v-bd84101d, +.up-tabs__wrapper.data-v-bd84101d, +.up-tabs__wrapper__scroll-view-wrapper.data-v-bd84101d, +.up-tabs__wrapper__scroll-view.data-v-bd84101d, +.up-tabs__wrapper__nav.data-v-bd84101d, +.up-tabs__wrapper__nav__line.data-v-bd84101d { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-empty.data-v-bd84101d { + display: flex; + flex-direction: row; + flex-direction: column; + justify-content: center; + align-items: center; +} +.u-empty__text.data-v-bd84101d { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + margin-top: 20rpx; +} +.u-slot-wrap.data-v-bd84101d { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + margin-top: 20rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.js new file mode 100644 index 0000000..8827c86 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.js @@ -0,0 +1,137 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-form-item", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$13], + data() { + return { + // 错误提示语 + message: "", + parentData: { + // 提示文本的位置 + labelPosition: "left", + // 提示文本对齐方式 + labelAlign: "left", + // 提示文本的样式 + labelStyle: {}, + // 提示文本的宽度 + labelWidth: 45, + // 错误提示方式 + errorType: "message" + }, + color: common_vendor.color, + itemRules: [] + }; + }, + // 组件创建完成时,将当前实例保存到u-form中 + computed: { + propsLine() { + return common_vendor.props$14.line; + } + }, + mounted() { + this.init(); + }, + emits: ["click"], + watch: { + // 监听规则的变化 + rules: { + immediate: true, + handler(n) { + this.setRules(n); + } + } + }, + methods: { + addStyle: common_vendor.addStyle, + addUnit: common_vendor.addUnit, + init() { + this.updateParentData(); + if (!this.parent) { + common_vendor.error("u-form-item需要结合u-form组件使用"); + } + }, + // 手动设置校验的规则,如果规则中有函数的话,微信小程序中会过滤掉,所以只能手动调用设置规则 + setRules(rules) { + if (rules.length === 0) { + this.itemRules = []; + return; + } + this.itemRules = rules; + }, + // 获取父组件的参数 + updateParentData() { + this.getParentData("u-form"); + }, + // 移除u-form-item的校验结果 + clearValidate() { + this.message = null; + }, + // 清空当前的组件的校验结果,并重置为初始值 + resetField() { + const value = common_vendor.getProperty(this.parent.originalModel, this.prop); + common_vendor.setProperty(this.parent.model, this.prop, value); + this.message = null; + }, + // 点击组件 + clickHandler() { + this.$emit("click"); + } + } +}; +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_u_line2 = common_vendor.resolveComponent("u-line"); + (_easycom_u_icon2 + _easycom_u_line2)(); +} +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +const _easycom_u_line = () => "../u-line/u-line.js"; +if (!Math) { + (_easycom_u_icon + _easycom_u_line)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.required || _ctx.leftIcon || _ctx.label + }, _ctx.required || _ctx.leftIcon || _ctx.label ? common_vendor.e({ + b: _ctx.required + }, _ctx.required ? {} : {}, { + c: _ctx.leftIcon + }, _ctx.leftIcon ? { + d: common_vendor.p({ + name: _ctx.leftIcon, + ["custom-style"]: _ctx.leftIconStyle + }) + } : {}, { + e: common_vendor.t(_ctx.label), + f: common_vendor.s($data.parentData.labelStyle), + g: common_vendor.s({ + justifyContent: $data.parentData.labelAlign === "left" ? "flex-start" : $data.parentData.labelAlign === "center" ? "center" : "flex-end" + }), + h: $options.addUnit(_ctx.labelWidth || $data.parentData.labelWidth), + i: $data.parentData.labelPosition === "left" ? 0 : "5px" + }) : {}, { + j: _ctx.$slots.right + }, _ctx.$slots.right ? {} : {}, { + k: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)), + l: common_vendor.s($options.addStyle(_ctx.customStyle)), + m: common_vendor.s({ + flexDirection: (_ctx.labelPosition || $data.parentData.labelPosition) === "left" ? "row" : "column" + }), + n: !!$data.message && $data.parentData.errorType === "message" + }, !!$data.message && $data.parentData.errorType === "message" ? { + o: common_vendor.t($data.message), + p: $options.addUnit($data.parentData.labelPosition === "top" ? 0 : _ctx.labelWidth || $data.parentData.labelWidth) + } : {}, { + q: _ctx.borderBottom + }, _ctx.borderBottom ? { + r: common_vendor.p({ + color: $data.message && $data.parentData.errorType === "border-bottom" ? $data.color.error : $options.propsLine.color, + customStyle: `margin-top: ${$data.message && $data.parentData.errorType === "message" ? "5px" : 0}` + }) + } : {}, { + s: !!$data.message && $data.parentData.errorType === "message" ? 1 : "" + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b4fd400b"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.json new file mode 100644 index 0000000..9dd4979 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../u-icon/u-icon", + "u-line": "../u-line/u-line" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.wxml new file mode 100644 index 0000000..36c6223 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.wxml @@ -0,0 +1 @@ +*{{o}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.wxss new file mode 100644 index 0000000..916a1c2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form-item/u-form-item.wxss @@ -0,0 +1,114 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-b4fd400b, +.u-empty__wrap.data-v-b4fd400b, +.u-tabs.data-v-b4fd400b, +.u-tabs__wrapper.data-v-b4fd400b, +.u-tabs__wrapper__scroll-view-wrapper.data-v-b4fd400b, +.u-tabs__wrapper__scroll-view.data-v-b4fd400b, +.u-tabs__wrapper__nav.data-v-b4fd400b, +.u-tabs__wrapper__nav__line.data-v-b4fd400b, +.up-empty.data-v-b4fd400b, +.up-empty__wrap.data-v-b4fd400b, +.up-tabs.data-v-b4fd400b, +.up-tabs__wrapper.data-v-b4fd400b, +.up-tabs__wrapper__scroll-view-wrapper.data-v-b4fd400b, +.up-tabs__wrapper__scroll-view.data-v-b4fd400b, +.up-tabs__wrapper__nav.data-v-b4fd400b, +.up-tabs__wrapper__nav__line.data-v-b4fd400b { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-form-item.data-v-b4fd400b { + display: flex; + flex-direction: column; + font-size: 14px; + color: #303133; +} +.u-form-item__body.data-v-b4fd400b { + display: flex; + flex-direction: row; + padding: 10px 0; +} +.u-form-item__body__left.data-v-b4fd400b { + display: flex; + flex-direction: row; + align-items: center; +} +.u-form-item__body__left__content.data-v-b4fd400b { + position: relative; + display: flex; + flex-direction: row; + align-items: center; + padding-right: 10rpx; + flex: 1; +} +.u-form-item__body__left__content__icon.data-v-b4fd400b { + margin-right: 8rpx; +} +.u-form-item__body__left__content__required.data-v-b4fd400b { + position: absolute; + left: -9px; + color: #f56c6c; + line-height: 20px; + font-size: 20px; + top: 3px; +} +.u-form-item__body__left__content__label.data-v-b4fd400b { + display: flex; + flex-direction: row; + align-items: center; + flex: 1; + color: #303133; + font-size: 15px; +} +.u-form-item__body__right.data-v-b4fd400b { + flex: 1; +} +.u-form-item__body__right__content.data-v-b4fd400b { + display: flex; + flex-direction: row; + align-items: center; + flex: 1; +} +.u-form-item__body__right__content__slot.data-v-b4fd400b { + flex: 1; +} +.u-form-item__body__right__content__icon.data-v-b4fd400b { + margin-left: 10rpx; + color: #c0c4cc; + font-size: 30rpx; +} +.u-form-item__body__right__message.data-v-b4fd400b { + font-size: 12px; + line-height: 12px; + color: #f56c6c; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.js new file mode 100644 index 0000000..1afbd64 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.js @@ -0,0 +1,203 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +common_vendor.Schema.warning = function() { +}; +const _sfc_main = { + name: "u-form", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$17], + provide() { + return { + uForm: this + }; + }, + data() { + return { + formRules: {}, + // 规则校验器 + validator: {}, + // 原始的model快照,用于resetFields方法重置表单时使用 + originalModel: null + }; + }, + watch: { + // 监听规则的变化 + rules: { + immediate: true, + handler(n) { + this.setRules(n); + } + }, + // 监听属性的变化,通知子组件u-form-item重新获取信息 + propsChange(n) { + var _a; + if ((_a = this.children) == null ? void 0 : _a.length) { + this.children.map((child) => { + typeof child.updateParentData == "function" && child.updateParentData(); + }); + } + }, + // 监听model的初始值作为重置表单的快照 + model: { + immediate: true, + handler(n) { + if (!this.originalModel) { + this.originalModel = common_vendor.deepClone(n); + } + } + } + }, + computed: { + propsChange() { + return [ + this.errorType, + this.borderBottom, + this.labelPosition, + this.labelWidth, + this.labelAlign, + this.labelStyle + ]; + } + }, + created() { + this.children = []; + }, + methods: { + // 手动设置校验的规则,如果规则中有函数的话,微信小程序中会过滤掉,所以只能手动调用设置规则 + setRules(rules) { + if (Object.keys(rules).length === 0) + return; + if (Object.keys(this.model).length === 0) { + common_vendor.error("设置rules,model必须设置!如果已经设置,请刷新页面。"); + return; + } + this.formRules = rules; + this.validator = new common_vendor.Schema(rules); + }, + // 清空所有u-form-item组件的内容,本质上是调用了u-form-item组件中的resetField()方法 + resetFields() { + this.resetModel(); + }, + // 重置model为初始值的快照 + resetModel(obj) { + this.children.map((child) => { + const prop = child == null ? void 0 : child.prop; + const value = common_vendor.getProperty(this.originalModel, prop); + common_vendor.setProperty(this.model, prop, value); + }); + }, + // 清空校验结果 + clearValidate(props2) { + props2 = [].concat(props2); + this.children.map((child) => { + if (props2[0] === void 0 || props2.includes(child.prop)) { + child.message = null; + } + }); + }, + // 对部分表单字段进行校验 + async validateField(value, callback, event = null, options) { + this.$nextTick(() => { + const errorsRes = []; + value = [].concat(value); + let promises = this.children.map((child) => { + return new Promise((resolve, reject) => { + const childErrors = []; + if (value.includes(child.prop)) { + const propertyVal = common_vendor.getProperty( + this.model, + child.prop + ); + const propertyChain = child.prop.split("."); + const propertyName = propertyChain[propertyChain.length - 1]; + let rule = []; + if (child.itemRules && child.itemRules.length > 0) { + rule = child.itemRules; + } else { + rule = this.formRules[child.prop]; + } + if (!rule) { + resolve(); + return; + } + const rules = [].concat(rule); + if (!rules.length) { + resolve(); + } + for (let i = 0; i < rules.length; i++) { + const ruleItem = rules[i]; + const trigger = [].concat(ruleItem == null ? void 0 : ruleItem.trigger); + if (event && !trigger.includes(event)) { + resolve(); + continue; + } + const validator = new common_vendor.Schema({ + [propertyName]: ruleItem + }); + validator.validate( + { + [propertyName]: propertyVal + }, + (errors, fields) => { + var _a; + if (common_vendor.test.array(errors)) { + errors.forEach((element) => { + element.prop = child.prop; + }); + errorsRes.push(...errors); + childErrors.push(...errors); + } + if (!options || (options == null ? void 0 : options.showErrorMsg) == true) { + child.message = ((_a = childErrors[0]) == null ? void 0 : _a.message) ? childErrors[0].message : null; + } + if (i == rules.length - 1) { + resolve(errorsRes); + } + } + ); + } + } else { + resolve({}); + } + }); + }); + Promise.all(promises).then((results) => { + typeof callback === "function" && callback(errorsRes); + }).catch((error2) => { + common_vendor.index.__f__("error", "at node_modules/uview-plus/components/u-form/u-form.vue:218", "An error occurred:", error2); + }); + }); + }, + /** + * 校验全部数据 + * @param {Object} options + * @param {Boolean} options.showErrorMsg -是否显示校验信息, + */ + validate(options) { + if (Object.keys(this.formRules).length === 0) { + common_vendor.error("未设置rules,请看文档说明!如果已经设置,请刷新页面。"); + return; + } + return new Promise((resolve, reject) => { + this.$nextTick(() => { + const formItemProps = this.children.map( + (item) => item.prop + ); + this.validateField(formItemProps, (errors) => { + if (errors.length) { + this.errorType === "toast" && common_vendor.toast(errors[0].message); + reject(errors); + } else { + resolve(true); + } + }, null, options); + }); + }); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return {}; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-form/u-form.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.wxml new file mode 100644 index 0000000..292cef5 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-form/u-form.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-gap/u-gap.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-gap/u-gap.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-gap/u-gap.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-gap/u-gap.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-gap/u-gap.wxml new file mode 100644 index 0000000..09bd242 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-gap/u-gap.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-gap/u-gap.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-gap/u-gap.wxss new file mode 100644 index 0000000..fbb50bd --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-gap/u-gap.wxss @@ -0,0 +1,49 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-a491fc03, +.u-empty__wrap.data-v-a491fc03, +.u-tabs.data-v-a491fc03, +.u-tabs__wrapper.data-v-a491fc03, +.u-tabs__wrapper__scroll-view-wrapper.data-v-a491fc03, +.u-tabs__wrapper__scroll-view.data-v-a491fc03, +.u-tabs__wrapper__nav.data-v-a491fc03, +.u-tabs__wrapper__nav__line.data-v-a491fc03, +.up-empty.data-v-a491fc03, +.up-empty__wrap.data-v-a491fc03, +.up-tabs.data-v-a491fc03, +.up-tabs__wrapper.data-v-a491fc03, +.up-tabs__wrapper__scroll-view-wrapper.data-v-a491fc03, +.up-tabs__wrapper__scroll-view.data-v-a491fc03, +.up-tabs__wrapper__nav.data-v-a491fc03, +.up-tabs__wrapper__nav__line.data-v-a491fc03 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.js new file mode 100644 index 0000000..418847c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.js @@ -0,0 +1,96 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-icon", + beforeCreate() { + }, + data() { + return {}; + }, + emits: ["click"], + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$1], + computed: { + uClasses() { + let classes = []; + classes.push(this.customPrefix + "-" + this.name); + if (this.customPrefix == "uicon") { + classes.push("u-iconfont"); + } else { + classes.push(this.customPrefix); + } + if (this.color && common_vendor.config.type.includes(this.color)) + classes.push("u-icon__icon--" + this.color); + return classes; + }, + iconStyle() { + let style = {}; + style = { + fontSize: common_vendor.addUnit(this.size), + lineHeight: common_vendor.addUnit(this.size), + fontWeight: this.bold ? "bold" : "normal", + // 某些特殊情况需要设置一个到顶部的距离,才能更好的垂直居中 + top: common_vendor.addUnit(this.top) + }; + if (this.color && !common_vendor.config.type.includes(this.color)) + style.color = this.color; + return style; + }, + // 判断传入的name属性,是否图片路径,只要带有"/"均认为是图片形式 + isImg() { + return this.name.indexOf("/") !== -1; + }, + imgStyle() { + let style = {}; + style.width = this.width ? common_vendor.addUnit(this.width) : common_vendor.addUnit(this.size); + style.height = this.height ? common_vendor.addUnit(this.height) : common_vendor.addUnit(this.size); + return style; + }, + // 通过图标名,查找对应的图标 + icon() { + if (this.customPrefix !== "uicon") { + return this.customIcons[this.customPrefix + "-" + this.name] || this.name; + } + return common_vendor.icons["uicon-" + this.name] || this.name; + } + }, + methods: { + addStyle: common_vendor.addStyle, + addUnit: common_vendor.addUnit, + clickHandler(e) { + this.$emit("click", this.index, e); + this.stop && this.preventEvent(e); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: $options.isImg + }, $options.isImg ? { + b: _ctx.name, + c: _ctx.imgMode, + d: common_vendor.s($options.imgStyle), + e: common_vendor.s($options.addStyle(_ctx.customStyle)) + } : { + f: common_vendor.t($options.icon), + g: common_vendor.n($options.uClasses), + h: common_vendor.s($options.iconStyle), + i: common_vendor.s($options.addStyle(_ctx.customStyle)), + j: _ctx.hoverClass + }, { + k: _ctx.label !== "" + }, _ctx.label !== "" ? { + l: common_vendor.t(_ctx.label), + m: _ctx.labelColor, + n: $options.addUnit(_ctx.labelSize), + o: _ctx.labelPos == "right" ? $options.addUnit(_ctx.space) : 0, + p: _ctx.labelPos == "bottom" ? $options.addUnit(_ctx.space) : 0, + q: _ctx.labelPos == "left" ? $options.addUnit(_ctx.space) : 0, + r: _ctx.labelPos == "top" ? $options.addUnit(_ctx.space) : 0 + } : {}, { + s: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)), + t: common_vendor.n("u-icon--" + _ctx.labelPos) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-1c933a9a"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.wxml new file mode 100644 index 0000000..a71e0c2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.wxml @@ -0,0 +1 @@ +{{f}}{{l}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.wxss new file mode 100644 index 0000000..60b5831 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-icon/u-icon.wxss @@ -0,0 +1,102 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-1c933a9a, +.u-empty__wrap.data-v-1c933a9a, +.u-tabs.data-v-1c933a9a, +.u-tabs__wrapper.data-v-1c933a9a, +.u-tabs__wrapper__scroll-view-wrapper.data-v-1c933a9a, +.u-tabs__wrapper__scroll-view.data-v-1c933a9a, +.u-tabs__wrapper__nav.data-v-1c933a9a, +.u-tabs__wrapper__nav__line.data-v-1c933a9a, +.up-empty.data-v-1c933a9a, +.up-empty__wrap.data-v-1c933a9a, +.up-tabs.data-v-1c933a9a, +.up-tabs__wrapper.data-v-1c933a9a, +.up-tabs__wrapper__scroll-view-wrapper.data-v-1c933a9a, +.up-tabs__wrapper__scroll-view.data-v-1c933a9a, +.up-tabs__wrapper__nav.data-v-1c933a9a, +.up-tabs__wrapper__nav__line.data-v-1c933a9a { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +@font-face { + font-family: "uicon-iconfont"; + src: url("https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf") format("truetype"); +} +.u-icon.data-v-1c933a9a { + display: flex; + align-items: center; +} +.u-icon--left.data-v-1c933a9a { + flex-direction: row-reverse; + align-items: center; +} +.u-icon--right.data-v-1c933a9a { + flex-direction: row; + align-items: center; +} +.u-icon--top.data-v-1c933a9a { + flex-direction: column-reverse; + justify-content: center; +} +.u-icon--bottom.data-v-1c933a9a { + flex-direction: column; + justify-content: center; +} +.u-icon__icon.data-v-1c933a9a { + font-family: uicon-iconfont; + position: relative; + display: flex; + flex-direction: row; + align-items: center; +} +.u-icon__icon--primary.data-v-1c933a9a { + color: #3c9cff; +} +.u-icon__icon--success.data-v-1c933a9a { + color: #5ac725; +} +.u-icon__icon--error.data-v-1c933a9a { + color: #f56c6c; +} +.u-icon__icon--warning.data-v-1c933a9a { + color: #f9ae3d; +} +.u-icon__icon--info.data-v-1c933a9a { + color: #909399; +} +.u-icon__img.data-v-1c933a9a { + height: auto; + will-change: transform; +} +.u-icon__label.data-v-1c933a9a { + line-height: 1; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.js new file mode 100644 index 0000000..d0e8856 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.js @@ -0,0 +1,152 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-image", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props], + data() { + return { + // 图片是否加载错误,如果是,则显示错误占位图 + isError: false, + // 初始化组件时,默认为加载中状态 + loading: true, + // 不透明度,为了实现淡入淡出的效果 + opacity: 1, + // 过渡时间,因为props的值无法修改,故需要一个中间值 + durationTime: this.duration, + // 图片加载完成时,去掉背景颜色,因为如果是png图片,就会显示灰色的背景 + backgroundStyle: {}, + // 用于fade模式的控制组件显示与否 + show: false + }; + }, + watch: { + src: { + immediate: true, + handler(n) { + if (!n) { + this.isError = true; + } else { + this.isError = false; + this.loading = true; + } + } + } + }, + computed: { + transStyle() { + let style = {}; + if (this.loading || this.isError || this.width == "100%" || this.mode != "heightFix") { + style.width = this.width; + } else { + style.width = "fit-content"; + } + if (this.loading || this.isError || this.height == "100%" || this.mode != "widthFix") { + style.height = this.height; + } else { + style.height = "fit-content"; + } + return style; + }, + wrapStyle() { + let style = {}; + if (this.loading || this.isError || this.width == "100%" || this.mode != "heightFix") { + style.width = this.width; + } else { + style.width = "fit-content"; + } + if (this.loading || this.isError || this.height == "100%" || this.mode != "widthFix") { + style.height = this.height; + } else { + style.height = "fit-content"; + } + style.borderRadius = this.shape == "circle" ? "10000px" : common_vendor.addUnit(this.radius); + style.overflow = this.radius > 0 ? "hidden" : "visible"; + return common_vendor.deepMerge(style, common_vendor.addStyle(this.customStyle)); + } + }, + mounted() { + this.show = true; + }, + emits: ["click", "error", "load"], + methods: { + addUnit: common_vendor.addUnit, + // 点击图片 + onClick(e) { + this.$emit("click", e); + }, + // 图片加载失败 + onErrorHandler(err) { + this.loading = false; + this.isError = true; + this.$emit("error", err); + }, + // 图片加载完成,标记loading结束 + onLoadHandler(event) { + this.loading = false; + this.isError = false; + this.$emit("load", event); + this.removeBgColor(); + }, + // 移除图片的背景色 + removeBgColor() { + this.backgroundStyle = { + backgroundColor: this.bgColor || "#ffffff" + }; + } + } +}; +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_u_transition2 = common_vendor.resolveComponent("u-transition"); + (_easycom_u_icon2 + _easycom_u_transition2)(); +} +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +const _easycom_u_transition = () => "../u-transition/u-transition.js"; +if (!Math) { + (_easycom_u_icon + _easycom_u_transition)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: !$data.isError + }, !$data.isError ? { + b: _ctx.src, + c: _ctx.mode, + d: common_vendor.o((...args) => $options.onErrorHandler && $options.onErrorHandler(...args)), + e: common_vendor.o((...args) => $options.onLoadHandler && $options.onLoadHandler(...args)), + f: _ctx.showMenuByLongpress, + g: _ctx.lazyLoad, + h: $options.addUnit(_ctx.width), + i: $options.addUnit(_ctx.height), + j: _ctx.shape == "circle" ? "10000px" : $options.addUnit(_ctx.radius) + } : {}, { + k: _ctx.showLoading && $data.loading + }, _ctx.showLoading && $data.loading ? { + l: common_vendor.p({ + name: _ctx.loadingIcon + }), + m: _ctx.shape == "circle" ? "50%" : $options.addUnit(_ctx.radius), + n: this.bgColor, + o: $options.addUnit(_ctx.width), + p: $options.addUnit(_ctx.height) + } : {}, { + q: _ctx.showError && $data.isError && !$data.loading + }, _ctx.showError && $data.isError && !$data.loading ? { + r: common_vendor.p({ + name: _ctx.errorIcon + }), + s: _ctx.shape == "circle" ? "50%" : $options.addUnit(_ctx.radius) + } : {}, { + t: common_vendor.o((...args) => $options.onClick && $options.onClick(...args)), + v: common_vendor.s($options.wrapStyle), + w: common_vendor.s($data.backgroundStyle), + x: common_vendor.s($options.transStyle), + y: common_vendor.p({ + mode: "fade", + show: $data.show, + duration: _ctx.fade ? 1e3 : 0 + }) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-9d58ba7c"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-image/u-image.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.json new file mode 100644 index 0000000..8a7924b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../u-icon/u-icon", + "u-transition": "../u-transition/u-transition" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.wxml new file mode 100644 index 0000000..bc786e0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.wxss new file mode 100644 index 0000000..0329c04 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-image/u-image.wxss @@ -0,0 +1,71 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-9d58ba7c, +.u-empty__wrap.data-v-9d58ba7c, +.u-tabs.data-v-9d58ba7c, +.u-tabs__wrapper.data-v-9d58ba7c, +.u-tabs__wrapper__scroll-view-wrapper.data-v-9d58ba7c, +.u-tabs__wrapper__scroll-view.data-v-9d58ba7c, +.u-tabs__wrapper__nav.data-v-9d58ba7c, +.u-tabs__wrapper__nav__line.data-v-9d58ba7c, +.up-empty.data-v-9d58ba7c, +.up-empty__wrap.data-v-9d58ba7c, +.up-tabs.data-v-9d58ba7c, +.up-tabs__wrapper.data-v-9d58ba7c, +.up-tabs__wrapper__scroll-view-wrapper.data-v-9d58ba7c, +.up-tabs__wrapper__scroll-view.data-v-9d58ba7c, +.up-tabs__wrapper__nav.data-v-9d58ba7c, +.up-tabs__wrapper__nav__line.data-v-9d58ba7c { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-image.data-v-9d58ba7c { + position: relative; + transition: opacity 0.5s ease-in-out; +} +.u-image__image.data-v-9d58ba7c { + width: 100%; + height: 100%; +} +.u-image__loading.data-v-9d58ba7c, .u-image__error.data-v-9d58ba7c { + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + background-color: #f3f4f6; + color: #909193; + font-size: 46rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.js new file mode 100644 index 0000000..881b97f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.js @@ -0,0 +1,242 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-input", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$3], + data() { + return { + // 清除操作 + clearInput: false, + // 输入框的值 + innerValue: "", + // 是否处于获得焦点状态 + focused: false, + // value是否第一次变化,在watch中,由于加入immediate属性,会在第一次触发,此时不应该认为value发生了变化 + firstChange: true, + // value绑定值的变化是由内部还是外部引起的 + changeFromInner: false, + // 过滤处理方法 + innerFormatter: (value) => value + }; + }, + created() { + if (this.formatter) { + this.innerFormatter = this.formatter; + } + }, + watch: { + modelValue: { + immediate: true, + handler(newVal, oldVal) { + if (this.changeFromInner || this.innerValue === newVal) { + this.changeFromInner = false; + return; + } + this.innerValue = newVal; + if (this.firstChange === false && this.changeFromInner === false) { + this.valueChange(this.innerValue, true); + } else { + if (!this.firstChange) + common_vendor.formValidate(this, "change"); + } + this.firstChange = false; + this.changeFromInner = false; + } + } + }, + computed: { + // 是否显示清除控件 + isShowClear() { + const { clearable, readonly, focused, innerValue } = this; + return !!clearable && !readonly && !!focused && innerValue !== ""; + }, + // 组件的类名 + inputClass() { + let classes = [], { border, disabled, shape } = this; + border === "surround" && (classes = classes.concat(["u-border", "u-input--radius"])); + classes.push(`u-input--${shape}`); + border === "bottom" && (classes = classes.concat([ + "u-border-bottom", + "u-input--no-radius" + ])); + return classes.join(" "); + }, + // 组件的样式 + wrapperStyle() { + const style = {}; + if (this.disabled) { + style.backgroundColor = this.disabledColor; + } + if (this.border === "none") { + style.padding = "0"; + } else { + style.paddingTop = "6px"; + style.paddingBottom = "6px"; + style.paddingLeft = "9px"; + style.paddingRight = "9px"; + } + return common_vendor.deepMerge(style, common_vendor.addStyle(this.customStyle)); + }, + // 输入框的样式 + inputStyle() { + const style = { + color: this.color, + fontSize: common_vendor.addUnit(this.fontSize), + textAlign: this.inputAlign + }; + return style; + } + }, + emits: ["update:modelValue", "focus", "blur", "change", "confirm", "clear", "keyboardheightchange", "nicknamereview"], + methods: { + // 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用 + setFormatter(e) { + this.innerFormatter = e; + }, + // 当键盘输入时,触发input事件 + onInput(e) { + let { value = "" } = e.detail || {}; + this.innerValue = value; + this.$nextTick(() => { + let formatValue = this.innerFormatter(value); + this.innerValue = formatValue; + this.valueChange(formatValue); + }); + }, + // 输入框失去焦点时触发 + onBlur(event) { + this.$emit("blur", event.detail.value); + common_vendor.sleep(150).then(() => { + this.focused = false; + }); + common_vendor.formValidate(this, "blur"); + }, + // 输入框聚焦时触发 + onFocus(event) { + this.focused = true; + this.$emit("focus"); + }, + doFocus() { + this.$refs["input-native"].focus(); + }, + doBlur() { + this.$refs["input-native"].blur(); + }, + // 点击完成按钮时触发 + onConfirm(event) { + this.$emit("confirm", this.innerValue); + }, + // 键盘高度发生变化的时候触发此事件 + // 兼容性:微信小程序2.7.0+、App 3.1.0+ + onkeyboardheightchange(event) { + this.$emit("keyboardheightchange", event); + }, + onnicknamereview(event) { + this.$emit("nicknamereview", event); + }, + // 内容发生变化,进行处理 + valueChange(value, isOut = false) { + if (this.clearInput) { + this.innerValue = ""; + this.clearInput = false; + } + this.$nextTick(() => { + if (!isOut || this.clearInput) { + this.changeFromInner = true; + this.$emit("change", value); + this.$emit("update:modelValue", value); + } + common_vendor.formValidate(this, "change"); + }); + }, + // 点击清除控件 + onClear() { + this.clearInput = true; + this.innerValue = ""; + this.$nextTick(() => { + this.valueChange(""); + this.$emit("clear"); + }); + }, + /** + * 在安卓nvue上,事件无法冒泡 + * 在某些时间,我们希望监听u-from-item的点击事件,此时会导致点击u-form-item内的u-input后 + * 无法触发u-form-item的点击事件,这里通过手动调用u-form-item的方法进行触发 + */ + clickHandler() { + if (this.disabled || this.readonly) { + common_vendor.index.hideKeyboard(); + } + } + } +}; +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + _easycom_u_icon2(); +} +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +if (!Math) { + _easycom_u_icon(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.prefixIcon || _ctx.$slots.prefix + }, _ctx.prefixIcon || _ctx.$slots.prefix ? { + b: common_vendor.p({ + name: _ctx.prefixIcon, + size: "18", + customStyle: _ctx.prefixIconStyle + }) + } : {}, { + c: common_vendor.s($options.inputStyle), + d: _ctx.type, + e: _ctx.focus, + f: _ctx.cursor, + g: $data.innerValue, + h: _ctx.autoBlur, + i: _ctx.disabled || _ctx.readonly, + j: _ctx.maxlength, + k: _ctx.placeholder, + l: _ctx.placeholderStyle, + m: _ctx.placeholderClass, + n: _ctx.confirmType, + o: _ctx.confirmHold, + p: _ctx.holdKeyboard, + q: _ctx.cursorSpacing, + r: _ctx.adjustPosition, + s: _ctx.selectionEnd, + t: _ctx.selectionStart, + v: _ctx.password || _ctx.type === "password" || false, + w: _ctx.ignoreCompositionEvent, + x: common_vendor.o((...args) => $options.onInput && $options.onInput(...args)), + y: common_vendor.o((...args) => $options.onBlur && $options.onBlur(...args)), + z: common_vendor.o((...args) => $options.onFocus && $options.onFocus(...args)), + A: common_vendor.o((...args) => $options.onConfirm && $options.onConfirm(...args)), + B: common_vendor.o((...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args)), + C: common_vendor.o((...args) => $options.onnicknamereview && $options.onnicknamereview(...args)), + D: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)), + E: $options.isShowClear + }, $options.isShowClear ? { + F: common_vendor.p({ + name: "close", + size: "11", + color: "#ffffff", + customStyle: "line-height: 12px" + }), + G: common_vendor.o((...args) => $options.onClear && $options.onClear(...args)) + } : {}, { + H: _ctx.suffixIcon || _ctx.$slots.suffix + }, _ctx.suffixIcon || _ctx.$slots.suffix ? { + I: common_vendor.p({ + name: _ctx.suffixIcon, + size: "18", + customStyle: _ctx.suffixIconStyle + }) + } : {}, { + J: common_vendor.n($options.inputClass), + K: common_vendor.s($options.wrapperStyle) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-5904192e"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-input/u-input.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.json new file mode 100644 index 0000000..fcde44c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../u-icon/u-icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.wxml new file mode 100644 index 0000000..62cca7e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.wxss new file mode 100644 index 0000000..599c4a5 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.wxss @@ -0,0 +1,105 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-5904192e, +.u-empty__wrap.data-v-5904192e, +.u-tabs.data-v-5904192e, +.u-tabs__wrapper.data-v-5904192e, +.u-tabs__wrapper__scroll-view-wrapper.data-v-5904192e, +.u-tabs__wrapper__scroll-view.data-v-5904192e, +.u-tabs__wrapper__nav.data-v-5904192e, +.u-tabs__wrapper__nav__line.data-v-5904192e, +.up-empty.data-v-5904192e, +.up-empty__wrap.data-v-5904192e, +.up-tabs.data-v-5904192e, +.up-tabs__wrapper.data-v-5904192e, +.up-tabs__wrapper__scroll-view-wrapper.data-v-5904192e, +.up-tabs__wrapper__scroll-view.data-v-5904192e, +.up-tabs__wrapper__nav.data-v-5904192e, +.up-tabs__wrapper__nav__line.data-v-5904192e { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-input.data-v-5904192e { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + flex: 1; +} +.u-input--radius.data-v-5904192e, .u-input--square.data-v-5904192e { + border-radius: 4px; +} +.u-input--no-radius.data-v-5904192e { + border-radius: 0; +} +.u-input--circle.data-v-5904192e { + border-radius: 100px; +} +.u-input__content.data-v-5904192e { + flex: 1; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; +} +.u-input__content__field-wrapper.data-v-5904192e { + position: relative; + display: flex; + flex-direction: row; + margin: 0; + flex: 1; +} +.u-input__content__field-wrapper__field.data-v-5904192e { + line-height: 26px; + text-align: left; + color: #303133; + height: 24px; + font-size: 15px; + flex: 1; +} +.u-input__content__clear.data-v-5904192e { + width: 20px; + height: 20px; + border-radius: 100px; + background-color: #c6c7cb; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transform: scale(0.82); + margin-left: 4px; +} +.u-input__content__subfix-icon.data-v-5904192e { + margin-left: 4px; +} +.u-input__content__prefix-icon.data-v-5904192e { + margin-right: 4px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-line/u-line.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-line/u-line.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-line/u-line.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-line/u-line.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-line/u-line.wxml new file mode 100644 index 0000000..5ed941a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-line/u-line.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-line/u-line.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-line/u-line.wxss new file mode 100644 index 0000000..aff8bf4 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-line/u-line.wxss @@ -0,0 +1,52 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-bbd9963c, +.u-empty__wrap.data-v-bbd9963c, +.u-tabs.data-v-bbd9963c, +.u-tabs__wrapper.data-v-bbd9963c, +.u-tabs__wrapper__scroll-view-wrapper.data-v-bbd9963c, +.u-tabs__wrapper__scroll-view.data-v-bbd9963c, +.u-tabs__wrapper__nav.data-v-bbd9963c, +.u-tabs__wrapper__nav__line.data-v-bbd9963c, +.up-empty.data-v-bbd9963c, +.up-empty__wrap.data-v-bbd9963c, +.up-tabs.data-v-bbd9963c, +.up-tabs__wrapper.data-v-bbd9963c, +.up-tabs__wrapper__scroll-view-wrapper.data-v-bbd9963c, +.up-tabs__wrapper__scroll-view.data-v-bbd9963c, +.up-tabs__wrapper__nav.data-v-bbd9963c, +.up-tabs__wrapper__nav__line.data-v-bbd9963c { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-line.data-v-bbd9963c { + vertical-align: middle; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.js new file mode 100644 index 0000000..8e91460 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.js @@ -0,0 +1,45 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-link", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$37], + computed: { + linkStyle() { + const style = { + color: this.color, + fontSize: common_vendor.addUnit(this.fontSize), + // line-height设置为比字体大小多2px + lineHeight: common_vendor.addUnit(common_vendor.getPx(this.fontSize) + 2), + textDecoration: this.underLine ? "underline" : "none" + }; + return style; + } + }, + emits: ["click"], + methods: { + addStyle: common_vendor.addStyle, + openLink() { + common_vendor.index.setClipboardData({ + data: this.href, + success: () => { + common_vendor.index.hideToast(); + this.$nextTick(() => { + common_vendor.toast(this.mpTips); + }); + } + }); + this.$emit("click"); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.t(_ctx.text), + b: common_vendor.o((...args) => $options.openLink && $options.openLink(...args)), + c: common_vendor.s($options.linkStyle), + d: common_vendor.s($options.addStyle(_ctx.customStyle)) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-dedad317"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-link/u-link.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.wxml new file mode 100644 index 0000000..4e9da26 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.wxml @@ -0,0 +1 @@ +{{a}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.wxss new file mode 100644 index 0000000..d0fad82 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-link/u-link.wxss @@ -0,0 +1,56 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-dedad317, +.u-empty__wrap.data-v-dedad317, +.u-tabs.data-v-dedad317, +.u-tabs__wrapper.data-v-dedad317, +.u-tabs__wrapper__scroll-view-wrapper.data-v-dedad317, +.u-tabs__wrapper__scroll-view.data-v-dedad317, +.u-tabs__wrapper__nav.data-v-dedad317, +.u-tabs__wrapper__nav__line.data-v-dedad317, +.up-empty.data-v-dedad317, +.up-empty__wrap.data-v-dedad317, +.up-tabs.data-v-dedad317, +.up-tabs__wrapper.data-v-dedad317, +.up-tabs__wrapper__scroll-view-wrapper.data-v-dedad317, +.up-tabs__wrapper__scroll-view.data-v-dedad317, +.up-tabs__wrapper__nav.data-v-dedad317, +.up-tabs__wrapper__nav__line.data-v-dedad317 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-link.data-v-dedad317 { + line-height: 1; + display: flex; + flex-direction: row; + flex-wrap: wrap; + flex: 1; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.js new file mode 100644 index 0000000..2571455 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.js @@ -0,0 +1,75 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-list-item", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$23], + data() { + return { + // 节点信息 + rect: {}, + index: 0, + show: true, + sys: common_vendor.getWindowInfo() + }; + }, + computed: {}, + inject: ["uList"], + watch: { + "uList.innerScrollTop"(n) { + const preLoadScreen = this.uList.preLoadScreen; + const windowHeight = this.sys.windowHeight; + if (n <= windowHeight * preLoadScreen) { + this.parent.updateOffsetFromChild(0); + } else if (this.rect.top <= n - windowHeight * preLoadScreen) { + this.parent.updateOffsetFromChild(this.rect.top); + } + } + }, + created() { + this.parent = {}; + }, + mounted() { + this.init(); + }, + methods: { + init() { + this.updateParentData(); + this.index = this.parent.children.indexOf(this); + this.resize(); + }, + updateParentData() { + this.getParentData("u-list"); + }, + resize() { + this.queryRect(`u-list-item-${this.anchor}`).then((size) => { + const lastChild = this.parent.children[this.index - 1]; + this.rect = size; + const preLoadScreen = this.uList.preLoadScreen; + const windowHeight = this.sys.windowHeight; + if (lastChild) { + this.rect.top = lastChild.rect.top + lastChild.rect.height; + } + if (size.top >= this.uList.innerScrollTop + (1 + preLoadScreen) * windowHeight) + this.show = false; + }); + }, + // 查询元素尺寸 + queryRect(el) { + return new Promise((resolve) => { + this.$uGetRect(`.${el}`).then((size) => { + resolve(size); + }); + }); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: `u-list-item-${_ctx.anchor}`, + b: `u-list-item-${_ctx.anchor}`, + c: common_vendor.n(`u-list-item-${_ctx.anchor}`) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-32197ac9"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.wxml new file mode 100644 index 0000000..df7b2e8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.wxss new file mode 100644 index 0000000..0a63ccc --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list-item/u-list-item.wxss @@ -0,0 +1,49 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-32197ac9, +.u-empty__wrap.data-v-32197ac9, +.u-tabs.data-v-32197ac9, +.u-tabs__wrapper.data-v-32197ac9, +.u-tabs__wrapper__scroll-view-wrapper.data-v-32197ac9, +.u-tabs__wrapper__scroll-view.data-v-32197ac9, +.u-tabs__wrapper__nav.data-v-32197ac9, +.u-tabs__wrapper__nav__line.data-v-32197ac9, +.up-empty.data-v-32197ac9, +.up-empty__wrap.data-v-32197ac9, +.up-tabs.data-v-32197ac9, +.up-tabs__wrapper.data-v-32197ac9, +.up-tabs__wrapper__scroll-view-wrapper.data-v-32197ac9, +.up-tabs__wrapper__scroll-view.data-v-32197ac9, +.up-tabs__wrapper__nav.data-v-32197ac9, +.up-tabs__wrapper__nav__line.data-v-32197ac9 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.js new file mode 100644 index 0000000..7d86073 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.js @@ -0,0 +1,119 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-list", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$24], + watch: { + scrollIntoView(n) { + this.scrollIntoViewById(n); + } + }, + data() { + return { + // 记录内部滚动的距离 + innerScrollTop: 0, + // vue下,scroll-view在上拉加载时的偏移值 + offset: 0, + sys: common_vendor.getWindowInfo() + }; + }, + computed: { + listStyle() { + const style = {}; + if (this.width != 0) + style.width = common_vendor.addUnit(this.width); + if (this.height != 0) + style.height = common_vendor.addUnit(this.height); + if (!style.height) + style.height = common_vendor.addUnit(this.sys.windowHeight, "px"); + return common_vendor.deepMerge(style, common_vendor.addStyle(this.customStyle)); + } + }, + provide() { + return { + uList: this + }; + }, + created() { + this.refs = []; + this.children = []; + this.anchors = []; + }, + mounted() { + }, + emits: [ + "scroll", + "scrolltolower", + "scrolltoupper", + "refresherpulling", + "refresherrefresh", + "refresherrestore", + "refresherabort" + ], + methods: { + updateOffsetFromChild(top) { + this.offset = top; + }, + onScroll(e) { + let scrollTop = 0; + scrollTop = e.detail.scrollTop; + this.innerScrollTop = scrollTop; + this.$emit("scroll", scrollTop); + }, + scrollIntoViewById(id) { + }, + // 滚动到底部触发事件 + scrolltolower(e) { + common_vendor.sleep(30).then(() => { + this.$emit("scrolltolower"); + }); + }, + // 滚动到底部时触发,非nvue有效 + scrolltoupper(e) { + common_vendor.sleep(30).then(() => { + this.$emit("scrolltoupper"); + this.offset = 0; + }); + }, + refresherpulling(e) { + this.$emit("refresherpulling", e); + }, + refresherrefresh(e) { + this.$emit("refresherrefresh", e); + }, + refresherrestore(e) { + this.$emit("refresherrestore", e); + }, + refresherabort(e) { + this.$emit("refresherabort", e); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: _ctx.scrollIntoView, + b: common_vendor.s($options.listStyle), + c: _ctx.scrollable, + d: Number(_ctx.scrollTop), + e: Number(_ctx.lowerThreshold), + f: Number(_ctx.upperThreshold), + g: _ctx.showScrollbar, + h: _ctx.enableBackToTop, + i: _ctx.scrollWithAnimation, + j: common_vendor.o((...args) => $options.onScroll && $options.onScroll(...args)), + k: common_vendor.o((...args) => $options.scrolltolower && $options.scrolltolower(...args)), + l: common_vendor.o((...args) => $options.scrolltoupper && $options.scrolltoupper(...args)), + m: _ctx.refresherEnabled, + n: _ctx.refresherThreshold, + o: _ctx.refresherDefaultStyle, + p: _ctx.refresherBackground, + q: _ctx.refresherTriggered, + r: common_vendor.o((...args) => $options.refresherpulling && $options.refresherpulling(...args)), + s: common_vendor.o((...args) => $options.refresherrefresh && $options.refresherrefresh(...args)), + t: common_vendor.o((...args) => $options.refresherrestore && $options.refresherrestore(...args)), + v: common_vendor.o((...args) => $options.refresherabort && $options.refresherabort(...args)) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-9ad03670"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-list/u-list.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.wxml new file mode 100644 index 0000000..ef76665 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.wxss new file mode 100644 index 0000000..9847e3a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-list/u-list.wxss @@ -0,0 +1,53 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-9ad03670, +.u-empty__wrap.data-v-9ad03670, +.u-tabs.data-v-9ad03670, +.u-tabs__wrapper.data-v-9ad03670, +.u-tabs__wrapper__scroll-view-wrapper.data-v-9ad03670, +.u-tabs__wrapper__scroll-view.data-v-9ad03670, +.u-tabs__wrapper__nav.data-v-9ad03670, +.u-tabs__wrapper__nav__line.data-v-9ad03670, +.up-empty.data-v-9ad03670, +.up-empty__wrap.data-v-9ad03670, +.up-tabs.data-v-9ad03670, +.up-tabs__wrapper.data-v-9ad03670, +.up-tabs__wrapper__scroll-view-wrapper.data-v-9ad03670, +.up-tabs__wrapper__scroll-view.data-v-9ad03670, +.up-tabs__wrapper__nav.data-v-9ad03670, +.up-tabs__wrapper__nav__line.data-v-9ad03670 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-list.data-v-9ad03670 { + display: flex; + flex-direction: column; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-loading-icon/u-loading-icon.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-loading-icon/u-loading-icon.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-loading-icon/u-loading-icon.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-loading-icon/u-loading-icon.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-loading-icon/u-loading-icon.wxml new file mode 100644 index 0000000..de31f3d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-loading-icon/u-loading-icon.wxml @@ -0,0 +1 @@ +{{p}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-loading-icon/u-loading-icon.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-loading-icon/u-loading-icon.wxss new file mode 100644 index 0000000..beb1a6d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-loading-icon/u-loading-icon.wxss @@ -0,0 +1,181 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-00752c6d, +.u-empty__wrap.data-v-00752c6d, +.u-tabs.data-v-00752c6d, +.u-tabs__wrapper.data-v-00752c6d, +.u-tabs__wrapper__scroll-view-wrapper.data-v-00752c6d, +.u-tabs__wrapper__scroll-view.data-v-00752c6d, +.u-tabs__wrapper__nav.data-v-00752c6d, +.u-tabs__wrapper__nav__line.data-v-00752c6d, +.up-empty.data-v-00752c6d, +.up-empty__wrap.data-v-00752c6d, +.up-tabs.data-v-00752c6d, +.up-tabs__wrapper.data-v-00752c6d, +.up-tabs__wrapper__scroll-view-wrapper.data-v-00752c6d, +.up-tabs__wrapper__scroll-view.data-v-00752c6d, +.up-tabs__wrapper__nav.data-v-00752c6d, +.up-tabs__wrapper__nav__line.data-v-00752c6d { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-loading-icon.data-v-00752c6d { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + color: #c8c9cc; +} +.u-loading-icon__text.data-v-00752c6d { + margin-left: 4px; + color: #606266; + font-size: 14px; + line-height: 20px; +} +.u-loading-icon__spinner.data-v-00752c6d { + width: 30px; + height: 30px; + position: relative; + box-sizing: border-box; + max-width: 100%; + max-height: 100%; + animation: u-rotate-00752c6d 1s linear infinite; +} +.u-loading-icon__spinner--semicircle.data-v-00752c6d { + border-width: 2px; + border-color: transparent; + border-top-right-radius: 100px; + border-top-left-radius: 100px; + border-bottom-left-radius: 100px; + border-bottom-right-radius: 100px; + border-style: solid; +} +.u-loading-icon__spinner--circle.data-v-00752c6d { + border-top-right-radius: 100px; + border-top-left-radius: 100px; + border-bottom-left-radius: 100px; + border-bottom-right-radius: 100px; + border-width: 2px; + border-top-color: #e5e5e5; + border-right-color: #e5e5e5; + border-bottom-color: #e5e5e5; + border-left-color: #e5e5e5; + border-style: solid; +} +.u-loading-icon--vertical.data-v-00752c6d { + flex-direction: column; +} +.data-v-00752c6d:host { + font-size: 0px; + line-height: 1; +} +.u-loading-icon__spinner--spinner.data-v-00752c6d { + animation-timing-function: steps(12); +} +.u-loading-icon__text.data-v-00752c6d:empty { + display: none; +} +.u-loading-icon--vertical .u-loading-icon__text.data-v-00752c6d { + margin: 6px 0 0; + color: #606266; +} +.u-loading-icon__dot.data-v-00752c6d { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.u-loading-icon__dot.data-v-00752c6d:before { + display: block; + width: 2px; + height: 25%; + margin: 0 auto; + background-color: currentColor; + border-radius: 40%; + content: " "; +} +.u-loading-icon__dot.data-v-00752c6d:nth-of-type(1) { + transform: rotate(30deg); + opacity: 1; +} +.u-loading-icon__dot.data-v-00752c6d:nth-of-type(2) { + transform: rotate(60deg); + opacity: 0.9375; +} +.u-loading-icon__dot.data-v-00752c6d:nth-of-type(3) { + transform: rotate(90deg); + opacity: 0.875; +} +.u-loading-icon__dot.data-v-00752c6d:nth-of-type(4) { + transform: rotate(120deg); + opacity: 0.8125; +} +.u-loading-icon__dot.data-v-00752c6d:nth-of-type(5) { + transform: rotate(150deg); + opacity: 0.75; +} +.u-loading-icon__dot.data-v-00752c6d:nth-of-type(6) { + transform: rotate(180deg); + opacity: 0.6875; +} +.u-loading-icon__dot.data-v-00752c6d:nth-of-type(7) { + transform: rotate(210deg); + opacity: 0.625; +} +.u-loading-icon__dot.data-v-00752c6d:nth-of-type(8) { + transform: rotate(240deg); + opacity: 0.5625; +} +.u-loading-icon__dot.data-v-00752c6d:nth-of-type(9) { + transform: rotate(270deg); + opacity: 0.5; +} +.u-loading-icon__dot.data-v-00752c6d:nth-of-type(10) { + transform: rotate(300deg); + opacity: 0.4375; +} +.u-loading-icon__dot.data-v-00752c6d:nth-of-type(11) { + transform: rotate(330deg); + opacity: 0.375; +} +.u-loading-icon__dot.data-v-00752c6d:nth-of-type(12) { + transform: rotate(360deg); + opacity: 0.3125; +} +@keyframes u-rotate-00752c6d { +0% { + transform: rotate(0deg); +} +to { + transform: rotate(1turn); +} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.js new file mode 100644 index 0000000..9dc7159 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.js @@ -0,0 +1,49 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-overlay", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$6], + computed: { + overlayStyle() { + const style = { + position: "fixed", + top: 0, + left: 0, + right: 0, + zIndex: this.zIndex, + bottom: 0, + "background-color": `rgba(0, 0, 0, ${this.opacity})` + }; + return common_vendor.deepMerge(style, common_vendor.addStyle(this.customStyle)); + } + }, + emits: ["click"], + methods: { + clickHandler() { + this.$emit("click"); + } + } +}; +if (!Array) { + const _easycom_u_transition2 = common_vendor.resolveComponent("u-transition"); + _easycom_u_transition2(); +} +const _easycom_u_transition = () => "../u-transition/u-transition.js"; +if (!Math) { + _easycom_u_transition(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.o($options.clickHandler), + b: common_vendor.o(_ctx.noop), + c: common_vendor.p({ + show: _ctx.show, + ["custom-class"]: "u-overlay", + duration: _ctx.duration, + ["custom-style"]: $options.overlayStyle + }) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-35f7c3e5"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.json new file mode 100644 index 0000000..164d28a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "u-transition": "../u-transition/u-transition" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.wxml new file mode 100644 index 0000000..25e0ca7 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.wxss new file mode 100644 index 0000000..2b33634 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-overlay/u-overlay.wxss @@ -0,0 +1,57 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-35f7c3e5, +.u-empty__wrap.data-v-35f7c3e5, +.u-tabs.data-v-35f7c3e5, +.u-tabs__wrapper.data-v-35f7c3e5, +.u-tabs__wrapper__scroll-view-wrapper.data-v-35f7c3e5, +.u-tabs__wrapper__scroll-view.data-v-35f7c3e5, +.u-tabs__wrapper__nav.data-v-35f7c3e5, +.u-tabs__wrapper__nav__line.data-v-35f7c3e5, +.up-empty.data-v-35f7c3e5, +.up-empty__wrap.data-v-35f7c3e5, +.up-tabs.data-v-35f7c3e5, +.up-tabs__wrapper.data-v-35f7c3e5, +.up-tabs__wrapper__scroll-view-wrapper.data-v-35f7c3e5, +.up-tabs__wrapper__scroll-view.data-v-35f7c3e5, +.up-tabs__wrapper__nav.data-v-35f7c3e5, +.up-tabs__wrapper__nav__line.data-v-35f7c3e5 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-overlay.data-v-35f7c3e5 { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.7); +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.js new file mode 100644 index 0000000..2327e43 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.js @@ -0,0 +1,390 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +const block0 = {}; +const node = () => Promise.resolve().then(() => RDovR2l0V29ya1BsYWNlL2Nhc2VEYXRhQmFzZS9ub2RlX21vZHVsZXMvdXZpZXctcGx1cy9jb21wb25lbnRzL3UtcGFyc2Uvbm9kZS9ub2RlLnZ1ZQ); +const _sfc_main = { + name: "node", + options: { + virtualHost: true + }, + data() { + return { + ctrl: {}, + isiOS: common_vendor.index.getDeviceInfo().system.includes("iOS") + }; + }, + props: { + name: String, + attrs: { + type: Object, + default() { + return {}; + } + }, + childs: Array, + opts: Array + }, + components: { + node + }, + mounted() { + this.$nextTick(() => { + for (this.root = this.$parent; this.root.$options.name !== "u-parse"; this.root = this.root.$parent) + ; + }); + }, + beforeUnmount() { + }, + methods: { + toJSON() { + return this; + }, + /** + * @description 播放视频事件 + * @param {Event} e + */ + play(e) { + this.root.$emit("play"); + if (this.root.pauseVideo) { + let flag = false; + const id = e.target.id; + for (let i = this.root._videos.length; i--; ) { + if (this.root._videos[i].id === id) { + flag = true; + } else { + this.root._videos[i].pause(); + } + } + if (!flag) { + const ctx = common_vendor.index.createVideoContext( + id, + this + ); + ctx.id = id; + if (this.root.playbackRate) { + ctx.playbackRate(this.root.playbackRate); + } + this.root._videos.push(ctx); + } + } + }, + /** + * @description 图片点击事件 + * @param {Event} e + */ + imgTap(e) { + const node2 = this.childs[e.currentTarget.dataset.i]; + if (node2.a) { + this.linkTap(node2.a); + return; + } + if (node2.attrs.ignore) + return; + this.root.$emit("imgTap", node2.attrs); + if (this.root.previewImg) { + common_vendor.index.previewImage({ + showmenu: this.root.showImgMenu, + current: parseInt(node2.attrs.i), + urls: this.root.imgList + }); + } + }, + /** + * @description 图片长按 + */ + imgLongTap(e) { + }, + /** + * @description 图片加载完成事件 + * @param {Event} e + */ + imgLoad(e) { + const i = e.currentTarget.dataset.i; + if (!this.childs[i].w) { + this.$set(this.ctrl, i, e.detail.width); + } else if (this.opts[1] && !this.ctrl[i] || this.ctrl[i] === -1) { + this.$set(this.ctrl, i, 1); + } + this.checkReady(); + }, + /** + * @description 检查是否所有图片加载完毕 + */ + checkReady() { + if (!this.root.lazyLoad) { + this.root._unloadimgs -= 1; + if (!this.root._unloadimgs) { + setTimeout(() => { + this.root.getRect().then((rect) => { + this.root.$emit("ready", rect); + }).catch(() => { + this.root.$emit("ready", {}); + }); + }, 350); + } + } + }, + /** + * @description 链接点击事件 + * @param {Event} e + */ + linkTap(e) { + const node2 = e.currentTarget ? this.childs[e.currentTarget.dataset.i] : {}; + const attrs = node2.attrs || e; + const href = attrs.href; + this.root.$emit("linkTap", Object.assign({ + innerText: this.root.getText(node2.children || []) + // 链接内的文本内容 + }, attrs)); + if (href) { + if (href[0] === "#") { + this.root.navigateTo(href.substring(1)).catch(() => { + }); + } else if (href.split("?")[0].includes("://")) { + if (this.root.copyLink) { + common_vendor.index.setClipboardData({ + data: href, + success: () => common_vendor.index.showToast({ + title: "链接已复制" + }) + }); + } + } else { + common_vendor.index.navigateTo({ + url: href, + fail() { + common_vendor.index.switchTab({ + url: href, + fail() { + } + }); + } + }); + } + } + }, + /** + * @description 错误事件 + * @param {Event} e + */ + mediaError(e) { + const i = e.currentTarget.dataset.i; + const node2 = this.childs[i]; + if (node2.name === "video" || node2.name === "audio") { + let index = (this.ctrl[i] || 0) + 1; + if (index > node2.src.length) { + index = 0; + } + if (index < node2.src.length) { + this.$set(this.ctrl, i, index); + return; + } + } else if (node2.name === "img") { + if (this.opts[2]) { + this.$set(this.ctrl, i, -1); + } + this.checkReady(); + } + if (this.root) { + this.root.$emit("error", { + source: node2.name, + attrs: node2.attrs, + errMsg: e.detail.errMsg + }); + } + } + } +}; +if (!Array) { + const _component_node = common_vendor.resolveComponent("node"); + _component_node(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.f($props.childs, (n, i, i0) => { + return common_vendor.e({ + a: n.name === "img" && !n.t && ($props.opts[1] && !$data.ctrl[i] || $data.ctrl[i] < 0) + }, n.name === "img" && !n.t && ($props.opts[1] && !$data.ctrl[i] || $data.ctrl[i] < 0) ? { + b: common_vendor.s(n.attrs.style), + c: $data.ctrl[i] < 0 ? $props.opts[2] : $props.opts[1] + } : {}, { + d: n.name === "img" && n.t + }, n.name === "img" && n.t ? { + e: common_vendor.s("display:" + n.t), + f: "", + g: i, + h: common_vendor.o((...args) => $options.imgTap && $options.imgTap(...args), i) + } : n.name === "img" ? { + j: n.attrs.id, + k: common_vendor.n("_img " + n.attrs.class), + l: common_vendor.s(($data.ctrl[i] === -1 ? "display:none;" : "") + "width:" + ($data.ctrl[i] || 1) + "px;height:1px;" + n.attrs.style), + m: n.attrs.src, + n: !n.h ? "widthFix" : !n.w ? "heightFix" : "", + o: $props.opts[0], + p: n.webp, + q: $props.opts[3] && !n.attrs.ignore, + r: !$props.opts[3] || n.attrs.ignore, + s: i, + t: common_vendor.o((...args) => $options.imgLoad && $options.imgLoad(...args), i), + v: common_vendor.o((...args) => $options.mediaError && $options.mediaError(...args), i), + w: common_vendor.o((...args) => $options.imgTap && $options.imgTap(...args), i), + x: common_vendor.o((...args) => $options.imgLongTap && $options.imgLongTap(...args), i) + } : n.text ? { + z: common_vendor.t(n.text), + A: $props.opts[4] == "force" && $data.isiOS + } : n.name === "br" ? {} : n.name === "a" ? { + D: "5640ed73-0-" + i0, + E: common_vendor.p({ + name: "span", + childs: n.children, + opts: $props.opts + }), + F: n.attrs.id, + G: common_vendor.n((n.attrs.href ? "_a " : "") + n.attrs.class), + H: common_vendor.s("display:inline;" + n.attrs.style), + I: i, + J: common_vendor.o((...args) => $options.linkTap && $options.linkTap(...args), i) + } : n.name === "video" ? { + L: n.attrs.id, + M: common_vendor.n(n.attrs.class), + N: common_vendor.s(n.attrs.style), + O: n.attrs.autoplay, + P: n.attrs.controls, + Q: n.attrs.loop, + R: n.attrs.muted, + S: n.attrs["object-fit"], + T: n.attrs.poster, + U: n.src[$data.ctrl[i] || 0], + V: i, + W: common_vendor.o((...args) => $options.play && $options.play(...args), i), + X: common_vendor.o((...args) => $options.mediaError && $options.mediaError(...args), i) + } : n.name === "audio" ? { + Z: n.attrs.id, + aa: common_vendor.n(n.attrs.class), + ab: common_vendor.s(n.attrs.style), + ac: n.attrs.author, + ad: n.attrs.controls, + ae: n.attrs.loop, + af: n.attrs.name, + ag: n.attrs.poster, + ah: n.src[$data.ctrl[i] || 0], + ai: i, + aj: common_vendor.o((...args) => $options.play && $options.play(...args), i), + ak: common_vendor.o((...args) => $options.mediaError && $options.mediaError(...args), i) + } : n.name === "table" && n.c || n.name === "li" ? common_vendor.e({ + am: n.name === "li" + }, n.name === "li" ? { + an: "5640ed73-1-" + i0, + ao: common_vendor.p({ + childs: n.children, + opts: $props.opts + }) + } : { + ap: common_vendor.f(n.children, (tbody, x, i1) => { + return common_vendor.e({ + a: tbody.name === "td" || tbody.name === "th" + }, tbody.name === "td" || tbody.name === "th" ? { + b: "5640ed73-2-" + i0 + "-" + i1, + c: common_vendor.p({ + childs: tbody.children, + opts: $props.opts + }) + } : { + d: common_vendor.f(tbody.children, (tr, y, i2) => { + return common_vendor.e({ + a: tr.name === "td" || tr.name === "th" + }, tr.name === "td" || tr.name === "th" ? { + b: "5640ed73-3-" + i0 + "-" + i1 + "-" + i2, + c: common_vendor.p({ + childs: tr.children, + opts: $props.opts + }), + d: common_vendor.n("_" + tr.name + " " + tr.attrs.class), + e: common_vendor.s(tr.attrs.style) + } : { + f: common_vendor.f(tr.children, (td, z, i3) => { + return { + a: "5640ed73-4-" + i0 + "-" + i1 + "-" + i2 + "-" + i3, + b: common_vendor.p({ + childs: td.children, + opts: $props.opts + }), + c: z, + d: common_vendor.n("_" + td.name + " " + td.attrs.class), + e: common_vendor.s(td.attrs.style) + }; + }), + g: common_vendor.n("_" + tr.name + " " + tr.attrs.class), + h: common_vendor.s(tr.attrs.style) + }, { + i: y + }); + }) + }, { + e: x, + f: common_vendor.n("_" + tbody.name + " " + tbody.attrs.class), + g: common_vendor.s(tbody.attrs.style) + }); + }) + }, { + aq: n.attrs.id, + ar: common_vendor.n("_" + n.name + " " + n.attrs.class), + as: common_vendor.s(n.attrs.style) + }) : !n.c ? { + av: n.attrs.id, + aw: common_vendor.s(n.f + ";display:inline"), + ax: $props.opts[4], + ay: $props.opts[4], + az: [n] + } : n.c === 2 ? { + aB: common_vendor.f(n.children, (n2, j, i1) => { + return { + a: j, + b: common_vendor.s(n2.f), + c: "5640ed73-5-" + i0 + "-" + i1, + d: common_vendor.p({ + name: n2.name, + attrs: n2.attrs, + childs: n2.children, + opts: $props.opts + }) + }; + }), + aC: n.attrs.id, + aD: common_vendor.n("_block _" + n.name + " " + n.attrs.class), + aE: common_vendor.s(n.f + ";" + n.attrs.style) + } : { + aF: common_vendor.s(n.f), + aG: "5640ed73-6-" + i0, + aH: common_vendor.p({ + name: n.name, + attrs: n.attrs, + childs: n.children, + opts: $props.opts + }) + }, { + i: n.name === "img", + y: n.text, + B: n.name === "br", + C: n.name === "a", + K: n.name === "video", + Y: n.name === "audio", + al: n.name === "table" && n.c || n.name === "li", + at: !n.c, + aA: n.c === 2, + aI: i + }); + }), + b: $props.attrs.id, + c: common_vendor.n("_block _" + $props.name + " " + $props.attrs.class), + d: common_vendor.s($props.attrs.style) + }; +} +if (typeof block0 === "function") + block0(_sfc_main); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); +const RDovR2l0V29ya1BsYWNlL2Nhc2VEYXRhQmFzZS9ub2RlX21vZHVsZXMvdXZpZXctcGx1cy9jb21wb25lbnRzL3UtcGFyc2Uvbm9kZS9ub2RlLnZ1ZQ = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null +}, Symbol.toStringTag, { value: "Module" })); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.json new file mode 100644 index 0000000..7bebc99 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "node": "./node" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.wxml new file mode 100644 index 0000000..37f9a45 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.wxml @@ -0,0 +1,31 @@ + + +// 行内标签列表 +var inlineTags = { + abbr: true, + b: true, + big: true, + code: true, + del: true, + em: true, + i: true, + ins: true, + label: true, + q: true, + small: true, + span: true, + strong: true, + sub: true, + sup: true +} +/** + * @description 判断是否为行内标签 + */ +module.exports = { + isInline: function (tagName, style) { + return inlineTags[tagName] || (style || '').indexOf('display:inline') !== -1 + } +} + + +{{n.z}}\n \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.wxss new file mode 100644 index 0000000..ca5c607 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/node/node.wxss @@ -0,0 +1,149 @@ + +/* a 标签默认效果 */ +._a { + padding: 1.5px 0 1.5px 0; + color: #366092; + + word-break: break-all; +} + +/* a 标签点击态效果 */ +._hover { + text-decoration: underline; + opacity: 0.7; +} + +/* 图片默认效果 */ +._img { + max-width: 100%; + -webkit-touch-callout: none; +} + +/* 内部样式 */ +._block { + + display: block; +} +._b, +._strong { + font-weight: bold; +} +._code { + font-family: monospace; +} +._del { + text-decoration: line-through; +} +._em, +._i { + font-style: italic; +} +._h1 { + font-size: 2em; +} +._h2 { + font-size: 1.5em; +} +._h3 { + font-size: 1.17em; +} +._h5 { + font-size: 0.83em; +} +._h6 { + font-size: 0.67em; +} +._h1, +._h2, +._h3, +._h4, +._h5, +._h6 { + + display: block; + + font-weight: bold; +} +._image { + height: 1px; +} +._ins { + text-decoration: underline; +} +._li { + display: list-item; +} +._ol { + list-style-type: decimal; +} +._ol, +._ul { + + display: block; + + padding-left: 40px; + margin: 1em 0; +} +._q::before { + content: '"'; +} +._q::after { + content: '"'; +} +._sub { + font-size: smaller; + vertical-align: sub; +} +._sup { + font-size: smaller; + vertical-align: super; +} +._thead, +._tbody, +._tfoot { + display: table-row-group; +} +._tr { + display: table-row; +} +._td, +._th { + display: table-cell; + vertical-align: middle; +} +._th { + font-weight: bold; + text-align: center; +} +._ul { + list-style-type: disc; +} +._ul ._ul { + margin: 0; + list-style-type: circle; +} +._ul ._ul ._ul { + list-style-type: square; +} +._abbr, +._b, +._code, +._del, +._em, +._i, +._ins, +._label, +._q, +._span, +._strong, +._sub, +._sup { + display: inline; +} + + + + + + + diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.js new file mode 100644 index 0000000..82cd1ef --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.js @@ -0,0 +1,268 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const node = () => "./node/node.js"; +const plugins = []; +const _sfc_main = { + name: "u-parse", + data() { + return { + nodes: [] + }; + }, + props: { + containerStyle: { + type: String, + default: "" + }, + content: { + type: String, + default: "" + }, + copyLink: { + type: [Boolean, String], + default: true + }, + domain: String, + errorImg: { + type: String, + default: "" + }, + lazyLoad: { + type: [Boolean, String], + default: false + }, + loadingImg: { + type: String, + default: "" + }, + pauseVideo: { + type: [Boolean, String], + default: true + }, + previewImg: { + type: [Boolean, String], + default: true + }, + scrollTable: [Boolean, String], + selectable: [Boolean, String], + setTitle: { + type: [Boolean, String], + default: true + }, + showImgMenu: { + type: [Boolean, String], + default: true + }, + tagStyle: Object, + useAnchor: [Boolean, Number] + }, + emits: ["load", "ready", "imgTap", "linkTap", "play", "error"], + components: { + node + }, + watch: { + content(content) { + this.setContent(content); + } + }, + created() { + this.plugins = []; + for (let i = plugins.length; i--; ) { + this.plugins.push(new plugins[i](this)); + } + }, + mounted() { + if (this.content && !this.nodes.length) { + this.setContent(this.content); + } + }, + beforeUnmount() { + this._hook("onDetached"); + }, + methods: { + /** + * @description 将锚点跳转的范围限定在一个 scroll-view 内 + * @param {Object} page scroll-view 所在页面的示例 + * @param {String} selector scroll-view 的选择器 + * @param {String} scrollTop scroll-view scroll-top 属性绑定的变量名 + */ + in(page, selector, scrollTop) { + if (page && selector && scrollTop) { + this._in = { + page, + selector, + scrollTop + }; + } + }, + /** + * @description 锚点跳转 + * @param {String} id 要跳转的锚点 id + * @param {Number} offset 跳转位置的偏移量 + * @returns {Promise} + */ + navigateTo(id, offset) { + return new Promise((resolve, reject) => { + if (!this.useAnchor) { + reject(Error("Anchor is disabled")); + return; + } + offset = offset || parseInt(this.useAnchor) || 0; + let deep = " "; + deep = ">>>"; + const selector = common_vendor.index.createSelectorQuery().in(this._in ? this._in.page : this).select((this._in ? this._in.selector : "._root") + (id ? `${deep}#${id}` : "")).boundingClientRect(); + if (this._in) { + selector.select(this._in.selector).scrollOffset().select(this._in.selector).boundingClientRect(); + } else { + selector.selectViewport().scrollOffset(); + } + selector.exec((res) => { + if (!res[0]) { + reject(Error("Label not found")); + return; + } + const scrollTop = res[1].scrollTop + res[0].top - (res[2] ? res[2].top : 0) + offset; + if (this._in) { + this._in.page[this._in.scrollTop] = scrollTop; + } else { + common_vendor.index.pageScrollTo({ + scrollTop, + duration: 300 + }); + } + resolve(); + }); + }); + }, + /** + * @description 获取文本内容 + * @return {String} + */ + getText(nodes) { + let text = ""; + (function traversal(nodes2) { + for (let i = 0; i < nodes2.length; i++) { + const node2 = nodes2[i]; + if (node2.type === "text") { + text += node2.text.replace(/&/g, "&"); + } else if (node2.name === "br") { + text += "\n"; + } else { + const isBlock = node2.name === "p" || node2.name === "div" || node2.name === "tr" || node2.name === "li" || node2.name[0] === "h" && node2.name[1] > "0" && node2.name[1] < "7"; + if (isBlock && text && text[text.length - 1] !== "\n") { + text += "\n"; + } + if (node2.children) { + traversal(node2.children); + } + if (isBlock && text[text.length - 1] !== "\n") { + text += "\n"; + } else if (node2.name === "td" || node2.name === "th") { + text += " "; + } + } + } + })(nodes || this.nodes); + return text; + }, + /** + * @description 获取内容大小和位置 + * @return {Promise} + */ + getRect() { + return new Promise((resolve, reject) => { + common_vendor.index.createSelectorQuery().in(this).select("#_root").boundingClientRect().exec((res) => res[0] ? resolve(res[0]) : reject(Error("Root label not found"))); + }); + }, + /** + * @description 暂停播放媒体 + */ + pauseMedia() { + for (let i = (this._videos || []).length; i--; ) { + this._videos[i].pause(); + } + }, + /** + * @description 设置媒体播放速率 + * @param {Number} rate 播放速率 + */ + setPlaybackRate(rate) { + this.playbackRate = rate; + for (let i = (this._videos || []).length; i--; ) { + this._videos[i].playbackRate(rate); + } + }, + /** + * @description 设置内容 + * @param {String} content html 内容 + * @param {Boolean} append 是否在尾部追加 + */ + setContent(content, append) { + if (!append || !this.imgList) { + this.imgList = []; + } + const nodes = new common_vendor.Parser(this).parse(content); + this.$set(this, "nodes", append ? (this.nodes || []).concat(nodes) : nodes); + this._videos = []; + this.$nextTick(() => { + this._hook("onLoad"); + this.$emit("load"); + }); + if (this.lazyLoad || this.imgList._unloadimgs < this.imgList.length / 2) { + let height = 0; + const callback = (rect) => { + if (!rect || !rect.height) + rect = {}; + if (rect.height === height) { + this.$emit("ready", rect); + } else { + height = rect.height; + setTimeout(() => { + this.getRect().then(callback).catch(callback); + }, 350); + } + }; + this.getRect().then(callback).catch(callback); + } else { + if (!this.imgList._unloadimgs) { + this.getRect().then((rect) => { + this.$emit("ready", rect); + }).catch(() => { + this.$emit("ready", {}); + }); + } + } + }, + /** + * @description 调用插件钩子函数 + */ + _hook(name) { + for (let i = plugins.length; i--; ) { + if (this.plugins[i][name]) { + this.plugins[i][name](); + } + } + } + } +}; +if (!Array) { + const _component_node = common_vendor.resolveComponent("node"); + _component_node(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: !$data.nodes[0] + }, !$data.nodes[0] ? {} : { + b: common_vendor.p({ + childs: $data.nodes, + opts: [$props.lazyLoad, $props.loadingImg, $props.errorImg, $props.showImgMenu, $props.selectable], + name: "span" + }) + }, { + c: common_vendor.n(($props.selectable ? "_select " : "") + "_root"), + d: common_vendor.s($props.containerStyle) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.json new file mode 100644 index 0000000..f55f207 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "node": "./node/node" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.wxml new file mode 100644 index 0000000..99c1d23 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.wxss new file mode 100644 index 0000000..46a562f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-parse/u-parse.wxss @@ -0,0 +1,17 @@ + + +/* 根节点样式 */ +._root { + padding: 1px 0; + overflow-x: auto; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; +} + +/* 长按复制 */ +._select { + -webkit-user-select: text; + user-select: text; +} + + diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.js new file mode 100644 index 0000000..248a526 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.js @@ -0,0 +1,289 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-picker", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$20], + data() { + return { + // 上一次选择的列索引 + lastIndex: [], + // 索引值 ,对应picker-view的value + innerIndex: [], + // 各列的值 + innerColumns: [], + // 上一次的变化列索引 + columnIndex: 0, + showByClickInput: false, + currentActiveValue: [] + //当前用户选中,但是还没确认的值,用户没做change操作时候,点击确认可以默认选中第一个 + }; + }, + watch: { + // 监听默认索引的变化,重新设置对应的值 + defaultIndex: { + immediate: true, + deep: true, + handler(n, o) { + if (!o || n.join("/") != o.join("/")) { + this.setIndexs(n, true); + } + } + }, + // 监听columns参数的变化 + columns: { + immediate: true, + deep: true, + handler(n) { + this.setColumns(n); + } + } + }, + emits: ["close", "cancel", "confirm", "change", "update:modelValue", "update:show"], + computed: { + //已选&&已确认的值显示在input上面的文案 + inputLabel() { + let firstItem = this.innerColumns[0] && this.innerColumns[0][0]; + if (firstItem && Object.prototype.toString.call(firstItem) === "[object Object]") { + let res = this.innerColumns[0].filter((item) => this.modelValue.includes(item["id"])); + res = res.map((item) => item[this.keyName]); + return res.join("/"); + } else { + return this.modelValue.join("/"); + } + }, + //已选,待确认的值 + inputValue() { + let items = this.innerColumns.map((item, index) => item[this.innerIndex[index]]); + let res = []; + if (items[0] && Object.prototype.toString.call(items[0]) === "[object Object]") { + items.forEach((element) => { + res.push(element && element["id"]); + }); + } else { + items.forEach((element, index) => { + res.push(element); + }); + } + return res; + } + }, + methods: { + addUnit: common_vendor.addUnit, + testArray: common_vendor.test.array, + onShowByClickInput() { + if (!this.disabled) { + this.showByClickInput = !this.showByClickInput; + } + }, + // 获取item需要显示的文字,判别为对象还是文本 + getItemText(item) { + if (common_vendor.test.object(item)) { + return item[this.keyName]; + } else { + return item; + } + }, + // 关闭选择器 + closeHandler() { + if (this.closeOnClickOverlay) { + if (this.hasInput) { + this.showByClickInput = false; + } + this.$emit("update:show", false); + this.$emit("close"); + } + }, + // 点击工具栏的取消按钮 + cancel() { + if (this.hasInput) { + this.showByClickInput = false; + } + this.$emit("update:show", false); + this.$emit("cancel"); + }, + // 点击工具栏的确定按钮 + confirm() { + if (!this.currentActiveValue.length) { + let arr = [0]; + if (Array.isArray(this.defaultIndex) && this.defaultIndex.length == this.innerColumns.length) { + arr = [...this.defaultIndex]; + } else { + arr = Array(this.innerColumns.length).fill(0); + } + this.setLastIndex(arr); + this.setIndexs(arr); + } + this.$emit("update:modelValue", this.inputValue); + if (this.hasInput) { + this.showByClickInput = false; + } + this.$emit("update:show", false); + this.$emit("confirm", { + indexs: this.innerIndex, + value: this.innerColumns.map((item, index) => item[this.innerIndex[index]]), + values: this.innerColumns + }); + }, + // 选择器某一列的数据发生变化时触发 + changeHandler(e) { + const { + value + } = e.detail; + let index = 0, columnIndex = 0; + this.currentActiveValue = value; + for (let i = 0; i < value.length; i++) { + let item = value[i]; + if (item !== (this.lastIndex[i] || 0)) { + columnIndex = i; + index = item; + break; + } + } + this.columnIndex = columnIndex; + const values = this.innerColumns; + this.setLastIndex(value); + this.setIndexs(value); + if (!this.hasInput) { + this.$emit("update:modelValue", this.inputValue); + } + this.$emit("change", { + value: this.innerColumns.map((item, index2) => item[value[index2]]), + index, + indexs: value, + // values为当前变化列的数组内容 + values, + columnIndex + }); + }, + // 设置index索引,此方法可被外部调用设置 + setIndexs(index, setLastIndex) { + this.innerIndex = common_vendor.deepClone(index); + if (setLastIndex) { + this.setLastIndex(index); + } + }, + // 记录上一次的各列索引位置 + setLastIndex(index) { + this.lastIndex = common_vendor.deepClone(index); + }, + // 设置对应列选项的所有值 + setColumnValues(columnIndex, values) { + this.innerColumns.splice(columnIndex, 1, values); + this.setLastIndex(this.innerIndex.slice(0, columnIndex)); + let tmpIndex = common_vendor.deepClone(this.innerIndex); + for (let i = 0; i < this.innerColumns.length; i++) { + if (i > this.columnIndex) { + tmpIndex[i] = 0; + } + } + this.setIndexs(tmpIndex); + }, + // 获取对应列的所有选项 + getColumnValues(columnIndex) { + (async () => { + await common_vendor.sleep(); + })(); + return this.innerColumns[columnIndex]; + }, + // 设置整体各列的columns的值 + setColumns(columns) { + this.innerColumns = common_vendor.deepClone(columns); + if (this.innerIndex.length === 0) { + this.innerIndex = new Array(columns.length).fill(0); + } + }, + // 获取各列选中值对应的索引 + getIndexs() { + return this.innerIndex; + }, + // 获取各列选中的值 + getValues() { + (async () => { + await common_vendor.sleep(); + })(); + return this.innerColumns.map((item, index) => item[this.innerIndex[index]]); + } + } +}; +if (!Array) { + const _easycom_up_input2 = common_vendor.resolveComponent("up-input"); + const _easycom_u_toolbar2 = common_vendor.resolveComponent("u-toolbar"); + const _easycom_u_loading_icon2 = common_vendor.resolveComponent("u-loading-icon"); + const _easycom_u_popup2 = common_vendor.resolveComponent("u-popup"); + (_easycom_up_input2 + _easycom_u_toolbar2 + _easycom_u_loading_icon2 + _easycom_u_popup2)(); +} +const _easycom_up_input = () => "../u-input/u-input.js"; +const _easycom_u_toolbar = () => "../u-toolbar/u-toolbar.js"; +const _easycom_u_loading_icon = () => "../u-loading-icon/u-loading-icon.js"; +const _easycom_u_popup = () => "../u-popup/u-popup.js"; +if (!Math) { + (_easycom_up_input + _easycom_u_toolbar + _easycom_u_loading_icon + _easycom_u_popup)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.hasInput + }, _ctx.hasInput ? { + b: common_vendor.o(($event) => $options.inputLabel = $event), + c: common_vendor.p({ + disabled: _ctx.disabled, + disabledColor: _ctx.disabledColor, + placeholder: _ctx.placeholder, + readonly: true, + border: "surround", + modelValue: $options.inputLabel + }), + d: common_vendor.o((...args) => $options.onShowByClickInput && $options.onShowByClickInput(...args)) + } : {}, { + e: _ctx.showToolbar + }, _ctx.showToolbar ? { + f: common_vendor.o($options.cancel), + g: common_vendor.o($options.confirm), + h: common_vendor.p({ + cancelColor: _ctx.cancelColor, + confirmColor: _ctx.confirmColor, + cancelText: _ctx.cancelText, + confirmText: _ctx.confirmText, + title: _ctx.title, + rightSlot: _ctx.toolbarRightSlot ? true : false + }) + } : {}, { + i: common_vendor.f($data.innerColumns, (item, index, i0) => { + return common_vendor.e({ + a: $options.testArray(item) + }, $options.testArray(item) ? { + b: common_vendor.f(item, (item1, index1, i1) => { + return { + a: common_vendor.t($options.getItemText(item1)), + b: common_vendor.n(index1 === $data.innerIndex[index] && "u-picker__view__column__item--selected"), + c: index1, + d: index1 === $data.innerIndex[index] ? "bold" : "normal" + }; + }), + c: $options.addUnit(_ctx.itemHeight), + d: $options.addUnit(_ctx.itemHeight) + } : {}, { + e: index + }); + }), + j: `height: ${$options.addUnit(_ctx.itemHeight)}`, + k: $data.innerIndex, + l: _ctx.immediateChange, + m: `${$options.addUnit(_ctx.visibleItemCount * _ctx.itemHeight)}`, + n: common_vendor.o((...args) => $options.changeHandler && $options.changeHandler(...args)), + o: _ctx.loading + }, _ctx.loading ? { + p: common_vendor.p({ + mode: "circle" + }) + } : {}, { + q: common_vendor.o($options.closeHandler), + r: common_vendor.p({ + show: _ctx.show || _ctx.hasInput && $data.showByClickInput, + mode: _ctx.popupMode, + zIndex: _ctx.zIndex + }) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-1500ce68"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.json new file mode 100644 index 0000000..5f030ff --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.json @@ -0,0 +1,9 @@ +{ + "component": true, + "usingComponents": { + "up-input": "../u-input/u-input", + "u-toolbar": "../u-toolbar/u-toolbar", + "u-loading-icon": "../u-loading-icon/u-loading-icon", + "u-popup": "../u-popup/u-popup" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.wxml new file mode 100644 index 0000000..810528a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.wxml @@ -0,0 +1 @@ +{{item1.a}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.wxss new file mode 100644 index 0000000..3c32ba0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-picker/u-picker.wxss @@ -0,0 +1,97 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-1500ce68, +.u-empty__wrap.data-v-1500ce68, +.u-tabs.data-v-1500ce68, +.u-tabs__wrapper.data-v-1500ce68, +.u-tabs__wrapper__scroll-view-wrapper.data-v-1500ce68, +.u-tabs__wrapper__scroll-view.data-v-1500ce68, +.u-tabs__wrapper__nav.data-v-1500ce68, +.u-tabs__wrapper__nav__line.data-v-1500ce68, +.up-empty.data-v-1500ce68, +.up-empty__wrap.data-v-1500ce68, +.up-tabs.data-v-1500ce68, +.up-tabs__wrapper.data-v-1500ce68, +.up-tabs__wrapper__scroll-view-wrapper.data-v-1500ce68, +.up-tabs__wrapper__scroll-view.data-v-1500ce68, +.up-tabs__wrapper__nav.data-v-1500ce68, +.up-tabs__wrapper__nav__line.data-v-1500ce68 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-picker.data-v-1500ce68 { + position: relative; +} +.u-picker-input.data-v-1500ce68 { + position: relative; +} +.u-picker-input .input-cover.data-v-1500ce68 { + opacity: 0; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1; +} +.u-picker__view__column.data-v-1500ce68 { + display: flex; + flex-direction: row; + flex: 1; + justify-content: center; +} +.u-picker__view__column__item.data-v-1500ce68 { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + font-size: 16px; + text-align: center; + display: block; + color: #303133; +} +.u-picker__view__column__item--disabled.data-v-1500ce68 { + cursor: not-allowed; + opacity: 0.35; +} +.u-picker--loading.data-v-1500ce68 { + position: absolute; + top: 0; + right: 0; + left: 0; + bottom: 0; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + background-color: rgba(255, 255, 255, 0.87); + z-index: 1000; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.js new file mode 100644 index 0000000..55afa57 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.js @@ -0,0 +1,221 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-popup", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$4], + data() { + return { + overlayDuration: this.duration + 50 + }; + }, + watch: { + show(newValue, oldValue) { + if (newValue === true) { + const children = this.$children; + this.retryComputedComponentRect(children); + } + } + }, + computed: { + transitionStyle() { + const style = { + zIndex: this.zIndex, + position: "fixed", + display: "flex" + }; + style[this.mode] = 0; + if (this.mode === "left") { + return common_vendor.deepMerge(style, { + bottom: 0, + top: 0 + }); + } else if (this.mode === "right") { + return common_vendor.deepMerge(style, { + bottom: 0, + top: 0 + }); + } else if (this.mode === "top") { + return common_vendor.deepMerge(style, { + left: 0, + right: 0 + }); + } else if (this.mode === "bottom") { + return common_vendor.deepMerge(style, { + left: 0, + right: 0 + }); + } else if (this.mode === "center") { + return common_vendor.deepMerge(style, { + alignItems: "center", + "justify-content": "center", + top: 0, + left: 0, + right: 0, + bottom: 0 + }); + } + }, + contentStyle() { + const style = {}; + common_vendor.getWindowInfo(); + if (this.mode !== "center") { + style.flex = 1; + } + if (this.bgColor) { + style.backgroundColor = this.bgColor; + } + if (this.round) { + const value = common_vendor.addUnit(this.round); + if (this.mode === "top") { + style.borderBottomLeftRadius = value; + style.borderBottomRightRadius = value; + } else if (this.mode === "bottom") { + style.borderTopLeftRadius = value; + style.borderTopRightRadius = value; + } else if (this.mode === "center") { + style.borderRadius = value; + } + } + return common_vendor.deepMerge(style, common_vendor.addStyle(this.customStyle)); + }, + position() { + if (this.mode === "center") { + return this.zoom ? "fade-zoom" : "fade"; + } + if (this.mode === "left") { + return "slide-left"; + } + if (this.mode === "right") { + return "slide-right"; + } + if (this.mode === "bottom") { + return "slide-up"; + } + if (this.mode === "top") { + return "slide-down"; + } + } + }, + emits: ["open", "close", "click", "update:show"], + methods: { + // 点击遮罩 + overlayClick() { + if (this.closeOnClickOverlay) { + this.$emit("update:show", false); + this.$emit("close"); + } + }, + close(e) { + this.$emit("update:show", false); + this.$emit("close"); + }, + afterEnter() { + this.$emit("open"); + }, + clickHandler() { + if (this.mode === "center") { + this.overlayClick(); + } + this.$emit("click"); + }, + retryComputedComponentRect(children) { + const names = [ + "u-calendar-month", + "u-album", + "u-collapse-item", + "u-dropdown", + "u-index-item", + "u-index-list", + "u-line-progress", + "u-list-item", + "u-rate", + "u-read-more", + "u-row", + "u-row-notice", + "u-scroll-list", + "u-skeleton", + "u-slider", + "u-steps-item", + "u-sticky", + "u-subsection", + "u-swipe-action-item", + "u-tabbar", + "u-tabs", + "u-tooltip" + ]; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + const grandChild = child.$children; + if (names.includes(child.$options.name) && typeof (child == null ? void 0 : child.init) === "function") { + common_vendor.sleep(50).then(() => { + child.init(); + }); + } + if (grandChild.length) { + this.retryComputedComponentRect(grandChild); + } + } + } + } +}; +if (!Array) { + const _easycom_u_overlay2 = common_vendor.resolveComponent("u-overlay"); + const _easycom_u_status_bar2 = common_vendor.resolveComponent("u-status-bar"); + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_u_safe_bottom2 = common_vendor.resolveComponent("u-safe-bottom"); + const _easycom_u_transition2 = common_vendor.resolveComponent("u-transition"); + (_easycom_u_overlay2 + _easycom_u_status_bar2 + _easycom_u_icon2 + _easycom_u_safe_bottom2 + _easycom_u_transition2)(); +} +const _easycom_u_overlay = () => "../u-overlay/u-overlay.js"; +const _easycom_u_status_bar = () => "../u-status-bar/u-status-bar.js"; +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +const _easycom_u_safe_bottom = () => "../u-safe-bottom/u-safe-bottom.js"; +const _easycom_u_transition = () => "../u-transition/u-transition.js"; +if (!Math) { + (_easycom_u_overlay + _easycom_u_status_bar + _easycom_u_icon + _easycom_u_safe_bottom + _easycom_u_transition)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.overlay + }, _ctx.overlay ? { + b: common_vendor.o($options.overlayClick), + c: common_vendor.p({ + show: _ctx.show, + zIndex: _ctx.zIndex, + duration: $data.overlayDuration, + customStyle: _ctx.overlayStyle, + opacity: _ctx.overlayOpacity + }) + } : {}, { + d: _ctx.safeAreaInsetTop + }, _ctx.safeAreaInsetTop ? {} : {}, { + e: _ctx.closeable + }, _ctx.closeable ? { + f: common_vendor.p({ + name: "close", + color: "#909399", + size: "18", + bold: true + }), + g: common_vendor.o((...args) => $options.close && $options.close(...args)), + h: common_vendor.n("u-popup__content__close--" + _ctx.closeIconPos) + } : {}, { + i: _ctx.safeAreaInsetBottom + }, _ctx.safeAreaInsetBottom ? {} : {}, { + j: common_vendor.s($options.contentStyle), + k: common_vendor.o((...args) => _ctx.noop && _ctx.noop(...args)), + l: common_vendor.o((...args) => _ctx.noop && _ctx.noop(...args)), + m: common_vendor.o($options.afterEnter), + n: common_vendor.o($options.clickHandler), + o: common_vendor.p({ + show: _ctx.show, + customStyle: $options.transitionStyle, + mode: $options.position, + duration: _ctx.duration + }), + p: common_vendor.n(_ctx.customClass) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-74921bef"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.json new file mode 100644 index 0000000..711f35d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.json @@ -0,0 +1,10 @@ +{ + "component": true, + "usingComponents": { + "u-overlay": "../u-overlay/u-overlay", + "u-status-bar": "../u-status-bar/u-status-bar", + "u-icon": "../u-icon/u-icon", + "u-safe-bottom": "../u-safe-bottom/u-safe-bottom", + "u-transition": "../u-transition/u-transition" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.wxml new file mode 100644 index 0000000..eb70a3f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.wxss new file mode 100644 index 0000000..b9f4cc1 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-popup/u-popup.wxss @@ -0,0 +1,108 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-74921bef, +.u-empty__wrap.data-v-74921bef, +.u-tabs.data-v-74921bef, +.u-tabs__wrapper.data-v-74921bef, +.u-tabs__wrapper__scroll-view-wrapper.data-v-74921bef, +.u-tabs__wrapper__scroll-view.data-v-74921bef, +.u-tabs__wrapper__nav.data-v-74921bef, +.u-tabs__wrapper__nav__line.data-v-74921bef, +.up-empty.data-v-74921bef, +.up-empty__wrap.data-v-74921bef, +.up-tabs.data-v-74921bef, +.up-tabs__wrapper.data-v-74921bef, +.up-tabs__wrapper__scroll-view-wrapper.data-v-74921bef, +.up-tabs__wrapper__scroll-view.data-v-74921bef, +.up-tabs__wrapper__nav.data-v-74921bef, +.up-tabs__wrapper__nav__line.data-v-74921bef { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-popup.data-v-74921bef { + flex: 1; +} +.u-popup__content.data-v-74921bef { + background-color: #fff; + position: relative; +} +.u-popup__content--round-top.data-v-74921bef { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; +} +.u-popup__content--round-left.data-v-74921bef { + border-top-left-radius: 0; + border-top-right-radius: 10px; + border-bottom-left-radius: 0; + border-bottom-right-radius: 10px; +} +.u-popup__content--round-right.data-v-74921bef { + border-top-left-radius: 10px; + border-top-right-radius: 0; + border-bottom-left-radius: 10px; + border-bottom-right-radius: 0; +} +.u-popup__content--round-bottom.data-v-74921bef { + border-top-left-radius: 10px; + border-top-right-radius: 10px; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} +.u-popup__content--round-center.data-v-74921bef { + border-top-left-radius: 10px; + border-top-right-radius: 10px; + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; +} +.u-popup__content__close.data-v-74921bef { + position: absolute; +} +.u-popup__content__close--hover.data-v-74921bef { + opacity: 0.4; +} +.u-popup__content__close--top-left.data-v-74921bef { + top: 15px; + left: 15px; +} +.u-popup__content__close--top-right.data-v-74921bef { + top: 15px; + right: 15px; +} +.u-popup__content__close--bottom-left.data-v-74921bef { + bottom: 15px; + left: 15px; +} +.u-popup__content__close--bottom-right.data-v-74921bef { + right: 15px; + bottom: 15px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.js new file mode 100644 index 0000000..a39c871 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.js @@ -0,0 +1,75 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-radio-group", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$10], + computed: { + // 这里computed的变量,都是子组件u-radio需要用到的,由于头条小程序的兼容性差异,子组件无法实时监听父组件参数的变化 + // 所以需要手动通知子组件,这里返回一个parentData变量,供watch监听,在其中去通知每一个子组件重新从父组件(u-radio-group) + // 拉取父组件新的变化后的参数 + parentData() { + return [ + this.modelValue, + this.disabled, + this.inactiveColor, + this.activeColor, + this.size, + this.labelDisabled, + this.shape, + this.iconSize, + this.borderBottom, + this.placement + ]; + }, + bemClass() { + return this.bem("radio-group", ["placement"]); + }, + radioGroupStyle() { + const style = { + gap: common_vendor.addUnit(this.gap) + }; + return common_vendor.deepMerge(style, common_vendor.addStyle(this.customStyle)); + } + }, + watch: { + // 当父组件需要子组件需要共享的参数发生了变化,手动通知子组件 + parentData() { + if (this.children.length) { + this.children.map((child) => { + typeof child.init === "function" && child.init(); + }); + } + } + }, + data() { + return {}; + }, + created() { + this.children = []; + }, + emits: ["update:modelValue", "change"], + methods: { + // 将其他的radio设置为未选中的状态 + unCheckedOther(childInstance) { + this.children.map((child) => { + if (childInstance !== child) { + child.checked = false; + } + }); + const { + name + } = childInstance; + this.$emit("update:modelValue", name); + this.$emit("change", name); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.n($options.bemClass), + b: common_vendor.s($options.radioGroupStyle) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-272bb654"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.wxml new file mode 100644 index 0000000..e56e0dd --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.wxss new file mode 100644 index 0000000..8814d67 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio-group/u-radio-group.wxss @@ -0,0 +1,60 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-272bb654, +.u-empty__wrap.data-v-272bb654, +.u-tabs.data-v-272bb654, +.u-tabs__wrapper.data-v-272bb654, +.u-tabs__wrapper__scroll-view-wrapper.data-v-272bb654, +.u-tabs__wrapper__scroll-view.data-v-272bb654, +.u-tabs__wrapper__nav.data-v-272bb654, +.u-tabs__wrapper__nav__line.data-v-272bb654, +.up-empty.data-v-272bb654, +.up-empty__wrap.data-v-272bb654, +.up-tabs.data-v-272bb654, +.up-tabs__wrapper.data-v-272bb654, +.up-tabs__wrapper__scroll-view-wrapper.data-v-272bb654, +.up-tabs__wrapper__scroll-view.data-v-272bb654, +.up-tabs__wrapper__nav.data-v-272bb654, +.up-tabs__wrapper__nav__line.data-v-272bb654 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-radio-group.data-v-272bb654 { + flex: 1; +} +.u-radio-group--row.data-v-272bb654 { + display: flex; + flex-flow: row wrap; +} +.u-radio-group--column.data-v-272bb654 { + display: flex; + flex-direction: column; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.js new file mode 100644 index 0000000..5fd5a69 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.js @@ -0,0 +1,198 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-radio", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$9], + data() { + return { + checked: false, + // 当你看到这段代码的时候, + // 父组件的默认值,因为头条小程序不支持在computed中使用this.parent.shape的形式 + // 故只能使用如此方法 + parentData: { + iconSize: 12, + labelDisabled: null, + disabled: null, + shape: null, + activeColor: null, + inactiveColor: null, + size: 18, + value: null, + modelValue: null, + iconColor: null, + placement: "row", + borderBottom: false, + iconPlacement: "left" + } + }; + }, + computed: { + // 是否禁用,如果父组件u-raios-group禁用的话,将会忽略子组件的配置 + elDisabled() { + return this.disabled !== "" ? this.disabled : this.parentData.disabled !== null ? this.parentData.disabled : false; + }, + // 是否禁用label点击 + elLabelDisabled() { + return this.labelDisabled !== "" ? this.labelDisabled : this.parentData.labelDisabled !== null ? this.parentData.labelDisabled : false; + }, + // 组件尺寸,对应size的值,默认值为21px + elSize() { + return this.size ? this.size : this.parentData.size ? this.parentData.size : 21; + }, + // 组件的勾选图标的尺寸,默认12px + elIconSize() { + return this.iconSize ? this.iconSize : this.parentData.iconSize ? this.parentData.iconSize : 12; + }, + // 组件选中激活时的颜色 + elActiveColor() { + return this.activeColor ? this.activeColor : this.parentData.activeColor ? this.parentData.activeColor : "#2979ff"; + }, + // 组件选未中激活时的颜色 + elInactiveColor() { + return this.inactiveColor ? this.inactiveColor : this.parentData.inactiveColor ? this.parentData.inactiveColor : "#c8c9cc"; + }, + // label的颜色 + elLabelColor() { + return this.labelColor ? this.labelColor : this.parentData.labelColor ? this.parentData.labelColor : "#606266"; + }, + // 组件的形状 + elShape() { + return this.shape ? this.shape : this.parentData.shape ? this.parentData.shape : "circle"; + }, + // label大小 + elLabelSize() { + return common_vendor.addUnit(this.labelSize ? this.labelSize : this.parentData.labelSize ? this.parentData.labelSize : "15"); + }, + elIconColor() { + const iconColor = this.iconColor ? this.iconColor : this.parentData.iconColor ? this.parentData.iconColor : "#ffffff"; + if (this.elDisabled) { + return this.checked ? this.elInactiveColor : "transparent"; + } else { + return this.checked ? iconColor : "transparent"; + } + }, + iconClasses() { + let classes = []; + classes.push("u-radio__icon-wrap--" + this.elShape); + if (this.elDisabled) { + classes.push("u-radio__icon-wrap--disabled"); + } + if (this.checked && this.elDisabled) { + classes.push("u-radio__icon-wrap--disabled--checked"); + } + return classes; + }, + iconWrapStyle() { + const style = {}; + style.backgroundColor = this.checked && !this.elDisabled ? this.elActiveColor : "#ffffff"; + style.borderColor = this.checked && !this.elDisabled ? this.elActiveColor : this.elInactiveColor; + style.width = common_vendor.addUnit(this.elSize); + style.height = common_vendor.addUnit(this.elSize); + if (this.parentData.iconPlacement === "right") { + style.marginRight = 0; + } + return style; + }, + radioStyle() { + const style = {}; + if (this.parentData.borderBottom && this.parentData.placement === "row") { + common_vendor.error("检测到您将borderBottom设置为true,需要同时将u-radio-group的placement设置为column才有效"); + } + if (this.parentData.borderBottom && this.parentData.placement === "column") { + style.paddingBottom = common_vendor.os() === "ios" ? "12px" : "8px"; + } + return common_vendor.deepMerge(style, common_vendor.addStyle(this.customStyle)); + } + }, + mounted() { + this.init(); + }, + emits: ["change"], + methods: { + init() { + this.updateParentData(); + if (!this.parent) { + common_vendor.error("u-radio必须搭配u-radio-group组件使用"); + } + this.checked = this.name === this.parentData.modelValue; + }, + updateParentData() { + this.getParentData("u-radio-group"); + }, + // 点击图标 + iconClickHandler(e) { + this.preventEvent(e); + if (!this.elDisabled) { + this.setRadioCheckedStatus(); + } + }, + // 横向两端排列时,点击组件即可触发选中事件 + wrapperClickHandler(e) { + this.parentData.iconPlacement === "right" && this.iconClickHandler(e); + }, + // 点击label + labelClickHandler(e) { + this.preventEvent(e); + if (!this.elLabelDisabled && !this.elDisabled) { + this.setRadioCheckedStatus(); + } + }, + emitEvent() { + if (!this.checked) { + this.$emit("change", this.name); + this.$nextTick(() => { + common_vendor.formValidate(this, "change"); + }); + } + }, + // 改变组件选中状态 + // 这里的改变的依据是,更改本组件的checked值为true,同时通过父组件遍历所有u-radio实例 + // 将本组件外的其他u-radio的checked都设置为false(都被取消选中状态),因而只剩下一个为选中状态 + setRadioCheckedStatus() { + this.emitEvent(); + this.checked = true; + typeof this.parent.unCheckedOther === "function" && this.parent.unCheckedOther(this); + } + } +}; +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + _easycom_u_icon2(); +} +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +if (!Math) { + _easycom_u_icon(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.p({ + name: "checkbox-mark", + size: $options.elIconSize, + color: $options.elIconColor + }), + b: common_vendor.r("icon", { + elIconSize: $options.elIconSize, + elIconColor: $options.elIconColor + }), + c: common_vendor.o((...args) => $options.iconClickHandler && $options.iconClickHandler(...args)), + d: common_vendor.n($options.iconClasses), + e: common_vendor.s($options.iconWrapStyle), + f: common_vendor.t(_ctx.label), + g: _ctx.label, + h: $options.elDisabled ? $options.elInactiveColor : $options.elLabelColor, + i: $options.elLabelSize, + j: $options.elLabelSize, + k: common_vendor.r("label", { + label: _ctx.label, + elDisabled: $options.elDisabled + }), + l: common_vendor.o((...args) => $options.labelClickHandler && $options.labelClickHandler(...args)), + m: common_vendor.o((...args) => $options.wrapperClickHandler && $options.wrapperClickHandler(...args)), + n: common_vendor.s($options.radioStyle), + o: common_vendor.n(`u-radio-label--${$data.parentData.iconPlacement}`), + p: common_vendor.n($data.parentData.borderBottom && $data.parentData.placement === "column" && "u-border-bottom") + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-edf95844"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.json new file mode 100644 index 0000000..fcde44c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../u-icon/u-icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.wxml new file mode 100644 index 0000000..2ddd54f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.wxml @@ -0,0 +1 @@ +{{f}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.wxss new file mode 100644 index 0000000..fa1cc43 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-radio/u-radio.wxss @@ -0,0 +1,109 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-edf95844, +.u-empty__wrap.data-v-edf95844, +.u-tabs.data-v-edf95844, +.u-tabs__wrapper.data-v-edf95844, +.u-tabs__wrapper__scroll-view-wrapper.data-v-edf95844, +.u-tabs__wrapper__scroll-view.data-v-edf95844, +.u-tabs__wrapper__nav.data-v-edf95844, +.u-tabs__wrapper__nav__line.data-v-edf95844, +.up-empty.data-v-edf95844, +.up-empty__wrap.data-v-edf95844, +.up-tabs.data-v-edf95844, +.up-tabs__wrapper.data-v-edf95844, +.up-tabs__wrapper__scroll-view-wrapper.data-v-edf95844, +.up-tabs__wrapper__scroll-view.data-v-edf95844, +.up-tabs__wrapper__nav.data-v-edf95844, +.up-tabs__wrapper__nav__line.data-v-edf95844 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-radio.data-v-edf95844 { + display: flex; + flex-direction: row; + overflow: hidden; + flex-direction: row; + align-items: center; + margin-bottom: 5px; + margin-top: 5px; +} +.u-radio-label--left.data-v-edf95844 { + flex-direction: row; +} +.u-radio-label--right.data-v-edf95844 { + flex-direction: row-reverse; + justify-content: space-between; +} +.u-radio__icon-wrap.data-v-edf95844 { + box-sizing: border-box; + transition-property: border-color, background-color, color; + transition-duration: 0.2s; + color: #606266; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + color: transparent; + text-align: center; + margin-right: 6px; + font-size: 20px; + border-width: 1px; + border-color: #c8c9cc; + border-style: solid; +} +.u-radio__icon-wrap--circle.data-v-edf95844 { + border-radius: 100%; +} +.u-radio__icon-wrap--square.data-v-edf95844 { + border-radius: 3px; +} +.u-radio__icon-wrap--checked.data-v-edf95844 { + color: #fff; + background-color: red; + border-color: #2979ff; +} +.u-radio__icon-wrap--disabled.data-v-edf95844 { + background-color: #ebedf0 !important; +} +.u-radio__icon-wrap--disabled--checked.data-v-edf95844 { + color: #c8c9cc !important; +} +.u-radio__label.data-v-edf95844 { + word-wrap: break-word; + margin-left: 5px; + margin-right: 12px; + color: #606266; + font-size: 15px; +} +.u-radio__label--disabled.data-v-edf95844 { + color: #c8c9cc; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-safe-bottom/u-safe-bottom.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-safe-bottom/u-safe-bottom.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-safe-bottom/u-safe-bottom.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-safe-bottom/u-safe-bottom.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-safe-bottom/u-safe-bottom.wxml new file mode 100644 index 0000000..be7e4fe --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-safe-bottom/u-safe-bottom.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-safe-bottom/u-safe-bottom.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-safe-bottom/u-safe-bottom.wxss new file mode 100644 index 0000000..cab9fae --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-safe-bottom/u-safe-bottom.wxss @@ -0,0 +1,28 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-safe-bottom.data-v-3ec581de { + width: 100%; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-status-bar/u-status-bar.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-status-bar/u-status-bar.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-status-bar/u-status-bar.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-status-bar/u-status-bar.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-status-bar/u-status-bar.wxml new file mode 100644 index 0000000..14e5088 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-status-bar/u-status-bar.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-status-bar/u-status-bar.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-status-bar/u-status-bar.wxss new file mode 100644 index 0000000..fc08003 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-status-bar/u-status-bar.wxss @@ -0,0 +1,28 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-status-bar.data-v-c0b45a48 { + width: 100%; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.js new file mode 100644 index 0000000..76bbbfa --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.js @@ -0,0 +1,204 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-steps-item", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$7], + data() { + return { + index: 0, + childLength: 0, + showLine: false, + size: { + height: 0, + width: 0 + }, + parentData: { + direction: "row", + current: 0, + activeColor: "", + inactiveColor: "", + activeIcon: "", + inactiveIcon: "", + dot: false + } + }; + }, + watch: { + "parentData"(newValue, oldValue) { + } + }, + created() { + this.init(); + }, + computed: { + lineStyle() { + var _a, _b; + const style = {}; + if (this.parentData.direction === "row") { + style.width = this.size.width + "px"; + style.left = this.size.width / 2 + "px"; + } else { + style.height = this.size.height + "px"; + } + style.backgroundColor = ((_b = (_a = this.parent.children) == null ? void 0 : _a[this.index + 1]) == null ? void 0 : _b.error) ? common_vendor.color.error : this.index < this.parentData.current ? this.parentData.activeColor : this.parentData.inactiveColor; + return style; + }, + itemStyleInner() { + return { + ...this.itemStyle + }; + }, + statusClass() { + const { + index, + error + } = this; + const { + current + } = this.parentData; + if (current == index) { + return error === true ? "error" : "process"; + } else if (error) { + return "error"; + } else if (current > index) { + return "finish"; + } else { + return "wait"; + } + }, + statusColor() { + let colorTmp = ""; + switch (this.statusClass) { + case "finish": + colorTmp = this.parentData.activeColor; + break; + case "error": + colorTmp = common_vendor.color.error; + break; + case "process": + colorTmp = this.parentData.dot ? this.parentData.activeColor : "transparent"; + break; + default: + colorTmp = this.parentData.inactiveColor; + break; + } + return colorTmp; + }, + contentStyle() { + const style = {}; + if (this.parentData.direction === "column") { + style.marginLeft = this.parentData.dot ? "2px" : "6px"; + style.marginTop = this.parentData.dot ? "0px" : "6px"; + } else { + style.marginTop = this.parentData.dot ? "2px" : "6px"; + style.marginLeft = this.parentData.dot ? "2px" : "6px"; + } + return style; + } + }, + mounted() { + this.parent && this.parent.updateFromChild(); + common_vendor.sleep().then(() => { + this.getStepsItemRect(); + }); + }, + methods: { + init() { + this.updateParentData(); + if (!this.parent) { + return common_vendor.error("u-steps-item必须要搭配u-steps组件使用"); + } + this.index = this.parent.children.indexOf(this); + this.childLength = this.parent.children.length; + }, + updateParentData() { + this.getParentData("u-steps"); + }, + // 父组件数据发生变化 + updateFromParent() { + this.init(); + }, + // 获取组件的尺寸,用于设置横线的位置 + getStepsItemRect() { + this.$uGetRect(".u-steps-item").then((size) => { + this.size = size; + }); + } + } +}; +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_up_text2 = common_vendor.resolveComponent("up-text"); + (_easycom_u_icon2 + _easycom_up_text2)(); +} +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +const _easycom_up_text = () => "../u-text/u-text.js"; +if (!Math) { + (_easycom_u_icon + _easycom_up_text)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: $data.index + 1 < $data.childLength + }, $data.index + 1 < $data.childLength ? { + b: common_vendor.n(`u-steps-item__line--${$data.parentData.direction}`), + c: common_vendor.s($options.lineStyle) + } : {}, { + d: $data.parentData.dot + }, $data.parentData.dot ? { + e: $options.statusColor + } : $data.parentData.activeIcon || $data.parentData.inactiveIcon ? { + g: common_vendor.p({ + name: $data.index <= $data.parentData.current ? $data.parentData.activeIcon : $data.parentData.inactiveIcon, + size: _ctx.iconSize, + color: $data.index <= $data.parentData.current ? $data.parentData.activeColor : $data.parentData.inactiveColor + }) + } : common_vendor.e({ + h: $options.statusClass === "process" || $options.statusClass === "wait" + }, $options.statusClass === "process" || $options.statusClass === "wait" ? { + i: common_vendor.t($data.index + 1), + j: $data.index == $data.parentData.current ? "#ffffff" : $data.parentData.inactiveColor + } : { + k: common_vendor.p({ + color: $options.statusClass === "error" ? "error" : $data.parentData.activeColor, + size: "12", + name: $options.statusClass === "error" ? "close" : "checkmark" + }) + }, { + l: $options.statusClass === "process" ? $data.parentData.activeColor : "transparent", + m: $options.statusColor + }), { + f: $data.parentData.activeIcon || $data.parentData.inactiveIcon, + n: common_vendor.n(`u-steps-item__wrapper--${$data.parentData.direction}`), + o: common_vendor.n($data.parentData.dot && `u-steps-item__wrapper--${$data.parentData.direction}--dot`), + p: common_vendor.s($options.itemStyleInner), + q: common_vendor.r("content", { + index: $data.index + }), + r: !_ctx.$slots["content"] + }, !_ctx.$slots["content"] ? common_vendor.e({ + s: !_ctx.$slots["title"] + }, !_ctx.$slots["title"] ? { + t: common_vendor.p({ + text: _ctx.title, + type: $data.parentData.current == $data.index ? "main" : "content", + lineHeight: "20px", + size: $data.parentData.current == $data.index ? 14 : 13 + }) + } : {}, { + v: !_ctx.$slots["desc"] + }, !_ctx.$slots["desc"] ? { + w: common_vendor.p({ + text: _ctx.desc, + type: "tips", + size: "12" + }) + } : {}) : {}, { + x: common_vendor.n(`u-steps-item__content--${$data.parentData.direction}`), + y: common_vendor.n($data.parentData.current == $data.index ? "u-steps-item__content--current" : ""), + z: common_vendor.s($options.contentStyle), + A: common_vendor.n(`u-steps-item--${$data.parentData.direction}`) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-9f07ce7c"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.json new file mode 100644 index 0000000..3185d42 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../u-icon/u-icon", + "up-text": "../u-text/u-text" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.wxml new file mode 100644 index 0000000..b8be5e0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.wxml @@ -0,0 +1 @@ +{{i}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.wxss new file mode 100644 index 0000000..9f70147 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps-item/u-steps-item.wxss @@ -0,0 +1,146 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-9f07ce7c, +.u-empty__wrap.data-v-9f07ce7c, +.u-tabs.data-v-9f07ce7c, +.u-tabs__wrapper.data-v-9f07ce7c, +.u-tabs__wrapper__scroll-view-wrapper.data-v-9f07ce7c, +.u-tabs__wrapper__scroll-view.data-v-9f07ce7c, +.u-tabs__wrapper__nav.data-v-9f07ce7c, +.u-tabs__wrapper__nav__line.data-v-9f07ce7c, +.up-empty.data-v-9f07ce7c, +.up-empty__wrap.data-v-9f07ce7c, +.up-tabs.data-v-9f07ce7c, +.up-tabs__wrapper.data-v-9f07ce7c, +.up-tabs__wrapper__scroll-view-wrapper.data-v-9f07ce7c, +.up-tabs__wrapper__scroll-view.data-v-9f07ce7c, +.up-tabs__wrapper__nav.data-v-9f07ce7c, +.up-tabs__wrapper__nav__line.data-v-9f07ce7c { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-steps-item.data-v-9f07ce7c { + flex: 1; + display: flex; + flex-direction: row; +} +.u-steps-item--row.data-v-9f07ce7c { + flex-direction: column; + align-items: center; + position: relative; +} +.u-steps-item--column.data-v-9f07ce7c { + position: relative; + flex-direction: row; + justify-content: flex-start; + padding-bottom: 5px; +} +.u-steps-item__wrapper.data-v-9f07ce7c { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + position: relative; + background-color: #fff; + border-radius: 50px; +} +.u-steps-item__wrapper--column.data-v-9f07ce7c { + width: 20px; + height: 20px; +} +.u-steps-item__wrapper--column--dot.data-v-9f07ce7c { + height: 20px; + width: 20px; +} +.u-steps-item__wrapper--row.data-v-9f07ce7c { + width: 20px; + height: 20px; +} +.u-steps-item__wrapper--row--dot.data-v-9f07ce7c { + width: 20px; + height: 20px; +} +.u-steps-item__wrapper__circle.data-v-9f07ce7c { + width: 20px; + height: 20px; + box-sizing: border-box; + flex-shrink: 0; + border-radius: 100px; + border-width: 1px; + border-color: #909193; + border-style: solid; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + transition: background-color 0.3s; +} +.u-steps-item__wrapper__circle__text.data-v-9f07ce7c { + color: #909193; + font-size: 11px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + text-align: center; + line-height: 11px; +} +.u-steps-item__wrapper__dot.data-v-9f07ce7c { + width: 10px; + height: 10px; + border-radius: 100px; + background-color: #606266; +} +.u-steps-item__content.data-v-9f07ce7c { + display: flex; + flex-direction: row; + flex: 1; +} +.u-steps-item__content--row.data-v-9f07ce7c { + flex-direction: column; + align-items: center; +} +.u-steps-item__content--column.data-v-9f07ce7c { + flex-direction: column; + margin-left: 6px; +} +.u-steps-item__line.data-v-9f07ce7c { + position: absolute; + background: #909193; +} +.u-steps-item__line--row.data-v-9f07ce7c { + top: 10px; + height: 1px; +} +.u-steps-item__line--column.data-v-9f07ce7c { + width: 1px; + left: 10px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.js new file mode 100644 index 0000000..c2cf693 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.js @@ -0,0 +1,49 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-steps", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$8], + data() { + return {}; + }, + watch: { + children() { + this.updateChildData(); + }, + parentData() { + this.updateChildData(); + } + }, + computed: { + // 监听参数的变化,通过watch中,手动去更新子组件的数据,否则子组件不会自动变化 + parentData() { + return [this.current, this.direction, this.activeColor, this.inactiveColor, this.activeIcon, this.inactiveIcon, this.dot]; + } + }, + methods: { + // 更新子组件的数据 + updateChildData() { + this.children.map((child) => { + common_vendor.test.func((child || {}).updateFromParent()) && child.updateFromParent(); + }); + }, + // 接受子组件的通知,去修改其他子组件的数据 + updateFromChild() { + this.updateChildData(); + } + }, + created() { + this.children = []; + }, + options: { + virtualHost: false + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.n(`u-steps--${_ctx.direction}`) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-30d91cab"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.wxml new file mode 100644 index 0000000..b9abb13 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.wxss new file mode 100644 index 0000000..f943fae --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-steps/u-steps.wxss @@ -0,0 +1,62 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-30d91cab, +.u-empty__wrap.data-v-30d91cab, +.u-tabs.data-v-30d91cab, +.u-tabs__wrapper.data-v-30d91cab, +.u-tabs__wrapper__scroll-view-wrapper.data-v-30d91cab, +.u-tabs__wrapper__scroll-view.data-v-30d91cab, +.u-tabs__wrapper__nav.data-v-30d91cab, +.u-tabs__wrapper__nav__line.data-v-30d91cab, +.up-empty.data-v-30d91cab, +.up-empty__wrap.data-v-30d91cab, +.up-tabs.data-v-30d91cab, +.up-tabs__wrapper.data-v-30d91cab, +.up-tabs__wrapper__scroll-view-wrapper.data-v-30d91cab, +.up-tabs__wrapper__scroll-view.data-v-30d91cab, +.up-tabs__wrapper__nav.data-v-30d91cab, +.up-tabs__wrapper__nav__line.data-v-30d91cab { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-steps.data-v-30d91cab { + display: flex; + flex-direction: row; +} +.u-steps--column.data-v-30d91cab { + flex-direction: column; +} +.u-steps--row.data-v-30d91cab { + flex-direction: row; + flex: 1; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.js new file mode 100644 index 0000000..46c2a7a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.js @@ -0,0 +1,98 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-tabbar-item", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$25], + data() { + return { + isActive: false, + // 是否处于激活状态 + parentData: { + value: null, + activeColor: "", + inactiveColor: "" + } + }; + }, + // 微信小程序中 options 选项 + options: { + virtualHost: true + //将自定义节点设置成虚拟的,更加接近Vue组件的表现。我们不希望自定义组件的这个节点本身可以设置样式、响应 flex 布局等 + }, + created() { + this.init(); + }, + emits: ["click", "change"], + methods: { + addStyle: common_vendor.addStyle, + init() { + this.updateParentData(); + if (!this.parent) { + common_vendor.error("u-tabbar-item必须搭配u-tabbar组件使用"); + } + const index = this.parent.children.indexOf(this); + this.isActive = (this.name || index) === this.parentData.value; + }, + updateParentData() { + this.getParentData("u-tabbar"); + }, + // 此方法将会被父组件u-tabbar调用 + updateFromParent() { + this.init(); + }, + clickHandler() { + this.$nextTick(() => { + const index = this.parent.children.indexOf(this); + const name = this.name || index; + if (name !== this.parent.value) { + this.parent.$emit("change", name); + } + this.$emit("click", name); + }); + } + } +}; +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_u_badge2 = common_vendor.resolveComponent("u-badge"); + (_easycom_u_icon2 + _easycom_u_badge2)(); +} +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +const _easycom_u_badge = () => "../u-badge/u-badge.js"; +if (!Math) { + (_easycom_u_icon + _easycom_u_badge)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: common_vendor.t(_ctx.icon), + b: _ctx.icon + }, _ctx.icon ? { + c: common_vendor.p({ + name: _ctx.icon, + color: $data.isActive ? $data.parentData.activeColor : $data.parentData.inactiveColor, + size: 20 + }) + } : common_vendor.e({ + d: $data.isActive + }, $data.isActive ? { + e: _ctx.activeIcon + } : { + f: _ctx.inactiveIcon + }), { + g: common_vendor.p({ + absolute: true, + offset: [0, _ctx.dot ? "34rpx" : _ctx.badge > 9 ? "14rpx" : "20rpx"], + customStyle: _ctx.badgeStyle, + isDot: _ctx.dot, + value: _ctx.badge || (_ctx.dot ? 1 : null), + show: _ctx.dot || _ctx.badge > 0 + }), + h: common_vendor.t(_ctx.text), + i: $data.isActive ? $data.parentData.activeColor : $data.parentData.inactiveColor, + j: common_vendor.s($options.addStyle(_ctx.customStyle)), + k: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-a54be951"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.json new file mode 100644 index 0000000..716e978 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../u-icon/u-icon", + "u-badge": "../u-badge/u-badge" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.wxml new file mode 100644 index 0000000..16aa602 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.wxml @@ -0,0 +1 @@ +{{a}} {{h}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.wxss new file mode 100644 index 0000000..405632d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar-item/u-tabbar-item.wxss @@ -0,0 +1,77 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-a54be951, +.u-empty__wrap.data-v-a54be951, +.u-tabs.data-v-a54be951, +.u-tabs__wrapper.data-v-a54be951, +.u-tabs__wrapper__scroll-view-wrapper.data-v-a54be951, +.u-tabs__wrapper__scroll-view.data-v-a54be951, +.u-tabs__wrapper__nav.data-v-a54be951, +.u-tabs__wrapper__nav__line.data-v-a54be951, +.up-empty.data-v-a54be951, +.up-empty__wrap.data-v-a54be951, +.up-tabs.data-v-a54be951, +.up-tabs__wrapper.data-v-a54be951, +.up-tabs__wrapper__scroll-view-wrapper.data-v-a54be951, +.up-tabs__wrapper__scroll-view.data-v-a54be951, +.up-tabs__wrapper__nav.data-v-a54be951, +.up-tabs__wrapper__nav__line.data-v-a54be951 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-tabbar-item.data-v-a54be951 { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + flex: 1; + width: 100%; + height: 100%; +} +.u-tabbar-item__icon.data-v-a54be951 { + display: flex; + flex-direction: row; + position: relative; + width: 150rpx; + justify-content: center; +} +.u-tabbar-item__text.data-v-a54be951 { + font-size: 12px; + color: #606266; +} +.data-v-a54be951:host { + flex: 1; + width: 100%; +} +.u-page__item__slot-icon.data-v-a54be951 { + width: 47rpx; + height: 47rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.js new file mode 100644 index 0000000..71e5228 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.js @@ -0,0 +1,78 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-tabbar", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$26], + data() { + return { + placeholderHeight: 0 + }; + }, + computed: { + tabbarStyle() { + const style = { + zIndex: this.zIndex + }; + return common_vendor.deepMerge(style, common_vendor.addStyle(this.customStyle)); + }, + // 监听多个参数的变化,通过在computed执行对应的操作 + updateChild() { + return [this.value, this.activeColor, this.inactiveColor]; + }, + updatePlaceholder() { + return [this.fixed, this.placeholder]; + } + }, + watch: { + updateChild() { + this.updateChildren(); + }, + updatePlaceholder() { + this.setPlaceholderHeight(); + } + }, + created() { + this.children = []; + }, + mounted() { + this.setPlaceholderHeight(); + }, + methods: { + updateChildren() { + this.children.length && this.children.map((child) => child.updateFromParent()); + }, + // 设置用于防止塌陷元素的高度 + async setPlaceholderHeight() { + if (!this.fixed || !this.placeholder) + return; + await common_vendor.sleep(20); + this.$uGetRect(".u-tabbar__content").then(({ height = 50 }) => { + this.placeholderHeight = height; + }); + } + } +}; +if (!Array) { + const _easycom_u_safe_bottom2 = common_vendor.resolveComponent("u-safe-bottom"); + _easycom_u_safe_bottom2(); +} +const _easycom_u_safe_bottom = () => "../u-safe-bottom/u-safe-bottom.js"; +if (!Math) { + _easycom_u_safe_bottom(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.safeAreaInsetBottom + }, _ctx.safeAreaInsetBottom ? {} : {}, { + b: common_vendor.o((...args) => _ctx.noop && _ctx.noop(...args)), + c: common_vendor.n(_ctx.border && "u-border-top"), + d: common_vendor.n(_ctx.fixed && "u-tabbar--fixed"), + e: common_vendor.s($options.tabbarStyle), + f: _ctx.placeholder + }, _ctx.placeholder ? { + g: $data.placeholderHeight + "px" + } : {}); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-d5be2d5d"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.json new file mode 100644 index 0000000..0ca401a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "u-safe-bottom": "../u-safe-bottom/u-safe-bottom" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.wxml new file mode 100644 index 0000000..952f675 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.wxss new file mode 100644 index 0000000..c72b124 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabbar/u-tabbar.wxss @@ -0,0 +1,73 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-d5be2d5d, +.u-empty__wrap.data-v-d5be2d5d, +.u-tabs.data-v-d5be2d5d, +.u-tabs__wrapper.data-v-d5be2d5d, +.u-tabs__wrapper__scroll-view-wrapper.data-v-d5be2d5d, +.u-tabs__wrapper__scroll-view.data-v-d5be2d5d, +.u-tabs__wrapper__nav.data-v-d5be2d5d, +.u-tabs__wrapper__nav__line.data-v-d5be2d5d, +.up-empty.data-v-d5be2d5d, +.up-empty__wrap.data-v-d5be2d5d, +.up-tabs.data-v-d5be2d5d, +.up-tabs__wrapper.data-v-d5be2d5d, +.up-tabs__wrapper__scroll-view-wrapper.data-v-d5be2d5d, +.up-tabs__wrapper__scroll-view.data-v-d5be2d5d, +.up-tabs__wrapper__nav.data-v-d5be2d5d, +.up-tabs__wrapper__nav__line.data-v-d5be2d5d { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-tabbar.data-v-d5be2d5d { + display: flex; + flex-direction: column; + flex: 1; + justify-content: center; +} +.u-tabbar__content.data-v-d5be2d5d { + display: flex; + flex-direction: column; + background-color: #fff; +} +.u-tabbar__content__item-wrapper.data-v-d5be2d5d { + border-top: 2rpx solid #f3f4f6 !important; + height: 74px; + display: flex; + flex-direction: row; + justify-content: space-around; +} +.u-tabbar--fixed.data-v-d5be2d5d { + position: fixed; + bottom: 0; + left: 0; + right: 0; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.js new file mode 100644 index 0000000..2d8c8b4 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.js @@ -0,0 +1,261 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-tabs", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$18], + data() { + return { + firstTime: true, + scrollLeft: 0, + scrollViewWidth: 0, + lineOffsetLeft: 0, + tabsRect: { + left: 0 + }, + innerCurrent: 0, + moving: false + }; + }, + watch: { + current: { + immediate: true, + handler(newValue, oldValue) { + if (newValue !== this.innerCurrent) { + if (typeof newValue == "string") { + this.innerCurrent = parseInt(newValue); + } else { + this.innerCurrent = newValue; + } + this.$nextTick(() => { + this.resize(); + }); + } + } + }, + // list变化时,重新渲染list各项信息 + list() { + this.$nextTick(() => { + this.resize(); + }); + } + }, + computed: { + textStyle() { + return (index) => { + const style = {}; + const customeStyle = index == this.innerCurrent ? common_vendor.addStyle(this.activeStyle) : common_vendor.addStyle(this.inactiveStyle); + if (this.list[index].disabled) { + style.color = "#c8c9cc"; + } + return common_vendor.deepMerge(customeStyle, style); + }; + }, + propsBadge() { + return common_vendor.props$14.badge; + } + }, + async mounted() { + this.init(); + }, + emits: ["click", "longPress", "change", "update:current"], + methods: { + addStyle: common_vendor.addStyle, + addUnit: common_vendor.addUnit, + setLineLeft() { + const tabItem = this.list[this.innerCurrent]; + if (!tabItem) { + return; + } + let lineOffsetLeft = this.list.slice(0, this.innerCurrent).reduce((total, curr) => total + curr.rect.width, 0); + const lineWidth = common_vendor.getPx(this.lineWidth); + this.lineOffsetLeft = lineOffsetLeft + (tabItem.rect.width - lineWidth) / 2; + if (this.firstTime) { + setTimeout(() => { + this.firstTime = false; + }, 10); + } + }, + // nvue下设置滑块的位置 + animation(x, duration = 0) { + }, + // 点击某一个标签 + clickHandler(item, index) { + this.$emit("click", { + ...item, + index + }, index); + if (item.disabled) + return; + this.innerCurrent = index; + this.resize(); + this.$emit("update:current", index); + this.$emit("change", { + ...item, + index + }, index); + }, + // 长按事件 + longPressHandler(item, index) { + this.$emit("longPress", { + ...item, + index + }); + }, + init() { + common_vendor.sleep().then(() => { + this.resize(); + }); + }, + setScrollLeft() { + if (this.innerCurrent < 0) { + this.innerCurrent = 0; + } + const tabRect = this.list[this.innerCurrent]; + const offsetLeft = this.list.slice(0, this.innerCurrent).reduce((total, curr) => { + return total + curr.rect.width; + }, 0); + const windowWidth = common_vendor.getWindowInfo().windowWidth; + let scrollLeft = offsetLeft - (this.tabsRect.width - tabRect.rect.width) / 2 - (windowWidth - this.tabsRect.right) / 2 + this.tabsRect.left / 2; + scrollLeft = Math.min(scrollLeft, this.scrollViewWidth - this.tabsRect.width); + this.scrollLeft = Math.max(0, scrollLeft); + }, + // 获取所有标签的尺寸 + resize() { + if (this.list.length === 0) { + return; + } + Promise.all([this.getTabsRect(), this.getAllItemRect()]).then(([tabsRect, itemRect = []]) => { + if (tabsRect.left > tabsRect.width) { + tabsRect.right = tabsRect.right - Math.floor(tabsRect.left / tabsRect.width) * tabsRect.width; + tabsRect.left = tabsRect.left % tabsRect.width; + } + this.tabsRect = tabsRect; + this.scrollViewWidth = 0; + itemRect.map((item, index) => { + this.scrollViewWidth += item.width; + this.list[index].rect = item; + }); + this.setLineLeft(); + this.setScrollLeft(); + }); + }, + // 获取导航菜单的尺寸 + getTabsRect() { + return new Promise((resolve) => { + this.queryRect("u-tabs__wrapper__scroll-view").then((size) => resolve(size)); + }); + }, + // 获取所有标签的尺寸 + getAllItemRect() { + return new Promise((resolve) => { + const promiseAllArr = this.list.map((item, index) => this.queryRect( + `u-tabs__wrapper__nav__item-${index}`, + true + )); + Promise.all(promiseAllArr).then((sizes) => resolve(sizes)); + }); + }, + // 获取各个标签的尺寸 + queryRect(el, item) { + return new Promise((resolve) => { + this.$uGetRect(`.${el}`).then((size) => { + resolve(size); + }); + }); + } + } +}; +if (!Array) { + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + const _easycom_u_badge2 = common_vendor.resolveComponent("u-badge"); + (_easycom_up_icon2 + _easycom_u_badge2)(); +} +const _easycom_up_icon = () => "../u-icon/u-icon.js"; +const _easycom_u_badge = () => "../u-badge/u-badge.js"; +if (!Math) { + (_easycom_up_icon + _easycom_u_badge)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.f(_ctx.list, (item, index, i0) => { + return common_vendor.e(_ctx.$slots.icon ? { + a: "icon-" + i0, + b: common_vendor.r("icon", { + item, + keyName: _ctx.keyName, + index + }, i0) + } : common_vendor.e({ + c: item.icon + }, item.icon ? { + d: "0546c3e4-0-" + i0, + e: common_vendor.p({ + name: item.icon, + customStyle: $options.addStyle(_ctx.iconStyle) + }) + } : {}), _ctx.$slots.content ? { + f: "content-" + i0, + g: common_vendor.r("content", { + item, + keyName: _ctx.keyName, + index + }, i0) + } : !_ctx.$slots.content && (_ctx.$slots.default || _ctx.$slots.$default) ? { + h: "d-" + i0, + i: common_vendor.r("d", { + item, + keyName: _ctx.keyName, + index + }, i0) + } : { + j: common_vendor.t(item[_ctx.keyName]), + k: common_vendor.n(item.disabled && "u-tabs__wrapper__nav__item__text--disabled"), + l: common_vendor.s($options.textStyle(index)) + }, { + m: "0546c3e4-1-" + i0, + n: common_vendor.p({ + show: !!(item.badge && (item.badge.show || item.badge.isDot || item.badge.value)), + isDot: item.badge && item.badge.isDot || $options.propsBadge.isDot, + value: item.badge && item.badge.value || $options.propsBadge.value, + max: item.badge && item.badge.max || $options.propsBadge.max, + type: item.badge && item.badge.type || $options.propsBadge.type, + showZero: item.badge && item.badge.showZero || $options.propsBadge.showZero, + bgColor: item.badge && item.badge.bgColor || $options.propsBadge.bgColor, + color: item.badge && item.badge.color || $options.propsBadge.color, + shape: item.badge && item.badge.shape || $options.propsBadge.shape, + numberType: item.badge && item.badge.numberType || $options.propsBadge.numberType, + inverted: item.badge && item.badge.inverted || $options.propsBadge.inverted, + customStyle: "margin-left: 4px;" + }), + o: index, + p: common_vendor.o(($event) => $options.clickHandler(item, index), index), + q: common_vendor.o(($event) => $options.longPressHandler(item, index), index), + r: `u-tabs__wrapper__nav__item-${index}`, + s: common_vendor.n(`u-tabs__wrapper__nav__item-${index}`), + t: common_vendor.n(item.disabled && "u-tabs__wrapper__nav__item--disabled"), + v: common_vendor.n($data.innerCurrent == index ? "u-tabs__wrapper__nav__item-active" : "") + }); + }), + b: _ctx.$slots.icon, + c: _ctx.$slots.content, + d: !_ctx.$slots.content && (_ctx.$slots.default || _ctx.$slots.$default), + e: common_vendor.s($options.addStyle(_ctx.itemStyle)), + f: common_vendor.s({ + flex: _ctx.scrollable ? "" : 1 + }), + g: common_vendor.s({ + width: $options.addUnit(_ctx.lineWidth), + transform: `translate(${$data.lineOffsetLeft}px)`, + transitionDuration: `${$data.firstTime ? 0 : _ctx.duration}ms`, + height: $options.addUnit(_ctx.lineHeight), + background: _ctx.lineColor, + backgroundSize: _ctx.lineBgSize + }), + h: _ctx.scrollable, + i: $data.scrollLeft, + j: common_vendor.n(_ctx.customClass) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-0546c3e4"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.json new file mode 100644 index 0000000..bab8d82 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "up-icon": "../u-icon/u-icon", + "u-badge": "../u-badge/u-badge" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.wxml new file mode 100644 index 0000000..a37eae0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.wxml @@ -0,0 +1 @@ +{{item.j}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.wxss new file mode 100644 index 0000000..7557a28 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tabs/u-tabs.wxss @@ -0,0 +1,93 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-0546c3e4, +.u-empty__wrap.data-v-0546c3e4, +.u-tabs.data-v-0546c3e4, +.u-tabs__wrapper.data-v-0546c3e4, +.u-tabs__wrapper__scroll-view-wrapper.data-v-0546c3e4, +.u-tabs__wrapper__scroll-view.data-v-0546c3e4, +.u-tabs__wrapper__nav.data-v-0546c3e4, +.u-tabs__wrapper__nav__line.data-v-0546c3e4, +.up-empty.data-v-0546c3e4, +.up-empty__wrap.data-v-0546c3e4, +.up-tabs.data-v-0546c3e4, +.up-tabs__wrapper.data-v-0546c3e4, +.up-tabs__wrapper__scroll-view-wrapper.data-v-0546c3e4, +.up-tabs__wrapper__scroll-view.data-v-0546c3e4, +.up-tabs__wrapper__nav.data-v-0546c3e4, +.up-tabs__wrapper__nav__line.data-v-0546c3e4 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-tabs__wrapper.data-v-0546c3e4 { + display: flex; + flex-direction: row; + align-items: center; +} +.u-tabs__wrapper__scroll-view-wrapper.data-v-0546c3e4 { + flex: 1; + overflow: auto hidden; +} +.u-tabs__wrapper__scroll-view.data-v-0546c3e4 { + display: flex; + flex-direction: row; + flex: 1; +} +.u-tabs__wrapper__nav.data-v-0546c3e4 { + display: flex; + flex-direction: row; + position: relative; +} +.u-tabs__wrapper__nav__item.data-v-0546c3e4 { + padding: 0 11px; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; +} +.u-tabs__wrapper__nav__item__text.data-v-0546c3e4 { + font-size: 15px; + color: #606266; + white-space: nowrap !important; +} +.u-tabs__wrapper__nav__item__text--disabled.data-v-0546c3e4 { + color: #c8c9cc !important; +} +.u-tabs__wrapper__nav__line.data-v-0546c3e4 { + height: 3px; + background: #3c9cff; + width: 30px; + position: absolute; + bottom: 2px; + border-radius: 100px; + transition-property: transform; + transition-duration: 300ms; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-text/u-text.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-text/u-text.json new file mode 100644 index 0000000..2056454 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-text/u-text.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../u-icon/u-icon", + "u-link": "../u-link/u-link" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-text/u-text.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-text/u-text.wxml new file mode 100644 index 0000000..0b39b76 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-text/u-text.wxml @@ -0,0 +1 @@ +{{G}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-text/u-text.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-text/u-text.wxss new file mode 100644 index 0000000..1d34284 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-text/u-text.wxss @@ -0,0 +1,95 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-5fec1d8b, +.u-empty__wrap.data-v-5fec1d8b, +.u-tabs.data-v-5fec1d8b, +.u-tabs__wrapper.data-v-5fec1d8b, +.u-tabs__wrapper__scroll-view-wrapper.data-v-5fec1d8b, +.u-tabs__wrapper__scroll-view.data-v-5fec1d8b, +.u-tabs__wrapper__nav.data-v-5fec1d8b, +.u-tabs__wrapper__nav__line.data-v-5fec1d8b, +.up-empty.data-v-5fec1d8b, +.up-empty__wrap.data-v-5fec1d8b, +.up-tabs.data-v-5fec1d8b, +.up-tabs__wrapper.data-v-5fec1d8b, +.up-tabs__wrapper__scroll-view-wrapper.data-v-5fec1d8b, +.up-tabs__wrapper__scroll-view.data-v-5fec1d8b, +.up-tabs__wrapper__nav.data-v-5fec1d8b, +.up-tabs__wrapper__nav__line.data-v-5fec1d8b { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-text.data-v-5fec1d8b { + display: flex; + flex-direction: row; + align-items: center; + flex-wrap: nowrap; +} +.u-text__price.data-v-5fec1d8b { + font-size: 14px; + color: #606266; +} +.u-text__value.data-v-5fec1d8b { + font-size: 14px; + display: flex; + flex-direction: row; + color: #606266; + flex-wrap: wrap; + text-overflow: ellipsis; + align-items: center; +} +.u-text__value--primary.data-v-5fec1d8b { + color: #3c9cff; +} +.u-text__value--warning.data-v-5fec1d8b { + color: #f9ae3d; +} +.u-text__value--success.data-v-5fec1d8b { + color: #5ac725; +} +.u-text__value--info.data-v-5fec1d8b { + color: #909399; +} +.u-text__value--error.data-v-5fec1d8b { + color: #f56c6c; +} +.u-text__value--main.data-v-5fec1d8b { + color: #303133; +} +.u-text__value--content.data-v-5fec1d8b { + color: #606266; +} +.u-text__value--tips.data-v-5fec1d8b { + color: #909193; +} +.u-text__value--light.data-v-5fec1d8b { + color: #c0c4cc; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.js new file mode 100644 index 0000000..a6c7d92 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.js @@ -0,0 +1,145 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-textarea", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$2], + data() { + return { + // 输入框的值 + innerValue: "", + // 是否处于获得焦点状态 + focused: false, + // value是否第一次变化,在watch中,由于加入immediate属性,会在第一次触发,此时不应该认为value发生了变化 + firstChange: true, + // value绑定值的变化是由内部还是外部引起的 + changeFromInner: false, + // 过滤处理方法 + innerFormatter: (value) => value + }; + }, + created() { + }, + watch: { + modelValue: { + immediate: true, + handler(newVal, oldVal) { + this.innerValue = newVal; + this.firstChange = false; + this.changeFromInner = false; + } + } + }, + computed: { + fieldStyle() { + let style = {}; + style["height"] = common_vendor.addUnit(this.height); + if (this.autoHeight) { + style["height"] = "auto"; + style["minHeight"] = common_vendor.addUnit(this.height); + } + return style; + }, + // 组件的类名 + textareaClass() { + let classes = [], { border, disabled } = this; + border === "surround" && (classes = classes.concat(["u-border", "u-textarea--radius"])); + border === "bottom" && (classes = classes.concat([ + "u-border-bottom", + "u-textarea--no-radius" + ])); + disabled && classes.push("u-textarea--disabled"); + return classes.join(" "); + }, + // 组件的样式 + textareaStyle() { + const style = {}; + return common_vendor.deepMerge(style, common_vendor.addStyle(this.customStyle)); + } + }, + emits: ["update:modelValue", "linechange", "focus", "blur", "change", "confirm", "keyboardheightchange"], + methods: { + addStyle: common_vendor.addStyle, + addUnit: common_vendor.addUnit, + // 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用 + setFormatter(e) { + this.innerFormatter = e; + }, + onFocus(e) { + this.$emit("focus", e); + }, + onBlur(e) { + this.$emit("blur", e); + common_vendor.formValidate(this, "blur"); + }, + onLinechange(e) { + this.$emit("linechange", e); + }, + onInput(e) { + let { value = "" } = e.detail || {}; + const formatter = this.formatter || this.innerFormatter; + const formatValue = formatter(value); + this.innerValue = value; + this.$nextTick(() => { + this.innerValue = formatValue; + this.valueChange(); + }); + }, + // 内容发生变化,进行处理 + valueChange() { + const value = this.innerValue; + this.$nextTick(() => { + this.$emit("update:modelValue", value); + this.changeFromInner = true; + this.$emit("change", value); + common_vendor.formValidate(this, "change"); + }); + }, + onConfirm(e) { + this.$emit("confirm", e); + }, + onKeyboardheightchange(e) { + this.$emit("keyboardheightchange", e); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: $data.innerValue, + b: common_vendor.s($options.fieldStyle), + c: _ctx.placeholder, + d: $options.addStyle(_ctx.placeholderStyle, typeof _ctx.placeholderStyle === "string" ? "string" : "object"), + e: _ctx.placeholderClass, + f: _ctx.disabled, + g: _ctx.focus, + h: _ctx.autoHeight, + i: _ctx.fixed, + j: _ctx.cursorSpacing, + k: _ctx.cursor, + l: _ctx.showConfirmBar, + m: _ctx.selectionStart, + n: _ctx.selectionEnd, + o: _ctx.adjustPosition, + p: _ctx.disableDefaultPadding, + q: _ctx.holdKeyboard, + r: _ctx.maxlength, + s: _ctx.confirmType, + t: _ctx.ignoreCompositionEvent, + v: common_vendor.o((...args) => $options.onFocus && $options.onFocus(...args)), + w: common_vendor.o((...args) => $options.onBlur && $options.onBlur(...args)), + x: common_vendor.o((...args) => $options.onLinechange && $options.onLinechange(...args)), + y: common_vendor.o((...args) => $options.onInput && $options.onInput(...args)), + z: common_vendor.o((...args) => $options.onConfirm && $options.onConfirm(...args)), + A: common_vendor.o((...args) => $options.onKeyboardheightchange && $options.onKeyboardheightchange(...args)), + B: _ctx.count + }, _ctx.count ? { + C: common_vendor.t($data.innerValue.length), + D: common_vendor.t(_ctx.maxlength), + E: _ctx.disabled ? "transparent" : "#fff" + } : {}, { + F: common_vendor.n($options.textareaClass), + G: common_vendor.s($options.textareaStyle) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-31706dd7"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.wxml new file mode 100644 index 0000000..76bb3d4 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.wxml @@ -0,0 +1 @@ +{{C}}/{{D}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.wxss new file mode 100644 index 0000000..a1ecfc9 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-textarea/u-textarea.wxss @@ -0,0 +1,82 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-31706dd7, +.u-empty__wrap.data-v-31706dd7, +.u-tabs.data-v-31706dd7, +.u-tabs__wrapper.data-v-31706dd7, +.u-tabs__wrapper__scroll-view-wrapper.data-v-31706dd7, +.u-tabs__wrapper__scroll-view.data-v-31706dd7, +.u-tabs__wrapper__nav.data-v-31706dd7, +.u-tabs__wrapper__nav__line.data-v-31706dd7, +.up-empty.data-v-31706dd7, +.up-empty__wrap.data-v-31706dd7, +.up-tabs.data-v-31706dd7, +.up-tabs__wrapper.data-v-31706dd7, +.up-tabs__wrapper__scroll-view-wrapper.data-v-31706dd7, +.up-tabs__wrapper__scroll-view.data-v-31706dd7, +.up-tabs__wrapper__nav.data-v-31706dd7, +.up-tabs__wrapper__nav__line.data-v-31706dd7 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-textarea.data-v-31706dd7 { + border-radius: 4px; + background-color: #fff; + position: relative; + display: flex; + flex-direction: row; + flex: 1; + padding: 9px; +} +.u-textarea--radius.data-v-31706dd7 { + border-radius: 4px; +} +.u-textarea--no-radius.data-v-31706dd7 { + border-radius: 0; +} +.u-textarea--disabled.data-v-31706dd7 { + background-color: #f5f7fa; +} +.u-textarea__field.data-v-31706dd7 { + flex: 1; + font-size: 15px; + color: #606266; + width: 100%; +} +.u-textarea__count.data-v-31706dd7 { + position: absolute; + right: 5px; + bottom: 2px; + font-size: 12px; + color: #909193; + background-color: #ffffff; + padding: 1px 4px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.js new file mode 100644 index 0000000..21277a9 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.js @@ -0,0 +1,171 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-toast", + mixins: [common_vendor.mpMixin, common_vendor.mixin], + data() { + return { + isShow: false, + timer: null, + // 定时器 + config: { + message: "", + // 显示文本 + type: "", + // 主题类型,primary,success,error,warning,black + duration: 2e3, + // 显示的时间,毫秒 + icon: true, + // 显示的图标 + position: "center", + // toast出现的位置 + complete: null, + // 执行完后的回调函数 + overlay: true, + // 是否防止触摸穿透 + loading: false + // 是否加载中状态 + }, + tmpConfig: {} + // 将用户配置和内置配置合并后的临时配置变量 + }; + }, + computed: { + iconName() { + if (!this.tmpConfig.icon || this.tmpConfig.icon == "none") { + return ""; + } + if (this.tmpConfig.icon === true) { + if (["error", "warning", "success", "primary"].includes(this.tmpConfig.type)) { + return common_vendor.type2icon(this.tmpConfig.type); + } else { + return ""; + } + } else { + return this.tmpConfig.icon; + } + }, + overlayStyle() { + const style = { + justifyContent: "center", + alignItems: "center", + display: "flex" + }; + style.backgroundColor = "rgba(0, 0, 0, 0)"; + return style; + }, + iconStyle() { + const style = {}; + style.marginRight = "4px"; + return style; + }, + loadingIconColor() { + let colorTmp = "rgb(255, 255, 255)"; + if (["error", "warning", "success", "primary"].includes(this.tmpConfig.type)) { + colorTmp = common_vendor.hexToRgb(common_vendor.color[this.tmpConfig.type]); + } + return colorTmp; + }, + // 内容盒子的样式 + contentStyle() { + const windowHeight = common_vendor.getWindowInfo().windowHeight, style = {}; + let value = 0; + if (this.tmpConfig.position === "top") { + value = -windowHeight * 0.25; + } else if (this.tmpConfig.position === "bottom") { + value = windowHeight * 0.25; + } + style.transform = `translateY(${value}px)`; + return style; + } + }, + created() { + ["primary", "success", "error", "warning", "default", "loading"].map((item) => { + this[item] = (message) => this.show({ + type: item, + message + }); + }); + }, + methods: { + // 显示toast组件,由父组件通过this.$refs.xxx.show(options)形式调用 + show(options) { + this.tmpConfig = common_vendor.deepMerge(this.config, options); + this.clearTimer(); + this.isShow = true; + if (this.tmpConfig.duration !== -1) { + this.timer = setTimeout(() => { + this.clearTimer(); + typeof this.tmpConfig.complete === "function" && this.tmpConfig.complete(); + }, this.tmpConfig.duration); + } + }, + // 隐藏toast组件,由父组件通过this.$refs.xxx.hide()形式调用 + hide() { + this.clearTimer(); + }, + clearTimer() { + this.isShow = false; + clearTimeout(this.timer); + this.timer = null; + } + }, + beforeUnmount() { + this.clearTimer(); + } +}; +if (!Array) { + const _easycom_u_loading_icon2 = common_vendor.resolveComponent("u-loading-icon"); + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_u_gap2 = common_vendor.resolveComponent("u-gap"); + const _easycom_u_overlay2 = common_vendor.resolveComponent("u-overlay"); + (_easycom_u_loading_icon2 + _easycom_u_icon2 + _easycom_u_gap2 + _easycom_u_overlay2)(); +} +const _easycom_u_loading_icon = () => "../u-loading-icon/u-loading-icon.js"; +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +const _easycom_u_gap = () => "../u-gap/u-gap.js"; +const _easycom_u_overlay = () => "../u-overlay/u-overlay.js"; +if (!Math) { + (_easycom_u_loading_icon + _easycom_u_icon + _easycom_u_gap + _easycom_u_overlay)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: $data.tmpConfig.type === "loading" + }, $data.tmpConfig.type === "loading" ? { + b: common_vendor.p({ + mode: "circle", + color: "rgb(255, 255, 255)", + inactiveColor: "rgb(120, 120, 120)", + size: "25" + }) + } : $data.tmpConfig.type !== "defalut" && $options.iconName ? { + d: common_vendor.p({ + name: $options.iconName, + size: "17", + color: $data.tmpConfig.type, + customStyle: $options.iconStyle + }) + } : {}, { + c: $data.tmpConfig.type !== "defalut" && $options.iconName, + e: $data.tmpConfig.type === "loading" || $data.tmpConfig.loading + }, $data.tmpConfig.type === "loading" || $data.tmpConfig.loading ? { + f: common_vendor.p({ + height: "12", + bgColor: "transparent" + }) + } : {}, { + g: common_vendor.t($data.tmpConfig.message), + h: common_vendor.n("u-toast__content__text--" + $data.tmpConfig.type), + i: common_vendor.s($options.contentStyle), + j: common_vendor.n("u-type-" + $data.tmpConfig.type), + k: common_vendor.n($data.tmpConfig.type === "loading" || $data.tmpConfig.loading ? "u-toast__content--loading" : ""), + l: common_vendor.p({ + show: $data.isShow, + zIndex: $data.tmpConfig.overlay ? 10070 : -1, + ["custom-style"]: $options.overlayStyle + }) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-2232870a"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.json new file mode 100644 index 0000000..b14bde3 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.json @@ -0,0 +1,9 @@ +{ + "component": true, + "usingComponents": { + "u-loading-icon": "../u-loading-icon/u-loading-icon", + "u-icon": "../u-icon/u-icon", + "u-gap": "../u-gap/u-gap", + "u-overlay": "../u-overlay/u-overlay" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.wxml new file mode 100644 index 0000000..e735e7b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.wxml @@ -0,0 +1 @@ +{{g}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.wxss new file mode 100644 index 0000000..b3dc557 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toast/u-toast.wxss @@ -0,0 +1,112 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-2232870a, +.u-empty__wrap.data-v-2232870a, +.u-tabs.data-v-2232870a, +.u-tabs__wrapper.data-v-2232870a, +.u-tabs__wrapper__scroll-view-wrapper.data-v-2232870a, +.u-tabs__wrapper__scroll-view.data-v-2232870a, +.u-tabs__wrapper__nav.data-v-2232870a, +.u-tabs__wrapper__nav__line.data-v-2232870a, +.up-empty.data-v-2232870a, +.up-empty__wrap.data-v-2232870a, +.up-tabs.data-v-2232870a, +.up-tabs__wrapper.data-v-2232870a, +.up-tabs__wrapper__scroll-view-wrapper.data-v-2232870a, +.up-tabs__wrapper__scroll-view.data-v-2232870a, +.up-tabs__wrapper__nav.data-v-2232870a, +.up-tabs__wrapper__nav__line.data-v-2232870a { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-toast__content.data-v-2232870a { + display: flex; + flex-direction: row; + padding: 12px 20px; + border-radius: 4px; + background-color: #585858; + color: #fff; + align-items: center; + max-width: 600rpx; + position: relative; +} +.u-toast__content--loading.data-v-2232870a { + flex-direction: column; + padding: 20px 20px; +} +.u-toast__content__text.data-v-2232870a { + color: #fff; + font-size: 15px; + line-height: 15px; +} +.u-toast__content__text--default.data-v-2232870a { + color: #fff; +} +.u-toast__content__text--error.data-v-2232870a { + color: #f56c6c; +} +.u-toast__content__text--primary.data-v-2232870a { + color: #3c9cff; +} +.u-toast__content__text--success.data-v-2232870a { + color: #5ac725; +} +.u-toast__content__text--warning.data-v-2232870a { + color: #f9ae3d; +} +.u-type-primary.data-v-2232870a { + color: #3c9cff; + background-color: #ecf5ff; + border-color: #d7eafe; + border-width: 1px; +} +.u-type-success.data-v-2232870a { + color: #5ac725; + background-color: #dbf1e1; + border-color: #BEF5C8; + border-width: 1px; +} +.u-type-error.data-v-2232870a { + color: #f56c6c; + background-color: #fef0f0; + border-color: #fde2e2; + border-width: 1px; +} +.u-type-warning.data-v-2232870a { + color: #f9ae3d; + background-color: #fdf6ec; + border-color: #faecd8; + border-width: 1px; +} +.u-type-default.data-v-2232870a { + color: #fff; + background-color: #585858; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.js new file mode 100644 index 0000000..f81ec3f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.js @@ -0,0 +1,42 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-toolbar", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$36], + emits: ["confirm", "cancel"], + created() { + }, + methods: { + // 点击取消按钮 + cancel() { + this.$emit("cancel"); + }, + // 点击确定按钮 + confirm() { + this.$emit("confirm"); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.show + }, _ctx.show ? common_vendor.e({ + b: common_vendor.t(_ctx.cancelText), + c: common_vendor.o((...args) => $options.cancel && $options.cancel(...args)), + d: _ctx.cancelColor, + e: _ctx.title + }, _ctx.title ? { + f: common_vendor.t(_ctx.title) + } : {}, { + g: !_ctx.rightSlot + }, !_ctx.rightSlot ? { + h: common_vendor.t(_ctx.confirmText), + i: common_vendor.o((...args) => $options.confirm && $options.confirm(...args)), + j: _ctx.confirmColor + } : {}, { + k: common_vendor.o((...args) => _ctx.noop && _ctx.noop(...args)) + }) : {}); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-3fd495d6"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.wxml new file mode 100644 index 0000000..fdf5d27 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.wxml @@ -0,0 +1 @@ +{{b}}{{f}}{{h}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.wxss new file mode 100644 index 0000000..a9612aa --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-toolbar/u-toolbar.wxss @@ -0,0 +1,77 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-3fd495d6, +.u-empty__wrap.data-v-3fd495d6, +.u-tabs.data-v-3fd495d6, +.u-tabs__wrapper.data-v-3fd495d6, +.u-tabs__wrapper__scroll-view-wrapper.data-v-3fd495d6, +.u-tabs__wrapper__scroll-view.data-v-3fd495d6, +.u-tabs__wrapper__nav.data-v-3fd495d6, +.u-tabs__wrapper__nav__line.data-v-3fd495d6, +.up-empty.data-v-3fd495d6, +.up-empty__wrap.data-v-3fd495d6, +.up-tabs.data-v-3fd495d6, +.up-tabs__wrapper.data-v-3fd495d6, +.up-tabs__wrapper__scroll-view-wrapper.data-v-3fd495d6, +.up-tabs__wrapper__scroll-view.data-v-3fd495d6, +.up-tabs__wrapper__nav.data-v-3fd495d6, +.up-tabs__wrapper__nav__line.data-v-3fd495d6 { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-toolbar.data-v-3fd495d6 { + height: 42px; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; +} +.u-toolbar__wrapper__cancel.data-v-3fd495d6 { + color: #909193; + font-size: 15px; + padding: 0 15px; +} +.u-toolbar__title.data-v-3fd495d6 { + color: #303133; + padding: 0 60rpx; + font-size: 16px; + flex: 1; + text-align: center; +} +.u-toolbar__wrapper__left.data-v-3fd495d6, .u-toolbar__wrapper__right.data-v-3fd495d6 { + display: flex; + flex-direction: row; +} +.u-toolbar__wrapper__confirm.data-v-3fd495d6 { + color: #3c9cff; + font-size: 15px; + padding: 0 15px; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.wxml new file mode 100644 index 0000000..c287fcb --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.wxss new file mode 100644 index 0000000..30a60de --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.wxss @@ -0,0 +1,144 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-0573594d, +.u-empty__wrap.data-v-0573594d, +.u-tabs.data-v-0573594d, +.u-tabs__wrapper.data-v-0573594d, +.u-tabs__wrapper__scroll-view-wrapper.data-v-0573594d, +.u-tabs__wrapper__scroll-view.data-v-0573594d, +.u-tabs__wrapper__nav.data-v-0573594d, +.u-tabs__wrapper__nav__line.data-v-0573594d, +.up-empty.data-v-0573594d, +.up-empty__wrap.data-v-0573594d, +.up-tabs.data-v-0573594d, +.up-tabs__wrapper.data-v-0573594d, +.up-tabs__wrapper__scroll-view-wrapper.data-v-0573594d, +.up-tabs__wrapper__scroll-view.data-v-0573594d, +.up-tabs__wrapper__nav.data-v-0573594d, +.up-tabs__wrapper__nav__line.data-v-0573594d { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +/** + * vue版本动画内置的动画模式有如下: + * fade:淡入 + * zoom:缩放 + * fade-zoom:缩放淡入 + * fade-up:上滑淡入 + * fade-down:下滑淡入 + * fade-left:左滑淡入 + * fade-right:右滑淡入 + * slide-up:上滑进入 + * slide-down:下滑进入 + * slide-left:左滑进入 + * slide-right:右滑进入 + */ +.u-fade-enter-active.data-v-0573594d, +.u-fade-leave-active.data-v-0573594d { + transition-property: opacity; +} +.u-fade-enter.data-v-0573594d, +.u-fade-leave-to.data-v-0573594d { + opacity: 0; +} +.u-fade-zoom-enter.data-v-0573594d, +.u-fade-zoom-leave-to.data-v-0573594d { + transform: scale(0.95); + opacity: 0; +} +.u-fade-zoom-enter-active.data-v-0573594d, +.u-fade-zoom-leave-active.data-v-0573594d { + transition-property: transform, opacity; +} +.u-fade-down-enter-active.data-v-0573594d, +.u-fade-down-leave-active.data-v-0573594d, +.u-fade-left-enter-active.data-v-0573594d, +.u-fade-left-leave-active.data-v-0573594d, +.u-fade-right-enter-active.data-v-0573594d, +.u-fade-right-leave-active.data-v-0573594d, +.u-fade-up-enter-active.data-v-0573594d, +.u-fade-up-leave-active.data-v-0573594d { + transition-property: opacity, transform; +} +.u-fade-up-enter.data-v-0573594d, +.u-fade-up-leave-to.data-v-0573594d { + transform: translate3d(0, 100%, 0); + opacity: 0; +} +.u-fade-down-enter.data-v-0573594d, +.u-fade-down-leave-to.data-v-0573594d { + transform: translate3d(0, -100%, 0); + opacity: 0; +} +.u-fade-left-enter.data-v-0573594d, +.u-fade-left-leave-to.data-v-0573594d { + transform: translate3d(-100%, 0, 0); + opacity: 0; +} +.u-fade-right-enter.data-v-0573594d, +.u-fade-right-leave-to.data-v-0573594d { + transform: translate3d(100%, 0, 0); + opacity: 0; +} +.u-slide-down-enter-active.data-v-0573594d, +.u-slide-down-leave-active.data-v-0573594d, +.u-slide-left-enter-active.data-v-0573594d, +.u-slide-left-leave-active.data-v-0573594d, +.u-slide-right-enter-active.data-v-0573594d, +.u-slide-right-leave-active.data-v-0573594d, +.u-slide-up-enter-active.data-v-0573594d, +.u-slide-up-leave-active.data-v-0573594d { + transition-property: transform; +} +.u-slide-up-enter.data-v-0573594d, +.u-slide-up-leave-to.data-v-0573594d { + transform: translate3d(0, 100%, 0); +} +.u-slide-down-enter.data-v-0573594d, +.u-slide-down-leave-to.data-v-0573594d { + transform: translate3d(0, -100%, 0); +} +.u-slide-left-enter.data-v-0573594d, +.u-slide-left-leave-to.data-v-0573594d { + transform: translate3d(-100%, 0, 0); +} +.u-slide-right-enter.data-v-0573594d, +.u-slide-right-leave-to.data-v-0573594d { + transform: translate3d(100%, 0, 0); +} +.u-zoom-enter-active.data-v-0573594d, +.u-zoom-leave-active.data-v-0573594d { + transition-property: transform; +} +.u-zoom-enter.data-v-0573594d, +.u-zoom-leave-to.data-v-0573594d { + transform: scale(0.95); +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.js b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.js new file mode 100644 index 0000000..b91d9d9 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.js @@ -0,0 +1,335 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-upload", + mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.mixinUpload, common_vendor.props$19], + data() { + return { + lists: [], + isInCount: true + }; + }, + watch: { + // 监听文件列表的变化,重新整理内部数据 + fileList: { + handler() { + this.formatFileList(); + }, + immediate: true, + deep: true + }, + deletable(newVal) { + this.formatFileList(); + }, + maxCount(newVal) { + this.formatFileList(); + }, + accept(newVal) { + this.formatFileList(); + } + }, + emits: ["error", "beforeRead", "oversize", "afterRead", "delete", "clickPreview"], + methods: { + addUnit: common_vendor.addUnit, + addStyle: common_vendor.addStyle, + formatFileList() { + const { + fileList = [], + maxCount + } = this; + const lists = fileList.map( + (item) => Object.assign(Object.assign({}, item), { + // 如果item.url为本地选择的blob文件的话,无法判断其为video还是image,此处优先通过accept做判断处理 + isImage: this.accept === "image" || common_vendor.test.image(item.url || item.thumb), + isVideo: this.accept === "video" || common_vendor.test.video(item.url || item.thumb), + deletable: typeof item.deletable === "boolean" ? item.deletable : this.deletable + }) + ); + this.lists = lists; + this.isInCount = lists.length < maxCount; + }, + chooseFile() { + const { + maxCount, + multiple, + lists, + disabled + } = this; + if (disabled) + return; + let capture; + try { + capture = common_vendor.test.array(this.capture) ? this.capture : this.capture.split(","); + } catch (e) { + capture = []; + } + common_vendor.chooseFile( + Object.assign({ + accept: this.accept, + extension: this.extension, + multiple: this.multiple, + capture, + compressed: this.compressed, + maxDuration: this.maxDuration, + sizeType: this.sizeType, + camera: this.camera + }, { + maxCount: maxCount - lists.length + }) + ).then((res) => { + this.onBeforeRead(multiple ? res : res[0]); + }).catch((error) => { + this.$emit("error", error); + }); + }, + // 文件读取之前 + onBeforeRead(file) { + const { + beforeRead, + useBeforeRead + } = this; + let res = true; + if (common_vendor.test.func(beforeRead)) { + res = beforeRead(file, this.getDetail()); + } + if (useBeforeRead) { + res = new Promise((resolve, reject) => { + this.$emit( + "beforeRead", + Object.assign(Object.assign({ + file + }, this.getDetail()), { + callback: (ok) => { + ok ? resolve() : reject(); + } + }) + ); + }); + } + if (!res) { + return; + } + if (common_vendor.test.promise(res)) { + res.then((data) => this.onAfterRead(data || file)); + } else { + this.onAfterRead(file); + } + }, + getDetail(index) { + return { + name: this.name, + index: index == null ? this.fileList.length : index + }; + }, + onAfterRead(file) { + const { + maxSize, + afterRead + } = this; + const oversize = Array.isArray(file) ? file.some((item) => item.size > maxSize) : file.size > maxSize; + if (oversize) { + this.$emit("oversize", Object.assign({ + file + }, this.getDetail())); + return; + } + if (typeof afterRead === "function") { + afterRead(file, this.getDetail()); + } + this.$emit("afterRead", Object.assign({ + file + }, this.getDetail())); + }, + deleteItem(index) { + this.$emit( + "delete", + Object.assign(Object.assign({}, this.getDetail(index)), { + file: this.fileList[index] + }) + ); + }, + // 预览图片 + onPreviewImage(previewItem, index) { + if (!previewItem.isImage || !this.previewFullImage) + return; + let current = 0; + const urls = []; + let imageIndex = 0; + for (var i = 0; i < this.lists.length; i++) { + const item = this.lists[i]; + if (item.isImage || item.type && item.type === "image") { + urls.push(item.url || item.thumb); + if (i === index) { + current = imageIndex; + } + imageIndex += 1; + } + } + if (urls.length < 1) { + return; + } + common_vendor.index.previewImage({ + urls, + current, + fail() { + common_vendor.toast("预览图片失败"); + } + }); + }, + onPreviewVideo(index) { + if (!this.previewFullImage) + return; + let current = 0; + const sources = []; + let videoIndex = 0; + for (var i = 0; i < this.lists.length; i++) { + const item = this.lists[i]; + if (item.isVideo || item.type && item.type === "video") { + sources.push(Object.assign(Object.assign({}, item), { + type: "video" + })); + if (i === index) { + current = videoIndex; + } + videoIndex += 1; + } + } + if (sources.length < 1) { + return; + } + common_vendor.wx$1.previewMedia({ + sources, + current, + fail() { + common_vendor.toast("预览视频失败"); + } + }); + }, + onClickPreview(item, index) { + if (!this.previewFullImage) + return; + switch (item.type) { + case "video": + this.onPreviewVideo(index); + break; + } + this.$emit( + "clickPreview", + Object.assign(Object.assign({}, item), this.getDetail(index)) + ); + } + } +}; +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_u_loading_icon2 = common_vendor.resolveComponent("u-loading-icon"); + (_easycom_u_icon2 + _easycom_u_loading_icon2)(); +} +const _easycom_u_icon = () => "../u-icon/u-icon.js"; +const _easycom_u_loading_icon = () => "../u-loading-icon/u-loading-icon.js"; +if (!Math) { + (_easycom_u_icon + _easycom_u_loading_icon)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.previewImage + }, _ctx.previewImage ? { + b: common_vendor.f($data.lists, (item, index, i0) => { + return common_vendor.e({ + a: item.isImage || item.type && item.type === "image" + }, item.isImage || item.type && item.type === "image" ? { + b: item.thumb || item.url, + c: _ctx.imageMode, + d: common_vendor.o(($event) => $options.onPreviewImage(item, index), index), + e: common_vendor.s({ + width: $options.addUnit(_ctx.width), + height: $options.addUnit(_ctx.height) + }) + } : { + f: "cafe0b2a-0-" + i0, + g: common_vendor.p({ + color: "#80CBF9", + size: "26", + name: item.isVideo || item.type && item.type === "video" ? "movie" : "folder" + }), + h: common_vendor.t(item.isVideo || item.type && item.type === "video" ? "视频" : "文件"), + i: common_vendor.o(($event) => $options.onClickPreview(item, index), index) + }, { + j: item.status === "uploading" || item.status === "failed" + }, item.status === "uploading" || item.status === "failed" ? common_vendor.e({ + k: item.status === "failed" + }, item.status === "failed" ? { + l: "cafe0b2a-1-" + i0, + m: common_vendor.p({ + name: "close-circle", + color: "#ffffff", + size: "25" + }) + } : { + n: "cafe0b2a-2-" + i0, + o: common_vendor.p({ + size: "22", + mode: "circle", + color: "#ffffff" + }) + }, { + p: item.message + }, item.message ? { + q: common_vendor.t(item.message) + } : {}) : {}, { + r: item.status !== "uploading" && (_ctx.deletable || item.deletable) + }, item.status !== "uploading" && (_ctx.deletable || item.deletable) ? { + s: "cafe0b2a-3-" + i0, + t: common_vendor.p({ + name: "close", + color: "#ffffff", + size: "10" + }), + v: common_vendor.o(($event) => $options.deleteItem(index), index) + } : {}, { + w: item.status === "success" + }, item.status === "success" ? { + x: "cafe0b2a-4-" + i0, + y: common_vendor.p({ + name: "checkmark", + color: "#ffffff", + size: "12" + }) + } : {}, { + z: index + }); + }) + } : {}, { + c: $data.isInCount + }, $data.isInCount ? common_vendor.e({ + d: _ctx.$slots.trigger + }, _ctx.$slots.trigger ? { + e: common_vendor.o((...args) => $options.chooseFile && $options.chooseFile(...args)) + } : !_ctx.$slots.trigger && (_ctx.$slots.default || _ctx.$slots.$default) ? { + g: common_vendor.o((...args) => $options.chooseFile && $options.chooseFile(...args)) + } : common_vendor.e({ + h: common_vendor.p({ + name: _ctx.uploadIcon, + size: "26", + color: _ctx.uploadIconColor + }), + i: _ctx.uploadText + }, _ctx.uploadText ? { + j: common_vendor.t(_ctx.uploadText) + } : {}, { + k: !_ctx.disabled ? "u-upload__button--hover" : "", + l: common_vendor.o((...args) => $options.chooseFile && $options.chooseFile(...args)), + m: common_vendor.n(_ctx.disabled && "u-upload__button--disabled"), + n: common_vendor.s({ + width: $options.addUnit(_ctx.width), + height: $options.addUnit(_ctx.height) + }) + }), { + f: !_ctx.$slots.trigger && (_ctx.$slots.default || _ctx.$slots.$default) + }) : {}, { + o: common_vendor.s($options.addStyle(_ctx.customStyle)) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-cafe0b2a"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.js.map diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.json b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.json new file mode 100644 index 0000000..4d3fe5f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "u-icon": "../u-icon/u-icon", + "u-loading-icon": "../u-loading-icon/u-loading-icon" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.wxml b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.wxml new file mode 100644 index 0000000..b382924 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.wxml @@ -0,0 +1 @@ +{{item.h}}{{item.q}}{{j}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.wxss b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.wxss new file mode 100644 index 0000000..8346787 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-upload/u-upload.wxss @@ -0,0 +1,172 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-empty.data-v-cafe0b2a, +.u-empty__wrap.data-v-cafe0b2a, +.u-tabs.data-v-cafe0b2a, +.u-tabs__wrapper.data-v-cafe0b2a, +.u-tabs__wrapper__scroll-view-wrapper.data-v-cafe0b2a, +.u-tabs__wrapper__scroll-view.data-v-cafe0b2a, +.u-tabs__wrapper__nav.data-v-cafe0b2a, +.u-tabs__wrapper__nav__line.data-v-cafe0b2a, +.up-empty.data-v-cafe0b2a, +.up-empty__wrap.data-v-cafe0b2a, +.up-tabs.data-v-cafe0b2a, +.up-tabs__wrapper.data-v-cafe0b2a, +.up-tabs__wrapper__scroll-view-wrapper.data-v-cafe0b2a, +.up-tabs__wrapper__scroll-view.data-v-cafe0b2a, +.up-tabs__wrapper__nav.data-v-cafe0b2a, +.up-tabs__wrapper__nav__line.data-v-cafe0b2a { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; +} +.u-upload.data-v-cafe0b2a { + display: flex; + flex-direction: column; + flex: 1; +} +.u-upload__wrap.data-v-cafe0b2a { + display: flex; + flex-direction: row; + flex-wrap: wrap; + flex: 1; +} +.u-upload__wrap__preview.data-v-cafe0b2a { + border-radius: 2px; + margin: 0 8px 8px 0; + position: relative; + overflow: hidden; + display: flex; + flex-direction: row; +} +.u-upload__wrap__preview__image.data-v-cafe0b2a { + width: 80px; + height: 80px; +} +.u-upload__wrap__preview__other.data-v-cafe0b2a { + width: 80px; + height: 80px; + background-color: #f2f2f2; + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} +.u-upload__wrap__preview__other__text.data-v-cafe0b2a { + font-size: 11px; + color: #909193; + margin-top: 2px; +} +.u-upload__deletable.data-v-cafe0b2a { + position: absolute; + top: 0; + right: 0; + background-color: #373737; + height: 14px; + width: 14px; + display: flex; + flex-direction: row; + border-bottom-left-radius: 100px; + align-items: center; + justify-content: center; + z-index: 3; +} +.u-upload__deletable__icon.data-v-cafe0b2a { + position: absolute; + transform: scale(0.7); + top: 0px; + right: 0px; +} +.u-upload__success.data-v-cafe0b2a { + position: absolute; + bottom: 0; + right: 0; + display: flex; + flex-direction: row; + border-style: solid; + border-top-color: transparent; + border-left-color: transparent; + border-bottom-color: #5ac725; + border-right-color: #5ac725; + border-width: 9px; + align-items: center; + justify-content: center; +} +.u-upload__success__icon.data-v-cafe0b2a { + position: absolute; + transform: scale(0.7); + bottom: -10px; + right: -10px; +} +.u-upload__status.data-v-cafe0b2a { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + background-color: rgba(0, 0, 0, 0.5); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} +.u-upload__status__icon.data-v-cafe0b2a { + position: relative; + z-index: 1; +} +.u-upload__status__message.data-v-cafe0b2a { + font-size: 12px; + color: #FFFFFF; + margin-top: 5px; +} +.u-upload__button.data-v-cafe0b2a { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 80px; + height: 80px; + background-color: #f4f5f7; + border-radius: 2px; + margin: 0 8px 8px 0; + box-sizing: border-box; +} +.u-upload__button__text.data-v-cafe0b2a { + font-size: 11px; + color: #909193; + margin-top: 2px; +} +.u-upload__button--hover.data-v-cafe0b2a { + background-color: #e6e7e9; +} +.u-upload__button--disabled.data-v-cafe0b2a { + opacity: 0.5; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/apply/apply.js b/unpackage/dist/dev/mp-weixin/pages/apply/apply.js new file mode 100644 index 0000000..77a50ef --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/apply/apply.js @@ -0,0 +1,211 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const common_assets = require("../../common/assets.js"); +if (!Array) { + const _easycom_up_input2 = common_vendor.resolveComponent("up-input"); + const _easycom_up_form_item2 = common_vendor.resolveComponent("up-form-item"); + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + const _easycom_up_upload2 = common_vendor.resolveComponent("up-upload"); + const _easycom_up_form2 = common_vendor.resolveComponent("up-form"); + const _easycom_up_button2 = common_vendor.resolveComponent("up-button"); + const _easycom_up_picker2 = common_vendor.resolveComponent("up-picker"); + (_easycom_up_input2 + _easycom_up_form_item2 + _easycom_up_icon2 + _easycom_up_upload2 + _easycom_up_form2 + _easycom_up_button2 + _easycom_up_picker2)(); +} +const _easycom_up_input = () => "../../node-modules/uview-plus/components/u-input/u-input.js"; +const _easycom_up_form_item = () => "../../node-modules/uview-plus/components/u-form-item/u-form-item.js"; +const _easycom_up_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_up_upload = () => "../../node-modules/uview-plus/components/u-upload/u-upload.js"; +const _easycom_up_form = () => "../../node-modules/uview-plus/components/u-form/u-form.js"; +const _easycom_up_button = () => "../../node-modules/uview-plus/components/u-button/u-button.js"; +const _easycom_up_picker = () => "../../node-modules/uview-plus/components/u-picker/u-picker.js"; +if (!Math) { + (_easycom_up_input + _easycom_up_form_item + _easycom_up_icon + _easycom_up_upload + _easycom_up_form + _easycom_up_button + QfImageCropper + _easycom_up_picker)(); +} +const QfImageCropper = () => "../../uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.js"; +const _sfc_main = { + __name: "apply", + setup(__props) { + const imgCropper = common_vendor.ref(null); + const model = common_vendor.reactive({ + name: "" + }); + const showCroper = common_vendor.ref(false); + const coperImg = common_vendor.ref(""); + const customStyle = common_vendor.reactive({ + height: "90rpx", + fontSize: "36rpx" + }); + const areacolumns = common_vendor.ref([]); + const showArea = common_vendor.ref(false); + const departcolumns = common_vendor.ref([]); + const showDepart = common_vendor.ref(false); + const titlecolumns = common_vendor.ref([]); + const showTitle = common_vendor.ref(false); + const closeArea = () => { + showArea.value = false; + }; + const confirmArea = (e) => { + showArea.value = false; + }; + const closeDepart = () => { + showDepart.value = false; + }; + const confirmDepart = (e) => { + common_vendor.index.__f__("log", "at pages/apply/apply.vue:122", e); + showDepart.value = false; + }; + const closeTitle = () => { + showTitle.value = false; + }; + const confirmTitle = (e) => { + showTitle.value = false; + }; + const afterRead = (event) => { + coperImg.value = event.file.url; + showCroper.value = true; + }; + const handleCrop = (e) => { + common_vendor.index.__f__("log", "at pages/apply/apply.vue:139", e.tempFilePath); + }; + const handleCancel = () => { + showCroper.value = false; + }; + common_vendor.onShow(() => { + }); + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.o(($event) => model.name = $event), + b: common_vendor.p({ + placeholder: "请输入真实姓名", + modelValue: model.name + }), + c: common_vendor.p({ + label: "姓名", + prop: "userInfo.name", + borderBottom: true + }), + d: common_vendor.o(($event) => model.name = $event), + e: common_vendor.p({ + placeholder: "请选择医院", + modelValue: model.name + }), + f: common_vendor.p({ + name: "arrow-right" + }), + g: common_vendor.o(($event) => showArea.value = true), + h: common_vendor.p({ + label: "医院", + prop: "userInfo.name", + borderBottom: true + }), + i: common_vendor.o(($event) => model.name = $event), + j: common_vendor.p({ + placeholder: "请选择科室", + modelValue: model.name + }), + k: common_vendor.p({ + name: "arrow-right" + }), + l: common_vendor.o(($event) => showDepart.value = true), + m: common_vendor.p({ + label: "科室", + prop: "userInfo.name", + borderBottom: true + }), + n: common_vendor.o(($event) => model.name = $event), + o: common_vendor.p({ + placeholder: "请选择职称", + modelValue: model.name + }), + p: common_vendor.p({ + name: "arrow-right" + }), + q: common_vendor.o(($event) => showTitle.value = true), + r: common_vendor.p({ + label: "职称", + prop: "userInfo.name", + borderBottom: true + }), + s: common_vendor.o(($event) => model.name = $event), + t: common_vendor.p({ + placeholder: "请输入执业证号", + modelValue: model.name + }), + v: common_vendor.p({ + label: "执业证号(选填)", + prop: "userInfo.name", + borderBottom: true + }), + w: common_vendor.o(($event) => model.name = $event), + x: common_vendor.p({ + placeholder: "", + modelValue: model.name + }), + y: common_vendor.o(afterRead), + z: common_vendor.p({ + maxCount: 1 + }), + A: common_vendor.unref(common_assets.img), + B: common_vendor.p({ + name: "arrow-right" + }), + C: common_vendor.p({ + label: "执业医师资格证或工作胸牌", + prop: "userInfo.name", + borderBottom: true + }), + D: common_vendor.sr("form", "426a9ebe-0"), + E: common_vendor.p({ + labelPosition: "left", + model, + labelWidth: "115rpx" + }), + F: common_vendor.p({ + customStyle, + type: "success", + text: "提交", + color: "#3cc7c0", + size: "large" + }), + G: showCroper.value + }, showCroper.value ? { + H: common_vendor.sr(imgCropper, "426a9ebe-19", { + "k": "imgCropper" + }), + I: common_vendor.o(handleCancel), + J: common_vendor.o(handleCrop), + K: common_vendor.p({ + width: 500, + height: 500, + radius: 0, + backgroundColor: "#000", + src: coperImg.value, + zIndex: "999", + delay: "1500" + }) + } : {}, { + L: common_vendor.o(closeArea), + M: common_vendor.o(confirmArea), + N: common_vendor.p({ + show: showArea.value, + columns: areacolumns.value + }), + O: common_vendor.o(closeDepart), + P: common_vendor.o(confirmDepart), + Q: common_vendor.p({ + show: showDepart.value, + columns: departcolumns.value + }), + R: common_vendor.o(closeTitle), + S: common_vendor.o(confirmTitle), + T: common_vendor.p({ + show: showTitle.value, + columns: titlecolumns.value + }) + }); + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-426a9ebe"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/apply/apply.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/apply/apply.json b/unpackage/dist/dev/mp-weixin/pages/apply/apply.json new file mode 100644 index 0000000..6bb17b9 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/apply/apply.json @@ -0,0 +1,15 @@ +{ + "navigationBarTitleText": "注册", + "enablePullDownRefresh": false, + "disableScroll": true, + "usingComponents": { + "up-input": "../../node-modules/uview-plus/components/u-input/u-input", + "up-form-item": "../../node-modules/uview-plus/components/u-form-item/u-form-item", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "up-upload": "../../node-modules/uview-plus/components/u-upload/u-upload", + "up-form": "../../node-modules/uview-plus/components/u-form/u-form", + "up-button": "../../node-modules/uview-plus/components/u-button/u-button", + "up-picker": "../../node-modules/uview-plus/components/u-picker/u-picker", + "qf-image-cropper": "../../uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/apply/apply.wxml b/unpackage/dist/dev/mp-weixin/pages/apply/apply.wxml new file mode 100644 index 0000000..d83dc10 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/apply/apply.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/apply/apply.wxss b/unpackage/dist/dev/mp-weixin/pages/apply/apply.wxss new file mode 100644 index 0000000..b4edebd --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/apply/apply.wxss @@ -0,0 +1,95 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.logincontent.data-v-426a9ebe { + width: 100%; + height: 100vh; + background: #fff; +} +.logincontent .rightbox.data-v-426a9ebe { + display: flex; +} +.logincontent .uploadwraper.data-v-426a9ebe { + position: relative; + width: 140rpx; + height: 80rpx; + overflow: hidden; +} +.logincontent .uploadwraper.data-v-426a9ebe .u-upload { + width: 140rpx; + height: 80rpx; + position: relative; + z-index: 2; + opacity: 0; +} +.logincontent .uploadwraper.data-v-426a9ebe .dimg { + position: absolute; + top: 0; + bottom: 0; +} +.logincontent .smsbox.data-v-426a9ebe .u-form-item:nth-child(4) .u-form-item__body__left { + width: 240rpx !important; +} +.logincontent .smsbox.data-v-426a9ebe .u-form-item:nth-child(5) .u-form-item__body__left { + width: 418rpx !important; +} +.logincontent.data-v-426a9ebe .u-form-item__body__left__content__label { + font-size: 34rpx; + color: #000; +} +.logincontent .title.data-v-426a9ebe { + padding: 124rpx 0 64rpx 30rpx; + font-size: 46rpx; + font-stretch: normal; + letter-spacing: 2rpx; + color: #000000; +} +.logincontent.data-v-426a9ebe .u-form { + padding: 0 30rpx; +} +.logincontent .row.data-v-426a9ebe { + margin-top: 60rpx; + display: flex; + justify-content: space-between; + padding: 0 30rpx; +} +.logincontent .row .left.data-v-426a9ebe { + flex: 1; + color: #3cc7c0; + text-align: left; +} +.logincontent .row .right.data-v-426a9ebe { + flex: 1; + color: #666; + text-align: right; +} +.logincontent .row.data-v-426a9ebe .u-button--large .u-button__text { + font-size: 36rpx !important; +} +.logincontent.data-v-426a9ebe .wrap { + border-radius: 16rpx; + overflow: hidden; + border: none; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/case/case.js b/unpackage/dist/dev/mp-weixin/pages/case/case.js new file mode 100644 index 0000000..4cf18db --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/case/case.js @@ -0,0 +1,35 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +if (!Math) { + tabBar(); +} +const tabBar = () => "../../components/tabBar/tabBar.js"; +const _sfc_main = { + __name: "case", + setup(__props) { + const src = common_vendor.ref(""); + common_vendor.onLoad((options) => { + { + const { envVersion } = common_vendor.index.getAccountInfoSync().miniProgram; + let token = ""; + if (envVersion == "release") { + token = common_vendor.index.getStorageSync("AUTH_TOKEN_CASEDATA"); + } else { + token = common_vendor.index.getStorageSync("DEV_AUTH_TOKEN_CASEDATA"); + } + src.value = "https://dev-caseplatform.igandan.com/web/home?token=" + token; + } + }); + return (_ctx, _cache) => { + return { + a: src.value, + b: common_vendor.p({ + value: 1 + }) + }; + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-14eb7e01"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/case/case.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/case/case.json b/unpackage/dist/dev/mp-weixin/pages/case/case.json new file mode 100644 index 0000000..2adb30e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/case/case.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "互动病例", + "usingComponents": { + "tab-bar": "../../components/tabBar/tabBar" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/case/case.wxml b/unpackage/dist/dev/mp-weixin/pages/case/case.wxml new file mode 100644 index 0000000..2567a89 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/case/case.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/case/case.wxss b/unpackage/dist/dev/mp-weixin/pages/case/case.wxss new file mode 100644 index 0000000..672e706 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/case/case.wxss @@ -0,0 +1,7 @@ + +.page.data-v-14eb7e01{ + width:100%; + height:calc(100vh - 100rpx); + overflow-y: scroll; +} + diff --git a/unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.js b/unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.js new file mode 100644 index 0000000..beaba96 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.js @@ -0,0 +1,228 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const common_assets = require("../../common/assets.js"); +const utils_navTo = require("../../utils/navTo.js"); +const api_api = require("../../api/api.js"); +if (!Array) { + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_up__image2 = common_vendor.resolveComponent("up--image"); + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + (_easycom_u_icon2 + _easycom_up__image2 + _easycom_up_icon2)(); +} +const _easycom_u_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js"; +const _easycom_up_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +if (!Math) { + (navBar + _easycom_u_icon + _easycom_up__image + _easycom_up_icon + tabBar)(); +} +const navBar = () => "../../components/navBar/navBar.js"; +const tabBar = () => "../../components/tabBar/tabBar.js"; +const _sfc_main = { + __name: "caseTalk", + setup(__props) { + const numInfo = common_vendor.reactive({}); + const most_read_articles = common_vendor.ref([]); + const new_articles = common_vendor.ref([]); + const formatdate = (date) => { + return common_vendor.dayjs(date).format("YYYY-MM-DD"); + }; + const goList = (type) => { + if (type == "read") { + utils_navTo.navTo({ + url: "/pages/specialList/specialList?is_selected=1" + }); + } else { + utils_navTo.navTo({ + url: "/pages/specialList/specialList" + }); + } + }; + const getStatic = () => { + api_api.api.getExchangeStatic().then((res) => { + let result = res.data.data; + Object.assign(numInfo, result); + }); + }; + const goDetail = (id) => { + utils_navTo.navTo({ + url: `/pages/detail/detail?id=${id}&type=exchange` + }); + }; + const videoErrorCallback = (e) => { + common_vendor.index.showModal({ + content: e.target.errMsg, + showCancel: false + }); + }; + const searchList = async () => { + let searchForm = { + page: 1, + page_size: 10 + }; + api_api.api.searchExchage({ + ...searchForm + }).then((res) => { + new_articles.value = res.data.data.data; + }).catch((err) => { + }); + }; + const htmlToText = (html) => { + return html.replace(/<[^>]*>/g, "").replace(/ /gi, " ").replace(//gi, "\n").replace(/]*>/gi, "").replace(/]*>[\s\S]*?/gi, ""); + }; + const goodList = () => { + api_api.api.searchExchageGood({ + is_selected: 1, + limit: 5 + }).then((res) => { + most_read_articles.value = res.data.data; + }); + }; + const goPublish = () => { + utils_navTo.navTo({ + url: "/pages/publish/publish" + }); + }; + common_vendor.onShow(() => { + getStatic(); + goodList(); + searchList(); + }); + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.p({ + navName: "肝胆相照病例交流园地", + type: "caseTalk" + }), + b: common_vendor.t(numInfo.exchange_num), + c: common_vendor.t(numInfo.exchange_collect_num), + d: common_vendor.t(numInfo.exchange_read_num), + e: most_read_articles.value.length > 0 + }, most_read_articles.value.length > 0 ? { + f: common_vendor.p({ + name: "arrow-right", + size: "16", + color: "#3CC7C0" + }), + g: common_vendor.o(($event) => goList("read")), + h: common_vendor.f(most_read_articles.value.slice(0, 3), (item, k0, i0) => { + return { + a: common_vendor.t(item.exchange_title), + b: item.exchange_id, + c: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id) + }; + }) + } : {}, { + i: common_vendor.p({ + name: "arrow-right", + size: "16", + color: "#3CC7C0" + }), + j: common_vendor.o(($event) => goList("new")), + k: common_vendor.f(new_articles.value, (item, k0, i0) => { + return common_vendor.e({ + a: common_vendor.t(item.exchange_title), + b: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id), + c: "4b2e7592-3-" + i0, + d: common_vendor.p({ + src: item.avatar ? item.avatar : common_vendor.unref(common_assets.headImg), + width: "46rpx", + height: "46rpx", + radius: "50%" + }), + e: common_vendor.t(item.user_name), + f: common_vendor.t(item.hospital_name), + g: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id), + h: common_vendor.t(htmlToText(item.exchange_content)), + i: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id), + j: item.exchange_content_image && item.exchange_content_image.length > 0 + }, item.exchange_content_image && item.exchange_content_image.length > 0 ? { + k: common_vendor.f(item.exchange_content_image, (unit, k1, i1) => { + return { + a: "4b2e7592-4-" + i0 + "-" + i1, + b: common_vendor.p({ + src: unit, + radius: "10", + width: "220rpx", + height: "220rpx" + }), + c: unit + }; + }), + l: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id) + } : {}, { + m: item.exchange_content_video && item.exchange_content_video.length > 0 + }, item.exchange_content_video && item.exchange_content_video.length > 0 ? { + n: common_vendor.f(item.exchange_content_video, (videoCell, index, i1) => { + return { + a: index, + b: videoCell, + c: common_vendor.o(videoErrorCallback, index) + }; + }), + o: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id) + } : {}, { + p: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id), + q: item.label && item.label.length > 0 + }, item.label && item.label.length > 0 ? { + r: common_vendor.f(item.label, (cell, k1, i1) => { + return { + a: common_vendor.t(cell.label_name), + b: cell.exchange_label_id + }; + }), + s: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id) + } : {}, { + t: "4b2e7592-5-" + i0, + v: common_vendor.t(item.read_num), + w: item.collect_num > 0 + }, item.collect_num > 0 ? { + x: "4b2e7592-6-" + i0, + y: common_vendor.p({ + name: "heart", + color: "#4B5563", + size: "28rpx" + }), + z: common_vendor.t(item.collect_num) + } : {}, { + A: item.comment_num > 0 + }, item.comment_num > 0 ? { + B: "4b2e7592-7-" + i0, + C: common_vendor.p({ + name: "chat", + color: "#4B5563", + size: "28rpx" + }), + D: common_vendor.t(item.comment_num) + } : {}, { + E: "4b2e7592-8-" + i0, + F: common_vendor.t(formatdate(item.push_date)), + G: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id), + H: item.exchange_id + }); + }), + l: common_vendor.p({ + name: "eye", + color: "#4B5563", + size: "28rpx" + }), + m: common_vendor.p({ + name: "clock", + color: "#4B5563", + size: "28rpx" + }), + n: common_vendor.p({ + value: 2 + }), + o: common_vendor.p({ + name: "plus", + color: "#fff", + size: "18" + }), + p: common_vendor.o(goPublish) + }); + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-4b2e7592"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/caseTalk/caseTalk.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.json b/unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.json new file mode 100644 index 0000000..6a82c60 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.json @@ -0,0 +1,11 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "u-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "nav-bar": "../../components/navBar/navBar", + "tab-bar": "../../components/tabBar/tabBar" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.wxml b/unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.wxml new file mode 100644 index 0000000..a54b8c1 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.wxml @@ -0,0 +1 @@ +{{b}}病例数{{c}}互动数{{d}}浏览量精选病例查看更多{{item.a}}最新收录查看更多{{item.a}}{{item.e}}({{item.f}}){{item.h}}加载失败{{cell.a}}{{item.v}}{{item.z}}{{item.D}}{{item.F}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.wxss b/unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.wxss new file mode 100644 index 0000000..ce55bbe --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/caseTalk/caseTalk.wxss @@ -0,0 +1,200 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.publish.data-v-4b2e7592 { + width: 92rpx; + height: 92rpx; + background: #3CC7C0; + border-radius: 50%; + position: fixed; + right: 30rpx; + bottom: 180rpx; + display: flex; + justify-content: center; + align-items: center; +} +.upage.data-v-4b2e7592 { + display: flex; + flex-direction: column; + height: calc(100vh - 120rpx); +} +.mostread .cell.data-v-4b2e7592 { + padding: 22rpx 0rpx !important; + margin: 0 30rpx; + display: flex; +} +.box.data-v-4b2e7592 { + flex: 1; + padding-bottom: 30rpx; + overflow-y: scroll; +} +.myVideo.data-v-4b2e7592 { + width: 100%; + border-radius: 15rpx; +} +.deal.data-v-4b2e7592 { + padding-top: 20rpx; + display: flex; + color: #4B5563; + font-size: 24rpx; + justify-content: space-between; +} +.deal .left.data-v-4b2e7592 { + display: flex; + align-items: center; +} +.deal .left .item.data-v-4b2e7592 { + width: 100rpx; +} +.deal .collect.data-v-4b2e7592 { + display: flex; + align-items: center; +} +.deal .eyebox.data-v-4b2e7592, +.deal .chat.data-v-4b2e7592 { + display: flex; + align-items: center; +} +.deal .time.data-v-4b2e7592 { + display: flex; + align-items: center; +} +.deal .num.data-v-4b2e7592 { + margin-left: 8rpx; +} +.tagbox.data-v-4b2e7592 { + margin-top: 24rpx; + display: flex; +} +.tagbox .tag.data-v-4b2e7592 { + height: 54rpx; + padding: 0 28rpx; + background: #ECFAF9; + border-radius: 30rpx; + margin-right: 12rpx; + font-size: 27rpx; + color: #3CC7C0; + display: flex; + align-items: center; + justify-content: center; +} +.doctor.data-v-4b2e7592 { + display: flex; + align-items: center; +} +.record.data-v-4b2e7592 { + padding-top: 30rpx; +} +.record .list.data-v-4b2e7592 { + margin: 30rpx 30rpx; +} +.record .list .name.data-v-4b2e7592 { + padding: 20rpx 0 20rpx 15rpx; + font-size: 27rpx; + color: #333333; +} +.record .list .content.data-v-4b2e7592 { + font-size: 27rpx; + color: #666666; + line-height: 38rpx; +} +.record .list .imgbox.data-v-4b2e7592 { + display: flex; + margin-top: 24rpx; +} +.record .list .imgbox .imgcell.data-v-4b2e7592 { + width: 220rpx; + height: 220rpx; + margin-right: 20rpx; +} +.record .list .imgbox .imgcell.data-v-4b2e7592:last-child { + margin-right: 0; +} +.special.data-v-4b2e7592 { + padding-top: 30rpx; +} +.special .list.data-v-4b2e7592 { + margin: 8rpx 0rpx 0; +} +.special .list .cell.data-v-4b2e7592 { + padding: 22rpx 30rpx; + border-bottom: 2rpx solid #f3f4f6; +} +.special .list .cell .circle.data-v-4b2e7592 { + flex-shrink: 0; + margin-top: 15rpx; + width: 15rpx; + height: 15rpx; + background: #3cc7c0; + border-radius: 50%; +} +.special .list .cell .title.data-v-4b2e7592 { + margin-left: 10rpx; + font-size: 32rpx; + color: #000000; + line-height: 46rpx; +} +.special .list .cell.data-v-4b2e7592:last-child { + border-bottom: none; +} +.titlebox.data-v-4b2e7592 { + margin: 0 30rpx; + display: flex; + justify-content: space-between; +} +.titlebox .more.data-v-4b2e7592 { + display: flex; + align-items: center; +} +.titlebox .more .morename.data-v-4b2e7592 { + margin-right: 10rpx; + font-size: 28rpx; + color: #3cc7c0; +} +.bar.data-v-4b2e7592 { + height: 16rpx; + background: #f3f4f6; +} +.databox.data-v-4b2e7592 { + height: 162rpx; + background: #ffffff; + display: flex; + padding: 0 30rpx; + justify-content: space-between; +} +.databox .cell.data-v-4b2e7592 { + flex: 1; + padding: 35rpx 0; + text-align: center; +} +.databox .cell .num.data-v-4b2e7592 { + font-size: 38rpx; + color: #3cc7c0; +} +.databox .cell .name.data-v-4b2e7592 { + margin-top: 18rpx; + font-size: 28rpx; + color: #4b5563; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/certImg/certImg.js b/unpackage/dist/dev/mp-weixin/pages/certImg/certImg.js new file mode 100644 index 0000000..38b36a2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/certImg/certImg.js @@ -0,0 +1,40 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +if (!Array) { + const _easycom_u__image2 = common_vendor.resolveComponent("u--image"); + _easycom_u__image2(); +} +const _easycom_u__image = () => "../../node-modules/uview-plus/components/u-image/u-image.js"; +if (!Math) { + (backNav + _easycom_u__image)(); +} +const backNav = () => "../../components/backNav/backNav.js"; +const _sfc_main = { + __name: "certImg", + setup(__props) { + const src = common_vendor.ref(""); + common_vendor.onLoad((options) => { + if (options.src) { + src.value = options.src; + } else { + src.value = "https://cn.bing.com//th?id=OHR.SanMiguelAzores_ZH-CN2511982585_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp"; + } + }); + return (_ctx, _cache) => { + return { + a: common_vendor.p({ + navName: "病例收录证书" + }), + b: common_vendor.p({ + showLoading: true, + src: src.value, + width: "100%", + mode: "widthFix" + }) + }; + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-f07c1461"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/certImg/certImg.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/certImg/certImg.json b/unpackage/dist/dev/mp-weixin/pages/certImg/certImg.json new file mode 100644 index 0000000..7a95366 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/certImg/certImg.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "u--image": "../../node-modules/uview-plus/components/u-image/u-image", + "back-nav": "../../components/backNav/backNav" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/certImg/certImg.wxml b/unpackage/dist/dev/mp-weixin/pages/certImg/certImg.wxml new file mode 100644 index 0000000..30db704 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/certImg/certImg.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/certImg/certImg.wxss b/unpackage/dist/dev/mp-weixin/pages/certImg/certImg.wxss new file mode 100644 index 0000000..d3bf4c9 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/certImg/certImg.wxss @@ -0,0 +1,28 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.imgbox.data-v-f07c1461 { + margin-top: -30rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/certList/certList.json b/unpackage/dist/dev/mp-weixin/pages/certList/certList.json new file mode 100644 index 0000000..3a78a4b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/certList/certList.json @@ -0,0 +1,11 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "up-tabs": "../../node-modules/uview-plus/components/u-tabs/u-tabs", + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "z-paging": "../../uni_modules/z-paging/components/z-paging/z-paging", + "nav-bar-search": "../../components/navBarSearch/navBarSearch" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/certList/certList.wxml b/unpackage/dist/dev/mp-weixin/pages/certList/certList.wxml new file mode 100644 index 0000000..65b15ab --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/certList/certList.wxml @@ -0,0 +1 @@ +检索到:{{e}}篇文章检索到:{{g}}个视频检索词:{{i}}{{item.a}} 收录证书 {{item.d}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/certList/certList.wxss b/unpackage/dist/dev/mp-weixin/pages/certList/certList.wxss new file mode 100644 index 0000000..d3f36de --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/certList/certList.wxss @@ -0,0 +1,150 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.detail.data-v-24ff958c { + background: #f9f9f9; + padding: 12rpx 30rpx; +} +.detail .desc.data-v-24ff958c { + font-size: 26rpx; + color: #4b5563; + line-height: 40rpx; +} +.detail .red.data-v-24ff958c { + color: #FF0000; +} +.tabcon.data-v-24ff958c { + margin: 0 20rpx; +} +.databox.data-v-24ff958c { + height: 162rpx; + background: #ffffff; + display: flex; + margin-bottom: 20rpx; + justify-content: space-between; +} +.databox .cell.data-v-24ff958c { + flex: 1; + padding: 35rpx 0; + text-align: center; +} +.databox .cell .num.data-v-24ff958c { + font-size: 38rpx; + color: #3cc7c0; +} +.databox .cell .name.data-v-24ff958c { + margin-top: 18rpx; + font-size: 28rpx; + color: #4b5563; +} +.data-v-24ff958c .u-flex { + display: flex; + flex-direction: row; + overflow: hidden; +} +.data-v-24ff958c .u-dropdown__menu { + background: #fff; + z-index: 1; + margin-left: -30rpx; +} +.data-v-24ff958c .u-dropdown__menu__item { + height: 74rpx; + padding: 0 20rpx; + background: #F3F4F6; + border-radius: 15rpx; + flex: none; + margin-left: 60rpx; +} +.u-page .deal.data-v-24ff958c { + margin-top: 20rpx; + display: flex; + color: #6b7280; + font-size: 24rpx; + justify-content: space-between; +} +.u-page .deal .left.data-v-24ff958c { + display: flex; + align-items: center; +} +.u-page .deal .recored.data-v-24ff958c { + display: flex; + align-items: center; + font-size: 31rpx; + color: #3CC7C0; +} +.u-page .deal .collect.data-v-24ff958c { + display: flex; + align-items: center; +} +.u-page .deal .eyebox.data-v-24ff958c { + width: 160rpx; + display: flex; + align-items: center; +} +.u-page .deal .time.data-v-24ff958c { + display: flex; + align-items: center; +} +.u-page .deal .num.data-v-24ff958c { + margin-left: 8rpx; +} +.u-page .item.data-v-24ff958c { + border-bottom: 1rpx solid #f3f4f6; + padding: 30rpx; +} +.u-page .item .title.data-v-24ff958c { + font-size: 30rpx; + color: #111827; + line-height: 46rpx; +} +.u-page .tagsbox.data-v-24ff958c { + margin-top: 20rpx; + display: flex; + flex-wrap: wrap; +} +.u-page .tagsbox .tag.data-v-24ff958c { + padding: 0 10rpx; + margin-right: 16rpx; + height: 46rpx; + line-height: 46rpx; + text-align: center; + background: rgba(60, 199, 192, 0.1); + border-radius: 8rpx; + font-weight: 400; + font-size: 24rpx; + color: #3cc7c0; +} +.detail.data-v-24ff958c { + background: #f9f9f9; + padding: 12rpx 30rpx; +} +.detail .desc.data-v-24ff958c { + font-size: 26rpx; + color: #4b5563; + line-height: 40rpx; +} +.detail .red.data-v-24ff958c { + color: #FF0000; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/detail/detail.js b/unpackage/dist/dev/mp-weixin/pages/detail/detail.js new file mode 100644 index 0000000..90fea04 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/detail/detail.js @@ -0,0 +1,1152 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const common_assets = require("../../common/assets.js"); +const api_api = require("../../api/api.js"); +if (!Array) { + const _easycom_up__image2 = common_vendor.resolveComponent("up--image"); + const _easycom_up_input2 = common_vendor.resolveComponent("up-input"); + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + const _component_polyv_player = common_vendor.resolveComponent("polyv-player"); + const _easycom_up_parse2 = common_vendor.resolveComponent("up-parse"); + const _easycom_up_radio2 = common_vendor.resolveComponent("up-radio"); + const _easycom_up_radio_group2 = common_vendor.resolveComponent("up-radio-group"); + const _easycom_up_image2 = common_vendor.resolveComponent("up-image"); + const _easycom_z_paging2 = common_vendor.resolveComponent("z-paging"); + const _easycom_up__textarea2 = common_vendor.resolveComponent("up--textarea"); + const _easycom_up_upload2 = common_vendor.resolveComponent("up-upload"); + const _easycom_up_popup2 = common_vendor.resolveComponent("up-popup"); + const _easycom_up_overlay2 = common_vendor.resolveComponent("up-overlay"); + (_easycom_up__image2 + _easycom_up_input2 + _easycom_up_icon2 + _component_polyv_player + _easycom_up_parse2 + _easycom_up_radio2 + _easycom_up_radio_group2 + _easycom_up_image2 + _easycom_z_paging2 + _easycom_up__textarea2 + _easycom_up_upload2 + _easycom_up_popup2 + _easycom_up_overlay2)(); +} +const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js"; +const _easycom_up_input = () => "../../node-modules/uview-plus/components/u-input/u-input.js"; +const _easycom_up_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_up_parse = () => "../../node-modules/uview-plus/components/u-parse/u-parse.js"; +const _easycom_up_radio = () => "../../node-modules/uview-plus/components/u-radio/u-radio.js"; +const _easycom_up_radio_group = () => "../../node-modules/uview-plus/components/u-radio-group/u-radio-group.js"; +const _easycom_up_image = () => "../../node-modules/uview-plus/components/u-image/u-image.js"; +const _easycom_z_paging = () => "../../uni_modules/z-paging/components/z-paging/z-paging.js"; +const _easycom_up__textarea = () => "../../node-modules/uview-plus/components/u--textarea/u--textarea.js"; +const _easycom_up_upload = () => "../../node-modules/uview-plus/components/u-upload/u-upload.js"; +const _easycom_up_popup = () => "../../node-modules/uview-plus/components/u-popup/u-popup.js"; +const _easycom_up_overlay = () => "../../node-modules/uview-plus/components/u-overlay/u-overlay.js"; +if (!Math) { + (backDetailNav + _easycom_up__image + _easycom_up_input + _easycom_up_icon + _easycom_up_parse + _easycom_up_radio + _easycom_up_radio_group + _easycom_up_image + _easycom_z_paging + _easycom_up__textarea + _easycom_up_upload + _easycom_up_popup + _easycom_up_overlay)(); +} +const backDetailNav = () => "../../components/backDetailNav/backDetailNav.js"; +const _sfc_main = { + __name: "detail", + setup(__props) { + const isH5 = common_vendor.ref(false); + const user_id = common_vendor.ref(""); + const paging = common_vendor.ref(null); + const dataList = common_vendor.ref([]); + const total = common_vendor.ref(0); + const imgList = common_vendor.ref([]); + const showCanvas = common_vendor.ref(false); + const showCommentDialog = common_vendor.ref(false); + const givePointValue = common_vendor.ref(5); + common_vendor.ref(0); + common_vendor.ref(0); + const showModal = common_vendor.ref(false); + const content = common_vendor.ref(""); + const type = common_vendor.ref(""); + const info = common_vendor.reactive({}); + const showDeal = common_vendor.ref(false); + const showMore = common_vendor.ref(false); + const showGive = common_vendor.ref(false); + const id = common_vendor.ref(""); + const parent_id = common_vendor.ref(null); + const root_id = common_vendor.ref(null); + const is_author = common_vendor.ref(false); + const reply_name = common_vendor.ref(""); + const level = common_vendor.ref(1); + const placeholder = common_vendor.ref("请输入评论内容"); + const mainCommentObj = common_vendor.reactive({}); + const childList = common_vendor.ref([]); + const clickIndex = common_vendor.ref(0); + const is_top = common_vendor.ref(false); + const option_id = common_vendor.ref(""); + const point = common_vendor.ref(0); + const comment_userId = common_vendor.ref(""); + const commentTextarea = common_vendor.ref(null); + const confirmGive = () => { + showGive.value = false; + givePoint(); + }; + const openGivePop = () => { + showGive.value = true; + getUserPoint(); + }; + const formatDay = (date) => { + return common_vendor.dayjs(date).format("YYYY-MM-DD"); + }; + const formatDate = (date) => { + return common_vendor.dayjs(date).format("YYYY-MM-DD HH:mm"); + }; + const inputPoint = () => { + if (givePointValue.value < 5) { + givePointValue.value = 5; + common_vendor.index.showToast({ + icon: "none", + title: "每次打赏范围5~100积分" + }); + } + if (givePointValue.value > 100) { + givePointValue.value = 100; + common_vendor.index.showToast({ + icon: "none", + title: "每次打赏范围5~100积分" + }); + } + }; + const changePoint = (type2) => { + if (type2 == "minus") { + if (givePointValue.value > 5) { + givePointValue.value = givePointValue.value - 5; + } else { + common_vendor.index.showToast({ + icon: "none", + title: "每次打赏范围5~100积分" + }); + } + } else { + if (givePointValue.value <= 95) { + givePointValue.value = givePointValue.value + 5; + } else { + common_vendor.index.showToast({ + icon: "none", + title: "每次打赏范围5~100积分" + }); + } + } + }; + const openMorePop = (obj, list2, index) => { + showMore.value = true; + childList.value = list2; + Object.assign(mainCommentObj, obj); + clickIndex.value = index; + }; + const getArticleDetail = (id2) => { + api_api.api.getArticleDetail(id2).then((res) => { + let result = res.data.data; + Object.assign(info, result); + }); + }; + const getVideoDetail = (id2) => { + api_api.api.getVideoDetail(id2).then((res) => { + let result = res.data.data; + Object.assign(info, result); + }); + }; + const getExchangeDetail = (id2) => { + api_api.api.getExchangeDetail(id2).then((res) => { + let result = res.data.data; + Object.assign(info, result); + }); + }; + const getUserPoint = () => { + api_api.api.getUserPoint().then((res) => { + common_vendor.index.__f__("log", "at pages/detail/detail.vue:737", res.data.data); + point.value = res.data.data; + }); + }; + const givePoint = () => { + if (point.value < givePointValue.value) { + common_vendor.index.showToast({ + icon: "none", + title: "积分不足!" + }); + return false; + } + let giveType = 1; + if (type.value == "article") { + giveType = 1; + } else if (type.value == "video") { + giveType = 2; + } else { + giveType = 3; + } + api_api.api.givePoint({ + id: id.value, + type: giveType, + point: givePointValue.value + }).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "打赏成功!" + }); + showGive.value = false; + }); + }; + common_vendor.onLoad((options) => { + id.value = options.id; + type.value = options.type; + readRecord(); + let userInfo = common_vendor.index.getStorageSync("userInfo"); + if (userInfo.user_id) { + user_id.value = userInfo.user_id; + } + }); + const clearComment = () => { + parent_id.value = null; + imgList.value = []; + content.value = ""; + root_id.value = null; + reply_name.value = ""; + level.value = 1; + }; + const closeDealPop = () => { + showDeal.value = false; + clearComment(); + }; + const showReplyPop = () => { + parent_id.value = mainCommentObj.comment_id; + root_id.value = mainCommentObj.comment_id; + is_author.value = mainCommentObj.is_author == 1 ? true : false; + reply_name.value = mainCommentObj.user_name; + level.value = 2; + if (level.value == 2 || level.value == 3) { + placeholder.value = "回复" + reply_name.value + ":"; + } + showCommentDialog.value = true; + }; + const alertDeal = (parentId, rootId, name, top, commentLevel, userId) => { + parent_id.value = parentId; + comment_userId.value = userId; + root_id.value = rootId; + reply_name.value = name; + level.value = commentLevel; + is_top.value = top == 1 ? true : false; + if (level.value == 2 || level.value == 3) { + placeholder.value = "回复" + name + ":"; + } + showDeal.value = true; + }; + const openCommentDialog = () => { + showCommentDialog.value = true; + showDeal.value = false; + }; + const queryList = (pageNo, pageSize) => { + const params = { + page: pageNo, + page_size: pageSize + }; + if (type.value == "article") { + getArticleComment(params); + } else if (type.value == "video") { + getVideoComment(params); + } else { + getExchangeComment(params); + } + }; + const getArticleComment = (params) => { + const form = { + article_id: id.value, + is_have_sub_comment: 1 + }; + api_api.api.getArticleComment({ + ...form, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + is_author.value = res.data.data.is_author == 1 ? true : false; + setTimeout(() => { + if (showMore.value) { + openMorePop( + mainCommentObj, + dataList.value[clickIndex.value].sub_comment, + clickIndex.value + ); + } + }, 1500); + }).catch((res) => { + paging.value.complete(false); + }); + }; + const getVideoComment = (params) => { + const form = { + video_id: id.value, + is_have_sub_comment: 1 + }; + api_api.api.getVideoComment({ + ...form, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + is_author.value = res.data.data.is_author == 1 ? true : false; + setTimeout(() => { + if (showMore.value) { + openMorePop( + mainCommentObj, + dataList.value[clickIndex.value].sub_comment, + clickIndex.value + ); + } + }, 1500); + }).catch((res) => { + paging.value.complete(false); + }); + }; + const getExchangeComment = (params) => { + const form = { + exchange_id: id.value, + is_have_sub_comment: 1 + }; + api_api.api.getExchangeComment({ + ...form, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + is_author.value = res.data.data.is_author == 1 ? true : false; + setTimeout(() => { + if (showMore.value) { + openMorePop( + mainCommentObj, + dataList.value[clickIndex.value].sub_comment, + clickIndex.value + ); + } + }, 1500); + }).catch((res) => { + paging.value.complete(false); + }); + }; + const open = () => { + showCommentDialog.value = true; + }; + const close = () => { + showCommentDialog.value = false; + common_vendor.index.__f__("log", "at pages/detail/detail.vue:930", "close"); + }; + const openDeal = () => { + showDeal.value = true; + common_vendor.index.__f__("log", "at pages/detail/detail.vue:935", "open"); + }; + const closeDeal = () => { + showDeal.value = false; + }; + const openMore = () => { + showMore.value = true; + common_vendor.index.__f__("log", "at pages/detail/detail.vue:943", "open"); + }; + const closeMore = () => { + showMore.value = false; + }; + const previewImg = (url) => { + common_vendor.index.previewImage({ + current: url, + urls: [url] + }); + }; + const handleUpload = (file) => { + let File2 = file.file; + api_api.api.getOss({ + scene: 1 + }).then((rep) => { + let result = rep.data; + if (result.code == 200) { + let { access_id, dir, policy, signature, host } = result.data; + let time = common_vendor.dayjs().format("YYYYMMDDHHmmss"); + let random = generateRandomNumber(); + let filename = time + random; + let imgType = "." + getImageFormat(File2[0].url); + return new Promise((resolve, reject) => { + common_vendor.index.uploadFile({ + url: host, + // 仅为示例,非真实的接口地址 + filePath: File2[0].url, + name: "file", + formData: { + OSSAccessKeyId: access_id, + policy, + key: dir + time + random + imgType, + signature + }, + success(res) { + if (res.statusCode === 204) { + let url = host + "/" + dir + filename + imgType; + common_vendor.index.__f__("log", "at pages/detail/detail.vue:1294", url); + imgList.value = [url]; + } + }, + fail: (err) => { + common_vendor.index.__f__("log", "at pages/detail/detail.vue:1299", err); + } + }); + }); + } + }); + }; + const generateRandomNumber = () => { + let randomNumber = Math.floor(1e3 + Math.random() * 9e3); + return randomNumber; + }; + const getImageFormat = (imageUrl) => { + const lastDotIndex = imageUrl.lastIndexOf("."); + if (lastDotIndex !== -1) { + return imageUrl.substring(lastDotIndex + 1); + } + return "unknown"; + }; + const afterRead = (file, lists, name) => { + common_vendor.index.__f__("log", "at pages/detail/detail.vue:1318", lists); + common_vendor.index.__f__("log", "at pages/detail/detail.vue:1319", name); + handleUpload(file); + }; + const delImg = (index) => { + imgList.value = []; + }; + const collectArticle = (id2) => { + api_api.api.collectArticle(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "收藏成功" + }); + getArticleDetail(id2); + }); + }; + const collectVideo = (id2) => { + api_api.api.collectVideo(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "收藏成功" + }); + getVideoDetail(id2); + }); + }; + const collectExchange = (id2) => { + api_api.api.exchangeCollect(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "收藏成功" + }); + getExchangeDetail(id2); + }); + }; + const cancelCollectArticle = (id2) => { + api_api.api.cancelCollectArticle(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "已取消收藏" + }); + getArticleDetail(id2); + }); + }; + const cancelCollectVideo = (id2) => { + api_api.api.cancelCollectVideo(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "已取消收藏" + }); + getVideoDetail(id2); + }); + }; + const cancelCollectExchange = (id2) => { + api_api.api.cancelCollectExchange(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "已取消收藏" + }); + getExchangeDetail(id2); + }); + }; + const toggleCollect = () => { + if (type.value == "video") { + info.is_collect ? cancelCollectVideo(id.value) : collectVideo(id.value); + } else if (type.value == "article") { + info.is_collect ? cancelCollectArticle(id.value) : collectArticle(id.value); + } else { + info.is_collect ? cancelCollectExchange(id.value) : collectExchange(id.value); + } + }; + const addArticleComment = (id2, data) => { + api_api.api.addArticleComment(id2, data).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "评论成功" + }); + clearComment(); + showCommentDialog.value = false; + paging.value.refresh(); + }); + }; + const addVideoComment = (id2, data) => { + api_api.api.addVideoComment(id2, data).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "评论成功" + }); + clearComment(); + showCommentDialog.value = false; + paging.value.refresh(); + }); + }; + const addExchangeComment = (id2, data) => { + api_api.api.addExchangeComment(id2, data).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "评论成功" + }); + clearComment(); + showCommentDialog.value = false; + paging.value.refresh(); + }); + }; + const delArticleComment = (id2) => { + api_api.api.delArticleComment(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "删除成功" + }); + paging.value.refresh(); + }); + }; + const delVideoComment = (id2) => { + api_api.api.delVideoComment(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "删除成功" + }); + paging.value.refresh(); + }); + }; + const fromatImg = (val) => { + if (val) { + return val.replace(/\ { + api_api.api.delExchangeComment(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "删除成功" + }); + paging.value.refresh(); + }); + }; + const topArticleComment = (id2) => { + api_api.api.topArticleComment(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "置顶成功" + }); + showDeal.value = false; + paging.value.refresh(); + }); + }; + const topVideoComment = (id2) => { + api_api.api.topVideoComment(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "置顶成功" + }); + showDeal.value = false; + paging.value.refresh(); + }); + }; + const topExchangeComment = (id2) => { + api_api.api.topExchangeComment(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "置顶成功" + }); + showDeal.value = false; + paging.value.refresh(); + }); + }; + const cancelTopArticleComment = (id2) => { + api_api.api.cancelTopArticleComment(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "取消置顶成功" + }); + showDeal.value = false; + paging.value.refresh(); + }); + }; + const cancelTopVideoComment = (id2) => { + api_api.api.cancelTopArticleComment(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "取消置顶成功" + }); + showDeal.value = false; + paging.value.refresh(); + }); + }; + const cancelTopExchangeComment = (id2) => { + api_api.api.cancelTopExchangeComment(id2).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "取消置顶成功" + }); + showDeal.value = false; + paging.value.refresh(); + }); + }; + const delComment = () => { + showModal.value = true; + showDeal.value = false; + }; + const confirmDel = () => { + if (type.value == "article") { + delArticleComment(parent_id.value); + } else if (type.value == "video") { + delVideoComment(parent_id.value); + } else { + delExchangeComment(parent_id.value); + } + showModal.value = false; + }; + const toggleTop = () => { + if (type.value == "article") { + is_top.value ? cancelTopArticleComment(parent_id.value) : topArticleComment(parent_id.value); + } else if (type.value == "video") { + is_top.value ? cancelTopVideoComment(parent_id.value) : topVideoComment(parent_id.value); + } else { + is_top.value ? cancelTopExchangeComment(parent_id.value) : topExchangeComment(parent_id.value); + } + }; + const sendComment = () => { + if (!content.value) { + common_vendor.index.showToast({ + icon: "none", + title: "请输入评论内容" + }); + return false; + } + const postData = { + content: level.value == 3 ? "回复" + reply_name.value + ":" + content.value : content.value + }; + if (imgList.value.length > 0) { + postData.comment_image = imgList.value[0]; + } + if (parent_id.value !== null) { + postData.parent_id = parent_id.value; + } + if (root_id.value !== null) { + postData.root_id = root_id.value; + } + if (type.value == "article") { + addArticleComment(id.value, postData); + } else if (type.value == "video") { + addVideoComment(id.value, postData); + } else { + addExchangeComment(id.value, postData); + } + }; + const formatHtml = (val) => { + if (/^回复.+:/.test(val)) { + return val.replace( + /[^回复]([^:]+)/, + `$&` + ); + } + return val; + }; + const addVote = () => { + if (!option_id.value) { + common_vendor.index.showToast({ + icon: "none", + title: "请选择投票选项!" + }); + return false; + } + api_api.api.addVote(id.value, { + option_id: option_id.value + }).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "投票成功!" + }); + getExchangeDetail(id.value); + }); + }; + const readRecord = async () => { + let flag = 1; + if (type.value == "article") { + flag = 1; + } else if (type.value == "video") { + flag = 2; + } else { + flag = 3; + } + const res = api_api.api.readRecord({ + type: flag, + id: id.value + }); + if (res) { + if (type.value == "article") { + getArticleDetail(id.value); + } else if (type.value == "video") { + getVideoDetail(id.value); + } else { + getExchangeDetail(id.value); + } + } + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.p({ + navName: type.value == "exchange" ? "肝胆相照病例交流园地" : "肝胆相照临床病例库" + }), + b: common_vendor.p({ + src: common_vendor.unref(common_assets.chatImg), + width: "46rpx", + height: "46rpx", + radius: "50%" + }), + c: common_vendor.o(open), + d: common_vendor.p({ + disabled: true, + focus: false, + type: "text", + placeholderClass: "placeholderClass", + placeholder: "对病例发表您的看法" + }), + e: common_vendor.o(open), + f: common_vendor.o(open), + g: common_vendor.o(toggleCollect), + h: common_vendor.p({ + src: info.is_collect ? common_vendor.unref(common_assets.collectonImg) : common_vendor.unref(common_assets.collectImg), + width: "70rpx", + height: "70rpx" + }), + i: common_vendor.p({ + src: common_vendor.unref(common_assets.shangImg), + mode: "widthFix", + width: "169rpx", + height: "77rpx" + }), + j: common_vendor.o(openGivePop), + k: type.value == "video" + }, type.value == "video" ? { + l: common_vendor.t(info.video_title) + } : type.value == "article" ? { + n: common_vendor.t(info.article_title) + } : { + o: common_vendor.t(info.exchange_title) + }, { + m: type.value == "article", + p: type.value == "video" || type.value == "article" + }, type.value == "video" || type.value == "article" ? { + q: common_vendor.f(info.author, (item, k0, i0) => { + return { + a: "eca06f3c-6-" + i0 + ",eca06f3c-0", + b: common_vendor.t(item.doctor_name), + c: common_vendor.t(item.hospital_name) + }; + }), + r: common_vendor.p({ + src: common_vendor.unref(common_assets.headImg), + mode: "widthFix", + width: "46rpx", + height: "46rpx", + radius: "50%" + }) + } : { + s: common_vendor.p({ + src: common_vendor.unref(common_assets.headImg), + mode: "widthFix", + width: "46rpx", + height: "46rpx", + radius: "50%" + }), + t: common_vendor.t(info.user_name), + v: common_vendor.t(info.hospital_name) + }, { + w: common_vendor.p({ + name: "eye", + color: "#6B7280", + size: "28rpx" + }), + x: common_vendor.t(info.read_num), + y: common_vendor.p({ + name: info.is_collect ? "heart-fill" : "heart", + color: info.is_collect ? "red" : "#6B7280", + size: "28rpx" + }), + z: common_vendor.t(info.collect_num), + A: common_vendor.p({ + name: "clock", + color: "#6B7280", + size: "28rpx" + }), + B: common_vendor.t(formatDay(info.push_date)), + C: showCanvas.value + }, showCanvas.value ? {} : {}, { + D: type.value == "video" && !isH5.value + }, type.value == "video" && !isH5.value ? { + E: "playerContext" + info.video_no, + F: "playerId" + info.video_no, + G: info.video_no + } : {}, { + H: type.value == "video" && isH5.value + }, type.value == "video" && isH5.value ? {} : type.value == "article" ? { + J: common_vendor.p({ + content: fromatImg(info.article_content) + }) + } : common_vendor.e({ + K: info.exchange_content + }, info.exchange_content ? { + L: common_vendor.p({ + content: fromatImg(info.exchange_content) + }) + } : {}, { + M: info.exchange_summary + }, info.exchange_summary ? { + N: common_vendor.p({ + content: fromatImg(info.exchange_summary) + }) + } : {}, { + O: info.case_exchange_vote && info.case_exchange_vote.vote_title + }, info.case_exchange_vote && info.case_exchange_vote.vote_title ? common_vendor.e({ + P: info.case_exchange_vote.is_have_voted != 1 + }, info.case_exchange_vote.is_have_voted != 1 ? { + Q: common_vendor.t(info.case_exchange_vote.vote_title), + R: common_vendor.f(info.case_exchange_vote.case_exchange_vote_option, (item, k0, i0) => { + return { + a: "eca06f3c-16-" + i0 + ",eca06f3c-15", + b: common_vendor.p({ + activeColor: "#3CC7C0", + label: item.option_value, + name: item.option_id + }), + c: item.option_id + }; + }), + S: common_vendor.o(($event) => option_id.value = $event), + T: common_vendor.p({ + placement: "column", + modelValue: option_id.value + }), + U: common_vendor.o(addVote) + } : { + V: common_vendor.t(info.case_exchange_vote.vote_title), + W: common_vendor.f(info.case_exchange_vote.case_exchange_vote_option, (item, k0, i0) => { + return { + a: common_vendor.t(item.option_value), + b: common_vendor.t(item.proportion), + c: item.option_id + }; + }), + X: _ctx.proportion / 100 + }) : {}), { + I: type.value == "article", + Y: common_vendor.p({ + src: common_vendor.unref(common_assets.commentImg), + mode: "widthFix", + width: "50rpx", + height: "50rpx" + }), + Z: common_vendor.t(total.value), + aa: common_vendor.f(dataList.value, (item, index, i0) => { + return common_vendor.e({ + a: "eca06f3c-18-" + i0 + ",eca06f3c-0", + b: common_vendor.t(item.user_name), + c: user_id.value == item.user_id + }, user_id.value == item.user_id ? { + d: "eca06f3c-19-" + i0 + ",eca06f3c-0", + e: common_vendor.p({ + src: common_vendor.unref(common_assets.selfImg), + width: "69rpx", + height: "31rpx" + }) + } : {}, { + f: common_vendor.o(($event) => alertDeal(item.comment_id, item.comment_id, item.user_name, item.is_top, 2, item.user_id), item.comment_id), + g: common_vendor.t(item.content), + h: item.comment_image + }, item.comment_image ? { + i: common_vendor.o(($event) => previewImg(item.comment_image), item.comment_id), + j: "eca06f3c-20-" + i0 + ",eca06f3c-0", + k: common_vendor.p({ + src: item.comment_image, + radius: "16rpx", + width: "150rpx", + height: "150rpx" + }) + } : {}, { + l: common_vendor.t(formatDate(item.created_at)), + m: item.sub_comment && item.sub_comment.length > 0 + }, item.sub_comment && item.sub_comment.length > 0 ? { + n: common_vendor.f(item.sub_comment.slice(0, 3), (cell, index2, i1) => { + return common_vendor.e({ + a: "eca06f3c-21-" + i0 + "-" + i1 + ",eca06f3c-0", + b: common_vendor.t(cell.user_name), + c: user_id.value == cell.user_id + }, user_id.value == cell.user_id ? { + d: "eca06f3c-22-" + i0 + "-" + i1 + ",eca06f3c-0", + e: common_vendor.p({ + src: common_vendor.unref(common_assets.selfImg), + width: "69rpx", + height: "31rpx" + }) + } : {}, { + f: common_vendor.o(($event) => alertDeal(cell.comment_id, cell.root_id, cell.user_name, cell.is_top, 3, cell.user_id), cell.comment_id), + g: formatHtml(cell.content), + h: cell.comment_image + }, cell.comment_image ? { + i: common_vendor.o(($event) => previewImg(cell.comment_image), cell.comment_id), + j: "eca06f3c-23-" + i0 + "-" + i1 + ",eca06f3c-0", + k: common_vendor.p({ + src: cell.comment_image, + radius: "16rpx", + width: "150rpx", + height: "150rpx" + }) + } : {}, { + l: common_vendor.t(formatDate(cell.created_at)), + m: cell.comment_id + }); + }), + o: common_vendor.p({ + src: common_vendor.unref(common_assets.headImg), + width: "86rpx", + height: "86rpx", + radius: "50%" + }) + } : {}, { + p: item.sub_comment.length > 3 + }, item.sub_comment.length > 3 ? { + q: common_vendor.o(($event) => openMorePop(item, item.sub_comment, index), item.comment_id) + } : {}, { + r: item.comment_id + }); + }), + ab: common_vendor.p({ + src: common_vendor.unref(common_assets.headImg), + width: "86rpx", + height: "86rpx", + radius: "50%" + }), + ac: common_vendor.sr(paging, "eca06f3c-0", { + "k": "paging" + }), + ad: common_vendor.o(queryList), + ae: common_vendor.o(($event) => dataList.value = $event), + af: common_vendor.p({ + ["inside-more"]: true, + ["loading-more-no-more-text"]: "咱也是有底线的!", + ["auto-show-back-to-top"]: false, + ["empty-view-super-style"]: { + "paddingBottom": "140rpx" + }, + ["refresher-title-style"]: { + "paddingBottom": "60rpx", + "paddingTop": "10rpx" + }, + ["refresher-img-style"]: { + "paddingBottom": "60rpx", + "paddingTop": "10rpx" + }, + modelValue: dataList.value + }), + ag: common_vendor.sr(commentTextarea, "eca06f3c-25,eca06f3c-24", { + "k": "commentTextarea" + }), + ah: common_vendor.o(($event) => content.value = $event), + ai: common_vendor.p({ + focus: false, + height: "200", + cursorSpacing: "240", + adjustPosition: true, + ["adjust-keyboard-to"]: "bottom", + placeholder: placeholder.value, + modelValue: content.value + }), + aj: imgList.value.length > 0 + }, imgList.value.length > 0 ? { + ak: common_vendor.o(($event) => previewImg(imgList.value[0])), + al: common_vendor.p({ + src: imgList.value[0], + radius: "6", + width: "150rpx", + height: "150rpx" + }), + am: common_vendor.p({ + name: "close-circle", + color: "#666", + size: "16" + }), + an: common_vendor.o(delImg) + } : {}, { + ao: common_vendor.p({ + src: common_vendor.unref(common_assets.uploadImg), + mode: "widthFix", + width: "40rpx", + height: "77rpx" + }), + ap: common_vendor.o(afterRead), + aq: common_vendor.p({ + disabled: imgList.value.length >= 1, + ["show-upload-list"]: false, + name: "imgupload", + multiple: true, + maxCount: 1, + width: "40rpx", + height: "77rpx" + }), + ar: imgList.value.length >= 1 ? 1 : "", + as: common_vendor.o(sendComment), + at: common_vendor.o(close), + av: common_vendor.o(open), + aw: common_vendor.p({ + zIndex: 99, + overlayStyle: { + zIndex: 98 + }, + closeOnClickOverlay: false, + show: showCommentDialog.value, + round: 10, + closeable: true, + mode: "bottom" + }), + ax: level.value == 2 && is_author.value + }, level.value == 2 && is_author.value ? { + ay: common_vendor.t(is_top.value ? "取消置顶" : "置顶"), + az: common_vendor.o(toggleTop) + } : {}, { + aA: common_vendor.o(openCommentDialog), + aB: is_author.value || user_id.value == comment_userId.value + }, is_author.value || user_id.value == comment_userId.value ? { + aC: common_vendor.o(delComment) + } : {}, { + aD: common_vendor.o(closeDealPop), + aE: common_vendor.o(closeDeal), + aF: common_vendor.o(openDeal), + aG: common_vendor.p({ + zIndex: 60, + overlayStyle: { + zIndex: 59 + }, + closeOnClickOverlay: false, + show: showDeal.value, + round: 10, + mode: "bottom" + }), + aH: common_vendor.p({ + name: "close", + color: "#666", + size: "20" + }), + aI: common_vendor.o(closeMore), + aJ: common_vendor.p({ + src: common_vendor.unref(common_assets.headImg), + width: "86rpx", + height: "86rpx", + radius: "50%" + }), + aK: common_vendor.t(mainCommentObj.user_name), + aL: user_id.value == mainCommentObj.user_id + }, user_id.value == mainCommentObj.user_id ? { + aM: common_vendor.p({ + src: common_vendor.unref(common_assets.selfImg), + width: "69rpx", + height: "31rpx" + }) + } : {}, { + aN: common_vendor.o(($event) => alertDeal(mainCommentObj.comment_id, mainCommentObj.comment_id, mainCommentObj.user_name, mainCommentObj.is_top, 2, mainCommentObj.user_id)), + aO: common_vendor.t(mainCommentObj.content), + aP: mainCommentObj.comment_image + }, mainCommentObj.comment_image ? { + aQ: common_vendor.o(($event) => previewImg(mainCommentObj.comment_image)), + aR: common_vendor.p({ + src: mainCommentObj.comment_image, + radius: "16rpx", + width: "150rpx", + height: "150rpx" + }) + } : {}, { + aS: common_vendor.t(formatDate(mainCommentObj.created_at)), + aT: common_vendor.f(childList.value, (cell, index, i0) => { + return common_vendor.e({ + a: "eca06f3c-36-" + i0 + ",eca06f3c-31", + b: common_vendor.t(cell.user_name), + c: user_id.value == cell.user_id + }, user_id.value == cell.user_id ? { + d: "eca06f3c-37-" + i0 + ",eca06f3c-31", + e: common_vendor.p({ + src: common_vendor.unref(common_assets.selfImg), + width: "69rpx", + height: "31rpx" + }) + } : {}, { + f: common_vendor.o(($event) => alertDeal(cell.comment_id, cell.root_id, cell.user_name, cell.is_top, 3, cell.user_id), cell.comment_id), + g: formatHtml(cell.content), + h: cell.comment_image + }, cell.comment_image ? { + i: common_vendor.o(($event) => previewImg(cell.comment_image), cell.comment_id), + j: "eca06f3c-38-" + i0 + ",eca06f3c-31", + k: common_vendor.p({ + src: cell.comment_image, + radius: "16rpx", + width: "150rpx", + height: "150rpx" + }) + } : {}, { + l: common_vendor.t(formatDate(cell.created_at)), + m: cell.comment_id + }); + }), + aU: common_vendor.p({ + src: common_vendor.unref(common_assets.headImg), + width: "86rpx", + height: "86rpx", + radius: "50%" + }), + aV: common_vendor.o(($event) => _ctx.value = $event), + aW: common_vendor.p({ + readonly: true, + placeholder: "@" + mainCommentObj.user_name + ":", + border: "surround", + modelValue: _ctx.value + }), + aX: common_vendor.o(showReplyPop), + aY: common_vendor.o(closeMore), + aZ: common_vendor.o(openMore), + ba: common_vendor.p({ + zIndex: 10, + overlayStyle: { + zIndex: 9 + }, + closeOnClickOverlay: false, + show: showMore.value, + round: 10, + mode: "bottom" + }), + bb: common_vendor.t(point.value), + bc: common_vendor.o(($event) => changePoint("minus")), + bd: common_vendor.o(inputPoint), + be: common_vendor.o(($event) => givePointValue.value = $event), + bf: common_vendor.p({ + placeholder: "请输入打赏积分", + type: "number", + border: "surround", + modelValue: givePointValue.value + }), + bg: common_vendor.o(($event) => changePoint("add")), + bh: common_vendor.o(($event) => showGive.value = false), + bi: common_vendor.o(confirmGive), + bj: common_vendor.p({ + show: showGive.value, + ["mask-click-able"]: true + }), + bk: common_vendor.o(($event) => showModal.value = false), + bl: common_vendor.o(confirmDel), + bm: common_vendor.p({ + show: showModal.value, + ["mask-click-able"]: true + }) + }); + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-eca06f3c"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/detail/detail.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/detail/detail.json b/unpackage/dist/dev/mp-weixin/pages/detail/detail.json new file mode 100644 index 0000000..35329f6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/detail/detail.json @@ -0,0 +1,20 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "polyv-player": "plugin://polyv-player/player", + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "up-input": "../../node-modules/uview-plus/components/u-input/u-input", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "up-parse": "../../node-modules/uview-plus/components/u-parse/u-parse", + "up-radio": "../../node-modules/uview-plus/components/u-radio/u-radio", + "up-radio-group": "../../node-modules/uview-plus/components/u-radio-group/u-radio-group", + "up-image": "../../node-modules/uview-plus/components/u-image/u-image", + "z-paging": "../../uni_modules/z-paging/components/z-paging/z-paging", + "up--textarea": "../../node-modules/uview-plus/components/u--textarea/u--textarea", + "up-upload": "../../node-modules/uview-plus/components/u-upload/u-upload", + "up-popup": "../../node-modules/uview-plus/components/u-popup/u-popup", + "up-overlay": "../../node-modules/uview-plus/components/u-overlay/u-overlay", + "back-detail-nav": "../../components/backDetailNav/backDetailNav" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/detail/detail.wxml b/unpackage/dist/dev/mp-weixin/pages/detail/detail.wxml new file mode 100644 index 0000000..4421720 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/detail/detail.wxml @@ -0,0 +1 @@ +{{l}}{{n}}{{o}}{{item.b}} · {{item.c}}{{t}} · {{v}}{{x}}{{z}}{{B}}病例信息结果与讨论在线投票{{Q}}投票在线投票{{V}}{{item.a}}{{item.b}}%全部评论({{Z}}){{item.b}}...{{item.g}}{{item.l}}{{cell.b}}...{{cell.l}}——展开更多回复发送{{ay}}回复删除取消 回复 {{aK}}...{{aO}}{{aS}}{{cell.b}}...{{cell.l}}打赏 积分余额: {{bb}}积分 -+取消确定提示 是否删除该评论? 取消确定 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/detail/detail.wxss b/unpackage/dist/dev/mp-weixin/pages/detail/detail.wxss new file mode 100644 index 0000000..c8fe429 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/detail/detail.wxss @@ -0,0 +1,526 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.videobox.data-v-eca06f3c { + padding: 20rpx 30rpx; +} +.videobox .cloumn.data-v-eca06f3c { + padding-bottom: 30rpx; +} +.videobox.data-v-eca06f3c .video { + display: flex; + justify-content: center; +} +.videobox .con.data-v-eca06f3c .img { + width: 100%; +} +.zanboxpop.data-v-eca06f3c { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} +.zanboxpop .zanwraper.data-v-eca06f3c { + width: 630rpx; + margin: 0 auto; + padding-bottom: 50rpx; + background: #f5f6f9; + border-radius: 16rpx; +} +.zanboxpop .zanwraper .title.data-v-eca06f3c { + margin-top: 48rpx; + text-align: center; + font-weight: 500; + font-size: 36rpx; + color: rgba(0, 0, 0, 0.85); +} +.zanboxpop .zanwraper .content.data-v-eca06f3c { + padding: 30rpx 0; + background: #f5f6f9; + text-align: center; +} +.zanboxpop .zanwraper .content.data-v-eca06f3c .imgstyle { + max-width: 100% !important; +} +.zanboxpop .zanwraper .content.data-v-eca06f3c ._block { + text-align: left !important; +} +.zanboxpop .zanwraper .count.data-v-eca06f3c { + margin-top: 24rpx; + display: flex; + align-items: center; + text-align: center; + justify-content: center; + font-weight: 400; + font-size: 28rpx; + color: rgba(0, 0, 0, 0.65); +} +.zanboxpop .zanwraper .count .num.data-v-eca06f3c { + color: #ff0000; + font-size: 32rpx; +} +.zanboxpop .zanwraper .count .earn.data-v-eca06f3c { + font-size: 32rpx; + color: #3cc7c0; +} +.zanboxpop .zanwraper .countbox.data-v-eca06f3c { + display: flex; + width: 100%; + margin: 30rpx 0px 40rpx; + padding: 0 40rpx; + justify-content: center; + box-sizing: border-box; +} +.zanboxpop .zanwraper .countbox .minus.data-v-eca06f3c { + flex-shrink: 0; + margin-left: 10rp; + width: 90rpx; + height: 90rpx; + font-size: 60rpx; + color: #333; + display: flex; + justify-content: center; + align-items: center; + background: #ffffff; + border-radius: 12rpx; + border: 2rpx solid #e9e9e9; +} +.zanboxpop .zanwraper .countbox .add.data-v-eca06f3c { + flex-shrink: 0; + width: 90rpx; + margin-left: 10rpx; + height: 90rpx; + font-size: 60rpx; + color: #333; + display: flex; + justify-content: center; + align-items: center; + color: #fff; + background: #3cc7c0; + border-radius: 12rpx; + border: 2rpx solid #3cc7c0; +} +.zanboxpop .zanwraper .countbox.data-v-eca06f3c .u-input__content__field-wrapper__field { + height: 60rpx; + font-size: 34rpx !important; + text-align: center !important; +} +.zanboxpop .zanwraper .countbox.data-v-eca06f3c .u-input { + background: #f2f2f2; + width: 200rpx !important; + flex: none; +} +.zanboxpop .zanwraper .countbox.data-v-eca06f3c .u-input--radius { + border-radius: 24rrpx; +} +.zanboxpop .zanwraper .btnbox.data-v-eca06f3c { + margin: 0px 40rpx 0px; + display: flex; + justify-content: space-between; +} +.zanboxpop .zanwraper .btnbox .cancle.data-v-eca06f3c { + color: rgba(0, 0, 0, 0.3); + width: 256rpx; + height: 88rpx; + background: #f5f6f9; + border-radius: 25px; + border: 2rpx solid rgba(0, 0, 0, 0.15); + font-weight: 500; + font-size: 32rpx; + color: rgba(0, 0, 0, 0.85); + display: flex; + justify-content: center; + align-items: center; +} +.zanboxpop .zanwraper .btnbox .ok.data-v-eca06f3c { + color: #fff; + width: 256rpx; + height: 88rpx; + background: #3cc7c0; + border-radius: 25px; + border: 2rpx solid #3cc7c0; + font-weight: 500; + font-size: 32rpx; + display: flex; + justify-content: center; + align-items: center; +} +.commentPop.data-v-eca06f3c { + height: calc(100vh - 400rpx); + display: flex; + flex-direction: column; +} +.commentPop .commentScroll.data-v-eca06f3c { + flex: 1; + overflow-y: scroll; + margin-bottom: 96rpx; +} +.commentPop .bottom.data-v-eca06f3c { + border-top: 2rpx solid #efefef; + height: 96rpx; + display: flex; + align-items: center; + justify-content: center; + background: #fff; +} +.commentPop .bottom.data-v-eca06f3c .u-input__content__field-wrapper__field { + height: 50rpx; +} +.commentPop .bottom.data-v-eca06f3c .u-input { + background: #f2f2f2; +} +.commentPop .bottom.data-v-eca06f3c .u-input--radius { + border-radius: 40rpx; +} +.commentPop .title.data-v-eca06f3c { + height: 100rpx; + line-height: 100rpx; + text-align: center; + position: relative; + border-bottom: 2rpx solid #e7e7e7; +} +.commentPop .title .close.data-v-eca06f3c { + position: absolute; + right: 20rpx; + top: 30rpx; +} +.commentPop .unit .item.data-v-eca06f3c { + margin-top: 12rpx; + border-bottom: 2rpx solid #e7e7e7; +} +.dealbox .dealcell.data-v-eca06f3c { + display: flex; + align-items: center; + justify-content: center; + height: 112rpx; + font-size: 32rpx; + color: rgba(0, 0, 0, 0.9); + border-bottom: 2rpx solid #efefef; +} +.expand.data-v-eca06f3c { + display: flex; + font-size: 32rpx; + padding: 12rpx 0; + color: #3cc7c0; +} +.commentcon .item.data-v-eca06f3c { + display: flex; + padding: 30rpx 35rpx 16rpx; +} +.commentcon .item .info.data-v-eca06f3c { + margin-left: 24rpx; + flex: 1; +} +.commentcon .item .info .user.data-v-eca06f3c { + display: flex; + align-items: center; + justify-content: space-between; +} +.commentcon .item .info .user .namebox.data-v-eca06f3c { + display: flex; + align-items: center; +} +.commentcon .item .info .user .namebox.data-v-eca06f3c .u-image { + background: none !important; + padding-bottom: 16rpx; +} +.commentcon .item .info .user .namebox .selfImg.data-v-eca06f3c { + padding-bottom: 6rpx; +} +.commentcon .item .info .user .namebox .name.data-v-eca06f3c { + margin-right: 6rpx; + font-size: 34rpx; +} +.commentcon .item .info .user .dot.data-v-eca06f3c { + font-size: 32rpx; +} +.commentcon .item .info .question.data-v-eca06f3c { + margin-top: 15rpx; + font-size: 30rpx; + margin-bottom: 0px; + line-height: 54rpx; + color: #333; + white-space: pre-wrap; + word-wrap: break-word; + word-break: break-all; +} +.commentcon .item .info .commentImg.data-v-eca06f3c { + margin-top: 16rpx; +} +.commentcon .item .info .date.data-v-eca06f3c { + font-size: 30rpx; + color: #666666; + line-height: 34px; +} +.comnum.data-v-eca06f3c { + padding: 0 30rpx; + background: #fff; + display: flex; + height: 100rpx; + align-items: center; + border-bottom: 1px solid #e7e7e7; +} +.comnum .imgcon.data-v-eca06f3c { + margin-top: 10rpx; +} +.comnum.data-v-eca06f3c .u-image { + background: none !important; +} +.comnum .num.data-v-eca06f3c { + margin-left: 10rpx; + font-size: 32rpx; +} +.content.data-v-eca06f3c { + background-color: #fff; +} +.votebox.data-v-eca06f3c { + padding: 30rpx; + background: #fff; +} +.votebox.data-v-eca06f3c .u-radio__label-wrap { + flex: 1; +} +.votebox.data-v-eca06f3c .u-radio { + padding: 16rpx; +} +.votebox .group.data-v-eca06f3c { + margin-top: 20rpx; +} +.votebox .group .row.data-v-eca06f3c { + border-radius: 20rpx; + border: 2rpx solid #B8B8B8; + background: #fff; + margin-bottom: 24rpx; +} +.votebox .btn.data-v-eca06f3c { + margin: 50rpx 40rpx 0; + height: 92rpx; + background: #3cc7c0; + border-radius: 46rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: #ffffff; +} +.votebox .name.data-v-eca06f3c { + font-size: 36rpx; + color: #000000; + line-height: 46rpx; +} +.votebox .title.data-v-eca06f3c { + margin-top: 24rpx; + font-size: 30rpx; + color: #333333; + line-height: 46rpx; +} +.votebox .option.data-v-eca06f3c { + margin-top: 26rpx; +} +.votebox .option .row.data-v-eca06f3c { + font-size: 27rpx; + color: #4b5563; + display: flex; + align-items: center; + margin-bottom: 10rpx; + justify-content: space-between; +} +.votebox .option .line.data-v-eca06f3c { + width: 100%; + height: 15rpx; + background: #f3f4f6; + border-radius: 19rpx; + overflow: hidden; +} +.votebox .option .line .inner.data-v-eca06f3c { + height: 15rpx; + background: #3cc7c0; + border-radius: 19rpx; +} +.imgboxshang.data-v-eca06f3c { + display: flex; + margin-left: 8rpx; + align-items: center; +} +.imgbox.data-v-eca06f3c { + margin: 0 30rpx 30rpx; +} +.imgbox .imgunit.data-v-eca06f3c { + width: 150rpx; + height: 150rpx; + position: relative; +} +.imgbox .imgunit .close.data-v-eca06f3c { + position: absolute; + top: 0rpx; + right: 0; +} +.poptitle.data-v-eca06f3c { + height: 88rpx; + border-bottom: 1rpx solid #e7e7e7; +} +.sendbox.data-v-eca06f3c { + display: flex; + justify-content: space-between; + margin: 0 30rpx 30rpx; +} +.sendbox .left.disabled.data-v-eca06f3c .u-image__image { + opacity: 0.5; +} +.sendbox .btn.data-v-eca06f3c { + width: 120rpx; + height: 58rpx; + display: flex; + align-items: center; + justify-content: center; + background: #3cc7c0; + font-weight: 400; + font-size: 30rpx; + color: #fff; + border-radius: 12rpx; +} +.wraper.data-v-eca06f3c { + margin: 0rpx 12rpx; +} +.desc.data-v-eca06f3c { + width: 100%; + overflow-x: hidden; + padding-bottom: 80rpx; +} +.desc.data-v-eca06f3c .imgstyle { + max-width: 100%; + position: relative; + left: 50%; + transform: translateX(-50%); +} +.desc.data-v-eca06f3c ._block { + text-align: left !important; + text-indent: 0px !important; +} +.bottom.data-v-eca06f3c { + position: fixed; + display: flex; + width: 100%; + box-sizing: border-box; + padding: 40rpx 30rpx; + align-items: center; + border-top: 2rpx solid #f9fafb; + background: #fff; + bottom: 0; +} +.bottom.data-v-eca06f3c .u-image { + background: none !important; +} +.bottom.data-v-eca06f3c .placeholderClass { + font-size: 30rpx; + color: #4b5563; +} +.bottom .right.data-v-eca06f3c { + margin-left: 20rpx; + display: flex; + align-items: center; + background: #fff; +} +.bottom .right .imgbox.data-v-eca06f3c { + margin-left: 20rpx; +} +.bottom .iptbox.data-v-eca06f3c { + flex: 1; + padding-left: 30rpx; + background: #f3f4f6; + border-radius: 38px; + height: 77rpx; + display: flex; + overflow: hidden; + align-items: center; +} +.bottom .iptbox .ipt.data-v-eca06f3c { + margin-left: 15rpx; +} +.bar.data-v-eca06f3c { + width: 100%; + background: #f9fafb; + height: 20rpx; +} +.box.data-v-eca06f3c { + background: #fff; + /* height: calc(100vh - 220rpx); + overflow-y: scroll; + -webkit-overflow-scrolling: touch; */ +} +.box .title.data-v-eca06f3c { + position: relative; + z-index: 1; + padding: 35rpx 30rpx 0; + background: #fff; + margin-top: -40rpx; + font-weight: 400; + font-size: 38rpx; + color: #111827; + line-height: 54rpx; + margin-bottom: 20rpx; +} +.box .info.data-v-eca06f3c { + display: flex; + align-items: center; + padding: 0 30rpx; + font-size: 28rpx; + color: #4b5563; + line-height: 28rpx; +} +.box .info.data-v-eca06f3c .u-image { + margin-top: 8rpx; +} +.box .info .name.data-v-eca06f3c { + margin-left: 15rpx; +} +.deal.data-v-eca06f3c { + margin-top: 12rpx; + padding: 0 30rpx 20rpx; + display: flex; + color: #6b7280; + font-size: 24rpx; + justify-content: space-between; +} +.deal .left.data-v-eca06f3c { + display: flex; + align-items: center; +} +.deal .collect.data-v-eca06f3c { + display: flex; + align-items: center; +} +.deal .eyebox.data-v-eca06f3c { + width: 160rpx; + display: flex; + align-items: center; +} +.deal .time.data-v-eca06f3c { + display: flex; + align-items: center; +} +.deal .num.data-v-eca06f3c { + margin-left: 8rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js new file mode 100644 index 0000000..a8345a0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.js @@ -0,0 +1,205 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const utils_navTo = require("../../utils/navTo.js"); +const api_api = require("../../api/api.js"); +const common_assets = require("../../common/assets.js"); +if (!Array) { + const _easycom_up__image2 = common_vendor.resolveComponent("up--image"); + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + (_easycom_up__image2 + _easycom_u_icon2)(); +} +const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js"; +const _easycom_u_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +if (!Math) { + (navBar + _easycom_up__image + _easycom_u_icon + tabBar)(); +} +const tabBar = () => "../../components/tabBar/tabBar.js"; +const navBar = () => "../../components/navBar/navBar.js"; +const _sfc_main = { + __name: "index", + setup(__props) { + common_vendor.ref(null); + common_vendor.ref([]); + const most_read_articles = common_vendor.ref([]); + const new_articles = common_vendor.ref([]); + const recommend_doctor = common_vendor.ref([]); + const recommend_hospital = common_vendor.ref([]); + const numInfo = common_vendor.reactive({}); + const goDetail = (id, isLink, src) => { + if (isLink == 1) { + api_api.api.readRecord({ + type: 1, + id + }).then((res) => { + }); + utils_navTo.navTo({ + url: `/pages/web/web?src=${src}` + }); + } else { + utils_navTo.navTo({ + url: `/pages/detail/detail?id=${id}&type=article` + }); + } + }; + const goListBy = (id, name, type) => { + let url = ""; + if (type == "doctor") { + url = `/pages/search/search?doctor_id=${id}&doctor_name=${name}`; + } else { + url = `/pages/search/search?hospital_id=${id}&hospital_name=${name}`; + } + utils_navTo.navTo({ + url + }); + }; + const getData = async () => { + const { data } = await api_api.api.getHomeData(); + if (data.code == 200) { + most_read_articles.value = data.data.most_read_articles; + new_articles.value = data.data.new_articles; + recommend_doctor.value = data.data.recommend_doctor; + recommend_hospital.value = data.data.recommend_hospital; + } + }; + const getStatic = () => { + api_api.api.getHomeStatics().then((res) => { + let result = res.data.data; + Object.assign(numInfo, result); + }); + }; + const goList = (type) => { + utils_navTo.navTo({ + url: "/pages/search/search?order=" + type + }); + }; + const goVideo = () => { + utils_navTo.navTo({ + url: "/pages/videoList/videoList" + }); + }; + const goSick = () => { + utils_navTo.navTo({ + url: "/pages/sickList/sickList" + }); + }; + const searchDoctor = () => { + utils_navTo.navTo({ + url: "/pages/searchList/searchList?type=doctor&name=医生&id=" + }); + }; + const goHospital = () => { + utils_navTo.navTo({ + url: "/pages/searchList/searchList?type=hospital&name=医院&id=" + }); + }; + common_vendor.onShow(() => { + getStatic(); + getData(); + }); + return (_ctx, _cache) => { + return { + a: common_vendor.p({ + type: "home" + }), + b: common_vendor.t(numInfo.article_num), + c: common_vendor.t(numInfo.video_num), + d: common_vendor.t(numInfo.video_read_num && numInfo.article_read_num ? numInfo.video_read_num + numInfo.article_read_num : 0), + e: common_vendor.o(goVideo), + f: common_vendor.p({ + src: common_vendor.unref(common_assets.videoImg), + radius: "20rpx", + width: "330rpx", + height: "176rpx" + }), + g: common_vendor.o(goSick), + h: common_vendor.p({ + src: common_vendor.unref(common_assets.sickImg), + width: "330rpx", + radius: "20rpx", + height: "176rpx" + }), + i: common_vendor.o(goHospital), + j: common_vendor.p({ + src: common_vendor.unref(common_assets.hospitalImg), + radius: "20rpx", + width: "330rpx", + height: "176rpx" + }), + k: common_vendor.o(searchDoctor), + l: common_vendor.p({ + src: common_vendor.unref(common_assets.doctorImg), + width: "330rpx", + radius: "20rpx", + height: "176rpx" + }), + m: common_vendor.p({ + name: "arrow-right", + size: "16", + color: "#3CC7C0" + }), + n: common_vendor.o(($event) => goList("new")), + o: common_vendor.f(new_articles.value, (item, k0, i0) => { + return { + a: common_vendor.t(item.article_title), + b: common_vendor.f(item.author, (tag, k1, i1) => { + return { + a: common_vendor.t(tag.doctor_name), + b: tag.author_id + }; + }), + c: item.article_id, + d: common_vendor.o(($event) => goDetail(item.article_id, item.is_link, item.is_link_url), item.article_id) + }; + }), + p: common_vendor.p({ + name: "arrow-right", + size: "16", + color: "#3CC7C0" + }), + q: common_vendor.o(($event) => goList("read")), + r: common_vendor.f(most_read_articles.value, (item, k0, i0) => { + return { + a: common_vendor.t(item.article_title), + b: common_vendor.f(item.author, (tag, k1, i1) => { + return { + a: common_vendor.t(tag.doctor_name), + b: tag.author_id + }; + }), + c: item.article_id, + d: common_vendor.o(($event) => goDetail(item.article_id, item.is_link, item.is_link_url), item.article_id) + }; + }), + s: common_vendor.p({ + name: "arrow-right", + size: "16", + color: "#3CC7C0" + }), + t: common_vendor.o(goHospital), + v: common_vendor.f(recommend_hospital.value, (item, k0, i0) => { + return { + a: common_vendor.t(item.hospital_name), + b: item.hospital_id, + c: common_vendor.o(($event) => goListBy(item.hospital_id, item.hospital_name, "hospital"), item.hospital_id) + }; + }), + w: common_vendor.p({ + name: "arrow-right", + size: "16", + color: "#3CC7C0" + }), + x: common_vendor.o(searchDoctor), + y: common_vendor.f(recommend_doctor.value, (item, k0, i0) => { + return { + a: common_vendor.t(item.doctor_name), + b: item.doctor_id, + c: common_vendor.o(($event) => goListBy(item.doctor_id, item.doctor_name, "doctor"), item.doctor_id) + }; + }) + }; + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-1cf27b2a"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.json b/unpackage/dist/dev/mp-weixin/pages/index/index.json new file mode 100644 index 0000000..0a88ee6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.json @@ -0,0 +1,10 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "u-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "tab-bar": "../../components/tabBar/tabBar", + "nav-bar": "../../components/navBar/navBar" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml new file mode 100644 index 0000000..807595b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml @@ -0,0 +1 @@ +{{b}}文章{{c}}视频{{d}}阅读量最新上线查看更多{{item.a}}{{tag.a}}最多阅读查看更多{{item.a}}{{tag.a}}医院病例库推荐查看更多{{item.a}}医生病例库推荐查看更多{{item.a}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss new file mode 100644 index 0000000..03df31f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss @@ -0,0 +1,152 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.tagsbox.data-v-1cf27b2a { + margin-top: 20rpx; + display: flex; + flex-wrap: wrap; +} +.tagsbox .tag.data-v-1cf27b2a { + padding: 0 10rpx; + margin-right: 16rpx; + height: 46rpx; + line-height: 46rpx; + text-align: center; + background: rgba(60, 199, 192, 0.1); + border-radius: 8rpx; + font-weight: 400; + font-size: 24rpx; + color: #3cc7c0; +} +.newsbox.data-v-1cf27b2a { + margin-bottom: 16rpx; +} +.recbox.data-v-1cf27b2a { + padding-bottom: 23rpx; + margin-bottom: 16rpx; + padding-top: 36rpx; + background: #fff; +} +.recbox .cell.data-v-1cf27b2a { + margin: 23rpx 30rpx 0; + padding: 34rpx; + background: #f3f4f6; + font-size: 30rpx; + color: #4b5563; + line-height: 43rpx; + border-radius: 15rpx; +} +.listbox .cell.data-v-1cf27b2a { + margin: 0 30rpx; + display: flex; + align-items: flex-start; + border-bottom: 1rpx solid #f3f4f6; + padding: 34rpx 0; +} +.listbox .cell .circle.data-v-1cf27b2a { + margin-right: 30rpx; + margin-top: 18rpx; + width: 16rpx; + height: 16rpx; + flex-shrink: 0; + background: #3cc7c0; + border-radius: 50%; +} +.listbox .cell .name.data-v-1cf27b2a { + font-size: 32rpx; + color: #000000; + line-height: 46rpx; +} +.listbox .cell .author.data-v-1cf27b2a { + font-size: 28rpx; + color: #4b5563; + line-height: 38rpx; +} +.titlebox.data-v-1cf27b2a { + margin: 0 30rpx; + display: flex; + justify-content: space-between; +} +.titlebox .more.data-v-1cf27b2a { + display: flex; + align-items: center; +} +.titlebox .more .morename.data-v-1cf27b2a { + margin-right: 10rpx; + font-size: 28rpx; + color: #3cc7c0; +} +.newsbox.data-v-1cf27b2a { + padding-top: 36rpx; + background: #fff; +} +.page.data-v-1cf27b2a { + background: #f9fafb; + height: calc(100vh - 425rpx); + overflow-y: scroll; +} +.kubox.data-v-1cf27b2a { + padding: 30rpx 0; + width: 100%; + background: rgba(0, 0, 0, 0); +} +.kubox .row.data-v-1cf27b2a { + padding: 0 30rpx; + display: flex; + justify-content: space-between; +} +.kubox .row .item.data-v-1cf27b2a { + margin-left: 30rpx; + padding: 32rpx; + flex: 1; + background: #e9fafb; + border-radius: 15rpx; +} +.kubox .row .item .name.data-v-1cf27b2a { + font-size: 32rpx; + color: #00919e; + line-height: 46rpx; +} +.databox.data-v-1cf27b2a { + height: 162rpx; + background: #ffffff; + display: flex; + padding: 0 30rpx; + justify-content: space-between; +} +.databox .cell.data-v-1cf27b2a { + flex: 1; + padding: 35rpx 0; + text-align: center; +} +.databox .cell .num.data-v-1cf27b2a { + font-size: 38rpx; + color: #3cc7c0; +} +.databox .cell .name.data-v-1cf27b2a { + margin-top: 18rpx; + font-size: 28rpx; + color: #4b5563; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/login.js b/unpackage/dist/dev/mp-weixin/pages/login/login.js new file mode 100644 index 0000000..29b0616 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/login.js @@ -0,0 +1,304 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const api_api = require("../../api/api.js"); +const utils_auth = require("../../utils/auth.js"); +if (!Array) { + const _easycom_up_input2 = common_vendor.resolveComponent("up-input"); + const _easycom_up_form_item2 = common_vendor.resolveComponent("up-form-item"); + const _easycom_up_toast2 = common_vendor.resolveComponent("up-toast"); + const _easycom_up_code2 = common_vendor.resolveComponent("up-code"); + const _easycom_up_button2 = common_vendor.resolveComponent("up-button"); + const _easycom_up_form2 = common_vendor.resolveComponent("up-form"); + (_easycom_up_input2 + _easycom_up_form_item2 + _easycom_up_toast2 + _easycom_up_code2 + _easycom_up_button2 + _easycom_up_form2)(); +} +const _easycom_up_input = () => "../../node-modules/uview-plus/components/u-input/u-input.js"; +const _easycom_up_form_item = () => "../../node-modules/uview-plus/components/u-form-item/u-form-item.js"; +const _easycom_up_toast = () => "../../node-modules/uview-plus/components/u-toast/u-toast.js"; +const _easycom_up_code = () => "../../node-modules/uview-plus/components/u-code/u-code.js"; +const _easycom_up_button = () => "../../node-modules/uview-plus/components/u-button/u-button.js"; +const _easycom_up_form = () => "../../node-modules/uview-plus/components/u-form/u-form.js"; +if (!Math) { + (_easycom_up_input + _easycom_up_form_item + _easycom_up_toast + _easycom_up_code + _easycom_up_button + _easycom_up_form)(); +} +const _sfc_main = { + __name: "login", + setup(__props) { + const code = common_vendor.ref(""); + const phone = common_vendor.ref(null); + common_vendor.ref(false); + const isPhoneLogin = common_vendor.ref(true); + const customStyle = common_vendor.reactive({ + height: "90rpx", + fontSize: "36rpx" + }); + const customCode = common_vendor.reactive({ + color: "#3ec7c0", + height: "64rpx", + fontSize: "28rpx", + borderColor: "#e2e2e2", + opcity: "1" + }); + const tips = common_vendor.ref(""); + const seconds = common_vendor.ref(10); + const uCodeRef = common_vendor.ref(null); + const checked = common_vendor.ref(false); + const hasRedirectUrl = common_vendor.ref(false); + const radioChange = (e) => { + checked.value = !checked.value; + }; + const alertAgree = () => { + common_vendor.index.showToast({ + title: "请先同意用户协议", + icon: "none" + }); + }; + common_vendor.onLoad((options) => { + if (options.redirectUrl) { + hasRedirectUrl.value = true; + } + }); + const goPage = () => { + if (hasRedirectUrl.value) { + common_vendor.index.__f__("log", "at pages/login/login.vue:201", "true"); + let url = ""; + let redirectUrl = common_vendor.index.getStorageSync("redirectUrl"); + if (redirectUrl && redirectUrl.indexOf("/login/login") == -1) { + url = redirectUrl; + } else { + url = "pages/index/index"; + } + common_vendor.index.__f__("log", "at pages/login/login.vue:210", "url:" + url); + common_vendor.index.redirectTo({ + url: "/" + url, + success() { + common_vendor.index.setStorageSync("redirectUrl", ""); + } + }); + } else { + common_vendor.index.__f__("log", "at pages/login/login.vue:219", "false"); + common_vendor.index.redirectTo({ + url: "/pages/index/index" + }); + } + }; + const getPhoneNumber = (e) => { + if (e.detail.errMsg === "getPhoneNumber:ok") { + common_vendor.index.__f__("log", "at pages/login/login.vue:228", e.target.code); + utils_auth.auth().then((res) => { + common_vendor.index.__f__("log", "at pages/login/login.vue:230", res); + api_api.api.wxLogin({ + phone_code: e.target.code, + wx_code: res, + source: 1 + }).then((data) => { + let result = data.data.data; + { + const { envVersion } = common_vendor.index.getAccountInfoSync().miniProgram; + if (envVersion == "release") { + common_vendor.index.setStorageSync("AUTH_TOKEN_CASEDATA", result.token); + } else { + common_vendor.index.setStorageSync("DEV_AUTH_TOKEN_CASEDATA", result.token); + } + } + common_vendor.index.setStorageSync("userInfo", { + avatar: result.avatar, + user_id: result.user_id, + status: result.status, + user_name: result.user_name, + doctor_id: result.doctor_id + }); + goPage(); + }).catch((err) => { + common_vendor.index.showToast({ + title: err, + icon: "none" + }); + }); + }); + } + }; + const phoneLogin = () => { + if (!isPhoneNum(phone.value)) + return; + if (!code.value) { + common_vendor.index.showToast({ + title: "请输入验证码", + icon: "none" + }); + return false; + } + if (!checked.value) { + common_vendor.index.showToast({ + title: "请先同意用户协议", + icon: "none" + }); + return false; + } + utils_auth.auth().then((res) => { + api_api.api.mobileLogin({ + code: code.value, + phone: phone.value, + wx_code: res + }).then((data) => { + let result = data.data.data; + const { envVersion } = common_vendor.index.getAccountInfoSync().miniProgram; + if (envVersion == "release") { + common_vendor.index.setStorageSync("AUTH_TOKEN_CASEDATA", result.token); + } else { + common_vendor.index.setStorageSync("DEV_AUTH_TOKEN_CASEDATA", result.token); + } + common_vendor.index.setStorageSync("userInfo", { + avatar: result.avatar, + user_id: result.user_id, + status: result.status, + user_name: result.user_name, + doctor_id: result.doctor_id + }); + goPage(); + }); + }); + }; + const isPhoneNum = (phonenum) => { + let reg = /^1[3456789]\d{9}$/; + if (!reg.test(phonenum)) { + common_vendor.index.showToast({ + title: "请输入有效的手机号码!", + icon: "none" + }); + return false; + } else { + return true; + } + }; + const codeChange = (text) => { + tips.value = text; + }; + const switchType = () => { + isPhoneLogin.value = !isPhoneLogin.value; + }; + const goRegister = () => { + common_vendor.index.navigateTo({ + url: "/pages/register/register" + }); + }; + const getCode = () => { + if (!isPhoneNum(phone.value)) + return; + if (uCodeRef.value.canGetCode) { + common_vendor.index.showLoading({ + title: "正在获取验证码" + }); + getSms(); + } else { + common_vendor.index.$u.toast("倒计时结束后再发送"); + } + }; + const getSms = () => { + api_api.api.getCode({ + phone: phone.value, + scene: 1 + }).then((res) => { + common_vendor.index.hideLoading(); + common_vendor.index.$u.toast("验证码已发送"); + uCodeRef.value.start(); + }); + }; + const end = () => { + customCode.opacity = 1; + }; + const start = () => { + customCode.opacity = 0.5; + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: !isPhoneLogin.value + }, !isPhoneLogin.value ? { + b: common_vendor.o(($event) => phone.value = $event), + c: common_vendor.p({ + placeholder: "请输入肝胆相照专家版手机号", + modelValue: phone.value + }), + d: common_vendor.p({ + label: "手机号", + prop: "userInfo.name", + borderBottom: true + }) + } : {}, { + e: !isPhoneLogin.value + }, !isPhoneLogin.value ? { + f: common_vendor.o(($event) => code.value = $event), + g: common_vendor.p({ + placeholder: "请输入验证码", + modelValue: code.value + }), + h: common_vendor.sr("uToastRef", "e4e4508d-5,e4e4508d-3"), + i: common_vendor.sr(uCodeRef, "e4e4508d-6,e4e4508d-3", { + "k": "uCodeRef" + }), + j: common_vendor.o(end), + k: common_vendor.o(start), + l: common_vendor.o(codeChange), + m: common_vendor.p({ + seconds: seconds.value + }), + n: common_vendor.t(tips.value), + o: common_vendor.o(getCode), + p: common_vendor.p({ + customStyle: customCode, + color: "#e2e2e2" + }), + q: common_vendor.p({ + label: "验证码", + prop: "userInfo.name", + borderBottom: true + }) + } : {}, { + r: common_vendor.sr("form", "e4e4508d-0"), + s: common_vendor.p({ + labelPosition: "left", + labelWidth: "115rpx" + }), + t: !isPhoneLogin.value + }, !isPhoneLogin.value ? { + v: common_vendor.o(phoneLogin), + w: common_vendor.p({ + customStyle, + type: "success", + text: "登录", + color: "#3cc7c0", + size: "large" + }) + } : common_vendor.e({ + x: checked.value + }, checked.value ? { + y: common_vendor.o(getPhoneNumber), + z: common_vendor.p({ + customStyle, + type: "success", + ["open-type"]: "getPhoneNumber", + text: "手机号快捷登录", + color: "#3cc7c0", + size: "large" + }) + } : { + A: common_vendor.o(alertAgree), + B: common_vendor.p({ + customStyle, + type: "success", + text: "手机号快捷登录", + color: "#3cc7c0", + size: "large" + }) + }), { + C: common_vendor.t(isPhoneLogin.value ? "用短信验证码登录" : "快捷登录"), + D: common_vendor.o(switchType), + E: common_vendor.o(goRegister), + F: checked.value, + G: common_vendor.o(radioChange) + }); + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-e4e4508d"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/login/login.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/login/login.json b/unpackage/dist/dev/mp-weixin/pages/login/login.json new file mode 100644 index 0000000..f91fcb6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/login.json @@ -0,0 +1,11 @@ +{ + "navigationBarTitleText": "登录", + "usingComponents": { + "up-input": "../../node-modules/uview-plus/components/u-input/u-input", + "up-form-item": "../../node-modules/uview-plus/components/u-form-item/u-form-item", + "up-toast": "../../node-modules/uview-plus/components/u-toast/u-toast", + "up-code": "../../node-modules/uview-plus/components/u-code/u-code", + "up-button": "../../node-modules/uview-plus/components/u-button/u-button", + "up-form": "../../node-modules/uview-plus/components/u-form/u-form" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/login.wxml b/unpackage/dist/dev/mp-weixin/pages/login/login.wxml new file mode 100644 index 0000000..ac77ae7 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/login.wxml @@ -0,0 +1 @@ +登录观看{{n}}{{C}} 注册 操作说明1、 肝胆相照注册账号与微信绑定,肝胆相照相关直播、视频无忧随心看 2、 仅需操作一次,后续通过微信观看直播、视频无需额外操作,立即进入 3、 若您还未注册肝胆相照专家版App, 请直接点击“注册”进行注册操作 若您有任何疑问或需要我们协助,请与您的小助手联系或直接微信联系igandan1000 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/login.wxss b/unpackage/dist/dev/mp-weixin/pages/login/login.wxss new file mode 100644 index 0000000..a59675e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/login.wxss @@ -0,0 +1,108 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.radio.data-v-e4e4508d { + display: inline-flex; + font-size: 28rpx; +} +.radio radio.data-v-e4e4508d { + transform: scale(0.8) translateY(-2px); +} +.radio .agree.data-v-e4e4508d { + background: none; + color: #3cc7c0; +} +.logincontent.data-v-e4e4508d { + width: 100%; + height: 100vh; + background: #fff; +} +.logincontent .pwdbox.data-v-e4e4508d .u-form-item:nth-child(2) .u-form-item__body__left { + width: 180rpx !important; +} +.logincontent .smsbox.data-v-e4e4508d .u-form-item:first-child .u-form-item__body__left { + width: 180rpx !important; +} +.logincontent.data-v-e4e4508d .u-form-item__body__left__content__label { + font-size: 34rpx; + color: #000; +} +.logincontent .title.data-v-e4e4508d { + padding: 124rpx 0 64rpx 30rpx; + font-size: 46rpx; + font-stretch: normal; + letter-spacing: 2rpx; + color: #000000; +} +.logincontent.data-v-e4e4508d .u-form { + padding: 0 30rpx; +} +.logincontent .row.data-v-e4e4508d { + margin-top: 30rpx; + display: flex; + justify-content: space-between; + padding: 0 30rpx; +} +.logincontent .row .left.data-v-e4e4508d { + flex: 1; + color: #3cc7c0; + text-align: left; +} +.logincontent .row .right.data-v-e4e4508d { + flex: 1; + color: #666; + text-align: right; +} +.logincontent .row.data-v-e4e4508d .u-button--large .u-button__text { + font-size: 36rpx !important; +} +.logincontent .row .tip.data-v-e4e4508d { + color: #333333; + font-size: 26rpx; +} +.logincontent.data-v-e4e4508d .wrap { + border-radius: 16rpx; + overflow: hidden; + border: none; +} +.logincontent .line.data-v-e4e4508d { + padding: 0 30rpx; + margin-top: 10rpx; + color: #999999; + line-height: 44rpx; + font-size: 26rpx; + display: flex; + letter-spacing: 1px; +} +.logincontent .desc.data-v-e4e4508d { + padding: 0 30rpx; + color: #999999; + line-height: 44rpx; + font-size: 26rpx; + letter-spacing: 2rpx; +} +.logincontent .desc .red.data-v-e4e4508d { + color: red; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/my/my.js b/unpackage/dist/dev/mp-weixin/pages/my/my.js new file mode 100644 index 0000000..d2f8058 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/my/my.js @@ -0,0 +1,193 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const common_assets = require("../../common/assets.js"); +const utils_navTo = require("../../utils/navTo.js"); +const api_api = require("../../api/api.js"); +if (!Array) { + const _easycom_up__image2 = common_vendor.resolveComponent("up--image"); + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + (_easycom_up__image2 + _easycom_u_icon2 + _easycom_up_icon2)(); +} +const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js"; +const _easycom_u_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_up_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +if (!Math) { + (dNav + _easycom_up__image + _easycom_u_icon + _easycom_up_icon)(); +} +const dNav = () => "../../components/backNav/backNav.js"; +const _sfc_main = { + __name: "my", + setup(__props) { + const userInfo = common_vendor.reactive({}); + const numInfo = common_vendor.reactive({}); + const hospitalInfo = common_vendor.reactive({}); + const getInfo = () => { + api_api.api.getUserInfo().then((res) => { + const result = res.data.data; + Object.assign(userInfo, result); + common_vendor.index.__f__("log", "at pages/my/my.vue:139", result); + if (userInfo.doctor_id) { + getNum(userInfo.doctor_id); + } + if (userInfo.hospital_id) { + getHospitalNum(userInfo.hospital_id); + } + }); + }; + const getNum = (id) => { + api_api.api.getStaticDoctor(id).then((res) => { + const result = res.data.data; + Object.assign(numInfo, result); + }); + }; + const getHospitalNum = (id) => { + api_api.api.getStaticHospital(id).then((res) => { + const result = res.data.data; + Object.assign(hospitalInfo, result); + }); + }; + common_vendor.onLoad(() => { + getInfo(); + }); + const goCert = () => { + utils_navTo.navTo({ + url: "/pages/certList/certList?doctor_id=" + userInfo.doctor_id + }); + }; + const goDoctor = (id, name) => { + utils_navTo.navTo({ + url: "/pages/search/search?doctor_id=" + id + "&doctor_name=" + name + "&from=myCase" + }); + }; + const goHospital = (id, name) => { + utils_navTo.navTo({ + url: "/pages/search/search?hospital_id=" + id + "&hospital_name=" + name + }); + }; + const mySpecial = () => { + utils_navTo.navTo({ + url: "/pages/specialList/specialList?userId=" + userInfo.user_id + "&type=mine" + }); + }; + const goJoin = () => { + utils_navTo.navTo({ + url: "/pages/myJoin/myJoin" + }); + }; + const goCollect = () => { + utils_navTo.navTo({ + url: "/pages/myCollect/myCollect" + }); + }; + const goPublish = () => { + utils_navTo.navTo({ + url: "/pages/publish/publish" + }); + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.p({ + src: userInfo.avatar ? userInfo.avatar : common_vendor.unref(common_assets.headImg), + width: "154rpx", + height: "154rpx", + radius: "50%" + }), + b: common_vendor.t(userInfo.user_name), + c: common_vendor.t(userInfo.title), + d: common_vendor.t(userInfo.hospital_name), + e: numInfo.article_num + numInfo.video_num >= 2 + }, numInfo.article_num + numInfo.video_num >= 2 ? { + f: common_vendor.t(numInfo.article_num), + g: common_vendor.t(numInfo.video_num), + h: common_vendor.t(numInfo.video_read_num + numInfo.article_read_num) + } : {}, { + i: numInfo.article_num + numInfo.video_num >= 2 + }, numInfo.article_num + numInfo.video_num >= 2 ? { + j: common_vendor.p({ + src: common_vendor.unref(common_assets.myFile), + width: "34rpx", + height: "34rpx" + }), + k: common_vendor.p({ + name: "arrow-right", + color: "#9CA3AF", + size: "18" + }), + l: common_vendor.o(($event) => goDoctor(userInfo.doctor_id, userInfo.user_name)) + } : {}, { + m: numInfo.article_num + numInfo.video_num >= 2 + }, numInfo.article_num + numInfo.video_num >= 2 ? { + n: common_vendor.p({ + src: common_vendor.unref(common_assets.myDownload), + width: "42rpx", + height: "42rpx" + }), + o: common_vendor.p({ + name: "arrow-right", + color: "#9CA3AF", + size: "18" + }), + p: common_vendor.o(goCert) + } : {}, { + q: hospitalInfo.video_num + hospitalInfo.article_num >= 2 + }, hospitalInfo.video_num + hospitalInfo.article_num >= 2 ? { + r: common_vendor.p({ + src: common_vendor.unref(common_assets.myHospital), + width: "39rpx", + height: "39rpx" + }), + s: common_vendor.t(userInfo.hospital_name), + t: common_vendor.p({ + name: "arrow-right", + color: "#9CA3AF", + size: "18" + }), + v: common_vendor.o(($event) => goHospital(userInfo.hospital_id, userInfo.hospital_name)) + } : {}, { + w: common_vendor.p({ + src: common_vendor.unref(common_assets.myTalk), + width: "39rpx", + height: "39rpx" + }), + x: common_vendor.p({ + name: "arrow-right", + color: "#9CA3AF", + size: "18" + }), + y: common_vendor.o(mySpecial), + z: common_vendor.p({ + src: common_vendor.unref(common_assets.myJoin), + width: "39rpx", + height: "39rpx" + }), + A: common_vendor.p({ + name: "arrow-right", + color: "#9CA3AF", + size: "18" + }), + B: common_vendor.o(goJoin), + C: common_vendor.p({ + src: common_vendor.unref(common_assets.myCollect), + width: "39rpx", + height: "39rpx" + }), + D: common_vendor.p({ + name: "arrow-right", + color: "#9CA3AF", + size: "18" + }), + E: common_vendor.o(goCollect), + F: common_vendor.p({ + name: "plus", + color: "#fff", + size: "18" + }), + G: common_vendor.o(goPublish) + }); + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2f1ef635"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/my/my.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/my/my.json b/unpackage/dist/dev/mp-weixin/pages/my/my.json new file mode 100644 index 0000000..1b4ecbe --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/my/my.json @@ -0,0 +1,10 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "u-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "d-nav": "../../components/backNav/backNav" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/my/my.wxml b/unpackage/dist/dev/mp-weixin/pages/my/my.wxml new file mode 100644 index 0000000..3f4ad32 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/my/my.wxml @@ -0,0 +1 @@ +{{b}}({{c}}) {{d}}{{f}}文章{{g}}视频{{h}}阅读量我的病例库临床病例库收录证书下载{{s}}临床病例库我的病例交流我的参与互动浏览与收藏 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/my/my.wxss b/unpackage/dist/dev/mp-weixin/pages/my/my.wxss new file mode 100644 index 0000000..17cab14 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/my/my.wxss @@ -0,0 +1,115 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.upage.data-v-2f1ef635 { + height: 100vh; + display: flex; + flex-direction: column; +} +.con.data-v-2f1ef635 { + height: calc(100vh - 100rpx); + overflow-y: scroll; +} +.publish.data-v-2f1ef635 { + width: 92rpx; + height: 92rpx; + background: #3CC7C0; + border-radius: 50%; + position: fixed; + right: 30rpx; + bottom: 100rpx; + display: flex; + justify-content: center; + align-items: center; +} +.listbox.data-v-2f1ef635 { + margin: 34rpx 30rpx 0; +} +.listbox .titlename.data-v-2f1ef635 { + margin-bottom: 30rpx; +} +.listbox .cell.data-v-2f1ef635 { + height: 108rpx; + padding: 0 30rpx; + margin-bottom: 30rpx; + background: #F9FAFB; + border-radius: 15rpx; + display: flex; + justify-content: space-between; + align-items: center; +} +.listbox .cell.data-v-2f1ef635 .u-image { + margin-top: 9rpx; + background: none !important; +} +.listbox .cell .left.data-v-2f1ef635 { + display: flex; + justify-content: space-between; + font-size: 32rpx; + color: #000000; +} +.listbox .cell .left .title.data-v-2f1ef635 { + margin-top: 4rpx; + margin-left: 8rpx; +} +.databox.data-v-2f1ef635 { + height: 162rpx; + background: #ffffff; + display: flex; + padding: 10rpx 0rpx; + justify-content: space-between; + border-bottom: 2rpx solid rgba(0, 0, 0, 0.1); +} +.databox .cell.data-v-2f1ef635 { + flex: 1; + padding: 35rpx 0; + text-align: center; +} +.databox .cell .num.data-v-2f1ef635 { + font-size: 38rpx; + color: #000000; +} +.databox .cell .name.data-v-2f1ef635 { + margin-top: 18rpx; + font-size: 28rpx; + color: #4B5563; +} +.infobox.data-v-2f1ef635 { + margin: 0 30rpx; + display: flex; +} +.infobox .info.data-v-2f1ef635 { + margin-left: 20rpx; +} +.infobox .info .name.data-v-2f1ef635 { + font-size: 32rpx; + color: #000000; + line-height: 46rpx; +} +.infobox .info .hospital.data-v-2f1ef635 { + font-size: 28rpx; + color: #4B5563; + line-height: 38rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.js b/unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.js new file mode 100644 index 0000000..8b24fec --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.js @@ -0,0 +1,223 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const api_api = require("../../api/api.js"); +const utils_navTo = require("../../utils/navTo.js"); +if (!Array) { + const _easycom_up_dropdown_item2 = common_vendor.resolveComponent("up-dropdown-item"); + const _easycom_up_dropdown2 = common_vendor.resolveComponent("up-dropdown"); + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + const _easycom_z_paging2 = common_vendor.resolveComponent("z-paging"); + (_easycom_up_dropdown_item2 + _easycom_up_dropdown2 + _easycom_up_icon2 + _easycom_z_paging2)(); +} +const _easycom_up_dropdown_item = () => "../../node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.js"; +const _easycom_up_dropdown = () => "../../node-modules/uview-plus/components/u-dropdown/u-dropdown.js"; +const _easycom_up_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_z_paging = () => "../../uni_modules/z-paging/components/z-paging/z-paging.js"; +if (!Math) { + (navBarSearch + _easycom_up_dropdown_item + _easycom_up_dropdown + _easycom_up_icon + _easycom_z_paging)(); +} +const navBarSearch = () => "../../components/navBarSearch/navBarSearch.js"; +const _sfc_main = { + __name: "myCollect", + setup(__props) { + const paging = common_vendor.ref(null); + const uDropdownRef = common_vendor.ref(null); + const dataList = common_vendor.ref([]); + const total = common_vendor.ref(0); + common_vendor.ref(""); + const keyWord = common_vendor.ref(""); + common_vendor.ref(true); + const isSearch = common_vendor.ref(false); + const navName = common_vendor.ref("肝胆相照临床病例库"); + const type1 = common_vendor.ref(0); + const type2 = common_vendor.ref(1); + const title2 = common_vendor.ref("文章病例库"); + const options = common_vendor.ref([ + { + label: "收藏", + value: 0 + }, + { + label: "浏览", + value: 1 + } + ]); + const options1 = common_vendor.ref([ + { + label: "文章病例库", + value: 1 + }, + { + label: "视频病例库", + value: 2 + }, + { + label: "病例交流", + value: 3 + } + ]); + common_vendor.reactive({ + read_num: "", + push_date: "" + }); + common_vendor.onLoad((options2) => { + if (options2.keyWord) { + keyWord.value = options2.keyWord; + } + }); + common_vendor.onShow(() => { + var _a; + (_a = paging.value) == null ? void 0 : _a.refresh(); + }); + const changetype1 = (e) => { + type1.value = e; + paging.value.reload(); + }; + const changetype2 = (e) => { + type2.value = e; + title2.value = options1.value[e - 1].label; + paging.value.reload(); + }; + const formatdate = (date) => { + return common_vendor.dayjs(date).format("YYYY-MM-DD"); + }; + const goDetail = (id) => { + common_vendor.index.__f__("log", "at pages/myCollect/myCollect.vue:135", type1.value); + common_vendor.index.__f__("log", "at pages/myCollect/myCollect.vue:136", id); + let type = "article"; + if (type2.value == 1) { + type = "article"; + } else if (type2.value == 2) { + type = "video"; + } else if (type2.value == 3) { + type = "exchange"; + } + utils_navTo.navTo({ + url: `/pages/detail/detail?id=${id}&type=${type}` + }); + }; + const changeWord = (val) => { + isSearch.value = true; + keyWord.value = val; + paging.value.reload(); + }; + const searchCollect = (params) => { + let searchForm = { + keyword: keyWord.value, + type: type2.value + }; + api_api.api.getMyCollect({ + ...searchForm, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + }).catch((err) => { + paging.value.complete(false); + }); + }; + const searchRead = async (params) => { + let searchForm = { + keyword: keyWord.value, + type: type2.value + }; + api_api.api.getMyRead({ + ...searchForm, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + }).catch((err) => { + paging.value.complete(false); + }); + }; + const queryList = (pageNo, pageSize) => { + const params = { + page: pageNo, + page_size: pageSize + }; + type1.value == 1 ? searchRead(params) : searchCollect(params); + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.o(changeWord), + b: common_vendor.p({ + searchWord: keyWord.value, + navName: navName.value + }), + c: isSearch.value + }, isSearch.value ? common_vendor.e({ + d: common_vendor.t(total.value), + e: keyWord.value + }, keyWord.value ? { + f: common_vendor.t(keyWord.value) + } : {}) : {}, { + g: common_vendor.o(changetype1), + h: common_vendor.o(($event) => type1.value = $event), + i: common_vendor.p({ + title: type1.value == 0 ? "收藏" : "浏览", + options: options.value, + modelValue: type1.value + }), + j: common_vendor.o(changetype2), + k: common_vendor.o(($event) => type2.value = $event), + l: common_vendor.p({ + title: title2.value, + options: options1.value, + modelValue: type2.value + }), + m: common_vendor.sr(uDropdownRef, "1cf734f5-2,1cf734f5-0", { + "k": "uDropdownRef" + }), + n: common_vendor.f(dataList.value, (item, index, i0) => { + return { + a: common_vendor.t(item.data.title), + b: common_vendor.f(item.data.author, (tag, k1, i1) => { + return { + a: common_vendor.t(tag.doctor_name), + b: tag.author_id + }; + }), + c: "1cf734f5-5-" + i0 + ",1cf734f5-0", + d: common_vendor.t(item.data.read_num), + e: "1cf734f5-6-" + i0 + ",1cf734f5-0", + f: common_vendor.t(item.data.collect_num), + g: "1cf734f5-7-" + i0 + ",1cf734f5-0", + h: common_vendor.t(formatdate(item.data.push_date)), + i: common_vendor.o(($event) => goDetail(item.data.id), item.collect_id), + j: item.collect_id + }; + }), + o: common_vendor.p({ + name: "eye", + color: "#6B7280", + size: "28rpx" + }), + p: common_vendor.p({ + name: "heart", + color: "#6B7280", + size: "28rpx" + }), + q: common_vendor.p({ + name: "clock", + color: "#6B7280", + size: "28rpx" + }), + r: common_vendor.sr(paging, "1cf734f5-0", { + "k": "paging" + }), + s: common_vendor.o(queryList), + t: common_vendor.o(($event) => dataList.value = $event), + v: common_vendor.p({ + ["inside-more"]: true, + ["loading-more-no-more-text"]: "咱也是有底线的!", + ["auto-show-back-to-top"]: true, + modelValue: dataList.value + }) + }); + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-1cf734f5"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/myCollect/myCollect.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.json b/unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.json new file mode 100644 index 0000000..599fcf5 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.json @@ -0,0 +1,11 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "up-dropdown-item": "../../node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item", + "up-dropdown": "../../node-modules/uview-plus/components/u-dropdown/u-dropdown", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "z-paging": "../../uni_modules/z-paging/components/z-paging/z-paging", + "nav-bar-search": "../../components/navBarSearch/navBarSearch" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.wxml b/unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.wxml new file mode 100644 index 0000000..b665bf4 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.wxml @@ -0,0 +1 @@ +检索到:{{d}}篇检索词:{{f}}{{item.a}}{{tag.a}}{{item.d}}{{item.f}}{{item.h}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.wxss b/unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.wxss new file mode 100644 index 0000000..d6b9522 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/myCollect/myCollect.wxss @@ -0,0 +1,152 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.databox.data-v-1cf734f5 { + height: 162rpx; + background: #ffffff; + display: flex; + margin-bottom: 20rpx; + justify-content: space-between; +} +.databox .cell.data-v-1cf734f5 { + flex: 1; + padding: 35rpx 0; + text-align: center; +} +.databox .cell .num.data-v-1cf734f5 { + font-size: 38rpx; + color: #3cc7c0; +} +.databox .cell .name.data-v-1cf734f5 { + margin-top: 18rpx; + font-size: 28rpx; + color: #4b5563; +} +.filterbox.data-v-1cf734f5 { + display: flex; + height: 128rpx; + align-items: center; + position: relative; +} +.filterbox .type.data-v-1cf734f5 { + position: absolute; + left: 30rpx; + top: 24rpx; + display: flex; + justify-content: center; + align-items: center; + background: #F3F4F6; + border-radius: 15rpx; + height: 74rpx; + padding: 0 25rpx; + z-index: 2; +} +.u-page.data-v-1cf734f5 .u-flex { + display: flex; + flex-direction: row; + overflow: hidden; +} +.u-page.data-v-1cf734f5 .u-dropdown__menu { + background: #fff; + z-index: 1; + margin-left: 0rpx; +} +.u-page.data-v-1cf734f5 .u-dropdown__menu__item { + height: 74rpx; + padding: 0 20rpx; + background: #F3F4F6; + border-radius: 15rpx; + flex: none; + margin-left: 30rpx; +} +.u-page.data-v-1cf734f5 .u-dropdown__menu__item__text { + font-size: 14px !important; + color: #3CC7C0 !important; +} +.u-page .deal.data-v-1cf734f5 { + margin-top: 20rpx; + display: flex; + color: #6b7280; + font-size: 24rpx; + justify-content: space-between; +} +.u-page .deal .left.data-v-1cf734f5 { + display: flex; + align-items: center; +} +.u-page .deal .collect.data-v-1cf734f5 { + display: flex; + align-items: center; +} +.u-page .deal .eyebox.data-v-1cf734f5 { + width: 160rpx; + display: flex; + align-items: center; +} +.u-page .deal .time.data-v-1cf734f5 { + display: flex; + align-items: center; +} +.u-page .deal .num.data-v-1cf734f5 { + margin-left: 8rpx; +} +.u-page .item.data-v-1cf734f5 { + border-bottom: 1rpx solid #f3f4f6; + padding: 30rpx; +} +.u-page .item .title.data-v-1cf734f5 { + font-size: 30rpx; + color: #111827; + line-height: 46rpx; +} +.u-page .tagsbox.data-v-1cf734f5 { + margin-top: 20rpx; + display: flex; + flex-wrap: wrap; +} +.u-page .tagsbox .tag.data-v-1cf734f5 { + padding: 0 10rpx; + margin-right: 16rpx; + height: 46rpx; + line-height: 46rpx; + text-align: center; + background: rgba(60, 199, 192, 0.1); + border-radius: 8rpx; + font-weight: 400; + font-size: 24rpx; + color: #3cc7c0; +} +.detail.data-v-1cf734f5 { + background: #f9f9f9; + padding: 12rpx 30rpx; +} +.detail .desc.data-v-1cf734f5 { + font-size: 26rpx; + color: #4b5563; + line-height: 40rpx; +} +.detail .red.data-v-1cf734f5 { + color: #FF0000; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.js b/unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.js new file mode 100644 index 0000000..0641477 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.js @@ -0,0 +1,247 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const api_api = require("../../api/api.js"); +if (!Array) { + const _easycom_up_tabs2 = common_vendor.resolveComponent("up-tabs"); + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + const _easycom_z_paging2 = common_vendor.resolveComponent("z-paging"); + const _easycom_up_popup2 = common_vendor.resolveComponent("up-popup"); + const _easycom_up_overlay2 = common_vendor.resolveComponent("up-overlay"); + (_easycom_up_tabs2 + _easycom_up_icon2 + _easycom_z_paging2 + _easycom_up_popup2 + _easycom_up_overlay2)(); +} +const _easycom_up_tabs = () => "../../node-modules/uview-plus/components/u-tabs/u-tabs.js"; +const _easycom_up_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_z_paging = () => "../../uni_modules/z-paging/components/z-paging/z-paging.js"; +const _easycom_up_popup = () => "../../node-modules/uview-plus/components/u-popup/u-popup.js"; +const _easycom_up_overlay = () => "../../node-modules/uview-plus/components/u-overlay/u-overlay.js"; +if (!Math) { + (backLogoNav + _easycom_up_tabs + _easycom_up_icon + _easycom_z_paging + _easycom_up_popup + _easycom_up_overlay)(); +} +const backLogoNav = () => "../../components/backLogoNav/backLogoNav.js"; +const _sfc_main = { + __name: "myJoin", + setup(__props) { + const paging = common_vendor.ref(null); + common_vendor.ref(null); + const dataList = common_vendor.ref([]); + const total = common_vendor.ref(0); + const delId = common_vendor.ref(""); + const keyWord = common_vendor.ref(""); + common_vendor.ref(true); + const navName = common_vendor.ref("肝胆相照临床病例库"); + const showDeal = common_vendor.ref(false); + const showModal = common_vendor.ref(false); + const tab = common_vendor.ref(0); + const closeDeal = () => { + showDeal.value = false; + }; + const alertPop = () => { + showModal.value = true; + showDeal.value = false; + }; + const confirmDel = () => { + if (tab.value == 0) { + delExchangeComment(delId.value); + } else if (tab.value == 1) { + delArticleComment(delId.value); + } else if (tab.value == 2) { + delVideoComment(delId.value); + } + showModal.value = false; + }; + const openDeal = () => { + showDeal.value = true; + }; + const isDel = (id) => { + delId.value = id; + showDeal.value = true; + }; + common_vendor.ref([ + { + label: "正序", + value: "asc" + }, + { + label: "倒序", + value: "desc" + } + ]); + const tabList = common_vendor.ref([ + { + name: "病例交流" + }, + { + name: "文章病例库" + }, + { + name: "视频病例库" + } + ]); + const delArticleComment = (id) => { + api_api.api.delArticleComment(id).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "删除成功" + }); + paging.value.refresh(); + }); + }; + const delVideoComment = (id) => { + api_api.api.delVideoComment(id).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "删除成功" + }); + paging.value.refresh(); + }); + }; + const delExchangeComment = (id) => { + api_api.api.delExchangeComment(id).then((res) => { + common_vendor.index.showToast({ + icon: "none", + title: "删除成功" + }); + paging.value.refresh(); + }); + }; + const switchTab = (item) => { + tab.value = item.index; + paging.value.reload(); + }; + common_vendor.onLoad((options) => { + }); + common_vendor.onShow(() => { + var _a; + (_a = paging.value) == null ? void 0 : _a.refresh(); + }); + const formatdate = (date) => { + return common_vendor.dayjs(date).format("YYYY-MM-DD"); + }; + const getExchangeCommentUser = async (params) => { + api_api.api.getExchangeCommentUser({ + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + }).catch((err) => { + paging.value.complete(false); + }); + }; + const getArticleCommentUser = async (params) => { + api_api.api.getArticleCommentUser({ + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + }).catch((err) => { + paging.value.complete(false); + }); + }; + const getVideoCommentUser = async (params) => { + api_api.api.getVideoCommentUser({ + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + }).catch((err) => { + paging.value.complete(false); + }); + }; + const queryList = (pageNo, pageSize) => { + const params = { + page: pageNo, + page_size: pageSize + }; + if (tab.value == 0) { + getExchangeCommentUser(params); + } else if (tab.value == 1) { + getArticleCommentUser(params); + } else { + getVideoCommentUser(params); + } + }; + return (_ctx, _cache) => { + return { + a: common_vendor.p({ + searchWord: keyWord.value, + navName: navName.value + }), + b: common_vendor.o(switchTab), + c: common_vendor.p({ + activeStyle: { + color: "#3CC7C0" + }, + inactiveStyle: { + color: "#4B5563" + }, + lineColor: "#3CC7C0", + lineWidth: "155rpx", + lineHeight: "2", + list: tabList.value + }), + d: common_vendor.f(dataList.value, (item, index, i0) => { + return common_vendor.e({ + a: common_vendor.t(item.content), + b: "235c92a6-3-" + i0 + ",235c92a6-0", + c: common_vendor.t(formatdate(item.created_at)), + d: common_vendor.o(($event) => isDel(item.comment_id), index) + }, tab.value == 0 ? { + e: common_vendor.t(item.author_name), + f: common_vendor.t(item.author_hospital_name) + } : {}, tab.value == 0 ? { + g: common_vendor.t(item.exchange_title) + } : tab.value == 1 ? { + h: common_vendor.t(item.article_title) + } : tab.value == 2 ? { + i: common_vendor.t(item.video_title) + } : {}, { + j: index + }); + }), + e: common_vendor.p({ + name: "clock", + color: "#6B7280", + size: "28rpx" + }), + f: tab.value == 0, + g: tab.value == 0, + h: tab.value == 1, + i: tab.value == 2, + j: common_vendor.sr(paging, "235c92a6-0", { + "k": "paging" + }), + k: common_vendor.o(queryList), + l: common_vendor.o(($event) => dataList.value = $event), + m: common_vendor.p({ + ["inside-more"]: true, + ["loading-more-no-more-text"]: "咱也是有底线的!", + ["auto-show-back-to-top"]: true, + modelValue: dataList.value + }), + n: common_vendor.o(alertPop), + o: common_vendor.o(closeDeal), + p: common_vendor.o(closeDeal), + q: common_vendor.o(openDeal), + r: common_vendor.p({ + zIndex: 10, + overlayStyle: { + zIndex: 9 + }, + closeOnClickOverlay: false, + show: showDeal.value, + round: 10, + mode: "bottom" + }), + s: common_vendor.o(($event) => showModal.value = false), + t: common_vendor.o(confirmDel), + v: common_vendor.p({ + show: showModal.value, + ["mask-click-able"]: true + }) + }; + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-235c92a6"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/myJoin/myJoin.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.json b/unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.json new file mode 100644 index 0000000..9d87c46 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.json @@ -0,0 +1,12 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "up-tabs": "../../node-modules/uview-plus/components/u-tabs/u-tabs", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "z-paging": "../../uni_modules/z-paging/components/z-paging/z-paging", + "up-popup": "../../node-modules/uview-plus/components/u-popup/u-popup", + "up-overlay": "../../node-modules/uview-plus/components/u-overlay/u-overlay", + "back-logo-nav": "../../components/backLogoNav/backLogoNav" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.wxml b/unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.wxml new file mode 100644 index 0000000..957d9f2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.wxml @@ -0,0 +1 @@ +{{item.a}}{{item.c}}...{{item.e}}({{item.f}}){{item.g}}{{item.h}}{{item.i}}删除取消提示 是否删除该评论? 取消确定 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.wxss b/unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.wxss new file mode 100644 index 0000000..294966a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/myJoin/myJoin.wxss @@ -0,0 +1,315 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.zanboxpop.data-v-235c92a6 { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} +.zanboxpop .zanwraper.data-v-235c92a6 { + width: 630rpx; + margin: 0 auto; + padding-bottom: 50rpx; + background: #f5f6f9; + border-radius: 16rpx; +} +.zanboxpop .zanwraper .title.data-v-235c92a6 { + margin-top: 48rpx; + text-align: center; + font-weight: 500; + font-size: 36rpx; + color: rgba(0, 0, 0, 0.85); +} +.zanboxpop .zanwraper .content.data-v-235c92a6 { + padding: 30rpx 0; + background: #f5f6f9; + text-align: center; +} +.zanboxpop .zanwraper .count.data-v-235c92a6 { + margin-top: 24rpx; + display: flex; + align-items: center; + text-align: center; + justify-content: center; + font-weight: 400; + font-size: 28rpx; + color: rgba(0, 0, 0, 0.65); +} +.zanboxpop .zanwraper .count .num.data-v-235c92a6 { + color: #ff0000; + font-size: 32rpx; +} +.zanboxpop .zanwraper .count .earn.data-v-235c92a6 { + font-size: 32rpx; + color: #3cc7c0; +} +.zanboxpop .zanwraper .countbox.data-v-235c92a6 { + display: flex; + width: 100%; + margin: 30rpx 0px 40rpx; + padding: 0 40rpx; + justify-content: center; + box-sizing: border-box; +} +.zanboxpop .zanwraper .countbox .minus.data-v-235c92a6 { + flex-shrink: 0; + margin-left: 10rp; + width: 90rpx; + height: 90rpx; + font-size: 60rpx; + color: #333; + display: flex; + justify-content: center; + align-items: center; + background: #ffffff; + border-radius: 12rpx; + border: 2rpx solid #e9e9e9; +} +.zanboxpop .zanwraper .countbox .add.data-v-235c92a6 { + flex-shrink: 0; + width: 90rpx; + margin-left: 10rpx; + height: 90rpx; + font-size: 60rpx; + color: #333; + display: flex; + justify-content: center; + align-items: center; + color: #fff; + background: #3cc7c0; + border-radius: 12rpx; + border: 2rpx solid #3cc7c0; +} +.zanboxpop .zanwraper .countbox.data-v-235c92a6 .u-input__content__field-wrapper__field { + height: 60rpx; + font-size: 34rpx !important; + text-align: center !important; +} +.zanboxpop .zanwraper .countbox.data-v-235c92a6 .u-input { + background: #f2f2f2; + width: 200rpx !important; + flex: none; +} +.zanboxpop .zanwraper .countbox.data-v-235c92a6 .u-input--radius { + border-radius: 24rrpx; +} +.zanboxpop .zanwraper .btnbox.data-v-235c92a6 { + margin: 0px 40rpx 0px; + display: flex; + justify-content: space-between; +} +.zanboxpop .zanwraper .btnbox .cancle.data-v-235c92a6 { + color: rgba(0, 0, 0, 0.3); + width: 256rpx; + height: 88rpx; + background: #f5f6f9; + border-radius: 25px; + border: 2rpx solid rgba(0, 0, 0, 0.15); + font-weight: 500; + font-size: 32rpx; + color: rgba(0, 0, 0, 0.85); + display: flex; + justify-content: center; + align-items: center; +} +.zanboxpop .zanwraper .btnbox .ok.data-v-235c92a6 { + color: #fff; + width: 256rpx; + height: 88rpx; + background: #3cc7c0; + border-radius: 25px; + border: 2rpx solid #3cc7c0; + font-weight: 500; + font-size: 32rpx; + display: flex; + justify-content: center; + align-items: center; +} +.bar.data-v-235c92a6 { + width: 100%; + background: #f9fafb; + height: 20rpx; +} +.dealbox .dealcell.data-v-235c92a6 { + display: flex; + align-items: center; + justify-content: center; + height: 112rpx; + font-size: 32rpx; + color: rgba(0, 0, 0, 0.9); + border-bottom: 2rpx solid #efefef; +} +.tabcon.data-v-235c92a6 { + margin: -20rpx 20rpx 0; +} +.databox.data-v-235c92a6 { + height: 162rpx; + background: #ffffff; + display: flex; + margin-bottom: 20rpx; + justify-content: space-between; +} +.databox .cell.data-v-235c92a6 { + flex: 1; + padding: 35rpx 0; + text-align: center; +} +.databox .cell .num.data-v-235c92a6 { + font-size: 38rpx; + color: #3cc7c0; +} +.databox .cell .name.data-v-235c92a6 { + margin-top: 18rpx; + font-size: 28rpx; + color: #4b5563; +} +.filterbox.data-v-235c92a6 { + display: flex; + height: 128rpx; + align-items: center; + position: relative; +} +.filterbox .type.data-v-235c92a6 { + position: absolute; + left: 30rpx; + top: 24rpx; + display: flex; + justify-content: center; + align-items: center; + background: #f3f4f6; + border-radius: 15rpx; + height: 74rpx; + padding: 0 25rpx; + z-index: 2; +} +.u-page.data-v-235c92a6 .u-flex { + display: flex; + flex-direction: row; + overflow: hidden; +} +.u-page.data-v-235c92a6 .u-dropdown__menu { + background: #fff; + z-index: 1; + margin-left: 180rpx; +} +.u-page.data-v-235c92a6 .u-dropdown__menu__item { + height: 74rpx; + padding: 0 20rpx; + background: #f3f4f6; + border-radius: 15rpx; + flex: none; + margin-left: 60rpx; +} +.u-page .casecontent.data-v-235c92a6 { + margin-top: 16rpx; + padding: 24rpx 30rpx; + border-radius: 16rpx; + border: 2rpx solid #E5E7EB; +} +.u-page .casecontent .author.data-v-235c92a6 { + font-size: 26rpx; + color: #666666; +} +.u-page .casecontent .content.data-v-235c92a6 { + margin-top: 10rpx; + font-size: 30rpx; + color: #333333; + line-height: 46rpx; +} +.u-page .deal.data-v-235c92a6 { + margin-top: 20rpx; + display: flex; + color: #6b7280; + font-size: 24rpx; + justify-content: space-between; +} +.u-page .deal .left.data-v-235c92a6 { + display: flex; + align-items: center; +} +.u-page .deal .recored.data-v-235c92a6 { + display: flex; + align-items: center; + font-size: 31rpx; + color: #3cc7c0; +} +.u-page .deal .collect.data-v-235c92a6 { + display: flex; + align-items: center; +} +.u-page .deal .eyebox.data-v-235c92a6 { + width: 160rpx; + display: flex; + align-items: center; +} +.u-page .deal .dot.data-v-235c92a6 { + font-size: 34rpx; +} +.u-page .deal .time.data-v-235c92a6 { + display: flex; + align-items: center; +} +.u-page .deal .num.data-v-235c92a6 { + margin-left: 8rpx; +} +.u-page .item.data-v-235c92a6 { + border-bottom: 1rpx solid #f3f4f6; + padding: 30rpx; +} +.u-page .item .title.data-v-235c92a6 { + font-size: 30rpx; + color: #111827; + line-height: 46rpx; +} +.u-page .tagsbox.data-v-235c92a6 { + margin-top: 20rpx; + display: flex; + flex-wrap: wrap; +} +.u-page .tagsbox .tag.data-v-235c92a6 { + padding: 0 10rpx; + margin-right: 16rpx; + height: 46rpx; + line-height: 46rpx; + text-align: center; + background: rgba(60, 199, 192, 0.1); + border-radius: 8rpx; + font-weight: 400; + font-size: 24rpx; + color: #3cc7c0; +} +.detail.data-v-235c92a6 { + background: #f9f9f9; + padding: 12rpx 30rpx; +} +.detail .desc.data-v-235c92a6 { + font-size: 26rpx; + color: #4b5563; + line-height: 40rpx; +} +.detail .red.data-v-235c92a6 { + color: #ff0000; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/register/register.js b/unpackage/dist/dev/mp-weixin/pages/register/register.js new file mode 100644 index 0000000..de0a3b2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/register/register.js @@ -0,0 +1,44 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const _sfc_main = { + __name: "register", + setup(__props) { + const src = common_vendor.ref("https://wx.igandan.com/hcp/toRegister?fromType=wx"); + common_vendor.reactive({ + name: "" + }); + common_vendor.ref(false); + common_vendor.ref(true); + common_vendor.reactive({ + height: "90rpx", + fontSize: "36rpx" + }); + common_vendor.reactive({ + color: "#3ec7c0", + height: "64rpx", + fontSize: "28rpx", + borderColor: "#e2e2e2", + opcity: "1" + }); + common_vendor.ref(""); + common_vendor.ref(10); + common_vendor.ref(null); + common_vendor.onLoad(() => { + const { envVersion } = common_vendor.index.getAccountInfoSync().miniProgram; + common_vendor.index.__f__("log", "at pages/register/register.vue:142", envVersion); + if (envVersion == "release") { + src.value = "https://wx.igandan.com/hcp/toRegister"; + } else { + src.value = "https://dev-wx.igandan.com/hcp/toRegister?fromType=weChat"; + } + }); + return (_ctx, _cache) => { + return { + a: src.value + }; + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-bac4a35d"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/register/register.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/register/register.json b/unpackage/dist/dev/mp-weixin/pages/register/register.json new file mode 100644 index 0000000..b0bfb9d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/register/register.json @@ -0,0 +1,4 @@ +{ + "navigationBarTitleText": "注册", + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/register/register.wxml b/unpackage/dist/dev/mp-weixin/pages/register/register.wxml new file mode 100644 index 0000000..8be9237 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/register/register.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/register/register.wxss b/unpackage/dist/dev/mp-weixin/pages/register/register.wxss new file mode 100644 index 0000000..823ebfc --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/register/register.wxss @@ -0,0 +1,97 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.logincontent.data-v-bac4a35d { + width: 100%; + height: 100vh; + background: #fff; +} +.logincontent .pwdbox.data-v-bac4a35d .u-form-item:nth-child(2) .u-form-item__body__left { + width: 180rpx !important; +} +.logincontent .smsbox.data-v-bac4a35d .u-form-item:first-child .u-form-item__body__left { + width: 180rpx !important; +} +.logincontent.data-v-bac4a35d .u-form-item__body__left__content__label { + font-size: 34rpx; + color: #000; +} +.logincontent .title.data-v-bac4a35d { + padding: 124rpx 0 64rpx 30rpx; + font-size: 46rpx; + font-stretch: normal; + letter-spacing: 2rpx; + color: #000000; +} +.logincontent.data-v-bac4a35d .u-form { + padding: 0 30rpx; +} +.logincontent .row.data-v-bac4a35d { + margin-top: 60rpx; + display: flex; + justify-content: space-between; + padding: 0 30rpx; +} +.logincontent .row .left.data-v-bac4a35d { + flex: 1; + color: #3cc7c0; + text-align: left; +} +.logincontent .row .right.data-v-bac4a35d { + flex: 1; + color: #666; + text-align: right; +} +.logincontent .row.data-v-bac4a35d .u-button--large .u-button__text { + font-size: 36rpx !important; +} +.logincontent .row .tip.data-v-bac4a35d { + color: #333333; + font-size: 26rpx; +} +.logincontent.data-v-bac4a35d .wrap { + border-radius: 16rpx; + overflow: hidden; + border: none; +} +.logincontent .line.data-v-bac4a35d { + padding: 0 30rpx; + margin-top: 10rpx; + color: #999999; + line-height: 44rpx; + font-size: 26rpx; + display: flex; + letter-spacing: 1px; +} +.logincontent .desc.data-v-bac4a35d { + padding: 0 30rpx; + color: #999999; + line-height: 44rpx; + font-size: 26rpx; + letter-spacing: 2rpx; +} +.logincontent .desc .red.data-v-bac4a35d { + color: red; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/search/search.js b/unpackage/dist/dev/mp-weixin/pages/search/search.js new file mode 100644 index 0000000..a1ee195 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/search/search.js @@ -0,0 +1,628 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const api_api = require("../../api/api.js"); +const common_assets = require("../../common/assets.js"); +const utils_navTo = require("../../utils/navTo.js"); +if (!Array) { + const _easycom_up__image2 = common_vendor.resolveComponent("up--image"); + const _easycom_up_radio2 = common_vendor.resolveComponent("up-radio"); + const _easycom_up_radio_group2 = common_vendor.resolveComponent("up-radio-group"); + const _easycom_up_dropdown_item2 = common_vendor.resolveComponent("up-dropdown-item"); + const _easycom_up_dropdown2 = common_vendor.resolveComponent("up-dropdown"); + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + const _easycom_z_paging2 = common_vendor.resolveComponent("z-paging"); + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_up_steps_item2 = common_vendor.resolveComponent("up-steps-item"); + const _easycom_up_steps2 = common_vendor.resolveComponent("up-steps"); + const _easycom_up_popup2 = common_vendor.resolveComponent("up-popup"); + (_easycom_up__image2 + _easycom_up_radio2 + _easycom_up_radio_group2 + _easycom_up_dropdown_item2 + _easycom_up_dropdown2 + _easycom_up_icon2 + _easycom_z_paging2 + _easycom_u_icon2 + _easycom_up_steps_item2 + _easycom_up_steps2 + _easycom_up_popup2)(); +} +const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js"; +const _easycom_up_radio = () => "../../node-modules/uview-plus/components/u-radio/u-radio.js"; +const _easycom_up_radio_group = () => "../../node-modules/uview-plus/components/u-radio-group/u-radio-group.js"; +const _easycom_up_dropdown_item = () => "../../node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.js"; +const _easycom_up_dropdown = () => "../../node-modules/uview-plus/components/u-dropdown/u-dropdown.js"; +const _easycom_up_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_z_paging = () => "../../uni_modules/z-paging/components/z-paging/z-paging.js"; +const _easycom_u_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_up_steps_item = () => "../../node-modules/uview-plus/components/u-steps-item/u-steps-item.js"; +const _easycom_up_steps = () => "../../node-modules/uview-plus/components/u-steps/u-steps.js"; +const _easycom_up_popup = () => "../../node-modules/uview-plus/components/u-popup/u-popup.js"; +if (!Math) { + (navBarSearch + _easycom_up__image + _easycom_up_radio + _easycom_up_radio_group + _easycom_up_dropdown_item + _easycom_up_dropdown + _easycom_up_icon + _easycom_z_paging + _easycom_u_icon + _easycom_up_steps_item + _easycom_up_steps + _easycom_up_popup)(); +} +const navBarSearch = () => "../../components/navBarSearch/navBarSearch.js"; +const _sfc_main = { + __name: "search", + setup(__props) { + const dataList = common_vendor.ref([]); + const total = common_vendor.ref(0); + const keyWord = common_vendor.ref(""); + const label_iden = common_vendor.ref(""); + const isArticle = common_vendor.ref(true); + const hospital_id = common_vendor.ref(""); + const hospital_name = common_vendor.ref(""); + const doctor_id = common_vendor.ref(""); + const doctor_name = common_vendor.ref(""); + const numInfo = common_vendor.reactive({}); + const searchInfo = common_vendor.reactive({}); + const freshKey = common_vendor.ref(0); + const navType = common_vendor.ref(""); + const navName = common_vendor.ref("肝胆相照临床病例库"); + const paging = common_vendor.ref(null); + const hideType = common_vendor.ref(false); + const dropTitle = common_vendor.ref("发布时间"); + const orderFilter = common_vendor.ref("1"); + const uDropdownRef = common_vendor.ref(null); + const isCase = common_vendor.ref(false); + const options = common_vendor.ref([ + { + label: "发布时间", + value: "1" + }, + { + label: "阅读次数", + value: "2" + } + ]); + const isSearch = common_vendor.ref(false); + const order = common_vendor.reactive({ + read_num: "", + push_date: "desc" + }); + const showCase = common_vendor.ref(false); + const canOpenCase = common_vendor.ref(false); + const caseValue1 = common_vendor.reactive({ + value: "", + name: "" + }); + const caseValue2 = common_vendor.reactive({ + value: "", + name: "" + }); + const caseValue3 = common_vendor.reactive({ + value: "", + name: "" + }); + const level = common_vendor.ref(1); + const labelObj = common_vendor.reactive({ + list1: [], + list2: [], + list3: [] + }); + const openCaseLevel = (lev) => { + freshKey.value++; + level.value = lev; + if (lev == 1) { + caseValue2.name = ""; + caseValue2.value = ""; + labelObj.list2 = []; + } else if (lev == 2) { + labelObj.list3 = []; + caseValue3.name = ""; + caseValue3.value = ""; + } + }; + const groupChange1 = (e) => { + caseValue1.value = e; + for (var i = 0; i < labelObj.list1.length; i++) { + if (labelObj.list1[i].app_iden == caseValue1.value) { + caseValue1.name = labelObj.list1[i].label_name; + break; + } + } + getCaseLabel(2, e); + }; + const groupChange2 = (e) => { + caseValue2.value = e; + for (var i = 0; i < labelObj.list2.length; i++) { + if (labelObj.list2[i].app_iden == caseValue2.value) { + caseValue2.name = labelObj.list2[i].label_name; + break; + } + } + getCaseLabel(3, e); + }; + const groupChange3 = (e) => { + caseValue3.value = e; + level.value = 3; + for (var i = 0; i < labelObj.list3.length; i++) { + if (labelObj.list3[i].app_iden == caseValue3.value) { + caseValue3.name = labelObj.list3[i].label_name; + break; + } + } + }; + const getCaseLabel = (lev, pid = 0) => { + api_api.api.getCaseLabel({ + pId: pid + }).then((res) => { + level.value = lev; + if (lev == 1) { + labelObj.list1 = res.data.data; + } else if (lev == 2) { + labelObj.list2 = res.data.data; + if (res.data.data.length == 0) { + level.value = 1; + } + } else if (lev == 3) { + labelObj.list3 = res.data.data; + if (res.data.data.length == 0) { + level.value = 2; + } + } + }); + }; + const openCase = () => { + showCase.value = true; + }; + const confirmCase = () => { + if (level.value == 1 && caseValue1.value == "") { + common_vendor.index.showToast({ title: "请选择疾病选项", icon: "none" }); + return false; + } + if (level.value == 1) { + label_iden.value = caseValue1.value; + } + if (level.value == 2) { + if (!caseValue2.value) { + label_iden.value = caseValue1.value; + } else { + label_iden.value = caseValue2.value; + } + } + if (level.value == 3) { + if (!caseValue3.value) { + label_iden.value = caseValue2.value; + } else { + label_iden.value = caseValue3.value; + } + } + paging.value.reload(); + showCase.value = false; + }; + const closeCase = () => { + showCase.value = false; + }; + const changeWord = (value) => { + keyWord.value = value; + isSearch.value = true; + paging.value.reload(); + }; + common_vendor.onLoad((options2) => { + if (options2.from == "home") { + isSearch.value = true; + } else if (options2.from == "myCase") { + navType.value = "myCase"; + } + if (options2.keyWord) { + keyWord.value = options2.keyWord; + } + if (options2.order == "new") { + order.push_date = "desc"; + hideType.value = true; + navName.value = "文章临床病例库"; + } + if (options2.order == "read") { + order.push_date = "desc"; + hideType.value = true; + navName.value = "文章临床病例库"; + } + if (options2.order == "video") { + isArticle.value = false; + } + if (options2.doctor_id) { + doctor_id.value = options2.doctor_id; + doctor_name.value = options2.doctor_name; + navName.value = doctor_name.value + "临床病例库"; + getStaticDoctor(doctor_id.value); + } + if (options2.hospital_id) { + hospital_id.value = options2.hospital_id; + hospital_name.value = options2.hospital_name; + navName.value = hospital_name.value + "临床病例库"; + getStaticHospital(hospital_id.value); + } + if (options2.case_id) { + label_iden.value = options2.case_id; + navName.value = options2.case_name + "临床病例库"; + getStaticSick(label_iden.value); + } else { + canOpenCase.value = true; + } + getCaseLabel(1, 0); + }); + common_vendor.onShow(() => { + var _a; + (_a = paging.value) == null ? void 0 : _a.refresh(); + }); + const changeDate = (e) => { + if (e == 1) { + order.push_date = "desc"; + order.read_num = ""; + dropTitle.value = "发布时间"; + } else { + order.push_date = ""; + order.read_num = "desc"; + dropTitle.value = "阅读次数"; + } + orderFilter.value = e; + uDropdownRef.value.close(); + paging.value.reload(); + }; + const formatdate = (date) => { + return common_vendor.dayjs(date).format("YYYY-MM-DD"); + }; + const goDetail = (id, isLink, src) => { + common_vendor.index.__f__("log", "at pages/search/search.vue:475", isLink); + if (isLink == 1) { + api_api.api.readRecord({ + type: isArticle.value ? 1 : 2, + id + }).then((res) => { + }); + utils_navTo.navTo({ + url: `/pages/web/web?src=${src}` + }); + } else { + let type = isArticle.value ? "article" : "video"; + utils_navTo.navTo({ + url: `/pages/detail/detail?id=${id}&type=${type}` + }); + } + }; + const swicthType = () => { + isArticle.value = !isArticle.value; + dataList.value = []; + paging.value.reload(); + }; + const searchArticle = (params) => { + let searchForm = { + keyword: keyWord.value, + hospital_id: hospital_id.value, + doctor_id: doctor_id.value, + label_iden: label_iden.value + }; + if (label_iden.value === "") { + delete searchForm.label_iden; + } + if (isSearch.value) { + searchForm.is_need_num = 1; + } + if (!order.read_num) { + delete order.read_num; + } + if (!order.push_date) { + delete order.push_date; + } + if (order.read_num || order.push_date) { + searchForm.order = order; + } + api_api.api.searchArticle({ + ...searchForm, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + searchInfo.search_video_num = res.data.data.search_video_num; + searchInfo.search_article_num = res.data.data.search_article_num; + }).catch((err) => { + paging.value.complete(false); + }); + }; + const searchVideo = async (params) => { + let searchForm = { + keyword: keyWord.value, + hospital_id: hospital_id.value, + doctor_id: doctor_id.value, + label_iden: label_iden.value + }; + if (label_iden.value === "") { + delete searchForm.label_iden; + } + if (isSearch.value) { + searchForm.is_need_num = 1; + } + if (!order.read_num) { + delete order.read_num; + } + if (!order.push_date) { + delete order.push_date; + } + if (order.read_num || order.push_date) { + searchForm.order = order; + } + api_api.api.searchVideo({ + ...searchForm, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + searchInfo.search_video_num = res.data.data.search_video_num; + searchInfo.search_article_num = res.data.data.search_article_num; + }).catch((err) => { + paging.value.complete(false); + }); + }; + const getStaticDoctor = (id) => { + api_api.api.getStaticDoctor(id).then((res) => { + let result = res.data.data; + if (result) { + Object.assign(numInfo, result); + } else { + Object.assign(numInfo, { + article_num: 0, + article_read_num: 0, + video_collect_num: 0, + video_num: 0, + video_read_num: 0 + }); + } + }); + }; + const getStaticSick = (id) => { + api_api.api.getStaticSick({ + label_iden: id + }).then((res) => { + let result = res.data.data; + if (result) { + Object.assign(numInfo, result); + } else { + Object.assign(numInfo, { + article_num: 0, + article_read_num: 0, + video_collect_num: 0, + video_num: 0, + video_read_num: 0 + }); + } + }); + }; + const getStaticHospital = (id) => { + api_api.api.getStaticHospital(id).then((res) => { + let result = res.data.data; + if (result) { + Object.assign(numInfo, result); + } else { + Object.assign(numInfo, { + article_num: 0, + article_read_num: 0, + video_collect_num: 0, + video_num: 0, + video_read_num: 0 + }); + } + }); + }; + const queryList = (pageNo, pageSize) => { + common_vendor.index.__f__("log", "at pages/search/search.vue:629", 666666); + const params = { + page: pageNo, + page_size: pageSize + }; + isArticle.value ? searchArticle(params) : searchVideo(params); + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.o(changeWord), + b: common_vendor.p({ + searchWord: keyWord.value, + navName: navName.value, + type: navType.value + }), + c: hospital_id.value || doctor_id.value || label_iden.value && !canOpenCase.value + }, hospital_id.value || doctor_id.value || label_iden.value && !canOpenCase.value ? { + d: common_vendor.t(numInfo.article_num), + e: common_vendor.t(numInfo.video_num), + f: common_vendor.t(numInfo.video_read_num + numInfo.article_read_num) + } : {}, { + g: isSearch.value + }, isSearch.value ? common_vendor.e({ + h: common_vendor.t(searchInfo.search_article_num), + i: !hideType.value + }, !hideType.value ? { + j: common_vendor.t(searchInfo.search_video_num) + } : {}, { + k: keyWord.value + }, keyWord.value ? { + l: common_vendor.t(keyWord.value) + } : {}) : {}, { + m: !hideType.value && !isCase.value + }, !hideType.value && !isCase.value ? { + n: common_vendor.t(!isArticle.value ? "视频" : "文章"), + o: common_vendor.p({ + src: common_vendor.unref(common_assets.switchImg), + width: "31rpx", + height: "31rpx" + }), + p: common_vendor.o(swicthType) + } : {}, { + q: canOpenCase.value + }, canOpenCase.value ? { + r: common_vendor.p({ + src: common_vendor.unref(common_assets.caseImg), + width: "31rpx", + height: "31rpx" + }), + s: label_iden.value ? 1 : "", + t: common_vendor.o(openCase) + } : {}, { + v: common_vendor.f(options.value, (item, k0, i0) => { + return { + a: "c10c040c-7-" + i0 + ",c10c040c-6", + b: common_vendor.p({ + activeColor: "#3CC7C0", + label: item.label, + name: item.value + }), + c: item.value, + d: common_vendor.n(orderFilter.value == item.value ? "active" : "") + }; + }), + w: common_vendor.o(changeDate), + x: common_vendor.o(($event) => orderFilter.value = $event), + y: common_vendor.p({ + iconPlacement: "right", + placement: "column", + modelValue: orderFilter.value + }), + z: common_vendor.p({ + title: dropTitle.value + }), + A: common_vendor.sr(uDropdownRef, "c10c040c-4,c10c040c-0", { + "k": "uDropdownRef" + }), + B: canOpenCase.value ? 1 : "", + C: hideType.value ? 1 : "", + D: isCase.value ? 1 : "", + E: common_vendor.f(dataList.value, (item, index, i0) => { + return common_vendor.e({ + a: common_vendor.t(isArticle.value ? item.article_title : item.video_title), + b: common_vendor.f(item.author, (tag, k1, i1) => { + return { + a: common_vendor.t(tag.doctor_name), + b: tag.author_id + }; + }), + c: "c10c040c-8-" + i0 + ",c10c040c-0", + d: common_vendor.t(item.read_num), + e: item.collect_num > 0 + }, item.collect_num > 0 ? { + f: "c10c040c-9-" + i0 + ",c10c040c-0", + g: common_vendor.p({ + name: "heart", + color: "#6B7280", + size: "28rpx" + }), + h: common_vendor.t(item.collect_num) + } : {}, { + i: "c10c040c-10-" + i0 + ",c10c040c-0", + j: common_vendor.t(formatdate(item.push_date)), + k: index, + l: common_vendor.o(($event) => isArticle.value ? goDetail(item.article_id, item.is_link, item.is_link_url) : goDetail(item.video_id, item.is_link, item.is_link_url), index) + }); + }), + F: common_vendor.p({ + name: "eye", + color: "#6B7280", + size: "28rpx" + }), + G: common_vendor.p({ + name: "clock", + color: "#6B7280", + size: "28rpx" + }), + H: common_vendor.sr(paging, "c10c040c-0", { + "k": "paging" + }), + I: common_vendor.o(queryList), + J: common_vendor.o(($event) => dataList.value = $event), + K: common_vendor.p({ + ["inside-more"]: true, + ["loading-more-no-more-text"]: "咱也是有底线的!", + ["auto-show-back-to-top"]: true, + modelValue: dataList.value + }), + L: common_vendor.o(closeCase), + M: common_vendor.o(confirmCase), + N: common_vendor.t(!caseValue1.name ? "请选择选项" : caseValue1.name), + O: common_vendor.p({ + name: "arrow-right" + }), + P: common_vendor.o(($event) => openCaseLevel("1")), + Q: caseValue1.name && labelObj.list2.length > 0 + }, caseValue1.name && labelObj.list2.length > 0 ? { + R: common_vendor.t(!caseValue2.name ? "请选择选项" : caseValue2.name), + S: common_vendor.p({ + name: "arrow-right" + }), + T: common_vendor.o(($event) => openCaseLevel("2")) + } : {}, { + U: caseValue2.name && labelObj.list3.length > 0 + }, caseValue2.name && labelObj.list3.length > 0 ? { + V: common_vendor.t(!caseValue3.name ? "请选择选项" : caseValue3.name), + W: common_vendor.p({ + name: "arrow-right" + }), + X: common_vendor.o(($event) => openCaseLevel("3")) + } : {}, { + Y: freshKey.value, + Z: common_vendor.p({ + current: level.value - 1, + direction: "column" + }), + aa: common_vendor.f(labelObj.list1, (item, k0, i0) => { + return { + a: "c10c040c-20-" + i0 + ",c10c040c-19", + b: common_vendor.p({ + activeColor: "#3CC7C0 ", + label: item.label_name, + name: item.app_iden + }), + c: item.app_iden + }; + }), + ab: common_vendor.o(groupChange1), + ac: common_vendor.o(($event) => caseValue1.value = $event), + ad: common_vendor.p({ + name: "group1", + iconPlacement: "right", + placement: "column", + modelValue: caseValue1.value + }), + ae: level.value == 1, + af: common_vendor.f(labelObj.list2, (item, k0, i0) => { + return { + a: "c10c040c-22-" + i0 + ",c10c040c-21", + b: common_vendor.p({ + activeColor: "#3CC7C0 ", + label: item.label_name, + name: item.app_iden + }), + c: item.app_iden + }; + }), + ag: common_vendor.o(groupChange2), + ah: common_vendor.o(($event) => caseValue2.value = $event), + ai: common_vendor.p({ + name: "group2", + iconPlacement: "right", + placement: "column", + modelValue: caseValue2.value + }), + aj: level.value == 2, + ak: common_vendor.f(labelObj.list3, (item, k0, i0) => { + return { + a: "c10c040c-24-" + i0 + ",c10c040c-23", + b: common_vendor.p({ + activeColor: "#3CC7C0 ", + label: item.label_name, + name: item.app_iden + }), + c: item.app_iden + }; + }), + al: common_vendor.o(groupChange3), + am: common_vendor.o(($event) => caseValue3.value = $event), + an: common_vendor.p({ + name: "group3", + iconPlacement: "right", + placement: "column", + modelValue: caseValue3.value + }), + ao: level.value == 3, + ap: common_vendor.o(closeCase), + aq: common_vendor.p({ + round: 10, + zIndex: "9", + closeOnClickOverlay: false, + show: showCase.value, + mode: "bottom" + }) + }); + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-c10c040c"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/search/search.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/search/search.json b/unpackage/dist/dev/mp-weixin/pages/search/search.json new file mode 100644 index 0000000..a8a4ba8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/search/search.json @@ -0,0 +1,18 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "up-radio": "../../node-modules/uview-plus/components/u-radio/u-radio", + "up-radio-group": "../../node-modules/uview-plus/components/u-radio-group/u-radio-group", + "up-dropdown-item": "../../node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item", + "up-dropdown": "../../node-modules/uview-plus/components/u-dropdown/u-dropdown", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "z-paging": "../../uni_modules/z-paging/components/z-paging/z-paging", + "u-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "up-steps-item": "../../node-modules/uview-plus/components/u-steps-item/u-steps-item", + "up-steps": "../../node-modules/uview-plus/components/u-steps/u-steps", + "up-popup": "../../node-modules/uview-plus/components/u-popup/u-popup", + "nav-bar-search": "../../components/navBarSearch/navBarSearch" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/search/search.wxml b/unpackage/dist/dev/mp-weixin/pages/search/search.wxml new file mode 100644 index 0000000..b8a64b4 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/search/search.wxml @@ -0,0 +1 @@ +{{d}}文章{{e}}视频{{f}}阅读量检索到:{{h}}篇文章检索到:{{j}}个视频检索词:{{l}}{{n}}筛选{{item.a}}{{tag.a}}{{item.d}}{{item.h}}{{item.j}}取消确定{{N}}{{R}}{{V}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/search/search.wxss b/unpackage/dist/dev/mp-weixin/pages/search/search.wxss new file mode 100644 index 0000000..159798f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/search/search.wxss @@ -0,0 +1,384 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.dropcontent.data-v-c10c040c { + padding-top: 40rpx; + padding-bottom: 20rpx; + background-color: #fff; +} +.dropcontent.data-v-c10c040c .u-radio { + margin-bottom: 6px !important; + margin-top: 16px !important; +} +.dropcontent .column.data-v-c10c040c { + padding: 0 30rpx; + border-top: 2rpx solid #e5e7eb; +} +.dropcontent .column.data-v-c10c040c .u-radio__text { + color: #333 !important; +} +.dropcontent .column.active.data-v-c10c040c .u-radio__text { + color: #3CC7C0 !important; +} +.stepbox.data-v-c10c040c { + padding: 15rpx 30rpx; + border-bottom: 2rpx dotted #f3f4f6; +} +.stepbox.data-v-c10c040c .u-steps-item__content { + margin-top: -5rpx !important; +} +.stepbox .slot-content.data-v-c10c040c { + width: 100%; + margin-bottom: 25rpx; + justify-content: space-between; + align-items: center; + display: flex; +} +.bar.data-v-c10c040c { + width: 100%; + background: #f9fafb; + height: 20rpx; +} +.votepop .confirm.data-v-c10c040c { + margin: 39rpx 30rpx 0; + height: 92rpx; + background: #3cc7c0; + border-radius: 15rpx; + display: flex; + align-items: center; + font-size: 31rpx; + color: #ffffff; + justify-content: center; +} +.votepop .del.data-v-c10c040c { + margin: 30rpx 30rpx 30rpx; + height: 92rpx; + background: #fff; + border-radius: 15rpx; + font-size: 31rpx; + color: #666666; + display: flex; + align-items: center; + justify-content: center; +} +.votepop .tips.data-v-c10c040c { + margin-top: 30rpx; + font-size: 27rpx; + color: #9ca3af; + line-height: 38rpx; + padding: 0 30rpx; +} +.votepop .add.data-v-c10c040c { + margin: 0 30rpx; + display: flex; + align-items: center; + height: 92rpx; + justify-content: center; + background: #f5f5f5; + border-radius: 15rpx; + font-size: 31rpx; + color: #4b5563; +} +.votepop .add .desc.data-v-c10c040c { + margin-left: 10rpx; +} +.votepop .titlebox.data-v-c10c040c { + padding: 0 30rpx; + height: 86rpx; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 2rpx solid #f3f4f6; +} +.votepop .titlebox .left.data-v-c10c040c { + font-size: 31rpx; + color: #4b5563; +} +.votepop .titlebox .right.data-v-c10c040c { + font-size: 31rpx; + color: #3cc7c0; +} +.votepop .votecon.data-v-c10c040c { + max-height: calc(100vh - 530rpx); + overflow-y: scroll; +} +.votepop .votecon .row.data-v-c10c040c { + display: flex; + align-items: center; +} +.votepop .votecon .row .iconbox.data-v-c10c040c { + margin-left: 15rpx; + align-items: center; +} +.votepop .votecon .titlebox.data-v-c10c040c { + border: none; + margin: 30rpx 0 20rpx; +} +.votepop .votecon .titlebox .title.data-v-c10c040c { + font-size: 31rpx; + color: #111827; +} +.votepop .votecon .titlebox .desc.data-v-c10c040c { + font-size: 27rpx; + color: #9ca3af; +} +.casepop.data-v-c10c040c { + display: flex; + flex-direction: column; + max-height: calc(100vh - 400rpx); +} +.casepop .continue.data-v-c10c040c { + color: #2878ff !important; +} +.casecon.data-v-c10c040c { + flex: 1; + max-height: calc(100vh - 800rpx); + overflow-y: scroll; + padding-top: 22rpx; + padding-bottom: 20rpx; + min-height: 350rpx; +} +.casecon.data-v-c10c040c .u-radio { + margin-bottom: 10px !important; + margin-top: 0px !important; +} +.casecon .column.data-v-c10c040c { + padding: 0 30rpx; + border-bottom: 2rpx solid #e5e7eb; +} +.databox.data-v-c10c040c { + height: 162rpx; + background: #ffffff; + display: flex; + margin-bottom: 20rpx; + justify-content: space-between; +} +.databox .cell.data-v-c10c040c { + flex: 1; + padding: 35rpx 0; + text-align: center; +} +.databox .cell .num.data-v-c10c040c { + font-size: 38rpx; + color: #3cc7c0; +} +.databox .cell .name.data-v-c10c040c { + margin-top: 18rpx; + font-size: 28rpx; + color: #4b5563; +} +.filterbox.data-v-c10c040c { + display: flex; + height: 128rpx; + align-items: center; + position: relative; +} +.filterbox.data-v-c10c040c .u-flex { + display: flex; + flex-direction: row; + overflow: hidden; +} +.filterbox.data-v-c10c040c .u-dropdown__menu { + background: #fff; + z-index: 1; + margin-left: 150rpx; +} +.filterbox.data-v-c10c040c .u-dropdown__menu__item__text { + font-size: 14px !important; + color: #3CC7C0 !important; +} +.filterbox.data-v-c10c040c .u-dropdown__menu__item { + height: 74rpx; + padding: 0 20rpx; + background: #F3F4F6; + border-radius: 15rpx; + flex: none; + margin-left: 60rpx; +} +.filterbox .type.data-v-c10c040c { + position: absolute; + left: 30rpx; + top: 24rpx; + color: #606266; + font-size: 14px; + display: flex; + justify-content: center; + align-items: center; + background: #F3F4F6; + border-radius: 15rpx; + height: 74rpx; + padding: 0 25rpx; + z-index: 2; +} +.filterbox .casesdown.data-v-c10c040c { + font-size: 14px; + color: #606266; + position: absolute; + left: 190rpx; + top: 24rpx; + display: flex; + justify-content: center; + align-items: center; + background: #F3F4F6; + border-radius: 15rpx; + height: 74rpx; + padding: 0 25rpx; + z-index: 2; +} +.filterbox.active.data-v-c10c040c { + display: flex; + height: 128rpx; + align-items: center; + position: relative; +} +.filterbox.active.data-v-c10c040c .u-flex { + display: flex; + flex-direction: row; + overflow: hidden; +} +.filterbox.active.data-v-c10c040c .u-dropdown__menu { + background: #fff; + z-index: 1; + margin-left: 330rpx; +} +.filterbox.active.data-v-c10c040c .u-dropdown__menu__item__text { + font-size: 14px !important; +} +.filterbox.active.data-v-c10c040c .u-dropdown__menu__item { + height: 74rpx; + padding: 0 20rpx; + background: #F3F4F6; + border-radius: 15rpx; + flex: none; + margin-left: 20rpx; +} +.filterbox.active .type.data-v-c10c040c { + position: absolute; + left: 30rpx; + top: 24rpx; + color: #606266; + font-size: 14px; + display: flex; + justify-content: center; + align-items: center; + background: #F3F4F6; + border-radius: 15rpx; + height: 74rpx; + padding: 0 25rpx; + z-index: 2; +} +.filterbox.active .casesdown.data-v-c10c040c { + font-size: 14px; + color: #606266; + position: absolute; + left: 190rpx; + top: 24rpx; + display: flex; + justify-content: center; + align-items: center; + background: #F3F4F6; + border-radius: 15rpx; + height: 74rpx; + padding: 0 25rpx; + z-index: 2; +} +.filterbox.on .casesdown.data-v-c10c040c { + left: 30rpx; +} +.filterbox.on.data-v-c10c040c .u-dropdown__menu { + background: #fff; + z-index: 1; + margin-left: 170rpx; +} +.filterbox.isCase.data-v-c10c040c .u-dropdown__menu { + background: #fff; + z-index: 1; + margin-left: -30rpx; +} +.u-page .deal.data-v-c10c040c { + margin-top: 20rpx; + display: flex; + color: #6b7280; + font-size: 24rpx; + justify-content: space-between; +} +.u-page .deal .left.data-v-c10c040c { + display: flex; + align-items: center; +} +.u-page .deal .collect.data-v-c10c040c { + display: flex; + align-items: center; +} +.u-page .deal .eyebox.data-v-c10c040c { + width: 160rpx; + display: flex; + align-items: center; +} +.u-page .deal .time.data-v-c10c040c { + display: flex; + align-items: center; +} +.u-page .deal .num.data-v-c10c040c { + margin-left: 8rpx; +} +.u-page .item.data-v-c10c040c { + border-bottom: 1rpx solid #f3f4f6; + padding: 30rpx; +} +.u-page .item .title.data-v-c10c040c { + font-size: 30rpx; + color: #111827; + line-height: 46rpx; +} +.u-page .tagsbox.data-v-c10c040c { + margin-top: 20rpx; + display: flex; + flex-wrap: wrap; +} +.u-page .tagsbox .tag.data-v-c10c040c { + padding: 0 10rpx; + margin-right: 16rpx; + height: 46rpx; + line-height: 46rpx; + text-align: center; + background: rgba(60, 199, 192, 0.1); + border-radius: 8rpx; + font-weight: 400; + font-size: 24rpx; + color: #3cc7c0; +} +.detail.data-v-c10c040c { + background: #f9f9f9; + padding: 12rpx 30rpx; +} +.detail .desc.data-v-c10c040c { + font-size: 26rpx; + color: #4b5563; + line-height: 40rpx; +} +.detail .red.data-v-c10c040c { + color: #FF0000; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/searchList/searchList.js b/unpackage/dist/dev/mp-weixin/pages/searchList/searchList.js new file mode 100644 index 0000000..d04cf1d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/searchList/searchList.js @@ -0,0 +1,280 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const api_api = require("../../api/api.js"); +const utils_navTo = require("../../utils/navTo.js"); +const common_assets = require("../../common/assets.js"); +if (!Array) { + const _easycom_up_radio2 = common_vendor.resolveComponent("up-radio"); + const _easycom_up_radio_group2 = common_vendor.resolveComponent("up-radio-group"); + const _easycom_up_dropdown_item2 = common_vendor.resolveComponent("up-dropdown-item"); + const _easycom_up_dropdown2 = common_vendor.resolveComponent("up-dropdown"); + const _easycom_up__image2 = common_vendor.resolveComponent("up--image"); + const _easycom_z_paging2 = common_vendor.resolveComponent("z-paging"); + (_easycom_up_radio2 + _easycom_up_radio_group2 + _easycom_up_dropdown_item2 + _easycom_up_dropdown2 + _easycom_up__image2 + _easycom_z_paging2)(); +} +const _easycom_up_radio = () => "../../node-modules/uview-plus/components/u-radio/u-radio.js"; +const _easycom_up_radio_group = () => "../../node-modules/uview-plus/components/u-radio-group/u-radio-group.js"; +const _easycom_up_dropdown_item = () => "../../node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.js"; +const _easycom_up_dropdown = () => "../../node-modules/uview-plus/components/u-dropdown/u-dropdown.js"; +const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js"; +const _easycom_z_paging = () => "../../uni_modules/z-paging/components/z-paging/z-paging.js"; +if (!Math) { + (navBarSearch + _easycom_up_radio + _easycom_up_radio_group + _easycom_up_dropdown_item + _easycom_up_dropdown + _easycom_up__image + _easycom_z_paging)(); +} +const navBarSearch = () => "../../components/navBarSearch/navBarSearch.js"; +const _sfc_main = { + __name: "searchList", + setup(__props) { + const paging = common_vendor.ref(null); + const uDropdownRef = common_vendor.ref(null); + const dataList = common_vendor.ref([]); + const total = common_vendor.ref(0); + common_vendor.ref(""); + const keyWord = common_vendor.ref(""); + common_vendor.ref(true); + const type = common_vendor.ref("doctor"); + const navName = common_vendor.ref("医生临床病例库"); + const orderFilter = common_vendor.ref("1"); + const dropTitle = common_vendor.ref("更新时间"); + const option = common_vendor.ref([ + { + label: "更新时间", + value: "1" + }, + { + label: "医生名称", + value: "2" + }, + { + label: "病例数", + value: "3" + } + ]); + const order = common_vendor.reactive({ + push_date: "desc" + }); + common_vendor.onLoad((options) => { + if (options.type == "hospital") { + type.value = "hospital"; + option.value[1].label = "医院名称"; + } + common_vendor.index.__f__("log", "at pages/searchList/searchList.vue:142", type.value); + keyWord.value = options.name; + if (options.name) { + navName.value = options.name + "临床病例库"; + } + if ((options.name = "医生") && !options.id) { + keyWord.value = ""; + } + if (options.order == "new") { + order.push_date = "asc"; + } + if (options.order == "read") { + order.read_num = "desc"; + } + }); + common_vendor.onShow(() => { + var _a; + (_a = paging.value) == null ? void 0 : _a.refresh(); + }); + const change = (e) => { + if (e == 1) { + order.push_date = "desc"; + if (type.value == "hospital") { + order.hospital_name = ""; + } else { + order.doctor_name = ""; + } + order.article_num = ""; + dropTitle.value = "更新时间"; + } else if (e == 2) { + order.push_date = ""; + order.article_num = ""; + if (type.value == "hospital") { + order.hospital_name = "asc"; + dropTitle.value = "医院名称"; + } else { + order.doctor_name = "asc"; + dropTitle.value = "医生名称"; + } + } else if (e == 3) { + order.push_date = ""; + if (type.value == "hospital") { + order.hospital_name = ""; + } else { + order.doctor_name = ""; + } + order.article_num = "desc"; + dropTitle.value = "病例数"; + } + orderFilter.value = e; + uDropdownRef.value.close(); + paging.value.reload(); + }; + const formatdate = (date) => { + if (!date) + return common_vendor.dayjs().format("YYYY-MM-DD"); + return common_vendor.dayjs(date).format("YYYY-MM-DD"); + }; + const searchHospital = async (params) => { + let searchForm = { + hospital_name: keyWord.value + }; + if (!order.push_date) { + delete order.push_date; + } + if (!order.article_num) { + delete order.article_num; + } + if (!order.hospital_name) { + delete order.hospital_name; + } + if (order.push_date || order.article_num || order.hospital_name) { + searchForm.order = order; + } + api_api.api.searchHospital({ + ...searchForm, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + }).catch((err) => { + paging.value.complete(false); + }); + }; + const searchDoctor = async (params) => { + let searchForm = { + doctor_name: keyWord.value + }; + if (!order.push_date) { + delete order.push_date; + } + if (!order.article_num) { + delete order.article_num; + } + if (!order.doctor_name) { + delete order.doctor_name; + } + if (order.push_date || order.article_num || order.doctor_name) { + searchForm.order = order; + } + api_api.api.searchDoctor({ + ...searchForm, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + }).catch((err) => { + paging.value.complete(false); + }); + }; + const queryList = (pageNo, pageSize) => { + const params = { + page: pageNo, + page_size: pageSize + }; + type.value == "hospital" ? searchHospital(params) : searchDoctor(params); + }; + const goDetail = (id, name) => { + let url = ""; + if (type.value == "doctor") { + url = `/pages/search/search?doctor_id=${id}&doctor_name=${name}`; + } else { + url = `/pages/search/search?hospital_id=${id}&hospital_name=${name}`; + } + utils_navTo.navTo({ + url + }); + }; + const changeWord = (value) => { + common_vendor.index.__f__("log", "at pages/searchList/searchList.vue:331", value); + if (type.value == "hospital") { + navName.value = "医院临床病例库"; + order.hospital_name = ""; + } else { + navName.value = "医生临床病例库"; + order.doctor_name = ""; + } + keyWord.value = value; + dataList.value = []; + order.push_date = "desc"; + order.article_num = ""; + paging.value.reload(); + }; + return (_ctx, _cache) => { + return { + a: common_vendor.o(changeWord), + b: common_vendor.p({ + searchWord: keyWord.value, + navName: navName.value, + type: type.value + }), + c: common_vendor.f(option.value, (item, k0, i0) => { + return { + a: "5d2f7987-5-" + i0 + ",5d2f7987-4", + b: common_vendor.p({ + activeColor: "#3CC7C0", + label: item.label, + name: item.value + }), + c: item.value, + d: common_vendor.n(orderFilter.value == item.value ? "active" : "") + }; + }), + d: common_vendor.o(change), + e: common_vendor.o(($event) => orderFilter.value = $event), + f: common_vendor.p({ + iconPlacement: "right", + placement: "column", + modelValue: orderFilter.value + }), + g: common_vendor.p({ + title: dropTitle.value + }), + h: common_vendor.sr(uDropdownRef, "5d2f7987-2,5d2f7987-0", { + "k": "uDropdownRef" + }), + i: common_vendor.f(dataList.value, (item, index, i0) => { + return common_vendor.e(type.value == "hospital" ? { + a: common_vendor.t(item.basic_hospital.hospital_name) + } : { + b: common_vendor.t(item.case_clinical_doctor.doctor_name), + c: common_vendor.t(item.case_clinical_doctor.hospital_name) + }, { + d: common_vendor.f(item.author, (tag, k1, i1) => { + return { + a: common_vendor.t(tag.doctor_name), + b: tag.author_id + }; + }), + e: common_vendor.t(item.video_num + item.article_num), + f: "5d2f7987-6-" + i0 + ",5d2f7987-0", + g: common_vendor.t(formatdate(item.last_push_date)), + h: index, + i: common_vendor.o(($event) => type.value == "hospital" ? goDetail(item.basic_hospital.hospital_id, item.basic_hospital.hospital_name) : goDetail(item.case_clinical_doctor.doctor_id, item.case_clinical_doctor.doctor_name), index) + }); + }), + j: type.value == "hospital", + k: common_vendor.p({ + src: common_vendor.unref(common_assets.arrowrightImg), + width: "32rpx", + height: "32rpx" + }), + l: common_vendor.sr(paging, "5d2f7987-0", { + "k": "paging" + }), + m: common_vendor.o(queryList), + n: common_vendor.o(($event) => dataList.value = $event), + o: common_vendor.p({ + ["inside-more"]: true, + ["loading-more-no-more-text"]: "咱也是有底线的!", + ["auto-show-back-to-top"]: true, + modelValue: dataList.value + }) + }; + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-5d2f7987"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/searchList/searchList.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/searchList/searchList.json b/unpackage/dist/dev/mp-weixin/pages/searchList/searchList.json new file mode 100644 index 0000000..e526357 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/searchList/searchList.json @@ -0,0 +1,13 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "up-radio": "../../node-modules/uview-plus/components/u-radio/u-radio", + "up-radio-group": "../../node-modules/uview-plus/components/u-radio-group/u-radio-group", + "up-dropdown-item": "../../node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item", + "up-dropdown": "../../node-modules/uview-plus/components/u-dropdown/u-dropdown", + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "z-paging": "../../uni_modules/z-paging/components/z-paging/z-paging", + "nav-bar-search": "../../components/navBarSearch/navBarSearch" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/searchList/searchList.wxml b/unpackage/dist/dev/mp-weixin/pages/searchList/searchList.wxml new file mode 100644 index 0000000..b660cdd --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/searchList/searchList.wxml @@ -0,0 +1 @@ +{{item.a}}{{item.b}}({{item.c}}){{tag.a}} 病例数:{{item.e}}更新时间:{{item.g}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/searchList/searchList.wxss b/unpackage/dist/dev/mp-weixin/pages/searchList/searchList.wxss new file mode 100644 index 0000000..096ae58 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/searchList/searchList.wxss @@ -0,0 +1,192 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.dropcontent.data-v-5d2f7987 { + padding-top: 40rpx; + padding-bottom: 20rpx; + background-color: #fff; +} +.dropcontent.data-v-5d2f7987 .u-radio { + margin-bottom: 6px !important; + margin-top: 16px !important; +} +.dropcontent .column.data-v-5d2f7987 { + padding: 0 30rpx; + border-top: 2rpx solid #e5e7eb; +} +.dropcontent .column.data-v-5d2f7987 .u-radio__text { + color: #333 !important; +} +.dropcontent .column.active.data-v-5d2f7987 .u-radio__text { + color: #3CC7C0 !important; +} +.databox.data-v-5d2f7987 { + height: 162rpx; + background: #ffffff; + display: flex; + margin-bottom: 20rpx; + justify-content: space-between; +} +.databox .cell.data-v-5d2f7987 { + flex: 1; + padding: 35rpx 0; + text-align: center; +} +.databox .cell .num.data-v-5d2f7987 { + font-size: 38rpx; + color: #3cc7c0; +} +.databox .cell .name.data-v-5d2f7987 { + margin-top: 18rpx; + font-size: 28rpx; + color: #4b5563; +} +.listbox.data-v-5d2f7987 { + background: #F8F9FA; + overflow: hidden; +} +.filterbox.data-v-5d2f7987 { + display: flex; + height: 128rpx; + background: #fff; + border-bottom: 2rpx solid rgba(0, 0, 0, 0.08); + align-items: center; + position: relative; +} +.filterbox.data-v-5d2f7987 .u-dropdown__menu__item__text { + font-size: 14px !important; + color: #3CC7C0 !important; +} +.filterbox .type.data-v-5d2f7987 { + position: absolute; + left: 30rpx; + top: 24rpx; + display: flex; + justify-content: center; + align-items: center; + background: #F3F4F6; + border-radius: 15rpx; + height: 74rpx; + padding: 0 25rpx; + z-index: 2; +} +.u-page.data-v-5d2f7987 .z-paging-content-fixed { + background: #F8F9FA !important; +} +.u-page.data-v-5d2f7987 .u-flex { + display: flex; + flex-direction: row; + overflow: hidden; +} +.u-page.data-v-5d2f7987 .u-image { + background: none !important; +} +.u-page.data-v-5d2f7987 .u-dropdown__menu { + background: #fff; + z-index: 1; + margin-left: -30rpx; +} +.u-page.data-v-5d2f7987 .u-dropdown__menu__item { + height: 74rpx; + padding: 0 20rpx; + background: #F3F4F6; + border-radius: 15rpx; + flex: none; + margin-left: 60rpx; +} +.u-page .deal.data-v-5d2f7987 { + margin-top: 20rpx; + display: flex; + color: #6b7280; + background: #fff; + font-size: 24rpx; + justify-content: space-between; +} +.u-page .deal .left.data-v-5d2f7987 { + display: flex; + align-items: center; + font-size: 27rpx; +} +.u-page .deal .left .count.data-v-5d2f7987 { + display: flex; + align-items: center; +} +.u-page .deal .collect.data-v-5d2f7987 { + display: flex; + align-items: center; +} +.u-page .deal .eyebox.data-v-5d2f7987 { + width: 160rpx; + display: flex; + align-items: center; +} +.u-page .deal .time.data-v-5d2f7987 { + display: flex; + align-items: center; +} +.u-page .deal .num.data-v-5d2f7987 { + margin-left: 8rpx; +} +.u-page .item.data-v-5d2f7987 { + margin: 30rpx; + background: #fff; + padding: 30rpx; + box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.08); + border-radius: 23rpx; +} +.u-page .item .title.data-v-5d2f7987 { + font-size: 30rpx; + color: #111827; + line-height: 46rpx; +} +.u-page .tagsbox.data-v-5d2f7987 { + margin-top: 20rpx; + display: flex; + flex-wrap: wrap; +} +.u-page .tagsbox .tag.data-v-5d2f7987 { + padding: 0 10rpx; + margin-right: 16rpx; + height: 46rpx; + line-height: 46rpx; + text-align: center; + background: rgba(60, 199, 192, 0.1); + border-radius: 8rpx; + font-weight: 400; + font-size: 24rpx; + color: #3cc7c0; +} +.detail.data-v-5d2f7987 { + background: #f9f9f9; + padding: 12rpx 30rpx; +} +.detail .desc.data-v-5d2f7987 { + font-size: 26rpx; + color: #4b5563; + line-height: 40rpx; +} +.detail .red.data-v-5d2f7987 { + color: #FF0000; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/sickList/sickList.js b/unpackage/dist/dev/mp-weixin/pages/sickList/sickList.js new file mode 100644 index 0000000..e4a0ecd --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/sickList/sickList.js @@ -0,0 +1,215 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const api_api = require("../../api/api.js"); +const utils_navTo = require("../../utils/navTo.js"); +const common_assets = require("../../common/assets.js"); +if (!Array) { + const _easycom_up_radio2 = common_vendor.resolveComponent("up-radio"); + const _easycom_up_radio_group2 = common_vendor.resolveComponent("up-radio-group"); + const _easycom_up_dropdown_item2 = common_vendor.resolveComponent("up-dropdown-item"); + const _easycom_up_dropdown2 = common_vendor.resolveComponent("up-dropdown"); + const _easycom_up__image2 = common_vendor.resolveComponent("up--image"); + const _easycom_z_paging2 = common_vendor.resolveComponent("z-paging"); + (_easycom_up_radio2 + _easycom_up_radio_group2 + _easycom_up_dropdown_item2 + _easycom_up_dropdown2 + _easycom_up__image2 + _easycom_z_paging2)(); +} +const _easycom_up_radio = () => "../../node-modules/uview-plus/components/u-radio/u-radio.js"; +const _easycom_up_radio_group = () => "../../node-modules/uview-plus/components/u-radio-group/u-radio-group.js"; +const _easycom_up_dropdown_item = () => "../../node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.js"; +const _easycom_up_dropdown = () => "../../node-modules/uview-plus/components/u-dropdown/u-dropdown.js"; +const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js"; +const _easycom_z_paging = () => "../../uni_modules/z-paging/components/z-paging/z-paging.js"; +if (!Math) { + (navBarSearch + _easycom_up_radio + _easycom_up_radio_group + _easycom_up_dropdown_item + _easycom_up_dropdown + _easycom_up__image + _easycom_z_paging)(); +} +const navBarSearch = () => "../../components/navBarSearch/navBarSearch.js"; +const _sfc_main = { + __name: "sickList", + setup(__props) { + const paging = common_vendor.ref(null); + const uDropdownRef = common_vendor.ref(null); + const dataList = common_vendor.ref([]); + const total = common_vendor.ref(0); + common_vendor.ref(""); + const keyWord = common_vendor.ref(""); + common_vendor.ref(true); + const type = common_vendor.ref("doctor"); + const dropTitle = common_vendor.ref("更新时间"); + const navName = common_vendor.ref("疾病临床病例库"); + const orderFilter = common_vendor.ref("1"); + const options = common_vendor.ref([ + { + label: "更新时间", + value: "1" + }, + { + label: "疾病名称", + value: "2" + }, + { + label: "病例数", + value: "3" + } + ]); + const order = common_vendor.reactive({ + updated_at: "desc" + }); + common_vendor.onLoad((options2) => { + if (options2.type == "hospital") { + type.value = "hospital"; + } + keyWord.value = options2.name; + if (options2.name) { + navName.value = options2.name + "临床病例库"; + } + if ((options2.name = "医生") && !options2.id) { + keyWord.value = ""; + } + if (options2.order == "new") { + order.push_date = "asc"; + } + if (options2.order == "read") { + order.article_num = "desc"; + } + }); + common_vendor.onShow(() => { + var _a; + (_a = paging.value) == null ? void 0 : _a.refresh(); + }); + const changeDate = (e) => { + if (e == 1) { + order.updated_at = "desc"; + order.label_name = ""; + order.article_num = ""; + dropTitle.value = "更新时间"; + } else if (e == 2) { + order.updated_at = ""; + order.label_name = "asc"; + order.article_num = ""; + dropTitle.value = "疾病名称"; + } else if (e == 3) { + order.updated_at = ""; + order.label_name = ""; + order.article_num = "desc"; + dropTitle.value = "病例数"; + } + orderFilter.value = e; + uDropdownRef.value.close(); + paging.value.reload(); + }; + const formatdate = (date) => { + return common_vendor.dayjs(date).format("YYYY-MM-DD"); + }; + const searchList = async (params) => { + let searchForm = { + label_name: keyWord.value + }; + if (!order.article_num) { + delete order.article_num; + } + if (!order.updated_at) { + delete order.updated_at; + } + if (!order.label_name) { + delete order.label_name; + } + if (order.article_num || order.updated_at || order.label_name) { + searchForm.order = order; + } + api_api.api.getSearchLabel({ + ...searchForm, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + }).catch((err) => { + paging.value.complete(false); + }); + }; + const queryList = (pageNo, pageSize) => { + const params = { + page: pageNo, + page_size: pageSize + }; + searchList(params); + }; + const goDetail = (id, name) => { + let url = `/pages/search/search?case_id=${id}&case_name=${name}`; + utils_navTo.navTo({ + url + }); + }; + const changeWord = (value) => { + navName.value = "疾病临床病例库"; + keyWord.value = value; + dataList.value = []; + order.updated_at = "desc"; + order.article_num = ""; + order.label_name = ""; + paging.value.reload(); + }; + return (_ctx, _cache) => { + return { + a: common_vendor.o(changeWord), + b: common_vendor.p({ + searchWord: keyWord.value, + navName: navName.value, + type: "case" + }), + c: common_vendor.f(options.value, (item, k0, i0) => { + return { + a: "55f9e2cf-5-" + i0 + ",55f9e2cf-4", + b: common_vendor.p({ + activeColor: "#3CC7C0", + label: item.label, + name: item.value + }), + c: item.value, + d: common_vendor.n(orderFilter.value == item.value ? "active" : "") + }; + }), + d: common_vendor.o(changeDate), + e: common_vendor.o(($event) => orderFilter.value = $event), + f: common_vendor.p({ + iconPlacement: "right", + placement: "column", + modelValue: orderFilter.value + }), + g: common_vendor.p({ + title: dropTitle.value + }), + h: common_vendor.sr(uDropdownRef, "55f9e2cf-2,55f9e2cf-0", { + "k": "uDropdownRef" + }), + i: common_vendor.f(dataList.value, (item, index, i0) => { + return { + a: common_vendor.t(item.label_name), + b: common_vendor.t(item.video_num + item.article_num), + c: "55f9e2cf-6-" + i0 + ",55f9e2cf-0", + d: common_vendor.t(formatdate(item.last_push_date)), + e: index, + f: common_vendor.o(($event) => goDetail(item.label_iden, item.label_name), index) + }; + }), + j: common_vendor.p({ + src: common_vendor.unref(common_assets.arrowrightImg), + width: "32rpx", + height: "32rpx" + }), + k: common_vendor.sr(paging, "55f9e2cf-0", { + "k": "paging" + }), + l: common_vendor.o(queryList), + m: common_vendor.o(($event) => dataList.value = $event), + n: common_vendor.p({ + ["inside-more"]: true, + ["loading-more-no-more-text"]: "咱也是有底线的!", + ["auto-show-back-to-top"]: true, + modelValue: dataList.value + }) + }; + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-55f9e2cf"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/sickList/sickList.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/sickList/sickList.json b/unpackage/dist/dev/mp-weixin/pages/sickList/sickList.json new file mode 100644 index 0000000..e526357 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/sickList/sickList.json @@ -0,0 +1,13 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "up-radio": "../../node-modules/uview-plus/components/u-radio/u-radio", + "up-radio-group": "../../node-modules/uview-plus/components/u-radio-group/u-radio-group", + "up-dropdown-item": "../../node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item", + "up-dropdown": "../../node-modules/uview-plus/components/u-dropdown/u-dropdown", + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "z-paging": "../../uni_modules/z-paging/components/z-paging/z-paging", + "nav-bar-search": "../../components/navBarSearch/navBarSearch" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/sickList/sickList.wxml b/unpackage/dist/dev/mp-weixin/pages/sickList/sickList.wxml new file mode 100644 index 0000000..557c21f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/sickList/sickList.wxml @@ -0,0 +1 @@ +{{item.a}} 病例数:{{item.b}}更新时间:{{item.d}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/sickList/sickList.wxss b/unpackage/dist/dev/mp-weixin/pages/sickList/sickList.wxss new file mode 100644 index 0000000..3ce707d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/sickList/sickList.wxss @@ -0,0 +1,293 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.dropcontent.data-v-55f9e2cf { + padding-top: 40rpx; + padding-bottom: 20rpx; + background-color: #fff; +} +.dropcontent.data-v-55f9e2cf .u-radio { + margin-bottom: 6px !important; + margin-top: 16px !important; +} +.dropcontent .column.data-v-55f9e2cf { + padding: 0 30rpx; + border-top: 2rpx solid #e5e7eb; +} +.dropcontent .column.data-v-55f9e2cf .u-radio__text { + color: #333 !important; +} +.dropcontent .column.active.data-v-55f9e2cf .u-radio__text { + color: #3CC7C0 !important; +} +.votepop .confirm.data-v-55f9e2cf { + margin: 39rpx 30rpx 0; + height: 92rpx; + background: #3cc7c0; + border-radius: 15rpx; + display: flex; + align-items: center; + font-size: 31rpx; + color: #ffffff; + justify-content: center; +} +.votepop .del.data-v-55f9e2cf { + margin: 30rpx 30rpx 30rpx; + height: 92rpx; + background: #fff; + border-radius: 15rpx; + font-size: 31rpx; + color: #666666; + display: flex; + align-items: center; + justify-content: center; +} +.votepop .tips.data-v-55f9e2cf { + margin-top: 30rpx; + font-size: 27rpx; + color: #9ca3af; + line-height: 38rpx; + padding: 0 30rpx; +} +.votepop .add.data-v-55f9e2cf { + margin: 0 30rpx; + display: flex; + align-items: center; + height: 92rpx; + justify-content: center; + background: #f5f5f5; + border-radius: 15rpx; + font-size: 31rpx; + color: #4b5563; +} +.votepop .add .desc.data-v-55f9e2cf { + margin-left: 10rpx; +} +.votepop .titlebox.data-v-55f9e2cf { + padding: 0 30rpx; + height: 86rpx; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 2rpx solid #f3f4f6; +} +.votepop .titlebox .left.data-v-55f9e2cf { + font-size: 31rpx; + color: #4b5563; +} +.votepop .titlebox .right.data-v-55f9e2cf { + font-size: 31rpx; + color: #3cc7c0; +} +.votepop .votecon.data-v-55f9e2cf { + max-height: calc(100vh - 530rpx); + overflow-y: scroll; +} +.votepop .votecon .row.data-v-55f9e2cf { + display: flex; + align-items: center; +} +.votepop .votecon .row .iconbox.data-v-55f9e2cf { + margin-left: 15rpx; + align-items: center; +} +.votepop .votecon .titlebox.data-v-55f9e2cf { + border: none; + margin: 30rpx 0 20rpx; +} +.votepop .votecon .titlebox .title.data-v-55f9e2cf { + font-size: 31rpx; + color: #111827; +} +.votepop .votecon .titlebox .desc.data-v-55f9e2cf { + font-size: 27rpx; + color: #9ca3af; +} +.casepop.data-v-55f9e2cf { + display: flex; + flex-direction: column; + max-height: calc(100vh - 400rpx); +} +.casepop .continue.data-v-55f9e2cf { + color: #2878ff !important; +} +.casecon.data-v-55f9e2cf { + flex: 1; + overflow-y: scroll; + padding-top: 10rpx; + min-height: 350rpx; +} +.casecon .column.data-v-55f9e2cf { + padding: 0 30rpx; + border-bottom: 2rpx solid #e5e7eb; +} +.databox.data-v-55f9e2cf { + height: 162rpx; + background: #ffffff; + display: flex; + margin-bottom: 20rpx; + justify-content: space-between; +} +.databox .cell.data-v-55f9e2cf { + flex: 1; + padding: 35rpx 0; + text-align: center; +} +.databox .cell .num.data-v-55f9e2cf { + font-size: 38rpx; + color: #3cc7c0; +} +.databox .cell .name.data-v-55f9e2cf { + margin-top: 18rpx; + font-size: 28rpx; + color: #4b5563; +} +.listbox.data-v-55f9e2cf { + background: #F8F9FA; + overflow: hidden; +} +.filterbox.data-v-55f9e2cf { + display: flex; + height: 128rpx; + background: #fff; + border-bottom: 2rpx solid rgba(0, 0, 0, 0.08); + align-items: center; + position: relative; +} +.filterbox .type.data-v-55f9e2cf { + position: absolute; + left: 30rpx; + top: 24rpx; + display: flex; + justify-content: center; + align-items: center; + background: #F3F4F6; + border-radius: 15rpx; + height: 74rpx; + padding: 0 25rpx; + z-index: 2; +} +.u-page.data-v-55f9e2cf .z-paging-content-fixed { + background: #F8F9FA !important; +} +.u-page.data-v-55f9e2cf .u-flex { + display: flex; + flex-direction: row; + overflow: hidden; +} +.u-page.data-v-55f9e2cf .u-image { + background: none !important; +} +.u-page.data-v-55f9e2cf .u-dropdown__menu { + background: #fff; + z-index: 1; + margin-left: 0rpx; +} +.u-page.data-v-55f9e2cf .u-dropdown__menu__item__text { + font-size: 14px !important; + color: #3CC7C0 !important; +} +.u-page.data-v-55f9e2cf .u-dropdown__menu__item { + height: 74rpx; + padding: 0 20rpx; + background: #F3F4F6; + border-radius: 15rpx; + flex: none; + margin-left: 30rpx; +} +.u-page .deal.data-v-55f9e2cf { + margin-top: 20rpx; + display: flex; + color: #6b7280; + background: #fff; + font-size: 24rpx; + justify-content: space-between; +} +.u-page .deal .left.data-v-55f9e2cf { + display: flex; + align-items: center; + font-size: 27rpx; +} +.u-page .deal .left .count.data-v-55f9e2cf { + display: flex; + align-items: center; +} +.u-page .deal .collect.data-v-55f9e2cf { + display: flex; + align-items: center; +} +.u-page .deal .eyebox.data-v-55f9e2cf { + width: 160rpx; + display: flex; + align-items: center; +} +.u-page .deal .time.data-v-55f9e2cf { + display: flex; + align-items: center; +} +.u-page .deal .num.data-v-55f9e2cf { + margin-left: 8rpx; +} +.u-page .item.data-v-55f9e2cf { + margin: 30rpx; + background: #fff; + padding: 30rpx; + box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.08); + border-radius: 23rpx; +} +.u-page .item .title.data-v-55f9e2cf { + font-size: 30rpx; + color: #111827; + line-height: 46rpx; +} +.u-page .tagsbox.data-v-55f9e2cf { + margin-top: 20rpx; + display: flex; + flex-wrap: wrap; +} +.u-page .tagsbox .tag.data-v-55f9e2cf { + padding: 0 10rpx; + margin-right: 16rpx; + height: 46rpx; + line-height: 46rpx; + text-align: center; + background: rgba(60, 199, 192, 0.1); + border-radius: 8rpx; + font-weight: 400; + font-size: 24rpx; + color: #3cc7c0; +} +.detail.data-v-55f9e2cf { + background: #f9f9f9; + padding: 12rpx 30rpx; +} +.detail .desc.data-v-55f9e2cf { + font-size: 26rpx; + color: #4b5563; + line-height: 40rpx; +} +.detail .red.data-v-55f9e2cf { + color: #FF0000; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/specialList/specialList.js b/unpackage/dist/dev/mp-weixin/pages/specialList/specialList.js new file mode 100644 index 0000000..9633785 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/specialList/specialList.js @@ -0,0 +1,613 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const common_assets = require("../../common/assets.js"); +const api_api = require("../../api/api.js"); +const utils_navTo = require("../../utils/navTo.js"); +if (!Array) { + const _easycom_navBarSearch2 = common_vendor.resolveComponent("navBarSearch"); + const _easycom_up__image2 = common_vendor.resolveComponent("up--image"); + const _easycom_up_radio2 = common_vendor.resolveComponent("up-radio"); + const _easycom_up_radio_group2 = common_vendor.resolveComponent("up-radio-group"); + const _easycom_up_dropdown_item2 = common_vendor.resolveComponent("up-dropdown-item"); + const _easycom_up_dropdown2 = common_vendor.resolveComponent("up-dropdown"); + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + const _easycom_z_paging2 = common_vendor.resolveComponent("z-paging"); + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_up_steps_item2 = common_vendor.resolveComponent("up-steps-item"); + const _easycom_up_steps2 = common_vendor.resolveComponent("up-steps"); + const _easycom_up_popup2 = common_vendor.resolveComponent("up-popup"); + const _easycom_up_overlay2 = common_vendor.resolveComponent("up-overlay"); + (_easycom_navBarSearch2 + _easycom_up__image2 + _easycom_up_radio2 + _easycom_up_radio_group2 + _easycom_up_dropdown_item2 + _easycom_up_dropdown2 + _easycom_up_icon2 + _easycom_z_paging2 + _easycom_u_icon2 + _easycom_up_steps_item2 + _easycom_up_steps2 + _easycom_up_popup2 + _easycom_up_overlay2)(); +} +const _easycom_navBarSearch = () => "../../components/navBarSearch/navBarSearch.js"; +const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js"; +const _easycom_up_radio = () => "../../node-modules/uview-plus/components/u-radio/u-radio.js"; +const _easycom_up_radio_group = () => "../../node-modules/uview-plus/components/u-radio-group/u-radio-group.js"; +const _easycom_up_dropdown_item = () => "../../node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.js"; +const _easycom_up_dropdown = () => "../../node-modules/uview-plus/components/u-dropdown/u-dropdown.js"; +const _easycom_up_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_z_paging = () => "../../uni_modules/z-paging/components/z-paging/z-paging.js"; +const _easycom_u_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_up_steps_item = () => "../../node-modules/uview-plus/components/u-steps-item/u-steps-item.js"; +const _easycom_up_steps = () => "../../node-modules/uview-plus/components/u-steps/u-steps.js"; +const _easycom_up_popup = () => "../../node-modules/uview-plus/components/u-popup/u-popup.js"; +const _easycom_up_overlay = () => "../../node-modules/uview-plus/components/u-overlay/u-overlay.js"; +if (!Math) { + (_easycom_navBarSearch + _easycom_up__image + _easycom_up_radio + _easycom_up_radio_group + _easycom_up_dropdown_item + _easycom_up_dropdown + _easycom_up_icon + _easycom_z_paging + _easycom_u_icon + _easycom_up_steps_item + _easycom_up_steps + _easycom_up_popup + _easycom_up_overlay)(); +} +const _sfc_main = { + __name: "specialList", + setup(__props) { + const user_id = common_vendor.ref(""); + const showModal = common_vendor.ref(false); + const showDeal = common_vendor.ref(false); + const is_selected = common_vendor.ref(0); + const isMine = common_vendor.ref(false); + const paging = common_vendor.ref(null); + const dataList = common_vendor.ref([]); + const total = common_vendor.ref(0); + const keyWord = common_vendor.ref(""); + const vote = common_vendor.ref(null); + const showNum = common_vendor.ref(false); + const label_iden = common_vendor.ref(""); + const dropTitle = common_vendor.ref("发布时间"); + const orderFilter = common_vendor.ref("1"); + const uDropdownRef = common_vendor.ref(null); + const dealId = common_vendor.ref(""); + const options = common_vendor.ref([ + { + label: "发布时间", + value: "1" + }, + { + label: "互动更新时间", + value: "2" + }, + { + label: "互动数", + value: "3" + } + ]); + common_vendor.ref(true); + const order = common_vendor.reactive({ + read_num: "", + push_date: "desc" + }); + const showCase = common_vendor.ref(false); + common_vendor.ref(false); + const freshKey = common_vendor.ref(0); + const caseValue1 = common_vendor.reactive({ + value: "", + name: "" + }); + const caseValue2 = common_vendor.reactive({ + value: "", + name: "" + }); + const caseValue3 = common_vendor.reactive({ + value: "", + name: "" + }); + const level = common_vendor.ref(1); + const labelObj = common_vendor.reactive({ + list1: [], + list2: [], + list3: [] + }); + const openCaseLevel = (lev) => { + freshKey.value++; + level.value = lev; + if (lev == 1) { + caseValue2.name = ""; + caseValue2.value = ""; + labelObj.list2 = []; + } else if (lev == 2) { + labelObj.list3 = []; + caseValue3.name = ""; + caseValue3.value = ""; + } + }; + const groupChange1 = (e) => { + caseValue1.value = e; + for (var i = 0; i < labelObj.list1.length; i++) { + if (labelObj.list1[i].app_iden == caseValue1.value) { + caseValue1.name = labelObj.list1[i].label_name; + break; + } + } + getCaseLabel(2, e); + }; + const groupChange2 = (e) => { + caseValue2.value = e; + for (var i = 0; i < labelObj.list2.length; i++) { + if (labelObj.list2[i].app_iden == caseValue2.value) { + caseValue2.name = labelObj.list2[i].label_name; + break; + } + } + getCaseLabel(3, e); + }; + const groupChange3 = (e) => { + caseValue3.value = e; + level.value = 3; + for (var i = 0; i < labelObj.list3.length; i++) { + if (labelObj.list3[i].app_iden == caseValue3.value) { + caseValue3.name = labelObj.list3[i].label_name; + break; + } + } + }; + const getCaseLabel = (lev, pid = 0) => { + api_api.api.getCaseLabel({ + pId: pid + }).then((res) => { + level.value = lev; + if (lev == 1) { + labelObj.list1 = res.data.data; + } else if (lev == 2) { + labelObj.list2 = res.data.data; + if (res.data.data.length == 0) { + level.value = 1; + } + } else if (lev == 3) { + labelObj.list3 = res.data.data; + if (res.data.data.length == 0) { + level.value = 2; + } + } + }); + }; + const openCase = () => { + showCase.value = true; + }; + const confirmCase = () => { + if (level.value == 1 && caseValue1.value == "") { + common_vendor.index.showToast({ title: "请选择疾病选项", icon: "none" }); + return false; + } + if (level.value == 1) { + label_iden.value = caseValue1.value; + } + if (level.value == 2) { + if (!caseValue2.value) { + label_iden.value = caseValue1.value; + } else { + label_iden.value = caseValue2.value; + } + } + if (level.value == 3) { + if (!caseValue3.value) { + label_iden.value = caseValue2.value; + } else { + label_iden.value = caseValue3.value; + } + } + paging.value.reload(); + showCase.value = false; + }; + const closeCase = () => { + showCase.value = false; + }; + const openDeal = (id, voteObj) => { + showDeal.value = true; + dealId.value = id; + vote.value = voteObj; + common_vendor.index.__f__("log", "at pages/specialList/specialList.vue:504", id); + }; + const alertDel = () => { + showDeal.value = false; + showModal.value = true; + }; + const goEdit = () => { + showDeal.value = false; + if (vote.value && vote.value.is_have_voted != 1) { + common_vendor.index.showToast({ + icon: "none", + title: "不可编辑" + }); + return false; + } + utils_navTo.navTo({ + url: "/pages/publish/publish?exchange_id=" + dealId.value + }); + }; + const htmlToText = (html) => { + return html.replace(/<[^>]*>/g, "").replace(/ /gi, " ").replace(//gi, "\n").replace(/]*>/gi, "").replace(/]*>[\s\S]*?/gi, ""); + }; + const confirmDel = () => { + api_api.api.delExchange(dealId.value).then((res) => { + common_vendor.index.showToast({ + title: "删除成功", + icon: "none", + duration: 2e3 + }); + }); + let index = dataList.value.findIndex((item) => item.exchange_id === dealId.value); + dataList.value.splice(index, 1); + showModal.value = false; + }; + const closeDealPop = () => { + showDeal.value = false; + }; + const formatdate = (date) => { + return common_vendor.dayjs(date).format("YYYY-MM-DD"); + }; + common_vendor.onLoad((options2) => { + if (options2.keyWord) { + keyWord.value = options2.keyWord; + } + if (options2.userId) { + user_id.value = options2.userId; + } + if (options2.is_selected) { + is_selected.value = options2.is_selected; + } + if (options2.type == "mine") { + isMine.value = true; + } + if (options2.from == "talkHome") { + showNum.value = true; + } + getCaseLabel(1, 0); + }); + common_vendor.onShow(() => { + var _a; + (_a = paging.value) == null ? void 0 : _a.refresh(); + }); + const changeDate = (e) => { + if (e == 1) { + order.push_date = "desc"; + order.comment_num = ""; + order.last_comment_time = ""; + dropTitle.value = "发布时间"; + } else if (e == 2) { + order.push_date = ""; + order.comment_num = ""; + order.last_comment_time = "desc"; + dropTitle.value = "互动更新时间"; + } else { + order.push_date = ""; + order.last_comment_time = ""; + order.comment_num = "desc"; + dropTitle.value = "互动数"; + } + orderFilter.value = e; + uDropdownRef.value.close(); + paging.value.reload(); + }; + const videoErrorCallback = (e) => { + common_vendor.index.showModal({ + content: e.target.errMsg, + showCancel: false + }); + }; + const changeWord = (val) => { + if (!val) + return false; + showNum.value = true; + keyWord.value = val; + paging.value.reload(); + }; + const goDetail = (id) => { + utils_navTo.navTo({ + url: `/pages/detail/detail?id=${id}&type=exchange` + }); + }; + const queryList = (pageNo, pageSize) => { + common_vendor.index.__f__("log", "at pages/specialList/specialList.vue:615", 666666); + const params = { + page: pageNo, + page_size: pageSize + }; + searchList(params); + }; + const searchList = async (params) => { + let searchForm = { + keyword: keyWord.value, + user_id: user_id.value, + label_iden: label_iden.value + }; + if (!label_iden.value) { + delete searchForm.label_iden; + } + if (Number(is_selected.value)) { + searchForm.is_selected = Number(is_selected.value); + } + if (!order.comment_num) { + delete order.comment_num; + } + if (!order.last_comment_time) { + delete order.last_comment_time; + } + if (!label_iden.value) { + delete searchForm.label_iden; + } + if (!order.push_date) { + delete order.push_date; + } + if (order.comment_num || order.push_date || order.last_comment_time) { + searchForm.order = order; + } + api_api.api.searchExchage({ + ...searchForm, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + }).catch((err) => { + paging.value.complete(false); + }); + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.o(changeWord), + b: common_vendor.p({ + searchWord: keyWord.value, + navName: "肝胆相照病例交流园地" + }), + c: showNum.value + }, showNum.value ? common_vendor.e({ + d: common_vendor.t(total.value), + e: keyWord.value + }, keyWord.value ? { + f: common_vendor.t(keyWord.value) + } : {}) : {}, { + g: common_vendor.p({ + src: common_vendor.unref(common_assets.caseImg), + width: "31rpx", + height: "31rpx" + }), + h: label_iden.value ? 1 : "", + i: common_vendor.o(openCase), + j: common_vendor.f(options.value, (item, k0, i0) => { + return { + a: "b2cb78f4-6-" + i0 + ",b2cb78f4-5", + b: common_vendor.p({ + activeColor: "#3CC7C0", + label: item.label, + name: item.value + }), + c: item.value, + d: common_vendor.n(orderFilter.value == item.value ? "active" : "") + }; + }), + k: common_vendor.o(changeDate), + l: common_vendor.o(($event) => orderFilter.value = $event), + m: common_vendor.p({ + iconPlacement: "right", + placement: "column", + modelValue: orderFilter.value + }), + n: common_vendor.p({ + title: dropTitle.value + }), + o: common_vendor.sr(uDropdownRef, "b2cb78f4-3,b2cb78f4-0", { + "k": "uDropdownRef" + }), + p: common_vendor.f(dataList.value, (item, k0, i0) => { + return common_vendor.e({ + a: common_vendor.t(item.exchange_title), + b: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id) + }, isMine.value ? { + c: common_vendor.o(($event) => openDeal(item.exchange_id, item.case_exchange_vote), item.exchange_id) + } : {}, { + d: "b2cb78f4-7-" + i0 + ",b2cb78f4-0", + e: common_vendor.p({ + src: item.avatar ? item.avatar : common_vendor.unref(common_assets.headImg), + width: "46rpx", + height: "46rpx", + radius: "50%" + }), + f: common_vendor.t(item.user_name), + g: common_vendor.t(item.hospital_name), + h: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id), + i: common_vendor.t(htmlToText(item.exchange_content)), + j: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id), + k: item.exchange_content_image && item.exchange_content_image.length > 0 + }, item.exchange_content_image && item.exchange_content_image.length > 0 ? { + l: common_vendor.f(item.exchange_content_image, (unit, k1, i1) => { + return { + a: "b2cb78f4-8-" + i0 + "-" + i1 + ",b2cb78f4-0", + b: common_vendor.p({ + src: unit, + radius: "10", + width: "220rpx", + height: "220rpx" + }) + }; + }), + m: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id) + } : {}, { + n: item.exchange_content_video && item.exchange_content_video.length > 0 + }, item.exchange_content_video && item.exchange_content_video.length > 0 ? { + o: common_vendor.f(item.exchange_content_video, (videoCell, index, i1) => { + return { + a: index, + b: videoCell, + c: common_vendor.o(videoErrorCallback, index) + }; + }), + p: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id) + } : {}, { + q: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id), + r: item.label && item.label.length > 0 + }, item.label && item.label.length > 0 ? { + s: common_vendor.f(item.label, (cell, k1, i1) => { + return { + a: common_vendor.t(cell.label_name), + b: cell.exchange_label_id + }; + }), + t: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id) + } : {}, { + v: "b2cb78f4-9-" + i0 + ",b2cb78f4-0", + w: common_vendor.t(item.read_num), + x: item.collect_num > 0 + }, item.collect_num > 0 ? { + y: "b2cb78f4-10-" + i0 + ",b2cb78f4-0", + z: common_vendor.p({ + name: "heart", + color: "#4B5563", + size: "28rpx" + }), + A: common_vendor.t(item.collect_num) + } : {}, { + B: item.comment_num > 0 + }, item.comment_num > 0 ? { + C: "b2cb78f4-11-" + i0 + ",b2cb78f4-0", + D: common_vendor.p({ + name: "chat", + color: "#4B5563", + size: "28rpx" + }), + E: common_vendor.t(item.comment_num) + } : {}, { + F: "b2cb78f4-12-" + i0 + ",b2cb78f4-0", + G: common_vendor.t(formatdate(item.push_date)), + H: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id), + I: item.exchange_id + }); + }), + q: isMine.value, + r: common_vendor.p({ + name: "eye", + color: "#4B5563", + size: "28rpx" + }), + s: common_vendor.p({ + name: "clock", + color: "#4B5563", + size: "28rpx" + }), + t: common_vendor.sr(paging, "b2cb78f4-0", { + "k": "paging" + }), + v: common_vendor.o(queryList), + w: common_vendor.o(($event) => dataList.value = $event), + x: common_vendor.p({ + ["inside-more"]: true, + ["loading-more-no-more-text"]: "咱也是有底线的!", + ["auto-show-back-to-top"]: true, + modelValue: dataList.value + }), + y: common_vendor.o(closeCase), + z: common_vendor.o(confirmCase), + A: common_vendor.t(!caseValue1.name ? "请选择选项" : caseValue1.name), + B: common_vendor.p({ + name: "arrow-right" + }), + C: common_vendor.o(($event) => openCaseLevel("1")), + D: caseValue1.name && labelObj.list2.length > 0 + }, caseValue1.name && labelObj.list2.length > 0 ? { + E: common_vendor.t(!caseValue2.name ? "请选择选项" : caseValue2.name), + F: common_vendor.p({ + name: "arrow-right" + }), + G: common_vendor.o(($event) => openCaseLevel("2")) + } : {}, { + H: caseValue2.name && labelObj.list3.length > 0 + }, caseValue2.name && labelObj.list3.length > 0 ? { + I: common_vendor.t(!caseValue3.name ? "请选择选项" : caseValue3.name), + J: common_vendor.p({ + name: "arrow-right" + }), + K: common_vendor.o(($event) => openCaseLevel("3")) + } : {}, { + L: freshKey.value, + M: common_vendor.p({ + current: level.value - 1, + direction: "column" + }), + N: common_vendor.f(labelObj.list1, (item, k0, i0) => { + return { + a: "b2cb78f4-22-" + i0 + ",b2cb78f4-21", + b: common_vendor.p({ + activeColor: "#3CC7C0 ", + label: item.label_name, + name: item.app_iden + }), + c: item.app_iden + }; + }), + O: common_vendor.o(groupChange1), + P: common_vendor.o(($event) => caseValue1.value = $event), + Q: common_vendor.p({ + name: "group1", + iconPlacement: "right", + placement: "column", + modelValue: caseValue1.value + }), + R: level.value == 1, + S: common_vendor.f(labelObj.list2, (item, k0, i0) => { + return { + a: "b2cb78f4-24-" + i0 + ",b2cb78f4-23", + b: common_vendor.p({ + activeColor: "#3CC7C0 ", + label: item.label_name, + name: item.app_iden + }), + c: item.app_iden + }; + }), + T: common_vendor.o(groupChange2), + U: common_vendor.o(($event) => caseValue2.value = $event), + V: common_vendor.p({ + name: "group2", + iconPlacement: "right", + placement: "column", + modelValue: caseValue2.value + }), + W: level.value == 2, + X: common_vendor.f(labelObj.list3, (item, k0, i0) => { + return { + a: "b2cb78f4-26-" + i0 + ",b2cb78f4-25", + b: common_vendor.p({ + activeColor: "#3CC7C0 ", + label: item.label_name, + name: item.app_iden + }), + c: item.app_iden + }; + }), + Y: common_vendor.o(groupChange3), + Z: common_vendor.o(($event) => caseValue3.value = $event), + aa: common_vendor.p({ + name: "group3", + iconPlacement: "right", + placement: "column", + modelValue: caseValue3.value + }), + ab: level.value == 3, + ac: common_vendor.o(closeCase), + ad: common_vendor.p({ + round: 10, + zIndex: "9", + closeOnClickOverlay: false, + show: showCase.value, + mode: "bottom" + }), + ae: common_vendor.o(goEdit), + af: common_vendor.o(alertDel), + ag: common_vendor.o(closeDealPop), + ah: common_vendor.p({ + zIndex: 60, + overlayStyle: { + zIndex: 59 + }, + show: showDeal.value, + round: 10, + mode: "bottom" + }), + ai: common_vendor.o(($event) => showModal.value = false), + aj: common_vendor.o(confirmDel), + ak: common_vendor.p({ + show: showModal.value, + ["mask-click-able"]: true + }) + }); + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-b2cb78f4"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/specialList/specialList.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/specialList/specialList.json b/unpackage/dist/dev/mp-weixin/pages/specialList/specialList.json new file mode 100644 index 0000000..dedc48f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/specialList/specialList.json @@ -0,0 +1,19 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "nav-bar-search": "../../components/navBarSearch/navBarSearch", + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "up-radio": "../../node-modules/uview-plus/components/u-radio/u-radio", + "up-radio-group": "../../node-modules/uview-plus/components/u-radio-group/u-radio-group", + "up-dropdown-item": "../../node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item", + "up-dropdown": "../../node-modules/uview-plus/components/u-dropdown/u-dropdown", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "z-paging": "../../uni_modules/z-paging/components/z-paging/z-paging", + "u-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "up-steps-item": "../../node-modules/uview-plus/components/u-steps-item/u-steps-item", + "up-steps": "../../node-modules/uview-plus/components/u-steps/u-steps", + "up-popup": "../../node-modules/uview-plus/components/u-popup/u-popup", + "up-overlay": "../../node-modules/uview-plus/components/u-overlay/u-overlay" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/specialList/specialList.wxml b/unpackage/dist/dev/mp-weixin/pages/specialList/specialList.wxml new file mode 100644 index 0000000..984b9f8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/specialList/specialList.wxml @@ -0,0 +1 @@ +检索到:{{d}}个病例检索词:{{f}}筛选{{item.a}}...{{item.f}}({{item.g}}){{item.i}}加载失败{{cell.a}}{{item.w}}{{item.A}}{{item.E}}{{item.G}}取消确定{{A}}{{E}}{{I}}编辑删除取消提示 是否删除该交流病例? 取消确定 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/specialList/specialList.wxss b/unpackage/dist/dev/mp-weixin/pages/specialList/specialList.wxss new file mode 100644 index 0000000..57ab904 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/specialList/specialList.wxss @@ -0,0 +1,547 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.dropcontent.data-v-b2cb78f4 { + padding-top: 40rpx; + padding-bottom: 20rpx; + background-color: #fff; +} +.dropcontent.data-v-b2cb78f4 .u-radio { + margin-bottom: 6px !important; + margin-top: 16px !important; +} +.dropcontent .column.data-v-b2cb78f4 { + padding: 0 30rpx; + border-top: 2rpx solid #e5e7eb; +} +.dropcontent .column.data-v-b2cb78f4 .u-radio__text { + color: #333 !important; +} +.dropcontent .column.active.data-v-b2cb78f4 .u-radio__text { + color: #3CC7C0 !important; +} +.stepbox.data-v-b2cb78f4 { + padding: 15rpx 30rpx; + border-bottom: 2rpx dotted #f3f4f6; +} +.stepbox.data-v-b2cb78f4 .u-steps-item__content { + margin-top: -5rpx !important; +} +.stepbox .slot-content.data-v-b2cb78f4 { + width: 100%; + margin-bottom: 25rpx; + justify-content: space-between; + align-items: center; + display: flex; +} +.dealbox .dealcell.data-v-b2cb78f4 { + display: flex; + align-items: center; + justify-content: center; + height: 112rpx; + font-size: 32rpx; + color: rgba(0, 0, 0, 0.9); + border-bottom: 2rpx solid #efefef; +} +.filterbox.data-v-b2cb78f4 { + display: flex; + height: 128rpx; + align-items: center; + position: relative; + border-bottom: 2rpx solid #f3f4f6; +} +.filterbox.data-v-b2cb78f4 .u-dropdown__menu__item__text { + font-size: 14px !important; + color: #3CC7C0 !important; +} +.filterbox .type.data-v-b2cb78f4 { + color: #606266; + font-size: 14px; + position: absolute; + left: 30rpx; + top: 24rpx; + display: flex; + justify-content: center; + align-items: center; + background: #F3F4F6; + border-radius: 15rpx; + height: 74rpx; + padding: 0 25rpx; + z-index: 2; +} +.detail.data-v-b2cb78f4 { + background: #f9f9f9; + padding: 12rpx 30rpx; +} +.detail .desc.data-v-b2cb78f4 { + font-size: 26rpx; + color: #4b5563; + line-height: 40rpx; +} +.detail .red.data-v-b2cb78f4 { + color: #ff0000; +} +.upage.data-v-b2cb78f4 { + display: flex; + flex-direction: column; + height: calc(100vh - 100rpx); +} +.upage.data-v-b2cb78f4 .u-flex { + display: flex; + flex-direction: row; + overflow: hidden; +} +.upage.data-v-b2cb78f4 .u-dropdown__menu { + background: #fff; + z-index: 1; + margin-left: 160rpx; +} +.upage.data-v-b2cb78f4 .u-dropdown__menu__item { + height: 74rpx; + padding: 0 20rpx; + background: #F3F4F6; + border-radius: 15rpx; + flex: none; + margin-left: 30rpx; +} +.box.data-v-b2cb78f4 { + flex: 1; + padding-bottom: 30rpx; + overflow-y: scroll; +} +.myVideo.data-v-b2cb78f4 { + width: 100%; + border-radius: 15rpx; +} +.deal.data-v-b2cb78f4 { + padding-top: 20rpx; + display: flex; + color: #4b5563; + font-size: 24rpx; + justify-content: space-between; +} +.deal .left.data-v-b2cb78f4 { + display: flex; + align-items: center; +} +.deal .left .item.data-v-b2cb78f4 { + width: 100rpx; +} +.deal .collect.data-v-b2cb78f4 { + display: flex; + align-items: center; +} +.deal .eyebox.data-v-b2cb78f4, +.deal .chat.data-v-b2cb78f4 { + display: flex; + align-items: center; +} +.deal .time.data-v-b2cb78f4 { + display: flex; + align-items: center; +} +.deal .num.data-v-b2cb78f4 { + margin-left: 8rpx; +} +.tagbox.data-v-b2cb78f4 { + margin-top: 24rpx; + display: flex; +} +.tagbox .tag.data-v-b2cb78f4 { + height: 54rpx; + padding: 0 28rpx; + background: #ecfaf9; + border-radius: 30rpx; + font-size: 27rpx; + color: #3cc7c0; + margin-right: 12rpx; + display: flex; + align-items: center; + justify-content: center; +} +.doctor.data-v-b2cb78f4 { + display: flex; + align-items: center; +} +.record.data-v-b2cb78f4 { + padding-top: 0rpx; +} +.record .list.data-v-b2cb78f4 { + margin: 30rpx 30rpx; +} +.record .list .name.data-v-b2cb78f4 { + padding: 20rpx 0 20rpx 15rpx; + font-size: 27rpx; + color: #333333; +} +.record .list .content.data-v-b2cb78f4 { + font-size: 27rpx; + color: #666666; + line-height: 38rpx; +} +.record .list .imgbox.data-v-b2cb78f4 { + display: flex; + margin-top: 24rpx; +} +.record .list .imgbox .imgcell.data-v-b2cb78f4 { + width: 220rpx; + height: 220rpx; + margin-right: 20rpx; +} +.record .list .imgbox .imgcell.data-v-b2cb78f4:last-child { + margin-right: 0; +} +.record.data-v-b2cb78f4 { + padding-top: 0rpx; +} +.record .list.data-v-b2cb78f4 { + margin: 8rpx 0rpx 0; +} +.record .list .cell.data-v-b2cb78f4 { + padding: 22rpx 30rpx; + border-bottom: 2rpx solid #f3f4f6; +} +.record .list .cell .circle.data-v-b2cb78f4 { + margin-top: 15rpx; + width: 15rpx; + height: 15rpx; + background: #3cc7c0; + border-radius: 50%; +} +.record .list .cell .title.data-v-b2cb78f4 { + margin-left: 10rpx; + font-size: 32rpx; + color: #000000; + line-height: 46rpx; + display: flex; + justify-content: space-between; + align-items: center; +} +.record .list .cell .title .dot.data-v-b2cb78f4 { + height: 40rpx; + display: flex; + align-items: center; + line-height: 40rpx; +} +.record .list .cell .title .titlecon.data-v-b2cb78f4 { + flex: 1; + margin-right: 20rpx; +} +.record .list .cell.data-v-b2cb78f4:last-child { + border-bottom: none; +} +.titlebox.data-v-b2cb78f4 { + margin: 0 30rpx; + display: flex; + justify-content: space-between; +} +.titlebox .more.data-v-b2cb78f4 { + display: flex; + align-items: center; +} +.titlebox .more .morename.data-v-b2cb78f4 { + margin-right: 10rpx; + font-size: 28rpx; + color: #3cc7c0; +} +.bar.data-v-b2cb78f4 { + height: 16rpx; + background: #f3f4f6; +} +.databox.data-v-b2cb78f4 { + height: 162rpx; + background: #ffffff; + display: flex; + padding: 0 30rpx; + justify-content: space-between; +} +.databox .cell.data-v-b2cb78f4 { + flex: 1; + padding: 35rpx 0; + text-align: center; +} +.databox .cell .num.data-v-b2cb78f4 { + font-size: 38rpx; + color: #3cc7c0; +} +.databox .cell .name.data-v-b2cb78f4 { + margin-top: 18rpx; + font-size: 28rpx; + color: #4b5563; +} +.casesdown.data-v-b2cb78f4 { + font-size: 14px; + color: #606266; + position: absolute; + left: 30rpx; + top: 24rpx; + display: flex; + justify-content: center; + align-items: center; + background: #F3F4F6; + border-radius: 15rpx; + height: 74rpx; + padding: 0 25rpx; + z-index: 2; +} +.votepop .confirm.data-v-b2cb78f4 { + margin: 39rpx 30rpx 0; + height: 92rpx; + background: #3cc7c0; + border-radius: 15rpx; + display: flex; + align-items: center; + font-size: 31rpx; + color: #ffffff; + justify-content: center; +} +.votepop .del.data-v-b2cb78f4 { + margin: 30rpx 30rpx 30rpx; + height: 92rpx; + background: #fff; + border-radius: 15rpx; + font-size: 31rpx; + color: #666666; + display: flex; + align-items: center; + justify-content: center; +} +.votepop .tips.data-v-b2cb78f4 { + margin-top: 30rpx; + font-size: 27rpx; + color: #9ca3af; + line-height: 38rpx; + padding: 0 30rpx; +} +.votepop .add.data-v-b2cb78f4 { + margin: 0 30rpx; + display: flex; + align-items: center; + height: 92rpx; + justify-content: center; + background: #f5f5f5; + border-radius: 15rpx; + font-size: 31rpx; + color: #4b5563; +} +.votepop .add .desc.data-v-b2cb78f4 { + margin-left: 10rpx; +} +.votepop .titlebox.data-v-b2cb78f4 { + padding: 0 30rpx; + margin: 0 !important; + height: 86rpx; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 2rpx solid #f3f4f6; +} +.votepop .titlebox .left.data-v-b2cb78f4 { + font-size: 31rpx; + color: #4b5563; +} +.votepop .titlebox .right.data-v-b2cb78f4 { + font-size: 31rpx; + color: #3cc7c0; +} +.votepop .votecon.data-v-b2cb78f4 { + max-height: calc(100vh - 530rpx); + overflow-y: scroll; +} +.votepop .votecon .row.data-v-b2cb78f4 { + display: flex; + align-items: center; +} +.votepop .votecon .row .iconbox.data-v-b2cb78f4 { + margin-left: 15rpx; + align-items: center; +} +.votepop .votecon .titlebox.data-v-b2cb78f4 { + border: none; + margin: 30rpx 0 20rpx !important; +} +.votepop .votecon .titlebox .title.data-v-b2cb78f4 { + font-size: 31rpx; + color: #111827; +} +.votepop .votecon .titlebox .desc.data-v-b2cb78f4 { + font-size: 27rpx; + color: #9ca3af; +} +.casepop.data-v-b2cb78f4 { + display: flex; + flex-direction: column; + max-height: calc(100vh - 400rpx); +} +.casepop .continue.data-v-b2cb78f4 { + color: #2878ff !important; +} +.casecon.data-v-b2cb78f4 { + flex: 1; + max-height: calc(100vh - 800rpx); + overflow-y: scroll; + padding-top: 22rpx; + padding-bottom: 20rpx; + min-height: 350rpx; +} +.casecon.data-v-b2cb78f4 .u-radio { + margin-bottom: 10px !important; + margin-top: 0px !important; +} +.casecon .column.data-v-b2cb78f4 { + padding: 0 30rpx; + border-bottom: 2rpx solid #e5e7eb; +} +.zanboxpop.data-v-b2cb78f4 { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} +.zanboxpop .zanwraper.data-v-b2cb78f4 { + width: 630rpx; + margin: 0 auto; + padding-bottom: 50rpx; + background: #f5f6f9; + border-radius: 16rpx; +} +.zanboxpop .zanwraper .title.data-v-b2cb78f4 { + margin-top: 48rpx; + text-align: center; + font-weight: 500; + font-size: 36rpx; + color: rgba(0, 0, 0, 0.85); +} +.zanboxpop .zanwraper .content.data-v-b2cb78f4 { + padding: 30rpx 0; + background: #f5f6f9; + text-align: center; +} +.zanboxpop .zanwraper .content.data-v-b2cb78f4 .imgstyle { + max-width: 100% !important; +} +.zanboxpop .zanwraper .content.data-v-b2cb78f4 ._block { + text-align: left !important; +} +.zanboxpop .zanwraper .count.data-v-b2cb78f4 { + margin-top: 24rpx; + display: flex; + align-items: center; + text-align: center; + justify-content: center; + font-weight: 400; + font-size: 28rpx; + color: rgba(0, 0, 0, 0.65); +} +.zanboxpop .zanwraper .count .num.data-v-b2cb78f4 { + color: #ff0000; + font-size: 32rpx; +} +.zanboxpop .zanwraper .count .earn.data-v-b2cb78f4 { + font-size: 32rpx; + color: #3cc7c0; +} +.zanboxpop .zanwraper .countbox.data-v-b2cb78f4 { + display: flex; + width: 100%; + margin: 30rpx 0px 40rpx; + padding: 0 40rpx; + justify-content: center; + box-sizing: border-box; +} +.zanboxpop .zanwraper .countbox .minus.data-v-b2cb78f4 { + flex-shrink: 0; + margin-left: 10rp; + width: 90rpx; + height: 90rpx; + font-size: 60rpx; + color: #333; + display: flex; + justify-content: center; + align-items: center; + background: #ffffff; + border-radius: 12rpx; + border: 2rpx solid #e9e9e9; +} +.zanboxpop .zanwraper .countbox .add.data-v-b2cb78f4 { + flex-shrink: 0; + width: 90rpx; + margin-left: 10rpx; + height: 90rpx; + font-size: 60rpx; + color: #333; + display: flex; + justify-content: center; + align-items: center; + color: #fff; + background: #3cc7c0; + border-radius: 12rpx; + border: 2rpx solid #3cc7c0; +} +.zanboxpop .zanwraper .countbox.data-v-b2cb78f4 .u-input__content__field-wrapper__field { + height: 60rpx; + font-size: 34rpx !important; + text-align: center !important; +} +.zanboxpop .zanwraper .countbox.data-v-b2cb78f4 .u-input { + background: #f2f2f2; + width: 200rpx !important; + flex: none; +} +.zanboxpop .zanwraper .countbox.data-v-b2cb78f4 .u-input--radius { + border-radius: 24rrpx; +} +.zanboxpop .zanwraper .btnbox.data-v-b2cb78f4 { + margin: 0px 40rpx 0px; + display: flex; + justify-content: space-between; +} +.zanboxpop .zanwraper .btnbox .cancle.data-v-b2cb78f4 { + color: rgba(0, 0, 0, 0.3); + width: 256rpx; + height: 88rpx; + background: #f5f6f9; + border-radius: 25px; + border: 2rpx solid rgba(0, 0, 0, 0.15); + font-weight: 500; + font-size: 32rpx; + color: rgba(0, 0, 0, 0.85); + display: flex; + justify-content: center; + align-items: center; +} +.zanboxpop .zanwraper .btnbox .ok.data-v-b2cb78f4 { + color: #fff; + width: 256rpx; + height: 88rpx; + background: #3cc7c0; + border-radius: 25px; + border: 2rpx solid #3cc7c0; + font-weight: 500; + font-size: 32rpx; + display: flex; + justify-content: center; + align-items: center; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/videoList/videoList.js b/unpackage/dist/dev/mp-weixin/pages/videoList/videoList.js new file mode 100644 index 0000000..79149a1 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/videoList/videoList.js @@ -0,0 +1,537 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const api_api = require("../../api/api.js"); +const utils_navTo = require("../../utils/navTo.js"); +const common_assets = require("../../common/assets.js"); +if (!Array) { + const _easycom_up__image2 = common_vendor.resolveComponent("up--image"); + const _easycom_up_radio2 = common_vendor.resolveComponent("up-radio"); + const _easycom_up_radio_group2 = common_vendor.resolveComponent("up-radio-group"); + const _easycom_up_dropdown_item2 = common_vendor.resolveComponent("up-dropdown-item"); + const _easycom_up_dropdown2 = common_vendor.resolveComponent("up-dropdown"); + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + const _easycom_z_paging2 = common_vendor.resolveComponent("z-paging"); + const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon"); + const _easycom_up_steps_item2 = common_vendor.resolveComponent("up-steps-item"); + const _easycom_up_steps2 = common_vendor.resolveComponent("up-steps"); + const _easycom_up_popup2 = common_vendor.resolveComponent("up-popup"); + (_easycom_up__image2 + _easycom_up_radio2 + _easycom_up_radio_group2 + _easycom_up_dropdown_item2 + _easycom_up_dropdown2 + _easycom_up_icon2 + _easycom_z_paging2 + _easycom_u_icon2 + _easycom_up_steps_item2 + _easycom_up_steps2 + _easycom_up_popup2)(); +} +const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js"; +const _easycom_up_radio = () => "../../node-modules/uview-plus/components/u-radio/u-radio.js"; +const _easycom_up_radio_group = () => "../../node-modules/uview-plus/components/u-radio-group/u-radio-group.js"; +const _easycom_up_dropdown_item = () => "../../node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item.js"; +const _easycom_up_dropdown = () => "../../node-modules/uview-plus/components/u-dropdown/u-dropdown.js"; +const _easycom_up_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_z_paging = () => "../../uni_modules/z-paging/components/z-paging/z-paging.js"; +const _easycom_u_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js"; +const _easycom_up_steps_item = () => "../../node-modules/uview-plus/components/u-steps-item/u-steps-item.js"; +const _easycom_up_steps = () => "../../node-modules/uview-plus/components/u-steps/u-steps.js"; +const _easycom_up_popup = () => "../../node-modules/uview-plus/components/u-popup/u-popup.js"; +if (!Math) { + (navBarSearch + _easycom_up__image + _easycom_up_radio + _easycom_up_radio_group + _easycom_up_dropdown_item + _easycom_up_dropdown + _easycom_up_icon + _easycom_z_paging + _easycom_u_icon + _easycom_up_steps_item + _easycom_up_steps + _easycom_up_popup)(); +} +const navBarSearch = () => "../../components/navBarSearch/navBarSearch.js"; +const _sfc_main = { + __name: "videoList", + setup(__props) { + const paging = common_vendor.ref(null); + const dataList = common_vendor.ref([]); + const total = common_vendor.ref(0); + const keyWord = common_vendor.ref(""); + const isArticle = common_vendor.ref(false); + const hospital_id = common_vendor.ref(""); + const hospital_name = common_vendor.ref(""); + const doctor_id = common_vendor.ref(""); + const doctor_name = common_vendor.ref(""); + const numInfo = common_vendor.reactive({}); + const searchInfo = common_vendor.reactive({}); + const navName = common_vendor.ref("视频临床病例库"); + const dropTitle = common_vendor.ref("发布时间"); + const orderFilter = common_vendor.ref("1"); + const uDropdownRef = common_vendor.ref(null); + const label_iden = common_vendor.ref(null); + const options = common_vendor.ref([ + { + label: "发布时间", + value: "1" + }, + { + label: "阅读次数", + value: "2" + } + ]); + const isSearch = common_vendor.ref(false); + const order = common_vendor.reactive({ + read_num: "", + push_date: "desc" + }); + const showCase = common_vendor.ref(false); + common_vendor.ref(false); + const freshKey = common_vendor.ref(0); + const caseValue1 = common_vendor.reactive({ + value: "", + name: "" + }); + const caseValue2 = common_vendor.reactive({ + value: "", + name: "" + }); + const caseValue3 = common_vendor.reactive({ + value: "", + name: "" + }); + const level = common_vendor.ref(1); + const labelObj = common_vendor.reactive({ + list1: [], + list2: [], + list3: [] + }); + const openCaseLevel = (lev) => { + freshKey.value++; + level.value = lev; + if (lev == 1) { + caseValue2.name = ""; + caseValue2.value = ""; + labelObj.list2 = []; + } else if (lev == 2) { + labelObj.list3 = []; + caseValue3.name = ""; + caseValue3.value = ""; + } + }; + const groupChange1 = (e) => { + caseValue1.value = e; + for (var i = 0; i < labelObj.list1.length; i++) { + if (labelObj.list1[i].app_iden == caseValue1.value) { + caseValue1.name = labelObj.list1[i].label_name; + break; + } + } + getCaseLabel(2, e); + }; + const groupChange2 = (e) => { + caseValue2.value = e; + for (var i = 0; i < labelObj.list2.length; i++) { + if (labelObj.list2[i].app_iden == caseValue2.value) { + caseValue2.name = labelObj.list2[i].label_name; + break; + } + } + getCaseLabel(3, e); + }; + const groupChange3 = (e) => { + caseValue3.value = e; + level.value = 3; + for (var i = 0; i < labelObj.list3.length; i++) { + if (labelObj.list3[i].app_iden == caseValue3.value) { + caseValue3.name = labelObj.list3[i].label_name; + break; + } + } + }; + const getCaseLabel = (lev, pid = 0) => { + api_api.api.getCaseLabel({ + pId: pid + }).then((res) => { + level.value = lev; + if (lev == 1) { + labelObj.list1 = res.data.data; + } else if (lev == 2) { + labelObj.list2 = res.data.data; + if (res.data.data.length == 0) { + level.value = 1; + } + } else if (lev == 3) { + labelObj.list3 = res.data.data; + if (res.data.data.length == 0) { + level.value = 2; + } + } + }); + }; + const openCase = () => { + showCase.value = true; + }; + const confirmCase = () => { + if (level.value == 1 && caseValue1.value == "") { + common_vendor.index.showToast({ title: "请选择疾病选项", icon: "none" }); + return false; + } + if (level.value == 1) { + label_iden.value = caseValue1.value; + } + if (level.value == 2) { + if (!caseValue2.value) { + label_iden.value = caseValue1.value; + } else { + label_iden.value = caseValue2.value; + } + } + if (level.value == 3) { + if (!caseValue3.value) { + label_iden.value = caseValue2.value; + } else { + label_iden.value = caseValue3.value; + } + } + paging.value.reload(); + showCase.value = false; + }; + const closeCase = () => { + showCase.value = false; + }; + const changeWord = (value) => { + keyWord.value = value; + isSearch.value = true; + paging.value.reload(); + }; + common_vendor.onLoad((options2) => { + if (options2.keyWord) { + keyWord.value = options2.keyWord; + } + if (options2.order == "new") { + order.push_date = "asc"; + } + if (options2.order == "read") { + order.read_num = "desc"; + } + if (options2.order == "video") { + isArticle.value = false; + } + getStatic(); + if (options2.doctor_id) { + doctor_id.value = options2.doctor_id; + doctor_name.value = options2.doctor_name; + navName.value = doctor_name.value + "临床病例库"; + getStaticDoctor(doctor_id.value); + } + if (options2.hospital_id) { + hospital_id.value = options2.hospital_id; + hospital_name.value = options2.hospital_name; + navName.value = hospital_name.value + "临床病例库"; + getStaticDoctor(hospital_id.value); + } + getCaseLabel(1, 0); + }); + common_vendor.onShow(() => { + var _a; + (_a = paging.value) == null ? void 0 : _a.refresh(); + }); + const changeDate = (e) => { + if (e == 1) { + order.push_date = "desc"; + order.read_num = ""; + dropTitle.value = "发布时间"; + } else { + order.push_date = ""; + order.read_num = "desc"; + dropTitle.value = "阅读次数"; + } + orderFilter.value = e; + uDropdownRef.value.close(); + paging.value.reload(); + }; + const formatdate = (date) => { + return common_vendor.dayjs(date).format("YYYY-MM-DD"); + }; + const goDetail = (id) => { + common_vendor.index.__f__("log", "at pages/videoList/videoList.vue:453", 11111); + common_vendor.index.__f__("log", "at pages/videoList/videoList.vue:454", id); + let type = isArticle.value ? "article" : "video"; + utils_navTo.navTo({ + url: `/pages/detail/detail?id=${id}&type=${type}` + }); + }; + const getStatic = () => { + api_api.api.getHomeStatics().then((res) => { + let result = res.data.data; + Object.assign(numInfo, result); + }); + }; + const searchArticle = (params) => { + let searchForm = { + keyword: keyWord.value, + hospital_id: hospital_id.value, + doctor_id: doctor_id.value, + label_iden: label_iden.value + }; + if (label_iden.value === "") { + delete searchForm.label_iden; + } + if (isSearch.value) { + searchForm.is_need_num = 1; + } + if (!order.read_num) { + delete order.read_num; + } + if (!order.push_date) { + delete order.push_date; + } + if (order.read_num || order.push_date) { + searchForm.order = order; + } + api_api.api.searchArticle({ + ...searchForm, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + searchInfo.search_video_num = res.data.data.search_video_num; + searchInfo.search_article_num = res.data.data.search_article_num; + }).catch((err) => { + paging.value.complete(false); + }); + }; + const searchVideo = async (params) => { + let searchForm = { + keyword: keyWord.value, + hospital_id: hospital_id.value, + doctor_id: doctor_id.value, + label_iden: label_iden.value + }; + if (label_iden.value === "") { + delete searchForm.label_iden; + } + if (isSearch.value) { + searchForm.is_need_num = 1; + } + if (!order.read_num) { + delete order.read_num; + } + if (!order.push_date) { + delete order.push_date; + } + if (order.read_num || order.push_date) { + searchForm.order = order; + } + api_api.api.searchVideo({ + ...searchForm, + ...params + }).then((res) => { + paging.value.complete(res.data.data.data); + total.value = res.data.data.total; + searchInfo.search_video_num = res.data.data.search_video_num; + searchInfo.search_article_num = res.data.data.search_article_num; + }).catch((err) => { + paging.value.complete(false); + }); + }; + const queryList = (pageNo, pageSize) => { + common_vendor.index.__f__("log", "at pages/videoList/videoList.vue:537", 666666); + const params = { + page: pageNo, + page_size: pageSize + }; + isArticle.value ? searchArticle(params) : searchVideo(params); + }; + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.o(changeWord), + b: common_vendor.p({ + searchWord: keyWord.value, + navName: navName.value, + type: "video" + }), + c: isArticle.value + }, isArticle.value ? { + d: common_vendor.t(numInfo.article_collect_num) + } : { + e: common_vendor.t(numInfo.video_num) + }, { + f: isArticle.value + }, isArticle.value ? { + g: common_vendor.t(numInfo.article_read_num) + } : { + h: common_vendor.t(numInfo.video_read_num) + }, { + i: isSearch.value + }, isSearch.value ? common_vendor.e({ + j: common_vendor.t(searchInfo.search_video_num), + k: keyWord.value + }, keyWord.value ? { + l: common_vendor.t(keyWord.value) + } : {}) : {}, { + m: common_vendor.p({ + src: common_vendor.unref(common_assets.caseImg), + width: "31rpx", + height: "31rpx" + }), + n: label_iden.value ? 1 : "", + o: common_vendor.o(openCase), + p: common_vendor.f(options.value, (item, k0, i0) => { + return { + a: "acc011bc-6-" + i0 + ",acc011bc-5", + b: common_vendor.p({ + activeColor: "#3CC7C0", + label: item.label, + name: item.value + }), + c: item.value, + d: common_vendor.n(orderFilter.value == item.value ? "active" : "") + }; + }), + q: common_vendor.o(changeDate), + r: common_vendor.o(($event) => orderFilter.value = $event), + s: common_vendor.p({ + iconPlacement: "right", + placement: "column", + modelValue: orderFilter.value + }), + t: common_vendor.p({ + title: dropTitle.value + }), + v: common_vendor.sr(uDropdownRef, "acc011bc-3,acc011bc-0", { + "k": "uDropdownRef" + }), + w: common_vendor.f(dataList.value, (item, index, i0) => { + return common_vendor.e({ + a: common_vendor.t(isArticle.value ? item.article_title : item.video_title), + b: common_vendor.f(item.author, (tag, k1, i1) => { + return { + a: common_vendor.t(tag.doctor_name), + b: tag.author_id + }; + }), + c: "acc011bc-7-" + i0 + ",acc011bc-0", + d: common_vendor.t(item.read_num), + e: item.collect_num > 0 + }, item.collect_num > 0 ? { + f: "acc011bc-8-" + i0 + ",acc011bc-0", + g: common_vendor.p({ + name: "heart", + color: "#6B7280", + size: "28rpx" + }), + h: common_vendor.t(item.collect_num) + } : {}, { + i: "acc011bc-9-" + i0 + ",acc011bc-0", + j: common_vendor.t(formatdate(item.push_date)), + k: index, + l: common_vendor.o(($event) => isArticle.value ? goDetail(item.article_id) : goDetail(item.video_id), index) + }); + }), + x: common_vendor.p({ + name: "eye", + color: "#6B7280", + size: "28rpx" + }), + y: common_vendor.p({ + name: "clock", + color: "#6B7280", + size: "28rpx" + }), + z: common_vendor.sr(paging, "acc011bc-0", { + "k": "paging" + }), + A: common_vendor.o(queryList), + B: common_vendor.o(($event) => dataList.value = $event), + C: common_vendor.p({ + ["inside-more"]: true, + ["loading-more-no-more-text"]: "咱也是有底线的!", + ["auto-show-back-to-top"]: true, + modelValue: dataList.value + }), + D: common_vendor.o(closeCase), + E: common_vendor.o(confirmCase), + F: common_vendor.t(!caseValue1.name ? "请选择选项" : caseValue1.name), + G: common_vendor.p({ + name: "arrow-right" + }), + H: common_vendor.o(($event) => openCaseLevel("1")), + I: caseValue1.name && labelObj.list2.length > 0 + }, caseValue1.name && labelObj.list2.length > 0 ? { + J: common_vendor.t(!caseValue2.name ? "请选择选项" : caseValue2.name), + K: common_vendor.p({ + name: "arrow-right" + }), + L: common_vendor.o(($event) => openCaseLevel("2")) + } : {}, { + M: caseValue2.name && labelObj.list3.length > 0 + }, caseValue2.name && labelObj.list3.length > 0 ? { + N: common_vendor.t(!caseValue3.name ? "请选择选项" : caseValue3.name), + O: common_vendor.p({ + name: "arrow-right" + }), + P: common_vendor.o(($event) => openCaseLevel("3")) + } : {}, { + Q: freshKey.value, + R: common_vendor.p({ + current: level.value - 1, + direction: "column" + }), + S: common_vendor.f(labelObj.list1, (item, k0, i0) => { + return { + a: "acc011bc-19-" + i0 + ",acc011bc-18", + b: common_vendor.p({ + activeColor: "#3CC7C0 ", + label: item.label_name, + name: item.app_iden + }), + c: item.app_iden + }; + }), + T: common_vendor.o(groupChange1), + U: common_vendor.o(($event) => caseValue1.value = $event), + V: common_vendor.p({ + name: "group1", + iconPlacement: "right", + placement: "column", + modelValue: caseValue1.value + }), + W: level.value == 1, + X: common_vendor.f(labelObj.list2, (item, k0, i0) => { + return { + a: "acc011bc-21-" + i0 + ",acc011bc-20", + b: common_vendor.p({ + activeColor: "#3CC7C0 ", + label: item.label_name, + name: item.app_iden + }), + c: item.app_iden + }; + }), + Y: common_vendor.o(groupChange2), + Z: common_vendor.o(($event) => caseValue2.value = $event), + aa: common_vendor.p({ + name: "group2", + iconPlacement: "right", + placement: "column", + modelValue: caseValue2.value + }), + ab: level.value == 2, + ac: common_vendor.f(labelObj.list3, (item, k0, i0) => { + return { + a: "acc011bc-23-" + i0 + ",acc011bc-22", + b: common_vendor.p({ + activeColor: "#3CC7C0 ", + label: item.label_name, + name: item.app_iden + }), + c: item.app_iden + }; + }), + ad: common_vendor.o(groupChange3), + ae: common_vendor.o(($event) => caseValue3.value = $event), + af: common_vendor.p({ + name: "group3", + iconPlacement: "right", + placement: "column", + modelValue: caseValue3.value + }), + ag: level.value == 3, + ah: common_vendor.o(closeCase), + ai: common_vendor.p({ + round: 10, + zIndex: "9", + closeOnClickOverlay: false, + show: showCase.value, + mode: "bottom" + }) + }); + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-acc011bc"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/videoList/videoList.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/videoList/videoList.json b/unpackage/dist/dev/mp-weixin/pages/videoList/videoList.json new file mode 100644 index 0000000..a8a4ba8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/videoList/videoList.json @@ -0,0 +1,18 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": { + "up--image": "../../node-modules/uview-plus/components/u--image/u--image", + "up-radio": "../../node-modules/uview-plus/components/u-radio/u-radio", + "up-radio-group": "../../node-modules/uview-plus/components/u-radio-group/u-radio-group", + "up-dropdown-item": "../../node-modules/uview-plus/components/u-dropdown-item/u-dropdown-item", + "up-dropdown": "../../node-modules/uview-plus/components/u-dropdown/u-dropdown", + "up-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "z-paging": "../../uni_modules/z-paging/components/z-paging/z-paging", + "u-icon": "../../node-modules/uview-plus/components/u-icon/u-icon", + "up-steps-item": "../../node-modules/uview-plus/components/u-steps-item/u-steps-item", + "up-steps": "../../node-modules/uview-plus/components/u-steps/u-steps", + "up-popup": "../../node-modules/uview-plus/components/u-popup/u-popup", + "nav-bar-search": "../../components/navBarSearch/navBarSearch" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/videoList/videoList.wxml b/unpackage/dist/dev/mp-weixin/pages/videoList/videoList.wxml new file mode 100644 index 0000000..7c71f42 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/videoList/videoList.wxml @@ -0,0 +1 @@ +{{d}}文章{{e}}视频{{g}}阅读量{{h}}阅读量检索到:{{j}}个视频检索词:{{l}}筛选{{item.a}}{{tag.a}}{{item.d}}{{item.h}}{{item.j}}取消确定{{F}}{{J}}{{N}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/videoList/videoList.wxss b/unpackage/dist/dev/mp-weixin/pages/videoList/videoList.wxss new file mode 100644 index 0000000..c517c93 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/videoList/videoList.wxss @@ -0,0 +1,315 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.dropcontent.data-v-acc011bc { + padding-top: 40rpx; + padding-bottom: 20rpx; + background-color: #fff; +} +.dropcontent.data-v-acc011bc .u-radio { + margin-bottom: 6px !important; + margin-top: 16px !important; +} +.dropcontent .column.data-v-acc011bc { + padding: 0 30rpx; + border-top: 2rpx solid #e5e7eb; +} +.dropcontent .column.data-v-acc011bc .u-radio__text { + color: #333 !important; +} +.dropcontent .column.active.data-v-acc011bc .u-radio__text { + color: #3CC7C0 !important; +} +.stepbox.data-v-acc011bc { + padding: 15rpx 30rpx; + border-bottom: 2rpx dotted #f3f4f6; +} +.stepbox.data-v-acc011bc .u-steps-item__content { + margin-top: -5rpx !important; +} +.stepbox .slot-content.data-v-acc011bc { + width: 100%; + margin-bottom: 25rpx; + justify-content: space-between; + align-items: center; + display: flex; +} +.bar.data-v-acc011bc { + width: 100%; + background: #f9fafb; + height: 20rpx; +} +.databox.data-v-acc011bc { + height: 162rpx; + background: #ffffff; + display: flex; + margin-bottom: 20rpx; + justify-content: space-between; +} +.databox .cell.data-v-acc011bc { + flex: 1; + padding: 35rpx 0; + text-align: center; +} +.databox .cell .num.data-v-acc011bc { + font-size: 38rpx; + color: #3cc7c0; +} +.databox .cell .name.data-v-acc011bc { + margin-top: 18rpx; + font-size: 28rpx; + color: #4b5563; +} +.filterbox.data-v-acc011bc { + display: flex; + height: 128rpx; + align-items: center; + position: relative; + border-bottom: 2rpx solid #f3f4f6; +} +.filterbox.data-v-acc011bc .u-dropdown__menu__item__text { + font-size: 14px !important; + color: #3CC7C0 !important; +} +.filterbox .casesdown.data-v-acc011bc { + font-size: 14px; + color: #606266; + position: absolute; + left: 30rpx; + top: 24rpx; + display: flex; + justify-content: center; + align-items: center; + background: #F3F4F6; + border-radius: 15rpx; + height: 74rpx; + padding: 0 25rpx; + z-index: 2; +} +.filterbox .type.data-v-acc011bc { + color: #606266; + font-size: 14px; + position: absolute; + left: 30rpx; + top: 24rpx; + display: flex; + justify-content: center; + align-items: center; + background: #F3F4F6; + border-radius: 15rpx; + height: 74rpx; + padding: 0 25rpx; + z-index: 2; +} +.u-page.data-v-acc011bc .u-flex { + display: flex; + flex-direction: row; + overflow: hidden; +} +.u-page.data-v-acc011bc .u-dropdown__menu { + background: #fff; + z-index: 1; + margin-left: 165rpx; +} +.u-page.data-v-acc011bc .u-dropdown__menu__item { + height: 74rpx; + padding: 0 20rpx; + background: #F3F4F6; + border-radius: 15rpx; + flex: none; + margin-left: 30rpx; +} +.u-page .deal.data-v-acc011bc { + margin-top: 20rpx; + display: flex; + color: #6b7280; + font-size: 24rpx; + justify-content: space-between; +} +.u-page .deal .left.data-v-acc011bc { + display: flex; + align-items: center; +} +.u-page .deal .collect.data-v-acc011bc { + display: flex; + align-items: center; +} +.u-page .deal .eyebox.data-v-acc011bc { + width: 160rpx; + display: flex; + align-items: center; +} +.u-page .deal .time.data-v-acc011bc { + display: flex; + align-items: center; +} +.u-page .deal .num.data-v-acc011bc { + margin-left: 8rpx; +} +.u-page .item.data-v-acc011bc { + border-bottom: 1rpx solid #f3f4f6; + padding: 30rpx; +} +.u-page .item .title.data-v-acc011bc { + font-size: 30rpx; + color: #111827; + line-height: 46rpx; +} +.u-page .tagsbox.data-v-acc011bc { + margin-top: 20rpx; + display: flex; + flex-wrap: wrap; +} +.u-page .tagsbox .tag.data-v-acc011bc { + padding: 0 10rpx; + margin-right: 16rpx; + height: 46rpx; + line-height: 46rpx; + text-align: center; + background: rgba(60, 199, 192, 0.1); + border-radius: 8rpx; + font-weight: 400; + font-size: 24rpx; + color: #3cc7c0; +} +.detail.data-v-acc011bc { + background: #f9f9f9; + padding: 12rpx 30rpx; +} +.detail .desc.data-v-acc011bc { + font-size: 26rpx; + color: #4b5563; + line-height: 40rpx; +} +.detail .red.data-v-acc011bc { + color: #FF0000; +} +.votepop .confirm.data-v-acc011bc { + margin: 39rpx 30rpx 0; + height: 92rpx; + background: #3cc7c0; + border-radius: 15rpx; + display: flex; + align-items: center; + font-size: 31rpx; + color: #ffffff; + justify-content: center; +} +.votepop .del.data-v-acc011bc { + margin: 30rpx 30rpx 30rpx; + height: 92rpx; + background: #fff; + border-radius: 15rpx; + font-size: 31rpx; + color: #666666; + display: flex; + align-items: center; + justify-content: center; +} +.votepop .tips.data-v-acc011bc { + margin-top: 30rpx; + font-size: 27rpx; + color: #9ca3af; + line-height: 38rpx; + padding: 0 30rpx; +} +.votepop .add.data-v-acc011bc { + margin: 0 30rpx; + display: flex; + align-items: center; + height: 92rpx; + justify-content: center; + background: #f5f5f5; + border-radius: 15rpx; + font-size: 31rpx; + color: #4b5563; +} +.votepop .add .desc.data-v-acc011bc { + margin-left: 10rpx; +} +.votepop .titlebox.data-v-acc011bc { + padding: 0 30rpx; + height: 86rpx; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 2rpx solid #f3f4f6; +} +.votepop .titlebox .left.data-v-acc011bc { + font-size: 31rpx; + color: #4b5563; +} +.votepop .titlebox .right.data-v-acc011bc { + font-size: 31rpx; + color: #3cc7c0; +} +.votepop .votecon.data-v-acc011bc { + max-height: calc(100vh - 530rpx); + overflow-y: scroll; +} +.votepop .votecon .row.data-v-acc011bc { + display: flex; + align-items: center; +} +.votepop .votecon .row .iconbox.data-v-acc011bc { + margin-left: 15rpx; + align-items: center; +} +.votepop .votecon .titlebox.data-v-acc011bc { + border: none; + margin: 30rpx 0 20rpx; +} +.votepop .votecon .titlebox .title.data-v-acc011bc { + font-size: 31rpx; + color: #111827; +} +.votepop .votecon .titlebox .desc.data-v-acc011bc { + font-size: 27rpx; + color: #9ca3af; +} +.casepop.data-v-acc011bc { + display: flex; + flex-direction: column; + max-height: calc(100vh - 400rpx); +} +.casepop .continue.data-v-acc011bc { + color: #2878ff !important; +} +.casecon.data-v-acc011bc { + flex: 1; + max-height: calc(100vh - 800rpx); + overflow-y: scroll; + padding-top: 22rpx; + padding-bottom: 20rpx; + min-height: 350rpx; +} +.casecon.data-v-acc011bc .u-radio { + margin-bottom: 10px !important; + margin-top: 0px !important; +} +.casecon .column.data-v-acc011bc { + padding: 0 30rpx; + border-bottom: 2rpx solid #e5e7eb; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/web/web.js b/unpackage/dist/dev/mp-weixin/pages/web/web.js new file mode 100644 index 0000000..086e600 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/web/web.js @@ -0,0 +1,18 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const _sfc_main = { + __name: "web", + setup(__props) { + const src = common_vendor.ref(""); + common_vendor.onLoad((option) => { + src.value = option.src; + }); + return (_ctx, _cache) => { + return { + a: src.value + }; + }; + } +}; +wx.createPage(_sfc_main); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/web/web.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/web/web.json b/unpackage/dist/dev/mp-weixin/pages/web/web.json new file mode 100644 index 0000000..e701325 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/web/web.json @@ -0,0 +1,5 @@ +{ + "navigationBarTitleText": "肝胆相照临床病例库", + "navigationStyle": "custom", + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/web/web.wxml b/unpackage/dist/dev/mp-weixin/pages/web/web.wxml new file mode 100644 index 0000000..8efdc9c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/web/web.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/web/web.wxss b/unpackage/dist/dev/mp-weixin/pages/web/web.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/pages_case/index/index.js b/unpackage/dist/dev/mp-weixin/pages_case/index/index.js new file mode 100644 index 0000000..42a75c6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages_case/index/index.js @@ -0,0 +1,71 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +if (!Array) { + const _easycom_up_avatar2 = common_vendor.resolveComponent("up-avatar"); + const _easycom_up_cell2 = common_vendor.resolveComponent("up-cell"); + const _easycom_up_list_item2 = common_vendor.resolveComponent("up-list-item"); + const _easycom_up_list2 = common_vendor.resolveComponent("up-list"); + (_easycom_up_avatar2 + _easycom_up_cell2 + _easycom_up_list_item2 + _easycom_up_list2)(); +} +const _easycom_up_avatar = () => "../../node-modules/uview-plus/components/u-avatar/u-avatar.js"; +const _easycom_up_cell = () => "../../node-modules/uview-plus/components/u-cell/u-cell.js"; +const _easycom_up_list_item = () => "../../node-modules/uview-plus/components/u-list-item/u-list-item.js"; +const _easycom_up_list = () => "../../node-modules/uview-plus/components/u-list/u-list.js"; +if (!Math) { + (_easycom_up_avatar + _easycom_up_cell + _easycom_up_list_item + _easycom_up_list)(); +} +const _sfc_main = { + __name: "index", + setup(__props) { + const indexList = common_vendor.ref([]); + const urls = [ + "https://uview-plus.jiangruyi.com/album/1.jpg", + "https://uview-plus.jiangruyi.com/album/2.jpg", + "https://uview-plus.jiangruyi.com/album/3.jpg", + "https://uview-plus.jiangruyi.com/album/4.jpg", + "https://uview-plus.jiangruyi.com/album/5.jpg", + "https://uview-plus.jiangruyi.com/album/6.jpg", + "https://uview-plus.jiangruyi.com/album/7.jpg", + "https://uview-plus.jiangruyi.com/album/8.jpg", + "https://uview-plus.jiangruyi.com/album/9.jpg", + "https://uview-plus.jiangruyi.com/album/10.jpg" + ]; + common_vendor.onLoad(() => { + loadmore(); + }); + const scrolltolower = () => { + loadmore(); + }; + const loadmore = () => { + for (let i = 0; i < 30; i++) { + indexList.value.push({ + url: urls[common_vendor.index.$u.random(0, urls.length - 1)] + }); + } + }; + return (_ctx, _cache) => { + return { + a: common_vendor.f(indexList.value, (item, index, i0) => { + return { + a: "1bde9236-3-" + i0 + "," + ("1bde9236-2-" + i0), + b: common_vendor.p({ + shape: "square", + size: "35", + src: item.url, + customStyle: "margin: -3px 5px -3px 0" + }), + c: "1bde9236-2-" + i0 + "," + ("1bde9236-1-" + i0), + d: common_vendor.p({ + title: `列表长度-${index + 1}` + }), + e: index, + f: "1bde9236-1-" + i0 + ",1bde9236-0" + }; + }), + b: common_vendor.o(scrolltolower) + }; + }; + } +}; +wx.createPage(_sfc_main); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages_case/index/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages_case/index/index.json b/unpackage/dist/dev/mp-weixin/pages_case/index/index.json new file mode 100644 index 0000000..2d409fb --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages_case/index/index.json @@ -0,0 +1,9 @@ +{ + "navigationBarTitleText": "uni-app分页", + "usingComponents": { + "up-avatar": "../../node-modules/uview-plus/components/u-avatar/u-avatar", + "up-cell": "../../node-modules/uview-plus/components/u-cell/u-cell", + "up-list-item": "../../node-modules/uview-plus/components/u-list-item/u-list-item", + "up-list": "../../node-modules/uview-plus/components/u-list/u-list" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages_case/index/index.wxml b/unpackage/dist/dev/mp-weixin/pages_case/index/index.wxml new file mode 100644 index 0000000..5abfc1a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages_case/index/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages_case/index/index.wxss b/unpackage/dist/dev/mp-weixin/pages_case/index/index.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/static/add.png b/unpackage/dist/dev/mp-weixin/static/add.png new file mode 100644 index 0000000000000000000000000000000000000000..32082c34c2ba8d612c5e06533ef6de7b5f1b9503 GIT binary patch literal 1212 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 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/caseIcon.png b/unpackage/dist/dev/mp-weixin/static/caseIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..e60a6197c9830c801bca23be29e9f854a7f5abaa GIT binary patch literal 438 zcmV;n0ZIOeP)Px$a7jc#R9Hu2WEfz;IKcKZj5=U61O`V47#pXtN+|uA!oa|&&%i*3gvrS8@W=1p znS0kSdJ7H#pWp6s<}|6?fHwsvkm*a2Rl2@;G9%%>R`7-Z<Mxf4M`3GP}cm$ z$m8;#fsqF}g#Z6#{Pp+quYJ3AE&fVG$itP8>;RvTq>29-8S}7N^8f$;UE9{obEl~T zyhD;#F)%WOVs`+;rEP2Gf~s_)0m&f%t~viRWig;d0VCu8pN#+hE!@0z!40BqAFYf= gLtr!n215t{08(6MAl-Z6761SM07*qoM6N<$g0DBp;s5{u literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/cert.png b/unpackage/dist/dev/mp-weixin/static/cert.png new file mode 100644 index 0000000000000000000000000000000000000000..d30597cb3c05e2bc3c381b2e1a08be6e4e914eb1 GIT binary patch literal 670 zcmV;P0%84$P)Px%SV=@dR9Hvtn89lkK@`TnZ?Y|ELGYl6XipUc@m4Y2WMg+h#8W{O>9IGJ{s(&3 zg9mR)y_6nB6g{-+p;_AOCOPO)5Ya>N53o0FL-t9kr4f_e&FpRr+P%(uGr#%f&D%GR z7~+pZ%!Yph&UW4W&Y{s0{Jw33sZ9x*-^MBDrdW{(H!Gl2p0$$kF}u4 z7Rh^6)4mTtV)=A2ii9iG+(#sD>MS7SqF=ah3#1lcC|sf8o-~A;1e6Y3+b0QND4bPu zFN1ug3%2K{3m6Jls;|!y@-iu$u7U%D(*YbPT)%(=hx-*G4?WXfhzgg#1&5ZBEA@i& zA~d0g4W@Y^{#b{2>P_3%hZ7F)Jku@@DV+G8=~(|2+)_ZbLXp^22PK$*;vEQ%?<$!n;Gl$p;T3D@>W-4(u8rfxvGf7r92XMN|4z+SW0IoeeHwt1Ql>h($07*qoM6N<$ Eg4As-UH||9 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/chat.png b/unpackage/dist/dev/mp-weixin/static/chat.png new file mode 100644 index 0000000000000000000000000000000000000000..ea3a2bf1366cabebcb4a58ee64a2369740907128 GIT binary patch literal 1550 zcmV+p2J!icP)Px)$Vo&&R9Hvtm}_hlRTRhn=WffREnpA=1__8p0YgZrkAMP=3CQlYk;e{?5JJ0C zYNAw3G(Mul8hm{)QBpKoI@?MhKxQb~c4iw9(}++(F(iNjF-AlTNHMn10^OZCGW+Uw zyKT3$6k?o@Gw1P}bMHC#oJ+XPAG*!?@ZSW?E-FeN(`e45G(5ry*aN^y zML!ila!K+EVqOoT$*CCaQHJ>h6Kyb5Wjg@wPQF{fyd`TMw1im((5x{ zWDas9DJugbW)fSonXr&R(>lxX6#&J$>Qj>0NDAndMr|Y!J`WpdD)LG!k&vB6B zQvmlT1fj&xd~e3T>j3EX$Px%U?M)ODV&2x$XcgAiS6=N8xTuYsoctk~qeMA~R>s+7 zFqY|>qDJ4vKwMJ(Sio_DfDzG;%>0p|`HFkWv_627%i}F2qGw}1fhNG5Y^aszLg^O$ z;P%LsAgqpy+zwsyt>}aElvUjx?{*L^Z}*MQbWO>R0lF5;6G-5f_L9J79oI0Wy4rUs zWiNdYbUIfK7g>XU0%%;w3?s-E?lY>C)1e4QCEH0HlTf!T_Yep99`@*RHc1C z3?QXTl6MfWEW!~mRAn%Q(tWhUuI7>D=T{BY_uc?<#ay{0?<)j)H~OOGf;p7t&tH|9 zK4MVpsA9$%LsMdVVIVJ3}msgZw4KX8!e5eO1_N&UKfdq^Ca!T@A z5jy|F&);aypzQ3T^s$r7SVAzc(NLA=Zv~)Bl0PJ1UHcM`Pmg4=Y*+0ukUbvZpm8((4ts1VJpwjDr%!=F}XbQAtF2!6|k6B`!(N|fq-;-3KxTT zS6rz(X{f#_c3F-!3r?xv2?4P;E{a!7)0$gXRr&qRgnV*Y!3>8bzK-vr0DekWebu(# z#C}i#!5as30YRFp?=JuOWL(?6q_D712s{HIJBiL=hM61fqPql4?8(4Tbxm1nE4Vy`1t9()x?jRm9!@go zTLPbephmW=ixwl`AV(%(jRTRLiL(Jr1t5}u*|!THTbDCl^!rP%CHvV9GYPRc2BJG7 zf+h*h<^V>rgEkQGSSrygohn8r zISb%D0F~;hqNiddeAF%Vz7M7sdQz~L6#|v8_#lYpf$32q+}(rTp8y>M%srObR^zYQ z_D4^CI_yEaw1})$yJ7A2o`!+%h|QODt#V(yfk*;O0P$F2WQ4v6YB7cNSFp`Iy?6JP zi@gC#l%=VXH0T}-YX!)W#E^Z@S1Xu4snyE+_BQc!{0*9KY z`9OoJ#>Ro(8t)JJRPG1+!_N)d_#g0wLl;r}7p5gR6f=iG{r~^~07*qoM6N<$f}_pX Avj6}9 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/collect.png b/unpackage/dist/dev/mp-weixin/static/collect.png new file mode 100644 index 0000000000000000000000000000000000000000..2815fe4f95502981ac1d210b034500b60b6ead36 GIT binary patch literal 3260 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 XEy;;6LX5DX00000NkvXXu0mjf@ic*L literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/comment_icon.png b/unpackage/dist/dev/mp-weixin/static/comment_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..67b73c56acd7ead725a307b155575c99355fdc55 GIT binary patch literal 2313 zcma)8`!^H*AAWBUsboxia$6(US~sPSyEWICa!D8}YM->p5|O!v&z8#+hLYuzHB?l{ zC6dsD=0ltNU5qSYE@AQY{R6(|e4lfk=lSLN;W@8!Ugtd2vsmlhQv0L;0K08%FiucdXS7%o&Q z#?T?Zzt<=b`Y}J>)|qLhjVi-Di3Reya2>R`hTWr$`aL@uOBS9NNKVnr3!=@>6&Ab# z-AiHk!>5vW65)XdWYSZuu&oF9?;-|{hx4wKh8u)umwJU+Etm}%3}>&*_p6PE-H^HL z@%jSJt)zQ+C+LTaoB)9ka53kH)GrmthdRi}4KSBV>|deVF}0pXG9Y;2lgmO$*bJi-+`Iw3k{0zFI>HxOO*#bN@Ddf zH>*T=AbB3yw0)Z%qrI-<%?mxHT>;|JF_M2*6Z=nV$Mx(43@Yx0Ovj^$VTO0!+~vU# zWxP7lbnmvH!-gr&=tgutpOv4^Fpz22M8y5l0OaB&DVPHZv#}F&m3d3XUW};1P4*9# zNyd;(&HUWEMw?3*mr_N7>k(NG(vOwKGN_MZ*|KQvKW&PBi$rA`oiFTAr5v>6hIWOA z!>(rRyh6}mv;gXXQ`puS&Bd6fB~fj*ImtmBj%gxy+c=2nf6k)lBTm5n)$m3B&j9&o z3>@u8rIel&5KgWyHa3dgm0Kff*Dtv-2jNojpE%=@-~uH# zYnh-f6|iXhQ{l0uUR70` zGLMoKF+W8r&EQxWN^m5bPwXE$tDCX$(653t{^>+7fnH(g(_t~wBNB<$rl+Uz4+Qs` z#;(sSt?dV)*CbxDf~p1%Ttk*>A-uYOZ-+(LPaM8Sp@rtIq-c0{2d}_7-pQ9o3c`lM z`~Lb(r=VQ9)nA1*k6a18Rz}Tvd3o<+Vjz*;wf4cXZ;5p%l&%4xC(zr+N6lLCXW{cQ zk8%&Mps9cJ@J~No(pPnb?I7kpchTjyx3#&ruKgu3eTvgW$vUY%zE5YO{i)nubd5OJ zcrs>__{Ec%9+lKly$?jvtr95-B2Q3wAO;=(yxaqzm3%jG^jTA|K=xoO#S|5-Az z{|2R%kAh1*ibW_o<~8+dUe8ZwyKL3^e7CxIT^qLhxqWor9%8-lDdUl$YFFk?HJYkwCRjPs zY5T_WRW(1RQ!c~#@TcVFGMnU*f zW}bSdma{6r8K)P;&k(yj@a}uf7-}Uve+g+-<4|PA*}n#YQU~q7H}$Zixr=Vc5&!4Y zX;|j#e7Bc4^}66|`X4Niec>uWYS{U#XwxjXU6(8oExS1`T%LQ8aNaTqetOsNTkE4) z4Hkx0`F*2^gQZz)9%4-8+KP=~b>F8Cq#Q3wv!@&$Uc~y>#i%$zJaYsvJ(XDSf%_k` zi|rd8H>wp10z*!K57`phubX9+r%C` z;Pj--{N8rq`yQq`br9EGOQ$R|ZJOpFMpwXVw$cL5~)8)C`6t=4WzEjiZ*A0=H6Np*5Q{)nkeOno?g)~hC z^YwPj1uTzSTNZQ<8)>Jfj6WRrOA`#hZzod%mLoPf0c?`jZ3!4j*T=`@uKIK%RnCoZ z=2#Rf?2xX_5MKdJ)*AIQe;;qE%M^vMY^_U-Qc8Ej{xqx2CJg&8%#DnUxcd6~vO2#% zd+kF=H8wD%{RpQtvz}Rbs>f4I$JRHzim;W%?=mRTz#OG1tM>V7sZl!wAliPPBY&&?sMo~qjoTh5hqDPwN!Qm1_l*-U?s_=J(K86$?;XMX{Fx%Cp@1%L6Qcb>b6mbfT3lk2+udDptnLbnI z_R^zCFM~*|;m3YCR8)S{gjuOP)MqQ5l9cpqa&j_~N+DT3Ic_17bSuqqNbgDOG2|o8 zP2T48SC*Q2W2+}fKc3w-k(QQLlUzgSd$YYa|Jy0f3DITiMpmWv1}^2?l>F)@B)Is@ V6`D+P;?}kSww72-G5TWce*j|sT|@u? literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/default.png b/unpackage/dist/dev/mp-weixin/static/default.png new file mode 100644 index 0000000000000000000000000000000000000000..613fbd62ae3b56a8c7b1c0c5f36d10cbbe5bc2ac GIT binary patch literal 2003 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

_+?@OpmkR)lV;MvaSrUe$Gu%XV_2 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 Uak(6zkFYPGhQ4~e>Z{2A0~w&E*#H0l literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/draft.png b/unpackage/dist/dev/mp-weixin/static/draft.png new file mode 100644 index 0000000000000000000000000000000000000000..a15d94b7e2bd4cc9fe2feb9884e8ad8f0ee217ef GIT binary patch literal 5284 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 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/group.png b/unpackage/dist/dev/mp-weixin/static/group.png new file mode 100644 index 0000000000000000000000000000000000000000..d9cf61020cbd049c3a6021b84f52875c6d7bd742 GIT binary patch literal 1989 zcmV;$2RitPP)Px+e@R3^RA@u(SbuC&*A@QGvz?HHgwPerHr9&JpR9j$rEAAnr$``*ZBWSU7n*fx z6TcMb)QYZ~woX$SNR!s7)mGRlA?jxWtP$kd5T$-LMO|m1wY1wpH>$2>G~L*=0ZO~J z1zHkw~QMVhOuXM0vOSky5F0a61^S0372J zvjY9pOas@bc1WbBI5`MwFOBr1_|VihJ%TMwv$o*9$C5G!TczQRub@e z0Oy(cI6>O2hl2<6IrI7hPlD(NVxAc(0)9yb?-`z*e3u5ws+^Qu0irD+x*>yc_F^h| z>u(P2{h&|)wv=}_1Rj(azXGUaJV0iSrpl7{9@)2VAa{OkMWqD31DqjZZb}LBU77K^APMf^jr>rC5gG7`LlrJF@(T4zL0~iU0fzFtw*5^8O z`;>qrK~2A7-miy4jd{P2{J>Jc`Ny;=_+(5A-8?PwB44kmN%auu3l=CMF!0^jLG|=9 zSuVSZt6Bj39E4IaZoSyTHvmCRE-lE88xKwk5rq(5!c;d&WcZ z%7G!VnVE4W7FIu(qx@z9p0SqmQ&BDS{d`PT)i=#|IbHt-$N}(KT?>77BH|Y21jFN3 zHWFcH+Jx~lJ*+-HM)~y{7E7k_ZsvWruBms7kgvc0Msm7NW}bT;L%g`FE7UihOOHRW zm56?v@fFg;sxmF|-g@O$IPqo%u=ow;zz9busx=!kB**Kew)3Z z2xyOL>bES@%fsVqxeJn%AYhi*t6*Mc=cX-q&U%E9?twB8i?IAv!i0kNyYeS0B@~3;FWY<5yY<*bYkHwqpi^Umi-O z8tjw>lOmrEpk7%GC!QhTrV-DKK_=cY*lTV}B-$<(+F&c?rfW-3vKfGvz}GTEY~F5( zq)=1~h6}B~a^9Bmxr^LBsX?@nfZ2r77(KvgcKMbGNA{A*U2>FdU*G%c1Vd+rhFc%2a~v%=xh`9i)m+_?X(d$ zp3~vlLPX5~D(rwWPi{@JcI}38qa;~J5{YI+Twu2VRF;EhGUFT(jx+NgOqLEE zjs#EG@i(sW9$&x*iBtmSj00kT(Z_^}oU{A#9wvS$))Ct2{zmIU$zeVLrbZAd?U2dZ zFmQrQdPYkz%}dL<{~s14#GC%3O!ZHAGki z!o37a0mJJIc0C{wiBe+hvB>-p6P+VK+|;6!t_FCaRnv?f%y`3OYR>m1Mv-45xA+;- zf$VwCz)?!kCjC(GZ9B?&z2BUR^0IaSt8-LLUb^mIB<2H#!M{7)*(QP?HAHVP2bH%u zKwbdicCE=V7!ZxS9#;3~&H37O&DG^D=_G;Xr;QkU2Hx*!wfj55YECL&0+INwk%7Pg zPNseo@7yDr40~hiR>}M3=_Zi$6A%_=7MV=k5bFp<#!Z`1RUP=)K<|5Bw@X|AdSqok z0ahcz7zEQsJrex2J;r0LR@C4BnNp{#oq$ytDK3~MEssakH?r0vY2%fZQvlM91OazN zHTCy)9k2E^dmNHOw|FDT%ysc_C~kLsKD#BdT(XF(L>;vvV{=T`)aBVtoF<>?@_TbY z&J=Xa+;0M#1xc?z@HU9j4Kss(7}G*e7F=)BK%{ep%kd6?Ytr~8`(qI+eJtfgp1t)? z(NHY1iJ3J!Y)Zy9$#fjcyf}4suH%c{yR4GASR-B35uVH7b?KT~cbU969@anjWrt~s zHg7T8_zg%vKbyP>L|-Aochagbo)~<;r)a8YgLlrGS5b;8(TrCBJp9oRu70H})K{=P zD5RdpA802cTg^iuEW7iB;p?K>zJE-gd_zkku_Vs+Pip*G*VNlarOk9aTa7wD1g1%q z0h9D;F!2e%d^o1Hoh=&qNs=g<`LxrfXiTO6G(&z0q7`MyjPga1aS9+a%1=SGqAd9@ XgeTWeQ-{+P00000NkvXXu0mjf-LtsX literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/group_on.png b/unpackage/dist/dev/mp-weixin/static/group_on.png new file mode 100644 index 0000000000000000000000000000000000000000..98a757c18afaa887e9b720b2fee91a316c60f41f GIT binary patch literal 1491 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 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/ku.png b/unpackage/dist/dev/mp-weixin/static/ku.png new file mode 100644 index 0000000000000000000000000000000000000000..7d7ba8253d2985348ffaa3c2967739dbc7aaf5c4 GIT binary patch literal 929 zcmV;S177@zP)Px&TS-JgRA@u(nL$VtQ5eVn-|Ui*M3i_5B0;bs!7fn;iwzH^qlvhiw=yT}5Z$7n zOW>ixt_2~@rWF)CH4tYF$x8(V9XxcjOHvRP*%oEBJM+b?u5G3}^Tyd(qPaFKLivGKB_$d;b7*NHBprq(ci3eQmy4TP&oM5sS$wNGr$(Q zjA4CnwPV(+fI`A+0N+{!HUUgA@N+c*1XKd3$@Vk&WkSRcWTdas3I-pEM8f5j)sp}Y zx&32XA+E&`x)C_MyeT6_LLD(cK!UB57g?_0h@YzM}T`1dHQ^^}rd0$_4 zd^kl%Nulct_bI-X5b^Uxg_m)>DR!z;0Y50gd%ac4xSbmtsPk$}Q^9DEh9!J9gxv|H9;5PvsBe6*-Jua=I=KmG@r^G(t2CIUrd(}uuFV<>*PsA(e$ z?GzuV^G-0b{l3Ak8iYMdqZot6klvMV z7Dwmp!9En!q?7>sER{?hnV7iyZO!l*0bWX(lE?tRXQmtF^rcS-@yltrE9Y}3aa%-o zS~$0#6q8|w<`N_N%t8gpU6Y1)H*GLcCHP=`{&$t%R!5;vgNO}H00000NkvXXu0mjf D#*eoC literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/ku_on.png b/unpackage/dist/dev/mp-weixin/static/ku_on.png new file mode 100644 index 0000000000000000000000000000000000000000..f73f9febc3af36fe76198aed19e22dbc1ae846bf GIT binary patch literal 788 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 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/myCollect.png b/unpackage/dist/dev/mp-weixin/static/myCollect.png new file mode 100644 index 0000000000000000000000000000000000000000..a4f840da2ba47cb75ac97cb706d09c9f45b3b7e9 GIT binary patch literal 1094 zcmeAS@N?(olHy`uVBq!ia0vp^en1?+!3HF^mpOj}QjEnx?oJHr&dI!FU|?bJba4!+ zhV*CaCPZy6dyu$938{JD;8T{{7vXJ%=|x z|7myr{oga2-yA;lTlfaQszS&qCj*Nj4xV!lJQ$7Ags*EC`1ka!liTsmmh*%kqg+rz zGlS))nh>8xX{NnG&UzXuQb*q3Z%MqdsOzrclvhVY-L+Cz?BRUzH&f22HR?Iz9+_6h zDNbv53avb#8f;c!E3WY&CyG6Kl9kqbm)_21hAUh58ON**`@HY}%S-7DWjp1TX;)r! zzL@e?^?Ka7g4TzhUMmF^+j@k5?%EruZ1M2YWllZ&kh?FQ7BF5g)oXuI7S`x}nR)Hn zczNq@;(f3@p zef;$N$$5=A5vS)Je&Au*Y`nvd^-cKJ;Eg}eOV2qtktyYj8Z^k#3zjfQZtgU;2x{oL zc|=l1)8SaoBc47Hg=DirHg~QGhO;f2m03^B@TElC8hdp=*NivWO!@O_nM4)afoo-U_0P|zNcc5OuIJe@@AVhorCkBee;L9unzX2CtD8+6b7*f)Rnw9@y^8~1;Xy4m#m zdf&C5hxO(?DBJtyK&Jz)=8}`Po z|NgK}>`B?ZTz7BoEq`OzZ-2P&@Tt(T!ru(MXKMF_#5cc^-u~`P@WIBF zCm+~uTP_@P$;3Y9T=(Px)AW1|)RCr$P+fQs1brc8i@0;2prFaoTNIXEo!GG~$2qq}m#HcCTHYDyW0Ts*c z(x{0w>W!))YHyn8iG+5xC0K)@6BCWmVxd@eo{nYBwsv>t z_hx69t-rnQ@BQBUedg`VZ)ax-`Xv$|QIrmXh7&e{hSP9D0b!W#xRnHVPhVf_hF?qD z8OCL&F!Zr-ZJ~z6uHzEDy*IYc8s`YK<)4)kY-ij`hpHf$Ja%whsmxv`I#Rh7cHMi6 z6C)y40i|e|l0o)`_UL`IHI505X+Tw0Ier#k~QojhUXLoLW=_-E?V1p!SotQ}AuGR2G zJ7%`pw*9B-Iz(_gQn^D!{G@6!pW~y11DKz43i&sE*7ol(Ww@T6%-Yf_`lSIEfoioz z3kQ7b*w&`d;kwh=oh~ErRjEdyQNzJ-TW&uwari40Jmrq-GBeLJ=na)5ien>(BckNg z_;69BPIb6+_Elyq+GnXG^f5MaI1oMVj1RxUi9FBp#McX>6 zQm1mqX}ASm4F`CeVcl^mAGh*Y4JT2Htm9I-K@cBMsgZ!M0UUC{Z3OBEaBE}tadZLf z4iTt>3D5qWYrRT+(R7?L9Q}9&#+|3_!@qlr=`{D_l_$!njgI5%l}xz9hFzl%FdN`TC^KrWJOIc@3KxPMeD>#d5X0uZ#*qU|`@#bG&* zKzNNpYnF4|Qa}-2Bhi`_uIANtxi)PyS~J7>#tQ?j+2QKqg@v{f;Hu(c1S z`&eRrc&d>9K&4J)xUN*@AtpMdk|ge9xrB|y_pI+!>Qsj7?0jaG(Q)Z#0Bcne#dj=S zaO~l`RqIoR^AaRi(0Pu5M~k-gP9$)q`E3qHM;ld>#$^0wZrj|0C&$KSB=v~lykys&{TT5+y^`eDDaIv2el^eZ+qQjK zT0s`tf&c&j literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/myFile.png b/unpackage/dist/dev/mp-weixin/static/myFile.png new file mode 100644 index 0000000000000000000000000000000000000000..b6132a47c57b82fed97146ba2f3b106c5d7d5000 GIT binary patch literal 783 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 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/photo.png b/unpackage/dist/dev/mp-weixin/static/photo.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2fcb07924d527e2a77adb9c1ccf82d9d452140 GIT binary patch literal 1067 zcmV+`1l0S9P)Px&X&KMrh9z#v+~$ zA}V^JQ7*xEBu zF0aG`hGFOvSo)eKcpk)(dMGcFkpslOG>sj{KaQR&ye|Rphs<7(I|axP_!_`;Js<=^ zf-3>s0FiIUdGYR3mNlhh&jLKUaZ9sH_l!Z1mP~GK;>i9p^-x}r5eS$|vK}T0taTjO zo{UHPN&tLDxSc=}B8Ti)^zr#9Z)NtP~_PK0q`54C@Pi1xNW>y{Efl~f03U$J0Z>~E$Ob@S zwiPuN1i)u(T}|jG0Nj+%0l{x{Hvs? z5LpiJApqyIn&TfD*mt^8oM#~PlLS`?5SNL?U2IJE5$F~X$(LH@DUQ1{xz3DRyT82J zUS0`j>bEAq_gS$0nAQLDm6FWA(QFYN!wLeBv#J;=a6#@7W?fmhzi780qn@XyCOg>-LMMf#Rm8~!@DVX zxgtPED7;RH6CyI0h(*`e!}4+&-k`Zn)3}!+y@Rpn3nlY_*W0y}jh=G^t`kSPFZ|+; zjg0KgR0OHfawVfZ*mI|@$zcGk5C-j7zj`hm%l#p9CrA}5wQ^E6(G*|^XaMxN{+opt zbsCYMutjhz5sP>WedMxxfiGwVso_NkSIIw{Du+V|Fn`wPS`>&-E|UD}lesLa=lB0T@Ha$-C_ccLfj0mE002ovPDHLkV1fX==@b9} literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/shang.png b/unpackage/dist/dev/mp-weixin/static/shang.png new file mode 100644 index 0000000000000000000000000000000000000000..0930d2a95d9db425ccaf0b8fafe2519afb42f9f6 GIT binary patch literal 9288 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 NXg$(bt5UIx`ak8klPUlJ literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/sick.png b/unpackage/dist/dev/mp-weixin/static/sick.png new file mode 100644 index 0000000000000000000000000000000000000000..59619e23a915f4c3a92702fe0d56b8bd936e4563 GIT binary patch literal 45961 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

7JJe!E|O8Vq+nH6=vpH6 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 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/ss.png b/unpackage/dist/dev/mp-weixin/static/ss.png new file mode 100644 index 0000000000000000000000000000000000000000..5b6b05dd080bf2b376481bbde0e1a7550ffb3a05 GIT binary patch literal 2120 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 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/talk.png b/unpackage/dist/dev/mp-weixin/static/talk.png new file mode 100644 index 0000000000000000000000000000000000000000..151bd87d8e6d8438fc1826dff6389196b48e729f GIT binary patch literal 2173 zcmV-@2!i*CP)Px-H%UZ6RA@u(nSXFpR~5&<=e|I~uh3tVifys!Xz^F8P^W{~P8=v@_dzVl-a-w9 zW*<_jwsjn>|2Q@}>R278)2U-i%-c``MYy}9mVLXVfRj#3D^|2XDORCTlopHH5+J}P z?;Uw>-=>>nH)NL$Gt78rGLz)pbMEKdd)~R{oJY8b2VKPM_&l@bRwZ*J;7-%~H?&M#Q7VyrXTmMkzAj4u-5LwNvgfOdmiM6yBB75HO^F!f!1|H7=?Eu&Va3`4FW#W^> zn7~9+3AhQs+Y#^NnebNjgrC<;DMUtcLw6`KLv*0%uTMY8#Ucw1rq zJ4eci<*5870QYCSuP^0*mL^s6hM^277(NgPl+(B=FA(7tS1|)UaGY-?Vl7Xk|156k z3zvT!nzIQ+(=vJqSZFEJ%BQhl_+TjfBoVFj6f(L=kc@9^P85gSUn&r&ucYx6Q37uF z4LH{0*q_@PTm9Eu`U`>&$cB)BP`)A?W|OVwW%YmZi*$>x?LWurB;H67-9->+_mKG_tH< z_&~^bSP&jfE5T!lsOiS!5g&6G-g9M{HtGlw5x|En6}h@#c>OM8Js6AA$7jz?sMT9X zoZMd^D8u_QuG7<-n*4lQ>${n?hvoCS4DSMHx+~OcYg5`cHNA78;B^^R0EN8u*qLQT zTV5^@-gpbZb*}iyqX$QKbaeDyDERD4ksMo($5!`Uh=X>%y87OVu~&%42sGvlX%B5v zO~-=LI7GlTZlJN0S#~~YK%qwK()cBS`+d3j+3CU{_@E4bn?OHJ9}_=lMI%q>GQ1Cd z$Z}4co|sIo>naqY*!e+e{F;D8UWgVnGr6JpcRAh0OS;BS=_I5pAOhbSSCN-=X(R#6 z^AtFko{X7)Di)?tIb9lm05HRq>p`mOdDYsP6JD2w4j}G7e8p1c=iT3f()c;0Q&u-r zu1rMDRfR$nGv6&M?Q;7V5nNY2YAN%|yrEK;;Z*>w7zi1tGwu`uZD~P%&Qg&t6$4YK zj2<#12pfI5-&o4Lb13+}kVw#`##PfHck-;7@Ptc7(-9EH0-Wl#%RX`;!evkz?F7vA zT$p)DJQ`V-A3kK9^Z~mp6`7blalSOxFmR9eKf)?&qnXa>M`#3VjoU~=NBY&n`~Rh` zDX%DXDkpq(b#>XeN!R!I4-Z(%{Al*Xd3DQg6y&_-UDb?U*mR@S*1Uft*rk-(DOA47 zz-QAg%#Dd?I;=p$}!!j^cq17yqQp@SB_;5J+yo+i0l11d%Dpzt3#<1r8Zz* z$XKiq*8A)HLp!Za%hjan7w7dpx50asGP5gsk1r_iy^5gi1#m^yOH}Jd&{7(phr&Mr z(Rb4D{BS}=ewIsrKlq?D{!G9P?! zZ%rt3>AB%U;irkno5&6?O2i_WFx5{scvpBOF}c@v#`yicwzH&tQ;S==o%irNa7O@$ zv#G(qEM>Zv=Ah0*f48Y?SOy`y(#!2$C8Ci9`ABrxumW%mAnycR*J0)jf}Ka=d8++^ zx`K5Lw~!DEm@yfG_6knL;%d!d&qYJVt3(+GD@km(PHCA!D{iycVFVvgSBo>|h}20KXRw4x}{geGRsz!M>IpZ8~e1N$kb% zYX|7I8T`W8a`PF0J_F$E{=R(IQY}9k$T2uE3xyviq6ht#Wm`f;ydFxvafdW6(-=P{ zz(D#MFZpl{N~lQnIpJq7TzYv$*(kTkbE!9ZKmm}~jcUVH5cmd&?#_xvLm9#h>;*$P z#CrtO0wS;PnO?X5*kvixccBj+c}0F7}kL}q7cBG%%?{p^tw zUYEveNVlOuNKK8aRxii7ki%{LVO;qv^p^c4`E1j{Tx$=44+I`4r}5p#2^a*X8mV0J{Z%>+stw6}jDwyI@)>h!!(Yb+&uE z8;o|?u&g%o^?u458%1E>-=~2wUl1(;=+kLc=oM$QiKX}!m054_&ew&%A_O)03vLIo z`+=YapwW4D-~@vY5y;JpDjED?0*xCqm$B1|nlnpT{|*@{bHj3K2t#s-bTZ@7zfo7q z8%m`{*lmpOoqbOSq@R2Wj7Px)ok>JNRA@u(m}_hlRTRhnXJ&V?NJSw)HDHX91PcMwO84&0wzI_`kP!HQM4};) zNJIq_<10akkdSDI;RA`UNWd2w`-O+376fLyo!Qv}6%zzR0;WI^A<82JN_XcTGsHG+ z+4qA&;{AHhIse~1bMKjRFX0XzbO*EJfB61iFKF(30E%}82!enK3>pofk^l$5WoC2` z;SgAwU8>x%xAv*O3)ulB&3vG(r9pAz>r6D003{b7Ch7unv%+$1YoMVe7oTpMlE8=J z(TU9Ra{yEF5l>;eD+zinF6xiu5~n!$#zs{eGio`5ml5F0MKA}OPB6b|2Erd@vn?3D z`cR{9*rk!1K$x3Nq>y=L{>&2kD8R9zDoGEIH0_|9b!2(RVB(R^R@A&dptb&1OdbI zk}ux)$TjbfN$oW?iQb{|f)CindkSb}@htgAU?__$QMbMz_@KG966(-X1Pskzx_A!; zezS!BXhHB=tYra+zbqc3@CXh&wRT|Y-n{>?njQHbz`VkxOX10@OcCzcwmI*4&5oP` z;5JwTIes#QJ}s}z*T&=bc)9Z;FyJlpDO2bV<_X_2*310+K&IT)W}wRw`k<`v!MNd< zQcCxL1oj$}6^9NCG`y>C`s>y1ekbLg54J@YlawC=knZ0t3HnPV%Bf8)^8&A!La$7l z`P%rdQC{{O2XOa|PsMn<)5jYt5_G=IU|GX6&|wMvp|tS9SmZ4ttmzeLqbc--njQHE zz`9Q7aH07qlZy1k5NSTMnUlg((x=*lV#XXM+I({iZZ}1^MvFxnL3m~$;2Hd~CBmPkg%8?$<`ERPhq-C6 z!$R?>S6RxR2O#^0J)Jx$5)LQR!Uy8f*$T@oDd8EmCF+C0cyt|sm)y$iJ1nQ$frcIZ zHT!NGd-vlEwLKjeGr!pBtNgAaam76})wgN^1gW)(1}h`HZWu$7{i;nrhYRfSh@|64 zFT(_Q^`QJ^9wK_m4s5&T36SnMY*Xl3q_+N*eg2#RAd4ARZ3?L zQ^gq-*WU-xtG$12rCtn!p0`B(rnJ?jdqT5YJ^=WgtN?_I61+6#4}TM|j0vP*IWgvf zDCZv;yKOon4j=)7mf>}IjVbg#OetGp5o;c%V$iu&nSt>3teOAsnd1`WckOeN zXfd!}^7S9=z;w3@g}V)t9tAO* zus14B+|Y=rHJd<&`6LLxFu0wWPAE)gB`42bytgWHc>MUTBI5ROO}T9Xc4VmntSgmB zuQ=OHq0cH++?4Q|9oYcjg;I%h$4OVO3)M+|hmA)L5cfMUg(|pLNg_#7Hc6ICV!^3y z87|344R1&OAfV^2*ei4ApwL&u{3jD;->4>lHv@_LT(TuWw7$(>f2<_Ly@I6KHpaUE zbzisKHnbUx4cB}}x3|~4)bq^z#Qyz*2PdvR=D-=NNDP+>s|30XP)CyZV4FXDy41i~ zOQmZNuy)r$Q6478yVKG%w=UmyBj>lu+m8G;czY}=CwFw_{{Px&KuJVFR9HvdnB9v^VI0Rl&pBgjcP&cxVu?`7AK+$@m-TkzO6|JX&CBA3T%pKH z6j8fUC|WONFD$w6o)i}(5t0zKi70t@=N^U4D90nP#)!gE}~ayL#YpS9C@&=UffcEOQ*Ec)1RZ7-%FqZDLC zJx$yP+=`7ZzwitN?S@G?kQMm`^M6hNUdIeL9(a`kG7=L7fa8F-F$0bT-u%~q6M?xv zBk&%$4!n#|^@honC5EUi+-(15b%23+mdpv6VWbl&TetK5^J0Xr4+mQxC~imQO5Rj3#m zaI*uua<#C;C3`UgTY%lA?k)0vXu!lPnD{*?-Z-V8EvZo~fQiq81~Rdg#16W!wYUcO z6(XubM{x+-f89D&*Y26XZ$0;H^=kHq5(fVX;B?@!10y7VTJ`#!*ATA+u0)v!!zw6> zU2>tpbUdcHu*%^fU?cF|$9UNaO5|<=76LzYOLaj14uYNqTy$Z$KXS+9>@6qog zW{U#O_L`C|phXN74)NNk^aMSg!EL|~4cY>nccIRL`=Zsqr|%Ju9F_wDW7|^mrVQya zER_NrbRcC^(|aZdY8q9`=yRYGr~}TqP;0?`_8Qy;z(qvveB5t$YFN#`lAHBhU9`LA)&=)h(nsqratRNjR1kiHb9bk>OR~`o}A};E2 zV3eIcGWiKl;DVkDVx9){+4GM5(uITj1~20FSrHXvvu0008|P)t-s0002Z z^!e!f{L}pY=llEB`~KVe{oMcm-2499`u*Db{oDHe&-(x8`uf`Z{L1|Q)cpR{{Qk`R z|IhsY)cpR*{QuJV{LuUT)%pC-`TPKpp3V9E*ZKU+`u@`V|I7LO()<1C`up1Y{N(!l z&G`J+{QklB`rP>Z-}(H%{QuDS{K@(K;`#jN`uxfG`^WhExb^tH_W8T@`Ly)-&H4Vt z_xi*4`o#PH-unFD`uxB7{Mz~bvh(-H`~Tef{M7mW&-wnv`TW88{L=aU$NBt{z3Z*g z>*DtLu+{9``~8!@=8wGT*!=$D`}~u@?7aB=s?O^F{`;}>_W%F?mcs3(%;~e&?W4)* zkiF!e#_0e2_y76xmciYT*pD5kNh(cre)?vJ_cnZoA(_3xVE=kK=9uhrrV zn531y@0!Hx|Lo}h=;hY!^p(8vx!v*q@$3KO;)%ED%;)x@$LG=O_FluwjJo7`&(^-+ z^4#+H|KQ*L%+8s;^sd4GrN8@5y2HZb>8H)#nZe|=+2fhR@T||_{m{~>&+_lF$i3j_ zqs{TS-R1w?+yB$_^#IRpUB?++1YBy(D}yCv)S>-=j`ym)c?oGA)>AI z&e`$D*A|_rnZ(_RxZSz%^n+k-*&Huc_5`w?>yU_Q)#u|Of zM99do(CY(ox`(muMYO+>)oxOW))M3 zKsGNgDY3D#^{6Vn006A!Nkl~1#J#)9uTXD-E$PiM}Yt+%%7#e>H$@7}%La~<2Vjp@)i=KNfNnL^|9 z@fg#gHO7~1465gIHm1zYP3Ky+F&&y=W-|q5Ho9pu>^9lKcD6GuUg_)y^BhD4{ z*_Lh0E*&1~$g=-G-MMr3-s1-^Ze3B2?%(YpfDFgp!K5P@PP^1tdpDZm4yPS*L^&Ri zgQ1qJTx{i2kEZM$OgfUdU^2O6LtrMEi^AE(MAl%Gh>o-c=F!!F3>W+JpUQ#!Ke>d> zdyoE{$Y=MhJ`N7PfBksF`l`+8(sxWf%N(W%te3B7rvBm2fp1n;C{9rW#++Z0KwPNcPa!nMrw0~;U zpKkW-!%SOC+d}=K*uR>TI!cT5>oCy@kr&F^T||N^1FgU0^8WKbLh|V=Bl2c>1V}Bs zM6#XAQX+8^7=Mokq-di9rlpq71TxLn3agvRYpq(R)vK zBKh#Xko@`aMimI^Abb~)XWzf$i!%8sh{Rxr2T>!3sh|)?m}-_tY^lDW6qbU~qTmrE z*-#lewgZ&N!AvA2Y>Q4fYuhK<9PD)dfzoJ{QXR1zxSVZxoB*Q?Zd-}8O>K-km1sJS z(l#79PN64P*S&|`Og>QKKKpp1qGy|f$8I9ezSdaGj_oe$qn5S~$`XllD3e8OQ%xWR zqa=SS*EeO;4kuA8RUYjCXH_A=5Whnww$@ry$$)ZBxikdllu3Y8iWJbd;m}-!+J%nl z-h^)zD9Y9^yM!xf3?#E&rXt;~I}f_bjo+B<&i?^H%JTXL{1XQMzMs)OeLr!!WN1eiBT*o7c{O8lgffa!Yk>{mVxKV z?cU(y%?T<&5wlf>qikJ4p}aVZL|dU>BEuz$Ox!I6k|2q+gUPwZa2#nXwj3O_QO-5! zI6T#ni)1OF#B@LjmK)8r5NLv>58I5}No1$FWuFjewM)K-J5Zn z77mV}2$bQ#(s@h_tH6}D&LZc8*xdRuk5(GJT*^#UFl8x{(AktDN!i@mz&R11aP5`S zEFP_}nZsqQzt^LdI@#}i`uMK}jM=nFw~<*+*vTVD#$O`sB$rgkjoPQ|1X8wW+A@hG z0}Txu&)ZL*j=kKJ$i65fk_Sl}Xt+q8LuCmjC=zr^{n}1EOETVwNP|;%Nf@-8K)#(v zX+|fPuN6yY&s`(mf}{>kJ9TuJII{QfhTo`_&u)+Q%j7Rk8<9>RwnISKoNff8IhuAg z-@JxL+gT%RCz9#u*E@>jVAN;UjyegFay$VAlI-$@oaY~s7;eBZ+qP^6i>i+lODbgS zG;?sIdAIVIOtKXfG%8Cjwea~&8J2pPG-41)vWks>v)RSbHSd)V@6x;fonTRFt&Be! zJhp$a$(Qk1C9Evjjs$!_cQ3ucKThk&E^^S+#B1!N3L@Z`+Qg=ak5t zZJ@FkZ>&Ztm6LF;d;!9A>SR0*B2m`KkZ5!^cWB0nCT!CH< z)@&w^6a!&n#zAsf9W#Q*Qck0SvMvUjnP0C^q6e3n_w9f1J_(AAsb;&*iodit(+VPS z#dD-0Geh$7Jrc=9l3g3sUnFI80CKg!PNAe<>H_3*+*}`?}q|%(d z(FdBic^%hIE}3uiBam#zksx2n30ee-u;{51h;LK=J>5PU`2F6&zIoLCp~H&ZULk`- zZ1X8nM%!UbAf3em$f7_-*a~GL=|*FX9>=9+80XR}WS_HX*|zb4BnBpF*c?>U$lYyQ zNY1s!YTs*l8S*&~=Hx}s?xK_GXx@RGHL7HO#i^7@Y9$2APF}nL`On)w>|n0nz@PR; z`)0D}+F{yt29WJfKiZ~z_c2TI+PgL&VgG8n?weX!fybK3^+Op$jjNrqd+m- zF(ncMkToh3%}&`+qcip^3x_IityBSwm`tqmJ>joOSi2=83hOC%IFcwAr*E`fBbB@W;6 zXK3*}E=7eTuV!tQJi;^Apaii*lGBOgcq|adlt|h6Iv&gCYs#eVkL1qe?#}Jww!B$l zfCS0t)uBjpvbk6R-bzawDHoZUaEw7*y+$4dj`_Lq+NJW@-lrTV(OpA7f=F-L4IHyl zvcRx-AI}mAk}^6;BVlThU}lMw25tWMI;_K@rtoC69wgoi+(YY=<`g z^@C~q+dLo35zfmb_eorx#7r5pGn|P_+fpD|&fXAeo6xn&90=pz<>)ODM4@D{53^pz zKD>^e$BpuAZ!G3YktL2nWGFr${*+57tCD!>@rTf0G>fWdA8c7EK@f`w0!oN{I~Xh% zI(*jFozg6yZd4y*-iF9Tu|DO{vQhKvO+jQvDPYw3CLG6V;0fZopb`*?wiQU?%!MK> zDxYYFHbXcxMnuylH?zX(U^$5=E!!hvn9MRM3hj{i=KQVh1Lf`Bo`A%ooVFpcb$ovEmeHP*n?MmTcZu?doI%MWPwgj^NDO-tJ`A~pO(5M$#b@vkoPuOt zDWij5OLzD~jNWh$^)aKIw%ewfOBGUVT7gU=nX@g*yCg`Wq5Kdff}6~uox?VBjjAJ~ zHX!QQY*SnzJt^;!5b3A0PJ*FaJCbN@N8(|!cqNb4ooX$T(>jivMozs1NIO_Stc~G1 ziDdbLo`n%bo-$ZXifz#S~6syVx2 zGMpAcXt=<&e@PUP0`jepq)Dq*YQ@(YHr3G-PvtV35=l@387wB6pok9`iJC}`W$4$6 zD3{i+*S}diyWPf$7yyH~;sznKG&<_CYNJX;5xqm&M2IxnRH|~3_ZM%2{rRu%oC74R zXO4eZxcg*}J+om=uB`khOST71wyp}oR=RCK=|l54RSI^ID4jqeiwSz;(-URlT0o*= z-CG5ZlO-deP}jFQ-+lNRX_BH{EV^GrF7(+iHID?uy0-B!OEw$^h7dU~hq*UtE8%gP zZVt-hN+0a5ZoGCUh*-o>tkwp-m?L|4!-7d{<55Jko+7R1el!r*@|;{^S%qPk`O&2R z<%gagS>_6vTEf+l9V1H=*|7;B)ES~xsSD8(Ba)9?i7QBw9Z?)7OuJa|m;B5hd`vAFj(whBp2kT;VwGm;#2;>7c6n-Wra(Z9`MYYiNQYsZw?c z@wwtRX)-ll&dx`93SC)JKiu~MlGn-)a_#-+^_3g^FpC0_;MgBq)Z_=#(xaQ7es(BJ z`U}Z&N_yee4qLWRd1F>^gvgE8Z4~YHksc@O^?Y{&f?`IQzfFWj!_Z?sZE;Rg!?gvs z9Jyw@Y!kzDkg&U+F41I05~IeJCLPH0j$nMered}Vc-j6&D0kg8nj%Nmxzg%3SYCet z{{7wOs}f|-if$`K_WSHUk{r*FS*)9N9x?p_5!)v~n9k#2niNN^-O_Vwn&bipA}c{6 zb#s&NEk^n1dw>xgmx{h2ktA6bPinQ~$&>hd0}dt*SH4%{+k~^e7QJ7I*S-IAta7{%}66GvaQeNc?F^# z`j;ZIs=b`kc>f5EMJ4#ZF{DM}FoQnM7icXmBv${NgL-KQRFsD)!P8Xwvj3 z$#L4qd6H*nE3uLyH{b}6Xd|;<;Iwx@y>hD_pQo_^GUOx45g6+ugvgVoOL1D!P8T34 z+w5%{Rc-;Yhy+AXL<^h{xs#AT8gpd#EkTy=Nm7tDkWoiElTR&Bl|$HWp( zL^Y5yKBorLSmx<_u74Z`~B_Re@>C@Zy{ETJ!Z+J zzZ5Hq4@n+d7=O`5zNpx(wP}7rDGS+5(?M7iCO4C|GSdyUdvhd5icTic)o{Zkx+Tcg zar3oqJ5;vWx<6L2HXSkNNV=R#kz?`Rx6Yfy7%+-yasHeY!~!a@5gX*;EJ|fb3i$aI z7zvC_WsvXHZ4vs!S&}88kSPXnFqu|f1?Am`|H5Q#B$MPQN~0Sm^QD0qZ-1!Ug(fgs z$;Kl)R?U_ek2uee`5`M2QIkNa?okyb`?vwYuAYwoS+6ayb9ae|vxx2jm55r7l7I-M z5kG1ioJ!D`Y*l-Yx0Nj)0J0yINzfyf00fmt=TKua+1^^0wdzIcMfwDGtDsYFt=n<#zRaI-P}hkwLEq)`}T zVp`=!f=45AGfDBjSxrIYMu4m?8`Wc`Kma+PCOeRwNmz6%OLq={9LJ13;t2*+qT75j z-%l2yTQM{_QN#K0ccuUmlQEBcDc$@-bsCcGZfDmYR=)nmJ2tqKg+j=as7jR>&yvC* zJ~W29zTt^XxjgzAfSjL2B1z=zGjcQqTUR}_a5enUifi&@8$>b!Vj)W5VKOcS%i}5! zk@VU)LmV%6m)mVOW5eC!NRiQIrxmYp356gj#@xL+0O$~6_E1UfRz~wTT8QP-Xt(u@ zxQ*PX7BqPtBp)4*m2rGl5SY>)1)b-{=1=5G$MD`gPm|T?VD6z5APdQ_1?A@g6IGKR zRyP^MHSAqmigz_yk5&|Shk|x{x$>7ryqQ>>tyosGnE8;sgL|R&Otpb2v zzi|Y~V39FV=Q3awE-hh>Yzmrru&hHR3lBcMfUCk>SH3^p%@=JJ79_R?}TPk}kQxnah&_p?Qr) zMA)Nh>nDDn1F`bTTYan%xpbyHg>PB$5iJFLFEJY&^&?A)CiXU*VI`8Ccf1**DW__~ z>(J+rFe%*rm5!Hde6WclJLMG^V<=QaQpo>rrc4y^CFnI+xmQGkfxUDxP*YDl_{`S{|)NcNutkT1+6BS#jCvYHr-Xp=Vp683UkM5>*% zr8(F^lJPi~H$OBbv;S^f(+vIWg83(oE9f^@R50xyeVQGLu0k!v=282Dcx~_h}NjZ zBIHIE;^fUXH({TJH^6+Jsoq+!xlp8nBhlKRaMFXw{iFSU6_Dbgu^Bs#zv8j1Sj)c# znzY|JKZipCLlG0Wa<@Z_lGsw^5|tb))k5YVP9Y9nU4avV<~F_W;tOP)P_M^=WsS*IG)-*T(iILbGq}6S8 z8ja-^k$*sDySUITVVEO7@4@SMZ+9^Oq=gkh@>r=~@I9E10;}4Jb*?5h|5pkH0zl@o( z#^UJkE-H;Y7ZX7Li@R zkWUue4Wmhb1USY)8fyT6#L!rl9O{!GeMh;kpVwz)42b(ZNU}XO((vHcrK4-Z4-7rt zS*-t^*KIY}*<_io*0KdZ8;ngjSJvpfx8Pt|e*rvAq)OCe?pRz6IO9jG4jPw?7#Y4KS16a z?h(iuNwVfrq$bGUZ<+i^x{StK=i}2++iiB7Cutqy2 zxI_Cc8WBs8d-c|B0wi)`6N@tKlOZm5RM!PK78M#IYlKO>H5QXd_mW6Vui)TlY*M=G zD!lznMiNN?ekiy1mNQu@SI;RwL1H!9e5ihkeEar?vfb~t1IVo1;|Pd7P$`;k5VE4y zZ7I{z*ND}4x;Y4r(*%nmRBX2hF*XO2EVW2B+zZVPNY>!IgowsQmS}aOU~AX29-apQ zWKrwCuP-q`M#5y3Y*~SA4l2c(@aJNaRTeW$RMl@Z7LVQLmL-KHii4$mLnjW7d91{! z2Z68euEFzKhb8s`C>MV3xqt*mG(awQ+psvkMMH_G&L$hDpCNnozI~Vu!sCNqZEJ(0 z@#Z*fI7+HMPE3M`6~orvRHCdOg_bzdBWf6zD|(oJ7KY^?jW&`cF3KE4eE!d25{lCH zX3d$>MdQ8l34nVu0%6ActwhB27aFTr!+S%>4Qp5oGA%KQxTT-e;LEB#D;#7zbsg)2Cy#MQ9fBrkO zv%?bb%zDN>aQDd`d%T;SOdD|@iK@5_jPW(9&sD13=G%@XB(8IAH%la7A2q|C^jdpb zv~gE#9HdaW+?=`0ZyK9fOd68ykAsch!g)m3TePMJ=Sj#U$w3@PMh0$06B{QfcD^cB zWuUT^NwbpWR;G>wz6S@}*T zI)rv*QvM4u5s(DUd(M3D8aH7!1Emw>41D;dTLV~Hb^3@e%Y;9 zS`5ER+xZzT_0Jx-gG+SUKa+w}98#sssR@S&TO1{ZiraAbRr3%w8{8x`iYA12NQ$sH zkFv6qufzt(RrE$>U8uYy>h6XN12NF7o*x;k+w!V>es(AZkFoUGjgh!n{h1`qo@YsG zX4x*Yz$jjF5k$F86eiioAAqs%j|9NxmRl~jvv3ZM_1RObwRGOGuTLhCb&w1@1USQl zNbECT+UJ__8sDR|FB8aM&&K>ED?kd1*lc8oh26cl6OJ9oc z(O1M*JfRVZo$u!G-@~B{^_@bVsB)5OuRjJTV%U+9^9LN`S*E+l&>Fi%DS45DqY$^l zVfIK?rW1)bD7Kg2C{S#^!N!K(HDCVoTM=a6;~PXKSeAoCI6{_mxs5;V;gZEzd;!Z6*u+Qj?>Iy2*nm|d(spjs(3T0ftSs1`>kJx(@?81X zn;k2CBIOzF6~_wUz!|X|n;(xr?!DF_d>^_}B+60D-{fOi3DsB?re0&#rE+yEx1R^ zwpC;Uh#xYD-wx(bI8d5kCXPLjhF}rN!fp`2IZCQ64})f*@|BRs>Q7yWD^$9cfG41y znd`V+cKqI$8GvfGvluXD1pneGce3dAo5k=N4U(pH;wo7z>1pfe#$n=_o)R>nGM%I^ zMkIRQQyz*&G(>jwAA+_FPLO+0>RLcvc+i;aCLObYD9-XG(VFs)`bP@n;AsAm0{J59 z=utabFP1G7k?@TWDJoL!oQ+gz64Q9Z9+b^0D$5Zzx1pY0|J9AX)29?HnH6U9zQL zEi)VJWbqMQQbhz zwe0z-)wsP?ytb}<3hN~CWdFk?i293*#SqHtatt% zIN|%(l_Zcm#UBgWN+tssO;zQG{j5VVoaVq0`$&2%u9BE7EMm)^)P{!)XCYjdi)86| ztZPMhtRH#U!BHnWwkTUtV6=d=^aimYZDk=cZfu0@*hL0+WjUc|oo2Jo8%Q+4{EH3^ z;vT`Pzp^5D+3(x^m2dSX8M5_z;7TA^R`BlnGg2xE=dt8Fi7YG~%zY?7na(55Q3k<# zn@j^TPm-#eN@OM5WZAQtvQU`3NP%1w*xf4CZf(i1)uvaHNA)uBkO^efCMlNVC?9qm zWC{EYE_8xP>s7PBoqT$qFRn8Equ65?$%ZL{ZGX}YK-yIgo9eHGPhl~zL;#Ql9>2D` zeoAb8fKeXT{l|X&S_dp;kb?J}m7vFnb7h8YULH#<*~8;qXG)NyJidEhUeAozZrm^Weagq(Pz!`XkK&m3@F0z8S6^J5yizWpJ!wBCZbY^t@ly2)T zXhb93?}00jz=(>^u(5+b5*`?>lBJVMf2B2~gCwfF<<5<{gk27PJdtY+J9;mpoF9w862mY`C=OEp#I1Y7?qsC7X9$;IQkj1WA@b zvu~azY0YS(cXH?>72+3-AQ)yAD^dHNlC9$<=Q@Rb1qK5sI)$ohze-E4#+{%+I$t6Cr z!a0g3L9I&Bk9YnaIA=;dIBE%qWh@*YnSBwcNx6kXoFw%h>y*5SMGh`55*Qcba9PA= zvzySSgM*qt^+_GBuGA2O^h$oqK#bJtszkF3owcvt)`0XH~JE(^zEGLQ`l-9DSW z_Nv$D1CD-6KTpPvGbQd)WY=H$W)syPD(l?{X5rY>D~Z-ovTR!`<8M?&M?c@kwrZeAvyCT;u3LneQeJRHpKH%-rRqTj zrcP=>J4eev5Bhjm$_7WCfuDRSG?{?MTDFXg>G|x6r#O+017>K&GAflU=dPd9jrT8o zKV{iKIl9+@NYU1r!Cn^-jawb|fVuuXa3%W3EavKy=Z5*X6qKVYxKE)zilwCJ={gh$9MHug- zejl8g5M+{lyMQG+m_%D8A`5Sx26-K9HYaW~Mz);v|(wD@rm?SB{-p5X8#HqHb+Yt>)!*H$%!-aZ<#wi zL)lLWj=S>I*2yE=o+V^oh}-HYHC|_FQWlHf7PqzYg0~)`G->&b!U%}ETg3RfIBEL1 z?A}Exd$!fZ@@_2mkLY$c{^UMJCEsmHDD5uO0l^|QVm3xaZXc+9iR!xDG^&asdMdcA zlchEMZuD2a5Be*ivw%b+^|k(L%!rHdCgsU@$j}I6=C9L>0>`_451jB_GLGD>#0UG- zMV>@YbF^E?5Fpd03M6BuX%ZeM)r%+`B#)gTsZPp1&X5ooI1YUyf+NHRQ_*+VgC1A= zpb|=Z>Dg?2WbI&ZJpIpp!9+pCJ5&1_tjYvSmYQ7bOeFvN@443MzTsHt?_pZ~I zRA5>q$|gNOOA0Rg^D4`UuuUFri-UBQ6M7dK9nVor+53 zk67TB={JfDTqAgv&w2i-Bs4AnVRaXYCy~oV{3IC87QHz@V#}^7{y@B1r3vin|T*zmY@r4v}Pa^F~=C_v#JBYwAizpQl;&Z12A zt(E&w*7wMDTRsvXl}L4x^T}MKW;Nz8XFo}z!`5a=8Zc&vq(ZqIXOOHZrY;nM4oc!P z4w8u7d&#m&6i7r@yd?>EQ!{6KZ)J#CHZw6ruoJl2)}~L1JZ|G6ozC+((b?*!EEQSK zRdlep-Crr}4f-qnV5xc~L8M3)hA`HxYr*1=v8^t2@u91?8&UTrIu*Q|0uatoPLVUo zjbS;>)Wv0hA%abUqn6gm0di_wW5jQQHMY>EHejlRb7Zc2*BVqk`L2~+lkPm+gJu5( z)xy-tbQ}lAOF$h;BsnNHY|lX2QOUtl2dh}=BwhQ(PUPQRKV{nG8hux{j_E8}lE?xR zPZ_u1`LMvCTix%0(}hmn-F^(+0sXgU%4kdr8pB7<8n&O{@ktz|*q2#@xbcWB@fseF z*f+6nns{r%J&QWd&Lcot%I$ZGd|E$jSpYG)R0B11mlS|NQkXld;}zTIE>KIpIHYv_!wGoyaGkuPSHqpWKk*ld3fyeSQF z(Kz}&aGm{)&Z;7bavzCn)G1_M&_bXr${{rB(1|^jtzMG;a`TS!WQq370+(#GJSj?S z*(@Osu2IFL?MFp)xN}ai14%V>hmE?6Pv|PgnOo;GRR6gb-w(Nj#t7s+t* zur(4_{gs)4NA%w4uXH3O1K;ScbXTdfca=<>Wc62ezZ<~_)pk}2i=C?k$$$2gPlLB_ zP5>!NhQ{pEq>k~V=wVOTlb;ckGle1WCY!Nvupb3=;-*G7z5vzT0gkg8l$t^WQk9V=5VyeaqwzgF~f~sjFw;eSal5Mr-A{`(9<(nSuBHm9S_? zZuPMloWPjP8Tia<_ytZ?KG_|O8X{YO4Js&2!|rFGgrwx$dpBc_5l=m5LU>G4Vq=-BxyL$>^p(PNm_rUtS({) zpbvK=SxfImfiP^0p>+KiVUvsZT-KqIgC*;#zmhI=Z$cmTSH61=KJKps%8fR*_N!Or zG<*3`!nmmB_rSUQ78V&6#K%Zh_%0$Z<~22=5fCkO&+|;|_VeQ@UfZ5dV%GgEmk!TZY-b*=xrD!2}f>{IJ=uu=`)$vNw`PtV+&@ z!f7&xg6BN;NJg2GC8BrRUm3j_XK+0C{gl<0(S5HnbDd0i2Cso<%ddc`khTdoev;z3 z*}l|Wj_vDx+gL{7yULO(fcUC@lAX9oVmImb97jhyr7U6lp;B}03oPOyDU?sTU$B>h z@yTH0NU{m+l0j^?xgUdxgRF%^rMI!cBATqnSpENa!e8m)6MKkbJmn^Jx($Rp{ksu( zMevODJ9J*_ps1h^`YXGB%EnG2_kRyOIxEwzYeq)43Zbz8(R?LB`pw)9-}%BUNUA2c zfk$w(+y+N!jXz)rk21r)&AhY-i!r4?4=wf>j=viS254F7M87C>tLyKRYH$T9T}+M_bT%nft%l}^kOBWzitdq z={;=u~OG@_zt<~G4dp$%f%9$8T&%$mIwS!liFS;N7PBq@Ho%< z0Om3gwk_E{;3xw}9`l$+-cgAR{8qi?D|??vh>P~M1XFoLBRjtG;s4QDK#swLK!+1B zL61!@6wdu1SwEnMWtmPKEAvw>mU6fKm0qnJ^jGfu9(a4Mgv}L~V5seC9>Cjv-+HML z%@exsr{wFVuLk6W0y(P;+@(xb`hnCI<#`Tn(yNpKR{fMHY%aeYOt|d7SDF33-S;ZH{z|YMeqV@Yp(3)xx-sgB z;0=q;Be_mQaMnRd=yZA|U~`m|iClO9lf)a_Ks*V9#Brxlgk?F3#$PV;fl4`%n@8+G zPd7yCW7&(BA5DO;=xpo`%zLGRd!9PoUpC&HwW_wRLz%d@QKL1QJe>8E6-9j}3N&A8QH$?U&Z zx&M3M^%Fa$`8^Yz$Y1i4Jy-p$fuDZ*>D!;a{q|Yr^AA7#aQNo%%{Q`sJj-9?-@gCp z@lX9dAt{-@DXin)1E(Z(0?Aj$@O3_cxksN;N?k5;DC zb&+j2OEz3{V}qzcx4CAjV`}6mM@ZuKkg|12!*@s<-`g$v4lMUxq~K|reY2fy+*c`6 z9#uMgg5=jP-Lm2*$NiNu`u@uO-vej&{^gHfUcUe7+vfx1F-3i&rWs{3v4zvaS5rxS ze7S!4O9<_tJVk1wEE<^?GHtb;MA@kr058OaKx>g1~ZS zV&nuP*#QYSw+J9YNVXv37g$ILB>xCo1lEO!z$vi-|?hwh;P`(OC)|sv1J18BC(rrn{W6 zjX$(9Hc*xz*(E(kQ{4DrPPb$i-HUK)9L37AoJ5zh29G`ny#zF7Vsx`-UcGP>9Bk;_{w`LQpgH@PTC=2?0TIvLzXz2dj0zjEYz;4P7F zUp;vh6k8L87%1Wz4SU9+T%%WhS)zac)ss&gNX9CXUtdB4&e zw{o@&eITW`twqEnox9_TQ*s6|iq<{e5)6G3xA@MzGXdE9+QEkprA+8WNP~{MiUIT-8rm>32-G-vgJv zda~G`?H$ebW=DJG#N%Ecjob{}MMs%~_ClQa80htA0_CwHrL889VsFwN&weGHgCI_m zBNBJfrqIl(bh=Z6GsjB%OAr`=a-BotGV6nnUU~ZX`nBt3*REZA{Pc~F7U{1;A;u6b zZPFUh5kPmNbipqSF~})y+Tr-F6?m*C6PET9k}Z}rR_c&PwYLU>rMvt!N271b_rPEK zcy+wDcVxer-9EskGIuYQ{BmV8sHt@3g+FGsUReSsd)s~DYs$CIRNYW^zeO{zk;%@a zsu%^u(491Mq^s1=>js1XnMV+e5ShZ};Tw;yW7o`X*nR!_jZdFmJ)GlJp&Cr>RHhK=7VoQ+PtWUc@y?9C?}6u)rD||9 zQzwTO9utXfM?^*&Y8c7p;<1J^DsO4PJmxB)k=uN$SEg5UyH_45XU-y#5+vPI<$zqa zE*6cg)@2C#U%+feq*Ps#mX(Gn(q~*k@|x_1+oxuqJ^WA=c+KWAw30cRyE>VyLM9pu zT}4LIW2Zoqn2Z+Skqj;{BT^D48Ty{N&5e~d5tYo`^eQ%BOkX40{ylImTRzT-kB%gx zCvHZfq>Y1Cs%yqZA19r$RAl6;^~y$&^dIS)1MhrX zolUt{+7^x)mhZjtI1y>dTTD8UpWVLw+3klPMsu5v97CIvuZtUL8Pm|r9mvJ0HjZ3t zGKl4LBI8?8Lu3MC)nCal)WW9BO_5`Uhe~y3P=0go@I7z>`xp^|H<|g zBirIz1P<%i{5j^5mP3PMawqAS(HS)7ECObZkMdU{eKT@Nn=KicC2gY<>2T({=M-%! zS3nfwCr>R(3P?c-lb?Tn>(=MD{ytQ&1Y=n#wfVyuKwlF`a8*KocVHZb<{HEjx4R`O z$1DOR4)q%I-p&j%I1UhnBcnEjaAV&Cw}R%_QB=w%NP;6;LDKwSu@lJ}S0Cq~jW~2w zY2zwwG@@BjlD@V1litMwTO~XqrQr||(HOcbK@ud<%=uILDa$qz6&aa~FKx%}{MWq^qzd6UD%qsCZN>V1_b z#731kW!sV@&Z4sV9(dJXd6g9;b|f#Yn%nD~w!mqDEZaY=W`{EK2Y_Zn8X(QgTcjj? zQ|CaSIWBf413>}VAW1t$hOm?F5|W_Um8Lb;7O4(fE=!N>J4;wgiGn+H@WDoS5BfFbgF-C_c$2b0$po~Cy=MGGMckkYJ&lWnCjBX9Ivt&NO?vSBL z=;i5(WW-N?rE1DX=11eU)2XvauBq{I7)!ir?+m8$IB@nIgR9t40KnKGRVhu3e$(#8CyfnKuhrh}=lh_(sEGIn7~H2pIcuZ2BkBZU3YX zu`%hox{f)0x(xW68Dsl5iRnm@A9UMk=4SLa_f#%Z7Te?J~sguW! zVTEMH!aOcjh*7Up%Y(ivV5}zK~!5N&3ImlHoqPfjidX{!5(`L~2SlRYZwz}<~Y_-Qo zsI;4|^%K^VIYw&843gBlIxLdNL)+E%S4uB)+YmL6G+-V)y$*yK$&$OZpj7e}lowz4 zPLcv)TAaFe#?jegJCiC%w|hpX6FVjAyH+yK0aUt|$N<7XJ-+~RVim4nxn-*ozu7HR zIxNAmZDXVK4kY6QeDl1Kq+M4uy;^^w!W#l(DcRa+|0FGIv*G?pX%*g4>!da1x)eC< zQg%MYT{)_{F{127Y{Ck5p`%U*LNsg6q%C>hXe^lAOx|~mNwepKJmqI@^P5DLeoZ|H z#4LwWG$W=sNub1u!ZBN1rU1unJJk`8s&fjEL(58);LaZotNSaR$a$crYedgd?QOGx zBb=Dww)RsVJD3CglhP}Pkvb=3aPv8Ri$N9OUGg?4Wi+QZm6E9#GhbHchwa86bL~BvRrAOYiOdlj>L7t$&geMvIV! zqdCLUp>*c#b|ll3**XcO@V@R0nRM;kD|^GVPpHse0YWbEn2`)7sk|+DKQJPH`Q?|3 zpCc$jTIVyA+h!79qh&#E7}}5|OhP1n*HFndwJ&4TAQ6Mh(0ygNs&D5p-d_ogXr0%9 zo`yyrwHh?lMmfl%Zd|3|F%KjClW1!1+(wy`H-*mJ<74MQa=SNUWRBEn4kF-_8rDnc z)2urJr2z?*{IED)gh>J=D@v$*^o%g9mSHns*LsoB2TCb)cgiM|YbcBuDKbguEGu&c zH$6_J(7Z$rAAjf;9Ep!UUd@5BH9gu`H~i*kc{qo#3Pfqtu%4OE+vWtzA=|Bgk}jeC z{z)VcK&%{0bJ#xjNo=0ujzpyJQiD)v?pEi-&K-^E=(!OYY5eqcqN8XGB*i2}P8BE> zDp{n$QwLU^D5T`+(u}{a#K<+e3X+PHxY(%#Na-y${iz7t@MdNE9ed`nrnGraYle<> zO1lv5a6VeqFllvcQSMb)8^2@!BwERPxPMZ5Wey+-mHR#+Qj)%lv9uJDNS)b;(mI1T zS{FC7=Im$r@-=~2g~=##0?G$ON~nAWYMnK;`y_R4sz1)7=h}W?=>HXS{B2#}7$s6@ zcFilld@bp9D@nB@`AS&+@c$g(tV?ps3@=F7)OMRt`V$mvMaZ?tzPXm1(#fu!zKh z$ePLT>g0_*&qYh8h9sKe+!KeH@p5$?#uG5zuZLnKJd(3H9oh-Vh3<)_C^>8eLd8iG zz9qAKb~y^2SV%@FoT6ts_1;TtGHGp>{>d4{dGa3UpTv{40TRET+`iIx6)M#wBpA(M z{JFqGF+}4K?#kkg$B%j3=7v3ObHZb{byf6sFOtgL!K6c(110ta1=GJ`^fDJvu*i(% zrcGV=wLv3Sqt(5UpPAgTF#~7Uv?q3Ud6Z1~ThHtCe2Yx)t7KH#erfNe!NnqKOcNwy zD~LhkaML+Hw0qpP{>jj*6`>L^sl4shmJoIpU=kj=s}2pgL-c5%ID8t<+t}v#r}j|8 zzq0-5%QqSzbKT8Jj&_4sQHn`IWx-mNy@g9@CSeS>8C6(V!8CzoGi{sqs>wW8=9H_iLtA{zWyXX-2jqlq4@ACQJKg*czENp&pyq+ zhDj|b?*b)ELM8dTFiCfZ&|E53FI8cM21wj#(1?>T0Ao>EcMFfi%IQy$sQ@3r5*KL3 z@LE5XhjWXOewnNKBbg0rfDCN_y4HdB@Dby9|D@7)fB&TP%DGgX1CeQ6Nu(5jXMkA@ zr8vplFPUqAC8eS*2-2=wpmf&E{yOc}!PBCI#|V=!N%H=>36v#L-uzNeP~zav;~~03 zyGf^LnTRwGg^lHN9rFc4X0j0~C)xH|2dlq}=Tipp*n8gio_J&!iIGG7ldf~!%{>q& z$NDFwk8L*CKN(v6lUhy^DM{b+*%_Hzw!t4d0g3KN>*6aj3Yh5SQ;;l78f}EXJAWT+ zY;L|LD1%7Yy`>&Xw#}pRE>M2+XD;H;1cqd)cnOvMvr+JxB2+G4u9!3^VbULJ_RPlhP|@rHhiR?LfM*B~-#>o}91GK~A?qW}b9KCvTmW zh?kATmPzvQ_kVDn1Kl4&qAbGXCX@GSCcm-E?q>x41Ja2! zZ&0S?!g;A@RB&~btz$~4&+Iwd0ES>fku`)5@d!E> znhDymS%+8PrAtIdnD_{p$u9|+FxhJdI5Rvja*xGHCGqKja)inHBe$|R0bk5s z!ibX!lw3!b@1H~jgyTq*D%(RS!t5 zmwvfhH~o~M4}7NBND?2fz^6Y-c8J^7@mqfnTpQ;~;@Dyj9utx{rY(Jp<9bE`?ihyK zPUJxUWGZmR`zO(mi7QV*?8{Mo!(%}(@mZN`ikW}!U+@K)W{b5 zL5GW@jASJ5y{$IhPf4tFEbC_&V;)HE_CCs{f3nppw9}~mUdnGAk#g?LohA6RrWBur zfe~9jjkCjGQpx)P_C@*^Er^r=DI|kQL-Jl>^5(_O4J3cLX^}EaZOH5eMCr|-RizxO z%CcQ~8h6vjrV4!596q7pck1`R$>V_~^8=?5V?wCpcgg-qu9@lj0SJ7%Wj^{o%CY`Q zA6Do{;H4464J1=ThC-zM;81dcEtYp@EWCY9MdHF*~uE_eMNIL`bEBm+xaY@LsBw8W!s#@4W`j!Tw3JmC61TQ zteKen;}1j9EF<|7Ok!26q|O;i;MMLVSEH9&S5`Di@MuK+#!9#xe~&8uQW<=glO2ar zQBoE=L2l#KH@?-{p``T!8pqm$#``B{Tl*)a;W7755-3HZo9Poz-%cfgF=ufMZ61v} za}3drtZT+IhY}n!k`X8G6(*^4&e?5R|MhtgX-t~Iq}fkq7x(YqzYvsuDO_6iK5vPn zxf3eM(s()1nGV3!U)gsGu0TnxgAvj!H3)(wnOX&T()#NL78)i^6Dm8PtXt3wO18m&`@N2o zS1f-+WU@dKChxlik{e7u4ABb1c#4 zOiAF((T*e)b!>+lZrTTTCO4quUu;cCf8T;fF&S|ZC@pyhmR#V;hEPwe)XH)lN8Y-m z%hM703;7k8)zcAi1P+~~ar8DU@#8lAd*E&2#s!-EhWgUrZhJrFEZ#>+{@$9phx;d` zhx;dM&FLaYn#XD1JWg~7edazmPZ3iZQbQvu&C$=Bjs{Scw#Yw>NlNL|e=WYUJFex(4toH7YlzPIg>8EUTez>t4sB!>uS%u17EAapQd*B!yyja8KK>y^V ze#%*L@!bcU$=)yJ4E9e-bLu_ZKZ#bLWV3QVJ(&ZCe&M2@GG%1NMwW_T_YZOB^BUC^ z#c}d4G&LqeB~2?WD9&pa2^LBrWuV;zDxw92R0>*z7#guk8eIrkWR+&o81P3^f)WXW zfj}sc6ofX}guoaigf4`}1cc}!*sfgkd%pLbIdkW}H}hs{>G$5b@12=MOZj;2k9X#r zf?$gK2=s|#jKnZIirj7*Kb4;=53K-a#4L`gP$+-x&qsOw%7NYUlFnSDev(KUlcC~W zQZkn5@szgD(F`)`DU;(X1xpU`x)Lpu8mtG7UI&t8hvx<+FAc;~GJcXaM%-0RB;7zg z?=YV7?NUBUi=Tw_fRZZ3QxZlQ$f7ea!p1c^80q>^ZA_x7c91Ked^Vs=%7m<#5z0k{ zazakq@!L_9ACgrknH=~0B&h^}0hWu`(;X$nV<8P=^JF&n-!g~$@{_Sy7EAidEYBJn z&*4%fG^2$xcPQQ6@UEJ#H24zYDVt+kSR|1)e;bxr>Ul#M>Uo>ZUAK;o*h*7{HkP%#>vvCzC2|Fq{*QmC93|0yUhe9TCxN}{Y6g|Mga^V^N$OuHD?T4#` z#z)6JKbhz$7p48Nme)9@L@+f!LVFlbX?B~~JVZzH7L&M`tzXx%A`>-c^47+Zp&OQ= zxR|WwDC>T*7{*Vc>zBR#e3XsV^G3%|H6JB7lv`5yCOfg@0C}EL+#mlgHShMhD{MX6N$6FR0Et(! zxcLT`>L}CVE7egdiGj$XomkrXGEIJc@YhujTxaf3^p4i+j-NE!o_qiMdfv^o>v?nf zwtSS-o9r=+?6&(BR0{{Rp*g!iJMU}}7%2#&k$}53z;hmtNys_M1<|c0 z{4i9Ip5NlB5mW}{E2R?6kQ80t%tN3r@RlUfp6vwjl%CzD@s&J7Ps~@@=Cb?BfICgc zmKn@OPKMC4AZa^p3#IgF%bbtWMNwKl%GXiP8$EM9@5+3XGD2QFB{-vlbkj2UBWJK9 zY5Y)NDqw__r=5pMB+-Pk);{`4LTNkcMV-9S)(UX5Z1O8jyO+l)f0v_3^0EjdDa`za zq%X_pK_uJ5cuL>q?47o(v=BC+s3c~LtZW!b^OnKPoqj~gSHtm>P*Bf19n05W&pWuS8rKpdW>g2a-11^ zO2blc{DzGZC%YdwLh2|(m2xAL$5U!hrP>yVuB*xeVSHr^2R6&`o9Ropjcj=M@)nb6 zZqhFPBX6pne3aShd7DY>UT-~bji1Ctn@!+&aZTxn1c@?4ViqvcNy3&7RpivUOmd3e z-qQNc;hvt2zS4@)m{cMkEG+E4^~py)AN5E<{vK-X@(&cLtYA{LK;7CJ`s}lzp`km- zX+R`71Y$a_FrL!4+t4k5&A3$IRs$*x!+^{5JgW6QYz#KwEqkiSw%iySi=Q+bi^;Tl z-u309Y@nVuIwx;C3*zX8vd|!PlbPZtZK#@$GF@T(q}g@U^VU!dFCV4tzWsR0=7^q>L~;}E zY*ikwZnT(3H}bCi@WxTo5xC0B{+e<^xq2{iQh&;H^rWM5L^Oe;c4`q%Ch=_2G(I;s zx8<~k*Jl64{h_b43Ibs~rEfD|CG0jTjIU%=25hVIm@$lvM6zcm(ys@;w;GP@ieuf0 zgVO7HqpOQ-yq3B;w!^^mA>uL`zF*6_xK!}zB)P8SUqrRY3v$y8(gNTcV4tFjGy%F_LZ4Sf9>qeT+f@Q=B3m@9D{hu zW``gL^N!uLsn|Vs#Zv)LczUS1{FE`tg!eIck=6^?Kg;i*F7VYS!~Ul@moZ@=;#OQOmXCCoyR1 zATNHBW68E7p>BxC;Yva&*zk?QWoLKP-ARjXG_O;)g2~sB69ZNR$Djms6~5XyS^?z^>1;6Y0k=V~AVBG~w6yfJsRBnYUWi`=PmQnS`bceSAp`aIORp}auv;!OUOG2@^m#Px|AWFk{nIW*lb-5%FY_~yr<5( z{}Js~@=?BBk&hCM-BcM*3G56++=D;bAdsMTcDnOLwP7A|6Slr|Re5rtPiuX~Sl(~~ zTtX(ebX026R3_5Ek3$}oH_9|Ifdwj%G$yy9^?cG%W&AC&_8R#rc|p@1co<(PT&kN) zI}uvViSFAQgSk}QtOBK;0|AwEt(vPOl?nMMXB`}SYS;6gbbs;6nNYoqq}xtya0 zGuHFAe3Y)~U|VrQNgyL-5{<4Ao)HY<9eK}e@tKD~V1Om5Jlz+kEw?NL570p6593Ot zPT#H?qi{Sr8elS8jNSWLgCSSgM_-%W#++&^U@s(|S)|mb+vKC!eT8e(Y zeBIB9{!+8GK`8&+lL<=Oa&zup=?%5&;0Qlh@#}f7c{x#&Y zp3gamWrK-RY~5P!s|)I5L`B%1My} z(RMgt{aRN6&w|$}0eIIo-q_;AQ}?z&`Q*uyvE(&nw)jdeDuHH@uTqT``*tIGq7K~5 ziN@;nlvDGfv3jAjur(2Y$*$EBlU!6@tajlI zI7&{~!ehrFJOPCIhqlnAC2GyJSew$dr3s%o6`vQ2o{eYk6i?a9>#R-RW$}}ZKq(s@ zzn*vHskt9d=}q4NkX*`5S9gR%98XCg z0U{=6zy~BTpqniN1Rx3LqY{z;@*-HgcdvNw_U$6t?P3wVxFq*WMKnl84!5O0MO(s) zH==cprfq4`RWAu6X(W#z5*i*J{&6fVHv#jqTRdg!NADhP4dW|?OV3*-)&s{-8I!S+ zOVE@;Ipfy@A4`RD-+dp-GPzH7$^wJXbtr(YMm%L4KN-0roWbUOy*Rvgm@QAM<`qgH z=y^&GjX((?UD&xFKWRf?3zQ%YU8Zj~ha^dL@3_y!W@`bI4oSGk3-^HI_uoH-)}`ys z(mFcyblt{4+v^X}w$X(>rSBo+Zj?iXQT5eV!^1xh|93T`R3AC#SRNOnE%zOipyR z(;b>$rO|8(J*CA{HtH$aaJ4E}7q~DSe^^~#prgs<3tXTlUx2}5=*NzI34JG08lhpQyT9K(o=*w*C6{qLi7Kv<|s8^rEsYkeyi03Cz>EL6O{ClH9ci-8kDx@xm5muk#MeDItzr}+ZRK5vypn< zJMPbppXRL6lO{o_yYI;2Cu2|f=lwb~1vlx}^F~wuNZCf*TT^y@>KrA;Pu*m$juE$I z_Im>7yTT-A?tfT2pVzpmD2|hVVM1nXVl2^+#rQLY22osOFr!Ye1T{7T%|s-Gjs+34 zq{Y>gRu?6Zf(!_Op{<(GO`?mDKsPBV1&LX7V+(>%TuE>vfwn8p`JQ{;d3Wx6lb7mu z-h1=TL}Mf$zW1K{PVU(hB$>t!-&Spv-!7NSTU&JMi=(M>nUE__#Wl?biSYYlYMMkS zo+J{9MbHRUt7qp#7h}48`}Wn_)2V++rrmx9@TC1{z$yO(lsN?-VYpDB0d00 ze)zrLBJE~^vc4jUL)nmDez3!u`#h&m9=@Nqr8!a?gt5Gl0A<0P(&{G#${J$bH)vpg zvAvv9PZ{>}_S2m7ddd=r6D!msj7LZ%qVnaT_j&9lCchvi$s|Aiki|H@y>+?_Bu!Ik z0+Z9Gll*cp@(U6keIjSqDl;U4^6JGTCUw6`yghs0+4`rX?~8t6hU*7Dkfk5Ejo)cd zE}K)5RlWL%Yw9wmRHv+Y z{k+@wNgj0R=Uwpnc^j79>M5DPlDHy!CSU0TjR`~|5;0vzN^jo3i}|E78MDbUy+R_( zohHWYBPVlJp zm8PDZo!U;MT3sIOcyr1pgEBpP86hIgD$gsFhwta@$~J0)aROJnI;9ZkIVBUP`%yag z&e+e}*fUvd^^`*Hk@F-*^5X1lWoC_#oH@r#{&>|^DgzOAPseO>6Vj?7 z^~&u1z*CFQ6~%>od`_uQ<`baIpMMf4UD3Hd-`3%Kv7SY%Io&zPQN61>thuDC+nn;a z_48JzjQ8_CT9@fSw|?HJrv#OXB`KEfSd4(3l89s6#>f)+W{dPicdPt=~R+nWF%*aNYYGY1|p-pM^GNO8uY+1 z^Y3Cd$?H~N^4o8}-7Esd!}SA4U^E65Y|C{l@6lbh;XB{=giwkEi?%xDVt*Fhi28Xm z)JSt2f%5M!*i&+YG8(?Ee$t?{e%|Xsd1^oJLeS6Kj4`#IaC6Zp9MDiJ>G@uhS!Y99p(wli^l5rF$!Q?qI%6s?j!6}oN z^k5tE0mh&q(fN<>nRyr0;Pvw;%abbZ&~)o46IUZ64ObC z2c-h+}VC!76g`Up_sU6rG=;hZw(bY4=O!$B#HYVE<|qBF|X5XwThP6;5rIpy)J zP{Jww{V4tVNr}V#Da8tL0>3aG=bLefi{9w1PDx^~EW;~-B#0C&8O+4#WI$zAa~v>< z;hT`;ldfyCGc5QdpoCL~X30tS-M}U<5S7KQ{lJG0><8|v7;)I@$!BrOLSJ?$qk>)s zWmFzCB6C=Ql8x7we2b>99qA>OTkkiggc<>q-kegQjJ)#jPU-ja4(lhw7{m7qt_tNmpd=ylUX#@OHmHPChFfO1 z+2jyrlOB^qWig??5?D%oWu|`MCR?#==aZe1@l+@=ojjaV=3-81RX+Hj-V!K-{U`Uq zLh^o;Bdty-TV0^E>|34E5}nLY2K!O+Vfe)paKD~X@q5j&sBy`U$7x_6521{hJROeS zkk6!0=~SiT2Re8XsYv25rv#QxGqdKD0%f?r(D18llP~JXZA=2nlz!j?>HWaF3^f zk|<2Zbe5s45|{i2flHA&<-9VvW=_dQDZ@80>4BMl;VvVoBezZ`FDR7h{lEuO`hl~o zAGlv%DZi8YavGFenc<+!gUQTJ+0trrg)-)Sjdow>6CD#iZ|0Kvc@xbYPT3U3BoL3a zIc1c62lbS-sGqm{mZRDGdF#c=V*3P%jsRI=qg4Lz7R04-I-d%l#Ns)WmV5(AA4;(J zgN)xGQKYwX5tJk|%D^d=N1IOG9rBTcO)8X6-VfZitu!_JmBIkZ72x%hB|3dh?=7UM z7D7o(+VJi7^A;#A)}w_q$YSf~{qjl-O4;PRB_p;7K{J-<=$taBr>tS)UOslkYSa38 z7ouKwkPg+jcCV+*kwL0e;?^vZjvxkew&zv;In8f8CPC$8I*ZBsSIQbXo;DuX58U>vEZ*sd_KOKn%J3VT zQ}$(1=#&PfPhV7!aje~5UvIC|RW5ZfN4IT>`A+(IKVR>3%GKDtd;YlE?b$cnl(eG{ zY+T~Bfw-~DvVPvU1pT~?zSMe3nNz;@+6cXHwQQ#(HtEOX9+ZFji4Fl7KG4C8QmcP_ zCaa<59G5nsWFgI&xkym1MNWAgQ2L{H@daK(HJel-!6YBW^nT#*%JgZazfcJbHI-e@ zCqRk2?Wej!xhP{_2xZPe>1E%(R)kubVIHWu>*o!dYsNs_jXz^-yC59CWBXC=DugHk za@1}Y5KEAupEs0NPiaocK$65Q`J!(Ymo$Dlf|8yx`r|hvx#g$?l(rzGJlbk`B9mAQ zVkDJH#gbI1=;*Cbo?C`dIx2_rZ^0!=zDqhPFB6n0{lEtf*AE;r8k)rb${tOCyy5$e zj8KvSDE<8>N95D}j8MvclsEWiT`(wjt1pU0_sz*>?DRWAaGfKL^5^;4bT0G8+l}~%aw?cUdP^MI^O`ojJS1OZ}6BCtr z%4{gRhN_7oEIlS6Mv|d~;!w)q&F4VzOJv;Ul3>z^1eE_rKX6=X^;n9s(+TA@p*3yz zE_FgVS_7~Nb4t%CmCOY)(PeG(0sZ6Q}N#?Srdq41jgZhD6uCu^QnjUmOS#!Gt`A(@i zR&UgND9`uT_nPfs_|ADwsa%fX-vbZXoKm+p-)kLL8QvyunIds)@+pe)m<+G{TciE#-nfzg5a^i#Q zzx?v>;lsy&{W|&8CzF-RsWTlYo~hD{Xrwb_5=Cnj_R7F1nMZ&*+#@vdVMOu?CY^fz zmww=M29M{qdps!bM5P&pV z%A*1i=>bD2pWh(%0;i1CQ-a(&j8O;gCXCXCZ`rOlX+KI(r|MQu`3^fJhy<8$NpHzK zh&`ud`RkOC+#|+QlarIbJbHAa{m+$Kw{Bhe`O)La6DLkgR>UubK!&n4T!L3FR_xVs_W+@i)ia|Ldq#U$PIY_VC zZrq@C_^#&7<2}ZmKh+_S`4ax`hZT6384coOsay_M{-}s<~d86)Yb$p<}vN`1u zKAs0gpO#nG^* zN@e~`L?9E%SE13Y5=0`)StBUTDs4^)Ei-$`x*Tcg^6-D_2dzLyw+xm6SDF*>1BuHY_lJHBZrwkU)Jt{q? zEKgH*^Z4eipLUL8&yCtYKV7-PVBY-w;pb$R%;h}us9esSVGs#QfAA)$QG!W>QkR6j zyS%gn@H&9JU_jCf>y*j+S7z@AZa%ppaOrPnI|k(nzMe1iB|+I1E@DtR@XRTn7YBCzJEvg(3&v&08|wb-p6xUN&`x z0ZK)1!Jr(k%M8*I9rsW=?v%jH{ipY?HRXHc;!xrbZ=q(+#R8@E^ERiH_Xis~LDi-6 z)Ot$d(3$9-Ji2LRf%2KKpEqQ&y!ll^=9D99lO((;h>*sCQyP`!j{JM-U)Ik3HLfCx z^oNS^k%cJY6KbtSg0Y}NOVcU{p*|=oL?av+A;b0 z84e->%#ne=Ukc{*@`t{vm?S>;L!;b{Og;pX-VDmkwK*kNjyx>(3|s0m>^T{V|gU<%~z;+(Ia?_nUjy8I;>SAPS|4Y1q-RMCWoK+paUs z2~$dhalV$8uf`AI+xmIeB|3}#=$6W`F*LZkRcwiR%Bk8K5XBkgP!{#`W-y<@h_odk z3*TNUm#VLMaH62x?i!g|fJxQM&2F8jx_-TAB|5n&qmw9Q z3MCDfN1l7`Ik1FF_>1DU_!jUu8<^ag3A_K^&ZQ-&oc*CtkLmvO|V3 z|F`AOpWNOAlpO{Ayt6(QFA14mE?r+~Q0k--Ce>_7=-z5|+rG~|l-+_POuEO!zlRCp z-u9jOz3QxIy|a3qyiYD?iev&M;TtG-JRqi6ngt{=piJv2)o;EZIPeWizN1PhHn4kE zMt|_+1XD_C9>uO($Cm>&CPUV`!Jr)TL%2oUk@|a|s@z{k!s~v8GkSA{nr8D$3 z*sg125y+I1TqlB3r1D@(Tz)=-AST(j_4D?BFOz;@vTH+Z{vSH}sw+N^QY<--()?sj ziP_S*Jd%1!^;@%0#!7i-Pqpvw&jXYYiClu^ELeUhA2GL1bZB#*3*!Q%n_*_4gh_*v zDj}E@D0e89a2b(V4`sF=IM!@G@QDkD1VM$8Jszsp)arA9b>}wNuqvmb7xLh}@y!fHtjBL{sP!?WY;V^xpfS(V#%}pevv2F?ZBWiH%7BHPfWbAbg>y>l=Y2xA z71Ms+nycezKX19ye%=hJpUJ-Cg&{C3sIP3hDuvR7Qj2_d-nhPc2NTMml-;PL80TJg z&!75GnB;>UIdiC|N*I@@txy`1P#KhRn}hNV4d2WvM?U)KBgImwe5MG>@_yiLrTxHN zsw0YNN}2QnA6f#+0PI17GEjP5eL;rD>xMXd+fHLZ@n9Ujhdqq#6T5u`7fH43TTP)9 zyPhyEU)33bpieU+up3H!z zL)3ZaG}#Zl%_K50E37mqW4m;>$E*;_W8vTxg%Z;VsD^LH1uq6=T+KV?CCijj-k9UT zXVBg`T@pegxgsbP$re2W-MueWPuYq;nCa*3|LppH-Y{8SKZ&1#5+Hf-maC_{^r}m8 zP-^%VoxHoJr#c;k@{?0t;rvU&xLg&-W%u3%!4fh9n3DEL%?4DudUK?**QivBlv0=k zO0Z0*R2pBz@pH<~|J@Iq(fWZ0D3gBRlYWcG%Z~_PZ1A+5*P*!igDK^(tq6tp?zo@# z2@gD)8AzPb?Qn_O8wLYQ*S3c!+zH$4d1nX-X7kKnSS23%~;mYo3Vb#DP^32 zlY&!SnbcQy)>nUr#K^d(H#Zby>(C?nf&jXY}DY-$jA~C$%CE^Wsrf<`p zJwhdy5ScDhMoQTkpfoB?Ed!TE=Q&OF18*zu2M(N;=&12J<^7bK4gk`Bu5 zE)z*4lMZI`sdO>5jO_2eJ$qi*M3w`TjF>X1P-;D;gYxabB~*f?acNMN^aIClx*xbH zWj&Vz7lw7n2+Cc%hUTqwt;S@iuGn?C{nDE>N9)oCWf{ES{K>I!ppb>{*&wb;Zbg9F zb%R0)j~S)pN4Y^7!SZs}uqx3uV+#@5(>u_yJSa=*C(D%*og@R#)>9ThDHbQ+vc34X zL-KQlQV&(v6r5zoH;WpXA%_2GpT9S~u=53&gh$6^qLiCsrF`3&ilt&{TpE=5e&FVl z=d?A^58Oi;>*RdcO`eUR-0jetYRts7dThS_hu&l?FgJsOb?anOpP|}v@CNslhHsuT zb{?frI?!%&O0X<~QmciA(th4nPf7ixo+7wrnM#?hpTsvVvy0~jCY6;9^^}YkL{KIR zl|Fd)u^Mz#hy+S^<|QEN7~X_R87Kbz@ke7)-cP--bLX7_NimDyrj(nlo)Rd(_@a)= zMzxfSL9*{oaO_;7A9!1)AGrCU@sld00SS{Tlrfay%g7G$=W5!cLa9sO8+Bs%^);SF zvjNM4Y@Jf-g!k6>^PU=(rz&M`PKggXm9(F?Dy8=G4hdYxvZ2h@Pco!-iz%fcX&a6O z^^_Or;&~3roA0jny%B=$dT*qYSn)b# zCr}0|UsEb$Eae8umG=Y3LO<{{(Q#=nU#>GK9hTQ9d}eEzp&6^%dvRt^g;J~Acg;2& zULH19@NJ!PXdv$AeS?5#bIMHk*1zGIw4Zmpqa#u|93*v_;XCQ)o%p5U8z>daq@FSh zrG@X&+t&B=o&5ahQDG9D{KSRtkmWGyx)4GsW2MqPaM+kUE>bx$7L+>iWQL()OH@WSZ$gPTI!=7AZL0;QPNQ?3yx#i9rvsBC~T?FSzDT+R0b zkCpO@2~z2>U!zdYS_=}Uj@Y{G%nFrB6UqTHA2@Ui=krSCM1BA6urhgjsvo#e>8@-)a4ZSmmoh~(CUpherP}kmZFfh!AzW|A>SWUD$_F?2ILu#2 zc?CY!?Z2DEkLxMbTEcmh6CUZDQj+7qd|^ND`9Pshy;~RYHfH;I>)tm=c4Yc_XZ*4y zA(KhQq@FUV5{i}bHu=%w-!SQv@)M!*!+obbl8hF>Yha3XO#tO@zx@W43ws`a{D~WT z)hzk0ilLN9@=TTzKE2Zu3G}Kcrp_BygYTxfiy?LSh z&?%+wdQywqq~O}MnKqCc1j^&eeEf+g9yBHcl~oKTJ(OL(o>G+3o$H&QS3aOn zuDl<(`SnXedqL9MlPMWJ5pi_QAMWBkMt0J~@%?=N*)?zMpsLd6dmV36aWVQcrnB5tKJ8lP}1! z`Sj8Kp2|-!ff6L?UZzrM^_3O5DkEdZkN@`TZ%XB*pORCl@26Lt`BOf5#$@UMQtD%JEQ^_48Jrmy&J9 z#PnzaNVFgAES-Iij`sE3apvg${SM1dh}}SGD?%cSiX}|?2;RN-w_kt$wFc$F+fO_p zy(fBOtKO3+rPfmdWvrD(B^IEB$j}eGv%DX8!C`E+EEH`s4yhWhYbXf9to^6axBK9A zxY`d?rE+k)$t1&+pF*~)zxD(!=TDkas^0>Y6aiyI?_ww+clSI*dK`mb*8hzUPKZi^ z-^4~bEsB%WQ(k2Cl;!=r&F8iG>>DiggrT^e(sp#xD&NsPJ&zm`B26iUN|{so-j0mm zs0ojx-!9P^8F>G@?|{-%Ip>&sQzTFknk!SWi zN^Chw$<0A*aeZY9r7^j)r@!aqeheZB-unpOq0J*NU2%Qo?7>ez1xlFw?fAk+@4hLY z?|TJFcVUKP{hV_3n$;qe4$7~-%2SC_KH#9Ve&C(W^#gBMu{5h+r*vlyOv>A2V@c3; zvollJ-dPk>3o?ckUTvHl()HbA6QBi`R)Mj2;S7%Y=MI@4pj5vloJTqNHMTeuH50SL z2*7Y+@R)F@Gy)`k=WcJi=El0j?`R42lbv%zRzImM>Uorw=)j$^S5i-zgEAk#8RB}% z1WKs%!TZ_%NB#lH5Wi8%A4B%tZ9zPw;8azv9r)|dPv8IUXH&|5-*vX-wklMLiB495 zGNy8~X5VXovN(W0u){0mb51JHDeecJudiIXANUNsx%x`C>OFaGvvz$fk&J@jHIu8w zQy^_YEH&{Jo_>GQ1InJEY3FRG5D5nFJpX}G@eK^c1RV{1Vjk0Eb>@TO2^-#{exOK}G zxqi6^CfE1$c&RjF@mxL*N|>wwWgNi8OezIPxqve12fjpor3CP%`hhExN%U@#Nekm3 z$*6j`{C?iyG%NHnXNn>8+4+-+&l;sA+VF^v%K_5(<^8-(FC#y(^Xs5oTP&80*UPO! zN#%J0B}|G?_P_DY^mLt4?h__|6exj_j}u85;IjMn$-kUV)}VBYLURvq#kSmC?FC7( zSSYvEE9GiePYINn0KNmQ1WTZd`hh3)lqLPZV=lD_y>%rr8Ta#6EY+6N&pXH@N~t^& z!4s(jMt$(6(r7+&N$cNT($CwZGQe1V9%VC1ncrz_IInU|1m)ua%29#xk^aZdObe9L zK`CJpr6kMIi^57#Nxl^|(kG5}{%KiPCYZzh#NBY7@iY5ipC1D|22K3C*xPciG~ z-Nbp689U$VDGTM&sI+>@Hihy{RmyQ;@~+YG7y2JNBtj`vdfT^uU#yht7)igoyRRMq zNnsKwgHrzc@sk3i9DcfGQ?*xk3`$w87fPK|9uO!c`(Ev#gi4q+sWd1NN}#lU;1JlE zIj@qyt^L5cGyT9N@m`t1B4cJMxx9Yf?opKBgfC1UllsZn*M8pV;*a_Nv!8dVR8miQ zD@5jJmC&g>I`NzmCIw1nl>KL5QZAGdp|m+=7`ohZEl36?70Ta+A9ys_);oK9P)fnl zy~R=ql5+QTRn~}B0;O0al}W1e98d-WOVPrlo^tv9z)NS6`!^KX3I*!#6-OW-2pak|3VUDaXB1GNU|zP&y{%f=3a` z!-rk?4p|Ok*X0|IDUzN^pj_Pk>XXXkXT4q{Wkf2I=naeW;~@C(|{M&7M7Vogb8rhd{VI3(W~U+`$;QO2Zx(tPdb-D3T_&tgAswdK`QrexOl z`@X3FN`&&C>30H_61!_yIw-+Wv79~Vkc3GS%J0UWm(C6l>6q*lAT@aRq*96XJ18qI zeouVxdrYOq??Nbb16*d5x$`RVbr;;~E0ccUD`T>8LaB7NM{1byd5QfNt*6ukC##jM zas6cKcR-}oOTuD-pZ4>Xv7~-d{fu1}W#2q9DY&how?%v33ME2$5-3qhhy+QelwHsm zkeoCmVG=0E9)8pz36tO6*4wKR36i}Ll>I7{KuP=_xd$lYS*1cL7DHKE7a|2u>nY7= zv2v+?;B6}=Qd4h+5{-<#M!&`Rs3N*3eilgOGUs;?y}eQv)K8j!QQXhFLy>E`ellNA z$)qwrt5hUmvKUH)^3XfZrm+yf4+G_#tx;YbA*oCb8IoJK{&FvCL49zUC}qF9JeB=- zbgij?W!LEMY5dmktyCJ6j!2|Z6LDLfT(Tc{vIV~4B!_{I#qXercAL+KA@y}uDMOTb zTj;is9oJ8`Hu?ambIP=Sl3N!jS*uL?d0XvT9bJ1o)BpGXlnN#HTq2TT?x9>V6bf_Q z+;U0fl7yB^n7LFW_sceSh8U4c$Sp&1o!e?e!j#+G$A)3(x9@L%z8`zPAMe-uoY(Vt z&Uw9F&r?)z34dSqR6X$Dcy9QW;Fqh($@*~{>%l)nr0)>1BsOgQTX+X$IOCe39P+l- z4&(}wLJBFkDtpD^Fm$Zql*x-TCY2qLe5U$JEaH=PTv#EiUK@45Ef?8*tGZfLRgH6n z_`btwUePY@fO3l#kY%;O%#x-jN z*-OO#NCE~cSpPu6YZg{f^rN_q+#oa8K1*{=K+R)Ql`M%C`;6CUyrKr|ym7ouuT_rk zCS8B>-@36!gRxZkNReiQ)BY3aN>SKIp`mQH^(}?^-So!~Wk$Jh;XSoZ+e54#>4W|c zoBZsg_@$kDcTt*4lBj(%@r~8kaMiqjKMC5FfI)QTSs?7Df^Z#Hc=MHf;ZdE7tjAyH zLePA6m{D5ZUMHh@jKXQTnXk1^E<0;%5q`AbbQ2(svrkQY$;&KD36}HoOwEx z2mdFocLsG1JASzNmAEeAEg3@|`Pj`238(CVsK$CWj6+rT+{w(_V_ZwR-aS8S(>0l4 zx&>6(Vc9yab~=LO5!CK68*`12Wju8FI#@t`%4^`ttDRUTbs$F zBJa!I4CQN20;lpj-M_!TJ5kWV*gVcTweYC|VEmj107E=&%WXEyHNwbBJsO4@9D=7W z9)BgAPYDYt{k-inkon{B)2JWWj@1#+cbrEHM|jtQV^Q&r(NO%aCJDEz_>Cfdg|5_^ zN_W7I@+ki!zi5Bl!=j!0m_QpQ-7@JR8h<%Gz@SDe{RRMnX9J^55CL-RITkYFi1jv} zXy`c!r1@5wHnu0(cv0OJ?4}w+jDLFz<>gT=uBj2!0}l3YP9Lc3+0{D;9r#Yj6*an9 zXQe!PXks2Z#+BwImVJmvMvw&4=`;DSic)>s{jv-}|Pw6fzWebMo~aVYvDvS6Gj>)~Rl@ z;|1!ftkZ{YkCIfY3e2{dWt+L+7mKSh+r<&2{~TCqE1A$b>5T&Gl>uJ#U6nTeJ@6eX z_)yBK{Q{Z|yN+N5M%rV;$jt4}M!0Nfr~)}AD2yXb4Bsk>%#FU6YAEy5mDxyf(cnKW zv(r*w2Z^ABmr%7Es-X{Ss`Evdr^er4eb*Kkujg5%*-7#msbfISCxev*HV+waX7J-? zI$`++VEJii!qQQXlDx!#(-i6lpOLL^N&i)K^V8c>k3vo(Y>Eu!((x;=0A{Bb^Wn{4q%JqNFt6yrLTa~Iz#CaX<@m2WE|`hrt7T-!Z)G82-fP0DyQn2?CE70Ps_+|4-f}5#^Ih7Ax0Hdi zB|eWBsG7no@M+u(HCV*3{HqPxRIogIN2s^s&&9LKJQvQwAV2g!bK~sd3$L*WI2tSP zn_>T4w0R?|>spL$vMHr;#U}l@=5;Zi?c@}**FfhaIS=n%?^&-UU60tyJC3gj4e|60 zu9M_Ek`p`1w2FhC9PY~-P)9STA}!naQ`fi;>PYEZOVB6JZ_4V-*WH%M{?n>F8lb@Z z=2hcUXCGKRVF9zJa!g^wdD0DmDrnUk=2aY2*)FXS#9qHhc?kijhj&g9+$O2sqh0?` zHQ%!396<5_b*tu=aPd#(VHqQ@8ZV1>d#{~vGoPHZ9_r8it;SzN+k)qabo3q3 z=^Ztg2{jfx*#N-a+T;GmLqxx~gvW8Pn>XJO2xCVZYPoWn#0K8xe3(#uY$X z@wJKMyq1!4$bFdbS(CTWVWBFoLe#rCmUax*f3e{IckMXA07!Y` zZY-rdo{kUw6Y!Gs*uv@{Y~b6GN$AtsBa_3+ADnsd1)t$>53Zy9%SBKJD0NG~J~25N zC}qG*%}-xp(#X4uopsri@v-jBm$y6%+V~Lun_!Km&wyq0(-S~|@T8vQ5!*GSo=MXYUMlU#0oesG1&A=EfS$rOt8Rn%Q9wCp^dk>of=+#}+xtTt0hgVYiCP(>|th#05i|&u4sWN5wvW4#4 z9T&`80BrvPO~%*4(dt?x5{@mz1WP#(v=vc@0@rEFB64pH4i|3hxM>IZ{5Mc7hrJ5# ze+*~8b_IFGk4%}RGs0OtViswew9aBw%Y=aK&eNfso%;C*k+?IaW*^=ed(;(3#GS%k zKBdXkxbPUC-y|?y;7PCb`X@K=M@l5 zq{^apagWs+-t&tNzji7tmIxV3-uPe_9IyEAMV4ZbJTr1Gt>2S61x<^_M@XkfkqNC) z^6!4fFEpP5FdImoi|ds%BsC%1*m+_2m{z<_c9N+mn?<3P*4EOK0en({8?{Lj;D3cX7UKOFPkI zms2S>(8N>)e&Zi~ZLZosgM2b>6om$VC#2WK<@=~xHffuq@bXdeQQlEx7DH&0)LFw> z_&Z*9Y)r9S3H*7jfc`;QGI+`TTZtw1w_}W`Ndvc8kqU$>%wlA!?&kp6^0%m59L%^l z@sQ$vQZi0UW?sR)aeVeCiDofQvk+<*xhiZX8=&++WQoIM>Qu^A*#}tvE`dVadn>VL zuD%*qQ7MmjvFm!EaHT%TtyQ6v7mw=fXvd8(t2pMCNI@Shual_{HVUuP?Dq^m1-fQ^ zV8v)IHo}Pr#%ua2kq%K}XKG0-(66Dkk4$owEU%^4GJqQzBvqx0o5dw=5jwEnB>;{d z)oI?-#vwMZMNen1l}y^H%e793>Abn`Mu5<{| z?ErOxo0~Bzmk2sIGV!_l3A3Pr4TMzqPLqYbWqoR}DV&-+h@BcKpk7;S2H zO}rlAdRsQi^HYC9Cr75vIe@VoYW76oa<3MLL>8tf^-DF!kU;u&=pS!S`b@$_(=UDk zgn~q}^|Mm=wK(2&Fv$qt8p4Tkd1h4}N_u=b=Ja`Fb(&>d`Mj?5dG-`tWO1W!K;wsX zzU4>0S=~0GQ@&@3DzYG|%A0u|vlln`cLNgdUNT9wk#6NQN$40guDIiA2$cEBQZR8v zaU~&&NRtW@$GTkM|LgC60>}p%^7rx(TjD(+02Sj;_rM)Rpb(rv>QJ^#cK0tGdg^DL zq8EDoXVp~s@g6v_koYg*qi@Qc(Erl)@Pn)H)|#z%T7NtGu03GB0=*N*sZjA}a$RW+h9)(?nkH*{bUcF>ao7?w`;(coj6u|h~!uU*vI9hWAA~$?=b3W@4v{mH;t1c~w zn-{JWI0z;2Xb!^%gA37x{mm0GR`MGGMVlGv zS{ct^STa-4asq*yHeQG~m>RAK*DE@5lL@$!K zz1;3xutnQcr9*mYGTHX)w?1MI8nyO1c5#1I5MB}Afm!FIauLPCe;>7upKc)!Uqm^iz{4;DsF`{;f03r$F;X8h&Sw+@CAEOShsQNkW;`|2u{{e2t490QVsk>?-EhNvS zs9%WcUPC^R-XD4>un~A`a_EVszPnIhZv+w|0R8r2h0ang_3SBFFif&=1{f+wPKepQsr5ZP5Fi_i{@=|XXy8rReEA=1Q97>!~B z!j$hDl}~1abkA4(PhP8f%x-5ILN{gY)A$>?f!2GzOl`E1TLeG()g@D7G0yqUGfRr4 zn`w)&+A5z)>ECJU%8R)B|fEgNC#wvl0+VKd@~^NB;(mM@Se-P3q;>Hi*??41(f zddOu6ZayPdX-$|qVe{@tA<{N0$w?bE`$93Dh&yzW!)i?*=GeOJa^@SK6d(HFx{-Y}FY>Z!{$iHA;?pskih0rS z)hl*kb<5Hk=*sEi*Sy#KBJUAIrpyV5^>JEtl&~+_G|u8XTh5>TJVb%;FK~R94Oxq5 zF?YLfz2vmVX^)s4q>4BdfK_R~ftZrJ7G$`v@*mq>s9 zP?GX-D2dx7w!6&rdnMpZto%&d=C|?FSc^8_&uHLmwi+P2-Zgc7^XJ1vNQi<(TZhNh zK3Tiuw%4j_@Z8zE1cr47hW@>n?7K9CX8=DM&K(KK1hZ+O%Rky{u&IEC)5?RL(s;d{ zad#jJqz1`e>Mw-sF#K07gIbvKgLcl+sP+LNce<6Nrv=ub9EPKJ&w!fF{Y}vEaMwC2 zIVq&xCJz-~^KeQ+mJ{==pAa#)P}qU%P$_%x~ZN(P_t0N#>T}z^5HN{pi&Xr|7ScCt9jD1KqiovA-=d%uW}(wDM*2{A~Mt zQh8lVb@Me;%woSA4*c+h7v^hn7SHF zL`;@?^hSzc{a!NJf5?+R{BQ5ga{~?Mu|5ui4#~s(GItAa@G%81#sfH!DVme@p@=KM z-=W$&IGK;D@HGZ-iaAlr?%}1#iFP`$2g;tW9=o)3fHq`lKQu-VBiRbGollTTlD{A8n*DK?ESl(A_L0 zZ`|)Kt#fYwTg!|Ni+Bmejp)lJkJ|$uHcAQy(;Gj#KKgP=vN>#rHL1-(K5DRquBe}hvW_1}GD&r1JY%0@Kh3O}XiQSdpzD{DJOv}S+4SMf{fhXvjH z@e7+_*8Q}5J_~SztS=beT~xw6T-*(#5pl4XqkRoEG|_F0l^TPDP;4W z-VfR$JH`Cjyi)ClxxA`J__ij^vaxuxAeL2BU4<6eG!*b2U=JVwh3mMkJy5X-ccL)w zjb4J=Ga%zs+;*QPhK^ZUg0%zbFjcAdM|bhsl)j5`&tbs=2W8*ujAB?F& z-j3e2fn+O3F*ZeI1We?8YF!k$ZH?K}-YMj<%{Gp#grWcLq&?Y3x?rp-B#ScRutKts zx{GfvG*f#*DmN-G{k&6myPx6MGXDGYh^!_0WI>d0H=}zL1MH*W$|B#8lZ+c9M^bo+ z{37|F58!@P<<0PlmA&W6+^+7IyloqVWP%Wb1_J;SG+k*U9%qE1ul>{b3wQHT;{xvr z9<mC6&EJsx0blGYLy`It=t=bx5zc1m!f;b<8FG%c>%~*zjip#M-=8S}C zIQb(W>lTiuJ)*8R1-Z$hpX5-w^U`}EiU_~$6Y$MUcvd;$BBiZh+u7#@##>{y?5kkZ z;vMy>wm4qe^D_kPjkdB>vJTfgd~_r}0xdz%_CGN_VM=;-K3X=*et?jSI5ZQUS?Yd} z7<=yH&F5{kVF;5|-B>;VdqOyvIOuOOL5js1Adf*56DqD}Tzd&lXj*`~CEIN_MWFSO zbGgXrJcS*SlMEOL^;V@s|7srGhD1`1?~GL{=FgD2LP#b#%RANca9Sidpn3`Z5Sn+7 ziko#&+KdVXHw|`1t-6F~7jqHj-v>M}Dz|0#kfXV@MHH-O<{d{Xz^}SbVCa6Lgxmw`L&)>Wg0X=e5KJ1Z2zCiqgShf0H2p%@E6qOJhyj>q z=|c1~glC=Xp&7T@yO05zPF3o+OjU^Fg^sT@-D)(pvTQ7LNIPKJNH`X{-3F)3)bBQ$ z7(<<^ULKS{Q=MDgtmP|b2G`Wd)gh$RMbJwcj$8$z%-_anG)`|`?|(p!g$*dUdnXU~ zr%&l%JJdhx8(VsTh>OmdP&vyLRxmFguaunZ6!XPjgDA3O`25@8b)(5)nr2mQ$*W*9H;tJhYHq8cqh!#56LTFaakG-o`XF9t{TW&yVW%qkltk=EfHC z1{R%!*zot*qI-dTtYmc+-B>8tkU?VDfnb0EXQZs`9s{zsjkBLw%HPIqe>*uB#WP_I zP3<(dSjUOOtHP_UgFRrrSBK7-f&l{!^Qp)a)a+={(O5#1_|XZ{@ZFv)Z8)h_1w^?}dH)eWCz|XV z&`)dpFb|KEqvDD+4barzQw$StI_WlYBUa_mHKaW_G0G|oc5$Tk{&z=2ABa+pA?tL= z6GYVDq&in~d-m-GQ5MVPfaJlv^Upc07st)ww(oAY>CLyKE~r2A-PBJtV>=Y$&N{b^ zE0X|GTC&M)K{T9jf9hWk&bzXWT3X^Z(%?%uR&UBq=dnoH+2yH0?k(pnE|L%pwV&%Y zp{(6kG4v8RDVDJWmlP#TDbFx=po77+32B_KaKk@hzdvJ@7*KiPIC`5cJb#|OXi7;~ z(Yns9GKHM<`spIvQi6~hj~k(3azjXciDbniU{qC8aN3ehx~xNNntk4yVL2?oF-YsK zIWdJdr}A`kZz^(;*hc4~;$((tm`@$qhj3EB5UsIx?%&S?h#eL8k}WF33XP#0Gjgda zdY{Hb@_(ZO7;&xx3QCPy9yJZ$!~UTgme4r?W@!SZG6a#12#m(sFdVqx+H#73z{5%2 zUugnGa8m6J0=#r5p=l-cP34osm66|9A<)z}lq)J=p+{)rt7i^K{b+A%5lN=G{()fK zy5?tOMpIOgfDYM~5W#XSp@u>FPeU(*9mLdDLes_fLLU!ETR5BDH60T(n+Io z7U{F~Gff@Cak{cB?M?28O#TD&oCcWu%A0s^NyVFgK!`Y+5=6VfIArXayVXak748ce^y9CO6>=)xUIKY zw$q87G>eWEE3#2Job>LaDV>)I%X4sLrbS-vBJZ|0CCM>CdpWh@65ecOEsD68i^Toj zsA4Zt9m57sqImfhnq?us7ZMQRDvR&ts2A_5^GIxFk#+31aDstw@m4s=#+}4?CCk5% z{fH z^@T53?Fyn^HgUs`L+@bAV;n<6{O&;v_Huy z>!ln1_PBtmRG6oa@U-N}CIYQjxq!Se2#t1_vVIS~o35!bQX95#^jVtP_EOJFhu&xp zLs4|RC9WEJb8|mKk!QTp$cnbp`3J!4t9P>&o)$Is(4JV4;s0<3$zNXe`GF-Rq~g1! zqR<;$w<`L&aY93>_kK-3z%xAnNE0V}?$_+A{;R%Z(Z;YU9o($A9 z?UNp2J1%h#SWdVq&)O}6+QC|?`=pgRK%lM>YTJ{N>Xnr3k2r-1o)jRo20R48oQG(o zpTE(@5kg01Xu#reiI4>NBE+Ani!6N@Aeu7@Ij3PnAepmCmCHu^w9`M{n$>p3qU(+e zXt>&OIH?(c(NIbtSB09{FH&Y)8$kMKNFwysO~!)nLoIqiqDMaxDZ+iaCoA)Uc0X-%iHhqIDj1+~_6P#5c$|f}T!7|;@bzS|2-Enu_rJnX zl#Q~Uul?h^@^umWcJ09t%Q(K@&=As>rlA3&$t-f)=xKt;sIcmJR^OIUfcfgPZQK!W z+10{-^AWB)2c+@2{1N*23+@hoe@d~*9$IBq+XdH!snf{6PRS?xl8ZlADPlC-mP{)8 zXydg3f?a>%+OG#HKtQn!=8n`?K!`E>lPCWSQnSNgqdwp6R{*fCTJVuA8k?;?}W9wksirG-?FVn{rzGkHa zP`{zQw6M0RfpAS3_4J4Z(3hr+VOr@#Pb)-s0EE$KH^_R+tfczfkqj_&95{c=yY22+5;Yowx+&0|i$+x za#sPuRL4}p#f7XWo$+#NY)0xT&g7n#_C2rSfcs6}vu#&&frCv2f(Ed>(Gv+mtJ@Z? zX%tQxJA(-hJ^;b;l}7c^ou)dIk%@pw+Xx0PkuLqjad24n`1O+qJpTP!vi%2Hl;huU zR-S!Qzp8wL?GUZ^<~%(383;DrwuOT%`NK(G65vaKO@=O?RHKSqpFORxVacfX=tjBR zU86LYJ(quPxR*+w{dkdjFPi!16C+pwIh+=q7BmZ@Tw!8u4uQ6Z#jBL*-Jb+L_jw@j z;z7Nq0?kYD8_qPNIl4?M=b8E8P@fjJH$2bn4B_Q*Z|Esos^rTG=ko-oTVzMrc>?1t zfwnn9hSPm88uJ{Ore@qv#$ic7ONYy&zm+t}56BU`Np?6N%bf@d&qOcH5B?EoVu6gC zd5~ng#<#FE)MIn7Jcwe^&0MA(*n^X1u-mwv#+`meT^-lzzC4LC(S{^j8wWCCs%8B0 zR$CI|jveReyU}wtX#oLM!{_<<-A>PHcMm_FIN`$t8!-)I?wwAa8D4_ZbEvrEcOmOnl`soi#(S;NyhgYf!xXUDvuY64) zYJn)5AWW0yKLZUnZ_HTicN{@0C>lEPeEazC$-wAbhR&@NTlhkWcdZS+l-MupE8`fj zPl`xY9eCE06rfxdhzpTf+Ol;_77G^m10Up)@A^%JlRoe|C=Jm_L{w83E!nob?kGZQ zfA_FEEAi_yg4j|aA0`hQkpJpc6 zoSfeVqv8C1Ptg{34JXApBYXt{)_;6}dhD;8-<-emg!i;5vbR_zlZ*~e} zSeHibxa5(Cf6c=`HjFUwhl=wmz1;Lvj4&l2T~vsF^ywSOp-JYWhZbku=S%Dd)qgXH zdI*9v_-@L!Go0J;bEs)NbSR_>)}d|NMNuQSI4dqOZ84+5C=qQ4B(wPB_+-ixwwkECuxOHEvt8htC%`=JU> z$Q$ww2`ZMCHDe7>l#7psI3ev9Vwp|0wF>?s=two5)D-{6Or)5H!#tVUmMjxFeB_vu zR!3&BU5ONb$@F4AogvuT+Sk?j=;~;RXG(!R#q5XF-r|>uTHk`2>RxDHK~3*mNzdNn zL|($y(fbkM`8hxAuTiU>ZErwC;4NP5OB)!mIZI0}F3XSp5g`#47aE&_+htB3QT{wy zeG);XPuPMzScxQXRlN66%2$_n8swW1&o8P;?aqAsr8^Vqdth=@86N62HU2VPbs{u` zKr)-jt+2DGdie9?WzXWIyJN6SD^y0@Qc2!KR|&d~|NViV5v0!Ps;!@3Guu0=nh|sT zBI89BblY>8Q+dWg$U8DaiRG-`dii&SvU9iI4f+wD07*y%ovtP2fkxPyiy?`Jr)oMDKo=aIUkN^xwXX?b;(=4XwQm!)LZHI+gsO z^4di<$(SFh&+qRND^$5#n5BzaI;P%+VjkrY!*PL~!ylII^93U=oHgYzz0Ih8kSA6xJ=)CSs2~+Q1sG?+a zyLM+zpN!}Aig{mwTj4HA_A=-ON+!$_9p~R{G Pm_L)d7KYXOkKX(r!x#G` literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/videoicon.png b/unpackage/dist/dev/mp-weixin/static/videoicon.png new file mode 100644 index 0000000000000000000000000000000000000000..4849f120bcf45c63e599da9892147cca1f46afff GIT binary patch literal 1339 zcmV-B1;qM^P)Px(^+`lQR9HvtR&8t)RTMq_R5a0OVvGcL2B;CWGu;O0%+esFfQYG446z8BkRXWSR}n=h-I=SibW7Qt zE&fsZ!~1LV-n%>JoqNwck8q8HuJQLVumO}Ux_@{f1#jqOsp~?gWo_xq#o8n(^T(mE zh@HHkccv@QolO38;#6B(TQXOUF9V8PHI+HIo(R)25*f?~lI+yAHf`=m@0FI81_zBO zevTLq0~nH#^P9{3YQofC0N`c<$pSE6s^f#;&j1<<;1qz9my>ujKt%w4CUj43F&e(} z_LPYFCI}A!d=a3-04{p#%qRq5A^~{}e#tiUC$9=Xi9|PmXbl)|TX&3l0QL2~sHaY? z%PSh2+zg_nV7y|P+T)egwIfA)(e0($`jkXKM-ZF%d85@sD**g>5Q;=UAfm-C zs4QW`b`NX-p@{l95vH(%F?L)#o_V8?TwOv49AfYu+t5oD8C?j_R%YI4n|joj0jZh< zgo$ZRiy3R{mw}K}n+d3b3)O1U^vpk0BGI)VdX1SIY*SwqlB*{Z0tdnTjeBlzNh0w^ zSKpjcDTfTk^+y1@1r8Tmas61o04l<@p@85PfV%-~0>roJ1ZKCGKr2BIV5ihFH|+yJ zic}8(n8Cn70=5H`k|7uc09S)>JHQ`WhCc7AGVIayV@!C_({C1~j4ozgYd7iZ(|hIj z)r<<}i54QY$LYQM;%4rKn=hX zAP`91&ZQ*5J$l}8v|Y^&zxdtC4*)5V=sO@TFgX#THxMl_kVFMVJBj>c^ zc9-vHYB+S&9;ggQ*9buy0RDkpJj;aMSs;M%fA{t?AR5lZOYBCy(esC!#wEWd&=@ek z>oS=jPDwF9C}gG;AXEeBunesvrHww3?FA9Fl?dek7FdSn&G0KC6s}oHLTmxpvN5e1p~niKL#+9;Y_iOO`bJh z*#nE!*~HibV25RBm6efbxgcs~##Yk{RmAdWNh~eA`t`Q z?5}k8<^zUtzFz?Ir8+DKv;!#i4l>}GQYw1Afzfg1BG25vP5<3nUm(>-7iy>d xW+a(#gk8LxXwtU(m1p33fgjp`W9@$i{sQFhTRzJzBa{FD002ovPDHLkV1nx}WBdRB literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/vote.png b/unpackage/dist/dev/mp-weixin/static/vote.png new file mode 100644 index 0000000000000000000000000000000000000000..7f7f08594747753828ee86ae7dc912447936c6cd GIT binary patch literal 603 zcmV-h0;K(kP)Px%6-h)vRA@u(n9pkyK@`W|Os0~RU;oaH^EL-Rt$<%wqymiElI- zw-{ruZJ}wJZbwn{62+fF0Li0m&ag?)Hs@&@-}es)AzP!=3jhy=5J!0nvvA}&=U)L} zbtKjp<4GxdDBdP8i$e;@7s*^mevA^@25nP>z!KPo_`d&?5VDbJC4~G+lH^fd)3R`$ z?{qp&9LGOw$i|olQp)}D#X<2!>{>L>Bl#SfbEztk{DmRUIlrltao6Y-_(&yGSv(Z{#i=ybWoo-#%yJ)~$a(mQp^M=!(1DZttdPIw*;aF<-(k ze33VR=XpDn(kt0FN@*Mf!Es((tJS)vwO$*>{SJcQSvGWz_&dg!8^bG-6abEd5Ls3G p&ofmUSfojxWekd+CEfpx{RgRbzg_)}Tyg*a002ovPDHLkV1h6Y7ySSL literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.js b/unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.js new file mode 100644 index 0000000..c2a4697 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.js @@ -0,0 +1,586 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const block0 = (Component2) => { + if (!Component2.wxsCallMethods) { + Component2.wxsCallMethods = []; + } + Component2.wxsCallMethods.push("dataChange"); +}; +const AREA_SIZE = 75; +const IMG_SIZE = 300; +const _sfc_main = { + name: "qf-image-cropper", + options: { + // 表示启用样式隔离,在自定义组件内外,使用 class 指定的样式将不会相互影响 + styleIsolation: "isolated" + }, + props: { + /** 图片资源地址 */ + src: { + type: String, + default: "" + }, + /** 裁剪宽度,有些平台或设备对于canvas的尺寸有限制,过大可能会导致无法正常绘制 */ + width: { + type: Number, + default: IMG_SIZE + }, + /** 裁剪高度,有些平台或设备对于canvas的尺寸有限制,过大可能会导致无法正常绘制 */ + height: { + type: Number, + default: IMG_SIZE + }, + /** 是否绘制裁剪区域边框 */ + showBorder: { + type: Boolean, + default: true + }, + /** 是否绘制裁剪区域网格参考线 */ + showGrid: { + type: Boolean, + default: true + }, + /** 是否展示四个支持伸缩的角 */ + showAngle: { + type: Boolean, + default: true + }, + /** 裁剪区域最小缩放倍数 */ + areaScale: { + type: Number, + default: 0.3 + }, + /** 图片最小缩放倍数 */ + minScale: { + type: Number, + default: 1 + }, + /** 图片最大缩放倍数 */ + maxScale: { + type: Number, + default: 5 + }, + /** 检查图片位置是否超出裁剪边界,如果超出则会矫正位置 */ + checkRange: { + type: Boolean, + default: true + }, + /** 生成图片背景色:如果裁剪区域没有完全包含在图片中时,不设置该属性生成图片存在一定的透明块 */ + backgroundColor: { + type: String + }, + /** 是否有回弹效果:当 checkRange 为 true 时有效,拖动时可以拖出边界,释放时会弹回边界 */ + bounce: { + type: Boolean, + default: true + }, + /** 是否支持翻转 */ + rotatable: { + type: Boolean, + default: true + }, + /** 是否支持逆向翻转 */ + reverseRotatable: { + type: Boolean, + default: false + }, + /** 是否支持从本地选择素材 */ + choosable: { + type: Boolean, + default: true + }, + /** 是否开启硬件加速,图片缩放过程中如果出现元素的“留影”或“重影”效果,可通过该方式解决或减轻这一问题 */ + gpu: { + type: Boolean, + default: false + }, + /** 四个角尺寸,单位px */ + angleSize: { + type: Number, + default: 20 + }, + /** 四个角边框宽度,单位px */ + angleBorderWidth: { + type: Number, + default: 2 + }, + zIndex: { + type: [Number, String] + }, + /** 裁剪图片圆角半径,单位px */ + radius: { + type: Number, + default: 0 + }, + /** 生成文件的类型,只支持 'jpg' 或 'png'。默认为 'png' */ + fileType: { + type: String, + default: "png" + }, + /** + * 图片从绘制到生成所需时间,单位ms + * 微信小程序平台使用 `Canvas 2D` 绘制时有效 + * 如绘制大图或出现裁剪图片空白等情况应适当调大该值,因 `Canvas 2d` 采用同步绘制,需自己把控绘制完成时间 + */ + delay: { + type: Number, + default: 1e3 + } + }, + emits: ["crop"], + data() { + return { + // 用不同 id 使 v-for key 不重复 + maskList: [ + { id: "crop-mask-block-1" }, + { id: "crop-mask-block-2" }, + { id: "crop-mask-block-3" }, + { id: "crop-mask-block-4" } + ], + gridList: [ + { id: "crop-grid-1" }, + { id: "crop-grid-2" }, + { id: "crop-grid-3" }, + { id: "crop-grid-4" } + ], + angleList: [ + { id: "crop-angle-1" }, + { id: "crop-angle-2" }, + { id: "crop-angle-3" }, + { id: "crop-angle-4" } + ], + /** 本地缓存的图片路径 */ + imgSrc: "", + /** 图片的裁剪宽度 */ + imgWidth: IMG_SIZE, + /** 图片的裁剪高度 */ + imgHeight: IMG_SIZE, + /** 裁剪区域最大宽度所占屏幕宽度百分比 */ + widthPercent: AREA_SIZE, + /** 裁剪区域最大高度所占屏幕宽度百分比 */ + heightPercent: AREA_SIZE, + /** 裁剪区域布局信息 */ + area: {}, + /** 未被缩放过的图片宽 */ + oldWidth: 0, + /** 未被缩放过的图片高 */ + oldHeight: 0, + /** 系统信息 */ + sys: common_vendor.index.getSystemInfoSync(), + scaleWidth: 0, + scaleHeight: 0, + rotate: 0, + offsetX: 0, + offsetY: 0, + use2d: false, + canvansWidth: 0, + canvansHeight: 0 + // imageStyles: {}, + // maskStylesList: [{}, {}, {}, {}], + // borderStyles: {}, + // gridStylesList: [{}, {}, {}, {}], + // angleStylesList: [{}, {}, {}, {}], + // circleBoxStyles: {}, + // circleStyles: {}, + }; + }, + computed: { + initData() { + return { + timestamp: (/* @__PURE__ */ new Date()).getTime(), + area: { + ...this.area, + bounce: this.bounce, + showBorder: this.showBorder, + showGrid: this.showGrid, + showAngle: this.showAngle, + angleSize: this.angleSize, + angleBorderWidth: this.angleBorderWidth, + minScale: this.areaScale, + widthPercent: this.widthPercent, + heightPercent: this.heightPercent, + radius: this.radius, + checkRange: this.checkRange, + zIndex: +this.zIndex || 0 + }, + sys: this.sys, + img: { + minScale: this.minScale, + maxScale: this.maxScale, + src: this.imgSrc, + width: this.oldWidth, + height: this.oldHeight, + oldWidth: this.oldWidth, + oldHeight: this.oldHeight, + gpu: this.gpu + } + }; + }, + imgProps() { + return { + width: this.width, + height: this.height, + src: this.src + }; + } + }, + watch: { + imgProps: { + handler(val, oldVal) { + this.imgWidth = Number(val.width) || IMG_SIZE; + this.imgHeight = Number(val.height) || IMG_SIZE; + let use2d = true; + let canvansWidth = this.imgWidth; + let canvansHeight = this.imgHeight; + let size = Math.max(canvansWidth, canvansHeight); + let scalc = 1; + if (size > 1365) { + scalc = 1365 / size; + } + this.canvansWidth = canvansWidth * scalc; + this.canvansHeight = canvansHeight * scalc; + this.use2d = use2d; + this.initArea(); + const src = val.src || this.imgSrc; + src && this.initImage(src, oldVal === void 0); + }, + immediate: true + } + }, + methods: { + /** 提供给wxs调用,用来接收图片变更数据 */ + dataChange(e) { + this.scaleWidth = e.width; + this.scaleHeight = e.height; + this.rotate = e.rotate; + this.offsetX = e.x; + this.offsetY = e.y; + }, + /** 初始化裁剪区域布局信息 */ + initArea() { + this.sys.offsetBottom = common_vendor.index.upx2px(100) + this.sys.safeAreaInsets.bottom; + this.sys.windowTop = 0; + this.sys.navigation = true; + let wp = this.widthPercent; + let hp = this.heightPercent; + if (this.imgWidth > this.imgHeight) { + hp = hp * this.imgHeight / this.imgWidth; + } else if (this.imgWidth < this.imgHeight) { + wp = wp * this.imgWidth / this.imgHeight; + } + const size = this.sys.windowWidth > this.sys.windowHeight ? this.sys.windowHeight : this.sys.windowWidth; + const width = size * wp / 100; + const height = size * hp / 100; + const left = (this.sys.windowWidth - width) / 2; + const right = left + width; + const top = (this.sys.windowHeight + this.sys.windowTop - this.sys.offsetBottom - height) / 2; + const bottom = this.sys.windowHeight + this.sys.windowTop - this.sys.offsetBottom - top; + this.area = { width, height, left, right, top, bottom }; + this.scaleWidth = width; + this.scaleHeight = height; + }, + /** 从本地选取图片 */ + chooseImage(options) { + if (common_vendor.index.chooseMedia) { + common_vendor.index.chooseMedia({ + ...options, + count: 1, + mediaType: ["image"], + success: (res) => { + this.resetData(); + this.initImage(res.tempFiles[0].tempFilePath); + } + }); + return; + } + common_vendor.index.chooseImage({ + ...options, + count: 1, + success: (res) => { + this.resetData(); + this.initImage(res.tempFiles[0].path); + } + }); + }, + /** 重置数据 */ + resetData() { + this.imgSrc = ""; + this.rotate = 0; + this.offsetX = 0; + this.offsetY = 0; + this.initArea(); + }, + /** + * 初始化图片信息 + * @param {String} url 图片链接 + */ + initImage(url, isFirst) { + common_vendor.index.getImageInfo({ + src: url, + success: async (res) => { + if (isFirst && this.src === url) + await new Promise((resolve) => setTimeout(resolve, 50)); + this.imgSrc = res.path; + let scale = res.width / res.height; + let areaScale = this.area.width / this.area.height; + if (scale > 1) { + if (scale >= areaScale) { + this.scaleWidth = this.scaleHeight / res.height * this.scaleWidth * (res.width / this.scaleWidth); + } else { + this.scaleHeight = res.height * this.scaleWidth / res.width; + } + } else { + if (scale <= areaScale) { + this.scaleHeight = this.scaleWidth / res.width * this.scaleHeight / (this.scaleHeight / res.height); + } else { + this.scaleWidth = res.width * this.scaleHeight / res.height; + } + } + this.oldWidth = +this.scaleWidth.toFixed(2); + this.oldHeight = +this.scaleHeight.toFixed(2); + }, + fail: (err) => { + common_vendor.index.__f__("error", "at uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue:438", err); + } + }); + }, + /** + * 剪切图片圆角 + * @param {Object} ctx canvas 的绘图上下文对象 + * @param {Number} radius 圆角半径 + * @param {Number} scale 生成图片的实际尺寸与截取区域比 + * @param {Function} drawImage 执行剪切时所调用的绘图方法,入参为是否执行了剪切 + */ + drawClipImage(ctx, radius, scale, drawImage) { + if (radius > 0) { + ctx.save(); + ctx.beginPath(); + const w = this.canvansWidth; + const h = this.canvansHeight; + if (w === h && radius >= w / 2) { + ctx.arc(w / 2, h / 2, w / 2, 0, 2 * Math.PI); + } else { + if (w !== h) { + radius = Math.min(w / 2, h / 2, radius); + } + ctx.moveTo(radius, 0); + ctx.arcTo(w, 0, w, h, radius); + ctx.arcTo(w, h, 0, h, radius); + ctx.arcTo(0, h, 0, 0, radius); + ctx.arcTo(0, 0, w, 0, radius); + ctx.closePath(); + } + ctx.clip(); + drawImage && drawImage(true); + ctx.restore(); + } else { + drawImage && drawImage(false); + } + }, + /** + * 旋转图片 + * @param {Object} ctx canvas 的绘图上下文对象 + * @param {Number} rotate 旋转角度 + * @param {Number} scale 生成图片的实际尺寸与截取区域比 + */ + drawRotateImage(ctx, rotate, scale) { + if (rotate !== 0) { + const x = this.scaleWidth * scale / 2; + const y = this.scaleHeight * scale / 2; + ctx.translate(x, y); + ctx.rotate(rotate * Math.PI / 180); + ctx.translate(-x, -y); + } + }, + drawImage(ctx, image, callback) { + const scale = this.canvansWidth / this.area.width; + if (this.backgroundColor) { + if (ctx.setFillStyle) + ctx.setFillStyle(this.backgroundColor); + else + ctx.fillStyle = this.backgroundColor; + ctx.fillRect(0, 0, this.canvansWidth, this.canvansHeight); + } + this.drawClipImage(ctx, this.radius, scale, () => { + this.drawRotateImage(ctx, this.rotate, scale); + const r = this.rotate / 90; + ctx.drawImage( + image, + [ + this.offsetX - this.area.left, + this.offsetY - this.area.top, + -(this.offsetX - this.area.left), + -(this.offsetY - this.area.top) + ][r] * scale, + [ + this.offsetY - this.area.top, + -(this.offsetX - this.area.left), + -(this.offsetY - this.area.top), + this.offsetX - this.area.left + ][r] * scale, + this.scaleWidth * scale, + this.scaleHeight * scale + ); + }); + }, + /** + * 绘图 + * @param {Object} canvas + * @param {Object} ctx canvas 的绘图上下文对象 + * @param {String} src 图片路径 + * @param {Function} callback 开始绘制时回调 + */ + draw2DImage(canvas, ctx, src, callback) { + if (canvas) { + const image = canvas.createImage(); + image.onload = () => { + this.drawImage(ctx, image); + callback && setTimeout(callback, this.delay); + }; + image.onerror = (err) => { + common_vendor.index.__f__("error", "at uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue:541", err); + common_vendor.index.hideLoading(); + }; + image.src = src; + } else { + this.drawImage(ctx, src); + setTimeout(() => { + ctx.draw(false, callback); + }, 200); + } + }, + /** + * 画布转图片到本地缓存 + * @param {Object} canvas + * @param {String} canvasId + */ + canvasToTempFilePath(canvas, canvasId) { + common_vendor.index.canvasToTempFilePath({ + canvas, + canvasId, + x: 0, + y: 0, + width: this.canvansWidth, + height: this.canvansHeight, + destWidth: this.imgWidth, + // 必要,保证生成图片宽度不受设备分辨率影响 + destHeight: this.imgHeight, + // 必要,保证生成图片高度不受设备分辨率影响 + fileType: this.fileType, + // 目标文件的类型,默认png + success: (res) => { + this.handleImage(res.tempFilePath); + }, + fail: (err) => { + common_vendor.index.hideLoading(); + common_vendor.index.showToast({ title: "裁剪失败,生成图片异常!", icon: "none" }); + } + }, this); + }, + cropCancel() { + this.$emit("cancel"); + }, + /** 确认裁剪 */ + cropClick() { + common_vendor.index.showLoading({ title: "裁剪中...", mask: true }); + if (!this.use2d) { + const ctx = common_vendor.index.createCanvasContext("imgCanvas", this); + ctx.clearRect(0, 0, this.canvansWidth, this.canvansHeight); + this.draw2DImage(null, ctx, this.imgSrc, () => { + this.canvasToTempFilePath(null, "imgCanvas"); + }); + return; + } + const query = common_vendor.index.createSelectorQuery().in(this); + query.select("#imgCanvas").fields({ node: true, size: true }).exec((res) => { + const canvas = res[0].node; + const dpr = common_vendor.index.getSystemInfoSync().pixelRatio; + canvas.width = res[0].width * dpr; + canvas.height = res[0].height * dpr; + const ctx = canvas.getContext("2d"); + ctx.scale(dpr, dpr); + ctx.clearRect(0, 0, this.canvansWidth, this.canvansHeight); + this.draw2DImage(canvas, ctx, this.imgSrc, () => { + this.canvasToTempFilePath(canvas); + }); + }); + }, + handleImage(tempFilePath) { + common_vendor.index.hideLoading(); + this.$emit("crop", { tempFilePath }); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: $data.use2d + }, $data.use2d ? { + b: `${$data.canvansWidth}px`, + c: `${$data.canvansHeight}px` + } : { + d: `${$data.canvansWidth}px`, + e: `${$data.canvansHeight}px` + }, { + f: $data.imgSrc + }, $data.imgSrc ? { + g: $data.imgSrc + } : {}, { + h: common_vendor.f($data.maskList, (item, index, i0) => { + return { + a: item.id, + b: item.id + }; + }), + i: $props.showBorder + }, $props.showBorder ? {} : {}, { + j: $props.radius > 0 + }, $props.radius > 0 ? {} : {}, { + k: $props.showGrid + }, $props.showGrid ? { + l: common_vendor.f($data.gridList, (item, index, i0) => { + return { + a: item.id, + b: item.id + }; + }) + } : {}, { + m: $props.showAngle + }, $props.showAngle ? { + n: common_vendor.f($data.angleList, (item, index, i0) => { + return { + a: item.id, + b: item.id + }; + }), + o: common_vendor.s({ + width: `${$props.angleSize}px`, + height: `${$props.angleSize}px` + }) + } : {}, { + p: $options.initData, + q: ($props.rotatable || $props.reverseRotatable) && !!$data.imgSrc + }, ($props.rotatable || $props.reverseRotatable) && !!$data.imgSrc ? common_vendor.e({ + r: $props.reverseRotatable + }, $props.reverseRotatable ? {} : {}, { + s: $props.rotatable + }, $props.rotatable ? {} : {}) : {}, { + t: !$props.choosable + }, !$props.choosable ? { + v: common_vendor.o((...args) => $options.cropClick && $options.cropClick(...args)) + } : !!$data.imgSrc ? { + x: common_vendor.o((...args) => $options.chooseImage && $options.chooseImage(...args)), + y: common_vendor.o((...args) => $options.cropCancel && $options.cropCancel(...args)), + z: common_vendor.o((...args) => $options.cropClick && $options.cropClick(...args)) + } : { + A: common_vendor.o((...args) => $options.chooseImage && $options.chooseImage(...args)) + }, { + w: !!$data.imgSrc, + B: $options.initData.area.zIndex + 99, + C: $props.zIndex + }); +} +if (typeof block0 === "function") + block0(_sfc_main); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-7129956f"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.json b/unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxml new file mode 100644 index 0000000..0a5d42c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxml @@ -0,0 +1,730 @@ + +/** + * 图片编辑器-手势监听 + * 1. wxs 暂不支持 es6 语法 + * 2. 支持编译到微信小程序、QQ小程序、app-vue、H5上(uni-app 2.2.5及以上版本) + */ +/** 图片偏移量 */ +var offset = { x: 0, y: 0 }; +/** 图片缩放比例 */ +var scale = 1; +/** 图片最小缩放比例 */ +var minScale = 1; +/** 图片旋转角度 */ +var rotate = 0; +/** 触摸点 */ +var touches = []; +/** 图片布局信息 */ +var img = {}; +/** 系统信息 */ +var sys = {}; +/** 裁剪区域布局信息 */ +var area = {}; +/** 触摸行为类型 */ +var touchType = ''; +/** 操作角的位置 */ +var activeAngle = 0; +/** 裁剪区域布局信息偏移量 */ +var areaOffset = { left: 0, right: 0, top: 0, bottom: 0 }; +/** 容错值 */ +var fault = 0.000001; +/** + * 获取a、b两数中的最小正数 + * @param a + * @param b + */ +function minimum(a, b) { + if (a > 0 && b < 0) return a; + if (a < 0 && b > 0) return b; + if (a > 0 && b > 0) return Math.min(a, b); + return 0; +} +/** + * 在容错访问内获取n近似值 + * @param n + */ +function num(n) { + var m = parseFloat((n).toFixed(6)); + return m === fault || m === -fault ? 0 : m; +} +/** + * 比较a值在容错值范围内是否等于b值 + * @param a + * @param b + */ +function equalsByFault(a, b) { + return Math.abs(a - b) <= fault; +} +/** + * 比较a值在容错值范围内是否小于b值 + * @param a + * @param b + */ +function lessThanByFault(a, b) { + var c = a - b; + return c < 0 ? c < -fault : c < fault; +} +/** + * 验证并获取有效最大值 + * @param v + * @param max + * @param isInclude + * @param x + * @param y + * @param rate + * @returns + */ +function validMax(v, max, isInclude, x, y, rate) { + if(typeof max === 'number') { + if(isInclude && equalsByFault(max, y)) { // 宽高不等时,x轴用y轴值要做等比例转换 + var n = num(max * rate); + if (n <= x) return n; // 转化后值在x轴最大值范围内 + return x; // 转化后值超出x轴最大值范围则用最大值 + } + return max; + } + return v; +} +/** + * 计算两点间距 + * @param {Object} touches 触摸点信息 + */ +function getDistanceByTouches(touches) { + // 根据勾股定理求两点间距离 + var a = touches[1].pageX - touches[0].pageX; + var b = touches[1].pageY - touches[0].pageY; + var c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2)); + // 求两点间的中点坐标 + // 1. a、b可能为负值 + // 2. 在求a、b时,如用touches[1]减touches[0],则求中点坐标也得用touches[1]减a/2、b/2 + // 3. 同理,在求a、b时,也可用touches[0]减touches[1],则求中点坐标也得用touches[0]减a/2、b/2 + var x = touches[1].pageX - a / 2; + var y = touches[1].pageY - b / 2; + return { c, x, y }; +}; +/** + * 修正取值 + * @param {Object} a + * @param {Object} b + * @param {Object} c + * @param {Object} reverse 是否反向 + */ +function correctValue(a, b, c, reverse) { + return num(reverse ? Math.max(Math.min(a, b), c) : Math.min(Math.max(a, b), c)); +} + +/** + * 旋转90°或270°时检查边界:限制 x、y 拖动范围,禁止滑出边界 + * @param {Object} e 点坐标 + * @param {Object} xReverse x是否反向 + * @param {Object} yReverse y是否反向 + */ +function checkRotateRange(e, xReverse, yReverse) { + var o = num((img.height - img.width) / 2); // 宽高差值一半 + return { + x: correctValue(e.x, -img.height + o + area.width + area.left, area.left + o, xReverse), + y: correctValue(e.y, -img.width - o + area.height + area.top, area.top - o, yReverse) + }; +} + +/** + * 检查边界:限制 x、y 拖动范围,禁止滑出边界 + * @param {Object} e 点坐标 + */ +function checkRange(e) { + var r = rotate / 90 % 2; + if(r === 1) { // 因图片宽高可能不等,翻转 90° 或 270° 后图片宽高需反着计算,且左右和上下边界要根据差值做偏移 + if (area.width === area.height) { + return checkRotateRange(e, img.height < area.height, img.width < area.width); + } + var isInclude = img.height < area.width && img.width < area.height; // 图片是否包含在裁剪区域内 + if (img.width < area.height || img.height < area.width) { + if (area.width < area.height && img.width < img.height) { + return isInclude + ? checkRotateRange(e, area.width < area.height, area.width < area.height) + : checkRotateRange(e, false, true); + } + if (area.height < area.width && img.height < img.width) { + return isInclude + ? checkRotateRange(e, area.height < area.width, area.height < area.width) + : checkRotateRange(e, true, false); + } + } + if (img.height >= area.width && img.width >= area.height) { + return checkRotateRange(e, false, false); + } + if (isInclude) { + return area.height < area.width + ? checkRotateRange(e, true, true) + : checkRotateRange(e, area.width < area.height, area.width < area.height); + } + if (img.height < area.width && !img.width < area.height) { + return checkRotateRange(e, true, false); + } + if (!img.height < area.width && img.width < area.height) { + return checkRotateRange(e, false, true); + } + return checkRotateRange(e, img.height < area.height, img.width < area.width); + } + return { + x: correctValue(e.x, -img.width + area.width + area.left, area.left, img.width < area.width), + y: correctValue(e.y, -img.height + area.height + area.top, area.top, img.height < area.height) + }; +}; +/** + * 变更图片布局信息 + * @param {Object} e 布局信息 + */ +function changeImageRect(e) { + offset.x += e.x || 0; + offset.y += e.y || 0; + var image = e.instance.selectComponent('.crop-image'); + if(e.check && area.checkRange) { // 检查边界 + var point = checkRange(offset); + if(offset.x !== point.x || offset.y !== point.y) { + offset = point; + } + } + // image.setStyle({ + // width: img.width + 'px', + // height: img.height + 'px', + // transform: 'translate(' + offset.x + 'px, ' + offset.y + 'px) rotate(' + rotate +'deg)' + // }); + var ox = (img.width - img.oldWidth) / 2; + var oy = (img.height - img.oldHeight) / 2; + image.setStyle({ + width: img.oldWidth + 'px', + height: img.oldHeight + 'px', + transform: (img.gpu ? 'translateZ(0) ' : '') + 'translate(' + (offset.x + ox) + 'px, ' + (offset.y + oy) + 'px) rotate(' + rotate +'deg) scale(' + scale + ')' + }); + + e.instance.callMethod('dataChange', { + width: img.width, + height: img.height, + x: offset.x, + y: offset.y, + rotate: rotate + }); +}; +/** + * 变更裁剪区域布局信息 + * @param {Object} e 布局信息 + */ +function changeAreaRect(e) { + // 变更蒙版样式 + var masks = e.instance.selectAllComponents('.crop-mask-block'); + var maskStyles = [ + { + left: 0, + width: (area.left + areaOffset.left) + 'px', + top: 0, + bottom: 0, + 'z-index': area.zIndex + 2 + }, + { + left: (area.right + areaOffset.right) + 'px', + right: 0, + top: 0, + bottom: 0, + 'z-index': area.zIndex + 2 + }, + { + left: (area.left + areaOffset.left) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + top: 0, + height: (area.top + areaOffset.top) + 'px', + 'z-index': area.zIndex + 2 + }, + { + left: (area.left + areaOffset.left) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + top: (area.bottom + areaOffset.bottom) + 'px', + // height: (area.top - areaOffset.bottom + sys.offsetBottom) + 'px', + bottom: 0, + 'z-index': area.zIndex + 2 + } + ]; + var len = masks.length; + for (var i = 0; i < len; i++) { + masks[i].setStyle(maskStyles[i]); + } + + // 变更边框样式 + if(area.showBorder) { + var border = e.instance.selectComponent('.crop-border'); + border.setStyle({ + left: (area.left + areaOffset.left) + 'px', + top: (area.top + areaOffset.top) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + height: (area.height + areaOffset.bottom - areaOffset.top) + 'px', + 'z-index': area.zIndex + 3 + }); + } + + // 变更参考线样式 + if(area.showGrid) { + var grids = e.instance.selectAllComponents('.crop-grid'); + var gridStyles = [ + { + 'border-width': '1px 0 0 0', + left: (area.left + areaOffset.left) + 'px', + right: (area.right + areaOffset.right) + 'px', + top: (area.top + areaOffset.top + (area.height + areaOffset.bottom - areaOffset.top) / 3 - 0.5) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '1px 0 0 0', + left: (area.left + areaOffset.left) + 'px', + right: (area.right + areaOffset.right) + 'px', + top: (area.top + areaOffset.top + (area.height + areaOffset.bottom - areaOffset.top) * 2 / 3 - 0.5) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '0 1px 0 0', + top: (area.top + areaOffset.top) + 'px', + bottom: (area.bottom + areaOffset.bottom) + 'px', + left: (area.left + areaOffset.left + (area.width + areaOffset.right - areaOffset.left) / 3 - 0.5) + 'px', + height: (area.height + areaOffset.bottom - areaOffset.top) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '0 1px 0 0', + top: (area.top + areaOffset.top) + 'px', + bottom: (area.bottom + areaOffset.bottom) + 'px', + left: (area.left + areaOffset.left + (area.width + areaOffset.right - areaOffset.left) * 2 / 3 - 0.5) + 'px', + height: (area.height + areaOffset.bottom - areaOffset.top) + 'px', + 'z-index': area.zIndex + 3 + } + ]; + var len = grids.length; + for (var i = 0; i < len; i++) { + grids[i].setStyle(gridStyles[i]); + } + } + + // 变更四个伸缩角样式 + if(area.showAngle) { + var angles = e.instance.selectAllComponents('.crop-angle'); + var angleStyles = [ + { + 'border-width': area.angleBorderWidth + 'px 0 0 ' + area.angleBorderWidth + 'px', + left: (area.left + areaOffset.left - area.angleBorderWidth) + 'px', + top: (area.top + areaOffset.top - area.angleBorderWidth) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': area.angleBorderWidth + 'px ' + area.angleBorderWidth + 'px 0 0', + left: (area.right + areaOffset.right - area.angleSize) + 'px', + top: (area.top + areaOffset.top - area.angleBorderWidth) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '0 0 ' + area.angleBorderWidth + 'px ' + area.angleBorderWidth + 'px', + left: (area.left + areaOffset.left - area.angleBorderWidth) + 'px', + top: (area.bottom + areaOffset.bottom - area.angleSize) + 'px', + 'z-index': area.zIndex + 3 + }, + { + 'border-width': '0 ' + area.angleBorderWidth + 'px ' + area.angleBorderWidth + 'px 0', + left: (area.right + areaOffset.right - area.angleSize) + 'px', + top: (area.bottom + areaOffset.bottom - area.angleSize) + 'px', + 'z-index': area.zIndex + 3 + } + ]; + var len = angles.length; + for (var i = 0; i < len; i++) { + angles[i].setStyle(angleStyles[i]); + } + } + + // 变更圆角样式 + if(area.radius > 0) { + var circleBox = e.instance.selectComponent('.crop-circle-box'); + var circle = e.instance.selectComponent('.crop-circle'); + var radius = area.radius; + if(area.width === area.height && area.radius >= area.width / 2) { // 圆形 + radius = (area.width / 2); + } else { // 圆角矩形 + if(area.width !== area.height) { // 限制圆角半径不能超过短边的一半 + radius = Math.min(area.width / 2, area.height / 2, radius); + } + } + circleBox.setStyle({ + left: (area.left + areaOffset.left) + 'px', + top: (area.top + areaOffset.top) + 'px', + width: (area.width + areaOffset.right - areaOffset.left) + 'px', + height: (area.height + areaOffset.bottom - areaOffset.top) + 'px', + 'z-index': area.zIndex + 2 + }); + circle.setStyle({ + 'box-shadow': '0 0 0 ' + Math.max(area.width, area.height) + 'px rgba(51, 51, 51, 0.8)', + 'border-radius': radius + 'px' + }); + } +}; +/** + * 缩放图片 + * @param {Object} e 布局信息 + */ +function scaleImage(e) { + var last = scale; + scale = Math.min(Math.max(e.scale + scale, minScale), img.maxScale); + if(last !== scale) { + img.width = num(img.oldWidth * scale); + img.height = num(img.oldHeight * scale); + // 参考问题:有一个长4000px、宽4000px的四方形ABCD,A点的坐标固定在(-2000,-2000), + // 该四边形上有一个点E,坐标为(-100,-300),将该四方形复制一份并缩小到90%后, + // 新四边形的A点坐标为多少时可使新四边形的E点与原四边形的E点重合? + // 预期效果:从图中选取某点(参照物)为中心点进行缩放,缩放时无论图像怎么变化,该点位置始终固定不变 + // 计算方法:以相同起点先计算缩放前后两点间的距离,再加上原图像偏移量即可 + e.x = num((e.x - offset.x) * (1 - scale / last)); + e.y = num((e.y - offset.y) * (1 - scale / last)); + changeImageRect(e); + return true; + } + return false; +}; +/** + * 获取触摸点在哪个角 + * @param {number} x 触摸点x轴坐标 + * @param {number} y 触摸点y轴坐标 + * @return {number} 角的位置:0=无;1=左上;2=右上;3=左下;4=右下; + */ +function getToucheAngle(x, y) { + // console.log('getToucheAngle', x, y, JSON.stringify(area)) + var o = area.angleBorderWidth; // 需扩大触发范围则把 o 值加大即可 + if(y >= area.top - o && y <= area.top + area.angleSize + o) { + if(x >= area.left - o && x <= area.left + area.angleSize + o) { + return 1; // 左上角 + } else if(x >= area.right - area.angleSize - o && x <= area.right + o) { + return 2; // 右上角 + } + } else if(y >= area.bottom - area.angleSize - o && y <= area.bottom + o) { + if(x >= area.left - o && x <= area.left + area.angleSize + o) { + return 3; // 左下角 + } else if(x >= area.right - area.angleSize - o && x <= area.right + o) { + return 4; // 右下角 + } + } + return 0; // 无触摸到角 +}; +/** + * 重置数据 + */ +function resetData() { + offset = { x: 0, y: 0 }; + scale = 1; + minScale = img.minScale; + rotate = 0; +}; +/** +* 顺时针翻转图片90° +* @param {Object} e 事件对象 +* @param {Object} o 组件实例对象 +*/ +function rotateImage(e, o, r) { + rotate = (rotate + r) % 360; + if(img.minScale >= 1 && area.checkRange) { + // 因图片宽高可能不等,翻转后图片宽高需足够填满裁剪区域 + minScale = 1; + if(img.width < area.height) { + minScale = area.height / img.oldWidth; + } else if(img.height < area.width) { + minScale = area.width / img.oldHeight; + } + if(minScale !== 1) { + scaleImage({ + instance: o, + scale: minScale - scale, + x: sys.windowWidth / 2, + y: (sys.windowHeight - sys.offsetBottom) / 2 + }); + } + } + + // 由于拖动画布后会导致图片位置偏移,翻转时的旋转中心点需是图片区域+偏移区域的中心点 + // 翻转x轴中心点 = (超出裁剪区域右侧的图片宽度 - 超出裁剪区域左侧的图片宽度) / 2 + // 翻转y轴中心点 = (超出裁剪区域下方的图片宽度 - 超出裁剪区域上方的图片宽度) / 2 + var ox = ((offset.x + img.width - area.right) - (area.left - offset.x)) / 2; + var oy = ((offset.y + img.height - area.bottom) - (area.top - offset.y)) / 2; + changeImageRect({ + instance: o, + check: true, + x: -ox - oy, + y: -oy + ox + }); +}; +module.exports = { + /** + * 初始化:观察数据变更 + * @param {Object} newVal 新数据 + * @param {Object} oldVal 旧数据 + * @param {Object} o 组件实例对象 + */ + initObserver: function(newVal, oldVal, o, i) { + if(newVal) { + img = newVal.img; + sys = newVal.sys; + area = newVal.area; + minScale = img.minScale; + resetData(); + img.src && changeImageRect({ + instance: o, + x: (sys.windowWidth - img.width) / 2, + y: (sys.windowHeight - sys.offsetBottom - img.height) / 2 + }); + changeAreaRect({ + instance: o + }); + // console.log('initRect', JSON.stringify(newVal)) + } + }, + /** + * 鼠标滚轮滚动 + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + mousewheel: function(e, o) { + if(!img.src) return; + scaleImage({ + instance: o, + check: true, + // 鼠标向上滚动时,deltaY 固定 -100,鼠标向下滚动时,deltaY 固定 100 + scale: e.detail.deltaY > 0 ? -0.05 : 0.05, + x: e.touches[0].pageX, + y: e.touches[0].pageY + }); + }, + /** + * 触摸开始 + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + touchstart: function(e, o) { + if(!img.src) return; + touches = e.touches; + activeAngle = area.showAngle ? getToucheAngle(touches[0].pageX, touches[0].pageY) : 0; + if(touches.length === 1 && activeAngle !== 0) { + touchType = 'stretch'; // 伸缩裁剪区域 + } else { + touchType = ''; + } + // console.log('touchstart', JSON.stringify(e), activeAngle) + }, + /** + * 触摸移动 + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + touchmove: function(e, o) { + if(!img.src) return; + // console.log('touchmove', JSON.stringify(e), JSON.stringify(o)) + if(touchType === 'stretch') { // 触摸四个角进行拉伸 + var point = e.touches[0]; + var start = touches[0]; + var x = point.pageX - start.pageX; + var y = point.pageY - start.pageY; + if(x !== 0 || y !== 0) { + var maxX = num(area.width * (1 - area.minScale)); + var maxY = num(area.height * (1 - area.minScale)); + // console.log(x, y, maxX, maxY, offset, area) + touches[0] = point; + var r = rotate / 90 % 2; + var m = r === 1 ? num((img.height - img.width) / 2) : 0; // 宽高差值一半 + var xCompare = r === 1 ? lessThanByFault(img.height, area.width) : lessThanByFault(img.width, area.width); + var yCompare = r === 1 ? lessThanByFault(img.width, area.height) : lessThanByFault(img.height, area.height) + var isInclude = xCompare && yCompare; + var isIntersect = area.checkRange && (xCompare || yCompare); // 图片是否包含在裁剪区域内 + var isReverse = !isInclude || num((offset.x - area.left) / area.width) <= num((offset.y - area.top) / area.height) || (area.width > area.height && img.width < img.height && r === 1); + switch(activeAngle) { + case 1: // 左上角 + x = num(x + areaOffset.left); + y = num(y + areaOffset.top); + if(x >= 0 && y >= 0) { // 有效滑动 + var t = num(offset.y + m - area.top); + var l = num(offset.x - m - area.left); + // && (offset.x + img.width < area.right || offset.y + img.height < area.bottom) + var max = isIntersect && ((l >= 0) || (t >= 0)) + ? minimum(t, l) + : false; + if(x > y && isReverse) { // 以x轴滑动距离为缩放基准 + maxX = validMax(maxX, max, isInclude, l, t, area.width / area.height); + if(x > maxX) x = maxX; + y = num(x * area.height / area.width); + } else { // 以y轴滑动距离为缩放基准 + maxY = validMax(maxY, max, isInclude, t, l, area.height / area.width); + if(y > maxY) y = maxY; + x = num(y * area.width / area.height); + } + areaOffset.left = x; + areaOffset.top = y; + } + break; + case 2: // 右上角 + x = num(x + areaOffset.right); + y = num(y + areaOffset.top); + if(x <= 0 && y >= 0) { // 有效滑动 + var w = (r === 1 ? img.height : img.width); + var t = num(offset.y + m - area.top); + var l = num(area.right + m - offset.x - w); + var max = isIntersect && ((t >= 0) || (l >= 0)) + ? minimum(t, l) + : false; + // var max = isInclude && ((offset.x > 0 && offset.x + img.width <= area.right) || (offset.y > 0 && offset.y >= area.top)) + // ? minimum(offset.y - area.top, area.right - offset.x - img.width) + // : false; + // console.log(offset.x, offset.y, img.width, img.height, area.top, area.right, m, max) + // console.log(offset.y + m - area.top, area.right + m - offset.x - w) + if(-x > y && isReverse) { // 以x轴滑动距离为缩放基准 + maxX = validMax(maxX, max, isInclude, l, t, area.width / area.height); + if(-x > maxX) x = -maxX; + y = num(-x * area.height / area.width); + } else { // 以y轴滑动距离为缩放基准 + maxY = validMax(maxY, max, isInclude, t, l, area.height / area.width); + if(y > maxY) y = maxY; + x = num(-y * area.width / area.height); + } + areaOffset.right = x; + areaOffset.top = y; + } + break; + case 3: // 左下角 + x += num(x + areaOffset.left); + y += num(y + areaOffset.bottom); + if(x >= 0 && y <= 0) { // 有效滑动 + var w = (r === 1 ? img.width : img.height); + var t = num(area.bottom - m - offset.y - w); + var l = num(offset.x - m - area.left); + var max = isIntersect && ((l >= 0) || (t >= 0)) + ? minimum(t, l) + : false; + if(x > -y && isReverse) { // 以x轴滑动距离为缩放基准 + maxX = validMax(maxX, max, isInclude, l, t, area.width / area.height); + if(x > maxX) x = maxX; + y = num(-x * area.height / area.width); + } else { // 以y轴滑动距离为缩放基准 + maxY = validMax(maxY, max, isInclude, t, l, area.height / area.width); + if(-y > maxY) y = -maxY; + x = num(-y * area.width / area.height); + } + areaOffset.left = x; + areaOffset.bottom = y; + } + break; + case 4: // 右下角 + x = num(x + areaOffset.right); + y = num(y + areaOffset.bottom); + if(x <= 0 && y <= 0) { // 有效滑动 + var w = (r === 1 ? img.height : img.width); + var h = (r === 1 ? img.width : img.height); + var t = num(area.bottom - offset.y - h - m); + var l = num(area.right + m - offset.x - w); + var max = isIntersect && ((l >= 0) || (t >= 0)) + ? minimum(t, l) + : false; + if(-x > -y && isReverse) { // 以x轴滑动距离为缩放基准 + maxX = validMax(maxX, max, isInclude, l, t, area.width / area.height); + if(-x > maxX) x = -maxX; + y = num(x * area.height / area.width); + } else { // 以y轴滑动距离为缩放基准 + maxY = validMax(maxY, max, isInclude, t, l, area.height / area.width); + if(-y > maxY) y = -maxY; + x = num(y * area.width / area.height); + } + areaOffset.right = x; + areaOffset.bottom = y; + } + break; + } + // console.log(x, y, JSON.stringify(areaOffset)) + changeAreaRect({ + instance: o, + }); + // this.draw(); + } + } else if (e.touches.length == 2) { // 双点触摸缩放 + var start = getDistanceByTouches(touches); + var end = getDistanceByTouches(e.touches); + scaleImage({ + instance: o, + check: !area.bounce, + scale: (end.c - start.c) / 100, + x: end.x, + y: end.y + }); + touchType = 'scale'; + } else if(touchType === 'scale') {// 从双点触摸变成单点触摸 / 从缩放变成拖动 + touchType = 'move'; + } else { + changeImageRect({ + instance: o, + check: !area.bounce, + x: e.touches[0].pageX - touches[0].pageX, + y: e.touches[0].pageY - touches[0].pageY + }); + touchType = 'move'; + } + touches = e.touches; + }, + /** + * 触摸结束 + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + touchend: function(e, o) { + if(!img.src) return; + if(touchType === 'stretch') { // 拉伸裁剪区域的四个角缩放 + // 裁剪区域宽度被缩放到多少 + var left = areaOffset.left; + var right = areaOffset.right; + var top = areaOffset.top; + var bottom = areaOffset.bottom; + var w = area.width + right - left; + var h = area.height + bottom - top; + // 图像放大倍数 + var p = scale * (area.width / w) - scale; + // 复原裁剪区域 + areaOffset = { left: 0, right: 0, top: 0, bottom: 0 }; + changeAreaRect({ + instance: o, + }); + scaleImage({ + instance: o, + scale: p, + x: area.left + left + (1 === activeAngle || 3 === activeAngle ? w : 0), + y: area.top + top + (1 === activeAngle || 2 === activeAngle ? h : 0) + }); + } else if (area.bounce) { // 检查边界并矫正,实现拖动到边界时有回弹效果 + changeImageRect({ + instance: o, + check: true + }); + } + }, + /** + * 顺时针翻转图片90° + * @param {Object} e 事件对象 + * @param {Object} o 组件实例对象 + */ + rotateImage: function(e, o) { + rotateImage(e, o, 90); + }, + rotateImage90: function(e, o) { + rotateImage(e, o, 90) + }, + rotateImage270: function(e, o) { + rotateImage(e, o, 270) + }, + // 此处只用于对齐其他平台端的样式参数,防止异常,无作用 + imageStyles: '', + maskStylesList: ['', '', '', ''], + borderStyles: '', + gridStylesList: ['', '', '', ''], + angleStylesList: ['', '', '', ''], + circleBoxStyles: '', + circleStyles: '', +} + +确定重选选择图片 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxss new file mode 100644 index 0000000..732d436 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.wxss @@ -0,0 +1,146 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.image-cropper.data-v-7129956f { + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; + overflow: hidden; + display: flex; + flex-direction: column; + background-color: #000; +} +.image-cropper .img-canvas.data-v-7129956f { + position: absolute !important; + transform: translateX(-100%); +} +.image-cropper .pic-preview.data-v-7129956f { + width: 100%; + flex: 1; + position: relative; +} +.image-cropper .pic-preview .crop-mask-block.data-v-7129956f { + background-color: rgba(51, 51, 51, 0.8); + z-index: 2; + position: fixed; + box-sizing: border-box; + pointer-events: none; +} +.image-cropper .pic-preview .crop-circle-box.data-v-7129956f { + position: fixed; + box-sizing: border-box; + z-index: 2; + pointer-events: none; + overflow: hidden; +} +.image-cropper .pic-preview .crop-circle-box .crop-circle.data-v-7129956f { + width: 100%; + height: 100%; +} +.image-cropper .pic-preview .crop-image.data-v-7129956f { + padding: 0 !important; + margin: 0 !important; + border-radius: 0 !important; + display: block !important; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.image-cropper .pic-preview .crop-border.data-v-7129956f { + position: fixed; + border: 1px solid #fff; + box-sizing: border-box; + z-index: 3; + pointer-events: none; +} +.image-cropper .pic-preview .crop-grid.data-v-7129956f { + position: fixed; + z-index: 3; + border-style: dashed; + border-color: #fff; + pointer-events: none; + opacity: 0.5; +} +.image-cropper .pic-preview .crop-angle.data-v-7129956f { + position: fixed; + z-index: 3; + border-style: solid; + border-color: #fff; + pointer-events: none; +} +.image-cropper .fixed-bottom.data-v-7129956f { + position: fixed; + left: 0; + right: 0; + bottom: 0; + z-index: 99; + display: flex; + flex-direction: row; + background-color: #f8f8f8; +} +.image-cropper .fixed-bottom .action-bar.data-v-7129956f { + position: absolute; + top: -90rpx; + left: 10rpx; + display: flex; +} +.image-cropper .fixed-bottom .action-bar .rotate-icon.data-v-7129956f { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABCFJREFUaEPtml3IpVMUx3//ko/ChTIyiGFSMyhllI8bc4F85yuNC2FCqLmQC1+FZORiEkUMNW7UjKjJULgxV+NzSkxDhEkZgwsyigv119J63p7zvOc8z37OmXdOb51dz82711r7/99r7bXXXucVi3xokeNnRqCvB20fDmwAlgK/5bcD+FTSr33tHXQP2H4MeHQE0A+B5yRtLiUyDQJrgVc6AAaBpyV93kXkoBMIQLbfBS5NcK8BRwDXNcD+AdwnaVMbiWkRCPBBohpxHuK7M7865sclRdgNHVMhkF6IMIpwirFEUhzo8M7lwIvASTXEqyVtH8ZgagQSbOzsDknv18HZXpHn5IL8+94IOUm7miSmSqAttjPdbgGuTrnNktYsGgLpoYuAD2qg1zRTbG8P2D4SOC6/Q7vSHPALsE/S7wWy80RsPw/ckxMfSTq/LtRJwPbxwF3ASiCUTxwHCPAnEBfVF8AWSTtL7Ng+LfWOTfmlkn6udFsJ5K15R6a4kvX6yGyUFBvTOWzHXXFzCt4g6c1OArYj9iIGh43YgR+BvztXh1PSa4cMkd0jaVmXDduPAE+k3HpJD7cSGFKvfAc8FQUX8IOk/V2L1udtB/hTgdOBW4Aba/M7Ja1qs2f7euCNlHlZUlx4/495IWQ7Jl+qGbxX0gt9AHfJ2o6zFBVoNVrDKe+F3Sm8VdK1bQQ+A85JgXckXdkFaJx527cC9TpnVdvBtl3h2iapuhsGPdBw1b9xnUvaNw7AEh3bnwDnpuwGSfeP0rN9NvAMELXRXFkxEEK2nwQeSiOtRVQJwC4Z29cAW1Nuu6TVXTrN+SaBt4ErUug2Sa/2NdhH3vZy4NvU2S/p6D768w5xI3WOrAD7LtISFpGdIhVXKfaYvjd20wP13L9M0p4DBbaFRKToSLExVkr6qs+aIwlI6iwz+izUQqC+ab29PiMwqRcmPXczD8w8MFj1zg7xXEqbpdHCw7FgWSjafZL+KcQxtpjteCeflwYulFR/J3TabSslVkj6utPChAK2f6q9uZdLitKieLQRuExSvX9ZbLRUMFs09efpUZL+KtUfVo1GW/umNHC3pOhRLtiwfSbwZS6wV9IJfRdreuBBYH0a2STp9r4G+8jbXgc8mzoDT8VSO00ClwDv1ZR7XyylC4ec7ejaLUmdsV6Aw7oSbwFXpdFdks7qA6pU1na0aR6owgeIR/1cx63UzjAC0YXYVjMQHlkn6ZtSo21ytuPZGKFagQ/xsXZ/3iGuFrYdjafXG0DiQMeBi47c9/GV3BO247UV38n5o0UAP6xmu7jFOGxjRr66On5NPBDOCBsDTapxjHY1dyOcolNXnYlx1himE53p2PmNkxosevfavhg4Izt2k7TXPwZ2S6p6QZPin/2rwcQ7OKmBohCadJGF1P8PG6aaQBKVX/8AAAAASUVORK5CYII="); + background-size: 60% 60%; + background-repeat: no-repeat; + background-position: center; + width: 80rpx; + height: 80rpx; +} +.image-cropper .fixed-bottom .action-bar .rotate-icon.is-reverse.data-v-7129956f { + transform: rotateY(180deg); +} +.image-cropper .fixed-bottom .rechoose.data-v-7129956f { + color: #007aff; + padding: 0 15px; + line-height: 100rpx; +} +.image-cropper .fixed-bottom .choose-btn.data-v-7129956f { + color: #007aff; + text-align: center; + line-height: 100rpx; + flex: 1; +} +.image-cropper .fixed-bottom .button.data-v-7129956f { + margin: auto 15px auto auto; + background-color: #4cd964; + color: #fff; +} +.image-cropper .fixed-bottom .warn.data-v-7129956f { + margin: auto 15px auto auto; + background-color: #dd524d; + color: #fff; +} +.image-cropper .safe-area-inset-bottom.data-v-7129956f { + padding-bottom: 0; + padding-bottom: constant(safe-area-inset-bottom); + padding-bottom: env(safe-area-inset-bottom); +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/common/parse.js b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/common/parse.js new file mode 100644 index 0000000..3c9c4b8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/common/parse.js @@ -0,0 +1,51 @@ +"use strict"; +const uni_modules_svEditor_components_common_config = require("./config.js"); +function parseHtmlWithVideo(richText) { + const imgRegex = /]+)>/gi; + const customUrlRegex = /\bdata-custom="[^"]*url=([^&"]+)/i; + return richText.replace(imgRegex, (match, attrs) => { + const urlMatch = attrs.match(customUrlRegex); + if (urlMatch) { + const videoUrl = urlMatch[1]; + const attrArray = attrs.split(/\s+/).filter((attr) => attr.trim() !== ""); + const newAttrs = attrArray.filter((attr) => !attr.startsWith("src=") && !attr.startsWith("data-custom=")).join(" "); + return ``; + } + return match; + }); +} +async function replaceVideoWithImageRender(richText, customCallback) { + const videoRegex = /]+)>(.*?)<\/video>/gi; + const matches = []; + let match; + while ((match = videoRegex.exec(richText)) !== null) { + matches.push(match); + } + const replacements = await Promise.all( + matches.map(async (match2) => { + const [fullMatch, attributes, content] = match2; + const sourceRegex = /]*src="([^">]+)"/i; + const matchSource = content.match(sourceRegex); + let videoUrl = ""; + if (matchSource && matchSource.length > 1) { + videoUrl = matchSource[1]; + } + let thumbnailRes; + if (customCallback) + thumbnailRes = await customCallback(videoUrl); + if (!thumbnailRes) + thumbnailRes = uni_modules_svEditor_components_common_config.config.video_thumbnail; + const filteredAttributes = attributes.split(/\s+/).filter((attr) => !attr.startsWith("controls")).join(" "); + const imgTag = ``; + return { fullMatch, imgTag }; + }) + ); + let result = richText; + for (const { fullMatch, imgTag } of replacements) { + result = result.replace(fullMatch, imgTag); + } + return result; +} +exports.parseHtmlWithVideo = parseHtmlWithVideo; +exports.replaceVideoWithImageRender = replaceVideoWithImageRender; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/sv-editor/components/common/parse.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/common/store.js b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/common/store.js new file mode 100644 index 0000000..41a825f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/common/store.js @@ -0,0 +1,58 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +let state = null; +state = common_vendor.reactive({ + curEID: "", + formats: {}, + isReadOnly: false, + firstInstanceFlag: "" + // 首次实例化标志,禁止手动更改 +}); +function getEditor(eid) { + return state[`${eid}-ctx`]; +} +function setEditor(eid, ctx) { + state[`${eid}-ctx`] = ctx; + state[`${eid}-ctx`].id = eid; +} +function getEID() { + return state.curEID; +} +function setEID(eid) { + state.curEID = eid; +} +function getFormats() { + return state.formats; +} +function setFormats(formats) { + state.formats = formats; +} +function getReadOnly() { + return state.isReadOnly; +} +function setReadOnly(readOnly) { + state.isReadOnly = readOnly; +} +function destroy() { + state = {}; + state.curEID = ""; + state.formats = {}; + state.isReadOnly = false; + state.firstInstanceFlag = ""; +} +const options = { + state, + actions: { + getEditor, + setEditor, + getEID, + setEID, + getFormats, + setFormats, + getReadOnly, + setReadOnly, + destroy + } +}; +exports.options = options; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/sv-editor/components/common/store.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/common/utils.js b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/common/utils.js new file mode 100644 index 0000000..51b7949 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/common/utils.js @@ -0,0 +1,203 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const uni_modules_svEditor_components_common_store = require("./store.js"); +const id = "sv-editor"; +const displayName = "基于官方 uni-editor 的富文本编辑器"; +const version = "1.1.2"; +const description = "可插入图片、视频、链接、@提及、#话题、Emoji表情包,且优化了聚焦键盘闪烁等问题"; +const keywords = [ + "富文本", + "编辑器", + "editor", + "html" +]; +const repository = "https://gitee.com/Sonve/sv-editor"; +const engines = { + HBuilderX: "^3.1.0" +}; +const dcloudext = { + type: "component-vue", + sale: { + regular: { + price: "0.00" + }, + sourcecode: { + price: "0.00" + } + }, + contact: { + qq: "" + }, + declaration: { + ads: "无", + data: "插件不采集任何数据", + permissions: "无" + }, + npmurl: "" +}; +const uni_modules = { + dependencies: [], + encrypt: [], + platforms: { + cloud: { + tcb: "y", + aliyun: "y", + alipay: "y" + }, + client: { + Vue: { + vue2: "y", + vue3: "y" + }, + App: { + "app-vue": "y", + "app-nvue": "u", + "app-uvue": "u", + "app-harmony": "u" + }, + "H5-mobile": { + Safari: "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + Chrome: "y", + IE: "y", + Edge: "y", + Firefox: "y", + Safari: "y" + }, + "小程序": { + "微信": "y", + "阿里": "u", + "百度": "u", + "字节跳动": "u", + QQ: "u", + "钉钉": "u", + "快手": "u", + "飞书": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } +}; +const packageConfig = { + id, + displayName, + version, + description, + keywords, + repository, + engines, + dcloudext, + uni_modules +}; +function addText(word) { + const eid = uni_modules_svEditor_components_common_store.options.actions.getEID(); + const editorCtx = uni_modules_svEditor_components_common_store.options.actions.getEditor(eid); + noKeyboardEffect(() => { + editorCtx.insertText({ text: "\n" }); + editorCtx.insertText({ text: "【" + word + "】:" }); + editorCtx.insertText({ text: "\n" }); + }); +} +function addImage(imgs, options = {}) { + const eid = uni_modules_svEditor_components_common_store.options.actions.getEID(); + const editorCtx = uni_modules_svEditor_components_common_store.options.actions.getEditor(eid); + const upRes = imgs; + common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/utils.js:41", "upRes"); + common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/utils.js:42", upRes); + common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/utils.js:43", upRes instanceof Array); + common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/utils.js:44", upRes.length); + if (!upRes || upRes.length == 0) + return; + noKeyboardEffect(() => { + upRes == null ? void 0 : upRes.forEach((item) => { + common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/utils.js:51", "item"); + common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/utils.js:52", item); + editorCtx.insertImage({ + ...options, + src: options.srcFiled ? item[options.srcFiled] : item + }); + }); + }); + return upRes; +} +async function addVideo(uploadFunc, options = {}) { + const eid = uni_modules_svEditor_components_common_store.options.actions.getEID(); + const editorCtx = uni_modules_svEditor_components_common_store.options.actions.getEditor(eid); + if (!uploadFunc) + return; + const upRes = await uploadFunc(editorCtx); + common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/utils.js:86", upRes); + if (!upRes || !(upRes == null ? void 0 : upRes.length)) + return; + noKeyboardEffect(() => { + upRes == null ? void 0 : upRes.forEach((item) => { + editorCtx.insertImage({ + ...options, + src: item.videoImg, + //item[options.imageFiled || 'imagePath'], + data: { url: item.videoUrl } + }); + }); + }); + return upRes; +} +const linkFlag = "🔗添加链接中, 请稍后...🔗"; +function noKeyboardEffect(callback, options) { + let defaultOpt = { delay: 50 }; + defaultOpt.mode = "loseFocus"; + const opt = Object.assign(defaultOpt, options); + const eid = uni_modules_svEditor_components_common_store.options.actions.getEID(); + const editorCtx = uni_modules_svEditor_components_common_store.options.actions.getEditor(eid); + if (opt.mode == "hideKeyboard") { + callback(); + setTimeout(() => { + common_vendor.index.hideKeyboard(); + }, opt.delay); + } + if (opt.mode == "loseFocus") { + callback(); + editorCtx.blur(); + } + if (opt.mode == "setReadOnly") { + uni_modules_svEditor_components_common_store.options.actions.setReadOnly(true); + callback(); + setTimeout(() => { + uni_modules_svEditor_components_common_store.options.actions.setReadOnly(false); + }, opt.delay); + } + if (opt.mode == "setInputMode") + ; +} +function copyrightPrint() { + const styleTitle1 = `font-size:16px;font-weight:700;color:#ff4500;`; + const styleTitle2 = `font-style:oblique;font-size:14px;color:#fb7299;`; + const styleContent = `color:#66ccff;`; + const title1 = ` 📝 sv-editor v${packageConfig.version} `; + const title2 = "by Sonve"; + const content = ` + 版权声明: + 1. 本插件免费开源,还望保留此版权声明在控制台输出 + 2. 如需借鉴源码,还望注明出处 + 3. 未经授权您不得以任何形式转载、售卖本插件,或以其他形式侵犯版权及附属权利 + 4. 作者将保留对此插件版权信息的最终解释权 + 🏠 地址: https://ext.dcloud.net.cn/plugin?id=21184 + 😸 Gitee: https://gitee.com/Sonve/sv-editor + 💬 微信: s1051399604 + 🐧 QQ群: ① 852637893 ② 816646292 + `; + common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/utils.js:413", `%c${title1}%c${title2}%c${content}`, styleTitle1, styleTitle2, styleContent); +} +exports.addImage = addImage; +exports.addText = addText; +exports.addVideo = addVideo; +exports.copyrightPrint = copyrightPrint; +exports.linkFlag = linkFlag; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/sv-editor/components/common/utils.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.js b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.js new file mode 100644 index 0000000..0545da5 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.js @@ -0,0 +1,69 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const block0 = {}; +const _sfc_main = { + props: { + sid: { + type: String, + default: "" + }, + eid: { + type: String, + default: "" + } + }, + data() { + return { + videoUrl: "", + // 视频地址 + coverUrl: "", + // 封面地址 + coverUrlIOS: "", + // ios端封面地址 + pastemode: "text" + // 粘贴模式 text | origin + }; + }, + mounted() { + }, + methods: { + changePasteMode(e) { + this.pastemode = e; + }, + editorPaste(e) { + this.$emit("epaste", e); + }, + createVideoThumbnail(url) { + this.videoUrl = url; + }, + getVideoThumbnail(e) { + common_vendor.index.$emit(`E_EDITOR_GET_VIDEO_THUMBNAIL_${e.video}`, e); + }, + createCoverThumbnail(url) { + }, + getCoverThumbnail(e) { + common_vendor.index.$emit(`E_EDITOR_GET_COVER_THUMBNAIL_${e.image}`, e); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: $props.eid, + b: _ctx.quillEditor.watchEID, + c: $props.sid, + d: _ctx.quillEditor.watchStartID, + e: $data.videoUrl, + f: _ctx.quillEditor.watchPasteMode, + g: $data.pastemode, + h: _ctx.quillEditor.watchVideoUrl, + i: $data.coverUrl, + j: _ctx.quillEditor.watchCoverUrl, + k: $data.coverUrlIOS, + l: _ctx.quillEditor.watchCoverUrlIOS + }; +} +if (typeof block0 === "function") + block0(_sfc_main); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.json b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.wxml new file mode 100644 index 0000000..3ce8a2c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-plugin.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-wxplugin.js b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-wxplugin.js new file mode 100644 index 0000000..f01cae8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-wxplugin.js @@ -0,0 +1,125 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const uni_modules_svEditor_components_common_config = require("../common/config.js"); +function wxCreateCoverThumbnail(coverImageUrl) { + const loadImage = () => { + return new Promise((resolve, reject) => { + common_vendor.index.getImageInfo({ + src: coverImageUrl, + success: (info) => { + resolve(info); + }, + fail: (err) => { + reject(err); + } + }); + }); + }; + return new Promise(async (resolve, reject) => { + try { + const imageInfo = await loadImage(); + const canvas = common_vendor.index.createOffscreenCanvas({ + type: "2d", + width: imageInfo.width, + height: imageInfo.height + }); + const ctx = canvas.getContext("2d"); + const coverImg = canvas.createImage(); + await new Promise((resolve2) => { + coverImg.onload = resolve2; + coverImg.src = coverImageUrl; + }); + ctx.drawImage(coverImg, 0, 0, canvas.width, canvas.height); + const playIcon = canvas.createImage(); + await new Promise((resolve2) => { + playIcon.onload = resolve2; + playIcon.src = uni_modules_svEditor_components_common_config.config.video_playicon; + }); + const playButtonSize = canvas.width * 0.15; + const playButtonX = (canvas.width - playButtonSize) / 2; + const playButtonY = (canvas.height - playButtonSize) / 2; + const iconAspectRatio = playIcon.width / playIcon.height; + const iconWidth = playButtonSize; + const iconHeight = iconWidth / iconAspectRatio; + ctx.drawImage(playIcon, playButtonX, playButtonY, iconWidth, iconHeight); + common_vendor.index.canvasToTempFilePath({ + canvas, + destWidth: canvas.width, + destHeight: canvas.height, + fileType: "png", + success: (res) => { + resolve(res.tempFilePath); + }, + fail: (err) => { + reject(new Error("Failed to convert canvas to image.")); + } + }); + } catch (error) { + reject(error); + } + }); +} +function wxCreateVideoThumbnail(coverImageUrl) { + const loadVideo = () => { + return new Promise((resolve, reject) => { + common_vendor.index.getVideoInfo({ + src: coverImageUrl, + success: (info) => { + resolve(info); + }, + fail: (err) => { + reject(err); + } + }); + }); + }; + return new Promise(async (resolve, reject) => { + try { + const imageInfo = await loadVideo(); + const canvas = common_vendor.index.createOffscreenCanvas({ + type: "2d", + width: imageInfo.width, + height: imageInfo.height + }); + const ctx = canvas.getContext("2d"); + const coverImg = canvas.createImage(); + await new Promise((resolve2) => { + coverImg.onload = resolve2; + coverImg.src = coverImageUrl; + }); + ctx.drawImage(coverImg, 0, 0, canvas.width, canvas.height); + const playIcon = canvas.createImage(); + await new Promise((resolve2) => { + playIcon.onload = resolve2; + playIcon.src = uni_modules_svEditor_components_common_config.config.video_playicon; + }); + const playButtonSize = canvas.width * 0.15; + const playButtonX = (canvas.width - playButtonSize) / 2; + const playButtonY = (canvas.height - playButtonSize) / 2; + const iconAspectRatio = playIcon.width / playIcon.height; + const iconWidth = playButtonSize; + const iconHeight = iconWidth / iconAspectRatio; + ctx.drawImage(playIcon, playButtonX, playButtonY, iconWidth, iconHeight); + common_vendor.index.canvasToTempFilePath({ + canvas, + destWidth: canvas.width, + destHeight: canvas.height, + fileType: "png", + success: (res) => { + resolve(res.tempFilePath); + }, + fail: (err) => { + reject(new Error("Failed to convert canvas to image.")); + } + }); + } catch (error) { + reject(error); + } + }); +} +const wxplugin = { + wxCreateCoverThumbnail, + wxCreateVideoThumbnail +}; +exports.wxplugin = wxplugin; +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/sv-editor/components/plugins/sv-editor-wxplugin.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.js b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.js new file mode 100644 index 0000000..956bc64 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.js @@ -0,0 +1,49 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const block0 = {}; +const _sfc_main = { + props: { + eid: { + type: String, + default: "" + } + }, + data() { + return { + inputmode: "", + // none | remove + focusFlag: 0, + // 主动聚焦标志 + backspaceFlag: 0 + // 主动删除标志 + }; + }, + methods: { + changeInputMode(mode) { + this.inputmode = mode; + }, + focus() { + this.focusFlag++; + }, + backspace() { + this.backspaceFlag++; + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: $props.eid, + b: _ctx.quillEditor.watchEID, + c: $data.inputmode, + d: _ctx.quillEditor.watchInputMode, + e: $data.focusFlag, + f: _ctx.quillEditor.watchFocus, + g: $data.backspaceFlag, + h: _ctx.quillEditor.watchBackSpace + }; +} +if (typeof block0 === "function") + block0(_sfc_main); +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.json b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.wxml new file mode 100644 index 0000000..dde66b2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor-render.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.js b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.js new file mode 100644 index 0000000..b3d2202 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.js @@ -0,0 +1,228 @@ +"use strict"; +const common_vendor = require("../../../../common/vendor.js"); +const uni_modules_svEditor_components_common_store = require("../common/store.js"); +const uni_modules_svEditor_components_common_utils = require("../common/utils.js"); +const uni_modules_svEditor_components_common_parse = require("../common/parse.js"); +const uni_modules_svEditor_components_plugins_svEditorWxplugin = require("../plugins/sv-editor-wxplugin.js"); +const SvEditorRender = () => "./sv-editor-render.js"; +const SvEditorPlugin = () => "../plugins/sv-editor-plugin.js"; +const _sfc_main = { + // 微信小程序特殊配置 + options: { + addGlobalClass: true, + virtualHost: true, + styleIsolation: "shared" + }, + components: { + SvEditorRender, + SvEditorPlugin + }, + props: { + // 编辑器id可传入,以便循环组件使用,防止id重复 + eid: { + type: String, + default: "sv-editor" + // 唯一,禁止重复 + }, + placeholder: { + type: String, + default: "写点什么吧 ~" + }, + // 是否只读 + readOnly: { + type: Boolean, + default: false + }, + // 最大字数限制,<=0时表示不限 + maxlength: { + type: Number, + default: -1 + }, + // 是否关闭最大字数显示 + hideMax: { + type: Boolean, + default: false + }, + // 粘贴模式,可选 text 纯文本(默认) | origin 尽可能保持原格式 + pasteMode: { + type: String, + default: "text" + } + }, + emits: ["ready", "input", "statuschange", "focus", "blur", "overmax", "epaste"], + data() { + return { + textlength: 0, + // 当前字数统计 + startID: "" + }; + }, + computed: { + editorEID: { + set(newVal) { + uni_modules_svEditor_components_common_store.options.actions.setEID(newVal); + }, + get() { + return uni_modules_svEditor_components_common_store.options.actions.getEID(); + } + }, + editorCtx: { + set(newVal) { + uni_modules_svEditor_components_common_store.options.actions.setEditor(newVal.eid, newVal.ctx); + }, + get() { + let instance = uni_modules_svEditor_components_common_store.options.actions.getEditor(this.eid); + return instance; + } + }, + isReadOnly: { + set(newVal) { + uni_modules_svEditor_components_common_store.options.actions.setReadOnly(newVal); + }, + get() { + return uni_modules_svEditor_components_common_store.options.actions.getReadOnly(); + } + } + }, + watch: { + readOnly(newVal) { + this.isReadOnly = newVal; + } + }, + mounted() { + if (!uni_modules_svEditor_components_common_store.options.state.firstInstanceFlag) { + this.editorEID = this.eid; + uni_modules_svEditor_components_common_store.options.state.firstInstanceFlag = this.eid; + uni_modules_svEditor_components_common_utils.copyrightPrint(); + } + }, + destroyed() { + uni_modules_svEditor_components_common_store.options.actions.destroy(); + }, + unmounted() { + uni_modules_svEditor_components_common_store.options.actions.destroy(); + }, + methods: { + onEditorReady() { + this.$nextTick(() => { + common_vendor.index.createSelectorQuery().in(this).select("#" + this.eid).context((res) => { + this.editorCtx = { eid: this.eid, ctx: res.context }; + this.bindMethods(); + this.$emit("ready", this.editorCtx); + }).exec(); + }); + }, + /** + * 挂载实例api + */ + bindMethods() { + var _a; + this.editorCtx.createCoverThumbnail = (_a = uni_modules_svEditor_components_plugins_svEditorWxplugin.wxplugin) == null ? void 0 : _a.wxCreateCoverThumbnail; + this.editorCtx.changeInput = () => { + this.editorCtx.getContents({ + success: (res) => { + this.$emit("input", { ctx: this.editorCtx, html: res.html, text: res.text }); + } + }); + }; + this.editorCtx.scrollView = () => { + this.editorCtx.scrollIntoView(); + }; + this.editorCtx.getLastContent = async () => { + return new Promise((resolve) => { + this.editorCtx.getContents({ + success: (res) => { + resolve(res); + } + }); + }); + }; + this.editorCtx.initHtml = async (html, customCallback) => { + let transHtml = await uni_modules_svEditor_components_common_parse.replaceVideoWithImageRender(html, customCallback); + setTimeout(() => { + this.editorCtx.setContents({ + html: transHtml, + success: () => { + this.editorCtx.changeInput(); + this.editorCtx.blur(); + } + }); + }); + }; + this.editorCtx.exportHtml = (html) => { + return uni_modules_svEditor_components_common_parse.parseHtmlWithVideo(html); + }; + }, + onEditorInput(e) { + if (Object.keys(e.detail).length <= 0) + return; + const { html, text } = e.detail; + if (text.indexOf(uni_modules_svEditor_components_common_utils.linkFlag) !== -1) + return; + const maxlength = parseInt(this.maxlength); + const textStr = text.replace(/[ \t\r\n]/g, ""); + this.textlength = textStr.length; + if (this.textlength >= maxlength && maxlength > 0) { + this.textlength = maxlength; + if (!this.lockHtmlFlag) { + this.lockHtml = html; + this.lockHtmlFlag = true; + this.$emit("input", { ctx: this.editorCtx, html, text }); + } else { + this.$emit("overmax", { ctx: this.editorCtx }); + } + this.editorCtx.setContents({ html: this.lockHtml }); + } else { + this.$emit("input", { ctx: this.editorCtx, html, text }); + this.lockHtmlFlag = false; + } + }, + /** + * 样式格式改变时触发 + * 注意:微信小程序端在多编辑器实例下切换编辑器后可能不会及时触发onStatusChange + */ + onStatusChange(e) { + uni_modules_svEditor_components_common_store.options.actions.setFormats(e.detail); + this.$emit("statuschange", { ...e, ctx: this.editorCtx }); + common_vendor.index.$emit("E_EDITOR_STATUSCHANGE", { ...e, ctx: this.editorCtx }); + }, + onEditorFocus(e) { + this.editorEID = this.eid; + this.$emit("focus", { ...e, ctx: this.editorCtx }); + }, + onEditorBlur(e) { + this.$emit("blur", { ...e, ctx: this.editorCtx }); + }, + ePaste(e) { + this.$emit("epaste", { ...e, ctx: this.editorCtx }); + common_vendor.index.$emit("E_EDITOR_PASTE", { ...e, ctx: this.editorCtx }); + }, + /** + * 微信小程序官方editor的长按事件有bug,需要重写覆盖,不需做任何逻辑,可见下面小程序社区问题链接 + * @tutorial https://developers.weixin.qq.com/community/develop/doc/000c04b3e1c1006f660065e4f61000 + */ + eLongpress() { + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: $props.eid, + b: $props.placeholder, + c: $options.isReadOnly, + d: common_vendor.o((...args) => $options.onStatusChange && $options.onStatusChange(...args)), + e: common_vendor.o((...args) => $options.onEditorReady && $options.onEditorReady(...args)), + f: common_vendor.o((...args) => $options.onEditorInput && $options.onEditorInput(...args)), + g: common_vendor.o((...args) => $options.onEditorFocus && $options.onEditorFocus(...args)), + h: common_vendor.o((...args) => $options.onEditorBlur && $options.onEditorBlur(...args)), + i: $props.maxlength > 0 && !$props.hideMax + }, $props.maxlength > 0 && !$props.hideMax ? { + j: common_vendor.t($data.textlength), + k: common_vendor.t($props.maxlength) + } : {}, { + l: common_vendor.o((...args) => $options.eLongpress && $options.eLongpress(...args)) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.json b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.wxml new file mode 100644 index 0000000..aaf9cbc --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.wxml @@ -0,0 +1 @@ +{{j}}/{{k}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.wxss new file mode 100644 index 0000000..db574be --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/sv-editor/components/sv-editor/sv-editor.wxss @@ -0,0 +1,65 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.sv-editor-wrapper { + --maxlength-text-color: #666666; + position: relative; + width: 100%; + height: 100%; + display: flex; + flex-direction: column; +} +.sv-editor-wrapper .sv-editor-container { + flex: 1; +} +.sv-editor-wrapper .maxlength-tip { + position: absolute; + bottom: 0; + right: 0; + font-size: 24rpx; + color: var(--maxlength-text-color); + opacity: 0.6; +} +.sv-editor-container .ql-blank::before { + font-style: normal; + color: #cccccc; +} + .ql-container { + min-height: unset; +} + .ql-container .ql-image-overlay { + pointer-events: none; +} + .ql-container .ql-image-overlay .ql-image-size { + right: 28px !important; +} + .ql-container .ql-image-overlay .ql-image-toolbar { + pointer-events: auto; +} + .ql-container .ql-image-overlay .ql-image-handle { + width: 30px; + height: 30px; + pointer-events: auto; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.js new file mode 100644 index 0000000..a75584b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.js @@ -0,0 +1,132 @@ +"use strict"; +const uni_modules_zPaging_components_zPaging_js_zPagingStatic = require("../z-paging/js/z-paging-static.js"); +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "z-paging-empty-view", + data() { + return {}; + }, + props: { + // 空数据描述文字 + emptyViewText: { + type: String, + default: "没有数据哦~" + }, + // 空数据图片 + emptyViewImg: { + type: String, + default: "" + }, + // 是否显示空数据图重新加载按钮 + showEmptyViewReload: { + type: Boolean, + default: false + }, + // 空数据点击重新加载文字 + emptyViewReloadText: { + type: String, + default: "重新加载" + }, + // 是否是加载失败 + isLoadFailed: { + type: Boolean, + default: false + }, + // 空数据图样式 + emptyViewStyle: { + type: Object, + default: function() { + return {}; + } + }, + // 空数据图img样式 + emptyViewImgStyle: { + type: Object, + default: function() { + return {}; + } + }, + // 空数据图描述文字样式 + emptyViewTitleStyle: { + type: Object, + default: function() { + return {}; + } + }, + // 空数据图重新加载按钮样式 + emptyViewReloadStyle: { + type: Object, + default: function() { + return {}; + } + }, + // 空数据图z-index + emptyViewZIndex: { + type: Number, + default: 9 + }, + // 空数据图片是否使用fixed布局并铺满z-paging + emptyViewFixed: { + type: Boolean, + default: true + }, + // 空数据图中布局的单位,默认为rpx + unit: { + type: String, + default: "rpx" + } + }, + computed: { + emptyImg() { + return this.isLoadFailed ? uni_modules_zPaging_components_zPaging_js_zPagingStatic.zStatic.base64Error : uni_modules_zPaging_components_zPaging_js_zPagingStatic.zStatic.base64Empty; + }, + finalEmptyViewStyle() { + this.emptyViewStyle["z-index"] = this.emptyViewZIndex; + return this.emptyViewStyle; + } + }, + methods: { + // 点击了reload按钮 + reloadClick() { + this.$emit("reload"); + }, + // 点击了空数据view + emptyViewClick() { + this.$emit("viewClick"); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: !$props.emptyViewImg.length + }, !$props.emptyViewImg.length ? { + b: $props.unit === "rpx" ? 1 : "", + c: $props.unit === "px" ? 1 : "", + d: common_vendor.s($props.emptyViewImgStyle), + e: $options.emptyImg + } : { + f: $props.unit === "rpx" ? 1 : "", + g: $props.unit === "px" ? 1 : "", + h: common_vendor.s($props.emptyViewImgStyle), + i: $props.emptyViewImg + }, { + j: common_vendor.t($props.emptyViewText), + k: $props.unit === "rpx" ? 1 : "", + l: $props.unit === "px" ? 1 : "", + m: common_vendor.s($props.emptyViewTitleStyle), + n: $props.showEmptyViewReload + }, $props.showEmptyViewReload ? { + o: common_vendor.t($props.emptyViewReloadText), + p: $props.unit === "rpx" ? 1 : "", + q: $props.unit === "px" ? 1 : "", + r: common_vendor.s($props.emptyViewReloadStyle), + s: common_vendor.o((...args) => $options.reloadClick && $options.reloadClick(...args)) + } : {}, { + t: $props.emptyViewFixed ? 1 : "", + v: common_vendor.s($options.finalEmptyViewStyle), + w: common_vendor.o((...args) => $options.emptyViewClick && $options.emptyViewClick(...args)) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b7999e14"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.json b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.wxml new file mode 100644 index 0000000..58d1605 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.wxml @@ -0,0 +1 @@ +{{j}}{{o}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.wxss new file mode 100644 index 0000000..37eeab0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.wxss @@ -0,0 +1,62 @@ + +.zp-container.data-v-b7999e14{ + + display: flex; + + align-items: center; + justify-content: center; +} +.zp-container-fixed.data-v-b7999e14 { + + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.zp-main.data-v-b7999e14{ + + display: flex; + + flex-direction: column; + align-items: center; + padding: 50rpx 0rpx; +} +.zp-main-image-rpx.data-v-b7999e14 { + width: 240rpx; + height: 240rpx; +} +.zp-main-image-px.data-v-b7999e14 { + width: 120px; + height: 120px; +} +.zp-main-title.data-v-b7999e14 { + color: #aaaaaa; + text-align: center; +} +.zp-main-title-rpx.data-v-b7999e14 { + font-size: 28rpx; + margin-top: 10rpx; + padding: 0rpx 20rpx; +} +.zp-main-title-px.data-v-b7999e14 { + font-size: 14px; + margin-top: 5px; + padding: 0px 10px; +} +.zp-main-error-btn.data-v-b7999e14 { + border: solid 1px #dddddd; + color: #aaaaaa; +} +.zp-main-error-btn-rpx.data-v-b7999e14 { + font-size: 28rpx; + padding: 8rpx 24rpx; + border-radius: 6rpx; + margin-top: 50rpx; +} +.zp-main-error-btn-px.data-v-b7999e14 { + font-size: 14px; + padding: 4px 12px; + border-radius: 3px; + margin-top: 25px; +} diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.js new file mode 100644 index 0000000..c9c1eb7 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.js @@ -0,0 +1,121 @@ +"use strict"; +const uni_modules_zPaging_components_zPaging_js_zPagingStatic = require("../js/z-paging-static.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../js/z-paging-enum.js"); +const common_vendor = require("../../../../../common/vendor.js"); +const _sfc_main = { + name: "z-paging-load-more", + data() { + return { + M: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More, + zTheme: { + title: { white: "#efefef", black: "#a4a4a4" }, + line: { white: "#efefef", black: "#eeeeee" }, + circleBorder: { white: "#aaaaaa", black: "#c8c8c8" }, + circleBorderTop: { white: "#ffffff", black: "#444444" }, + flower: { white: uni_modules_zPaging_components_zPaging_js_zPagingStatic.zStatic.base64FlowerWhite, black: uni_modules_zPaging_components_zPaging_js_zPagingStatic.zStatic.base64Flower }, + indicator: { white: "#eeeeee", black: "#777777" } + } + }; + }, + props: ["zConfig"], + computed: { + ts() { + return this.c.defaultThemeStyle; + }, + // 底部加载更多配置 + c() { + return this.zConfig || {}; + }, + // 底部加载更多文字 + ownLoadingMoreText() { + return { + [this.M.Default]: this.c.defaultText, + [this.M.Loading]: this.c.loadingText, + [this.M.NoMore]: this.c.noMoreText, + [this.M.Fail]: this.c.failText + }[this.finalStatus]; + }, + // 底部加载更多状态 + finalStatus() { + if (this.c.defaultAsLoading && this.c.status === this.M.Default) + return this.M.Loading; + return this.c.status; + }, + // 加载更多icon类型 + finalLoadingIconType() { + return this.c.loadingIconType; + } + }, + methods: { + // 点击了加载更多 + doClick() { + this.$emit("doClick"); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: !$options.c.hideContent + }, !$options.c.hideContent ? common_vendor.e({ + b: $options.c.showNoMoreLine && $options.finalStatus === $data.M.NoMore + }, $options.c.showNoMoreLine && $options.finalStatus === $data.M.NoMore ? { + c: $options.c.unit === "rpx" ? 1 : "", + d: $options.c.unit === "px" ? 1 : "", + e: common_vendor.s({ + backgroundColor: $data.zTheme.line[$options.ts] + }), + f: common_vendor.s($options.c.noMoreLineCustomStyle) + } : {}, { + g: $options.finalStatus === $data.M.Loading && !!$options.c.loadingIconCustomImage + }, $options.finalStatus === $data.M.Loading && !!$options.c.loadingIconCustomImage ? { + h: $options.c.loadingIconCustomImage, + i: common_vendor.s($options.c.iconCustomStyle), + j: $options.c.loadingAnimated ? 1 : "", + k: $options.c.unit === "rpx" ? 1 : "", + l: $options.c.unit === "px" ? 1 : "" + } : {}, { + m: $options.finalStatus === $data.M.Loading && $options.finalLoadingIconType === "flower" && !$options.c.loadingIconCustomImage.length + }, $options.finalStatus === $data.M.Loading && $options.finalLoadingIconType === "flower" && !$options.c.loadingIconCustomImage.length ? { + n: $options.c.unit === "rpx" ? 1 : "", + o: $options.c.unit === "px" ? 1 : "", + p: common_vendor.s($options.c.iconCustomStyle), + q: $data.zTheme.flower[$options.ts] + } : {}, { + r: $options.finalStatus === $data.M.Loading && $options.finalLoadingIconType === "circle" && !$options.c.loadingIconCustomImage.length + }, $options.finalStatus === $data.M.Loading && $options.finalLoadingIconType === "circle" && !$options.c.loadingIconCustomImage.length ? { + s: $options.c.unit === "rpx" ? 1 : "", + t: $options.c.unit === "px" ? 1 : "", + v: common_vendor.s({ + borderColor: $data.zTheme.circleBorder[$options.ts], + borderTopColor: $data.zTheme.circleBorderTop[$options.ts] + }), + w: common_vendor.s($options.c.iconCustomStyle) + } : {}, { + x: !$options.c.isChat || !$options.c.chatDefaultAsLoading && $options.finalStatus === $data.M.Default || $options.finalStatus === $data.M.Fail + }, !$options.c.isChat || !$options.c.chatDefaultAsLoading && $options.finalStatus === $data.M.Default || $options.finalStatus === $data.M.Fail ? { + y: common_vendor.t($options.ownLoadingMoreText), + z: $options.c.unit === "rpx" ? 1 : "", + A: $options.c.unit === "px" ? 1 : "", + B: common_vendor.s({ + color: $data.zTheme.title[$options.ts] + }), + C: common_vendor.s($options.c.titleCustomStyle) + } : {}, { + D: $options.c.showNoMoreLine && $options.finalStatus === $data.M.NoMore + }, $options.c.showNoMoreLine && $options.finalStatus === $data.M.NoMore ? { + E: $options.c.unit === "rpx" ? 1 : "", + F: $options.c.unit === "px" ? 1 : "", + G: common_vendor.s({ + backgroundColor: $data.zTheme.line[$options.ts] + }), + H: common_vendor.s($options.c.noMoreLineCustomStyle) + } : {}) : {}, { + I: $options.c.unit === "rpx" ? 1 : "", + J: $options.c.unit === "px" ? 1 : "", + K: common_vendor.s($options.c.customStyle), + L: common_vendor.o((...args) => $options.doClick && $options.doClick(...args)) + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-8cc5c400"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.json b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.wxml new file mode 100644 index 0000000..b721b0c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.wxml @@ -0,0 +1 @@ +{{y}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.wxss new file mode 100644 index 0000000..48e3016 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-load-more.wxss @@ -0,0 +1,118 @@ +/* [z-paging]公用的静态css资源 */ +.zp-line-loading-image.data-v-8cc5c400 { + + animation: loading-flower-8cc5c400 1s steps(12) infinite; + + color: #666666; +} +.zp-line-loading-image-rpx.data-v-8cc5c400 { + margin-right: 8rpx; + width: 34rpx; + height: 34rpx; +} +.zp-line-loading-image-px.data-v-8cc5c400 { + margin-right: 4px; + width: 17px; + height: 17px; +} +.zp-loading-image-ios-rpx.data-v-8cc5c400 { + width: 40rpx; + height: 40rpx; +} +.zp-loading-image-ios-px.data-v-8cc5c400 { + width: 20px; + height: 20px; +} +.zp-loading-image-android-rpx.data-v-8cc5c400 { + width: 34rpx; + height: 34rpx; +} +.zp-loading-image-android-px.data-v-8cc5c400 { + width: 17px; + height: 17px; +} +@keyframes loading-flower-8cc5c400 { +0% { + transform: rotate(0deg); +} +to { + transform: rotate(1turn); +} +} +.zp-l-container.data-v-8cc5c400 { + + clear: both; + display: flex; + + flex-direction: row; + align-items: center; + justify-content: center; +} +.zp-l-container-rpx.data-v-8cc5c400 { + height: 80rpx; + font-size: 27rpx; +} +.zp-l-container-px.data-v-8cc5c400 { + height: 40px; + font-size: 14px; +} +.zp-l-line-loading-custom-image.data-v-8cc5c400 { + color: #a4a4a4; +} +.zp-l-line-loading-custom-image-rpx.data-v-8cc5c400 { + margin-right: 8rpx; + width: 28rpx; + height: 28rpx; +} +.zp-l-line-loading-custom-image-px.data-v-8cc5c400 { + margin-right: 4px; + width: 14px; + height: 14px; +} +.zp-l-line-loading-custom-image-animated.data-v-8cc5c400{ + + animation: loading-circle-8cc5c400 1s linear infinite; +} +.zp-l-circle-loading-view.data-v-8cc5c400 { + border: 3rpx solid #dddddd; + border-radius: 50%; + + animation: loading-circle-8cc5c400 1s linear infinite; +} +.zp-l-circle-loading-view-rpx.data-v-8cc5c400 { + margin-right: 8rpx; + width: 23rpx; + height: 23rpx; +} +.zp-l-circle-loading-view-px.data-v-8cc5c400 { + margin-right: 4px; + width: 12px; + height: 12px; +} +.zp-l-text-rpx.data-v-8cc5c400 { + font-size: 30rpx; + margin: 0rpx 6rpx; +} +.zp-l-text-px.data-v-8cc5c400 { + font-size: 15px; + margin: 0px 3px; +} +.zp-l-line-rpx.data-v-8cc5c400 { + height: 1px; + width: 100rpx; + margin: 0rpx 10rpx; +} +.zp-l-line-px.data-v-8cc5c400 { + height: 1px; + width: 50px; + margin: 0rpx 5px; +} +@keyframes loading-circle-8cc5c400 { +0% { + transform: rotate(0deg); +} +100% { + transform: rotate(360deg); +} +} + diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.js new file mode 100644 index 0000000..4894453 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.js @@ -0,0 +1,158 @@ +"use strict"; +const uni_modules_zPaging_components_zPaging_js_zPagingStatic = require("../js/z-paging-static.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../js/z-paging-utils.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../js/z-paging-enum.js"); +const common_vendor = require("../../../../../common/vendor.js"); +const _sfc_main = { + name: "z-paging-refresh", + data() { + return { + R: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher, + refresherTimeText: "", + zTheme: { + title: { white: "#efefef", black: "#555555" }, + arrow: { white: uni_modules_zPaging_components_zPaging_js_zPagingStatic.zStatic.base64ArrowWhite, black: uni_modules_zPaging_components_zPaging_js_zPagingStatic.zStatic.base64Arrow }, + flower: { white: uni_modules_zPaging_components_zPaging_js_zPagingStatic.zStatic.base64FlowerWhite, black: uni_modules_zPaging_components_zPaging_js_zPagingStatic.zStatic.base64Flower }, + success: { white: uni_modules_zPaging_components_zPaging_js_zPagingStatic.zStatic.base64SuccessWhite, black: uni_modules_zPaging_components_zPaging_js_zPagingStatic.zStatic.base64Success }, + indicator: { white: "#eeeeee", black: "#777777" } + } + }; + }, + props: [ + "status", + "defaultThemeStyle", + "defaultText", + "pullingText", + "refreshingText", + "completeText", + "goF2Text", + "defaultImg", + "pullingImg", + "refreshingImg", + "completeImg", + "refreshingAnimated", + "showUpdateTime", + "updateTimeKey", + "imgStyle", + "titleStyle", + "updateTimeStyle", + "updateTimeTextMap", + "unit", + "isIos" + ], + computed: { + ts() { + return this.defaultThemeStyle; + }, + // 当前状态Map + statusTextMap() { + this.updateTime(); + const { R, defaultText, pullingText, refreshingText, completeText, goF2Text } = this; + return { + [R.Default]: defaultText, + [R.ReleaseToRefresh]: pullingText, + [R.Loading]: refreshingText, + [R.Complete]: completeText, + [R.GoF2]: goF2Text + }; + }, + // 当前状态文字 + currentTitle() { + return this.statusTextMap[this.status] || this.defaultText; + }, + // 左侧图片class + leftImageClass() { + const preSizeClass = `zp-r-left-image-pre-size-${this.unit}`; + if (this.status === this.R.Complete) + return preSizeClass; + return `zp-r-left-image ${preSizeClass} ${this.status === this.R.Default ? "zp-r-arrow-down" : "zp-r-arrow-top"}`; + }, + // 左侧图片style + leftImageStyle() { + const showUpdateTime = this.showUpdateTime; + const size = showUpdateTime ? uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(36, this.unit) : uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(34, this.unit); + return { width: size, height: size, "margin-right": showUpdateTime ? uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(20, this.unit) : uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(9, this.unit) }; + }, + // 左侧图片src + leftImageSrc() { + const R = this.R; + const status = this.status; + if (status === R.Default) { + if (!!this.defaultImg) + return this.defaultImg; + return this.zTheme.arrow[this.ts]; + } else if (status === R.ReleaseToRefresh) { + if (!!this.pullingImg) + return this.pullingImg; + if (!!this.defaultImg) + return this.defaultImg; + return this.zTheme.arrow[this.ts]; + } else if (status === R.Loading) { + if (!!this.refreshingImg) + return this.refreshingImg; + return this.zTheme.flower[this.ts]; + } else if (status === R.Complete) { + if (!!this.completeImg) + return this.completeImg; + return this.zTheme.success[this.ts]; + } else if (status === R.GoF2) { + return this.zTheme.arrow[this.ts]; + } + return ""; + }, + // 右侧文字style + rightTextStyle() { + let stl = {}; + stl["color"] = this.zTheme.title[this.ts]; + stl["font-size"] = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(30, this.unit); + return stl; + } + }, + methods: { + // 添加单位 + addUnit(value, unit) { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(value, unit); + }, + // 更新下拉刷新时间 + updateTime() { + if (this.showUpdateTime) { + this.refresherTimeText = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getRefesrherFormatTimeByKey(this.updateTimeKey, this.updateTimeTextMap); + } + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: $props.status !== $data.R.Loading + }, $props.status !== $data.R.Loading ? { + b: common_vendor.n($options.leftImageClass), + c: common_vendor.s($options.leftImageStyle), + d: common_vendor.s($props.imgStyle), + e: $options.leftImageSrc + } : { + f: $props.refreshingAnimated ? 1 : "", + g: $props.unit === "rpx" ? 1 : "", + h: $props.unit === "px" ? 1 : "", + i: common_vendor.s($options.leftImageStyle), + j: common_vendor.s($props.imgStyle), + k: $options.leftImageSrc + }, { + l: common_vendor.t($options.currentTitle), + m: common_vendor.s($options.rightTextStyle), + n: common_vendor.s($props.titleStyle), + o: $props.showUpdateTime && $data.refresherTimeText.length + }, $props.showUpdateTime && $data.refresherTimeText.length ? { + p: common_vendor.t($data.refresherTimeText), + q: $props.unit === "rpx" ? 1 : "", + r: $props.unit === "px" ? 1 : "", + s: common_vendor.s({ + color: $data.zTheme.title[$options.ts] + }), + t: common_vendor.s($props.updateTimeStyle) + } : {}, { + v: common_vendor.n($props.showUpdateTime ? "zp-r-container zp-r-container-padding" : "zp-r-container") + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-00a16504"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.json b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.wxml new file mode 100644 index 0000000..8bf94cc --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.wxml @@ -0,0 +1 @@ +{{l}}{{p}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.wxss new file mode 100644 index 0000000..303edc9 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/components/z-paging-refresh.wxss @@ -0,0 +1,99 @@ +/* [z-paging]公用的静态css资源 */ +.zp-line-loading-image.data-v-00a16504 { + + animation: loading-flower-00a16504 1s steps(12) infinite; + + color: #666666; +} +.zp-line-loading-image-rpx.data-v-00a16504 { + margin-right: 8rpx; + width: 34rpx; + height: 34rpx; +} +.zp-line-loading-image-px.data-v-00a16504 { + margin-right: 4px; + width: 17px; + height: 17px; +} +.zp-loading-image-ios-rpx.data-v-00a16504 { + width: 40rpx; + height: 40rpx; +} +.zp-loading-image-ios-px.data-v-00a16504 { + width: 20px; + height: 20px; +} +.zp-loading-image-android-rpx.data-v-00a16504 { + width: 34rpx; + height: 34rpx; +} +.zp-loading-image-android-px.data-v-00a16504 { + width: 17px; + height: 17px; +} +@keyframes loading-flower-00a16504 { +0% { + transform: rotate(0deg); +} +to { + transform: rotate(1turn); +} +} +.zp-r-container.data-v-00a16504 { + + display: flex; + height: 100%; + + flex-direction: row; + justify-content: center; + align-items: center; +} +.zp-r-container-padding.data-v-00a16504 { +} +.zp-r-left.data-v-00a16504 { + + display: flex; + + flex-direction: row; + align-items: center; + overflow: hidden; +} +.zp-r-left-image.data-v-00a16504 { + transition-duration: .2s; + transition-property: transform; + color: #666666; +} +.zp-r-left-image-pre-size-rpx.data-v-00a16504 { + + width: 34rpx; + height: 34rpx; + overflow: hidden; +} +.zp-r-left-image-pre-size-px.data-v-00a16504 { + + width: 17px; + height: 17px; + overflow: hidden; +} +.zp-r-arrow-top.data-v-00a16504 { + transform: rotate(0deg); +} +.zp-r-arrow-down.data-v-00a16504 { + transform: rotate(180deg); +} +.zp-r-right.data-v-00a16504 { + + display: flex; + + flex-direction: column; + align-items: center; + justify-content: center; +} +.zp-r-right-time-text-rpx.data-v-00a16504 { + margin-top: 10rpx; + font-size: 26rpx; +} +.zp-r-right-time-text-px.data-v-00a16504 { + margin-top: 5px; + font-size: 13px; +} diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/config/index.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/config/index.js new file mode 100644 index 0000000..cce7f49 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/config/index.js @@ -0,0 +1,4 @@ +"use strict"; +const zLocalConfig = {}; +exports.zLocalConfig = zLocalConfig; +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/config/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/i18n/index.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/i18n/index.js new file mode 100644 index 0000000..8206f7e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/i18n/index.js @@ -0,0 +1,65 @@ +"use strict"; +const en = { + "zp.refresher.default": "Pull down to refresh", + "zp.refresher.pulling": "Release to refresh", + "zp.refresher.refreshing": "Refreshing...", + "zp.refresher.complete": "Refresh succeeded", + "zp.refresher.f2": "Refresh to enter 2f", + "zp.loadingMore.default": "Click to load more", + "zp.loadingMore.loading": "Loading...", + "zp.loadingMore.noMore": "No more data", + "zp.loadingMore.fail": "Load failed,click to reload", + "zp.emptyView.title": "No data", + "zp.emptyView.reload": "Reload", + "zp.emptyView.error": "Sorry,load failed", + "zp.refresherUpdateTime.title": "Last update: ", + "zp.refresherUpdateTime.none": "None", + "zp.refresherUpdateTime.today": "Today", + "zp.refresherUpdateTime.yesterday": "Yesterday", + "zp.systemLoading.title": "Loading..." +}; +const zhHans = { + "zp.refresher.default": "继续下拉刷新", + "zp.refresher.pulling": "松开立即刷新", + "zp.refresher.refreshing": "正在刷新...", + "zp.refresher.complete": "刷新成功", + "zp.refresher.f2": "松手进入二楼", + "zp.loadingMore.default": "点击加载更多", + "zp.loadingMore.loading": "正在加载...", + "zp.loadingMore.noMore": "没有更多了", + "zp.loadingMore.fail": "加载失败,点击重新加载", + "zp.emptyView.title": "没有数据哦~", + "zp.emptyView.reload": "重新加载", + "zp.emptyView.error": "很抱歉,加载失败", + "zp.refresherUpdateTime.title": "最后更新:", + "zp.refresherUpdateTime.none": "无", + "zp.refresherUpdateTime.today": "今天", + "zp.refresherUpdateTime.yesterday": "昨天", + "zp.systemLoading.title": "加载中..." +}; +const zhHant = { + "zp.refresher.default": "繼續下拉重繪", + "zp.refresher.pulling": "鬆開立即重繪", + "zp.refresher.refreshing": "正在重繪...", + "zp.refresher.complete": "重繪成功", + "zp.refresher.f2": "鬆手進入二樓", + "zp.loadingMore.default": "點擊加載更多", + "zp.loadingMore.loading": "正在加載...", + "zp.loadingMore.noMore": "沒有更多了", + "zp.loadingMore.fail": "加載失敗,點擊重新加載", + "zp.emptyView.title": "沒有數據哦~", + "zp.emptyView.reload": "重新加載", + "zp.emptyView.error": "很抱歉,加載失敗", + "zp.refresherUpdateTime.title": "最後更新:", + "zp.refresherUpdateTime.none": "無", + "zp.refresherUpdateTime.today": "今天", + "zp.refresherUpdateTime.yesterday": "昨天", + "zp.systemLoading.title": "加載中..." +}; +const messages = { + en, + "zh-Hans": zhHans, + "zh-Hant": zhHant +}; +exports.messages = messages; +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/i18n/index.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/back-to-top.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/back-to-top.js new file mode 100644 index 0000000..54133c2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/back-to-top.js @@ -0,0 +1,121 @@ +"use strict"; +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js"); +const backToTopModule = { + props: { + // 自动显示点击返回顶部按钮,默认为否 + autoShowBackToTop: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoShowBackToTop", false) + }, + // 点击返回顶部按钮显示/隐藏的阈值(滚动距离),单位为px,默认为400rpx + backToTopThreshold: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("backToTopThreshold", "400rpx") + }, + // 点击返回顶部按钮的自定义图片地址,默认使用z-paging内置的图片 + backToTopImg: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("backToTopImg", "") + }, + // 点击返回顶部按钮返回到顶部时是否展示过渡动画,默认为是 + backToTopWithAnimate: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("backToTopWithAnimate", true) + }, + // 点击返回顶部按钮与底部的距离,注意添加单位px或rpx,默认为160rpx + backToTopBottom: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("backToTopBottom", "160rpx") + }, + // 点击返回顶部按钮的自定义样式 + backToTopStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("backToTopStyle", {}) + }, + // iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只支持竖向,默认为是 + enableBackToTop: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("enableBackToTop", true) + } + }, + data() { + return { + // 点击返回顶部的class + backToTopClass: "zp-back-to-top zp-back-to-top-hide", + // 上次点击返回顶部的时间 + lastBackToTopShowTime: 0, + // 点击返回顶部显示的class是否在展示中,使得按钮展示/隐藏过度效果更自然 + showBackToTopClass: false + }; + }, + computed: { + backToTopThresholdUnitConverted() { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(this.backToTopThreshold, this.unit); + }, + backToTopBottomUnitConverted() { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(this.backToTopBottom, this.unit); + }, + finalEnableBackToTop() { + return this.usePageScroll ? false : this.enableBackToTop; + }, + finalBackToTopThreshold() { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(this.backToTopThresholdUnitConverted); + }, + finalBackToTopStyle() { + const backToTopStyle = this.backToTopStyle; + if (!backToTopStyle.bottom) { + backToTopStyle.bottom = this.windowBottom + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(this.backToTopBottomUnitConverted) + "px"; + } + if (!backToTopStyle.position) { + backToTopStyle.position = this.usePageScroll ? "fixed" : "absolute"; + } + return backToTopStyle; + }, + finalBackToTopClass() { + return `${this.backToTopClass} zp-back-to-top-${this.unit}`; + } + }, + methods: { + // 点击了返回顶部 + _backToTopClick() { + let callbacked = false; + this.$emit("backToTopClick", (toTop) => { + (toTop === void 0 || toTop === true) && this._handleToTop(); + callbacked = true; + }); + this.$nextTick(() => { + !callbacked && this._handleToTop(); + }); + }, + // 处理滚动到顶部(聊天记录模式中为滚动到底部) + _handleToTop() { + !this.backToTopWithAnimate && this._checkShouldShowBackToTop(0); + !this.useChatRecordMode ? this.scrollToTop(this.backToTopWithAnimate) : this.scrollToBottom(this.backToTopWithAnimate); + }, + // 判断是否要显示返回顶部按钮 + _checkShouldShowBackToTop(scrollTop) { + if (!this.autoShowBackToTop) { + this.showBackToTopClass = false; + return; + } + if (scrollTop > this.finalBackToTopThreshold) { + if (!this.showBackToTopClass) { + this.showBackToTopClass = true; + this.lastBackToTopShowTime = (/* @__PURE__ */ new Date()).getTime(); + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this.backToTopClass = "zp-back-to-top zp-back-to-top-show"; + }, 300); + } + } else { + if (this.showBackToTopClass) { + this.backToTopClass = "zp-back-to-top zp-back-to-top-hide"; + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this.showBackToTopClass = false; + }, (/* @__PURE__ */ new Date()).getTime() - this.lastBackToTopShowTime < 500 ? 0 : 300); + } + } + } + } +}; +exports.backToTopModule = backToTopModule; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/back-to-top.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/chat-record-mode.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/chat-record-mode.js new file mode 100644 index 0000000..300db28 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/chat-record-mode.js @@ -0,0 +1,136 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js"); +const chatRecordModerModule = { + props: { + // 使用聊天记录模式,默认为否 + useChatRecordMode: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useChatRecordMode", false) + }, + // 使用聊天记录模式时滚动到顶部后,列表垂直移动偏移距离。默认0rpx。单位px(暂时无效) + chatRecordMoreOffset: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("chatRecordMoreOffset", "0rpx") + }, + // 使用聊天记录模式时是否自动隐藏键盘:在用户触摸列表时候自动隐藏键盘,默认为是 + autoHideKeyboardWhenChat: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoHideKeyboardWhenChat", true) + }, + // 使用聊天记录模式中键盘弹出时是否自动调整slot="bottom"高度,默认为是 + autoAdjustPositionWhenChat: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoAdjustPositionWhenChat", true) + }, + // 使用聊天记录模式中键盘弹出时占位高度偏移距离。默认0rpx。单位px + chatAdjustPositionOffset: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("chatAdjustPositionOffset", "0rpx") + }, + // 使用聊天记录模式中键盘弹出时是否自动滚动到底部,默认为否 + autoToBottomWhenChat: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoToBottomWhenChat", false) + }, + // 使用聊天记录模式中reload时是否显示chatLoading,默认为否 + showChatLoadingWhenReload: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showChatLoadingWhenReload", false) + }, + // 在聊天记录模式中滑动到顶部状态为默认状态时,以加载中的状态展示,默认为是。若设置为否,则默认会显示【点击加载更多】,然后才会显示loading + chatLoadingMoreDefaultAsLoading: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("chatLoadingMoreDefaultAsLoading", true) + } + }, + data() { + return { + // 键盘高度 + keyboardHeight: 0, + // 键盘高度是否未改变,此时占位高度变化不需要动画效果 + isKeyboardHeightChanged: false + }; + }, + computed: { + finalChatRecordMoreOffset() { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(this.chatRecordMoreOffset); + }, + finalChatAdjustPositionOffset() { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(this.chatAdjustPositionOffset); + }, + // 聊天记录模式旋转180度style + chatRecordRotateStyle() { + let cellStyle; + cellStyle = this.useChatRecordMode ? { transform: "scaleY(-1)" } : {}; + this.$emit("update:cellStyle", cellStyle); + this.$emit("cellStyleChange", cellStyle); + this.$nextTick(() => { + if (this.isFirstPage && this.isChatRecordModeAndNotInversion) { + this.$nextTick(() => { + this._scrollToBottom(false); + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this._scrollToBottom(false); + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this._scrollToBottom(false); + }, 50); + }, 50); + }); + } + }); + return cellStyle; + }, + // 是否是聊天记录列表并且有配置transform + isChatRecordModeHasTransform() { + return this.useChatRecordMode && this.chatRecordRotateStyle && this.chatRecordRotateStyle.transform; + }, + // 是否是聊天记录列表并且列表未倒置 + isChatRecordModeAndNotInversion() { + return this.isChatRecordModeHasTransform && this.chatRecordRotateStyle.transform === "scaleY(1)"; + }, + // 是否是聊天记录列表并且列表倒置 + isChatRecordModeAndInversion() { + return this.isChatRecordModeHasTransform && this.chatRecordRotateStyle.transform === "scaleY(-1)"; + }, + // 最终的聊天记录模式中底部安全区域的高度,如果开启了底部安全区域并且键盘未弹出,则添加底部区域高度 + chatRecordModeSafeAreaBottom() { + return this.safeAreaInsetBottom && !this.keyboardHeight ? this.safeAreaBottom : 0; + } + }, + mounted() { + if (this.useChatRecordMode) { + common_vendor.index.onKeyboardHeightChange(this._handleKeyboardHeightChange); + } + }, + methods: { + // 添加聊天记录 + addChatRecordData(data, toBottom = true, toBottomWithAnimate = true) { + if (!this.useChatRecordMode) + return; + this.isTotalChangeFromAddData = true; + this.addDataFromTop(data, toBottom, toBottomWithAnimate); + }, + // 手动触发滚动到顶部加载更多,聊天记录模式时有效 + doChatRecordLoadMore() { + this.useChatRecordMode && this._onLoadingMore("click"); + }, + // 处理键盘高度变化 + _handleKeyboardHeightChange(res) { + this.$emit("keyboardHeightChange", res); + if (this.autoAdjustPositionWhenChat) { + this.isKeyboardHeightChanged = true; + this.keyboardHeight = res.height > 0 ? res.height + this.finalChatAdjustPositionOffset : res.height; + } + if (this.autoToBottomWhenChat && this.keyboardHeight > 0) { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this.scrollToBottom(false); + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this.scrollToBottom(false); + }); + }); + } + } + } +}; +exports.chatRecordModerModule = chatRecordModerModule; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/chat-record-mode.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/common-layout.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/common-layout.js new file mode 100644 index 0000000..f82f3d7 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/common-layout.js @@ -0,0 +1,99 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js"); +const commonLayoutModule = { + data() { + return { + systemInfo: null, + cssSafeAreaInsetBottom: -1, + isReadyDestroy: false + }; + }, + computed: { + // 顶部可用距离 + windowTop() { + if (!this.systemInfo) + return 0; + return this.systemInfo.windowTop || 0; + }, + // 底部安全区域高度 + safeAreaBottom() { + if (!this.systemInfo) + return 0; + let safeAreaBottom = 0; + safeAreaBottom = Math.max(this.cssSafeAreaInsetBottom, 0); + return safeAreaBottom; + }, + // 是否是比较老的webview,在一些老的webview中,需要进行一些特殊处理 + isOldWebView() { + try { + const systemInfos = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getSystemInfoSync(true).system.split(" "); + const deviceType = systemInfos[0]; + const version = parseInt(systemInfos[1]); + if (deviceType === "iOS" && version <= 10 || deviceType === "Android" && version <= 6) { + return true; + } + } catch (e) { + return false; + } + return false; + }, + // 当前组件的$slots,兼容不同平台 + zSlots() { + return this.$slots; + } + }, + beforeDestroy() { + this.isReadyDestroy = true; + }, + unmounted() { + this.isReadyDestroy = true; + }, + methods: { + // 更新fixed模式下z-paging的布局 + updateFixedLayout() { + this.fixed && this.$nextTick(() => { + this.systemInfo = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getSystemInfoSync(); + }); + }, + // 获取节点尺寸 + _getNodeClientRect(select, inDom = true, scrollOffset = false) { + if (this.isReadyDestroy) { + return Promise.resolve(false); + } + let res = !!inDom ? common_vendor.index.createSelectorQuery().in(inDom === true ? this : inDom) : common_vendor.index.createSelectorQuery(); + scrollOffset ? res.select(select).scrollOffset() : res.select(select).boundingClientRect(); + return new Promise((resolve, reject) => { + res.exec((data) => { + resolve(data && data != "" && data != void 0 && data.length ? data : false); + }); + }); + }, + // 获取slot="left"和slot="right"宽度并且更新布局 + _updateLeftAndRightWidth(targetStyle, parentNodePrefix) { + this.$nextTick(() => { + let delayTime = 0; + setTimeout(() => { + ["left", "right"].map((position) => { + this._getNodeClientRect(`.${parentNodePrefix}-${position}`).then((res) => { + this.$set(targetStyle, position, res ? res[0].width + "px" : "0px"); + }); + }); + }, delayTime); + }); + }, + // 通过获取css设置的底部安全区域占位view高度设置bottom距离(直接通过systemInfo在部分平台上无法获取到底部安全区域) + _getCssSafeAreaInsetBottom(success) { + this._getNodeClientRect(".zp-safe-area-inset-bottom").then((res) => { + this.cssSafeAreaInsetBottom = res ? res[0].height : -1; + res && success && success(); + }); + }, + // 同步获取系统信息,兼容不同平台(供z-paging-swiper使用) + _getSystemInfoSync(useCache = false) { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getSystemInfoSync(useCache); + } + } +}; +exports.commonLayoutModule = commonLayoutModule; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/common-layout.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/data-handle.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/data-handle.js new file mode 100644 index 0000000..871cd93 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/data-handle.js @@ -0,0 +1,654 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingConstant = require("../z-paging-constant.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../z-paging-enum.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingInterceptor = require("../z-paging-interceptor.js"); +const dataHandleModule = { + props: { + // 自定义初始的pageNo,默认为1 + defaultPageNo: { + type: Number, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("defaultPageNo", 1), + observer: function(newVal) { + this.pageNo = newVal; + } + }, + // 自定义pageSize,默认为10 + defaultPageSize: { + type: Number, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("defaultPageSize", 10), + validator: (value) => { + if (value <= 0) + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.consoleErr("default-page-size必须大于0!"); + return value > 0; + } + }, + // 为保证数据一致,设置当前tab切换时的标识key,并在complete中传递相同key,若二者不一致,则complete将不会生效 + dataKey: { + type: [Number, String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("dataKey", null) + }, + // 使用缓存,若开启将自动缓存第一页的数据,默认为否。请注意,因考虑到切换tab时不同tab数据不同的情况,默认仅会缓存组件首次加载时第一次请求到的数据,后续的下拉刷新操作不会更新缓存。 + useCache: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useCache", false) + }, + // 使用缓存时缓存的key,用于区分不同列表的缓存数据,useCache为true时必须设置,否则缓存无效 + cacheKey: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("cacheKey", null) + }, + // 缓存模式,默认仅会缓存组件首次加载时第一次请求到的数据,可设置为always,即代表总是缓存,每次列表刷新(下拉刷新、调用reload等)都会更新缓存 + cacheMode: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("cacheMode", uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CacheMode.Default) + }, + // 自动注入的list名,可自动修改父view(包含ref="paging")中对应name的list值 + autowireListName: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autowireListName", "") + }, + // 自动注入的query名,可自动调用父view(包含ref="paging")中的query方法 + autowireQueryName: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autowireQueryName", "") + }, + // 获取分页数据Function,功能与@query类似。若设置了fetch则@query将不再触发 + fetch: { + type: Function, + default: null + }, + // fetch的附加参数,fetch配置后有效 + fetchParams: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("fetchParams", null) + }, + // z-paging mounted后自动调用reload方法(mounted后自动调用接口),默认为是 + auto: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("auto", true) + }, + // 用户下拉刷新时是否触发reload方法,默认为是 + reloadWhenRefresh: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("reloadWhenRefresh", true) + }, + // reload时自动滚动到顶部,默认为是 + autoScrollToTopWhenReload: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoScrollToTopWhenReload", true) + }, + // reload时立即自动清空原list,默认为是,若立即自动清空,则在reload之后、请求回调之前页面是空白的 + autoCleanListWhenReload: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoCleanListWhenReload", true) + }, + // 列表刷新时自动显示下拉刷新view,默认为否 + showRefresherWhenReload: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showRefresherWhenReload", false) + }, + // 列表刷新时自动显示加载更多view,且为加载中状态,默认为否 + showLoadingMoreWhenReload: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showLoadingMoreWhenReload", false) + }, + // 组件created时立即触发reload(可解决一些情况下先看到页面再看到loading的问题),auto为true时有效。为否时将在mounted+nextTick后触发reload,默认为否 + createdReload: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("createdReload", false) + }, + // 本地分页时上拉加载更多延迟时间,单位为毫秒,默认200毫秒 + localPagingLoadingTime: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("localPagingLoadingTime", 200) + }, + // 自动拼接complete中传过来的数组(使用聊天记录模式时无效) + concat: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("concat", true) + }, + // 请求失败是否触发reject,默认为是 + callNetworkReject: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("callNetworkReject", true) + }, + // 父组件v-model所绑定的list的值 + value: { + type: Array, + default: function() { + return []; + } + }, + modelValue: { + type: Array, + default: function() { + return []; + } + } + }, + data() { + return { + currentData: [], + totalData: [], + realTotalData: [], + totalLocalPagingList: [], + dataPromiseResultMap: { + reload: null, + complete: null, + localPaging: null + }, + isSettingCacheList: false, + pageNo: 1, + currentRefreshPageSize: 0, + isLocalPaging: false, + isAddedData: false, + isTotalChangeFromAddData: false, + privateConcat: true, + myParentQuery: -1, + firstPageLoaded: false, + pagingLoaded: false, + loaded: false, + isUserReload: true, + fromEmptyViewReload: false, + queryFrom: "", + listRendering: false, + isHandlingRefreshToPage: false, + isFirstPageAndNoMore: false, + totalDataChangeThrow: true + }; + }, + computed: { + pageSize() { + return this.defaultPageSize; + }, + finalConcat() { + return this.concat && this.privateConcat; + }, + finalUseCache() { + if (this.useCache && !this.cacheKey) { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.consoleErr("use-cache为true时,必须设置cache-key,否则缓存无效!"); + } + return this.useCache && !!this.cacheKey; + }, + finalCacheKey() { + return this.cacheKey ? `${uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.cachePrefixKey}-${this.cacheKey}` : null; + }, + isFirstPage() { + return this.pageNo === this.defaultPageNo; + } + }, + watch: { + totalData(newVal, oldVal) { + this._totalDataChange(newVal, oldVal, this.totalDataChangeThrow); + this.totalDataChangeThrow = true; + }, + currentData(newVal, oldVal) { + this._currentDataChange(newVal, oldVal); + }, + useChatRecordMode(newVal, oldVal) { + if (newVal) { + this.nLoadingMoreFixedHeight = false; + } + }, + value: { + handler(newVal) { + if (newVal !== this.totalData) { + this.totalDataChangeThrow = false; + this.totalData = newVal; + } + }, + immediate: true + }, + modelValue: { + handler(newVal) { + if (newVal !== this.totalData) { + this.totalDataChangeThrow = false; + this.totalData = newVal; + } + }, + immediate: true + } + }, + methods: { + // 请求结束(成功或者失败)调用此方法,将请求的结果传递给z-paging处理,第一个参数为请求结果数组,第二个参数为是否成功(默认为是) + complete(data, success = true) { + this.customNoMore = -1; + return this.addData(data, success); + }, + //【保证数据一致】请求结束(成功或者失败)调用此方法,将请求的结果传递给z-paging处理,第一个参数为请求结果数组,第二个参数为dataKey,需与:data-key绑定的一致,第三个参数为是否成功(默认为是) + completeByKey(data, dataKey = null, success = true) { + if (dataKey !== null && this.dataKey !== null && dataKey !== this.dataKey) { + this.isFirstPage && this.endRefresh(); + return new Promise((resolve) => resolve()); + } + this.customNoMore = -1; + return this.addData(data, success); + }, + //【通过total判断是否有更多数据】请求结束(成功或者失败)调用此方法,将请求的结果传递给z-paging处理,第一个参数为请求结果数组,第二个参数为total(列表总数),第三个参数为是否成功(默认为是) + completeByTotal(data, total, success = true) { + if (total == "undefined") { + this.customNoMore = -1; + } else { + const dataTypeRes = this._checkDataType(data, success, false); + data = dataTypeRes.data; + success = dataTypeRes.success; + if (total >= 0 && success) { + return new Promise((resolve, reject) => { + this.$nextTick(() => { + let nomore = false; + const realTotalDataCount = this.pageNo == this.defaultPageNo ? 0 : this.realTotalData.length; + const dataLength = this.privateConcat ? data.length : 0; + let exceedCount = realTotalDataCount + dataLength - total; + if (exceedCount >= 0) { + nomore = true; + exceedCount = this.defaultPageSize - exceedCount; + if (this.privateConcat && exceedCount > 0 && exceedCount < data.length) { + data = data.splice(0, exceedCount); + } + } + this.completeByNoMore(data, nomore, success).then((res) => resolve(res)).catch(() => reject()); + }); + }); + } + } + return this.addData(data, success); + }, + //【自行判断是否有更多数据】请求结束(成功或者失败)调用此方法,将请求的结果传递给z-paging处理,第一个参数为请求结果数组,第二个参数为是否没有更多数据,第三个参数为是否成功(默认是是) + completeByNoMore(data, nomore, success = true) { + if (nomore != "undefined") { + this.customNoMore = nomore == true ? 1 : 0; + } + return this.addData(data, success); + }, + // 请求结束且请求失败时调用,支持传入请求失败原因 + completeByError(errorMsg) { + this.customerEmptyViewErrorText = errorMsg; + return this.complete(false); + }, + // 与上方complete方法功能一致,新版本中设置服务端回调数组请使用complete方法 + addData(data, success = true) { + if (!this.fromCompleteEmit) { + this.disabledCompleteEmit = true; + this.fromCompleteEmit = false; + } + const currentTimeStamp = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime(); + const disTime = currentTimeStamp - this.requestTimeStamp; + let minDelay = this.minDelay; + if (this.isFirstPage && this.finalShowRefresherWhenReload) { + minDelay = Math.max(400, minDelay); + } + const addDataDalay = this.requestTimeStamp > 0 && disTime < minDelay ? minDelay - disTime : 0; + this.$nextTick(() => { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this._addData(data, success, false); + }, this.delay > 0 ? this.delay : addDataDalay); + }); + return new Promise((resolve, reject) => { + this.dataPromiseResultMap.complete = { resolve, reject }; + }); + }, + // 从顶部添加数据,不会影响分页的pageNo和pageSize + addDataFromTop(data, toTop = true, toTopWithAnimate = true) { + let addFromTop = !this.isChatRecordModeAndNotInversion; + data = Object.prototype.toString.call(data) !== "[object Array]" ? [data] : addFromTop ? data.reverse() : data; + this.finalUseVirtualList && this._setCellIndex(data, "top"); + this.totalData = addFromTop ? [...data, ...this.totalData] : [...this.totalData, ...data]; + if (toTop) { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => this.useChatRecordMode ? this.scrollToBottom(toTopWithAnimate) : this.scrollToTop(toTopWithAnimate)); + } + }, + // 重新设置列表数据,调用此方法不会影响pageNo和pageSize,也不会触发请求。适用场景:当需要删除列表中某一项时,将删除对应项后的数组通过此方法传递给z-paging。(当出现类似的需要修改列表数组的场景时,请使用此方法,请勿直接修改page中:list.sync绑定的数组) + resetTotalData(data) { + this.isTotalChangeFromAddData = true; + data = Object.prototype.toString.call(data) !== "[object Array]" ? [data] : data; + this.totalData = data; + }, + // 设置本地分页数据,请求结束(成功或者失败)调用此方法,将请求的结果传递给z-paging作分页处理(若调用了此方法,则上拉加载更多时内部会自动分页,不会触发@query所绑定的事件) + setLocalPaging(data, success = true) { + this.isLocalPaging = true; + this.$nextTick(() => { + this._addData(data, success, true); + }); + return new Promise((resolve, reject) => { + this.dataPromiseResultMap.localPaging = { resolve, reject }; + }); + }, + // 重新加载分页数据,pageNo会恢复为默认值,相当于下拉刷新的效果(animate为true时会展示下拉刷新动画,默认为false) + reload(animate = this.showRefresherWhenReload) { + if (animate) { + this.privateShowRefresherWhenReload = animate; + this.isUserPullDown = true; + } + if (!this.showLoadingMoreWhenReload) { + this.listRendering = true; + } + this.$nextTick(() => { + this._preReload(animate, false); + }); + return new Promise((resolve, reject) => { + this.dataPromiseResultMap.reload = { resolve, reject }; + }); + }, + // 刷新列表数据,pageNo和pageSize不会重置,列表数据会重新从服务端获取。必须保证@query绑定的方法中的pageNo和pageSize和传给服务端的一致 + refresh() { + return this._handleRefreshWithDisPageNo(this.pageNo - this.defaultPageNo + 1); + }, + // 刷新列表数据至指定页,例如pageNo=5时则代表刷新列表至第5页,此时pageNo会变为5,列表会展示前5页的数据。必须保证@query绑定的方法中的pageNo和pageSize和传给服务端的一致 + refreshToPage(pageNo) { + this.isHandlingRefreshToPage = true; + return this._handleRefreshWithDisPageNo(pageNo + this.defaultPageNo - 1); + }, + // 手动更新列表缓存数据,将自动截取v-model绑定的list中的前pageSize条覆盖缓存,请确保在list数据更新到预期结果后再调用此方法 + updateCache() { + if (this.finalUseCache && this.totalData.length) { + this._saveLocalCache(this.totalData.slice(0, Math.min(this.totalData.length, this.pageSize))); + } + }, + // 清空分页数据 + clean() { + this._reload(true); + this._addData([], true, false); + }, + // 清空分页数据 + clear() { + this.clean(); + }, + // reload之前的一些处理 + _preReload(animate = this.showRefresherWhenReload, isFromMounted = true, retryCount = 0) { + const showRefresher = this.finalRefresherEnabled && this.useCustomRefresher; + if (this.customRefresherHeight === -1 && showRefresher) { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + retryCount++; + if (retryCount % 10 === 0) { + this._updateCustomRefresherHeight(); + } + this._preReload(animate, isFromMounted, retryCount); + }, uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime / 2); + return; + } + this.isUserReload = true; + this.loadingType = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher; + if (animate) { + this.privateShowRefresherWhenReload = animate; + if (this.useCustomRefresher) { + this._doRefresherRefreshAnimate(); + } else { + this.refresherTriggered = true; + } + } else { + this._refresherEnd(false, false, false, false); + } + this._reload(false, isFromMounted); + }, + // 重新加载分页数据 + _reload(isClean = false, isFromMounted = false, isUserPullDown = false) { + this.isAddedData = false; + this.insideOfPaging = -1; + this.cacheScrollNodeHeight = -1; + this.pageNo = this.defaultPageNo; + this._cleanRefresherEndTimeout(); + !this.privateShowRefresherWhenReload && !isClean && this._startLoading(true); + this.firstPageLoaded = true; + this.isTotalChangeFromAddData = false; + if (!this.isSettingCacheList) { + this.totalData = []; + } + if (!isClean) { + this._emitQuery(this.pageNo, this.defaultPageSize, isUserPullDown ? uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.UserPullDown : uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.Reload); + let delay = 0; + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(this._callMyParentQuery, delay); + if (!isFromMounted && this.autoScrollToTopWhenReload) { + this._scrollToTop(false); + } + } + }, + // 处理服务端返回的数组 + _addData(data, success, isLocal) { + this.isAddedData = true; + this.fromEmptyViewReload = false; + this.isTotalChangeFromAddData = true; + this.refresherTriggered = false; + this._endSystemLoadingAndRefresh(); + const tempIsUserPullDown = this.isUserPullDown; + if (this.showRefresherUpdateTime && this.isFirstPage) { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.setRefesrherTime(uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime(), this.refresherUpdateTimeKey); + this.$refs.refresh && this.$refs.refresh.updateTime(); + } + if (!isLocal && tempIsUserPullDown && this.isFirstPage) { + this.isUserPullDown = false; + } + this.listRendering = true; + this.$nextTick(() => { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => this.listRendering = false); + }); + let dataTypeRes = this._checkDataType(data, success, isLocal); + data = dataTypeRes.data; + success = dataTypeRes.success; + let delayTime = uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime; + if (this.useChatRecordMode) + delayTime = 0; + this.loadingForNow = false; + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this.pagingLoaded = true; + this.$nextTick(() => { + !isLocal && this._refresherEnd(delayTime > 0, true, tempIsUserPullDown); + }); + }); + if (this.isFirstPage) { + this.isLoadFailed = !success; + this.$emit("isLoadFailedChange", this.isLoadFailed); + if (this.finalUseCache && success && (this.cacheMode === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CacheMode.Always ? true : this.isSettingCacheList)) { + this._saveLocalCache(data); + } + } + this.isSettingCacheList = false; + if (success) { + if (!(this.privateConcat === false && !this.isHandlingRefreshToPage && this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore)) { + this.loadingStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Default; + } + if (isLocal) { + this.totalLocalPagingList = data; + const localPageNo = this.defaultPageNo; + const localPageSize = this.queryFrom !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.Refresh ? this.defaultPageSize : this.currentRefreshPageSize; + this._localPagingQueryList(localPageNo, localPageSize, 0, (res) => { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this.completeByTotal(res, this.totalLocalPagingList.length); + }, 0); + }); + } else { + let dataChangeDelayTime = 0; + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this._currentDataChange(data, this.currentData); + this._callDataPromise(true, this.totalData); + }, dataChangeDelayTime); + } + if (this.isHandlingRefreshToPage) { + this.isHandlingRefreshToPage = false; + this.pageNo = this.defaultPageNo + Math.ceil(data.length / this.pageSize) - 1; + if (data.length % this.pageSize !== 0) { + this.customNoMore = 1; + } + } + } else { + this._currentDataChange(data, this.currentData); + this._callDataPromise(false); + this.loadingStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Fail; + this.isHandlingRefreshToPage = false; + if (this.loadingType === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.LoadMore) { + this.pageNo--; + } + } + }, + // 所有数据改变时调用 + _totalDataChange(newVal, oldVal, eventThrow = true) { + if ((!this.isUserReload || !this.autoCleanListWhenReload) && this.firstPageLoaded && !newVal.length && oldVal.length) { + return; + } + this._doCheckScrollViewShouldFullHeight(newVal); + if (!this.realTotalData.length && !newVal.length) { + eventThrow = false; + } + this.realTotalData = newVal; + if (eventThrow) { + this.$emit("input", newVal); + this.$emit("update:modelValue", newVal); + this.$emit("update:list", newVal); + this.$emit("listChange", newVal); + this._callMyParentList(newVal); + } + this.firstPageLoaded = false; + this.isTotalChangeFromAddData = false; + this.$nextTick(() => { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this._getNodeClientRect(".zp-paging-container-content").then((res) => { + res && this.$emit("contentHeightChanged", res[0].height); + }); + }, uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime * (this.isIos ? 1 : 3)); + }); + }, + // 当前数据改变时调用 + _currentDataChange(newVal, oldVal) { + newVal = [...newVal]; + this.finalUseVirtualList && this._setCellIndex(newVal, "bottom"); + if (this.isFirstPage && this.finalConcat) { + this.totalData = []; + } + if (this.customNoMore !== -1) { + if (this.customNoMore === 1 || this.customNoMore !== 0 && !newVal.length) { + this.loadingStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore; + } + } else { + if (!newVal.length || newVal.length && newVal.length < this.defaultPageSize) { + this.loadingStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore; + } + } + if (!this.totalData.length) { + this.totalData = newVal; + } else { + if (this.finalConcat) { + const currentScrollTop = this.oldScrollTop; + this.totalData = [...this.totalData, ...newVal]; + if (!this.isIos && !this.refresherOnly && !this.usePageScroll && newVal.length) { + this.loadingMoreTimeStamp = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime(); + this.$nextTick(() => { + this.scrollToY(currentScrollTop); + }); + } + } else { + this.totalData = newVal; + } + } + this.privateConcat = true; + }, + // 根据pageNo处理refresh操作 + _handleRefreshWithDisPageNo(pageNo) { + if (!this.isHandlingRefreshToPage && !this.realTotalData.length) + return this.reload(); + if (pageNo >= 1) { + this.loading = true; + this.privateConcat = false; + const totalPageSize = pageNo * this.pageSize; + this.currentRefreshPageSize = totalPageSize; + if (this.isLocalPaging && this.isHandlingRefreshToPage) { + this._localPagingQueryList(this.defaultPageNo, totalPageSize, 0, (res) => { + this.complete(res); + }); + } else { + this._emitQuery(this.defaultPageNo, totalPageSize, uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.Refresh); + this._callMyParentQuery(this.defaultPageNo, totalPageSize); + } + } + return new Promise((resolve, reject) => { + this.dataPromiseResultMap.reload = { resolve, reject }; + }); + }, + // 本地分页请求 + _localPagingQueryList(pageNo, pageSize, localPagingLoadingTime, callback) { + pageNo = Math.max(1, pageNo); + pageSize = Math.max(1, pageSize); + const totalPagingList = [...this.totalLocalPagingList]; + const pageNoIndex = (pageNo - 1) * pageSize; + const finalPageNoIndex = Math.min(totalPagingList.length, pageNoIndex + pageSize); + const resultPagingList = totalPagingList.splice(pageNoIndex, finalPageNoIndex - pageNoIndex); + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => callback(resultPagingList), localPagingLoadingTime); + }, + // 存储列表缓存数据 + _saveLocalCache(data) { + common_vendor.index.setStorageSync(this.finalCacheKey, data); + }, + // 通过缓存数据填充列表数据 + _setListByLocalCache() { + this.totalData = common_vendor.index.getStorageSync(this.finalCacheKey) || []; + this.isSettingCacheList = true; + }, + // 修改父view的list + _callMyParentList(newVal) { + if (this.autowireListName.length) { + const myParent = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getParent(this.$parent); + if (myParent && myParent[this.autowireListName]) { + myParent[this.autowireListName] = newVal; + } + } + }, + // 调用父view的query + _callMyParentQuery(customPageNo = 0, customPageSize = 0) { + if (this.autowireQueryName) { + if (this.myParentQuery === -1) { + const myParent = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getParent(this.$parent); + if (myParent && myParent[this.autowireQueryName]) { + this.myParentQuery = myParent[this.autowireQueryName]; + } + } + if (this.myParentQuery !== -1) { + customPageSize > 0 ? this.myParentQuery(customPageNo, customPageSize) : this.myParentQuery(this.pageNo, this.defaultPageSize); + } + } + }, + // emit query事件 + _emitQuery(pageNo, pageSize, from) { + this.queryFrom = from; + this.requestTimeStamp = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime(); + const [lastItem] = this.realTotalData.slice(-1); + if (this.fetch) { + const fetchParams = uni_modules_zPaging_components_zPaging_js_zPagingInterceptor.interceptor._handleFetchParams({ pageNo, pageSize, from, lastItem: lastItem || null }, this.fetchParams); + const fetchResult = this.fetch(fetchParams); + if (!uni_modules_zPaging_components_zPaging_js_zPagingInterceptor.interceptor._handleFetchResult(fetchResult, this, fetchParams)) { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.isPromise(fetchResult) ? fetchResult.then((res) => { + this.complete(res); + }).catch((err) => { + this.complete(false); + }) : this.complete(fetchResult); + } + } else { + this.$emit("query", ...uni_modules_zPaging_components_zPaging_js_zPagingInterceptor.interceptor._handleQuery(pageNo, pageSize, from, lastItem || null)); + } + }, + // 触发数据改变promise + _callDataPromise(success, totalList) { + for (const key in this.dataPromiseResultMap) { + const obj = this.dataPromiseResultMap[key]; + if (!obj) + continue; + success ? obj.resolve({ totalList, noMore: this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore }) : this.callNetworkReject && obj.reject(`z-paging-${key}-error`); + } + }, + // 检查complete data的类型 + _checkDataType(data, success, isLocal) { + const dataType = Object.prototype.toString.call(data); + if (dataType === "[object Boolean]") { + success = data; + data = []; + } else if (dataType !== "[object Array]") { + data = []; + if (dataType !== "[object Undefined]" && dataType !== "[object Null]") { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.consoleErr(`${isLocal ? "setLocalPaging" : "complete"}参数类型不正确,第一个参数类型必须为Array!`); + } + } + return { data, success }; + } + } +}; +exports.dataHandleModule = dataHandleModule; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/data-handle.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/empty.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/empty.js new file mode 100644 index 0000000..d8caf6c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/empty.js @@ -0,0 +1,148 @@ +"use strict"; +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js"); +const emptyModule = { + props: { + // 是否强制隐藏空数据图,默认为否 + hideEmptyView: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("hideEmptyView", false) + }, + // 空数据图描述文字,默认为“没有数据哦~” + emptyViewText: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewText", null) + }, + // 是否显示空数据图重新加载按钮(无数据时),默认为否 + showEmptyViewReload: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showEmptyViewReload", false) + }, + // 加载失败时是否显示空数据图重新加载按钮,默认为是 + showEmptyViewReloadWhenError: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showEmptyViewReloadWhenError", true) + }, + // 空数据图点击重新加载文字,默认为“重新加载” + emptyViewReloadText: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewReloadText", null) + }, + // 空数据图图片,默认使用z-paging内置的图片 + emptyViewImg: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewImg", "") + }, + // 空数据图“加载失败”描述文字,默认为“很抱歉,加载失败” + emptyViewErrorText: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewErrorText", null) + }, + // 空数据图“加载失败”图片,默认使用z-paging内置的图片 + emptyViewErrorImg: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewErrorImg", "") + }, + // 空数据图样式 + emptyViewStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewStyle", {}) + }, + // 空数据图容器样式 + emptyViewSuperStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewSuperStyle", {}) + }, + // 空数据图img样式 + emptyViewImgStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewImgStyle", {}) + }, + // 空数据图描述文字样式 + emptyViewTitleStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewTitleStyle", {}) + }, + // 空数据图重新加载按钮样式 + emptyViewReloadStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewReloadStyle", {}) + }, + // 空数据图片是否铺满z-paging,默认为否,即填充满z-paging内列表(滚动区域)部分。若设置为否,则为填铺满整个z-paging + emptyViewFixed: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewFixed", false) + }, + // 空数据图片是否垂直居中,默认为是,若设置为否即为从空数据容器顶部开始显示。emptyViewFixed为false时有效 + emptyViewCenter: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewCenter", true) + }, + // 加载中时是否自动隐藏空数据图,默认为是 + autoHideEmptyViewWhenLoading: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoHideEmptyViewWhenLoading", true) + }, + // 用户下拉列表触发下拉刷新加载中时是否自动隐藏空数据图,默认为是 + autoHideEmptyViewWhenPull: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoHideEmptyViewWhenPull", true) + }, + // 空数据view的z-index,默认为9 + emptyViewZIndex: { + type: Number, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("emptyViewZIndex", 9) + } + }, + data() { + return { + customerEmptyViewErrorText: "" + }; + }, + computed: { + finalEmptyViewImg() { + return this.isLoadFailed ? this.emptyViewErrorImg : this.emptyViewImg; + }, + finalShowEmptyViewReload() { + return this.isLoadFailed ? this.showEmptyViewReloadWhenError : this.showEmptyViewReload; + }, + // 是否展示空数据图 + showEmpty() { + if (this.refresherOnly || this.hideEmptyView || this.realTotalData.length) + return false; + if (this.autoHideEmptyViewWhenLoading) { + if (this.isAddedData && !this.firstPageLoaded && !this.loading) + return true; + } else { + return true; + } + return !this.autoHideEmptyViewWhenPull && !this.isUserReload; + } + }, + methods: { + // 点击了空数据view重新加载按钮 + _emptyViewReload() { + let callbacked = false; + this.$emit("emptyViewReload", (reload) => { + if (reload === void 0 || reload === true) { + this.fromEmptyViewReload = true; + this.reload().catch(() => { + }); + } + callbacked = true; + }); + this.$nextTick(() => { + if (!callbacked) { + this.fromEmptyViewReload = true; + this.reload().catch(() => { + }); + } + }); + }, + // 点击了空数据view + _emptyViewClick() { + this.$emit("emptyViewClick"); + } + } +}; +exports.emptyModule = emptyModule; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/empty.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/i18n.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/i18n.js new file mode 100644 index 0000000..584c9ab --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/i18n.js @@ -0,0 +1,112 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +const uni_modules_zPaging_components_zPaging_i18n_index = require("../../i18n/index.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingInterceptor = require("../z-paging-interceptor.js"); +const { t } = common_vendor.initVueI18n(uni_modules_zPaging_components_zPaging_i18n_index.messages); +const i18nModule = { + computed: { + finalLanguage() { + try { + const local = common_vendor.index.getLocale(); + const language = this.systemInfo.appLanguage; + return local === "auto" ? uni_modules_zPaging_components_zPaging_js_zPagingInterceptor.interceptor._handleLanguage2Local(language, this._language2Local(language)) : local; + } catch (e) { + return "zh-Hans"; + } + }, + // 最终的下拉刷新默认状态的文字 + finalRefresherDefaultText() { + return this._getI18nText("zp.refresher.default", this.refresherDefaultText); + }, + // 最终的下拉刷新下拉中的文字 + finalRefresherPullingText() { + return this._getI18nText("zp.refresher.pulling", this.refresherPullingText); + }, + // 最终的下拉刷新中文字 + finalRefresherRefreshingText() { + return this._getI18nText("zp.refresher.refreshing", this.refresherRefreshingText); + }, + // 最终的下拉刷新完成文字 + finalRefresherCompleteText() { + return this._getI18nText("zp.refresher.complete", this.refresherCompleteText); + }, + // 最终的下拉刷新上次更新时间文字 + finalRefresherUpdateTimeTextMap() { + return { + title: t("zp.refresherUpdateTime.title"), + none: t("zp.refresherUpdateTime.none"), + today: t("zp.refresherUpdateTime.today"), + yesterday: t("zp.refresherUpdateTime.yesterday") + }; + }, + // 最终的继续下拉进入二楼文字 + finalRefresherGoF2Text() { + return this._getI18nText("zp.refresher.f2", this.refresherGoF2Text); + }, + // 最终的底部加载更多默认状态文字 + finalLoadingMoreDefaultText() { + return this._getI18nText("zp.loadingMore.default", this.loadingMoreDefaultText); + }, + // 最终的底部加载更多加载中文字 + finalLoadingMoreLoadingText() { + return this._getI18nText("zp.loadingMore.loading", this.loadingMoreLoadingText); + }, + // 最终的底部加载更多没有更多数据文字 + finalLoadingMoreNoMoreText() { + return this._getI18nText("zp.loadingMore.noMore", this.loadingMoreNoMoreText); + }, + // 最终的底部加载更多加载失败文字 + finalLoadingMoreFailText() { + return this._getI18nText("zp.loadingMore.fail", this.loadingMoreFailText); + }, + // 最终的空数据图title + finalEmptyViewText() { + return this.isLoadFailed ? this.finalEmptyViewErrorText : this._getI18nText("zp.emptyView.title", this.emptyViewText); + }, + // 最终的空数据图reload title + finalEmptyViewReloadText() { + return this._getI18nText("zp.emptyView.reload", this.emptyViewReloadText); + }, + // 最终的空数据图加载失败文字 + finalEmptyViewErrorText() { + return this.customerEmptyViewErrorText || this._getI18nText("zp.emptyView.error", this.emptyViewErrorText); + }, + // 最终的系统loading title + finalSystemLoadingText() { + return this._getI18nText("zp.systemLoading.title", this.systemLoadingText); + } + }, + methods: { + // 获取当前z-paging的语言 + getLanguage() { + return this.finalLanguage; + }, + // 获取国际化转换后的文本 + _getI18nText(key, value) { + const dataType = Object.prototype.toString.call(value); + if (dataType === "[object Object]") { + const nextValue = value[this.finalLanguage]; + if (nextValue) + return nextValue; + } else if (dataType === "[object String]") { + return value; + } + return t(key); + }, + // 系统language转i18n local + _language2Local(language) { + const formatedLanguage = language.toLowerCase().replace(new RegExp("_", ""), "-"); + if (formatedLanguage.indexOf("zh") !== -1) { + if (formatedLanguage === "zh" || formatedLanguage === "zh-cn" || formatedLanguage.indexOf("zh-hans") !== -1) { + return "zh-Hans"; + } + return "zh-Hant"; + } + if (formatedLanguage.indexOf("en") !== -1) + return "en"; + return language; + } + } +}; +exports.i18nModule = i18nModule; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/i18n.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/load-more.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/load-more.js new file mode 100644 index 0000000..5c3d68a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/load-more.js @@ -0,0 +1,338 @@ +"use strict"; +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../z-paging-enum.js"); +const loadMoreModule = { + props: { + // 自定义底部加载更多样式 + loadingMoreCustomStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreCustomStyle", {}) + }, + // 自定义底部加载更多文字样式 + loadingMoreTitleCustomStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreTitleCustomStyle", {}) + }, + // 自定义底部加载更多加载中动画样式 + loadingMoreLoadingIconCustomStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreLoadingIconCustomStyle", {}) + }, + // 自定义底部加载更多加载中动画图标类型,可选flower或circle,默认为flower + loadingMoreLoadingIconType: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreLoadingIconType", "flower") + }, + // 自定义底部加载更多加载中动画图标图片 + loadingMoreLoadingIconCustomImage: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreLoadingIconCustomImage", "") + }, + // 底部加载更多加载中view是否展示旋转动画,默认为是 + loadingMoreLoadingAnimated: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreLoadingAnimated", true) + }, + // 是否启用加载更多数据(含滑动到底部加载更多数据和点击加载更多数据),默认为是 + loadingMoreEnabled: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreEnabled", true) + }, + // 是否启用滑动到底部加载更多数据,默认为是 + toBottomLoadingMoreEnabled: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("toBottomLoadingMoreEnabled", true) + }, + // 滑动到底部状态为默认状态时,以加载中的状态展示,默认为否。若设置为是,可避免滚动到底部看到默认状态然后立刻变为加载中状态的问题,但分页数量未超过一屏时,不会显示【点击加载更多】 + loadingMoreDefaultAsLoading: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreDefaultAsLoading", false) + }, + // 滑动到底部"默认"文字,默认为【点击加载更多】 + loadingMoreDefaultText: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreDefaultText", null) + }, + // 滑动到底部"加载中"文字,默认为【正在加载...】 + loadingMoreLoadingText: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreLoadingText", null) + }, + // 滑动到底部"没有更多"文字,默认为【没有更多了】 + loadingMoreNoMoreText: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreNoMoreText", null) + }, + // 滑动到底部"加载失败"文字,默认为【加载失败,点击重新加载】 + loadingMoreFailText: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreFailText", null) + }, + // 当没有更多数据且分页内容未超出z-paging时是否隐藏没有更多数据的view,默认为否 + hideNoMoreInside: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("hideNoMoreInside", false) + }, + // 当没有更多数据且分页数组长度少于这个值时,隐藏没有更多数据的view,默认为0,代表不限制。 + hideNoMoreByLimit: { + type: Number, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("hideNoMoreByLimit", 0) + }, + // 是否显示默认的加载更多text,默认为是 + showDefaultLoadingMoreText: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showDefaultLoadingMoreText", true) + }, + // 是否显示没有更多数据的view + showLoadingMoreNoMoreView: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showLoadingMoreNoMoreView", true) + }, + // 是否显示没有更多数据的分割线,默认为是 + showLoadingMoreNoMoreLine: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showLoadingMoreNoMoreLine", true) + }, + // 自定义底部没有更多数据的分割线样式 + loadingMoreNoMoreLineCustomStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreNoMoreLineCustomStyle", {}) + }, + // 当分页未满一屏时,是否自动加载更多,默认为否(nvue无效) + insideMore: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("insideMore", false) + }, + // 距底部/右边多远时(单位px),触发 scrolltolower 事件,默认为100rpx + lowerThreshold: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("lowerThreshold", "100rpx") + } + }, + data() { + return { + M: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More, + // 底部加载更多状态 + loadingStatus: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Default, + // 在渲染之后的底部加载更多状态 + loadingStatusAfterRender: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Default, + // 底部加载更多时间戳 + loadingMoreTimeStamp: 0, + // 底部加载更多slot + loadingMoreDefaultSlot: null, + // 是否展示底部加载更多 + showLoadingMore: false, + // 是否是开发者自定义的加载更多,-1代表交由z-paging自行判断;1代表没有更多了;0代表还有更多数据 + customNoMore: -1 + }; + }, + computed: { + // 底部加载更多配置 + zLoadMoreConfig() { + return { + status: this.loadingStatusAfterRender, + defaultAsLoading: this.loadingMoreDefaultAsLoading || this.useChatRecordMode && this.chatLoadingMoreDefaultAsLoading, + defaultThemeStyle: this.finalLoadingMoreThemeStyle, + customStyle: this.loadingMoreCustomStyle, + titleCustomStyle: this.loadingMoreTitleCustomStyle, + iconCustomStyle: this.loadingMoreLoadingIconCustomStyle, + loadingIconType: this.loadingMoreLoadingIconType, + loadingIconCustomImage: this.loadingMoreLoadingIconCustomImage, + loadingAnimated: this.loadingMoreLoadingAnimated, + showNoMoreLine: this.showLoadingMoreNoMoreLine, + noMoreLineCustomStyle: this.loadingMoreNoMoreLineCustomStyle, + defaultText: this.finalLoadingMoreDefaultText, + loadingText: this.finalLoadingMoreLoadingText, + noMoreText: this.finalLoadingMoreNoMoreText, + failText: this.finalLoadingMoreFailText, + hideContent: !this.loadingMoreDefaultAsLoading && this.listRendering, + unit: this.unit, + isChat: this.useChatRecordMode, + chatDefaultAsLoading: this.chatLoadingMoreDefaultAsLoading + }; + }, + // 最终的底部加载更多主题 + finalLoadingMoreThemeStyle() { + return this.loadingMoreThemeStyle.length ? this.loadingMoreThemeStyle : this.defaultThemeStyle; + }, + // 最终的底部加载更多触发阈值 + finalLowerThreshold() { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(this.lowerThreshold); + }, + // 是否显示默认状态下的底部加载更多 + showLoadingMoreDefault() { + return this._showLoadingMore("Default"); + }, + // 是否显示加载中状态下的底部加载更多 + showLoadingMoreLoading() { + return this._showLoadingMore("Loading"); + }, + // 是否显示没有更多了状态下的底部加载更多 + showLoadingMoreNoMore() { + return this._showLoadingMore("NoMore"); + }, + // 是否显示加载失败状态下的底部加载更多 + showLoadingMoreFail() { + return this._showLoadingMore("Fail"); + }, + // 是否显示自定义状态下的底部加载更多 + showLoadingMoreCustom() { + return this._showLoadingMore("Custom"); + }, + // 底部加载更多固定高度 + loadingMoreFixedHeight() { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit("80rpx", this.unit); + } + }, + methods: { + // 页面滚动到底部时通知z-paging进行进一步处理 + pageReachBottom() { + !this.useChatRecordMode && this.toBottomLoadingMoreEnabled && this._onLoadingMore("toBottom"); + }, + // 手动触发上拉加载更多(非必须,可依据具体需求使用) + doLoadMore(type) { + this._onLoadingMore(type); + }, + // 通过@scroll事件检测是否滚动到了底部(顺带检测下是否滚动到了顶部) + _checkScrolledToBottom(scrollDiff, checked = false) { + if (this.cacheScrollNodeHeight === -1) { + this._getNodeClientRect(".zp-scroll-view").then((res) => { + if (res) { + const scrollNodeHeight = res[0].height; + this.cacheScrollNodeHeight = scrollNodeHeight; + if (scrollDiff - scrollNodeHeight <= this.finalLowerThreshold) { + this._onLoadingMore("toBottom"); + } + } + }); + } else { + if (scrollDiff - this.cacheScrollNodeHeight <= this.finalLowerThreshold) { + this._onLoadingMore("toBottom"); + } else if (scrollDiff - this.cacheScrollNodeHeight <= 500 && !checked) { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this._getNodeClientRect(".zp-scroll-view", true, true).then((res) => { + if (res) { + this.oldScrollTop = res[0].scrollTop; + const newScrollDiff = res[0].scrollHeight - this.oldScrollTop; + this._checkScrolledToBottom(newScrollDiff, true); + } + }); + }, 150, "checkScrolledToBottomDelay"); + } + if (this.oldScrollTop <= 150 && this.oldScrollTop !== 0) { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + if (this.oldScrollTop !== 0) { + this._getNodeClientRect(".zp-scroll-view", true, true).then((res) => { + if (res && res[0].scrollTop === 0 && this.oldScrollTop !== 0) { + this._onScrollToUpper(); + } + }); + } + }, 150, "checkScrolledToTopDelay"); + } + } + }, + // 触发加载更多时调用,from:toBottom-滑动到底部触发;click-点击加载更多触发 + _onLoadingMore(from = "click") { + if (this.isIos && from === "toBottom" && !this.scrollToBottomBounceEnabled && this.scrollEnable) { + this.scrollEnable = false; + this.$nextTick(() => { + this.scrollEnable = true; + }); + } + this._emitScrollEvent("scrolltolower"); + if (this.refresherOnly || !this.loadingMoreEnabled || !(this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Default || this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Fail) || this.loading || this.showEmpty) + return; + if (!this.isIos && !this.refresherOnly && !this.usePageScroll) { + const currentTimestamp = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime(); + if (this.loadingMoreTimeStamp > 0 && currentTimestamp - this.loadingMoreTimeStamp < 100) { + this.loadingMoreTimeStamp = 0; + return; + } + } + this._doLoadingMore(); + }, + // 处理开始加载更多 + _doLoadingMore() { + if (this.pageNo >= this.defaultPageNo && this.loadingStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore) { + this.pageNo++; + this._startLoading(false); + if (this.isLocalPaging) { + this._localPagingQueryList(this.pageNo, this.defaultPageSize, this.localPagingLoadingTime, (res) => { + this.completeByTotal(res, this.totalLocalPagingList.length); + this.queryFrom = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.LoadMore; + }); + } else { + this._emitQuery(this.pageNo, this.defaultPageSize, uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.LoadMore); + this._callMyParentQuery(); + } + this.loadingType = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.LoadMore; + } + }, + // (预处理)判断当没有更多数据且分页内容未超出z-paging时是否显示没有更多数据的view + _preCheckShowNoMoreInside(newVal, scrollViewNode, pagingContainerNode) { + if (this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore && this.hideNoMoreByLimit > 0 && newVal.length) { + this.showLoadingMore = newVal.length > this.hideNoMoreByLimit; + } else if (this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore && this.hideNoMoreInside && newVal.length || this.insideMore && this.insideOfPaging !== false && newVal.length) { + this.$nextTick(() => { + this._checkShowNoMoreInside(newVal, scrollViewNode, pagingContainerNode); + }); + if (this.insideMore && this.insideOfPaging !== false && newVal.length) { + this.showLoadingMore = newVal.length; + } + } else { + this.showLoadingMore = newVal.length; + } + }, + // 判断当没有更多数据且分页内容未超出z-paging时是否显示没有更多数据的view + async _checkShowNoMoreInside(totalData, oldScrollViewNode, oldPagingContainerNode) { + try { + const scrollViewNode = oldScrollViewNode || await this._getNodeClientRect(".zp-scroll-view"); + if (this.usePageScroll) { + if (scrollViewNode) { + const scrollViewTotalH = scrollViewNode[0].top + scrollViewNode[0].height; + this.insideOfPaging = scrollViewTotalH < this.windowHeight; + if (this.hideNoMoreInside) { + this.showLoadingMore = !this.insideOfPaging; + } + this._updateInsideOfPaging(); + } + } else { + const pagingContainerNode = oldPagingContainerNode || await this._getNodeClientRect(".zp-paging-container-content"); + const pagingContainerH = pagingContainerNode ? pagingContainerNode[0].height : 0; + const scrollViewH = scrollViewNode ? scrollViewNode[0].height : 0; + this.insideOfPaging = pagingContainerH < scrollViewH; + if (this.hideNoMoreInside) { + this.showLoadingMore = !this.insideOfPaging; + } + this._updateInsideOfPaging(); + } + } catch (e) { + this.insideOfPaging = !totalData.length; + if (this.hideNoMoreInside) { + this.showLoadingMore = !this.insideOfPaging; + } + this._updateInsideOfPaging(); + } + }, + // 是否要展示上拉加载更多view + _showLoadingMore(type) { + if (!this.showLoadingMoreWhenReload && (!(this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Default ? this.nShowBottom : true) || !this.realTotalData.length)) + return false; + if ((!this.showLoadingMoreWhenReload || this.isUserPullDown || this.loadingStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Loading) && !this.showLoadingMore || !this.loadingMoreEnabled && (!this.showLoadingMoreWhenReload || this.isUserPullDown || this.loadingStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Loading) || this.refresherOnly) { + return false; + } + if (this.useChatRecordMode && type !== "Loading") + return false; + if (!this.zSlots) + return false; + if (type === "Custom") { + return this.showDefaultLoadingMoreText && !(this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore && !this.showLoadingMoreNoMoreView); + } + const res = this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More[type] && this.zSlots[`loadingMore${type}`] && (type === "NoMore" ? this.showLoadingMoreNoMoreView : true); + return res; + } + } +}; +exports.loadMoreModule = loadMoreModule; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/load-more.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/loading.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/loading.js new file mode 100644 index 0000000..0781b9d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/loading.js @@ -0,0 +1,94 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../z-paging-enum.js"); +const loadingModule = { + props: { + // 第一次加载后自动隐藏loading slot,默认为是 + autoHideLoadingAfterFirstLoaded: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoHideLoadingAfterFirstLoaded", true) + }, + // loading slot是否铺满屏幕并固定,默认为否 + loadingFullFixed: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingFullFixed", false) + }, + // 是否自动显示系统Loading:即uni.showLoading,若开启则将在刷新列表时(调用reload、refresh时)显示,下拉刷新和滚动到底部加载更多不会显示,默认为false。 + autoShowSystemLoading: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoShowSystemLoading", false) + }, + // 显示系统Loading时是否显示透明蒙层,防止触摸穿透,默认为是(H5、App、微信小程序、百度小程序有效) + systemLoadingMask: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("systemLoadingMask", true) + }, + // 显示系统Loading时显示的文字,默认为"加载中" + systemLoadingText: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("systemLoadingText", null) + } + }, + data() { + return { + loading: false, + loadingForNow: false + }; + }, + watch: { + // loading状态 + loadingStatus(newVal) { + this.$emit("loadingStatusChange", newVal); + this.$nextTick(() => { + this.loadingStatusAfterRender = newVal; + }); + if (this.useChatRecordMode) { + if (this.isFirstPage && (newVal === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore || newVal === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Fail)) { + this.isFirstPageAndNoMore = true; + return; + } + } + this.isFirstPageAndNoMore = false; + }, + loading(newVal) { + if (newVal) { + this.loadingForNow = newVal; + } + } + }, + computed: { + // 是否显示loading + showLoading() { + if (this.firstPageLoaded || !this.loading || !this.loadingForNow) + return false; + if (this.finalShowSystemLoading) { + common_vendor.index.showLoading({ + title: this.finalSystemLoadingText, + mask: this.systemLoadingMask + }); + } + return this.autoHideLoadingAfterFirstLoaded ? this.fromEmptyViewReload ? true : !this.pagingLoaded : this.loadingType === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher; + }, + // 最终的是否显示系统loading + finalShowSystemLoading() { + return this.autoShowSystemLoading && this.loadingType === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher; + } + }, + methods: { + // 处理开始加载更多状态 + _startLoading(isReload = false) { + if (this.showLoadingMoreWhenReload && !this.isUserPullDown || !isReload) { + this.loadingStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Loading; + } + this.loading = true; + }, + // 停止系统loading和refresh + _endSystemLoadingAndRefresh() { + this.finalShowSystemLoading && common_vendor.index.hideLoading(); + !this.useCustomRefresher && common_vendor.index.stopPullDownRefresh(); + } + } +}; +exports.loadingModule = loadingModule; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/loading.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/nvue.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/nvue.js new file mode 100644 index 0000000..ddee29a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/nvue.js @@ -0,0 +1,25 @@ +"use strict"; +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js"); +const nvueModule = { + props: {}, + data() { + return { + nRefresherLoading: false, + nListIsDragging: false, + nShowBottom: true, + nFixFreezing: false, + nShowRefresherReveal: false, + nLoadingMoreFixedHeight: false, + nShowRefresherRevealHeight: 0, + nOldShowRefresherRevealHeight: -1, + nRefresherWidth: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.rpx2px(750), + nF2Opacity: 0 + }; + }, + computed: {}, + mounted() { + }, + methods: {} +}; +exports.nvueModule = nvueModule; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/nvue.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/refresher.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/refresher.js new file mode 100644 index 0000000..8afd4e6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/refresher.js @@ -0,0 +1,624 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../z-paging-enum.js"); +const refresherModule = { + props: { + // 下拉刷新的主题样式,支持black,white,默认black + refresherThemeStyle: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherThemeStyle", "") + }, + // 自定义下拉刷新中左侧图标的样式 + refresherImgStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherImgStyle", {}) + }, + // 自定义下拉刷新中右侧状态描述文字的样式 + refresherTitleStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherTitleStyle", {}) + }, + // 自定义下拉刷新中右侧最后更新时间文字的样式(show-refresher-update-time为true时有效) + refresherUpdateTimeStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherUpdateTimeStyle", {}) + }, + // 在微信小程序和QQ小程序中,是否实时监听下拉刷新中进度,默认为否 + watchRefresherTouchmove: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("watchRefresherTouchmove", false) + }, + // 底部加载更多的主题样式,支持black,white,默认black + loadingMoreThemeStyle: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreThemeStyle", "") + }, + // 是否只使用下拉刷新,设置为true后将关闭mounted自动请求数据、关闭滚动到底部加载更多,强制隐藏空数据图。默认为否 + refresherOnly: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherOnly", false) + }, + // 自定义下拉刷新默认状态下回弹动画时间,单位为毫秒,默认为100毫秒,nvue无效 + refresherDefaultDuration: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherDefaultDuration", 100) + }, + // 自定义下拉刷新结束以后延迟回弹的时间,单位为毫秒,默认为0 + refresherCompleteDelay: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherCompleteDelay", 0) + }, + // 自定义下拉刷新结束回弹动画时间,单位为毫秒,默认为300毫秒(refresherEndBounceEnabled为false时,refresherCompleteDuration为设定值的1/3),nvue无效 + refresherCompleteDuration: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherCompleteDuration", 300) + }, + // 自定义下拉刷新中是否允许列表滚动,默认为是 + refresherRefreshingScrollable: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherRefreshingScrollable", true) + }, + // 自定义下拉刷新结束状态下是否允许列表滚动,默认为否 + refresherCompleteScrollable: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherCompleteScrollable", false) + }, + // 是否使用自定义的下拉刷新,默认为是,即使用z-paging的下拉刷新。设置为false即代表使用uni scroll-view自带的下拉刷新,h5、App、微信小程序以外的平台不支持uni scroll-view自带的下拉刷新 + useCustomRefresher: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useCustomRefresher", true) + }, + // 自定义下拉刷新下拉帧率,默认为40,过高可能会出现抖动问题 + refresherFps: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherFps", 40) + }, + // 自定义下拉刷新允许触发的最大下拉角度,默认为40度,当下拉角度小于设定值时,自定义下拉刷新动画不会被触发 + refresherMaxAngle: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherMaxAngle", 40) + }, + // 自定义下拉刷新的角度由未达到最大角度变到达到最大角度时,是否继续下拉刷新手势,默认为否 + refresherAngleEnableChangeContinued: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherAngleEnableChangeContinued", false) + }, + // 自定义下拉刷新默认状态下的文字 + refresherDefaultText: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherDefaultText", null) + }, + // 自定义下拉刷新松手立即刷新状态下的文字 + refresherPullingText: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherPullingText", null) + }, + // 自定义下拉刷新刷新中状态下的文字 + refresherRefreshingText: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherRefreshingText", null) + }, + // 自定义下拉刷新刷新结束状态下的文字 + refresherCompleteText: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherCompleteText", null) + }, + // 自定义继续下拉进入二楼文字 + refresherGoF2Text: { + type: [String, Object], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherGoF2Text", null) + }, + // 自定义下拉刷新默认状态下的图片 + refresherDefaultImg: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherDefaultImg", null) + }, + // 自定义下拉刷新松手立即刷新状态下的图片,默认与refresherDefaultImg一致 + refresherPullingImg: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherPullingImg", null) + }, + // 自定义下拉刷新刷新中状态下的图片 + refresherRefreshingImg: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherRefreshingImg", null) + }, + // 自定义下拉刷新刷新结束状态下的图片 + refresherCompleteImg: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherCompleteImg", null) + }, + // 自定义下拉刷新刷新中状态下是否展示旋转动画 + refresherRefreshingAnimated: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherRefreshingAnimated", true) + }, + // 是否开启自定义下拉刷新刷新结束回弹效果,默认为是 + refresherEndBounceEnabled: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherEndBounceEnabled", true) + }, + // 是否开启自定义下拉刷新,默认为是 + refresherEnabled: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherEnabled", true) + }, + // 设置自定义下拉刷新阈值,默认为80rpx + refresherThreshold: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherThreshold", "80rpx") + }, + // 设置系统下拉刷新默认样式,支持设置 black,white,none,none 表示不使用默认样式,默认为black + refresherDefaultStyle: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherDefaultStyle", "black") + }, + // 设置自定义下拉刷新区域背景 + refresherBackground: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherBackground", "transparent") + }, + // 设置固定的自定义下拉刷新区域背景 + refresherFixedBackground: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherFixedBackground", "transparent") + }, + // 设置固定的自定义下拉刷新区域高度,默认为0 + refresherFixedBacHeight: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherFixedBacHeight", 0) + }, + // 设置自定义下拉刷新下拉超出阈值后继续下拉位移衰减的比例,范围0-1,值越大代表衰减越多。默认为0.65(nvue无效) + refresherOutRate: { + type: Number, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherOutRate", 0.65) + }, + // 是否开启下拉进入二楼功能,默认为否 + refresherF2Enabled: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherF2Enabled", false) + }, + // 下拉进入二楼阈值,默认为200rpx + refresherF2Threshold: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherF2Threshold", "200rpx") + }, + // 下拉进入二楼动画时间,单位为毫秒,默认为200毫秒 + refresherF2Duration: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherF2Duration", 200) + }, + // 下拉进入二楼状态松手后是否弹出二楼,默认为是 + showRefresherF2: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showRefresherF2", true) + }, + // 设置自定义下拉刷新下拉时实际下拉位移与用户下拉距离的比值,默认为0.75,即代表若用户下拉10px,则实际位移为7.5px(nvue无效) + refresherPullRate: { + type: Number, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherPullRate", 0.75) + }, + // 是否显示最后更新时间,默认为否 + showRefresherUpdateTime: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showRefresherUpdateTime", false) + }, + // 如果需要区别不同页面的最后更新时间,请为不同页面的z-paging的`refresher-update-time-key`设置不同的字符串 + refresherUpdateTimeKey: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherUpdateTimeKey", "default") + }, + // 下拉刷新时下拉到“松手立即刷新”或“松手进入二楼”状态时是否使手机短振动,默认为否(h5无效) + refresherVibrate: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherVibrate", false) + }, + // 下拉刷新时是否禁止下拉刷新view跟随用户触摸竖直移动,默认为否。注意此属性只是禁止下拉刷新view移动,其他下拉刷新逻辑依然会正常触发 + refresherNoTransform: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherNoTransform", false) + }, + // 是否开启下拉刷新状态栏占位,适用于隐藏导航栏时,下拉刷新需要避开状态栏高度的情况,默认为否 + useRefresherStatusBarPlaceholder: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useRefresherStatusBarPlaceholder", false) + } + }, + data() { + return { + R: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher, + //下拉刷新状态 + refresherStatus: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Default, + refresherTouchstartY: 0, + lastRefresherTouchmove: null, + refresherReachMaxAngle: true, + refresherTransform: "translateY(0px)", + refresherTransition: "", + finalRefresherDefaultStyle: "black", + refresherRevealStackCount: 0, + refresherCompleteTimeout: null, + refresherCompleteSubTimeout: null, + refresherEndTimeout: null, + isTouchmovingTimeout: null, + refresherTriggered: false, + isTouchmoving: false, + isTouchEnded: false, + isUserPullDown: false, + privateRefresherEnabled: -1, + privateShowRefresherWhenReload: false, + customRefresherHeight: -1, + showCustomRefresher: false, + doRefreshAnimateAfter: false, + isRefresherInComplete: false, + showF2: false, + f2Transform: "", + pullDownTimeStamp: 0, + moveDis: 0, + oldMoveDis: 0, + currentDis: 0, + oldCurrentMoveDis: 0, + oldRefresherTouchmoveY: 0, + oldTouchDirection: "", + oldEmitedTouchDirection: "", + oldPullingDistance: -1, + refresherThresholdUpdateTag: 0 + }; + }, + watch: { + refresherDefaultStyle: { + handler(newVal) { + if (newVal.length) { + this.finalRefresherDefaultStyle = newVal; + } + }, + immediate: true + }, + refresherStatus(newVal) { + newVal === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Loading && this._cleanRefresherEndTimeout(); + this.refresherVibrate && (newVal === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.ReleaseToRefresh || newVal === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.GoF2) && this._doVibrateShort(); + this.$emit("refresherStatusChange", newVal); + this.$emit("update:refresherStatus", newVal); + }, + // 监听当前下拉刷新启用/禁用状态 + refresherEnabled(newVal) { + !newVal && this.endRefresh(); + } + }, + computed: { + pullDownDisTimeStamp() { + return 1e3 / this.refresherFps; + }, + refresherThresholdUnitConverted() { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(this.refresherThreshold, this.unit); + }, + finalRefresherEnabled() { + if (this.useChatRecordMode) + return false; + if (this.privateRefresherEnabled === -1) + return this.refresherEnabled; + return this.privateRefresherEnabled === 1; + }, + finalRefresherThreshold() { + let refresherThreshold = this.refresherThresholdUnitConverted; + let idDefault = false; + if (refresherThreshold === uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(80, this.unit)) { + idDefault = true; + if (this.showRefresherUpdateTime) { + refresherThreshold = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(120, this.unit); + } + } + if (idDefault && this.customRefresherHeight > 0) + return this.customRefresherHeight + this.finalRefresherThresholdPlaceholder; + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(refresherThreshold) + this.finalRefresherThresholdPlaceholder; + }, + finalRefresherF2Threshold() { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(this.refresherF2Threshold, this.unit)); + }, + finalRefresherThresholdPlaceholder() { + return this.useRefresherStatusBarPlaceholder ? this.statusBarHeight : 0; + }, + finalRefresherFixedBacHeight() { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(this.refresherFixedBacHeight); + }, + finalRefresherThemeStyle() { + return this.refresherThemeStyle.length ? this.refresherThemeStyle : this.defaultThemeStyle; + }, + finalRefresherOutRate() { + let rate = this.refresherOutRate; + rate = Math.max(0, rate); + rate = Math.min(1, rate); + return rate; + }, + finalRefresherPullRate() { + let rate = this.refresherPullRate; + rate = Math.max(0, rate); + return rate; + }, + finalRefresherTransform() { + if (this.refresherNoTransform || this.refresherTransform === "translateY(0px)") + return "none"; + return this.refresherTransform; + }, + finalShowRefresherWhenReload() { + return this.showRefresherWhenReload || this.privateShowRefresherWhenReload; + }, + finalRefresherTriggered() { + if (!(this.finalRefresherEnabled && !this.useCustomRefresher)) + return false; + return this.refresherTriggered; + }, + showRefresher() { + const showRefresher = this.finalRefresherEnabled || this.useCustomRefresher && !this.useChatRecordMode; + this.active && this.customRefresherHeight === -1 && showRefresher && this.updateCustomRefresherHeight(); + return showRefresher; + }, + hasTouchmove() { + return this.watchRefresherTouchmove; + } + }, + methods: { + // 终止下拉刷新状态 + endRefresh() { + this.totalData = this.realTotalData; + this._refresherEnd(); + this._endSystemLoadingAndRefresh(); + this._handleScrollViewBounce({ bounce: true }); + this.$nextTick(() => { + this.refresherTriggered = false; + }); + }, + // 手动更新自定义下拉刷新view高度 + updateCustomRefresherHeight() { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => this.$nextTick(this._updateCustomRefresherHeight)); + }, + // 关闭二楼 + closeF2() { + this._handleCloseF2(); + }, + // 自定义下拉刷新被触发 + _onRefresh(fromScrollView = false, isUserPullDown = true) { + if (fromScrollView && !(this.finalRefresherEnabled && !this.useCustomRefresher)) + return; + this.$emit("onRefresh"); + this.$emit("Refresh"); + if (this.loading || this.isRefresherInComplete) + return; + this.loadingType = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher; + if (this.nShowRefresherReveal) + return; + this.isUserPullDown = isUserPullDown; + this.isUserReload = !isUserPullDown; + this._startLoading(true); + this.refresherTriggered = true; + if (this.reloadWhenRefresh && isUserPullDown) { + this.useChatRecordMode ? this._onLoadingMore("click") : this._reload(false, false, isUserPullDown); + } + }, + // 自定义下拉刷新被复位 + _onRestore() { + this.refresherTriggered = "restore"; + this.$emit("onRestore"); + this.$emit("Restore"); + }, + // 进一步处理touch开始结果 + _handleRefresherTouchstart(touch) { + if (!this.loading && this.isTouchEnded) { + this.isTouchmoving = false; + } + this.loadingType = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher; + this.isTouchmovingTimeout && clearTimeout(this.isTouchmovingTimeout); + this.isTouchEnded = false; + this.refresherTransition = ""; + this.refresherTouchstartY = touch.touchY; + this.$emit("refresherTouchstart", this.refresherTouchstartY); + this.lastRefresherTouchmove = touch; + this._cleanRefresherCompleteTimeout(); + this._cleanRefresherEndTimeout(); + }, + // 非app-vue或微信小程序或QQ小程序或h5平台,使用js控制下拉刷新 + // 进一步处理touch中结果 + _handleRefresherTouchmove(moveDis, touch) { + this.refresherReachMaxAngle = true; + this.isTouchmovingTimeout && clearTimeout(this.isTouchmovingTimeout); + this.isTouchmoving = true; + this.isTouchEnded = false; + if (moveDis >= this.finalRefresherThreshold) { + this.refresherStatus = this.refresherF2Enabled && moveDis >= this.finalRefresherF2Threshold ? uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.GoF2 : uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.ReleaseToRefresh; + } else { + this.refresherStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Default; + } + this.moveDis = moveDis; + }, + // 进一步处理touch结束结果 + _handleRefresherTouchend(moveDis) { + this.isTouchmovingTimeout && clearTimeout(this.isTouchmovingTimeout); + this.refresherReachMaxAngle = true; + this.isTouchEnded = true; + const refresherThreshold = this.finalRefresherThreshold; + if (moveDis >= refresherThreshold && (this.refresherStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.ReleaseToRefresh || this.refresherStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.GoF2)) { + if (this.refresherStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.GoF2) { + this._handleGoF2(); + this._refresherEnd(); + } else { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this._emitTouchmove({ pullingDistance: refresherThreshold, dy: this.moveDis - refresherThreshold }); + }, 0.1); + this.moveDis = refresherThreshold; + this.refresherStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Loading; + this._doRefresherLoad(); + } + } else { + this._refresherEnd(); + this.isTouchmovingTimeout = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this.isTouchmoving = false; + }, this.refresherDefaultDuration); + } + this.scrollEnable = true; + this.$emit("refresherTouchend", moveDis); + }, + // 处理列表触摸开始事件 + _handleListTouchstart() { + if (this.useChatRecordMode && this.autoHideKeyboardWhenChat) { + common_vendor.index.hideKeyboard(); + this.$emit("hidedKeyboard"); + } + }, + // 处理scroll-view bounce是否生效 + _handleScrollViewBounce({ bounce }) { + if (!this.usePageScroll && !this.scrollToTopBounceEnabled) { + if (this.wxsScrollTop <= 5) { + this.refresherTransition = ""; + this.scrollEnable = bounce; + } else if (bounce) { + this.scrollEnable = bounce; + } + } + }, + // wxs正在下拉状态改变处理 + _handleWxsPullingDownStatusChange(onPullingDown) { + this.wxsOnPullingDown = onPullingDown; + if (onPullingDown && !this.useChatRecordMode) { + this.renderPropScrollTop = 0; + } + }, + // wxs正在下拉处理 + _handleWxsPullingDown({ moveDis, diffDis }) { + this._emitTouchmove({ pullingDistance: moveDis, dy: diffDis }); + }, + // wxs触摸方向改变 + _handleTouchDirectionChange({ direction }) { + this.$emit("touchDirectionChange", direction); + }, + // wxs通知更新其props + _handlePropUpdate() { + this.wxsPropType = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime().toString(); + }, + // 下拉刷新结束 + _refresherEnd(shouldEndLoadingDelay = true, fromAddData = false, isUserPullDown = false, setLoading = true) { + if (this.loadingType === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher) { + const refresherCompleteDelay = fromAddData && (isUserPullDown || this.showRefresherWhenReload) ? this.refresherCompleteDelay : 0; + const refresherStatus = refresherCompleteDelay > 0 ? uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Complete : uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Default; + if (this.finalShowRefresherWhenReload) { + const stackCount = this.refresherRevealStackCount; + this.refresherRevealStackCount--; + if (stackCount > 1) + return; + } + this._cleanRefresherEndTimeout(); + this.refresherEndTimeout = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this.refresherStatus = refresherStatus; + if (refresherStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Complete) { + this.isRefresherInComplete = false; + } + }, this.refresherStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Default && refresherStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Default ? this.refresherCompleteDuration : 0); + if (refresherCompleteDelay > 0) { + this.isRefresherInComplete = true; + } + this._cleanRefresherCompleteTimeout(); + this.refresherCompleteTimeout = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + let animateDuration = 1; + const animateType = this.refresherEndBounceEnabled && fromAddData ? "cubic-bezier(0.19,1.64,0.42,0.72)" : "linear"; + if (fromAddData) { + animateDuration = this.refresherEndBounceEnabled ? this.refresherCompleteDuration / 1e3 : this.refresherCompleteDuration / 3e3; + } + this.refresherTransition = `transform ${fromAddData ? animateDuration : this.refresherDefaultDuration / 1e3}s ${animateType}`; + this.wxsPropType = this.refresherTransition + "end" + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime(); + this.moveDis = 0; + if (refresherStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Complete) { + if (this.refresherCompleteSubTimeout) { + clearTimeout(this.refresherCompleteSubTimeout); + this.refresherCompleteSubTimeout = null; + } + this.refresherCompleteSubTimeout = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this.$nextTick(() => { + this.refresherStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Default; + this.isRefresherInComplete = false; + }); + }, animateDuration * 800); + } + this._emitTouchmove({ pullingDistance: 0, dy: this.moveDis }); + }, refresherCompleteDelay); + } + if (setLoading) { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => this.loading = false, shouldEndLoadingDelay ? 10 : 0); + isUserPullDown && this._onRestore(); + } + }, + // 处理进入二楼 + _handleGoF2() { + if (this.showF2 || !this.refresherF2Enabled) + return; + this.$emit("refresherF2Change", "go"); + if (!this.showRefresherF2) + return; + this.f2Transform = `translateY(${-this.superContentHeight}px)`; + this.showF2 = true; + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this.f2Transform = "translateY(0px)"; + }, 100, "f2ShowDelay"); + }, + // 处理退出二楼 + _handleCloseF2() { + if (!this.showF2 || !this.refresherF2Enabled) + return; + this.$emit("refresherF2Change", "close"); + if (!this.showRefresherF2) + return; + this.f2Transform = `translateY(${-this.superContentHeight}px)`; + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this.showF2 = false; + this.nF2Opacity = 0; + }, this.refresherF2Duration, "f2CloseDelay"); + }, + // 模拟用户手动触发下拉刷新 + _doRefresherRefreshAnimate() { + this._cleanRefresherCompleteTimeout(); + const doRefreshAnimateAfter = !this.doRefreshAnimateAfter && this.finalShowRefresherWhenReload && this.customRefresherHeight === -1 && this.refresherThreshold === uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(80, this.unit); + if (doRefreshAnimateAfter) { + this.doRefreshAnimateAfter = true; + return; + } + this.refresherRevealStackCount++; + this.wxsPropType = "begin" + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime(); + this.moveDis = this.finalRefresherThreshold; + this.refresherStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Loading; + this.isTouchmoving = true; + this.isTouchmovingTimeout && clearTimeout(this.isTouchmovingTimeout); + this._doRefresherLoad(false); + }, + // 触发下拉刷新 + _doRefresherLoad(isUserPullDown = true) { + this._onRefresh(false, isUserPullDown); + this.loading = true; + }, + // 更新自定义下拉刷新view高度 + _updateCustomRefresherHeight() { + this._getNodeClientRect(".zp-custom-refresher-slot-view").then((res) => { + this.customRefresherHeight = res ? res[0].height : 0; + this.showCustomRefresher = this.customRefresherHeight > 0; + if (this.doRefreshAnimateAfter) { + this.doRefreshAnimateAfter = false; + this._doRefresherRefreshAnimate(); + } + }); + }, + // emit pullingDown事件 + _emitTouchmove(e) { + e.viewHeight = this.finalRefresherThreshold; + e.rate = e.viewHeight > 0 ? e.pullingDistance / e.viewHeight : 0; + this.hasTouchmove && this.oldPullingDistance !== e.pullingDistance && this.$emit("refresherTouchmove", e); + this.oldPullingDistance = e.pullingDistance; + }, + // 清除refresherCompleteTimeout + _cleanRefresherCompleteTimeout() { + this.refresherCompleteTimeout = this._cleanTimeout(this.refresherCompleteTimeout); + }, + // 清除refresherEndTimeout + _cleanRefresherEndTimeout() { + this.refresherEndTimeout = this._cleanTimeout(this.refresherEndTimeout); + } + } +}; +exports.refresherModule = refresherModule; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/refresher.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/scroller.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/scroller.js new file mode 100644 index 0000000..7ad953a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/scroller.js @@ -0,0 +1,428 @@ +"use strict"; +const common_vendor = require("../../../../../../common/vendor.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../z-paging-enum.js"); +const scrollerModule = { + props: { + // 使用页面滚动,默认为否,当设置为是时则使用页面的滚动而非此组件内部的scroll-view的滚动,使用页面滚动时z-paging无需设置确定的高度且对于长列表展示性能更高,但配置会略微繁琐 + usePageScroll: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("usePageScroll", false) + }, + // 是否可以滚动,使用内置scroll-view和nvue时有效,默认为是 + scrollable: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("scrollable", true) + }, + // 控制是否出现滚动条,默认为是 + showScrollbar: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showScrollbar", true) + }, + // 是否允许横向滚动,默认为否 + scrollX: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("scrollX", false) + }, + // iOS设备上滚动到顶部时是否允许回弹效果,默认为否。关闭回弹效果后可使滚动到顶部与下拉刷新更连贯,但是有吸顶view时滚动到顶部时可能出现抖动。 + scrollToTopBounceEnabled: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("scrollToTopBounceEnabled", false) + }, + // iOS设备上滚动到底部时是否允许回弹效果,默认为是。 + scrollToBottomBounceEnabled: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("scrollToBottomBounceEnabled", true) + }, + // 在设置滚动条位置时使用动画过渡,默认为否 + scrollWithAnimation: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("scrollWithAnimation", false) + }, + // 值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素 + scrollIntoView: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("scrollIntoView", "") + } + }, + data() { + return { + scrollTop: 0, + oldScrollTop: 0, + scrollLeft: 0, + oldScrollLeft: 0, + scrollViewStyle: {}, + scrollViewContainerStyle: {}, + scrollViewInStyle: {}, + pageScrollTop: -1, + scrollEnable: true, + privateScrollWithAnimation: -1, + cacheScrollNodeHeight: -1, + superContentHeight: 0 + }; + }, + watch: { + oldScrollTop(newVal) { + !this.usePageScroll && this._scrollTopChange(newVal, false); + }, + pageScrollTop(newVal) { + this.usePageScroll && this._scrollTopChange(newVal, true); + }, + usePageScroll: { + handler(newVal) { + this.loaded && this.autoHeight && this._setAutoHeight(!newVal); + }, + immediate: true + }, + finalScrollTop(newVal) { + this.renderPropScrollTop = newVal < 6 ? 0 : 10; + } + }, + computed: { + finalScrollWithAnimation() { + if (this.privateScrollWithAnimation !== -1) { + return this.privateScrollWithAnimation === 1; + } + return this.scrollWithAnimation; + }, + finalScrollViewStyle() { + if (this.superContentZIndex != 1) { + this.scrollViewStyle["z-index"] = this.superContentZIndex; + this.scrollViewStyle["position"] = "relative"; + } + return this.scrollViewStyle; + }, + finalScrollTop() { + return this.usePageScroll ? this.pageScrollTop : this.oldScrollTop; + }, + // 当前是否是旧版webview + finalIsOldWebView() { + return this.isOldWebView && !this.usePageScroll; + }, + // 当前scroll-view/list-view是否允许滚动 + finalScrollable() { + return this.scrollable && !this.usePageScroll && this.scrollEnable && (this.refresherCompleteScrollable ? true : this.refresherStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Complete) && (this.refresherRefreshingScrollable ? true : this.refresherStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Loading); + } + }, + methods: { + // 滚动到顶部,animate为是否展示滚动动画,默认为是 + scrollToTop(animate, checkReverse = true) { + if (this.useChatRecordMode && checkReverse && !this.isChatRecordModeAndNotInversion) { + this.scrollToBottom(animate, false); + return; + } + this.$nextTick(() => { + this._scrollToTop(animate, false); + }); + }, + // 滚动到底部,animate为是否展示滚动动画,默认为是 + scrollToBottom(animate, checkReverse = true) { + if (this.useChatRecordMode && checkReverse && !this.isChatRecordModeAndNotInversion) { + this.scrollToTop(animate, false); + return; + } + this.$nextTick(() => { + this._scrollToBottom(animate); + }); + }, + // 滚动到指定view(vue中有效)。sel为需要滚动的view的id值,不包含"#";offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否 + scrollIntoViewById(sel, offset, animate) { + this._scrollIntoView(sel, offset, animate); + }, + // 滚动到指定view(vue中有效)。nodeTop为需要滚动的view的top值(通过uni.createSelectorQuery()获取);offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否 + scrollIntoViewByNodeTop(nodeTop, offset, animate) { + this.scrollTop = this.oldScrollTop; + this.$nextTick(() => { + this._scrollIntoViewByNodeTop(nodeTop, offset, animate); + }); + }, + // y轴滚动到指定位置(vue中有效)。y为与顶部的距离,单位为px;offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否 + scrollToY(y, offset, animate) { + this.scrollTop = this.oldScrollTop; + this.$nextTick(() => { + this._scrollToY(y, offset, animate); + }); + }, + // x轴滚动到指定位置(非页面滚动且在vue中有效)。x为与左侧的距离,单位为px;offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否 + scrollToX(x, offset, animate) { + this.scrollLeft = this.oldScrollLeft; + this.$nextTick(() => { + this._scrollToX(x, offset, animate); + }); + }, + // 滚动到指定view(nvue中和虚拟列表中有效)。index为需要滚动的view的index(第几个,从0开始);offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否 + scrollIntoViewByIndex(index, offset, animate) { + if (index >= this.realTotalData.length) { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.consoleErr("当前滚动的index超出已渲染列表长度,请先通过refreshToPage加载到对应index页并等待渲染成功后再调用此方法!"); + return; + } + this.$nextTick(() => { + if (this.finalUseVirtualList) { + const isCellFixed = this.cellHeightMode === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Fixed; + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + if (this.finalUseVirtualList) { + const scrollTop = isCellFixed ? this.virtualCellHeight * index : this.virtualHeightCacheList[index].lastTotalHeight; + this.scrollToY(scrollTop, offset, animate); + } + }, isCellFixed ? 0 : 100); + } + }); + }, + // 滚动到指定view(nvue中有效)。view为需要滚动的view(通过`this.$refs.xxx`获取),不包含"#";offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否 + scrollIntoViewByView(view, offset, animate) { + this._scrollIntoView(view, offset, animate); + }, + // 当使用页面滚动并且自定义下拉刷新时,请在页面的onPageScroll中调用此方法,告知z-paging当前的pageScrollTop,否则会导致在任意位置都可以下拉刷新 + updatePageScrollTop(value) { + this.pageScrollTop = value; + }, + // 当使用页面滚动并且设置了slot="top"时,默认初次加载会自动获取其高度,并使内部容器下移,当slot="top"的view高度动态改变时,在其高度需要更新时调用此方法 + updatePageScrollTopHeight() { + this._updatePageScrollTopOrBottomHeight("top"); + }, + // 当使用页面滚动并且设置了slot="bottom"时,默认初次加载会自动获取其高度,并使内部容器下移,当slot="bottom"的view高度动态改变时,在其高度需要更新时调用此方法 + updatePageScrollBottomHeight() { + this._updatePageScrollTopOrBottomHeight("bottom"); + }, + // 更新slot="left"和slot="right"宽度,当slot="left"或slot="right"宽度动态改变时调用 + updateLeftAndRightWidth() { + if (!this.finalIsOldWebView) + return; + this.$nextTick(() => this._updateLeftAndRightWidth(this.scrollViewContainerStyle, "zp-page")); + }, + // 更新z-paging内置scroll-view的scrollTop + updateScrollViewScrollTop(scrollTop, animate = true) { + this._updatePrivateScrollWithAnimation(animate); + this.scrollTop = this.oldScrollTop; + this.$nextTick(() => { + this.scrollTop = scrollTop; + this.oldScrollTop = this.scrollTop; + }); + }, + // 当滚动到顶部时 + _onScrollToUpper() { + this._emitScrollEvent("scrolltoupper"); + this.$emit("scrollTopChange", 0); + this.$nextTick(() => { + this.oldScrollTop = 0; + }); + }, + // 当滚动到底部时 + _onScrollToLower(e) { + (!e.detail || !e.detail.direction || e.detail.direction === "bottom") && this.toBottomLoadingMoreEnabled && this._onLoadingMore(this.useChatRecordMode ? "click" : "toBottom"); + }, + // 滚动到顶部 + _scrollToTop(animate = true, isPrivate = true) { + if (this.usePageScroll) { + this.$nextTick(() => { + common_vendor.index.pageScrollTo({ + scrollTop: 0, + duration: animate ? 100 : 0 + }); + }); + return; + } + this._updatePrivateScrollWithAnimation(animate); + this.scrollTop = this.oldScrollTop; + this.$nextTick(() => { + this.scrollTop = 0; + this.oldScrollTop = this.scrollTop; + }); + }, + // 滚动到底部 + async _scrollToBottom(animate = true) { + if (this.usePageScroll) { + this.$nextTick(() => { + common_vendor.index.pageScrollTo({ + scrollTop: Number.MAX_VALUE, + duration: animate ? 100 : 0 + }); + }); + return; + } + try { + this._updatePrivateScrollWithAnimation(animate); + const pagingContainerNode = await this._getNodeClientRect(".zp-paging-container"); + const scrollViewNode = await this._getNodeClientRect(".zp-scroll-view"); + const pagingContainerH = pagingContainerNode ? pagingContainerNode[0].height : 0; + const scrollViewH = scrollViewNode ? scrollViewNode[0].height : 0; + if (pagingContainerH > scrollViewH) { + this.scrollTop = this.oldScrollTop; + this.$nextTick(() => { + this.scrollTop = pagingContainerH - scrollViewH + this.virtualPlaceholderTopHeight; + this.oldScrollTop = this.scrollTop; + }); + } + } catch (e) { + } + }, + // 滚动到指定view + _scrollIntoView(sel, offset = 0, animate = false, finishCallback) { + try { + this.scrollTop = this.oldScrollTop; + this.$nextTick(() => { + this._getNodeClientRect("#" + sel.replace("#", ""), this.$parent).then((node) => { + if (node) { + let nodeTop = node[0].top; + this._scrollIntoViewByNodeTop(nodeTop, offset, animate); + finishCallback && finishCallback(); + } + }); + }); + } catch (e) { + } + }, + // 通过nodeTop滚动到指定view + _scrollIntoViewByNodeTop(nodeTop, offset = 0, animate = false) { + if (this.isChatRecordModeAndInversion) { + this._getNodeClientRect(".zp-scroll-view").then((sNode) => { + if (sNode) { + this._scrollToY(sNode[0].height - nodeTop, offset, animate, true); + } + }); + } else { + this._scrollToY(nodeTop, offset, animate, true); + } + }, + // y轴滚动到指定位置 + _scrollToY(y, offset = 0, animate = false, addScrollTop = false) { + this._updatePrivateScrollWithAnimation(animate); + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + if (this.usePageScroll) { + if (addScrollTop && this.pageScrollTop !== -1) { + y += this.pageScrollTop; + } + const scrollTop = y - offset; + common_vendor.index.pageScrollTo({ + scrollTop, + duration: animate ? 100 : 0 + }); + } else { + if (addScrollTop) { + y += this.oldScrollTop; + } + this.scrollTop = y - offset; + } + }, 10); + }, + // x轴滚动到指定位置 + _scrollToX(x, offset = 0, animate = false) { + this._updatePrivateScrollWithAnimation(animate); + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + if (!this.usePageScroll) { + this.scrollLeft = x - offset; + } else { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.consoleErr("使用页面滚动时不支持scrollToX"); + } + }, 10); + }, + // scroll-view滚动中 + _scroll(e) { + this.$emit("scroll", e); + const { scrollTop, scrollLeft } = e.detail; + this.finalUseVirtualList && this._updateVirtualScroll(scrollTop, this.oldScrollTop - scrollTop); + this.oldScrollTop = scrollTop; + this.oldScrollLeft = scrollLeft; + const scrollDiff = e.detail.scrollHeight - this.oldScrollTop; + !this.isIos && this._checkScrolledToBottom(scrollDiff); + }, + // emit scrolltolower/scrolltoupper事件 + _emitScrollEvent(type) { + const reversedType = type === "scrolltolower" ? "scrolltoupper" : "scrolltolower"; + const eventType = this.useChatRecordMode && !this.isChatRecordModeAndNotInversion ? reversedType : type; + this.$emit(eventType); + }, + // 更新内置的scroll-view是否启用滚动动画 + _updatePrivateScrollWithAnimation(animate) { + this.privateScrollWithAnimation = animate ? 1 : 0; + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => this.$nextTick(() => { + this.privateScrollWithAnimation = -1; + }), 100, "updateScrollWithAnimationDelay"); + }, + // 检测scrollView是否要铺满屏幕 + _doCheckScrollViewShouldFullHeight(totalData) { + if (this.autoFullHeight && this.usePageScroll && this.isTotalChangeFromAddData) { + this.$nextTick(() => { + this._checkScrollViewShouldFullHeight((scrollViewNode, pagingContainerNode) => { + this._preCheckShowNoMoreInside(totalData, scrollViewNode, pagingContainerNode); + }); + }); + } else { + this._preCheckShowNoMoreInside(totalData); + } + }, + // 检测z-paging是否要全屏覆盖(当使用页面滚动并且不满全屏时,默认z-paging需要铺满全屏,避免数据过少时内部的empty-view无法正确展示) + async _checkScrollViewShouldFullHeight(callback) { + try { + const scrollViewNode = await this._getNodeClientRect(".zp-scroll-view"); + const pagingContainerNode = await this._getNodeClientRect(".zp-paging-container-content"); + if (!scrollViewNode || !pagingContainerNode) + return; + const scrollViewHeight = pagingContainerNode[0].height; + const scrollViewTop = scrollViewNode[0].top; + if (this.isAddedData && scrollViewHeight + scrollViewTop <= this.windowHeight) { + this._setAutoHeight(true, scrollViewNode); + callback(scrollViewNode, pagingContainerNode); + } else { + this._setAutoHeight(false); + callback(null, null); + } + } catch (e) { + callback(null, null); + } + }, + // 更新缓存中z-paging整个内容容器高度 + async _updateCachedSuperContentHeight() { + const superContentNode = await this._getNodeClientRect(".z-paging-content"); + if (superContentNode) { + this.superContentHeight = superContentNode[0].height; + } + }, + // scrollTop改变时触发 + _scrollTopChange(newVal, isPageScrollTop) { + this.$emit("scrollTopChange", newVal); + this.$emit("update:scrollTop", newVal); + this._checkShouldShowBackToTop(newVal); + const scrollTop = newVal > 5 ? 6 : 0; + if (isPageScrollTop && this.wxsPageScrollTop !== scrollTop) { + this.wxsPageScrollTop = scrollTop; + } else if (!isPageScrollTop && this.wxsScrollTop !== scrollTop) { + this.wxsScrollTop = scrollTop; + if (scrollTop > 6) { + this.scrollEnable = true; + } + } + }, + // 更新使用页面滚动时slot="top"或"bottom"插入view的高度 + _updatePageScrollTopOrBottomHeight(type) { + if (!this.usePageScroll) + return; + this._doCheckScrollViewShouldFullHeight(this.realTotalData); + const node = `.zp-page-${type}`; + const marginText = `margin${type.slice(0, 1).toUpperCase() + type.slice(1)}`; + let safeAreaInsetBottomAdd = this.safeAreaInsetBottom; + this.$nextTick(() => { + let delayTime = 0; + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this._getNodeClientRect(node).then((res) => { + if (res) { + let pageScrollNodeHeight = res[0].height; + if (type === "bottom") { + if (safeAreaInsetBottomAdd) { + pageScrollNodeHeight += this.safeAreaBottom; + } + } else { + this.cacheTopHeight = pageScrollNodeHeight; + } + this.$set(this.scrollViewStyle, marginText, `${pageScrollNodeHeight}px`); + } else if (safeAreaInsetBottomAdd) { + this.$set(this.scrollViewStyle, marginText, `${this.safeAreaBottom}px`); + } + }); + }, delayTime); + }); + } + } +}; +exports.scrollerModule = scrollerModule; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/scroller.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/virtual-list.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/virtual-list.js new file mode 100644 index 0000000..bbcc557 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/virtual-list.js @@ -0,0 +1,499 @@ +"use strict"; +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingConstant = require("../z-paging-constant.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../z-paging-enum.js"); +const virtualListModule = { + props: { + // 是否使用虚拟列表,默认为否 + useVirtualList: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useVirtualList", false) + }, + // 在使用虚拟列表时,是否使用兼容模式,默认为否 + useCompatibilityMode: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useCompatibilityMode", false) + }, + // 使用兼容模式时传递的附加数据 + extraData: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("extraData", {}) + }, + // 是否在z-paging内部循环渲染列表(内置列表),默认为否。若use-virtual-list为true,则此项恒为true + useInnerList: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useInnerList", false) + }, + // 强制关闭inner-list,默认为false,如果为true将强制关闭innerList,适用于开启了虚拟列表后需要强制关闭inner-list的情况 + forceCloseInnerList: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("forceCloseInnerList", false) + }, + // 内置列表cell的key名称,仅nvue有效,在nvue中开启use-inner-list时必须填此项 + cellKeyName: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("cellKeyName", "") + }, + // innerList样式 + innerListStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("innerListStyle", {}) + }, + // innerCell样式 + innerCellStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("innerCellStyle", {}) + }, + // 预加载的列表可视范围(列表高度)页数,默认为12,即预加载当前页及上下各12页的cell。此数值越大,则虚拟列表中加载的dom越多,内存消耗越大(会维持在一个稳定值),但增加预加载页面数量可缓解快速滚动短暂白屏问题 + preloadPage: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("preloadPage", 12), + validator: (value) => { + if (value <= 0) + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.consoleErr("preload-page必须大于0!"); + return value > 0; + } + }, + // 虚拟列表cell高度模式,默认为fixed,也就是每个cell高度完全相同,将以第一个cell高度为准进行计算。可选值【dynamic】,即代表高度是动态非固定的,【dynamic】性能低于【fixed】。 + cellHeightMode: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("cellHeightMode", uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Fixed) + }, + // 固定的cell高度,cellHeightMode=fixed才有效,若设置了值,则不计算第一个cell高度而使用设置的cell高度 + fixedCellHeight: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("fixedCellHeight", 0) + }, + // 虚拟列表列数,默认为1。常用于每行有多列的情况,例如每行有2列数据,需要将此值设置为2 + virtualListCol: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("virtualListCol", 1) + }, + // 虚拟列表scroll取样帧率,默认为80,过低容易出现白屏问题,过高容易出现卡顿问题 + virtualScrollFps: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("virtualScrollFps", 80) + }, + // 虚拟列表cell id的前缀,适用于一个页面有多个虚拟列表的情况,用以区分不同虚拟列表cell的id,注意:请勿传数字或以数字开头的字符串。如设置为list1,则cell的id应为:list1-zp-id-${item.zp_index} + virtualCellIdPrefix: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("virtualCellIdPrefix", "") + }, + // 虚拟列表是否使用swiper-item包裹,默认为否,此属性为了解决vue3+(微信小程序或QQ小程序)中,使用非内置列表写法时,若z-paging在swiper-item内存在无法获取slot插入的cell高度进而导致虚拟列表失败的问题 + // 仅vue3+(微信小程序或QQ小程序)+非内置列表写法虚拟列表有效,其他情况此属性设置任何值都无效,所以如果您在swiper-item内使用z-paging的非内置虚拟列表写法,将此属性设置为true即可 + virtualInSwiperSlot: { + type: Boolean, + default: false + } + }, + data() { + return { + virtualListKey: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getInstanceId(), + virtualPageHeight: 0, + virtualCellHeight: 0, + virtualScrollTimeStamp: 0, + virtualList: [], + virtualPlaceholderTopHeight: 0, + virtualPlaceholderBottomHeight: 0, + virtualTopRangeIndex: 0, + virtualBottomRangeIndex: 0, + lastVirtualTopRangeIndex: 0, + lastVirtualBottomRangeIndex: 0, + virtualItemInsertedCount: 0, + virtualHeightCacheList: [], + getCellHeightRetryCount: { + fixed: 0, + dynamic: 0 + }, + pagingOrgTop: -1, + updateVirtualListFromDataChange: false + }; + }, + watch: { + // 监听总数据的改变,刷新虚拟列表布局 + realTotalData() { + this.updateVirtualListRender(); + }, + // 监听虚拟列表渲染数组的改变并emit + virtualList(newVal) { + this.$emit("update:virtualList", newVal); + this.$emit("virtualListChange", newVal); + }, + // 监听虚拟列表顶部占位高度改变并emit + virtualPlaceholderTopHeight(newVal) { + this.$emit("virtualTopHeightChange", newVal); + } + }, + computed: { + virtualCellIndexKey() { + return uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.listCellIndexKey; + }, + finalUseVirtualList() { + if (this.useVirtualList && this.usePageScroll) { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.consoleErr("使用页面滚动时,开启虚拟列表无效!"); + } + return this.useVirtualList && !this.usePageScroll; + }, + finalUseInnerList() { + return this.useInnerList || this.finalUseVirtualList && !this.forceCloseInnerList; + }, + finalCellKeyName() { + return this.cellKeyName; + }, + finalVirtualPageHeight() { + return this.virtualPageHeight > 0 ? this.virtualPageHeight : this.windowHeight; + }, + finalFixedCellHeight() { + return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(this.fixedCellHeight); + }, + fianlVirtualCellIdPrefix() { + const prefix = this.virtualCellIdPrefix ? this.virtualCellIdPrefix + "-" : ""; + return prefix + "zp-id"; + }, + finalPlaceholderTopHeightStyle() { + return {}; + }, + virtualRangePageHeight() { + return this.finalVirtualPageHeight * this.preloadPage; + }, + virtualScrollDisTimeStamp() { + return 1e3 / this.virtualScrollFps; + } + }, + methods: { + // 在使用动态高度虚拟列表时,若在列表数组中需要插入某个item,需要调用此方法;item:需要插入的item,index:插入的cell位置,若index为2,则插入的item在原list的index=1之后,index从0开始 + doInsertVirtualListItem(item, index) { + if (this.cellHeightMode !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Dynamic) + return; + this.realTotalData.splice(index, 0, item); + this.realTotalData = [...this.realTotalData]; + this.virtualItemInsertedCount++; + if (!item || Object.prototype.toString.call(item) !== "[object Object]") { + item = { item }; + } + const cellIndexKey = this.virtualCellIndexKey; + item[cellIndexKey] = `custom-${this.virtualItemInsertedCount}`; + item[uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.listCellIndexUniqueKey] = `${this.virtualListKey}-${item[cellIndexKey]}`; + this.$nextTick(async () => { + let retryCount = 0; + while (retryCount <= 10) { + await uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.wait(uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime); + const cellNode = await this._getVirtualCellNodeByIndex(item[cellIndexKey]); + if (!cellNode) { + retryCount++; + continue; + } + const currentHeight = cellNode ? cellNode[0].height : 0; + const lastHeightCache = this.virtualHeightCacheList[index - 1]; + const lastTotalHeight = lastHeightCache ? lastHeightCache.totalHeight : 0; + this.virtualHeightCacheList.splice(index, 0, { + height: currentHeight, + lastTotalHeight, + totalHeight: lastTotalHeight + currentHeight + }); + for (let i = index + 1; i < this.virtualHeightCacheList.length; i++) { + const thisNode = this.virtualHeightCacheList[i]; + thisNode.lastTotalHeight += currentHeight; + thisNode.totalHeight += currentHeight; + } + this._updateVirtualScroll(this.oldScrollTop); + break; + } + }); + }, + // 在使用动态高度虚拟列表时,手动更新指定cell的缓存高度(当cell高度在初始化之后再次改变后调用);index:需要更新的cell在列表中的位置,从0开始 + didUpdateVirtualListCell(index) { + if (this.cellHeightMode !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Dynamic) + return; + const currentNode = this.virtualHeightCacheList[index]; + this.$nextTick(() => { + this._getVirtualCellNodeByIndex(index).then((cellNode) => { + const cellNodeHeight = cellNode ? cellNode[0].height : 0; + const heightDis = cellNodeHeight - currentNode.height; + currentNode.height = cellNodeHeight; + currentNode.totalHeight = currentNode.lastTotalHeight + cellNodeHeight; + for (let i = index + 1; i < this.virtualHeightCacheList.length; i++) { + const thisNode = this.virtualHeightCacheList[i]; + thisNode.totalHeight += heightDis; + thisNode.lastTotalHeight += heightDis; + } + }); + }); + }, + // 在使用动态高度虚拟列表时,若删除了列表数组中的某个item,需要调用此方法以更新高度缓存数组;index:删除的cell在列表中的位置,从0开始 + didDeleteVirtualListCell(index) { + if (this.cellHeightMode !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Dynamic) + return; + const currentNode = this.virtualHeightCacheList[index]; + for (let i = index + 1; i < this.virtualHeightCacheList.length; i++) { + const thisNode = this.virtualHeightCacheList[i]; + thisNode.totalHeight -= currentNode.height; + thisNode.lastTotalHeight -= currentNode.height; + } + this.virtualHeightCacheList.splice(index, 1); + }, + // 手动触发虚拟列表渲染更新,可用于解决例如修改了虚拟列表数组中元素,但展示未更新的情况 + updateVirtualListRender() { + if (this.finalUseVirtualList) { + this.updateVirtualListFromDataChange = true; + this.$nextTick(() => { + this.getCellHeightRetryCount.fixed = 0; + if (this.realTotalData.length) { + this.cellHeightMode === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Fixed && this.isFirstPage && this._updateFixedCellHeight(); + } else { + this._resetDynamicListState(!this.isUserPullDown); + } + this._updateVirtualScroll(this.oldScrollTop); + }); + } + }, + // 初始化虚拟列表 + _virtualListInit() { + this.$nextTick(() => { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this._getNodeClientRect(".zp-scroll-view").then((node) => { + if (node) { + this.pagingOrgTop = node[0].top; + this.virtualPageHeight = node[0].height; + } + }); + }); + }); + }, + // cellHeightMode为fixed时获取第一个cell高度 + _updateFixedCellHeight() { + if (!this.finalFixedCellHeight) { + this.$nextTick(() => { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this._getVirtualCellNodeByIndex(0).then((cellNode) => { + if (!cellNode) { + if (this.getCellHeightRetryCount.fixed > 10) + return; + this.getCellHeightRetryCount.fixed++; + this._updateFixedCellHeight(); + } else { + this.virtualCellHeight = cellNode[0].height; + this._updateVirtualScroll(this.oldScrollTop); + } + }); + }, uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime, "updateFixedCellHeightDelay"); + }); + } else { + this.virtualCellHeight = this.finalFixedCellHeight; + } + }, + // cellHeightMode为dynamic时获取每个cell高度 + _updateDynamicCellHeight(list, dataFrom = "bottom") { + const dataFromTop = dataFrom === "top"; + const heightCacheList = this.virtualHeightCacheList; + const currentCacheList = dataFromTop ? [] : heightCacheList; + let listTotalHeight = 0; + this.$nextTick(() => { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(async () => { + for (let i = 0; i < list.length; i++) { + const cellNode = await this._getVirtualCellNodeByIndex(list[i][this.virtualCellIndexKey]); + const currentHeight = cellNode ? cellNode[0].height : 0; + if (!cellNode) { + if (this.getCellHeightRetryCount.dynamic <= 10) { + heightCacheList.splice(heightCacheList.length - i, i); + this.getCellHeightRetryCount.dynamic++; + this._updateDynamicCellHeight(list, dataFrom); + } + return; + } + const lastHeightCache = currentCacheList.length ? currentCacheList.slice(-1)[0] : null; + const lastTotalHeight = lastHeightCache ? lastHeightCache.totalHeight : 0; + currentCacheList.push({ + height: currentHeight, + lastTotalHeight, + totalHeight: lastTotalHeight + currentHeight + }); + if (dataFromTop) { + listTotalHeight += currentHeight; + } + } + if (dataFromTop && list.length) { + for (let i = 0; i < heightCacheList.length; i++) { + const heightCacheItem = heightCacheList[i]; + heightCacheItem.lastTotalHeight += listTotalHeight; + heightCacheItem.totalHeight += listTotalHeight; + } + this.virtualHeightCacheList = currentCacheList.concat(heightCacheList); + } + this._updateVirtualScroll(this.oldScrollTop); + }, uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime, "updateDynamicCellHeightDelay"); + }); + }, + // 设置cellItem的index + _setCellIndex(list, dataFrom = "bottom") { + let currentItemIndex = 0; + const cellIndexKey = this.virtualCellIndexKey; + dataFrom === "bottom" && [uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.Refresh, uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.Reload].indexOf(this.queryFrom) >= 0 && this._resetDynamicListState(); + if (this.totalData.length && this.queryFrom !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.Refresh) { + if (dataFrom === "bottom") { + currentItemIndex = this.realTotalData.length; + const lastItem = this.realTotalData.length ? this.realTotalData.slice(-1)[0] : null; + if (lastItem && lastItem[cellIndexKey] !== void 0) { + currentItemIndex = lastItem[cellIndexKey] + 1; + } + } else if (dataFrom === "top") { + const firstItem = this.realTotalData.length ? this.realTotalData[0] : null; + if (firstItem && firstItem[cellIndexKey] !== void 0) { + currentItemIndex = firstItem[cellIndexKey] - list.length; + } + } + } else { + this._resetDynamicListState(); + } + for (let i = 0; i < list.length; i++) { + let item = list[i]; + if (!item || Object.prototype.toString.call(item) !== "[object Object]") { + item = { item }; + } + if (item[uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.listCellIndexUniqueKey]) { + item = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.deepCopy(item); + } + item[cellIndexKey] = currentItemIndex + i; + item[uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.listCellIndexUniqueKey] = `${this.virtualListKey}-${item[cellIndexKey]}`; + list[i] = item; + } + this.getCellHeightRetryCount.dynamic = 0; + this.cellHeightMode === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Dynamic && this._updateDynamicCellHeight(list, dataFrom); + }, + // 更新scroll滚动(虚拟列表滚动时触发) + _updateVirtualScroll(scrollTop, scrollDiff = 0) { + const currentTimeStamp = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime(); + scrollTop === 0 && this._resetTopRange(); + if (scrollTop !== 0 && this.virtualScrollTimeStamp && currentTimeStamp - this.virtualScrollTimeStamp <= this.virtualScrollDisTimeStamp) { + return; + } + this.virtualScrollTimeStamp = currentTimeStamp; + let scrollIndex = 0; + const cellHeightMode = this.cellHeightMode; + if (cellHeightMode === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Fixed) { + scrollIndex = parseInt(scrollTop / this.virtualCellHeight) || 0; + this._updateFixedTopRangeIndex(scrollIndex); + this._updateFixedBottomRangeIndex(scrollIndex); + } else if (cellHeightMode === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Dynamic) { + const scrollDirection = scrollDiff > 0 ? "top" : "bottom"; + const rangePageHeight = this.virtualRangePageHeight; + const topRangePageOffset = scrollTop - rangePageHeight; + const bottomRangePageOffset = scrollTop + this.finalVirtualPageHeight + rangePageHeight; + let virtualBottomRangeIndex = 0; + let virtualPlaceholderBottomHeight = 0; + let reachedLimitBottom = false; + const heightCacheList = this.virtualHeightCacheList; + const lastHeightCache = !!heightCacheList ? heightCacheList.slice(-1)[0] : null; + let startTopRangeIndex = this.virtualTopRangeIndex; + if (scrollDirection === "bottom") { + for (let i = startTopRangeIndex; i < heightCacheList.length; i++) { + const heightCacheItem = heightCacheList[i]; + if (heightCacheItem && heightCacheItem.totalHeight > topRangePageOffset) { + this.virtualTopRangeIndex = i; + this.virtualPlaceholderTopHeight = heightCacheItem.lastTotalHeight; + break; + } + } + } else { + let topRangeMatched = false; + for (let i = startTopRangeIndex; i >= 0; i--) { + const heightCacheItem = heightCacheList[i]; + if (heightCacheItem && heightCacheItem.totalHeight < topRangePageOffset) { + this.virtualTopRangeIndex = i; + this.virtualPlaceholderTopHeight = heightCacheItem.lastTotalHeight; + topRangeMatched = true; + break; + } + } + !topRangeMatched && this._resetTopRange(); + } + for (let i = this.virtualTopRangeIndex; i < heightCacheList.length; i++) { + const heightCacheItem = heightCacheList[i]; + if (heightCacheItem && heightCacheItem.totalHeight > bottomRangePageOffset) { + virtualBottomRangeIndex = i; + virtualPlaceholderBottomHeight = lastHeightCache.totalHeight - heightCacheItem.totalHeight; + reachedLimitBottom = true; + break; + } + } + if (!reachedLimitBottom || this.virtualBottomRangeIndex === 0) { + this.virtualBottomRangeIndex = this.realTotalData.length ? this.realTotalData.length - 1 : this.pageSize; + this.virtualPlaceholderBottomHeight = 0; + } else { + this.virtualBottomRangeIndex = virtualBottomRangeIndex; + this.virtualPlaceholderBottomHeight = virtualPlaceholderBottomHeight; + } + this._updateVirtualList(); + } + }, + // 更新fixedCell模式下topRangeIndex&placeholderTopHeight + _updateFixedTopRangeIndex(scrollIndex) { + let virtualTopRangeIndex = this.virtualCellHeight === 0 ? 0 : scrollIndex - (parseInt(this.finalVirtualPageHeight / this.virtualCellHeight) || 1) * this.preloadPage; + virtualTopRangeIndex *= this.virtualListCol; + virtualTopRangeIndex = Math.max(0, virtualTopRangeIndex); + this.virtualTopRangeIndex = virtualTopRangeIndex; + this.virtualPlaceholderTopHeight = virtualTopRangeIndex / this.virtualListCol * this.virtualCellHeight; + }, + // 更新fixedCell模式下bottomRangeIndex&placeholderBottomHeight + _updateFixedBottomRangeIndex(scrollIndex) { + let virtualBottomRangeIndex = this.virtualCellHeight === 0 ? this.pageSize : scrollIndex + (parseInt(this.finalVirtualPageHeight / this.virtualCellHeight) || 1) * (this.preloadPage + 1); + virtualBottomRangeIndex *= this.virtualListCol; + virtualBottomRangeIndex = Math.min(this.realTotalData.length, virtualBottomRangeIndex); + this.virtualBottomRangeIndex = virtualBottomRangeIndex; + this.virtualPlaceholderBottomHeight = (this.realTotalData.length - virtualBottomRangeIndex) * this.virtualCellHeight / this.virtualListCol; + this._updateVirtualList(); + }, + // 更新virtualList + _updateVirtualList() { + const shouldUpdateList = this.updateVirtualListFromDataChange || (this.lastVirtualTopRangeIndex !== this.virtualTopRangeIndex || this.lastVirtualBottomRangeIndex !== this.virtualBottomRangeIndex); + if (shouldUpdateList) { + this.updateVirtualListFromDataChange = false; + this.lastVirtualTopRangeIndex = this.virtualTopRangeIndex; + this.lastVirtualBottomRangeIndex = this.virtualBottomRangeIndex; + this.virtualList = this.realTotalData.slice(this.virtualTopRangeIndex, this.virtualBottomRangeIndex + 1); + } + }, + // 重置动态cell模式下的高度缓存数据、虚拟列表和滚动状态 + _resetDynamicListState(resetVirtualList = false) { + this.virtualHeightCacheList = []; + if (resetVirtualList) { + this.virtualList = []; + } + this.virtualTopRangeIndex = 0; + this.virtualPlaceholderTopHeight = 0; + }, + // 重置topRangeIndex和placeholderTopHeight + _resetTopRange() { + this.virtualTopRangeIndex = 0; + this.virtualPlaceholderTopHeight = 0; + this._updateVirtualList(); + }, + // 检测虚拟列表当前滚动位置,如发现滚动位置不正确则重新计算虚拟列表相关参数(为解决在App中可能出现的长时间进入后台后打开App白屏的问题) + _checkVirtualListScroll() { + if (this.finalUseVirtualList) { + this.$nextTick(() => { + this._getNodeClientRect(".zp-paging-touch-view").then((node) => { + const currentTop = node ? node[0].top : 0; + if (!node || currentTop === this.pagingOrgTop && this.virtualPlaceholderTopHeight !== 0) { + this._updateVirtualScroll(0); + } + }); + }); + } + }, + // 获取对应index的虚拟列表cell节点信息 + _getVirtualCellNodeByIndex(index) { + let inDom = this.finalUseInnerList; + if (this.forceCloseInnerList && this.virtualInSwiperSlot) { + inDom = this.$parent; + } + return this._getNodeClientRect(`#${this.fianlVirtualCellIdPrefix}-${index}`, inDom); + }, + // 处理使用内置列表时点击了cell事件 + _innerCellClick(item, index) { + this.$emit("innerCellClick", item, index); + } + } +}; +exports.virtualListModule = virtualListModule; +//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/virtual-list.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-constant.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-constant.js new file mode 100644 index 0000000..925408e --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-constant.js @@ -0,0 +1,19 @@ +"use strict"; +const c = { + // 当前版本号 + version: "2.8.6", + // 延迟操作的通用时间 + delayTime: 100, + // 请求失败时候全局emit使用的key + errorUpdateKey: "z-paging-error-emit", + // 全局emit complete的key + completeUpdateKey: "z-paging-complete-emit", + // z-paging缓存的前缀key + cachePrefixKey: "z-paging-cache", + // 虚拟列表中列表index的key + listCellIndexKey: "zp_index", + // 虚拟列表中列表的唯一key + listCellIndexUniqueKey: "zp_unique_index" +}; +exports.c = c; +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-constant.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-enum.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-enum.js new file mode 100644 index 0000000..44acb6f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-enum.js @@ -0,0 +1,46 @@ +"use strict"; +const Enum = { + // 当前加载类型 refresher:下拉刷新 load-more:上拉加载更多 + LoadingType: { + Refresher: "refresher", + LoadMore: "load-more" + }, + // 下拉刷新状态 default:默认状态 release-to-refresh:松手立即刷新 loading:刷新中 complete:刷新结束 go-f2:松手进入二楼 + Refresher: { + Default: "default", + ReleaseToRefresh: "release-to-refresh", + Loading: "loading", + Complete: "complete", + GoF2: "go-f2" + }, + // 底部加载更多状态 default:默认状态 loading:加载中 no-more:没有更多数据 fail:加载失败 + More: { + Default: "default", + Loading: "loading", + NoMore: "no-more", + Fail: "fail" + }, + // @query触发来源 user-pull-down:用户主动下拉刷新 reload:通过reload触发 refresh:通过refresh触发 load-more:通过滚动到底部加载更多或点击底部加载更多触发 + QueryFrom: { + UserPullDown: "user-pull-down", + Reload: "reload", + Refresh: "refresh", + LoadMore: "load-more" + }, + // 虚拟列表cell高度模式 + CellHeightMode: { + // 固定高度 + Fixed: "fixed", + // 动态高度 + Dynamic: "dynamic" + }, + // 列表缓存模式 + CacheMode: { + // 默认模式,只会缓存一次 + Default: "default", + // 总是缓存,每次列表刷新(下拉刷新、调用reload等)都会更新缓存 + Always: "always" + } +}; +exports.Enum = Enum; +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-enum.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-interceptor.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-interceptor.js new file mode 100644 index 0000000..e775597 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-interceptor.js @@ -0,0 +1,69 @@ +"use strict"; +const queryKey = "Query"; +const fetchParamsKey = "FetchParams"; +const fetchResultKey = "FetchResult"; +const language2LocalKey = "Language2Local"; +function handleQuery(callback) { + _addHandleByKey(queryKey, callback); + return this; +} +function _handleQuery(pageNo, pageSize, from, lastItem) { + const callback = _getHandleByKey(queryKey); + return callback ? callback(pageNo, pageSize, from, lastItem) : [pageNo, pageSize, from]; +} +function handleFetchParams(callback) { + _addHandleByKey(fetchParamsKey, callback); + return this; +} +function _handleFetchParams(parmas, extraParams) { + const callback = _getHandleByKey(fetchParamsKey); + return callback ? callback(parmas, extraParams || {}) : { pageNo: parmas.pageNo, pageSize: parmas.pageSize, ...extraParams || {} }; +} +function handleFetchResult(callback) { + _addHandleByKey(fetchResultKey, callback); + return this; +} +function _handleFetchResult(result, paging, params) { + const callback = _getHandleByKey(fetchResultKey); + callback && callback(result, paging, params); + return callback ? true : false; +} +function handleLanguage2Local(callback) { + _addHandleByKey(language2LocalKey, callback); + return this; +} +function _handleLanguage2Local(language, local) { + const callback = _getHandleByKey(language2LocalKey); + return callback ? callback(language, local) : local; +} +function _getApp() { + return getApp(); +} +function _hasGlobalData() { + return _getApp() && _getApp().globalData; +} +function _addHandleByKey(key, callback) { + try { + setTimeout(function() { + if (_hasGlobalData()) { + _getApp().globalData[`zp_handle${key}Callback`] = callback; + } + }, 1); + } catch (_) { + } +} +function _getHandleByKey(key) { + return _hasGlobalData() ? _getApp().globalData[`zp_handle${key}Callback`] : null; +} +const interceptor = { + handleQuery, + _handleQuery, + handleFetchParams, + _handleFetchParams, + handleFetchResult, + _handleFetchResult, + handleLanguage2Local, + _handleLanguage2Local +}; +exports.interceptor = interceptor; +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-interceptor.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-main.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-main.js new file mode 100644 index 0000000..f57f33c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-main.js @@ -0,0 +1,423 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingStatic = require("./z-paging-static.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingConstant = require("./z-paging-constant.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("./z-paging-utils.js"); +const uni_modules_zPaging_components_zPaging_js_modules_commonLayout = require("./modules/common-layout.js"); +const uni_modules_zPaging_components_zPaging_js_modules_dataHandle = require("./modules/data-handle.js"); +const uni_modules_zPaging_components_zPaging_js_modules_i18n = require("./modules/i18n.js"); +const uni_modules_zPaging_components_zPaging_js_modules_nvue = require("./modules/nvue.js"); +const uni_modules_zPaging_components_zPaging_js_modules_empty = require("./modules/empty.js"); +const uni_modules_zPaging_components_zPaging_js_modules_refresher = require("./modules/refresher.js"); +const uni_modules_zPaging_components_zPaging_js_modules_loadMore = require("./modules/load-more.js"); +const uni_modules_zPaging_components_zPaging_js_modules_loading = require("./modules/loading.js"); +const uni_modules_zPaging_components_zPaging_js_modules_chatRecordMode = require("./modules/chat-record-mode.js"); +const uni_modules_zPaging_components_zPaging_js_modules_scroller = require("./modules/scroller.js"); +const uni_modules_zPaging_components_zPaging_js_modules_backToTop = require("./modules/back-to-top.js"); +const uni_modules_zPaging_components_zPaging_js_modules_virtualList = require("./modules/virtual-list.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("./z-paging-enum.js"); +const zPagingRefresh = () => "../components/z-paging-refresh.js"; +const zPagingLoadMore = () => "../components/z-paging-load-more.js"; +const zPagingEmptyView = () => "../../z-paging-empty-view/z-paging-empty-view.js"; +const systemInfo = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getSystemInfoSync(); +const _sfc_main = { + name: "z-paging", + components: { + zPagingRefresh, + zPagingLoadMore, + zPagingEmptyView + }, + mixins: [ + uni_modules_zPaging_components_zPaging_js_modules_commonLayout.commonLayoutModule, + uni_modules_zPaging_components_zPaging_js_modules_dataHandle.dataHandleModule, + uni_modules_zPaging_components_zPaging_js_modules_i18n.i18nModule, + uni_modules_zPaging_components_zPaging_js_modules_nvue.nvueModule, + uni_modules_zPaging_components_zPaging_js_modules_empty.emptyModule, + uni_modules_zPaging_components_zPaging_js_modules_refresher.refresherModule, + uni_modules_zPaging_components_zPaging_js_modules_loadMore.loadMoreModule, + uni_modules_zPaging_components_zPaging_js_modules_loading.loadingModule, + uni_modules_zPaging_components_zPaging_js_modules_chatRecordMode.chatRecordModerModule, + uni_modules_zPaging_components_zPaging_js_modules_scroller.scrollerModule, + uni_modules_zPaging_components_zPaging_js_modules_backToTop.backToTopModule, + uni_modules_zPaging_components_zPaging_js_modules_virtualList.virtualListModule + ], + data() { + return { + // --------------静态资源--------------- + base64BackToTop: uni_modules_zPaging_components_zPaging_js_zPagingStatic.zStatic.base64BackToTop, + // -------------全局数据相关-------------- + // 当前加载类型 + loadingType: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher, + requestTimeStamp: 0, + wxsPropType: "", + renderPropScrollTop: -1, + checkScrolledToBottomTimeOut: null, + cacheTopHeight: -1, + statusBarHeight: systemInfo.statusBarHeight, + // --------------状态&判断--------------- + insideOfPaging: -1, + isLoadFailed: false, + isIos: systemInfo.platform === "ios", + disabledBounce: false, + fromCompleteEmit: false, + disabledCompleteEmit: false, + pageLaunched: false, + active: false, + // ---------------wxs相关--------------- + wxsIsScrollTopInTopRange: true, + wxsScrollTop: 0, + wxsPageScrollTop: 0, + wxsOnPullingDown: false + }; + }, + props: { + // 调用complete后延迟处理的时间,单位为毫秒,默认0毫秒,优先级高于minDelay + delay: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("delay", 0) + }, + // 触发@query后最小延迟处理的时间,单位为毫秒,默认0毫秒,优先级低于delay(假设设置为300毫秒,若分页请求时间小于300毫秒,则在调用complete后延迟[300毫秒-请求时长];若请求时长大于300毫秒,则不延迟),当show-refresher-when-reload为true或reload(true)时,其最小值为400 + minDelay: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("minDelay", 0) + }, + // 设置z-paging的style,部分平台(如微信小程序)无法直接修改组件的style,可使用此属性代替 + pagingStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("pagingStyle", {}) + }, + // z-paging的高度,优先级低于pagingStyle中设置的height;传字符串,如100px、100rpx、100% + height: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("height", "") + }, + // z-paging的宽度,优先级低于pagingStyle中设置的width;传字符串,如100px、100rpx、100% + width: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("width", "") + }, + // z-paging的最大宽度,优先级低于pagingStyle中设置的max-width;传字符串,如100px、100rpx、100%。默认为空,也就是铺满窗口宽度,若设置了特定值则会自动添加margin: 0 auto + maxWidth: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("maxWidth", "") + }, + // z-paging的背景色,优先级低于pagingStyle中设置的background。传字符串,如"#ffffff" + bgColor: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("bgColor", "") + }, + // 设置z-paging的容器(插槽的父view)的style + pagingContentStyle: { + type: Object, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("pagingContentStyle", {}) + }, + // z-paging是否自动高度,若自动高度则会自动铺满屏幕 + autoHeight: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoHeight", false) + }, + // z-paging是否自动高度时,附加的高度,注意添加单位px或rpx,若需要减少高度,则传负数 + autoHeightAddition: { + type: [Number, String], + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoHeightAddition", "0px") + }, + // loading(下拉刷新、上拉加载更多)的主题样式,支持black,white,默认black + defaultThemeStyle: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("defaultThemeStyle", "black") + }, + // z-paging是否使用fixed布局,若使用fixed布局,则z-paging的父view无需固定高度,z-paging高度默认为100%,默认为是(当使用内置scroll-view滚动时有效) + fixed: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("fixed", true) + }, + // 是否开启底部安全区域适配 + safeAreaInsetBottom: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("safeAreaInsetBottom", false) + }, + // 开启底部安全区域适配后,是否使用placeholder形式实现,默认为否。为否时滚动区域会自动避开底部安全区域,也就是所有滚动内容都不会挡住底部安全区域,若设置为是,则滚动时滚动内容会挡住底部安全区域,但是当滚动到底部时才会避开底部安全区域 + useSafeAreaPlaceholder: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useSafeAreaPlaceholder", false) + }, + // z-paging bottom的背景色,默认透明,传字符串,如"#ffffff" + bottomBgColor: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("bottomBgColor", "") + }, + // slot="top"的view的z-index,默认为99,仅使用页面滚动时有效 + topZIndex: { + type: Number, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("topZIndex", 99) + }, + // z-paging内容容器父view的z-index,默认为1 + superContentZIndex: { + type: Number, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("superContentZIndex", 1) + }, + // z-paging内容容器部分的z-index,默认为1 + contentZIndex: { + type: Number, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("contentZIndex", 1) + }, + // z-paging二楼的z-index,默认为100 + f2ZIndex: { + type: Number, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("f2ZIndex", 100) + }, + // 使用页面滚动时,是否在不满屏时自动填充满屏幕,默认为是 + autoFullHeight: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoFullHeight", true) + }, + // 是否监听列表触摸方向改变,默认为否 + watchTouchDirectionChange: { + type: Boolean, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("watchTouchDirectionChange", false) + }, + // z-paging中布局的单位,默认为rpx + unit: { + type: String, + default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("unit", "rpx") + } + }, + created() { + if (this.createdReload && !this.refresherOnly && this.auto) { + this._startLoading(); + this.$nextTick(this._preReload); + } + }, + mounted() { + this.active = true; + this.wxsPropType = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime().toString(); + this.renderJsIgnore; + if (!this.createdReload && !this.refresherOnly && this.auto) { + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => this.$nextTick(this._preReload), 0); + } + this.finalUseCache && this._setListByLocalCache(); + let delay = 0; + delay = uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime; + this.$nextTick(() => { + this.systemInfo = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getSystemInfoSync(); + !this.usePageScroll && this.autoHeight && this._setAutoHeight(); + this.loaded = true; + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => { + this.updateFixedLayout(); + this._updateCachedSuperContentHeight(); + }); + }); + this.updatePageScrollTopHeight(); + this.updatePageScrollBottomHeight(); + this.updateLeftAndRightWidth(); + if (this.finalRefresherEnabled && this.useCustomRefresher) { + this.$nextTick(() => { + this.isTouchmoving = true; + }); + } + this._onEmit(); + this.finalUseVirtualList && this._virtualListInit(); + this.$nextTick(() => { + setTimeout(() => { + this._getCssSafeAreaInsetBottom(() => this.safeAreaInsetBottom && this.updatePageScrollBottomHeight()); + }, delay); + }); + }, + destroyed() { + this._handleUnmounted(); + }, + unmounted() { + this._handleUnmounted(); + }, + watch: { + defaultThemeStyle: { + handler(newVal) { + if (newVal.length) { + this.finalRefresherDefaultStyle = newVal; + } + }, + immediate: true + }, + autoHeight(newVal) { + this.loaded && !this.usePageScroll && this._setAutoHeight(newVal); + }, + autoHeightAddition(newVal) { + this.loaded && !this.usePageScroll && this.autoHeight && this._setAutoHeight(newVal); + } + }, + computed: { + // 当前z-paging的内置样式 + finalPagingStyle() { + const pagingStyle = { ...this.pagingStyle }; + if (!this.systemInfo) + return pagingStyle; + const { windowTop, windowBottom } = this; + if (!this.usePageScroll && this.fixed) { + if (windowTop && !pagingStyle.top) { + pagingStyle.top = windowTop + "px"; + } + if (windowBottom && !pagingStyle.bottom) { + pagingStyle.bottom = windowBottom + "px"; + } + } + if (this.bgColor.length && !pagingStyle["background"]) { + pagingStyle["background"] = this.bgColor; + } + if (this.height.length && !pagingStyle["height"]) { + pagingStyle["height"] = this.height; + } + if (this.width.length && !pagingStyle["width"]) { + pagingStyle["width"] = this.width; + } + if (this.maxWidth.length && !pagingStyle["max-width"]) { + pagingStyle["max-width"] = this.maxWidth; + pagingStyle["margin"] = "0 auto"; + } + return pagingStyle; + }, + // 当前z-paging内容的样式 + finalPagingContentStyle() { + if (this.contentZIndex != 1) { + this.pagingContentStyle["z-index"] = this.contentZIndex; + this.pagingContentStyle["position"] = "relative"; + } + return this.pagingContentStyle; + }, + renderJsIgnore() { + if (this.usePageScroll && this.useChatRecordMode || !this.refresherEnabled && this.scrollable || !this.useCustomRefresher) { + this.$nextTick(() => { + this.renderPropScrollTop = 10; + }); + } + return 0; + }, + windowHeight() { + if (!this.systemInfo) + return 0; + return this.systemInfo.windowHeight || 0; + }, + windowBottom() { + if (!this.systemInfo) + return 0; + let windowBottom = this.systemInfo.windowBottom || 0; + if (this.safeAreaInsetBottom && !this.useSafeAreaPlaceholder && !this.useChatRecordMode) { + windowBottom += this.safeAreaBottom; + } + return windowBottom; + }, + isIosAndH5() { + return false; + } + }, + methods: { + // 当前版本号 + getVersion() { + return `z-paging v${uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.version}`; + }, + // 设置nvue List的specialEffects + setSpecialEffects(args) { + this.setListSpecialEffects(args); + }, + // 与setSpecialEffects等效,兼容旧版本 + setListSpecialEffects(args) { + this.nFixFreezing = args && Object.keys(args).length; + if (this.isIos) { + this.privateRefresherEnabled = 0; + } + !this.usePageScroll && this.$refs["zp-n-list"].setSpecialEffects(args); + }, + // 使手机发生较短时间的振动(15ms) + _doVibrateShort() { + common_vendor.index.vibrateShort(); + }, + // 设置z-paging高度 + async _setAutoHeight(shouldFullHeight = true, scrollViewNode = null) { + const heightKey = "min-height"; + try { + if (shouldFullHeight) { + let finalScrollViewNode = scrollViewNode || await this._getNodeClientRect(".zp-scroll-view"); + let finalScrollBottomNode = await this._getNodeClientRect(".zp-page-bottom"); + if (finalScrollViewNode) { + const scrollViewTop = finalScrollViewNode[0].top; + let scrollViewHeight = this.windowHeight - scrollViewTop; + scrollViewHeight -= finalScrollBottomNode ? finalScrollBottomNode[0].height : 0; + const additionHeight = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(this.autoHeightAddition); + let importantSuffix = " !important"; + const finalHeight = scrollViewHeight + additionHeight - (this.insideMore ? 1 : 0) + "px" + importantSuffix; + this.$set(this.scrollViewStyle, heightKey, finalHeight); + this.$set(this.scrollViewInStyle, heightKey, finalHeight); + } + } else { + this.$delete(this.scrollViewStyle, heightKey); + this.$delete(this.scrollViewInStyle, heightKey); + } + } catch (e) { + } + }, + // 组件销毁后续处理 + _handleUnmounted() { + this.active = false; + this._offEmit(); + this.useChatRecordMode && common_vendor.index.offKeyboardHeightChange(this._handleKeyboardHeightChange); + }, + // 触发更新是否超出页面状态 + _updateInsideOfPaging() { + this.insideMore && this.insideOfPaging === true && setTimeout(this.doLoadMore, 200); + }, + // 清除timeout + _cleanTimeout(timeout) { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + return timeout; + }, + // 添加全局emit监听 + _onEmit() { + common_vendor.index.$on(uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.errorUpdateKey, (errorMsg) => { + if (this.loading) { + if (!!errorMsg) { + this.customerEmptyViewErrorText = errorMsg; + } + this.complete(false).catch(() => { + }); + } + }); + common_vendor.index.$on(uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.completeUpdateKey, (data) => { + setTimeout(() => { + if (this.loading) { + if (!this.disabledCompleteEmit) { + const type = data.type || "normal"; + const list = data.list || data; + const rule = data.rule; + this.fromCompleteEmit = true; + switch (type) { + case "normal": + this.complete(list); + break; + case "total": + this.completeByTotal(list, rule); + break; + case "nomore": + this.completeByNoMore(list, rule); + break; + case "key": + this.completeByKey(list, rule); + break; + } + } else { + this.disabledCompleteEmit = false; + } + } + }, 1); + }); + }, + // 销毁全局emit和listener监听 + _offEmit() { + common_vendor.index.$off(uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.errorUpdateKey); + common_vendor.index.$off(uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.completeUpdateKey); + } + } +}; +exports._sfc_main = _sfc_main; +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-main.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-static.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-static.js new file mode 100644 index 0000000..d1c0902 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-static.js @@ -0,0 +1,14 @@ +"use strict"; +const zStatic = { + base64Arrow: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkBAMAAACCzIhnAAAAD1BMVEVHcExRUVFMTExRUVFRUVE9CdWsAAAABHRSTlMAjjrY9ZnUjwAAAQFJREFUWMPt2MsNgzAMgGEEE1B1gKJmAIRYoCH7z9RCXrabh33iYktcIv35EEg5ZBh07pvxJU6MFSPOSRnjnBUjUsaciRUjMsb4xIoRCWNiYsUInzE5sWKEyxiYWDbyefqHx1zIeiYTk7mQYziTYecxHvEJjwmIT3hMQELCYSISEg4TkZj0mYTEpM8kJCU9JiMp6TEZyUmbAUhO2gxAQNJiIAKSFgMRmNQZhMCkziAEJTUGIyipMRjBSZkhCE7KDEFIUmTeGCHJxWz0zXaE0GTCG8ZFtEaS347r/1fe11YyHYVfubxayfjoHmc0YYwmmmiiiSaaaKLJ7ckyz5ve+dw3Xw2emdwm9xSbAAAAAElFTkSuQmCC", + base64ArrowWhite: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkBAMAAACCzIhnAAAAElBMVEVHcEz///////////////////+IGTx/AAAABnRSTlMA/dAkXZOhASU/AAABYElEQVRYw+2YwXLCIBCGsdAHWGbyAKZ4zxi9O017rxLf/1UaWFAgA1m8dcpedNSPf/l/Vh0Ya/Wn6hN0JcGvoCqRM4C8VBFiDwBqqNuJKV0rAnCgy3AUqZE57x0iqTL8Br4U3WBf/YWaIlTKfAcELU/h9w72CSVPa3C3OCDvhpHbRp/s2vq4fHhCeiCl2A3m4Qd71DQR257mFBlMcTlbFnFWzNtHxewYEfSiaLS4el8d8nyhmKJd1CF4eOS0keLMAuSxubLBIeIGQW8YHCFFo7EH9+YDcQt9FMZEswTheaNxTHwHT8SZorJjMrEVwo4Zo0U8HSEyZvJMOg4RjnmmRr8nDYeIz3OMkbfE/QhBo+U9RnZJxjGCRh/WKmHEMWLNkfPKsGh/CWJk1JjG0kcuJggTt34VDP8aWAFhp4nybVb5+9qQhjSkIQ1pSEMa8k+Q5U9rV3dF8MpFBK+/7miVq1/HZ2qmo9D+pAAAAABJRU5ErkJggg==", + base64Flower: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkBAMAAACCzIhnAAAAKlBMVEVHcEzDw8Ovr6+pqamUlJTCwsKenp61tbWxsbGysrLNzc2bm5u5ubmjo6MpovhuAAAACnRSTlMA/P79/sHDhiZS0DxZowAABBBJREFUWMPtl89rE0EUx7ctTXatB3MI1SWnDbUKPUgXqh4ED8Uf7KUVSm3ooVSpSii0Fn/gD4j4o+APiEoVmos9FO2celiqZVgwgaKHPQiCCkv+F99kM7Ozm5kxq1dfD91k9pPve9/3ZjbRNHHok/mKli4eIPNgSuRObuN9SqSEzM20iGnm0yIbqCuV7NSSSIV7uyPM6JMBYdeTOanh/QihJYZsUCSby+VkMj2AvOt0rAeQAwqE3lfKMZVlQCZk1QOCKkkVPadITCfIRNKxfoJI5+0OIFtJx14CMSg1mRSDko7VAfksRQzEbGYqxOJcVTWMCH2I1/IACNW0PWU2M8cmAVHtnH5mM1VRWtwKZjOd5JbF6s1IbaYqaotjNlPHgDAnlAizubTR6ovMYn052g/U5qcmOpi0WL8xTS/3IfSet5m8MEr5ajjF5le6dq/OJpobrdY0t3i9QgefWrxW9/1BLhk0E9m8FeUMhhXal499iD0eQRfDF+ts/tttORRerfp+oV7f4xJj82iUYm1Yzod+ZQEAlS/8mMBwKebVmCVp1f0JLS6zKd17+iwRKTARVg2SHtz3iEbBH+Q+U28zW2Jiza8Tjb1YFoYZMsJyjDqp3M9XBQdSdPLFdxEpvOB37JrHcmR/y9+LgoTlCFGZEa2sc6d4PGlweEa2JSVPoVm+IfGG3ZL037iV9oH+P+Jxc4HGVflNq1M0pivao/EopO4b/ojVCP9GjmiXOeS0DOn1o/iiccT4ORnyvBGF3yUywkQajW4Ti0SGuiy/wVSg/L8w+X/8Q+hvUx8Xd90z4oV5a1i88MbFWHz0WZZ1UrTwBGPX3Rat9AFiXRMRjoMdIdJLEOt2h7jrYOzgOamKZSWSNspOS0X8SAqRYmxRL7sg4eLzYmNehcxh3uoyud/BH2Udux4ywxFTc1xC7Mgf4vMhc5S+kSH3Y7yj+qpwIWSoPTVCOOPVthGx9FbGqrwFw6wSFxJr+17zeKcztt3u+2roAEVgUjDd+AHGuxHy2rZHaa8JMkTHEeyi85ANPO9j9BVuBRD2FY5LDMo/Sz/2hReqGIs/KiFin+CsPsYO/yvM3jL2vE8EbX7/Bf8ejtr2GLN65bioAdgLd8Bis/mD5GmP2qeqyo2ZwQEOtAjRIDH7mBKpUcMoApbZJ5UIxkEwxyMZyMxW/uKFvHCFR3SSmerHyDNQ2dF4JG6zIMpBgLfjSF9x1D6smFcYnGApjmSLICO3ecCDWrQ48geba9DI3STy2i7ax6WIB62fSyIZIiO3GFQqSURp8wCo7GhJBGwuSovJBNjb7kT6FPVnIa9qJ2Ko+l9mefGIdinaMp0yC1URYiwsdfNE45EuA5Cx9EhalfvN5s+UyItm81vaB3p4joniN+SCP7Qc1hblAAAAAElFTkSuQmCC", + base64FlowerWhite: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkBAMAAACCzIhnAAAAElBMVEX///9HcEz///////////////84chYNAAAABnRSTlP/AGzCOYZj5g1nAAACfklEQVRYw+2YTVPDIBCGtza9Jw25a0bvcax30o73OOr//yvma2F3YWlpPTijXNpAHrK8LLALVPFium2vNIFSbwGKTGQA2GUiHcD29yDNy3sMIdUBQl7r2H8mOEVqAHgPkYZUS6Qc2zYhQqtjyDZEximCZwWZLIBeIgYShs2NzxKpSUehYpMJhURGb+O+w5BpMCAREKPnCDHbIY20SzhM5yxziAXpOiBXydrekT9i5XDEq4NIIHHgyU5mRGqviII4mREJJA4QJzMiILwlRJzpKxJKvCBm8OsBBbLux0tsPl4RKYm5aPu6jw1U4mGxEUR9g8M1PcqBEp/WJliNgYOXueBzS4jZSIcgY5lCtevgDSgyzE+rAfuOTQMq0yzvoGH18qju27Mayzs4fPyMziCx81NJa5RNfW7vPYK9KOfDiVkBxFHG8hAj9txuoBuSWORsFfkpBf7xKFLSeaOefEojh5jz22DJEqMP8fUyaKdQx+RnG+yXMpe8Aars8ueR1pVH/bW3FyyvPRw90upLDHwpgBDtg4aUBNkxRLXMAi03IhcZtr1m+FeI/O/JNyDmmL1djLOauSlNflBpW18RQ2bPqXI22MXXEk75KRHTnkPkYbESbdKP2ZFk0r5sIwffAjy1lx+vx7NLjB6/E7Jfv5ERKhzpN0w8IDE8IGFDv5dhz10s7GFiXRZcUeLCEG5P5nDq9k4PFDcoMpE3GY4OuxuCXhmuyNB6k0RsLIAvqp9NE5r8ZCSS8gxnUp7ODdYhZTqxuiJ9uyJJtPmpqJ7wVj+XVieS903iViHziqAhchLEJAyb7jWU647EpUofQ0ziUuXXXhDddtlllSwjgSQu7r4BRWhQqfDPMVwAAAAASUVORK5CYII=", + base64Success: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkBAMAAACCzIhnAAAAElBMVEVRUVFHcExTU1NRUVFRUVFRUVFOSlSUAAAABnRSTlP/AI6+VySB3ZENAAACcElEQVRYw+2YyYKCMAyGI8hdpdxdZu7gcpdZ7jL6/s8yYheSNi0aPdqbwOffpGmaFOYPD3gj4bisN7vddv17N/JVgxn5x12IWgIaWTuO/IE3PseQbwjGPo2cgRmHFLJwdm/X643zwiqOKPPJ1nj3sjEP2iiifZWj5bhopSyGaEO2HX5fbQJzwJ+W7x/jw5ZFjsEU0PMph9xE8i5EqprKALW95eJQURkgzw98uJ/JvwGecR7bIjWWsUgVrrIfFZ2HlLy3sKETD1mmRLRMRhGVssRa0xJkdn3SpJBymBkM8+pSSDXMDNyDaToVHd2fgpNt0sjwiUZO19+jGQ+gQEg9Oq+bufmAVGihomNmjQG7UG3020vrlm7lkFnKFGU3kZ0KGAdmKe821pipQ+qEKcrZeTL2g5FsUks4cStjEZWwXg0b0n4GxmEpkWwIs5VBynjgK7xZaz1/0D7OxkVuLpsY5BQNFyLS84VBjjbg0iL2r2EQHBOxBhikuUOkdxODVF1cxHoWtPPsiyXO455Iv34hssCO8EV4ZIYTjS8SR4qYSHRiTiYQ4ZFbHi0iIhhBTi6dTCgSWRcnw4h4yGTuyTAiOGBIWGoZTgSHJQl+LcOJ4OCnW6yX2bMnJ9pidCOXtkTkTrIGpYuOynAiOF14SamMiOCk5Ke+mq8BcOrrvym8d0zKIQnWT+M1WwOQNO4fFiWb18hhERxJPx2fblbPHHyC41VyiAtKBUFBIih7JMWVoIQTFIr3lKPN80WvoLSWFPC653ioTZA0I0FrQ7qU6asaK0H7JmkSJa2ooOGVtNUsc3j9FYHkIkJy3SG6VHnfXKXGP9t4N9Q4Ye98AAAAAElFTkSuQmCC", + base64SuccessWhite: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkBAMAAACCzIhnAAAAGFBMVEVHcEz///////////////////////////8dS1W+AAAAB3RSTlMAiVYk6KvDHLfaegAAAo1JREFUWMPtWEtzmzAQNhCTq910ytXpiyvxTNOr60zrayepx9d02gnX4sTm7xcEiJX2gdnkGJ1A4tOnfWqXyeR1vMRYzrcPD9v5h5MBl3/Ldvx4cxIg/FWC8X0xjLjalM54uhhCfCrRuJURX0pi3EmIqZV7O59vrRZmguStHL9b7S7ftfLwOtiZDw7AHMtmquAQ12b5Wwbnordm8g9zLLO49qc/m2n6aKnhwPOGZ08hAiNHhheiHae1lOUPGZpQkPKa3q0mOUjaRzSRaGUjpy/mmWSwySSpllcEteBKAT52KEnSbblA51pJEPxBQoiH1FP4E3s5+FJv07h6/ylD6ui7B+9fq/ehrFB98ghec9EoVtyjK8pqCHLmCBOwMWSCeWFNN4MbPAk55NhsvoFHSSVR0k5TCTTEzlUGcqV/nVp7n9oIVkmtaqbAEqEgfdgHJPwsEAyZ9r4VAZXFjpEwyaw3+H2v42KYxKhs1XvY/gSSGv+IHyUSuHXCeZhLAgVI3EjgSGo1Fb3xO0tGGU9S2/KAIbtjxpJASG73qox6w5LUq0cEOa+iIONIWIilQSQ0pPa2jgaRQAgQP7c0mITRWGxpMAmEQFN2NAQJNCV0mI6GIIEO47hlQ0ORQLd0nL+hoUjg1m6I1TRr8uYEAriBHLcVFQ5UEMiBe3XkTBEG04WXlGKGxPnMS305XQPA1Ocn2JiuAZwE66fxnKwBnDTuXxZTMq85lwW6kt5ndLqZPefiU1yvmktcUSooChJF2aMprhQlnKJQ5FxRKkcVRa+itNYU8Io2oVkY14w0NMWYlqft91Bj9VHq+ca3b43BxjWJmla0sfKohlfTVpPN+93L/yLQ/IjQ/O5Q/VR5HdL4D7mlxmjwVdELAAAAAElFTkSuQmCC", + base64Empty: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAMAAAAL34HQAAALeGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDg4LCAyMDIwLzA3LzEwLTIyOjA2OjUzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIyLTAyLTIyVDIxOjIxOjQ1KzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI0LTAxLTEzVDE5OjA5OjQwKzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNC0wMS0xM1QxOTowOTo0MCswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZWQwMWYzNWQtOWRjOC00MDBiLWEyMmQtNjM5OGZiNzVhNGRiIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZDhlMzQ3ZmEtMDY2My1jYTRiLTgzNTctNTk4YjBkNGIzOTU2IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZDA4MDI4MDItMzUyYS04NTRhLTkxYjctNmRlNmQ1MmViM2QwIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjMwMDAwMDAvMTAwMDAiIHRpZmY6WVJlc29sdXRpb249IjMwMDAwMDAvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjMwMCIgZXhpZjpQaXhlbFlEaW1lbnNpb249IjMwMCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZDA4MDI4MDItMzUyYS04NTRhLTkxYjctNmRlNmQ1MmViM2QwIiBzdEV2dDp3aGVuPSIyMDIyLTAyLTIyVDIxOjIxOjQ1KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjQwNjg2NzJkLWY5NDMtOTU0Mi1iMDBiLTVlMDExNmE1NmIzZSIgc3RFdnQ6d2hlbj0iMjAyNC0wMS0xM1QxMDoyNjoxNiswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphYmJkZmUyZC0xY2Q2LTJiNDgtYjUyNS05YzlhZjdlNjA4NDMiIHN0RXZ0OndoZW49IjIwMjQtMDEtMTNUMTE6MjM6NDArMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YTQ5MjM5MDAtNDhiZC03YTQ1LWI4NGItYmVlZTVjOWUxYTM1IiBzdEV2dDp3aGVuPSIyMDI0LTAxLTEzVDExOjIzOjQwKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmVkMDFmMzVkLTlkYzgtNDAwYi1hMjJkLTYzOThmYjc1YTRkYiIgc3RFdnQ6d2hlbj0iMjAyNC0wMS0xM1QxOTowOTo0MCswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjAgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDx4bXBNTTpEZXJpdmVkRnJvbSBz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", + base64Error: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAMAAAAL34HQAAALeGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDg4LCAyMDIwLzA3LzEwLTIyOjA2OjUzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIyLTAyLTIyVDIxOjIxOjQ1KzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI0LTAxLTEzVDE5OjEwOjEwKzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNC0wMS0xM1QxOToxMDoxMCswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTQ3NTExNjAtZDY5MC00ZTkzLWFhNGUtNGMwYTViNGU1ZGFjIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YzRiNzlkYWMtZTJmYS1iNzQ0LWIxM2ItOWU1N2VjMDhhM2YwIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZDA4MDI4MDItMzUyYS04NTRhLTkxYjctNmRlNmQ1MmViM2QwIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjMwMDAwMDAvMTAwMDAiIHRpZmY6WVJlc29sdXRpb249IjMwMDAwMDAvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjMwMCIgZXhpZjpQaXhlbFlEaW1lbnNpb249IjMwMCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZDA4MDI4MDItMzUyYS04NTRhLTkxYjctNmRlNmQ1MmViM2QwIiBzdEV2dDp3aGVuPSIyMDIyLTAyLTIyVDIxOjIxOjQ1KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjQwNjg2NzJkLWY5NDMtOTU0Mi1iMDBiLTVlMDExNmE1NmIzZSIgc3RFdnQ6d2hlbj0iMjAyNC0wMS0xM1QxMDoyNjoxNiswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjZjk1NTE1OC04MjFiLTA4NDUtYWJmNS05YTE1NGM1ZTY4NjEiIHN0RXZ0OndoZW49IjIwMjQtMDEtMTNUMTE6MDQ6MDQrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZGM1Y2IyNWItZDZlNC0yZjQ2LTgyODQtZmUwOTNlY2M2ZTkxIiBzdEV2dDp3aGVuPSIyMDI0LTAxLTEzVDExOjA0OjA0KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjE0NzUxMTYwLWQ2OTAtNGU5My1hYTRlLTRjMGE1YjRlNWRhYyIgc3RFdnQ6d2hlbj0iMjAyNC0wMS0xM1QxOToxMDoxMCswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjAgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDx4bXBNTTpEZXJpdmVkRnJvbSBz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", + base64BackToTop: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADIBAMAAABfdrOtAAAAElBMVEVRUVH+/v5HcEyZmZlRUVFRUVGm1ByOAAAABnRSTlPMzADMTZAJBBGsAAAEnElEQVR42t2cS27jMAyGf7/2U+QCQeDsbeQCgZDujaC5/1UmkzaJn+JDFGcw3LdfflKibJkkDnxrL7dbg7sNt6+L4O8OYBM+B0ys+QrGkHZG+OEEQ8g6go8Bx1GIGMdpNOQyIG6XdMgnSPtKhLQDGEZFBgYMkhKFtGBb0EIEjDgFRowoBVaMGAWpMedEfxMiZtwpUsgZCqtlkCNUdpVAWigtCCCDFtLwIWeoreZCWiRYYEKGFEjDg+yRZCUH0iLRAgNyToXUNCRZyMqWhGnUN2IPm3wSlwJ7IUspyCBkIQUZhCykIIeQuRTkEDKXAuM9srrtYbrZN7Y98giZSoFd+t1OxmMITG0dcrSFXFchZ1tIvQZpYWxhBbK3hpQrkMEa0iwh5t4a+QvZvDXyF7J5a+Qv5PPW21/I5623v5DPW29/IaO3Xv5Clrw1y1/Ikrdm+Qs5svw83yNnSJ5BQb4F/F7EIEJSnThGBAXxkFQfLOviQUE8JAUPsosHBfGQfDAtHhREQ1JxIV00KIgmrnRI84S0yAd5BAXxxJUck0f6Qnwr9qmr6xF5xLMjcwn/iudIEAdWnyjkEXlQKZiRVzoqRyLbgeUKKR8Q4alY7cSnoxzSf2ggsqehKr6YVpcXpOd7H93f60cKhOd7Re2LteUF4eLqiVS1mr0ge4io6C2+soaFkJ7MuuuQs1yITEp9hwwKISIpzR2iESKSIoT0rLNwuVHQqoSIpAQJpGce60vIUSdEIuUqgPTsJ5QFZK8UIpBS8iG94GFrDjlrhfCl8CG96Llxmle4kEr6vKWBPIVo9kqDQSRk9/3cWoikcCFPAd33v4dIChPyEvLzBA6RlEYWke4JEUnhKXkLeUEKxRHJFfKCQHGucIW8IdZSRkLeEGMpYyEjiK2UsZARxFTKRMgYYillImQMMZQyFTKB2EmZCplAuFLIHT8TMoWwpQwiIVMIUwqpZP5bp5CCvCTiQKr5f5lCQN+tPCBn2ZvVDFJwIDUP0m1BYAfZYRNSsCB7BqTbhoARePIxtZ9tgwWkoJcwCalmv3MBAemtO4R6dah2HaKQqj8Zvp9sQDjvJ21+SPCBHPJDDk6QITekEV7gqCC19CpKAym9IMfckKv4olMBCeIrWwVEfvkshzQekO9r9P1/ALk+IG1eSPCDiCJfyG+FyU+A6ZCa/piZDinpz7LpkCv5gdkAEshP5emQhv7onw6pGeULyZCSUYiRDAmMkpJkCKs4JhFSq8p8hJBSVbAkhARV6ZUQoisik0FqXTmcDHLVFfbJIEFXoiiCNMpiSxGkVJaNiiBBWQArgTTaUl4JpNQWJUsgQVteXQg+AKkLxQWFGKW+5J2+eVp4S168X3CF1CltCKdTJ8lb84YK2bUBO+wZW0Pqv9nk4tKu49N45NJC5dMM5tLW5tOg59Jq6NM06dL+abFXwr/RkuvTXJwae1abtE/Dt0/ruksTvs84AZ/BCC4jHnyGVfiM3VBQFANEXEah+Ax18RlP4zNox2dkkM/wI58xTn8yDCXGYCDV3W5RGSajtXyGhG1jbpbjzpwGt/0MJft8jqC7iUbQ/QZaxdnKqcIftwAAAABJRU5ErkJggg==" +}; +exports.zStatic = zStatic; +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-static.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-utils.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-utils.js new file mode 100644 index 0000000..28ceae7 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-utils.js @@ -0,0 +1,238 @@ +"use strict"; +const common_vendor = require("../../../../../common/vendor.js"); +const uni_modules_zPaging_components_zPaging_config_index = require("../config/index.js"); +const uni_modules_zPaging_components_zPaging_js_zPagingConstant = require("./z-paging-constant.js"); +const storageKey = "Z-PAGING-REFRESHER-TIME-STORAGE-KEY"; +let config = null; +let configLoaded = false; +let cachedSystemInfo = null; +const timeoutMap = {}; +function gc(key, defaultValue) { + return () => { + _handleDefaultConfig(); + if (!config) + return defaultValue; + const value = config[key]; + return value === void 0 ? defaultValue : value; + }; +} +function getTouch(e) { + let touch = null; + if (e.touches && e.touches.length) { + touch = e.touches[0]; + } else if (e.changedTouches && e.changedTouches.length) { + touch = e.changedTouches[0]; + } else if (e.datail && e.datail != {}) { + touch = e.datail; + } else { + return { touchX: 0, touchY: 0 }; + } + return { + touchX: touch.clientX, + touchY: touch.clientY + }; +} +function getTouchFromZPaging(target) { + if (target && target.tagName && target.tagName !== "BODY" && target.tagName !== "UNI-PAGE-BODY") { + const classList = target.classList; + if (classList && classList.contains("z-paging-content")) { + return { + isFromZp: true, + isPageScroll: classList.contains("z-paging-content-page"), + isReachedTop: classList.contains("z-paging-reached-top"), + isUseChatRecordMode: classList.contains("z-paging-use-chat-record-mode") + }; + } else { + return getTouchFromZPaging(target.parentNode); + } + } else { + return { isFromZp: false }; + } +} +function getParent(parent) { + if (!parent) + return null; + if (parent.$refs.paging) + return parent; + return getParent(parent.$parent); +} +function consoleErr(err) { + common_vendor.index.__f__("error", "at uni_modules/z-paging/components/z-paging/js/z-paging-utils.js:73", `[z-paging]${err}`); +} +function delay(callback, ms = uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime, key) { + const timeout = setTimeout(callback, ms); + if (!!key) { + timeoutMap[key] && clearTimeout(timeoutMap[key]); + timeoutMap[key] = timeout; + } + return timeout; +} +function setRefesrherTime(time, key) { + const datas = getRefesrherTime() || {}; + datas[key] = time; + common_vendor.index.setStorageSync(storageKey, datas); +} +function getRefesrherTime() { + return common_vendor.index.getStorageSync(storageKey); +} +function getRefesrherTimeByKey(key) { + const datas = getRefesrherTime(); + return datas && datas[key] ? datas[key] : null; +} +function getRefesrherFormatTimeByKey(key, textMap) { + const time = getRefesrherTimeByKey(key); + const timeText = time ? _timeFormat(time, textMap) : textMap.none; + return `${textMap.title}${timeText}`; +} +function convertToPx(text) { + const dataType = Object.prototype.toString.call(text); + if (dataType === "[object Number]") + return text; + let isRpx = false; + if (text.indexOf("rpx") !== -1 || text.indexOf("upx") !== -1) { + text = text.replace("rpx", "").replace("upx", ""); + isRpx = true; + } else if (text.indexOf("px") !== -1) { + text = text.replace("px", ""); + } + if (!isNaN(text)) { + if (isRpx) + return Number(rpx2px(text)); + return Number(text); + } + return 0; +} +function rpx2px(rpx) { + return common_vendor.index.upx2px(rpx); +} +function getSystemInfoSync(useCache = false) { + if (useCache && cachedSystemInfo) { + return cachedSystemInfo; + } + const infoTypes = ["DeviceInfo", "AppBaseInfo", "WindowInfo"]; + const { deviceInfo, appBaseInfo, windowInfo } = infoTypes.reduce((acc, key) => { + const method = `get${key}`; + if (common_vendor.index[method] && common_vendor.index.canIUse(method)) { + acc[key.charAt(0).toLowerCase() + key.slice(1)] = common_vendor.index[method](); + } + return acc; + }, {}); + if (deviceInfo && appBaseInfo && windowInfo) { + cachedSystemInfo = { ...deviceInfo, ...appBaseInfo, ...windowInfo }; + } else { + cachedSystemInfo = common_vendor.index.getSystemInfoSync(); + } + return cachedSystemInfo; +} +function getTime() { + return (/* @__PURE__ */ new Date()).getTime(); +} +function getInstanceId() { + const s = []; + const hexDigits = "0123456789abcdef"; + for (let i = 0; i < 10; i++) { + s[i] = hexDigits.substr(Math.floor(Math.random() * 16), 1); + } + return s.join("") + getTime(); +} +function wait(ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); +} +function isPromise(func) { + return Object.prototype.toString.call(func) === "[object Promise]"; +} +function addUnit(value, unit) { + if (Object.prototype.toString.call(value) === "[object String]") { + let tempValue = value; + tempValue = tempValue.replace("rpx", "").replace("upx", "").replace("px", ""); + if (value.indexOf("rpx") === -1 && value.indexOf("upx") === -1 && value.indexOf("px") !== -1) { + tempValue = parseFloat(tempValue) * 2; + } + value = tempValue; + } + return unit === "rpx" ? value + "rpx" : value / 2 + "px"; +} +function deepCopy(obj) { + if (typeof obj !== "object" || obj === null) + return obj; + let newObj = Array.isArray(obj) ? [] : {}; + for (let key in obj) { + if (obj.hasOwnProperty(key)) { + newObj[key] = deepCopy(obj[key]); + } + } + return newObj; +} +function _handleDefaultConfig() { + if (configLoaded) + return; + if (uni_modules_zPaging_components_zPaging_config_index.zLocalConfig && Object.keys(uni_modules_zPaging_components_zPaging_config_index.zLocalConfig).length) { + config = uni_modules_zPaging_components_zPaging_config_index.zLocalConfig; + } + if (!config && common_vendor.index.$zp) { + config = common_vendor.index.$zp.config; + } + config = config ? Object.keys(config).reduce((result, key) => { + result[_toCamelCase(key)] = config[key]; + return result; + }, {}) : null; + configLoaded = true; +} +function _timeFormat(time, textMap) { + const date = new Date(time); + const currentDate = /* @__PURE__ */ new Date(); + const dateDay = new Date(time).setHours(0, 0, 0, 0); + const currentDateDay = (/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0); + const disTime = dateDay - currentDateDay; + let dayStr = ""; + const timeStr = _dateTimeFormat(date); + if (disTime === 0) { + dayStr = textMap.today; + } else if (disTime === -864e5) { + dayStr = textMap.yesterday; + } else { + dayStr = _dateDayFormat(date, date.getFullYear() !== currentDate.getFullYear()); + } + return `${dayStr} ${timeStr}`; +} +function _dateDayFormat(date, showYear = true) { + const year = date.getFullYear(); + const month = date.getMonth() + 1; + const day = date.getDate(); + return showYear ? `${year}-${_fullZeroToTwo(month)}-${_fullZeroToTwo(day)}` : `${_fullZeroToTwo(month)}-${_fullZeroToTwo(day)}`; +} +function _dateTimeFormat(date) { + const hour = date.getHours(); + const minute = date.getMinutes(); + return `${_fullZeroToTwo(hour)}:${_fullZeroToTwo(minute)}`; +} +function _fullZeroToTwo(str) { + str = str.toString(); + return str.length === 1 ? "0" + str : str; +} +function _toCamelCase(value) { + return value.replace(/-([a-z])/g, (_, group1) => group1.toUpperCase()); +} +const u = { + gc, + setRefesrherTime, + getRefesrherFormatTimeByKey, + getTouch, + getTouchFromZPaging, + getParent, + convertToPx, + getTime, + getInstanceId, + consoleErr, + delay, + wait, + isPromise, + addUnit, + deepCopy, + rpx2px, + getSystemInfoSync +}; +exports.u = u; +//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-utils.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/wxs/z-paging-wxs.wxs b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/wxs/z-paging-wxs.wxs new file mode 100644 index 0000000..ed21959 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/wxs/z-paging-wxs.wxs @@ -0,0 +1,382 @@ +// [z-paging]微信小程序、QQ小程序、app-vue、h5上使用wxs实现自定义下拉刷新,降低逻辑层与视图层的通信折损,提升性能 + +var currentDis = 0; +var isPCFlag = -1; +var startY = -1; + +// 监听js层传过来的数据 +function propObserver(newVal, oldVal, ownerIns, ins) { + var state = ownerIns.getState() || {}; + state.currentIns = ins; + var dataset = ins.getDataset(); + var loading = dataset.loading == true; + // 如果是下拉刷新结束,更新transform + if (newVal && newVal.indexOf('end') != -1) { + var transition = newVal.split('end')[0]; + _setTransform('translateY(0px)', ins, false, transition); + state.moveDis = 0; + state.oldMoveDis = 0; + currentDis = 0; + } else if (newVal && newVal.indexOf('begin') != -1) { + // 如果是下拉刷新开始,更新transform + var refresherThreshold = ins.getDataset().refresherthreshold; + _setTransformValue(refresherThreshold, ins, state, false); + } +} + +// touch开始 +function touchstart(e, ownerIns) { + var ins = _getIns(ownerIns); + var state = {}; + var dataset = {}; + ownerIns.callMethod('_handleListTouchstart'); + if (ins) { + state = ins.getState(); + dataset = ins.getDataset(); + if (_touchDisabled(e, ins, 0)) return; + } + var isTouchEnded = state.isTouchEnded; + state.oldMoveDis = 0; + var touch = _getTouch(e); + var loading = _isTrue(dataset.loading); + state.startY = touch.touchY; + startY = state.startY; + state.lastTouch = touch; + if (!loading && isTouchEnded) { + state.isTouchmoving = false; + } + state.isTouchEnded = false; + // 通知js层touch开始 + ownerIns.callMethod('_handleRefresherTouchstart', touch); +} + +// touch中 +function touchmove(e, ownerIns) { + var touch = _getTouch(e); + var ins = _getIns(ownerIns); + var dataset = ins.getDataset(); + var refresherThreshold = dataset.refresherthreshold; + var refresherF2Threshold = dataset.refresherf2threshold; + var refresherF2Enabled = _isTrue(dataset.refresherf2enabled); + var isIos = _isTrue(dataset.isios); + var state = ins.getState(); + var watchTouchDirectionChange = _isTrue(dataset.watchtouchdirectionchange); + var moveDisObj = {}; + var moveDis = 0; + var prevent = false; + // 如果需要监听touch方向的改变 + if (watchTouchDirectionChange) { + moveDisObj = _getMoveDis(e, ins); + moveDis = moveDisObj.currentDis; + prevent = moveDisObj.isDown; + var direction = prevent ? 'top' : 'bottom'; + // 确保只在touch方向改变时通知一次js层,而不是touchmove中持续通知 + if (prevent == state.oldTouchDirection && prevent != state.oldEmitedTouchDirection) { + ownerIns.callMethod('_handleTouchDirectionChange', { direction: direction }); + state.oldEmitedTouchDirection = prevent; + } + state.oldTouchDirection = prevent; + } + // 判断是否允许下拉刷新 + if (_touchDisabled(e, ins, 1)) { + _handlePullingDown(state, ownerIns, false); + return true; + } + // 判断下拉刷新的角度是否在要求范围内 + if (!_getAngleIsInRange(e, touch, state, dataset)) { + _handlePullingDown(state, ownerIns, false); + return true; + } + moveDisObj = _getMoveDis(e, ins); + moveDis = moveDisObj.currentDis; + prevent = moveDisObj.isDown; + if (moveDis < 0) { + // moveDis小于0,将transform重置为0 + _setTransformValue(0, ins, state, false); + _handlePullingDown(state, ownerIns, false); + return true; + } + if (prevent && !state.disabledBounce) { + // 如果是用户下拉并且需要触发下拉刷新,需要通知js层将列表禁止滚动,防止在下拉刷新过程中列表也可以滚动导致的下拉刷新偏移过大的问题(在下拉刷新过程中仅通知一次) + ownerIns.callMethod('_handleScrollViewBounce', { bounce: false }); + state.disabledBounce = true; + _handlePullingDown(state, ownerIns, prevent); + return !prevent; + } + // 更新transform + _setTransformValue(moveDis, ins, state, false); + var oldRefresherStatus = state.refresherStatus; + var oldIsTouchmoving = _isTrue(dataset.oldistouchmoving); + var hasTouchmove = _isTrue(dataset.hastouchmove); + var isTouchmoving = state.isTouchmoving; + state.refresherStatus = moveDis >= refresherThreshold ? (refresherF2Enabled && moveDis > refresherF2Threshold ? 'goF2' : 'releaseToRefresh') : 'default'; + if (!isTouchmoving) { + state.isTouchmoving = true; + isTouchmoving = true; + } + if (state.isTouchEnded) { + state.isTouchEnded = false; + } + // 如果需要实时监听下拉位置偏移,则需要实时通知js层,此操作会使wxs层与js层频繁通信从而导致在一些性能较差设备中下拉刷新卡顿 + if (hasTouchmove) { + ownerIns.callMethod('_handleWxsPullingDown', { moveDis: moveDis, diffDis: moveDisObj.diffDis }); + } + // 在下拉刷新状态改变时通知js层 + if (oldRefresherStatus == undefined || oldRefresherStatus != state.refresherStatus || oldIsTouchmoving != isTouchmoving) { + ownerIns.callMethod('_handleRefresherTouchmove', moveDis, touch); + } + _handlePullingDown(state, ownerIns, prevent); + return !prevent; +} + +// touch结束 +function touchend(e, ownerIns) { + var touch = _getTouch(e); + var ins = _getIns(ownerIns); + var dataset = ins.getDataset(); + var state = ins.getState(); + if (state.disabledBounce) { + // 通知js允许列表滚动 + ownerIns.callMethod('_handleScrollViewBounce', { bounce: true }); + state.disabledBounce = false; + } + if (_touchDisabled(e, ins, 2)) return; + state.reachMaxAngle = true; + state.hitReachMaxAngleCount = 0; + state.fixedIsTopHitCount = 0; + if (!state.isTouchmoving) return; + var oldRefresherStatus = state.refresherStatus; + var oldMoveDis = state.moveDis; + var refresherThreshold = ins.getDataset().refresherthreshold; + var moveDis = _getMoveDis(e, ins).currentDis; + if (!(moveDis >= refresherThreshold && oldRefresherStatus === 'releaseToRefresh')) { + state.isTouchmoving = false; + } + // 通知js层touch结束 + ownerIns.callMethod('_handleRefresherTouchend', moveDis); + state.isTouchEnded = true; + if (oldMoveDis < refresherThreshold) return; + var animate = false; + if (moveDis >= refresherThreshold) { + moveDis = refresherThreshold; + animate = true; + } + _setTransformValue(moveDis, ins, state, animate); +} + +// #ifdef H5 +// 判断是否是pc平台 +function isPC() { + if (!navigator) return false; + if (isPCFlag != -1) return isPCFlag; + var agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; + isPCFlag = agents.every(function(item) { return navigator.userAgent.indexOf(item) < 0 }); + return isPCFlag; +} + +var movable = false; + +// 在pc平台监听mousedown、mousemove、mouseup等相关事件并转为对应touch事件处理,使得在pc平台也支持通过鼠标进行下拉刷新 + +function mousedown(e, ins) { + if (!isPC()) return; + touchstart(e, ins); + movable = true; +} + +function mousemove(e, ins) { + if (!isPC() || !movable) return; + touchmove(e, ins); +} + +function mouseup(e, ins) { + if (!isPC()) return; + touchend(e, ins); + movable = false; +} + +function mouseleave(e, ins) { + if (!isPC()) return; + movable = false; +} +// #endif + + +// 修改视图层transform +function _setTransformValue(value, ins, state, animate) { + value = value || 0; + if (state.moveDis == value) return; + state.moveDis = value; + _setTransform('translateY(' + value + 'px)', ins, animate, ''); +} + +// 设置视图层transform,直接在视图层操作下拉刷新,使得js层不需要频繁和视图层通信,从而大大提升下拉刷新性能 +function _setTransform(transform, ins, animate, transition) { + var dataset = ins.getDataset(); + if (_isTrue(dataset.refreshernotransform)) return; + transform = transform == 'translateY(0px)' ? 'none' : transform; + ins.requestAnimationFrame(function() { + var stl = { 'transform': transform }; + if (animate) { + stl['transition'] = 'transform .1s linear'; + } + if (transition.length) { + stl['transition'] = transition; + } + ins.setStyle(stl); + }) +} + +// 进一步处理下拉刷新的偏移数据 +function _getMoveDis(e, ins) { + var state = ins.getState(); + var refresherThreshold = parseFloat(ins.getDataset().refresherthreshold); + var refresherOutRate = parseFloat(ins.getDataset().refresheroutrate); + var refresherPullRate = parseFloat(ins.getDataset().refresherpullrate); + var touch = _getTouch(e); + var currentStartY = !state.startY || state.startY == 'NaN' ? startY : state.startY; + var moveDis = touch.touchY - currentStartY; + var oldMoveDis = state.oldMoveDis || 0; + state.oldMoveDis = moveDis; + // 获取当前下拉刷新位置与上次的偏移量 + var diffDis = moveDis - oldMoveDis; + if (diffDis > 0) { + // 对偏移量进行进一步处理,通过refresherPullRate等配置进行约束 + diffDis = diffDis * refresherPullRate; + if (currentDis > refresherThreshold) { + diffDis = diffDis * (1 - refresherOutRate); + } + } + // 控制diffDis过大的情况,比如进入页面突然猛然下拉,此时diffDis不应进行太大的偏移 + diffDis = diffDis > 100 ? diffDis / 100 : (diffDis > 20 ? diffDis / 2.2 : diffDis); + currentDis += diffDis; + currentDis = Math.max(0, currentDis); + return { + currentDis: currentDis, + diffDis: diffDis, + isDown: diffDis > 0 + }; +} + +// 获取经过统一格式包装的当前touch对象 +function _getTouch(e) { + var touch = e; + if (e.touches && e.touches.length) { + touch = e.touches[0]; + } else if (e.changedTouches && e.changedTouches.length) { + touch = e.changedTouches[0]; + } else if (e.datail && e.datail != {}) { + touch = e.datail; + } + return { + touchX: touch.clientX, + touchY: touch.clientY + }; +} + +// 获取当前currentIns +function _getIns(ownerIns) { + var ins = ownerIns.getState().currentIns; + if (!ins) { + ownerIns.callMethod('_handlePropUpdate'); + } + return ins; +} + +// 判断当前状态是否允许下拉刷新 +function _touchDisabled(e, ins, processTag) { + var dataset = ins.getDataset(); + var state = ins.getState(); + var loading = _isTrue(dataset.loading); + var useChatRecordMode = _isTrue(dataset.usechatrecordmode); + var refresherEnabled = _isTrue(dataset.refresherenabled); + var useCustomRefresher = _isTrue(dataset.usecustomrefresher); + var usePageScroll = _isTrue(dataset.usepagescroll); + var pageScrollTop = parseFloat(dataset.pagescrolltop); + var scrollTop = parseFloat(dataset.scrolltop); + var finalScrollTop = usePageScroll ? pageScrollTop : scrollTop; + var fixedIsTop = false; + // 是否要处理滚动到顶部scrollTop不为0时候的容错,为解决在安卓中scroll-view有概率滚动到顶部时scrollTop不为0导致下拉刷新判断异常,但此方案会导致某些情况(例如滚动到距离顶部10px处)下拉抖动,因此改为通过获取zp-scroll-view的节点信息中的scrollTop进行验证的方案 + var handleFaultTolerantMove = false; + if (handleFaultTolerantMove && finalScrollTop == (state.startScrollTop || 0) && finalScrollTop <= 105) { + fixedIsTop = true; + } + var fixedIsTopHitCount = state.fixedIsTopHitCount || 0; + if (fixedIsTop) { + fixedIsTopHitCount ++; + if (fixedIsTopHitCount <= 2) { + fixedIsTop = false; + } + state.fixedIsTopHitCount = fixedIsTopHitCount; + } else { + state.fixedIsTopHitCount = 0; + } + if (handleFaultTolerantMove && processTag === 0) { + state.startScrollTop = finalScrollTop || 0; + } + if (handleFaultTolerantMove && processTag === 2) { + fixedIsTop = true; + } + return loading || useChatRecordMode || !refresherEnabled || !useCustomRefresher || + ((usePageScroll && useCustomRefresher && pageScrollTop > 5) && !fixedIsTop) || + ((!usePageScroll && useCustomRefresher && scrollTop > 5) && !fixedIsTop); +} + +// 判断下拉刷新的角度是否在要求范围内 +function _getAngleIsInRange(e, touch, state, dataset) { + var maxAngle = dataset.refreshermaxangle; + var refresherAecc = _isTrue(dataset.refresheraecc); + var lastTouch = state.lastTouch; + var reachMaxAngle = state.reachMaxAngle; + var moveDis = state.oldMoveDis; + if (!lastTouch) return true; + if (maxAngle >= 0 && maxAngle <= 90 && lastTouch) { + // 考虑下拉刷新手势由水平移动转为垂直方向移动的情况,此时不应当只判断垂直方向角度是否符合要求,应当直接禁止以避免在swiper中使用下拉刷新时,横向切换swiper途中手未离开屏幕还可以下拉刷新的问题 + if ((!moveDis || moveDis < 1) && !refresherAecc && reachMaxAngle != null && !reachMaxAngle) return false; + var x = Math.abs(touch.touchX - lastTouch.touchX); + var y = Math.abs(touch.touchY - lastTouch.touchY); + var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); + if ((x || y) && x > 1) { + // 获取下拉刷新前后两次位移的角度 + var angle = Math.asin(y / z) / Math.PI * 180; + if (angle < maxAngle) { + // 如果角度小于配置要求,则return,同时通过hitReachMaxAngleCount控制角度判断的灵敏程度以最大程度兼容各种使用场景 + var hitReachMaxAngleCount = state.hitReachMaxAngleCount || 0; + state.hitReachMaxAngleCount = ++hitReachMaxAngleCount; + if (state.hitReachMaxAngleCount > 2) { + state.lastTouch = touch; + state.reachMaxAngle = false; + } + return false; + } + } + } + state.lastTouch = touch; + return true; +} + +// 进一步处理是否在下拉刷新并通知js层 +function _handlePullingDown(state, ins, onPullingDown) { + var oldOnPullingDown = state.onPullingDown || false; + if (oldOnPullingDown != onPullingDown) { + ins.callMethod('_handleWxsPullingDownStatusChange', onPullingDown); + } + state.onPullingDown = onPullingDown; +} + +// 判断js层传过来的值是否为true +function _isTrue(value) { + value = (typeof(value) === 'string' ? JSON.parse(value) : value) || false; + return value == true || value == 'true'; +} + +module.exports = { + touchstart: touchstart, + touchmove: touchmove, + touchend: touchend, + mousedown: mousedown, + mousemove: mousemove, + mouseup: mouseup, + mouseleave: mouseleave, + propObserver: propObserver +} diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.js b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.js new file mode 100644 index 0000000..097b553 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.js @@ -0,0 +1,329 @@ +"use strict"; +const uni_modules_zPaging_components_zPaging_js_zPagingMain = require("./js/z-paging-main.js"); +const common_vendor = require("../../../../common/vendor.js"); +const block0 = {}; +const block1 = (Component2) => { + if (!Component2.wxsCallMethods) { + Component2.wxsCallMethods = []; + } + Component2.wxsCallMethods.push("_handleListTouchstart", "_handleRefresherTouchstart", "_handleTouchDirectionChange", "_handleScrollViewBounce", "_handleWxsPullingDown", "_handleRefresherTouchmove", "_handleRefresherTouchend", "_handlePropUpdate", "_handleWxsPullingDownStatusChange"); +}; +if (!Array) { + const _component_z_paging_refresh = common_vendor.resolveComponent("z-paging-refresh"); + const _component_z_paging_load_more = common_vendor.resolveComponent("z-paging-load-more"); + const _easycom_z_paging_empty_view2 = common_vendor.resolveComponent("z-paging-empty-view"); + (_component_z_paging_refresh + _component_z_paging_load_more + _easycom_z_paging_empty_view2)(); +} +const _easycom_z_paging_empty_view = () => "../z-paging-empty-view/z-paging-empty-view.js"; +if (!Math) { + _easycom_z_paging_empty_view(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.cssSafeAreaInsetBottom === -1 + }, _ctx.cssSafeAreaInsetBottom === -1 ? {} : {}, { + b: _ctx.showF2 && _ctx.showRefresherF2 + }, _ctx.showF2 && _ctx.showRefresherF2 ? { + c: common_vendor.o(() => { + }), + d: common_vendor.s({ + "transform": _ctx.f2Transform, + "transition": `transform .2s linear`, + "height": _ctx.superContentHeight + "px", + "z-index": _ctx.f2ZIndex + }) + } : {}, { + e: !_ctx.usePageScroll && _ctx.zSlots.top + }, !_ctx.usePageScroll && _ctx.zSlots.top ? {} : _ctx.usePageScroll && _ctx.zSlots.top ? { + g: common_vendor.o(() => { + }), + h: common_vendor.s({ + "top": `${_ctx.windowTop}px`, + "z-index": _ctx.topZIndex + }) + } : {}, { + f: _ctx.usePageScroll && _ctx.zSlots.top, + i: _ctx.zSlots.left + }, _ctx.zSlots.left ? { + j: _ctx.finalIsOldWebView ? 1 : "" + } : {}, { + k: _ctx.finalRefresherFixedBacHeight > 0 + }, _ctx.finalRefresherFixedBacHeight > 0 ? { + l: common_vendor.s({ + "background": _ctx.refresherFixedBackground, + "height": `${_ctx.finalRefresherFixedBacHeight}px` + }) + } : {}, { + m: _ctx.showRefresher + }, _ctx.showRefresher ? common_vendor.e({ + n: _ctx.useRefresherStatusBarPlaceholder + }, _ctx.useRefresherStatusBarPlaceholder ? { + o: common_vendor.s({ + "height": `${_ctx.statusBarHeight}px` + }) + } : {}, { + p: !(_ctx.zSlots.refresherComplete && _ctx.refresherStatus === _ctx.R.Complete) && !(_ctx.zSlots.refresherF2 && _ctx.refresherStatus === _ctx.R.GoF2) + }, !(_ctx.zSlots.refresherComplete && _ctx.refresherStatus === _ctx.R.Complete) && !(_ctx.zSlots.refresherF2 && _ctx.refresherStatus === _ctx.R.GoF2) ? { + q: common_vendor.r("refresher", { + refresherStatus: _ctx.refresherStatus + }) + } : {}, { + r: _ctx.zSlots.refresherComplete && _ctx.refresherStatus === _ctx.R.Complete + }, _ctx.zSlots.refresherComplete && _ctx.refresherStatus === _ctx.R.Complete ? {} : _ctx.zSlots.refresherF2 && _ctx.refresherStatus === _ctx.R.GoF2 ? {} : !_ctx.showCustomRefresher ? { + v: common_vendor.sr("refresh", "1aa372d7-0"), + w: common_vendor.s({ + "height": `${_ctx.finalRefresherThreshold - _ctx.finalRefresherThresholdPlaceholder}px` + }), + x: common_vendor.p({ + status: _ctx.refresherStatus, + defaultThemeStyle: _ctx.finalRefresherThemeStyle, + defaultText: _ctx.finalRefresherDefaultText, + isIos: _ctx.isIos, + pullingText: _ctx.finalRefresherPullingText, + refreshingText: _ctx.finalRefresherRefreshingText, + completeText: _ctx.finalRefresherCompleteText, + goF2Text: _ctx.finalRefresherGoF2Text, + defaultImg: _ctx.refresherDefaultImg, + pullingImg: _ctx.refresherPullingImg, + refreshingImg: _ctx.refresherRefreshingImg, + completeImg: _ctx.refresherCompleteImg, + refreshingAnimated: _ctx.refresherRefreshingAnimated, + showUpdateTime: _ctx.showRefresherUpdateTime, + updateTimeKey: _ctx.refresherUpdateTimeKey, + updateTimeTextMap: _ctx.finalRefresherUpdateTimeTextMap, + imgStyle: _ctx.refresherImgStyle, + titleStyle: _ctx.refresherTitleStyle, + updateTimeStyle: _ctx.refresherUpdateTimeStyle, + unit: _ctx.unit + }) + } : {}, { + s: _ctx.zSlots.refresherF2 && _ctx.refresherStatus === _ctx.R.GoF2, + t: !_ctx.showCustomRefresher, + y: common_vendor.s({ + "height": `${_ctx.finalRefresherThreshold}px`, + "background": _ctx.refresherBackground + }), + z: common_vendor.s({ + "margin-top": `-${_ctx.finalRefresherThreshold + _ctx.refresherThresholdUpdateTag}px`, + "background": _ctx.refresherBackground, + "opacity": _ctx.isTouchmoving ? 1 : 0 + }) + }) : {}, { + A: _ctx.showLoading && _ctx.zSlots.loading && !_ctx.loadingFullFixed + }, _ctx.showLoading && _ctx.zSlots.loading && !_ctx.loadingFullFixed ? {} : {}, { + B: _ctx.useVirtualList + }, _ctx.useVirtualList ? { + C: common_vendor.s({ + height: _ctx.virtualPlaceholderTopHeight + "px" + }) + } : {}, { + D: _ctx.finalUseInnerList + }, _ctx.finalUseInnerList ? common_vendor.e({ + E: _ctx.finalUseVirtualList + }, _ctx.finalUseVirtualList ? { + F: common_vendor.f(_ctx.virtualList, (item, index, i0) => { + return common_vendor.e(_ctx.useCompatibilityMode ? {} : { + a: "cell-" + i0, + b: common_vendor.r("cell", { + item, + index: _ctx.virtualTopRangeIndex + index + }, i0) + }, { + c: `${_ctx.fianlVirtualCellIdPrefix}-${item[_ctx.virtualCellIndexKey]}`, + d: item["zp_unique_index"], + e: common_vendor.o(($event) => _ctx._innerCellClick(item, _ctx.virtualTopRangeIndex + index), item["zp_unique_index"]) + }); + }), + G: _ctx.useCompatibilityMode, + H: common_vendor.s(_ctx.innerCellStyle) + } : { + I: common_vendor.f(_ctx.realTotalData, (item, index, i0) => { + return { + a: "cell-" + i0, + b: common_vendor.r("cell", { + item, + index + }, i0), + c: index, + d: common_vendor.o(($event) => _ctx._innerCellClick(item, index), index) + }; + }) + }, { + J: common_vendor.s(_ctx.innerListStyle) + }) : {}, { + K: _ctx.useChatRecordMode && _ctx.realTotalData.length >= _ctx.defaultPageSize && (_ctx.loadingStatus !== _ctx.M.NoMore || _ctx.zSlots.chatNoMore) && (_ctx.realTotalData.length || _ctx.showChatLoadingWhenReload && _ctx.showLoading) && !_ctx.isFirstPageAndNoMore + }, _ctx.useChatRecordMode && _ctx.realTotalData.length >= _ctx.defaultPageSize && (_ctx.loadingStatus !== _ctx.M.NoMore || _ctx.zSlots.chatNoMore) && (_ctx.realTotalData.length || _ctx.showChatLoadingWhenReload && _ctx.showLoading) && !_ctx.isFirstPageAndNoMore ? common_vendor.e({ + L: _ctx.loadingStatus === _ctx.M.NoMore && _ctx.zSlots.chatNoMore + }, _ctx.loadingStatus === _ctx.M.NoMore && _ctx.zSlots.chatNoMore ? {} : common_vendor.e({ + M: _ctx.zSlots.chatLoading + }, _ctx.zSlots.chatLoading ? { + N: common_vendor.r("chatLoading", { + loadingMoreStatus: _ctx.loadingStatus + }) + } : { + O: common_vendor.o(($event) => _ctx._onLoadingMore("click")), + P: common_vendor.p({ + zConfig: _ctx.zLoadMoreConfig + }) + }), { + Q: common_vendor.s(_ctx.chatRecordRotateStyle) + }) : {}, { + R: _ctx.useVirtualList + }, _ctx.useVirtualList ? { + S: common_vendor.s({ + height: _ctx.virtualPlaceholderBottomHeight + "px" + }) + } : {}, { + T: _ctx.showLoadingMoreDefault + }, _ctx.showLoadingMoreDefault ? {} : _ctx.showLoadingMoreLoading ? {} : _ctx.showLoadingMoreNoMore ? {} : _ctx.showLoadingMoreFail ? {} : _ctx.showLoadingMoreCustom ? { + Y: common_vendor.o(($event) => _ctx._onLoadingMore("click")), + Z: common_vendor.p({ + zConfig: _ctx.zLoadMoreConfig + }) + } : {}, { + U: _ctx.showLoadingMoreLoading, + V: _ctx.showLoadingMoreNoMore, + W: _ctx.showLoadingMoreFail, + X: _ctx.showLoadingMoreCustom, + aa: _ctx.safeAreaInsetBottom && _ctx.useSafeAreaPlaceholder && !_ctx.useChatRecordMode + }, _ctx.safeAreaInsetBottom && _ctx.useSafeAreaPlaceholder && !_ctx.useChatRecordMode ? { + ab: common_vendor.s({ + height: _ctx.safeAreaBottom + "px" + }) + } : {}, { + ac: common_vendor.s(_ctx.finalPlaceholderTopHeightStyle), + ad: common_vendor.s(_ctx.finalPagingContentStyle), + ae: _ctx.showEmpty + }, _ctx.showEmpty ? common_vendor.e({ + af: _ctx.zSlots.empty + }, _ctx.zSlots.empty ? { + ag: common_vendor.r("empty", { + isLoadFailed: _ctx.isLoadFailed + }) + } : { + ah: common_vendor.o(_ctx._emptyViewReload), + ai: common_vendor.o(_ctx._emptyViewClick), + aj: common_vendor.p({ + emptyViewImg: _ctx.finalEmptyViewImg, + emptyViewText: _ctx.finalEmptyViewText, + showEmptyViewReload: _ctx.finalShowEmptyViewReload, + emptyViewReloadText: _ctx.finalEmptyViewReloadText, + isLoadFailed: _ctx.isLoadFailed, + emptyViewStyle: _ctx.emptyViewStyle, + emptyViewTitleStyle: _ctx.emptyViewTitleStyle, + emptyViewImgStyle: _ctx.emptyViewImgStyle, + emptyViewReloadStyle: _ctx.emptyViewReloadStyle, + emptyViewZIndex: _ctx.emptyViewZIndex, + emptyViewFixed: _ctx.emptyViewFixed, + unit: _ctx.unit + }) + }, { + ak: _ctx.emptyViewCenter ? 1 : "", + al: common_vendor.s(_ctx.emptyViewSuperStyle), + am: common_vendor.s(_ctx.chatRecordRotateStyle) + }) : {}, { + an: common_vendor.s({ + justifyContent: _ctx.useChatRecordMode ? "flex-end" : "flex-start" + }), + ao: common_vendor.s(_ctx.scrollViewInStyle), + ap: common_vendor.s({ + "transform": _ctx.finalRefresherTransform, + "transition": _ctx.refresherTransition + }), + aq: _ctx.wxsPropType, + ar: _ctx.finalRefresherThreshold, + as: _ctx.refresherF2Enabled, + at: _ctx.finalRefresherF2Threshold, + av: _ctx.isIos, + aw: _ctx.loading || _ctx.isRefresherInComplete, + ax: _ctx.useChatRecordMode, + ay: _ctx.refresherEnabled, + az: _ctx.useCustomRefresher, + aA: _ctx.wxsPageScrollTop, + aB: _ctx.wxsScrollTop, + aC: _ctx.refresherMaxAngle, + aD: _ctx.refresherNoTransform, + aE: _ctx.refresherAngleEnableChangeContinued, + aF: _ctx.usePageScroll, + aG: _ctx.watchTouchDirectionChange, + aH: _ctx.isTouchmoving, + aI: _ctx.finalRefresherOutRate, + aJ: _ctx.finalRefresherPullRate, + aK: _ctx.hasTouchmove, + aL: !_ctx.usePageScroll ? 1 : "", + aM: !_ctx.showScrollbar ? 1 : "", + aN: common_vendor.s(_ctx.chatRecordRotateStyle), + aO: _ctx.scrollTop, + aP: _ctx.scrollLeft, + aQ: _ctx.scrollX, + aR: _ctx.finalScrollable, + aS: _ctx.finalEnableBackToTop, + aT: _ctx.showScrollbar, + aU: _ctx.finalScrollWithAnimation, + aV: _ctx.scrollIntoView, + aW: _ctx.finalLowerThreshold, + aX: _ctx.finalRefresherEnabled && !_ctx.useCustomRefresher, + aY: _ctx.finalRefresherThreshold, + aZ: _ctx.finalRefresherDefaultStyle, + ba: _ctx.refresherBackground, + bb: _ctx.finalRefresherTriggered, + bc: common_vendor.o((...args) => _ctx._scroll && _ctx._scroll(...args)), + bd: common_vendor.o((...args) => _ctx._onScrollToLower && _ctx._onScrollToLower(...args)), + be: common_vendor.o((...args) => _ctx._onScrollToUpper && _ctx._onScrollToUpper(...args)), + bf: common_vendor.o((...args) => _ctx._onRestore && _ctx._onRestore(...args)), + bg: common_vendor.o(($event) => _ctx._onRefresh(true)), + bh: _ctx.finalIsOldWebView ? 1 : "", + bi: common_vendor.s(_ctx.scrollViewContainerStyle), + bj: _ctx.zSlots.right + }, _ctx.zSlots.right ? { + bk: _ctx.finalIsOldWebView ? 1 : "" + } : {}, { + bl: !_ctx.usePageScroll ? 1 : "", + bm: common_vendor.s(_ctx.finalScrollViewStyle), + bn: !_ctx.usePageScroll && _ctx.zSlots.bottom + }, !_ctx.usePageScroll && _ctx.zSlots.bottom ? {} : _ctx.usePageScroll && _ctx.zSlots.bottom ? { + bp: common_vendor.o(() => { + }), + bq: common_vendor.s({ + "bottom": `${_ctx.windowBottom}px` + }) + } : {}, { + bo: _ctx.usePageScroll && _ctx.zSlots.bottom, + br: _ctx.useChatRecordMode && _ctx.autoAdjustPositionWhenChat + }, _ctx.useChatRecordMode && _ctx.autoAdjustPositionWhenChat ? { + bs: common_vendor.s({ + height: _ctx.chatRecordModeSafeAreaBottom + "px" + }), + bt: common_vendor.s({ + height: _ctx.keyboardHeight + "px" + }) + } : {}, { + bv: _ctx.bottomBgColor, + bw: _ctx.showBackToTopClass + }, _ctx.showBackToTopClass ? common_vendor.e({ + bx: _ctx.zSlots.backToTop + }, _ctx.zSlots.backToTop ? {} : { + by: _ctx.useChatRecordMode && !_ctx.backToTopImg.length ? 1 : "", + bz: _ctx.backToTopImg.length ? _ctx.backToTopImg : _ctx.base64BackToTop + }, { + bA: common_vendor.n(_ctx.finalBackToTopClass), + bB: common_vendor.s(_ctx.finalBackToTopStyle), + bC: common_vendor.o((...args) => _ctx._backToTopClick && _ctx._backToTopClick(...args)) + }) : {}, { + bD: _ctx.showLoading && _ctx.zSlots.loading && _ctx.loadingFullFixed + }, _ctx.showLoading && _ctx.zSlots.loading && _ctx.loadingFullFixed ? {} : {}, { + bE: !_ctx.usePageScroll ? 1 : "", + bF: !_ctx.usePageScroll && _ctx.fixed ? 1 : "", + bG: _ctx.usePageScroll ? 1 : "", + bH: _ctx.renderPropScrollTop < 1 ? 1 : "", + bI: _ctx.useChatRecordMode ? 1 : "", + bJ: common_vendor.s(_ctx.finalPagingStyle) + }); +} +if (typeof block0 === "function") + block0(uni_modules_zPaging_components_zPaging_js_zPagingMain._sfc_main); +if (typeof block1 === "function") + block1(uni_modules_zPaging_components_zPaging_js_zPagingMain._sfc_main); +const Component = /* @__PURE__ */ common_vendor._export_sfc(uni_modules_zPaging_components_zPaging_js_zPagingMain._sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-1aa372d7"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.js.map diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.json b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.json new file mode 100644 index 0000000..999b58f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "z-paging-empty-view": "../z-paging-empty-view/z-paging-empty-view", + "z-paging-refresh": "./components/z-paging-refresh", + "z-paging-load-more": "./components/z-paging-load-more" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.wxml new file mode 100644 index 0000000..a4be456 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.wxml @@ -0,0 +1,2 @@ + +使用兼容模式请在组件源码z-paging.vue第103行中注释这一行,并打开下面一行注释 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.wxss new file mode 100644 index 0000000..8352798 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.wxss @@ -0,0 +1,243 @@ +/* [z-paging]公共css*/ +.z-paging-content.data-v-1aa372d7 { + position: relative; + flex-direction: column; + + overflow: hidden; +} +.z-paging-content-full.data-v-1aa372d7 { + + display: flex; + width: 100%; + height: 100%; +} +.z-paging-content-fixed.data-v-1aa372d7, .zp-loading-fixed.data-v-1aa372d7 { + position: fixed; + + height: auto; + width: auto; + + top: 0; + left: 0; + bottom: 0; + right: 0; +} +.zp-f2-content.data-v-1aa372d7 { + width: 100%; + position: fixed; + top: 0; + left: 0; + background-color: white; +} +.zp-page-top.data-v-1aa372d7, .zp-page-bottom.data-v-1aa372d7 { + + width: auto; + + position: fixed; + left: 0; + right: 0; + z-index: 999; +} +.zp-page-left.data-v-1aa372d7, .zp-page-right.data-v-1aa372d7 { + + height: 100%; +} +.zp-scroll-view-super.data-v-1aa372d7 { + flex: 1; + overflow: hidden; + position: relative; +} +.zp-view-super.data-v-1aa372d7 { + + display: flex; + + flex-direction: row; +} +.zp-scroll-view-container.data-v-1aa372d7, .zp-scroll-view.data-v-1aa372d7 { + position: relative; + + height: 100%; + width: 100%; +} +.zp-absoulte.data-v-1aa372d7 { + + position: absolute; + top: 0; + width: auto; +} +.zp-scroll-view-absolute.data-v-1aa372d7 { + position: absolute; + top: 0; + left: 0; +} +.zp-scroll-view-hide-scrollbar.data-v-1aa372d7 ::-webkit-scrollbar { + display: none; + -webkit-appearance: none; + width: 0 !important; + height: 0 !important; + background: transparent; +} +.zp-paging-touch-view.data-v-1aa372d7 { + width: 100%; + height: 100%; + position: relative; +} +.zp-fixed-bac-view.data-v-1aa372d7 { + position: absolute; + width: 100%; + top: 0; + left: 0; + height: 200px; +} +.zp-paging-main.data-v-1aa372d7 { + height: 100%; + + display: flex; + + flex-direction: column; +} +.zp-paging-container.data-v-1aa372d7 { + flex: 1; + position: relative; + + display: flex; + + flex-direction: column; +} +.zp-chat-record-loading-custom-image.data-v-1aa372d7 { + width: 35rpx; + height: 35rpx; + + animation: loading-flower-1aa372d7 1s linear infinite; +} +.zp-page-bottom-keyboard-placeholder-animate.data-v-1aa372d7 { + transition-property: height; + transition-duration: 0.15s; + + will-change: height; +} +.zp-custom-refresher-container.data-v-1aa372d7 { + overflow: hidden; +} +.zp-custom-refresher-refresh.data-v-1aa372d7 { + + display: block; +} +.zp-back-to-top.data-v-1aa372d7 { + z-index: 999; + position: absolute; + bottom: 0rpx; + transition-duration: .3s; + transition-property: opacity; +} +.zp-back-to-top-rpx.data-v-1aa372d7 { + width: 76rpx; + height: 76rpx; + bottom: 0rpx; + right: 25rpx; +} +.zp-back-to-top-px.data-v-1aa372d7 { + width: 38px; + height: 38px; + bottom: 0px; + right: 13px; +} +.zp-back-to-top-show.data-v-1aa372d7 { + opacity: 1; +} +.zp-back-to-top-hide.data-v-1aa372d7 { + opacity: 0; +} +.zp-back-to-top-img.data-v-1aa372d7 { + + width: 100%; + height: 100%; + + + + + z-index: 999; +} +.zp-back-to-top-img-inversion.data-v-1aa372d7 { + transform: rotate(180deg); +} +.zp-empty-view.data-v-1aa372d7 { + + + + flex: 1; +} +.zp-empty-view-center.data-v-1aa372d7 { + + display: flex; + + flex-direction: column; + align-items: center; + justify-content: center; +} +.zp-loading-fixed.data-v-1aa372d7 { + z-index: 9999; +} +.zp-safe-area-inset-bottom.data-v-1aa372d7 { + position: absolute; + + height: env(safe-area-inset-bottom); +} +.zp-n-refresh-container.data-v-1aa372d7 { + + display: flex; + + justify-content: center; + width: 750rpx; +} +.zp-n-list-container.data-v-1aa372d7{ + + display: flex; + + flex-direction: row; + flex: 1; +} + +/* [z-paging]公用的静态css资源 */ +.zp-line-loading-image.data-v-1aa372d7 { + + animation: loading-flower-1aa372d7 1s steps(12) infinite; + + color: #666666; +} +.zp-line-loading-image-rpx.data-v-1aa372d7 { + margin-right: 8rpx; + width: 34rpx; + height: 34rpx; +} +.zp-line-loading-image-px.data-v-1aa372d7 { + margin-right: 4px; + width: 17px; + height: 17px; +} +.zp-loading-image-ios-rpx.data-v-1aa372d7 { + width: 40rpx; + height: 40rpx; +} +.zp-loading-image-ios-px.data-v-1aa372d7 { + width: 20px; + height: 20px; +} +.zp-loading-image-android-rpx.data-v-1aa372d7 { + width: 34rpx; + height: 34rpx; +} +.zp-loading-image-android-px.data-v-1aa372d7 { + width: 17px; + height: 17px; +} +@keyframes loading-flower-1aa372d7 { +0% { + transform: rotate(0deg); +} +to { + transform: rotate(1turn); +} +} + + diff --git a/unpackage/dist/dev/mp-weixin/utils/auth.js b/unpackage/dist/dev/mp-weixin/utils/auth.js new file mode 100644 index 0000000..c9ace97 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/utils/auth.js @@ -0,0 +1,27 @@ +"use strict"; +const common_vendor = require("../common/vendor.js"); +function auth() { + return new Promise((resolve, reject) => { + common_vendor.index.login({ + provider: "weixin", + //使用微信登录 + onlyAuthorize: true, + //不弹出授权页面,直接进入微信登录流程 + success(res) { + if (res.errMsg == "login:ok") { + resolve(res.code); + } else { + common_vendor.index.showToast({ + title: res.errMsg, + icon: "error" + }); + } + }, + fail(err) { + reject(err); + } + }); + }); +} +exports.auth = auth; +//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/auth.js.map diff --git a/unpackage/dist/dev/mp-weixin/utils/config.js b/unpackage/dist/dev/mp-weixin/utils/config.js new file mode 100644 index 0000000..efd785c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/utils/config.js @@ -0,0 +1,14 @@ +"use strict"; +const common_vendor = require("../common/vendor.js"); +let BASE_URL = ""; +{ + const { envVersion } = common_vendor.index.getAccountInfoSync().miniProgram; + if (envVersion == "release") { + BASE_URL = "https://prod-casedata.igandan.com/api"; + } else { + BASE_URL = "https://dev-casedata.igandan.com/api"; + } +} +const BASE_URL$1 = BASE_URL; +exports.BASE_URL = BASE_URL$1; +//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/config.js.map diff --git a/unpackage/dist/dev/mp-weixin/utils/navTo.js b/unpackage/dist/dev/mp-weixin/utils/navTo.js new file mode 100644 index 0000000..e7c4d55 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/utils/navTo.js @@ -0,0 +1,34 @@ +"use strict"; +const common_vendor = require("../common/vendor.js"); +const utils_pageUrl = require("./pageUrl.js"); +function navTo(obj) { + let token = ""; + { + const { envVersion } = common_vendor.index.getAccountInfoSync().miniProgram; + if (envVersion == "release") { + token = common_vendor.index.getStorageSync("AUTH_TOKEN_CASEDATA"); + } else { + token = common_vendor.index.getStorageSync("DEV_AUTH_TOKEN_CASEDATA"); + } + } + if (!token) { + let page_url = utils_pageUrl.pageUrl(); + common_vendor.index.setStorageSync("redirectUrl", page_url); + common_vendor.index.navigateTo({ + url: "/pages/login/login?redirectUrl=has" + }); + } else { + { + const pages = getCurrentPages(); + let len = pages.length; + common_vendor.index.__f__("log", "at utils/navTo.js:31", len); + if (len >= 10) { + common_vendor.index.redirectTo(obj); + } else { + common_vendor.index.navigateTo(obj); + } + } + } +} +exports.navTo = navTo; +//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/navTo.js.map diff --git a/unpackage/dist/dev/mp-weixin/utils/pageUrl.js b/unpackage/dist/dev/mp-weixin/utils/pageUrl.js new file mode 100644 index 0000000..e0f45ba --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/utils/pageUrl.js @@ -0,0 +1,15 @@ +"use strict"; +function pageUrl() { + const pages = getCurrentPages(); + const currentPage = pages[pages.length - 1]; + const url = currentPage.route; + const options = currentPage.options; + let fullUrl = url + "?"; + for (let key in options) { + fullUrl += `${key}=${options[key]}&`; + } + fullUrl = fullUrl.substring(0, fullUrl.length - 1); + return fullUrl; +} +exports.pageUrl = pageUrl; +//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/pageUrl.js.map diff --git a/unpackage/dist/dev/mp-weixin/utils/request.js b/unpackage/dist/dev/mp-weixin/utils/request.js new file mode 100644 index 0000000..ed79b30 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/utils/request.js @@ -0,0 +1,91 @@ +"use strict"; +const common_vendor = require("../common/vendor.js"); +const utils_config = require("./config.js"); +const utils_pageUrl = require("./pageUrl.js"); +const request = (url, data = {}, method = "post", loading = false, contentType = "application/x-www-form-urlencoded") => { + if (loading) { + common_vendor.index.showLoading({ + title: "加载中", + mask: true + }); + } + let token = ""; + { + const { envVersion } = common_vendor.index.getAccountInfoSync().miniProgram; + if (envVersion == "release") { + token = common_vendor.index.getStorageSync("AUTH_TOKEN_CASEDATA"); + } else { + token = common_vendor.index.getStorageSync("DEV_AUTH_TOKEN_CASEDATA"); + } + } + let header = { + "content-type": contentType, + "Authorization": "Bearer " + token + }; + return new Promise(function(e, n) { + let timestamp = Date.now(); + common_vendor.index.request({ + data, + url: url.indexOf("http") != -1 ? url : encodeURI(utils_config.BASE_URL + url + "?timestamp=" + timestamp), + method, + sslVerify: false, + header: url.indexOf("/manager/getSignature4bing") == -1 ? header : {}, + timeout: 1e4, + success: async (res) => { + var Authorization_token = res.header.Authorization; + if (Authorization_token) { + { + common_vendor.index.setStorageSync("DEV_AUTH_TOKEN_CASEDATA", Authorization_token); + } + } + if (loading) { + common_vendor.index.hideLoading(); + } + if (res.data.code == 200) { + e(res); + } else if (res.data.code == 201) { + common_vendor.index.showModal({ + title: "提示", + content: "该作品已被删除", + showCancel: false, + success: function(res2) { + if (res2.confirm) { + common_vendor.index.navigateBack(); + } + } + }); + n(res); + } else if (res.data.code == 401 || res.data.code == 403 || res.data.code == 405 || res.data.code == 406) { + { + let freeList = ["/login/wechat/mobile", "/code/phone", "/login/mobile_login", "/index", "/user/check"]; + if (freeList.indexOf(url) == -1) { + let page_url = utils_pageUrl.pageUrl(); + common_vendor.index.setStorageSync("redirectUrl", page_url); + common_vendor.index.navigateTo({ + url: "/pages/login/login?redirectUrl=has" + }); + return false; + } + } + } else if (res.data.code == 500) { + common_vendor.index.showToast({ + title: res.data.message, + icon: "none" + }); + n(res); + } else { + common_vendor.index.showToast({ + title: res.data.message, + icon: "none" + }); + n(res); + } + }, + fail: function(err) { + "request:fail " === err.errMsg && msg("请求数据失败!"), n(err.data); + } + }); + }); +}; +exports.request = request; +//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/request.js.map